diff --git a/HexManual/Chapters/HexRCF/AlgebraicCells.lean b/HexManual/Chapters/HexRCF/AlgebraicCells.lean
index 20813536c5..5106cc6a0c 100644
--- a/HexManual/Chapters/HexRCF/AlgebraicCells.lean
+++ b/HexManual/Chapters/HexRCF/AlgebraicCells.lean
@@ -14,7 +14,12 @@ import HexRCF.RealCoefficients.AlgebraicPreparation
import HexRCF.RealCoefficients.CellOperations
import HexRCF.RealCoefficients.RealModel
import HexRCF.RealCoefficients.SourceIdentity
+import HexRCF.RealCoefficients.SourceBuild
+import HexRCF.RealCoefficients.TowerCompile
import HexRCF.RealCoefficients.CellQuote
+import HexRCF.CellQuoteStages
+import HexRCF.CellSourceQuote
+import HexRCF.SourceIdentityPacket
open Verso.Genre Manual
open Verso.Genre.Manual.InlineLean
@@ -570,6 +575,146 @@ bodies with only the standard three axioms, excluding the older fixture
acceptance and source theorems. This uses a fixed retained field and finite
coefficient codec; it does not reconstruct arbitrary frozen histories.
+{name Hex.RCF.RealCoefficients.CellQuote.replayWith}`CellQuote.replayWith`
+quotes a supplied `CellOperations.check` expression in three stages. It first
+checks the complete root table, then each dependent section and sector record,
+then the strict Boolean and quantifier fold. Checked data definitions retain
+the exact root and cell indices between stages. Pointwise reader equations
+compose through `CellRead.collectWith_eq` and `CellOperations.readCells_of_parts`;
+quotation does not normalize the complete finite collector as one expression.
+{name Hex.RCF.RealCoefficients.CellOperations.check_of_parts}`CellOperations.check_of_parts`
+composes their equations at the original packet. All three stages and their
+decoder callbacks consume one reflection budget:
+
+```lean
+open Lean Hex.RealFormula
+open Hex.Reflect
+open Hex.RCF.RealCoefficients
+meta def quoteCellPacket
+ (program : Expr)
+ (decode : RootQuote.DecoderM)
+ (config : Reify.Config)
+ (used : BudgetUsage) :=
+ RootQuote.runWith
+ (CellQuote.replayWith
+ program decode)
+ config used
+```
+
+`set_option trace.Hex.RCF.CellQuote true` reports reader and finite-family
+boundaries with cumulative proof-node usage. Lean heartbeats remain a separate
+elaboration limit.
+
+{name Hex.RCF.RealCoefficients.CellQuote.finishPacketWith}`CellQuote.finishPacketWith`
+continues this request through the original source proof. It consumes the
+prepared source and the accepted canonical checker, model, coefficient identity
+and ordered divisor identities. The source record is checked again: its original
+target, divisor inventory and ordinary-kernel equivalence must match. This avoids
+starting another reification budget. Invoke quotation and finishing inside the
+same `RootQuote.runWith` transaction, seeded with source preparation's usage;
+the final usage then includes both stages. A finishing failure restores the
+whole attempt, including declarations produced while quoting the packet.
+
+The separate finishing action can also continue already recorded usage:
+
+```lean
+open Lean Hex.RealFormula
+open Hex.Reflect
+open Hex.RCF.RealCoefficients
+meta def finishCellPacket
+ (source : Reify.Source)
+ (target checker accepted : Expr)
+ (model identity : Expr)
+ (guards : Array Expr)
+ (config : Reify.Config)
+ (used : BudgetUsage) :=
+ RootQuote.runWith
+ (CellQuote.finishPacketWith source
+ target checker accepted model
+ identity guards)
+ config used
+```
+
+That separate transaction rolls back its own work. Clients needing rollback
+of quotation as well must combine both actions in one transaction. Conformance
+checks exact and one-node-below cumulative limits, exhaustion of the continued
+source budget, tampered source records and wrong goal proofs.
+
+Within this request, row quotation parses each literal sign packet and checks
+its exact ordered queries. It validates a graph once for each distinct set of
+arithmetic operations, sign function, context, polynomial, endpoints and graph
+data. The owner's `SelectedSigns.ofMemo?` extracts each root's row from that
+checked graph; `Dag.selectedSigns_memo` identifies it with the original reader.
+Every reused equation is kernel checked against the new reader. The cache is
+local to one quotation attempt, and every visit consumes the shared budget.
+`set_option trace.Hex.RCF.RowQuote true` reports validations and reuse. Supplied
+arithmetic operations remain attached to the descriptor, including operations
+that are proved equal to canonical arithmetic rather than definitionally equal.
+
+The returned equation retains both Boolean verdicts. `CellQuote.finishPacket`
+performs source authentication separately and requires an accepted true result.
+The constant example uses independently read literal root and cell packets:
+
+```lean
+example : ∀ _x : ℝ, (0 : ℝ) = 0 :=
+ Hex.RCF.CellQuoteStages.source
+```
+
+Its replay quotation uses 441,039 nodes for true and 441,041 for false. These
+counts cover the three replay stages, separately from source reification and
+interpretation. Exact and one-node-below limits, wrong-goal proposals,
+malformed cells, original zero-divisor preflight, terminal callback failures
+and full caller-state restoration are checked.
+
+A separate rational quadratic packet checks two root sections and three
+sectors in 5,911,125 proof nodes. Its trace records two graph-memo reuses and
+seven independent validations. These are charged quotation counts, rather
+than a timing comparison or a measurement of physical sharing. The test supplies
+16M proof nodes and a separate 24M heartbeat allowance. Compiled replay and
+general algebraic quotation costs need separate evidence.
+
+A fresh importing audit checks 1,247 theorem bodies and 101 definitions, with
+1,298 nonempty kernel traces, the unchanged producer guard and only the
+standard three axioms. It excludes older fixture acceptance proofs. The
+constant example establishes source quotation; the quadratic packet adds
+replay coverage with multiple roots. General coefficient and history assembly
+remain separate obligations.
+
+The algebraic source regression independently reads the complete frozen packet
+over the retained positive square root of 2. It reifies the following original
+sentence, authenticates its fixed coefficient from the descriptor and two
+scalar packets inside the same request, reconstructs the coefficient polynomial
+and composes the checked cell verdict with the original source. The prepared
+coefficient inventory passes through `TowerCompile.prepareWith`, and
+`CellQuote.valuationWith` assembles its checked scalar identities for finishing:
+
+```lean
+example : ∃ x : ℝ,
+ x ^ 2 - Real.sqrt 2 ≥ 0 ∧
+ x ^ 2 - Real.sqrt 2 ≤ 0 ∧
+ (0 : ℝ) = 0 :=
+ Hex.RCF.CellSourceQuote.source
+```
+
+The shared reification and quotation budget records 9,330,130 proof nodes
+before source finishing and 9,337,057 for the complete original-source attempt.
+Source authentication, cell replay and finishing run in one transaction. The test supplies 24M proof nodes and
+60M heartbeats. Its trace records two memo reuses and seven validations.
+Lake reports 793 seconds for this source module on the recorded shared host;
+this remains an expensive fixed-input proof build. These observations do not
+measure compiled replay or establish a general tactic running time.
+
+Its importing proof audit checks 1,192 theorem bodies, 202 definitions and
+1,352 nonempty kernel traces. It excludes the older complete-packet acceptance
+and source proofs, the handwritten coefficient identity and the separately
+proved source-selection/coefficient identities. It checks transitive
+axiom dependencies, and rejects native
+producer and canonical-codec reduction. The fixed
+selected parent, original alias/coefficient-map laws and checked arithmetic
+seed facts are supplied inputs. This example does not construct arbitrary
+predecessor histories or install a
+general source-to-certificate tactic backend.
+
For a closed retained base/root context, `RealModel.build` constructs its
ordinary-real interpretation from a caller-supplied real base model and each
root's actual descriptor, frame and encoding proof. It checks every prefix's
@@ -592,6 +737,295 @@ coordinate, with a separate ordinary-kernel body audit. These are source
interpretation lemmas and a fixed-input example; general frozen source-history
reconstruction still needs its own checked assembly.
+{name Hex.RCF.RealCoefficients.SourceIdentity.quoteWith}`SourceIdentity.quoteWith`
+constructs this identity from two supplied scalar readers. Its `Anchor` retains
+the original polynomial, isolating square, witness, precision and selected-value
+proof. Its `Packets` supplies the equation and enclosure readers and proofs
+binding their polynomial keys to the intended real polynomials. The readers
+carry the ordinary-real model. Both facts must belong to the same selected
+context: one sign is zero and the square margin is strictly positive.
+
+```lean
+open Lean Hex.RealFormula
+open Hex.Reflect
+open Hex.RCF.RealCoefficients
+meta def quoteSourceIdentity
+ (anchor : SourceIdentity.Anchor)
+ (packets : SourceIdentity.Packets)
+ (context same : Expr)
+ (decode : RootQuote.DecoderM)
+ (config : Reify.Config)
+ (used : BudgetUsage) :=
+ RootQuote.runWith (do
+ let selected ←
+ SourceIdentity.quoteWith
+ anchor packets context same
+ decode
+ pure ⟨anchor.value, selected.proof,
+ selected.usage⟩)
+ config used
+```
+
+The result proves that the reader's selected real root equals the original
+anchor value. Quotation checks both packets, their keys, signs, supplied value
+laws and the final original-source equality. The caller supplies the prepared
+context and its checked equality. All work shares the enclosing reflection
+budget and transaction. This authenticates a supplied selected source; it does
+not construct an arbitrary predecessor history or run missing root/sign searches.
+
+{name Hex.RCF.RealCoefficients.SourceIdentity.restorePacketWith}`restorePacketWith`
+also performs descriptor/header quotation and context preparation from the
+literal `Packet` and exact parent/model. It returns the checked header, prepared
+context and source identity together. The header's reader equation can bind an
+existing stored coefficient to this same root. The compact
+{name Hex.RCF.RealCoefficients.SourceIdentity.quotePacketWith}`quotePacketWith`
+returns only the source identity. Both share the enclosing request's budget;
+neither discovers a predecessor history or supplies an original alias proof.
+
+```lean
+open Lean Hex.RealFormula
+open Hex.Reflect
+open Hex.RCF.RealCoefficients
+meta def quoteSourcePacket
+ (anchor : SourceIdentity.Anchor)
+ (packet : SourceIdentity.Packet)
+ (parent model : Expr)
+ (decode : RootQuote.DecoderM)
+ (config : Reify.Config)
+ (used : BudgetUsage) :=
+ RootQuote.runWith (do
+ let restored ←
+ SourceIdentity.restorePacketWith
+ anchor packet parent model decode
+ pure ⟨anchor.value,
+ restored.identity.proof,
+ restored.identity.usage⟩)
+ config used
+```
+
+The frozen square-root regression quotes its parent descriptor and both
+packets in 673,461 proof nodes. This is a separate identity check; the complete
+algebraic source example above authenticates its coefficient within its own
+request. A separate negative-window packet has an
+accepted literal reader and sign −1; it cannot identify the positive native
+root with the negative selected conjugate. Wrong coefficient proofs and
+one-node-below exhaustion also restore the complete caller state. The dedicated
+fresh audit checks 218 theorem bodies, 179 definitions and 385 nonempty kernel
+traces, excludes the handwritten source identities and native fact fixtures,
+and retains the producer guard and complete standard-three axiom closure.
+
+After source authentication,
+{name Hex.RCF.RealCoefficients.TowerCompile.compile}`TowerCompile.compile`
+composes arithmetic from checked leaves in a retained ordinary-real tower
+model. It uses that context's total stored operations and their interpretation
+laws, including a repeated product for natural powers. A leaf supplies a stored
+expression and a proof of its exact original real value; a proof for another
+source or context is rejected. Rational literals and casts use bounded rational
+normalization. This does not install a field instance on stored expressions.
+
+```lean
+open Lean Hex.RealFormula Hex.Reflect
+open Hex.RealFormula.Reify
+open Hex.RCF.RealCoefficients
+meta def quoteTowerArithmetic
+ (model source : Expr)
+ (leaf : Expr → ReifyM
+ (Option TowerCompile.Term))
+ (config : Reify.Config)
+ (used : BudgetUsage) :=
+ RootQuote.runWith (do
+ let term ←
+ TowerCompile.compile
+ model leaf source
+ pure ⟨term.expression, term.proof,
+ (← get).budget.consumed⟩)
+ config used
+```
+
+The returned proof identifies the model's value of the stored expression with
+the source. For an existing prepared sentence,
+{name Hex.RCF.RealCoefficients.TowerCompile.prepareWith}`prepareWith` compiles
+both ordered inventories: coefficients first and original divisors separately.
+The enclosing request must continue the source preparation's recorded usage;
+resetting that accounting or lowering a limit below prior usage is rejected.
+Every original divisor is retained,
+including one under zero multiplication. Compiling its arithmetic does not
+prove it nonzero or accept the sentence. A declining leaf restores its
+metavariables and declarations before arithmetic continues; terminal failure
+and exhaustion use the enclosing transaction's rollback.
+
+Nine source checks include a rational cast, the selected √2, compound division,
+inversion and natural powers. They use 247–2,284 charged proof nodes. A fresh
+module rechecks 36 actual theorem bodies, including private generated proofs,
+with 35 nonempty kernel traces and the standard three axioms. The selected leaf
+identity and real parent model remain supplied. This arithmetic interface does
+not discover arbitrary source roots, assemble frozen histories or establish
+complete certificate acceptance.
+
+{name Hex.RCF.RealCoefficients.CellQuote.valuationWith}`CellQuote.valuationWith`
+assembles ordered scalar identities into equality of the entire source
+valuation for a supplied native coordinate function. Coordinate and proof
+counts must match the source; every finite branch is checked in the ordinary
+kernel. Closed inputs and empty coefficient families are supported. Swapped
+coordinates or proofs, missing entries, a wrong coordinate count and unresolved
+coordinate metavariables are rejected. Rejection restores the enclosing
+transaction's declarations and metavariables.
+
+```lean
+open Lean Hex.RealFormula Hex.Reflect
+open Hex.RealFormula.Reify
+open Hex.RCF.RealCoefficients
+meta def quoteSourceValuation
+ (source : Reify.Source)
+ (model values : Expr)
+ (identities : Array Expr)
+ (config : Reify.Config)
+ (used : BudgetUsage) :=
+ RootQuote.runWith (do
+ let proof ← CellQuote.valuationWith
+ source model values identities
+ pure ⟨values, proof,
+ (← get).budget.consumed⟩)
+ config used
+```
+
+The supplied usage continues the enclosing preparation and quotation work;
+the complete source example assembles this identity in its existing request.
+
+The zero-, one- and two-coordinate conformance requests consume 7,590, 11,174
+and 16,484 charged nodes, including source preparation, arithmetic and finite
+coordinate-function construction. Their fresh importing audit rechecks 14
+actual theorem bodies with 13 nonempty traces and exactly the standard three
+axioms. Original divisor identities remain separate obligations for source
+finishing; a valuation equality alone does not establish them.
+
+The native producer {name Hex.RCF.RealCoefficients.SourceBuild.build}`SourceBuild.build`
+can discover a selected source from its defining polynomial and a window
+polynomial whose sign is positive at exactly one of its real roots. For an
+isolating square, use `SourceIdentity.margin` as that window. The producer
+enumerates roots with the existing family algorithm, visits every candidate,
+and proposes the equation and window packets for the unique positive match.
+Two matches produce `ambiguous`; no match produces `unselected`. A failed
+equation or enclosure calculation remains an error.
+
+This direct API example proposes the positive root of X²−2, using its checked
+source square:
+
+```lean
+open Hex Hex.RealClosure
+open Hex.RCF.RealCoefficients
+
+def proposeSquareRoot
+ (registry :
+ BaseContext.Registry) :=
+ Id.run do
+ let parent :=
+ RealClosure.NumberField.base
+ registry
+ let polynomial : parent.Poly :=
+ DensePoly.ofCoeffs
+ #[⟨-2⟩, ⟨0⟩, ⟨1⟩]
+ let margin :=
+ SourceIdentity.margin
+ SquareTwo.square
+ let window : parent.Poly :=
+ DensePoly.ofCoeffs
+ (margin.coeffs.map
+ fun coefficient => ⟨coefficient⟩)
+ return SourceBuild.build
+ polynomial window
+
+#eval
+ let proposal :=
+ proposeSquareRoot
+ (fun _ => none)
+ proposal.toOption.isSome
+```
+
+The output reports proposal production. Independent frozen replay establishes
+the selected real identity. `ScalarPacket.buildParts` retains the proposed
+polynomial, sign and graph separately; its `packet` method preserves the
+existing three-field scalar format. `SourceIdentity.quoteWith` checks those
+fields at the exact restored descriptor and original source alias.
+
+`ScalarPacket.buildParts_success` and `build_success` prove actual packet
+production for every query at a validated descriptor with a lawful ordinary-real
+parent model. They consume the owner's selected-sign production theorem,
+without assuming a successful table or producer result. Acceptance of the
+frozen serialized packet remains a separate obligation.
+
+The [enumerated-source controls](https://github.com/kim-em/hex-dev/blob/main/conformance/HexRCF/SourceBuild.lean)
+produce both quadratic conjugates and a positive cubic root from X³−2, compare
+their complete bytes with frozen constructor literals, and independently
+validate all six scalar graphs. They also reject an ambiguous window, empty
+and zero windows, a wrong source equation and duplicate roots. The separate
+[ordinary quotation](https://github.com/kim-em/hex-dev/blob/main/conformance/HexRCF/EnumeratedSource/Quote.lean)
+identifies these roots from the frozen descriptors and packets, with the
+rational model, alias selection and coefficient-map laws supplied. Its three
+quotation requests charge 6,371,355, 6,442,217 and 8,127,841 proof nodes
+respectively; the separate final driver checks and exports are outside those
+counts. The combined build
+took 624 seconds and peaked at 2.2 GiB on the shared host. These costs describe
+three fixed proof constructions. General predecessor-history assembly and
+automatic source discovery from a tactic goal remain separate work.
+
+When a source already supplies an isolating square, a bounded proposal avoids
+constructing all real roots and their derivative words. The existing
+{name Hex.RCF.RealCoefficients.SourceBuild.buildOn}`SourceBuild.buildOn`
+checks an open interval with root-free endpoints and exactly one root, then
+still produces the equation and original square-margin packets. It rejects
+invalid endpoints, absent or ambiguous roots; it does not retry enumeration.
+For this rational source, twice the square's half-width supplies candidate
+endpoints. The checked count and subsequent source identity establish their
+meaning; the producer assumes no unchecked interval-isolation claim.
+
+```lean
+def proposeBoundedRoot
+ (registry :
+ BaseContext.Registry) :=
+ Id.run do
+ let parent :=
+ RealClosure.NumberField.base
+ registry
+ let square := SquareTwo.square
+ let embed (x : Rat) :
+ parent.Value := ⟨x⟩
+ let polynomial :=
+ DensePoly.ofCoeffs
+ #[embed (-2), embed 0, embed 1]
+ let margin :=
+ SourceIdentity.margin square
+ let window :=
+ DensePoly.ofCoeffs
+ (margin.coeffs.map embed)
+ let center := square.re.toRat
+ let radius :=
+ 2 * square.halfWidth.toRat
+ return SourceBuild.buildOn
+ polynomial window
+ (.finite (embed (center-radius)))
+ (.finite (embed (center+radius)))
+
+#eval
+ let proposal :=
+ proposeBoundedRoot
+ (fun _ => none)
+ proposal.toOption.isSome
+```
+
+The [bounded-source controls](https://github.com/kim-em/hex-dev/blob/main/conformance/HexRCF/BoundedSource.lean)
+produce both quadratic conjugates and the cubic source, retaining 25,477
+canonical bytes. Separate ordinary-kernel quotation authenticates their
+original identities at 687,781, 690,200 and 731,070 charged proof nodes,
+respectively, with the unchanged one-million-node default. Final driver checks
+and exports are outside these counts. The first default-budget quotation
+module built in 49 seconds. The combined native/proof/fresh-audit build took
+83 seconds and peaked at 1.9 GiB. These fixed observations are not a matched
+timing comparison. The source alias, rational model and coefficient-map laws are
+still supplied. Bounded proposals do not discover a general predecessor
+history, prove complete cell coverage or complete the tactic's algebraic
+decision procedure.
+
`CellQuote.finishOperations` takes the supplied-operation acceptance expression
and an ordinary proof that its result is `some ()`. It kernel-checks that exact
equation, transports it to the canonical checker, and performs the original
diff --git a/HexManual/Chapters/HexRCF/RootQuote.lean b/HexManual/Chapters/HexRCF/RootQuote.lean
index 1dcb09df81..75d1c31815 100644
--- a/HexManual/Chapters/HexRCF/RootQuote.lean
+++ b/HexManual/Chapters/HexRCF/RootQuote.lean
@@ -11,6 +11,12 @@ import HexRCF.SharedQuoteCases
import HexRCF.RecursiveScalarPublic
import HexRCF.SignPacketQuote
import HexRCF.PublicSignPacketValues
+import HexRCF.RootHeaderValues
+import HexRCF.RootContextConformance
+import HexRCF.FrozenSignatureProofs
+import HexRCF.ProofFunctionPublic
+import HexRCF.QuotientQuotePublic
+import HexRCF.TreeQuotePublic
open Verso.Genre Manual
open Verso.Genre.Manual.InlineLean
@@ -49,6 +55,105 @@ meta def quoteSuppliedRoot
config used
```
+Quotation follows the representative of a closed quotient when selecting
+reducibility boundaries. This lets a formula polynomial stored in a tree map
+expose its term list. Protected replay functions and canonical coefficient
+decoders retain their existing boundaries. The public regression checks the
+original reader for a two-term polynomial:
+
+```lean
+open Hex.RCF in
+example :
+ QuotientQuote.reader = some 7 :=
+ QuotientQuotePublic.accepted
+```
+
+Its exact 92-node budget succeeds, one node less exhausts, and a wrong term
+count rejects. The controls check caller-state restoration; a fresh importing
+audit checks nine theorem bodies and four definitions with the unchanged
+producer guard and complete standard-three axiom closure.
+
+Tree replay uses its public leaf and split equations before opening the local
+node checks. Keeping that boundary explicit avoids kernel conversion through
+an entire replay merely to compare two Boolean expressions. The checked
+readers retain different values for a valid split and its swapped children:
+
+```lean
+open Hex.RCF in
+example :
+ TreeQuote.splitTrue.toOption =
+ some 31 :=
+ TreeQuotePublic.split_true
+
+open Hex.RCF in
+example :
+ TreeQuote.splitFalse.toOption =
+ some 37 :=
+ TreeQuotePublic.split_false
+```
+
+The second reader selects its diagnostic branch; it does not accept the
+changed certificate. Readers returning an error abort quotation and restore
+caller state. The controls also check exact and one-node-below budgets.
+These reader equations still need source binding and real interpretation
+before they can prove a real goal.
+
+Checked replay data may occur inside a Boolean condition. Quotation keeps
+closed helpers whose types mention a protected replay function attached to
+that function during conversion. The conformance examples cover inline proof
+terms and separately retained checked arrays, including false results and
+caller-state restoration. The original reader must expose the protected
+boundary; an opaque hiding definition still returns a structured rejection.
+
+Conversion preserves data type arguments while rewriting their Boolean
+computations. A helper's type can itself mention another checked replay helper;
+quotation retains those dependencies in order. Exposed function definitions
+remain available for the reductions used by the reader. Opaque proof helpers
+remain parameters. Function-valued conditionals retain their applied arguments.
+Dependencies appearing in retained function bodies are collected as well.
+Closed data constructors with proof fields depending on replay retain their
+ordinary projection reductions. The same data is retained in helper types and
+bodies, so changing the computational context does not change those proof
+indices.
+
+The helper controls cover stored arrays with table-dependent element types and
+functions with fixed replay-dependent proof types. Matching and changed contexts,
+exact and one-node-below budgets, wrong-goal proposals and complete caller
+restoration are checked. Their fresh importing audit checks 96 theorem bodies
+and three definitions with the same producer and axiom restrictions.
+
+{name Hex.RCF.RealCoefficients.RowQuote.decoder}`RowQuote.decoder` reads the
+literal value of a checked selected-sign row through query, root and operation
+transports. It uses the row's recorded values and checked public equations.
+A backend can combine it with its existing scalar decoder in the same request:
+
+```lean
+open Lean Hex.RealFormula in
+open Hex.Reflect in
+open Hex.RCF.RealCoefficients in
+meta def quoteRootRows
+ (reader : Expr)
+ (scalar : RootQuote.DecoderM)
+ (config : Reify.Config)
+ (used : BudgetUsage) :=
+ RootQuote.run reader
+ (fun expression => do
+ let result ←
+ RowQuote.decoder expression
+ if let some proof := result then
+ return some proof
+ scalar expression)
+ config used
+```
+
+The row controls check positive, zero, negative and false comparisons, exact
+and one-node-below budgets, wrong-goal proposals and caller restoration.
+Opaque query transports at depths 1, 16 and 24 consume the same reflection
+budget; the recursion limit remains the caller's Lean limit. A fresh importing
+audit checks 70 theorem bodies and eight definitions, including the stored-value
+law for restoring supplied operations. These are reader and data-access proofs;
+source binding and real interpretation remain separate obligations.
+
For a rational predecessor, `RationalQuote.decoder` supplies these proposals
without a fixed list of permitted numerators. It recognizes canonical
`[0,n,d]` payloads with a positive coprime denominator and requires the whole
@@ -79,7 +184,7 @@ it does not reconstruct registry or provider histories. Regression tests check
positive and negative fractions, noncanonical or malformed payloads, and a
different codec whose decoding function is unchanged. The generic callback
also quotes the same frozen cubic independently of the original finite callback.
-Its fresh importing audit checks 192 actual generated theorem bodies under
+Its fresh importing audit checks 208 actual generated theorem bodies under
kernel producer diagnostics, with only the standard three axioms.
The [cubic regression](https://github.com/kim-em/hex-dev/blob/main/conformance/HexRCF/RootQuoteSource.lean) reads a
@@ -104,7 +209,9 @@ reflection budget remains exhaustion; exceptions, heartbeat limits, recursion
limits and cancellation remain terminal. No error selects another solver.
The failure regressions include a changed count with its unchanged matrix,
well-typed forged equations, inadmissible proposals and callback mutations before
-decline or failure. Both dependent conditional branches are checked. The helper
+decline or failure. Both dependent conditional branches are checked. Each
+selected branch proof is kernel checked separately before it is used in the
+conditional equation. The helper
forces ordinary kernel checking even when the caller disables it. A successful
call restores caller metavariables and retains checked auxiliaries together
with the environment effects of accepted callbacks. Rejection and failure restore
@@ -131,14 +238,17 @@ prevent abstraction; type and kernel failures remain terminal. A late rejection
the completed callback's auxiliaries. The fresh importing audit rechecks all
65 reachable callback/module theorem bodies and 14 definitions, forbidding
both native producers and canonical-codec unfolding. Exact and one-below nested
-budgets also cover the added transport work: 9,143 proof nodes, with exhaustion
-at the final 1,006-node charge after 8,137 nodes were consumed. The predecessor
+budgets also cover the added transport work: 19,448 proof nodes, with exhaustion
+at the final 1,006-node charge after 18,442 nodes were consumed. The predecessor
callback is required to run exactly once and retain 17 source nodes.
-All quotation regressions use `maxHeartbeats := 12000000`. The original root and rational
-cases use `maxRecDepth := 8192`; scalar, sign-packet, shared, callback/module examples and
-fresh body audits use depth 32768. Success under Lean's default limits has
-not been established. Each rewrite motive contains the current reader, so
+The original root and rational cases use `maxHeartbeats := 12000000` and
+`maxRecDepth := 8192`. Scalar, sign-packet, shared, callback/module examples and
+fresh body audits use depth 32768 with their declared heartbeat limits. The
+row and replay-helper controls use two million heartbeats; the deeper query
+transport controls use four million. Preparation budget repetition and
+wrong-sign rejection run as separate commands, each with twelve million
+heartbeats. Success under Lean's default limits has not been established. Each rewrite motive contains the current reader, so
proof storage and charged work can grow with the number of steps times the
reader size. Larger packets can exhaust the default reflection budget.
@@ -303,9 +413,9 @@ meta def quoteSelectedReader
The two-level regression checks one visit to its selected context followed by
one visit to its selected predecessor. Its lookup adds 19 source nodes per visit;
-the two charges retain 38 source nodes. It uses 14,374 proof nodes; one node less
+the two charges retain 38 source nodes. It uses 30,316 proof nodes; one node less
exhausts
-at the final 925-node charge after 13,449 consumed nodes. Missing facts decline
+at the final 925-node charge after 29,391 consumed nodes. Missing facts decline
without proposing another decode to the base callback after refusal.
Wrong-context facts and exhaustion remain terminal and restore the enclosing state.
Generic kernel-error restoration is covered by the root-quotation regressions.
@@ -323,8 +433,8 @@ A fresh importing audit checks the two-level fixture and this public consumer,
including accepted annotated decodes and a charged decline followed by acceptance:
87 actual theorem bodies and five definitions, complete standard-three axiom
closure, and no native producer or canonical-codec reduction. The direct constant
-and annotated cases use 12,792 and 12,801 proof nodes. A successful inner decline
-and retry uses 15,069 proof nodes and retains all three 19-node source charges.
+and annotated cases use 28,294 and 28,307 proof nodes. A successful inner decline
+and retry uses 31,022 proof nodes and retains all three 19-node source charges.
This helper consumes explicit facts; it does not authenticate original source expressions, discover
predecessor histories, produce missing sign evidence or install the general tactic.
@@ -366,9 +476,9 @@ example :
decoded_value
```
-Quoting the parent and packet in one request consumes 73,992 proof nodes.
+Quoting the parent and packet in one request consumes 268,798 proof nodes.
With the frozen parent and its equality already available, the packet consumes
-44,385; a limit one node lower exhausts at the final 23-node charge. Decoding the
+174,189; a limit one node lower exhausts at the final 23-node charge. Decoding the
coefficient from that fact consumes 966 more nodes in its separate request.
The controls check caller metavariable restoration after successful decoding
and final exhaustion, reject an empty graph, and reject a forged context equality
@@ -411,8 +521,22 @@ For a dependent match, quotation moves trailing branch-equality proofs along
the checked equation for the match's subject. This uses ordinary equality
elimination with an abstract subject, then instantiates the checked equation.
Moved proofs are checked separately before later replay steps. The result type
-must stay fixed. Independent trailing data is retained; data whose type depends
-on the subject or its branch proofs remains unsupported. During replay-law
+must stay fixed. Independent trailing data is retained. A function with one
+proof argument can also move when its result type reduces to a fixed type.
+The original function is retained and only its proof input is transported.
+Other data indexed by the changed subject or its branch proofs is still refused,
+including functions returning such data.
+The public consumer checks the preserved result:
+
+```lean
+open Hex.RCF in
+example :
+ DependentQuote.continuedFunction =
+ some 29 :=
+ ProofFunctionPublic.continued
+```
+
+During replay-law
conversion, an explicit checked function boundary is first kept abstract, then instantiated
with the actual function and its public equation. The fresh importing audit
checks the resulting private bodies as well as their full axiom closure.
@@ -423,3 +547,140 @@ handled without consulting that callback.
Wrong signs, changed polynomials and context swaps in either nodes or nested
moments are checked refusal cases. These helpers consume supplied histories
and evidence; they do not install the general real-coefficient tactic.
+
+
+{name Hex.RCF.RealCoefficients.RootHeader.quoteWith}`RootHeader.quoteWith`
+accepts the complete original `RootReplay.readDescriptor` application. It quotes
+that reader, obtains the independently parsed raw subject through the public
+`readDescriptor_subject` law, and checks that the reconstructed root has exactly
+that raw subject. All original instance arguments are retained. The caller runs
+the action inside `RootQuote.runWith`, so both reads and the final binding share
+one budget and transaction. No pre-existing equation for the proposed root's
+header is required.
+
+The public regression constructs a new root and context from that result,
+quotes the sign packet for X with fully numerical graph fields, and decodes a
+coefficient using its fact. The
+coefficient denotes the newly reconstructed root and is positive:
+
+```lean
+open Hex.RCF.RootHeaderPacket in
+example : coefficientReal = realRoot :=
+ coefficient_value
+
+open Hex.RCF.RootHeaderPacket in
+example : 0 < coefficientReal :=
+ coefficient_positive
+```
+
+The fresh importing audit includes the generated binding, packet reader,
+coefficient decoding and real-value proofs. It rejects dependencies on the
+older fixture's handwritten header and reader equations. Invalid root-reader
+versions and counts restore caller state; packet controls also change the
+polynomial, sign and node or nested-moment context.
+
+The default quotation rules recognize `Signature.codec.decode` applied to the
+canonical encoding of its actual signature argument, using the existing public
+roundtrip law. This handles distinct signature subjects without a fixture
+callback. It does not connect a separately frozen numerical signature to that
+encoding. {name Hex.RCF.RealCoefficients.SignatureQuote.decoder}`SignatureQuote.decoder`
+uses the owner's public literal equation and a checked binding of the supplied
+JSON to its exact signature. It handles signature payloads selected from frozen
+graph fields without running the signature parser during proof construction.
+Distinct signature subjects, wrong bindings, exact budgets and one-node-below
+budgets are checked in a fresh importing regression:
+
+```lean
+open Hex.RCF.FrozenSignature in
+example : readFirst.toOption =
+ some first :=
+ readFirst_checked
+
+open Hex.RCF.FrozenSignature in
+example : readSecond.toOption =
+ some second :=
+ readSecond_checked
+```
+
+The cubic packet retains frozen numerical node and nested-moment signatures
+for its rational predecessor. A signature's serialization identity does not
+validate a registry or selected root, and does not construct literal bindings
+for arbitrary root frames in a deeper tower. These helpers consume supplied
+readers and histories; they do not discover an
+arbitrary real source's selected embedding or install the general tactic.
+
+
+{name Hex.RCF.RealCoefficients.RootContext.packWith}`RootContext.packWith`
+then assembles an actual native root context from a closed retained parent and
+its checked descriptor. It keeps the existing native operations, checks the
+child signature, and returns the frame's encoding equation. The frame remains
+the owner's `rootData` serialization expression. Constructing this typed
+context does not freeze that expression or authenticate an arbitrary history.
+
+The same decoded coefficient can be interpreted through the owner's ordinary
+real model of the packed context, retaining its selected value and sign:
+
+```lean
+open Hex.RCF in
+open RootContextCases in
+open RootHeaderPacket in
+example : model.value coefficient =
+ realRoot :=
+ value_checked
+
+open Hex.RCF in
+open RootContextCases in
+open RootHeaderPacket in
+example : 0 < model.value coefficient :=
+ positive_checked
+```
+
+The packing budget covers context and signature proof construction. Model
+construction is checked separately; its cost is not included in that packing
+count. Exact and one-node-below budgets are tested. A descriptor for the parent
+carrier cannot be packed into its child carrier, and the failing call restores
+caller assignments and declarations. Fresh importing checks audit the actual
+metadata, model and value proofs. The new packing bodies must not evaluate
+root-data serialization or graph encoding, in addition to the existing native
+producer exclusions. Fully numerical frame/history reconstruction and the
+general source-goal tactic remain separate obligations.
+
+{name Hex.RCF.RealCoefficients.RootPrepare.prepareWith}`RootPrepare.prepareWith`
+prepares the native context of a reconstructed descriptor for subsequent
+quotation. It checks closed inputs and the exact raw-header binding, then
+retains the descriptor and context behind checked private definitions. Its
+`source` is the original constructed context; `context` is the retained one,
+and `same` proves their equality. `rootEq` also retains the descriptor identity.
+The supplied cleanliness function is preserved.
+
+```lean
+open Lean Hex.RealFormula in
+open Hex.RCF.RealCoefficients in
+meta def prepareRootContext
+ (reader clean : Expr)
+ (scalar : RootQuote.DecoderM) :
+ Reify.ReifyM RootPrepare.Result := do
+ let header ← RootHeader.quoteWith
+ reader scalar
+ RootPrepare.prepareWith header clean
+```
+
+Run this action and subsequent quotation in one `RootQuote.runWith` request.
+Combine its decoder with the exact predecessor's scalar and signature
+decoders, and use `ScalarPacket.quoteWith` with `context` and `same` to restore
+the original reader's equation. The shared proof budget includes retained
+data, equations, simplifier visits and generated proof expressions. The
+simplifier's step limit is separately configurable; its exceptions remain
+terminal. Retention does not freeze root frames, authenticate a real source,
+or construct an ordinary-real model. Those conclusions require their existing
+separate bridges.
+
+A separate [selected-source packet study](https://github.com/kim-em/hex-dev/blob/b842ec5cc39b32e8a68cd1754b06222d29b9eb05/reports/hexrcf-source-replay-dimensions.md)
+retains 440 observations on 22 adapter-produced packets, varying degree, query count,
+coefficient size, interval precision and predecessor depth independently. It includes
+common and repeated roots, malformed evidence and resource-limit controls, and records
+serialized size, row sharing and memory. On this host, median cumulative selected-sign
+replay is about 0.84 ms at depth zero and 7.93 ms at depth two. Preparation and proof
+construction are excluded; reconstruction retains native predecessor arithmetic.
+These are numerical component observations, not full tactic timings or a general
+complexity bound.
diff --git a/HexManual/Chapters/HexRCF/RootTableQuote.lean b/HexManual/Chapters/HexRCF/RootTableQuote.lean
index 8d9a5e5db5..dccdcbfffb 100644
--- a/HexManual/Chapters/HexRCF/RootTableQuote.lean
+++ b/HexManual/Chapters/HexRCF/RootTableQuote.lean
@@ -68,7 +68,7 @@ example :
```
-The fresh importing conformance module checks all 86 reachable example theorem
+The fresh importing conformance module checks all 103 reachable example theorem
bodies and 14 definitions under the kernel producer guard, including private
auxiliaries and the final witness. The complete axiom closure contains only
`propext`, `Classical.choice` and `Quot.sound`. The stored polynomial request
diff --git a/HexRCF/HandlerTests/Admission.lean b/HexRCF/HandlerTests/Admission.lean
new file mode 100644
index 0000000000..2876381398
--- /dev/null
+++ b/HexRCF/HandlerTests/Admission.lean
@@ -0,0 +1,78 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+
+module
+
+public import HexRCF.Tactic
+
+public section
+
+open Lean Meta
+namespace Hex.RCF.AdmissionTests
+opaque hidden : Nat := 13
+inductive Link where
+ | nil
+ | cons (tail : Link)
+private meta def reference (expression : Expr) : MetaM Bool := do
+ let expression ← instantiateMVars expression
+ if expression.hasExprMVar then return false
+ for name in expression.getUsedConstants do
+ for axiomName in ← collectAxioms name do
+ unless [``propext,``Classical.choice,``Quot.sound].contains axiomName do return false
+ return true
+run_meta do
+ withoutModifyingEnv do
+ let mut previous := mkConst ``hidden
+ let mut expressions := #[previous,mkConst ``Link,mkConst ``Link.rec,
+ mkConst ``Quot.mk [.zero],mkConst ``Classical.choice [.zero],
+ mkConst ``sorryAx [.zero],mkConst ``sorryAx [.succ .zero]]
+ for i in [:64] do
+ let value ← mkAppM ``Nat.add #[previous,previous]
+ let name := mkPrivateName (← getEnv) (← mkFreshUserName `diamond)
+ previous ← mkAuxDefinition name (mkConst ``Nat) value (compile := false)
+ if i % 8 == 0 then expressions := expressions.push previous
+ expressions := expressions.push (← mkAppM ``Nat.add #[previous,previous])
+ let value ← mkAppM ``Nat.add #[previous,mkNatLit 1]
+ let left ← mkAuxDefinition (mkPrivateName (← getEnv) (← mkFreshUserName `left))
+ (mkConst ``Nat) value (compile := false)
+ let right ← mkAuxDefinition (mkPrivateName (← getEnv) (← mkFreshUserName `right))
+ (mkConst ``Nat) value (compile := false)
+ expressions := expressions.push (← mkAppM ``Nat.add #[left,right])
+ expressions := expressions.push (← mkFreshExprMVar (mkConst ``True))
+ let forbidden := mkConst ``sorryAx [.zero]
+ expressions := expressions.push (mkApp (mkLambda `unused .default (← inferType forbidden)
+ (mkConst ``True.intro)) forbidden)
+ for expression in expressions do
+ let expected ← reference expression
+ let actual ← try
+ Hex.RCF.checkAxioms `forestProbe expression
+ pure true
+ catch _ => pure false
+ unless expected == actual do
+ throwError "forest and authoritative admission policies disagree: {expression}"
+ logInfo m!"forest/reference agree on {expressions.size} imported/local/opaque/inductive/shared/forbidden/unresolved cases"
+-- Reuse an identical declaration name across rolled-back environments. A
+-- previous successful check must not mask a later forbidden dependency, and
+-- a failed check must not poison a later valid declaration with that name.
+run_meta do
+ let reused := Name.mkSimple "__rcfForestEnvironmentProbe"
+ for forbidden in #[false,true,false] do
+ let saved ← saveState
+ try
+ let value ← if forbidden then mkSorry (mkConst ``Nat) false else pure (mkNatLit 3)
+ let root ← mkAuxDefinition reused (mkConst ``Nat) value (compile := false)
+ let shared ← mkAppM ``Nat.add #[root,root]
+ let expected ← reference shared
+ let actual ← try
+ Hex.RCF.checkAxioms `forestEnvironment shared
+ pure true
+ catch _ => pure false
+ unless expected == !forbidden && actual == expected do
+ throwError "admission retained results across an environment rollback"
+ finally
+ saved.restore
+ logInfo "forest admission follows all three rolled-back environments"
+end Hex.RCF.AdmissionTests
diff --git a/HexRCF/README.md b/HexRCF/README.md
index 82bbee9f09..d8b2dcb819 100644
--- a/HexRCF/README.md
+++ b/HexRCF/README.md
@@ -388,8 +388,32 @@ slots. It quotes a nonconstant scalar query, decodes a coefficient from that
fact alone and proves its selected real value. Dependent branch proofs move
by checked equality elimination; explicit replay functions remain abstract
during conversion before instantiation. A fresh audit rechecks imported bodies
-with the unchanged producer guard. This does not supply the missing numerical
-signature equation or install the general tactic.
+with the unchanged producer guard. This does not install the general tactic.
+`RootHeader.quoteWith` reconstructs a root and independently parses its original
+raw subject through `RootReplay.readDescriptor_subject`. Their checked binding,
+quoted under one reflection budget, supplies the raw-root identity needed by a
+subsequent scalar packet. The [public consumer](../conformance/HexRCF/RootHeaderPacket.lean)
+constructs a new root/context, and the [coefficient consumer](../conformance/HexRCF/RootHeaderValues.lean)
+proves its selected real value and positivity without the old fixture's root
+identity. Canonical signature roundtrips use the existing public law at the
+actual encoded subject. `SignatureQuote.decoder` consumes the owner's public
+literal equation and a checked binding to the exact supplied signature. The
+new cubic packet retains frozen numerical node and nested-moment signatures;
+the [fresh signature tests](../conformance/HexRCF/FrozenSignatureProofs.lean)
+check distinct subjects and wrong bindings. This does not authenticate arbitrary
+registries or construct origin histories or deeper frozen root frames.
+`RootContext.packWith` assembles the actual native child from a closed retained
+parent and a checked descriptor, retaining the owner's serialization expression
+and checking its signature. The [ordinary-model regression](../conformance/HexRCF/RootContextConformance.lean)
+retains the coefficient's selected value and positive sign; its fresh audit
+also excludes serialization and graph encoding in the new packing bodies.
+This is checked typed-context construction, not fully frozen history assembly.
+`RootPrepare.prepareWith` retains a reconstructed descriptor and native context
+behind checked private definitions, with exact header and context equations.
+The [anonymous-reader regression](../conformance/HexRCF/RootPreparePacket.lean)
+composes its decoder with `ScalarPacket.quoteWith` to recover the original
+reader's equation. Header reconstruction, retention and replay share one
+request; its proof budget includes simplifier visits and generated expressions.
`SectionQuote.finish` freshly reifies the original target and checks its matrix,
valuation and ordered original-divisor identities before transporting a proof.
The [fresh-source tests](../conformance/HexRCF/SectionProduceConformance.lean)
diff --git a/HexRCF/Tactic.lean b/HexRCF/Tactic.lean
index 5b86f61b7c..8cba82d576 100644
--- a/HexRCF/Tactic.lean
+++ b/HexRCF/Tactic.lean
@@ -74,17 +74,48 @@ private meta opaque evalHandler (name : Name) : MetaM Handler
private meta def ordinaryAxiom (name : Name) : Bool :=
[``propext, ``Classical.choice, ``Quot.sound].contains name
+/-- Visit each local dependency once within one admission check. Imported
+closures use Lean's authoritative module inventories, including hidden bodies.
+The state is discarded before returning; no environment-sensitive cache persists. -/
+private meta partial def checkConstant (handler : Name) (environment : Environment)
+ (root current : Name) : StateRefT NameSet MetaM Unit := do
+ let seen : NameSet ← get
+ if seen.contains current then return
+ modify fun (seen : NameSet) => seen.insert current
+ if (environment.getModuleIdxFor? current).isSome then
+ for dependency in ← collectAxioms current do
+ unless ordinaryAxiom dependency do
+ throwError "rcf: handler {handler} proposed a proof using forbidden axiom {dependency} (through {root})"
+ return
+ let visit (expression : Expr) := expression.getUsedConstants.forM fun dependency =>
+ checkConstant handler environment root dependency
+ match environment.checked.get.find? current with
+ | some (.axiomInfo info) =>
+ unless ordinaryAxiom current do
+ throwError "rcf: handler {handler} proposed a proof using forbidden axiom {current} (through {root})"
+ visit info.type
+ | some (.defnInfo info) => visit info.type; visit info.value
+ | some (.thmInfo info) => visit info.type; visit info.value
+ | some (.opaqueInfo info) => visit info.type; visit info.value
+ | some (.quotInfo _) => pure ()
+ | some (.ctorInfo info) => visit info.type
+ | some (.recInfo info) => visit info.type
+ | some (.inductInfo info) =>
+ visit info.type
+ info.ctors.forM (checkConstant handler environment root)
+ | none => pure ()
+
/-- Optional solvers may depend only on Lean's standard logical axioms.
Imported dependency inventories also cover theorem bodies hidden by modules. -/
meta def checkAxioms (name : Name) (proof : Expr) : MetaM Unit := do
- let proof ← instantiateMVars proof
- -- Universe metavariables do not hide declarations in an inventory probe.
- -- Expression metavariables can hide arbitrary proof dependencies.
- if proof.hasExprMVar then throwError "rcf: handler {name} returned an unresolved proof"
- for constant in proof.getUsedConstants do
- for dependency in ← collectAxioms constant do
- unless ordinaryAxiom dependency do
- throwError "rcf: handler {name} proposed a proof using forbidden axiom {dependency} (through {constant})"
+ profileitM Exception "rcf axiom dependency check" (← getOptions) do
+ let proof ← instantiateMVars proof
+ -- Universe metavariables do not hide declarations in an inventory probe.
+ -- Expression metavariables can hide arbitrary proof dependencies.
+ if proof.hasExprMVar then throwError "rcf: handler {name} returned an unresolved proof"
+ let environment ← getEnv
+ let _ ← (proof.getUsedConstants.forM fun constant =>
+ checkConstant name environment constant constant).run ({} : NameSet)
/-- Screen closed expression data before native evaluation or proof acceptance.
Local hypotheses remain permitted; unresolved and nonstandard dependencies do not. -/
@@ -92,7 +123,9 @@ meta def checkExpr (name : Name) (expression : Expr) : MetaM Expr := do
let expression ← instantiateMVars expression
if expression.hasMVar then throwError "rcf: {name} contains unresolved metavariables"
checkAxioms name expression
- if (← getEnv).hasUnsafe expression then
+ let usesUnsafe ← profileitM Exception "rcf unsafe dependency check" (← getOptions) do
+ pure ((← getEnv).hasUnsafe expression)
+ if usesUnsafe then
throwError "rcf: {name} uses an unsafe declaration"
return expression
@@ -110,7 +143,9 @@ meta def checkProof (name : Name) (target proof : Expr)
unless agrees do
throwError "rcf: handler {name} proposed a proof of a different goal"
checkAxioms name proof
- if (← getEnv).hasUnsafe proof then
+ let usesUnsafe ← profileitM Exception "rcf unsafe dependency check" (← getOptions) do
+ pure ((← getEnv).hasUnsafe proof)
+ if usesUnsafe then
throwError "rcf: handler {name} proposed a proof using an unsafe declaration"
let proof ← profileitM Exception (category ++ " candidate check") (← getOptions) do
withOptions (fun opts => debug.skipKernelTC.set (Elab.async.set opts false) false) do
diff --git a/adapters/HexRCF/RealCoefficients.lean b/adapters/HexRCF/RealCoefficients.lean
index d7623116f1..f2a0f8a7db 100644
--- a/adapters/HexRCF/RealCoefficients.lean
+++ b/adapters/HexRCF/RealCoefficients.lean
@@ -14,6 +14,8 @@ public meta import HexRCF.RealCoefficients.AlgebraicBounds
public meta import HexRCF.RealCoefficients.Finite
public meta import HexRCF.RealCoefficients.Reify
public meta import HexRCF.RealCoefficients.Interpret
+public import HexRCF.RealCoefficients.TowerCompile
+public meta import HexRCF.RealCoefficients.TowerCompile
public import HexRCF.RealCoefficients.RationalRoot
public meta import HexRCF.RealCoefficients.RationalRoot
public import HexRCF.RealCoefficients.RootAliases
@@ -24,6 +26,8 @@ public import HexRCF.RealCoefficients.Formula
public import HexRCF.RealCoefficients.Field
public import HexRCF.RealCoefficients.CommonPresentation
public import HexRCF.RealCoefficients.SourceIdentity
+public meta import HexRCF.RealCoefficients.SourceIdentityQuote
+public import HexRCF.RealCoefficients.SourceBuild
public import HexRCF.RealCoefficients.LiteralSign
public import HexRCF.RealCoefficients.SignIndex
public import HexRCF.RealCoefficients.FieldIndex
@@ -52,6 +56,12 @@ public meta import HexRCF.RealCoefficients.Quote
public import HexRCF.RealCoefficients.RootReplay
public import HexRCF.RealCoefficients.RootBuild
public import HexRCF.RealCoefficients.RootQuote
+public import HexRCF.RealCoefficients.RowQuote
+public meta import HexRCF.RealCoefficients.RowQuote
+public meta import HexRCF.RealCoefficients.RootHeader
+public meta import HexRCF.RealCoefficients.RootPrepare
+public meta import HexRCF.RealCoefficients.RootContext
+public meta import HexRCF.RealCoefficients.SignatureQuote
public meta import HexRCF.RealCoefficients.RootQuote
public meta import HexRCF.RealCoefficients.RationalQuote
public import HexRCF.RealCoefficients.ScalarQuote
diff --git a/adapters/HexRCF/RealCoefficients/CellOperations.lean b/adapters/HexRCF/RealCoefficients/CellOperations.lean
index 6fc6e3071c..fd76bd61ed 100644
--- a/adapters/HexRCF/RealCoefficients/CellOperations.lean
+++ b/adapters/HexRCF/RealCoefficients/CellOperations.lean
@@ -315,6 +315,34 @@ theorem formulaSector_eq (operations : Hex.RealClosure.Replay.Operations parent.
formulaSector operations value roots cut values formula sectorFields[cut])
return ⟨sections, fun cut => (sectors cut).sector, fun cut => (sectors cut).row⟩
+/-- Checked layout and pointwise row equations restore the complete dependent
+cell family. Original guards precede every layout and row read. -/
+theorem readCells_of_parts (operations : Hex.RealClosure.Replay.Operations parent.sign)
+ (value : ValueCodec parent.Value) (guards : List parent.Value)
+ (roots : RootReplay.Result p .negInf .posInf) (values : Fin n → parent.Value)
+ (formula : RealFormula.QF (n+1)) (packet : Codec.Json)
+ (fields : Vector Codec.Json 2)
+ (sectionFields : Vector Codec.Json roots.roots.length)
+ (sectorFields : Vector Codec.Json (roots.roots.length+1))
+ (sections : (i : Fin roots.roots.length) →
+ SelectedSigns (roots.roots.get i) (RepresentationSpecialize.prepare values formula))
+ (sectors : (cut : Fin (roots.roots.length+1)) → SectorReplay.Result roots cut values formula)
+ (guarded : guards.all (fun d => Decidable.decide (d ≠ 0)) = true)
+ (layout : Codec.tuple 2 packet = .ok fields)
+ (sectionLayout : Codec.tuple roots.roots.length fields[0] = .ok sectionFields)
+ (sectorLayout : Codec.tuple (roots.roots.length+1) fields[1] = .ok sectorFields)
+ (sectionChecked : ∀ i, formulaRow operations value (roots.roots.get i) values formula
+ sectionFields[i] = .ok (sections i))
+ (sectorChecked : ∀ cut, formulaSector operations value roots cut values formula
+ sectorFields[cut] = .ok (sectors cut)) :
+ readCells operations value guards roots values formula packet =
+ .ok ⟨sections, fun cut => (sectors cut).sector, fun cut => (sectors cut).row⟩ := by
+ have sectionRead := CellRead.collectWith_eq .binding _ _ sections sectionChecked
+ have sectorRead := CellRead.collectWith_eq .binding _ _ sectors sectorChecked
+ simp only [readCells, guarded, ite_true,
+ layout, sectionLayout, sectorLayout, CellRead.collect, sectionRead, sectorRead,
+ bind, Except.bind, pure, Except.pure]
+
theorem readCells_eq (operations : Hex.RealClosure.Replay.Operations parent.sign)
(value : ValueCodec parent.Value) (guards : List parent.Value)
(roots : RootReplay.Result p .negInf .posInf) (values : Fin n → parent.Value)
@@ -387,6 +415,25 @@ theorem check_eq (operations : Hex.RealClosure.Replay.Operations parent.sign)
check operations value values formula guards cert quantifier rootGraph cells =
CompleteReplay.check value values formula guards cert quantifier rootGraph cells := by
simp only [check, CompleteReplay.check, read_eq, fold_eq]
+
+/-- Compose independently checked root, cell and fold equations at the exact
+original packet. The dependent cell type retains the root reader's result. -/
+theorem check_of_parts (operations : Hex.RealClosure.Replay.Operations parent.sign)
+ (value : ValueCodec parent.Value) (values : Fin n → parent.Value)
+ (formula : RealFormula.QF (n+1)) (guards : List parent.Value)
+ (cert : RadicalCert parent.Value Signature) (quantifier : RealFormula.Quantifier)
+ (rootGraph cells : Codec.Json) (roots : RootReplay.Result cert.core .negInf .posInf)
+ (data : CellReplay.Evidence roots values formula) (verdict : Bool)
+ (rootChecked : RootReplay.readWith value guards cert.core .negInf .posInf
+ operations.one operations.add operations.sub operations.mul operations.natCast
+ operations.one_eq operations.add_eq operations.sub_eq operations.mul_eq operations.natCast_eq
+ rootGraph = .ok roots)
+ (cellsChecked : readCells operations value guards roots values formula cells = .ok data)
+ (foldChecked : fold operations values formula guards cert roots data quantifier = .ok verdict) :
+ check operations value values formula guards cert quantifier rootGraph cells = .ok verdict := by
+ simpa only [check, read, rootChecked, cellsChecked, bind, Except.bind, pure, Except.pure]
+ using foldChecked
+
/-- The owner assembly API checks an optional success predicate. Only an
accepted true verdict is a success; the public checker retains typed failures
and the diagnostic false result. -/
diff --git a/adapters/HexRCF/RealCoefficients/CellQuote.lean b/adapters/HexRCF/RealCoefficients/CellQuote.lean
index f5fdbafb5e..8a105c5d4b 100644
--- a/adapters/HexRCF/RealCoefficients/CellQuote.lean
+++ b/adapters/HexRCF/RealCoefficients/CellQuote.lean
@@ -8,97 +8,367 @@ public import HexRCF.RealCoefficients.CellReplay
public import HexRCF.RealCoefficients.CompleteReplay
public import HexRCF.RealCoefficients.CellOperations
public meta import HexRCF.RealCoefficients.Quote
+public meta import HexRCF.RealCoefficients.RootQuote
+public meta import HexRCF.RealCoefficients.RowPacketQuote
public meta section
namespace Hex.RCF.RealCoefficients.CellQuote
open Lean Meta
-/-- Shared original-source authentication for typed cells and independently
-read complete packets. Both entrypoints retain ordered guards and rollback. -/
+initialize registerTraceClass `Hex.RCF.CellQuote
+
+/-- Retain a checked reader result as data, so later stages use its exact
+dependent indices without reducing the original reader again. -/
+private def freeze (reader : Expr) (decode : RootQuote.DecoderM) :
+ Hex.RealFormula.Reify.ReifyM (Expr × Expr) := do
+ trace[Hex.RCF.CellQuote] "reader begins: {reader.getAppFn.constName?}; nodes={(← get).budget.consumed.proofNodes}"
+ let result ← RootQuote.quoteWith reader decode
+ trace[Hex.RCF.CellQuote] "reader checked: {reader.getAppFn.constName?}; nodes={(← get).budget.consumed.proofNodes}"
+ let kind ← inferType result.value
+ Hex.RealFormula.Reify.accountProof kind
+ Hex.RealFormula.Reify.accountProof result.value
+ let name := mkPrivateName (← getEnv) (← mkFreshUserName `CellData)
+ let value ← mkAuxDefinition name kind result.value (compile := false)
+ let equation ← mkAppM ``RootQuote.read_eq #[reader,result.value,result.proof]
+ let type ← whnf (← inferType reader)
+ let accepted ← mkAppOptM ``Except.ok
+ #[some type.getAppArgs[0]!,some type.getAppArgs[1]!,some value]
+ let target ← mkEq reader accepted
+ Hex.RealFormula.Reify.accountProof target
+ Hex.RealFormula.Reify.accountProof equation
+ return (value,← Hex.RCF.checkProof `CellQuote.reader target
+ (mkExpectedPropHint equation target))
+
+/-- Retain the supplied schema once rather than copying its syntax into every
+root and row conversion. The original checker remains the proof target. -/
+private def shareFormula (formula : Expr) : Hex.RealFormula.Reify.ReifyM Expr := do
+ if formula.isConst || formula.hasFVar || formula.hasLooseBVars then return formula
+ let kind ← inferType formula
+ Hex.RealFormula.Reify.accountProof kind
+ Hex.RealFormula.Reify.accountProof formula
+ let name := mkPrivateName (← getEnv) (← mkFreshUserName `CellFormula)
+ mkAuxDefinition name kind formula (compile := false)
+
+/-- Build a dependent finite function from its checked entries, including the
+empty family. Constructor reduction identifies every literal index. -/
+private partial def buildFamily (family : Expr) (entries : Array Expr) :
+ Hex.RealFormula.Reify.ReifyM Expr := Core.withIncRecDepth do
+ Hex.RealFormula.Reify.charge .proofNodes 1
+ if entries.isEmpty then
+ withLocalDeclD `i (← mkAppM ``Fin #[mkNatLit 0]) fun i => do
+ let value ← mkAppOptM ``Fin.elim0 #[some (mkApp family i),some i]
+ mkLambdaFVars #[i] value
+ else
+ let count := entries.size-1
+ let tailFamily ← withLocalDeclD `i (← mkAppM ``Fin #[mkNatLit count]) fun i => do
+ mkLambdaFVars #[i] (mkApp family (← mkAppM ``Fin.succ #[i]))
+ let tail ← buildFamily tailFamily (entries.extract 1 entries.size)
+ mkAppOptM ``Fin.cases #[some (mkNatLit count),some family,some entries[0]!,some tail]
+
+/-- Quote every member directly, before the dependent collection introduces
+its vector and alignment proofs. All child work stays in the enclosing budget. -/
+private def collectRows (reader : Expr) (decode : RootQuote.DecoderM) :
+ Hex.RealFormula.Reify.ReifyM (Expr × Expr) := do
+ let .forallE _ domain _ _ ← whnf (← inferType reader)
+ | throwError "rcf: expected an indexed cell reader"
+ unless domain.isAppOfArity ``Fin 1 do throwError "rcf: expected finite cell indices"
+ let bound := domain.appArg!
+ let some count ← getNatValue? (← withTransparency .all (whnf bound))
+ | throwError "rcf: cell count is not a closed numeral"
+ let family ← withLocalDeclD `i domain fun i => do
+ let type ← whnf (← inferType (mkApp reader i))
+ unless type.isAppOfArity ``Except 2 do throwError "rcf: indexed cell reader lost its result"
+ mkLambdaFVars #[i] type.getAppArgs[1]!
+ let mut values : Array Expr := #[]
+ let mut proofs : Array Expr := #[]
+ for i in [:count] do
+ Hex.RealFormula.Reify.charge .proofNodes 1
+ let index ← mkAppM ``Fin.mk #[mkNatLit i,← mkDecideProof (← mkLt (mkNatLit i) bound)]
+ let (value,proof) ← freeze (mkApp reader index).headBeta decode
+ values := values.push value
+ proofs := proofs.push proof
+ trace[Hex.RCF.CellQuote] "finite family begins: {count} entries"
+ let value ← instantiateMVars (← buildFamily family values)
+ let kind ← inferType value
+ Hex.RealFormula.Reify.accountProof kind
+ Hex.RealFormula.Reify.accountProof value
+ let name := mkPrivateName (← getEnv) (← mkFreshUserName `CellFamily)
+ let value ← mkAuxDefinition name kind value (compile := false)
+ let equations ← withLocalDeclD `i domain fun i => do
+ let source := mkApp reader i
+ let type ← whnf (← inferType source)
+ let output ← mkAppOptM ``Except.ok
+ #[some type.getAppArgs[0]!,some type.getAppArgs[1]!,some (mkApp value i)]
+ mkLambdaFVars #[i] (← mkEq source output)
+ let proof ← instantiateMVars (← buildFamily equations proofs)
+ let target ← withLocalDeclD `i domain fun i => mkForallFVars #[i] (mkApp equations i).headBeta
+ Hex.RealFormula.Reify.accountProof target
+ Hex.RealFormula.Reify.accountProof proof
+ let checked ← Hex.RCF.checkProof `CellQuote.family target proof
+ trace[Hex.RCF.CellQuote] "finite family checked: {count} entries; nodes={(← get).budget.consumed.proofNodes}"
+ return (value,checked)
+
+/-- Restore the literal layout, quote each section and sector, and compose
+their checked pointwise equations without normalizing the finite collector. -/
+private def readCellsWith (operations codec guards roots values formula packet guarded : Expr)
+ (decode : RootQuote.DecoderM) : Hex.RealFormula.Reify.ReifyM (Expr × Expr) := do
+ let rootList ← mkAppM ``RootReplay.Result.roots #[roots]
+ let count ← mkAppM ``List.length #[rootList]
+ let cuts ← mkAppM ``Nat.add #[count,mkNatLit 1]
+ let (fields,layout) ← freeze (← mkAppM ``Hex.SignDet.Codec.tuple #[mkNatLit 2,packet]) decode
+ let field := fun (i : Nat) => do
+ let index ← mkAppM ``Fin.mk
+ #[mkNatLit i,← mkDecideProof (← mkLt (mkNatLit i) (mkNatLit 2))]
+ mkAppM ``Vector.get #[fields,index]
+ let (sectionFields,sectionLayout) ← freeze
+ (← mkAppM ``Hex.SignDet.Codec.tuple #[count,← field 0]) decode
+ let (sectorFields,sectorLayout) ← freeze
+ (← mkAppM ``Hex.SignDet.Codec.tuple #[cuts,← field 1]) decode
+ let sectionReader ← withLocalDeclD `i (← mkAppM ``Fin #[count]) fun i => do
+ let root ← mkAppM ``List.get #[rootList,i]
+ let data ← mkAppM ``Vector.get #[sectionFields,i]
+ mkLambdaFVars #[i] (← mkAppM ``CellOperations.formulaRow
+ #[operations,codec,root,values,formula,data])
+ let (sections,sectionChecked) ← collectRows sectionReader decode
+ let sectorReader ← withLocalDeclD `cut (← mkAppM ``Fin #[cuts]) fun cut => do
+ let data ← mkAppM ``Vector.get #[sectorFields,cut]
+ mkLambdaFVars #[cut] (← mkAppM ``CellOperations.formulaSector
+ #[operations,codec,roots,cut,values,formula,data])
+ let (sectors,sectorChecked) ← collectRows sectorReader decode
+ let sectorValues ← withLocalDeclD `cut (← mkAppM ``Fin #[cuts]) fun cut => do
+ mkLambdaFVars #[cut] (← mkAppM ``SectorReplay.Result.sector #[mkApp sectors cut])
+ let sectorRows ← withLocalDeclD `cut (← mkAppM ``Fin #[cuts]) fun cut => do
+ mkLambdaFVars #[cut] (← mkAppM ``SectorReplay.Result.row #[mkApp sectors cut])
+ let constructor ← mkConstWithFreshMVarLevels ``CellReplay.Evidence.mk
+ let arguments : Array (Option Expr) ← forallTelescope (← inferType constructor) fun binders _ =>
+ binders.mapM fun binder => do
+ let name := (← getFVarLocalDecl binder).userName
+ return match name with
+ | `roots => some roots
+ | `values => some values
+ | `formula => some formula
+ | `sections => some sections
+ | `sectors => some sectorValues
+ | `sectorRows => some sectorRows
+ | _ => none
+ let data ← mkAppOptM' constructor arguments
+ let kind ← inferType data
+ Hex.RealFormula.Reify.accountProof kind
+ Hex.RealFormula.Reify.accountProof data
+ let name := mkPrivateName (← getEnv) (← mkFreshUserName `CellRows)
+ let data ← mkAuxDefinition name kind data (compile := false)
+ let candidate ← mkAppM ``CellOperations.readCells_of_parts
+ #[operations,codec,guards,roots,values,formula,packet,fields,sectionFields,sectorFields,
+ sections,sectors,guarded,layout,sectionLayout,sectorLayout,sectionChecked,sectorChecked]
+ let reader ← mkAppM ``CellOperations.readCells
+ #[operations,codec,guards,roots,values,formula,packet]
+ let type ← whnf (← inferType reader)
+ let accepted ← mkAppOptM ``Except.ok
+ #[some type.getAppArgs[0]!,some type.getAppArgs[1]!,some data]
+ let target ← mkEq reader accepted
+ Hex.RealFormula.Reify.accountProof target
+ Hex.RealFormula.Reify.accountProof candidate
+ return (data,← Hex.RCF.checkProof `CellQuote.cells target (mkExpectedPropHint candidate target))
+
+/-- Quote the supplied-operation checker in three stages: the complete root
+table, its dependent cells, and the strict fold. Each stage consumes the same
+reflection budget. Their checked equations compose at the original checker;
+false remains a diagnostic result and a rejected stage is terminal. The caller
+provides the transaction, for example through `RootQuote.runWith`. -/
+private def replayCore (program : Expr) (decode : RootQuote.DecoderM := fun _ => pure none) :
+ Hex.RealFormula.Reify.ReifyM RootQuote.Result := do
+ let program ← instantiateMVars program
+ Hex.RealFormula.Reify.accountProof program
+ let program ← Hex.RCF.checkExpr `CellQuote.program program
+ Meta.check program
+ unless program.getAppFn.isConstOf ``CellOperations.check do
+ throwError "rcf: expected the supplied-operation complete checker"
+ let arguments := program.getAppArgs
+ let info ← getFunInfoNArgs program.getAppFn arguments.size
+ unless arguments.size == info.paramInfo.size do
+ throwError "rcf: incomplete supplied-operation checker"
+ let inputs := arguments.zipIdx |>.filterMap fun (argument,index) =>
+ if info.paramInfo[index]!.binderInfo.isExplicit then some argument else none
+ unless inputs.size == 9 do throwError "rcf: incorrect supplied-operation checker arity"
+ let operations := inputs[0]!
+ let codec := inputs[1]!
+ let values := inputs[2]!
+ let formula ← shareFormula inputs[3]!
+ let guards := inputs[4]!
+ let cert := inputs[5]!
+ let quantifier := inputs[6]!
+ let core ← mkAppM ``RadicalCert.core #[cert]
+ let polynomialType ← whnf (← inferType core)
+ unless polynomialType.getAppFn.isConstOf ``Hex.DensePoly do
+ throwError "rcf: radical core is not a dense polynomial"
+ let element := polynomialType.getAppArgs[0]!
+ let lower := mkApp (mkConst ``Hex.Endpoint.negInf [.zero]) element
+ let upper := mkApp (mkConst ``Hex.Endpoint.posInf [.zero]) element
+ let mut arithmetic : Array Expr := #[]
+ for field in #[``Hex.RealClosure.Replay.Operations.one,``Hex.RealClosure.Replay.Operations.add,
+ ``Hex.RealClosure.Replay.Operations.sub,``Hex.RealClosure.Replay.Operations.mul,
+ ``Hex.RealClosure.Replay.Operations.natCast,``Hex.RealClosure.Replay.Operations.one_eq,
+ ``Hex.RealClosure.Replay.Operations.add_eq,``Hex.RealClosure.Replay.Operations.sub_eq,
+ ``Hex.RealClosure.Replay.Operations.mul_eq,``Hex.RealClosure.Replay.Operations.natCast_eq] do
+ arithmetic := arithmetic.push (← mkAppM field #[operations])
+ let rootReader ← mkAppM ``RootReplay.readWith
+ (#[codec,guards,core,lower,upper] ++ arithmetic ++ #[inputs[7]!])
+ let (roots,rootChecked) ← freeze rootReader decode
+ let readSame ← mkAppM ``RootReplay.readWith_eq
+ (#[codec,guards,core,lower,upper] ++ arithmetic ++ #[inputs[7]!])
+ let rootAccepted ← mkEqTrans (← mkEqSymm readSame) rootChecked
+ let guarded ← mkAppM ``RootReplay.read_guards
+ #[codec,guards,core,lower,upper,inputs[7]!,roots,rootAccepted]
+ let (cells,cellsChecked) ← readCellsWith operations codec guards roots values formula
+ inputs[8]! guarded decode
+ trace[Hex.RCF.CellQuote] "cells checked; nodes={(← get).budget.consumed.proofNodes}"
+ let fold ← mkAppM ``CellOperations.fold
+ #[operations,values,formula,guards,cert,roots,cells,quantifier]
+ trace[Hex.RCF.CellQuote] "fold begins; nodes={(← get).budget.consumed.proofNodes}"
+ let verdict ← RootQuote.quoteWith fold decode
+ trace[Hex.RCF.CellQuote] "fold checked; nodes={(← get).budget.consumed.proofNodes}"
+ let foldChecked ← mkAppM ``RootQuote.read_eq #[fold,verdict.value,verdict.proof]
+ let equation ← mkAppM ``CellOperations.check_of_parts
+ (inputs ++ #[roots,cells,verdict.value,rootChecked,cellsChecked,foldChecked])
+ let original ← mkAppM ``Except.toOption #[program]
+ let statement ← mkEq original (← mkAppM ``Option.some #[verdict.value])
+ let candidate ← mkAppM ``RootQuote.read_some #[program,verdict.value,equation]
+ Hex.RealFormula.Reify.accountProof candidate
+ let proof ← Hex.RCF.checkProof `CellQuote.replay statement candidate
+ return ⟨verdict.value,proof,(← get).budget.consumed⟩
+
+/-- Quote the exact complete checker with one attempt-local cache of checked
+row graphs. All child work consumes the caller's reflection budget. -/
+def replayWith (program : Expr) (decode : RootQuote.DecoderM := fun _ => pure none) :
+ Hex.RealFormula.Reify.ReifyM RootQuote.Result :=
+ RowQuote.withDecoder decode (fun decoder => replayCore program decoder)
+
+/-- Account before retaining or kernel-checking source finishing data. -/
+private def input (name : Name) (expression : Expr) : Hex.RealFormula.Reify.ReifyM Expr := do
+ Hex.RealFormula.Reify.accountProof expression
+ Hex.RCF.checkExpr name expression
+
+private def checked (name : Name) (target candidate : Expr) : Hex.RealFormula.Reify.ReifyM Expr := do
+ Hex.RealFormula.Reify.accountProof target
+ Hex.RealFormula.Reify.accountProof candidate
+ Hex.RCF.checkProof name target candidate
+
+/-- Source finishing in the caller's continued reflection request. The prepared
+source is untrusted: check its exact target, original divisor inventory and
+ordinary-kernel equivalence before composing it with the accepted checker. -/
+private def finishCore (packet : Bool) (source : Reify.Source)
+ (target checker accepted model valuationIdentity : Expr)
+ (guardIdentities : Array Expr) : Hex.RealFormula.Reify.ReifyM Expr := do
+ let target ← input `CellQuote.target target
+ let checker ← input `CellQuote.checker checker
+ let checkerName := if packet then ``CompleteReplay.check else ``CellReplay.check
+ unless checker.getAppFn.isConstOf checkerName do
+ throwError "rcf: expected the canonical cell checker"
+ let arguments := checker.getAppArgs
+ let information ← getFunInfoNArgs checker.getAppFn arguments.size
+ let mut inputs : Array Expr := #[]
+ for i in [:min arguments.size information.paramInfo.size] do
+ if information.paramInfo[i]!.binderInfo.isExplicit then inputs := inputs.push arguments[i]!
+ unless inputs.size == (if packet then 8 else 7) do
+ throwError "rcf: incorrect cell checker arity"
+ let offset := if packet then 1 else 0
+ let values := inputs[offset]!
+ let matrix := inputs[offset+1]!
+ let guards := inputs[offset+2]!
+ let quantifier := inputs[if packet then 5 else 6]!
+ let model ← input `CellQuote.model model
+ let resultType ← whnf (← inferType checker)
+ let trueResult := mkAppN (mkConst ``Except.ok [.zero, .zero])
+ (resultType.getAppArgs.push (mkConst ``Bool.true))
+ let accepted ← checked `CellQuote.accepted (← mkEq checker trueResult) accepted
+ let original ← instantiateMVars source.original
+ unless original == target do throwError "rcf: prepared cell source has a different original target"
+ let guardsOriginal ← Reify.guardSources target
+ let retained ← source.divisors.mapM instantiateMVars
+ unless guardsOriginal == retained do
+ throwError "rcf: prepared cell source has a different original divisor inventory"
+ let sourceType ← mkAppM ``Iff
+ #[← mkAppM ``Hex.RealFormula.Prenex.toProp #[source.formula,source.valuation],original]
+ let equivalence ← checked `CellQuote.equivalence sourceType source.proof
+ unless guardIdentities.size == source.divisors.size do
+ throwError "rcf: cell checker has a different original divisor identity count"
+ let length ← mkAppM ``List.length #[guards]
+ let count ← mkEq length (mkNatLit source.divisors.size)
+ let decision ← mkDecide count
+ let result ← ofExceptKernelException (Kernel.whnf (← getEnv) (← getLCtx) decision)
+ unless result.isConstOf ``Bool.true do
+ throwError "rcf: cell checker has a different original divisor count"
+ let _ ← checked `CellQuote.guardCount count (← mkDecideProof count)
+ let proofInputs := #[model] ++ inputs
+ let domains ← mkAppM (if packet then ``CompleteReplay.check_domains else ``CellReplay.check_domains)
+ ((proofInputs.push (mkConst ``Bool.true)).push accepted)
+ let domains ← checked `CellQuote.domains (← inferType domains) domains
+ for i in [:source.divisors.size] do
+ let bound ← mkDecideProof (← mkLt (mkNatLit i) length)
+ let index ← mkAppM ``Fin.mk #[mkNatLit i, bound]
+ let guard ← mkAppM ``List.get #[guards, index]
+ let interpreted ← mkAppM ``Hex.RealClosure.Tower.Model.value #[model, guard]
+ let identity ← checked `CellQuote.guardIdentity
+ (← mkEq interpreted source.divisors[i]!) guardIdentities[i]!
+ let member ← mkAppM ``List.get_mem #[guards, index]
+ let nonzero ← mkAppM' domains #[guard, member]
+ let realZero := (← inferType nonzero).getAppArgs.back!
+ let comparison ← withLocalDeclD `value (← inferType interpreted) fun value => do
+ let body ← mkAppM ``Ne #[value, realZero]
+ mkAppM ``congrArg #[← mkLambdaFVars #[value] body, identity]
+ let conclusion ← mkAppM ``Eq.mp #[comparison, nonzero]
+ let _ ← checked `CellQuote.divisor
+ (← mkAppM ``Ne #[source.divisors[i]!, realZero]) conclusion
+ let .forallE _ domain _ _ ← whnf (← inferType values)
+ | throwError "rcf: cell coefficients are not a finite valuation"
+ let valuation ← withLocalDeclD `i domain fun i => do
+ let value ← mkAppM ``Hex.RealClosure.Tower.Model.value #[model, mkApp values i]
+ mkLambdaFVars #[i] value
+ let valuationIdentity ← checked `CellQuote.valuationIdentity
+ (← mkEq valuation source.valuation) valuationIdentity
+ let formula ← mkAppM ``Hex.RealFormula.Prenex.quant
+ #[quantifier, ← mkAppM ``Hex.RealFormula.Prenex.matrix #[matrix]]
+ let formulaIdentity ← Quote.formulaEquality formula source.formula
+ let formulaIdentity ← checked `CellQuote.formulaIdentity
+ (← mkEq formula source.formula) formulaIdentity
+ let sentence ← mkAppM (if packet then ``CompleteReplay.check_sound else ``CellReplay.check_sound)
+ (proofInputs.push accepted)
+ let sentence ← checked `CellQuote.sentence
+ (← mkAppM ``Hex.RealFormula.Prenex.toProp #[formula, valuation]) sentence
+ let formulaCongr ← withLocalDeclD `sentence (← inferType formula) fun sentence => do
+ let body ← mkAppM ``Hex.RealFormula.Prenex.toProp #[sentence, valuation]
+ mkAppM ``congrArg #[← mkLambdaFVars #[sentence] body, formulaIdentity]
+ let fixed ← mkAppM ``Eq.mp #[formulaCongr, sentence]
+ let valuationCongr ← withLocalDeclD `valuation (← inferType source.valuation) fun valuation => do
+ let body ← mkAppM ``Hex.RealFormula.Prenex.toProp #[source.formula, valuation]
+ mkAppM ``congrArg #[← mkLambdaFVars #[valuation] body, valuationIdentity]
+ let specialized ← mkAppM ``Eq.mp #[valuationCongr, fixed]
+ let proof ← mkAppM ``Iff.mp #[equivalence, specialized]
+ checked `CellQuote.source source.original proof
+
+/-- Finish an independently quoted complete packet in the same budget as
+source preparation and replay. No source reification or fresh budget starts
+here. Original guards and all checked proof construction are charged. Run this
+inside `RootQuote.runWith` for complete failure rollback and continue with its
+returned usage. The supplied source equivalence, model and identities must
+prove the exact original goal; a false verdict cannot be quoted as success. -/
+def finishPacketWith (source : Reify.Source) (target checker accepted model valuationIdentity : Expr)
+ (guardIdentities : Array Expr := #[]) : Hex.RealFormula.Reify.ReifyM RootQuote.Result := do
+ let proof ← finishCore true source target checker accepted model valuationIdentity guardIdentities
+ return ⟨target,proof,(← get).budget.consumed⟩
+
private def finishWith (packet : Bool) (target checker accepted model valuationIdentity : Expr)
(guardIdentities : Array Expr := #[]) : MetaM Expr := do
let saved ← saveState
- let (result, _) ← tryFinally' (withNewMCtxDepth <| withOptions (fun options =>
- debug.skipKernelTC.set (Elab.async.set options false) false) do
- let target ← Hex.RCF.checkExpr `CellQuote.target target
- let checker ← Hex.RCF.checkExpr `CellQuote.checker checker
- let checkerName := if packet then ``CompleteReplay.check else ``CellReplay.check
- unless checker.getAppFn.isConstOf checkerName do
- throwError "rcf: expected the canonical cell checker"
- let arguments := checker.getAppArgs
- let information ← getFunInfoNArgs checker.getAppFn arguments.size
- let mut inputs : Array Expr := #[]
- for i in [:min arguments.size information.paramInfo.size] do
- if information.paramInfo[i]!.binderInfo.isExplicit then inputs := inputs.push arguments[i]!
- unless inputs.size == (if packet then 8 else 7) do
- throwError "rcf: incorrect cell checker arity"
- let offset := if packet then 1 else 0
- let values := inputs[offset]!
- let matrix := inputs[offset+1]!
- let guards := inputs[offset+2]!
- let quantifier := inputs[if packet then 5 else 6]!
- let model ← Hex.RCF.checkExpr `CellQuote.model model
- let resultType ← whnf (← inferType checker)
- let trueResult := mkAppN (mkConst ``Except.ok [.zero, .zero])
- (resultType.getAppArgs.push (mkConst ``Bool.true))
- let accepted ← Hex.RCF.checkProof `CellQuote.accepted (← mkEq checker trueResult) accepted
+ let (result,_) ← tryFinally' (do
let source ← match ← Reify.prepare target with
| .error error => throwError "rcf: {Hex.RealFormula.Reify.Error.toMessageData error}"
| .ok source => pure source
- unless guardIdentities.size == source.divisors.size do
- throwError "rcf: cell checker has a different original divisor identity count"
- let length ← mkAppM ``List.length #[guards]
- let count ← mkEq length (mkNatLit source.divisors.size)
- let decision ← mkDecide count
- let result ← ofExceptKernelException (Kernel.whnf (← getEnv) (← getLCtx) decision)
- unless result.isConstOf ``Bool.true do
- throwError "rcf: cell checker has a different original divisor count"
- let _ ← Hex.RCF.checkProof `CellQuote.guardCount count (← mkDecideProof count)
- let proofInputs := #[model] ++ inputs
- let domains ← mkAppM (if packet then ``CompleteReplay.check_domains else ``CellReplay.check_domains)
- ((proofInputs.push (mkConst ``Bool.true)).push accepted)
- let domains ← Hex.RCF.checkProof `CellQuote.domains (← inferType domains) domains
- for i in [:source.divisors.size] do
- let bound ← mkDecideProof (← mkLt (mkNatLit i) length)
- let index ← mkAppM ``Fin.mk #[mkNatLit i, bound]
- let guard ← mkAppM ``List.get #[guards, index]
- let interpreted ← mkAppM ``Hex.RealClosure.Tower.Model.value #[model, guard]
- let identity ← Hex.RCF.checkProof `CellQuote.guardIdentity
- (← mkEq interpreted source.divisors[i]!) guardIdentities[i]!
- let member ← mkAppM ``List.get_mem #[guards, index]
- let nonzero ← mkAppM' domains #[guard, member]
- let realZero := (← inferType nonzero).getAppArgs.back!
- let comparison ← withLocalDeclD `value (← inferType interpreted) fun value => do
- let body ← mkAppM ``Ne #[value, realZero]
- mkAppM ``congrArg #[← mkLambdaFVars #[value] body, identity]
- let conclusion ← mkAppM ``Eq.mp #[comparison, nonzero]
- let _ ← Hex.RCF.checkProof `CellQuote.divisor
- (← mkAppM ``Ne #[source.divisors[i]!, realZero]) conclusion
- let .forallE _ domain _ _ ← whnf (← inferType values)
- | throwError "rcf: cell coefficients are not a finite valuation"
- let valuation ← withLocalDeclD `i domain fun i => do
- let value ← mkAppM ``Hex.RealClosure.Tower.Model.value #[model, mkApp values i]
- mkLambdaFVars #[i] value
- let valuationIdentity ← Hex.RCF.checkProof `CellQuote.valuationIdentity
- (← mkEq valuation source.valuation) valuationIdentity
- let formula ← mkAppM ``Hex.RealFormula.Prenex.quant
- #[quantifier, ← mkAppM ``Hex.RealFormula.Prenex.matrix #[matrix]]
- let formulaIdentity ← Quote.formulaEquality formula source.formula
- let formulaIdentity ← Hex.RCF.checkProof `CellQuote.formulaIdentity
- (← mkEq formula source.formula) formulaIdentity
- let sentence ← mkAppM (if packet then ``CompleteReplay.check_sound else ``CellReplay.check_sound)
- (proofInputs.push accepted)
- let sentence ← Hex.RCF.checkProof `CellQuote.sentence
- (← mkAppM ``Hex.RealFormula.Prenex.toProp #[formula, valuation]) sentence
- let formulaCongr ← withLocalDeclD `sentence (← inferType formula) fun sentence => do
- let body ← mkAppM ``Hex.RealFormula.Prenex.toProp #[sentence, valuation]
- mkAppM ``congrArg #[← mkLambdaFVars #[sentence] body, formulaIdentity]
- let fixed ← mkAppM ``Eq.mp #[formulaCongr, sentence]
- let valuationCongr ← withLocalDeclD `valuation (← inferType source.valuation) fun valuation => do
- let body ← mkAppM ``Hex.RealFormula.Prenex.toProp #[source.formula, valuation]
- mkAppM ``congrArg #[← mkLambdaFVars #[valuation] body, valuationIdentity]
- let specialized ← mkAppM ``Eq.mp #[valuationCongr, fixed]
- let proof ← mkAppM ``Iff.mp #[source.proof, specialized]
- Hex.RCF.checkProof `CellQuote.source source.original proof)
+ let result ← RootQuote.runWith (do
+ let proof ← finishCore packet source target checker accepted model valuationIdentity guardIdentities
+ pure ⟨target,proof,(← get).budget.consumed⟩) {} source.usage
+ match result with
+ | .ok result => pure result.proof
+ | .error error => throwError "rcf: {Hex.RealFormula.Reify.Error.toMessageData error}")
(fun result => unless result.isSome do saved.restore)
return result
/-- Quote a checked typed cell fold at the freshly reified original goal. -/
@@ -156,4 +426,29 @@ def finishOperations (target program accepted model valuationIdentity : Expr)
| none => saved.restore
return result
+/-- Assemble the exact source valuation from ordered scalar identities. -/
+def valuationWith (source : Reify.Source) (model values : Expr) (proofs : Array Expr) :
+ Hex.RealFormula.Reify.ReifyM Expr := do
+ for input in #[model,values,source.valuation] do
+ if input.hasFVar || input.hasMVar || input.hasLooseBVars then
+ throwError "rcf: source valuation requires closed inputs"
+ Hex.RealFormula.Reify.accountProof input
+ let _ ← Hex.RCF.checkExpr `CellQuote.input input
+ Meta.check input
+ unless proofs.size == source.coefficients.size do
+ throwError "rcf: source coefficient proof count differs from its inventory"
+ let domain ← mkAppM ``Fin #[mkNatLit source.coefficients.size]
+ let .forallE _ actualDomain _ _ ← whnf (← inferType values)
+ | throwError "rcf: source coordinates are not a finite function"
+ unless ← isDefEq actualDomain domain do
+ throwError "rcf: source coordinate count differs from its inventory"
+ let valuation ← withLocalDeclD `i domain fun i => do
+ let value ← mkAppM ``Hex.RealClosure.Tower.Model.value #[model,mkApp values i]
+ mkLambdaFVars #[i] value
+ let family ← withLocalDeclD `i domain fun i => do
+ mkLambdaFVars #[i] (← mkEq (mkApp valuation i) (mkApp source.valuation i))
+ let pointwise ← buildFamily family proofs
+ let proof ← mkAppM ``funext #[pointwise]
+ checked `CellQuote.sourceValuation (← mkEq valuation source.valuation) proof
+
end Hex.RCF.RealCoefficients.CellQuote
diff --git a/adapters/HexRCF/RealCoefficients/CellRead.lean b/adapters/HexRCF/RealCoefficients/CellRead.lean
index e7857592fe..5c59ccc058 100644
--- a/adapters/HexRCF/RealCoefficients/CellRead.lean
+++ b/adapters/HexRCF/RealCoefficients/CellRead.lean
@@ -57,6 +57,17 @@ theorem collectWith_success {ε : Type} {m : Nat} (failure : ε) (P : Fin m →
apply cast_entry
simp only [Fin.getElem_fin, Vector.getElem_ofFn]
+/-- Pointwise checked readers restore the supplied dependent family exactly. -/
+theorem collectWith_eq {ε : Type} {m : Nat} (failure : ε) (P : Fin m → Type)
+ (read : (i : Fin m) → Except ε (P i)) (values : (i : Fin m) → P i)
+ (produced : ∀ i, read i = .ok (values i)) :
+ collectWith failure P read = .ok values := by
+ obtain ⟨restored,checked,entries⟩ := collectWith_success failure P read
+ (fun i => ⟨values i,produced i⟩)
+ have same : restored = values := funext fun i =>
+ Except.ok.inj ((entries i).symm.trans (produced i))
+ simpa only [same] using checked
+
/-- Restore every section and sector in exact order after original guard
preflight. All child errors propagate through the strict finite collection. -/
@[expose] def read (value : ValueCodec parent.Value) (guards : List parent.Value)
diff --git a/adapters/HexRCF/RealCoefficients/RootContext.lean b/adapters/HexRCF/RealCoefficients/RootContext.lean
new file mode 100644
index 0000000000..391747c56d
--- /dev/null
+++ b/adapters/HexRCF/RealCoefficients/RootContext.lean
@@ -0,0 +1,80 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+module
+
+public import HexRealClosure.TowerContext
+public meta import HexRCF.RealCoefficients.RootQuote
+
+public meta section
+
+/-! Checked native context assembly retaining the actual predecessor and descriptor. -/
+namespace Hex.RCF.RealCoefficients.RootContext
+open Lean Meta Hex Hex.RealClosure Hex.SignDet Hex.RealFormula.Reify
+
+/-- A checked native context retaining the actual parent chain and descriptor.
+The frame is the owner's serialization expression; freezing it is separate. -/
+structure Result where
+ context : Expr
+ chain : Expr
+ frame : Expr
+ encoded : Expr
+ checked : Expr
+ binding : Expr
+ usage : Hex.Reflect.BudgetUsage
+
+private def closed (expression : Expr) : ReifyM Expr := do
+ let expression ← instantiateMVars expression
+ if expression.hasFVar || expression.hasMVar || expression.hasLooseBVars then
+ throwError "rcf: root context packing requires closed retained inputs"
+ let expression ← Hex.RCF.checkExpr `RootContext.input expression
+ Meta.check expression
+ return expression
+
+/-- Assemble the owner's native root constructor from a closed retained parent
+and a checked descriptor of its exact indexed type. The frame retains
+`rootData parent.codec descriptor`; the identity conversion `Literal.ofJson`
+checks its encoding without freezing or evaluating that serialization.
+No arithmetic is reimplemented and no ring instance is added to stored values.
+Use the enclosing `RootQuote.runWith` transaction for restoration and budgets.
+Source-alias authentication and frozen origin/history assembly remain separate. -/
+def packWith (parent descriptor : Expr) : ReifyM Result := do
+ Core.checkSystem "native root context packing"
+ accountProof parent
+ accountProof descriptor
+ let parent ← closed parent
+ let descriptor ← closed descriptor
+ let packed ← withTransparency .all (whnf parent)
+ unless packed.getAppFn.isConstOf ``Tower.Context.pack do
+ throwError "rcf: root packing requires an actual retained parent chain"
+ let chain := packed.getAppArgs.back!
+ let codec ← mkAppM ``Tower.Context.codec #[parent]
+ let frame ← mkAppM ``Tower.rootData #[codec,descriptor]
+ accountProof frame
+ let statement ← mkEq (← mkAppM ``Tower.Literal.ofJson #[frame])
+ (← mkAppM ``Option.some #[frame])
+ let candidate := mkExpectedPropHint (← mkEqRefl (← mkAppM ``Option.some #[frame])) statement
+ accountProof statement
+ accountProof candidate
+ let encoded ← Hex.RCF.checkProof `RootContext.frame statement candidate
+ let next ← mkAppM ``Tower.Chain.root #[chain,descriptor,frame,encoded]
+ let context ← closed (← mkAppM ``Tower.Context.pack #[next])
+ accountProof context
+ let statement ← mkEq context context
+ let candidate ← mkEqRefl context
+ accountProof statement
+ accountProof candidate
+ let checked ← Hex.RCF.checkProof `RootContext.checked statement candidate
+ let signature ← mkAppM ``Tower.Context.signature #[context]
+ let expected ← mkAppM ``Tower.Signature.extend
+ #[← mkAppM ``Tower.Context.signature #[parent],frame]
+ let statement ← mkEq signature expected
+ let candidate := mkExpectedPropHint (← mkEqRefl expected) statement
+ accountProof statement
+ accountProof candidate
+ let binding ← Hex.RCF.checkProof `RootContext.binding statement candidate
+ return ⟨context,chain,frame,encoded,checked,binding,(← get).budget.consumed⟩
+
+end Hex.RCF.RealCoefficients.RootContext
diff --git a/adapters/HexRCF/RealCoefficients/RootHeader.lean b/adapters/HexRCF/RealCoefficients/RootHeader.lean
new file mode 100644
index 0000000000..00fd856625
--- /dev/null
+++ b/adapters/HexRCF/RealCoefficients/RootHeader.lean
@@ -0,0 +1,59 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+module
+public import HexRealClosure.RootReplay
+public meta import HexRCF.RealCoefficients.RootQuote
+public meta section
+
+/-! Reconstruct a checked root and its raw subject from the original complete reader. -/
+open Lean Meta Hex Hex.RealClosure Hex.SignDet Hex.RCF.RealCoefficients
+namespace Hex.RCF.RealCoefficients.RootHeader
+
+/-- Independently checked reconstruction of a root and its original raw subject.
+The retained root result includes both reads and the final binding in its usage. -/
+structure Result where
+ root : RootQuote.Result
+ raw : Expr
+ parsed : Expr
+ binding : Expr
+
+/-- Derive the complete raw-header identity from the original checked root
+reader and the independently quoted subject reader. Retain all original
+implicit instances by taking the subject reader from the owner's theorem.
+The caller supplies the transaction through `RootQuote.runWith`; all quotation,
+source parsing and binding proof construction consume its shared budget.
+This does not authenticate a real source alias or construct an origin history. -/
+def quoteWith (reader : Expr) (decode : RootQuote.DecoderM := fun _ => pure none) :
+ Hex.RealFormula.Reify.ReifyM Result := do
+ let reader ← instantiateMVars reader
+ unless reader.getAppFn.isConstOf ``Algebraic.RootReplay.readDescriptor do
+ throwError "header quotation needs the complete original descriptor reader"
+ let information ← getConstInfo ``Algebraic.RootReplay.readDescriptor
+ let subjectInfo ← getConstInfo ``Algebraic.RootReplay.readDescriptor_subject
+ unless reader.getAppNumArgs == information.type.getNumHeadForalls &&
+ subjectInfo.type.getNumHeadForalls == reader.getAppNumArgs+2 &&
+ information.levelParams.isEmpty && subjectInfo.levelParams.isEmpty do
+ throwError "descriptor reader/header law signatures differ"
+ let root ← RootQuote.quoteWith reader decode
+ let strict ← mkAppM ``RootQuote.read_eq #[reader,root.value,root.proof]
+ Hex.RealFormula.Reify.accountProof strict
+ let consumed := mkAppN (mkConst ``Algebraic.RootReplay.readDescriptor_subject)
+ (reader.getAppArgs ++ #[root.value,strict])
+ Hex.RealFormula.Reify.accountProof consumed
+ let kind ← inferType consumed
+ unless kind.isAppOfArity ``Eq 3 do throwError "descriptor subject law is not an equation"
+ let subjectReader := kind.getAppArgs[1]!
+ let raw ← RootQuote.quoteWith subjectReader decode
+ let parsed ← mkAppM ``RootQuote.read_eq #[subjectReader,raw.value,raw.proof]
+ Hex.RealFormula.Reify.accountProof parsed
+ let same ← mkEqTrans (← mkEqSymm consumed) parsed
+ let binding ← mkAppM ``Except.ok.inj #[same]
+ Hex.RealFormula.Reify.accountProof binding
+ let statement ← mkEq (← mkAppM ``Descriptor.raw #[root.value]) raw.value
+ let binding ← Hex.RCF.checkProof `quotedHeader statement binding
+ return ⟨{root with usage := (← get).budget.consumed},raw.value,parsed,binding⟩
+
+end Hex.RCF.RealCoefficients.RootHeader
diff --git a/adapters/HexRCF/RealCoefficients/RootPrepare.lean b/adapters/HexRCF/RealCoefficients/RootPrepare.lean
new file mode 100644
index 0000000000..17e39feca2
--- /dev/null
+++ b/adapters/HexRCF/RealCoefficients/RootPrepare.lean
@@ -0,0 +1,112 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+module
+public meta import HexRCF.RealCoefficients.RootHeader
+public meta section
+
+/-! Retain reconstructed descriptors and prepare their native contexts for
+quotation without expanding anonymous descriptor expressions during replay. -/
+namespace Hex.RCF.RealCoefficients.RootPrepare
+open Lean Meta Hex Hex.RealClosure Hex.SignDet Hex.RealFormula.Reify
+
+/-- The original constructed context and an equal retained context. The decoder
+uses checked header equations; it supplies neither source authentication nor
+an ordinary-real model. All declarations belong to the enclosing transaction. -/
+structure Result where
+ root : Expr
+ rootEq : Expr
+ source : Expr
+ context : Expr
+ same : Expr
+ binding : Expr
+ decoder : RootQuote.DecoderM
+ usage : Hex.Reflect.BudgetUsage
+
+private def closed (name : Name) (expression : Expr) : ReifyM Expr := do
+ let expression ← instantiateMVars expression
+ if expression.hasFVar || expression.hasMVar || expression.hasLooseBVars then
+ throwError "rcf: root preparation requires closed retained inputs"
+ accountProof expression
+ let expression ← Hex.RCF.checkExpr name expression
+ Meta.check expression
+ return expression
+
+private def checked (name : Name) (target candidate : Expr) : ReifyM Expr := do
+ accountProof target
+ accountProof candidate
+ Hex.RCF.checkProof name target candidate
+
+/-- These are monomorphic quotation data, not compiled producer proposals. -/
+private def retain (name : Name) (expression : Expr) : ReifyM (Expr × Expr) := do
+ let expression ← closed name expression
+ let kind ← inferType expression
+ if expression.hasLevelParam || kind.hasLevelParam then
+ throwError "rcf: retained root data must be monomorphic"
+ accountProof kind
+ let declaration := mkPrivateName (← getEnv) (← mkFreshUserName name)
+ let retained ← mkAuxDefinition declaration kind expression (compile := false)
+ let target ← mkEq expression retained
+ let candidate := mkExpectedPropHint (← mkEqRefl expression) target
+ return (retained,← checked `RootPrepare.retained target candidate)
+
+private def decoderWith (context binding rootBinding : Expr) (config : Simp.Config) :
+ ReifyM RootQuote.DecoderM := do
+ let context ← closed `RootPrepare.context context
+ let binding ← closed `RootPrepare.binding binding
+ let rootBinding ← closed `RootPrepare.rootBinding rootBinding
+ let kind ← inferType binding
+ unless kind.isAppOfArity ``Eq 3 do throwError "rcf: root header binding is not an equation"
+ let lhs := kind.getAppArgs[1]!
+ unless lhs.getAppFn.isConstOf ``Descriptor.raw do
+ throwError "rcf: root header binding has a different subject"
+ let root := lhs.getAppArgs.back!
+ let target ← mkEq (← mkAppM ``Algebraic.Context.root #[context]) root
+ let rootBinding ← checked `RootPrepare.rootBinding target rootBinding
+ let binding ← checked `RootPrepare.binding kind binding
+ let mut laws : SimpTheorems := {}
+ laws ← laws.add (.stx `rootBinding Syntax.missing) #[] rootBinding (post := false)
+ laws ← laws.add (.stx `rawBinding Syntax.missing) #[] binding (post := false)
+ let simpContext ← Simp.mkContext config #[laws]
+ return fun expression => do
+ charge .proofNodes 1
+ if expression.hasLooseBVars || expression.hasMVar then return none
+ unless (← withTransparency .reducible <| whnf (← inferType expression)).isConstOf ``Bool do
+ return none
+ let (result,work) ← Meta.simpCore expression simpContext
+ charge .proofNodes work.numSteps
+ if result.expr == expression then return none
+ let target ← mkEq expression result.expr
+ return some (← checked `RootPrepare.rewrite target (← result.getProof' expression))
+
+/-- Construct the native `Context.adjoin` at the reconstructed descriptor and
+retain an equal context whose descriptor has a private checked definition.
+Both descriptor/raw and context/root equations are checked at their exact
+subjects before use. The supplied cleanliness function remains unchanged.
+
+Compose `same` with the original reader through `ScalarPacket.quoteWith`.
+Run preparation and subsequent quotation in one `RootQuote.runWith` request:
+input checks, retained definitions, equations, simplifier visits and resulting
+proofs share its budget. The simplifier limit is separately caller-configurable;
+its exceptions are terminal. Failure rolls back the caller's complete state.
+This is quotation preparation, not frozen history or coefficient support. -/
+def prepareWith (header : RootHeader.Result) (clean : Expr)
+ (config : Simp.Config := {maxSteps := 100000}) : ReifyM Result := do
+ let clean ← closed `RootPrepare.clean clean
+ let raw ← closed `RootPrepare.raw header.raw
+ let rawBinding ← closed `RootPrepare.rawBinding header.binding
+ let (root,rootEq) ← retain `RootPrepare.root header.root.value
+ let target ← mkEq (← mkAppM ``Descriptor.raw #[root]) raw
+ let binding ← checked `RootPrepare.raw target (mkExpectedPropHint rawBinding target)
+ let source ← mkAppM ``Algebraic.Context.adjoin #[header.root.value,clean]
+ let native ← mkAppM ``Algebraic.Context.adjoin #[root,clean]
+ let (context,_) ← retain `RootPrepare.context native
+ let target ← mkEq source context
+ let same ← checked `RootPrepare.same target (mkExpectedPropHint (← mkEqRefl source) target)
+ let rootBinding ← mkAppM ``Algebraic.Context.root_adjoin #[root,clean]
+ let decoder ← decoderWith context binding rootBinding config
+ return ⟨root,rootEq,source,context,same,binding,decoder,(← get).budget.consumed⟩
+
+end Hex.RCF.RealCoefficients.RootPrepare
diff --git a/adapters/HexRCF/RealCoefficients/RootQuote.lean b/adapters/HexRCF/RealCoefficients/RootQuote.lean
index 958acdd02e..55e9264a6d 100644
--- a/adapters/HexRCF/RealCoefficients/RootQuote.lean
+++ b/adapters/HexRCF/RealCoefficients/RootQuote.lean
@@ -64,6 +64,8 @@ structure Result where
usage : Hex.Reflect.BudgetUsage
private def replayRules : Array (Name × Name × Bool) := #[
+ (``Hex.SignDet.Replay.check, ``Hex.SignDet.Replay.check.eq_1, false),
+ (``Hex.SignDet.Replay.check, ``Hex.SignDet.Replay.check.eq_2, false),
(``SignTable.count, ``Replay.table_lookup, false),
(``Dag.replay?, ``Dag.replay_eq, false),
(``Dag.step, ``Dag.step_eq, false),
@@ -99,6 +101,9 @@ private partial def irreducible? (protectedNames : Array Name) (expression : Exp
for argument in reduced.getAppArgs do
if let some stuck ← irreducible? protectedNames argument then return some stuck
if let .const name _ := reduced.getAppFn then
+ -- Quotient elimination has no ordinary recursor metadata.
+ if name == ``Quot.lift && reduced.getAppNumArgs == 6 then
+ return ← irreducible? protectedNames reduced.getAppArgs[5]!
if let .recInfo recursor ← getConstInfo name then
if let some major := reduced.getAppArgs[recursor.getMajorIdx]? then
return ← irreducible? protectedNames major
@@ -149,6 +154,30 @@ private def codecProof? (decode : DecoderM) (expression : Expr) : ReifyM (Option
let type ← inferType proof
if ← withTransparency .all <| withNewMCtxDepth (isDefEq expression type.getAppArgs[1]!) then
return some proof
+ let signatureCodec? := match expression.getAppFn with
+ | .proj ``ValueCodec 1 codec =>
+ if expression.getAppNumArgs == 1 then some codec else none
+ | .const ``ValueCodec.decode _ =>
+ if expression.getAppNumArgs == 3 then some expression.getAppArgs[1]! else none
+ | _ => none
+ if let some codec := signatureCodec? then
+ if codec.isConstOf ``Tower.Signature.codec then
+ let payload ← withTransparency .all <| whnf expression.getAppArgs.back!
+ let signature? := match payload.getAppFn with
+ | .proj ``ValueCodec 0 encoder =>
+ if encoder.isConstOf ``Tower.Signature.codec && payload.getAppNumArgs == 1 then
+ some payload.appArg! else none
+ | .const ``ValueCodec.encode _ =>
+ if payload.getAppNumArgs == 3 && payload.getAppArgs[1]!.isConstOf ``Tower.Signature.codec then
+ some payload.getAppArgs[2]! else none
+ | _ => none
+ if let some signature := signature? then
+ let proof := mkApp (mkConst ``Tower.Signature.codec_lawful) signature
+ let kind ← inferType proof
+ let statement ← mkEq expression kind.getAppArgs[2]!
+ accountProof proof
+ return some (← Hex.RCF.checkProof `RootQuote.signature statement
+ (mkExpectedPropHint proof statement))
let saved ← (saveState : MetaM SavedState)
let candidate ← try decode expression catch error =>
saved.restore
@@ -174,67 +203,174 @@ private def reflexiveProof? (expression : Expr) : ReifyM (Option Expr) := do
unless ← withTransparency .all <| withNewMCtxDepth (isDefEq args[1]! args[2]!) do return none
let accepted := mkApp2 (mkConst ``Decidable.isTrue) proposition (← mkEqRefl args[1]!)
return some (← mkAppM ``Subsingleton.elim #[expression,accepted])
-/-- Abstract closed proof helpers together with the protected codec they use. -/
-private partial def withDependents (constants : Array (Expr × Expr)) (index : Nat)
- (replace : Expr → Expr) (parameters : Array Expr)
- (consume : (Expr → Expr) → Array Expr → ReifyM (Expr × Expr)) : ReifyM (Expr × Expr) := do
+/-- Keep exposed function definitions in the telescope; opaque helpers remain
+parameters. This retains reductions used by the surrounding reader. -/
+private partial def withDependents (retain : Expr → ReifyM Expr)
+ (constants : Array (Expr × Expr)) (index : Nat)
+ (replace : Expr → Expr) (parameters arguments : Array Expr)
+ (consume : (Expr → Expr) → Array Expr → Array Expr → ReifyM (Expr × Expr × Array Expr)) :
+ ReifyM (Expr × Expr × Array Expr) := do
charge .proofNodes 1
Core.checkSystem "dependent context telescope"
- if index == constants.size then return ← consume replace parameters
+ if index == constants.size then return ← consume replace parameters arguments
let (original,type) := constants[index]!
- withLocalDeclD `dependent (replace type) fun parameter => do
+ let body? ← if (← whnf type).isForall then unfoldDefinition? original else pure none
+ let body? ← body?.mapM retain
+ let continueWith := fun (parameter : Expr) (arguments : Array Expr) => do
let replaceNext := fun (expression : Expr) =>
(replace expression).replace fun part => if part == original then some parameter else none
- withDependents constants (index+1) replaceNext (parameters.push parameter) consume
-
-/-- Keep the codec constructor abstract across all closed reads in a context.
-Abstract its dependent proof helpers before supplying the original constructor. -/
-private def contextStep? (current subject rhs motive : Expr) : ReifyM (Option Expr) := do
- let some boundary := current.find? fun part =>
- part.isConstOf ``Algebraic.Element.codec
- | return none
+ withDependents retain constants (index+1) replaceNext (parameters.push parameter) arguments consume
+ if let some body := body? then
+ accountProof body
+ withLetDecl original.constName! (replace type) (replace body) fun parameter =>
+ continueWith parameter arguments
+ else
+ withLocalDeclD original.constName! (replace type) fun parameter =>
+ continueWith parameter (arguments.push original)
+
+/-- Collect type dependencies before their users, including constants absent
+from the reader term itself. Exposed function bodies retained as lets need
+their proof helpers collected too. Only accessible definitions are inspected. -/
+private partial def collectTypes (boundary : Expr)
+ (retain : Expr → ReifyM Expr)
+ (visited : IO.Ref (Array (Expr × Bool)))
+ (ordered : IO.Ref (Array (Expr × Expr))) (active : Array Expr) (expression : Expr) :
+ ReifyM Bool := Core.withIncRecDepth do
+ charge .proofNodes 1
+ Core.checkSystem "replay helper type dependencies"
+ if expression == boundary then return true
+ if let some cached := (← visited.get).find? (fun item => item.1 == expression) then
+ return cached.2
+ if active.contains expression then throwError "cyclic replay helper type dependency"
+ let kind ← retain (← inferType expression)
+ let constants ← IO.mkRef (#[] : Array Expr)
+ kind.forEach fun part => do
+ charge .proofNodes 1
+ if part.isConst && part != expression then
+ constants.modify fun found => if found.contains part then found else found.push part
+ let mut dependent := (kind.find? fun part => part == boundary).isSome
+ for constant in ← constants.get do
+ let needed ← collectTypes boundary retain visited ordered (active.push expression) constant
+ dependent := dependent || needed
+ if dependent && (← whnf kind).isForall then
+ if let some body ← unfoldDefinition? expression then
+ let body ← retain body
+ let helpers ← IO.mkRef (#[] : Array Expr)
+ body.forEach fun part => do
+ charge .proofNodes 1
+ if part.isConst && part != expression && part != boundary then
+ helpers.modify fun found => if found.contains part then found else found.push part
+ for helper in ← helpers.get do
+ let _ ← collectTypes boundary retain visited ordered (active.push expression) helper
+ visited.modify (·.push (expression,dependent))
+ if dependent then ordered.modify (·.push (expression,kind))
+ return dependent
+
+/-- A closed structure with replay-dependent proof fields can retain its
+original constructor reductions. Abstracting its constructor would lose those
+reductions, even though the structure's own type has no replay dependency. -/
+private structure DataCache where
+ values : Array (Expr × Expr) := #[]
+ constructors : Std.HashMap Expr Bool := {}
+
+private def retainData (boundary : Expr) (retained : IO.Ref DataCache)
+ (expression : Expr) : ReifyM Expr := do
+ Meta.transform expression (pre := fun part => do
+ charge .proofNodes 1
+ if part.hasLooseBVars || part.hasFVar || part.hasMVar then return .continue
+ let some name := part.getAppFn.constName? | return .continue
+ let .ctorInfo info ← getConstInfo name | return .continue
+ unless part.getAppNumArgs == info.numParams + info.numFields do return .continue
+ -- The protected boundary is fixed throughout this local cache's lifetime.
+ charge .proofNodes 1
+ let dependent ← match (← retained.get).constructors[part.getAppFn]? with
+ | some dependent => pure dependent
+ | none => do
+ let constructorType ← inferType part.getAppFn
+ accountProof constructorType
+ let dependent := (constructorType.find? (· == boundary)).isSome
+ retained.modify fun cache => {cache with
+ constructors := cache.constructors.insert part.getAppFn dependent}
+ pure dependent
+ unless dependent do return .continue
+ let kind ← inferType part
+ accountProof kind
+ if (kind.find? (· == boundary)).isSome then return .continue
+ if let some previous := (← retained.get).values.find? (·.1 == part) then
+ return .done previous.2
+ accountProof part
+ let name := mkPrivateName (← getEnv) (← mkFreshUserName `ReplayData)
+ let value ← mkAuxDefinition name kind part (compile := false)
+ retained.modify fun cache => {cache with values := cache.values.push (part,value)}
+ return .done value)
+
+/-- Keep a replay function abstract throughout an enclosing Boolean conversion,
+even when its demanded boundary is a fold. Retain codec-constructor
+priority and abstract dependent proof helpers before supplying the function. -/
+private def contextStep? (current subject rhs motive : Expr) (chosen : Option Expr := none) :
+ ReifyM (Option Expr) := do
+ let boundary? ← if let some boundary := chosen then pure (some boundary) else do
+ match current.find? (fun part => part.isConstOf ``Algebraic.Element.codec) with
+ | some boundary => pure (some boundary)
+ | none => do
+ unless (← withTransparency .reducible <| whnf (← inferType current)).isConstOf ``Bool &&
+ (← withTransparency .reducible <| whnf (← inferType subject)).isConstOf ``Bool do
+ return none
+ pure (current.find? fun part => protectedNames.any (fun name => part.isConstOf name))
+ let some boundary := boundary? | return none
+ unless (current.find? fun part => part == boundary).isSome do return none
let boundaryType ← inferType boundary
+ let data ← IO.mkRef ({} : DataCache)
+ let retain := retainData boundary data
+ let retained ← (#[current,subject,motive]).mapM retain
+ let current := retained[0]!
+ let subject := retained[1]!
+ let motive := retained[2]!
let gathered ← IO.mkRef (#[] : Array Expr)
for expression in #[current,subject,motive] do
expression.forEach fun part => do
charge .proofNodes 1
if part.isConst then
gathered.modify fun found => if found.contains part then found else found.push part
- let entries ← (← gathered.get).mapM fun expression => do
- pure (expression,← inferType expression)
- let mut dependents : Array (Expr × Expr) := #[]
- let mut changed := true
- while changed do
- changed := false
- for entry in entries do
- charge .proofNodes 1
- unless dependents.any (fun found => found.1 == entry.1) do
- if (entry.2.find? fun part => part == boundary ||
- dependents.any (fun found => part == found.1)).isSome then
- dependents := dependents.push entry
- changed := true
- let (kind,value) ← withLocalDeclD `codec boundaryType fun placeholder => do
+ let visited ← IO.mkRef (#[] : Array (Expr × Bool))
+ let ordered ← IO.mkRef (#[] : Array (Expr × Expr))
+ for expression in ← gathered.get do
+ let _ ← collectTypes boundary retain visited ordered #[] expression
+ let dependents ← ordered.get
+ let (kind,value,arguments) ← withLocalDeclD `replay boundaryType fun placeholder => do
let replace := fun (expression : Expr) =>
expression.replace fun part => if part == boundary then some placeholder else none
- withDependents dependents 0 replace #[] fun replace parameters => do
+ withDependents retain dependents 0 replace #[] #[] fun replace parameters arguments => do
withLocalDeclD `next (replace (← inferType rhs)) fun next => do
withLocalDeclD `checked (← mkEq (replace subject) next) fun checked => do
let context := replace motive
let target ← mkEq (replace current) (context.bindingBody!.instantiate1 next)
let proof := mkExpectedPropHint (← mkAppM ``congrArg #[context,checked]) target
let binders := #[placeholder] ++ parameters ++ #[next,checked]
- return (← mkForallFVars binders target,← mkLambdaFVars binders proof)
+ return (← mkForallFVars binders target (generalizeNondepLet := false),
+ ← mkLambdaFVars binders proof (generalizeNondepLet := false),arguments)
accountProof kind
accountProof value
let generic ← Hex.RCF.checkProof `RootQuote.contextStep kind value
- return some (mkAppN generic (#[boundary] ++ dependents.map (·.1) ++ #[rhs]))
+ return some (mkAppN generic (#[boundary] ++ arguments ++ #[rhs]))
private def checkedStep (current whole subject law : Expr) : ReifyM (Expr × Expr) := do
let type ← inferType subject
let lawType ← inferType law
let rhs := lawType.getAppArgs[2]!
let motive ← withLocalDeclD `boundary type fun boundary => do
- let body := whole.replace fun expression => if expression == subject then some boundary else none
+ -- A Boolean rewrite must retain data type arguments and their proof binders.
+ let body ← Meta.transform whole (pre := fun expression => do
+ charge .proofNodes 1
+ if expression == subject then return .done boundary
+ -- Meta.transform visits flattened applications, so check their prefixes too.
+ let arguments := expression.getAppArgs
+ let arity := subject.getAppNumArgs
+ if arguments.size > arity &&
+ mkAppN expression.getAppFn (arguments.extract 0 arity) == subject then
+ return .done (mkAppN boundary (arguments.extract arity arguments.size))
+ if (← isType expression) && !(← isProp expression) then return .done expression
+ return .continue)
mkLambdaFVars #[boundary] body
unless motive.bindingBody!.hasLooseBVars do
throwError "demanded boundary does not occur in its reconstructed reader"
@@ -262,28 +398,11 @@ private def checkedStep (current whole subject law : Expr) : ReifyM (Expr × Exp
| none => none
let candidate ← match boundary? with
| some boundary => do
- -- Keep replay functions abstract during conversion; instantiate with
- -- the actual function and its checked public equation afterwards.
- let boundaryType ← inferType boundary
- let prepared ← liftM <| withLocalDeclD `replayBoundary boundaryType fun placeholder => do
- let replace := fun (e : Expr) =>
- e.replace fun part => if part == boundary then some placeholder else none
- let original := replace current
- if original == current then return none
- let premise ← mkEq (replace subject) (replace rhs)
- withLocalDeclD `checked premise fun h => do
- let target ← mkEq original (replace next)
- let candidate := mkExpectedPropHint (← mkAppM ``congrArg #[replace motive,h]) target
- return some (← mkForallFVars #[placeholder,h] target,
- ← mkLambdaFVars #[placeholder,h] candidate)
- let some (kind,value) := prepared
+ let some prepared ← contextStep? current subject rhs motive (some boundary)
| abort (.providerFailure (.invalidProviderEvidence
⟨`Hex.RCF.RealCoefficients.RootQuote.boundary,0⟩
"keep the protected replay boundary explicit before quotation") #[])
- accountProof kind
- accountProof value
- let step ← Hex.RCF.checkProof `RootQuote.boundaryStep kind value
- pure (mkApp2 step boundary law)
+ pure (mkApp prepared law)
| none => do
if let some prepared ← contextStep? current subject rhs motive then
pure (mkApp prepared law)
@@ -306,7 +425,24 @@ private def trailingDepends (app : Expr) (index : Nat) : ReifyM Bool := do
if (← inferType binder).containsFVar pivot.fvarId! then return true
return false
-/-- Introduce the new proof arguments, retaining only independent data. -/
+/-- Move a function of a proof by transporting only its proof input. Its
+result type must reduce to a type independent of the major and equality. -/
+private def proofFunction? (argument domain pivot same : Expr) : ReifyM (Option Expr) := do
+ charge .proofNodes 1
+ let .forallE _ proofType body _ ← whnf domain | return none
+ unless ← isProp proofType do return none
+ if proofType.containsFVar same.fvarId! || body.hasLooseBVars then return none
+ let resultType ← whnf body
+ if resultType.containsFVar pivot.fvarId! || resultType.containsFVar same.fvarId! then
+ return none
+ let family ← mkLambdaFVars #[pivot] proofType
+ let equality ← mkAppM ``congrArg #[family,same]
+ withLocalDeclD `proof proofType fun proof => do
+ let original ← mkAppM ``Eq.mpr #[equality,proof]
+ return some (← mkLambdaFVars #[proof] (mkApp argument original))
+
+/-- Introduce the new proof arguments, retaining independent data and moving
+functions of proofs without casting their returned data. -/
private partial def withProofArgs (original : Array Expr) (index : Nat)
(built pivot same : Expr) (proofs : Array Expr)
(consume : Array Expr → Expr → ReifyM (Expr × Expr)) : ReifyM (Expr × Expr) := do
@@ -321,13 +457,17 @@ private partial def withProofArgs (original : Array Expr) (index : Nat)
else
if domain.containsFVar pivot.fvarId! || domain.containsFVar same.fvarId! ||
proofs.any (fun proof => domain.containsFVar proof.fvarId!) then
- throwError "rcf: dependent recursor requires transport of a non-proof argument"
+ if proofs.any (fun proof => domain.containsFVar proof.fvarId!) then
+ throwError "rcf: dependent recursor requires transport of a non-proof argument"
+ let some moved ← proofFunction? original[index]! domain pivot same
+ | throwError "rcf: dependent recursor requires transport of a non-proof argument"
+ return ← withProofArgs original (index+1) (mkApp built moved) pivot same proofs consume
unless ← withNewMCtxDepth <| isDefEq (← inferType original[index]!) domain do
throwError "rcf: dependent recursor has incompatible trailing data"
withProofArgs original (index+1) (mkApp built original[index]!) pivot same proofs consume
/-- Prove transport with an abstract major, then instantiate exact closed data.
-Only proof arguments move; independent trailing data is retained unchanged. -/
+Proof arguments and functions of proofs move; independent data is retained. -/
private def transportMajor (app : Expr) (index : Nat) (next step : Expr) : ReifyM Expr := do
let args := app.getAppArgs
let major := args[index]!
@@ -371,8 +511,11 @@ private def transportMajor (app : Expr) (index : Nat) (next step : Expr) : Reify
mkEqRec motive argument same
else do
if domain.containsFVar pivot.fvarId! || domain.containsFVar same.fvarId! then
- throwError "rcf: dependent recursor requires transport of a non-proof argument"
- pure argument
+ let some moved ← proofFunction? argument domain pivot same
+ | throwError "rcf: dependent recursor requires transport of a non-proof argument"
+ pure moved
+ else
+ pure argument
families := families.push (← mkLambdaFVars #[pivot,same] moved)
built := mkApp built moved
return families
@@ -471,7 +614,12 @@ private def checkedBool (decode : DecoderM) (dependent : Expr → ReifyM Expr) (
let proof ← Hex.RCF.checkProof `RootQuote.major statement candidate
return (value,proof)
let some (whole,subject,law) ← demanded decode dependent reduced
- | throwError "rcf: literal Boolean replay remains at {reduced.getAppFn.constName?}"
+ | do
+ let shape := match reduced.getAppFn with
+ | .proj name index _ => s!"projection {name}/{index}"
+ | .const name _ => toString name
+ | _ => "an unsupported expression"
+ throwError "rcf: literal Boolean replay remains at {shape}"
let (next,proof) ← checkedStep current whole subject law
current := next
transport ← mkEqTrans transport proof
@@ -502,6 +650,9 @@ private partial def discharge (decode : DecoderM) (node : Expr) : ReifyM Expr :=
let branchProof := mkApp3
(mkConst (if value then ``of_decide_eq_true else ``of_decide_eq_false))
condition decision decisionProof
+ let branchTarget ← if value then pure condition else mkAppM ``Not #[condition]
+ accountProof branchProof
+ let branchProof ← Hex.RCF.checkProof `RootQuote.branch branchTarget branchProof
let alpha ← inferType node
let level ← getLevel alpha
let branch := if value then args[2]! else args[1]!
@@ -557,9 +708,9 @@ A canonical `Algebraic.Element.codec` decode stays protected: supply its exact
checked equation through the callback, or quotation fails closed. The original
reader expression must expose that codec; expand a hiding definition first.
This guarantee covers explicit `Element.codec` applications, not codec aliases.
-Dependent recursors transport trailing proofs when their result type stays
-fixed, retaining independent trailing data. Unsupported dependent data transports and other ill-typed abstractions remain
-terminal. -/
+Dependent recursors transport trailing proofs and functions of one proof into
+a fixed type, retaining independent trailing data. Other dependent data
+transports and ill-typed abstractions remain terminal. -/
def quoteWith (reader : Expr) (decode : DecoderM := fun _ => pure none) : ReifyM Result :=
quoteCore reader decode
diff --git a/adapters/HexRCF/RealCoefficients/RowPacketQuote.lean b/adapters/HexRCF/RealCoefficients/RowPacketQuote.lean
new file mode 100644
index 0000000000..8e40664412
--- /dev/null
+++ b/adapters/HexRCF/RealCoefficients/RowPacketQuote.lean
@@ -0,0 +1,174 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+module
+public import HexRCF.RealCoefficients.RowQuote
+public meta import HexRCF.RealCoefficients.RootQuote
+public section
+namespace Hex.RCF.RealCoefficients.RowQuote
+open Hex Hex.SignDet Hex.RealClosure
+variable {E Ctx : Type} [Zero E] [DecidableEq E] [One E] [Add E] [Sub E] [Mul E] [NatCast E]
+variable [DecidableEq Ctx] {sign : E → Int} {binding : Ctx}
+
+/-- Compose independently checked parsing, query binding and graph selection. -/
+theorem read_eq (value : ValueCodec E) (context : ValueCodec Ctx)
+ (root : Descriptor E Ctx sign binding) (queries : List (DensePoly E))
+ (packet : Codec.Json) (data : Algebraic.SignEvidence E Ctx)
+ (selected : SelectedSigns root data.queries)
+ (decoded : (Algebraic.SignEvidence.codec value context root.raw).decode packet = .ok data)
+ (same : data.queries = queries)
+ (checked : data.graph.selectedSigns? root data.queries data.values = some selected) :
+ RowOperations.read value context sign binding root queries packet = .ok (same ▸ selected) := by
+ simp only [RowOperations.read,decoded,bind,Except.bind]
+ rw [dite_eq_left same,checked]
+
+@[expose] def queryDecision (test : Bool) : Except Hex.RCF.RealCoefficients.Replay.Error Bool :=
+ if test then .ok true else .ok false
+
+theorem queryDecision_true (test : Bool)
+ (checked : (queryDecision test).toOption = some true) : test = true := by
+ cases test <;> simp [queryDecision,Except.toOption] at *
+
+end Hex.RCF.RealCoefficients.RowQuote
+
+public meta section
+namespace Hex.RCF.RealCoefficients.RowQuote
+open Lean Meta Hex Hex.SignDet Hex.RealClosure
+initialize registerTraceClass `Hex.RCF.RowQuote
+
+private def freeze (reader : Expr) (decode : RootQuote.DecoderM) :
+ Hex.RealFormula.Reify.ReifyM (Expr × Expr) := do
+ let quoted ← RootQuote.quoteWith reader decode
+ let kind ← inferType quoted.value
+ Hex.RealFormula.Reify.accountProof kind
+ Hex.RealFormula.Reify.accountProof quoted.value
+ let name := mkPrivateName (← getEnv) (← mkFreshUserName `RowStageData)
+ let value ← mkAuxDefinition name kind quoted.value (compile := false)
+ let strict ← mkAppM ``RootQuote.read_eq #[reader,quoted.value,quoted.proof]
+ let resultType ← whnf (← inferType reader)
+ let accepted ← mkAppOptM ``Except.ok
+ #[some resultType.getAppArgs[0]!,some resultType.getAppArgs[1]!,some value]
+ let target ← mkEq reader accepted
+ Hex.RealFormula.Reify.accountProof target
+ Hex.RealFormula.Reify.accountProof strict
+ return (value,← Hex.RCF.checkProof `RowStage.reader target (mkExpectedPropHint strict target))
+
+
+private structure MemoEntry where
+ key : Array Expr
+ value : Expr
+ proof : Expr
+private structure MemoState where
+ entries : Array MemoEntry := #[]
+ hits : Nat := 0
+ misses : Nat := 0
+private abbrev Cache := IO.Ref MemoState
+private def restore (cache : Cache) (reader : Expr) (decode : RootQuote.DecoderM) :
+ Hex.RealFormula.Reify.ReifyM (Expr × Expr) := do
+ let mut key := #[reader.getAppFn]
+ for argument in reader.getAppArgs do
+ Hex.RealFormula.Reify.charge .proofNodes 1
+ let argument ← withTransparency .all (whnf argument)
+ Hex.RealFormula.Reify.accountProof argument
+ key := key.push argument
+ for entry in (← cache.get).entries do
+ Hex.RealFormula.Reify.charge .proofNodes 1
+ if entry.key == key then
+ let target ← mkEq reader (← mkAppM ``Option.some #[entry.value])
+ Hex.RealFormula.Reify.accountProof target
+ Hex.RealFormula.Reify.accountProof entry.proof
+ let checked ← Hex.RCF.checkProof `RowMemo.reused target
+ (mkExpectedPropHint entry.proof target)
+ cache.modify fun s => {s with hits := s.hits+1}
+ return (entry.value,checked)
+ let quoted ← RootQuote.quoteOptionWith reader decode
+ let kind ← inferType quoted.value
+ Hex.RealFormula.Reify.accountProof kind
+ Hex.RealFormula.Reify.accountProof quoted.value
+ let name := mkPrivateName (← getEnv) (← mkFreshUserName `RowMemoData)
+ let value ← mkAuxDefinition name kind quoted.value (compile := false)
+ let target ← mkEq reader (← mkAppM ``Option.some #[value])
+ Hex.RealFormula.Reify.accountProof target
+ Hex.RealFormula.Reify.accountProof quoted.proof
+ let checked ← Hex.RCF.checkProof `RowMemo.original target
+ (mkExpectedPropHint quoted.proof target)
+ cache.modify fun s => {s with
+ entries := s.entries.push ⟨key,value,checked⟩
+ misses := s.misses+1}
+ return (value,checked)
+
+/-- Preserve the descriptor's exact operation indices. Reinferring equal
+cached operations would ask conversion to unfold canonical arithmetic. -/
+private def atRoot (name : Name) (root : Expr) (arguments : Array Expr) :
+ Hex.RealFormula.Reify.ReifyM Expr := do
+ Hex.RealFormula.Reify.charge .proofNodes 1
+ let kind ← whnf (← inferType root)
+ unless kind.getAppFn.isConstOf ``Descriptor do
+ throwError "rcf: row reader lost its descriptor index"
+ Hex.RealFormula.Reify.accountProof kind
+ mkAppOptM name ((kind.getAppArgs ++ arguments).map some)
+
+private def quoteRow (cache : Cache) (reader : Expr) (decode : RootQuote.DecoderM) :
+ Hex.RealFormula.Reify.ReifyM Expr := do
+ unless reader.getAppFn.isConstOf ``RowOperations.read do throwError "expected original row reader"
+ let args := reader.getAppArgs
+ let info ← getFunInfoNArgs reader.getAppFn args.size
+ let inputs := args.zipIdx |>.filterMap fun (arg,i) =>
+ if info.paramInfo[i]!.binderInfo.isExplicit then some arg else none
+ unless inputs.size == 7 do throwError "row reader explicit arity changed: {inputs.size}"
+ let raw ← atRoot ``Descriptor.raw inputs[4]! #[inputs[4]!]
+ let codec ← mkAppM ``Algebraic.SignEvidence.codec #[inputs[0]!,inputs[1]!,raw]
+ let parsed ← mkAppM ``ValueCodec.decode #[codec,inputs[6]!]
+ let (data,decoded) ← freeze parsed decode
+ let queries ← mkAppM ``Algebraic.SignEvidence.queries #[data]
+ let equality ← mkEq queries inputs[5]!
+ let decision ← mkDecide equality
+ let guardReader ← mkAppM ``queryDecision #[decision]
+ let guarded ← RootQuote.quoteWith guardReader decode
+ unless guarded.value.isConstOf ``Bool.true do
+ Hex.RealFormula.Reify.abort (.providerFailure (.invalidProviderEvidence
+ ⟨`Hex.RCF.RealCoefficients.RowQuote,0⟩ "literal row query binding rejected") #[])
+ let decided ← mkAppM ``queryDecision_true #[decision,guarded.proof]
+ let same ← mkAppM ``of_decide_eq_true #[decided]
+ Hex.RealFormula.Reify.accountProof equality
+ Hex.RealFormula.Reify.accountProof same
+ let same ← Hex.RCF.checkProof `RowStage.queries equality same
+ let values ← mkAppM ``Algebraic.SignEvidence.values #[data]
+ let graph ← mkAppM ``Algebraic.SignEvidence.graph #[data]
+ let head ← mkAppM ``RawDescriptor.head #[raw]
+ let lower ← mkAppM ``RawDescriptor.lower #[raw]
+ let upper ← mkAppM ``RawDescriptor.upper #[raw]
+ let validation ← atRoot ``Dag.validate? inputs[4]! #[head,lower,upper,graph]
+ let (memo,validated) ← restore cache validation decode
+ let index ← mkAppM ``Dag.root #[graph]
+ let selection ← atRoot ``SelectedSigns.ofMemo? inputs[4]! #[inputs[4]!,queries,values,memo,index]
+ let quoted ← RootQuote.quoteOptionWith selection decode
+ let sameSelection ← atRoot ``Dag.selectedSigns_memo inputs[4]!
+ #[inputs[4]!,queries,values,graph,memo,validated]
+ let checked ← mkEqTrans (← mkEqSymm sameSelection) quoted.proof
+ let candidate ← atRoot ``read_eq inputs[4]!
+ #[inputs[0]!,inputs[1]!,inputs[4]!,inputs[5]!,inputs[6]!,data,quoted.value,
+ decoded,same,checked]
+ Hex.RealFormula.Reify.accountProof candidate
+ let target ← inferType candidate
+ Hex.RealFormula.Reify.accountProof target
+ Hex.RCF.checkProof `RowStage.original target candidate
+
+/-- Share checked graph validation within one quotation attempt. Every key
+retains the function, operations, sign, context, head, endpoints and full graph.
+A reused equation is kernel checked at the exact new reader before selection.
+The cache is local to this call; failures never select a different solver. -/
+def withDecoder (decode : RootQuote.DecoderM)
+ (consume : RootQuote.DecoderM → Hex.RealFormula.Reify.ReifyM α) :
+ Hex.RealFormula.Reify.ReifyM α := do
+ let cache ← IO.mkRef ({} : MemoState)
+ let result ← consume fun expression => do
+ if expression.getAppFn.isConstOf ``RowOperations.read then
+ return some (← quoteRow cache expression decode)
+ decode expression
+ let state ← cache.get
+ trace[Hex.RCF.RowQuote] "checked graph memos: reused={state.hits}; validated={state.misses}"
+ return result
+end Hex.RCF.RealCoefficients.RowQuote
diff --git a/adapters/HexRCF/RealCoefficients/RowQuote.lean b/adapters/HexRCF/RealCoefficients/RowQuote.lean
new file mode 100644
index 0000000000..6b0a0647af
--- /dev/null
+++ b/adapters/HexRCF/RealCoefficients/RowQuote.lean
@@ -0,0 +1,187 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+module
+public import HexRCF.RealCoefficients.CellOperations
+public meta import HexRCF.RealCoefficients.RootQuote
+public section
+
+namespace Hex.RCF.RealCoefficients.RowQuote
+open Hex Hex.SignDet Hex.RealClosure Hex.RealClosure.Tower
+variable {E Ctx : Type} [Zero E] [DecidableEq E] [One E] [Add E] [Sub E] [Mul E] [NatCast E]
+variable [DecidableEq Ctx] {sign : E → Int} {binding : Ctx}
+
+/-- A checked query-list transport retains the stored row values. -/
+theorem values_cast {root : Descriptor E Ctx sign binding} {before after : List (DensePoly E)}
+ (same : before = after) (source : SelectedSigns root before) :
+ (same ▸ source).values.toArray = source.values.toArray := by
+ cases same
+ rfl
+
+/-- Equal root and query subjects retain the stored row values. -/
+theorem values_retarget {first second : Descriptor E Ctx sign binding}
+ (rootEq : first = second) {before after : List (DensePoly E)} (queryEq : before = after)
+ (source : SelectedSigns first before) :
+ (RowOperations.retarget sign binding rootEq queryEq source).values.toArray =
+ source.values.toArray := rfl
+
+/-- Restoring the canonical operations retains the supplied row values. -/
+theorem values_restore {registry : BaseContext.Registry} {parent : Tower.Context registry}
+ (operations : Hex.RealClosure.Replay.Operations parent.sign)
+ (original : Descriptor parent.Value Signature parent.sign parent.signature)
+ (queries : List parent.Poly) (source : CellOperations.Signs operations original queries) :
+ (CellOperations.restore operations original queries source).values.toArray =
+ (@SelectedSigns.values parent.Value Signature _ _ operations.one operations.add
+ operations.sub operations.mul operations.natCast _ parent.sign parent.signature
+ (CellOperations.descriptor operations original) queries source).toArray := rfl
+
+private theorem value_array {root : Descriptor E Ctx sign binding} {q : DensePoly E}
+ (source : SelectedSigns root [q]) (values : Array Int)
+ (same : source.values.toArray = values) :
+ source.value = values[0]'(by
+ have size := source.values.size_toArray
+ rw [same] at size
+ simp only [List.length_cons,List.length_nil] at size
+ omega) := by
+ cases same
+ rfl
+/-- A checked singleton array determines the selected query value. -/
+theorem value_eq {root : Descriptor E Ctx sign binding} {q : DensePoly E}
+ (source : SelectedSigns root [q]) (value : Int)
+ (same : source.values.toArray = #[value]) : source.value = value := by
+ exact value_array source #[value] same
+
+end Hex.RCF.RealCoefficients.RowQuote
+
+public meta section
+namespace Hex.RCF.RealCoefficients.RowQuote
+open Lean Meta Hex.RealFormula.Reify
+
+private def explicitArguments (expression : Expr) : ReifyM (Array Expr) := do
+ let args := expression.getAppArgs
+ let info ← getFunInfoNArgs expression.getAppFn args.size
+ return args.zipIdx |>.filterMap fun (arg,i) =>
+ if info.paramInfo[i]!.binderInfo.isExplicit then some arg else none
+
+private partial def project (source : Expr) : ReifyM (Expr × Expr) := Core.withIncRecDepth do
+ charge .proofNodes 1
+ Core.checkSystem "selected-sign projection transport"
+ let source := source.consumeMData
+ let head := source.getAppFn.constName?
+ let boundary ← if head == some ``RowOperations.retarget then do
+ let args ← explicitArguments source
+ unless args.size == 5 do throwError "unexpected retarget arity: {args.size}"
+ let parameters := source.getAppArgs
+ let parameters := parameters.extract 0 4 ++ parameters.extract 5 10 ++
+ #[parameters[4]!] ++ parameters.extract 10 parameters.size
+ pure (some (mkAppN (mkConst ``RowQuote.values_retarget)
+ parameters,args[4]!))
+ else if head == some ``CellOperations.restore then do
+ let args ← explicitArguments source
+ unless args.size == 4 do throwError "unexpected restore arity: {args.size}"
+ pure (some (mkAppN (mkConst ``RowQuote.values_restore)
+ source.getAppArgs,args[3]!))
+ else if head == some ``Eq.rec then do
+ let .recInfo info ← getConstInfo ``Eq.rec | throwError "equality recursor metadata missing"
+ let args := source.getAppArgs
+ let originalEquality := args[info.getMajorIdx]!
+ let target ← if info.numIndices == 1 then
+ mkEq args[info.numParams-1]! args[info.getFirstIndexIdx]!
+ else if info.numIndices == 2 then
+ mkEq args[info.getFirstIndexIdx]! args[info.getFirstIndexIdx+1]!
+ else throwError "unsupported equality recursor indices"
+ let equality := mkExpectedPropHint originalEquality target
+ let before := args[info.getFirstMinorIdx]!
+ let selectedType ← withTransparency .reducible (whnf (← inferType before))
+ unless selectedType.getAppFn.isConstOf ``Hex.SignDet.SelectedSigns do
+ throwError "equality transport does not move a selected-sign record"
+ let parameters := selectedType.getAppArgs
+ let law := mkAppN (mkConst ``RowQuote.values_cast)
+ ((parameters.extract 0 (parameters.size-1)) ++
+ #[parameters.back!,args[info.getFirstIndexIdx]!,equality,before])
+ pure (some (law,before))
+ else pure none
+ if let some (law,before) := boundary then
+ accountProof law
+ let (value,identity) ← project before
+ return (value,← mkEqTrans law identity)
+ let selectedType ← withTransparency .reducible (whnf (← inferType source))
+ unless selectedType.getAppFn.isConstOf ``Hex.SignDet.SelectedSigns do
+ throwError "selected projection base has a different record type"
+ let stored := mkAppN
+ (mkConst ``Hex.SignDet.SelectedSigns.values selectedType.getAppFn.constLevels!)
+ (selectedType.getAppArgs.push source)
+ let array ← mkAppM ``Vector.toArray #[stored]
+ let value ← withTransparency .all (whnf array)
+ return (value,mkExpectedPropHint (← mkEqRefl value) (← mkEq array value))
+
+private def valueWith (left : Expr) : ReifyM (Expr × Expr) := do
+ let source := left.getAppArgs.back!
+ let (values,identity) ← project source
+ let mut laws : SimpTheorems := {}
+ for name in #[``Array.emptyWithCapacity_eq, ``Array.toList_empty,
+ ``List.concat_eq_append, ``List.nil_append, ``List.get_eq_getElem,
+ ``List.getElem_cons] do
+ laws ← laws.addConst name
+ let context ← Simp.mkContext {maxSteps := 10000} #[laws]
+ let mut reduced ← withTransparency .all (whnf values)
+ let mut conversion := mkExpectedPropHint (← mkEqRefl reduced) (← mkEq values reduced)
+ for _ in [:4] do
+ charge .proofNodes 1
+ let (result,work) ← Meta.simpCore reduced context
+ charge .proofNodes work.numSteps
+ conversion ← mkEqTrans conversion (← result.getProof' reduced)
+ reduced ← withTransparency .all (whnf result.expr)
+ conversion ← mkEqTrans conversion
+ (mkExpectedPropHint (← mkEqRefl reduced) (← mkEq result.expr reduced))
+ let list ← withTransparency .all (whnf (← mkAppM ``Array.toList #[reduced]))
+ let some entries ← getListLit? list
+ | throwError "selected-sign values did not reduce to a literal array"
+ unless entries.size == 1 do throwError "selected-sign singleton has a different length"
+ let value ← withTransparency .all (whnf entries[0]!)
+ unless (value.isAppOfArity ``Int.ofNat 1 || value.isAppOfArity ``Int.negSucc 1) &&
+ (← getNatValue? value.appArg!).isSome do
+ throwError "selected-sign singleton does not contain a literal integer"
+ let singleton ← mkArrayLit (mkConst ``Int) [value]
+ let target ← mkEq values singleton
+ let candidate ← mkEqTrans conversion
+ (mkExpectedPropHint (← mkEqRefl reduced) (← mkEq reduced singleton))
+ accountProof candidate
+ let checked ← Hex.RCF.checkProof `RowQuote.array target candidate
+ let identity ← mkEqTrans identity checked
+ let candidate := mkAppN (mkConst ``RowQuote.value_eq)
+ (left.getAppArgs ++ #[value,identity])
+ let target ← mkEq left value
+ accountProof candidate
+ let checked ← Hex.RCF.checkProof `RowQuote.value target
+ (mkExpectedPropHint candidate target)
+ return (value,checked)
+
+/-- Propose a checked equality for a demanded literal selected-sign value or
+its integer comparison. Query, descriptor and operation transports preserve
+the original row; no sign or root producer runs. All work consumes the enclosing
+reflection budget, including public equation simplification and proof checking.
+Unrecognized boundaries decline; malformed literal rows fail terminally. -/
+def decoder (expression : Expr) : ReifyM (Option Expr) := do
+ charge .proofNodes 1
+ if expression.getAppFn.isConstOf ``Hex.SignDet.SelectedSigns.value then
+ return some (← valueWith expression).2
+ unless expression.isAppOfArity ``Decidable.decide 2 do return none
+ let proposition := expression.getAppArgs[0]!
+ unless proposition.isAppOfArity ``Eq 3 && proposition.getAppArgs[0]!.isConstOf ``Int do
+ return none
+ let left := proposition.getAppArgs[1]!
+ unless left.getAppFn.isConstOf ``Hex.SignDet.SelectedSigns.value do return none
+ let (value,identity) ← valueWith left
+ let motive ← withLocalDeclD `sign (mkConst ``Int) fun sign => do
+ mkLambdaFVars #[sign] (expression.replace fun part => if part == left then some sign else none)
+ let next := motive.bindingBody!.instantiate1 value
+ unless next != expression do throwError "selected-sign projection did not change the comparison"
+ let candidate ← mkAppM ``congrArg #[motive,identity]
+ let target ← mkEq expression next
+ accountProof candidate
+ return some (← Hex.RCF.checkProof `RowQuote.boolean target
+ (mkExpectedPropHint candidate target))
+end Hex.RCF.RealCoefficients.RowQuote
diff --git a/adapters/HexRCF/RealCoefficients/ScalarPacket.lean b/adapters/HexRCF/RealCoefficients/ScalarPacket.lean
index ce4ac79940..c0de6548bd 100644
--- a/adapters/HexRCF/RealCoefficients/ScalarPacket.lean
+++ b/adapters/HexRCF/RealCoefficients/ScalarPacket.lean
@@ -7,22 +7,93 @@ module
public import HexRCF.RealCoefficients.SectionReplay
public import HexRealClosureTheory.SignFacts
public import HexSignDet.DagEncode
+public import HexSignDet.DagBounds
+public import HexSignDet.Codec.GraphLaws
+public import HexSignDet.Codec.FiniteGraph
public section
namespace Hex.RCF.RealCoefficients.ScalarPacket
open Hex Hex.RealClosure Hex.RealClosure.Tower Hex.SignDet
variable {registry : BaseContext.Registry} {parent : Tower.Context registry}
-/-- Produce a proposed scalar packet for one demanded polynomial. This is
-search code; the output must subsequently pass `read` in the ordinary kernel. -/
-def build (context : Algebraic.Context parent.Value Signature parent.sign parent.signature)
+/-- Untrusted literal fields proposed by scalar production. Keeping the sign
+separate lets source selection inspect it without decoding its own output. -/
+structure Proposal where
+ polynomial : Codec.Json
+ sign : Int
+ evidence : Codec.Json
+
+/-- The existing three-field scalar packet layout. -/
+@[expose] def Proposal.packet (proposal : Proposal) : Codec.Json :=
+ .arr #[proposal.polynomial, Codec.Json.of proposal.sign, proposal.evidence]
+
+/-- Produce literal fields for one demanded polynomial. Neither the proposed
+sign nor the producer's checked row replaces independent frozen replay. -/
+def buildParts (context : Algebraic.Context parent.Value Signature parent.sign parent.signature)
(value : ValueCodec parent.Value) (polynomial : DensePoly parent.Value) :
- Option Codec.Json := do
+ Option Proposal := do
let _ : Hashable parent.Value := ⟨fun a => hash (value.encode a)⟩
let _ : Hashable Signature := ⟨fun a => hash (Signature.codec.encode a)⟩
let .ok signs := context.buildSigns [context.queryPoly polynomial] | none
- return .arr #[Codec.poly value polynomial, Codec.Json.of signs.value,
- Codec.graph value Signature.codec (Dag.encode signs.evidence)]
+ return ⟨Codec.poly value polynomial, signs.value,
+ Codec.graph value Signature.codec (Dag.encode signs.evidence)⟩
+
+/-- Produce a proposed scalar packet for one demanded polynomial. This is
+search code; the output must subsequently pass `read` in the ordinary kernel. -/
+def build (context : Algebraic.Context parent.Value Signature parent.sign parent.signature)
+ (value : ValueCodec parent.Value) (polynomial : DensePoly parent.Value) :
+ Option Codec.Json :=
+ (buildParts context value polynomial).map Proposal.packet
+
+/-- The actual selected-sign producer supplies a packet at every query over
+a lawful ordinary-real parent. No successful producer result is assumed.
+Independent frozen acceptance remains a separate obligation. -/
+theorem buildParts_success (model : Model parent ℝ)
+ (context : Algebraic.Context parent.Value Signature parent.sign parent.signature)
+ (value : ValueCodec parent.Value) (polynomial : DensePoly parent.Value) :
+ ∃ proposal, buildParts context value polynomial = some proposal := by
+ obtain ⟨signs, produced⟩ := context.root.buildSigns_success model.value model.zero_iff
+ model.one model.add model.sub model.mul model.nat model.sign model.neg model.inv
+ [context.queryPoly polynomial]
+ simp [buildParts, Algebraic.Context.buildSigns_eq, produced]
+
+/-- The wire key retains the original input polynomial, not just the reduced
+query used internally to determine its sign. -/
+theorem buildParts_poly
+ (context : Algebraic.Context parent.Value Signature parent.sign parent.signature)
+ (value : ValueCodec parent.Value) (polynomial : DensePoly parent.Value)
+ (proposal : Proposal) (produced : buildParts context value polynomial = some proposal) :
+ proposal.polynomial = Codec.poly value polynomial := by
+ cases built : context.buildSigns [context.queryPoly polynomial] with
+ | error error => simp [buildParts, built] at produced
+ | ok signs =>
+ have retained : Codec.poly value polynomial = proposal.polynomial := by
+ simpa [buildParts, built] using congrArg (Option.map Proposal.polynomial) produced
+ exact retained.symm
+
+/-- A produced scalar proposal retains the sign of the same polynomial at
+the same selected root. This production law does not replace frozen replay. -/
+theorem buildParts_sign (model : Model parent ℝ)
+ (context : Algebraic.Context parent.Value Signature parent.sign parent.signature)
+ (value : ValueCodec parent.Value) (polynomial : DensePoly parent.Value)
+ (proposal : Proposal) (produced : buildParts context value polynomial = some proposal) :
+ proposal.sign = context.signPoly polynomial := by
+ cases built : context.buildSigns [context.queryPoly polynomial] with
+ | error error => simp [buildParts, built] at produced
+ | ok signs =>
+ have retained : signs.value = proposal.sign := by
+ simpa [buildParts, built] using congrArg (Option.map Proposal.sign) produced
+ exact retained.symm.trans (context.signPoly_checked model.value model.zero_iff
+ model.one model.add model.sub model.mul model.nat model.sign model.neg model.inv polynomial signs).symm
+
+/-- Literal assembly preserves actual production progress for a validated
+descriptor in its ordinary-real parent model. -/
+theorem build_success (model : Model parent ℝ)
+ (context : Algebraic.Context parent.Value Signature parent.sign parent.signature)
+ (value : ValueCodec parent.Value) (polynomial : DensePoly parent.Value) :
+ ∃ packet, build context value polynomial = some packet := by
+ obtain ⟨proposal, produced⟩ := buildParts_success model context value polynomial
+ exact ⟨proposal.packet, by simp only [build, produced, Option.map_some]⟩
/-- A literal production boundary keeps partially reduced interpreter terms
out of the compiler. Parsing here proposes data; `read` independently checks it. -/
@@ -48,6 +119,78 @@ requires their checked operations. The model is used only in proofs. -/
context.readSignFact? original.value original.zero_iff original.one original.add original.sub
original.mul original.nat original.sign original.neg original.inv p claimed memo graph.root
+/-- Checked selected-sign evidence passes literal scalar replay with finite
+coverage of the actual polynomial and graph coefficients. A partial reader
+needs no global codec law. Graph shape, bindings and bounds are checked
+conclusions of the owner encoding laws, not additional hypotheses. -/
+theorem read_checked [Hashable parent.Value] [Hashable Signature] (model : Model parent ℝ)
+ (context : Algebraic.Context parent.Value Signature parent.sign parent.signature)
+ (value : ValueCodec parent.Value) (polynomial : DensePoly parent.Value)
+ (signs : SelectedSigns context.root [context.queryPoly polynomial])
+ (polynomialCovered : value.Covers (Codec.Coefficients.poly polynomial))
+ (graphCovered : value.Covers (Codec.Coefficients.graph (Dag.encode signs.evidence))) :
+ (read model value context (Codec.poly value polynomial) signs.value
+ (Codec.graph value Signature.codec (Dag.encode signs.evidence))).isSome = true := by
+ obtain ⟨memo, validated⟩ := Dag.validate_encode signs.check_eq.1
+ have decoded := Codec.read_graph_covered value Signature.codec parent.signature
+ context.root.raw.head context.root.raw.lower context.root.raw.upper
+ (Dag.encode signs.evidence) graphCovered (Signature.codec_lawful.covers _)
+ (Dag.encode_root signs.evidence)
+ (Codec.Shape.of_validate validated) (Codec.bindings_of_validate validated)
+ (Dag.encode_bounds signs.evidence)
+ have values : signs.values = #v[signs.value] := by
+ apply Vector.ext
+ intro i hi
+ simp only [List.length_singleton] at hi
+ have same : i = 0 := by omega
+ subst i
+ rfl
+ have selected : (context.readSigns? polynomial signs.value memo
+ (Dag.encode signs.evidence).root).isSome = true := by
+ rw [Algebraic.Context.readSigns?, SelectedSigns.readMemo_same,
+ Dag.selectedSigns_memo context.root [context.queryPoly polynomial] #v[signs.value]
+ (Dag.encode signs.evidence) memo validated, ← values]
+ have encoded := congrArg Option.isSome (Dag.selectedSigns_encode signs)
+ simpa using encoded
+ simp only [read, Codec.read_poly_covered value polynomial polynomialCovered, decoded, Except.toOption,
+ validated, bind, Option.bind]
+ unfold Algebraic.Context.readSignFact?
+ split
+ · simp_all
+ · rfl
+
+
+/-- A produced packet passes independent literal replay under a lawful
+coefficient codec. Graph shape, bindings and bounds follow from the owner's
+checked encoding laws; they are not additional hypotheses. -/
+theorem buildParts_accepted (model : Model parent ℝ)
+ (context : Algebraic.Context parent.Value Signature parent.sign parent.signature)
+ (value : ValueCodec parent.Value) (lawful : value.Lawful)
+ (polynomial : DensePoly parent.Value) (proposal : Proposal)
+ (produced : buildParts context value polynomial = some proposal) :
+ (read model value context proposal.polynomial proposal.sign proposal.evidence).isSome = true := by
+ let _ : Hashable parent.Value := ⟨fun a => hash (value.encode a)⟩
+ let _ : Hashable Signature := ⟨fun a => hash (Signature.codec.encode a)⟩
+ cases built : context.buildSigns [context.queryPoly polynomial] with
+ | error error => simp [buildParts, built] at produced
+ | ok signs =>
+ have payload : (⟨Codec.poly value polynomial, signs.value,
+ Codec.graph value Signature.codec (Dag.encode signs.evidence)⟩ : Proposal) = proposal := by
+ simpa [buildParts, built] using produced
+ cases payload
+ exact read_checked model context value polynomial signs (lawful.covers _) (lawful.covers _)
+
+/-- A lawful real parent and codec yield an actually produced, accepted scalar
+packet. No successful producer or accepted certificate is assumed. This is a
+progress theorem, not a replacement for quoting frozen data independently. -/
+theorem buildParts_checks (model : Model parent ℝ)
+ (context : Algebraic.Context parent.Value Signature parent.sign parent.signature)
+ (value : ValueCodec parent.Value) (lawful : value.Lawful) (polynomial : DensePoly parent.Value) :
+ ∃ proposal, buildParts context value polynomial = some proposal ∧
+ (read model value context proposal.polynomial proposal.sign proposal.evidence).isSome = true := by
+ obtain ⟨proposal, produced⟩ := buildParts_success model context value polynomial
+ exact ⟨proposal, produced, buildParts_accepted model context value lawful polynomial proposal produced⟩
+
/-- The fallback is unobservable after successful packet acceptance. -/
@[expose] def key (value : ValueCodec parent.Value) (literal : Codec.Json) :=
(Codec.readPoly value literal).toOption.getD 0
diff --git a/adapters/HexRCF/RealCoefficients/SignatureQuote.lean b/adapters/HexRCF/RealCoefficients/SignatureQuote.lean
new file mode 100644
index 0000000000..43a1a85a98
--- /dev/null
+++ b/adapters/HexRCF/RealCoefficients/SignatureQuote.lean
@@ -0,0 +1,63 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+module
+
+public meta import HexRCF.RealCoefficients.RootQuote
+
+public meta section
+
+/-! Full-signature reader quotation using checked literal bindings and public codec laws. -/
+namespace Hex.RCF.RealCoefficients.SignatureQuote
+open Lean Meta Hex Hex.RealClosure Hex.SignDet Hex.RealFormula.Reify
+
+/-- Quote a full signature decoder from its supplied literal binding. Only the
+exact signature codec and payload are eligible. A binding must prove
+`literal = signature.literal.toJson`; an invalid binding is terminal.
+The public owner equation restores the signature without running its parser.
+All inputs and proof construction consume the enclosing reflection budget.
+Use `RootQuote.runWith` for the transaction. This checks a serialization
+identity, not validity of a registry, selected root or context history. -/
+def decoder (signature literal binding : Expr) : RootQuote.DecoderM := fun expression => do
+ charge .proofNodes 1
+ if expression.hasLooseBVars || expression.hasMVar then return none
+ let codec? := match expression.getAppFn with
+ | .proj ``ValueCodec 1 codec =>
+ if expression.getAppNumArgs == 1 then some codec else none
+ | .const ``ValueCodec.decode _ =>
+ if expression.getAppNumArgs == 3 then some expression.getAppArgs[1]! else none
+ | _ => none
+ let some codec := codec? | return none
+ unless codec.isConstOf ``Tower.Signature.codec do return none
+ let payload ← withTransparency .all (whnf expression.getAppArgs.back!)
+ unless ← withNewMCtxDepth <| withTransparency .instances <|
+ isDefEq payload literal do return none
+ let mut inputs := #[]
+ for input in #[signature,literal,binding] do
+ let input ← instantiateMVars input
+ if input.hasFVar || input.hasMVar || input.hasLooseBVars then
+ throwError "rcf: signature quotation requires closed retained inputs"
+ accountProof input
+ inputs := inputs.push (← Hex.RCF.checkExpr `SignatureQuote.input input)
+ let signature := inputs[0]!
+ let literal := inputs[1]!
+ let binding := inputs[2]!
+ let encoded ← mkAppM ``Tower.Literal.toJson #[← mkAppM ``Tower.Signature.literal #[signature]]
+ let target ← mkEq literal encoded
+ accountProof target
+ let binding ← Hex.RCF.checkProof `SignatureQuote.binding target binding
+ let decode ← withLocalDeclD `literal (mkConst ``Codec.Json.Value) fun literal => do
+ mkLambdaFVars #[literal] (← mkAppM ``ValueCodec.decode #[codec,literal])
+ let transported ← mkAppM ``congrArg #[decode,binding]
+ let canonical ← mkAppM ``Tower.Signature.codec_literal #[signature]
+ let candidate ← mkEqTrans transported canonical
+ let kind ← inferType candidate
+ let target ← mkEq expression kind.getAppArgs[2]!
+ accountProof target
+ accountProof candidate
+ return some (← Hex.RCF.checkProof `SignatureQuote.read target
+ (mkExpectedPropHint candidate target))
+
+end Hex.RCF.RealCoefficients.SignatureQuote
diff --git a/adapters/HexRCF/RealCoefficients/SourceBuild.lean b/adapters/HexRCF/RealCoefficients/SourceBuild.lean
new file mode 100644
index 0000000000..877204026c
--- /dev/null
+++ b/adapters/HexRCF/RealCoefficients/SourceBuild.lean
@@ -0,0 +1,615 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+module
+public import HexRCF.RealCoefficients.RootBuild
+public import HexRCF.RealCoefficients.ScalarPacket
+public import HexRCF.RealCoefficients.SourceIdentity
+public section
+
+namespace Hex.RCF.RealCoefficients.SourceBuild
+open Hex Hex.RealClosure Hex.RealClosure.Tower Hex.SignDet
+variable {registry : BaseContext.Registry} {parent : Tower.Context registry}
+
+inductive Error where
+ | roots (error : RootBuild.Error)
+ | production (error : BuildError)
+ | descriptor (error : DescriptorError)
+ | equation
+ | enclosure
+ | ambiguous
+ | unselected
+ deriving Repr
+
+/-- Native proposals for one source root and the two independent scalar
+packets demanded by source authentication. The sign equalities only describe
+the proposed literal fields; they are not proof evidence about real values. -/
+structure Result (parent : Tower.Context registry) where
+ root : Descriptor parent.Value Signature parent.sign parent.signature
+ equation : ScalarPacket.Proposal
+ enclosure : ScalarPacket.Proposal
+ zero : equation.sign = 0
+ positive : enclosure.sign = 1
+
+/-- Visit every enumerated root. Failure to produce a row is terminal, and a
+second positive window match rejects an ambiguous source rather than choosing
+an arbitrary conjugate. No equation or enclosure is silently substituted. -/
+def select (polynomial window : DensePoly parent.Value)
+ (roots : List (Descriptor parent.Value Signature parent.sign parent.signature)) :
+ Except Error (Result parent) := do
+ let mut selected : Option (Result parent) := none
+ for root in roots do
+ let context := Algebraic.Context.adjoin root parent.isClean
+ let some equation := ScalarPacket.buildParts context parent.codec polynomial
+ | throw .equation
+ if zero : equation.sign = 0 then
+ let some enclosure := ScalarPacket.buildParts context parent.codec window
+ | throw .enclosure
+ if positive : enclosure.sign = 1 then
+ if selected.isSome then throw .ambiguous
+ selected := some ⟨root,equation,enclosure,zero,positive⟩
+ else unless enclosure.sign = 0 || enclosure.sign = -1 do throw .enclosure
+ else throw .equation
+ match selected with
+ | none => throw .unselected
+ | some result => return result
+
+/-- A lawful selected root satisfying the original equation and strictly
+positive window produces both scalar packets. No successful producer output
+or table is assumed. This establishes proposal progress, not frozen replay. -/
+theorem select_single (model : Model parent ℝ)
+ (root : Descriptor parent.Value Signature parent.sign parent.signature)
+ (polynomial window : DensePoly parent.Value)
+ (zero : (HexPolyTheory.Interpret.interpret model.value model.zero_iff polynomial).eval
+ (root.root model.value model.zero_iff model.one model.add model.sub model.mul model.nat model.sign) = 0)
+ (positive : 0 < (HexPolyTheory.Interpret.interpret model.value model.zero_iff window).eval
+ (root.root model.value model.zero_iff model.one model.add model.sub model.mul model.nat model.sign)) :
+ ∃ result, select polynomial window [root] = .ok result := by
+ let context := Algebraic.Context.adjoin root parent.isClean
+ have equationSign : context.signPoly polynomial = 0 := by
+ rw [context.signPoly_spec model.value model.zero_iff model.one model.add model.sub
+ model.mul model.nat model.sign model.neg model.inv]
+ simp [Algebraic.Context.evalPoly, Algebraic.Context.rootValue,
+ context, Algebraic.Context.root_adjoin, zero]
+ have windowSign : context.signPoly window = 1 := by
+ rw [context.signPoly_spec model.value model.zero_iff model.one model.add model.sub
+ model.mul model.nat model.sign model.neg model.inv]
+ have sign := congrArg (fun sign : SignType => (sign : Int)) (sign_eq_one_iff.mpr positive)
+ simpa [Algebraic.Context.evalPoly, Algebraic.Context.rootValue,
+ context, Algebraic.Context.root_adjoin] using sign
+ obtain ⟨equation, equationBuilt⟩ := ScalarPacket.buildParts_success model context parent.codec polynomial
+ obtain ⟨enclosure, enclosureBuilt⟩ := ScalarPacket.buildParts_success model context parent.codec window
+ have equationZero := (ScalarPacket.buildParts_sign model context parent.codec polynomial equation equationBuilt).trans equationSign
+ have enclosurePositive := (ScalarPacket.buildParts_sign model context parent.codec window enclosure enclosureBuilt).trans windowSign
+ dsimp only [context] at equationBuilt enclosureBuilt
+ refine ⟨⟨root,equation,enclosure,equationZero,enclosurePositive⟩, ?_⟩
+ simp [select, equationBuilt, enclosureBuilt, equationZero, enclosurePositive,
+ pure, Except.pure, bind, Except.bind]
+
+/-- Successful singleton selection retains two independently accepted scalar
+packets at its exact root, using the canonical predecessor codec. -/
+theorem select_checked (model : Model parent ℝ)
+ (root : Descriptor parent.Value Signature parent.sign parent.signature)
+ (polynomial window : DensePoly parent.Value) (result : Result parent)
+ (produced : select polynomial window [root] = .ok result) :
+ result.root = root ∧
+ result.equation.polynomial = Codec.poly parent.codec polynomial ∧
+ result.enclosure.polynomial = Codec.poly parent.codec window ∧
+ (let context := Algebraic.Context.adjoin result.root parent.isClean
+ (ScalarPacket.read model parent.codec context result.equation.polynomial
+ result.equation.sign result.equation.evidence).isSome = true ∧
+ (ScalarPacket.read model parent.codec context result.enclosure.polynomial
+ result.enclosure.sign result.enclosure.evidence).isSome = true) := by
+ cases equationBuilt : ScalarPacket.buildParts (Algebraic.Context.adjoin root parent.isClean)
+ parent.codec polynomial with
+ | none => simp [select, equationBuilt, pure, Except.pure, bind, Except.bind] at produced
+ | some equation =>
+ by_cases zero : equation.sign = 0
+ · cases enclosureBuilt : ScalarPacket.buildParts (Algebraic.Context.adjoin root parent.isClean)
+ parent.codec window with
+ | none => simp [select, equationBuilt, zero, enclosureBuilt, pure, Except.pure, bind, Except.bind] at produced
+ | some enclosure =>
+ by_cases positive : enclosure.sign = 1
+ · simp [select, equationBuilt, zero, enclosureBuilt, positive,
+ pure, Except.pure, bind, Except.bind] at produced
+ cases produced
+ exact ⟨rfl, ScalarPacket.buildParts_poly _ parent.codec polynomial equation equationBuilt,
+ ScalarPacket.buildParts_poly _ parent.codec window enclosure enclosureBuilt,
+ ScalarPacket.buildParts_accepted model _ parent.codec parent.codec_lawful
+ polynomial equation equationBuilt,
+ ScalarPacket.buildParts_accepted model _ parent.codec parent.codec_lawful
+ window enclosure enclosureBuilt⟩
+ · by_cases absent : enclosure.sign = 0 ∨ enclosure.sign = -1 <;>
+ simp [select, equationBuilt, zero, enclosureBuilt, positive, absent,
+ pure, Except.pure, bind, Except.bind, throw] at produced
+ · simp [select, equationBuilt, zero, pure, Except.pure, bind, Except.bind] at produced
+
+/-- A list of actual roots with exactly one positive window match produces a
+source. These are semantic input conditions; no scalar packet or successful
+producer result is assumed. -/
+theorem select_success (model : Model parent ℝ)
+ (polynomial window : DensePoly parent.Value)
+ (roots : List (Descriptor parent.Value Signature parent.sign parent.signature))
+ (zero : ∀ root ∈ roots,
+ (HexPolyTheory.Interpret.interpret model.value model.zero_iff polynomial).eval
+ (root.root model.value model.zero_iff model.one model.add model.sub model.mul
+ model.nat model.sign) = 0)
+ (one : (roots.filter fun root => Decidable.decide (0 <
+ (HexPolyTheory.Interpret.interpret model.value model.zero_iff window).eval
+ (root.root model.value model.zero_iff model.one model.add model.sub model.mul
+ model.nat model.sign))).length = 1) :
+ ∃ result, select polynomial window roots = .ok result := by
+ classical
+ let value (root : Descriptor parent.Value Signature parent.sign parent.signature) :=
+ root.root model.value model.zero_iff model.one model.add model.sub model.mul model.nat model.sign
+ let query root := (HexPolyTheory.Interpret.interpret model.value model.zero_iff window).eval (value root)
+ let marked root := Decidable.decide (0 < query root)
+ let step (root : Descriptor parent.Value Signature parent.sign parent.signature)
+ (state : Option (Result parent)) : Except Error (ForInStep (Option (Result parent))) := do
+ let context := Algebraic.Context.adjoin root parent.isClean
+ let some equation := ScalarPacket.buildParts context parent.codec polynomial | throw .equation
+ if zero : equation.sign = 0 then
+ let some enclosure := ScalarPacket.buildParts context parent.codec window | throw .enclosure
+ if positive : enclosure.sign = 1 then
+ if state.isSome then throw .ambiguous
+ return .yield (some ⟨root,equation,enclosure,zero,positive⟩)
+ else
+ unless enclosure.sign = 0 || enclosure.sign = -1 do throw .enclosure
+ return .yield state
+ else throw .equation
+ have advances (root) (member : root ∈ roots) (state : Option (Result parent))
+ (capacity : marked root = true → state.isSome = false) :
+ ∃ next, step root state = .ok (.yield next) ∧
+ (if next.isSome then 1 else 0) =
+ (if state.isSome then 1 else 0) + (if marked root then 1 else 0) := by
+ let context := Algebraic.Context.adjoin root parent.isClean
+ obtain ⟨equation,equationBuilt⟩ := ScalarPacket.buildParts_success model context parent.codec polynomial
+ obtain ⟨enclosure,enclosureBuilt⟩ := ScalarPacket.buildParts_success model context parent.codec window
+ have equationZero : equation.sign = 0 := by
+ rw [ScalarPacket.buildParts_sign model context parent.codec polynomial equation equationBuilt,
+ context.signPoly_spec model.value model.zero_iff model.one model.add model.sub
+ model.mul model.nat model.sign model.neg model.inv]
+ simp [Algebraic.Context.evalPoly, Algebraic.Context.rootValue, context,
+ Algebraic.Context.root_adjoin, zero root member]
+ have enclosureSign : enclosure.sign = (SignType.sign (query root) : Int) := by
+ rw [ScalarPacket.buildParts_sign model context parent.codec window enclosure enclosureBuilt,
+ context.signPoly_spec model.value model.zero_iff model.one model.add model.sub
+ model.mul model.nat model.sign model.neg model.inv]
+ simp [Algebraic.Context.evalPoly, Algebraic.Context.rootValue, context,
+ Algebraic.Context.root_adjoin, query, value]
+ dsimp only [context] at equationBuilt enclosureBuilt
+ by_cases positive : 0 < query root
+ · have enclosurePositive : enclosure.sign = 1 := enclosureSign.trans
+ (congrArg (fun sign : SignType => (sign : Int)) (sign_eq_one_iff.mpr positive))
+ have empty := capacity (by simp [marked,positive])
+ refine ⟨some ⟨root,equation,enclosure,equationZero,enclosurePositive⟩, ?_, ?_⟩
+ · simp [step,equationBuilt,enclosureBuilt,equationZero,enclosurePositive,empty,
+ bind,Except.bind,pure,Except.pure]
+ · simp [empty,marked,positive]
+ · have allowed : enclosure.sign = 0 ∨ enclosure.sign = -1 := by
+ rcases lt_or_eq_of_le (le_of_not_gt positive) with negative | equal
+ · exact Or.inr (enclosureSign.trans
+ (congrArg (fun sign : SignType => (sign : Int)) (sign_eq_neg_one_iff.mpr negative)))
+ · exact Or.inl (by simpa [equal] using enclosureSign)
+ have notOne : enclosure.sign ≠ 1 := by rcases allowed with h | h <;> omega
+ refine ⟨state, ?_, ?_⟩
+ · simp [step,equationBuilt,enclosureBuilt,equationZero,notOne,allowed,
+ bind,Except.bind,pure,Except.pure]
+ · simp [marked,positive]
+ have loop (rest : List _) (members : ∀ root ∈ rest, root ∈ roots) (state : Option (Result parent))
+ (count : (rest.filter marked).length + (if state.isSome then 1 else 0) = 1) :
+ ∃ output, forIn rest state step = .ok output ∧ output.isSome = true := by
+ induction rest generalizing state with
+ | nil =>
+ cases state with
+ | none => simp at count
+ | some source => exact ⟨some source, by simp [pure,Except.pure], rfl⟩
+ | cons root rest ih =>
+ have capacity : marked root = true → state.isSome = false := by
+ intro positive
+ have bound := count
+ simp only [List.filter_cons,positive,↓reduceIte,List.length_cons] at bound
+ cases occupied : state.isSome <;> simp_all
+ obtain ⟨next,advanced,flags⟩ := advances root (members root (by simp)) state capacity
+ have remaining : (rest.filter marked).length + (if next.isSome then 1 else 0) = 1 := by
+ cases positive : marked root <;> simp [positive] at count flags <;> omega
+ obtain ⟨output,returned,present⟩ := ih (fun root member => members root (by simp [member])) next remaining
+ exact ⟨output, by simpa [List.forIn_cons,advanced,bind,Except.bind] using returned, present⟩
+ obtain ⟨state,returned,present⟩ := loop roots (fun _ member => member) none (by simpa [marked,query,value] using one)
+ cases state with
+ | none => simp at present
+ | some source =>
+ refine ⟨source, ?_⟩
+ change (do
+ let state ← forIn roots (none : Option (Result parent)) step
+ match state with
+ | none => throw Error.unselected
+ | some source => pure source) = .ok source
+ simp [returned,bind,Except.bind,pure,Except.pure]
+
+/-- Every successful selection from an arbitrary root list retains a member
+of that list and independently accepted packets for the original two keys.
+No singleton-list, producer-success or serialization premise is required. -/
+theorem select_checks (model : Model parent ℝ)
+ (polynomial window : DensePoly parent.Value)
+ (roots : List (Descriptor parent.Value Signature parent.sign parent.signature))
+ (result : Result parent) (produced : select polynomial window roots = .ok result) :
+ result.root ∈ roots ∧
+ result.equation.polynomial = Codec.poly parent.codec polynomial ∧
+ result.enclosure.polynomial = Codec.poly parent.codec window ∧
+ (let context := Algebraic.Context.adjoin result.root parent.isClean
+ (ScalarPacket.read model parent.codec context result.equation.polynomial
+ result.equation.sign result.equation.evidence).isSome = true ∧
+ (ScalarPacket.read model parent.codec context result.enclosure.polynomial
+ result.enclosure.sign result.enclosure.evidence).isSome = true) := by
+ let checked (source : Result parent) : Prop :=
+ source.root ∈ roots ∧
+ source.equation.polynomial = Codec.poly parent.codec polynomial ∧
+ source.enclosure.polynomial = Codec.poly parent.codec window ∧
+ (let context := Algebraic.Context.adjoin source.root parent.isClean
+ (ScalarPacket.read model parent.codec context source.equation.polynomial
+ source.equation.sign source.equation.evidence).isSome = true ∧
+ (ScalarPacket.read model parent.codec context source.enclosure.polynomial
+ source.enclosure.sign source.enclosure.evidence).isSome = true)
+ let invariant (state : Option (Result parent)) : Prop :=
+ ∀ source, state = some source → checked source
+ let step (root : Descriptor parent.Value Signature parent.sign parent.signature)
+ (state : Option (Result parent)) : Except Error (ForInStep (Option (Result parent))) := do
+ let context := Algebraic.Context.adjoin root parent.isClean
+ let some equation := ScalarPacket.buildParts context parent.codec polynomial
+ | throw .equation
+ if zero : equation.sign = 0 then
+ let some enclosure := ScalarPacket.buildParts context parent.codec window
+ | throw .enclosure
+ if positive : enclosure.sign = 1 then
+ if state.isSome then throw .ambiguous
+ return .yield (some ⟨root,equation,enclosure,zero,positive⟩)
+ else
+ unless enclosure.sign = 0 || enclosure.sign = -1 do throw .enclosure
+ return .yield state
+ else throw .equation
+ have preserves (root) (member : root ∈ roots) (state) (valid : invariant state)
+ (next) (returned : step root state = .ok next) : invariant next.value := by
+ cases equationBuilt : ScalarPacket.buildParts (Algebraic.Context.adjoin root parent.isClean)
+ parent.codec polynomial with
+ | none => simp [step, equationBuilt, bind, Except.bind] at returned
+ | some equation =>
+ by_cases zero : equation.sign = 0
+ · cases enclosureBuilt : ScalarPacket.buildParts (Algebraic.Context.adjoin root parent.isClean)
+ parent.codec window with
+ | none => simp [step, equationBuilt, zero, enclosureBuilt, bind, Except.bind] at returned
+ | some enclosure =>
+ by_cases positive : enclosure.sign = 1
+ · by_cases occupied : state.isSome = true
+ · simp [step, equationBuilt, zero, enclosureBuilt, positive, occupied,
+ bind, Except.bind] at returned
+ · simp [step, equationBuilt, zero, enclosureBuilt, positive, occupied,
+ bind, Except.bind, pure, Except.pure] at returned
+ cases returned
+ have accepted : checked ⟨root,equation,enclosure,zero,positive⟩ :=
+ ⟨member, ScalarPacket.buildParts_poly _ parent.codec polynomial equation equationBuilt,
+ ScalarPacket.buildParts_poly _ parent.codec window enclosure enclosureBuilt,
+ ScalarPacket.buildParts_accepted model _ parent.codec parent.codec_lawful
+ polynomial equation equationBuilt,
+ ScalarPacket.buildParts_accepted model _ parent.codec parent.codec_lawful
+ window enclosure enclosureBuilt⟩
+ simpa [invariant] using accepted
+ · by_cases allowed : enclosure.sign = 0 ∨ enclosure.sign = -1
+ · simp [step, equationBuilt, zero, enclosureBuilt, positive, allowed,
+ bind, Except.bind, pure, Except.pure] at returned
+ cases returned
+ exact valid
+ · simp [step, equationBuilt, zero, enclosureBuilt, positive, allowed,
+ bind, Except.bind] at returned
+ · simp [step, equationBuilt, zero, bind, Except.bind] at returned
+ have loop (rest : List _) (members : ∀ root ∈ rest, root ∈ roots)
+ (state output) (valid : invariant state)
+ (returned : forIn rest state step = .ok output) : invariant output := by
+ induction rest generalizing state output with
+ | nil =>
+ simp only [List.forIn_nil, pure, Except.pure, Except.ok.injEq] at returned
+ cases returned
+ exact valid
+ | cons root rest ih =>
+ rw [List.forIn_cons] at returned
+ cases advanced : step root state with
+ | error cause => simp [advanced, bind, Except.bind] at returned
+ | ok next =>
+ have validNext := preserves root (members root (by simp)) state valid next advanced
+ cases next with
+ | done next =>
+ simp [advanced, bind, Except.bind, pure, Except.pure] at returned
+ cases returned
+ exact validNext
+ | yield next =>
+ exact ih (fun root member => members root (by simp [member])) next output validNext
+ (by simpa [advanced, bind, Except.bind] using returned)
+ change (do
+ let state ← forIn roots (none : Option (Result parent)) step
+ match state with
+ | none => throw Error.unselected
+ | some source => pure source) = .ok result at produced
+ cases returned : forIn roots (none : Option (Result parent)) step with
+ | error cause => simp [returned, bind, Except.bind] at produced
+ | ok state =>
+ have valid := loop roots (fun _ member => member) none state
+ (by intro source impossible; cases impossible) returned
+ cases state with
+ | none => simp [returned, bind, Except.bind] at produced
+ | some source =>
+ simp [returned, bind, Except.bind, pure, Except.pure] at produced
+ cases produced
+ exact valid result rfl
+
+/-- Enumerate with the existing owner root producer and select exactly one
+root using the supplied enclosure polynomial. The usual window is the source
+isolating-square margin. Its original-source interpretation and selected-root
+identity are subsequently checked by `SourceIdentity.quoteWith`; this producer
+does not prove them, reconstruct a frozen parent, or establish completeness. -/
+def build (polynomial window : DensePoly parent.Value) : Except Error (Result parent) := do
+ let roots ← RootBuild.build polynomial |>.mapError Error.roots
+ select polynomial window roots.roots
+
+/-- A squarefree real head with exactly one positive window root produces a
+source by complete enumeration. Coverage and absence of duplicate real roots
+come from the owner's checked table; neither a native root list nor a
+successful scalar production result is supplied as a premise. -/
+theorem build_success (model : Model parent ℝ)
+ (polynomial window : DensePoly parent.Value)
+ (squarefree : Squarefree (HexPolyTheory.Interpret.interpret model.value model.zero_iff polynomial))
+ (unique : ∃! x : ℝ,
+ x ∈ HexRealRootsTheory.Tarski.rootsIn
+ (HexPolyTheory.Interpret.interpret model.value model.zero_iff polynomial) .negInf .posInf ∧
+ 0 < (HexPolyTheory.Interpret.interpret model.value model.zero_iff window).eval x) :
+ ∃ result, build polynomial window = .ok result := by
+ classical
+ obtain ⟨roots,enumerated⟩ := RootBuild.success model polynomial squarefree
+ let value (root : Descriptor parent.Value Signature parent.sign parent.signature) :=
+ root.root model.value model.zero_iff model.one model.add model.sub model.mul model.nat model.sign
+ let positive (x : ℝ) := Decidable.decide
+ (0 < (HexPolyTheory.Interpret.interpret model.value model.zero_iff window).eval x)
+ let chosen := (roots.values model).filter positive
+ have coverage := roots.coverage model
+ obtain ⟨anchor,selected,only⟩ := unique
+ have subset : chosen ⊆ [anchor] := by
+ intro x member
+ obtain ⟨root,window⟩ := List.mem_filter.mp member
+ exact List.mem_singleton.mpr (only x ⟨(coverage.1 x).mpr root, of_decide_eq_true window⟩)
+ have bound : chosen.length ≤ 1 := by
+ simpa using (coverage.2.filter positive).length_le_of_subset subset
+ have present : anchor ∈ chosen :=
+ List.mem_filter.mpr ⟨(coverage.1 anchor).mp selected.1, by simpa [positive] using selected.2⟩
+ have nonzero : chosen.length ≠ 0 := by
+ intro empty
+ simp [List.length_eq_zero_iff.mp empty] at present
+ have one : chosen.length = 1 := by omega
+ have mapped : (roots.roots.filter (fun root => positive (value root))).map value = chosen := by
+ simp only [chosen, RootReplay.Result.values, List.filter_map, Function.comp_def, value]
+ have count : (roots.roots.filter fun root => Decidable.decide (0 <
+ (HexPolyTheory.Interpret.interpret model.value model.zero_iff window).eval
+ (root.root model.value model.zero_iff model.one model.add model.sub model.mul
+ model.nat model.sign))).length = 1 := by
+ change (roots.roots.filter (fun root => positive (value root))).length = 1
+ rw [← List.length_map value, mapped]
+ exact one
+ obtain ⟨result,produced⟩ := select_success model polynomial window roots.roots
+ (fun root member => ((HexRealRootsTheory.Tarski.mem_rootsIn_iff _ squarefree.ne_zero _ _ _).mp
+ (roots.root_spec model root member)).1) count
+ refine ⟨result, ?_⟩
+ simp [build,enumerated,Except.mapError,produced,bind,Except.bind]
+
+/-- Successful enumeration retains the exact original full descriptor, an
+actual real root and independently accepted original equation/window packets.
+The root and serialization facts are checked conclusions, not assumptions.
+Predecessor reconstruction and source-alias identification remain separate. -/
+theorem build_checked (model : Model parent ℝ)
+ (polynomial window : DensePoly parent.Value) (result : Result parent)
+ (produced : build polynomial window = .ok result) :
+ ∃ word, result.root.raw = (RootReplay.subject polynomial .negInf .posInf).full word ∧
+ result.root.root model.value model.zero_iff model.one model.add model.sub model.mul
+ model.nat model.sign ∈ HexRealRootsTheory.Tarski.rootsIn
+ (HexPolyTheory.Interpret.interpret model.value model.zero_iff polynomial)
+ .negInf .posInf ∧
+ result.equation.polynomial = Codec.poly parent.codec polynomial ∧
+ result.enclosure.polynomial = Codec.poly parent.codec window ∧
+ (let context := Algebraic.Context.adjoin result.root parent.isClean
+ (ScalarPacket.read model parent.codec context result.equation.polynomial
+ result.equation.sign result.equation.evidence).isSome = true ∧
+ (ScalarPacket.read model parent.codec context result.enclosure.polynomial
+ result.enclosure.sign result.enclosure.evidence).isSome = true) := by
+ cases enumerated : RootBuild.build polynomial with
+ | error cause => simp [build, enumerated, Except.mapError, bind, Except.bind] at produced
+ | ok roots =>
+ have selected : select polynomial window roots.roots = .ok result := by
+ simpa [build, enumerated, Except.mapError, bind, Except.bind] using produced
+ obtain ⟨member,equation,enclosure,accepted⟩ :=
+ select_checks model polynomial window roots.roots result selected
+ obtain ⟨word,raw⟩ := roots.fields result.root member
+ exact ⟨word,raw,roots.root_spec model result.root member,equation,enclosure,accepted⟩
+
+/-- The real uniqueness condition yields actual production and accepted
+literal packets together, retaining the exact full descriptor and original
+keys. This is source-packet progress, not arbitrary history reconstruction or
+completeness of the full source-goal tactic. -/
+theorem build_checks (model : Model parent ℝ)
+ (polynomial window : DensePoly parent.Value)
+ (squarefree : Squarefree (HexPolyTheory.Interpret.interpret model.value model.zero_iff polynomial))
+ (unique : ∃! x : ℝ,
+ x ∈ HexRealRootsTheory.Tarski.rootsIn
+ (HexPolyTheory.Interpret.interpret model.value model.zero_iff polynomial) .negInf .posInf ∧
+ 0 < (HexPolyTheory.Interpret.interpret model.value model.zero_iff window).eval x) :
+ ∃ result, build polynomial window = .ok result ∧
+ ∃ word, result.root.raw = (RootReplay.subject polynomial .negInf .posInf).full word ∧
+ result.root.root model.value model.zero_iff model.one model.add model.sub model.mul
+ model.nat model.sign ∈ HexRealRootsTheory.Tarski.rootsIn
+ (HexPolyTheory.Interpret.interpret model.value model.zero_iff polynomial)
+ .negInf .posInf ∧
+ result.equation.polynomial = Codec.poly parent.codec polynomial ∧
+ result.enclosure.polynomial = Codec.poly parent.codec window ∧
+ (let context := Algebraic.Context.adjoin result.root parent.isClean
+ (ScalarPacket.read model parent.codec context result.equation.polynomial
+ result.equation.sign result.equation.evidence).isSome = true ∧
+ (ScalarPacket.read model parent.codec context result.enclosure.polynomial
+ result.enclosure.sign result.enclosure.evidence).isSome = true) := by
+ obtain ⟨result,produced⟩ := build_success model polynomial window squarefree unique
+ exact ⟨result,produced,build_checked model polynomial window result produced⟩
+
+/-- Propose a source in an open interval with root-free endpoints. The
+owner checks the endpoints and exactly one root before constructing a
+descriptor with no derivative queries. The independent equation and original
+window packets are still required. Invalid domains, absent/ambiguous roots
+and production failures remain distinct; no all-real enumeration is retried.
+This is certificate production, not source identification or completeness. -/
+def buildOn (polynomial window : DensePoly parent.Value)
+ (lower upper : Endpoint parent.Value) : Except Error (Result parent) := do
+ let raw : RawDescriptor parent.Value Signature :=
+ ⟨parent.signature, polynomial, lower, upper, [], []⟩
+ let root ← match Descriptor.build parent.sign parent.signature raw with
+ | .error error => .error (.production error)
+ | .ok (.error error) => .error (.descriptor error)
+ | .ok (.ok root) => .ok root
+ select polynomial window [root]
+
+/-- Actual bounded production implies independent acceptance of its original
+equation and enclosure packets. No serialization or graph-shape premise is
+added; the canonical parent codec already has its owner roundtrip law. -/
+theorem buildOn_checked (model : Model parent ℝ)
+ (polynomial window : DensePoly parent.Value) (lower upper : Endpoint parent.Value)
+ (result : Result parent) (produced : buildOn polynomial window lower upper = .ok result) :
+ result.root.raw = ⟨parent.signature,polynomial,lower,upper,[],[]⟩ ∧
+ result.equation.polynomial = Codec.poly parent.codec polynomial ∧
+ result.enclosure.polynomial = Codec.poly parent.codec window ∧
+ (let context := Algebraic.Context.adjoin result.root parent.isClean
+ (ScalarPacket.read model parent.codec context result.equation.polynomial
+ result.equation.sign result.equation.evidence).isSome = true ∧
+ (ScalarPacket.read model parent.codec context result.enclosure.polynomial
+ result.enclosure.sign result.enclosure.evidence).isSome = true) := by
+ cases built : Descriptor.build parent.sign parent.signature
+ (⟨parent.signature,polynomial,lower,upper,[],[]⟩ : RawDescriptor parent.Value Signature) with
+ | error error => simp [buildOn, built, bind, Except.bind] at produced
+ | ok outcome =>
+ cases outcome with
+ | error error => simp [buildOn, built, bind, Except.bind] at produced
+ | ok root =>
+ have selected : select polynomial window [root] = .ok result := by
+ simpa only [buildOn, built, bind, Except.bind] using produced
+ obtain ⟨same, equation, enclosure, checked⟩ := select_checked model root polynomial window result selected
+ exact ⟨(congrArg (·.raw) same).trans (Descriptor.build_raw built), equation, enclosure, checked⟩
+
+/-- Accepted produced packets identify the original selected source. The
+source witness, alias selection and coefficient-map laws are inputs; scalar
+vanishing and window positivity are derived from the returned packets. This
+soundness law does not replace independent frozen quotation. -/
+theorem buildOn_identify (model : Model parent ℝ)
+ (polynomial window : DensePoly parent.Value) (lower upper : Endpoint parent.Value)
+ (result : Result parent) (produced : buildOn polynomial window lower upper = .ok result)
+ (sourceP : ZPoly) (square : DyadicSquare)
+ (hw : atomWitness sourceP square) (hp : (mahlerPrec sourceP : Int) ≤ square.prec)
+ (anchor : ℝ) (selected : (Field.literalRep sourceP square hw hp).root.re = anchor)
+ (equationValue : HexPolyTheory.Interpret.interpret model.value model.zero_iff polynomial =
+ LiteralSign.realPoly (ZPoly.toRatPoly sourceP))
+ (enclosureValue : HexPolyTheory.Interpret.interpret model.value model.zero_iff window =
+ LiteralSign.realPoly (SourceIdentity.margin square)) :
+ result.root.root model.value model.zero_iff model.one model.add model.sub model.mul
+ model.nat model.sign = anchor := by
+ obtain ⟨_, equationKey, enclosureKey, equationRead, enclosureRead⟩ :=
+ buildOn_checked model polynomial window lower upper result produced
+ let context := Algebraic.Context.adjoin result.root parent.isClean
+ let equation := ScalarPacket.restore model parent.codec context result.equation.polynomial
+ result.equation.sign result.equation.evidence equationRead
+ let enclosure := ScalarPacket.restore model parent.codec context result.enclosure.polynomial
+ result.enclosure.sign result.enclosure.evidence enclosureRead
+ have equationPoly : equation.polynomial = polynomial := by
+ change ScalarPacket.key parent.codec result.equation.polynomial = polynomial
+ rw [equationKey]
+ simp only [ScalarPacket.key, Codec.read_poly parent.codec parent.codec_lawful,
+ Except.toOption, Option.getD_some]
+ have enclosurePoly : enclosure.polynomial = window := by
+ change ScalarPacket.key parent.codec result.enclosure.polynomial = window
+ rw [enclosureKey]
+ simp only [ScalarPacket.key, Codec.read_poly parent.codec parent.codec_lawful,
+ Except.toOption, Option.getD_some]
+ apply SourceIdentity.identify model result.root sourceP square hw hp anchor selected equation enclosure
+ · rw [equationPoly]
+ exact equationValue
+ · rw [enclosurePoly]
+ exact enclosureValue
+ · exact result.zero
+ · exact result.positive
+
+/-- An ordinary-real count-one domain with a positive original window yields
+an actual bounded source proposal. The domain, count and sign premises are
+mathematical properties of the input, not successful producer equations.
+Frozen serialization acceptance and source alias identification are separate. -/
+theorem buildOn_success (model : Model parent ℝ)
+ (polynomial window : DensePoly parent.Value) (lower upper : Endpoint parent.Value)
+ (domain : HexSturmTheory.Domain model.value model.zero_iff polynomial lower upper)
+ (one : (HexRealRootsTheory.Tarski.rootsIn
+ (HexPolyTheory.Interpret.interpret model.value model.zero_iff polynomial)
+ (lower.map model.value) (upper.map model.value)).card = 1)
+ (positive : ∀ x ∈ HexRealRootsTheory.Tarski.rootsIn
+ (HexPolyTheory.Interpret.interpret model.value model.zero_iff polynomial)
+ (lower.map model.value) (upper.map model.value),
+ 0 < (HexPolyTheory.Interpret.interpret model.value model.zero_iff window).eval x) :
+ ∃ result, buildOn polynomial window lower upper = .ok result := by
+ classical
+ have countPositive : 0 < (HexRealRootsTheory.Tarski.rootsIn
+ (HexPolyTheory.Interpret.interpret model.value model.zero_iff polynomial)
+ (lower.map model.value) (upper.map model.value)).card := by
+ rw [one]
+ exact Nat.zero_lt_one
+ obtain ⟨witness, inDomain⟩ := Finset.card_pos.mp countPositive
+ have rootZero := ((HexRealRootsTheory.Tarski.mem_rootsIn_iff _ domain.1 _ _ _).mp inDomain).1
+ have semanticDegree := Polynomial.natDegree_pos_iff_degree_pos.mpr
+ (Polynomial.degree_pos_of_root domain.1 rootZero)
+ have degree : 0 < polynomial.natDegree := by
+ simpa only [HexPolyTheory.Interpret.natDegree_interpret] using semanticDegree
+ let raw : RawDescriptor parent.Value Signature :=
+ ⟨parent.signature,polynomial,lower,upper,[],[]⟩
+ obtain ⟨root, built⟩ := (Descriptor.build_success_iff model.value model.zero_iff
+ model.one model.add model.sub model.mul model.nat model.neg model.inv
+ parent.sign model.sign parent.signature raw).mpr
+ ⟨rfl, by simp [raw, RawDescriptor.wellFormed, degree], domain,
+ by simpa [raw, RawDescriptor.queries, signsAt] using one⟩
+ have retained := Descriptor.build_raw built
+ have member : root.root model.value model.zero_iff model.one model.add model.sub
+ model.mul model.nat model.sign ∈ HexRealRootsTheory.Tarski.rootsIn
+ (HexPolyTheory.Interpret.interpret model.value model.zero_iff polynomial)
+ (lower.map model.value) (upper.map model.value) := by
+ simpa only [retained] using (root.root_spec model.value model.zero_iff model.one
+ model.add model.sub model.mul model.nat model.sign).1
+ have zero := ((HexRealRootsTheory.Tarski.mem_rootsIn_iff _ domain.1 _ _ _).mp member).1
+ obtain ⟨result, selected⟩ := select_single model root polynomial window zero (positive _ member)
+ dsimp only [raw] at built
+ refine ⟨result, ?_⟩
+ simpa only [buildOn, built, bind, Except.bind] using selected
+
+/-- Valid count-one real inputs yield actual bounded production, exact literal
+subjects and two independently accepted scalar packets. The codec law belongs
+to the canonical parent; no accepted-output or serialization premise is added.
+This does not reconstruct a frozen parent history or identify a source alias. -/
+theorem buildOn_checks (model : Model parent ℝ)
+ (polynomial window : DensePoly parent.Value) (lower upper : Endpoint parent.Value)
+ (domain : HexSturmTheory.Domain model.value model.zero_iff polynomial lower upper)
+ (one : (HexRealRootsTheory.Tarski.rootsIn
+ (HexPolyTheory.Interpret.interpret model.value model.zero_iff polynomial)
+ (lower.map model.value) (upper.map model.value)).card = 1)
+ (positive : ∀ x ∈ HexRealRootsTheory.Tarski.rootsIn
+ (HexPolyTheory.Interpret.interpret model.value model.zero_iff polynomial)
+ (lower.map model.value) (upper.map model.value),
+ 0 < (HexPolyTheory.Interpret.interpret model.value model.zero_iff window).eval x) :
+ ∃ result, buildOn polynomial window lower upper = .ok result ∧
+ result.root.raw = ⟨parent.signature,polynomial,lower,upper,[],[]⟩ ∧
+ result.equation.polynomial = Codec.poly parent.codec polynomial ∧
+ result.enclosure.polynomial = Codec.poly parent.codec window ∧
+ (let context := Algebraic.Context.adjoin result.root parent.isClean
+ (ScalarPacket.read model parent.codec context result.equation.polynomial
+ result.equation.sign result.equation.evidence).isSome = true ∧
+ (ScalarPacket.read model parent.codec context result.enclosure.polynomial
+ result.enclosure.sign result.enclosure.evidence).isSome = true) := by
+ obtain ⟨result, produced⟩ := buildOn_success model polynomial window lower upper domain one positive
+ exact ⟨result, produced, buildOn_checked model polynomial window lower upper result produced⟩
+
+end Hex.RCF.RealCoefficients.SourceBuild
diff --git a/adapters/HexRCF/RealCoefficients/SourceIdentity.lean b/adapters/HexRCF/RealCoefficients/SourceIdentity.lean
index a349ae605c..1c38370195 100644
--- a/adapters/HexRCF/RealCoefficients/SourceIdentity.lean
+++ b/adapters/HexRCF/RealCoefficients/SourceIdentity.lean
@@ -70,4 +70,37 @@ theorem select (sourceP : ZPoly) (square : DyadicSquare)
have realPart := congrArg Complex.re same
simpa only [Complex.ofReal_re, selected] using realPart
+/-- Bind an original source to one selected root using two checked facts in
+that same root context. The equation alone cannot select a real conjugate;
+the strictly positive square margin fixes the original embedding. -/
+theorem identify {registry : BaseContext.Registry} {parent : Tower.Context registry}
+ (model : Tower.Model parent ℝ)
+ (root : SignDet.Descriptor parent.Value Tower.Signature parent.sign parent.signature)
+ (sourceP : ZPoly) (square : DyadicSquare)
+ (hw : atomWitness sourceP square) (hp : (mahlerPrec sourceP : Int) ≤ square.prec)
+ (anchor : ℝ) (selected : (Field.literalRep sourceP square hw hp).root.re = anchor)
+ (equation enclosure : Algebraic.SignFact (Algebraic.Context.adjoin root parent.isClean))
+ (equation_value : HexPolyTheory.Interpret.interpret model.value model.zero_iff
+ equation.polynomial = LiteralSign.realPoly (ZPoly.toRatPoly sourceP))
+ (enclosure_value : HexPolyTheory.Interpret.interpret model.value model.zero_iff
+ enclosure.polynomial = LiteralSign.realPoly (margin square))
+ (zero : equation.sign = 0) (positive : enclosure.sign = 1) :
+ root.root model.value model.zero_iff model.one model.add model.sub model.mul
+ model.nat model.sign = anchor := by
+ let x := root.root model.value model.zero_iff model.one model.add model.sub model.mul
+ model.nat model.sign
+ have equation_sign := (observe model root equation.polynomial
+ (ZPoly.toRatPoly sourceP) equation_value equation rfl).trans zero
+ have enclosure_sign := (observe model root enclosure.polynomial
+ (margin square) enclosure_value enclosure rfl).trans positive
+ have vanishing : (LiteralSign.realPoly (ZPoly.toRatPoly sourceP)).IsRoot x := by
+ apply sign_eq_zero_iff.mp
+ cases tagged : SignType.sign ((LiteralSign.realPoly (ZPoly.toRatPoly sourceP)).eval x) <;>
+ simp_all [x]
+ apply select sourceP square hw hp anchor x selected vanishing
+ rw [← margin_eval]
+ apply sign_eq_one_iff.mp
+ cases tagged : SignType.sign ((LiteralSign.realPoly (margin square)).eval x) <;>
+ simp_all [x]
+
end Hex.RCF.RealCoefficients.SourceIdentity
diff --git a/adapters/HexRCF/RealCoefficients/SourceIdentityQuote.lean b/adapters/HexRCF/RealCoefficients/SourceIdentityQuote.lean
new file mode 100644
index 0000000000..1157c9f4d4
--- /dev/null
+++ b/adapters/HexRCF/RealCoefficients/SourceIdentityQuote.lean
@@ -0,0 +1,178 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+module
+public import HexRCF.RealCoefficients.SourceIdentity
+public meta import HexRCF.RealCoefficients.ScalarPacketQuote
+public meta import HexRCF.RealCoefficients.RootPrepare
+public meta section
+
+namespace Hex.RCF.RealCoefficients.SourceIdentity
+open Lean Meta Hex Hex.RealClosure Hex.RealFormula.Reify
+
+/-- Original source selection, including its checked isolating square and the
+identity of that selected root with the original real expression. -/
+structure Anchor where
+ polynomial : Expr
+ square : Expr
+ witness : Expr
+ precision : Expr
+ value : Expr
+ selected : Expr
+
+/-- Two complete scalar readers at the same selected context. The value laws
+bind their polynomial keys to the original equation and square margin. -/
+structure Packets where
+ equation : Expr
+ enclosure : Expr
+ equationValue : Expr
+ enclosureValue : Expr
+
+structure Result where
+ root : Expr
+ equation : Expr
+ enclosure : Expr
+ proof : Expr
+ usage : Hex.Reflect.BudgetUsage
+
+private def input (expression : Expr) : ReifyM Expr := do
+ let expression ← instantiateMVars expression
+ unless !expression.hasFVar && !expression.hasMVar && !expression.hasLooseBVars do
+ throwError "rcf: selected source quotation requires closed inputs"
+ accountProof expression
+ Hex.RCF.checkExpr `SourceIdentity.input expression
+
+private def arguments (name : Name) (expression : Expr) : ReifyM (Array Expr) := do
+ let expression := expression.consumeMData
+ unless expression.getAppFn.isConstOf name &&
+ expression.getAppNumArgs == (← getConstInfo name).type.getNumHeadForalls do
+ throwError "rcf: selected source quotation expected a complete {name} application"
+ let args := expression.getAppArgs
+ charge .proofNodes (args.size+1)
+ let info ← getFunInfoNArgs expression.getAppFn args.size
+ return args.zipIdx |>.filterMap fun (arg,i) =>
+ if info.paramInfo[i]!.binderInfo.isExplicit then some arg else none
+
+private def descriptor (context : Expr) : ReifyM Expr := do
+ let mut context := context.consumeMData
+ while !context.getAppFn.isConstOf ``Algebraic.Context.adjoin do
+ Core.checkSystem "selected source context"
+ charge .proofNodes 1
+ let some next ← unfoldDefinition? context
+ | throwError "rcf: selected source quotation requires an adjunction context"
+ if next == context then throwError "rcf: selected source context did not unfold"
+ accountProof next
+ context := next.consumeMData
+ let args ← arguments ``Algebraic.Context.adjoin context
+ unless args.size == 2 do throwError "rcf: adjunction context signature changed"
+ return args[0]!
+
+private def signProof (fact : Expr) (sign : Int) : ReifyM Expr := do
+ let target ← mkEq (← mkAppM ``Algebraic.SignFact.sign #[fact]) (toExpr sign)
+ let candidate ← mkEqRefl (toExpr sign)
+ accountProof target
+ accountProof candidate
+ Hex.RCF.checkProof `SourceIdentity.sign target (mkExpectedPropHint candidate target)
+
+/-- Independently quote equation and enclosure packets, then authenticate the
+original source at their same selected root. Both packets use the supplied
+prepared-context equality. Their actual keys, signs and semantic value laws
+are checked before composing the source identity. No producer or source search
+runs here. Use the enclosing `RootQuote.runWith` transaction for rollback;
+all inputs, readers and proofs consume that request's reflection budget. -/
+def quoteWith (anchor : Anchor) (packets : Packets) (prepared same : Expr)
+ (decode : RootQuote.DecoderM := fun _ => pure none) : ReifyM Result := do
+ let polynomial ← input anchor.polynomial
+ let square ← input anchor.square
+ let witness ← input anchor.witness
+ let precision ← input anchor.precision
+ let value ← input anchor.value
+ let selected ← input anchor.selected
+ let equationReader ← input packets.equation
+ let enclosureReader ← input packets.enclosure
+ let equationValue ← input packets.equationValue
+ let enclosureValue ← input packets.enclosureValue
+ let prepared ← input prepared
+ let same ← input same
+ let inputs ← arguments ``ScalarPacket.read equationReader
+ unless inputs.size == 6 do throwError "rcf: scalar source reader signature changed"
+ let root ← descriptor inputs[2]!
+ let equation ← ScalarPacket.quoteWith equationReader prepared same decode
+ let enclosure ← ScalarPacket.quoteWith enclosureReader prepared same decode
+ let zero ← signProof equation.value 0
+ let positive ← signProof enclosure.value 1
+ let model := inputs[0]!
+ let fields ← #[``Tower.Model.value,``Tower.Model.zero_iff,``Tower.Model.one,
+ ``Tower.Model.add,``Tower.Model.sub,``Tower.Model.mul,``Tower.Model.nat,
+ ``Tower.Model.sign].mapM fun name => mkAppM name #[model]
+ let actual ← mkAppM ``Hex.SignDet.Descriptor.root (fields.push root)
+ let target ← mkEq actual value
+ let candidate ← mkAppM ``identify #[model,root,polynomial,square,witness,precision,
+ value,selected,equation.value,enclosure.value,equationValue,enclosureValue,zero,positive]
+ accountProof target
+ accountProof candidate
+ let proof ← Hex.RCF.checkProof `SourceIdentity.selected target candidate
+ return ⟨root,equation.value,enclosure.value,proof,(← get).budget.consumed⟩
+
+/-- Literal inputs for one source-selection request. The equation is required
+to have sign zero and the enclosure sign positive; these are checked demands,
+not trusted verdicts. Their original polynomial-value laws remain explicit. -/
+structure Packet where
+ subject : Expr
+ graph : Expr
+ equation : Expr
+ equationGraph : Expr
+ enclosure : Expr
+ enclosureGraph : Expr
+ equationValue : Expr
+ enclosureValue : Expr
+
+/-- The exact restored descriptor/header and prepared context accompany the
+source identity, so a consumer can bind an existing stored coefficient to
+this same checked root without replaying the descriptor. -/
+structure Restored where
+ header : RootHeader.Result
+ prepared : RootPrepare.Result
+ identity : Result
+
+/-- Restore a literal descriptor and both scalar packets, then authenticate
+the original source in one shared quotation request. Codec, sign, signature
+and cleanliness come from the exact supplied parent. Descriptor/header
+quotation and context retention are performed here rather than supplied as
+previously checked results. No producer runs. The real parent model, source
+alias selection and coefficient-map laws remain caller inputs; this does not
+discover an arbitrary predecessor history. Use `RootQuote.runWith` for the
+enclosing transaction and cumulative reflection budget. -/
+def restorePacketWith (anchor : Anchor) (packet : Packet) (parent model : Expr)
+ (decode : RootQuote.DecoderM := fun _ => pure none) : ReifyM Restored := do
+ let parent ← input parent
+ let model ← input model
+ let codec ← mkAppM ``Tower.Context.codec #[parent]
+ let sign ← mkAppM ``Tower.Context.sign #[parent]
+ let signature ← mkAppM ``Tower.Context.signature #[parent]
+ let reader ← mkAppM ``Algebraic.RootReplay.readDescriptor
+ #[codec,mkConst ``Tower.Signature.codec,sign,signature,packet.subject,packet.graph]
+ let header ← RootHeader.quoteWith reader decode
+ let clean ← mkAppM ``Tower.Context.isClean #[parent]
+ let prepared ← RootPrepare.prepareWith header clean
+ let scalar (polynomial claimed graph : Expr) : MetaM Expr :=
+ mkAppM ``ScalarPacket.read #[model,codec,prepared.source,polynomial,claimed,graph]
+ let packets : Packets := {
+ equation := ← scalar packet.equation (toExpr (0 : Int)) packet.equationGraph
+ enclosure := ← scalar packet.enclosure (toExpr (1 : Int)) packet.enclosureGraph
+ equationValue := packet.equationValue
+ enclosureValue := packet.enclosureValue }
+ let identity ← quoteWith anchor packets prepared.context prepared.same fun expression => do
+ if let some proof ← prepared.decoder expression then return some proof
+ decode expression
+ return ⟨header,prepared,identity⟩
+
+/-- Authenticate one literal source packet, retaining the existing compact
+result interface. Use `restorePacketWith` when subsequent source/cell assembly
+also needs the exact descriptor-reader equation or prepared context. -/
+def quotePacketWith (anchor : Anchor) (packet : Packet) (parent model : Expr)
+ (decode : RootQuote.DecoderM := fun _ => pure none) : ReifyM Result := do
+ return (← restorePacketWith anchor packet parent model decode).identity
+end Hex.RCF.RealCoefficients.SourceIdentity
diff --git a/adapters/HexRCF/RealCoefficients/TowerCompile.lean b/adapters/HexRCF/RealCoefficients/TowerCompile.lean
new file mode 100644
index 0000000000..230befcc0d
--- /dev/null
+++ b/adapters/HexRCF/RealCoefficients/TowerCompile.lean
@@ -0,0 +1,223 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+module
+public import HexRealClosureTheory.TowerModel
+public meta import HexRCF.RealCoefficients.RootQuote
+public meta import HexRCF.RealCoefficients.Interpret
+public meta import HexRCF.RealCoefficients.Reify
+public section
+
+namespace Hex.RCF.RealCoefficients.TowerCompile
+open Hex.RealClosure
+
+/-- Interpret the ordinary repeated-product operation without installing a
+field instance on the stored carrier. -/
+theorem pow_value {registry : BaseContext.Registry} {parent : Tower.Context registry}
+ (model : Tower.Model parent ℝ) (a : parent.Value) (n : Nat) :
+ model.value (npowRec n a) = model.value a ^ n := by
+ induction n with
+ | zero => simpa only [npowRec, pow_zero] using model.one
+ | succ n ih => rw [npowRec, model.mul, ih, pow_succ]
+
+end Hex.RCF.RealCoefficients.TowerCompile
+
+public meta section
+
+namespace Hex.RCF.RealCoefficients.TowerCompile
+open Lean Meta Qq Hex.RealFormula.Reify
+
+/-- A stored expression and an ordinary proof of its original real value.
+No compiled proposal is used as proof evidence. -/
+structure Term where
+ expression : Expr
+ proof : Expr
+
+private meta def checked (model source : Expr) (term : Term) : ReifyM Term := do
+ let expression ← instantiateMVars term.expression
+ if expression.hasFVar || expression.hasMVar || expression.hasLooseBVars then
+ abort (.unsupported source "stored coefficient is not closed")
+ accountProof expression
+ let expression ← Hex.RCF.checkExpr `TowerCompile.value expression
+ Meta.check expression
+ let target ← mkEq (← mkAppM ``Hex.RealClosure.Tower.Model.value #[model,expression]) source
+ accountProof target
+ accountProof term.proof
+ let proof ← Hex.RCF.checkProof `TowerCompile.identity target term.proof
+ return ⟨expression,proof⟩
+
+private meta def operand (proof : Expr) : MetaM Expr := do
+ let kind ← whnf (← inferType proof)
+ unless kind.isAppOfArity ``Eq 3 do
+ throwError "rcf: expected a tower interpretation equation"
+ let lhs := kind.getAppArgs[1]!
+ unless lhs.getAppFn.isConstOf ``Hex.RealClosure.Tower.Model.value && lhs.isApp do
+ throwError "rcf: expected the retained model's interpreted operand"
+ return lhs.getAppArgs.back!
+
+private meta def natural (model : Expr) (n : Nat) : ReifyM Term := do
+ let proof ← mkAppM ``Hex.RealClosure.Tower.Model.nat #[model,toExpr n]
+ return ⟨← operand proof,proof⟩
+
+private meta def rational (model source : Expr) : ReifyM Term := do
+ Coefficients.admitRational source
+ let sourceQ : Q(ℝ) ← pure source
+ let ⟨value,_,_,_⟩ ← liftM <|
+ Mathlib.Meta.NormNum.deriveRat sourceQ (_inst := q(inferInstance))
+ let a ← natural model value.num.natAbs
+ let b ← natural model value.den
+ let mut numerator := a.expression
+ let mut numeratorProof := a.proof
+ if value.num < 0 then
+ let mapped ← mkAppM ``Hex.RealClosure.Tower.Model.neg #[model,a.expression]
+ numerator ← operand mapped
+ let ax : Q(ℝ) ← pure (← whnf (← inferType a.proof)).getAppArgs[2]!
+ let av : Q(ℝ) ← mkAppM ``Hex.RealClosure.Tower.Model.value #[model,a.expression]
+ let ha : Q($av = $ax) ← pure a.proof
+ numeratorProof ← mkEqTrans mapped
+ q(congrArg (fun x : ℝ => -x) $ha)
+ let mapped ← mkAppM ``Hex.RealClosure.Tower.Model.div #[model,numerator,b.expression]
+ let expression ← operand mapped
+ let left : Q(ℝ) ← pure (← whnf (← inferType numeratorProof)).getAppArgs[2]!
+ let right : Q(ℝ) ← pure (← whnf (← inferType b.proof)).getAppArgs[2]!
+ let va : Q(ℝ) ← mkAppM ``Hex.RealClosure.Tower.Model.value #[model,numerator]
+ let vb : Q(ℝ) ← mkAppM ``Hex.RealClosure.Tower.Model.value #[model,b.expression]
+ let ha : Q($va = $left) ← pure numeratorProof
+ let hb : Q($vb = $right) ← pure b.proof
+ let mapped ← mkEqTrans mapped q(congrArg₂ (fun x y : ℝ => x / y) $ha $hb)
+ let target ← mkEq q($left / $right) source
+ let equal ← liftM <| withNewMCtxDepth do
+ let candidate ← mkFreshExprMVar target
+ let remaining ← Elab.runTactic' candidate.mvarId! (← `(tactic| norm_num))
+ unless remaining.isEmpty do throwError "rcf: rational source equality was not proved"
+ instantiateMVars candidate
+ checked model source ⟨expression,← mkEqTrans mapped equal⟩
+
+/-- Compile closed source arithmetic into the operations of the retained tower.
+Leaves are authenticated by exact target checking. Use an enclosing
+`RootQuote.runWith` request for failure rollback and aggregate accounting.
+Original source divisors must still be independently retained and discharged. -/
+private meta partial def compileCore (model : Expr) (leaf : Expr → ReifyM (Option Term))
+ (source : Expr) : ReifyM Term := do
+ Core.checkSystem "tower coefficient compilation"
+ charge .proofNodes 1
+ let e := source.consumeMData
+ if e.hasFVar || e.hasMVar || e.hasLooseBVars then
+ abort (.unsupported source "coefficient must be closed")
+ unless ← isDefEq (← inferType e) q(ℝ) do
+ abort (.unsupported source "coefficient must have type Real")
+ let saved : Meta.SavedState ← liftM (saveState : MetaM Meta.SavedState)
+ match ← leaf source with
+ | some term => return ← checked model source term
+ | none => liftM (saved.restore : MetaM Unit)
+ let args := e.getAppArgs
+ let op := e.getAppFn.constName?
+ if [``HAdd.hAdd,``HSub.hSub,``HMul.hMul,``HDiv.hDiv].any (op == some ·) &&
+ args.size == 6 then
+ let x : Q(ℝ) ← pure args[4]!
+ let y : Q(ℝ) ← pure args[5]!
+ let canonical := if op == some ``HAdd.hAdd then q($x + $y)
+ else if op == some ``HSub.hSub then q($x - $y)
+ else if op == some ``HMul.hMul then q($x * $y) else q($x / $y)
+ unless ← isDefEq e canonical do
+ abort (.unsupported source "nonstandard real arithmetic instance")
+ let a ← compileCore model leaf x
+ let b ← compileCore model leaf y
+ let va : Q(ℝ) ← mkAppM ``Hex.RealClosure.Tower.Model.value #[model,a.expression]
+ let vb : Q(ℝ) ← mkAppM ``Hex.RealClosure.Tower.Model.value #[model,b.expression]
+ let ha : Q($va = $x) ← pure a.proof
+ let hb : Q($vb = $y) ← pure b.proof
+ let (law,congr) := if op == some ``HAdd.hAdd then
+ (``Hex.RealClosure.Tower.Model.add,q(congrArg₂ (fun x y : ℝ => x + y) $ha $hb))
+ else if op == some ``HSub.hSub then
+ (``Hex.RealClosure.Tower.Model.sub,q(congrArg₂ (fun x y : ℝ => x - y) $ha $hb))
+ else if op == some ``HMul.hMul then
+ (``Hex.RealClosure.Tower.Model.mul,q(congrArg₂ (fun x y : ℝ => x * y) $ha $hb))
+ else (``Hex.RealClosure.Tower.Model.div,q(congrArg₂ (fun x y : ℝ => x / y) $ha $hb))
+ let mapped ← mkAppM law #[model,a.expression,b.expression]
+ let expression ← operand mapped
+ return ← checked model source ⟨expression,← mkEqTrans mapped congr⟩
+ if [``Neg.neg,``Inv.inv].any (op == some ·) && args.size == 3 then
+ let x : Q(ℝ) ← pure args[2]!
+ let canonical := if op == some ``Neg.neg then q(-$x) else q($x⁻¹)
+ unless ← isDefEq e canonical do
+ abort (.unsupported source "nonstandard real unary instance")
+ let a ← compileCore model leaf x
+ let va : Q(ℝ) ← mkAppM ``Hex.RealClosure.Tower.Model.value #[model,a.expression]
+ let ha : Q($va = $x) ← pure a.proof
+ let (law,congr) := if op == some ``Neg.neg then
+ (``Hex.RealClosure.Tower.Model.neg,q(congrArg (fun x : ℝ => -x) $ha))
+ else (``Hex.RealClosure.Tower.Model.inv,q(congrArg (fun x : ℝ => x⁻¹) $ha))
+ let mapped ← mkAppM law #[model,a.expression]
+ let expression ← operand mapped
+ return ← checked model source ⟨expression,← mkEqTrans mapped congr⟩
+ let naturalPower ← if e.isAppOfArity ``HPow.hPow 6 then
+ pure ((← inferType args[5]!).isConstOf ``Nat) else pure false
+ if naturalPower then
+ let x : Q(ℝ) ← pure args[4]!
+ let k : Q(ℕ) ← pure args[5]!
+ unless ← isDefEq e q($x ^ $k) do
+ abort (.unsupported source "nonstandard real power instance")
+ let some n ← getNatValue? k |
+ abort (.unsupported source "coefficient power requires a natural literal")
+ charge .exponent n
+ let a ← compileCore model leaf x
+ let mapped ← mkAppM ``pow_value #[model,a.expression,toExpr n]
+ let expression ← operand mapped
+ let va : Q(ℝ) ← mkAppM ``Hex.RealClosure.Tower.Model.value #[model,a.expression]
+ let ha : Q($va = $x) ← pure a.proof
+ return ← checked model source
+ ⟨expression,← mkEqTrans mapped q(congrArg (fun x : ℝ => x ^ $k) $ha)⟩
+ rational model source
+
+private meta def admitModel (model : Expr) : ReifyM Expr := do
+ let budget := (← get).budget
+ for dimension in #[.sourceNodes,.atoms,.reflectedNodes,.exponent,.terms,
+ .coefficientBits,.proofNodes] do
+ match (Hex.Reflect.BudgetState.ofBudget budget.initial).check dimension
+ (budget.consumed.get dimension) with
+ | .error exhausted => abort (.budget exhausted)
+ | .ok _ => pure ()
+ let model ← instantiateMVars model
+ if model.hasFVar || model.hasMVar || model.hasLooseBVars then
+ throwError "rcf: coefficient compilation requires a closed tower model"
+ accountProof model
+ let model ← Hex.RCF.checkExpr `TowerCompile.model model
+ Meta.check model
+ let kind ← whnf (← inferType model)
+ accountProof kind
+ unless kind.isAppOfArity ``Hex.RealClosure.Tower.Model 5 do
+ throwError "rcf: coefficient compilation requires a tower model"
+ let expected ← mkAppM ``Hex.RealClosure.Tower.Model
+ #[kind.getAppArgs[1]!,mkConst ``Real]
+ let expected := mkApp2 expected q(inferInstance : Field ℝ)
+ q(inferInstance : LinearOrder ℝ)
+ unless ← isDefEq kind expected do
+ throwError "rcf: coefficient compilation requires the ordinary real model instances"
+ return model
+
+/-- Interpret one closed arithmetic expression under a checked retained model.
+Run inside the enclosing quotation transaction; this does not discharge guards. -/
+meta def compile (model : Expr) (leaf : Expr → ReifyM (Option Term))
+ (source : Expr) : ReifyM Term := do
+ compileCore (← admitModel model) leaf source
+
+/-- Compile the existing source's coefficient and original-divisor inventories
+in their original order, including guards hidden by cancellation or zero
+multiplication. The second array remains a separate nonvanishing obligation.
+Continue the source preparation's budget in the enclosing request. -/
+meta def prepareWith (source : Reify.Source) (model : Expr)
+ (leaf : Expr → ReifyM (Option Term)) : ReifyM (Array Term × Array Term) := do
+ let consumed := (← get).budget.consumed
+ for dimension in #[.sourceNodes,.atoms,.reflectedNodes,.exponent,.terms,
+ .coefficientBits,.proofNodes] do
+ unless source.usage.get dimension ≤ consumed.get dimension do
+ abort (.internal "tower compilation must continue source preparation accounting")
+ let model ← admitModel model
+ let coefficients ← source.coefficients.mapM (compileCore model leaf)
+ let divisors ← source.divisors.mapM (compileCore model leaf)
+ return (coefficients,divisors)
+
+end Hex.RCF.RealCoefficients.TowerCompile
diff --git a/conformance-fixtures/HexRCF/bounded-source.json b/conformance-fixtures/HexRCF/bounded-source.json
new file mode 100644
index 0000000000..b2f9cb83af
--- /dev/null
+++ b/conformance-fixtures/HexRCF/bounded-source.json
@@ -0,0 +1 @@
+[ [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 1 , [ 0 , 45 , 32 ] ] , [ 1 , [ 0 , 91 , 64 ] ] , [ ] , [ ] ] , [ 1 , 0 , [ [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 1 , [ 0 , 45 , 32 ] ] , [ 1 , [ 0 , 91 , 64 ] ] , [ ] , 1 , [ [ [ ] ] , [ [ ] ] , [ 1 ] , [ 1 ] , [ [ 1 ] ] , 1 ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 1 , [ 0 , 45 , 32 ] ] , [ 1 , [ 0 , 91 , 64 ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ -1 , 1 , 1 ] , [ 1 , 1 , 1 ] , 1 , 0 , 1 ] ] , [ [ [ [ ] , [ [ 0 , 1 , 1 ] ] ] ] ] , [ [ ] ] , [ 1 , [ 0 ] , [ 0 ] , 1 , [ [ 1 ] ] ] ] , [ ] ] ] ] , [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , 0 , [ 1 , 0 , [ [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 1 , [ 0 , 45 , 32 ] ] , [ 1 , [ 0 , 91 , 64 ] ] , [ [ ] ] , 3 , [ [ [ 0 ] , [ 1 ] , [ 2 ] ] , [ [ -1 ] , [ 0 ] , [ 1 ] ] , [ 0 , 1 , 0 ] , [ 1 , 0 , 0 ] , [ [ 0 , -1 , 1 ] , [ 2 , 0 , -2 ] , [ 0 , 1 , 1 ] ] , 2 ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 1 , [ 0 , 45 , 32 ] ] , [ 1 , [ 0 , 91 , 64 ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ -1 , 1 , 1 ] , [ 1 , 1 , 1 ] , 1 , 0 , 1 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ ] , [ 1 , [ 0 , 45 , 32 ] ] , [ 1 , [ 0 , 91 , 64 ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] , [ 2 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] , [ ] , [ ] ] , [ -1 ] , [ 1 ] , 0 , 0 , 0 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ ] , [ 1 , [ 0 , 45 , 32 ] ] , [ 1 , [ 0 , 91 , 64 ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] , [ 2 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] , [ ] , [ ] ] , [ -1 ] , [ 1 ] , 0 , 0 , 0 ] ] , [ [ [ [ ] , [ [ 0 , 1 , 1 ] ] ] ] , [ [ [ [ 0 , [ ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] , [ ] ] ] , [ [ [ [ 0 , [ ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] , [ 0 , [ ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] , [ ] ] ] ] , [ [ [ 0 , [ ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , [ 0 ] , [ 0 ] , 1 , [ [ 1 ] ] ] ] , [ ] ] ] ] ] , [ [ [ 0 , -65521 , 32768 ] , [ 0 , 181 , 64 ] , [ 0 , -1 , 1 ] ] , 1 , [ 1 , 0 , [ [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 1 , [ 0 , 45 , 32 ] ] , [ 1 , [ 0 , 91 , 64 ] ] , [ [ [ 0 , -131057 , 32768 ] , [ 0 , 181 , 64 ] ] ] , 3 , [ [ [ 0 ] , [ 1 ] , [ 2 ] ] , [ [ -1 ] , [ 0 ] , [ 1 ] ] , [ 0 , 0 , 1 ] , [ 1 , 1 , 1 ] , [ [ 0 , -1 , 1 ] , [ 2 , 0 , -2 ] , [ 0 , 1 , 1 ] ] , 2 ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 1 , [ 0 , 45 , 32 ] ] , [ 1 , [ 0 , 91 , 64 ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ -1 , 1 , 1 ] , [ 1 , 1 , 1 ] , 1 , 0 , 1 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , -131057 , 92672 ] , [ 0 , 1 , 1 ] ] , [ 1 , [ 0 , 45 , 32 ] ] , [ 1 , [ 0 , 91 , 64 ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 185344 , 131057 ] , [ 0 , -1 , 1 ] ] , [ [ 0 , -1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ [ 0 , 2 , 1 ] ] , [ 0 , 131057 , 46336 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , -185344 , 131057 ] , [ 0 , -1 , 1 ] ] , [ 0 , 523838 , 17175937249 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , -185344 , 131057 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ -1 , 1 , -1 ] , [ 1 , -1 , -1 ] , 2 , 1 , 1 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 34352136417 , 24290628608 ] , [ 0 , -1 , 1 ] ] , [ 1 , [ 0 , 45 , 32 ] ] , [ 1 , [ 0 , 91 , 64 ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , -48581257216 , 34352136417 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ [ 0 , -2 , 1 ] ] , [ 0 , 34352136417 , 12145314304 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 48581257216 , 34352136417 ] , [ 0 , 1 , 1 ] ] , [ 0 , 137203125122 , 1180069276412177597889 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , -48581257216 , 34352136417 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ -1 , -1 , 1 ] , [ 1 , 1 , 1 ] , 1 , 0 , 1 ] ] , [ [ [ [ ] , [ [ 0 , 1 , 1 ] ] ] ] , [ [ [ [ 0 , [ [ 0 , -131057 , 92672 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] , [ [ 0 , -131057 , 92672 ] , [ 0 , 1 , 1 ] ] ] ] , [ [ [ [ 0 , [ [ 0 , -131057 , 92672 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] , [ 0 , [ [ 0 , 34352136417 , 24290628608 ] , [ 0 , -1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ [ 0 , 1 , 1 ] ] , [ 0 , 131057 , 46336 ] ] ] ] , [ [ 0 , 34352136417 , 24290628608 ] , [ 0 , -1 , 1 ] ] ] ] ] , [ [ [ 0 , [ [ 0 , -131057 , 92672 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 181 , 64 ] ] ] ] ] , [ 1 , [ 0 ] , [ 0 ] , 1 , [ [ 1 ] ] ] ] , [ ] ] ] ] ] ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 1 , [ 0 , -91 , 64 ] ] , [ 1 , [ 0 , -45 , 32 ] ] , [ ] , [ ] ] , [ 1 , 0 , [ [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 1 , [ 0 , -91 , 64 ] ] , [ 1 , [ 0 , -45 , 32 ] ] , [ ] , 1 , [ [ [ ] ] , [ [ ] ] , [ 1 ] , [ 1 ] , [ [ 1 ] ] , 1 ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 1 , [ 0 , -91 , 64 ] ] , [ 1 , [ 0 , -45 , 32 ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , -1 , 1 ] , [ -1 , -1 , 1 ] , 2 , 1 , 1 ] ] , [ [ [ [ ] , [ [ 0 , 1 , 1 ] ] ] ] ] , [ [ ] ] , [ 1 , [ 0 ] , [ 0 ] , 1 , [ [ 1 ] ] ] ] , [ ] ] ] ] , [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , 0 , [ 1 , 0 , [ [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 1 , [ 0 , -91 , 64 ] ] , [ 1 , [ 0 , -45 , 32 ] ] , [ [ ] ] , 3 , [ [ [ 0 ] , [ 1 ] , [ 2 ] ] , [ [ -1 ] , [ 0 ] , [ 1 ] ] , [ 0 , 1 , 0 ] , [ 1 , 0 , 0 ] , [ [ 0 , -1 , 1 ] , [ 2 , 0 , -2 ] , [ 0 , 1 , 1 ] ] , 2 ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 1 , [ 0 , -91 , 64 ] ] , [ 1 , [ 0 , -45 , 32 ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , -1 , 1 ] , [ -1 , -1 , 1 ] , 2 , 1 , 1 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ ] , [ 1 , [ 0 , -91 , 64 ] ] , [ 1 , [ 0 , -45 , 32 ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] , [ 2 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] , [ ] , [ ] ] , [ 1 ] , [ -1 ] , 0 , 0 , 0 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ ] , [ 1 , [ 0 , -91 , 64 ] ] , [ 1 , [ 0 , -45 , 32 ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] , [ 2 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] , [ ] , [ ] ] , [ 1 ] , [ -1 ] , 0 , 0 , 0 ] ] , [ [ [ [ ] , [ [ 0 , 1 , 1 ] ] ] ] , [ [ [ [ 0 , [ ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] , [ ] ] ] , [ [ [ [ 0 , [ ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] , [ 0 , [ ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] , [ ] ] ] ] , [ [ [ 0 , [ ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , [ 0 ] , [ 0 ] , 1 , [ [ 1 ] ] ] ] , [ ] ] ] ] ] , [ [ [ 0 , -65521 , 32768 ] , [ 0 , -181 , 64 ] , [ 0 , -1 , 1 ] ] , 1 , [ 1 , 0 , [ [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 1 , [ 0 , -91 , 64 ] ] , [ 1 , [ 0 , -45 , 32 ] ] , [ [ [ 0 , -131057 , 32768 ] , [ 0 , -181 , 64 ] ] ] , 3 , [ [ [ 0 ] , [ 1 ] , [ 2 ] ] , [ [ -1 ] , [ 0 ] , [ 1 ] ] , [ 0 , 0 , 1 ] , [ 1 , 1 , 1 ] , [ [ 0 , -1 , 1 ] , [ 2 , 0 , -2 ] , [ 0 , 1 , 1 ] ] , 2 ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 1 , [ 0 , -91 , 64 ] ] , [ 1 , [ 0 , -45 , 32 ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , -1 , 1 ] , [ -1 , -1 , 1 ] , 2 , 1 , 1 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , -131057 , 92672 ] , [ 0 , -1 , 1 ] ] , [ 1 , [ 0 , -91 , 64 ] ] , [ 1 , [ 0 , -45 , 32 ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , -185344 , 131057 ] , [ 0 , -1 , 1 ] ] , [ [ 0 , -1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ [ 0 , -2 , 1 ] ] , [ 0 , 131057 , 46336 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 185344 , 131057 ] , [ 0 , -1 , 1 ] ] , [ 0 , 523838 , 17175937249 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 185344 , 131057 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , 1 , -1 ] , [ -1 , -1 , -1 ] , 1 , 0 , 1 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 34352136417 , 24290628608 ] , [ 0 , 1 , 1 ] ] , [ 1 , [ 0 , -91 , 64 ] ] , [ 1 , [ 0 , -45 , 32 ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 48581257216 , 34352136417 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ [ 0 , 2 , 1 ] ] , [ 0 , 34352136417 , 12145314304 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , -48581257216 , 34352136417 ] , [ 0 , 1 , 1 ] ] , [ 0 , 137203125122 , 1180069276412177597889 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 48581257216 , 34352136417 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , -1 , 1 ] , [ -1 , 1 , 1 ] , 2 , 1 , 1 ] ] , [ [ [ [ ] , [ [ 0 , 1 , 1 ] ] ] ] , [ [ [ [ 0 , [ [ 0 , -131057 , 92672 ] , [ 0 , -1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] , [ [ 0 , -131057 , 92672 ] , [ 0 , -1 , 1 ] ] ] ] , [ [ [ [ 0 , [ [ 0 , -131057 , 92672 ] , [ 0 , -1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] , [ 0 , [ [ 0 , 34352136417 , 24290628608 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ [ 0 , 1 , 1 ] ] , [ 0 , 131057 , 46336 ] ] ] ] , [ [ 0 , 34352136417 , 24290628608 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ 0 , [ [ 0 , -131057 , 92672 ] , [ 0 , -1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 181 , 64 ] ] ] ] ] , [ 1 , [ 0 ] , [ 0 ] , 1 , [ [ 1 ] ] ] ] , [ ] ] ] ] ] ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 1 , [ 0 , 2579 , 2048 ] ] , [ 1 , [ 0 , 2581 , 2048 ] ] , [ ] , [ ] ] , [ 1 , 0 , [ [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 1 , [ 0 , 2579 , 2048 ] ] , [ 1 , [ 0 , 2581 , 2048 ] ] , [ ] , 1 , [ [ [ ] ] , [ [ ] ] , [ 1 ] , [ 1 ] , [ [ 1 ] ] , 1 ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 1 , [ 0 , 2579 , 2048 ] ] , [ 1 , [ 0 , 2581 , 2048 ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ -1 , 1 , 1 ] , [ 1 , 1 , 1 ] , 1 , 0 , 1 ] ] , [ [ [ [ ] , [ [ 0 , 1 , 1 ] ] ] ] ] , [ [ ] ] , [ 1 , [ 0 ] , [ 0 ] , 1 , [ [ 1 ] ] ] ] , [ ] ] ] ] , [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , 0 , [ 1 , 0 , [ [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 1 , [ 0 , 2579 , 2048 ] ] , [ 1 , [ 0 , 2581 , 2048 ] ] , [ [ ] ] , 3 , [ [ [ 0 ] , [ 1 ] , [ 2 ] ] , [ [ -1 ] , [ 0 ] , [ 1 ] ] , [ 0 , 1 , 0 ] , [ 1 , 0 , 0 ] , [ [ 0 , -1 , 1 ] , [ 2 , 0 , -2 ] , [ 0 , 1 , 1 ] ] , 2 ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 1 , [ 0 , 2579 , 2048 ] ] , [ 1 , [ 0 , 2581 , 2048 ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ -1 , 1 , 1 ] , [ 1 , 1 , 1 ] , 1 , 0 , 1 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ ] , [ 1 , [ 0 , 2579 , 2048 ] ] , [ 1 , [ 0 , 2581 , 2048 ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] , [ 3 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] , [ ] , [ ] ] , [ -1 ] , [ 1 ] , 0 , 0 , 0 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ ] , [ 1 , [ 0 , 2579 , 2048 ] ] , [ 1 , [ 0 , 2581 , 2048 ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] , [ 3 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] , [ ] , [ ] ] , [ -1 ] , [ 1 ] , 0 , 0 , 0 ] ] , [ [ [ [ ] , [ [ 0 , 1 , 1 ] ] ] ] , [ [ [ [ 0 , [ ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] , [ ] ] ] , [ [ [ [ 0 , [ ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] , [ 0 , [ ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] , [ ] ] ] ] , [ [ [ 0 , [ ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , [ 0 ] , [ 0 ] , 1 , [ [ 1 ] ] ] ] , [ ] ] ] ] ] , [ [ [ 0 , -13312799 , 8388608 ] , [ 0 , 645 , 256 ] , [ 0 , -1 , 1 ] ] , 1 , [ 1 , 0 , [ [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 1 , [ 0 , 2579 , 2048 ] ] , [ 1 , [ 0 , 2581 , 2048 ] ] , [ [ [ 0 , -13312799 , 8388608 ] , [ 0 , 645 , 256 ] , [ 0 , -1 , 1 ] ] ] , 3 , [ [ [ 0 ] , [ 1 ] , [ 2 ] ] , [ [ -1 ] , [ 0 ] , [ 1 ] ] , [ 0 , 0 , 1 ] , [ 1 , 1 , 1 ] , [ [ 0 , -1 , 1 ] , [ 2 , 0 , -2 ] , [ 0 , 1 , 1 ] ] , 2 ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 1 , [ 0 , 2579 , 2048 ] ] , [ 1 , [ 0 , 2581 , 2048 ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ -1 , 1 , 1 ] , [ 1 , 1 , 1 ] , 1 , 0 , 1 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , -13312799 , 8388608 ] , [ 0 , 645 , 256 ] , [ 0 , -1 , 1 ] ] , [ 1 , [ 0 , 2579 , 2048 ] ] , [ 1 , [ 0 , 2581 , 2048 ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 42270720 , 13312799 ] , [ 0 , -16777216 , 13312799 ] , [ 0 , -1 , 1 ] ] , [ [ 0 , 531823117172161 , 422108287827968 ] , [ 0 , -1 , 1 ] ] , [ [ 0 , -1 , 1 ] ] ] , [ 3 , 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ [ 0 , 1935 , 256 ] , [ 0 , -3 , 1 ] ] , [ 0 , 39938397 , 8388608 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 16777216 , 13312799 ] , [ 0 , -1 , 1 ] ] , [ 0 , 844216575655936 , 177230617214401 ] ] , [ [ 0 , 1 , 1 ] , [ [ 0 , 14161856182746417765727 , 5619442792087884562432 ] , [ 0 , 1 , 1 ] ] , [ 0 , 16935998183659607946367 , 178175406653058678027163009024 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , -531823117172161 , 422108287827968 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ -1 , 1 , 1 , -1 ] , [ 1 , -1 , -1 , -1 ] , 2 , 1 , 1 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , -531954382701119 , 670055146717184 ] , [ 0 , -6439271707 , 10224230144 ] , [ 0 , 1 , 1 ] ] , [ 1 , [ 0 , 2579 , 2048 ] ] , [ 1 , [ 0 , 2581 , 2048 ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , -844008221179904 , 531954382701119 ] , [ 0 , 1340110293434368 , 531954382701119 ] , [ 0 , -1 , 1 ] ] , [ [ 0 , 848507517748138632283156122497 , 673460863138161280761781223424 ] , [ 0 , -1 , 1 ] ] , [ [ 0 , -1 , 1 ] ] ] , [ 3 , 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ [ 0 , -19317815121 , 10224230144 ] , [ 0 , 3 , 1 ] ] , [ 0 , 1595863148103357 , 670055146717184 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , -1340110293434368 , 531954382701119 ] , [ 0 , -1 , 1 ] ] , [ 0 , 1346921726276322561523562446848 , 282975465274928573198483852161 ] ] , [ [ 0 , 1 , 1 ] , [ [ 0 , -451144542095674201519953963846426420385261889 , 358250457724023371626526318932137133553811456 ] , [ 0 , 1 , 1 ] ] , [ 0 , 860908980737602065149122892520026022839822591 , 453549534178797199769117499790381448220762277801366206283776 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , -848507517748138632283156122497 , 673460863138161280761781223424 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ -1 , -1 , 1 , -1 ] , [ 1 , -1 , -1 , -1 ] , 2 , 1 , 1 ] ] , [ [ [ [ ] , [ [ 0 , 1 , 1 ] ] ] ] , [ [ [ [ 0 , [ [ 0 , -13312799 , 8388608 ] , [ 0 , 645 , 256 ] , [ 0 , -1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] , [ [ 0 , -13312799 , 8388608 ] , [ 0 , 645 , 256 ] , [ 0 , -1 , 1 ] ] ] ] , [ [ [ [ 0 , [ [ 0 , -13312799 , 8388608 ] , [ 0 , 645 , 256 ] , [ 0 , -1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] , [ 0 , [ [ 0 , -531954382701119 , 670055146717184 ] , [ 0 , -6439271707 , 10224230144 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ [ 0 , -645 , 128 ] , [ 0 , 1 , 1 ] ] , [ 0 , 39938399 , 4194304 ] ] ] ] , [ [ 0 , -531954382701119 , 670055146717184 ] , [ 0 , -6439271707 , 10224230144 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ 0 , [ [ 0 , -13312799 , 8388608 ] , [ 0 , 645 , 256 ] , [ 0 , -1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , [ 0 ] , [ 0 ] , 1 , [ [ 1 ] ] ] ] , [ ] ] ] ] ] ] ]
diff --git a/conformance-fixtures/HexRCF/enumerated-source.json b/conformance-fixtures/HexRCF/enumerated-source.json
new file mode 100644
index 0000000000..b0b0055788
--- /dev/null
+++ b/conformance-fixtures/HexRCF/enumerated-source.json
@@ -0,0 +1 @@
+[ [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ 1 , 2 ] , [ 1 , 1 ] ] , [ 1 , 2 , [ [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ 0 , 0 , 1 ] , [ 0 , 2 , 1 ] ] ] , 3 , [ [ [ 0 ] , [ 1 ] , [ 2 ] ] , [ [ -1 ] , [ 0 ] , [ 1 ] ] , [ 1 , 0 , 1 ] , [ 2 , 0 , 2 ] , [ [ 0 , -1 , 1 ] , [ 2 , 0 , -2 ] , [ 0 , 1 , 1 ] ] , 2 ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , -1 , 1 ] , [ 1 , 1 , 1 ] , 2 , 0 , 2 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ [ 0 , 2 , 1 ] ] , [ 0 , 4 , 1 ] ] , [ ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , 1 ] , [ 1 , 1 ] , 0 , 0 , 0 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , -1 , 1 ] , [ 1 , 1 , 1 ] , 2 , 0 , 2 ] ] , [ [ [ [ ] , [ [ 0 , 1 , 1 ] ] ] ] , [ [ [ [ 0 , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] , [ [ [ [ 0 , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] , [ 0 , [ [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] ] , [ [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ 0 , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] ] ] ] , [ 2 , [ 0 , 1 ] , [ 0 , 1 ] , 2 , [ [ 1 , -1 ] , [ 1 , 1 ] ] ] ] , [ ] ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ 0 , 2 , 1 ] ] ] , 3 , [ [ [ 0 ] , [ 1 ] , [ 2 ] ] , [ [ -1 ] , [ 0 ] , [ 1 ] ] , [ 0 , 0 , 2 ] , [ 2 , 2 , 2 ] , [ [ 0 , -1 , 1 ] , [ 2 , 0 , -2 ] , [ 0 , 1 , 1 ] ] , 2 ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , -1 , 1 ] , [ 1 , 1 , 1 ] , 2 , 0 , 2 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , -1 , 1 ] , [ 1 , 1 , 1 ] , 2 , 0 , 2 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , -1 , 1 ] , [ 1 , 1 , 1 ] , 2 , 0 , 2 ] ] , [ [ [ [ ] , [ [ 0 , 1 , 1 ] ] ] ] , [ [ [ [ 0 , [ [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] , [ [ 0 , 1 , 1 ] ] ] ] , [ [ [ [ 0 , [ [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] , [ 0 , [ [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] , [ [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ 0 , [ [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] ] ] ] , [ 1 , [ 0 ] , [ 0 ] , 1 , [ [ 1 ] ] ] ] , [ ] ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ 0 , 0 , 1 ] , [ 0 , 2 , 1 ] ] , [ [ 0 , 2 , 1 ] ] ] , 2 , [ [ [ 0 , 0 ] , [ 1 , 0 ] ] , [ [ -1 , 1 ] , [ 1 , 1 ] ] , [ 1 , 1 ] , [ 2 , 0 ] , [ [ 1 , -1 ] , [ 1 , 1 ] ] , 2 ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , -1 , 1 ] , [ 1 , 1 , 1 ] , 2 , 0 , 2 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ [ 0 , 2 , 1 ] ] , [ 0 , 4 , 1 ] ] , [ ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , 1 ] , [ 1 , 1 ] , 0 , 0 , 0 ] ] , [ [ [ [ ] , [ [ 0 , 1 , 1 ] ] ] ] , [ [ [ [ 0 , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ 0 , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] ] , [ 1 , [ [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] ] ] ] , [ 2 , [ 0 , 1 ] , [ 0 , 1 ] , 2 , [ [ 1 , -1 ] , [ 1 , 1 ] ] ] ] , [ [ 0 , 1 ] ] ] ] ] , [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , 0 , [ 1 , 4 , [ [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ 0 , 0 , 1 ] , [ 0 , 2 , 1 ] ] ] , 3 , [ [ [ 0 ] , [ 1 ] , [ 2 ] ] , [ [ -1 ] , [ 0 ] , [ 1 ] ] , [ 1 , 0 , 1 ] , [ 2 , 0 , 2 ] , [ [ 0 , -1 , 1 ] , [ 2 , 0 , -2 ] , [ 0 , 1 , 1 ] ] , 2 ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , -1 , 1 ] , [ 1 , 1 , 1 ] , 2 , 0 , 2 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ [ 0 , 2 , 1 ] ] , [ 0 , 4 , 1 ] ] , [ ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , 1 ] , [ 1 , 1 ] , 0 , 0 , 0 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , -1 , 1 ] , [ 1 , 1 , 1 ] , 2 , 0 , 2 ] ] , [ [ [ [ ] , [ [ 0 , 1 , 1 ] ] ] ] , [ [ [ [ 0 , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] , [ [ [ [ 0 , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] , [ 0 , [ [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] ] , [ [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ 0 , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] ] ] ] , [ 2 , [ 0 , 1 ] , [ 0 , 1 ] , 2 , [ [ 1 , -1 ] , [ 1 , 1 ] ] ] ] , [ ] ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ 0 , 2 , 1 ] ] ] , 3 , [ [ [ 0 ] , [ 1 ] , [ 2 ] ] , [ [ -1 ] , [ 0 ] , [ 1 ] ] , [ 0 , 0 , 2 ] , [ 2 , 2 , 2 ] , [ [ 0 , -1 , 1 ] , [ 2 , 0 , -2 ] , [ 0 , 1 , 1 ] ] , 2 ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , -1 , 1 ] , [ 1 , 1 , 1 ] , 2 , 0 , 2 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , -1 , 1 ] , [ 1 , 1 , 1 ] , 2 , 0 , 2 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , -1 , 1 ] , [ 1 , 1 , 1 ] , 2 , 0 , 2 ] ] , [ [ [ [ ] , [ [ 0 , 1 , 1 ] ] ] ] , [ [ [ [ 0 , [ [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] , [ [ 0 , 1 , 1 ] ] ] ] , [ [ [ [ 0 , [ [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] , [ 0 , [ [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] , [ [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ 0 , [ [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] ] ] ] , [ 1 , [ 0 ] , [ 0 ] , 1 , [ [ 1 ] ] ] ] , [ ] ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ ] ] , 3 , [ [ [ 0 ] , [ 1 ] , [ 2 ] ] , [ [ -1 ] , [ 0 ] , [ 1 ] ] , [ 0 , 2 , 0 ] , [ 2 , 0 , 0 ] , [ [ 0 , -1 , 1 ] , [ 2 , 0 , -2 ] , [ 0 , 1 , 1 ] ] , 2 ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , -1 , 1 ] , [ 1 , 1 , 1 ] , 2 , 0 , 2 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] , [ 2 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] , [ ] , [ ] ] , [ 1 ] , [ 1 ] , 0 , 0 , 0 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] , [ 2 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] , [ ] , [ ] ] , [ 1 ] , [ 1 ] , 0 , 0 , 0 ] ] , [ [ [ [ ] , [ [ 0 , 1 , 1 ] ] ] ] , [ [ [ [ 0 , [ ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] , [ ] ] ] , [ [ [ [ 0 , [ ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] , [ 0 , [ ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] , [ ] ] ] ] , [ [ [ 0 , [ ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , [ 0 ] , [ 0 ] , 1 , [ [ 1 ] ] ] ] , [ ] ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ 0 , 2 , 1 ] ] , [ ] ] , 1 , [ [ [ 0 , 0 ] ] , [ [ 1 , 0 ] ] , [ 2 ] , [ 2 ] , [ [ 1 ] ] , 1 ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , -1 , 1 ] , [ 1 , 1 , 1 ] , 2 , 0 , 2 ] ] , [ [ [ [ ] , [ [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ 0 , [ [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] ] , [ 1 , [ ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , [ 0 ] , [ 0 ] , 1 , [ [ 1 ] ] ] ] , [ [ 1 , 2 ] ] ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ 0 , 0 , 1 ] , [ 0 , 2 , 1 ] ] , [ [ 0 , 2 , 1 ] ] , [ ] ] , 2 , [ [ [ 0 , 0 , 0 ] , [ 1 , 0 , 0 ] ] , [ [ -1 , 1 , 0 ] , [ 1 , 1 , 0 ] ] , [ 1 , 1 ] , [ 2 , 0 ] , [ [ 1 , -1 ] , [ 1 , 1 ] ] , 2 ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , -1 , 1 ] , [ 1 , 1 , 1 ] , 2 , 0 , 2 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ [ 0 , 2 , 1 ] ] , [ 0 , 4 , 1 ] ] , [ ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , 1 ] , [ 1 , 1 ] , 0 , 0 , 0 ] ] , [ [ [ [ ] , [ [ 0 , 1 , 1 ] ] ] ] , [ [ [ [ 0 , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ 0 , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] ] , [ 1 , [ [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] ] , [ 2 , [ ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 2 , [ 0 , 1 ] , [ 0 , 1 ] , 2 , [ [ 1 , -1 ] , [ 1 , 1 ] ] ] ] , [ [ 0 , 3 ] ] ] ] ] ] , [ [ [ 0 , -65521 , 32768 ] , [ 0 , 181 , 64 ] , [ 0 , -1 , 1 ] ] , 1 , [ 1 , 4 , [ [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ 0 , 0 , 1 ] , [ 0 , 2 , 1 ] ] ] , 3 , [ [ [ 0 ] , [ 1 ] , [ 2 ] ] , [ [ -1 ] , [ 0 ] , [ 1 ] ] , [ 1 , 0 , 1 ] , [ 2 , 0 , 2 ] , [ [ 0 , -1 , 1 ] , [ 2 , 0 , -2 ] , [ 0 , 1 , 1 ] ] , 2 ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , -1 , 1 ] , [ 1 , 1 , 1 ] , 2 , 0 , 2 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ [ 0 , 2 , 1 ] ] , [ 0 , 4 , 1 ] ] , [ ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , 1 ] , [ 1 , 1 ] , 0 , 0 , 0 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , -1 , 1 ] , [ 1 , 1 , 1 ] , 2 , 0 , 2 ] ] , [ [ [ [ ] , [ [ 0 , 1 , 1 ] ] ] ] , [ [ [ [ 0 , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] , [ [ [ [ 0 , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] , [ 0 , [ [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] ] , [ [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ 0 , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] ] ] ] , [ 2 , [ 0 , 1 ] , [ 0 , 1 ] , 2 , [ [ 1 , -1 ] , [ 1 , 1 ] ] ] ] , [ ] ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ 0 , 2 , 1 ] ] ] , 3 , [ [ [ 0 ] , [ 1 ] , [ 2 ] ] , [ [ -1 ] , [ 0 ] , [ 1 ] ] , [ 0 , 0 , 2 ] , [ 2 , 2 , 2 ] , [ [ 0 , -1 , 1 ] , [ 2 , 0 , -2 ] , [ 0 , 1 , 1 ] ] , 2 ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , -1 , 1 ] , [ 1 , 1 , 1 ] , 2 , 0 , 2 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , -1 , 1 ] , [ 1 , 1 , 1 ] , 2 , 0 , 2 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , -1 , 1 ] , [ 1 , 1 , 1 ] , 2 , 0 , 2 ] ] , [ [ [ [ ] , [ [ 0 , 1 , 1 ] ] ] ] , [ [ [ [ 0 , [ [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] , [ [ 0 , 1 , 1 ] ] ] ] , [ [ [ [ 0 , [ [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] , [ 0 , [ [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] , [ [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ 0 , [ [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] ] ] ] , [ 1 , [ 0 ] , [ 0 ] , 1 , [ [ 1 ] ] ] ] , [ ] ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ 0 , -131057 , 32768 ] , [ 0 , 181 , 64 ] ] ] , 3 , [ [ [ 0 ] , [ 1 ] , [ 2 ] ] , [ [ -1 ] , [ 0 ] , [ 1 ] ] , [ 1 , 0 , 1 ] , [ 2 , 0 , 2 ] , [ [ 0 , -1 , 1 ] , [ 2 , 0 , -2 ] , [ 0 , 1 , 1 ] ] , 2 ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , -1 , 1 ] , [ 1 , 1 , 1 ] , 2 , 0 , 2 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , -131057 , 92672 ] , [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 185344 , 131057 ] , [ 0 , -1 , 1 ] ] , [ [ 0 , -1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ [ 0 , 2 , 1 ] ] , [ 0 , 131057 , 46336 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , -185344 , 131057 ] , [ 0 , -1 , 1 ] ] , [ 0 , 523838 , 17175937249 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , -185344 , 131057 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , 1 , -1 ] , [ 1 , -1 , -1 ] , 1 , 1 , 0 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 34352136417 , 24290628608 ] , [ 0 , -1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , -48581257216 , 34352136417 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ [ 0 , -2 , 1 ] ] , [ 0 , 34352136417 , 12145314304 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 48581257216 , 34352136417 ] , [ 0 , 1 , 1 ] ] , [ 0 , 137203125122 , 1180069276412177597889 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , -48581257216 , 34352136417 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , -1 , 1 ] , [ 1 , 1 , 1 ] , 2 , 0 , 2 ] ] , [ [ [ [ ] , [ [ 0 , 1 , 1 ] ] ] ] , [ [ [ [ 0 , [ [ 0 , -131057 , 92672 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] , [ [ 0 , -131057 , 92672 ] , [ 0 , 1 , 1 ] ] ] ] , [ [ [ [ 0 , [ [ 0 , -131057 , 92672 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] , [ 0 , [ [ 0 , 34352136417 , 24290628608 ] , [ 0 , -1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ [ 0 , 1 , 1 ] ] , [ 0 , 131057 , 46336 ] ] ] ] , [ [ 0 , 34352136417 , 24290628608 ] , [ 0 , -1 , 1 ] ] ] ] ] , [ [ [ 0 , [ [ 0 , -131057 , 92672 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 181 , 64 ] ] ] ] ] , [ 2 , [ 0 , 1 ] , [ 0 , 1 ] , 2 , [ [ 1 , -1 ] , [ 1 , 1 ] ] ] ] , [ ] ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ 0 , 2 , 1 ] ] , [ [ 0 , -131057 , 32768 ] , [ 0 , 181 , 64 ] ] ] , 2 , [ [ [ 0 , 0 ] , [ 0 , 1 ] ] , [ [ 1 , -1 ] , [ 1 , 1 ] ] , [ 1 , 1 ] , [ 2 , 0 ] , [ [ 1 , -1 ] , [ 1 , 1 ] ] , 2 ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , -1 , 1 ] , [ 1 , 1 , 1 ] , 2 , 0 , 2 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , -131057 , 92672 ] , [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 185344 , 131057 ] , [ 0 , -1 , 1 ] ] , [ [ 0 , -1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ [ 0 , 2 , 1 ] ] , [ 0 , 131057 , 46336 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , -185344 , 131057 ] , [ 0 , -1 , 1 ] ] , [ 0 , 523838 , 17175937249 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , -185344 , 131057 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , 1 , -1 ] , [ 1 , -1 , -1 ] , 1 , 1 , 0 ] ] , [ [ [ [ ] , [ [ 0 , 1 , 1 ] ] ] ] , [ [ [ [ 1 , [ [ 0 , -131057 , 92672 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] , [ [ 0 , -131057 , 92672 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ 0 , [ [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] ] , [ 1 , [ [ 0 , -131057 , 92672 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 181 , 64 ] ] ] ] ] , [ 2 , [ 0 , 1 ] , [ 0 , 1 ] , 2 , [ [ 1 , -1 ] , [ 1 , 1 ] ] ] ] , [ [ 1 , 2 ] ] ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ 0 , 0 , 1 ] , [ 0 , 2 , 1 ] ] , [ [ 0 , 2 , 1 ] ] , [ [ 0 , -131057 , 32768 ] , [ 0 , 181 , 64 ] ] ] , 4 , [ [ [ 0 , 0 , 0 ] , [ 0 , 0 , 1 ] , [ 1 , 0 , 0 ] , [ 1 , 0 , 1 ] ] , [ [ -1 , 1 , -1 ] , [ -1 , 1 , 1 ] , [ 1 , 1 , -1 ] , [ 1 , 1 , 1 ] ] , [ 1 , 0 , 0 , 1 ] , [ 2 , 0 , 0 , 2 ] , [ [ 1 , -1 , -1 , 1 ] , [ 1 , 1 , -1 , -1 ] , [ 1 , -1 , 1 , -1 ] , [ 1 , 1 , 1 , 1 ] ] , 4 ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , -1 , 1 ] , [ 1 , 1 , 1 ] , 2 , 0 , 2 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , -131057 , 92672 ] , [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 185344 , 131057 ] , [ 0 , -1 , 1 ] ] , [ [ 0 , -1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ [ 0 , 2 , 1 ] ] , [ 0 , 131057 , 46336 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , -185344 , 131057 ] , [ 0 , -1 , 1 ] ] , [ 0 , 523838 , 17175937249 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , -185344 , 131057 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , 1 , -1 ] , [ 1 , -1 , -1 ] , 1 , 1 , 0 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ [ 0 , 2 , 1 ] ] , [ 0 , 4 , 1 ] ] , [ ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , 1 ] , [ 1 , 1 ] , 0 , 0 , 0 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 185344 , 131057 ] , [ 0 , -1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , -131057 , 92672 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ [ 0 , -2 , 1 ] ] , [ 0 , 370688 , 131057 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 131057 , 92672 ] , [ 0 , 1 , 1 ] ] , [ 0 , 261919 , 8588099584 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , -131057 , 92672 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , -1 , 1 ] , [ 1 , 1 , 1 ] , 2 , 0 , 2 ] ] , [ [ [ [ ] , [ [ 0 , 1 , 1 ] ] ] ] , [ [ [ [ 2 , [ [ 0 , -131057 , 92672 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] , [ [ 0 , -131057 , 92672 ] , [ 0 , 1 , 1 ] ] ] ] , [ [ [ [ 0 , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] , [ [ [ [ 0 , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] , [ 2 , [ [ 0 , 185344 , 131057 ] , [ 0 , -1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ [ 0 , 1 , 1 ] ] , [ 0 , 131057 , 92672 ] ] ] ] , [ [ 0 , 185344 , 131057 ] , [ 0 , -1 , 1 ] ] ] ] ] , [ [ [ 0 , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] ] , [ 1 , [ [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] ] , [ 2 , [ [ 0 , -131057 , 92672 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 181 , 64 ] ] ] ] ] , [ 2 , [ 0 , 1 ] , [ 0 , 1 ] , 2 , [ [ 1 , -1 ] , [ 1 , 1 ] ] ] ] , [ [ 0 , 3 ] ] ] ] ] ] ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ 1 , 2 ] , [ -1 , 1 ] ] , [ 1 , 2 , [ [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ 0 , 0 , 1 ] , [ 0 , 2 , 1 ] ] ] , 3 , [ [ [ 0 ] , [ 1 ] , [ 2 ] ] , [ [ -1 ] , [ 0 ] , [ 1 ] ] , [ 1 , 0 , 1 ] , [ 2 , 0 , 2 ] , [ [ 0 , -1 , 1 ] , [ 2 , 0 , -2 ] , [ 0 , 1 , 1 ] ] , 2 ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , -1 , 1 ] , [ 1 , 1 , 1 ] , 2 , 0 , 2 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ [ 0 , 2 , 1 ] ] , [ 0 , 4 , 1 ] ] , [ ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , 1 ] , [ 1 , 1 ] , 0 , 0 , 0 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , -1 , 1 ] , [ 1 , 1 , 1 ] , 2 , 0 , 2 ] ] , [ [ [ [ ] , [ [ 0 , 1 , 1 ] ] ] ] , [ [ [ [ 0 , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] , [ [ [ [ 0 , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] , [ 0 , [ [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] ] , [ [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ 0 , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] ] ] ] , [ 2 , [ 0 , 1 ] , [ 0 , 1 ] , 2 , [ [ 1 , -1 ] , [ 1 , 1 ] ] ] ] , [ ] ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ 0 , 2 , 1 ] ] ] , 3 , [ [ [ 0 ] , [ 1 ] , [ 2 ] ] , [ [ -1 ] , [ 0 ] , [ 1 ] ] , [ 0 , 0 , 2 ] , [ 2 , 2 , 2 ] , [ [ 0 , -1 , 1 ] , [ 2 , 0 , -2 ] , [ 0 , 1 , 1 ] ] , 2 ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , -1 , 1 ] , [ 1 , 1 , 1 ] , 2 , 0 , 2 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , -1 , 1 ] , [ 1 , 1 , 1 ] , 2 , 0 , 2 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , -1 , 1 ] , [ 1 , 1 , 1 ] , 2 , 0 , 2 ] ] , [ [ [ [ ] , [ [ 0 , 1 , 1 ] ] ] ] , [ [ [ [ 0 , [ [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] , [ [ 0 , 1 , 1 ] ] ] ] , [ [ [ [ 0 , [ [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] , [ 0 , [ [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] , [ [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ 0 , [ [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] ] ] ] , [ 1 , [ 0 ] , [ 0 ] , 1 , [ [ 1 ] ] ] ] , [ ] ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ 0 , 0 , 1 ] , [ 0 , 2 , 1 ] ] , [ [ 0 , 2 , 1 ] ] ] , 2 , [ [ [ 0 , 0 ] , [ 1 , 0 ] ] , [ [ -1 , 1 ] , [ 1 , 1 ] ] , [ 1 , 1 ] , [ 2 , 0 ] , [ [ 1 , -1 ] , [ 1 , 1 ] ] , 2 ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , -1 , 1 ] , [ 1 , 1 , 1 ] , 2 , 0 , 2 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ [ 0 , 2 , 1 ] ] , [ 0 , 4 , 1 ] ] , [ ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , 1 ] , [ 1 , 1 ] , 0 , 0 , 0 ] ] , [ [ [ [ ] , [ [ 0 , 1 , 1 ] ] ] ] , [ [ [ [ 0 , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ 0 , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] ] , [ 1 , [ [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] ] ] ] , [ 2 , [ 0 , 1 ] , [ 0 , 1 ] , 2 , [ [ 1 , -1 ] , [ 1 , 1 ] ] ] ] , [ [ 0 , 1 ] ] ] ] ] , [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , 0 , [ 1 , 4 , [ [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ 0 , 0 , 1 ] , [ 0 , 2 , 1 ] ] ] , 3 , [ [ [ 0 ] , [ 1 ] , [ 2 ] ] , [ [ -1 ] , [ 0 ] , [ 1 ] ] , [ 1 , 0 , 1 ] , [ 2 , 0 , 2 ] , [ [ 0 , -1 , 1 ] , [ 2 , 0 , -2 ] , [ 0 , 1 , 1 ] ] , 2 ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , -1 , 1 ] , [ 1 , 1 , 1 ] , 2 , 0 , 2 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ [ 0 , 2 , 1 ] ] , [ 0 , 4 , 1 ] ] , [ ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , 1 ] , [ 1 , 1 ] , 0 , 0 , 0 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , -1 , 1 ] , [ 1 , 1 , 1 ] , 2 , 0 , 2 ] ] , [ [ [ [ ] , [ [ 0 , 1 , 1 ] ] ] ] , [ [ [ [ 0 , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] , [ [ [ [ 0 , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] , [ 0 , [ [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] ] , [ [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ 0 , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] ] ] ] , [ 2 , [ 0 , 1 ] , [ 0 , 1 ] , 2 , [ [ 1 , -1 ] , [ 1 , 1 ] ] ] ] , [ ] ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ 0 , 2 , 1 ] ] ] , 3 , [ [ [ 0 ] , [ 1 ] , [ 2 ] ] , [ [ -1 ] , [ 0 ] , [ 1 ] ] , [ 0 , 0 , 2 ] , [ 2 , 2 , 2 ] , [ [ 0 , -1 , 1 ] , [ 2 , 0 , -2 ] , [ 0 , 1 , 1 ] ] , 2 ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , -1 , 1 ] , [ 1 , 1 , 1 ] , 2 , 0 , 2 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , -1 , 1 ] , [ 1 , 1 , 1 ] , 2 , 0 , 2 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , -1 , 1 ] , [ 1 , 1 , 1 ] , 2 , 0 , 2 ] ] , [ [ [ [ ] , [ [ 0 , 1 , 1 ] ] ] ] , [ [ [ [ 0 , [ [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] , [ [ 0 , 1 , 1 ] ] ] ] , [ [ [ [ 0 , [ [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] , [ 0 , [ [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] , [ [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ 0 , [ [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] ] ] ] , [ 1 , [ 0 ] , [ 0 ] , 1 , [ [ 1 ] ] ] ] , [ ] ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ ] ] , 3 , [ [ [ 0 ] , [ 1 ] , [ 2 ] ] , [ [ -1 ] , [ 0 ] , [ 1 ] ] , [ 0 , 2 , 0 ] , [ 2 , 0 , 0 ] , [ [ 0 , -1 , 1 ] , [ 2 , 0 , -2 ] , [ 0 , 1 , 1 ] ] , 2 ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , -1 , 1 ] , [ 1 , 1 , 1 ] , 2 , 0 , 2 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] , [ 2 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] , [ ] , [ ] ] , [ 1 ] , [ 1 ] , 0 , 0 , 0 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] , [ 2 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] , [ ] , [ ] ] , [ 1 ] , [ 1 ] , 0 , 0 , 0 ] ] , [ [ [ [ ] , [ [ 0 , 1 , 1 ] ] ] ] , [ [ [ [ 0 , [ ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] , [ ] ] ] , [ [ [ [ 0 , [ ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] , [ 0 , [ ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] , [ ] ] ] ] , [ [ [ 0 , [ ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , [ 0 ] , [ 0 ] , 1 , [ [ 1 ] ] ] ] , [ ] ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ 0 , 2 , 1 ] ] , [ ] ] , 1 , [ [ [ 0 , 0 ] ] , [ [ 1 , 0 ] ] , [ 2 ] , [ 2 ] , [ [ 1 ] ] , 1 ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , -1 , 1 ] , [ 1 , 1 , 1 ] , 2 , 0 , 2 ] ] , [ [ [ [ ] , [ [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ 0 , [ [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] ] , [ 1 , [ ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , [ 0 ] , [ 0 ] , 1 , [ [ 1 ] ] ] ] , [ [ 1 , 2 ] ] ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ 0 , 0 , 1 ] , [ 0 , 2 , 1 ] ] , [ [ 0 , 2 , 1 ] ] , [ ] ] , 2 , [ [ [ 0 , 0 , 0 ] , [ 1 , 0 , 0 ] ] , [ [ -1 , 1 , 0 ] , [ 1 , 1 , 0 ] ] , [ 1 , 1 ] , [ 2 , 0 ] , [ [ 1 , -1 ] , [ 1 , 1 ] ] , 2 ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , -1 , 1 ] , [ 1 , 1 , 1 ] , 2 , 0 , 2 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ [ 0 , 2 , 1 ] ] , [ 0 , 4 , 1 ] ] , [ ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , 1 ] , [ 1 , 1 ] , 0 , 0 , 0 ] ] , [ [ [ [ ] , [ [ 0 , 1 , 1 ] ] ] ] , [ [ [ [ 0 , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ 0 , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] ] , [ 1 , [ [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] ] , [ 2 , [ ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 2 , [ 0 , 1 ] , [ 0 , 1 ] , 2 , [ [ 1 , -1 ] , [ 1 , 1 ] ] ] ] , [ [ 0 , 3 ] ] ] ] ] ] , [ [ [ 0 , -65521 , 32768 ] , [ 0 , -181 , 64 ] , [ 0 , -1 , 1 ] ] , 1 , [ 1 , 4 , [ [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ 0 , 0 , 1 ] , [ 0 , 2 , 1 ] ] ] , 3 , [ [ [ 0 ] , [ 1 ] , [ 2 ] ] , [ [ -1 ] , [ 0 ] , [ 1 ] ] , [ 1 , 0 , 1 ] , [ 2 , 0 , 2 ] , [ [ 0 , -1 , 1 ] , [ 2 , 0 , -2 ] , [ 0 , 1 , 1 ] ] , 2 ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , -1 , 1 ] , [ 1 , 1 , 1 ] , 2 , 0 , 2 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ [ 0 , 2 , 1 ] ] , [ 0 , 4 , 1 ] ] , [ ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , 1 ] , [ 1 , 1 ] , 0 , 0 , 0 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , -1 , 1 ] , [ 1 , 1 , 1 ] , 2 , 0 , 2 ] ] , [ [ [ [ ] , [ [ 0 , 1 , 1 ] ] ] ] , [ [ [ [ 0 , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] , [ [ [ [ 0 , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] , [ 0 , [ [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] ] , [ [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ 0 , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] ] ] ] , [ 2 , [ 0 , 1 ] , [ 0 , 1 ] , 2 , [ [ 1 , -1 ] , [ 1 , 1 ] ] ] ] , [ ] ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ 0 , 2 , 1 ] ] ] , 3 , [ [ [ 0 ] , [ 1 ] , [ 2 ] ] , [ [ -1 ] , [ 0 ] , [ 1 ] ] , [ 0 , 0 , 2 ] , [ 2 , 2 , 2 ] , [ [ 0 , -1 , 1 ] , [ 2 , 0 , -2 ] , [ 0 , 1 , 1 ] ] , 2 ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , -1 , 1 ] , [ 1 , 1 , 1 ] , 2 , 0 , 2 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , -1 , 1 ] , [ 1 , 1 , 1 ] , 2 , 0 , 2 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , -1 , 1 ] , [ 1 , 1 , 1 ] , 2 , 0 , 2 ] ] , [ [ [ [ ] , [ [ 0 , 1 , 1 ] ] ] ] , [ [ [ [ 0 , [ [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] , [ [ 0 , 1 , 1 ] ] ] ] , [ [ [ [ 0 , [ [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] , [ 0 , [ [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] , [ [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ 0 , [ [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] ] ] ] , [ 1 , [ 0 ] , [ 0 ] , 1 , [ [ 1 ] ] ] ] , [ ] ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ 0 , -131057 , 32768 ] , [ 0 , -181 , 64 ] ] ] , 3 , [ [ [ 0 ] , [ 1 ] , [ 2 ] ] , [ [ -1 ] , [ 0 ] , [ 1 ] ] , [ 1 , 0 , 1 ] , [ 2 , 0 , 2 ] , [ [ 0 , -1 , 1 ] , [ 2 , 0 , -2 ] , [ 0 , 1 , 1 ] ] , 2 ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , -1 , 1 ] , [ 1 , 1 , 1 ] , 2 , 0 , 2 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , -131057 , 92672 ] , [ 0 , -1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , -185344 , 131057 ] , [ 0 , -1 , 1 ] ] , [ [ 0 , -1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ [ 0 , -2 , 1 ] ] , [ 0 , 131057 , 46336 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 185344 , 131057 ] , [ 0 , -1 , 1 ] ] , [ 0 , 523838 , 17175937249 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 185344 , 131057 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , 1 , -1 ] , [ 1 , -1 , -1 ] , 1 , 1 , 0 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 34352136417 , 24290628608 ] , [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 48581257216 , 34352136417 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ [ 0 , 2 , 1 ] ] , [ 0 , 34352136417 , 12145314304 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , -48581257216 , 34352136417 ] , [ 0 , 1 , 1 ] ] , [ 0 , 137203125122 , 1180069276412177597889 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 48581257216 , 34352136417 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , -1 , 1 ] , [ 1 , 1 , 1 ] , 2 , 0 , 2 ] ] , [ [ [ [ ] , [ [ 0 , 1 , 1 ] ] ] ] , [ [ [ [ 0 , [ [ 0 , -131057 , 92672 ] , [ 0 , -1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] , [ [ 0 , -131057 , 92672 ] , [ 0 , -1 , 1 ] ] ] ] , [ [ [ [ 0 , [ [ 0 , -131057 , 92672 ] , [ 0 , -1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] , [ 0 , [ [ 0 , 34352136417 , 24290628608 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ [ 0 , 1 , 1 ] ] , [ 0 , 131057 , 46336 ] ] ] ] , [ [ 0 , 34352136417 , 24290628608 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ 0 , [ [ 0 , -131057 , 92672 ] , [ 0 , -1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 181 , 64 ] ] ] ] ] , [ 2 , [ 0 , 1 ] , [ 0 , 1 ] , 2 , [ [ 1 , -1 ] , [ 1 , 1 ] ] ] ] , [ ] ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ 0 , 2 , 1 ] ] , [ [ 0 , -131057 , 32768 ] , [ 0 , -181 , 64 ] ] ] , 2 , [ [ [ 0 , 0 ] , [ 0 , 1 ] ] , [ [ 1 , -1 ] , [ 1 , 1 ] ] , [ 1 , 1 ] , [ 2 , 0 ] , [ [ 1 , -1 ] , [ 1 , 1 ] ] , 2 ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , -1 , 1 ] , [ 1 , 1 , 1 ] , 2 , 0 , 2 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , -131057 , 92672 ] , [ 0 , -1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , -185344 , 131057 ] , [ 0 , -1 , 1 ] ] , [ [ 0 , -1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ [ 0 , -2 , 1 ] ] , [ 0 , 131057 , 46336 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 185344 , 131057 ] , [ 0 , -1 , 1 ] ] , [ 0 , 523838 , 17175937249 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 185344 , 131057 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , 1 , -1 ] , [ 1 , -1 , -1 ] , 1 , 1 , 0 ] ] , [ [ [ [ ] , [ [ 0 , 1 , 1 ] ] ] ] , [ [ [ [ 1 , [ [ 0 , -131057 , 92672 ] , [ 0 , -1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] , [ [ 0 , -131057 , 92672 ] , [ 0 , -1 , 1 ] ] ] ] ] , [ [ [ 0 , [ [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] ] , [ 1 , [ [ 0 , -131057 , 92672 ] , [ 0 , -1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 181 , 64 ] ] ] ] ] , [ 2 , [ 0 , 1 ] , [ 0 , 1 ] , 2 , [ [ 1 , -1 ] , [ 1 , 1 ] ] ] ] , [ [ 1 , 2 ] ] ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ 0 , 0 , 1 ] , [ 0 , 2 , 1 ] ] , [ [ 0 , 2 , 1 ] ] , [ [ 0 , -131057 , 32768 ] , [ 0 , -181 , 64 ] ] ] , 4 , [ [ [ 0 , 0 , 0 ] , [ 0 , 0 , 1 ] , [ 1 , 0 , 0 ] , [ 1 , 0 , 1 ] ] , [ [ -1 , 1 , -1 ] , [ -1 , 1 , 1 ] , [ 1 , 1 , -1 ] , [ 1 , 1 , 1 ] ] , [ 0 , 1 , 1 , 0 ] , [ 2 , 0 , 0 , -2 ] , [ [ 1 , -1 , -1 , 1 ] , [ 1 , 1 , -1 , -1 ] , [ 1 , -1 , 1 , -1 ] , [ 1 , 1 , 1 , 1 ] ] , 4 ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , -1 , 1 ] , [ 1 , 1 , 1 ] , 2 , 0 , 2 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , -131057 , 92672 ] , [ 0 , -1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , -185344 , 131057 ] , [ 0 , -1 , 1 ] ] , [ [ 0 , -1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ [ 0 , -2 , 1 ] ] , [ 0 , 131057 , 46336 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 185344 , 131057 ] , [ 0 , -1 , 1 ] ] , [ 0 , 523838 , 17175937249 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 185344 , 131057 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , 1 , -1 ] , [ 1 , -1 , -1 ] , 1 , 1 , 0 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ [ 0 , 2 , 1 ] ] , [ 0 , 4 , 1 ] ] , [ ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , 1 ] , [ 1 , 1 ] , 0 , 0 , 0 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , -185344 , 131057 ] , [ 0 , -1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , -131057 , 92672 ] , [ 0 , -1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ [ 0 , -2 , 1 ] ] , [ 0 , 370688 , 131057 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 131057 , 92672 ] , [ 0 , -1 , 1 ] ] , [ 0 , 261919 , 8588099584 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , -131057 , 92672 ] , [ 0 , -1 , 1 ] ] ] ] ] , [ 1 , 1 , 1 ] , [ 1 , -1 , 1 ] , 0 , 2 , -2 ] ] , [ [ [ [ ] , [ [ 0 , 1 , 1 ] ] ] ] , [ [ [ [ 2 , [ [ 0 , -131057 , 92672 ] , [ 0 , -1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] , [ [ 0 , -131057 , 92672 ] , [ 0 , -1 , 1 ] ] ] ] , [ [ [ [ 0 , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] , [ [ [ [ 0 , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] , [ 2 , [ [ 0 , -185344 , 131057 ] , [ 0 , -1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ [ 0 , -1 , 1 ] ] , [ 0 , 131057 , 92672 ] ] ] ] , [ [ 0 , -185344 , 131057 ] , [ 0 , -1 , 1 ] ] ] ] ] , [ [ [ 0 , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] ] , [ 1 , [ [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] ] , [ 2 , [ [ 0 , -131057 , 92672 ] , [ 0 , -1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 181 , 64 ] ] ] ] ] , [ 2 , [ 0 , 1 ] , [ 0 , 1 ] , -2 , [ [ -1 , -1 ] , [ -1 , 1 ] ] ] ] , [ [ 0 , 3 ] ] ] ] ] ] ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ 1 , 2 , 3 ] , [ 1 , 1 , 1 ] ] , [ 1 , 4 , [ [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 3 , 1 ] ] ] , 3 , [ [ [ 0 ] , [ 1 ] , [ 2 ] ] , [ [ -1 ] , [ 0 ] , [ 1 ] ] , [ 0 , 0 , 1 ] , [ 1 , 1 , 1 ] , [ [ 0 , -1 , 1 ] , [ 2 , 0 , -2 ] , [ 0 , 1 , 1 ] ] , 2 ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ -1 , 1 , 1 ] , [ 1 , 1 , 1 ] , 1 , 0 , 1 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 3 , 1 ] ] , [ 0 , 6 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ -1 , -1 , 1 ] , [ 1 , 1 , 1 ] , 1 , 0 , 1 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 0 ] , [ [ 0 , 1 , 1 ] , [ [ 0 , 3 , 1 ] ] , [ 0 , 6 , 1 ] ] , [ ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ -1 , 1 ] , [ 1 , 1 ] , 1 , 0 , 1 ] ] , [ [ [ [ ] , [ [ 0 , 1 , 1 ] ] ] ] , [ [ [ [ 0 , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] , [ [ [ [ 0 , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] , [ 0 , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ 0 , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] ] ] ] , [ 1 , [ 0 ] , [ 0 ] , 1 , [ [ 1 ] ] ] ] , [ ] ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ 0 , 0 , 1 ] , [ 0 , 6 , 1 ] ] ] , 3 , [ [ [ 0 ] , [ 1 ] , [ 2 ] ] , [ [ -1 ] , [ 0 ] , [ 1 ] ] , [ 0 , 0 , 1 ] , [ 1 , 1 , 1 ] , [ [ 0 , -1 , 1 ] , [ 2 , 0 , -2 ] , [ 0 , 1 , 1 ] ] , 2 ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ -1 , 1 , 1 ] , [ 1 , 1 , 1 ] , 1 , 0 , 1 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 0 ] , [ [ 0 , 1 , 1 ] , [ [ 0 , 3 , 1 ] ] , [ 0 , 6 , 1 ] ] , [ ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ -1 , 1 ] , [ 1 , 1 ] , 1 , 0 , 1 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 3 , 1 ] ] , [ 0 , 6 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ -1 , -1 , 1 ] , [ 1 , 1 , 1 ] , 1 , 0 , 1 ] ] , [ [ [ [ ] , [ [ 0 , 1 , 1 ] ] ] ] , [ [ [ [ 0 , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] , [ [ [ [ 0 , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] , [ 0 , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ 0 , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 6 , 1 ] ] ] ] ] , [ 1 , [ 0 ] , [ 0 ] , 1 , [ [ 1 ] ] ] ] , [ ] ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ 0 , 6 , 1 ] ] ] , 3 , [ [ [ 0 ] , [ 1 ] , [ 2 ] ] , [ [ -1 ] , [ 0 ] , [ 1 ] ] , [ 0 , 0 , 1 ] , [ 1 , 1 , 1 ] , [ [ 0 , -1 , 1 ] , [ 2 , 0 , -2 ] , [ 0 , 1 , 1 ] ] , 2 ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ -1 , 1 , 1 ] , [ 1 , 1 , 1 ] , 1 , 0 , 1 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ -1 , 1 , 1 ] , [ 1 , 1 , 1 ] , 1 , 0 , 1 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ -1 , 1 , 1 ] , [ 1 , 1 , 1 ] , 1 , 0 , 1 ] ] , [ [ [ [ ] , [ [ 0 , 1 , 1 ] ] ] ] , [ [ [ [ 0 , [ [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] , [ [ 0 , 1 , 1 ] ] ] ] , [ [ [ [ 0 , [ [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] , [ 0 , [ [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] , [ [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ 0 , [ [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 6 , 1 ] ] ] ] ] , [ 1 , [ 0 ] , [ 0 ] , 1 , [ [ 1 ] ] ] ] , [ ] ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ 0 , 0 , 1 ] , [ 0 , 6 , 1 ] ] , [ [ 0 , 6 , 1 ] ] ] , 1 , [ [ [ 0 , 0 ] ] , [ [ 1 , 1 ] ] , [ 1 ] , [ 1 ] , [ [ 1 ] ] , 1 ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ -1 , 1 , 1 ] , [ 1 , 1 , 1 ] , 1 , 0 , 1 ] ] , [ [ [ [ ] , [ [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ 0 , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 6 , 1 ] ] ] , [ 1 , [ [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 6 , 1 ] ] ] ] ] , [ 1 , [ 0 ] , [ 0 ] , 1 , [ [ 1 ] ] ] ] , [ [ 1 , 2 ] ] ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 3 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 6 , 1 ] ] , [ [ 0 , 6 , 1 ] ] ] , 1 , [ [ [ 0 , 0 , 0 ] ] , [ [ 1 , 1 , 1 ] ] , [ 1 ] , [ 1 ] , [ [ 1 ] ] , 1 ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ -1 , 1 , 1 ] , [ 1 , 1 , 1 ] , 1 , 0 , 1 ] ] , [ [ [ [ ] , [ [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ 0 , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] ] , [ 1 , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 6 , 1 ] ] ] , [ 2 , [ [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 6 , 1 ] ] ] ] ] , [ 1 , [ 0 ] , [ 0 ] , 1 , [ [ 1 ] ] ] ] , [ [ 0 , 3 ] ] ] ] ] , [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , 0 , [ 1 , 6 , [ [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 3 , 1 ] ] ] , 3 , [ [ [ 0 ] , [ 1 ] , [ 2 ] ] , [ [ -1 ] , [ 0 ] , [ 1 ] ] , [ 0 , 0 , 1 ] , [ 1 , 1 , 1 ] , [ [ 0 , -1 , 1 ] , [ 2 , 0 , -2 ] , [ 0 , 1 , 1 ] ] , 2 ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ -1 , 1 , 1 ] , [ 1 , 1 , 1 ] , 1 , 0 , 1 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 3 , 1 ] ] , [ 0 , 6 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ -1 , -1 , 1 ] , [ 1 , 1 , 1 ] , 1 , 0 , 1 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 0 ] , [ [ 0 , 1 , 1 ] , [ [ 0 , 3 , 1 ] ] , [ 0 , 6 , 1 ] ] , [ ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ -1 , 1 ] , [ 1 , 1 ] , 1 , 0 , 1 ] ] , [ [ [ [ ] , [ [ 0 , 1 , 1 ] ] ] ] , [ [ [ [ 0 , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] , [ [ [ [ 0 , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] , [ 0 , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ 0 , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] ] ] ] , [ 1 , [ 0 ] , [ 0 ] , 1 , [ [ 1 ] ] ] ] , [ ] ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ 0 , 0 , 1 ] , [ 0 , 6 , 1 ] ] ] , 3 , [ [ [ 0 ] , [ 1 ] , [ 2 ] ] , [ [ -1 ] , [ 0 ] , [ 1 ] ] , [ 0 , 0 , 1 ] , [ 1 , 1 , 1 ] , [ [ 0 , -1 , 1 ] , [ 2 , 0 , -2 ] , [ 0 , 1 , 1 ] ] , 2 ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ -1 , 1 , 1 ] , [ 1 , 1 , 1 ] , 1 , 0 , 1 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 0 ] , [ [ 0 , 1 , 1 ] , [ [ 0 , 3 , 1 ] ] , [ 0 , 6 , 1 ] ] , [ ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ -1 , 1 ] , [ 1 , 1 ] , 1 , 0 , 1 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 3 , 1 ] ] , [ 0 , 6 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ -1 , -1 , 1 ] , [ 1 , 1 , 1 ] , 1 , 0 , 1 ] ] , [ [ [ [ ] , [ [ 0 , 1 , 1 ] ] ] ] , [ [ [ [ 0 , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] , [ [ [ [ 0 , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] , [ 0 , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ 0 , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 6 , 1 ] ] ] ] ] , [ 1 , [ 0 ] , [ 0 ] , 1 , [ [ 1 ] ] ] ] , [ ] ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 3 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 6 , 1 ] ] ] , 1 , [ [ [ 0 , 0 ] ] , [ [ 1 , 1 ] ] , [ 1 ] , [ 1 ] , [ [ 1 ] ] , 1 ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ -1 , 1 , 1 ] , [ 1 , 1 , 1 ] , 1 , 0 , 1 ] ] , [ [ [ [ ] , [ [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ 0 , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] ] , [ 1 , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 6 , 1 ] ] ] ] ] , [ 1 , [ 0 ] , [ 0 ] , 1 , [ [ 1 ] ] ] ] , [ [ 0 , 1 ] ] ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ 0 , 6 , 1 ] ] ] , 3 , [ [ [ 0 ] , [ 1 ] , [ 2 ] ] , [ [ -1 ] , [ 0 ] , [ 1 ] ] , [ 0 , 0 , 1 ] , [ 1 , 1 , 1 ] , [ [ 0 , -1 , 1 ] , [ 2 , 0 , -2 ] , [ 0 , 1 , 1 ] ] , 2 ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ -1 , 1 , 1 ] , [ 1 , 1 , 1 ] , 1 , 0 , 1 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ -1 , 1 , 1 ] , [ 1 , 1 , 1 ] , 1 , 0 , 1 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ -1 , 1 , 1 ] , [ 1 , 1 , 1 ] , 1 , 0 , 1 ] ] , [ [ [ [ ] , [ [ 0 , 1 , 1 ] ] ] ] , [ [ [ [ 0 , [ [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] , [ [ 0 , 1 , 1 ] ] ] ] , [ [ [ [ 0 , [ [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] , [ 0 , [ [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] , [ [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ 0 , [ [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 6 , 1 ] ] ] ] ] , [ 1 , [ 0 ] , [ 0 ] , 1 , [ [ 1 ] ] ] ] , [ ] ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ ] ] , 3 , [ [ [ 0 ] , [ 1 ] , [ 2 ] ] , [ [ -1 ] , [ 0 ] , [ 1 ] ] , [ 0 , 1 , 0 ] , [ 1 , 0 , 0 ] , [ [ 0 , -1 , 1 ] , [ 2 , 0 , -2 ] , [ 0 , 1 , 1 ] ] , 2 ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ -1 , 1 , 1 ] , [ 1 , 1 , 1 ] , 1 , 0 , 1 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] , [ 3 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] , [ ] , [ ] ] , [ -1 ] , [ 1 ] , 0 , 0 , 0 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] , [ 3 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] , [ ] , [ ] ] , [ -1 ] , [ 1 ] , 0 , 0 , 0 ] ] , [ [ [ [ ] , [ [ 0 , 1 , 1 ] ] ] ] , [ [ [ [ 0 , [ ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] , [ ] ] ] , [ [ [ [ 0 , [ ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] , [ 0 , [ ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] , [ ] ] ] ] , [ [ [ 0 , [ ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , [ 0 ] , [ 0 ] , 1 , [ [ 1 ] ] ] ] , [ ] ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ 0 , 6 , 1 ] ] , [ ] ] , 1 , [ [ [ 0 , 0 ] ] , [ [ 1 , 0 ] ] , [ 1 ] , [ 1 ] , [ [ 1 ] ] , 1 ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ -1 , 1 , 1 ] , [ 1 , 1 , 1 ] , 1 , 0 , 1 ] ] , [ [ [ [ ] , [ [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ 0 , [ [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 6 , 1 ] ] ] , [ 1 , [ ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , [ 0 ] , [ 0 ] , 1 , [ [ 1 ] ] ] ] , [ [ 3 , 4 ] ] ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 3 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 6 , 1 ] ] , [ [ 0 , 6 , 1 ] ] , [ ] ] , 1 , [ [ [ 0 , 0 , 0 , 0 ] ] , [ [ 1 , 1 , 1 , 0 ] ] , [ 1 ] , [ 1 ] , [ [ 1 ] ] , 1 ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ -1 , 1 , 1 ] , [ 1 , 1 , 1 ] , 1 , 0 , 1 ] ] , [ [ [ [ ] , [ [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ 0 , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] ] , [ 1 , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 6 , 1 ] ] ] , [ 2 , [ [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 6 , 1 ] ] ] , [ 3 , [ ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , [ 0 ] , [ 0 ] , 1 , [ [ 1 ] ] ] ] , [ [ 2 , 5 ] ] ] ] ] ] , [ [ [ 0 , -13312799 , 8388608 ] , [ 0 , 645 , 256 ] , [ 0 , -1 , 1 ] ] , 1 , [ 1 , 6 , [ [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 3 , 1 ] ] ] , 3 , [ [ [ 0 ] , [ 1 ] , [ 2 ] ] , [ [ -1 ] , [ 0 ] , [ 1 ] ] , [ 0 , 0 , 1 ] , [ 1 , 1 , 1 ] , [ [ 0 , -1 , 1 ] , [ 2 , 0 , -2 ] , [ 0 , 1 , 1 ] ] , 2 ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ -1 , 1 , 1 ] , [ 1 , 1 , 1 ] , 1 , 0 , 1 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 3 , 1 ] ] , [ 0 , 6 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ -1 , -1 , 1 ] , [ 1 , 1 , 1 ] , 1 , 0 , 1 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 0 ] , [ [ 0 , 1 , 1 ] , [ [ 0 , 3 , 1 ] ] , [ 0 , 6 , 1 ] ] , [ ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ -1 , 1 ] , [ 1 , 1 ] , 1 , 0 , 1 ] ] , [ [ [ [ ] , [ [ 0 , 1 , 1 ] ] ] ] , [ [ [ [ 0 , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] , [ [ [ [ 0 , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] , [ 0 , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ 0 , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] ] ] ] , [ 1 , [ 0 ] , [ 0 ] , 1 , [ [ 1 ] ] ] ] , [ ] ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ 0 , 0 , 1 ] , [ 0 , 6 , 1 ] ] ] , 3 , [ [ [ 0 ] , [ 1 ] , [ 2 ] ] , [ [ -1 ] , [ 0 ] , [ 1 ] ] , [ 0 , 0 , 1 ] , [ 1 , 1 , 1 ] , [ [ 0 , -1 , 1 ] , [ 2 , 0 , -2 ] , [ 0 , 1 , 1 ] ] , 2 ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ -1 , 1 , 1 ] , [ 1 , 1 , 1 ] , 1 , 0 , 1 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 0 ] , [ [ 0 , 1 , 1 ] , [ [ 0 , 3 , 1 ] ] , [ 0 , 6 , 1 ] ] , [ ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ -1 , 1 ] , [ 1 , 1 ] , 1 , 0 , 1 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 3 , 1 ] ] , [ 0 , 6 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ -1 , -1 , 1 ] , [ 1 , 1 , 1 ] , 1 , 0 , 1 ] ] , [ [ [ [ ] , [ [ 0 , 1 , 1 ] ] ] ] , [ [ [ [ 0 , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] , [ [ [ [ 0 , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] , [ 0 , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ 0 , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 6 , 1 ] ] ] ] ] , [ 1 , [ 0 ] , [ 0 ] , 1 , [ [ 1 ] ] ] ] , [ ] ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 3 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 6 , 1 ] ] ] , 1 , [ [ [ 0 , 0 ] ] , [ [ 1 , 1 ] ] , [ 1 ] , [ 1 ] , [ [ 1 ] ] , 1 ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ -1 , 1 , 1 ] , [ 1 , 1 , 1 ] , 1 , 0 , 1 ] ] , [ [ [ [ ] , [ [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ 0 , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] ] , [ 1 , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 6 , 1 ] ] ] ] ] , [ 1 , [ 0 ] , [ 0 ] , 1 , [ [ 1 ] ] ] ] , [ [ 0 , 1 ] ] ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ 0 , 6 , 1 ] ] ] , 3 , [ [ [ 0 ] , [ 1 ] , [ 2 ] ] , [ [ -1 ] , [ 0 ] , [ 1 ] ] , [ 0 , 0 , 1 ] , [ 1 , 1 , 1 ] , [ [ 0 , -1 , 1 ] , [ 2 , 0 , -2 ] , [ 0 , 1 , 1 ] ] , 2 ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ -1 , 1 , 1 ] , [ 1 , 1 , 1 ] , 1 , 0 , 1 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ -1 , 1 , 1 ] , [ 1 , 1 , 1 ] , 1 , 0 , 1 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ -1 , 1 , 1 ] , [ 1 , 1 , 1 ] , 1 , 0 , 1 ] ] , [ [ [ [ ] , [ [ 0 , 1 , 1 ] ] ] ] , [ [ [ [ 0 , [ [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] , [ [ 0 , 1 , 1 ] ] ] ] , [ [ [ [ 0 , [ [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] , [ 0 , [ [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] , [ [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ 0 , [ [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 6 , 1 ] ] ] ] ] , [ 1 , [ 0 ] , [ 0 ] , 1 , [ [ 1 ] ] ] ] , [ ] ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ 0 , -13312799 , 8388608 ] , [ 0 , 645 , 256 ] , [ 0 , -1 , 1 ] ] ] , 3 , [ [ [ 0 ] , [ 1 ] , [ 2 ] ] , [ [ -1 ] , [ 0 ] , [ 1 ] ] , [ 0 , 0 , 1 ] , [ 1 , 1 , 1 ] , [ [ 0 , -1 , 1 ] , [ 2 , 0 , -2 ] , [ 0 , 1 , 1 ] ] , 2 ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ -1 , 1 , 1 ] , [ 1 , 1 , 1 ] , 1 , 0 , 1 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , -13312799 , 8388608 ] , [ 0 , 645 , 256 ] , [ 0 , -1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 42270720 , 13312799 ] , [ 0 , -16777216 , 13312799 ] , [ 0 , -1 , 1 ] ] , [ [ 0 , 531823117172161 , 422108287827968 ] , [ 0 , -1 , 1 ] ] , [ [ 0 , -1 , 1 ] ] ] , [ 3 , 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ [ 0 , 1935 , 256 ] , [ 0 , -3 , 1 ] ] , [ 0 , 39938397 , 8388608 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 16777216 , 13312799 ] , [ 0 , -1 , 1 ] ] , [ 0 , 844216575655936 , 177230617214401 ] ] , [ [ 0 , 1 , 1 ] , [ [ 0 , 14161856182746417765727 , 5619442792087884562432 ] , [ 0 , 1 , 1 ] ] , [ 0 , 16935998183659607946367 , 178175406653058678027163009024 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , -531823117172161 , 422108287827968 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ -1 , -1 , 1 , -1 ] , [ 1 , -1 , -1 , -1 ] , 2 , 1 , 1 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , -531954382701119 , 670055146717184 ] , [ 0 , -6439271707 , 10224230144 ] , [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , -844008221179904 , 531954382701119 ] , [ 0 , 1340110293434368 , 531954382701119 ] , [ 0 , -1 , 1 ] ] , [ [ 0 , 848507517748138632283156122497 , 673460863138161280761781223424 ] , [ 0 , -1 , 1 ] ] , [ [ 0 , -1 , 1 ] ] ] , [ 3 , 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ [ 0 , -19317815121 , 10224230144 ] , [ 0 , 3 , 1 ] ] , [ 0 , 1595863148103357 , 670055146717184 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , -1340110293434368 , 531954382701119 ] , [ 0 , -1 , 1 ] ] , [ 0 , 1346921726276322561523562446848 , 282975465274928573198483852161 ] ] , [ [ 0 , 1 , 1 ] , [ [ 0 , -451144542095674201519953963846426420385261889 , 358250457724023371626526318932137133553811456 ] , [ 0 , 1 , 1 ] ] , [ 0 , 860908980737602065149122892520026022839822591 , 453549534178797199769117499790381448220762277801366206283776 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , -848507517748138632283156122497 , 673460863138161280761781223424 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ -1 , -1 , 1 , -1 ] , [ 1 , -1 , -1 , -1 ] , 2 , 1 , 1 ] ] , [ [ [ [ ] , [ [ 0 , 1 , 1 ] ] ] ] , [ [ [ [ 0 , [ [ 0 , -13312799 , 8388608 ] , [ 0 , 645 , 256 ] , [ 0 , -1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] , [ [ 0 , -13312799 , 8388608 ] , [ 0 , 645 , 256 ] , [ 0 , -1 , 1 ] ] ] ] , [ [ [ [ 0 , [ [ 0 , -13312799 , 8388608 ] , [ 0 , 645 , 256 ] , [ 0 , -1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] , [ 0 , [ [ 0 , -531954382701119 , 670055146717184 ] , [ 0 , -6439271707 , 10224230144 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ [ 0 , -645 , 128 ] , [ 0 , 1 , 1 ] ] , [ 0 , 39938399 , 4194304 ] ] ] ] , [ [ 0 , -531954382701119 , 670055146717184 ] , [ 0 , -6439271707 , 10224230144 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ 0 , [ [ 0 , -13312799 , 8388608 ] , [ 0 , 645 , 256 ] , [ 0 , -1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , [ 0 ] , [ 0 ] , 1 , [ [ 1 ] ] ] ] , [ ] ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ 0 , 6 , 1 ] ] , [ [ 0 , -13312799 , 8388608 ] , [ 0 , 645 , 256 ] , [ 0 , -1 , 1 ] ] ] , 1 , [ [ [ 0 , 0 ] ] , [ [ 1 , 1 ] ] , [ 1 ] , [ 1 ] , [ [ 1 ] ] , 1 ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ -1 , 1 , 1 ] , [ 1 , 1 , 1 ] , 1 , 0 , 1 ] ] , [ [ [ [ ] , [ [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ 0 , [ [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 6 , 1 ] ] ] , [ 1 , [ [ 0 , -13312799 , 8388608 ] , [ 0 , 645 , 256 ] , [ 0 , -1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , [ 0 ] , [ 0 ] , 1 , [ [ 1 ] ] ] ] , [ [ 3 , 4 ] ] ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 3 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 6 , 1 ] ] , [ [ 0 , 6 , 1 ] ] , [ [ 0 , -13312799 , 8388608 ] , [ 0 , 645 , 256 ] , [ 0 , -1 , 1 ] ] ] , 1 , [ [ [ 0 , 0 , 0 , 0 ] ] , [ [ 1 , 1 , 1 , 1 ] ] , [ 1 ] , [ 1 ] , [ [ 1 ] ] , 1 ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 0 ] , [ 2 ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 3 , 2 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ -1 , 1 , 1 ] , [ 1 , 1 , 1 ] , 1 , 0 , 1 ] ] , [ [ [ [ ] , [ [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ 0 , [ [ 0 , 0 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 3 , 1 ] ] ] , [ 1 , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 6 , 1 ] ] ] , [ 2 , [ [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 6 , 1 ] ] ] , [ 3 , [ [ 0 , -13312799 , 8388608 ] , [ 0 , 645 , 256 ] , [ 0 , -1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , [ 0 ] , [ 0 ] , 1 , [ [ 1 ] ] ] ] , [ [ 2 , 5 ] ] ] ] ] ] ] ]
diff --git a/conformance-fixtures/HexRCF/source-identity.json b/conformance-fixtures/HexRCF/source-identity.json
new file mode 100644
index 0000000000..d89f49321a
--- /dev/null
+++ b/conformance-fixtures/HexRCF/source-identity.json
@@ -0,0 +1 @@
+[ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , 0 , [ 1 , 0 , [ [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 1 , [ 0 , 1 , 1 ] ] , [ 1 , [ 0 , 2 , 1 ] ] , [ [ ] ] , 3 , [ [ [ 0 ] , [ 1 ] , [ 2 ] ] , [ [ -1 ] , [ 0 ] , [ 1 ] ] , [ 0 , 1 , 0 ] , [ 1 , 0 , 0 ] , [ [ 0 , -1 , 1 ] , [ 2 , 0 , -2 ] , [ 0 , 1 , 1 ] ] , 2 ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 1 , [ 0 , 1 , 1 ] ] , [ 1 , [ 0 , 2 , 1 ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ -1 , 1 , 1 ] , [ 1 , 1 , 1 ] , 1 , 0 , 1 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ ] , [ 1 , [ 0 , 1 , 1 ] ] , [ 1 , [ 0 , 2 , 1 ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] , [ 2 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] , [ ] , [ ] ] , [ -1 ] , [ 1 ] , 0 , 0 , 0 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ ] , [ 1 , [ 0 , 1 , 1 ] ] , [ 1 , [ 0 , 2 , 1 ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] , [ 2 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] , [ ] , [ ] ] , [ -1 ] , [ 1 ] , 0 , 0 , 0 ] ] , [ [ [ [ ] , [ [ 0 , 1 , 1 ] ] ] ] , [ [ [ [ 0 , [ ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] , [ ] ] ] , [ [ [ [ 0 , [ ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] , [ 0 , [ ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] , [ ] ] ] ] , [ [ [ 0 , [ ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] ] , [ 1 , [ 0 ] , [ 0 ] , 1 , [ [ 1 ] ] ] ] , [ ] ] ] ] ] , [ [ [ 0 , -65521 , 32768 ] , [ 0 , 181 , 64 ] , [ 0 , -1 , 1 ] ] , 1 , [ 1 , 0 , [ [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 1 , [ 0 , 1 , 1 ] ] , [ 1 , [ 0 , 2 , 1 ] ] , [ [ [ 0 , -131057 , 32768 ] , [ 0 , 181 , 64 ] ] ] , 3 , [ [ [ 0 ] , [ 1 ] , [ 2 ] ] , [ [ -1 ] , [ 0 ] , [ 1 ] ] , [ 0 , 0 , 1 ] , [ 1 , 1 , 1 ] , [ [ 0 , -1 , 1 ] , [ 2 , 0 , -2 ] , [ 0 , 1 , 1 ] ] , 2 ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 1 , [ 0 , 1 , 1 ] ] , [ 1 , [ 0 , 2 , 1 ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ -1 , 1 , 1 ] , [ 1 , 1 , 1 ] , 1 , 0 , 1 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , -131057 , 92672 ] , [ 0 , 1 , 1 ] ] , [ 1 , [ 0 , 1 , 1 ] ] , [ 1 , [ 0 , 2 , 1 ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 185344 , 131057 ] , [ 0 , -1 , 1 ] ] , [ [ 0 , -1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ [ 0 , 2 , 1 ] ] , [ 0 , 131057 , 46336 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , -185344 , 131057 ] , [ 0 , -1 , 1 ] ] , [ 0 , 523838 , 17175937249 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , -185344 , 131057 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ -1 , 1 , -1 ] , [ 1 , -1 , -1 ] , 2 , 1 , 1 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 34352136417 , 24290628608 ] , [ 0 , -1 , 1 ] ] , [ 1 , [ 0 , 1 , 1 ] ] , [ 1 , [ 0 , 2 , 1 ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , -48581257216 , 34352136417 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ [ 0 , -2 , 1 ] ] , [ 0 , 34352136417 , 12145314304 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 48581257216 , 34352136417 ] , [ 0 , 1 , 1 ] ] , [ 0 , 137203125122 , 1180069276412177597889 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , -48581257216 , 34352136417 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ -1 , -1 , 1 ] , [ 1 , 1 , 1 ] , 1 , 0 , 1 ] ] , [ [ [ [ ] , [ [ 0 , 1 , 1 ] ] ] ] , [ [ [ [ 0 , [ [ 0 , -131057 , 92672 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] , [ [ 0 , -131057 , 92672 ] , [ 0 , 1 , 1 ] ] ] ] , [ [ [ [ 0 , [ [ 0 , -131057 , 92672 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] , [ 0 , [ [ 0 , 34352136417 , 24290628608 ] , [ 0 , -1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ [ 0 , 1 , 1 ] ] , [ 0 , 131057 , 46336 ] ] ] ] , [ [ 0 , 34352136417 , 24290628608 ] , [ 0 , -1 , 1 ] ] ] ] ] , [ [ [ 0 , [ [ 0 , -131057 , 92672 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 181 , 64 ] ] ] ] ] , [ 1 , [ 0 ] , [ 0 ] , 1 , [ [ 1 ] ] ] ] , [ ] ] ] ] ] , [ [ [ 0 , -65521 , 32768 ] , [ 0 , -181 , 64 ] , [ 0 , -1 , 1 ] ] , -1 , [ 1 , 0 , [ [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 1 , [ 0 , 1 , 1 ] ] , [ 1 , [ 0 , 2 , 1 ] ] , [ [ [ 0 , -131057 , 32768 ] , [ 0 , -181 , 64 ] ] ] , 3 , [ [ [ 0 ] , [ 1 ] , [ 2 ] ] , [ [ -1 ] , [ 0 ] , [ 1 ] ] , [ 1 , 0 , 0 ] , [ 1 , -1 , 1 ] , [ [ 0 , -1 , 1 ] , [ 2 , 0 , -2 ] , [ 0 , 1 , 1 ] ] , 2 ] , [ [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] , [ 1 , [ 0 , 1 , 1 ] ] , [ 1 , [ 0 , 2 , 1 ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ -1 , 1 , 1 ] , [ 1 , 1 , 1 ] , 1 , 0 , 1 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , -131057 , 92672 ] , [ 0 , -1 , 1 ] ] , [ 1 , [ 0 , 1 , 1 ] ] , [ 1 , [ 0 , 2 , 1 ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , -185344 , 131057 ] , [ 0 , -1 , 1 ] ] , [ [ 0 , -1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ [ 0 , -2 , 1 ] ] , [ 0 , 131057 , 46336 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 185344 , 131057 ] , [ 0 , -1 , 1 ] ] , [ 0 , 523838 , 17175937249 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 185344 , 131057 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ -1 , -1 , -1 ] , [ 1 , -1 , -1 ] , 0 , 1 , -1 ] , [ [ [ ] , 0 , [ ] ] , [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 34352136417 , 24290628608 ] , [ 0 , 1 , 1 ] ] , [ 1 , [ 0 , 1 , 1 ] ] , [ 1 , [ 0 , 2 , 1 ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 2 , 1 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ 0 , 2 , 1 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ [ 0 , -2 , 1 ] , [ 0 , 0 , 1 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 48581257216 , 34352136417 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] ] ] , [ 2 , 1 , 0 ] , [ [ 0 , 1 , 1 ] , [ [ 0 , 2 , 1 ] ] , [ 0 , 34352136417 , 12145314304 ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , -48581257216 , 34352136417 ] , [ 0 , 1 , 1 ] ] , [ 0 , 137203125122 , 1180069276412177597889 ] ] ] , [ [ [ 0 , 1 , 1 ] , [ [ 0 , 48581257216 , 34352136417 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ -1 , 1 , 1 ] , [ 1 , 1 , 1 ] , 1 , 0 , 1 ] ] , [ [ [ [ ] , [ [ 0 , 1 , 1 ] ] ] ] , [ [ [ [ 0 , [ [ 0 , -131057 , 92672 ] , [ 0 , -1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] ] , [ [ 0 , -131057 , 92672 ] , [ 0 , -1 , 1 ] ] ] ] , [ [ [ [ 0 , [ [ 0 , -131057 , 92672 ] , [ 0 , -1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 1 , 1 ] ] ] , [ 0 , [ [ 0 , 34352136417 , 24290628608 ] , [ 0 , 1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ [ 0 , 1 , 1 ] ] , [ 0 , 131057 , 46336 ] ] ] ] , [ [ 0 , 34352136417 , 24290628608 ] , [ 0 , 1 , 1 ] ] ] ] ] , [ [ [ 0 , [ [ 0 , -131057 , 92672 ] , [ 0 , -1 , 1 ] ] , [ [ 0 , 1 , 1 ] , [ ] , [ 0 , 181 , 64 ] ] ] ] ] , [ 1 , [ 0 ] , [ 0 ] , 1 , [ [ 1 ] ] ] ] , [ ] ] ] ] ] ]
\ No newline at end of file
diff --git a/conformance/HexRCF/BoundedSource.lean b/conformance/HexRCF/BoundedSource.lean
new file mode 100644
index 0000000000..2d0a62462b
--- /dev/null
+++ b/conformance/HexRCF/BoundedSource.lean
@@ -0,0 +1,112 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+import HexRCF.RealCoefficients.SourceBuild
+import HexRCF.RealCoefficients.SourceIdentity
+import HexRealClosure.NumberFieldTower
+import HexSignDet.Codec.Bytes
+import HexRCF.BoundedSource.Positive
+import HexRCF.BoundedSource.Negative
+import HexRCF.BoundedSource.Cubic
+import HexRCF.SelectedRoot.KernelCheck
+import KernelReplay.AxiomClosure
+
+/-! Native bounded-source production and exact frozen-byte controls.
+Ordinary proof authentication is checked separately in `BoundedSource.Quote`. -/
+namespace Hex.RCF.BoundedSourceTests
+open Hex Hex.RealClosure Hex.SignDet Hex.RCF.RealCoefficients
+
+def registry : BaseContext.Registry := fun _ => none
+abbrev base := NumberField.base registry
+def poly (values : List Rat) : base.Poly :=
+ DensePoly.ofCoeffs (values.toArray.map fun value => ⟨value⟩)
+def margin (square : DyadicSquare) : base.Poly :=
+ DensePoly.ofCoeffs ((SourceIdentity.margin square).coeffs.map fun value => ⟨value⟩)
+
+def propose (polynomial : base.Poly) (square : DyadicSquare) :=
+ let center := square.re.toRat
+ let radius := 2 * square.halfWidth.toRat
+ SourceBuild.buildOn polynomial (margin square)
+ (.finite ⟨center-radius⟩) (.finite ⟨center+radius⟩)
+
+open Lean in
+run_meta do
+ unless Hex.RCF.SelectedRootTests.KernelCheck.producers.contains ``SourceBuild.buildOn do
+ throwError "bounded source producer is missing from the kernel guard"
+ let roots := #[``ScalarPacket.buildParts_sign, ``SourceBuild.select_single,
+ ``SourceBuild.buildOn_success, ``ScalarPacket.buildParts_poly,
+ ``ScalarPacket.read_checked, ``ScalarPacket.buildParts_accepted, ``ScalarPacket.buildParts_checks,
+ ``SourceBuild.select_checked, ``SourceBuild.buildOn_checked, ``SourceBuild.buildOn_checks,
+ ``SourceBuild.buildOn_identify]
+ let axioms ← Algebraic.KernelReplay.AxiomClosure.collect roots
+ unless axioms.all (fun name => [``propext, ``Classical.choice, ``Quot.sound].contains name) do
+ throwError "bounded source progress has inadmissible dependencies: {axioms}"
+ let names := (← (← getEnv).getLocalConstantInfos).map (·.name)
+ for name in roots do
+ let .thmInfo info ← getConstInfo name | throwError "progress declaration is not a theorem: {name}"
+ let declaration := Declaration.thmDecl {info with name := ← mkFreshUserName `__sourceProgress}
+ let options := (← getOptions).setBool `debug.skipKernelTC false
+ let _ ← ofExceptKernelException <| (← getEnv).addDeclCore
+ (Core.getMaxHeartbeats options).toUSize (maxRecDepth.get options).toUSize
+ declaration none (doCheck := true)
+ unless (← (← getEnv).getLocalConstantInfos).map (·.name) == names do
+ throwError "source progress audit retained copied declarations"
+ logInfo m!"bounded source progress: {roots.size} actual theorem bodies rechecked; full axioms={axioms}"
+
+private def descriptorError (polynomial : base.Poly) (lower upper : Rat)
+ (expected : DescriptorError) : IO Unit := do
+ match SourceBuild.buildOn polynomial (poly [1]) (.finite ⟨lower⟩) (.finite ⟨upper⟩) with
+ | .error (.descriptor error) =>
+ unless error == expected do
+ throw (IO.userError s!"wrong bounded-source diagnostic: {repr error}, expected {repr expected}")
+ | _ => throw (IO.userError "bounded-source failure was swallowed or retried")
+
+private def validate (source : SourceBuild.Result base) (proposal : ScalarPacket.Proposal) : IO Unit := do
+ let .ok graph := Codec.readGraph base.codec Tower.Signature.codec base.signature
+ source.root.raw.head source.root.raw.lower source.root.raw.upper proposal.evidence
+ | throw (IO.userError "bounded scalar graph did not decode")
+ unless (graph.validate? base.sign base.signature source.root.raw.head
+ source.root.raw.lower source.root.raw.upper).isSome do
+ throw (IO.userError "bounded scalar graph did not validate")
+
+#eval (show IO Unit from do
+ let quadratic := poly [-2,0,1]
+ let square : DyadicSquare := ⟨Dyadic.ofInt 181 >>> (7 : Int),0,8⟩
+ let cubic : DyadicSquare := ⟨Dyadic.ofInt 1290 >>> (10 : Int),0,12⟩
+ let _ : Hashable base.Value := ⟨fun value => hash (base.codec.encode value)⟩
+ let _ : Hashable Tower.Signature := ⟨fun value => hash (Tower.Signature.codec.encode value)⟩
+ let mut packets := #[]
+ for (polynomial,window) in [(quadratic,square),(quadratic,{square with re := -square.re}),
+ (poly [-2,0,0,1],cubic)] do
+ let .ok source := propose polynomial window
+ | throw (IO.userError "bounded source refused a valid selected root")
+ unless source.root.raw.indices.isEmpty && source.root.raw.signs.isEmpty do
+ throw (IO.userError "bounded source unexpectedly retained derivative queries")
+ validate source source.equation
+ validate source source.enclosure
+ packets := packets.push <| Codec.Json.arr #[
+ Codec.descriptor base.codec Tower.Signature.codec source.root.raw,
+ Codec.graph base.codec Tower.Signature.codec (Dag.encode source.root.evidence),
+ source.equation.packet,source.enclosure.packet]
+ let frozen := Codec.Json.arr #[BoundedSource.Positive.packet,
+ BoundedSource.Negative.packet,BoundedSource.Cubic.packet]
+ unless (Codec.Json.arr packets).writeBytes == frozen.writeBytes do
+ throw (IO.userError "bounded source proposals differ from frozen quotation inputs")
+ descriptorError quadratic (-2) 2 .ambiguous
+ descriptorError quadratic 2 3 .absent
+ descriptorError (poly [0,1]) 0 1 .domain
+ descriptorError quadratic 1 1 .domain
+ descriptorError quadratic 2 (-2) .domain
+ descriptorError (poly [0,0,1]) (-1) 1 .domain
+ descriptorError (poly []) (-1) 1 .domain
+ descriptorError (poly [1]) (-1) 1 .malformed
+ for window in [poly [],margin {square with re := -square.re}] do
+ match SourceBuild.buildOn quadratic window (.finite ⟨1⟩) (.finite ⟨2⟩) with
+ | .error .unselected => pure ()
+ | _ => throw (IO.userError "bounded source erased a zero/wrong-conjugate window")
+ if let some path ← IO.getEnv "HEX_RCF_BOUNDED_SOURCE_OUTPUT" then
+ IO.FS.writeBinFile path (Codec.Json.arr packets).writeBytes
+ IO.println s!"bounded sources: {(Codec.Json.arr packets).writeBytes.size} frozen bytes; six scalar graphs; endpoint/equal/reversed/repeated/zero/constant/absent/ambiguous and wrong-conjugate refusals passed")
+end Hex.RCF.BoundedSourceTests
diff --git a/conformance/HexRCF/BoundedSource/Cubic.lean b/conformance/HexRCF/BoundedSource/Cubic.lean
new file mode 100644
index 0000000000..f4d6a750bb
--- /dev/null
+++ b/conformance/HexRCF/BoundedSource/Cubic.lean
@@ -0,0 +1,177 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+module
+public import HexSignDet.Codec.Json
+/-! Shared constructor data from `conformance-fixtures/HexRCF/bounded-source.json`.
+The descriptor reader checks this supplied replay independently of its producer. -/
+public section
+
+namespace Hex.RCF.RealCoefficients.BoundedSource.Cubic
+open Hex.SignDet
+@[expose] def j0 : Codec.Json := .array .nil
+@[expose] def j1 : Codec.Json := .array (.cons (j0) (.cons (.number (0)) (.cons (j0) .nil)))
+@[expose] def j2 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-2)) (.cons (.number (1)) .nil)))
+@[expose] def j3 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (0)) (.cons (.number (1)) .nil)))
+@[expose] def j4 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (1)) (.cons (.number (1)) .nil)))
+@[expose] def j5 : Codec.Json := .array (.cons (j2) (.cons (j3) (.cons (j3) (.cons (j4) .nil))))
+@[expose] def j6 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (2579)) (.cons (.number (2048)) .nil)))
+@[expose] def j7 : Codec.Json := .array (.cons (.number (1)) (.cons (j6) .nil))
+@[expose] def j8 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (2581)) (.cons (.number (2048)) .nil)))
+@[expose] def j9 : Codec.Json := .array (.cons (.number (1)) (.cons (j8) .nil))
+@[expose] def j10 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j7) (.cons (j9) (.cons (j0) (.cons (j0) .nil))))))
+@[expose] def subject : Codec.Json := j10
+@[expose] def j11 : Codec.Json := .array (.cons (j0) .nil)
+@[expose] def j12 : Codec.Json := .array (.cons (.number (1)) .nil)
+@[expose] def j13 : Codec.Json := .array (.cons (j12) .nil)
+@[expose] def j14 : Codec.Json := .array (.cons (j11) (.cons (j11) (.cons (j12) (.cons (j12) (.cons (j13) (.cons (.number (1)) .nil))))))
+@[expose] def j15 : Codec.Json := .array (.cons (j4) .nil)
+@[expose] def j16 : Codec.Json := .array (.cons (j3) (.cons (j3) (.cons (j4) .nil)))
+@[expose] def j17 : Codec.Json := .array (.cons (j5) (.cons (j16) (.cons (j15) .nil)))
+@[expose] def j18 : Codec.Json := .array (.cons (.number (3)) (.cons (.number (2)) (.cons (.number (0)) .nil)))
+@[expose] def j19 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (3)) (.cons (.number (1)) .nil)))
+@[expose] def j20 : Codec.Json := .array (.cons (j4) (.cons (j0) (.cons (j19) .nil)))
+@[expose] def j21 : Codec.Json := .array (.cons (j3) (.cons (j4) .nil))
+@[expose] def j22 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (2)) (.cons (.number (1)) .nil)))
+@[expose] def j23 : Codec.Json := .array (.cons (j4) (.cons (j21) (.cons (j22) .nil)))
+@[expose] def j24 : Codec.Json := .array (.cons (j23) .nil)
+@[expose] def j25 : Codec.Json := .array (.cons (j4) (.cons (j16) .nil))
+@[expose] def j26 : Codec.Json := .array (.cons (j25) .nil)
+@[expose] def j27 : Codec.Json := .array (.cons (j17) (.cons (j18) (.cons (j20) (.cons (j24) (.cons (j26) .nil)))))
+@[expose] def j28 : Codec.Json := .array (.cons (.number (-1)) (.cons (.number (1)) (.cons (.number (1)) .nil)))
+@[expose] def j29 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (1)) (.cons (.number (1)) .nil)))
+@[expose] def j30 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j15) (.cons (j7) (.cons (j9) (.cons (j27) (.cons (j27) (.cons (j28) (.cons (j29) (.cons (.number (1)) (.cons (.number (0)) (.cons (.number (1)) .nil))))))))))))
+@[expose] def j31 : Codec.Json := .array (.cons (j30) .nil)
+@[expose] def j32 : Codec.Json := .array (.cons (j0) (.cons (j15) .nil))
+@[expose] def j33 : Codec.Json := .array (.cons (j32) .nil)
+@[expose] def j34 : Codec.Json := .array (.cons (j33) .nil)
+@[expose] def j35 : Codec.Json := .array (.cons (.number (0)) .nil)
+@[expose] def j36 : Codec.Json := .array (.cons (.number (1)) (.cons (j35) (.cons (j35) (.cons (.number (1)) (.cons (j13) .nil)))))
+@[expose] def j37 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j7) (.cons (j9) (.cons (j0) (.cons (.number (1)) (.cons (j14) (.cons (j31) (.cons (j34) (.cons (j11) (.cons (j36) .nil)))))))))))
+@[expose] def j38 : Codec.Json := .array (.cons (j37) (.cons (j0) .nil))
+@[expose] def j39 : Codec.Json := .array (.cons (j38) .nil)
+@[expose] def j40 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (0)) (.cons (j39) .nil)))
+@[expose] def graph : Codec.Json := j40
+@[expose] def equation : Codec.Json := j5
+@[expose] def j41 : Codec.Json := .array (.cons (.number (2)) .nil)
+@[expose] def j42 : Codec.Json := .array (.cons (j35) (.cons (j12) (.cons (j41) .nil)))
+@[expose] def j43 : Codec.Json := .array (.cons (.number (-1)) .nil)
+@[expose] def j44 : Codec.Json := .array (.cons (j43) (.cons (j35) (.cons (j12) .nil)))
+@[expose] def j45 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (1)) (.cons (.number (0)) .nil)))
+@[expose] def j46 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (0)) (.cons (.number (0)) .nil)))
+@[expose] def j47 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-1)) (.cons (.number (1)) .nil)))
+@[expose] def j48 : Codec.Json := .array (.cons (.number (2)) (.cons (.number (0)) (.cons (.number (-2)) .nil)))
+@[expose] def j49 : Codec.Json := .array (.cons (j47) (.cons (j48) (.cons (j4) .nil)))
+@[expose] def j50 : Codec.Json := .array (.cons (j42) (.cons (j44) (.cons (j45) (.cons (j46) (.cons (j49) (.cons (.number (2)) .nil))))))
+@[expose] def j51 : Codec.Json := .array (.cons (j5) .nil)
+@[expose] def j52 : Codec.Json := .array (.cons (.number (3)) .nil)
+@[expose] def j53 : Codec.Json := .array (.cons (j4) (.cons (j0) (.cons (j4) .nil)))
+@[expose] def j54 : Codec.Json := .array (.cons (j51) (.cons (j52) (.cons (j53) (.cons (j0) (.cons (j0) .nil)))))
+@[expose] def j55 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j0) (.cons (j7) (.cons (j9) (.cons (j27) (.cons (j54) (.cons (j43) (.cons (j12) (.cons (.number (0)) (.cons (.number (0)) (.cons (.number (0)) .nil))))))))))))
+@[expose] def j56 : Codec.Json := .array (.cons (j30) (.cons (j55) (.cons (j55) .nil)))
+@[expose] def j57 : Codec.Json := .array (.cons (.number (0)) (.cons (j0) (.cons (j53) .nil)))
+@[expose] def j58 : Codec.Json := .array (.cons (j57) .nil)
+@[expose] def j59 : Codec.Json := .array (.cons (j58) (.cons (j0) .nil))
+@[expose] def j60 : Codec.Json := .array (.cons (j59) .nil)
+@[expose] def j61 : Codec.Json := .array (.cons (j57) (.cons (j57) .nil))
+@[expose] def j62 : Codec.Json := .array (.cons (j61) (.cons (j0) .nil))
+@[expose] def j63 : Codec.Json := .array (.cons (j62) .nil)
+@[expose] def j64 : Codec.Json := .array (.cons (j33) (.cons (j60) (.cons (j63) .nil)))
+@[expose] def j65 : Codec.Json := .array (.cons (j58) .nil)
+@[expose] def j66 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j7) (.cons (j9) (.cons (j11) (.cons (.number (3)) (.cons (j50) (.cons (j56) (.cons (j64) (.cons (j65) (.cons (j36) .nil)))))))))))
+@[expose] def j67 : Codec.Json := .array (.cons (j66) (.cons (j0) .nil))
+@[expose] def j68 : Codec.Json := .array (.cons (j67) .nil)
+@[expose] def j69 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (0)) (.cons (j68) .nil)))
+@[expose] def equationGraph : Codec.Json := j69
+@[expose] def j70 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-13312799)) (.cons (.number (8388608)) .nil)))
+@[expose] def j71 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (645)) (.cons (.number (256)) .nil)))
+@[expose] def j72 : Codec.Json := .array (.cons (j70) (.cons (j71) (.cons (j47) .nil)))
+@[expose] def margin : Codec.Json := j72
+@[expose] def j73 : Codec.Json := .array (.cons (j72) .nil)
+@[expose] def j74 : Codec.Json := .array (.cons (j42) (.cons (j44) (.cons (j3) (.cons (j29) (.cons (j49) (.cons (.number (2)) .nil))))))
+@[expose] def j75 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (42270720)) (.cons (.number (13312799)) .nil)))
+@[expose] def j76 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-16777216)) (.cons (.number (13312799)) .nil)))
+@[expose] def j77 : Codec.Json := .array (.cons (j75) (.cons (j76) (.cons (j47) .nil)))
+@[expose] def j78 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (531823117172161)) (.cons (.number (422108287827968)) .nil)))
+@[expose] def j79 : Codec.Json := .array (.cons (j78) (.cons (j47) .nil))
+@[expose] def j80 : Codec.Json := .array (.cons (j47) .nil)
+@[expose] def j81 : Codec.Json := .array (.cons (j5) (.cons (j77) (.cons (j79) (.cons (j80) .nil))))
+@[expose] def j82 : Codec.Json := .array (.cons (.number (3)) (.cons (.number (2)) (.cons (.number (1)) (.cons (.number (0)) .nil))))
+@[expose] def j83 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (1935)) (.cons (.number (256)) .nil)))
+@[expose] def j84 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-3)) (.cons (.number (1)) .nil)))
+@[expose] def j85 : Codec.Json := .array (.cons (j83) (.cons (j84) .nil))
+@[expose] def j86 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (39938397)) (.cons (.number (8388608)) .nil)))
+@[expose] def j87 : Codec.Json := .array (.cons (j4) (.cons (j85) (.cons (j86) .nil)))
+@[expose] def j88 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (16777216)) (.cons (.number (13312799)) .nil)))
+@[expose] def j89 : Codec.Json := .array (.cons (j88) (.cons (j47) .nil))
+@[expose] def j90 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (844216575655936)) (.cons (.number (177230617214401)) .nil)))
+@[expose] def j91 : Codec.Json := .array (.cons (j4) (.cons (j89) (.cons (j90) .nil)))
+@[expose] def j92 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (14161856182746417765727)) (.cons (.number (5619442792087884562432)) .nil)))
+@[expose] def j93 : Codec.Json := .array (.cons (j92) (.cons (j4) .nil))
+@[expose] def j94 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (16935998183659607946367)) (.cons (.number (178175406653058678027163009024)) .nil)))
+@[expose] def j95 : Codec.Json := .array (.cons (j4) (.cons (j93) (.cons (j94) .nil)))
+@[expose] def j96 : Codec.Json := .array (.cons (j91) (.cons (j95) .nil))
+@[expose] def j97 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-531823117172161)) (.cons (.number (422108287827968)) .nil)))
+@[expose] def j98 : Codec.Json := .array (.cons (j97) (.cons (j4) .nil))
+@[expose] def j99 : Codec.Json := .array (.cons (j4) (.cons (j98) .nil))
+@[expose] def j100 : Codec.Json := .array (.cons (j99) .nil)
+@[expose] def j101 : Codec.Json := .array (.cons (j81) (.cons (j82) (.cons (j87) (.cons (j96) (.cons (j100) .nil)))))
+@[expose] def j102 : Codec.Json := .array (.cons (.number (-1)) (.cons (.number (1)) (.cons (.number (1)) (.cons (.number (-1)) .nil))))
+@[expose] def j103 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (-1)) (.cons (.number (-1)) (.cons (.number (-1)) .nil))))
+@[expose] def j104 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j72) (.cons (j7) (.cons (j9) (.cons (j27) (.cons (j101) (.cons (j102) (.cons (j103) (.cons (.number (2)) (.cons (.number (1)) (.cons (.number (1)) .nil))))))))))))
+@[expose] def j105 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-531954382701119)) (.cons (.number (670055146717184)) .nil)))
+@[expose] def j106 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-6439271707)) (.cons (.number (10224230144)) .nil)))
+@[expose] def j107 : Codec.Json := .array (.cons (j105) (.cons (j106) (.cons (j4) .nil)))
+@[expose] def j108 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-844008221179904)) (.cons (.number (531954382701119)) .nil)))
+@[expose] def j109 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (1340110293434368)) (.cons (.number (531954382701119)) .nil)))
+@[expose] def j110 : Codec.Json := .array (.cons (j108) (.cons (j109) (.cons (j47) .nil)))
+@[expose] def j111 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (848507517748138632283156122497)) (.cons (.number (673460863138161280761781223424)) .nil)))
+@[expose] def j112 : Codec.Json := .array (.cons (j111) (.cons (j47) .nil))
+@[expose] def j113 : Codec.Json := .array (.cons (j5) (.cons (j110) (.cons (j112) (.cons (j80) .nil))))
+@[expose] def j114 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-19317815121)) (.cons (.number (10224230144)) .nil)))
+@[expose] def j115 : Codec.Json := .array (.cons (j114) (.cons (j19) .nil))
+@[expose] def j116 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (1595863148103357)) (.cons (.number (670055146717184)) .nil)))
+@[expose] def j117 : Codec.Json := .array (.cons (j4) (.cons (j115) (.cons (j116) .nil)))
+@[expose] def j118 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-1340110293434368)) (.cons (.number (531954382701119)) .nil)))
+@[expose] def j119 : Codec.Json := .array (.cons (j118) (.cons (j47) .nil))
+@[expose] def j120 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (1346921726276322561523562446848)) (.cons (.number (282975465274928573198483852161)) .nil)))
+@[expose] def j121 : Codec.Json := .array (.cons (j4) (.cons (j119) (.cons (j120) .nil)))
+@[expose] def j122 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-451144542095674201519953963846426420385261889)) (.cons (.number (358250457724023371626526318932137133553811456)) .nil)))
+@[expose] def j123 : Codec.Json := .array (.cons (j122) (.cons (j4) .nil))
+@[expose] def j124 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (860908980737602065149122892520026022839822591)) (.cons (.number (453549534178797199769117499790381448220762277801366206283776)) .nil)))
+@[expose] def j125 : Codec.Json := .array (.cons (j4) (.cons (j123) (.cons (j124) .nil)))
+@[expose] def j126 : Codec.Json := .array (.cons (j121) (.cons (j125) .nil))
+@[expose] def j127 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-848507517748138632283156122497)) (.cons (.number (673460863138161280761781223424)) .nil)))
+@[expose] def j128 : Codec.Json := .array (.cons (j127) (.cons (j4) .nil))
+@[expose] def j129 : Codec.Json := .array (.cons (j4) (.cons (j128) .nil))
+@[expose] def j130 : Codec.Json := .array (.cons (j129) .nil)
+@[expose] def j131 : Codec.Json := .array (.cons (j113) (.cons (j82) (.cons (j117) (.cons (j126) (.cons (j130) .nil)))))
+@[expose] def j132 : Codec.Json := .array (.cons (.number (-1)) (.cons (.number (-1)) (.cons (.number (1)) (.cons (.number (-1)) .nil))))
+@[expose] def j133 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j107) (.cons (j7) (.cons (j9) (.cons (j27) (.cons (j131) (.cons (j132) (.cons (j103) (.cons (.number (2)) (.cons (.number (1)) (.cons (.number (1)) .nil))))))))))))
+@[expose] def j134 : Codec.Json := .array (.cons (j30) (.cons (j104) (.cons (j133) .nil)))
+@[expose] def j135 : Codec.Json := .array (.cons (.number (0)) (.cons (j72) (.cons (j53) .nil)))
+@[expose] def j136 : Codec.Json := .array (.cons (j135) .nil)
+@[expose] def j137 : Codec.Json := .array (.cons (j136) (.cons (j72) .nil))
+@[expose] def j138 : Codec.Json := .array (.cons (j137) .nil)
+@[expose] def j139 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-645)) (.cons (.number (128)) .nil)))
+@[expose] def j140 : Codec.Json := .array (.cons (j139) (.cons (j4) .nil))
+@[expose] def j141 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (39938399)) (.cons (.number (4194304)) .nil)))
+@[expose] def j142 : Codec.Json := .array (.cons (j4) (.cons (j140) (.cons (j141) .nil)))
+@[expose] def j143 : Codec.Json := .array (.cons (.number (0)) (.cons (j107) (.cons (j142) .nil)))
+@[expose] def j144 : Codec.Json := .array (.cons (j135) (.cons (j143) .nil))
+@[expose] def j145 : Codec.Json := .array (.cons (j144) (.cons (j107) .nil))
+@[expose] def j146 : Codec.Json := .array (.cons (j145) .nil)
+@[expose] def j147 : Codec.Json := .array (.cons (j33) (.cons (j138) (.cons (j146) .nil)))
+@[expose] def j148 : Codec.Json := .array (.cons (j136) .nil)
+@[expose] def j149 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j7) (.cons (j9) (.cons (j73) (.cons (.number (3)) (.cons (j74) (.cons (j134) (.cons (j147) (.cons (j148) (.cons (j36) .nil)))))))))))
+@[expose] def j150 : Codec.Json := .array (.cons (j149) (.cons (j0) .nil))
+@[expose] def j151 : Codec.Json := .array (.cons (j150) .nil)
+@[expose] def j152 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (0)) (.cons (j151) .nil)))
+@[expose] def marginGraph : Codec.Json := j152
+@[expose] def j153 : Codec.Json := .array (.cons (j5) (.cons (.number (0)) (.cons (j69) .nil)))
+@[expose] def j154 : Codec.Json := .array (.cons (j72) (.cons (.number (1)) (.cons (j152) .nil)))
+@[expose] def j155 : Codec.Json := .array (.cons (j10) (.cons (j40) (.cons (j153) (.cons (j154) .nil))))
+@[expose] def packet : Codec.Json := j155
+end Hex.RCF.RealCoefficients.BoundedSource.Cubic
diff --git a/conformance/HexRCF/BoundedSource/Inputs.lean b/conformance/HexRCF/BoundedSource/Inputs.lean
new file mode 100644
index 0000000000..cdd7eb0d02
--- /dev/null
+++ b/conformance/HexRCF/BoundedSource/Inputs.lean
@@ -0,0 +1,65 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+import HexRCF.BoundedSource.Positive
+import HexRCF.BoundedSource.Negative
+import HexRCF.BoundedSource.Cubic
+import HexRCF.SourceIdentityCases
+import HexRCF.RealCoefficients.CubeTwo
+import HexRCF.RealCoefficients.ScalarPacket
+
+namespace Hex.RCF.BoundedSourceInputs
+open Hex Hex.RealClosure Hex.SignDet Hex.RCF.RealCoefficients
+open Hex.RCF.SelectedRootTests Hex.RCF.SourceIdentityCases
+set_option maxRecDepth 32768
+set_option maxHeartbeats 12000000
+
+theorem positiveWitness : atomWitness SquareTwo.polynomial SquareTwo.square := by decide +kernel
+theorem positivePrecision : (mahlerPrec SquareTwo.polynomial : Int) ≤ SquareTwo.square.prec := by decide +kernel
+theorem cubicWitness : atomWitness CubeTwo.polynomial CubeTwo.square := by decide +kernel
+theorem cubicPrecision : (mahlerPrec CubeTwo.polynomial : Int) ≤ CubeTwo.square.prec := by decide +kernel
+theorem cubicSelected :
+ (Field.literalRep CubeTwo.polynomial CubeTwo.square cubicWitness cubicPrecision).root.re =
+ (2 : ℝ) ^ (1 / 3 : ℝ) :=
+ (CubeTwo.coordinate_value _ _ _).symm.trans (CubeTwo.value _ _ _ (by decide +kernel))
+
+private theorem value (literal : Codec.Json) (q : DensePoly Rat)
+ (same : ScalarPacket.key Data.base.codec literal = embed q) :
+ HexPolyTheory.Interpret.interpret Data.rational.value Data.rational.zero_iff
+ (ScalarPacket.key Data.base.codec literal) = LiteralSign.realPoly q := by
+ rw [same]
+ exact embed_value q
+
+theorem positiveEquation :
+ HexPolyTheory.Interpret.interpret Data.rational.value Data.rational.zero_iff
+ (ScalarPacket.key Data.base.codec BoundedSource.Positive.equation) =
+ LiteralSign.realPoly (ZPoly.toRatPoly SquareTwo.polynomial) :=
+ value _ _ (by decide +kernel)
+theorem positiveMargin :
+ HexPolyTheory.Interpret.interpret Data.rational.value Data.rational.zero_iff
+ (ScalarPacket.key Data.base.codec BoundedSource.Positive.margin) =
+ LiteralSign.realPoly (SourceIdentity.margin SquareTwo.square) :=
+ value _ _ (by decide +kernel)
+theorem negativeEquation :
+ HexPolyTheory.Interpret.interpret Data.rational.value Data.rational.zero_iff
+ (ScalarPacket.key Data.base.codec BoundedSource.Negative.equation) =
+ LiteralSign.realPoly (ZPoly.toRatPoly SquareTwo.polynomial) :=
+ value _ _ (by decide +kernel)
+theorem negativeMargin :
+ HexPolyTheory.Interpret.interpret Data.rational.value Data.rational.zero_iff
+ (ScalarPacket.key Data.base.codec BoundedSource.Negative.margin) =
+ LiteralSign.realPoly (SourceIdentity.margin negativeSquare) :=
+ value _ _ (by decide +kernel)
+theorem cubicEquation :
+ HexPolyTheory.Interpret.interpret Data.rational.value Data.rational.zero_iff
+ (ScalarPacket.key Data.base.codec BoundedSource.Cubic.equation) =
+ LiteralSign.realPoly (ZPoly.toRatPoly CubeTwo.polynomial) :=
+ value _ _ (by decide +kernel)
+theorem cubicMargin :
+ HexPolyTheory.Interpret.interpret Data.rational.value Data.rational.zero_iff
+ (ScalarPacket.key Data.base.codec BoundedSource.Cubic.margin) =
+ LiteralSign.realPoly (SourceIdentity.margin CubeTwo.square) :=
+ value _ _ (by decide +kernel)
+end Hex.RCF.BoundedSourceInputs
diff --git a/conformance/HexRCF/BoundedSource/Negative.lean b/conformance/HexRCF/BoundedSource/Negative.lean
new file mode 100644
index 0000000000..ea735c2388
--- /dev/null
+++ b/conformance/HexRCF/BoundedSource/Negative.lean
@@ -0,0 +1,158 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+module
+public import HexSignDet.Codec.Json
+/-! Shared constructor data from `conformance-fixtures/HexRCF/bounded-source.json`.
+The descriptor reader checks this supplied replay independently of its producer. -/
+public section
+
+namespace Hex.RCF.RealCoefficients.BoundedSource.Negative
+open Hex.SignDet
+@[expose] def j0 : Codec.Json := .array .nil
+@[expose] def j1 : Codec.Json := .array (.cons (j0) (.cons (.number (0)) (.cons (j0) .nil)))
+@[expose] def j2 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-2)) (.cons (.number (1)) .nil)))
+@[expose] def j3 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (0)) (.cons (.number (1)) .nil)))
+@[expose] def j4 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (1)) (.cons (.number (1)) .nil)))
+@[expose] def j5 : Codec.Json := .array (.cons (j2) (.cons (j3) (.cons (j4) .nil)))
+@[expose] def j6 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-91)) (.cons (.number (64)) .nil)))
+@[expose] def j7 : Codec.Json := .array (.cons (.number (1)) (.cons (j6) .nil))
+@[expose] def j8 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-45)) (.cons (.number (32)) .nil)))
+@[expose] def j9 : Codec.Json := .array (.cons (.number (1)) (.cons (j8) .nil))
+@[expose] def j10 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j7) (.cons (j9) (.cons (j0) (.cons (j0) .nil))))))
+@[expose] def subject : Codec.Json := j10
+@[expose] def j11 : Codec.Json := .array (.cons (j0) .nil)
+@[expose] def j12 : Codec.Json := .array (.cons (.number (1)) .nil)
+@[expose] def j13 : Codec.Json := .array (.cons (j12) .nil)
+@[expose] def j14 : Codec.Json := .array (.cons (j11) (.cons (j11) (.cons (j12) (.cons (j12) (.cons (j13) (.cons (.number (1)) .nil))))))
+@[expose] def j15 : Codec.Json := .array (.cons (j4) .nil)
+@[expose] def j16 : Codec.Json := .array (.cons (j3) (.cons (j4) .nil))
+@[expose] def j17 : Codec.Json := .array (.cons (j5) (.cons (j16) (.cons (j15) .nil)))
+@[expose] def j18 : Codec.Json := .array (.cons (.number (2)) (.cons (.number (1)) (.cons (.number (0)) .nil)))
+@[expose] def j19 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (2)) (.cons (.number (1)) .nil)))
+@[expose] def j20 : Codec.Json := .array (.cons (j4) (.cons (j0) (.cons (j19) .nil)))
+@[expose] def j21 : Codec.Json := .array (.cons (j4) (.cons (j16) (.cons (j19) .nil)))
+@[expose] def j22 : Codec.Json := .array (.cons (j21) .nil)
+@[expose] def j23 : Codec.Json := .array (.cons (j4) (.cons (j16) .nil))
+@[expose] def j24 : Codec.Json := .array (.cons (j23) .nil)
+@[expose] def j25 : Codec.Json := .array (.cons (j17) (.cons (j18) (.cons (j20) (.cons (j22) (.cons (j24) .nil)))))
+@[expose] def j26 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (-1)) (.cons (.number (1)) .nil)))
+@[expose] def j27 : Codec.Json := .array (.cons (.number (-1)) (.cons (.number (-1)) (.cons (.number (1)) .nil)))
+@[expose] def j28 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j15) (.cons (j7) (.cons (j9) (.cons (j25) (.cons (j25) (.cons (j26) (.cons (j27) (.cons (.number (2)) (.cons (.number (1)) (.cons (.number (1)) .nil))))))))))))
+@[expose] def j29 : Codec.Json := .array (.cons (j28) .nil)
+@[expose] def j30 : Codec.Json := .array (.cons (j0) (.cons (j15) .nil))
+@[expose] def j31 : Codec.Json := .array (.cons (j30) .nil)
+@[expose] def j32 : Codec.Json := .array (.cons (j31) .nil)
+@[expose] def j33 : Codec.Json := .array (.cons (.number (0)) .nil)
+@[expose] def j34 : Codec.Json := .array (.cons (.number (1)) (.cons (j33) (.cons (j33) (.cons (.number (1)) (.cons (j13) .nil)))))
+@[expose] def j35 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j7) (.cons (j9) (.cons (j0) (.cons (.number (1)) (.cons (j14) (.cons (j29) (.cons (j32) (.cons (j11) (.cons (j34) .nil)))))))))))
+@[expose] def j36 : Codec.Json := .array (.cons (j35) (.cons (j0) .nil))
+@[expose] def j37 : Codec.Json := .array (.cons (j36) .nil)
+@[expose] def j38 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (0)) (.cons (j37) .nil)))
+@[expose] def graph : Codec.Json := j38
+@[expose] def equation : Codec.Json := j5
+@[expose] def j39 : Codec.Json := .array (.cons (.number (2)) .nil)
+@[expose] def j40 : Codec.Json := .array (.cons (j33) (.cons (j12) (.cons (j39) .nil)))
+@[expose] def j41 : Codec.Json := .array (.cons (.number (-1)) .nil)
+@[expose] def j42 : Codec.Json := .array (.cons (j41) (.cons (j33) (.cons (j12) .nil)))
+@[expose] def j43 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (1)) (.cons (.number (0)) .nil)))
+@[expose] def j44 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (0)) (.cons (.number (0)) .nil)))
+@[expose] def j45 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-1)) (.cons (.number (1)) .nil)))
+@[expose] def j46 : Codec.Json := .array (.cons (.number (2)) (.cons (.number (0)) (.cons (.number (-2)) .nil)))
+@[expose] def j47 : Codec.Json := .array (.cons (j45) (.cons (j46) (.cons (j4) .nil)))
+@[expose] def j48 : Codec.Json := .array (.cons (j40) (.cons (j42) (.cons (j43) (.cons (j44) (.cons (j47) (.cons (.number (2)) .nil))))))
+@[expose] def j49 : Codec.Json := .array (.cons (j5) .nil)
+@[expose] def j50 : Codec.Json := .array (.cons (j4) (.cons (j0) (.cons (j4) .nil)))
+@[expose] def j51 : Codec.Json := .array (.cons (j49) (.cons (j39) (.cons (j50) (.cons (j0) (.cons (j0) .nil)))))
+@[expose] def j52 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j0) (.cons (j7) (.cons (j9) (.cons (j25) (.cons (j51) (.cons (j12) (.cons (j41) (.cons (.number (0)) (.cons (.number (0)) (.cons (.number (0)) .nil))))))))))))
+@[expose] def j53 : Codec.Json := .array (.cons (j28) (.cons (j52) (.cons (j52) .nil)))
+@[expose] def j54 : Codec.Json := .array (.cons (.number (0)) (.cons (j0) (.cons (j50) .nil)))
+@[expose] def j55 : Codec.Json := .array (.cons (j54) .nil)
+@[expose] def j56 : Codec.Json := .array (.cons (j55) (.cons (j0) .nil))
+@[expose] def j57 : Codec.Json := .array (.cons (j56) .nil)
+@[expose] def j58 : Codec.Json := .array (.cons (j54) (.cons (j54) .nil))
+@[expose] def j59 : Codec.Json := .array (.cons (j58) (.cons (j0) .nil))
+@[expose] def j60 : Codec.Json := .array (.cons (j59) .nil)
+@[expose] def j61 : Codec.Json := .array (.cons (j31) (.cons (j57) (.cons (j60) .nil)))
+@[expose] def j62 : Codec.Json := .array (.cons (j55) .nil)
+@[expose] def j63 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j7) (.cons (j9) (.cons (j11) (.cons (.number (3)) (.cons (j48) (.cons (j53) (.cons (j61) (.cons (j62) (.cons (j34) .nil)))))))))))
+@[expose] def j64 : Codec.Json := .array (.cons (j63) (.cons (j0) .nil))
+@[expose] def j65 : Codec.Json := .array (.cons (j64) .nil)
+@[expose] def j66 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (0)) (.cons (j65) .nil)))
+@[expose] def equationGraph : Codec.Json := j66
+@[expose] def j67 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-65521)) (.cons (.number (32768)) .nil)))
+@[expose] def j68 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-181)) (.cons (.number (64)) .nil)))
+@[expose] def j69 : Codec.Json := .array (.cons (j67) (.cons (j68) (.cons (j45) .nil)))
+@[expose] def margin : Codec.Json := j69
+@[expose] def j70 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-131057)) (.cons (.number (32768)) .nil)))
+@[expose] def j71 : Codec.Json := .array (.cons (j70) (.cons (j68) .nil))
+@[expose] def j72 : Codec.Json := .array (.cons (j71) .nil)
+@[expose] def j73 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (1)) (.cons (.number (1)) .nil)))
+@[expose] def j74 : Codec.Json := .array (.cons (j40) (.cons (j42) (.cons (j3) (.cons (j73) (.cons (j47) (.cons (.number (2)) .nil))))))
+@[expose] def j75 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-131057)) (.cons (.number (92672)) .nil)))
+@[expose] def j76 : Codec.Json := .array (.cons (j75) (.cons (j45) .nil))
+@[expose] def j77 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-185344)) (.cons (.number (131057)) .nil)))
+@[expose] def j78 : Codec.Json := .array (.cons (j77) (.cons (j45) .nil))
+@[expose] def j79 : Codec.Json := .array (.cons (j45) .nil)
+@[expose] def j80 : Codec.Json := .array (.cons (j5) (.cons (j78) (.cons (j79) .nil)))
+@[expose] def j81 : Codec.Json := .array (.cons (j2) .nil)
+@[expose] def j82 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (131057)) (.cons (.number (46336)) .nil)))
+@[expose] def j83 : Codec.Json := .array (.cons (j4) (.cons (j81) (.cons (j82) .nil)))
+@[expose] def j84 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (185344)) (.cons (.number (131057)) .nil)))
+@[expose] def j85 : Codec.Json := .array (.cons (j84) (.cons (j45) .nil))
+@[expose] def j86 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (523838)) (.cons (.number (17175937249)) .nil)))
+@[expose] def j87 : Codec.Json := .array (.cons (j4) (.cons (j85) (.cons (j86) .nil)))
+@[expose] def j88 : Codec.Json := .array (.cons (j87) .nil)
+@[expose] def j89 : Codec.Json := .array (.cons (j84) (.cons (j4) .nil))
+@[expose] def j90 : Codec.Json := .array (.cons (j4) (.cons (j89) .nil))
+@[expose] def j91 : Codec.Json := .array (.cons (j90) .nil)
+@[expose] def j92 : Codec.Json := .array (.cons (j80) (.cons (j18) (.cons (j83) (.cons (j88) (.cons (j91) .nil)))))
+@[expose] def j93 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (1)) (.cons (.number (-1)) .nil)))
+@[expose] def j94 : Codec.Json := .array (.cons (.number (-1)) (.cons (.number (-1)) (.cons (.number (-1)) .nil)))
+@[expose] def j95 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j76) (.cons (j7) (.cons (j9) (.cons (j25) (.cons (j92) (.cons (j93) (.cons (j94) (.cons (.number (1)) (.cons (.number (0)) (.cons (.number (1)) .nil))))))))))))
+@[expose] def j96 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (34352136417)) (.cons (.number (24290628608)) .nil)))
+@[expose] def j97 : Codec.Json := .array (.cons (j96) (.cons (j4) .nil))
+@[expose] def j98 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (48581257216)) (.cons (.number (34352136417)) .nil)))
+@[expose] def j99 : Codec.Json := .array (.cons (j98) (.cons (j4) .nil))
+@[expose] def j100 : Codec.Json := .array (.cons (j5) (.cons (j99) (.cons (j15) .nil)))
+@[expose] def j101 : Codec.Json := .array (.cons (j19) .nil)
+@[expose] def j102 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (34352136417)) (.cons (.number (12145314304)) .nil)))
+@[expose] def j103 : Codec.Json := .array (.cons (j4) (.cons (j101) (.cons (j102) .nil)))
+@[expose] def j104 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-48581257216)) (.cons (.number (34352136417)) .nil)))
+@[expose] def j105 : Codec.Json := .array (.cons (j104) (.cons (j4) .nil))
+@[expose] def j106 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (137203125122)) (.cons (.number (1180069276412177597889)) .nil)))
+@[expose] def j107 : Codec.Json := .array (.cons (j4) (.cons (j105) (.cons (j106) .nil)))
+@[expose] def j108 : Codec.Json := .array (.cons (j107) .nil)
+@[expose] def j109 : Codec.Json := .array (.cons (j4) (.cons (j99) .nil))
+@[expose] def j110 : Codec.Json := .array (.cons (j109) .nil)
+@[expose] def j111 : Codec.Json := .array (.cons (j100) (.cons (j18) (.cons (j103) (.cons (j108) (.cons (j110) .nil)))))
+@[expose] def j112 : Codec.Json := .array (.cons (.number (-1)) (.cons (.number (1)) (.cons (.number (1)) .nil)))
+@[expose] def j113 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j97) (.cons (j7) (.cons (j9) (.cons (j25) (.cons (j111) (.cons (j26) (.cons (j112) (.cons (.number (2)) (.cons (.number (1)) (.cons (.number (1)) .nil))))))))))))
+@[expose] def j114 : Codec.Json := .array (.cons (j28) (.cons (j95) (.cons (j113) .nil)))
+@[expose] def j115 : Codec.Json := .array (.cons (.number (0)) (.cons (j76) (.cons (j50) .nil)))
+@[expose] def j116 : Codec.Json := .array (.cons (j115) .nil)
+@[expose] def j117 : Codec.Json := .array (.cons (j116) (.cons (j76) .nil))
+@[expose] def j118 : Codec.Json := .array (.cons (j117) .nil)
+@[expose] def j119 : Codec.Json := .array (.cons (j4) (.cons (j15) (.cons (j82) .nil)))
+@[expose] def j120 : Codec.Json := .array (.cons (.number (0)) (.cons (j97) (.cons (j119) .nil)))
+@[expose] def j121 : Codec.Json := .array (.cons (j115) (.cons (j120) .nil))
+@[expose] def j122 : Codec.Json := .array (.cons (j121) (.cons (j97) .nil))
+@[expose] def j123 : Codec.Json := .array (.cons (j122) .nil)
+@[expose] def j124 : Codec.Json := .array (.cons (j31) (.cons (j118) (.cons (j123) .nil)))
+@[expose] def j125 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (181)) (.cons (.number (64)) .nil)))
+@[expose] def j126 : Codec.Json := .array (.cons (j4) (.cons (j0) (.cons (j125) .nil)))
+@[expose] def j127 : Codec.Json := .array (.cons (.number (0)) (.cons (j76) (.cons (j126) .nil)))
+@[expose] def j128 : Codec.Json := .array (.cons (j127) .nil)
+@[expose] def j129 : Codec.Json := .array (.cons (j128) .nil)
+@[expose] def j130 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j7) (.cons (j9) (.cons (j72) (.cons (.number (3)) (.cons (j74) (.cons (j114) (.cons (j124) (.cons (j129) (.cons (j34) .nil)))))))))))
+@[expose] def j131 : Codec.Json := .array (.cons (j130) (.cons (j0) .nil))
+@[expose] def j132 : Codec.Json := .array (.cons (j131) .nil)
+@[expose] def j133 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (0)) (.cons (j132) .nil)))
+@[expose] def marginGraph : Codec.Json := j133
+@[expose] def j134 : Codec.Json := .array (.cons (j5) (.cons (.number (0)) (.cons (j66) .nil)))
+@[expose] def j135 : Codec.Json := .array (.cons (j69) (.cons (.number (1)) (.cons (j133) .nil)))
+@[expose] def j136 : Codec.Json := .array (.cons (j10) (.cons (j38) (.cons (j134) (.cons (j135) .nil))))
+@[expose] def packet : Codec.Json := j136
+end Hex.RCF.RealCoefficients.BoundedSource.Negative
diff --git a/conformance/HexRCF/BoundedSource/Positive.lean b/conformance/HexRCF/BoundedSource/Positive.lean
new file mode 100644
index 0000000000..5cbd6e8605
--- /dev/null
+++ b/conformance/HexRCF/BoundedSource/Positive.lean
@@ -0,0 +1,156 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+module
+public import HexSignDet.Codec.Json
+/-! Shared constructor data from `conformance-fixtures/HexRCF/bounded-source.json`.
+The descriptor reader checks this supplied replay independently of its producer. -/
+public section
+
+namespace Hex.RCF.RealCoefficients.BoundedSource.Positive
+open Hex.SignDet
+@[expose] def j0 : Codec.Json := .array .nil
+@[expose] def j1 : Codec.Json := .array (.cons (j0) (.cons (.number (0)) (.cons (j0) .nil)))
+@[expose] def j2 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-2)) (.cons (.number (1)) .nil)))
+@[expose] def j3 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (0)) (.cons (.number (1)) .nil)))
+@[expose] def j4 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (1)) (.cons (.number (1)) .nil)))
+@[expose] def j5 : Codec.Json := .array (.cons (j2) (.cons (j3) (.cons (j4) .nil)))
+@[expose] def j6 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (45)) (.cons (.number (32)) .nil)))
+@[expose] def j7 : Codec.Json := .array (.cons (.number (1)) (.cons (j6) .nil))
+@[expose] def j8 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (91)) (.cons (.number (64)) .nil)))
+@[expose] def j9 : Codec.Json := .array (.cons (.number (1)) (.cons (j8) .nil))
+@[expose] def j10 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j7) (.cons (j9) (.cons (j0) (.cons (j0) .nil))))))
+@[expose] def subject : Codec.Json := j10
+@[expose] def j11 : Codec.Json := .array (.cons (j0) .nil)
+@[expose] def j12 : Codec.Json := .array (.cons (.number (1)) .nil)
+@[expose] def j13 : Codec.Json := .array (.cons (j12) .nil)
+@[expose] def j14 : Codec.Json := .array (.cons (j11) (.cons (j11) (.cons (j12) (.cons (j12) (.cons (j13) (.cons (.number (1)) .nil))))))
+@[expose] def j15 : Codec.Json := .array (.cons (j4) .nil)
+@[expose] def j16 : Codec.Json := .array (.cons (j3) (.cons (j4) .nil))
+@[expose] def j17 : Codec.Json := .array (.cons (j5) (.cons (j16) (.cons (j15) .nil)))
+@[expose] def j18 : Codec.Json := .array (.cons (.number (2)) (.cons (.number (1)) (.cons (.number (0)) .nil)))
+@[expose] def j19 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (2)) (.cons (.number (1)) .nil)))
+@[expose] def j20 : Codec.Json := .array (.cons (j4) (.cons (j0) (.cons (j19) .nil)))
+@[expose] def j21 : Codec.Json := .array (.cons (j4) (.cons (j16) (.cons (j19) .nil)))
+@[expose] def j22 : Codec.Json := .array (.cons (j21) .nil)
+@[expose] def j23 : Codec.Json := .array (.cons (j4) (.cons (j16) .nil))
+@[expose] def j24 : Codec.Json := .array (.cons (j23) .nil)
+@[expose] def j25 : Codec.Json := .array (.cons (j17) (.cons (j18) (.cons (j20) (.cons (j22) (.cons (j24) .nil)))))
+@[expose] def j26 : Codec.Json := .array (.cons (.number (-1)) (.cons (.number (1)) (.cons (.number (1)) .nil)))
+@[expose] def j27 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (1)) (.cons (.number (1)) .nil)))
+@[expose] def j28 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j15) (.cons (j7) (.cons (j9) (.cons (j25) (.cons (j25) (.cons (j26) (.cons (j27) (.cons (.number (1)) (.cons (.number (0)) (.cons (.number (1)) .nil))))))))))))
+@[expose] def j29 : Codec.Json := .array (.cons (j28) .nil)
+@[expose] def j30 : Codec.Json := .array (.cons (j0) (.cons (j15) .nil))
+@[expose] def j31 : Codec.Json := .array (.cons (j30) .nil)
+@[expose] def j32 : Codec.Json := .array (.cons (j31) .nil)
+@[expose] def j33 : Codec.Json := .array (.cons (.number (0)) .nil)
+@[expose] def j34 : Codec.Json := .array (.cons (.number (1)) (.cons (j33) (.cons (j33) (.cons (.number (1)) (.cons (j13) .nil)))))
+@[expose] def j35 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j7) (.cons (j9) (.cons (j0) (.cons (.number (1)) (.cons (j14) (.cons (j29) (.cons (j32) (.cons (j11) (.cons (j34) .nil)))))))))))
+@[expose] def j36 : Codec.Json := .array (.cons (j35) (.cons (j0) .nil))
+@[expose] def j37 : Codec.Json := .array (.cons (j36) .nil)
+@[expose] def j38 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (0)) (.cons (j37) .nil)))
+@[expose] def graph : Codec.Json := j38
+@[expose] def equation : Codec.Json := j5
+@[expose] def j39 : Codec.Json := .array (.cons (.number (2)) .nil)
+@[expose] def j40 : Codec.Json := .array (.cons (j33) (.cons (j12) (.cons (j39) .nil)))
+@[expose] def j41 : Codec.Json := .array (.cons (.number (-1)) .nil)
+@[expose] def j42 : Codec.Json := .array (.cons (j41) (.cons (j33) (.cons (j12) .nil)))
+@[expose] def j43 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (1)) (.cons (.number (0)) .nil)))
+@[expose] def j44 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (0)) (.cons (.number (0)) .nil)))
+@[expose] def j45 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-1)) (.cons (.number (1)) .nil)))
+@[expose] def j46 : Codec.Json := .array (.cons (.number (2)) (.cons (.number (0)) (.cons (.number (-2)) .nil)))
+@[expose] def j47 : Codec.Json := .array (.cons (j45) (.cons (j46) (.cons (j4) .nil)))
+@[expose] def j48 : Codec.Json := .array (.cons (j40) (.cons (j42) (.cons (j43) (.cons (j44) (.cons (j47) (.cons (.number (2)) .nil))))))
+@[expose] def j49 : Codec.Json := .array (.cons (j5) .nil)
+@[expose] def j50 : Codec.Json := .array (.cons (j4) (.cons (j0) (.cons (j4) .nil)))
+@[expose] def j51 : Codec.Json := .array (.cons (j49) (.cons (j39) (.cons (j50) (.cons (j0) (.cons (j0) .nil)))))
+@[expose] def j52 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j0) (.cons (j7) (.cons (j9) (.cons (j25) (.cons (j51) (.cons (j41) (.cons (j12) (.cons (.number (0)) (.cons (.number (0)) (.cons (.number (0)) .nil))))))))))))
+@[expose] def j53 : Codec.Json := .array (.cons (j28) (.cons (j52) (.cons (j52) .nil)))
+@[expose] def j54 : Codec.Json := .array (.cons (.number (0)) (.cons (j0) (.cons (j50) .nil)))
+@[expose] def j55 : Codec.Json := .array (.cons (j54) .nil)
+@[expose] def j56 : Codec.Json := .array (.cons (j55) (.cons (j0) .nil))
+@[expose] def j57 : Codec.Json := .array (.cons (j56) .nil)
+@[expose] def j58 : Codec.Json := .array (.cons (j54) (.cons (j54) .nil))
+@[expose] def j59 : Codec.Json := .array (.cons (j58) (.cons (j0) .nil))
+@[expose] def j60 : Codec.Json := .array (.cons (j59) .nil)
+@[expose] def j61 : Codec.Json := .array (.cons (j31) (.cons (j57) (.cons (j60) .nil)))
+@[expose] def j62 : Codec.Json := .array (.cons (j55) .nil)
+@[expose] def j63 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j7) (.cons (j9) (.cons (j11) (.cons (.number (3)) (.cons (j48) (.cons (j53) (.cons (j61) (.cons (j62) (.cons (j34) .nil)))))))))))
+@[expose] def j64 : Codec.Json := .array (.cons (j63) (.cons (j0) .nil))
+@[expose] def j65 : Codec.Json := .array (.cons (j64) .nil)
+@[expose] def j66 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (0)) (.cons (j65) .nil)))
+@[expose] def equationGraph : Codec.Json := j66
+@[expose] def j67 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-65521)) (.cons (.number (32768)) .nil)))
+@[expose] def j68 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (181)) (.cons (.number (64)) .nil)))
+@[expose] def j69 : Codec.Json := .array (.cons (j67) (.cons (j68) (.cons (j45) .nil)))
+@[expose] def margin : Codec.Json := j69
+@[expose] def j70 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-131057)) (.cons (.number (32768)) .nil)))
+@[expose] def j71 : Codec.Json := .array (.cons (j70) (.cons (j68) .nil))
+@[expose] def j72 : Codec.Json := .array (.cons (j71) .nil)
+@[expose] def j73 : Codec.Json := .array (.cons (j40) (.cons (j42) (.cons (j3) (.cons (j27) (.cons (j47) (.cons (.number (2)) .nil))))))
+@[expose] def j74 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-131057)) (.cons (.number (92672)) .nil)))
+@[expose] def j75 : Codec.Json := .array (.cons (j74) (.cons (j4) .nil))
+@[expose] def j76 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (185344)) (.cons (.number (131057)) .nil)))
+@[expose] def j77 : Codec.Json := .array (.cons (j76) (.cons (j45) .nil))
+@[expose] def j78 : Codec.Json := .array (.cons (j45) .nil)
+@[expose] def j79 : Codec.Json := .array (.cons (j5) (.cons (j77) (.cons (j78) .nil)))
+@[expose] def j80 : Codec.Json := .array (.cons (j19) .nil)
+@[expose] def j81 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (131057)) (.cons (.number (46336)) .nil)))
+@[expose] def j82 : Codec.Json := .array (.cons (j4) (.cons (j80) (.cons (j81) .nil)))
+@[expose] def j83 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-185344)) (.cons (.number (131057)) .nil)))
+@[expose] def j84 : Codec.Json := .array (.cons (j83) (.cons (j45) .nil))
+@[expose] def j85 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (523838)) (.cons (.number (17175937249)) .nil)))
+@[expose] def j86 : Codec.Json := .array (.cons (j4) (.cons (j84) (.cons (j85) .nil)))
+@[expose] def j87 : Codec.Json := .array (.cons (j86) .nil)
+@[expose] def j88 : Codec.Json := .array (.cons (j83) (.cons (j4) .nil))
+@[expose] def j89 : Codec.Json := .array (.cons (j4) (.cons (j88) .nil))
+@[expose] def j90 : Codec.Json := .array (.cons (j89) .nil)
+@[expose] def j91 : Codec.Json := .array (.cons (j79) (.cons (j18) (.cons (j82) (.cons (j87) (.cons (j90) .nil)))))
+@[expose] def j92 : Codec.Json := .array (.cons (.number (-1)) (.cons (.number (1)) (.cons (.number (-1)) .nil)))
+@[expose] def j93 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (-1)) (.cons (.number (-1)) .nil)))
+@[expose] def j94 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j75) (.cons (j7) (.cons (j9) (.cons (j25) (.cons (j91) (.cons (j92) (.cons (j93) (.cons (.number (2)) (.cons (.number (1)) (.cons (.number (1)) .nil))))))))))))
+@[expose] def j95 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (34352136417)) (.cons (.number (24290628608)) .nil)))
+@[expose] def j96 : Codec.Json := .array (.cons (j95) (.cons (j45) .nil))
+@[expose] def j97 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-48581257216)) (.cons (.number (34352136417)) .nil)))
+@[expose] def j98 : Codec.Json := .array (.cons (j97) (.cons (j4) .nil))
+@[expose] def j99 : Codec.Json := .array (.cons (j5) (.cons (j98) (.cons (j15) .nil)))
+@[expose] def j100 : Codec.Json := .array (.cons (j2) .nil)
+@[expose] def j101 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (34352136417)) (.cons (.number (12145314304)) .nil)))
+@[expose] def j102 : Codec.Json := .array (.cons (j4) (.cons (j100) (.cons (j101) .nil)))
+@[expose] def j103 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (48581257216)) (.cons (.number (34352136417)) .nil)))
+@[expose] def j104 : Codec.Json := .array (.cons (j103) (.cons (j4) .nil))
+@[expose] def j105 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (137203125122)) (.cons (.number (1180069276412177597889)) .nil)))
+@[expose] def j106 : Codec.Json := .array (.cons (j4) (.cons (j104) (.cons (j105) .nil)))
+@[expose] def j107 : Codec.Json := .array (.cons (j106) .nil)
+@[expose] def j108 : Codec.Json := .array (.cons (j4) (.cons (j98) .nil))
+@[expose] def j109 : Codec.Json := .array (.cons (j108) .nil)
+@[expose] def j110 : Codec.Json := .array (.cons (j99) (.cons (j18) (.cons (j102) (.cons (j107) (.cons (j109) .nil)))))
+@[expose] def j111 : Codec.Json := .array (.cons (.number (-1)) (.cons (.number (-1)) (.cons (.number (1)) .nil)))
+@[expose] def j112 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j96) (.cons (j7) (.cons (j9) (.cons (j25) (.cons (j110) (.cons (j111) (.cons (j27) (.cons (.number (1)) (.cons (.number (0)) (.cons (.number (1)) .nil))))))))))))
+@[expose] def j113 : Codec.Json := .array (.cons (j28) (.cons (j94) (.cons (j112) .nil)))
+@[expose] def j114 : Codec.Json := .array (.cons (.number (0)) (.cons (j75) (.cons (j50) .nil)))
+@[expose] def j115 : Codec.Json := .array (.cons (j114) .nil)
+@[expose] def j116 : Codec.Json := .array (.cons (j115) (.cons (j75) .nil))
+@[expose] def j117 : Codec.Json := .array (.cons (j116) .nil)
+@[expose] def j118 : Codec.Json := .array (.cons (j4) (.cons (j15) (.cons (j81) .nil)))
+@[expose] def j119 : Codec.Json := .array (.cons (.number (0)) (.cons (j96) (.cons (j118) .nil)))
+@[expose] def j120 : Codec.Json := .array (.cons (j114) (.cons (j119) .nil))
+@[expose] def j121 : Codec.Json := .array (.cons (j120) (.cons (j96) .nil))
+@[expose] def j122 : Codec.Json := .array (.cons (j121) .nil)
+@[expose] def j123 : Codec.Json := .array (.cons (j31) (.cons (j117) (.cons (j122) .nil)))
+@[expose] def j124 : Codec.Json := .array (.cons (j4) (.cons (j0) (.cons (j68) .nil)))
+@[expose] def j125 : Codec.Json := .array (.cons (.number (0)) (.cons (j75) (.cons (j124) .nil)))
+@[expose] def j126 : Codec.Json := .array (.cons (j125) .nil)
+@[expose] def j127 : Codec.Json := .array (.cons (j126) .nil)
+@[expose] def j128 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j7) (.cons (j9) (.cons (j72) (.cons (.number (3)) (.cons (j73) (.cons (j113) (.cons (j123) (.cons (j127) (.cons (j34) .nil)))))))))))
+@[expose] def j129 : Codec.Json := .array (.cons (j128) (.cons (j0) .nil))
+@[expose] def j130 : Codec.Json := .array (.cons (j129) .nil)
+@[expose] def j131 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (0)) (.cons (j130) .nil)))
+@[expose] def marginGraph : Codec.Json := j131
+@[expose] def j132 : Codec.Json := .array (.cons (j5) (.cons (.number (0)) (.cons (j66) .nil)))
+@[expose] def j133 : Codec.Json := .array (.cons (j69) (.cons (.number (1)) (.cons (j131) .nil)))
+@[expose] def j134 : Codec.Json := .array (.cons (j10) (.cons (j38) (.cons (j132) (.cons (j133) .nil))))
+@[expose] def packet : Codec.Json := j134
+end Hex.RCF.RealCoefficients.BoundedSource.Positive
diff --git a/conformance/HexRCF/BoundedSource/Proofs.lean b/conformance/HexRCF/BoundedSource/Proofs.lean
new file mode 100644
index 0000000000..e8ae17174f
--- /dev/null
+++ b/conformance/HexRCF/BoundedSource/Proofs.lean
@@ -0,0 +1,74 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+import HexRCF.BoundedSource.Quote
+import HexRCF.ProofEvidence
+import HexRCF.SelectedRoot.KernelCheck
+import KernelReplay.AxiomClosure
+meta section
+open Lean Meta Hex.RealClosure Hex.RCF.RealCoefficients
+set_option maxRecDepth 32768
+set_option maxHeartbeats 24000000
+run_meta do
+ let roots := #[``Hex.RCF.BoundedSourceQuote.positive,
+ ``Hex.RCF.BoundedSourceQuote.negative,``Hex.RCF.BoundedSourceQuote.cubic]
+ let axioms ← Algebraic.KernelReplay.AxiomClosure.collect roots
+ unless axioms.all (fun name => [``propext,``Classical.choice,``Quot.sound].contains name) do
+ throwError "bounded source has inadmissible dependencies"
+ let dependencies ← Hex.RCF.ProofEvidence.projectDependencies roots
+ -- The equality consumes the restored facts and their checked field laws.
+ -- The separate equality of the optional reader with `some fact` is not
+ -- retained in that proof; `restore` carries acceptance through `fields`.
+ for required in #[``SourceIdentity.identify,``SourceIdentity.observe,``SourceIdentity.select,
+ ``ScalarPacket.restore,``ScalarPacket.fields,``RootQuote.read_eq] do
+ unless dependencies.contains required do throwError "bounded source omitted {required}"
+ for forbidden in #[`Hex.RCF.RealCoefficients.SourceBuild.build,
+ `Hex.RCF.RealCoefficients.SourceBuild.buildOn,
+ `Hex.RCF.RealCoefficients.SourceBuild.select,``ScalarPacket.buildParts,
+ ``ScalarPacket.build,``ScalarPacket.buildLiteral,
+ ``Hex.RCF.SourceIdentityCases.source_selected,``Hex.RCF.SourceIdentityCases.equationFact,
+ ``Hex.RCF.SourceIdentityCases.marginFact,``Hex.RCF.SourceIdentityCases.negativeMarginFact,
+ ``Hex.RCF.SourceIdentityCases.coefficient,``Hex.RCF.SelectedRootTests.Data.lower,
+ ``Hex.RCF.SelectedRootTests.Data.lowerAccepted,``Hex.RCF.SelectedRootTests.Data.selectedSqrt] do
+ if dependencies.contains forbidden then throwError "bounded source reused {forbidden}"
+ let names := (← (← getEnv).getLocalConstantInfos).map (·.name)
+ let modules := (← getEnv).header.moduleNames
+ let allowed := #[`HexRCF.BoundedSource.Quote,`HexRCF.BoundedSource.Inputs,
+ `HexRCF.BoundedSource.Positive,
+ `HexRCF.BoundedSource.Negative,
+ `HexRCF.BoundedSource.Cubic,
+ `HexRCF.RealCoefficients.SourceIdentity,`HexRCF.RealCoefficients.ScalarPacket,
+ `HexRCF.RealCoefficients.RootQuote]
+ let mut theorems : Nat := 0
+ let mut definitions : Nat := 0
+ let mut traces : Nat := 0
+ for name in dependencies.toArray do
+ let some index := (← getEnv).getModuleIdxFor? name | continue
+ unless allowed.contains modules[index]! do continue
+ let declaration ← match ← getConstInfo name with
+ | .thmInfo info =>
+ theorems := theorems+1
+ pure (Declaration.thmDecl {info with name := ← mkFreshUserName `__boundedBody})
+ | .defnInfo info =>
+ definitions := definitions+1
+ pure (Declaration.defnDecl {info with name := ← mkFreshUserName `__boundedData})
+ | _ => continue
+ let options := (← getOptions).setBool `debug.skipKernelTC false
+ let environment := Kernel.enableDiag (Kernel.resetDiag (← getEnv)) true
+ let checked ← ofExceptKernelException <| environment.addDeclCore
+ (Core.getMaxHeartbeats options).toUSize (maxRecDepth.get options).toUSize
+ declaration none (doCheck := true)
+ let diagnostics := Kernel.getDiagnostics checked
+ unless diagnostics.enabled do throwError "bounded source diagnostics disabled"
+ if let some (producer,count) := Hex.RCF.SelectedRootTests.KernelCheck.violation? diagnostics
+ #[``ScalarPacket.build,``ScalarPacket.buildLiteral,``Algebraic.Element.codec,
+ ``Hex.SignDet.Descriptor.ofReplay?] then
+ throwError "bounded source reduced producer {producer}: {count}; body={name}"
+ if !diagnostics.unfoldCounter.isEmpty then traces := traces+1
+ unless theorems == 392 && definitions == 449 && traces == 811 do
+ throwError "bounded source inventory changed: {theorems}/{definitions}/{traces}"
+ unless (← (← getEnv).getLocalConstantInfos).map (·.name) == names do
+ throwError "bounded source audit retained copied declarations"
+ logInfo m!"bounded source actual bodies: {theorems} theorems/{definitions} definitions; nonempty traces={traces}; full axioms={axioms}"
diff --git a/conformance/HexRCF/BoundedSource/Quote.lean b/conformance/HexRCF/BoundedSource/Quote.lean
new file mode 100644
index 0000000000..2b68965cc1
--- /dev/null
+++ b/conformance/HexRCF/BoundedSource/Quote.lean
@@ -0,0 +1,140 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+import HexRCF.BoundedSource.Inputs
+import HexRCF.RealCoefficients.SourceIdentityQuote
+import HexRCF.RealCoefficients.RootHeader
+import HexRCF.RealCoefficients.RootPrepare
+import HexRCF.RealCoefficients.RationalQuote
+
+/-! Restore bounded source proposals from literal descriptors and graphs.
+The native producer and its selected-root value never enter these proofs. The
+rational model, source alias selection and coefficient-map laws remain inputs. -/
+namespace Hex.RCF.BoundedSourceQuote
+open Lean Meta Qq Hex Hex.RealClosure Hex.SignDet Hex.RCF.RealCoefficients
+open Hex.RCF.SelectedRootTests Hex.RCF.SourceIdentityCases Hex.RCF.BoundedSourceInputs
+set_option maxRecDepth 32768
+set_option maxHeartbeats 60000000
+
+private meta def quote (literal : Name) (anchor : SourceIdentity.Anchor)
+ (equationValue enclosureValue : Expr)
+ (change : SourceIdentity.Packet → SourceIdentity.Packet := id)
+ (model : Expr := mkConst ``Data.rational) : Hex.RealFormula.Reify.ReifyM RootQuote.Result := do
+ let decode : RootQuote.DecoderM := fun expression =>
+ liftM (RationalQuote.decoder (mkConst ``Data.registry) expression)
+ let packet : SourceIdentity.Packet := {
+ subject := mkConst (literal ++ `subject)
+ graph := mkConst (literal ++ `graph)
+ equation := mkConst (literal ++ `equation)
+ equationGraph := mkConst (literal ++ `equationGraph)
+ enclosure := mkConst (literal ++ `margin)
+ enclosureGraph := mkConst (literal ++ `marginGraph)
+ equationValue, enclosureValue }
+ let result ← SourceIdentity.quotePacketWith anchor (change packet)
+ (mkConst ``Data.base) model decode
+ return ⟨result.root,result.proof,(← get).budget.consumed⟩
+
+private meta def retain (name : Name) (literal : Name) (anchor : SourceIdentity.Anchor)
+ (equationValue enclosureValue : Expr) : MetaM Unit := do
+ let result ← RootQuote.runWith (quote literal anchor equationValue enclosureValue)
+ let result ← match result with
+ | .ok result => pure result
+ | .error error => throwError "bounded source quotation refused: {Hex.RealFormula.Reify.Error.toMessageData error}"
+ let target ← inferType result.proof
+ let proof ← Hex.RCF.checkProof `boundedSource target result.proof
+ addDecl (.thmDecl {name,levelParams := [],type := target,value := proof})
+ let axioms ← collectAxioms name
+ unless axioms.all (fun name => [``propext,``Classical.choice,``Quot.sound].contains name) do
+ throwError "bounded source quotation has inadmissible dependencies"
+ logInfo m!"bounded source {name}: proofNodes={result.usage.proofNodes}; axioms={axioms}"
+ if name == `Hex.RCF.BoundedSourceQuote.positive then
+ let sentinel ← mkFreshExprMVar (mkConst ``Nat)
+ let before ← getMCtx
+ let config : Hex.RealFormula.Reify.Config := {}
+ let exact := {config with ring := {config.ring with budget :=
+ {config.ring.budget with proofNodes := result.usage.proofNodes}}}
+ let action : Hex.RealFormula.Reify.ReifyM RootQuote.Result := do
+ sentinel.mvarId!.assign (mkNatLit 96)
+ quote literal anchor equationValue enclosureValue
+ let .ok repeated ← RootQuote.runWith action exact
+ | throwError "assembled source rejected its exact charged budget"
+ unless repeated.usage == result.usage && !(← sentinel.mvarId!.isAssigned) do
+ throwError "assembled source exact-budget usage or success restoration changed"
+ let names := (← (← getEnv).getLocalConstantInfos).map (·.name)
+ let small := {config with ring := {config.ring with budget :=
+ {config.ring.budget with proofNodes := result.usage.proofNodes-1}}}
+ let .error (.budget exhausted) ← RootQuote.runWith action small
+ | throwError "bounded source accepted below its charged budget"
+ unless exhausted.dimension == .proofNodes do throwError "wrong bounded source budget dimension"
+ let after ← getMCtx
+ unless !(← sentinel.mvarId!.isAssigned) && before.mvarCounter == after.mvarCounter &&
+ before.lmvarCounter == after.lmvarCounter && before.eAssignment.toList == after.eAssignment.toList &&
+ before.lAssignment.toList == after.lAssignment.toList &&
+ before.decls.toList.map Prod.fst == after.decls.toList.map Prod.fst &&
+ (← (← getEnv).getLocalConstantInfos).map (·.name) == names do
+ throwError "bounded source exhaustion retained metavariables or declarations"
+ logInfo m!"bounded source below-budget refusal and state restoration: limit={result.usage.proofNodes-1}"
+ let wrongValue ← mkEqRefl (mkConst ``Bool.false)
+ let bad : Array (String × (SourceIdentity.Packet → SourceIdentity.Packet) × Expr) := #[
+ ("descriptor binding", fun p => {p with
+ subject := mkConst `Hex.RCF.RealCoefficients.BoundedSource.Negative.subject}, mkConst ``Data.rational),
+ ("equation sign", fun p => {p with equationGraph := p.enclosureGraph}, mkConst ``Data.rational),
+ ("coefficient law", fun p => {p with equationValue := wrongValue}, mkConst ``Data.rational),
+ ("parent model", id, mkConst ``Data.original)]
+ for (label,change,model) in bad do
+ let before ← getMCtx
+ let names := (← (← getEnv).getLocalConstantInfos).map (·.name)
+ let refused ← try
+ match ← RootQuote.runWith (do
+ sentinel.mvarId!.assign (mkNatLit 97)
+ quote literal anchor equationValue enclosureValue change model) config with
+ | .ok _ => pure false
+ | .error _ => pure true
+ catch _ => pure true
+ unless refused do throwError "assembled source accepted {label}"
+ let after ← getMCtx
+ unless !(← sentinel.mvarId!.isAssigned) && before.mvarCounter == after.mvarCounter &&
+ before.lmvarCounter == after.lmvarCounter && before.eAssignment.toList == after.eAssignment.toList &&
+ before.lAssignment.toList == after.lAssignment.toList &&
+ before.decls.toList.map Prod.fst == after.decls.toList.map Prod.fst &&
+ (← (← getEnv).getLocalConstantInfos).map (·.name) == names do
+ throwError "assembled source failure retained state: {label}"
+ logInfo m!"assembled source refused {label}; metavariables and declarations restored"
+
+run_meta do
+ withoutExporting do
+ let positive : SourceIdentity.Anchor := {
+ polynomial := mkConst ``SquareTwo.polynomial
+ square := mkConst ``SquareTwo.square
+ witness := mkConst ``positiveWitness
+ precision := mkConst ``positivePrecision
+ value := q(Real.sqrt 2)
+ selected := mkConst ``SquareTwo.square_selected_root }
+ retain `Hex.RCF.BoundedSourceQuote.positive
+ `Hex.RCF.RealCoefficients.BoundedSource.Positive positive
+ (mkConst ``positiveEquation) (mkConst ``positiveMargin)
+ let negative : SourceIdentity.Anchor := {positive with
+ square := mkConst ``negativeSquare
+ witness := mkConst ``negative_witness
+ precision := mkConst ``negative_precision
+ value := q((Field.literalRep SquareTwo.polynomial negativeSquare
+ negative_witness negative_precision).root.re)
+ selected := ← mkEqRefl q((Field.literalRep SquareTwo.polynomial negativeSquare
+ negative_witness negative_precision).root.re) }
+ retain `Hex.RCF.BoundedSourceQuote.negative
+ `Hex.RCF.RealCoefficients.BoundedSource.Negative negative
+ (mkConst ``negativeEquation) (mkConst ``negativeMargin)
+ let cubic : SourceIdentity.Anchor := {
+ polynomial := mkConst ``CubeTwo.polynomial
+ square := mkConst ``CubeTwo.square
+ witness := mkConst ``cubicWitness
+ precision := mkConst ``cubicPrecision
+ value := q((2 : ℝ) ^ (1 / 3 : ℝ))
+ selected := mkConst ``cubicSelected }
+ retain `Hex.RCF.BoundedSourceQuote.cubic
+ `Hex.RCF.RealCoefficients.BoundedSource.Cubic cubic
+ (mkConst ``cubicEquation) (mkConst ``cubicMargin)
+
+end Hex.RCF.BoundedSourceQuote
diff --git a/conformance/HexRCF/CellFinishCases.lean b/conformance/HexRCF/CellFinishCases.lean
new file mode 100644
index 0000000000..21057a0f92
--- /dev/null
+++ b/conformance/HexRCF/CellFinishCases.lean
@@ -0,0 +1,153 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+import HexRCF.CellQuoteStages
+open Lean Meta Qq Hex Hex.RealClosure Hex.SignDet Hex.RCF.RealCoefficients
+open Hex.RCF.CellQuoteStages
+namespace Hex.RCF.CellFinishCases
+set_option maxRecDepth 32768
+set_option maxHeartbeats 16000000
+
+theorem zero_source : (∀ _x : ℝ, (0 : ℝ) = 0) ↔
+ (∀ _x : ℝ, (0 : ℝ) / 0 = 0) := by simp
+
+theorem cancelled_source : (∀ _x : ℝ, (0 : ℝ) = 0) ↔
+ (∀ x : ℝ, (0 : ℝ) * (x / (Real.sqrt 2 - Real.sqrt 2)) = 0) := by simp
+
+private meta def restored (before : MetavarContext) (sentinel : Expr)
+ (names : Option (Array Name) := none) : MetaM Unit := do
+ let after ← getMCtx
+ unless !(← sentinel.mvarId!.isAssigned) && before.mvarCounter == after.mvarCounter &&
+ before.lmvarCounter == after.lmvarCounter && before.eAssignment.toList == after.eAssignment.toList &&
+ before.lAssignment.toList == after.lAssignment.toList &&
+ before.decls.toList.map Prod.fst == after.decls.toList.map Prod.fst do
+ throwError "cell finishing retained caller metavariables"
+ if let some names := names then
+ unless (← (← getEnv).getLocalConstantInfos).map (·.name) == names do
+ throwError "failed cell finishing retained declarations"
+
+run_meta do
+ withoutExporting do
+ let target : Q(Prop) := q(∀ _x : ℝ, (0 : ℝ) = 0)
+ let .ok source ← Reify.prepare target | throwError "finishing source was not reified"
+ let program : Q(Except Replay.Error Bool) := q(CellOperations.check operations
+ base.codec values (matrix true) [] cert .forallReal RootReplayLiterals.constant cells)
+ let args := program.getAppArgs
+ let info ← getFunInfoNArgs program.getAppFn args.size
+ let inputs := args.zipIdx |>.filterMap fun (arg,i) =>
+ if info.paramInfo[i]!.binderInfo.isExplicit then some arg else none
+ let checker ← mkAppM ``CompleteReplay.check (inputs.extract 1 inputs.size)
+ let same ← mkAppM ``CellOperations.check_eq inputs
+ let strict ← mkAppM ``RootQuote.read_eq #[program,mkConst ``Bool.true,mkConst ``trueChecked]
+ let accepted ← mkEqTrans (← mkEqSymm same) strict
+ let model ← mkAppM ``NumberField.rationalModel #[mkConst ``registry]
+ let valuation ← withLocalDeclD `i (← mkAppM ``Fin #[mkNatLit 0]) fun i => do
+ mkLambdaFVars #[i] (← mkAppM ``Tower.Model.value #[model,mkApp (mkConst ``values) i])
+ let identityType ← mkEq valuation source.valuation
+ let hole ← mkFreshExprMVar identityType
+ let remaining ← Lean.Elab.runTactic' hole.mvarId!
+ (← `(tactic| funext i; exact Fin.elim0 i))
+ unless remaining.isEmpty do throwError "empty finishing valuation left goals"
+ let identity ← Hex.RCF.checkProof `finishingValuation identityType (← instantiateMVars hole)
+ let sentinel ← mkFreshExprMVar (mkConst ``Nat)
+ let before ← getMCtx
+ let finish (source : Reify.Source) (goal : Expr) (proof : Expr := accepted) := do
+ sentinel.mvarId!.assign (mkNatLit 98)
+ CellQuote.finishPacketWith source goal checker proof model identity
+ let basic : Hex.RealFormula.Reify.Config := {}
+ let .ok baseline ← RootQuote.runWith (finish source target) basic source.usage
+ | throwError "continued finishing baseline refused"
+ restored before sentinel
+ unless baseline.usage.proofNodes > source.usage.proofNodes &&
+ baseline.usage.sourceNodes > source.usage.sourceNodes do
+ throwError "finishing did not continue both source and proof accounting"
+ let exact := {basic with ring := {basic.ring with budget :=
+ {basic.ring.budget with proofNodes := baseline.usage.proofNodes}}}
+ let .ok repeated ← RootQuote.runWith (finish source target) exact source.usage
+ | throwError "finishing rejected its exact continued budget"
+ unless repeated.usage == baseline.usage do throwError "continued finishing usage changed"
+ restored before sentinel
+ let names := (← (← getEnv).getLocalConstantInfos).map (·.name)
+ let small := {exact with ring := {exact.ring with budget :=
+ {exact.ring.budget with proofNodes := baseline.usage.proofNodes-1}}}
+ let .error (.budget exhausted) ← RootQuote.runWith (finish source target) small source.usage
+ | throwError "finishing accepted below its cumulative proof budget"
+ unless exhausted.dimension == .proofNodes do throwError "wrong finishing resource exhausted"
+ restored before sentinel (some names)
+ let noSource := {basic with ring := {basic.ring with budget :=
+ {basic.ring.budget with sourceNodes := source.usage.sourceNodes}}}
+ let .error (.budget exhausted) ← RootQuote.runWith (finish source target) noSource source.usage
+ | throwError "finishing restarted its source budget"
+ unless exhausted.dimension == .sourceNodes do throwError "wrong source resource exhausted"
+ restored before sentinel (some names)
+ for (label,prepared,goal,proof) in [
+ ("target",source,q(∀ _x : ℝ, (0 : ℝ) = 1),accepted),
+ ("divisor inventory",{source with divisors := #[q((1 : ℝ))]},target,accepted),
+ ("equivalence",{source with proof := ← mkEqRefl (mkConst ``Bool.false)},target,accepted),
+ ("verdict",source,target,← mkEqRefl (mkConst ``Bool.false))] do
+ let names := (← (← getEnv).getLocalConstantInfos).map (·.name)
+ let refused ← try
+ match ← RootQuote.runWith (finish prepared goal proof) basic source.usage with
+ | .ok _ => pure false
+ | .error _ => pure true
+ catch _ => pure true
+ unless refused do throwError "finishing accepted wrong {label}"
+ restored before sentinel (some names)
+ logInfo m!"continued cell finishing exact/below/source budgets, bindings and rollback checked: proofNodes={baseline.usage.proofNodes}; sourceNodes={baseline.usage.sourceNodes}"
+ for (badTarget,equivalent) in #[
+ (q(∀ _x : ℝ, (0 : ℝ) / 0 = 0),mkConst ``zero_source),
+ (q(∀ x : ℝ, (0 : ℝ) * (x / (Real.sqrt 2 - Real.sqrt 2)) = 0),mkConst ``cancelled_source)] do
+ let equivalent ← mkAppM ``Iff.trans #[source.proof,equivalent]
+ let statement ← mkAppM ``Iff
+ #[← mkAppM ``Hex.RealFormula.Prenex.toProp #[source.formula,source.valuation],badTarget]
+ let equivalent ← Hex.RCF.checkProof `validZeroSource statement equivalent
+ let hidden := {source with original := badTarget,proof := equivalent}
+ let before ← getMCtx
+ let names := (← (← getEnv).getLocalConstantInfos).map (·.name)
+ let refused ← try
+ match ← RootQuote.runWith (finish hidden badTarget) basic source.usage with
+ | .ok _ => pure false
+ | .error _ => pure true
+ catch _ => pure true
+ unless refused do throwError "valid source equivalence hid an original zero divisor"
+ restored before sentinel (some names)
+ logInfo "prepared finishing refused zero/cancelled divisors despite valid source equivalences"
+ let decode : RootQuote.DecoderM := fun expression => do
+ if let some proof ← RowQuote.decoder expression then return some proof
+ if let some proof ← SignatureQuote.decoder q(base.signature)
+ (mkConst ``signatureData) (mkConst ``signature_literal) expression then
+ return some proof
+ liftM (RationalQuote.decoder (mkConst ``registry) expression)
+ let declarations ← IO.mkRef 0
+ let joint : Hex.RealFormula.Reify.ReifyM RootQuote.Result := do
+ sentinel.mvarId!.assign (mkNatLit 99)
+ let quoted ← CellQuote.replayWith program decode
+ declarations.set (← (← getEnv).getLocalConstantInfos).size
+ let strict ← mkAppM ``RootQuote.read_eq #[program,mkConst ``Bool.true,quoted.proof]
+ let accepted ← mkEqTrans (← mkEqSymm same) strict
+ CellQuote.finishPacketWith source target checker accepted model identity
+ let before ← getMCtx
+ let .ok complete ← RootQuote.runWith joint basic source.usage
+ | throwError "joint cell quotation/source finishing refused"
+ restored before sentinel
+ let names := (← (← getEnv).getLocalConstantInfos).map (·.name)
+ declarations.set 0
+ let late := {basic with ring := {basic.ring with budget :=
+ {basic.ring.budget with proofNodes := complete.usage.proofNodes-1}}}
+ let .error (.budget exhausted) ← RootQuote.runWith joint late source.usage
+ | throwError "joint source attempt accepted below its complete budget"
+ unless exhausted.dimension == .proofNodes && (← declarations.get) > names.size do
+ throwError "joint exhaustion did not follow successful quotation with new declarations"
+ restored before sentinel (some names)
+ logInfo m!"joint late finishing exhaustion restored quotation declarations: limit={exhausted.limit}; consumed={exhausted.consumed}; requested={exhausted.requested}"
+ let proof ← Hex.RCF.checkProof `jointCellSource target complete.proof
+ withExporting (isExporting := true) do
+ addDecl (.thmDecl {
+ name := `Hex.RCF.CellFinishCases.source,levelParams := [],type := target,value := proof})
+ let axioms ← collectAxioms `Hex.RCF.CellFinishCases.source
+ unless axioms.all (fun name => [``propext,``Classical.choice,``Quot.sound].contains name) do
+ throwError "joint cell finishing has inadmissible dependencies"
+ logInfo m!"joint replay and original-source finishing proofNodes={complete.usage.proofNodes}; axioms={axioms}"
+end Hex.RCF.CellFinishCases
diff --git a/conformance/HexRCF/CellFinishProofs.lean b/conformance/HexRCF/CellFinishProofs.lean
new file mode 100644
index 0000000000..6403c7c22c
--- /dev/null
+++ b/conformance/HexRCF/CellFinishProofs.lean
@@ -0,0 +1,67 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+import HexRCF.CellFinishCases
+import HexRCF.RealCoefficients.ScalarPacket
+import HexRCF.ProofEvidence
+import HexRCF.SelectedRoot.KernelCheck
+import KernelReplay.AxiomClosure
+meta section
+open Lean Meta Hex.RealClosure Hex.RCF.RealCoefficients
+set_option maxRecDepth 32768
+set_option maxHeartbeats 12000000
+run_meta do
+ let roots := #[``Hex.RCF.CellFinishCases.source]
+ let axioms ← Algebraic.KernelReplay.AxiomClosure.collect roots
+ unless axioms.all (fun name => [``propext,``Classical.choice,``Quot.sound].contains name) do
+ throwError "continued cell finishing has inadmissible dependencies"
+ let dependencies ← Hex.RCF.ProofEvidence.projectDependencies roots
+ for required in #[``CompleteReplay.check_sound,``CellOperations.check_of_parts,
+ ``CellOperations.check_eq,``RowQuote.read_eq,``Hex.SignDet.Dag.selectedSigns_memo] do
+ unless dependencies.contains required do throwError "joint finishing omitted {required}"
+ for forbidden in #[``Hex.RCF.CellQuoteStages.trueChecked,``Hex.RCF.CellQuoteStages.source,
+ ``Hex.RCF.CellQuoteStages.falseChecked,
+ `Hex.RCF.RealCoefficients.CellReplayTests.Zero.accepted,
+ `Hex.RCF.RealCoefficients.CellReplayTests.Zero.all_checked,
+ `Hex.RCF.RealCoefficients.RootReplayConformance.constant_accepted,
+ `Hex.SignDet.Conformance.literal_accepts,`Hex.SignDet.Conformance.full_kernel] do
+ if dependencies.contains forbidden then throwError "joint finishing reused fixture proof {forbidden}"
+ let names := (← (← getEnv).getLocalConstantInfos).map (·.name)
+ let modules := (← getEnv).header.moduleNames
+ let allowed := #[`HexRCF.CellFinishCases,`HexRCF.RealCoefficients.CellQuote,
+ `HexRCF.RealCoefficients.RootQuote,`HexRCF.RealCoefficients.CellOperations,
+ `HexRCF.RealCoefficients.CellRead,`HexRCF.RealCoefficients.RowQuote,
+ `HexRCF.RealCoefficients.RowPacketQuote]
+ let mut theorems : Nat := 0
+ let mut definitions : Nat := 0
+ let mut traces : Nat := 0
+ for name in dependencies.toArray do
+ let some index := (← getEnv).getModuleIdxFor? name | continue
+ unless allowed.contains modules[index]! do continue
+ let declaration ← match ← getConstInfo name with
+ | .thmInfo info =>
+ theorems := theorems+1
+ pure (Declaration.thmDecl {info with name := ← mkFreshUserName `__finishBody})
+ | .defnInfo info =>
+ definitions := definitions+1
+ pure (Declaration.defnDecl {info with name := ← mkFreshUserName `__finishData})
+ | _ => continue
+ let options := (← getOptions).setBool `debug.skipKernelTC false
+ let environment := Kernel.enableDiag (Kernel.resetDiag (← getEnv)) true
+ let checked ← ofExceptKernelException <| environment.addDeclCore
+ (Core.getMaxHeartbeats options).toUSize (maxRecDepth.get options).toUSize
+ declaration none (doCheck := true)
+ let diagnostics := Kernel.getDiagnostics checked
+ unless diagnostics.enabled do throwError "joint finishing diagnostics disabled"
+ if let some (producer,count) := Hex.RCF.SelectedRootTests.KernelCheck.violation? diagnostics
+ #[``ScalarPacket.build,``ScalarPacket.buildLiteral,
+ ``Hex.RealClosure.Algebraic.Element.codec,``Hex.SignDet.Descriptor.ofReplay?] then
+ throwError "joint finishing reduced producer {producer}: {count}; body={name}"
+ if !diagnostics.unfoldCounter.isEmpty then traces := traces+1
+ unless theorems == 163 && definitions == 43 && traces == 170 do
+ throwError "joint finishing has no actual checked body evidence"
+ unless (← (← getEnv).getLocalConstantInfos).map (·.name) == names do
+ throwError "joint finishing audit retained copied declarations"
+ logInfo m!"joint source finishing actual bodies: {theorems} theorems/{definitions} definitions; nonempty traces={traces}; full axioms={axioms}"
diff --git a/conformance/HexRCF/CellQuoteStageProofs.lean b/conformance/HexRCF/CellQuoteStageProofs.lean
new file mode 100644
index 0000000000..52c267642c
--- /dev/null
+++ b/conformance/HexRCF/CellQuoteStageProofs.lean
@@ -0,0 +1,74 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+import HexRCF.CellQuoteStages
+import HexRCF.RealCoefficients.ScalarPacket
+import HexRCF.ProofEvidence
+import HexRCF.SelectedRoot.KernelCheck
+import KernelReplay.AxiomClosure
+meta section
+open Lean Meta Hex.RealClosure Hex.RCF.RealCoefficients
+set_option maxRecDepth 32768
+set_option maxHeartbeats 12000000
+run_meta do
+ let roots := #[``Hex.RCF.CellQuoteStages.trueChecked,``Hex.RCF.CellQuoteStages.falseChecked,
+ ``Hex.RCF.CellQuoteStages.source,
+ ``Hex.RCF.CellQuoteStages.Quadratic.existsChecked]
+ let axioms ← Algebraic.KernelReplay.AxiomClosure.collect roots
+ unless axioms.all (fun name => [``propext,``Classical.choice,``Quot.sound].contains name) do
+ throwError "staged cell quotation has inadmissible dependencies"
+ let dependencies ← Hex.RCF.ProofEvidence.projectDependencies roots
+ for required in #[``RowQuote.read_eq,``Hex.SignDet.Dag.selectedSigns_memo,
+ ``CellOperations.check_of_parts,``CellOperations.readCells_of_parts,
+ ``CellRead.collectWith_eq,``CellOperations.check_eq,
+ ``CompleteReplay.check_sound,``RootQuote.read_eq,``RootQuote.read_some,
+ ``Hex.SignDet.Replay.check.eq_1,``Hex.SignDet.Dag.replay_eq] do
+ unless dependencies.contains required do throwError "staged quotation omitted {required}"
+ for forbidden in #[`Hex.RCF.RealCoefficients.RootReplayConformance.constant_accepted,
+ `Hex.RCF.RealCoefficients.RootReplayConformance.whole_accepted,
+ `Hex.RCF.RealCoefficients.RootReplayConformance.positive_accepted,
+ `Hex.RCF.RealCoefficients.CellReplayTests.Check.accepted,
+ `Hex.RCF.RealCoefficients.CellReplayTests.Check.exists_checked,
+ `Hex.RCF.RealCoefficients.CellReplayTests.Check.forall_false,
+ `Hex.RCF.RealCoefficients.CellReplayTests.Zero.accepted,
+ `Hex.RCF.RealCoefficients.CellReplayTests.Zero.all_checked,
+ `Hex.SignDet.Conformance.literal_accepts,`Hex.SignDet.Conformance.full_kernel] do
+ if dependencies.contains forbidden then throwError "staged quotation reused fixture proof {forbidden}"
+ let names := (← (← getEnv).getLocalConstantInfos).map (·.name)
+ let modules := (← getEnv).header.moduleNames
+ let allowed := #[`HexRCF.RealCoefficients.RowPacketQuote,`HexRCF.CellQuoteStages,`HexRCF.RealCoefficients.RootQuote,
+ `HexRCF.RealCoefficients.CellOperations,`HexRCF.RealCoefficients.CellQuote,
+ `HexRCF.RealCoefficients.CellRead,`HexRCF.RealCoefficients.RowQuote]
+ let mut theorems : Nat := 0
+ let mut definitions : Nat := 0
+ let mut traces : Nat := 0
+ for name in dependencies.toArray do
+ let some index := (← getEnv).getModuleIdxFor? name | continue
+ unless allowed.contains modules[index]! do continue
+ let declaration ← match ← getConstInfo name with
+ | .thmInfo info =>
+ theorems := theorems+1
+ pure (Declaration.thmDecl {info with name := ← mkFreshUserName `__treeBody})
+ | .defnInfo info =>
+ definitions := definitions+1
+ pure (Declaration.defnDecl {info with name := ← mkFreshUserName `__treeData})
+ | _ => continue
+ let options := (← getOptions).setBool `debug.skipKernelTC false
+ let environment := Kernel.enableDiag (Kernel.resetDiag (← getEnv)) true
+ let checked ← ofExceptKernelException <| environment.addDeclCore
+ (Core.getMaxHeartbeats options).toUSize (maxRecDepth.get options).toUSize
+ declaration none (doCheck := true)
+ let diagnostics := Kernel.getDiagnostics checked
+ unless diagnostics.enabled do throwError "staged cell quotation diagnostics disabled"
+ if let some (producer,count) := Hex.RCF.SelectedRootTests.KernelCheck.violation? diagnostics
+ #[``ScalarPacket.build,``ScalarPacket.buildLiteral,``Algebraic.Element.codec,
+ ``Hex.SignDet.Descriptor.ofReplay?] then
+ throwError "staged cell quotation reduced producer {producer}: {count}; body={name}"
+ if !diagnostics.unfoldCounter.isEmpty then traces := traces+1
+ unless theorems == 1247 && definitions == 101 && traces == 1298 do
+ throwError "staged cell quotation inventory changed: {theorems}/{definitions}/{traces}"
+ unless (← (← getEnv).getLocalConstantInfos).map (·.name) == names do
+ throwError "staged cell quotation audit retained copied declarations"
+ logInfo m!"staged cell quotation actual bodies: {theorems} theorems/{definitions} definitions; nonempty traces={traces}; full axioms={axioms}"
diff --git a/conformance/HexRCF/CellQuoteStages.lean b/conformance/HexRCF/CellQuoteStages.lean
new file mode 100644
index 0000000000..ee024c90fe
--- /dev/null
+++ b/conformance/HexRCF/CellQuoteStages.lean
@@ -0,0 +1,239 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+import HexRCF.RealCoefficients.NumberField
+import HexRCF.RootReplayLiterals
+import HexRCF.CellReplay.ZeroLiterals
+import HexRCF.CellReplay.Literals
+import HexRCF.RealCoefficients.CellQuote
+import HexRCF.RealCoefficients.SignatureQuote
+import HexRCF.RealCoefficients.RationalQuote
+import HexRCF.RealCoefficients.RowQuote
+open Lean Meta Qq Hex Hex.RealClosure Hex.SignDet Hex.RCF.RealCoefficients
+namespace Hex.RCF.CellQuoteStages
+def registry : BaseContext.Registry := fun _ => none
+abbrev base := Hex.RealClosure.NumberField.base registry
+abbrev signatureData : Codec.Json :=
+ .array (.cons RootReplayLiterals.j0
+ (.cons (.number 0) (.cons RootReplayLiterals.j0 .nil)))
+theorem signature_literal : signatureData = base.signature.literal.toJson := by
+ rw [Tower.Context.base_signature]
+ unfold BaseContext.rational
+ rw [BaseContext.Context.signature_real,BaseContext.RealContext.keys_rational]
+ rfl
+set_option maxHeartbeats 12000000
+set_option maxRecDepth 32768
+def operations : Hex.RealClosure.Replay.Operations base.sign :=
+ ⟨inferInstance,inferInstance,inferInstance,inferInstance,inferInstance,inferInstance,
+ inferInstance,inferInstance,rfl,rfl,rfl,rfl,rfl,rfl,rfl,rfl,base.sign,rfl⟩
+def values : Fin 0 → base.Value := Fin.elim0
+def matrix (positive : Bool) : Hex.RealFormula.QF 1 :=
+ .atom ⟨0,if positive then .eq else .gt⟩
+def cert : RadicalCert base.Value Tower.Signature :=
+ ⟨base.signature,1,1,1,0⟩
+def cells : Codec.Json :=
+ .array (.cons CellReplayTests.ZeroLiterals.sections
+ (.cons CellReplayTests.ZeroLiterals.sectors .nil))
+private meta def decode : RootQuote.DecoderM := fun expression => do
+ if let some proof ← RowQuote.decoder expression then return some proof
+ if let some proof ← SignatureQuote.decoder q(base.signature)
+ (mkConst ``signatureData) (mkConst ``signature_literal) expression then
+ return some proof
+ liftM (RationalQuote.decoder (mkConst ``registry) expression)
+
+private meta def restored (before : MetavarContext) (sentinel : Expr)
+ (names : Option (Array Name) := none) : MetaM Unit := do
+ let after ← getMCtx
+ unless !(← sentinel.mvarId!.isAssigned) && before.mvarCounter == after.mvarCounter &&
+ before.lmvarCounter == after.lmvarCounter && before.eAssignment.toList == after.eAssignment.toList &&
+ before.lAssignment.toList == after.lAssignment.toList &&
+ before.decls.toList.map Prod.fst == after.decls.toList.map Prod.fst do
+ throwError "staged quotation retained caller metavariables"
+ if let some names := names then
+ unless (← (← getEnv).getLocalConstantInfos).map (·.name) == names do
+ throwError "rejected staged quotation retained declarations"
+
+run_meta do
+ withoutExporting do
+ let basic : Hex.RealFormula.Reify.Config := {}
+ let config := {basic with ring := {basic.ring with budget :=
+ {basic.ring.budget with proofNodes := 2000000}}}
+ for (positive,suffix) in [(true,`trueChecked),(false,`falseChecked)] do
+ let flag : Q(Bool) := toExpr positive
+ let program : Q(Except Replay.Error Bool) := q(CellOperations.check operations
+ base.codec values (matrix $(flag)) [] cert .forallReal
+ RootReplayLiterals.constant cells)
+ let sentinel ← mkFreshExprMVar (mkConst ``Nat)
+ let before ← getMCtx
+ let action : Hex.RealFormula.Reify.ReifyM RootQuote.Result := do
+ sentinel.mvarId!.assign (mkNatLit 91)
+ CellQuote.replayWith program decode
+ let .ok quoted ← RootQuote.runWith action config
+ | throwError "staged zero reader refused {positive}"
+ restored before sentinel
+ let target ← mkEq (← mkAppM ``Except.toOption #[program])
+ (← mkAppM ``Option.some #[toExpr positive])
+ let proof ← Hex.RCF.checkProof `stagedZero target (mkExpectedPropHint quoted.proof target)
+ withExporting (isExporting := true) do
+ addDecl (.thmDecl {
+ name := Name.append `Hex.RCF.CellQuoteStages suffix
+ levelParams := []
+ type := target
+ value := proof})
+ let axioms ← collectAxioms (Name.append `Hex.RCF.CellQuoteStages suffix)
+ unless axioms.all (fun name => [``propext,``Classical.choice,``Quot.sound].contains name) do
+ throwError "unexpected staged zero axioms"
+ logInfo m!"staged zero {positive}: nodes={quoted.usage.proofNodes}; axioms={axioms}"
+ if positive then
+ let exact := {config with ring := {config.ring with budget :=
+ {config.ring.budget with proofNodes := quoted.usage.proofNodes}}}
+ let .ok repeated ← RootQuote.runWith action exact
+ | throwError "staged quotation failed at its exact budget"
+ unless repeated.usage == quoted.usage do throwError "staged quotation usage changed"
+ restored before sentinel
+ let names := (← (← getEnv).getLocalConstantInfos).map (·.name)
+ let small := {exact with ring := {exact.ring with budget :=
+ {exact.ring.budget with proofNodes := quoted.usage.proofNodes-1}}}
+ let .error (.budget exhausted) ← RootQuote.runWith action small
+ | throwError "staged quotation accepted below its exact budget"
+ unless exhausted.dimension == .proofNodes do throwError "wrong staged resource exhausted"
+ restored before sentinel (some names)
+ let touched ← IO.mkRef false
+ let failed ← try
+ let _ ← RootQuote.runWith (CellQuote.replayWith program fun _ => do
+ touched.set true
+ sentinel.mvarId!.assign (mkNatLit 92)
+ return some (← mkEqRefl (mkConst ``Bool.false))) config
+ pure false
+ catch _ => pure true
+ unless failed && (← touched.get) do
+ throwError "staged quotation did not check the wrong-goal proposal"
+ restored before sentinel (some names)
+ logInfo "staged exact/below/wrong-goal and full caller restoration checked"
+
+run_meta do
+ withoutExporting do
+ let program : Q(Except Replay.Error Bool) := q(CellOperations.check operations
+ base.codec values (matrix true) [] cert .forallReal RootReplayLiterals.constant cells)
+ let model ← mkAppM ``Hex.RealClosure.NumberField.rationalModel #[mkConst ``registry]
+ let strict ← mkAppM ``RootQuote.read_eq #[program,mkConst ``Bool.true,mkConst ``trueChecked]
+ let inputs := program.getAppArgs
+ let info ← getFunInfoNArgs program.getAppFn inputs.size
+ let inputs := inputs.zipIdx |>.filterMap fun (argument,index) =>
+ if info.paramInfo[index]!.binderInfo.isExplicit then some argument else none
+ let checker ← mkAppM ``CompleteReplay.check (inputs.extract 1 inputs.size)
+ let same ← mkAppM ``CellOperations.check_eq inputs
+ let accepted ← mkEqTrans (← mkEqSymm same) strict
+ let target : Q(Prop) := q(∀ _x : ℝ, (0 : ℝ) = 0)
+ let .ok source ← Reify.prepare target | throwError "constant original source was not reified"
+ let valuation ← withLocalDeclD `i (← mkAppM ``Fin #[mkNatLit 0]) fun i => do
+ let value ← mkAppM ``Tower.Model.value #[model,mkApp (mkConst ``values) i]
+ mkLambdaFVars #[i] value
+ let identityType ← mkEq valuation source.valuation
+ let identity ← mkFreshExprMVar identityType
+ let remaining ← Lean.Elab.runTactic' identity.mvarId!
+ (← `(tactic| funext i; exact Fin.elim0 i))
+ unless remaining.isEmpty do throwError "empty valuation identity left goals"
+ let identity ← Hex.RCF.checkProof `stagedValuation identityType (← instantiateMVars identity)
+ let proof ← CellQuote.finishPacket target checker accepted model identity
+ withExporting (isExporting := true) do
+ addDecl (.thmDecl {
+ name := `Hex.RCF.CellQuoteStages.source
+ levelParams := []
+ type := target
+ value := proof})
+ let falseProgram : Q(Except Replay.Error Bool) := q(CellOperations.check operations
+ base.codec values (matrix false) [] cert .forallReal RootReplayLiterals.constant cells)
+ let falseStrict ← mkAppM ``RootQuote.read_eq
+ #[falseProgram,mkConst ``Bool.false,mkConst ``falseChecked]
+ let falseInputs := inputs.set! 3 q(matrix false)
+ let falseChecker ← mkAppM ``CompleteReplay.check (falseInputs.extract 1 falseInputs.size)
+ let falseSame ← mkAppM ``CellOperations.check_eq falseInputs
+ let falseAccepted ← mkEqTrans (← mkEqSymm falseSame) falseStrict
+ let sentinel ← mkFreshExprMVar (mkConst ``Nat)
+ let before ← getMCtx
+ let names := (← (← getEnv).getLocalConstantInfos).map (·.name)
+ let failed ← try
+ let _ ← CellQuote.finishPacket target falseChecker falseAccepted model identity
+ pure false
+ catch _ => pure true
+ unless failed do throwError "false staged verdict proved the original goal"
+ restored before sentinel (some names)
+ logInfo "staged replay proves its original constant source; false verdict cannot prove that source"
+
+run_meta do
+ withoutExporting do
+ let basic : Hex.RealFormula.Reify.Config := {}
+ let config := {basic with ring := {basic.ring with budget :=
+ {basic.ring.budget with proofNodes := 2000000}}}
+ let malformed : Q(Except Replay.Error Bool) := q(CellOperations.check operations
+ base.codec values (matrix true) [] cert .forallReal RootReplayLiterals.constant (.array .nil))
+ let guarded : Q(Except Replay.Error Bool) := q(CellOperations.check operations
+ base.codec values (matrix true) [0] cert .forallReal .null .null)
+ let sentinel ← mkFreshExprMVar (mkConst ``Nat)
+ let before ← getMCtx
+ for (program,label) in [(malformed,"cells"),(guarded,"zero guard")] do
+ let names := (← (← getEnv).getLocalConstantInfos).map (·.name)
+ let graph ← IO.mkRef false
+ let .error (.providerFailure (.invalidProviderEvidence ..) _) ← RootQuote.runWith (do
+ sentinel.mvarId!.assign (mkNatLit 93)
+ CellQuote.replayWith program fun expression => do
+ if expression.getAppFn.isConstOf ``Codec.readGraph then graph.set true
+ decode expression) config
+ | throwError "invalid staged {label} accepted"
+ if label == "zero guard" && (← graph.get) then
+ throwError "original zero guard did not precede graph decoding"
+ restored before sentinel (some names)
+ let program : Q(Except Replay.Error Bool) := q(CellOperations.check operations
+ base.codec values (matrix true) [] cert .forallReal RootReplayLiterals.constant cells)
+ let names := (← (← getEnv).getLocalConstantInfos).map (·.name)
+ let .error (.providerFailure (.invalidProviderEvidence ⟨key,version⟩ _) _) ←
+ RootQuote.runWith (CellQuote.replayWith program fun _ => do
+ sentinel.mvarId!.assign (mkNatLit 94)
+ Hex.RealFormula.Reify.abort (.providerFailure (.invalidProviderEvidence
+ ⟨`Hex.RCF.CellQuoteStages,7⟩ "synthetic provider failure") #[])) config
+ | throwError "staged callback failure was not terminal"
+ unless key == `Hex.RCF.CellQuoteStages && version == 7 do
+ throwError "staged callback changed its structured failure"
+ restored before sentinel (some names)
+ logInfo "staged malformed cells, original zero guard, terminal callback and full rollback checked"
+namespace Quadratic
+def polynomial : base.Poly := DensePoly.ofCoeffs #[-2,0,1]
+def atom : Hex.RealFormula.Poly 1 := MvPoly.X 0 ^ 2 - 2
+def matrix : Hex.RealFormula.QF 1 := .and (.atom ⟨atom,.ge⟩)
+ (.and (.atom ⟨atom,.le⟩) (.atom ⟨0,.eq⟩))
+def cert : RadicalCert base.Value Tower.Signature :=
+ ⟨base.signature,polynomial,polynomial,polynomial,1⟩
+def cells : Codec.Json := .array (.cons CellReplayTests.Literals.sections
+ (.cons CellReplayTests.Literals.sectors .nil))
+set_option maxHeartbeats 24000000 in
+set_option trace.Hex.RCF.CellQuote true in
+set_option trace.Hex.RCF.RowQuote true in
+run_meta do
+ withoutExporting do
+ let basic : Hex.RealFormula.Reify.Config := {}
+ let config := {basic with ring := {basic.ring with budget :=
+ {basic.ring.budget with proofNodes := 16000000}}}
+ for (quantifier,verdict,suffix) in
+ [(Hex.RealFormula.Quantifier.existsReal,true,`existsChecked)] do
+ let quantifier : Q(Hex.RealFormula.Quantifier) := match quantifier with
+ | .existsReal => q(Hex.RealFormula.Quantifier.existsReal)
+ | .forallReal => q(Hex.RealFormula.Quantifier.forallReal)
+ let program : Q(Except Replay.Error Bool) := q(CellOperations.check operations
+ base.codec values matrix [] cert $(quantifier) RootReplayLiterals.whole cells)
+ let quoted ← match ← RootQuote.runWith (CellQuote.replayWith program decode) config with
+ | .ok quoted => pure quoted
+ | .error error => throwError "staged quadratic reader refused {verdict}: {Hex.RealFormula.Reify.Error.toMessageData error}"
+ let target ← mkEq (← mkAppM ``Except.toOption #[program])
+ (← mkAppM ``Option.some #[toExpr verdict])
+ let proof ← Hex.RCF.checkProof `stagedQuadratic target
+ (mkExpectedPropHint quoted.proof target)
+ withExporting (isExporting := true) do
+ addDecl (.thmDecl {
+ name := Name.append `Hex.RCF.CellQuoteStages.Quadratic suffix
+ levelParams := [],type := target,value := proof})
+ logInfo m!"staged two-root quadratic {verdict}: nodes={quoted.usage.proofNodes}"
+end Quadratic
+end Hex.RCF.CellQuoteStages
diff --git a/conformance/HexRCF/CellSourceProofs.lean b/conformance/HexRCF/CellSourceProofs.lean
new file mode 100644
index 0000000000..f1eb6705e7
--- /dev/null
+++ b/conformance/HexRCF/CellSourceProofs.lean
@@ -0,0 +1,79 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+import HexRCF.CellSourceQuote
+import HexRCF.RealCoefficients.CellBuild
+import HexRCF.ProofEvidence
+import HexRCF.SelectedRoot.KernelCheck
+import KernelReplay.AxiomClosure
+meta section
+open Lean Meta Hex.RealClosure Hex.RCF.RealCoefficients
+set_option maxRecDepth 32768
+set_option maxHeartbeats 12000000
+run_meta do
+ let roots := #[``Hex.RCF.CellSourceQuote.checked,``Hex.RCF.CellSourceQuote.source]
+ let axioms ← Algebraic.KernelReplay.AxiomClosure.collect roots
+ unless axioms.all (fun name => [``propext,``Classical.choice,``Quot.sound].contains name) do
+ throwError "fresh complete source has inadmissible dependencies"
+ let dependencies ← Hex.RCF.ProofEvidence.projectDependencies roots
+ for required in #[``SourceIdentity.identify,``SourceIdentity.observe,``SourceIdentity.select,
+ ``ScalarPacket.restore,``Tower.Model.root_generator,
+ ``RowQuote.read_eq,``Hex.SignDet.Dag.selectedSigns_memo,
+ ``CompleteReplay.check_sound,``CellOperations.check_of_parts,
+ ``CellOperations.readCells_of_parts,``CellRead.collectWith_eq,``CellOperations.check_eq,
+ ``RootQuote.read_eq,``Hex.SignDet.Replay.check.eq_1,``Hex.MvPoly.termsList,
+ ``RowQuote.values_cast,``RowQuote.values_restore,
+ ``RowQuote.values_retarget,``RowQuote.value_eq] do
+ unless dependencies.contains required do throwError "fresh complete source omitted {required}"
+ for forbidden in #[``CellReplayTests.Algebraic.Schema.coefficient,
+ ``Hex.RCF.SourceIdentityPacket.coefficient,``Hex.RCF.SourceIdentityPacket.selected,
+ ``Hex.RCF.SelectedRootTests.Data.alpha_value,``Hex.RCF.SelectedRootTests.Data.selectedSqrt,
+ ``Hex.RCF.SourceIdentityCases.source_selected,``Hex.RCF.SourceIdentityCases.coefficient,
+ ``Hex.RCF.SourceIdentityCases.equationFact,``Hex.RCF.SourceIdentityCases.marginFact,
+ ``CellReplayTests.Operations.accepted,``CellReplayTests.Operations.checked,
+ ``CellReplayTests.Operations.source,``CellReplayTests.Algebraic.CompleteQuote.checked,
+ ``CellReplayTests.Algebraic.CompleteQuote.source,``CellReplayTests.Algebraic.Read.accepted,
+ ``CellReplayTests.Algebraic.Canonical.evidence,``CellReplayTests.Algebraic.Canonical.cert,
+ ``CellBuild.build,``ScalarPacket.build,``ScalarPacket.buildLiteral] do
+ if dependencies.contains forbidden then throwError "fresh complete source reused {forbidden}"
+ let names := (← (← getEnv).getLocalConstantInfos).map (·.name)
+ let modules := (← getEnv).header.moduleNames
+ let allowed := #[`HexRCF.SourceIdentityPacket,`HexRCF.SourceIdentityLiterals,
+ `HexRCF.RealCoefficients.SourceIdentity,`HexRCF.RealCoefficients.ScalarPacket,
+ `HexRCF.RealCoefficients.RowPacketQuote,`HexRCF.CellSourceQuote,`HexRCF.RealCoefficients.RootQuote,
+ `HexRCF.RealCoefficients.ScalarQuote,`HexRCF.RealCoefficients.CellQuote,
+ `HexRCF.RealCoefficients.RowQuote,`HexRCF.RealCoefficients.CellRead,
+ `HexRCF.RealCoefficients.CellOperations]
+ let mut theorems : Nat := 0
+ let mut definitions : Nat := 0
+ let mut traces : Nat := 0
+ for name in dependencies.toArray do
+ let some index := (← getEnv).getModuleIdxFor? name | continue
+ unless allowed.contains modules[index]! do continue
+ let declaration ← match ← getConstInfo name with
+ | .thmInfo info =>
+ theorems := theorems+1
+ pure (Declaration.thmDecl {info with name := ← mkFreshUserName `__completeBody})
+ | .defnInfo info =>
+ definitions := definitions+1
+ pure (Declaration.defnDecl {info with name := ← mkFreshUserName `__completeData})
+ | _ => continue
+ let options := (← getOptions).setBool `debug.skipKernelTC false
+ let environment := Kernel.enableDiag (Kernel.resetDiag (← getEnv)) true
+ let checked ← ofExceptKernelException <| environment.addDeclCore
+ (Core.getMaxHeartbeats options).toUSize (maxRecDepth.get options).toUSize
+ declaration none (doCheck := true)
+ let diagnostics := Kernel.getDiagnostics checked
+ unless diagnostics.enabled do throwError "complete source diagnostics disabled"
+ if let some (producer,count) := Hex.RCF.SelectedRootTests.KernelCheck.violation? diagnostics
+ #[``ScalarPacket.build,``ScalarPacket.buildLiteral,``Algebraic.Element.codec,
+ ``Hex.SignDet.Descriptor.ofReplay?] then
+ throwError "complete source reduced producer {producer}: {count}; body={name}"
+ if !diagnostics.unfoldCounter.isEmpty then traces := traces+1
+ unless theorems == 1192 && definitions == 202 && traces == 1352 do
+ throwError "complete source inventory changed: {theorems}/{definitions}/{traces}"
+ unless (← (← getEnv).getLocalConstantInfos).map (·.name) == names do
+ throwError "complete source audit retained copied declarations"
+ logInfo m!"complete original source actual bodies: {theorems} theorems/{definitions} definitions; nonempty traces={traces}; full axioms={axioms}"
diff --git a/conformance/HexRCF/CellSourceQuote.lean b/conformance/HexRCF/CellSourceQuote.lean
new file mode 100644
index 0000000000..10ed93a30f
--- /dev/null
+++ b/conformance/HexRCF/CellSourceQuote.lean
@@ -0,0 +1,219 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+import HexRCF.RealCoefficients.RowQuote
+import HexRCF.CellReplay.Operations
+import HexRCF.RealCoefficients.RootQuote
+import HexRCF.RealCoefficients.RationalQuote
+import HexRCF.RealCoefficients.ScalarQuote
+import HexRCF.RootTableQuote.Input
+import HexRCF.RealCoefficients.CellQuote
+import HexRCF.RealCoefficients.TowerCompile
+import HexRCF.SourceIdentityPacket
+open Lean Meta Qq Hex Hex.RealClosure Hex.SignDet Hex.RCF.RealCoefficients
+open Hex.RCF.RealCoefficients.CellReplayTests
+open Hex.RCF.RealCoefficients.CellReplayTests.Algebraic
+/-! Quote the original source through independently restored literal cells over
+one retained selected algebraic parent. Older complete-packet acceptance proofs
+are excluded by the importing audit; coefficient seed facts remain checked inputs. This fixed-parent case does not reconstruct arbitrary source histories. -/
+namespace Hex.RCF.CellSourceQuote
+set_option maxHeartbeats 60000000
+set_option maxRecDepth 32768
+set_option smartUnfolding false
+set_option trace.Hex.RCF.RowQuote true
+def rational (value : Int) : Codec.Json := .arr #[.number 0,.number value,.number 1]
+def scalar (polynomial : Array Codec.Json) (sign : Int) : Codec.Json :=
+ .arr #[.arr polynomial,.number sign]
+def polynomial : Codec.Json := .arr #[
+ scalar #[rational 0,rational (-1)] (-1),.arr #[],scalar #[rational 1] 1]
+
+/-- Replay the original coefficient source in this same request instead of
+importing an already proved coefficient identity. The retained parent and its
+generator equation remain explicit; no native source producer is evaluated. -/
+private meta def sourceCoefficient : Hex.RealFormula.Reify.ReifyM Expr := do
+ let (anchor,_) ← liftM Hex.RCF.SourceIdentityPacket.inputs
+ let key (name : Name) := mkAppM ``Prod.fst #[mkConst name]
+ let graph (name : Name) := do mkAppM ``Prod.snd #[← mkAppM ``Prod.snd #[mkConst name]]
+ let packet : SourceIdentity.Packet := {
+ subject := mkConst ``Hex.RCF.SelectedRootTests.Literals.lowerSubject
+ graph := mkConst ``Hex.RCF.SelectedRootTests.Literals.lowerGraph
+ equation := ← key ``Hex.RCF.SelectedRootTests.SourceIdentityPackets.packet0
+ equationGraph := ← graph ``Hex.RCF.SelectedRootTests.SourceIdentityPackets.packet0
+ enclosure := ← key ``Hex.RCF.SelectedRootTests.SourceIdentityPackets.packet1
+ enclosureGraph := ← graph ``Hex.RCF.SelectedRootTests.SourceIdentityPackets.packet1
+ equationValue := mkConst ``Hex.RCF.SourceIdentityPacket.equation_value
+ enclosureValue := mkConst ``Hex.RCF.SourceIdentityPacket.enclosure_value }
+ let restored ← SourceIdentity.restorePacketWith anchor packet
+ (mkConst ``Hex.RCF.SelectedRootTests.Data.base) (mkConst ``Hex.RCF.SelectedRootTests.Data.rational)
+ fun expression => liftM (RationalQuote.decoder (mkConst ``Hex.RCF.SelectedRootTests.Data.registry) expression)
+ let same ← mkAppM ``Option.get_of_eq_some
+ #[mkConst ``Hex.RCF.SelectedRootTests.Data.lowerAccepted,restored.header.root.proof]
+ let model := mkConst ``Hex.RCF.SelectedRootTests.Data.rational
+ let fields ← #[``Tower.Model.value,``Tower.Model.zero_iff,``Tower.Model.one,
+ ``Tower.Model.add,``Tower.Model.sub,``Tower.Model.mul,``Tower.Model.nat,
+ ``Tower.Model.sign].mapM fun name => mkAppM name #[model]
+ let rootValue ← withLocalDeclD `root (← inferType restored.header.root.value) fun root => do
+ mkLambdaFVars #[root] (← mkAppM ``Descriptor.root (fields.push root))
+ let selected ← mkEqTrans (← mkAppM ``congrArg #[rootValue,same]) restored.identity.proof
+ let parentValue ← mkAppM ``Tower.Model.value #[mkConst ``Schema.original]
+ let generator ← mkAppM ``congrArg
+ #[parentValue,← mkEqSymm (mkConst ``Hex.RCF.SelectedRootTests.Data.generator_eq)]
+ let chain ← mkAppM ``Tower.Chain.base
+ #[← mkAppM ``BaseContext.rational #[mkConst ``Hex.RCF.SelectedRootTests.Data.registry]]
+ let interpreted ← mkAppM ``Tower.Model.root_generator
+ #[chain,model,mkConst ``Hex.RCF.SelectedRootTests.Data.lower,
+ mkConst ``Hex.RCF.SelectedRootTests.Data.frozenFrame,mkConst ``Hex.RCF.SelectedRootTests.Data.frameEncoded]
+ let proof ← mkEqTrans generator (← mkEqTrans interpreted selected)
+ let target : Q(Prop) := q(Schema.original.value Hex.RCF.SelectedRootTests.Data.alpha = Real.sqrt 2)
+ Hex.RealFormula.Reify.accountProof target
+ Hex.RealFormula.Reify.accountProof proof
+ let proof ← Hex.RCF.checkProof `jointSourceCoefficient target (mkExpectedPropHint proof target)
+ logInfo m!"original coefficient authenticated in request; proofNodes={(← get).budget.consumed.proofNodes}"
+ return proof
+
+run_meta do
+ withoutExporting do
+ let target : Q(Prop) := q(∃ x : ℝ, x ^ 2 - Real.sqrt 2 ≥ 0 ∧
+ x ^ 2 - Real.sqrt 2 ≤ 0 ∧ (0 : ℝ) = 0)
+ let basic : Hex.RealFormula.Reify.Config := {}
+ let config := {basic with ring := {basic.ring with budget :=
+ {basic.ring.budget with proofNodes := 24000000}}}
+ let .ok source ← Reify.prepare target config
+ | throwError "original complete-cell source was not recognized"
+ unless source.coefficients.size == 1 && source.divisors.isEmpty do
+ throwError "original complete-cell source changed its coefficient/guard inventory"
+ let quantified ← whnf source.formula
+ unless quantified.getAppFn.isConstOf ``Hex.RealFormula.Prenex.quant do
+ throwError "original complete-cell source is not quantified"
+ let matrix ← whnf quantified.appArg!
+ unless matrix.getAppFn.isConstOf ``Hex.RealFormula.Prenex.matrix do
+ throwError "original complete-cell source has no shared matrix"
+ let formula := matrix.appArg!
+ let codec : Q(ValueCodec (Algebraic.Element Hex.RCF.SelectedRootTests.Data.native)) :=
+ q(Algebraic.Element.codec (context := Hex.RCF.SelectedRootTests.Data.native)
+ Hex.RCF.SelectedRootTests.Data.base.codec)
+ let reader ← mkAppM ``Codec.readPoly #[codec,mkConst ``polynomial]
+ let result ← match ← RootQuote.runWith (do
+ let (coefficients,divisors) ← TowerCompile.prepareWith source
+ (mkConst ``Schema.original) fun expression => do
+ if expression != q(Real.sqrt 2) then return none
+ return some ⟨mkConst ``Hex.RCF.SelectedRootTests.Data.alpha,← sourceCoefficient⟩
+ unless coefficients.size == 1 && divisors.isEmpty do
+ throwError "compiled original source changed its coefficient/guard inventory"
+ let some compiled := coefficients[0]?
+ | throwError "compiled original source omitted its coefficient"
+ unless ← isDefEq compiled.expression q(Schema.values 0) do
+ throwError "compiled original source changed the retained certificate coordinate"
+ logInfo m!"prepared source coefficient inventory compiled in request; proofNodes={(← get).budget.consumed.proofNodes}"
+ let p ← ScalarQuote.quotePolyWith reader (mkConst ``Records.facts) fun expression =>
+ liftM (RationalQuote.decoder (mkConst ``Hex.RCF.SelectedRootTests.Data.registry) expression)
+ logInfo m!"literal polynomial reconstructed; proofNodes={p.usage.proofNodes}"
+ let polynomialType ← inferType p.value
+ Hex.RealFormula.Reify.accountProof polynomialType
+ Hex.RealFormula.Reify.accountProof p.value
+ let polynomialName := mkPrivateName (← getEnv) (← mkFreshUserName `FrozenPolynomial)
+ let polynomial ← mkAuxDefinition polynomialName polynomialType p.value (compile := false)
+ let signature ← mkAppM ``Tower.Context.signature #[mkConst ``Schema.parent]
+ let cert ← mkAppM ``RadicalCert.mk #[signature,polynomial,polynomial,polynomial,mkNatLit 1]
+ let certificateType ← inferType cert
+ Hex.RealFormula.Reify.accountProof certificateType
+ Hex.RealFormula.Reify.accountProof cert
+ let certificateName := mkPrivateName (← getEnv) (← mkFreshUserName `FrozenRadical)
+ let cert ← mkAuxDefinition certificateName certificateType cert (compile := false)
+ let cells := mkApp (mkConst ``Codec.Json.Value.array)
+ (mkApp2 (mkConst ``Codec.Json.Values.cons) (mkConst ``Literals.sections)
+ (mkApp2 (mkConst ``Codec.Json.Values.cons) (mkConst ``Literals.sectors)
+ (mkConst ``Codec.Json.Values.nil)))
+ let empty ← mkListLit (← mkAppM ``Tower.Context.Value #[mkConst ``Schema.parent]) []
+ let some operations ← unfoldDefinition? (mkConst ``Operations.operations)
+ | throwError "supplied operations have no accessible definition"
+ let operations := operations.replace fun expression =>
+ if expression.isConstOf ``Hex.RCF.SelectedRootTests.Data.reduction then
+ some (mkConst ``Hex.RCF.RootTableQuoteTests.reduction)
+ else if expression.isConstOf ``Hex.RCF.SelectedRootTests.Data.reduction_eq then
+ some (mkConst ``Hex.RCF.RootTableQuoteTests.reduction_eq)
+ else none
+ Meta.check operations
+ let operationsType ← inferType operations
+ Hex.RealFormula.Reify.accountProof operationsType
+ Hex.RealFormula.Reify.accountProof operations
+ let name := mkPrivateName (← getEnv) (← mkFreshUserName `FrozenOperations)
+ let operations ← mkAuxDefinition name operationsType operations (compile := false)
+ let program ← mkAppM ``CellOperations.check
+ #[operations,mkConst ``Operations.codec,mkConst ``Schema.values,
+ formula,empty,cert,
+ mkConst ``Hex.RealFormula.Quantifier.existsReal,mkConst ``Literals.roots,cells]
+ let quoted ← CellQuote.replayWith program fun expression => do
+ if let some proof ← RowQuote.decoder expression then return some proof
+ if expression.getAppFn.isConstOf ``RootTable.read then
+ let table ← RootQuote.quoteWith expression fun expression =>
+ liftM (RationalQuote.decoder (mkConst ``Hex.RCF.SelectedRootTests.Data.registry) expression)
+ let kind ← inferType table.value
+ Hex.RealFormula.Reify.accountProof kind
+ Hex.RealFormula.Reify.accountProof table.value
+ let name := mkPrivateName (← getEnv) (← mkFreshUserName `FrozenRootTable)
+ let value ← mkAuxDefinition name kind table.value (compile := false)
+ let strict ← mkAppM ``RootQuote.read_eq #[expression,table.value,table.proof]
+ let readerType ← whnf (← inferType expression)
+ unless readerType.isAppOfArity ``Except 2 do
+ throwError "nested root-table result changed its exception type"
+ let accepted ← mkAppOptM ``Except.ok
+ #[some readerType.getAppArgs[0]!,some readerType.getAppArgs[1]!,some value]
+ let target ← mkEq expression accepted
+ Hex.RealFormula.Reify.accountProof target
+ Hex.RealFormula.Reify.accountProof strict
+ return some (← Hex.RCF.checkProof `frozenTable target (mkExpectedPropHint strict target))
+ return none
+ let result := quoted
+ let kind ← inferType result.proof
+ unless kind.isAppOfArity ``Eq 3 do throwError "complete quotation did not return an equation"
+ let optional := kind.getAppArgs[1]!
+ unless optional.getAppFn.isConstOf ``Except.toOption do
+ throwError "staged quotation omitted the optional reader boundary"
+ let program := optional.getAppArgs.back!
+ unless program.getAppFn.isConstOf ``CellOperations.check do
+ throwError "complete quotation changed its original checker"
+ let readerType ← whnf (← inferType program)
+ let accepted ← mkAppOptM ``Except.ok
+ #[some readerType.getAppArgs[0]!,some readerType.getAppArgs[1]!,some (mkConst ``Bool.true)]
+ let target ← mkEq program accepted
+ let checked ← mkAppM ``RootQuote.read_eq #[program,result.value,result.proof]
+ Hex.RealFormula.Reify.accountProof target
+ Hex.RealFormula.Reify.accountProof checked
+ let proof ← Hex.RCF.checkProof `freshCompleteLiteral target (mkExpectedPropHint checked target)
+ let axioms ← collectAxioms proof.getAppFn.constName!
+ unless axioms.all (fun name => [``propext,``Classical.choice,``Quot.sound].contains name) do
+ throwError "fresh complete literal quote has inadmissible dependencies"
+ addDecl (.thmDecl {
+ name := `Hex.RCF.CellSourceQuote.checked,levelParams := [],type := target,value := proof})
+ let identity ← CellQuote.valuationWith source (mkConst ``Schema.original)
+ (mkConst ``Schema.values) (coefficients.map (·.proof))
+ let realTarget := source.original
+ let arguments := program.getAppArgs
+ let info ← getFunInfoNArgs program.getAppFn arguments.size
+ let inputs := arguments.zipIdx |>.filterMap fun (argument,index) =>
+ if info.paramInfo[index]!.binderInfo.isExplicit then some argument else none
+ let checker ← mkAppM ``CompleteReplay.check (inputs.extract 1 inputs.size)
+ let law ← mkAppM ``CellOperations.check_eq inputs
+ let accepted ← mkAppM ``Eq.trans #[← mkEqSymm law,mkConst `Hex.RCF.CellSourceQuote.checked]
+ let completed ← CellQuote.finishPacketWith source realTarget checker accepted
+ (mkConst ``Schema.original) identity
+ let sourceProof := completed.proof
+ Hex.RealFormula.Reify.accountProof realTarget
+ Hex.RealFormula.Reify.accountProof sourceProof
+ let sourceProof ← Hex.RCF.checkProof `freshCompleteSource realTarget sourceProof
+ addDecl (.thmDecl {
+ name := `Hex.RCF.CellSourceQuote.source,levelParams := [],type := realTarget,value := sourceProof})
+ let sourceAxioms ← collectAxioms `Hex.RCF.CellSourceQuote.source
+ unless sourceAxioms.all (fun name => [``propext,``Classical.choice,``Quot.sound].contains name) do
+ throwError "complete original source quotation has inadmissible dependencies"
+ logInfo m!"original algebraic source quotation proofNodes={result.usage.proofNodes}; axioms={axioms}"
+ logInfo m!"original algebraic source complete proofNodes={completed.usage.proofNodes}"
+ return {completed with usage := (← get).budget.consumed}
+ ) config source.usage with
+ | .ok result => pure result
+ | .error error => throwError "fresh complete literal quote refused: {Hex.RealFormula.Reify.Error.toMessageData error}"
+ logInfo m!"complete original-source attempt consumed proofNodes={result.usage.proofNodes}"
+end Hex.RCF.CellSourceQuote
diff --git a/conformance/HexRCF/DependentQuote.lean b/conformance/HexRCF/DependentQuote.lean
index 18184c62e0..329cb48236 100644
--- a/conformance/HexRCF/DependentQuote.lean
+++ b/conformance/HexRCF/DependentQuote.lean
@@ -33,7 +33,8 @@ run_meta do
for name in [``Hex.RCF.DependentQuote.reader,``Hex.RCF.DependentQuote.nested,
``Hex.RCF.DependentQuote.continued,``Hex.RCF.DependentQuote.queried,
``Hex.RCF.DependentQuote.boolReader,``Hex.RCF.DependentQuote.multiple,
- ``Hex.RCF.DependentQuote.independent] do
+ ``Hex.RCF.DependentQuote.independent,``Hex.RCF.DependentQuote.proofFunction,
+ ``Hex.RCF.DependentQuote.continuedFunction] do
let sentinel ← mkFreshExprMVar (mkConst ``Nat)
let levelSentinel ← mkFreshLevelMVar
let before ← getMCtx
@@ -157,8 +158,9 @@ run_meta do
if expression.isConstOf ``Hex.RCF.DependentQuote.gate then mutate
return none)
unchanged
- refused "non-proof argument" do
- RootQuote.runWith (RootQuote.quoteOptionWith (mkConst ``Hex.RCF.DependentQuote.dependentData) decoder)
- unchanged
+ for name in [``Hex.RCF.DependentQuote.dependentData,``Hex.RCF.DependentQuote.dependentFunction] do
+ refused "non-proof argument" do
+ RootQuote.runWith (RootQuote.quoteOptionWith (mkConst name) decoder)
+ unchanged
logInfo "dependent major: charged decline, wrong proof, terminal failure, decline-only and non-proof trailing controls checked"
end Hex.RCF.DependentQuote
diff --git a/conformance/HexRCF/DependentQuoteData.lean b/conformance/HexRCF/DependentQuoteData.lean
index 3ab2a1e494..e974108fd2 100644
--- a/conformance/HexRCF/DependentQuoteData.lean
+++ b/conformance/HexRCF/DependentQuoteData.lean
@@ -70,10 +70,31 @@ theorem query_value {n : Nat} (h : query = some n) : n = 7 :=
(fun n h k => some ⟨n,(query_value h).trans ((query_value k).symm.trans (query_value k))⟩)
query rfl rfl
+@[expose] noncomputable def proofFunction : Option Nat :=
+ @Option.rec Nat
+ (fun result => ((input = result) → Nat) → (input = result) → Option Nat)
+ (fun f h => some (f h))
+ (fun _ f h => some (f h))
+ input (fun _ => 7) rfl
+
+@[expose] noncomputable def continuedFunction : Option Nat :=
+ @Option.rec Nat
+ (fun result => (input = result) → ((input = result) → Nat) → Option Nat)
+ (fun h f => some (f h))
+ (fun _ h f => some (f h))
+ input rfl (fun _ => 29)
+
@[expose] noncomputable def dependentData : Option {n : Nat // n = 7} :=
@Option.rec Nat (fun result => (input = result) → Fin (result.getD 0) → Option {n : Nat // n = 7})
(fun _ _ => none)
(fun n h _ => some ⟨n,input_value h⟩)
input rfl ⟨0,by simp [input,gate_eq]⟩
+@[expose] noncomputable def dependentFunction : Option Nat :=
+ @Option.rec Nat
+ (fun result => ((input = result) → Fin (result.getD 0)) → (input = result) → Option Nat)
+ (fun _ _ => none)
+ (fun _ f h => some (f h).val)
+ input (fun _ => ⟨0,by simp [input,gate_eq]⟩) rfl
+
end Hex.RCF.DependentQuote
diff --git a/conformance/HexRCF/DependentQuoteProofs.lean b/conformance/HexRCF/DependentQuoteProofs.lean
index a47a171881..3828650b77 100644
--- a/conformance/HexRCF/DependentQuoteProofs.lean
+++ b/conformance/HexRCF/DependentQuoteProofs.lean
@@ -3,7 +3,7 @@ Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Kim Morrison
-/
-import HexRCF.DependentQuote
+import HexRCF.ProofFunctionPublic
import HexRCF.RealCoefficients.ScalarPacket
import HexRCF.ProofEvidence
import KernelReplay.AxiomClosure
@@ -20,14 +20,18 @@ run_meta do
let roots := #[``Hex.RCF.DependentQuote.reader_checked,``Hex.RCF.DependentQuote.nested_checked,
``Hex.RCF.DependentQuote.continued_checked,``Hex.RCF.DependentQuote.queried_checked,
``Hex.RCF.DependentQuote.boolReader_checked,``Hex.RCF.DependentQuote.multiple_checked,
- ``Hex.RCF.DependentQuote.independent_checked]
+ ``Hex.RCF.DependentQuote.independent_checked,
+ ``Hex.RCF.DependentQuote.proofFunction_checked,
+ ``Hex.RCF.DependentQuote.continuedFunction_checked,
+ ``Hex.RCF.ProofFunctionPublic.first,``Hex.RCF.ProofFunctionPublic.continued]
let axioms ← Algebraic.KernelReplay.AxiomClosure.collect roots
unless axioms.all (fun name => #[``propext,``Classical.choice,``Quot.sound].contains name) do
throwError "unexpected dependent quotation axioms: {axioms}"
let dependencies ← Hex.RCF.ProofEvidence.projectDependencies roots
let originalNames := (← (← getEnv).getLocalConstantInfos).map (·.name)
let modules := (← getEnv).header.moduleNames
- let allowed := #[`HexRCF.DependentQuote,`HexRCF.DependentQuoteData,`HexRCF.RealCoefficients.RootQuote]
+ let allowed := #[`HexRCF.DependentQuote,`HexRCF.DependentQuoteData,
+ `HexRCF.ProofFunctionPublic,`HexRCF.RealCoefficients.RootQuote]
let mut theorems : Nat := 0
let mut definitions : Nat := 0
let mut traces : Nat := 0
@@ -57,7 +61,7 @@ run_meta do
``Descriptor.ofReplay?] then
throwError "dependent quotation reduced producer {producer}: {count}; body={name}"
if !diagnostics.unfoldCounter.isEmpty then traces := traces+1
- unless theorems == 114 && definitions == 14 && traces == 64 do
+ unless theorems == 153 && definitions == 16 && traces == 78 do
throwError "dependent quotation body inventory changed: {theorems}/{definitions}/{traces}"
unless (← (← getEnv).getLocalConstantInfos).map (·.name) == originalNames do
throwError "dependent quotation audit retained declarations"
diff --git a/conformance/HexRCF/DependentScalarProofs.lean b/conformance/HexRCF/DependentScalarProofs.lean
index 7bef067927..7fe55e286b 100644
--- a/conformance/HexRCF/DependentScalarProofs.lean
+++ b/conformance/HexRCF/DependentScalarProofs.lean
@@ -54,7 +54,7 @@ run_meta do
``Descriptor.ofReplay?] then
throwError "dependent scalar reduced producer {producer}: {count}; body={name}"
if !diagnostics.unfoldCounter.isEmpty then traces := traces+1
- unless theorems == 61 && definitions == 4 && traces == 56 do
+ unless theorems == 61 && definitions == 4 && traces == 53 do
throwError "dependent scalar body inventory changed: {theorems}/{definitions}/{traces}"
unless (← (← getEnv).getLocalConstantInfos).map (·.name) == originalNames do
throwError "dependent scalar audit retained declarations"
diff --git a/conformance/HexRCF/EnumeratedSource/Cubic.lean b/conformance/HexRCF/EnumeratedSource/Cubic.lean
new file mode 100644
index 0000000000..f7dc69e415
--- /dev/null
+++ b/conformance/HexRCF/EnumeratedSource/Cubic.lean
@@ -0,0 +1,74 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+module
+public import HexSignDet.Codec.Json
+public import HexRCF.EnumeratedSource.CubicData0
+/-! Shared constructor data from `conformance-fixtures/HexRCF/enumerated-source.json`.
+The descriptor reader checks this supplied replay independently of its producer. -/
+public section
+
+namespace Hex.RCF.RealCoefficients.EnumeratedSource.Cubic
+open Hex.SignDet
+@[expose] def j235 : Codec.Json := .array (.cons (j5) (.cons (j232) (.cons (j234) (.cons (j202) .nil))))
+@[expose] def j236 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-19317815121)) (.cons (.number (10224230144)) .nil)))
+@[expose] def j237 : Codec.Json := .array (.cons (j236) (.cons (j11) .nil))
+@[expose] def j238 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (1595863148103357)) (.cons (.number (670055146717184)) .nil)))
+@[expose] def j239 : Codec.Json := .array (.cons (j4) (.cons (j237) (.cons (j238) .nil)))
+@[expose] def j240 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-1340110293434368)) (.cons (.number (531954382701119)) .nil)))
+@[expose] def j241 : Codec.Json := .array (.cons (j240) (.cons (j18) .nil))
+@[expose] def j242 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (1346921726276322561523562446848)) (.cons (.number (282975465274928573198483852161)) .nil)))
+@[expose] def j243 : Codec.Json := .array (.cons (j4) (.cons (j241) (.cons (j242) .nil)))
+@[expose] def j244 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-451144542095674201519953963846426420385261889)) (.cons (.number (358250457724023371626526318932137133553811456)) .nil)))
+@[expose] def j245 : Codec.Json := .array (.cons (j244) (.cons (j4) .nil))
+@[expose] def j246 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (860908980737602065149122892520026022839822591)) (.cons (.number (453549534178797199769117499790381448220762277801366206283776)) .nil)))
+@[expose] def j247 : Codec.Json := .array (.cons (j4) (.cons (j245) (.cons (j246) .nil)))
+@[expose] def j248 : Codec.Json := .array (.cons (j243) (.cons (j247) .nil))
+@[expose] def j249 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-848507517748138632283156122497)) (.cons (.number (673460863138161280761781223424)) .nil)))
+@[expose] def j250 : Codec.Json := .array (.cons (j249) (.cons (j4) .nil))
+@[expose] def j251 : Codec.Json := .array (.cons (j4) (.cons (j250) .nil))
+@[expose] def j252 : Codec.Json := .array (.cons (j251) .nil)
+@[expose] def j253 : Codec.Json := .array (.cons (j235) (.cons (j204) (.cons (j239) (.cons (j248) (.cons (j252) .nil)))))
+@[expose] def j254 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j229) (.cons (j6) (.cons (j7) (.cons (j33) (.cons (j253) (.cons (j224) (.cons (j225) (.cons (.number (2)) (.cons (.number (1)) (.cons (.number (1)) .nil))))))))))))
+@[expose] def j255 : Codec.Json := .array (.cons (j35) (.cons (j226) (.cons (j254) .nil)))
+@[expose] def j256 : Codec.Json := .array (.cons (.number (0)) (.cons (j195) (.cons (j61) .nil)))
+@[expose] def j257 : Codec.Json := .array (.cons (j256) .nil)
+@[expose] def j258 : Codec.Json := .array (.cons (j257) (.cons (j195) .nil))
+@[expose] def j259 : Codec.Json := .array (.cons (j258) .nil)
+@[expose] def j260 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-645)) (.cons (.number (128)) .nil)))
+@[expose] def j261 : Codec.Json := .array (.cons (j260) (.cons (j4) .nil))
+@[expose] def j262 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (39938399)) (.cons (.number (4194304)) .nil)))
+@[expose] def j263 : Codec.Json := .array (.cons (j4) (.cons (j261) (.cons (j262) .nil)))
+@[expose] def j264 : Codec.Json := .array (.cons (.number (0)) (.cons (j229) (.cons (j263) .nil)))
+@[expose] def j265 : Codec.Json := .array (.cons (j256) (.cons (j264) .nil))
+@[expose] def j266 : Codec.Json := .array (.cons (j265) (.cons (j229) .nil))
+@[expose] def j267 : Codec.Json := .array (.cons (j266) .nil)
+@[expose] def j268 : Codec.Json := .array (.cons (j60) (.cons (j259) (.cons (j267) .nil)))
+@[expose] def j269 : Codec.Json := .array (.cons (j257) .nil)
+@[expose] def j270 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j6) (.cons (j7) (.cons (j196) (.cons (.number (3)) (.cons (j21) (.cons (j255) (.cons (j268) (.cons (j269) (.cons (j75) .nil)))))))))))
+@[expose] def j271 : Codec.Json := .array (.cons (j270) (.cons (j0) .nil))
+@[expose] def j272 : Codec.Json := .array (.cons (j95) (.cons (j195) .nil))
+@[expose] def j273 : Codec.Json := .array (.cons (.number (1)) (.cons (j195) (.cons (j61) .nil)))
+@[expose] def j274 : Codec.Json := .array (.cons (j106) (.cons (j273) .nil))
+@[expose] def j275 : Codec.Json := .array (.cons (j274) .nil)
+@[expose] def j276 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j6) (.cons (j7) (.cons (j272) (.cons (.number (1)) (.cons (j115) (.cons (j116) (.cons (j117) (.cons (j275) (.cons (j75) .nil)))))))))))
+@[expose] def j277 : Codec.Json := .array (.cons (j276) (.cons (j176) .nil))
+@[expose] def j278 : Codec.Json := .array (.cons (j12) (.cons (j78) (.cons (j95) (.cons (j195) .nil))))
+@[expose] def j279 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (1)) (.cons (.number (1)) (.cons (.number (1)) .nil))))
+@[expose] def j280 : Codec.Json := .array (.cons (j279) .nil)
+@[expose] def j281 : Codec.Json := .array (.cons (j180) (.cons (j280) (.cons (j14) (.cons (j14) (.cons (j74) (.cons (.number (1)) .nil))))))
+@[expose] def j282 : Codec.Json := .array (.cons (.number (3)) (.cons (j195) (.cons (j61) .nil)))
+@[expose] def j283 : Codec.Json := .array (.cons (j71) (.cons (j130) (.cons (j131) (.cons (j282) .nil))))
+@[expose] def j284 : Codec.Json := .array (.cons (j283) .nil)
+@[expose] def j285 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j6) (.cons (j7) (.cons (j278) (.cons (.number (1)) (.cons (j281) (.cons (j116) (.cons (j117) (.cons (j284) (.cons (j75) .nil)))))))))))
+@[expose] def j286 : Codec.Json := .array (.cons (j285) (.cons (j189) .nil))
+@[expose] def j287 : Codec.Json := .array (.cons (j77) (.cons (j94) (.cons (j146) (.cons (j110) (.cons (j271) (.cons (j277) (.cons (j286) .nil)))))))
+@[expose] def j288 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (6)) (.cons (j287) .nil)))
+@[expose] def marginGraph : Codec.Json := j288
+@[expose] def j289 : Codec.Json := .array (.cons (j5) (.cons (.number (0)) (.cons (j192) .nil)))
+@[expose] def j290 : Codec.Json := .array (.cons (j195) (.cons (.number (1)) (.cons (j288) .nil)))
+@[expose] def j291 : Codec.Json := .array (.cons (j10) (.cons (j139) (.cons (j289) (.cons (j290) .nil))))
+@[expose] def packet : Codec.Json := j291
+end Hex.RCF.RealCoefficients.EnumeratedSource.Cubic
diff --git a/conformance/HexRCF/EnumeratedSource/CubicData0.lean b/conformance/HexRCF/EnumeratedSource/CubicData0.lean
new file mode 100644
index 0000000000..459295e445
--- /dev/null
+++ b/conformance/HexRCF/EnumeratedSource/CubicData0.lean
@@ -0,0 +1,254 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+module
+public import HexSignDet.Codec.Json
+/-! Shared constructor data from `conformance-fixtures/HexRCF/enumerated-source.json`.
+The descriptor reader checks this supplied replay independently of its producer. -/
+public section
+
+namespace Hex.RCF.RealCoefficients.EnumeratedSource.Cubic
+open Hex.SignDet
+@[expose] def j0 : Codec.Json := .array .nil
+@[expose] def j1 : Codec.Json := .array (.cons (j0) (.cons (.number (0)) (.cons (j0) .nil)))
+@[expose] def j2 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-2)) (.cons (.number (1)) .nil)))
+@[expose] def j3 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (0)) (.cons (.number (1)) .nil)))
+@[expose] def j4 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (1)) (.cons (.number (1)) .nil)))
+@[expose] def j5 : Codec.Json := .array (.cons (j2) (.cons (j3) (.cons (j3) (.cons (j4) .nil))))
+@[expose] def j6 : Codec.Json := .array (.cons (.number (0)) .nil)
+@[expose] def j7 : Codec.Json := .array (.cons (.number (2)) .nil)
+@[expose] def j8 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (2)) (.cons (.number (3)) .nil)))
+@[expose] def j9 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (1)) (.cons (.number (1)) .nil)))
+@[expose] def j10 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j6) (.cons (j7) (.cons (j8) (.cons (j9) .nil))))))
+@[expose] def subject : Codec.Json := j10
+@[expose] def j11 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (3)) (.cons (.number (1)) .nil)))
+@[expose] def j12 : Codec.Json := .array (.cons (j3) (.cons (j3) (.cons (j11) .nil)))
+@[expose] def j13 : Codec.Json := .array (.cons (j12) .nil)
+@[expose] def j14 : Codec.Json := .array (.cons (.number (1)) .nil)
+@[expose] def j15 : Codec.Json := .array (.cons (j6) (.cons (j14) (.cons (j7) .nil)))
+@[expose] def j16 : Codec.Json := .array (.cons (.number (-1)) .nil)
+@[expose] def j17 : Codec.Json := .array (.cons (j16) (.cons (j6) (.cons (j14) .nil)))
+@[expose] def j18 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-1)) (.cons (.number (1)) .nil)))
+@[expose] def j19 : Codec.Json := .array (.cons (.number (2)) (.cons (.number (0)) (.cons (.number (-2)) .nil)))
+@[expose] def j20 : Codec.Json := .array (.cons (j18) (.cons (j19) (.cons (j4) .nil)))
+@[expose] def j21 : Codec.Json := .array (.cons (j15) (.cons (j17) (.cons (j3) (.cons (j9) (.cons (j20) (.cons (.number (2)) .nil))))))
+@[expose] def j22 : Codec.Json := .array (.cons (j4) .nil)
+@[expose] def j23 : Codec.Json := .array (.cons (j3) (.cons (j3) (.cons (j4) .nil)))
+@[expose] def j24 : Codec.Json := .array (.cons (j5) (.cons (j23) (.cons (j22) .nil)))
+@[expose] def j25 : Codec.Json := .array (.cons (.number (3)) (.cons (.number (2)) (.cons (.number (0)) .nil)))
+@[expose] def j26 : Codec.Json := .array (.cons (j4) (.cons (j0) (.cons (j11) .nil)))
+@[expose] def j27 : Codec.Json := .array (.cons (j3) (.cons (j4) .nil))
+@[expose] def j28 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (2)) (.cons (.number (1)) .nil)))
+@[expose] def j29 : Codec.Json := .array (.cons (j4) (.cons (j27) (.cons (j28) .nil)))
+@[expose] def j30 : Codec.Json := .array (.cons (j29) .nil)
+@[expose] def j31 : Codec.Json := .array (.cons (j4) (.cons (j23) .nil))
+@[expose] def j32 : Codec.Json := .array (.cons (j31) .nil)
+@[expose] def j33 : Codec.Json := .array (.cons (j24) (.cons (j25) (.cons (j26) (.cons (j30) (.cons (j32) .nil)))))
+@[expose] def j34 : Codec.Json := .array (.cons (.number (-1)) (.cons (.number (1)) (.cons (.number (1)) .nil)))
+@[expose] def j35 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j22) (.cons (j6) (.cons (j7) (.cons (j33) (.cons (j33) (.cons (j34) (.cons (j9) (.cons (.number (1)) (.cons (.number (0)) (.cons (.number (1)) .nil))))))))))))
+@[expose] def j36 : Codec.Json := .array (.cons (j5) (.cons (j27) (.cons (j22) .nil)))
+@[expose] def j37 : Codec.Json := .array (.cons (.number (3)) (.cons (.number (1)) (.cons (.number (0)) .nil)))
+@[expose] def j38 : Codec.Json := .array (.cons (j3) (.cons (j11) .nil))
+@[expose] def j39 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (6)) (.cons (.number (1)) .nil)))
+@[expose] def j40 : Codec.Json := .array (.cons (j4) (.cons (j38) (.cons (j39) .nil)))
+@[expose] def j41 : Codec.Json := .array (.cons (j4) (.cons (j23) (.cons (j28) .nil)))
+@[expose] def j42 : Codec.Json := .array (.cons (j41) .nil)
+@[expose] def j43 : Codec.Json := .array (.cons (j4) (.cons (j27) .nil))
+@[expose] def j44 : Codec.Json := .array (.cons (j43) .nil)
+@[expose] def j45 : Codec.Json := .array (.cons (j36) (.cons (j37) (.cons (j40) (.cons (j42) (.cons (j44) .nil)))))
+@[expose] def j46 : Codec.Json := .array (.cons (.number (-1)) (.cons (.number (-1)) (.cons (.number (1)) .nil)))
+@[expose] def j47 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j23) (.cons (j6) (.cons (j7) (.cons (j33) (.cons (j45) (.cons (j46) (.cons (j9) (.cons (.number (1)) (.cons (.number (0)) (.cons (.number (1)) .nil))))))))))))
+@[expose] def j48 : Codec.Json := .array (.cons (j5) (.cons (j22) .nil))
+@[expose] def j49 : Codec.Json := .array (.cons (.number (3)) (.cons (.number (0)) .nil))
+@[expose] def j50 : Codec.Json := .array (.cons (j11) .nil)
+@[expose] def j51 : Codec.Json := .array (.cons (j4) (.cons (j50) (.cons (j39) .nil)))
+@[expose] def j52 : Codec.Json := .array (.cons (j4) (.cons (j5) .nil))
+@[expose] def j53 : Codec.Json := .array (.cons (j52) .nil)
+@[expose] def j54 : Codec.Json := .array (.cons (j48) (.cons (j49) (.cons (j51) (.cons (j0) (.cons (j53) .nil)))))
+@[expose] def j55 : Codec.Json := .array (.cons (.number (-1)) (.cons (.number (1)) .nil))
+@[expose] def j56 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (1)) .nil))
+@[expose] def j57 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j27) (.cons (j6) (.cons (j7) (.cons (j33) (.cons (j54) (.cons (j55) (.cons (j56) (.cons (.number (1)) (.cons (.number (0)) (.cons (.number (1)) .nil))))))))))))
+@[expose] def j58 : Codec.Json := .array (.cons (j35) (.cons (j47) (.cons (j57) .nil)))
+@[expose] def j59 : Codec.Json := .array (.cons (j0) (.cons (j22) .nil))
+@[expose] def j60 : Codec.Json := .array (.cons (j59) .nil)
+@[expose] def j61 : Codec.Json := .array (.cons (j4) (.cons (j0) (.cons (j4) .nil)))
+@[expose] def j62 : Codec.Json := .array (.cons (.number (0)) (.cons (j23) (.cons (j61) .nil)))
+@[expose] def j63 : Codec.Json := .array (.cons (j62) .nil)
+@[expose] def j64 : Codec.Json := .array (.cons (j63) (.cons (j23) .nil))
+@[expose] def j65 : Codec.Json := .array (.cons (j64) .nil)
+@[expose] def j66 : Codec.Json := .array (.cons (.number (0)) (.cons (j27) (.cons (j29) .nil)))
+@[expose] def j67 : Codec.Json := .array (.cons (j62) (.cons (j66) .nil))
+@[expose] def j68 : Codec.Json := .array (.cons (j67) (.cons (j27) .nil))
+@[expose] def j69 : Codec.Json := .array (.cons (j68) .nil)
+@[expose] def j70 : Codec.Json := .array (.cons (j60) (.cons (j65) (.cons (j69) .nil)))
+@[expose] def j71 : Codec.Json := .array (.cons (.number (0)) (.cons (j23) (.cons (j26) .nil)))
+@[expose] def j72 : Codec.Json := .array (.cons (j71) .nil)
+@[expose] def j73 : Codec.Json := .array (.cons (j72) .nil)
+@[expose] def j74 : Codec.Json := .array (.cons (j14) .nil)
+@[expose] def j75 : Codec.Json := .array (.cons (.number (1)) (.cons (j6) (.cons (j6) (.cons (.number (1)) (.cons (j74) .nil)))))
+@[expose] def j76 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j6) (.cons (j7) (.cons (j13) (.cons (.number (3)) (.cons (j21) (.cons (j58) (.cons (j70) (.cons (j73) (.cons (j75) .nil)))))))))))
+@[expose] def j77 : Codec.Json := .array (.cons (j76) (.cons (j0) .nil))
+@[expose] def j78 : Codec.Json := .array (.cons (j3) (.cons (j39) .nil))
+@[expose] def j79 : Codec.Json := .array (.cons (j78) .nil)
+@[expose] def j80 : Codec.Json := .array (.cons (j35) (.cons (j57) (.cons (j47) .nil)))
+@[expose] def j81 : Codec.Json := .array (.cons (.number (0)) (.cons (j27) (.cons (j61) .nil)))
+@[expose] def j82 : Codec.Json := .array (.cons (j81) .nil)
+@[expose] def j83 : Codec.Json := .array (.cons (j82) (.cons (j27) .nil))
+@[expose] def j84 : Codec.Json := .array (.cons (j83) .nil)
+@[expose] def j85 : Codec.Json := .array (.cons (j81) (.cons (j62) .nil))
+@[expose] def j86 : Codec.Json := .array (.cons (j85) (.cons (j23) .nil))
+@[expose] def j87 : Codec.Json := .array (.cons (j86) .nil)
+@[expose] def j88 : Codec.Json := .array (.cons (j60) (.cons (j84) (.cons (j87) .nil)))
+@[expose] def j89 : Codec.Json := .array (.cons (j4) (.cons (j0) (.cons (j39) .nil)))
+@[expose] def j90 : Codec.Json := .array (.cons (.number (0)) (.cons (j27) (.cons (j89) .nil)))
+@[expose] def j91 : Codec.Json := .array (.cons (j90) .nil)
+@[expose] def j92 : Codec.Json := .array (.cons (j91) .nil)
+@[expose] def j93 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j6) (.cons (j7) (.cons (j79) (.cons (.number (3)) (.cons (j21) (.cons (j80) (.cons (j88) (.cons (j92) (.cons (j75) .nil)))))))))))
+@[expose] def j94 : Codec.Json := .array (.cons (j93) (.cons (j0) .nil))
+@[expose] def j95 : Codec.Json := .array (.cons (j39) .nil)
+@[expose] def j96 : Codec.Json := .array (.cons (j95) .nil)
+@[expose] def j97 : Codec.Json := .array (.cons (j35) (.cons (j35) (.cons (j35) .nil)))
+@[expose] def j98 : Codec.Json := .array (.cons (.number (0)) (.cons (j22) (.cons (j61) .nil)))
+@[expose] def j99 : Codec.Json := .array (.cons (j98) .nil)
+@[expose] def j100 : Codec.Json := .array (.cons (j99) (.cons (j22) .nil))
+@[expose] def j101 : Codec.Json := .array (.cons (j100) .nil)
+@[expose] def j102 : Codec.Json := .array (.cons (j98) (.cons (j98) .nil))
+@[expose] def j103 : Codec.Json := .array (.cons (j102) (.cons (j22) .nil))
+@[expose] def j104 : Codec.Json := .array (.cons (j103) .nil)
+@[expose] def j105 : Codec.Json := .array (.cons (j60) (.cons (j101) (.cons (j104) .nil)))
+@[expose] def j106 : Codec.Json := .array (.cons (.number (0)) (.cons (j22) (.cons (j89) .nil)))
+@[expose] def j107 : Codec.Json := .array (.cons (j106) .nil)
+@[expose] def j108 : Codec.Json := .array (.cons (j107) .nil)
+@[expose] def j109 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j6) (.cons (j7) (.cons (j96) (.cons (.number (3)) (.cons (j21) (.cons (j97) (.cons (j105) (.cons (j108) (.cons (j75) .nil)))))))))))
+@[expose] def j110 : Codec.Json := .array (.cons (j109) (.cons (j0) .nil))
+@[expose] def j111 : Codec.Json := .array (.cons (j78) (.cons (j95) .nil))
+@[expose] def j112 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (0)) .nil))
+@[expose] def j113 : Codec.Json := .array (.cons (j112) .nil)
+@[expose] def j114 : Codec.Json := .array (.cons (j56) .nil)
+@[expose] def j115 : Codec.Json := .array (.cons (j113) (.cons (j114) (.cons (j14) (.cons (j14) (.cons (j74) (.cons (.number (1)) .nil))))))
+@[expose] def j116 : Codec.Json := .array (.cons (j35) .nil)
+@[expose] def j117 : Codec.Json := .array (.cons (j60) .nil)
+@[expose] def j118 : Codec.Json := .array (.cons (.number (1)) (.cons (j22) (.cons (j89) .nil)))
+@[expose] def j119 : Codec.Json := .array (.cons (j90) (.cons (j118) .nil))
+@[expose] def j120 : Codec.Json := .array (.cons (j119) .nil)
+@[expose] def j121 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j6) (.cons (j7) (.cons (j111) (.cons (.number (1)) (.cons (j115) (.cons (j116) (.cons (j117) (.cons (j120) (.cons (j75) .nil)))))))))))
+@[expose] def j122 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (2)) .nil))
+@[expose] def j123 : Codec.Json := .array (.cons (j122) .nil)
+@[expose] def j124 : Codec.Json := .array (.cons (j121) (.cons (j123) .nil))
+@[expose] def j125 : Codec.Json := .array (.cons (j12) (.cons (j78) (.cons (j95) .nil)))
+@[expose] def j126 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (0)) (.cons (.number (0)) .nil)))
+@[expose] def j127 : Codec.Json := .array (.cons (j126) .nil)
+@[expose] def j128 : Codec.Json := .array (.cons (j9) .nil)
+@[expose] def j129 : Codec.Json := .array (.cons (j127) (.cons (j128) (.cons (j14) (.cons (j14) (.cons (j74) (.cons (.number (1)) .nil))))))
+@[expose] def j130 : Codec.Json := .array (.cons (.number (1)) (.cons (j27) (.cons (j89) .nil)))
+@[expose] def j131 : Codec.Json := .array (.cons (.number (2)) (.cons (j22) (.cons (j89) .nil)))
+@[expose] def j132 : Codec.Json := .array (.cons (j71) (.cons (j130) (.cons (j131) .nil)))
+@[expose] def j133 : Codec.Json := .array (.cons (j132) .nil)
+@[expose] def j134 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j6) (.cons (j7) (.cons (j125) (.cons (.number (1)) (.cons (j129) (.cons (j116) (.cons (j117) (.cons (j133) (.cons (j75) .nil)))))))))))
+@[expose] def j135 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (3)) .nil))
+@[expose] def j136 : Codec.Json := .array (.cons (j135) .nil)
+@[expose] def j137 : Codec.Json := .array (.cons (j134) (.cons (j136) .nil))
+@[expose] def j138 : Codec.Json := .array (.cons (j77) (.cons (j94) (.cons (j110) (.cons (j124) (.cons (j137) .nil)))))
+@[expose] def j139 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (4)) (.cons (j138) .nil)))
+@[expose] def graph : Codec.Json := j139
+@[expose] def equation : Codec.Json := j5
+@[expose] def j140 : Codec.Json := .array (.cons (j12) (.cons (j78) .nil))
+@[expose] def j141 : Codec.Json := .array (.cons (j71) (.cons (j130) .nil))
+@[expose] def j142 : Codec.Json := .array (.cons (j141) .nil)
+@[expose] def j143 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j6) (.cons (j7) (.cons (j140) (.cons (.number (1)) (.cons (j115) (.cons (j116) (.cons (j117) (.cons (j142) (.cons (j75) .nil)))))))))))
+@[expose] def j144 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (1)) .nil))
+@[expose] def j145 : Codec.Json := .array (.cons (j144) .nil)
+@[expose] def j146 : Codec.Json := .array (.cons (j143) (.cons (j145) .nil))
+@[expose] def j147 : Codec.Json := .array (.cons (j0) .nil)
+@[expose] def j148 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (1)) (.cons (.number (0)) .nil)))
+@[expose] def j149 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (0)) (.cons (.number (0)) .nil)))
+@[expose] def j150 : Codec.Json := .array (.cons (j15) (.cons (j17) (.cons (j148) (.cons (j149) (.cons (j20) (.cons (.number (2)) .nil))))))
+@[expose] def j151 : Codec.Json := .array (.cons (j5) .nil)
+@[expose] def j152 : Codec.Json := .array (.cons (.number (3)) .nil)
+@[expose] def j153 : Codec.Json := .array (.cons (j151) (.cons (j152) (.cons (j61) (.cons (j0) (.cons (j0) .nil)))))
+@[expose] def j154 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j0) (.cons (j6) (.cons (j7) (.cons (j33) (.cons (j153) (.cons (j16) (.cons (j14) (.cons (.number (0)) (.cons (.number (0)) (.cons (.number (0)) .nil))))))))))))
+@[expose] def j155 : Codec.Json := .array (.cons (j35) (.cons (j154) (.cons (j154) .nil)))
+@[expose] def j156 : Codec.Json := .array (.cons (.number (0)) (.cons (j0) (.cons (j61) .nil)))
+@[expose] def j157 : Codec.Json := .array (.cons (j156) .nil)
+@[expose] def j158 : Codec.Json := .array (.cons (j157) (.cons (j0) .nil))
+@[expose] def j159 : Codec.Json := .array (.cons (j158) .nil)
+@[expose] def j160 : Codec.Json := .array (.cons (j156) (.cons (j156) .nil))
+@[expose] def j161 : Codec.Json := .array (.cons (j160) (.cons (j0) .nil))
+@[expose] def j162 : Codec.Json := .array (.cons (j161) .nil)
+@[expose] def j163 : Codec.Json := .array (.cons (j60) (.cons (j159) (.cons (j162) .nil)))
+@[expose] def j164 : Codec.Json := .array (.cons (j157) .nil)
+@[expose] def j165 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j6) (.cons (j7) (.cons (j147) (.cons (.number (3)) (.cons (j150) (.cons (j155) (.cons (j163) (.cons (j164) (.cons (j75) .nil)))))))))))
+@[expose] def j166 : Codec.Json := .array (.cons (j165) (.cons (j0) .nil))
+@[expose] def j167 : Codec.Json := .array (.cons (j95) (.cons (j0) .nil))
+@[expose] def j168 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (0)) .nil))
+@[expose] def j169 : Codec.Json := .array (.cons (j168) .nil)
+@[expose] def j170 : Codec.Json := .array (.cons (j113) (.cons (j169) (.cons (j14) (.cons (j14) (.cons (j74) (.cons (.number (1)) .nil))))))
+@[expose] def j171 : Codec.Json := .array (.cons (.number (1)) (.cons (j0) (.cons (j61) .nil)))
+@[expose] def j172 : Codec.Json := .array (.cons (j106) (.cons (j171) .nil))
+@[expose] def j173 : Codec.Json := .array (.cons (j172) .nil)
+@[expose] def j174 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j6) (.cons (j7) (.cons (j167) (.cons (.number (1)) (.cons (j170) (.cons (j116) (.cons (j117) (.cons (j173) (.cons (j75) .nil)))))))))))
+@[expose] def j175 : Codec.Json := .array (.cons (.number (3)) (.cons (.number (4)) .nil))
+@[expose] def j176 : Codec.Json := .array (.cons (j175) .nil)
+@[expose] def j177 : Codec.Json := .array (.cons (j174) (.cons (j176) .nil))
+@[expose] def j178 : Codec.Json := .array (.cons (j12) (.cons (j78) (.cons (j95) (.cons (j0) .nil))))
+@[expose] def j179 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (0)) (.cons (.number (0)) (.cons (.number (0)) .nil))))
+@[expose] def j180 : Codec.Json := .array (.cons (j179) .nil)
+@[expose] def j181 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (1)) (.cons (.number (1)) (.cons (.number (0)) .nil))))
+@[expose] def j182 : Codec.Json := .array (.cons (j181) .nil)
+@[expose] def j183 : Codec.Json := .array (.cons (j180) (.cons (j182) (.cons (j14) (.cons (j14) (.cons (j74) (.cons (.number (1)) .nil))))))
+@[expose] def j184 : Codec.Json := .array (.cons (.number (3)) (.cons (j0) (.cons (j61) .nil)))
+@[expose] def j185 : Codec.Json := .array (.cons (j71) (.cons (j130) (.cons (j131) (.cons (j184) .nil))))
+@[expose] def j186 : Codec.Json := .array (.cons (j185) .nil)
+@[expose] def j187 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j6) (.cons (j7) (.cons (j178) (.cons (.number (1)) (.cons (j183) (.cons (j116) (.cons (j117) (.cons (j186) (.cons (j75) .nil)))))))))))
+@[expose] def j188 : Codec.Json := .array (.cons (.number (2)) (.cons (.number (5)) .nil))
+@[expose] def j189 : Codec.Json := .array (.cons (j188) .nil)
+@[expose] def j190 : Codec.Json := .array (.cons (j187) (.cons (j189) .nil))
+@[expose] def j191 : Codec.Json := .array (.cons (j77) (.cons (j94) (.cons (j146) (.cons (j110) (.cons (j166) (.cons (j177) (.cons (j190) .nil)))))))
+@[expose] def j192 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (6)) (.cons (j191) .nil)))
+@[expose] def equationGraph : Codec.Json := j192
+@[expose] def j193 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-13312799)) (.cons (.number (8388608)) .nil)))
+@[expose] def j194 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (645)) (.cons (.number (256)) .nil)))
+@[expose] def j195 : Codec.Json := .array (.cons (j193) (.cons (j194) (.cons (j18) .nil)))
+@[expose] def margin : Codec.Json := j195
+@[expose] def j196 : Codec.Json := .array (.cons (j195) .nil)
+@[expose] def j197 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (42270720)) (.cons (.number (13312799)) .nil)))
+@[expose] def j198 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-16777216)) (.cons (.number (13312799)) .nil)))
+@[expose] def j199 : Codec.Json := .array (.cons (j197) (.cons (j198) (.cons (j18) .nil)))
+@[expose] def j200 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (531823117172161)) (.cons (.number (422108287827968)) .nil)))
+@[expose] def j201 : Codec.Json := .array (.cons (j200) (.cons (j18) .nil))
+@[expose] def j202 : Codec.Json := .array (.cons (j18) .nil)
+@[expose] def j203 : Codec.Json := .array (.cons (j5) (.cons (j199) (.cons (j201) (.cons (j202) .nil))))
+@[expose] def j204 : Codec.Json := .array (.cons (.number (3)) (.cons (.number (2)) (.cons (.number (1)) (.cons (.number (0)) .nil))))
+@[expose] def j205 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (1935)) (.cons (.number (256)) .nil)))
+@[expose] def j206 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-3)) (.cons (.number (1)) .nil)))
+@[expose] def j207 : Codec.Json := .array (.cons (j205) (.cons (j206) .nil))
+@[expose] def j208 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (39938397)) (.cons (.number (8388608)) .nil)))
+@[expose] def j209 : Codec.Json := .array (.cons (j4) (.cons (j207) (.cons (j208) .nil)))
+@[expose] def j210 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (16777216)) (.cons (.number (13312799)) .nil)))
+@[expose] def j211 : Codec.Json := .array (.cons (j210) (.cons (j18) .nil))
+@[expose] def j212 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (844216575655936)) (.cons (.number (177230617214401)) .nil)))
+@[expose] def j213 : Codec.Json := .array (.cons (j4) (.cons (j211) (.cons (j212) .nil)))
+@[expose] def j214 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (14161856182746417765727)) (.cons (.number (5619442792087884562432)) .nil)))
+@[expose] def j215 : Codec.Json := .array (.cons (j214) (.cons (j4) .nil))
+@[expose] def j216 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (16935998183659607946367)) (.cons (.number (178175406653058678027163009024)) .nil)))
+@[expose] def j217 : Codec.Json := .array (.cons (j4) (.cons (j215) (.cons (j216) .nil)))
+@[expose] def j218 : Codec.Json := .array (.cons (j213) (.cons (j217) .nil))
+@[expose] def j219 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-531823117172161)) (.cons (.number (422108287827968)) .nil)))
+@[expose] def j220 : Codec.Json := .array (.cons (j219) (.cons (j4) .nil))
+@[expose] def j221 : Codec.Json := .array (.cons (j4) (.cons (j220) .nil))
+@[expose] def j222 : Codec.Json := .array (.cons (j221) .nil)
+@[expose] def j223 : Codec.Json := .array (.cons (j203) (.cons (j204) (.cons (j209) (.cons (j218) (.cons (j222) .nil)))))
+@[expose] def j224 : Codec.Json := .array (.cons (.number (-1)) (.cons (.number (-1)) (.cons (.number (1)) (.cons (.number (-1)) .nil))))
+@[expose] def j225 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (-1)) (.cons (.number (-1)) (.cons (.number (-1)) .nil))))
+@[expose] def j226 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j195) (.cons (j6) (.cons (j7) (.cons (j33) (.cons (j223) (.cons (j224) (.cons (j225) (.cons (.number (2)) (.cons (.number (1)) (.cons (.number (1)) .nil))))))))))))
+@[expose] def j227 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-531954382701119)) (.cons (.number (670055146717184)) .nil)))
+@[expose] def j228 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-6439271707)) (.cons (.number (10224230144)) .nil)))
+@[expose] def j229 : Codec.Json := .array (.cons (j227) (.cons (j228) (.cons (j4) .nil)))
+@[expose] def j230 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-844008221179904)) (.cons (.number (531954382701119)) .nil)))
+@[expose] def j231 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (1340110293434368)) (.cons (.number (531954382701119)) .nil)))
+@[expose] def j232 : Codec.Json := .array (.cons (j230) (.cons (j231) (.cons (j18) .nil)))
+@[expose] def j233 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (848507517748138632283156122497)) (.cons (.number (673460863138161280761781223424)) .nil)))
+@[expose] def j234 : Codec.Json := .array (.cons (j233) (.cons (j18) .nil))
+end Hex.RCF.RealCoefficients.EnumeratedSource.Cubic
diff --git a/conformance/HexRCF/EnumeratedSource/Inputs.lean b/conformance/HexRCF/EnumeratedSource/Inputs.lean
new file mode 100644
index 0000000000..4701bd1b24
--- /dev/null
+++ b/conformance/HexRCF/EnumeratedSource/Inputs.lean
@@ -0,0 +1,65 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+import HexRCF.EnumeratedSource.Positive
+import HexRCF.EnumeratedSource.Negative
+import HexRCF.EnumeratedSource.Cubic
+import HexRCF.SourceIdentityCases
+import HexRCF.RealCoefficients.CubeTwo
+import HexRCF.RealCoefficients.ScalarPacket
+
+namespace Hex.RCF.EnumeratedSourceInputs
+open Hex Hex.RealClosure Hex.SignDet Hex.RCF.RealCoefficients
+open Hex.RCF.SelectedRootTests Hex.RCF.SourceIdentityCases
+set_option maxRecDepth 32768
+set_option maxHeartbeats 12000000
+
+theorem positiveWitness : atomWitness SquareTwo.polynomial SquareTwo.square := by decide +kernel
+theorem positivePrecision : (mahlerPrec SquareTwo.polynomial : Int) ≤ SquareTwo.square.prec := by decide +kernel
+theorem cubicWitness : atomWitness CubeTwo.polynomial CubeTwo.square := by decide +kernel
+theorem cubicPrecision : (mahlerPrec CubeTwo.polynomial : Int) ≤ CubeTwo.square.prec := by decide +kernel
+theorem cubicSelected :
+ (Field.literalRep CubeTwo.polynomial CubeTwo.square cubicWitness cubicPrecision).root.re =
+ (2 : ℝ) ^ (1 / 3 : ℝ) :=
+ (CubeTwo.coordinate_value _ _ _).symm.trans (CubeTwo.value _ _ _ (by decide +kernel))
+
+private theorem value (literal : Codec.Json) (q : DensePoly Rat)
+ (same : ScalarPacket.key Data.base.codec literal = embed q) :
+ HexPolyTheory.Interpret.interpret Data.rational.value Data.rational.zero_iff
+ (ScalarPacket.key Data.base.codec literal) = LiteralSign.realPoly q := by
+ rw [same]
+ exact embed_value q
+
+theorem positiveEquation :
+ HexPolyTheory.Interpret.interpret Data.rational.value Data.rational.zero_iff
+ (ScalarPacket.key Data.base.codec EnumeratedSource.Positive.equation) =
+ LiteralSign.realPoly (ZPoly.toRatPoly SquareTwo.polynomial) :=
+ value _ _ (by decide +kernel)
+theorem positiveMargin :
+ HexPolyTheory.Interpret.interpret Data.rational.value Data.rational.zero_iff
+ (ScalarPacket.key Data.base.codec EnumeratedSource.Positive.margin) =
+ LiteralSign.realPoly (SourceIdentity.margin SquareTwo.square) :=
+ value _ _ (by decide +kernel)
+theorem negativeEquation :
+ HexPolyTheory.Interpret.interpret Data.rational.value Data.rational.zero_iff
+ (ScalarPacket.key Data.base.codec EnumeratedSource.Negative.equation) =
+ LiteralSign.realPoly (ZPoly.toRatPoly SquareTwo.polynomial) :=
+ value _ _ (by decide +kernel)
+theorem negativeMargin :
+ HexPolyTheory.Interpret.interpret Data.rational.value Data.rational.zero_iff
+ (ScalarPacket.key Data.base.codec EnumeratedSource.Negative.margin) =
+ LiteralSign.realPoly (SourceIdentity.margin negativeSquare) :=
+ value _ _ (by decide +kernel)
+theorem cubicEquation :
+ HexPolyTheory.Interpret.interpret Data.rational.value Data.rational.zero_iff
+ (ScalarPacket.key Data.base.codec EnumeratedSource.Cubic.equation) =
+ LiteralSign.realPoly (ZPoly.toRatPoly CubeTwo.polynomial) :=
+ value _ _ (by decide +kernel)
+theorem cubicMargin :
+ HexPolyTheory.Interpret.interpret Data.rational.value Data.rational.zero_iff
+ (ScalarPacket.key Data.base.codec EnumeratedSource.Cubic.margin) =
+ LiteralSign.realPoly (SourceIdentity.margin CubeTwo.square) :=
+ value _ _ (by decide +kernel)
+end Hex.RCF.EnumeratedSourceInputs
diff --git a/conformance/HexRCF/EnumeratedSource/Negative.lean b/conformance/HexRCF/EnumeratedSource/Negative.lean
new file mode 100644
index 0000000000..d7033d5191
--- /dev/null
+++ b/conformance/HexRCF/EnumeratedSource/Negative.lean
@@ -0,0 +1,60 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+module
+public import HexSignDet.Codec.Json
+public import HexRCF.EnumeratedSource.NegativeData0
+/-! Shared constructor data from `conformance-fixtures/HexRCF/enumerated-source.json`.
+The descriptor reader checks this supplied replay independently of its producer. -/
+public section
+
+namespace Hex.RCF.RealCoefficients.EnumeratedSource.Negative
+open Hex.SignDet
+@[expose] def j235 : Codec.Json := .array (.cons (.number (2)) (.cons (.number (0)) (.cons (.number (0)) (.cons (.number (-2)) .nil))))
+@[expose] def j236 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (-1)) (.cons (.number (-1)) (.cons (.number (1)) .nil))))
+@[expose] def j237 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (1)) (.cons (.number (-1)) (.cons (.number (-1)) .nil))))
+@[expose] def j238 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (-1)) (.cons (.number (1)) (.cons (.number (-1)) .nil))))
+@[expose] def j239 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (1)) (.cons (.number (1)) (.cons (.number (1)) .nil))))
+@[expose] def j240 : Codec.Json := .array (.cons (j236) (.cons (j237) (.cons (j238) (.cons (j239) .nil))))
+@[expose] def j241 : Codec.Json := .array (.cons (j230) (.cons (j233) (.cons (j234) (.cons (j235) (.cons (j240) (.cons (.number (4)) .nil))))))
+@[expose] def j242 : Codec.Json := .array (.cons (j5) (.cons (j161) (.cons (j24) .nil)))
+@[expose] def j243 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (370688)) (.cons (.number (131057)) .nil)))
+@[expose] def j244 : Codec.Json := .array (.cons (j4) (.cons (j166) (.cons (j243) .nil)))
+@[expose] def j245 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (131057)) (.cons (.number (92672)) .nil)))
+@[expose] def j246 : Codec.Json := .array (.cons (j245) (.cons (j20) .nil))
+@[expose] def j247 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (261919)) (.cons (.number (8588099584)) .nil)))
+@[expose] def j248 : Codec.Json := .array (.cons (j4) (.cons (j246) (.cons (j247) .nil)))
+@[expose] def j249 : Codec.Json := .array (.cons (j248) .nil)
+@[expose] def j250 : Codec.Json := .array (.cons (j4) (.cons (j161) .nil))
+@[expose] def j251 : Codec.Json := .array (.cons (j250) .nil)
+@[expose] def j252 : Codec.Json := .array (.cons (j242) (.cons (j27) (.cons (j244) (.cons (j249) (.cons (j251) .nil)))))
+@[expose] def j253 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j163) (.cons (j6) (.cons (j7) (.cons (j33) (.cons (j252) (.cons (j35) (.cons (j34) (.cons (.number (0)) (.cons (.number (2)) (.cons (.number (-2)) .nil))))))))))))
+@[expose] def j254 : Codec.Json := .array (.cons (j36) (.cons (j180) (.cons (j46) (.cons (j253) .nil))))
+@[expose] def j255 : Codec.Json := .array (.cons (.number (2)) (.cons (j161) (.cons (j50) .nil)))
+@[expose] def j256 : Codec.Json := .array (.cons (j255) .nil)
+@[expose] def j257 : Codec.Json := .array (.cons (j256) (.cons (j161) .nil))
+@[expose] def j258 : Codec.Json := .array (.cons (j257) .nil)
+@[expose] def j259 : Codec.Json := .array (.cons (j4) (.cons (j164) (.cons (j245) .nil)))
+@[expose] def j260 : Codec.Json := .array (.cons (.number (2)) (.cons (j163) (.cons (j259) .nil)))
+@[expose] def j261 : Codec.Json := .array (.cons (j51) (.cons (j260) .nil))
+@[expose] def j262 : Codec.Json := .array (.cons (j261) (.cons (j163) .nil))
+@[expose] def j263 : Codec.Json := .array (.cons (j262) .nil)
+@[expose] def j264 : Codec.Json := .array (.cons (j49) (.cons (j258) (.cons (j54) (.cons (j263) .nil))))
+@[expose] def j265 : Codec.Json := .array (.cons (.number (2)) (.cons (j161) (.cons (j209) .nil)))
+@[expose] def j266 : Codec.Json := .array (.cons (j61) (.cons (j98) (.cons (j265) .nil)))
+@[expose] def j267 : Codec.Json := .array (.cons (j266) .nil)
+@[expose] def j268 : Codec.Json := .array (.cons (.number (-1)) (.cons (.number (-1)) .nil))
+@[expose] def j269 : Codec.Json := .array (.cons (j268) (.cons (j9) .nil))
+@[expose] def j270 : Codec.Json := .array (.cons (.number (2)) (.cons (j64) (.cons (j64) (.cons (.number (-2)) (.cons (j269) .nil)))))
+@[expose] def j271 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j6) (.cons (j7) (.cons (j229) (.cons (.number (4)) (.cons (j241) (.cons (j254) (.cons (j264) (.cons (j267) (.cons (j270) .nil)))))))))))
+@[expose] def j272 : Codec.Json := .array (.cons (j271) (.cons (j150) .nil))
+@[expose] def j273 : Codec.Json := .array (.cons (j69) (.cons (j89) (.cons (j214) (.cons (j228) (.cons (j272) .nil)))))
+@[expose] def j274 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (4)) (.cons (j273) .nil)))
+@[expose] def marginGraph : Codec.Json := j274
+@[expose] def j275 : Codec.Json := .array (.cons (j5) (.cons (.number (0)) (.cons (j153) .nil)))
+@[expose] def j276 : Codec.Json := .array (.cons (j156) (.cons (.number (1)) (.cons (j274) .nil)))
+@[expose] def j277 : Codec.Json := .array (.cons (j10) (.cons (j105) (.cons (j275) (.cons (j276) .nil))))
+@[expose] def packet : Codec.Json := j277
+end Hex.RCF.RealCoefficients.EnumeratedSource.Negative
diff --git a/conformance/HexRCF/EnumeratedSource/NegativeData0.lean b/conformance/HexRCF/EnumeratedSource/NegativeData0.lean
new file mode 100644
index 0000000000..0f8037cd47
--- /dev/null
+++ b/conformance/HexRCF/EnumeratedSource/NegativeData0.lean
@@ -0,0 +1,254 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+module
+public import HexSignDet.Codec.Json
+/-! Shared constructor data from `conformance-fixtures/HexRCF/enumerated-source.json`.
+The descriptor reader checks this supplied replay independently of its producer. -/
+public section
+
+namespace Hex.RCF.RealCoefficients.EnumeratedSource.Negative
+open Hex.SignDet
+@[expose] def j0 : Codec.Json := .array .nil
+@[expose] def j1 : Codec.Json := .array (.cons (j0) (.cons (.number (0)) (.cons (j0) .nil)))
+@[expose] def j2 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-2)) (.cons (.number (1)) .nil)))
+@[expose] def j3 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (0)) (.cons (.number (1)) .nil)))
+@[expose] def j4 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (1)) (.cons (.number (1)) .nil)))
+@[expose] def j5 : Codec.Json := .array (.cons (j2) (.cons (j3) (.cons (j4) .nil)))
+@[expose] def j6 : Codec.Json := .array (.cons (.number (0)) .nil)
+@[expose] def j7 : Codec.Json := .array (.cons (.number (2)) .nil)
+@[expose] def j8 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (2)) .nil))
+@[expose] def j9 : Codec.Json := .array (.cons (.number (-1)) (.cons (.number (1)) .nil))
+@[expose] def j10 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j6) (.cons (j7) (.cons (j8) (.cons (j9) .nil))))))
+@[expose] def subject : Codec.Json := j10
+@[expose] def j11 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (2)) (.cons (.number (1)) .nil)))
+@[expose] def j12 : Codec.Json := .array (.cons (j3) (.cons (j11) .nil))
+@[expose] def j13 : Codec.Json := .array (.cons (j12) .nil)
+@[expose] def j14 : Codec.Json := .array (.cons (.number (1)) .nil)
+@[expose] def j15 : Codec.Json := .array (.cons (j6) (.cons (j14) (.cons (j7) .nil)))
+@[expose] def j16 : Codec.Json := .array (.cons (.number (-1)) .nil)
+@[expose] def j17 : Codec.Json := .array (.cons (j16) (.cons (j6) (.cons (j14) .nil)))
+@[expose] def j18 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (0)) (.cons (.number (1)) .nil)))
+@[expose] def j19 : Codec.Json := .array (.cons (.number (2)) (.cons (.number (0)) (.cons (.number (2)) .nil)))
+@[expose] def j20 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-1)) (.cons (.number (1)) .nil)))
+@[expose] def j21 : Codec.Json := .array (.cons (.number (2)) (.cons (.number (0)) (.cons (.number (-2)) .nil)))
+@[expose] def j22 : Codec.Json := .array (.cons (j20) (.cons (j21) (.cons (j4) .nil)))
+@[expose] def j23 : Codec.Json := .array (.cons (j15) (.cons (j17) (.cons (j18) (.cons (j19) (.cons (j22) (.cons (.number (2)) .nil))))))
+@[expose] def j24 : Codec.Json := .array (.cons (j4) .nil)
+@[expose] def j25 : Codec.Json := .array (.cons (j3) (.cons (j4) .nil))
+@[expose] def j26 : Codec.Json := .array (.cons (j5) (.cons (j25) (.cons (j24) .nil)))
+@[expose] def j27 : Codec.Json := .array (.cons (.number (2)) (.cons (.number (1)) (.cons (.number (0)) .nil)))
+@[expose] def j28 : Codec.Json := .array (.cons (j4) (.cons (j0) (.cons (j11) .nil)))
+@[expose] def j29 : Codec.Json := .array (.cons (j4) (.cons (j25) (.cons (j11) .nil)))
+@[expose] def j30 : Codec.Json := .array (.cons (j29) .nil)
+@[expose] def j31 : Codec.Json := .array (.cons (j4) (.cons (j25) .nil))
+@[expose] def j32 : Codec.Json := .array (.cons (j31) .nil)
+@[expose] def j33 : Codec.Json := .array (.cons (j26) (.cons (j27) (.cons (j28) (.cons (j30) (.cons (j32) .nil)))))
+@[expose] def j34 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (-1)) (.cons (.number (1)) .nil)))
+@[expose] def j35 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (1)) (.cons (.number (1)) .nil)))
+@[expose] def j36 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j24) (.cons (j6) (.cons (j7) (.cons (j33) (.cons (j33) (.cons (j34) (.cons (j35) (.cons (.number (2)) (.cons (.number (0)) (.cons (.number (2)) .nil))))))))))))
+@[expose] def j37 : Codec.Json := .array (.cons (j5) (.cons (j24) .nil))
+@[expose] def j38 : Codec.Json := .array (.cons (.number (2)) (.cons (.number (0)) .nil))
+@[expose] def j39 : Codec.Json := .array (.cons (j11) .nil)
+@[expose] def j40 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (4)) (.cons (.number (1)) .nil)))
+@[expose] def j41 : Codec.Json := .array (.cons (j4) (.cons (j39) (.cons (j40) .nil)))
+@[expose] def j42 : Codec.Json := .array (.cons (j4) (.cons (j5) .nil))
+@[expose] def j43 : Codec.Json := .array (.cons (j42) .nil)
+@[expose] def j44 : Codec.Json := .array (.cons (j37) (.cons (j38) (.cons (j41) (.cons (j0) (.cons (j43) .nil)))))
+@[expose] def j45 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (1)) .nil))
+@[expose] def j46 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j25) (.cons (j6) (.cons (j7) (.cons (j33) (.cons (j44) (.cons (j45) (.cons (j45) (.cons (.number (0)) (.cons (.number (0)) (.cons (.number (0)) .nil))))))))))))
+@[expose] def j47 : Codec.Json := .array (.cons (j36) (.cons (j46) (.cons (j36) .nil)))
+@[expose] def j48 : Codec.Json := .array (.cons (j0) (.cons (j24) .nil))
+@[expose] def j49 : Codec.Json := .array (.cons (j48) .nil)
+@[expose] def j50 : Codec.Json := .array (.cons (j4) (.cons (j0) (.cons (j4) .nil)))
+@[expose] def j51 : Codec.Json := .array (.cons (.number (0)) (.cons (j25) (.cons (j50) .nil)))
+@[expose] def j52 : Codec.Json := .array (.cons (j51) .nil)
+@[expose] def j53 : Codec.Json := .array (.cons (j52) (.cons (j25) .nil))
+@[expose] def j54 : Codec.Json := .array (.cons (j53) .nil)
+@[expose] def j55 : Codec.Json := .array (.cons (j4) (.cons (j24) (.cons (j11) .nil)))
+@[expose] def j56 : Codec.Json := .array (.cons (.number (0)) (.cons (j24) (.cons (j55) .nil)))
+@[expose] def j57 : Codec.Json := .array (.cons (j51) (.cons (j56) .nil))
+@[expose] def j58 : Codec.Json := .array (.cons (j57) (.cons (j24) .nil))
+@[expose] def j59 : Codec.Json := .array (.cons (j58) .nil)
+@[expose] def j60 : Codec.Json := .array (.cons (j49) (.cons (j54) (.cons (j59) .nil)))
+@[expose] def j61 : Codec.Json := .array (.cons (.number (0)) (.cons (j25) (.cons (j28) .nil)))
+@[expose] def j62 : Codec.Json := .array (.cons (j61) .nil)
+@[expose] def j63 : Codec.Json := .array (.cons (j62) .nil)
+@[expose] def j64 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (1)) .nil))
+@[expose] def j65 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (-1)) .nil))
+@[expose] def j66 : Codec.Json := .array (.cons (j65) (.cons (j45) .nil))
+@[expose] def j67 : Codec.Json := .array (.cons (.number (2)) (.cons (j64) (.cons (j64) (.cons (.number (2)) (.cons (j66) .nil)))))
+@[expose] def j68 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j6) (.cons (j7) (.cons (j13) (.cons (.number (3)) (.cons (j23) (.cons (j47) (.cons (j60) (.cons (j63) (.cons (j67) .nil)))))))))))
+@[expose] def j69 : Codec.Json := .array (.cons (j68) (.cons (j0) .nil))
+@[expose] def j70 : Codec.Json := .array (.cons (j39) .nil)
+@[expose] def j71 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (0)) (.cons (.number (2)) .nil)))
+@[expose] def j72 : Codec.Json := .array (.cons (.number (2)) (.cons (.number (2)) (.cons (.number (2)) .nil)))
+@[expose] def j73 : Codec.Json := .array (.cons (j15) (.cons (j17) (.cons (j71) (.cons (j72) (.cons (j22) (.cons (.number (2)) .nil))))))
+@[expose] def j74 : Codec.Json := .array (.cons (j36) (.cons (j36) (.cons (j36) .nil)))
+@[expose] def j75 : Codec.Json := .array (.cons (.number (0)) (.cons (j24) (.cons (j50) .nil)))
+@[expose] def j76 : Codec.Json := .array (.cons (j75) .nil)
+@[expose] def j77 : Codec.Json := .array (.cons (j76) (.cons (j24) .nil))
+@[expose] def j78 : Codec.Json := .array (.cons (j77) .nil)
+@[expose] def j79 : Codec.Json := .array (.cons (j75) (.cons (j75) .nil))
+@[expose] def j80 : Codec.Json := .array (.cons (j79) (.cons (j24) .nil))
+@[expose] def j81 : Codec.Json := .array (.cons (j80) .nil)
+@[expose] def j82 : Codec.Json := .array (.cons (j49) (.cons (j78) (.cons (j81) .nil)))
+@[expose] def j83 : Codec.Json := .array (.cons (.number (0)) (.cons (j24) (.cons (j28) .nil)))
+@[expose] def j84 : Codec.Json := .array (.cons (j83) .nil)
+@[expose] def j85 : Codec.Json := .array (.cons (j84) .nil)
+@[expose] def j86 : Codec.Json := .array (.cons (j14) .nil)
+@[expose] def j87 : Codec.Json := .array (.cons (.number (1)) (.cons (j6) (.cons (j6) (.cons (.number (1)) (.cons (j86) .nil)))))
+@[expose] def j88 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j6) (.cons (j7) (.cons (j70) (.cons (.number (3)) (.cons (j73) (.cons (j74) (.cons (j82) (.cons (j85) (.cons (j87) .nil)))))))))))
+@[expose] def j89 : Codec.Json := .array (.cons (j88) (.cons (j0) .nil))
+@[expose] def j90 : Codec.Json := .array (.cons (j12) (.cons (j39) .nil))
+@[expose] def j91 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (0)) .nil))
+@[expose] def j92 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (0)) .nil))
+@[expose] def j93 : Codec.Json := .array (.cons (j91) (.cons (j92) .nil))
+@[expose] def j94 : Codec.Json := .array (.cons (j9) (.cons (j45) .nil))
+@[expose] def j95 : Codec.Json := .array (.cons (j93) (.cons (j94) (.cons (j45) (.cons (j38) (.cons (j66) (.cons (.number (2)) .nil))))))
+@[expose] def j96 : Codec.Json := .array (.cons (j36) (.cons (j46) .nil))
+@[expose] def j97 : Codec.Json := .array (.cons (j49) (.cons (j54) .nil))
+@[expose] def j98 : Codec.Json := .array (.cons (.number (1)) (.cons (j24) (.cons (j28) .nil)))
+@[expose] def j99 : Codec.Json := .array (.cons (j61) (.cons (j98) .nil))
+@[expose] def j100 : Codec.Json := .array (.cons (j99) .nil)
+@[expose] def j101 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j6) (.cons (j7) (.cons (j90) (.cons (.number (2)) (.cons (j95) (.cons (j96) (.cons (j97) (.cons (j100) (.cons (j67) .nil)))))))))))
+@[expose] def j102 : Codec.Json := .array (.cons (j64) .nil)
+@[expose] def j103 : Codec.Json := .array (.cons (j101) (.cons (j102) .nil))
+@[expose] def j104 : Codec.Json := .array (.cons (j69) (.cons (j89) (.cons (j103) .nil)))
+@[expose] def j105 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (2)) (.cons (j104) .nil)))
+@[expose] def graph : Codec.Json := j105
+@[expose] def equation : Codec.Json := j5
+@[expose] def j106 : Codec.Json := .array (.cons (j0) .nil)
+@[expose] def j107 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (2)) (.cons (.number (0)) .nil)))
+@[expose] def j108 : Codec.Json := .array (.cons (.number (2)) (.cons (.number (0)) (.cons (.number (0)) .nil)))
+@[expose] def j109 : Codec.Json := .array (.cons (j15) (.cons (j17) (.cons (j107) (.cons (j108) (.cons (j22) (.cons (.number (2)) .nil))))))
+@[expose] def j110 : Codec.Json := .array (.cons (j5) .nil)
+@[expose] def j111 : Codec.Json := .array (.cons (j110) (.cons (j7) (.cons (j50) (.cons (j0) (.cons (j0) .nil)))))
+@[expose] def j112 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j0) (.cons (j6) (.cons (j7) (.cons (j33) (.cons (j111) (.cons (j14) (.cons (j14) (.cons (.number (0)) (.cons (.number (0)) (.cons (.number (0)) .nil))))))))))))
+@[expose] def j113 : Codec.Json := .array (.cons (j36) (.cons (j112) (.cons (j112) .nil)))
+@[expose] def j114 : Codec.Json := .array (.cons (.number (0)) (.cons (j0) (.cons (j50) .nil)))
+@[expose] def j115 : Codec.Json := .array (.cons (j114) .nil)
+@[expose] def j116 : Codec.Json := .array (.cons (j115) (.cons (j0) .nil))
+@[expose] def j117 : Codec.Json := .array (.cons (j116) .nil)
+@[expose] def j118 : Codec.Json := .array (.cons (j114) (.cons (j114) .nil))
+@[expose] def j119 : Codec.Json := .array (.cons (j118) (.cons (j0) .nil))
+@[expose] def j120 : Codec.Json := .array (.cons (j119) .nil)
+@[expose] def j121 : Codec.Json := .array (.cons (j49) (.cons (j117) (.cons (j120) .nil)))
+@[expose] def j122 : Codec.Json := .array (.cons (j115) .nil)
+@[expose] def j123 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j6) (.cons (j7) (.cons (j106) (.cons (.number (3)) (.cons (j109) (.cons (j113) (.cons (j121) (.cons (j122) (.cons (j87) .nil)))))))))))
+@[expose] def j124 : Codec.Json := .array (.cons (j123) (.cons (j0) .nil))
+@[expose] def j125 : Codec.Json := .array (.cons (j39) (.cons (j0) .nil))
+@[expose] def j126 : Codec.Json := .array (.cons (j91) .nil)
+@[expose] def j127 : Codec.Json := .array (.cons (j92) .nil)
+@[expose] def j128 : Codec.Json := .array (.cons (j126) (.cons (j127) (.cons (j7) (.cons (j7) (.cons (j86) (.cons (.number (1)) .nil))))))
+@[expose] def j129 : Codec.Json := .array (.cons (j36) .nil)
+@[expose] def j130 : Codec.Json := .array (.cons (j49) .nil)
+@[expose] def j131 : Codec.Json := .array (.cons (.number (1)) (.cons (j0) (.cons (j50) .nil)))
+@[expose] def j132 : Codec.Json := .array (.cons (j83) (.cons (j131) .nil))
+@[expose] def j133 : Codec.Json := .array (.cons (j132) .nil)
+@[expose] def j134 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j6) (.cons (j7) (.cons (j125) (.cons (.number (1)) (.cons (j128) (.cons (j129) (.cons (j130) (.cons (j133) (.cons (j87) .nil)))))))))))
+@[expose] def j135 : Codec.Json := .array (.cons (j8) .nil)
+@[expose] def j136 : Codec.Json := .array (.cons (j134) (.cons (j135) .nil))
+@[expose] def j137 : Codec.Json := .array (.cons (j12) (.cons (j39) (.cons (j0) .nil)))
+@[expose] def j138 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (0)) (.cons (.number (0)) .nil)))
+@[expose] def j139 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (0)) (.cons (.number (0)) .nil)))
+@[expose] def j140 : Codec.Json := .array (.cons (j138) (.cons (j139) .nil))
+@[expose] def j141 : Codec.Json := .array (.cons (.number (-1)) (.cons (.number (1)) (.cons (.number (0)) .nil)))
+@[expose] def j142 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (1)) (.cons (.number (0)) .nil)))
+@[expose] def j143 : Codec.Json := .array (.cons (j141) (.cons (j142) .nil))
+@[expose] def j144 : Codec.Json := .array (.cons (j140) (.cons (j143) (.cons (j45) (.cons (j38) (.cons (j66) (.cons (.number (2)) .nil))))))
+@[expose] def j145 : Codec.Json := .array (.cons (.number (2)) (.cons (j0) (.cons (j50) .nil)))
+@[expose] def j146 : Codec.Json := .array (.cons (j61) (.cons (j98) (.cons (j145) .nil)))
+@[expose] def j147 : Codec.Json := .array (.cons (j146) .nil)
+@[expose] def j148 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j6) (.cons (j7) (.cons (j137) (.cons (.number (2)) (.cons (j144) (.cons (j96) (.cons (j97) (.cons (j147) (.cons (j67) .nil)))))))))))
+@[expose] def j149 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (3)) .nil))
+@[expose] def j150 : Codec.Json := .array (.cons (j149) .nil)
+@[expose] def j151 : Codec.Json := .array (.cons (j148) (.cons (j150) .nil))
+@[expose] def j152 : Codec.Json := .array (.cons (j69) (.cons (j89) (.cons (j124) (.cons (j136) (.cons (j151) .nil)))))
+@[expose] def j153 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (4)) (.cons (j152) .nil)))
+@[expose] def equationGraph : Codec.Json := j153
+@[expose] def j154 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-65521)) (.cons (.number (32768)) .nil)))
+@[expose] def j155 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-181)) (.cons (.number (64)) .nil)))
+@[expose] def j156 : Codec.Json := .array (.cons (j154) (.cons (j155) (.cons (j20) .nil)))
+@[expose] def margin : Codec.Json := j156
+@[expose] def j157 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-131057)) (.cons (.number (32768)) .nil)))
+@[expose] def j158 : Codec.Json := .array (.cons (j157) (.cons (j155) .nil))
+@[expose] def j159 : Codec.Json := .array (.cons (j158) .nil)
+@[expose] def j160 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-131057)) (.cons (.number (92672)) .nil)))
+@[expose] def j161 : Codec.Json := .array (.cons (j160) (.cons (j20) .nil))
+@[expose] def j162 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-185344)) (.cons (.number (131057)) .nil)))
+@[expose] def j163 : Codec.Json := .array (.cons (j162) (.cons (j20) .nil))
+@[expose] def j164 : Codec.Json := .array (.cons (j20) .nil)
+@[expose] def j165 : Codec.Json := .array (.cons (j5) (.cons (j163) (.cons (j164) .nil)))
+@[expose] def j166 : Codec.Json := .array (.cons (j2) .nil)
+@[expose] def j167 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (131057)) (.cons (.number (46336)) .nil)))
+@[expose] def j168 : Codec.Json := .array (.cons (j4) (.cons (j166) (.cons (j167) .nil)))
+@[expose] def j169 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (185344)) (.cons (.number (131057)) .nil)))
+@[expose] def j170 : Codec.Json := .array (.cons (j169) (.cons (j20) .nil))
+@[expose] def j171 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (523838)) (.cons (.number (17175937249)) .nil)))
+@[expose] def j172 : Codec.Json := .array (.cons (j4) (.cons (j170) (.cons (j171) .nil)))
+@[expose] def j173 : Codec.Json := .array (.cons (j172) .nil)
+@[expose] def j174 : Codec.Json := .array (.cons (j169) (.cons (j4) .nil))
+@[expose] def j175 : Codec.Json := .array (.cons (j4) (.cons (j174) .nil))
+@[expose] def j176 : Codec.Json := .array (.cons (j175) .nil)
+@[expose] def j177 : Codec.Json := .array (.cons (j165) (.cons (j27) (.cons (j168) (.cons (j173) (.cons (j176) .nil)))))
+@[expose] def j178 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (1)) (.cons (.number (-1)) .nil)))
+@[expose] def j179 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (-1)) (.cons (.number (-1)) .nil)))
+@[expose] def j180 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j161) (.cons (j6) (.cons (j7) (.cons (j33) (.cons (j177) (.cons (j178) (.cons (j179) (.cons (.number (1)) (.cons (.number (1)) (.cons (.number (0)) .nil))))))))))))
+@[expose] def j181 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (34352136417)) (.cons (.number (24290628608)) .nil)))
+@[expose] def j182 : Codec.Json := .array (.cons (j181) (.cons (j4) .nil))
+@[expose] def j183 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (48581257216)) (.cons (.number (34352136417)) .nil)))
+@[expose] def j184 : Codec.Json := .array (.cons (j183) (.cons (j4) .nil))
+@[expose] def j185 : Codec.Json := .array (.cons (j5) (.cons (j184) (.cons (j24) .nil)))
+@[expose] def j186 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (34352136417)) (.cons (.number (12145314304)) .nil)))
+@[expose] def j187 : Codec.Json := .array (.cons (j4) (.cons (j39) (.cons (j186) .nil)))
+@[expose] def j188 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-48581257216)) (.cons (.number (34352136417)) .nil)))
+@[expose] def j189 : Codec.Json := .array (.cons (j188) (.cons (j4) .nil))
+@[expose] def j190 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (137203125122)) (.cons (.number (1180069276412177597889)) .nil)))
+@[expose] def j191 : Codec.Json := .array (.cons (j4) (.cons (j189) (.cons (j190) .nil)))
+@[expose] def j192 : Codec.Json := .array (.cons (j191) .nil)
+@[expose] def j193 : Codec.Json := .array (.cons (j4) (.cons (j184) .nil))
+@[expose] def j194 : Codec.Json := .array (.cons (j193) .nil)
+@[expose] def j195 : Codec.Json := .array (.cons (j185) (.cons (j27) (.cons (j187) (.cons (j192) (.cons (j194) .nil)))))
+@[expose] def j196 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j182) (.cons (j6) (.cons (j7) (.cons (j33) (.cons (j195) (.cons (j34) (.cons (j35) (.cons (.number (2)) (.cons (.number (0)) (.cons (.number (2)) .nil))))))))))))
+@[expose] def j197 : Codec.Json := .array (.cons (j36) (.cons (j180) (.cons (j196) .nil)))
+@[expose] def j198 : Codec.Json := .array (.cons (.number (0)) (.cons (j161) (.cons (j50) .nil)))
+@[expose] def j199 : Codec.Json := .array (.cons (j198) .nil)
+@[expose] def j200 : Codec.Json := .array (.cons (j199) (.cons (j161) .nil))
+@[expose] def j201 : Codec.Json := .array (.cons (j200) .nil)
+@[expose] def j202 : Codec.Json := .array (.cons (j4) (.cons (j24) (.cons (j167) .nil)))
+@[expose] def j203 : Codec.Json := .array (.cons (.number (0)) (.cons (j182) (.cons (j202) .nil)))
+@[expose] def j204 : Codec.Json := .array (.cons (j198) (.cons (j203) .nil))
+@[expose] def j205 : Codec.Json := .array (.cons (j204) (.cons (j182) .nil))
+@[expose] def j206 : Codec.Json := .array (.cons (j205) .nil)
+@[expose] def j207 : Codec.Json := .array (.cons (j49) (.cons (j201) (.cons (j206) .nil)))
+@[expose] def j208 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (181)) (.cons (.number (64)) .nil)))
+@[expose] def j209 : Codec.Json := .array (.cons (j4) (.cons (j0) (.cons (j208) .nil)))
+@[expose] def j210 : Codec.Json := .array (.cons (.number (0)) (.cons (j161) (.cons (j209) .nil)))
+@[expose] def j211 : Codec.Json := .array (.cons (j210) .nil)
+@[expose] def j212 : Codec.Json := .array (.cons (j211) .nil)
+@[expose] def j213 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j6) (.cons (j7) (.cons (j159) (.cons (.number (3)) (.cons (j23) (.cons (j197) (.cons (j207) (.cons (j212) (.cons (j67) .nil)))))))))))
+@[expose] def j214 : Codec.Json := .array (.cons (j213) (.cons (j0) .nil))
+@[expose] def j215 : Codec.Json := .array (.cons (j39) (.cons (j158) .nil))
+@[expose] def j216 : Codec.Json := .array (.cons (j91) (.cons (j64) .nil))
+@[expose] def j217 : Codec.Json := .array (.cons (j216) (.cons (j66) (.cons (j45) (.cons (j38) (.cons (j66) (.cons (.number (2)) .nil))))))
+@[expose] def j218 : Codec.Json := .array (.cons (j36) (.cons (j180) .nil))
+@[expose] def j219 : Codec.Json := .array (.cons (.number (1)) (.cons (j161) (.cons (j50) .nil)))
+@[expose] def j220 : Codec.Json := .array (.cons (j219) .nil)
+@[expose] def j221 : Codec.Json := .array (.cons (j220) (.cons (j161) .nil))
+@[expose] def j222 : Codec.Json := .array (.cons (j221) .nil)
+@[expose] def j223 : Codec.Json := .array (.cons (j49) (.cons (j222) .nil))
+@[expose] def j224 : Codec.Json := .array (.cons (.number (1)) (.cons (j161) (.cons (j209) .nil)))
+@[expose] def j225 : Codec.Json := .array (.cons (j83) (.cons (j224) .nil))
+@[expose] def j226 : Codec.Json := .array (.cons (j225) .nil)
+@[expose] def j227 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j6) (.cons (j7) (.cons (j215) (.cons (.number (2)) (.cons (j217) (.cons (j218) (.cons (j223) (.cons (j226) (.cons (j67) .nil)))))))))))
+@[expose] def j228 : Codec.Json := .array (.cons (j227) (.cons (j135) .nil))
+@[expose] def j229 : Codec.Json := .array (.cons (j12) (.cons (j39) (.cons (j158) .nil)))
+@[expose] def j230 : Codec.Json := .array (.cons (j138) (.cons (j3) (.cons (j139) (.cons (j18) .nil))))
+@[expose] def j231 : Codec.Json := .array (.cons (.number (-1)) (.cons (.number (1)) (.cons (.number (-1)) .nil)))
+@[expose] def j232 : Codec.Json := .array (.cons (.number (-1)) (.cons (.number (1)) (.cons (.number (1)) .nil)))
+@[expose] def j233 : Codec.Json := .array (.cons (j231) (.cons (j232) (.cons (j178) (.cons (j35) .nil))))
+@[expose] def j234 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (1)) (.cons (.number (1)) (.cons (.number (0)) .nil))))
+end Hex.RCF.RealCoefficients.EnumeratedSource.Negative
diff --git a/conformance/HexRCF/EnumeratedSource/Positive.lean b/conformance/HexRCF/EnumeratedSource/Positive.lean
new file mode 100644
index 0000000000..f2dbf4199a
--- /dev/null
+++ b/conformance/HexRCF/EnumeratedSource/Positive.lean
@@ -0,0 +1,56 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+module
+public import HexSignDet.Codec.Json
+public import HexRCF.EnumeratedSource.PositiveData0
+/-! Shared constructor data from `conformance-fixtures/HexRCF/enumerated-source.json`.
+The descriptor reader checks this supplied replay independently of its producer. -/
+public section
+
+namespace Hex.RCF.RealCoefficients.EnumeratedSource.Positive
+open Hex.SignDet
+@[expose] def j235 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (-1)) (.cons (.number (-1)) (.cons (.number (1)) .nil))))
+@[expose] def j236 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (1)) (.cons (.number (-1)) (.cons (.number (-1)) .nil))))
+@[expose] def j237 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (-1)) (.cons (.number (1)) (.cons (.number (-1)) .nil))))
+@[expose] def j238 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (1)) (.cons (.number (1)) (.cons (.number (1)) .nil))))
+@[expose] def j239 : Codec.Json := .array (.cons (j235) (.cons (j236) (.cons (j237) (.cons (j238) .nil))))
+@[expose] def j240 : Codec.Json := .array (.cons (j229) (.cons (j232) (.cons (j233) (.cons (j234) (.cons (j239) (.cons (.number (4)) .nil))))))
+@[expose] def j241 : Codec.Json := .array (.cons (j5) (.cons (j161) (.cons (j24) .nil)))
+@[expose] def j242 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (370688)) (.cons (.number (131057)) .nil)))
+@[expose] def j243 : Codec.Json := .array (.cons (j4) (.cons (j185) (.cons (j242) .nil)))
+@[expose] def j244 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (131057)) (.cons (.number (92672)) .nil)))
+@[expose] def j245 : Codec.Json := .array (.cons (j244) (.cons (j4) .nil))
+@[expose] def j246 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (261919)) (.cons (.number (8588099584)) .nil)))
+@[expose] def j247 : Codec.Json := .array (.cons (j4) (.cons (j245) (.cons (j246) .nil)))
+@[expose] def j248 : Codec.Json := .array (.cons (j247) .nil)
+@[expose] def j249 : Codec.Json := .array (.cons (j4) (.cons (j161) .nil))
+@[expose] def j250 : Codec.Json := .array (.cons (j249) .nil)
+@[expose] def j251 : Codec.Json := .array (.cons (j241) (.cons (j27) (.cons (j243) (.cons (j248) (.cons (j250) .nil)))))
+@[expose] def j252 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j163) (.cons (j6) (.cons (j7) (.cons (j33) (.cons (j251) (.cons (j34) (.cons (j35) (.cons (.number (2)) (.cons (.number (0)) (.cons (.number (2)) .nil))))))))))))
+@[expose] def j253 : Codec.Json := .array (.cons (j36) (.cons (j179) (.cons (j45) (.cons (j252) .nil))))
+@[expose] def j254 : Codec.Json := .array (.cons (.number (2)) (.cons (j161) (.cons (j49) .nil)))
+@[expose] def j255 : Codec.Json := .array (.cons (j254) .nil)
+@[expose] def j256 : Codec.Json := .array (.cons (j255) (.cons (j161) .nil))
+@[expose] def j257 : Codec.Json := .array (.cons (j256) .nil)
+@[expose] def j258 : Codec.Json := .array (.cons (j4) (.cons (j24) (.cons (j244) .nil)))
+@[expose] def j259 : Codec.Json := .array (.cons (.number (2)) (.cons (j163) (.cons (j258) .nil)))
+@[expose] def j260 : Codec.Json := .array (.cons (j50) (.cons (j259) .nil))
+@[expose] def j261 : Codec.Json := .array (.cons (j260) (.cons (j163) .nil))
+@[expose] def j262 : Codec.Json := .array (.cons (j261) .nil)
+@[expose] def j263 : Codec.Json := .array (.cons (j48) (.cons (j257) (.cons (j53) (.cons (j262) .nil))))
+@[expose] def j264 : Codec.Json := .array (.cons (.number (2)) (.cons (j161) (.cons (j208) .nil)))
+@[expose] def j265 : Codec.Json := .array (.cons (j60) (.cons (j98) (.cons (j264) .nil)))
+@[expose] def j266 : Codec.Json := .array (.cons (j265) .nil)
+@[expose] def j267 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j6) (.cons (j7) (.cons (j228) (.cons (.number (4)) (.cons (j240) (.cons (j253) (.cons (j263) (.cons (j266) (.cons (j66) .nil)))))))))))
+@[expose] def j268 : Codec.Json := .array (.cons (j267) (.cons (j150) .nil))
+@[expose] def j269 : Codec.Json := .array (.cons (j68) (.cons (j88) (.cons (j213) (.cons (j227) (.cons (j268) .nil)))))
+@[expose] def j270 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (4)) (.cons (j269) .nil)))
+@[expose] def marginGraph : Codec.Json := j270
+@[expose] def j271 : Codec.Json := .array (.cons (j5) (.cons (.number (0)) (.cons (j153) .nil)))
+@[expose] def j272 : Codec.Json := .array (.cons (j156) (.cons (.number (1)) (.cons (j270) .nil)))
+@[expose] def j273 : Codec.Json := .array (.cons (j10) (.cons (j105) (.cons (j271) (.cons (j272) .nil))))
+@[expose] def packet : Codec.Json := j273
+end Hex.RCF.RealCoefficients.EnumeratedSource.Positive
diff --git a/conformance/HexRCF/EnumeratedSource/PositiveData0.lean b/conformance/HexRCF/EnumeratedSource/PositiveData0.lean
new file mode 100644
index 0000000000..5e40601e1d
--- /dev/null
+++ b/conformance/HexRCF/EnumeratedSource/PositiveData0.lean
@@ -0,0 +1,254 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+module
+public import HexSignDet.Codec.Json
+/-! Shared constructor data from `conformance-fixtures/HexRCF/enumerated-source.json`.
+The descriptor reader checks this supplied replay independently of its producer. -/
+public section
+
+namespace Hex.RCF.RealCoefficients.EnumeratedSource.Positive
+open Hex.SignDet
+@[expose] def j0 : Codec.Json := .array .nil
+@[expose] def j1 : Codec.Json := .array (.cons (j0) (.cons (.number (0)) (.cons (j0) .nil)))
+@[expose] def j2 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-2)) (.cons (.number (1)) .nil)))
+@[expose] def j3 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (0)) (.cons (.number (1)) .nil)))
+@[expose] def j4 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (1)) (.cons (.number (1)) .nil)))
+@[expose] def j5 : Codec.Json := .array (.cons (j2) (.cons (j3) (.cons (j4) .nil)))
+@[expose] def j6 : Codec.Json := .array (.cons (.number (0)) .nil)
+@[expose] def j7 : Codec.Json := .array (.cons (.number (2)) .nil)
+@[expose] def j8 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (2)) .nil))
+@[expose] def j9 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (1)) .nil))
+@[expose] def j10 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j6) (.cons (j7) (.cons (j8) (.cons (j9) .nil))))))
+@[expose] def subject : Codec.Json := j10
+@[expose] def j11 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (2)) (.cons (.number (1)) .nil)))
+@[expose] def j12 : Codec.Json := .array (.cons (j3) (.cons (j11) .nil))
+@[expose] def j13 : Codec.Json := .array (.cons (j12) .nil)
+@[expose] def j14 : Codec.Json := .array (.cons (.number (1)) .nil)
+@[expose] def j15 : Codec.Json := .array (.cons (j6) (.cons (j14) (.cons (j7) .nil)))
+@[expose] def j16 : Codec.Json := .array (.cons (.number (-1)) .nil)
+@[expose] def j17 : Codec.Json := .array (.cons (j16) (.cons (j6) (.cons (j14) .nil)))
+@[expose] def j18 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (0)) (.cons (.number (1)) .nil)))
+@[expose] def j19 : Codec.Json := .array (.cons (.number (2)) (.cons (.number (0)) (.cons (.number (2)) .nil)))
+@[expose] def j20 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-1)) (.cons (.number (1)) .nil)))
+@[expose] def j21 : Codec.Json := .array (.cons (.number (2)) (.cons (.number (0)) (.cons (.number (-2)) .nil)))
+@[expose] def j22 : Codec.Json := .array (.cons (j20) (.cons (j21) (.cons (j4) .nil)))
+@[expose] def j23 : Codec.Json := .array (.cons (j15) (.cons (j17) (.cons (j18) (.cons (j19) (.cons (j22) (.cons (.number (2)) .nil))))))
+@[expose] def j24 : Codec.Json := .array (.cons (j4) .nil)
+@[expose] def j25 : Codec.Json := .array (.cons (j3) (.cons (j4) .nil))
+@[expose] def j26 : Codec.Json := .array (.cons (j5) (.cons (j25) (.cons (j24) .nil)))
+@[expose] def j27 : Codec.Json := .array (.cons (.number (2)) (.cons (.number (1)) (.cons (.number (0)) .nil)))
+@[expose] def j28 : Codec.Json := .array (.cons (j4) (.cons (j0) (.cons (j11) .nil)))
+@[expose] def j29 : Codec.Json := .array (.cons (j4) (.cons (j25) (.cons (j11) .nil)))
+@[expose] def j30 : Codec.Json := .array (.cons (j29) .nil)
+@[expose] def j31 : Codec.Json := .array (.cons (j4) (.cons (j25) .nil))
+@[expose] def j32 : Codec.Json := .array (.cons (j31) .nil)
+@[expose] def j33 : Codec.Json := .array (.cons (j26) (.cons (j27) (.cons (j28) (.cons (j30) (.cons (j32) .nil)))))
+@[expose] def j34 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (-1)) (.cons (.number (1)) .nil)))
+@[expose] def j35 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (1)) (.cons (.number (1)) .nil)))
+@[expose] def j36 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j24) (.cons (j6) (.cons (j7) (.cons (j33) (.cons (j33) (.cons (j34) (.cons (j35) (.cons (.number (2)) (.cons (.number (0)) (.cons (.number (2)) .nil))))))))))))
+@[expose] def j37 : Codec.Json := .array (.cons (j5) (.cons (j24) .nil))
+@[expose] def j38 : Codec.Json := .array (.cons (.number (2)) (.cons (.number (0)) .nil))
+@[expose] def j39 : Codec.Json := .array (.cons (j11) .nil)
+@[expose] def j40 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (4)) (.cons (.number (1)) .nil)))
+@[expose] def j41 : Codec.Json := .array (.cons (j4) (.cons (j39) (.cons (j40) .nil)))
+@[expose] def j42 : Codec.Json := .array (.cons (j4) (.cons (j5) .nil))
+@[expose] def j43 : Codec.Json := .array (.cons (j42) .nil)
+@[expose] def j44 : Codec.Json := .array (.cons (j37) (.cons (j38) (.cons (j41) (.cons (j0) (.cons (j43) .nil)))))
+@[expose] def j45 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j25) (.cons (j6) (.cons (j7) (.cons (j33) (.cons (j44) (.cons (j9) (.cons (j9) (.cons (.number (0)) (.cons (.number (0)) (.cons (.number (0)) .nil))))))))))))
+@[expose] def j46 : Codec.Json := .array (.cons (j36) (.cons (j45) (.cons (j36) .nil)))
+@[expose] def j47 : Codec.Json := .array (.cons (j0) (.cons (j24) .nil))
+@[expose] def j48 : Codec.Json := .array (.cons (j47) .nil)
+@[expose] def j49 : Codec.Json := .array (.cons (j4) (.cons (j0) (.cons (j4) .nil)))
+@[expose] def j50 : Codec.Json := .array (.cons (.number (0)) (.cons (j25) (.cons (j49) .nil)))
+@[expose] def j51 : Codec.Json := .array (.cons (j50) .nil)
+@[expose] def j52 : Codec.Json := .array (.cons (j51) (.cons (j25) .nil))
+@[expose] def j53 : Codec.Json := .array (.cons (j52) .nil)
+@[expose] def j54 : Codec.Json := .array (.cons (j4) (.cons (j24) (.cons (j11) .nil)))
+@[expose] def j55 : Codec.Json := .array (.cons (.number (0)) (.cons (j24) (.cons (j54) .nil)))
+@[expose] def j56 : Codec.Json := .array (.cons (j50) (.cons (j55) .nil))
+@[expose] def j57 : Codec.Json := .array (.cons (j56) (.cons (j24) .nil))
+@[expose] def j58 : Codec.Json := .array (.cons (j57) .nil)
+@[expose] def j59 : Codec.Json := .array (.cons (j48) (.cons (j53) (.cons (j58) .nil)))
+@[expose] def j60 : Codec.Json := .array (.cons (.number (0)) (.cons (j25) (.cons (j28) .nil)))
+@[expose] def j61 : Codec.Json := .array (.cons (j60) .nil)
+@[expose] def j62 : Codec.Json := .array (.cons (j61) .nil)
+@[expose] def j63 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (1)) .nil))
+@[expose] def j64 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (-1)) .nil))
+@[expose] def j65 : Codec.Json := .array (.cons (j64) (.cons (j9) .nil))
+@[expose] def j66 : Codec.Json := .array (.cons (.number (2)) (.cons (j63) (.cons (j63) (.cons (.number (2)) (.cons (j65) .nil)))))
+@[expose] def j67 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j6) (.cons (j7) (.cons (j13) (.cons (.number (3)) (.cons (j23) (.cons (j46) (.cons (j59) (.cons (j62) (.cons (j66) .nil)))))))))))
+@[expose] def j68 : Codec.Json := .array (.cons (j67) (.cons (j0) .nil))
+@[expose] def j69 : Codec.Json := .array (.cons (j39) .nil)
+@[expose] def j70 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (0)) (.cons (.number (2)) .nil)))
+@[expose] def j71 : Codec.Json := .array (.cons (.number (2)) (.cons (.number (2)) (.cons (.number (2)) .nil)))
+@[expose] def j72 : Codec.Json := .array (.cons (j15) (.cons (j17) (.cons (j70) (.cons (j71) (.cons (j22) (.cons (.number (2)) .nil))))))
+@[expose] def j73 : Codec.Json := .array (.cons (j36) (.cons (j36) (.cons (j36) .nil)))
+@[expose] def j74 : Codec.Json := .array (.cons (.number (0)) (.cons (j24) (.cons (j49) .nil)))
+@[expose] def j75 : Codec.Json := .array (.cons (j74) .nil)
+@[expose] def j76 : Codec.Json := .array (.cons (j75) (.cons (j24) .nil))
+@[expose] def j77 : Codec.Json := .array (.cons (j76) .nil)
+@[expose] def j78 : Codec.Json := .array (.cons (j74) (.cons (j74) .nil))
+@[expose] def j79 : Codec.Json := .array (.cons (j78) (.cons (j24) .nil))
+@[expose] def j80 : Codec.Json := .array (.cons (j79) .nil)
+@[expose] def j81 : Codec.Json := .array (.cons (j48) (.cons (j77) (.cons (j80) .nil)))
+@[expose] def j82 : Codec.Json := .array (.cons (.number (0)) (.cons (j24) (.cons (j28) .nil)))
+@[expose] def j83 : Codec.Json := .array (.cons (j82) .nil)
+@[expose] def j84 : Codec.Json := .array (.cons (j83) .nil)
+@[expose] def j85 : Codec.Json := .array (.cons (j14) .nil)
+@[expose] def j86 : Codec.Json := .array (.cons (.number (1)) (.cons (j6) (.cons (j6) (.cons (.number (1)) (.cons (j85) .nil)))))
+@[expose] def j87 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j6) (.cons (j7) (.cons (j69) (.cons (.number (3)) (.cons (j72) (.cons (j73) (.cons (j81) (.cons (j84) (.cons (j86) .nil)))))))))))
+@[expose] def j88 : Codec.Json := .array (.cons (j87) (.cons (j0) .nil))
+@[expose] def j89 : Codec.Json := .array (.cons (j12) (.cons (j39) .nil))
+@[expose] def j90 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (0)) .nil))
+@[expose] def j91 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (0)) .nil))
+@[expose] def j92 : Codec.Json := .array (.cons (j90) (.cons (j91) .nil))
+@[expose] def j93 : Codec.Json := .array (.cons (.number (-1)) (.cons (.number (1)) .nil))
+@[expose] def j94 : Codec.Json := .array (.cons (j93) (.cons (j9) .nil))
+@[expose] def j95 : Codec.Json := .array (.cons (j92) (.cons (j94) (.cons (j9) (.cons (j38) (.cons (j65) (.cons (.number (2)) .nil))))))
+@[expose] def j96 : Codec.Json := .array (.cons (j36) (.cons (j45) .nil))
+@[expose] def j97 : Codec.Json := .array (.cons (j48) (.cons (j53) .nil))
+@[expose] def j98 : Codec.Json := .array (.cons (.number (1)) (.cons (j24) (.cons (j28) .nil)))
+@[expose] def j99 : Codec.Json := .array (.cons (j60) (.cons (j98) .nil))
+@[expose] def j100 : Codec.Json := .array (.cons (j99) .nil)
+@[expose] def j101 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j6) (.cons (j7) (.cons (j89) (.cons (.number (2)) (.cons (j95) (.cons (j96) (.cons (j97) (.cons (j100) (.cons (j66) .nil)))))))))))
+@[expose] def j102 : Codec.Json := .array (.cons (j63) .nil)
+@[expose] def j103 : Codec.Json := .array (.cons (j101) (.cons (j102) .nil))
+@[expose] def j104 : Codec.Json := .array (.cons (j68) (.cons (j88) (.cons (j103) .nil)))
+@[expose] def j105 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (2)) (.cons (j104) .nil)))
+@[expose] def graph : Codec.Json := j105
+@[expose] def equation : Codec.Json := j5
+@[expose] def j106 : Codec.Json := .array (.cons (j0) .nil)
+@[expose] def j107 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (2)) (.cons (.number (0)) .nil)))
+@[expose] def j108 : Codec.Json := .array (.cons (.number (2)) (.cons (.number (0)) (.cons (.number (0)) .nil)))
+@[expose] def j109 : Codec.Json := .array (.cons (j15) (.cons (j17) (.cons (j107) (.cons (j108) (.cons (j22) (.cons (.number (2)) .nil))))))
+@[expose] def j110 : Codec.Json := .array (.cons (j5) .nil)
+@[expose] def j111 : Codec.Json := .array (.cons (j110) (.cons (j7) (.cons (j49) (.cons (j0) (.cons (j0) .nil)))))
+@[expose] def j112 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j0) (.cons (j6) (.cons (j7) (.cons (j33) (.cons (j111) (.cons (j14) (.cons (j14) (.cons (.number (0)) (.cons (.number (0)) (.cons (.number (0)) .nil))))))))))))
+@[expose] def j113 : Codec.Json := .array (.cons (j36) (.cons (j112) (.cons (j112) .nil)))
+@[expose] def j114 : Codec.Json := .array (.cons (.number (0)) (.cons (j0) (.cons (j49) .nil)))
+@[expose] def j115 : Codec.Json := .array (.cons (j114) .nil)
+@[expose] def j116 : Codec.Json := .array (.cons (j115) (.cons (j0) .nil))
+@[expose] def j117 : Codec.Json := .array (.cons (j116) .nil)
+@[expose] def j118 : Codec.Json := .array (.cons (j114) (.cons (j114) .nil))
+@[expose] def j119 : Codec.Json := .array (.cons (j118) (.cons (j0) .nil))
+@[expose] def j120 : Codec.Json := .array (.cons (j119) .nil)
+@[expose] def j121 : Codec.Json := .array (.cons (j48) (.cons (j117) (.cons (j120) .nil)))
+@[expose] def j122 : Codec.Json := .array (.cons (j115) .nil)
+@[expose] def j123 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j6) (.cons (j7) (.cons (j106) (.cons (.number (3)) (.cons (j109) (.cons (j113) (.cons (j121) (.cons (j122) (.cons (j86) .nil)))))))))))
+@[expose] def j124 : Codec.Json := .array (.cons (j123) (.cons (j0) .nil))
+@[expose] def j125 : Codec.Json := .array (.cons (j39) (.cons (j0) .nil))
+@[expose] def j126 : Codec.Json := .array (.cons (j90) .nil)
+@[expose] def j127 : Codec.Json := .array (.cons (j91) .nil)
+@[expose] def j128 : Codec.Json := .array (.cons (j126) (.cons (j127) (.cons (j7) (.cons (j7) (.cons (j85) (.cons (.number (1)) .nil))))))
+@[expose] def j129 : Codec.Json := .array (.cons (j36) .nil)
+@[expose] def j130 : Codec.Json := .array (.cons (j48) .nil)
+@[expose] def j131 : Codec.Json := .array (.cons (.number (1)) (.cons (j0) (.cons (j49) .nil)))
+@[expose] def j132 : Codec.Json := .array (.cons (j82) (.cons (j131) .nil))
+@[expose] def j133 : Codec.Json := .array (.cons (j132) .nil)
+@[expose] def j134 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j6) (.cons (j7) (.cons (j125) (.cons (.number (1)) (.cons (j128) (.cons (j129) (.cons (j130) (.cons (j133) (.cons (j86) .nil)))))))))))
+@[expose] def j135 : Codec.Json := .array (.cons (j8) .nil)
+@[expose] def j136 : Codec.Json := .array (.cons (j134) (.cons (j135) .nil))
+@[expose] def j137 : Codec.Json := .array (.cons (j12) (.cons (j39) (.cons (j0) .nil)))
+@[expose] def j138 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (0)) (.cons (.number (0)) .nil)))
+@[expose] def j139 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (0)) (.cons (.number (0)) .nil)))
+@[expose] def j140 : Codec.Json := .array (.cons (j138) (.cons (j139) .nil))
+@[expose] def j141 : Codec.Json := .array (.cons (.number (-1)) (.cons (.number (1)) (.cons (.number (0)) .nil)))
+@[expose] def j142 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (1)) (.cons (.number (0)) .nil)))
+@[expose] def j143 : Codec.Json := .array (.cons (j141) (.cons (j142) .nil))
+@[expose] def j144 : Codec.Json := .array (.cons (j140) (.cons (j143) (.cons (j9) (.cons (j38) (.cons (j65) (.cons (.number (2)) .nil))))))
+@[expose] def j145 : Codec.Json := .array (.cons (.number (2)) (.cons (j0) (.cons (j49) .nil)))
+@[expose] def j146 : Codec.Json := .array (.cons (j60) (.cons (j98) (.cons (j145) .nil)))
+@[expose] def j147 : Codec.Json := .array (.cons (j146) .nil)
+@[expose] def j148 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j6) (.cons (j7) (.cons (j137) (.cons (.number (2)) (.cons (j144) (.cons (j96) (.cons (j97) (.cons (j147) (.cons (j66) .nil)))))))))))
+@[expose] def j149 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (3)) .nil))
+@[expose] def j150 : Codec.Json := .array (.cons (j149) .nil)
+@[expose] def j151 : Codec.Json := .array (.cons (j148) (.cons (j150) .nil))
+@[expose] def j152 : Codec.Json := .array (.cons (j68) (.cons (j88) (.cons (j124) (.cons (j136) (.cons (j151) .nil)))))
+@[expose] def j153 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (4)) (.cons (j152) .nil)))
+@[expose] def equationGraph : Codec.Json := j153
+@[expose] def j154 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-65521)) (.cons (.number (32768)) .nil)))
+@[expose] def j155 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (181)) (.cons (.number (64)) .nil)))
+@[expose] def j156 : Codec.Json := .array (.cons (j154) (.cons (j155) (.cons (j20) .nil)))
+@[expose] def margin : Codec.Json := j156
+@[expose] def j157 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-131057)) (.cons (.number (32768)) .nil)))
+@[expose] def j158 : Codec.Json := .array (.cons (j157) (.cons (j155) .nil))
+@[expose] def j159 : Codec.Json := .array (.cons (j158) .nil)
+@[expose] def j160 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-131057)) (.cons (.number (92672)) .nil)))
+@[expose] def j161 : Codec.Json := .array (.cons (j160) (.cons (j4) .nil))
+@[expose] def j162 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (185344)) (.cons (.number (131057)) .nil)))
+@[expose] def j163 : Codec.Json := .array (.cons (j162) (.cons (j20) .nil))
+@[expose] def j164 : Codec.Json := .array (.cons (j20) .nil)
+@[expose] def j165 : Codec.Json := .array (.cons (j5) (.cons (j163) (.cons (j164) .nil)))
+@[expose] def j166 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (131057)) (.cons (.number (46336)) .nil)))
+@[expose] def j167 : Codec.Json := .array (.cons (j4) (.cons (j39) (.cons (j166) .nil)))
+@[expose] def j168 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-185344)) (.cons (.number (131057)) .nil)))
+@[expose] def j169 : Codec.Json := .array (.cons (j168) (.cons (j20) .nil))
+@[expose] def j170 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (523838)) (.cons (.number (17175937249)) .nil)))
+@[expose] def j171 : Codec.Json := .array (.cons (j4) (.cons (j169) (.cons (j170) .nil)))
+@[expose] def j172 : Codec.Json := .array (.cons (j171) .nil)
+@[expose] def j173 : Codec.Json := .array (.cons (j168) (.cons (j4) .nil))
+@[expose] def j174 : Codec.Json := .array (.cons (j4) (.cons (j173) .nil))
+@[expose] def j175 : Codec.Json := .array (.cons (j174) .nil)
+@[expose] def j176 : Codec.Json := .array (.cons (j165) (.cons (j27) (.cons (j167) (.cons (j172) (.cons (j175) .nil)))))
+@[expose] def j177 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (1)) (.cons (.number (-1)) .nil)))
+@[expose] def j178 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (-1)) (.cons (.number (-1)) .nil)))
+@[expose] def j179 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j161) (.cons (j6) (.cons (j7) (.cons (j33) (.cons (j176) (.cons (j177) (.cons (j178) (.cons (.number (1)) (.cons (.number (1)) (.cons (.number (0)) .nil))))))))))))
+@[expose] def j180 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (34352136417)) (.cons (.number (24290628608)) .nil)))
+@[expose] def j181 : Codec.Json := .array (.cons (j180) (.cons (j20) .nil))
+@[expose] def j182 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-48581257216)) (.cons (.number (34352136417)) .nil)))
+@[expose] def j183 : Codec.Json := .array (.cons (j182) (.cons (j4) .nil))
+@[expose] def j184 : Codec.Json := .array (.cons (j5) (.cons (j183) (.cons (j24) .nil)))
+@[expose] def j185 : Codec.Json := .array (.cons (j2) .nil)
+@[expose] def j186 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (34352136417)) (.cons (.number (12145314304)) .nil)))
+@[expose] def j187 : Codec.Json := .array (.cons (j4) (.cons (j185) (.cons (j186) .nil)))
+@[expose] def j188 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (48581257216)) (.cons (.number (34352136417)) .nil)))
+@[expose] def j189 : Codec.Json := .array (.cons (j188) (.cons (j4) .nil))
+@[expose] def j190 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (137203125122)) (.cons (.number (1180069276412177597889)) .nil)))
+@[expose] def j191 : Codec.Json := .array (.cons (j4) (.cons (j189) (.cons (j190) .nil)))
+@[expose] def j192 : Codec.Json := .array (.cons (j191) .nil)
+@[expose] def j193 : Codec.Json := .array (.cons (j4) (.cons (j183) .nil))
+@[expose] def j194 : Codec.Json := .array (.cons (j193) .nil)
+@[expose] def j195 : Codec.Json := .array (.cons (j184) (.cons (j27) (.cons (j187) (.cons (j192) (.cons (j194) .nil)))))
+@[expose] def j196 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j181) (.cons (j6) (.cons (j7) (.cons (j33) (.cons (j195) (.cons (j34) (.cons (j35) (.cons (.number (2)) (.cons (.number (0)) (.cons (.number (2)) .nil))))))))))))
+@[expose] def j197 : Codec.Json := .array (.cons (j36) (.cons (j179) (.cons (j196) .nil)))
+@[expose] def j198 : Codec.Json := .array (.cons (.number (0)) (.cons (j161) (.cons (j49) .nil)))
+@[expose] def j199 : Codec.Json := .array (.cons (j198) .nil)
+@[expose] def j200 : Codec.Json := .array (.cons (j199) (.cons (j161) .nil))
+@[expose] def j201 : Codec.Json := .array (.cons (j200) .nil)
+@[expose] def j202 : Codec.Json := .array (.cons (j4) (.cons (j24) (.cons (j166) .nil)))
+@[expose] def j203 : Codec.Json := .array (.cons (.number (0)) (.cons (j181) (.cons (j202) .nil)))
+@[expose] def j204 : Codec.Json := .array (.cons (j198) (.cons (j203) .nil))
+@[expose] def j205 : Codec.Json := .array (.cons (j204) (.cons (j181) .nil))
+@[expose] def j206 : Codec.Json := .array (.cons (j205) .nil)
+@[expose] def j207 : Codec.Json := .array (.cons (j48) (.cons (j201) (.cons (j206) .nil)))
+@[expose] def j208 : Codec.Json := .array (.cons (j4) (.cons (j0) (.cons (j155) .nil)))
+@[expose] def j209 : Codec.Json := .array (.cons (.number (0)) (.cons (j161) (.cons (j208) .nil)))
+@[expose] def j210 : Codec.Json := .array (.cons (j209) .nil)
+@[expose] def j211 : Codec.Json := .array (.cons (j210) .nil)
+@[expose] def j212 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j6) (.cons (j7) (.cons (j159) (.cons (.number (3)) (.cons (j23) (.cons (j197) (.cons (j207) (.cons (j211) (.cons (j66) .nil)))))))))))
+@[expose] def j213 : Codec.Json := .array (.cons (j212) (.cons (j0) .nil))
+@[expose] def j214 : Codec.Json := .array (.cons (j39) (.cons (j158) .nil))
+@[expose] def j215 : Codec.Json := .array (.cons (j90) (.cons (j63) .nil))
+@[expose] def j216 : Codec.Json := .array (.cons (j215) (.cons (j65) (.cons (j9) (.cons (j38) (.cons (j65) (.cons (.number (2)) .nil))))))
+@[expose] def j217 : Codec.Json := .array (.cons (j36) (.cons (j179) .nil))
+@[expose] def j218 : Codec.Json := .array (.cons (.number (1)) (.cons (j161) (.cons (j49) .nil)))
+@[expose] def j219 : Codec.Json := .array (.cons (j218) .nil)
+@[expose] def j220 : Codec.Json := .array (.cons (j219) (.cons (j161) .nil))
+@[expose] def j221 : Codec.Json := .array (.cons (j220) .nil)
+@[expose] def j222 : Codec.Json := .array (.cons (j48) (.cons (j221) .nil))
+@[expose] def j223 : Codec.Json := .array (.cons (.number (1)) (.cons (j161) (.cons (j208) .nil)))
+@[expose] def j224 : Codec.Json := .array (.cons (j82) (.cons (j223) .nil))
+@[expose] def j225 : Codec.Json := .array (.cons (j224) .nil)
+@[expose] def j226 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j6) (.cons (j7) (.cons (j214) (.cons (.number (2)) (.cons (j216) (.cons (j217) (.cons (j222) (.cons (j225) (.cons (j66) .nil)))))))))))
+@[expose] def j227 : Codec.Json := .array (.cons (j226) (.cons (j135) .nil))
+@[expose] def j228 : Codec.Json := .array (.cons (j12) (.cons (j39) (.cons (j158) .nil)))
+@[expose] def j229 : Codec.Json := .array (.cons (j138) (.cons (j3) (.cons (j139) (.cons (j18) .nil))))
+@[expose] def j230 : Codec.Json := .array (.cons (.number (-1)) (.cons (.number (1)) (.cons (.number (-1)) .nil)))
+@[expose] def j231 : Codec.Json := .array (.cons (.number (-1)) (.cons (.number (1)) (.cons (.number (1)) .nil)))
+@[expose] def j232 : Codec.Json := .array (.cons (j230) (.cons (j231) (.cons (j177) (.cons (j35) .nil))))
+@[expose] def j233 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (0)) (.cons (.number (0)) (.cons (.number (1)) .nil))))
+@[expose] def j234 : Codec.Json := .array (.cons (.number (2)) (.cons (.number (0)) (.cons (.number (0)) (.cons (.number (2)) .nil))))
+end Hex.RCF.RealCoefficients.EnumeratedSource.Positive
diff --git a/conformance/HexRCF/EnumeratedSource/Proofs.lean b/conformance/HexRCF/EnumeratedSource/Proofs.lean
new file mode 100644
index 0000000000..a866432383
--- /dev/null
+++ b/conformance/HexRCF/EnumeratedSource/Proofs.lean
@@ -0,0 +1,73 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+import HexRCF.EnumeratedSource.Quote
+import HexRCF.ProofEvidence
+import HexRCF.SelectedRoot.KernelCheck
+import KernelReplay.AxiomClosure
+meta section
+open Lean Meta Hex.RealClosure Hex.RCF.RealCoefficients
+set_option maxRecDepth 32768
+set_option maxHeartbeats 24000000
+run_meta do
+ let roots := #[``Hex.RCF.EnumeratedSourceQuote.positive,
+ ``Hex.RCF.EnumeratedSourceQuote.negative,``Hex.RCF.EnumeratedSourceQuote.cubic]
+ let axioms ← Algebraic.KernelReplay.AxiomClosure.collect roots
+ unless axioms.all (fun name => [``propext,``Classical.choice,``Quot.sound].contains name) do
+ throwError "enumerated source has inadmissible dependencies"
+ let dependencies ← Hex.RCF.ProofEvidence.projectDependencies roots
+ -- The equality consumes the restored facts and their checked field laws.
+ -- The separate equality of the optional reader with `some fact` is not
+ -- retained in that proof; `restore` carries acceptance through `fields`.
+ for required in #[``SourceIdentity.identify,``SourceIdentity.observe,``SourceIdentity.select,
+ ``ScalarPacket.restore,``ScalarPacket.fields,``RootQuote.read_eq] do
+ unless dependencies.contains required do throwError "enumerated source omitted {required}"
+ for forbidden in #[`Hex.RCF.RealCoefficients.SourceBuild.build,
+ `Hex.RCF.RealCoefficients.SourceBuild.select,``ScalarPacket.buildParts,
+ ``ScalarPacket.build,``ScalarPacket.buildLiteral,
+ ``Hex.RCF.SourceIdentityCases.source_selected,``Hex.RCF.SourceIdentityCases.equationFact,
+ ``Hex.RCF.SourceIdentityCases.marginFact,``Hex.RCF.SourceIdentityCases.negativeMarginFact,
+ ``Hex.RCF.SourceIdentityCases.coefficient,``Hex.RCF.SelectedRootTests.Data.lower,
+ ``Hex.RCF.SelectedRootTests.Data.lowerAccepted,``Hex.RCF.SelectedRootTests.Data.selectedSqrt] do
+ if dependencies.contains forbidden then throwError "enumerated source reused {forbidden}"
+ let names := (← (← getEnv).getLocalConstantInfos).map (·.name)
+ let modules := (← getEnv).header.moduleNames
+ let allowed := #[`HexRCF.EnumeratedSource.Quote,`HexRCF.EnumeratedSource.Inputs,
+ `HexRCF.EnumeratedSource.Positive,`HexRCF.EnumeratedSource.PositiveData0,
+ `HexRCF.EnumeratedSource.Negative,`HexRCF.EnumeratedSource.NegativeData0,
+ `HexRCF.EnumeratedSource.Cubic,`HexRCF.EnumeratedSource.CubicData0,
+ `HexRCF.RealCoefficients.SourceIdentity,`HexRCF.RealCoefficients.ScalarPacket,
+ `HexRCF.RealCoefficients.RootQuote]
+ let mut theorems : Nat := 0
+ let mut definitions : Nat := 0
+ let mut traces : Nat := 0
+ for name in dependencies.toArray do
+ let some index := (← getEnv).getModuleIdxFor? name | continue
+ unless allowed.contains modules[index]! do continue
+ let declaration ← match ← getConstInfo name with
+ | .thmInfo info =>
+ theorems := theorems+1
+ pure (Declaration.thmDecl {info with name := ← mkFreshUserName `__enumeratedBody})
+ | .defnInfo info =>
+ definitions := definitions+1
+ pure (Declaration.defnDecl {info with name := ← mkFreshUserName `__enumeratedData})
+ | _ => continue
+ let options := (← getOptions).setBool `debug.skipKernelTC false
+ let environment := Kernel.enableDiag (Kernel.resetDiag (← getEnv)) true
+ let checked ← ofExceptKernelException <| environment.addDeclCore
+ (Core.getMaxHeartbeats options).toUSize (maxRecDepth.get options).toUSize
+ declaration none (doCheck := true)
+ let diagnostics := Kernel.getDiagnostics checked
+ unless diagnostics.enabled do throwError "enumerated source diagnostics disabled"
+ if let some (producer,count) := Hex.RCF.SelectedRootTests.KernelCheck.violation? diagnostics
+ #[``ScalarPacket.build,``ScalarPacket.buildLiteral,``Algebraic.Element.codec,
+ ``Hex.SignDet.Descriptor.ofReplay?] then
+ throwError "enumerated source reduced producer {producer}: {count}; body={name}"
+ if !diagnostics.unfoldCounter.isEmpty then traces := traces+1
+ unless theorems == 1488 && definitions == 865 && traces == 2323 do
+ throwError "enumerated source inventory changed: {theorems}/{definitions}/{traces}"
+ unless (← (← getEnv).getLocalConstantInfos).map (·.name) == names do
+ throwError "enumerated source audit retained copied declarations"
+ logInfo m!"enumerated source actual bodies: {theorems} theorems/{definitions} definitions; nonempty traces={traces}; full axioms={axioms}"
diff --git a/conformance/HexRCF/EnumeratedSource/Quote.lean b/conformance/HexRCF/EnumeratedSource/Quote.lean
new file mode 100644
index 0000000000..ccb507d01a
--- /dev/null
+++ b/conformance/HexRCF/EnumeratedSource/Quote.lean
@@ -0,0 +1,100 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+import HexRCF.EnumeratedSource.Inputs
+import HexRCF.RealCoefficients.SourceIdentityQuote
+import HexRCF.RealCoefficients.RootHeader
+import HexRCF.RealCoefficients.RootPrepare
+import HexRCF.RealCoefficients.RationalQuote
+
+/-! Restore enumerated source proposals from literal descriptors and graphs.
+The native producer and its selected-root value never enter these proofs. The
+rational model, source alias selection and coefficient-map laws remain inputs. -/
+namespace Hex.RCF.EnumeratedSourceQuote
+open Lean Meta Qq Hex Hex.RealClosure Hex.SignDet Hex.RCF.RealCoefficients
+open Hex.RCF.SelectedRootTests Hex.RCF.SourceIdentityCases Hex.RCF.EnumeratedSourceInputs
+set_option maxRecDepth 32768
+set_option maxHeartbeats 60000000
+
+private meta def quote (literal : Name) (anchor : SourceIdentity.Anchor)
+ (equationValue enclosureValue : Expr) : Hex.RealFormula.Reify.ReifyM RootQuote.Result := do
+ let decode : RootQuote.DecoderM := fun expression =>
+ liftM (RationalQuote.decoder (mkConst ``Data.registry) expression)
+ let reader ← mkAppM ``Algebraic.RootReplay.readDescriptor
+ #[q(Data.base.codec),q(Tower.Signature.codec),q(Data.base.sign),q(Data.base.signature),
+ mkConst (literal ++ `subject),mkConst (literal ++ `graph)]
+ let header ← RootHeader.quoteWith reader decode
+ let clean ← mkAppM ``Tower.Context.isClean #[mkConst ``Data.base]
+ let prepared ← RootPrepare.prepareWith header clean
+ let scalar (polynomial sign graph : Expr) : MetaM Expr := do
+ mkAppM ``ScalarPacket.read #[mkConst ``Data.rational,q(Data.base.codec),prepared.source,
+ polynomial,sign,graph]
+ let packets : SourceIdentity.Packets := {
+ equation := ← scalar (mkConst (literal ++ `equation)) (toExpr (0 : Int))
+ (mkConst (literal ++ `equationGraph))
+ enclosure := ← scalar (mkConst (literal ++ `margin)) (toExpr (1 : Int))
+ (mkConst (literal ++ `marginGraph))
+ equationValue, enclosureValue }
+ let result ← SourceIdentity.quoteWith anchor packets prepared.context prepared.same
+ fun expression => do
+ if let some result ← prepared.decoder expression then return some result
+ decode expression
+ return ⟨result.root,result.proof,(← get).budget.consumed⟩
+
+private meta def retain (name : Name) (literal : Name) (anchor : SourceIdentity.Anchor)
+ (equationValue enclosureValue : Expr) : MetaM Unit := do
+ let basic : Hex.RealFormula.Reify.Config := {}
+ -- These all-real derivative descriptors are larger than the old interval
+ -- fixture. Use the existing full-source test envelope explicitly; the
+ -- library default and the original full-source test remain unchanged.
+ let config := {basic with ring := {basic.ring with budget :=
+ {basic.ring.budget with proofNodes := 24000000}}}
+ let result ← RootQuote.runWith (quote literal anchor equationValue enclosureValue) config
+ let result ← match result with
+ | .ok result => pure result
+ | .error error => throwError "enumerated source quotation refused: {Hex.RealFormula.Reify.Error.toMessageData error}"
+ let target ← inferType result.proof
+ let proof ← Hex.RCF.checkProof `enumeratedSource target result.proof
+ addDecl (.thmDecl {name,levelParams := [],type := target,value := proof})
+ let axioms ← collectAxioms name
+ unless axioms.all (fun name => [``propext,``Classical.choice,``Quot.sound].contains name) do
+ throwError "enumerated source quotation has inadmissible dependencies"
+ logInfo m!"enumerated source {name}: proofNodes={result.usage.proofNodes}; axioms={axioms}"
+
+run_meta do
+ withoutExporting do
+ let positive : SourceIdentity.Anchor := {
+ polynomial := mkConst ``SquareTwo.polynomial
+ square := mkConst ``SquareTwo.square
+ witness := mkConst ``positiveWitness
+ precision := mkConst ``positivePrecision
+ value := q(Real.sqrt 2)
+ selected := mkConst ``SquareTwo.square_selected_root }
+ retain `Hex.RCF.EnumeratedSourceQuote.positive
+ `Hex.RCF.RealCoefficients.EnumeratedSource.Positive positive
+ (mkConst ``positiveEquation) (mkConst ``positiveMargin)
+ let negative : SourceIdentity.Anchor := {positive with
+ square := mkConst ``negativeSquare
+ witness := mkConst ``negative_witness
+ precision := mkConst ``negative_precision
+ value := q((Field.literalRep SquareTwo.polynomial negativeSquare
+ negative_witness negative_precision).root.re)
+ selected := ← mkEqRefl q((Field.literalRep SquareTwo.polynomial negativeSquare
+ negative_witness negative_precision).root.re) }
+ retain `Hex.RCF.EnumeratedSourceQuote.negative
+ `Hex.RCF.RealCoefficients.EnumeratedSource.Negative negative
+ (mkConst ``negativeEquation) (mkConst ``negativeMargin)
+ let cubic : SourceIdentity.Anchor := {
+ polynomial := mkConst ``CubeTwo.polynomial
+ square := mkConst ``CubeTwo.square
+ witness := mkConst ``cubicWitness
+ precision := mkConst ``cubicPrecision
+ value := q((2 : ℝ) ^ (1 / 3 : ℝ))
+ selected := mkConst ``cubicSelected }
+ retain `Hex.RCF.EnumeratedSourceQuote.cubic
+ `Hex.RCF.RealCoefficients.EnumeratedSource.Cubic cubic
+ (mkConst ``cubicEquation) (mkConst ``cubicMargin)
+
+end Hex.RCF.EnumeratedSourceQuote
diff --git a/conformance/HexRCF/FrozenSignatureConformance.lean b/conformance/HexRCF/FrozenSignatureConformance.lean
new file mode 100644
index 0000000000..98a20aa277
--- /dev/null
+++ b/conformance/HexRCF/FrozenSignatureConformance.lean
@@ -0,0 +1,111 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+module
+public import HexRealClosure.TowerContext
+public meta import HexRCF.RealCoefficients.SignatureQuote
+public section
+
+/-! Frozen signature subjects, graph projections, budgets and caller-state restoration. -/
+open Lean Meta Hex Hex.RealClosure Hex.SignDet Hex.RCF.RealCoefficients
+namespace Hex.RCF.FrozenSignature
+set_option maxHeartbeats 12000000
+set_option maxRecDepth 32768
+
+@[expose] def first : Tower.Signature := ⟨⟨[],0⟩,[]⟩
+@[expose] def second := first.extend (.array .nil)
+abbrev firstData : Codec.Json :=
+ .array (.cons (.array .nil) (.cons (.number 0) (.cons (.array .nil) .nil)))
+abbrev secondData : Codec.Json :=
+ .array (.cons (.array .nil) (.cons (.number 0)
+ (.cons (.array (.cons (.array .nil) .nil)) .nil)))
+theorem first_literal : firstData = first.literal.toJson := rfl
+theorem second_literal : secondData = second.literal.toJson := rfl
+@[expose] def readFirst := Tower.Signature.codec.decode firstData
+@[expose] def readSecond := Tower.Signature.codec.decode secondData
+@[expose] def readProjected := Tower.Signature.codec.decode
+ (#[Codec.Json.Value.array (.cons (.array .nil)
+ (.cons (.number (Int.ofNat 0)) (.cons (.array .nil) .nil)))])[0]!
+
+run_meta do
+ withoutExporting do
+ for (reader,subject,data,binding) in
+ [( ``readFirst,``first,``firstData,``first_literal),
+ ( ``readSecond,``second,``secondData,``second_literal),
+ ( ``readProjected,``first,``firstData,``first_literal)] do
+ let visits ← IO.mkRef (0 : Nat)
+ let decode : RootQuote.DecoderM := fun expression => do
+ let result ← SignatureQuote.decoder (mkConst subject) (mkConst data)
+ (mkConst binding) expression
+ if result.isSome then visits.modify (·+1)
+ return result
+ let .ok result ← RootQuote.runWith (RootQuote.quoteWith (mkConst reader) decode)
+ | throwError "frozen signature quotation declined"
+ unless (← visits.get) > 0 do throwError "frozen signature binding was not consumed"
+ let target ← mkEq (← mkAppM ``Except.toOption #[mkConst reader])
+ (← mkAppM ``Option.some #[mkConst subject])
+ let proof ← Hex.RCF.checkProof `frozenSignature target result.proof
+ let kind ← inferType proof
+ withExporting (isExporting := true) do
+ addDecl (.thmDecl {
+ name := reader.appendAfter "_checked",levelParams := [],type := kind,value := proof})
+ let config : Hex.RealFormula.Reify.Config := {}
+ let exactBudget := {config with ring := {config.ring with budget :=
+ {config.ring.budget with proofNodes := result.usage.proofNodes}}}
+ let .ok repeated ← RootQuote.runWith (RootQuote.quoteWith (mkConst reader) decode) exactBudget
+ | throwError "frozen signature failed at its exact budget"
+ unless repeated.usage == result.usage do throwError "frozen signature accounting changed"
+ let lower := {config with ring := {config.ring with budget :=
+ {config.ring.budget with proofNodes := result.usage.proofNodes-1}}}
+ let .error (.budget exhausted) ← RootQuote.runWith
+ (RootQuote.quoteWith (mkConst reader) decode) lower
+ | throwError "frozen signature did not exhaust one below its budget"
+ unless exhausted.dimension == .proofNodes do throwError "frozen signature exhausted another dimension"
+ logInfo m!"frozen signature exact subject and exact/one-below budgets: {reader}; nodes={result.usage.proofNodes}"
+
+run_meta do
+ for (subject,binding) in [( ``first,``second_literal),( ``second,``first_literal)] do
+ let caller ← mkFreshExprMVar (mkConst ``Nat)
+ let before ← getMCtx
+ let names := (← (← getEnv).getLocalConstantInfos).map (·.name)
+ let refused ← try
+ let _ ← RootQuote.runWith do
+ caller.mvarId!.assign (mkNatLit 9)
+ let _ ← mkFreshExprMVar (mkConst ``Nat)
+ let statement ← mkEq (mkNatLit 0) (mkNatLit 0)
+ addDecl (.thmDecl {
+ name := `Hex.RCF.FrozenSignature.failureMarker,levelParams := [],
+ type := statement,value := ← mkEqRefl (mkNatLit 0)})
+ RootQuote.quoteWith (mkConst ``readFirst)
+ (SignatureQuote.decoder (mkConst subject) (mkConst ``firstData) (mkConst binding))
+ pure false
+ catch error =>
+ if error.isInterrupt || error.isMaxHeartbeat || error.isMaxRecDepth then throw error
+ pure true
+ unless refused do throwError "a wrong signature literal binding was accepted"
+ let after ← getMCtx
+ unless !(← caller.mvarId!.isAssigned) && before.mvarCounter == after.mvarCounter &&
+ before.lmvarCounter == after.lmvarCounter &&
+ before.eAssignment.toList == after.eAssignment.toList &&
+ before.lAssignment.toList == after.lAssignment.toList &&
+ before.decls.toList.map Prod.fst == after.decls.toList.map Prod.fst &&
+ (← (← getEnv).getLocalConstantInfos).map (·.name) == names do
+ throwError "wrong frozen signature retained caller state"
+ logInfo m!"wrong frozen signature binding/subject rejected and caller restored: {subject}/{binding}"
+
+run_meta do
+ let action : Hex.RealFormula.Reify.ReifyM RootQuote.Result := do
+ let reader ← unfoldDefinition? (mkConst ``readSecond)
+ let some reader := reader | throwError "frozen signature reader is not exposed"
+ let .none ← SignatureQuote.decoder (mkConst ``first) (mkConst ``firstData)
+ (mkConst ``first_literal) reader
+ | throwError "signature decoder accepted a different literal payload"
+ RootQuote.quoteWith (mkConst ``readFirst)
+ (SignatureQuote.decoder (mkConst ``first) (mkConst ``firstData) (mkConst ``first_literal))
+ let .ok _ ← RootQuote.runWith action
+ | throwError "frozen signature declined after an ineligible payload"
+ logInfo "different frozen signature payload declines; a later exact quotation succeeds"
+
+end Hex.RCF.FrozenSignature
diff --git a/conformance/HexRCF/FrozenSignatureProofs.lean b/conformance/HexRCF/FrozenSignatureProofs.lean
new file mode 100644
index 0000000000..c307944d59
--- /dev/null
+++ b/conformance/HexRCF/FrozenSignatureProofs.lean
@@ -0,0 +1,59 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+import HexRCF.FrozenSignatureConformance
+import HexRCF.ProofEvidence
+import KernelReplay.AxiomClosure
+import HexRCF.SelectedRoot.KernelCheck
+meta section
+
+/-! Fresh importing body and axiom audits for frozen signature quotation. -/
+open Lean Meta Hex Hex.RealClosure Hex.SignDet Hex.RCF.RealCoefficients
+set_option maxHeartbeats 12000000
+set_option maxRecDepth 32768
+run_meta do
+ withoutExporting do
+ let roots := #[``Hex.RCF.FrozenSignature.readFirst_checked,
+ ``Hex.RCF.FrozenSignature.readSecond_checked,``Hex.RCF.FrozenSignature.readProjected_checked]
+ let axioms ← Algebraic.KernelReplay.AxiomClosure.collect roots
+ unless axioms.all (fun name => [``propext,``Classical.choice,``Quot.sound].contains name) do
+ throwError "frozen signature axiom closure changed: {axioms}"
+ let dependencies ← Hex.RCF.ProofEvidence.projectDependencies roots
+ unless dependencies.contains ``Tower.Signature.codec_literal do
+ throwError "frozen signature quotation did not consume the public literal law"
+ let originalNames := (← (← getEnv).getLocalConstantInfos).map (·.name)
+ let modules := (← getEnv).header.moduleNames
+ let allowed := #[`HexRCF.FrozenSignatureConformance,`HexRCF.RealCoefficients.RootQuote,
+ `HexRCF.RealCoefficients.SignatureQuote]
+ let mut theorems : Nat := 0
+ let mut definitions : Nat := 0
+ let mut traces : Nat := 0
+ for name in dependencies.toArray do
+ let some index := (← getEnv).getModuleIdxFor? name | continue
+ unless allowed.contains modules[index]! do continue
+ let declaration ← match ← getConstInfo name with
+ | .thmInfo info =>
+ theorems := theorems+1
+ pure (Declaration.thmDecl {info with name := ← mkFreshUserName `__signatureBody})
+ | .defnInfo info =>
+ definitions := definitions+1
+ pure (Declaration.defnDecl {info with name := ← mkFreshUserName `__signatureData})
+ | _ => continue
+ let options := (← getOptions).setBool `debug.skipKernelTC false
+ let environment := Kernel.enableDiag (Kernel.resetDiag (← getEnv)) true
+ let checked ← ofExceptKernelException <| environment.addDeclCore
+ (Core.getMaxHeartbeats options).toUSize (maxRecDepth.get options).toUSize
+ declaration none (doCheck := true)
+ let diagnostics := Kernel.getDiagnostics checked
+ unless diagnostics.enabled do throwError "frozen signature diagnostics are disabled"
+ if let some (producer,count) := Hex.RCF.SelectedRootTests.KernelCheck.violation?
+ diagnostics #[``Tower.rootData,``Dag.encode] then
+ throwError "frozen signature reduced producer/encoder {producer}: {count}; body={name}"
+ if !diagnostics.unfoldCounter.isEmpty then traces := traces+1
+ unless theorems == 23 && definitions == 7 && traces == 16 do
+ throwError "frozen signature body inventory changed: {theorems}/{definitions}/{traces}"
+ unless (← (← getEnv).getLocalConstantInfos).map (·.name) == originalNames do
+ throwError "frozen signature audit retained declarations"
+ logInfo m!"frozen signature actual bodies: {theorems} theorems/{definitions} definitions; nonempty traces={traces}; full axioms={axioms}"
diff --git a/conformance/HexRCF/ProofFunctionPublic.lean b/conformance/HexRCF/ProofFunctionPublic.lean
new file mode 100644
index 0000000000..7f30c14a7f
--- /dev/null
+++ b/conformance/HexRCF/ProofFunctionPublic.lean
@@ -0,0 +1,17 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+module
+public import HexRCF.DependentQuote
+public section
+namespace Hex.RCF.ProofFunctionPublic
+
+theorem first : Hex.RCF.DependentQuote.proofFunction = some 7 :=
+ Hex.RCF.DependentQuote.proofFunction_checked
+
+theorem continued : Hex.RCF.DependentQuote.continuedFunction = some 29 :=
+ Hex.RCF.DependentQuote.continuedFunction_checked
+
+end Hex.RCF.ProofFunctionPublic
diff --git a/conformance/HexRCF/PublicSignPacket.lean b/conformance/HexRCF/PublicSignPacket.lean
index 7d1dd06157..744b1a6200 100644
--- a/conformance/HexRCF/PublicSignPacket.lean
+++ b/conformance/HexRCF/PublicSignPacket.lean
@@ -107,6 +107,11 @@ meta def decoder : RootQuote.DecoderM := fun expression => do
return some (mkApp (mkConst ``Tower.Signature.codec_lawful) signature)
liftM (RationalQuote.decoder (mkConst ``RootQuoteTests.registry) expression)
+meta def quoteConfig : Hex.RealFormula.Reify.Config :=
+ let basic : Hex.RealFormula.Reify.Config := {}
+ {basic with ring := {basic.ring with budget :=
+ {basic.ring.budget with proofNodes := 2000000}}}
+
run_meta do
withExporting (isExporting := false) do
let codec ← mkAppM ``Tower.Context.codec #[mkConst ``RootQuoteTests.base]
@@ -131,7 +136,7 @@ run_meta do
let reader ← mkAppM ``ScalarPacket.read
#[mkConst ``model,codec,mkConst ``context,mkConst ``polynomial,mkIntLit 1,
mkConst `Hex.RCF.PublicSignPacket.evidence]
- let outcome ← RootQuote.runWith (RootQuote.quoteOptionWith reader decoder)
+ let outcome ← RootQuote.runWith (RootQuote.quoteOptionWith reader decoder) quoteConfig
let quoted ← match outcome with
| .ok result => pure result
| .error error => throwError "public sign packet quotation: {Hex.RealFormula.Reify.Error.toMessageData error}"
diff --git a/conformance/HexRCF/PublicSignPacketControls.lean b/conformance/HexRCF/PublicSignPacketControls.lean
index f71eef2915..56c6431d05 100644
--- a/conformance/HexRCF/PublicSignPacketControls.lean
+++ b/conformance/HexRCF/PublicSignPacketControls.lean
@@ -109,7 +109,7 @@ run_meta do
RootQuote.runWith (RootQuote.quoteOptionWith reader fun expression => do
unless ← sentinel.mvarId!.isAssigned do sentinel.mvarId!.assign (mkNatLit 9)
let _ ← mkFreshExprMVar (mkConst ``Nat)
- controlDecoder expression)
+ controlDecoder expression) quoteConfig
| throwError "public quotation did not reject changed {label}"
unless key == `Hex.RCF.RealCoefficients.RootQuote && version == 0 do
throwError "changed {label} failed at a different boundary"
diff --git a/conformance/HexRCF/PublicSignPacketProofs.lean b/conformance/HexRCF/PublicSignPacketProofs.lean
index 06c0b6cc79..f79689d5ea 100644
--- a/conformance/HexRCF/PublicSignPacketProofs.lean
+++ b/conformance/HexRCF/PublicSignPacketProofs.lean
@@ -70,7 +70,7 @@ run_meta do
``Descriptor.ofReplay?] then
throwError "public packet reduced producer {producer}: {count}; body={name}"
if !diagnostics.unfoldCounter.isEmpty then traces := traces+1
- unless theorems == 656 && definitions == 67 && traces == 713 do
+ unless theorems == 712 && definitions == 67 && traces == 769 do
throwError "public packet body inventory changed: {theorems}/{definitions}/{traces}"
unless (← (← getEnv).getLocalConstantInfos).map (·.name) == originalNames do
throwError "public packet audit retained declarations"
diff --git a/conformance/HexRCF/QuotientQuote.lean b/conformance/HexRCF/QuotientQuote.lean
new file mode 100644
index 0000000000..e7a646cad1
--- /dev/null
+++ b/conformance/HexRCF/QuotientQuote.lean
@@ -0,0 +1,63 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+module
+public import HexRCF.QuotientQuoteData
+public meta import HexRCF.RealCoefficients.RootQuote
+public section
+open Lean Meta Hex.RCF.RealCoefficients
+namespace Hex.RCF.QuotientQuote
+set_option smartUnfolding false
+set_option maxRecDepth 32768
+
+private meta def restored (before : MetavarContext) (sentinel : Expr)
+ (names : Option (Array Name) := none) : MetaM Unit := do
+ let after ← getMCtx
+ unless !(← sentinel.mvarId!.isAssigned) && before.mvarCounter == after.mvarCounter &&
+ before.lmvarCounter == after.lmvarCounter && before.eAssignment.toList == after.eAssignment.toList &&
+ before.lAssignment.toList == after.lAssignment.toList &&
+ before.decls.toList.map Prod.fst == after.decls.toList.map Prod.fst do
+ throwError "quotient quotation retained caller metavariables"
+ if let some names := names then
+ unless (← (← getEnv).getLocalConstantInfos).map (·.name) == names do
+ throwError "failed quotient quotation retained declarations"
+
+run_meta do
+ let sentinel ← mkFreshExprMVar (mkConst ``Nat)
+ let before ← getMCtx
+ let action : Hex.RealFormula.Reify.ReifyM RootQuote.Result := do
+ sentinel.mvarId!.assign (mkNatLit 37)
+ RootQuote.quoteOptionWith (mkConst ``reader)
+ let .ok result ← RootQuote.runWith action | throwError "quotient quotation baseline failed"
+ unless result.usage.proofNodes == 92 do
+ throwError "quotient quotation budget changed: {result.usage.proofNodes}"
+ restored before sentinel
+ let basic : Hex.RealFormula.Reify.Config := {}
+ let exactConfig := {basic with ring := {basic.ring with budget :=
+ {basic.ring.budget with proofNodes := result.usage.proofNodes}}}
+ let .ok exactResult ← RootQuote.runWith action exactConfig
+ | throwError "quotient quotation failed at its exact budget"
+ unless exactResult.usage == result.usage do throwError "quotient quotation accounting changed"
+ restored before sentinel
+ let names := (← (← getEnv).getLocalConstantInfos).map (·.name)
+ let small := {exactConfig with ring := {exactConfig.ring with budget :=
+ {exactConfig.ring.budget with proofNodes := result.usage.proofNodes-1}}}
+ let .error (.budget exhausted) ← RootQuote.runWith action small
+ | throwError "quotient quotation accepted one node below its budget"
+ unless exhausted.dimension == .proofNodes do throwError "quotient quotation exhausted another resource"
+ restored before sentinel (some names)
+ let .error (.providerFailure (.invalidProviderEvidence _ _) _) ← RootQuote.runWith (do
+ sentinel.mvarId!.assign (mkNatLit 41)
+ RootQuote.quoteOptionWith (mkConst ``different))
+ | throwError "quotient quotation accepted the wrong term count"
+ restored before sentinel (some names)
+ let target ← mkEq (mkConst ``reader) (← mkAppM ``Option.some #[mkNatLit 7])
+ let proof ← Hex.RCF.checkProof `quotientReader target result.proof
+ withExporting (isExporting := true) do
+ addDecl (.thmDecl {
+ name := `Hex.RCF.QuotientQuote.checked,levelParams := [],type := target,value := proof})
+ logInfo m!"quotient-backed formula reader: exact/below budget={result.usage.proofNodes}; rejection and caller rollback checked"
+
+end Hex.RCF.QuotientQuote
diff --git a/conformance/HexRCF/QuotientQuoteData.lean b/conformance/HexRCF/QuotientQuoteData.lean
new file mode 100644
index 0000000000..33db59c18f
--- /dev/null
+++ b/conformance/HexRCF/QuotientQuoteData.lean
@@ -0,0 +1,20 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+module
+public import HexRealFormula
+public import HexRCF.RealCoefficients
+public section
+namespace Hex.RCF.QuotientQuote
+
+@[expose] def polynomial : Hex.RealFormula.Poly 2 := Hex.MvPoly.X 1 ^ 2 - Hex.MvPoly.X 0
+
+@[expose] def reader : Option Nat :=
+ if polynomial.termsList.length == 2 then some 7 else none
+
+@[expose] def different : Option Nat :=
+ if polynomial.termsList.length == 3 then some 7 else none
+
+end Hex.RCF.QuotientQuote
diff --git a/conformance/HexRCF/QuotientQuoteProofs.lean b/conformance/HexRCF/QuotientQuoteProofs.lean
new file mode 100644
index 0000000000..8cc3963a05
--- /dev/null
+++ b/conformance/HexRCF/QuotientQuoteProofs.lean
@@ -0,0 +1,55 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+import HexRCF.QuotientQuotePublic
+import HexRCF.ProofEvidence
+import HexRCF.SelectedRoot.KernelCheck
+import KernelReplay.AxiomClosure
+meta section
+open Lean Meta Hex.RealClosure Hex.RCF.RealCoefficients
+set_option maxRecDepth 32768
+run_meta do
+ let roots := #[``Hex.RCF.QuotientQuote.checked,``Hex.RCF.QuotientQuotePublic.accepted]
+ let axioms ← Algebraic.KernelReplay.AxiomClosure.collect roots
+ unless axioms.all (fun name => [``propext,``Classical.choice,``Quot.sound].contains name) do
+ throwError "quotient quotation has inadmissible dependencies"
+ let dependencies ← Hex.RCF.ProofEvidence.projectDependencies roots
+ unless dependencies.contains ``Hex.MvPoly.termsList do
+ throwError "quotient quotation omitted the actual formula term list"
+ let names := (← (← getEnv).getLocalConstantInfos).map (·.name)
+ let modules := (← getEnv).header.moduleNames
+ let allowed := #[`HexRCF.QuotientQuote,`HexRCF.QuotientQuoteData,
+ `HexRCF.QuotientQuotePublic,`HexRCF.RealCoefficients.RootQuote]
+ let mut theorems : Nat := 0
+ let mut definitions : Nat := 0
+ let mut traces : Nat := 0
+ for name in dependencies.toArray do
+ let some index := (← getEnv).getModuleIdxFor? name | continue
+ unless allowed.contains modules[index]! do continue
+ let declaration ← match ← getConstInfo name with
+ | .thmInfo info =>
+ theorems := theorems+1
+ pure (Declaration.thmDecl {info with name := ← mkFreshUserName `__quotientBody})
+ | .defnInfo info =>
+ definitions := definitions+1
+ pure (Declaration.defnDecl {info with name := ← mkFreshUserName `__quotientData})
+ | _ => continue
+ let options := (← getOptions).setBool `debug.skipKernelTC false
+ let environment := Kernel.enableDiag (Kernel.resetDiag (← getEnv)) true
+ let checked ← ofExceptKernelException <| environment.addDeclCore
+ (Core.getMaxHeartbeats options).toUSize (maxRecDepth.get options).toUSize
+ declaration none (doCheck := true)
+ let diagnostics := Kernel.getDiagnostics checked
+ unless diagnostics.enabled do throwError "quotient quotation diagnostics disabled"
+ if let some (producer,count) := Hex.RCF.SelectedRootTests.KernelCheck.violation? diagnostics
+ #[``ScalarPacket.build,``ScalarPacket.buildLiteral,``Algebraic.Element.codec,
+ ``Hex.SignDet.Descriptor.ofReplay?] then
+ throwError "quotient quotation reduced producer {producer}: {count}; body={name}"
+ if !diagnostics.unfoldCounter.isEmpty then traces := traces+1
+ unless theorems == 9 && definitions == 4 && traces == 4 do
+ throwError "quotient quotation body inventory changed: {theorems}/{definitions}/{traces}"
+ unless (← (← getEnv).getLocalConstantInfos).map (·.name) == names do
+ throwError "quotient quotation retained copied audit declarations"
+ logInfo m!"quotient quotation actual bodies: {theorems} theorems/{definitions} definitions; nonempty traces={traces}; full axioms={axioms}"
diff --git a/conformance/HexRCF/QuotientQuotePublic.lean b/conformance/HexRCF/QuotientQuotePublic.lean
new file mode 100644
index 0000000000..57a3489eac
--- /dev/null
+++ b/conformance/HexRCF/QuotientQuotePublic.lean
@@ -0,0 +1,13 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+module
+public import HexRCF.QuotientQuote
+public section
+namespace Hex.RCF.QuotientQuotePublic
+
+theorem accepted : Hex.RCF.QuotientQuote.reader = some 7 := Hex.RCF.QuotientQuote.checked
+
+end Hex.RCF.QuotientQuotePublic
diff --git a/conformance/HexRCF/RationalQuoteConformance.lean b/conformance/HexRCF/RationalQuoteConformance.lean
index e64aeef45e..f6fb5244fd 100644
--- a/conformance/HexRCF/RationalQuoteConformance.lean
+++ b/conformance/HexRCF/RationalQuoteConformance.lean
@@ -61,7 +61,7 @@ run_meta do
Hex.RCF.SelectedRootTests.KernelCheck.addChecked
(← mkFreshUserName `__rationalQuoteValue) statement (← mkEqRefl declaration.value)
| _ => pure ()
- unless checked == 192 do
+ unless checked == 208 do
throwError "rational quotation body coverage changed: {checked}"
logInfo m!"generic rational quotation: {checked} actual theorem bodies under kernel producer diagnostics; complete axiom closure {axioms}"
diff --git a/conformance/HexRCF/RecursiveScalarQuote.lean b/conformance/HexRCF/RecursiveScalarQuote.lean
index b77c92cdcf..2baf412974 100644
--- a/conformance/HexRCF/RecursiveScalarQuote.lean
+++ b/conformance/HexRCF/RecursiveScalarQuote.lean
@@ -73,7 +73,7 @@ run_meta do
| throwError "recursive scalar quotation failed"
unless (← mutated.get) && !(← sentinel.mvarId!.isAssigned) do
throwError "successful recursive quotation did not restore the mutated caller"
- unless quoted.usage.proofNodes == 14374 do
+ unless quoted.usage.proofNodes == 30316 do
throwError "recursive scalar accounting changed: {quoted.usage.proofNodes}"
unless (← calls.get).size == 2 && quoted.usage.sourceNodes == 38 do
throwError "recursive quotation did not visit both selected predecessors exactly once"
@@ -99,9 +99,9 @@ run_meta do
unchanged do
let .error (.budget exhausted) ← RootQuote.run original decode (config (quoted.usage.proofNodes-1))
| throwError "one-below recursive scalar budget did not exhaust"
- unless exhausted.dimension == .proofNodes && exhausted.consumed == 13449 &&
+ unless exhausted.dimension == .proofNodes && exhausted.consumed == 29391 &&
exhausted.requested == 925 do
- throwError "recursive scalar exhaustion moved from the final925-node charge"
+ throwError "recursive scalar final charge changed: {exhausted.consumed}+{exhausted.requested}"
logInfo m!"recursive exhausted: consumed={exhausted.consumed}, requested={exhausted.requested}"
unless (← mutated.get) && !(← sentinel.mvarId!.isAssigned) do
throwError "exhausted recursive quotation did not restore the mutated caller"
@@ -117,8 +117,8 @@ run_meta do
return proposed)
| throwError "recursive constant-form decode failed"
unless (← constantCalls.get) == 1 && (← calls.get).size == 2 &&
- constantResult.usage.proofNodes == 12792 do
- throwError "recursive constant-form branch was not exercised"
+ constantResult.usage.proofNodes == 28294 do
+ throwError "recursive constant-form branch changed: nodes={constantResult.usage.proofNodes}; calls={← constantCalls.get}; lookups={(← calls.get).size}"
let constantStatement ← mkEq (← mkAppM ``Except.toOption #[constant])
(← mkAppM ``Option.some #[mkConst `Hex.RCF.RecursiveScalarQuote.restored])
let constantProof ← Hex.RCF.checkProof `recursiveConstant constantStatement constantResult.proof
@@ -136,8 +136,8 @@ run_meta do
return proposed)
| throwError "annotated recursive scalar decode failed"
unless (← taggedCalls.get) == 1 && (← calls.get).size == 2 &&
- taggedResult.usage.proofNodes == 12801 do
- throwError "annotated recursive scalar branch was not exercised"
+ taggedResult.usage.proofNodes == 28307 do
+ throwError "annotated recursive scalar branch changed: nodes={taggedResult.usage.proofNodes}; calls={← taggedCalls.get}; lookups={(← calls.get).size}"
emit `Hex.RCF.RecursiveScalarQuote.tagged_read tagged taggedResult
calls.set #[]
let retries ← IO.mkRef (0 : Nat)
@@ -152,8 +152,8 @@ run_meta do
let .ok retryResult ← RootQuote.run original (ScalarQuote.decoderWith retryFacts base)
| throwError "recursive scalar retry did not accept"
unless (← retries.get) == 2 && (← calls.get).size == 3 &&
- retryResult.usage.sourceNodes == 57 && retryResult.usage.proofNodes == 15069 do
- throwError "recursive scalar retry omitted a lookup or discarded callback charges"
+ retryResult.usage.sourceNodes == 57 && retryResult.usage.proofNodes == 31022 do
+ throwError "recursive scalar retry changed: nodes={retryResult.usage.proofNodes}; retries={← retries.get}; lookups={(← calls.get).size}; source={retryResult.usage.sourceNodes}"
logInfo m!"recursive variants: constant={constantResult.usage.proofNodes}; tagged={taggedResult.usage.proofNodes}; retry={retryResult.usage.proofNodes}"
emit `Hex.RCF.RecursiveScalarQuote.retry_read original retryResult
let leafCalls ← IO.mkRef (0 : Nat)
diff --git a/conformance/HexRCF/ReplayBoundary.lean b/conformance/HexRCF/ReplayBoundary.lean
new file mode 100644
index 0000000000..779d621cc6
--- /dev/null
+++ b/conformance/HexRCF/ReplayBoundary.lean
@@ -0,0 +1,112 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+module
+public import HexRCF.TreeQuoteData
+public meta import HexRCF.RealCoefficients.RootQuote
+public section
+namespace Hex.RCF.ReplayBoundaryTests
+open Lean Meta Qq Hex Hex.SignDet Hex.RCF.RealCoefficients
+set_option maxHeartbeats 2000000
+set_option maxRecDepth 32768
+@[expose] def guard (decision : Bool) : Except String Unit :=
+ if decision = true then .ok () else .error "replay declined"
+theorem guard_true (decision : Bool) (value : Unit)
+ (accepted : (guard decision).toOption = some value) : decision = true := by
+ cases decision <;> simp_all [guard, Except.toOption]
+@[expose] def consume (decision : Bool) (value : Nat) : Except String Nat :=
+ if decision = true then .ok value else .error "replay declined"
+@[expose] def diagnose (decision : Bool) (value : Nat) : Except String Nat :=
+ if decision = true then .ok value else .ok 23
+private meta def restored (before : MetavarContext) (sentinel : Expr)
+ (names : Option (Array Name) := none) : MetaM Unit := do
+ let after ← getMCtx
+ unless !(← sentinel.mvarId!.isAssigned) && before.mvarCounter == after.mvarCounter &&
+ before.lmvarCounter == after.lmvarCounter && before.eAssignment.toList == after.eAssignment.toList &&
+ before.lAssignment.toList == after.lAssignment.toList &&
+ before.decls.toList.map Prod.fst == after.decls.toList.map Prod.fst do
+ throwError "boundary quotation retained caller metavariables"
+ if let some names := names then
+ unless (← (← getEnv).getLocalConstantInfos).map (·.name) == names do
+ throwError "failed boundary quotation retained declarations"
+run_meta do
+ let condition : Q(Bool) := q((Replay.leaf Conformance.literalNode).check
+ Sturm.orderSign 7 Sturm.Fixtures.p (.finite (-2)) (.finite 2) [])
+ let subject ← mkAppM ``guard #[condition]
+ let .ok quoted ← RootQuote.quote subject
+ | throwError "dependent-boundary guard quotation declined"
+ let accepted ← mkAppM ``guard_true #[condition,quoted.value,quoted.proof]
+ let target ← mkEq condition (mkConst ``Bool.true)
+ let accepted ← Hex.RCF.checkProof `checkedLeaf target accepted
+ let tree : Q(Replay Rat Nat) := q(Replay.leaf Conformance.literalNode)
+ let predicate ← withLocalDeclD `tree (← inferType tree) fun node => do
+ let fields := condition.getAppArgs
+ let check := mkAppN condition.getAppFn (fields.set! (fields.size-1) node)
+ mkLambdaFVars #[node] (← mkEq check (mkConst ``Bool.true))
+ let subtype ← mkAppM ``Subtype #[predicate]
+ let entry ← mkAppOptM ``Subtype.mk #[some (← inferType tree),some predicate,some tree,some accepted]
+ let inline ← mkArrayLit subtype [entry]
+ let kind ← inferType inline
+ let stored ← mkAuxDefinition (← mkFreshUserName `checkedEntries) kind inline (compile := false)
+ let info ← getFunInfoNArgs condition.getAppFn condition.getAppNumArgs
+ let positions := condition.getAppArgs.zipIdx |>.filterMap fun (_,i) =>
+ if info.paramInfo[i]!.binderInfo.isExplicit then some i else none
+ unless positions.size == 7 do throwError "replay check changed its explicit signature"
+ for (mode,values) in [(`inline,inline),(`stored,stored)] do
+ for (context,result) in [(7,1),(8,23)] do
+ let first := mkAppN condition.getAppFn
+ (condition.getAppArgs.set! positions[1]! (mkNatLit context))
+ let size ← mkAppM ``Array.size #[values]
+ let second ← mkDecide (← mkEq size (mkNatLit 1))
+ let composite ← mkAppM ``Bool.and #[first,second]
+ let reader ← mkAppM ``diagnose #[composite,mkNatLit 1]
+ let .ok quoted ← RootQuote.quote reader
+ | throwError "dependent-boundary quotation declined {mode}/{context}"
+ let target ← mkEq (← mkAppM ``Except.toOption #[reader])
+ (← mkAppM ``Option.some #[mkNatLit result])
+ let proof ← Hex.RCF.checkProof `dependentBoundary target (mkExpectedPropHint quoted.proof target)
+ let suffix := if mode == `inline then
+ (if context == 7 then `inlineTrue else `inlineFalse)
+ else (if context == 7 then `storedTrue else `storedFalse)
+ let name := Name.append `Hex.RCF.ReplayBoundaryTests suffix
+ addDecl (.thmDecl {name,levelParams := [],type := target,value := proof})
+ logInfo m!"dependent replay helper {mode}/{context}: proofNodes={quoted.usage.proofNodes}"
+ if mode == `stored && context == 7 then
+ let sentinel ← mkFreshExprMVar (mkConst ``Nat)
+ let before ← getMCtx
+ let action : Hex.RealFormula.Reify.ReifyM RootQuote.Result := do
+ sentinel.mvarId!.assign (mkNatLit 41)
+ RootQuote.quoteWith reader
+ let .ok baseline ← RootQuote.runWith action
+ | throwError "dependent-boundary baseline declined"
+ restored before sentinel
+ unless baseline.usage.proofNodes == 110245 do
+ throwError "dependent-boundary accounting changed: {baseline.usage.proofNodes}"
+ let basic : Hex.RealFormula.Reify.Config := {}
+ let exactConfig := {basic with ring := {basic.ring with budget :=
+ {basic.ring.budget with proofNodes := baseline.usage.proofNodes}}}
+ let .ok exactResult ← RootQuote.runWith action exactConfig
+ | throwError "dependent-boundary exact budget declined"
+ unless exactResult.usage == baseline.usage do throwError "boundary accounting changed"
+ restored before sentinel
+ let names := (← (← getEnv).getLocalConstantInfos).map (·.name)
+ let small := {exactConfig with ring := {exactConfig.ring with budget :=
+ {exactConfig.ring.budget with proofNodes := baseline.usage.proofNodes-1}}}
+ let .error (.budget exhausted) ← RootQuote.runWith action small
+ | throwError "dependent-boundary below-budget input accepted"
+ unless exhausted.dimension == .proofNodes do throwError "wrong boundary resource exhausted"
+ restored before sentinel (some names)
+ let rejected ← try
+ let _ ← RootQuote.run reader (fun expression => do
+ sentinel.mvarId!.assign (mkNatLit 43)
+ if (← inferType expression).isConstOf ``Bool then
+ return some (← mkEqRefl (mkConst ``Bool.false))
+ return none)
+ pure false
+ catch _ => pure true
+ unless rejected do throwError "dependent boundary accepted a wrong-goal proof"
+ restored before sentinel (some names)
+ logInfo m!"boundary exact/below/wrong-goal and caller rollback checked; exact={baseline.usage.proofNodes}"
+end Hex.RCF.ReplayBoundaryTests
diff --git a/conformance/HexRCF/ReplayBoundaryProofs.lean b/conformance/HexRCF/ReplayBoundaryProofs.lean
new file mode 100644
index 0000000000..5b64f5cca1
--- /dev/null
+++ b/conformance/HexRCF/ReplayBoundaryProofs.lean
@@ -0,0 +1,59 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+import HexRCF.ReplayBoundary
+import HexRCF.RealCoefficients.ScalarPacket
+import HexRCF.ProofEvidence
+import HexRCF.SelectedRoot.KernelCheck
+import KernelReplay.AxiomClosure
+meta section
+open Lean Meta Hex.RealClosure Hex.RCF.RealCoefficients
+set_option maxRecDepth 32768
+set_option maxHeartbeats 12000000
+run_meta do
+ let roots := #[``Hex.RCF.ReplayBoundaryTests.inlineTrue,``Hex.RCF.ReplayBoundaryTests.inlineFalse,
+ ``Hex.RCF.ReplayBoundaryTests.storedTrue,``Hex.RCF.ReplayBoundaryTests.storedFalse]
+ let axioms ← Algebraic.KernelReplay.AxiomClosure.collect roots
+ unless axioms.all (fun name => [``propext,``Classical.choice,``Quot.sound].contains name) do
+ throwError "dependent replay boundary has inadmissible dependencies"
+ let dependencies ← Hex.RCF.ProofEvidence.projectDependencies roots
+ for required in #[``Hex.SignDet.Replay.check.eq_1,``Hex.RCF.ReplayBoundaryTests.guard_true] do
+ unless dependencies.contains required do throwError "public quotation omitted {required}"
+ for forbidden in #[``Hex.SignDet.Conformance.literal_accepts,``Hex.SignDet.Conformance.full_kernel] do
+ if dependencies.contains forbidden then throwError "public quotation reused fixture proof {forbidden}"
+ let names := (← (← getEnv).getLocalConstantInfos).map (·.name)
+ let modules := (← getEnv).header.moduleNames
+ let allowed := #[`HexRCF.ReplayBoundary,`HexRCF.RealCoefficients.RootQuote]
+ let mut theorems : Nat := 0
+ let mut definitions : Nat := 0
+ let mut traces : Nat := 0
+ for name in dependencies.toArray do
+ let some index := (← getEnv).getModuleIdxFor? name | continue
+ unless allowed.contains modules[index]! do continue
+ let declaration ← match ← getConstInfo name with
+ | .thmInfo info =>
+ theorems := theorems+1
+ pure (Declaration.thmDecl {info with name := ← mkFreshUserName `__treeBody})
+ | .defnInfo info =>
+ definitions := definitions+1
+ pure (Declaration.defnDecl {info with name := ← mkFreshUserName `__treeData})
+ | _ => continue
+ let options := (← getOptions).setBool `debug.skipKernelTC false
+ let environment := Kernel.enableDiag (Kernel.resetDiag (← getEnv)) true
+ let checked ← ofExceptKernelException <| environment.addDeclCore
+ (Core.getMaxHeartbeats options).toUSize (maxRecDepth.get options).toUSize
+ declaration none (doCheck := true)
+ let diagnostics := Kernel.getDiagnostics checked
+ unless diagnostics.enabled do throwError "dependent replay boundary diagnostics disabled"
+ if let some (producer,count) := Hex.RCF.SelectedRootTests.KernelCheck.violation? diagnostics
+ #[``ScalarPacket.build,``ScalarPacket.buildLiteral,``Algebraic.Element.codec,
+ ``Hex.SignDet.Descriptor.ofReplay?] then
+ throwError "dependent replay boundary reduced producer {producer}: {count}; body={name}"
+ if !diagnostics.unfoldCounter.isEmpty then traces := traces+1
+ unless theorems == 132 && definitions == 3 && traces == 135 do
+ throwError "dependent replay boundary inventory changed: {theorems}/{definitions}/{traces}"
+ unless (← (← getEnv).getLocalConstantInfos).map (·.name) == names do
+ throwError "dependent replay boundary audit retained copied declarations"
+ logInfo m!"dependent replay boundary actual bodies: {theorems} theorems/{definitions} definitions; nonempty traces={traces}; full axioms={axioms}"
diff --git a/conformance/HexRCF/ReplayHelperProofs.lean b/conformance/HexRCF/ReplayHelperProofs.lean
new file mode 100644
index 0000000000..da7d836f06
--- /dev/null
+++ b/conformance/HexRCF/ReplayHelperProofs.lean
@@ -0,0 +1,60 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+import HexRCF.ReplayHelpers
+import HexRCF.RealCoefficients.ScalarPacket
+import HexRCF.ProofEvidence
+import HexRCF.SelectedRoot.KernelCheck
+import KernelReplay.AxiomClosure
+meta section
+open Lean Meta Hex.RealClosure Hex.RCF.RealCoefficients
+set_option maxRecDepth 32768
+set_option maxHeartbeats 12000000
+run_meta do
+ let roots := #[``Hex.RCF.ReplayHelperTests.arrayTrue,``Hex.RCF.ReplayHelperTests.arrayFalse,
+ ``Hex.RCF.ReplayHelperTests.helperTrue,``Hex.RCF.ReplayHelperTests.helperFalse]
+ let axioms ← Algebraic.KernelReplay.AxiomClosure.collect roots
+ unless axioms.all (fun name => [``propext,``Classical.choice,``Quot.sound].contains name) do
+ throwError "typed replay helper has inadmissible dependencies"
+ let dependencies ← Hex.RCF.ProofEvidence.projectDependencies roots
+ for required in #[``Hex.SignDet.Replay.check.eq_1,``Hex.SignDet.Replay.table_rows,
+ ``Hex.SignDet.RawDescriptor.check_iff] do
+ unless dependencies.contains required do throwError "typed helper quotation omitted {required}"
+ for forbidden in #[``Hex.SignDet.Conformance.literal_accepts,``Hex.SignDet.Conformance.full_kernel] do
+ if dependencies.contains forbidden then throwError "public quotation reused fixture proof {forbidden}"
+ let names := (← (← getEnv).getLocalConstantInfos).map (·.name)
+ let modules := (← getEnv).header.moduleNames
+ let allowed := #[`HexRCF.ReplayHelpers,`HexRCF.RealCoefficients.RootQuote]
+ let mut theorems : Nat := 0
+ let mut definitions : Nat := 0
+ let mut traces : Nat := 0
+ for name in dependencies.toArray do
+ let some index := (← getEnv).getModuleIdxFor? name | continue
+ unless allowed.contains modules[index]! do continue
+ let declaration ← match ← getConstInfo name with
+ | .thmInfo info =>
+ theorems := theorems+1
+ pure (Declaration.thmDecl {info with name := ← mkFreshUserName `__treeBody})
+ | .defnInfo info =>
+ definitions := definitions+1
+ pure (Declaration.defnDecl {info with name := ← mkFreshUserName `__treeData})
+ | _ => continue
+ let options := (← getOptions).setBool `debug.skipKernelTC false
+ let environment := Kernel.enableDiag (Kernel.resetDiag (← getEnv)) true
+ let checked ← ofExceptKernelException <| environment.addDeclCore
+ (Core.getMaxHeartbeats options).toUSize (maxRecDepth.get options).toUSize
+ declaration none (doCheck := true)
+ let diagnostics := Kernel.getDiagnostics checked
+ unless diagnostics.enabled do throwError "typed replay helper diagnostics disabled"
+ if let some (producer,count) := Hex.RCF.SelectedRootTests.KernelCheck.violation? diagnostics
+ #[``ScalarPacket.build,``ScalarPacket.buildLiteral,``Algebraic.Element.codec,
+ ``Hex.SignDet.Descriptor.ofReplay?] then
+ throwError "typed replay helper reduced producer {producer}: {count}; body={name}"
+ if !diagnostics.unfoldCounter.isEmpty then traces := traces+1
+ unless theorems == 96 && definitions == 3 && traces == 99 do
+ throwError "typed replay helper inventory changed: {theorems}/{definitions}/{traces}"
+ unless (← (← getEnv).getLocalConstantInfos).map (·.name) == names do
+ throwError "typed replay helper audit retained copied declarations"
+ logInfo m!"typed replay helper actual bodies: {theorems} theorems/{definitions} definitions; nonempty traces={traces}; full axioms={axioms}"
diff --git a/conformance/HexRCF/ReplayHelpers.lean b/conformance/HexRCF/ReplayHelpers.lean
new file mode 100644
index 0000000000..90efb0e4cd
--- /dev/null
+++ b/conformance/HexRCF/ReplayHelpers.lean
@@ -0,0 +1,120 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+module
+public import HexRCF.TreeQuoteData
+public meta import HexRCF.RealCoefficients.RootQuote
+public section
+namespace Hex.RCF.ReplayHelperTests
+open Lean Meta Qq Hex Hex.SignDet Hex.RCF.RealCoefficients
+set_option maxHeartbeats 2000000
+set_option maxRecDepth 32768
+@[expose] def diagnose (decision : Bool) (value : Nat) : Except String Nat :=
+ if decision = true then .ok value else .ok 23
+private meta def restored (before : MetavarContext) (sentinel : Expr)
+ (names : Option (Array Name) := none) : MetaM Unit := do
+ let after ← getMCtx
+ unless !(← sentinel.mvarId!.isAssigned) && before.mvarCounter == after.mvarCounter &&
+ before.lmvarCounter == after.lmvarCounter && before.eAssignment.toList == after.eAssignment.toList &&
+ before.lAssignment.toList == after.lAssignment.toList &&
+ before.decls.toList.map Prod.fst == after.decls.toList.map Prod.fst do
+ throwError "boundary quotation retained caller metavariables"
+ if let some names := names then
+ unless (← (← getEnv).getLocalConstantInfos).map (·.name) == names do
+ throwError "failed boundary quotation retained declarations"
+run_meta do
+ let condition : Q(Bool) := q((Replay.leaf Conformance.literalNode).check
+ Sturm.orderSign 7 Sturm.Fixtures.p (.finite (-2)) (.finite 2) [])
+ let tree : Q(Replay Rat Nat) := q(Replay.leaf Conformance.literalNode)
+ -- The element type itself contains a table whose proof depends on replay.
+ let hypothesis ← mkEq condition (mkConst ``Bool.true)
+ let (element,law) ← withLocalDeclD `accepted hypothesis fun accepted => do
+ let law ← mkAppM ``Replay.table_rows #[tree,accepted]
+ return (← mkForallFVars #[accepted] (← inferType law),← mkLambdaFVars #[accepted] law)
+ let predicate ← withLocalDeclD `unit (mkConst ``Unit) fun unit => mkLambdaFVars #[unit] element
+ let kind ← mkAppM ``Subtype #[predicate]
+ let entry ← mkAppOptM ``Subtype.mk #[some (mkConst ``Unit),some predicate,
+ some (mkConst ``Unit.unit),some law]
+ let inline ← mkArrayLit kind [entry]
+ let stored ← mkAuxDefinition (← mkFreshUserName `tableEntries) (← inferType inline)
+ inline (compile := false)
+ -- The helper's fixed type mentions Replay.table, which is absent from its body.
+ let checkLaw : Expr := q(RawDescriptor.check_iff (sign := Sturm.orderSign) (context := 7)
+ (raw := Conformance.singletonRaw) (evidence := Replay.leaf Conformance.literalNode))
+ let wrapper ← withLocalDeclD `proof (← inferType checkLaw) fun proof => do
+ withLocalDeclD `decision (mkConst ``Bool) fun decision =>
+ mkLambdaFVars #[proof,decision] decision
+ let helper ← mkAuxDefinition (← mkFreshUserName `fixedHelper) (← inferType wrapper)
+ wrapper (compile := false)
+ let info ← getFunInfoNArgs condition.getAppFn condition.getAppNumArgs
+ let positions := condition.getAppArgs.zipIdx |>.filterMap fun (_,i) =>
+ if info.paramInfo[i]!.binderInfo.isExplicit then some i else none
+ unless positions.size == 7 do throwError "replay check changed its explicit signature"
+ for mode in [`array,`helper] do
+ for (context,result) in [(7,1),(8,23)] do
+ let first := mkAppN condition.getAppFn
+ (condition.getAppArgs.set! positions[1]! (mkNatLit context))
+ let decision ← if mode == `array then do
+ let size ← mkAppM ``Array.size #[stored]
+ mkAppM ``Bool.and #[first,← mkDecide (← mkEq size (mkNatLit 1))]
+ else pure (mkApp2 helper checkLaw first)
+ let reader ← mkAppM ``diagnose #[decision,mkNatLit 1]
+ let .ok quoted ← RootQuote.quote reader
+ | throwError "typed replay helper quotation declined {mode}/{context}"
+ let target ← mkEq (← mkAppM ``Except.toOption #[reader])
+ (← mkAppM ``Option.some #[mkNatLit result])
+ let proof ← Hex.RCF.checkProof `typedHelper target (mkExpectedPropHint quoted.proof target)
+ let suffix := if mode == `array then
+ (if context == 7 then `arrayTrue else `arrayFalse)
+ else (if context == 7 then `helperTrue else `helperFalse)
+ addDecl (.thmDecl {
+ name := Name.append `Hex.RCF.ReplayHelperTests suffix
+ levelParams := []
+ type := target
+ value := proof})
+ let expected := if mode == `array then (if context == 7 then 121420 else 10301)
+ else (if context == 7 then 103986 else 9136)
+ unless quoted.usage.proofNodes == expected do
+ throwError "typed replay helper accounting changed: {mode}/{context}/{quoted.usage.proofNodes}"
+ logInfo m!"typed replay helper {mode}/{context}: proofNodes={quoted.usage.proofNodes}"
+ if context == 7 then
+ let sentinel ← mkFreshExprMVar (mkConst ``Nat)
+ let before ← getMCtx
+ let action : Hex.RealFormula.Reify.ReifyM RootQuote.Result := do
+ sentinel.mvarId!.assign (mkNatLit 41)
+ RootQuote.quoteWith reader
+ let .ok baseline ← RootQuote.runWith action
+ | throwError "typed replay helper baseline declined"
+ restored before sentinel
+ unless baseline.usage == quoted.usage do throwError "typed helper accounting changed"
+ let basic : Hex.RealFormula.Reify.Config := {}
+ let exactConfig := {basic with ring := {basic.ring with budget :=
+ {basic.ring.budget with proofNodes := baseline.usage.proofNodes}}}
+ let .ok exactResult ← RootQuote.runWith action exactConfig
+ | throwError "typed replay helper exact budget declined"
+ unless exactResult.usage == baseline.usage do throwError "typed helper exact usage changed"
+ restored before sentinel
+ let names := (← (← getEnv).getLocalConstantInfos).map (·.name)
+ let small := {exactConfig with ring := {exactConfig.ring with budget :=
+ {exactConfig.ring.budget with proofNodes := baseline.usage.proofNodes-1}}}
+ let .error (.budget exhausted) ← RootQuote.runWith action small
+ | throwError "typed replay helper below-budget input accepted"
+ unless exhausted.dimension == .proofNodes do throwError "wrong helper resource exhausted"
+ restored before sentinel (some names)
+ let touched ← IO.mkRef false
+ let rejected ← try
+ let _ ← RootQuote.run reader (fun expression => do
+ touched.set true
+ sentinel.mvarId!.assign (mkNatLit 43)
+ if (← inferType expression).isConstOf ``Bool then
+ return some (← mkEqRefl (mkConst ``Bool.false))
+ return none)
+ pure false
+ catch _ => pure true
+ unless rejected && (← touched.get) do
+ throwError "typed replay helper did not reject a wrong-goal proposal"
+ restored before sentinel (some names)
+ logInfo m!"typed helper exact/below/wrong-goal and caller rollback: {mode}; exact={baseline.usage.proofNodes}"
+end Hex.RCF.ReplayHelperTests
diff --git a/conformance/HexRCF/RootContextConformance.lean b/conformance/HexRCF/RootContextConformance.lean
new file mode 100644
index 0000000000..ca7b3d8826
--- /dev/null
+++ b/conformance/HexRCF/RootContextConformance.lean
@@ -0,0 +1,142 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+module
+public import HexRCF.RootHeaderValues
+public meta import HexRCF.RealCoefficients.RootContext
+public meta import HexRCF.RealCoefficients.RealModel
+public section
+
+/-! Native child contexts and ordinary-real interpretation of reconstructed roots. -/
+
+open Lean Meta Hex Hex.RealClosure Hex.SignDet Hex.RCF.RealCoefficients
+namespace Hex.RCF.RootContextCases
+set_option maxHeartbeats 12000000
+set_option maxRecDepth 32768
+
+run_meta do
+ withoutExporting do
+ let seen ← IO.mkRef (none : Option RootContext.Result)
+ let action : Hex.RealFormula.Reify.ReifyM RootQuote.Result := do
+ let result ← RootContext.packWith (mkConst ``RootQuoteTests.base)
+ (mkConst ``RootHeaderPacket.root)
+ unless result.usage == (← get).budget.consumed do
+ throwError "packed context omitted construction charges"
+ seen.set (some result)
+ return ⟨result.context,result.checked,result.usage⟩
+ let .ok quoted ← RootQuote.runWith action | throwError "native context packing declined"
+ let some packed ← seen.get | throwError "native context result was not retained"
+ let config : Hex.RealFormula.Reify.Config := {}
+ let exactConfig := {config with ring := {config.ring with budget :=
+ {config.ring.budget with proofNodes := quoted.usage.proofNodes}}}
+ let .ok repeated ← RootQuote.runWith action exactConfig
+ | throwError "native context packing failed at its exact budget"
+ unless repeated.usage == quoted.usage do throwError "native context accounting changed"
+ let small := {config with ring := {config.ring with budget :=
+ {config.ring.budget with proofNodes := quoted.usage.proofNodes-1}}}
+ let .error (.budget exhausted) ← RootQuote.runWith action small
+ | throwError "native context packing did not exhaust one below its budget"
+ unless exhausted.dimension == .proofNodes do throwError "native context exhausted another resource"
+ let declaration := Declaration.defnDecl {
+ name := `Hex.RCF.RootContextCases.child,levelParams := [],
+ type := ← inferType packed.context,value := packed.context,hints := .regular 0,safety := .safe}
+ withExporting (isExporting := true) do
+ addDecl declaration (forceExpose := true)
+ compileDecl declaration (logErrors := true)
+ for (name,proof) in [(`Hex.RCF.RootContextCases.context_checked,packed.checked),
+ (`Hex.RCF.RootContextCases.signature_checked,packed.binding)] do
+ let kind ← inferType proof
+ withExporting (isExporting := true) do
+ addDecl (.thmDecl {name,levelParams := [],type := kind,value := proof})
+ let model ← RealModel.build (mkConst `Hex.RCF.RootContextCases.child)
+ (mkConst ``RootQuoteTests.realModel)
+ let modelType ← mkAppOptM ``Tower.Model
+ #[none,some (mkConst `Hex.RCF.RootContextCases.child),some (mkConst ``Real),none,none]
+ let modelDeclaration := Declaration.defnDecl {
+ name := `Hex.RCF.RootContextCases.model,levelParams := [],type := modelType,
+ value := model,hints := .regular 0,safety := .safe}
+ withExporting (isExporting := true) do
+ addDecl modelDeclaration (forceExpose := true)
+ modifyEnv (addNoncomputable · `Hex.RCF.RootContextCases.model)
+ let value ← mkAppM ``Tower.Model.value
+ #[mkConst `Hex.RCF.RootContextCases.model,mkConst ``RootHeaderPacket.coefficient]
+ let equation ← mkAppM ``Tower.Model.root_value #[packed.chain,
+ mkConst ``RootQuoteTests.realModel,mkConst ``RootHeaderPacket.root,
+ packed.frame,packed.encoded,mkConst ``RootHeaderPacket.coefficient]
+ let statement ← mkEq value (mkConst ``RootHeaderPacket.realRoot)
+ let proof ← mkEqTrans equation (mkConst ``RootHeaderPacket.coefficient_value)
+ let proof ← Hex.RCF.checkProof `nativeContextValue statement (mkExpectedPropHint proof statement)
+ let same ← mkEqTrans proof (← mkEqSymm (mkConst ``RootHeaderPacket.coefficient_value))
+ let comparison ← withLocalDeclD `value (mkConst ``Real) fun value => do
+ let body ← mkLt (← mkAppOptM ``Zero.zero #[some (mkConst ``Real),none]) value
+ mkLambdaFVars #[value] body
+ let positive ← mkAppM ``Eq.mpr #[← mkAppM ``congrArg #[comparison,same],
+ mkConst ``RootHeaderPacket.coefficient_positive]
+ let positiveStatement ← mkLt (← mkAppOptM ``Zero.zero #[some (mkConst ``Real),none]) value
+ let positive ← Hex.RCF.checkProof `nativeContextPositive positiveStatement positive
+ withExporting (isExporting := true) do
+ addDecl (.thmDecl {
+ name := `Hex.RCF.RootContextCases.value_checked,levelParams := [],type := statement,value := proof})
+ addDecl (.thmDecl {
+ name := `Hex.RCF.RootContextCases.positive_checked,levelParams := [],
+ type := positiveStatement,value := positive})
+ logInfo m!"native context packing exact/one-below budget checked; proofNodes={quoted.usage.proofNodes}"
+ logInfo "packed ordinary-real model retains the exact selected coefficient value and positive sign"
+
+run_meta do
+ let sentinel ← mkFreshExprMVar (mkConst ``Nat)
+ let before ← getMCtx
+ let names := (← (← getEnv).getLocalConstantInfos).map (·.name)
+ let refused ← try
+ let _ ← RootQuote.runWith do
+ sentinel.mvarId!.assign (mkNatLit 9)
+ let _ ← mkFreshExprMVar (mkConst ``Nat)
+ let statement ← mkEq (mkNatLit 0) (mkNatLit 0)
+ let proof ← mkEqRefl (mkNatLit 0)
+ addDecl (.thmDecl {
+ name := `Hex.RCF.RootContextCases.failureMarker,levelParams := [],type := statement,value := proof})
+ let result ← RootContext.packWith (mkConst ``child) (mkConst ``RootHeaderPacket.root)
+ return ⟨result.context,result.checked,result.usage⟩
+ pure false
+ catch error =>
+ if error.isInterrupt || error.isMaxHeartbeat || error.isMaxRecDepth then throw error
+ unless (← error.toMessageData.toString).contains "rootData" do throw error
+ pure true
+ unless refused do throwError "a descriptor was packed into the wrong parent carrier"
+ let after ← getMCtx
+ unless !(← sentinel.mvarId!.isAssigned) && before.mvarCounter == after.mvarCounter &&
+ before.lmvarCounter == after.lmvarCounter &&
+ before.eAssignment.toList == after.eAssignment.toList &&
+ before.lAssignment.toList == after.lAssignment.toList &&
+ before.decls.toList.map Prod.fst == after.decls.toList.map Prod.fst &&
+ (← (← getEnv).getLocalConstantInfos).map (·.name) == names do
+ throwError "wrong native parent retained caller state"
+ logInfo "wrong native parent rejects and restores caller assignments and declarations"
+
+run_meta do
+ let descriptor ← mkFreshExprMVar (← inferType (mkConst ``RootHeaderPacket.root))
+ let before ← getMCtx
+ let names := (← (← getEnv).getLocalConstantInfos).map (·.name)
+ let refused ← try
+ let _ ← RootQuote.runWith do
+ let result ← RootContext.packWith (mkConst ``RootQuoteTests.base) descriptor
+ return ⟨result.context,result.checked,result.usage⟩
+ pure false
+ catch error =>
+ if error.isInterrupt || error.isMaxHeartbeat || error.isMaxRecDepth then throw error
+ unless (← error.toMessageData.toString).contains "closed retained inputs" do throw error
+ pure true
+ unless refused do throwError "unresolved root input was accepted"
+ let after ← getMCtx
+ unless !(← descriptor.mvarId!.isAssigned) && before.mvarCounter == after.mvarCounter &&
+ before.lmvarCounter == after.lmvarCounter &&
+ before.eAssignment.toList == after.eAssignment.toList &&
+ before.lAssignment.toList == after.lAssignment.toList &&
+ before.decls.toList.map Prod.fst == after.decls.toList.map Prod.fst &&
+ (← (← getEnv).getLocalConstantInfos).map (·.name) == names do
+ throwError "unresolved root input changed caller state"
+ logInfo "unresolved native root rejects without assigning caller metavariables"
+
+end Hex.RCF.RootContextCases
diff --git a/conformance/HexRCF/RootContextProofs.lean b/conformance/HexRCF/RootContextProofs.lean
new file mode 100644
index 0000000000..3986f2da02
--- /dev/null
+++ b/conformance/HexRCF/RootContextProofs.lean
@@ -0,0 +1,72 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+import HexRCF.RootContextConformance
+import HexRCF.ProofEvidence
+import KernelReplay.AxiomClosure
+import HexRCF.SelectedRoot.KernelCheck
+meta section
+
+/-! Fresh importing body and axiom audits for native context assembly. -/
+open Lean Meta Hex Hex.RealClosure Hex.SignDet Hex.RCF.RealCoefficients
+set_option maxHeartbeats 12000000
+set_option maxRecDepth 32768
+run_meta do
+ withoutExporting do
+ let roots := #[``Hex.RCF.RootContextCases.context_checked,
+ ``Hex.RCF.RootContextCases.signature_checked,``Hex.RCF.RootContextCases.value_checked,
+ ``Hex.RCF.RootContextCases.positive_checked,``Hex.RCF.RootHeaderPacket.read_checked,
+ ``Hex.RCF.RootHeaderPacket.sign,``Hex.RCF.RootHeaderPacket.coefficient_read,
+ ``Hex.RCF.RootHeaderPacket.coefficient_value,``Hex.RCF.RootHeaderPacket.coefficient_positive]
+ let axioms ← Algebraic.KernelReplay.AxiomClosure.collect roots
+ unless axioms.all (fun name => [``propext,``Classical.choice,``Quot.sound].contains name) do
+ throwError "root context axiom closure changed: {axioms}"
+ let dependencies ← Hex.RCF.ProofEvidence.projectDependencies roots
+ for required in #[``Algebraic.Context.signPoly_checked,``ScalarPacket.fields,
+ ``Tower.Signature.codec_lawful,``Tower.Signature.codec_literal,
+ ``Hex.RealClosure.Algebraic.RootReplay.readDescriptor_subject,
+ ``Hex.RCF.RootHeaderPacket.raw_binding] do
+ unless dependencies.contains required do throwError "root context omitted {required}"
+ for legacy in #[``Hex.RCF.RootQuoteTests.root_raw,``Hex.RCF.RootQuoteTests.subject_read,
+ ``Hex.RCF.RootQuoteTests.nativeRoot_read] do
+ if dependencies.contains legacy then throwError "generic header used fixture identity {legacy}"
+ let originalNames := (← (← getEnv).getLocalConstantInfos).map (·.name)
+ let modules := (← getEnv).header.moduleNames
+ let allowed := #[`HexRCF.RootContextConformance,`HexRCF.RealCoefficients.RootContext,
+ `HexRCF.RealCoefficients.RealModel,`HexRCF.RootHeaderPacket,`HexRCF.RootHeaderValues,`HexRCF.RealCoefficients.RootHeader,`HexRCF.RealCoefficients.RootQuote,
+ `HexRCF.RootQuoteCases,`HexRCF.RootQuoteSource,`HexRCF.RootQuoteData,
+ `HexRCF.RealCoefficients.ScalarPacket]
+ let mut theorems : Nat := 0
+ let mut definitions : Nat := 0
+ let mut traces : Nat := 0
+ for name in dependencies.toArray do
+ let some index := (← getEnv).getModuleIdxFor? name | continue
+ unless allowed.contains modules[index]! do continue
+ let declaration ← match ← getConstInfo name with
+ | .thmInfo info =>
+ theorems := theorems+1
+ pure (Declaration.thmDecl {info with name := ← mkFreshUserName `__publicPacketBody})
+ | .defnInfo info =>
+ definitions := definitions+1
+ pure (Declaration.defnDecl {info with name := ← mkFreshUserName `__publicPacketData})
+ | _ => continue
+ let options := (← getOptions).setBool `debug.skipKernelTC false
+ let environment := Kernel.enableDiag (Kernel.resetDiag (← getEnv)) true
+ let checked ← ofExceptKernelException <| environment.addDeclCore
+ (Core.getMaxHeartbeats options).toUSize (maxRecDepth.get options).toUSize
+ declaration none (doCheck := true)
+ let diagnostics := Kernel.getDiagnostics checked
+ unless diagnostics.enabled do throwError "root context body diagnostics are disabled"
+ let extra := #[``ScalarPacket.build,``ScalarPacket.buildLiteral,``Algebraic.Element.codec,
+ ``Descriptor.ofReplay?] ++ if modules[index]! == `HexRCF.RootContextConformance then
+ #[``Tower.rootData,``Dag.encode] else #[]
+ if let some (producer,count) := Hex.RCF.SelectedRootTests.KernelCheck.violation? diagnostics extra then
+ throwError "root context reduced producer/encoder {producer}: {count}; body={name}"
+ if !diagnostics.unfoldCounter.isEmpty then traces := traces+1
+ unless theorems == 738 && definitions == 68 && traces == 791 do
+ throwError "root context body inventory changed: {theorems}/{definitions}/{traces}"
+ unless (← (← getEnv).getLocalConstantInfos).map (·.name) == originalNames do
+ throwError "root context audit retained declarations"
+ logInfo m!"root context actual bodies: {theorems} theorems/{definitions} definitions; nonempty traces={traces}; full axioms={axioms}"
diff --git a/conformance/HexRCF/RootHeaderBudget.lean b/conformance/HexRCF/RootHeaderBudget.lean
new file mode 100644
index 0000000000..071cf26a4a
--- /dev/null
+++ b/conformance/HexRCF/RootHeaderBudget.lean
@@ -0,0 +1,84 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+module
+public import HexRCF.RootQuoteData
+public meta import HexRCF.RealCoefficients.RootHeader
+public meta import HexRCF.RealCoefficients.RationalQuote
+public section
+
+/-! Budget and caller-state regressions for complete original root/header readers. -/
+open Lean Meta Hex Hex.RealClosure Hex.SignDet Hex.RCF.RealCoefficients
+namespace Hex.RCF.RootHeaderBudget
+set_option maxHeartbeats 12000000
+set_option maxRecDepth 32768
+run_meta do
+ withoutExporting do
+ let decode : RootQuote.DecoderM := fun expression =>
+ liftM (RationalQuote.decoder (mkConst ``RootQuoteTests.registry) expression)
+ let some original ← unfoldDefinition? (mkConst ``RootQuoteTests.read)
+ | throwError "root reader is not exposed"
+ let .ok quoted ← RootQuote.runWith do
+ let result ← RootHeader.quoteWith original decode
+ unless result.root.usage == (← get).budget.consumed do
+ throwError "header result omitted source parsing or binding charges"
+ return result.root
+ | throwError "generic header quotation declined"
+ let config : Hex.RealFormula.Reify.Config := {}
+ let exactConfig := {config with ring := {config.ring with budget :=
+ {config.ring.budget with proofNodes := quoted.usage.proofNodes}}}
+ let .ok exactResult ← RootQuote.runWith (do
+ let result ← RootHeader.quoteWith original decode
+ return result.root) exactConfig
+ | throwError "header exact-budget quotation declined"
+ unless exactResult.usage.proofNodes == quoted.usage.proofNodes do
+ throwError "generic header resource accounting changed"
+ let small := {config with ring := {config.ring with budget :=
+ {config.ring.budget with proofNodes := quoted.usage.proofNodes-1}}}
+ let .error (.budget exhausted) ← RootQuote.runWith (do
+ let result ← RootHeader.quoteWith original decode
+ return result.root) small
+ | throwError "header quotation did not exhaust one node below budget"
+ unless exhausted.dimension == .proofNodes do
+ throwError "header quotation exhausted a different resource"
+ logInfo m!"generic header exact/one-below budgets checked; nodes={quoted.usage.proofNodes}"
+ let malformed := mkAppN original.getAppFn (original.getAppArgs.pop)
+ let refused ← try
+ let _ ← RootQuote.runWith do
+ let result ← RootHeader.quoteWith malformed decode
+ return result.root
+ pure false
+ catch error =>
+ if error.isInterrupt || error.isMaxHeartbeat || error.isMaxRecDepth then throw error
+ unless (← error.toMessageData.toString).contains "signatures differ" do throw error
+ pure true
+ unless refused do throwError "header accepted a partial descriptor reader"
+ for source in [``RootQuoteTests.wrongVersion,``RootQuoteTests.wrongCount] do
+ let some reader ← unfoldDefinition? (mkConst source)
+ | throwError "negative reader is not exposed"
+ let sentinel ← mkFreshExprMVar (mkConst ``Nat)
+ let before ← getMCtx
+ let visits ← IO.mkRef (0 : Nat)
+ let declarations := (← (← getEnv).getLocalConstantInfos).map (·.name)
+ let .error (.providerFailure (.invalidProviderEvidence _ _) _) ← RootQuote.runWith do
+ let result ← RootHeader.quoteWith reader fun expression => do
+ visits.modify (·+1)
+ if !(← sentinel.mvarId!.isAssigned) then sentinel.mvarId!.assign (mkNatLit 9)
+ decode expression
+ return result.root
+ | throwError "invalid original header reader did not reject"
+ if source == ``RootQuoteTests.wrongCount && (← visits.get) == 0 then
+ throwError "invalid count did not exercise callback state restoration"
+ let after ← getMCtx
+ unless !(← sentinel.mvarId!.isAssigned) && before.mvarCounter == after.mvarCounter &&
+ before.lmvarCounter == after.lmvarCounter &&
+ before.eAssignment.toList == after.eAssignment.toList &&
+ before.lAssignment.toList == after.lAssignment.toList &&
+ before.decls.toList.map Prod.fst == after.decls.toList.map Prod.fst &&
+ (← (← getEnv).getLocalConstantInfos).map (·.name) == declarations do
+ throwError "invalid header reader retained caller state"
+ logInfo m!"generic header rejection and caller restoration checked: {source}"
+
+end Hex.RCF.RootHeaderBudget
diff --git a/conformance/HexRCF/RootHeaderControls.lean b/conformance/HexRCF/RootHeaderControls.lean
new file mode 100644
index 0000000000..73c6bbfefa
--- /dev/null
+++ b/conformance/HexRCF/RootHeaderControls.lean
@@ -0,0 +1,126 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+module
+
+public import HexRCF.RootHeaderPacket
+public meta import HexRCF.RootHeaderPacket
+public meta import HexRCF.RealCoefficients.RootQuote
+
+public section
+
+/-! Reject changed scalar queries and full context identities at both graph
+nodes and nested moments. Compiled rejection is checked separately from
+ordinary quotation refusal and caller-state restoration. -/
+
+open Lean Meta Hex Hex.RealClosure Hex.SignDet Hex.RCF.RealCoefficients
+namespace Hex.RCF.RootHeaderPacket
+
+set_option maxHeartbeats 12000000
+set_option maxRecDepth 32768
+
+@[expose] def foreignSignature : Tower.Signature :=
+ RootQuoteTests.base.signature.extend (.array .nil)
+
+theorem foreign_ne : foreignSignature ≠ RootQuoteTests.base.signature := by
+ intro same
+ have lengths := congrArg (fun s : Tower.Signature => s.roots.length) same
+ simp only [foreignSignature, Tower.Signature.extend, List.length_append,
+ List.length_singleton] at lengths
+ omega
+
+@[expose] def otherPolynomial : Codec.Json := .array (.cons RootQuoteTests.j5
+ (.cons (.array (.cons (.number 0) (.cons (.number 2) (.cons (.number 1) .nil)))) .nil))
+
+private meta def arrayExpr (items : Array Expr) : Expr :=
+ mkApp (mkConst ``Codec.Json.Value.array)
+ (items.toList.foldr (fun item rest => mkApp2 (mkConst ``Codec.Json.Values.cons) item rest)
+ (mkConst ``Codec.Json.Values.nil))
+
+private meta def arrayItems (expression : Expr) : MetaM (Array Expr) := do
+ let expression ← whnf expression
+ unless expression.isAppOfArity ``Codec.Json.Value.array 1 do
+ throwError "control expected a JSON array"
+ let mut rest := expression.appArg!
+ let mut items := #[]
+ while true do
+ let node ← whnf rest
+ if node.isConstOf ``Codec.Json.Values.nil then return items
+ unless node.isAppOfArity ``Codec.Json.Values.cons 2 do
+ throwError "control expected a JSON array spine"
+ items := items.push node.getAppArgs[0]!
+ rest := node.getAppArgs[1]!
+ throwError "unreachable array control"
+
+private meta def changedGraph (nested : Bool) : MetaM Expr := do
+ let graph ← arrayItems (mkConst ``evidence)
+ let entries ← arrayItems graph[2]!
+ unless !entries.isEmpty do throwError "control needs a nonempty graph"
+ let entry ← arrayItems entries[0]!
+ let node ← arrayItems entry[0]!
+ let foreign ← mkAppM ``ValueCodec.encode
+ #[mkConst ``Tower.Signature.codec,mkConst ``foreignSignature]
+ let node ← if nested then do
+ let moments ← arrayItems node[7]!
+ unless !moments.isEmpty do throwError "control needs a nested moment"
+ let moment ← arrayItems moments[0]!
+ pure (node.set! 7 (arrayExpr (moments.set! 0 (arrayExpr (moment.set! 0 foreign)))))
+ else pure (node.set! 0 foreign)
+ return arrayExpr (graph.set! 2
+ (arrayExpr (entries.set! 0 (arrayExpr (entry.set! 0 (arrayExpr node))))))
+
+private meta def controlDecoder : RootQuote.DecoderM := fun expression => do
+ if let .proj ``Decidable 0 decision := expression then
+ let type ← whnf (← inferType decision)
+ if type.isAppOfArity ``Decidable 1 then
+ let proposition := type.appArg!
+ let expected ← mkEq (mkConst ``foreignSignature)
+ (← mkAppM ``Tower.Context.signature #[mkConst ``RootQuoteTests.base])
+ if ← withNewMCtxDepth <| withTransparency .all <| isDefEq proposition expected then
+ return some (mkApp3 (mkConst ``decide_eq_false) proposition decision (mkConst ``foreign_ne))
+ decoder expression
+
+run_meta do
+ for (name,nested) in #[(`Hex.RCF.RootHeaderPacket.foreignNode,false),
+ (`Hex.RCF.RootHeaderPacket.foreignMoment,true)] do
+ let declaration := Declaration.defnDecl {
+ name,levelParams := [],type := mkConst ``Codec.Json.Value,
+ value := ← changedGraph nested,hints := .regular 0,safety := .safe}
+ addDecl declaration (forceExpose := true)
+ compileDecl declaration (logErrors := true)
+ let codec ← mkAppM ``Tower.Context.codec #[mkConst ``RootQuoteTests.base]
+ for (label,polynomial,sign,graph) in #[
+ ("sign",mkConst ``polynomial,mkIntLit (-1),mkConst ``evidence),
+ ("polynomial",mkConst ``otherPolynomial,mkIntLit 1,mkConst ``evidence),
+ ("empty graph",mkConst ``polynomial,mkIntLit 1,arrayExpr #[]),
+ ("node context",mkConst ``polynomial,mkIntLit 1,mkConst `Hex.RCF.RootHeaderPacket.foreignNode),
+ ("moment context",mkConst ``polynomial,mkIntLit 1,mkConst `Hex.RCF.RootHeaderPacket.foreignMoment)] do
+ let reader ← mkAppM ``ScalarPacket.read
+ #[mkConst ``model,codec,mkConst ``context,polynomial,sign,graph]
+ let observed ← mkAppM ``Option.isSome #[reader]
+ unless !(← evalExpr Bool (mkConst ``Bool) observed) do
+ throwError "compiled public packet accepted changed {label}"
+ let sentinel ← mkFreshExprMVar (mkConst ``Nat)
+ let before ← getMCtx
+ let names := (← (← getEnv).getLocalConstantInfos).map (·.name)
+ let .error (.providerFailure (.invalidProviderEvidence ⟨key,version⟩ _) _) ←
+ RootQuote.runWith (RootQuote.quoteOptionWith reader fun expression => do
+ unless ← sentinel.mvarId!.isAssigned do sentinel.mvarId!.assign (mkNatLit 9)
+ let _ ← mkFreshExprMVar (mkConst ``Nat)
+ controlDecoder expression) quoteConfig
+ | throwError "public quotation did not reject changed {label}"
+ unless key == `Hex.RCF.RealCoefficients.RootQuote && version == 0 do
+ throwError "changed {label} failed at a different boundary"
+ let after ← getMCtx
+ unless !(← sentinel.mvarId!.isAssigned) && before.mvarCounter == after.mvarCounter &&
+ before.lmvarCounter == after.lmvarCounter &&
+ before.eAssignment.toList == after.eAssignment.toList &&
+ before.lAssignment.toList == after.lAssignment.toList &&
+ before.decls.toList.map Prod.fst == after.decls.toList.map Prod.fst &&
+ (← (← getEnv).getLocalConstantInfos).map (·.name) == names do
+ throwError "changed {label} retained caller state"
+ logInfo m!"public packet compiled rejection/quotation refusal/caller restoration: {label}"
+
+end Hex.RCF.RootHeaderPacket
diff --git a/conformance/HexRCF/RootHeaderPacket.lean b/conformance/HexRCF/RootHeaderPacket.lean
new file mode 100644
index 0000000000..7efab61811
--- /dev/null
+++ b/conformance/HexRCF/RootHeaderPacket.lean
@@ -0,0 +1,170 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+module
+public import HexRCF.RealCoefficients.ScalarPacketQuote
+public import HexRealClosureTheory.NumberFieldTower
+public import HexRCF.RootQuoteCases
+public import HexRCF.RootQuoteSource
+public meta import HexRCF.RootQuoteData
+public meta import HexRCF.RootQuoteCases
+public meta import HexRCF.RootQuoteSource
+public meta import HexRCF.RealCoefficients.ScalarPacketQuote
+public meta import HexRCF.RealCoefficients.RationalQuote
+public meta import HexRCF.RealCoefficients.RootQuote
+public meta import HexRCF.RealCoefficients.RootHeader
+public meta import HexRCF.RealCoefficients.SignatureQuote
+public section
+
+/-! Quote the original scalar-packet reader from a public module. Every graph
+field, including complete context signatures, retains frozen JSON data. -/
+
+open Lean Meta Hex Hex.RealClosure Hex.SignDet Hex.RCF.RealCoefficients
+namespace Hex.RCF.RootHeaderPacket
+set_option maxHeartbeats 12000000
+set_option maxRecDepth 32768
+
+/- Reconstruct the root and its raw header from the original supplied reader. -/
+run_meta do
+ withoutExporting do
+ let some original ← unfoldDefinition? (mkConst ``RootQuoteTests.read)
+ | throwError "original root reader is not exposed"
+ let base : RootQuote.DecoderM := fun expression =>
+ liftM (RationalQuote.decoder (mkConst ``RootQuoteTests.registry) expression)
+ let .ok result ← RootQuote.runWith do
+ let header ← RootHeader.quoteWith original base
+ for (name,value) in [(`Hex.RCF.RootHeaderPacket.root,header.root.value),
+ (`Hex.RCF.RootHeaderPacket.raw,header.raw)] do
+ let declaration := Declaration.defnDecl {
+ name,levelParams := [],type := ← inferType value,value,
+ hints := .regular 0,safety := .safe}
+ withExporting (isExporting := true) do
+ addDecl declaration (forceExpose := true)
+ compileDecl declaration (logErrors := true)
+ let statement ← mkEq
+ (← mkAppM ``Descriptor.raw #[mkConst `Hex.RCF.RootHeaderPacket.root])
+ (mkConst `Hex.RCF.RootHeaderPacket.raw)
+ let candidate := mkExpectedPropHint header.binding statement
+ Hex.RealFormula.Reify.accountProof candidate
+ let proof ← Hex.RCF.checkProof `headerBinding statement candidate
+ withExporting (isExporting := true) do
+ addDecl (.thmDecl {
+ name := `Hex.RCF.RootHeaderPacket.raw_binding,levelParams := [],type := statement,value := proof})
+ return header.root
+ | throwError "original root/header quotation declined"
+ logInfo m!"original root/header assembled; nodes={result.usage.proofNodes}"
+
+@[expose] def context := Algebraic.Context.adjoin Hex.RCF.RootHeaderPacket.root RootQuoteTests.base.isClean
+@[expose] def polynomial : Codec.Json :=
+ .array (.cons RootQuoteTests.j5 (.cons RootQuoteTests.j6 .nil))
+@[expose] noncomputable def model := RootQuoteTests.realModel
+
+/-- The complete rational predecessor identity, stored as literal data. -/
+abbrev signatureData : Codec.Json :=
+ .array (.cons (.array .nil) (.cons (.number 0) (.cons (.array .nil) .nil)))
+
+theorem signature_literal : signatureData = RootQuoteTests.base.signature.literal.toJson := by
+ rw [Tower.Context.base_signature]
+ unfold BaseContext.rational
+ rw [BaseContext.Context.signature_real,BaseContext.RealContext.keys_rational]
+ rfl
+
+/-- Construct numerical proposal data; its computation supplies no proof. -/
+private meta partial def jsonExpr : Codec.Json → MetaM Expr
+ | .number n =>
+ let integer := if n < 0 then mkApp (mkConst ``Int.negSucc) (mkRawNatLit (n.natAbs-1))
+ else mkApp (mkConst ``Int.ofNat) (mkRawNatLit n.natAbs)
+ pure (mkApp (mkConst ``Codec.Json.Value.number) integer)
+ | .array values => do
+ let items ← values.toList.mapM jsonExpr
+ let data := items.foldr
+ (fun item rest => mkApp2 (mkConst ``Codec.Json.Values.cons) item rest)
+ (mkConst ``Codec.Json.Values.nil)
+ return mkApp (mkConst ``Codec.Json.Value.array) data
+ | _ => throwError "public sign fixture expected numerical array data"
+
+
+/-- Normalize demanded root bindings with the generated header equation.
+Frozen signature reads use the public full-literal equation at their exact
+checked subject. -/
+meta def decoder : RootQuote.DecoderM := fun expression => do
+ let signature ← mkAppM ``Tower.Context.signature #[mkConst ``RootQuoteTests.base]
+ if let some proof ← SignatureQuote.decoder signature (mkConst ``signatureData)
+ (mkConst ``signature_literal) expression then
+ return some proof
+ if (expression.getUsedConstants.contains ``context ||
+ expression.getUsedConstants.contains ``Hex.RCF.RootHeaderPacket.root) &&
+ (← withTransparency .reducible <| whnf (← inferType expression)).isConstOf ``Bool then
+ let result ← liftM do
+ let mut laws : SimpTheorems := {}
+ laws ← laws.addDeclToUnfold ``context
+ laws ← laws.addConst ``Algebraic.Context.root_adjoin
+ laws ← laws.addConst ``Hex.RCF.RootHeaderPacket.raw_binding
+ let simpContext ← Simp.mkContext {maxSteps := 100000} #[laws]
+ let (result,_) ← Meta.simp expression simpContext
+ pure result
+ if result.expr != expression then
+ return some (← liftM (result.getProof' expression))
+ liftM (RationalQuote.decoder (mkConst ``RootQuoteTests.registry) expression)
+
+meta def quoteConfig : Hex.RealFormula.Reify.Config :=
+ let basic : Hex.RealFormula.Reify.Config := {}
+ {basic with ring := {basic.ring with budget :=
+ {basic.ring.budget with proofNodes := 3000000}}}
+
+run_meta do
+ withExporting (isExporting := false) do
+ let codec ← mkAppM ``Tower.Context.codec #[mkConst ``RootQuoteTests.base]
+ let proposal ← mkAppM ``ScalarPacket.buildLiteral
+ #[mkConst ``context,codec,mkConst ``polynomial]
+ let some packet ← evalExpr (Option Codec.Json) (← inferType proposal) proposal
+ | throwError "public sign packet producer declined"
+ let .ok fields := packet.getArr? | throwError "public packet is not an array"
+ unless fields.size == 3 do throwError "public packet has the wrong width"
+ let .ok sign := fields[1]!.getInt? | throwError "public packet has no sign"
+ unless sign == 1 do throwError "public packet has the wrong proposed sign"
+ let evidence ← jsonExpr fields[2]!
+ let constructors := #[``Codec.Json.Value.number,``Codec.Json.Value.array,
+ ``Codec.Json.Values.cons,``Codec.Json.Values.nil,``Int.ofNat,``Int.negSucc]
+ unless evidence.getUsedConstants.all constructors.contains do
+ throwError "public packet graph contains unexpected constants: {evidence.getUsedConstants.filter (fun name => !constructors.contains name)}"
+ withExporting (isExporting := true) do
+ let declaration := Declaration.defnDecl {
+ name := `Hex.RCF.RootHeaderPacket.evidence,levelParams := [],
+ type := mkConst ``Codec.Json.Value,value := evidence,hints := .regular 0,safety := .safe}
+ addDecl declaration (forceExpose := true)
+ compileDecl declaration (logErrors := true)
+ let reader ← mkAppM ``ScalarPacket.read
+ #[mkConst ``model,codec,mkConst ``context,mkConst ``polynomial,mkIntLit 1,
+ mkConst `Hex.RCF.RootHeaderPacket.evidence]
+ let outcome ← RootQuote.runWith (RootQuote.quoteOptionWith reader decoder) quoteConfig
+ let quoted ← match outcome with
+ | .ok result => pure result
+ | .error error => throwError "public sign packet quotation: {Hex.RealFormula.Reify.Error.toMessageData error}"
+ logInfo m!"original optional reader quoted; nodes={quoted.usage.proofNodes}"
+ let factType ← inferType quoted.value
+ withExporting (isExporting := true) do
+ let declaration := Declaration.defnDecl {
+ name := `Hex.RCF.RootHeaderPacket.fact,levelParams := [],
+ type := factType,value := quoted.value,hints := .regular 0,safety := .safe}
+ addDecl declaration (forceExpose := true)
+ compileDecl declaration (logErrors := true)
+ let statement ← mkEq reader (← mkAppM ``Option.some #[mkConst `Hex.RCF.RootHeaderPacket.fact])
+ let proof ← Hex.RCF.checkProof `publicSignPacket statement quoted.proof
+ withExporting (isExporting := true) do
+ addDecl (.thmDecl {
+ name := `Hex.RCF.RootHeaderPacket.read_checked,levelParams := [],type := statement,value := proof})
+ logInfo m!"ordinary module sign packet proofNodes={quoted.usage.proofNodes}"
+ logInfo "public scalar graph retains frozen numerical node and nested-moment signatures"
+
+theorem accepted :
+ (ScalarPacket.read model RootQuoteTests.base.codec context polynomial 1 evidence).isSome = true := by
+ rw [read_checked]
+ rfl
+
+theorem sign : fact.sign = 1 :=
+ (ScalarPacket.fields model RootQuoteTests.base.codec context polynomial 1 evidence fact read_checked).2
+
+end Hex.RCF.RootHeaderPacket
diff --git a/conformance/HexRCF/RootHeaderProofs.lean b/conformance/HexRCF/RootHeaderProofs.lean
new file mode 100644
index 0000000000..651f549d04
--- /dev/null
+++ b/conformance/HexRCF/RootHeaderProofs.lean
@@ -0,0 +1,69 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+import HexRCF.RootHeaderValues
+import HexRCF.ProofEvidence
+import KernelReplay.AxiomClosure
+import HexRCF.SelectedRoot.KernelCheck
+meta section
+
+/-! Fresh importing body audits for cubic packet quotation with original header bindings. -/
+open Lean Meta Hex Hex.RealClosure Hex.SignDet Hex.RCF.RealCoefficients
+set_option maxHeartbeats 12000000
+set_option maxRecDepth 32768
+run_meta do
+ withoutExporting do
+ let roots := #[``Hex.RCF.RootHeaderPacket.read_checked,
+ ``Hex.RCF.RootHeaderPacket.accepted,``Hex.RCF.RootHeaderPacket.sign,
+ ``Hex.RCF.RootHeaderPacket.coefficient_read,``Hex.RCF.RootHeaderPacket.coefficient_value,
+ ``Hex.RCF.RootHeaderPacket.coefficient_positive]
+ let axioms ← Algebraic.KernelReplay.AxiomClosure.collect roots
+ unless axioms.all (fun name => [``propext,``Classical.choice,``Quot.sound].contains name) do
+ throwError "root/header packet axiom closure changed: {axioms}"
+ let dependencies ← Hex.RCF.ProofEvidence.projectDependencies roots
+ for required in #[``Algebraic.Context.signPoly_checked,``ScalarPacket.fields,
+ ``Tower.Signature.codec_lawful,``Tower.Signature.codec_literal,
+ ``Hex.RealClosure.Algebraic.RootReplay.readDescriptor_subject,
+ ``Hex.RCF.RootHeaderPacket.raw_binding] do
+ unless dependencies.contains required do throwError "root/header packet omitted {required}"
+ for legacy in #[``Hex.RCF.RootQuoteTests.root_raw,``Hex.RCF.RootQuoteTests.subject_read,
+ ``Hex.RCF.RootQuoteTests.nativeRoot_read] do
+ if dependencies.contains legacy then throwError "generic header used fixture identity {legacy}"
+ let originalNames := (← (← getEnv).getLocalConstantInfos).map (·.name)
+ let modules := (← getEnv).header.moduleNames
+ let allowed := #[`HexRCF.RootHeaderPacket,`HexRCF.RootHeaderValues,`HexRCF.RealCoefficients.RootHeader,`HexRCF.RealCoefficients.RootQuote,
+ `HexRCF.RootQuoteCases,`HexRCF.RootQuoteSource,`HexRCF.RootQuoteData,
+ `HexRCF.RealCoefficients.ScalarPacket]
+ let mut theorems : Nat := 0
+ let mut definitions : Nat := 0
+ let mut traces : Nat := 0
+ for name in dependencies.toArray do
+ let some index := (← getEnv).getModuleIdxFor? name | continue
+ unless allowed.contains modules[index]! do continue
+ let declaration ← match ← getConstInfo name with
+ | .thmInfo info =>
+ theorems := theorems+1
+ pure (Declaration.thmDecl {info with name := ← mkFreshUserName `__publicPacketBody})
+ | .defnInfo info =>
+ definitions := definitions+1
+ pure (Declaration.defnDecl {info with name := ← mkFreshUserName `__publicPacketData})
+ | _ => continue
+ let options := (← getOptions).setBool `debug.skipKernelTC false
+ let environment := Kernel.enableDiag (Kernel.resetDiag (← getEnv)) true
+ let checked ← ofExceptKernelException <| environment.addDeclCore
+ (Core.getMaxHeartbeats options).toUSize (maxRecDepth.get options).toUSize
+ declaration none (doCheck := true)
+ let diagnostics := Kernel.getDiagnostics checked
+ unless diagnostics.enabled do throwError "root/header packet body diagnostics are disabled"
+ if let some (producer,count) := Hex.RCF.SelectedRootTests.KernelCheck.violation? diagnostics
+ #[``ScalarPacket.build,``ScalarPacket.buildLiteral,``Algebraic.Element.codec,
+ ``Descriptor.ofReplay?] then
+ throwError "root/header packet reduced producer {producer}: {count}; body={name}"
+ if !diagnostics.unfoldCounter.isEmpty then traces := traces+1
+ unless theorems == 730 && definitions == 66 && traces == 781 do
+ throwError "root/header packet body inventory changed: {theorems}/{definitions}/{traces}"
+ unless (← (← getEnv).getLocalConstantInfos).map (·.name) == originalNames do
+ throwError "root/header packet audit retained declarations"
+ logInfo m!"root/header packet actual bodies: {theorems} theorems/{definitions} definitions; nonempty traces={traces}; full axioms={axioms}"
diff --git a/conformance/HexRCF/RootHeaderValues.lean b/conformance/HexRCF/RootHeaderValues.lean
new file mode 100644
index 0000000000..8da4365673
--- /dev/null
+++ b/conformance/HexRCF/RootHeaderValues.lean
@@ -0,0 +1,102 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+module
+
+public import HexRCF.RootHeaderPacket
+public import HexRCF.RealCoefficients.ScalarQuote
+public meta import HexRCF.RootHeaderPacket
+public meta import HexRCF.RealCoefficients.ScalarQuote
+public meta import HexRCF.RealCoefficients.RationalQuote
+
+public section
+
+/-! Decode a coefficient using only the public packet's checked sign fact,
+then interpret that exact coefficient at the original selected real root. -/
+
+open Lean Meta Qq Hex Hex.RealClosure Hex.SignDet Hex.RCF.RealCoefficients
+namespace Hex.RCF.RootHeaderPacket
+
+set_option maxHeartbeats 12000000
+set_option maxRecDepth 32768
+
+@[expose] def literal : Codec.Json := .array (.cons polynomial (.cons (.number 1) .nil))
+
+run_meta do
+ let codec : Q(ValueCodec (Algebraic.Element context)) :=
+ q(Algebraic.Element.codec (context := context) RootQuoteTests.base.codec)
+ let facts ← mkAppM ``List.cons #[mkConst ``fact,
+ ← mkAppOptM ``List.nil #[some (← inferType (mkConst ``fact))]]
+ let decode : RootQuote.DecoderM := fun expression =>
+ liftM (RationalQuote.decoder (mkConst ``RootQuoteTests.registry) expression)
+ let .ok quoted ← RootQuote.runWith
+ (ScalarQuote.quoteWith codec facts (mkConst ``literal) decode)
+ | throwError "public packet did not decode its coefficient"
+ let declaration := Declaration.defnDecl {
+ name := `Hex.RCF.RootHeaderPacket.coefficient,levelParams := [],
+ type := ← inferType quoted.value,value := quoted.value,hints := .regular 0,safety := .safe}
+ addDecl declaration (forceExpose := true)
+ compileDecl declaration (logErrors := true)
+ let reader := mkApp3 (mkConst ``ValueCodec.decode) (← inferType quoted.value) codec
+ (mkConst ``literal)
+ let statement ← mkEq (← mkAppM ``Except.toOption #[reader])
+ (← mkAppM ``Option.some #[mkConst `Hex.RCF.RootHeaderPacket.coefficient])
+ let proof ← Hex.RCF.checkProof `publicPacketCoefficient statement quoted.proof
+ addDecl (.thmDecl {
+ name := `Hex.RCF.RootHeaderPacket.coefficient_read,levelParams := [],type := statement,value := proof})
+ logInfo m!"coefficient from public packet; proofNodes={quoted.usage.proofNodes}"
+
+theorem coefficient_polynomial : coefficient.polynomial =
+ DensePoly.ofCoeffs (#[⟨(0 : Rat)⟩,⟨(1 : Rat)⟩] : Array RootQuoteTests.base.Value) := by
+ unfold coefficient
+ rw [Algebraic.Element.restore_polynomial]
+ exact (DensePoly.ofCoeffs_toArray _).symm
+
+theorem coefficient_sign : coefficient.sign = 1 := by
+ unfold coefficient
+ exact Algebraic.Element.restore_sign _ _ _ _
+
+@[expose] noncomputable def realRoot : ℝ :=
+ root.root model.value model.zero_iff model.one model.add model.sub model.mul model.nat model.sign
+
+@[expose] noncomputable def coefficientReal : ℝ :=
+ coefficient.denote model.value model.zero_iff model.one model.add model.sub model.mul
+ model.nat model.sign
+
+private theorem polynomial_value :
+ HexPolyTheory.Interpret.interpret model.value model.zero_iff
+ (DensePoly.ofCoeffs (#[⟨(0 : Rat)⟩,⟨(1 : Rat)⟩] : Array RootQuoteTests.base.Value)) =
+ (Polynomial.X : Polynomial ℝ) := by
+ ext i
+ rw [HexPolyTheory.Interpret.coeff_interpret]
+ rcases i with _ | _ | i
+ · change RootQuoteTests.realModel.value (⟨(0 : Rat)⟩ : RootQuoteTests.base.Value) = _
+ erw [RootQuoteTests.rational_value]
+ norm_num
+ · change RootQuoteTests.realModel.value (⟨(1 : Rat)⟩ : RootQuoteTests.base.Value) = _
+ erw [RootQuoteTests.rational_value]
+ norm_num
+ · rw [DensePoly.coeff_eq_zero_of_size_le _ (by change 2 ≤ i+1+1; omega)]
+ have zero := (model.zero_iff 0).mpr rfl
+ erw [zero]
+ rw [Polynomial.coeff_X, ite_eq_right (by omega : ¬1 = i+1+1)]
+
+theorem coefficient_value : coefficientReal = Hex.RCF.RootHeaderPacket.realRoot := by
+ unfold coefficientReal Algebraic.Element.denote
+ rw [coefficient_polynomial]
+ unfold Algebraic.Context.evalPoly
+ rw [polynomial_value, Polynomial.eval_X]
+ simp only [Algebraic.Context.rootValue, context, Algebraic.Context.root_adjoin]
+ rfl
+
+theorem coefficient_positive : 0 < coefficientReal := by
+ have signed := Algebraic.Element.sign_spec model.value model.zero_iff model.one
+ model.add model.sub model.mul model.nat model.sign model.neg model.inv coefficient
+ rw [coefficient_sign] at signed
+ apply sign_eq_one_iff.mp
+ change 1 = (SignType.sign coefficientReal : Int) at signed
+ cases chosen : SignType.sign coefficientReal <;> simp_all
+
+end Hex.RCF.RootHeaderPacket
diff --git a/conformance/HexRCF/RootPrepareControls.lean b/conformance/HexRCF/RootPrepareControls.lean
new file mode 100644
index 0000000000..719f7c53ee
--- /dev/null
+++ b/conformance/HexRCF/RootPrepareControls.lean
@@ -0,0 +1,106 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+module
+public import HexRCF.RootPreparePacket
+public meta import HexRCF.RootPreparePacket
+public meta import HexRCF.RealCoefficients.RootPrepare
+public meta import HexRCF.RealCoefficients.RationalQuote
+public section
+
+/-! Exact request budgets and rollback after retained-context preparation and replay. -/
+open Lean Meta Hex Hex.RealClosure Hex.SignDet Hex.RCF.RealCoefficients
+namespace Hex.RCF.RootPrepareControls
+set_option maxHeartbeats 12000000
+set_option maxRecDepth 32768
+
+private meta def restored (before : MetavarContext) (sentinel : Expr)
+ (declarations : Option (Array Name) := none) : MetaM Unit := do
+ let after ← getMCtx
+ unless !(← sentinel.mvarId!.isAssigned) && before.mvarCounter == after.mvarCounter &&
+ before.lmvarCounter == after.lmvarCounter &&
+ before.eAssignment.toList == after.eAssignment.toList &&
+ before.lAssignment.toList == after.lAssignment.toList &&
+ before.decls.toList.map Prod.fst == after.decls.toList.map Prod.fst do
+ throwError "retained context quotation changed caller metavariables"
+ if let some declarations := declarations then
+ unless (← (← getEnv).getLocalConstantInfos).map (·.name) == declarations do
+ throwError "failed retained context quotation kept auxiliary declarations"
+
+run_meta do
+ withoutExporting do
+ let sentinel ← mkFreshExprMVar (mkConst ``Nat)
+ let before ← getMCtx
+ let action : Hex.RealFormula.Reify.ReifyM RootQuote.Result := do
+ sentinel.mvarId!.assign (mkNatLit 37)
+ RootPreparePacket.quoteWith 1
+ let .ok result ← RootQuote.runWith action RootPreparePacket.config
+ | throwError "retained packet baseline failed"
+ restored before sentinel
+ let exactConfig := {RootPreparePacket.config with ring :=
+ {RootPreparePacket.config.ring with budget :=
+ {RootPreparePacket.config.ring.budget with proofNodes := result.usage.proofNodes}}}
+ let .ok repeated ← RootQuote.runWith action exactConfig
+ | throwError "retained packet failed at its exact request budget"
+ unless repeated.usage == result.usage do throwError "retained packet accounting changed"
+ restored before sentinel
+ let declarations := (← (← getEnv).getLocalConstantInfos).map (·.name)
+ let small := {exactConfig with ring := {exactConfig.ring with budget :=
+ {exactConfig.ring.budget with proofNodes := result.usage.proofNodes-1}}}
+ let .error (.budget exhausted) ← RootQuote.runWith action small
+ | throwError "retained packet accepted one node below its exact request budget"
+ unless exhausted.dimension == .proofNodes do throwError "retained packet exhausted another dimension"
+ restored before sentinel (some declarations)
+ logInfo m!"retained packet exact/one-below request budget={result.usage.proofNodes}; caller state restored"
+
+run_meta do
+ withoutExporting do
+ let sentinel ← mkFreshExprMVar (mkConst ``Nat)
+ let before ← getMCtx
+ let declarations := (← (← getEnv).getLocalConstantInfos).map (·.name)
+ let .error (.providerFailure (.invalidProviderEvidence _ _) _) ← RootQuote.runWith (do
+ sentinel.mvarId!.assign (mkNatLit 41)
+ RootPreparePacket.quoteWith (-1)) RootPreparePacket.config
+ | throwError "retained packet did not reject a wrong proposed sign"
+ restored before sentinel (some declarations)
+ logInfo "retained packet wrong-sign rejection restored caller declarations and metavariables"
+
+run_meta do
+ withoutExporting do
+ for variant in [:3] do
+ let sentinel ← mkFreshExprMVar (mkConst ``Nat)
+ let before ← getMCtx
+ let declarations := (← (← getEnv).getLocalConstantInfos).map (·.name)
+ let reached ← IO.mkRef false
+ let outcome ← try
+ let result ← RootQuote.runWith (do
+ sentinel.mvarId!.assign (mkNatLit 43)
+ let some reader ← unfoldDefinition? (mkConst ``RootQuoteTests.read)
+ | throwError "original descriptor reader is not exposed"
+ let base : RootQuote.DecoderM := fun expression =>
+ liftM (RationalQuote.decoder (mkConst ``RootQuoteTests.registry) expression)
+ let header ← RootHeader.quoteWith reader base
+ let clean ← mkAppM ``Tower.Context.isClean #[mkConst ``RootQuoteTests.base]
+ reached.set true
+ if variant == 0 then
+ let unresolved ← mkFreshExprMVar (← inferType clean)
+ discard <| RootPrepare.prepareWith header unresolved
+ else if variant == 1 then
+ let wrong ← mkEqRefl (mkNatLit 0)
+ discard <| RootPrepare.prepareWith {header with binding := wrong} clean
+ else
+ let unresolved ← mkFreshExprMVar (← inferType header.raw)
+ discard <| RootPrepare.prepareWith {header with raw := unresolved} clean
+ return header.root) RootPreparePacket.config
+ pure (some result)
+ catch error =>
+ if error.isInterrupt || error.isMaxHeartbeat || error.isMaxRecDepth then throw error
+ pure none
+ unless (← reached.get) do throwError "malformed-input control did not reach preparation"
+ unless outcome.isNone do throwError "malformed retained input was not refused by preparation"
+ restored before sentinel (some declarations)
+ logInfo m!"malformed retained input refused with caller rollback: variant={variant}"
+
+end Hex.RCF.RootPrepareControls
diff --git a/conformance/HexRCF/RootPreparePacket.lean b/conformance/HexRCF/RootPreparePacket.lean
new file mode 100644
index 0000000000..5f09ab05c4
--- /dev/null
+++ b/conformance/HexRCF/RootPreparePacket.lean
@@ -0,0 +1,123 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+module
+public import HexRCF.RootHeaderPacket
+public meta import HexRCF.RealCoefficients.RootPrepare
+public meta import HexRCF.RealCoefficients.ScalarPacketQuote
+public meta import HexRCF.RealCoefficients.SignatureQuote
+public meta import HexRCF.RealCoefficients.RationalQuote
+public section
+
+/-! Quote an original anonymous cubic reader using retained native data and
+independently checked header bindings, within one reflection request. -/
+open Lean Meta Hex Hex.RealClosure Hex.SignDet Hex.RCF.RealCoefficients
+namespace Hex.RCF.RootPreparePacket
+set_option maxHeartbeats 12000000
+set_option maxRecDepth 32768
+
+/-- Fixture allowance; the controls derive exact and one-below limits from the checked request. -/
+meta def config : Hex.RealFormula.Reify.Config :=
+ let basic : Hex.RealFormula.Reify.Config := {}
+ {basic with ring := {basic.ring with budget :=
+ {basic.ring.budget with proofNodes := 4000000}}}
+
+/-- The sign is a proposal, checked against the original frozen packet. -/
+meta def quoteWith (sign : Int := 1) : Hex.RealFormula.Reify.ReifyM RootQuote.Result := do
+ let some original ← unfoldDefinition? (mkConst ``RootQuoteTests.read)
+ | throwError "original descriptor reader is not exposed"
+ let base : RootQuote.DecoderM := fun expression =>
+ liftM (RationalQuote.decoder (mkConst ``RootQuoteTests.registry) expression)
+ let header ← RootHeader.quoteWith original base
+ if header.root.value.isConst then throwError "anonymous descriptor regression lost its inline input"
+ let clean ← mkAppM ``Tower.Context.isClean #[mkConst ``RootQuoteTests.base]
+ let prepared ← RootPrepare.prepareWith header clean
+ unless prepared.usage == (← get).budget.consumed do
+ throwError "native preparation omitted resource charges"
+ unless prepared.root.isConst && prepared.context.isConst &&
+ prepared.source.getAppFn.isConstOf ``Algebraic.Context.adjoin do
+ throwError "native preparation did not retain the original anonymous context"
+ let signature ← mkAppM ``Tower.Context.signature #[mkConst ``RootQuoteTests.base]
+ let decode : RootQuote.DecoderM := fun expression => do
+ if let some proof ← SignatureQuote.decoder signature
+ (mkConst ``RootHeaderPacket.signatureData)
+ (mkConst ``RootHeaderPacket.signature_literal) expression then
+ return some proof
+ if let some proof ← prepared.decoder expression then return some proof
+ liftM (RationalQuote.decoder (mkConst ``RootQuoteTests.registry) expression)
+ let codec ← mkAppM ``Tower.Context.codec #[mkConst ``RootQuoteTests.base]
+ let reader ← mkAppM ``ScalarPacket.read
+ #[mkConst ``RootHeaderPacket.model,codec,prepared.source,
+ mkConst ``RootHeaderPacket.polynomial,mkIntLit sign,mkConst ``RootHeaderPacket.evidence]
+ let quoted ← ScalarPacket.quoteWith reader prepared.context prepared.same decode
+ let target ← mkEq reader (← mkAppM ``Option.some #[quoted.value])
+ Hex.RealFormula.Reify.accountProof target
+ Hex.RealFormula.Reify.accountProof quoted.proof
+ let proof ← Hex.RCF.checkProof `RootPreparePacket.original target quoted.proof
+ return {quoted with proof,usage := (← get).budget.consumed}
+
+/-- Export data names in theorem types; their private construction proofs stay
+in definition bodies. The original anonymous reader was checked before this
+definitionally equal public presentation is constructed. -/
+meta def publishWith (quoted : RootQuote.Result) : Hex.RealFormula.Reify.ReifyM RootQuote.Result := do
+ let kind ← inferType quoted.proof
+ unless kind.isAppOfArity ``Eq 3 do throwError "original packet proof is not an equation"
+ let reader := kind.getAppArgs[1]!
+ unless reader.getAppFn.isConstOf ``ScalarPacket.read do
+ throwError "original packet proof has a different reader"
+ let declaration ← getConstInfo ``ScalarPacket.read
+ let index ← forallTelescope declaration.type fun binders _ => do
+ for index in [:binders.size] do
+ if (← getFVarLocalDecl binders[index]!).userName == `context then return index
+ throwError "scalar reader has no context binder"
+ let arguments := reader.getAppArgs
+ let source := arguments[index]!
+ let contextName := `Hex.RCF.RootPreparePacket.context
+ let contextType ← inferType source
+ Hex.RealFormula.Reify.accountProof source
+ Hex.RealFormula.Reify.accountProof contextType
+ withExporting (isExporting := true) do
+ let data := Declaration.defnDecl {
+ name := contextName,levelParams := [],type := contextType,value := source,
+ hints := .regular (getMaxHeight (← getEnv) source+1),safety := .safe}
+ addDecl data (forceExpose := true)
+ compileDecl data (logErrors := true)
+ let publicReader := mkAppN reader.getAppFn (arguments.set! index (mkConst contextName))
+ let optional ← inferType publicReader
+ unless optional.isAppOfArity ``Option 1 do throwError "public packet reader is not optional"
+ let factType := optional.appArg!
+ Hex.RealFormula.Reify.accountProof factType
+ Hex.RealFormula.Reify.accountProof quoted.value
+ let factName := `Hex.RCF.RootPreparePacket.fact
+ withExporting (isExporting := true) do
+ let data := Declaration.defnDecl {
+ name := factName,levelParams := [],type := factType,value := quoted.value,
+ hints := .regular (getMaxHeight (← getEnv) quoted.value+1),safety := .safe}
+ addDecl data (forceExpose := true)
+ compileDecl data (logErrors := true)
+ let target ← mkEq publicReader (← mkAppM ``Option.some #[mkConst factName])
+ Hex.RealFormula.Reify.accountProof target
+ let candidate := mkExpectedPropHint quoted.proof target
+ Hex.RealFormula.Reify.accountProof candidate
+ let proof ← Hex.RCF.checkProof `RootPreparePacket.public target candidate
+ return ⟨mkConst factName,proof,(← get).budget.consumed⟩
+
+run_meta do
+ withoutExporting do
+ let result ← match ← RootQuote.runWith (do
+ let quoted ← quoteWith 1
+ publishWith quoted) config with
+ | .ok result => pure result
+ | .error error => throwError "retained original packet: {Hex.RealFormula.Reify.Error.toMessageData error}"
+ let axioms ← collectAxioms result.proof.getAppFn.constName!
+ unless axioms.all (fun name => [``propext,``Classical.choice,``Quot.sound].contains name) do
+ throwError "retained packet axiom closure changed: {axioms}"
+ let kind ← inferType result.proof
+ withExporting (isExporting := true) do
+ addDecl (.thmDecl {
+ name := `Hex.RCF.RootPreparePacket.read_checked,levelParams := [],type := kind,value := result.proof})
+ logInfo m!"original anonymous packet, full request proof budget={result.usage.proofNodes}; axioms={axioms}"
+
+end Hex.RCF.RootPreparePacket
diff --git a/conformance/HexRCF/RootPrepareProofs.lean b/conformance/HexRCF/RootPrepareProofs.lean
new file mode 100644
index 0000000000..c91d4e18db
--- /dev/null
+++ b/conformance/HexRCF/RootPrepareProofs.lean
@@ -0,0 +1,78 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+import HexRCF.RootPreparePublic
+import HexRCF.ProofEvidence
+import KernelReplay.AxiomClosure
+import HexRCF.SelectedRoot.KernelCheck
+meta section
+/-! Fresh importing kernel-body and complete dependency audits for retained contexts. -/
+open Lean Meta Hex Hex.RealClosure Hex.SignDet Hex.RCF.RealCoefficients
+private def progress (message : String) : MetaM Unit := do
+ if let some path ← IO.getEnv "HEX_RCF_ROOT_PREPARE_TRACE" then
+ IO.FS.withFile path .append fun handle => do
+ handle.putStrLn message
+ handle.flush
+
+set_option maxHeartbeats 12000000
+set_option maxRecDepth 32768
+run_meta do
+ withoutExporting do
+ let roots := #[``Hex.RCF.RootPreparePacket.read_checked,
+ ``Hex.RCF.RootPreparePublic.accepted,``Hex.RCF.RootPreparePublic.sign]
+ progress "root preparation audit: collecting full axiom closure"
+ let axioms ← Algebraic.KernelReplay.AxiomClosure.collect roots
+ unless axioms.all (fun name => [``propext,``Classical.choice,``Quot.sound].contains name) do
+ throwError "retained root/context axiom closure changed: {axioms}"
+ progress "root preparation audit: enumerating project dependencies"
+ let dependencies ← Hex.RCF.ProofEvidence.projectDependencies roots
+ for required in #[``Algebraic.RootReplay.readDescriptor_subject,``Tower.Signature.codec_literal,
+ ``ScalarPacket.read_restore] do
+ unless dependencies.contains required do throwError "retained root/context omitted {required}"
+ for forbidden in #[``Hex.RCF.RootHeaderPacket.read_checked,``Hex.RCF.RootHeaderPacket.root,
+ ``Hex.RCF.RootHeaderPacket.context,``Hex.RCF.RootHeaderPacket.raw_binding,``Hex.RCF.RootQuoteTests.root_raw,
+ ``Hex.RCF.RootQuoteTests.subject_read,``Hex.RCF.RootQuoteTests.nativeRoot_read] do
+ if dependencies.contains forbidden then throwError "retained quotation reused {forbidden}"
+ progress s!"root preparation audit: dependencies={dependencies.toArray.size}; checking scoped bodies"
+ let originalNames := (← (← getEnv).getLocalConstantInfos).map (·.name)
+ let modules := (← getEnv).header.moduleNames
+ let allowed := #[`HexRCF.RootPreparePacket,`HexRCF.RootPreparePublic,
+ `HexRCF.RealCoefficients.RootPrepare,`HexRCF.RealCoefficients.RootQuote,
+ `HexRCF.RealCoefficients.RootHeader,`HexRCF.RootHeaderPacket,
+ `HexRCF.RootQuoteCases,`HexRCF.RootQuoteSource,`HexRCF.RootQuoteData,
+ `HexRCF.RealCoefficients.ScalarPacket,`HexRCF.RealCoefficients.ScalarPacketQuote]
+ let mut theorems : Nat := 0
+ let mut definitions : Nat := 0
+ let mut traces : Nat := 0
+ for name in dependencies.toArray do
+ let some index := (← getEnv).getModuleIdxFor? name | continue
+ unless allowed.contains modules[index]! do continue
+ let declaration ← match ← getConstInfo name with
+ | .thmInfo info =>
+ theorems := theorems+1
+ pure (Declaration.thmDecl {info with name := ← mkFreshUserName `__rootDecodeBody})
+ | .defnInfo info =>
+ definitions := definitions+1
+ pure (Declaration.defnDecl {info with name := ← mkFreshUserName `__rootDecodeData})
+ | _ => continue
+ progress s!"root preparation body: {name}"
+ let options := (← getOptions).setBool `debug.skipKernelTC false
+ let environment := Kernel.enableDiag (Kernel.resetDiag (← getEnv)) true
+ let checked ← ofExceptKernelException <| environment.addDeclCore
+ (Core.getMaxHeartbeats options).toUSize (maxRecDepth.get options).toUSize
+ declaration none (doCheck := true)
+ let diagnostics := Kernel.getDiagnostics checked
+ unless diagnostics.enabled do throwError "generic root body diagnostics are disabled"
+ let extra := #[``ScalarPacket.build,``ScalarPacket.buildLiteral,``Algebraic.Element.codec,
+ ``Descriptor.ofReplay?] ++ if #[`HexRCF.RootPreparePacket,`HexRCF.RootPreparePublic].contains modules[index]! then
+ #[``Tower.rootData,``Dag.encode] else #[]
+ if let some (producer,count) := Hex.RCF.SelectedRootTests.KernelCheck.violation? diagnostics extra then
+ throwError "retained root/context reduced producer/encoder {producer}: {count}; body={name}"
+ if !diagnostics.unfoldCounter.isEmpty then traces := traces+1
+ unless theorems == 827 && definitions == 63 && traces == 875 do
+ throwError "retained root/context body inventory changed: {theorems}/{definitions}/{traces}"
+ unless (← (← getEnv).getLocalConstantInfos).map (·.name) == originalNames do
+ throwError "retained root/context audit retained declarations"
+ logInfo m!"retained root/context actual bodies: {theorems} theorems/{definitions} definitions; nonempty traces={traces}; full axioms={axioms}"
diff --git a/conformance/HexRCF/RootPreparePublic.lean b/conformance/HexRCF/RootPreparePublic.lean
new file mode 100644
index 0000000000..9e1c6ea2b2
--- /dev/null
+++ b/conformance/HexRCF/RootPreparePublic.lean
@@ -0,0 +1,25 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+module
+public import HexRCF.RootPreparePacket
+public section
+
+/-! Ordinary public-module consumers of the retained original packet proof. -/
+open Hex Hex.RealClosure Hex.SignDet Hex.RCF.RealCoefficients
+namespace Hex.RCF.RootPreparePublic
+
+theorem accepted :
+ (ScalarPacket.read RootHeaderPacket.model RootQuoteTests.base.codec
+ RootPreparePacket.context RootHeaderPacket.polynomial 1 RootHeaderPacket.evidence).isSome = true := by
+ rw [RootPreparePacket.read_checked]
+ rfl
+
+theorem sign : RootPreparePacket.fact.sign = 1 :=
+ (ScalarPacket.fields RootHeaderPacket.model RootQuoteTests.base.codec RootPreparePacket.context
+ RootHeaderPacket.polynomial 1 RootHeaderPacket.evidence RootPreparePacket.fact
+ RootPreparePacket.read_checked).2
+
+end Hex.RCF.RootPreparePublic
diff --git a/conformance/HexRCF/RootQuoteConformance.lean b/conformance/HexRCF/RootQuoteConformance.lean
index 52a4d6fc0d..52caa92b9e 100644
--- a/conformance/HexRCF/RootQuoteConformance.lean
+++ b/conformance/HexRCF/RootQuoteConformance.lean
@@ -80,7 +80,7 @@ run_meta do
Hex.RCF.SelectedRootTests.KernelCheck.addChecked
(← mkFreshUserName `__rootQuoteData) statement (← mkEqRefl declaration.value)
| _ => pure ()
- unless checked == 229 do throwError "quotation body count changed: {checked}"
+ unless checked == 265 do throwError "quotation body count changed: {checked}"
logInfo m!"actual cubic and conditional quotation bodies under kernel producer diagnostics: {checked}"
for name in #[``Tower.contextCodec_self,``NumberField.decode_payload,
``Dag.replay_eq,``Dag.step_eq,``Node.check_eq,``checkMoment_eq,
diff --git a/conformance/HexRCF/RootTableQuote/Conformance.lean b/conformance/HexRCF/RootTableQuote/Conformance.lean
index ccabec5e65..c523755266 100644
--- a/conformance/HexRCF/RootTableQuote/Conformance.lean
+++ b/conformance/HexRCF/RootTableQuote/Conformance.lean
@@ -57,7 +57,7 @@ run_meta do
unless (← (← getEnv).getLocalConstantInfos).map (·.name) == names do
throwError "root-table audit retained copied declarations"
unless reductions > 0 do throwError "root-table quotation audit did not observe any reductions"
- unless theorems.size == 86 && definitions.size == 14 do
+ unless theorems.size == 103 && definitions.size == 14 do
throwError "root-table quotation body coverage changed: {theorems.size}/{definitions.size}"
logInfo m!"root-table quotation: {theorems.size} theorem bodies, {definitions.size} data definitions"
logInfo "complete standard-three axiom closure; no native producer reductions"
diff --git a/conformance/HexRCF/RowPacketControls.lean b/conformance/HexRCF/RowPacketControls.lean
new file mode 100644
index 0000000000..b70ec4791c
--- /dev/null
+++ b/conformance/HexRCF/RowPacketControls.lean
@@ -0,0 +1,61 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+import HexRCF.CellQuoteStages
+open Lean Meta Qq Hex Hex.SignDet Hex.RCF.RealCoefficients
+namespace Hex.RCF.RowPacketControls
+open Hex.RCF.CellQuoteStages
+open Hex.RCF.RealCoefficients.CellReplayTests
+
+/-- The original zero row's graph is retained, but its ordered query is 1. -/
+def wrongRow : Codec.Json := .arr #[.number 1, ZeroLiterals.j7,
+ .arr #[ZeroLiterals.j12], ZeroLiterals.j5, ZeroLiterals.j56]
+set_option maxHeartbeats 12000000
+set_option maxRecDepth 32768
+run_meta do
+ withoutExporting do
+ let rowStarted ← IO.mkRef false
+ let validatedAfterQuery ← IO.mkRef false
+ let decode : RootQuote.DecoderM := fun expression => do
+ if expression.getAppFn.isConstOf ``Dag.validate? && (← rowStarted.get) then
+ validatedAfterQuery.set true
+ if let some proof ← RowQuote.decoder expression then return some proof
+ if let some proof ← SignatureQuote.decoder q(base.signature)
+ (mkConst ``signatureData) (mkConst ``signature_literal) expression then
+ return some proof
+ liftM (RationalQuote.decoder (mkConst ``registry) expression)
+ let descriptor := q(CellOperations.selected operations base.codec ZeroLiterals.j7 ZeroLiterals.j30)
+ let queries : Q(List base.Poly) := q([0])
+ let sentinel ← mkFreshExprMVar (mkConst ``Nat)
+ let before ← getMCtx
+ let names := (← (← getEnv).getLocalConstantInfos).map (·.name)
+ let basic : Hex.RealFormula.Reify.Config := {}
+ let config := {basic with ring := {basic.ring with budget :=
+ {basic.ring.budget with proofNodes := 2000000}}}
+ let .error (.providerFailure (.invalidProviderEvidence ⟨key,version⟩ reason) _) ←
+ RootQuote.runWith (do
+ sentinel.mvarId!.assign (mkNatLit 95)
+ let root ← RootQuote.quoteWith descriptor decode
+ let reader ← mkAppM ``RowOperations.read #[q(base.codec),
+ q(Hex.RealClosure.Tower.Signature.codec), q(base.sign), q(base.signature),
+ root.value, queries, mkConst ``wrongRow]
+ rowStarted.set true
+ RowQuote.withDecoder decode fun decoder => do
+ let _ ← decoder reader
+ throwError "changed row queries returned a proposal") config
+ | throwError "changed row queries did not retain their structured rejection"
+ unless key == `Hex.RCF.RealCoefficients.RowQuote && version == 0 do
+ throwError "changed row query rejection came from {key}/{version}: {reason}"
+ if ← validatedAfterQuery.get then
+ throwError "changed row queries reached graph validation after rejection"
+ let after ← getMCtx
+ unless !(← sentinel.mvarId!.isAssigned) && before.mvarCounter == after.mvarCounter &&
+ before.lmvarCounter == after.lmvarCounter && before.eAssignment.toList == after.eAssignment.toList &&
+ before.lAssignment.toList == after.lAssignment.toList &&
+ before.decls.toList.map Prod.fst == after.decls.toList.map Prod.fst &&
+ (← (← getEnv).getLocalConstantInfos).map (·.name) == names do
+ throwError "rejected row queries retained caller state or declarations"
+ logInfo "changed ordered row queries rejected before graph validation; structured failure and full rollback checked"
+end Hex.RCF.RowPacketControls
diff --git a/conformance/HexRCF/RowQuoteCases.lean b/conformance/HexRCF/RowQuoteCases.lean
new file mode 100644
index 0000000000..cebdd22b1f
--- /dev/null
+++ b/conformance/HexRCF/RowQuoteCases.lean
@@ -0,0 +1,91 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+module
+public import HexRCF.RowQuoteData
+public meta import HexRCF.RealCoefficients.RowQuote
+public section
+namespace Hex.RCF.RowQuoteTests
+open Lean Meta Hex.RealFormula.Reify Hex.RCF.RealCoefficients
+set_option maxHeartbeats 4000000
+set_option maxRecDepth 32768
+private meta def reader (input : Expr) (expected : Int) : MetaM Expr := do
+ let rootEq ← mkAppM ``Input.rootEq #[input]
+ let q1 ← mkAppM ``Input.q1 #[input]
+ let queries ← mkListLit (← inferType q1) [q1]
+ let row ← mkAppM ``castRow #[input]
+ let some row ← unfoldDefinition? row | throwError "cast fixture did not expose its transport"
+ let retarget ← mkAppM ``RowOperations.retarget
+ #[mkConst ``Int.sign,toExpr (),rootEq,← mkEqRefl queries,row]
+ let value ← mkAppM ``Hex.SignDet.SelectedSigns.value #[retarget]
+ let decision ← mkDecide (← mkEq value (toExpr expected))
+ mkAppM ``gate #[decision]
+private meta def restored (before : MetavarContext) (sentinel : Expr)
+ (names : Option (Array Name) := none) : MetaM Unit := do
+ let after ← getMCtx
+ unless !(← sentinel.mvarId!.isAssigned) && before.mvarCounter == after.mvarCounter &&
+ before.lmvarCounter == after.lmvarCounter && before.eAssignment.toList == after.eAssignment.toList &&
+ before.lAssignment.toList == after.lAssignment.toList &&
+ before.decls.toList.map Prod.fst == after.decls.toList.map Prod.fst do
+ throwError "projection quotation retained caller metavariables"
+ if let some names := names then
+ unless (← (← getEnv).getLocalConstantInfos).map (·.name) == names do
+ throwError "failed projection quotation retained declarations"
+run_meta do
+ for (stored,expected,result,name) in #[(1,1,17,`projectPositive),(1,0,23,`projectFalse),
+ (-1,0,23,`projectNegative),(0,0,17,`projectZero)] do
+ withLocalDeclD `input (mkApp (mkConst ``Input) (toExpr (stored : Int))) fun input => do
+ let subject ← reader input expected
+ let .ok quoted ← RootQuote.run subject RowQuote.decoder
+ | throwError "projection quotation refused its ordinary control"
+ let target ← mkEq (← mkAppM ``Except.toOption #[subject])
+ (← mkAppM ``Option.some #[mkNatLit result])
+ let checked ← Hex.RCF.checkProof name target (mkExpectedPropHint quoted.proof target)
+ let target ← mkForallFVars #[input] target
+ let proof ← mkLambdaFVars #[input] checked
+ let fullName := Name.append `Hex.RCF.RowQuoteTests name
+ addDecl (.thmDecl {name := fullName,levelParams := [],type := target,value := proof})
+ logInfo m!"{name}: proofNodes={quoted.usage.proofNodes}"
+run_meta do
+ withLocalDeclD `input (mkApp (mkConst ``Input) (toExpr (1 : Int))) fun input => do
+ let subject ← reader input 1
+ let sentinel ← mkFreshExprMVar (mkConst ``Nat)
+ let before ← getMCtx
+ let action : ReifyM RootQuote.Result := do
+ sentinel.mvarId!.assign (mkNatLit 41)
+ RootQuote.quoteWith subject RowQuote.decoder
+ let .ok result ← RootQuote.runWith action
+ | throwError "projection quotation baseline refused"
+ restored before sentinel
+ unless result.usage.proofNodes == 2622 do
+ throwError "projection quotation budget changed: {result.usage.proofNodes}"
+ let basic : Hex.RealFormula.Reify.Config := {}
+ let exactConfig := {basic with ring := {basic.ring with budget :=
+ {basic.ring.budget with proofNodes := result.usage.proofNodes}}}
+ let .ok exactResult ← RootQuote.runWith action exactConfig
+ | throwError "projection quotation rejected exact budget"
+ unless exactResult.usage == result.usage do throwError "projection quotation accounting changed"
+ restored before sentinel
+ let names := (← (← getEnv).getLocalConstantInfos).map (·.name)
+ let small := {exactConfig with ring := {exactConfig.ring with budget :=
+ {exactConfig.ring.budget with proofNodes := result.usage.proofNodes-1}}}
+ let .error (.budget exhausted) ← RootQuote.runWith action small
+ | throwError "projection quotation accepted below budget"
+ unless exhausted.dimension == .proofNodes do throwError "projection exhausted the wrong resource"
+ restored before sentinel (some names)
+ logInfo m!"projection exact/below budget and caller rollback checked; exact={result.usage.proofNodes}"
+ let invalid : ReifyM RootQuote.Result := do
+ sentinel.mvarId!.assign (mkNatLit 43)
+ RootQuote.quoteWith subject (fun expression => do
+ let some _ ← RowQuote.decoder expression | return none
+ return some (← mkEqRefl (mkConst ``Bool.false)))
+ let rejected ← try
+ let _ ← RootQuote.runWith invalid
+ pure false
+ catch _ => pure true
+ unless rejected do throwError "projection callback accepted a proof of the wrong Boolean goal"
+ restored before sentinel (some names)
+ logInfo "wrong-goal callback rejection and caller rollback checked"
+end Hex.RCF.RowQuoteTests
diff --git a/conformance/HexRCF/RowQuoteData.lean b/conformance/HexRCF/RowQuoteData.lean
new file mode 100644
index 0000000000..44b5093c48
--- /dev/null
+++ b/conformance/HexRCF/RowQuoteData.lean
@@ -0,0 +1,27 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+module
+public import HexRCF.RealCoefficients.RowQuote
+public section
+namespace Hex.RCF.RowQuoteTests
+open Hex Hex.SignDet
+abbrev Root := Descriptor Int Unit Int.sign ()
+structure Input (stored : Int) where
+ first : Root
+ second : Root
+ rootEq : first = second
+ q0 : DensePoly Int
+ q1 : DensePoly Int
+ queryEq : [q0] = [q1]
+ evidence : Hex.SignDet.Replay Int Unit
+ checked : first.checkSigns [q0] #v[stored] evidence = true
+@[expose] def source (input : Input stored) : SelectedSigns input.first [input.q0] :=
+ ⟨#v[stored],input.evidence,input.checked⟩
+@[expose] def castRow (input : Input stored) : SelectedSigns input.first [input.q1] :=
+ input.queryEq ▸ source input
+@[expose] def gate (decision : Bool) : Except String Nat :=
+ if decision then .ok 17 else .ok 23
+end Hex.RCF.RowQuoteTests
diff --git a/conformance/HexRCF/RowQuoteDepth.lean b/conformance/HexRCF/RowQuoteDepth.lean
new file mode 100644
index 0000000000..fe8ee39c08
--- /dev/null
+++ b/conformance/HexRCF/RowQuoteDepth.lean
@@ -0,0 +1,58 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+module
+public import HexRCF.RowQuoteData
+public meta import HexRCF.RealCoefficients.RowQuote
+public section
+namespace Hex.RCF.RowQuoteDepthTests
+open Lean Meta Hex.RealFormula.Reify Hex.RCF.RealCoefficients Hex.RCF.RowQuoteTests
+set_option maxHeartbeats 4000000
+set_option maxRecDepth 32768
+private meta def reader (input : Expr) (depth : Nat) : MetaM Expr := do
+ let same ← mkAppM ``Input.queryEq #[input]
+ let reverse ← mkEqSymm same
+ let mut row ← mkAppM ``source #[input]
+ for i in [:depth] do
+ let equality := if i % 2 == 0 then same else reverse
+ let kind ← withTransparency .reducible (whnf (← inferType row))
+ unless kind.getAppFn.isConstOf ``Hex.SignDet.SelectedSigns do
+ throwError "depth control lost its selected-sign record"
+ let parameters := kind.getAppArgs
+ let before := parameters.back!
+ let motive ← withLocalDeclD `queries (← inferType before) fun queries => do
+ withLocalDeclD `same (← mkEq before queries) fun same => do
+ let after := mkAppN kind.getAppFn (parameters.set! (parameters.size-1) queries)
+ mkLambdaFVars #[queries,same] after
+ row ← mkEqRec motive row equality
+ let value ← mkAppM ``Hex.SignDet.SelectedSigns.value #[row]
+ let decision ← mkDecide (← mkEq value (toExpr (1 : Int)))
+ mkAppM ``gate #[decision]
+run_meta do
+ withLocalDeclD `input (mkApp (mkConst ``Input) (toExpr (1 : Int))) fun input => do
+ for depth in [1,16,24] do
+ let subject ← reader input depth
+ let .ok result ← RootQuote.run subject RowQuote.decoder
+ | throwError "projection quotation refused a valid {depth}-transport chain"
+ let expected := if depth == 1 then 2144 else if depth == 16 then 5105 else 6901
+ unless result.usage.proofNodes == expected do
+ throwError "projection depth accounting changed: {depth}/{result.usage.proofNodes}"
+ let target ← mkEq (← mkAppM ``Except.toOption #[subject])
+ (← mkAppM ``Option.some #[mkNatLit 17])
+ let checked ← Hex.RCF.checkProof `depthControl target (mkExpectedPropHint result.proof target)
+ if depth == 24 then
+ let target ← mkForallFVars #[input] target
+ let proof ← mkLambdaFVars #[input] checked
+ let name := `Hex.RCF.RowQuoteDepthTests.depth24
+ addDecl (.thmDecl {name,levelParams := [],type := target,value := proof})
+ let basic : Hex.RealFormula.Reify.Config := {}
+ let small := {basic with ring := {basic.ring with budget :=
+ {basic.ring.budget with proofNodes := result.usage.proofNodes-1}}}
+ let .error (.budget exhausted) ← RootQuote.run subject RowQuote.decoder small
+ | throwError "projection depth control accepted below its consumed budget"
+ unless exhausted.dimension == .proofNodes do
+ throwError "projection depth control exhausted the wrong resource"
+ logInfo m!"projection depth={depth}; proofNodes={result.usage.proofNodes}; below refused"
+end Hex.RCF.RowQuoteDepthTests
diff --git a/conformance/HexRCF/RowQuoteProofs.lean b/conformance/HexRCF/RowQuoteProofs.lean
new file mode 100644
index 0000000000..5300d737dd
--- /dev/null
+++ b/conformance/HexRCF/RowQuoteProofs.lean
@@ -0,0 +1,65 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+import HexRCF.RowQuoteCases
+import HexRCF.RowQuoteDepth
+import HexRCF.RealCoefficients.ScalarPacket
+import HexRCF.ProofEvidence
+import HexRCF.SelectedRoot.KernelCheck
+import KernelReplay.AxiomClosure
+meta section
+open Lean Meta Hex.RealClosure Hex.RCF.RealCoefficients
+set_option maxRecDepth 32768
+set_option maxHeartbeats 12000000
+run_meta do
+ let roots := #[`Hex.RCF.RowQuoteTests.projectPositive,
+ `Hex.RCF.RowQuoteTests.projectFalse,
+ `Hex.RCF.RowQuoteTests.projectNegative,
+ `Hex.RCF.RowQuoteTests.projectZero,
+ `Hex.RCF.RowQuoteDepthTests.depth24,``RowQuote.values_restore]
+ let axioms ← Algebraic.KernelReplay.AxiomClosure.collect roots
+ unless axioms.all (fun name => [``propext,``Classical.choice,``Quot.sound].contains name) do
+ throwError "projection quotation has inadmissible dependencies"
+ let dependencies ← Hex.RCF.ProofEvidence.projectDependencies roots
+ for required in #[``RowQuote.values_cast,
+ ``RowQuote.values_retarget,``RowQuote.value_eq] do
+ unless dependencies.contains required do throwError "public quotation omitted {required}"
+ for forbidden in #[`Hex.SignDet.Conformance.literal_accepts,`Hex.SignDet.Conformance.full_kernel] do
+ if dependencies.contains forbidden then throwError "public quotation reused fixture proof {forbidden}"
+ let names := (← (← getEnv).getLocalConstantInfos).map (·.name)
+ let modules := (← getEnv).header.moduleNames
+ let allowed := #[`HexRCF.RowQuoteCases,`HexRCF.RowQuoteData,`HexRCF.RowQuoteDepth,
+ `HexRCF.RealCoefficients.RowQuote,`HexRCF.RealCoefficients.RootQuote]
+ let mut theorems : Nat := 0
+ let mut definitions : Nat := 0
+ let mut traces : Nat := 0
+ for name in dependencies.toArray do
+ let some index := (← getEnv).getModuleIdxFor? name | continue
+ unless allowed.contains modules[index]! do continue
+ let declaration ← match ← getConstInfo name with
+ | .thmInfo info =>
+ theorems := theorems+1
+ pure (Declaration.thmDecl {info with name := ← mkFreshUserName `__treeBody})
+ | .defnInfo info =>
+ definitions := definitions+1
+ pure (Declaration.defnDecl {info with name := ← mkFreshUserName `__treeData})
+ | _ => continue
+ let options := (← getOptions).setBool `debug.skipKernelTC false
+ let environment := Kernel.enableDiag (Kernel.resetDiag (← getEnv)) true
+ let checked ← ofExceptKernelException <| environment.addDeclCore
+ (Core.getMaxHeartbeats options).toUSize (maxRecDepth.get options).toUSize
+ declaration none (doCheck := true)
+ let diagnostics := Kernel.getDiagnostics checked
+ unless diagnostics.enabled do throwError "projection quotation diagnostics disabled"
+ if let some (producer,count) := Hex.RCF.SelectedRootTests.KernelCheck.violation? diagnostics
+ #[``ScalarPacket.build,``ScalarPacket.buildLiteral,``Algebraic.Element.codec,
+ ``Hex.SignDet.Descriptor.ofReplay?] then
+ throwError "projection quotation reduced producer {producer}: {count}; body={name}"
+ if !diagnostics.unfoldCounter.isEmpty then traces := traces+1
+ unless theorems == 70 && definitions == 8 && traces == 72 do
+ throwError "selected projection quotation inventory changed: {theorems}/{definitions}/{traces}"
+ unless (← (← getEnv).getLocalConstantInfos).map (·.name) == names do
+ throwError "projection quotation audit retained copied declarations"
+ logInfo m!"selected projection quotation actual bodies: {theorems} theorems/{definitions} definitions; nonempty traces={traces}; full axioms={axioms}"
diff --git a/conformance/HexRCF/SelectedRoot/KernelCheck.lean b/conformance/HexRCF/SelectedRoot/KernelCheck.lean
index 3432e49fad..439952e634 100644
--- a/conformance/HexRCF/SelectedRoot/KernelCheck.lean
+++ b/conformance/HexRCF/SelectedRoot/KernelCheck.lean
@@ -21,7 +21,12 @@ def producers : Array Name := #[``Read.rootRead, ``Hex.RealClosure.Roots.roots?,
``NumberField.Presentation.roots, ``NumberField.Presentation.roots?, ``Algebraic.Context.signPoly,
``Algebraic.Context.buildSigns, ``Descriptor.buildSigns, ``Descriptor.buildSignsPrepared,
``Hex.SignDet.buildPrepared, ``Hex.SignDet.buildTree, ``Hex.SignDet.buildTreeFrom,
- ``Algebraic.Element.ofPoly, ``Descriptor.prepareQueries]
+ ``Algebraic.Element.ofPoly, ``Descriptor.prepareQueries,
+ -- Literal names keep native adapter production out of proof-only imports.
+ `Hex.RCF.RealCoefficients.SourceBuild.build,
+ `Hex.RCF.RealCoefficients.SourceBuild.buildOn,
+ `Hex.RCF.RealCoefficients.SourceBuild.select,
+ `Hex.RCF.RealCoefficients.ScalarPacket.buildParts]
/-- Return the exact prohibited reduction observed by a checked declaration. -/
def violation? (diagnostics : Kernel.Diagnostics) (extra : Array Name := #[]) : Option (Name × Nat) :=
diff --git a/conformance/HexRCF/SharedQuoteCallbacks.lean b/conformance/HexRCF/SharedQuoteCallbacks.lean
index c2d34a1b76..aaa3559b02 100644
--- a/conformance/HexRCF/SharedQuoteCallbacks.lean
+++ b/conformance/HexRCF/SharedQuoteCallbacks.lean
@@ -96,7 +96,7 @@ run_meta do
let .ok quoted ← RootQuote.runWith
(ScalarQuote.quotePolyWith original (mkConst ``facts) decode)
| throwError "nested predecessor polynomial quotation failed"
- unless quoted.usage.proofNodes == 9143 do
+ unless quoted.usage.proofNodes == 19448 do
throwError "nested transport proof-node accounting changed: {quoted.usage.proofNodes}"
let count ← calls.get
unless count == 1 && (← completed.get) == 1 && quoted.usage.sourceNodes == 17 do
@@ -118,7 +118,7 @@ run_meta do
(config (quoted.usage.proofNodes-1))
| throwError "one-below nested projection budget did not exhaust"
unless exhausted.dimension == .proofNodes do throwError "wrong nested budget dimension"
- unless exhausted.consumed == 8137 && exhausted.requested == 1006 do
+ unless exhausted.consumed == 18442 && exhausted.requested == 1006 do
throwError "nested final transport charge changed: consumed={exhausted.consumed}, requested={exhausted.requested}"
logInfo m!"nested exhausted: consumed={exhausted.consumed}, requested={exhausted.requested}"
let codec := match subject.getAppFn with
diff --git a/conformance/HexRCF/SignPacketProofs.lean b/conformance/HexRCF/SignPacketProofs.lean
index 62d34bfa1b..55b2bb960c 100644
--- a/conformance/HexRCF/SignPacketProofs.lean
+++ b/conformance/HexRCF/SignPacketProofs.lean
@@ -63,7 +63,7 @@ run_meta do
if !diagnostics.unfoldCounter.isEmpty then reductions := reductions+1
unless (← (← getEnv).getLocalConstantInfos).map (·.name) == originalNames do
throwError "sign packet audit retained temporary declarations"
- unless theorems.size == 89 && definitions.size == 11 && reductions == 90 do
+ unless theorems.size == 109 && definitions.size == 11 && reductions == 110 do
throwError "sign packet audit inventory changed: {theorems.size} theorem bodies/{definitions.size} definitions; traces={reductions}"
logInfo m!"sign packet quotation: {theorems.size} theorem bodies, {definitions.size} definitions"
logInfo m!"sign packet nonempty diagnostic traces: {reductions}"
diff --git a/conformance/HexRCF/SignPacketQuote.lean b/conformance/HexRCF/SignPacketQuote.lean
index fdcd3b6155..6a25bffd08 100644
--- a/conformance/HexRCF/SignPacketQuote.lean
+++ b/conformance/HexRCF/SignPacketQuote.lean
@@ -65,7 +65,7 @@ run_meta do
let reader ← mkAppM ``ScalarPacket.read
#[mkConst ``Data.rational,codec,mkConst ``Data.native,
mkConst ``Scalars.p0,mkConst ``Scalars.s0,mkConst ``Scalars.g0]
- unless quoted.usage.proofNodes == 73992 do
+ unless quoted.usage.proofNodes == 268798 do
throwError "sign packet accounting changed: {quoted.usage.proofNodes}"
logInfo m!"sign packet quotation proofNodes={quoted.usage.proofNodes}"
let declaration := Declaration.defnDecl {
@@ -116,7 +116,7 @@ run_meta do
unless (← touched.get) && !(← sentinel.mvarId!.isAssigned) &&
(← getMCtx).decls.toList.length == callerCount do
throwError "successful packet quotation did not restore the mutated caller"
- unless result.usage.proofNodes == 44385 do
+ unless result.usage.proofNodes == 174189 do
throwError "standalone sign packet accounting changed: {result.usage.proofNodes}"
let statement ← mkEq reader (← mkAppM ``Option.some #[mkConst ``fact])
let proof ← Hex.RCF.checkProof `standalonePacket statement result.proof
@@ -138,7 +138,7 @@ run_meta do
let .error (.budget exhausted) ←
RootQuote.runWith action (config (result.usage.proofNodes-1))
| throwError "one-below sign packet budget did not exhaust"
- unless exhausted.dimension == .proofNodes && exhausted.consumed == 44362 &&
+ unless exhausted.dimension == .proofNodes && exhausted.consumed == result.usage.proofNodes-23 &&
exhausted.requested == 23 do throwError "wrong sign packet budget boundary: {exhausted.consumed}+{exhausted.requested}"
logInfo m!"sign packet final exhaustion: {exhausted.consumed}+{exhausted.requested}"
unless (← touched.get) && !(← sentinel.mvarId!.isAssigned) do
diff --git a/conformance/HexRCF/SignatureQuoteConformance.lean b/conformance/HexRCF/SignatureQuoteConformance.lean
new file mode 100644
index 0000000000..04c4b9e5f2
--- /dev/null
+++ b/conformance/HexRCF/SignatureQuoteConformance.lean
@@ -0,0 +1,65 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+module
+public import HexRCF.RootQuoteData
+public meta import HexRCF.RealCoefficients.RootQuote
+public section
+
+/-! Canonical signature roundtrips at distinct exact subjects with bounded quotation. -/
+open Lean Meta Hex Hex.RealClosure Hex.SignDet Hex.RCF.RealCoefficients
+namespace Hex.RCF.SignatureRoundtrip
+set_option maxHeartbeats 12000000
+set_option maxRecDepth 32768
+
+@[expose] def first := RootQuoteTests.base.signature
+@[expose] def second := first.extend (.array .nil)
+@[expose] def readFirst := Tower.Signature.codec.decode (Tower.Signature.codec.encode first)
+@[expose] def readSecond := Tower.Signature.codec.decode (Tower.Signature.codec.encode second)
+
+run_meta do
+ for (readerName,valueName) in [( ``readFirst,``first),( ``readSecond,``second)] do
+ let visits ← IO.mkRef (0 : Nat)
+ let decoder : RootQuote.DecoderM := fun expression => do
+ if let .proj ``ValueCodec 1 codec := expression.getAppFn then
+ if codec.isConstOf ``Tower.Signature.codec then visits.modify (·+1)
+ return none
+ let .ok result ← RootQuote.runWith
+ (RootQuote.quoteWith (mkConst readerName) decoder)
+ | throwError "default signature roundtrip declined"
+ unless (← visits.get) == 0 do throwError "canonical roundtrip reached the caller decoder"
+ let statement ← mkEq (← mkAppM ``Except.toOption #[mkConst readerName])
+ (← mkAppM ``Option.some #[mkConst valueName])
+ let proof ← Hex.RCF.checkProof `signatureRoundtrip statement result.proof
+ if readerName == ``readSecond then
+ let wrong ← mkEq (← mkAppM ``Except.toOption #[mkConst readerName])
+ (← mkAppM ``Option.some #[mkConst ``first])
+ let refused ← withoutModifyingEnv do
+ try
+ let _ ← Hex.RCF.checkProof `wrongSignature wrong (mkExpectedPropHint result.proof wrong)
+ pure false
+ catch error =>
+ if error.isInterrupt || error.isMaxHeartbeat || error.isMaxRecDepth then throw error
+ pure true
+ unless refused do throwError "a different encoded signature proved the original signature"
+ let axioms ← collectAxioms proof.getAppFn.constName!
+ unless axioms.all (fun name => [``propext,``Classical.choice,``Quot.sound].contains name) do
+ throwError "signature roundtrip axioms changed"
+ let config : Hex.RealFormula.Reify.Config := {}
+ let exactBudget := {config with ring := {config.ring with budget :=
+ {config.ring.budget with proofNodes := result.usage.proofNodes}}}
+ let .ok repeated ← RootQuote.runWith
+ (RootQuote.quoteWith (mkConst readerName)) exactBudget
+ | throwError "signature roundtrip failed at exact budget"
+ unless repeated.usage == result.usage do throwError "signature accounting changed"
+ let lower := {config with ring := {config.ring with budget :=
+ {config.ring.budget with proofNodes := result.usage.proofNodes-1}}}
+ let .error (.budget exhausted) ← RootQuote.runWith
+ (RootQuote.quoteWith (mkConst readerName)) lower
+ | throwError "signature roundtrip did not exhaust one below its budget"
+ unless exhausted.dimension == .proofNodes do throwError "signature exhausted another dimension"
+ logInfo m!"default signature exact subject: {readerName}; nodes={result.usage.proofNodes}; exact/one-below checked"
+
+end Hex.RCF.SignatureRoundtrip
diff --git a/conformance/HexRCF/SourceBuild.lean b/conformance/HexRCF/SourceBuild.lean
new file mode 100644
index 0000000000..56c8807657
--- /dev/null
+++ b/conformance/HexRCF/SourceBuild.lean
@@ -0,0 +1,126 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+import HexRCF.RealCoefficients.SourceBuild
+import HexRCF.RealCoefficients.SourceIdentity
+import HexRealClosure.NumberFieldTower
+import HexSignDet.Codec.Bytes
+import HexRCF.EnumeratedSource.Positive
+import HexRCF.EnumeratedSource.Negative
+import HexRCF.EnumeratedSource.Cubic
+import HexRCF.SelectedRoot.KernelCheck
+import KernelReplay.AxiomClosure
+
+/-! Native source proposals from enumerated roots, without a retained selected
+root fixture. These are producer/serialization controls, not quoted real proofs. -/
+namespace Hex.RCF.SourceBuildTests
+open Hex Hex.RealClosure Hex.SignDet Hex.RCF.RealCoefficients
+
+def registry : BaseContext.Registry := fun _ => none
+abbrev base := Hex.RealClosure.NumberField.base registry
+def poly (values : List Rat) : base.Poly :=
+ DensePoly.ofCoeffs (values.toArray.map fun value => ⟨value⟩)
+
+def margin (square : DyadicSquare) : base.Poly :=
+ DensePoly.ofCoeffs ((SourceIdentity.margin square).coeffs.map fun value => ⟨value⟩)
+
+-- The guard uses literal names to preserve proof-only import boundaries.
+-- Check those names against actual declarations here, in the native driver.
+open Lean in
+run_meta do
+ for name in #[``SourceBuild.build, ``SourceBuild.select, ``ScalarPacket.buildParts] do
+ unless Hex.RCF.SelectedRootTests.KernelCheck.producers.contains name do
+ throwError "source producer is missing from the kernel guard: {name}"
+ let roots := #[``ScalarPacket.buildParts_success, ``ScalarPacket.build_success,
+ ``SourceBuild.select_success, ``SourceBuild.select_checks,
+ ``SourceBuild.build_success, ``SourceBuild.build_checked, ``SourceBuild.build_checks]
+ let axioms ← Algebraic.KernelReplay.AxiomClosure.collect roots
+ unless axioms.all (fun name => [``propext, ``Classical.choice, ``Quot.sound].contains name) do
+ throwError "enumerated source progress has inadmissible dependencies: {axioms}"
+ let names := (← (← getEnv).getLocalConstantInfos).map (·.name)
+ for name in roots do
+ let .thmInfo info ← getConstInfo name | throwError "progress declaration is not a theorem: {name}"
+ let declaration := Declaration.thmDecl {info with name := ← mkFreshUserName `__sourceProgress}
+ let options := (← getOptions).setBool `debug.skipKernelTC false
+ let _ ← ofExceptKernelException <| (← getEnv).addDeclCore
+ (Core.getMaxHeartbeats options).toUSize (maxRecDepth.get options).toUSize
+ declaration none (doCheck := true)
+ unless (← (← getEnv).getLocalConstantInfos).map (·.name) == names do
+ throwError "source progress audit retained copied declarations"
+ logInfo m!"enumerated source progress: {roots.size} actual theorem bodies rechecked; full axioms={axioms}"
+
+private def require (polynomial window : base.Poly) : IO (SourceBuild.Result base) := do
+ match SourceBuild.build polynomial window with
+ | .error error => throw (IO.userError s!"source production refused: {repr error}")
+ | .ok result => return result
+
+private def signAt (source : SourceBuild.Result base) (query : base.Poly) : IO Int := do
+ let context := Algebraic.Context.adjoin source.root base.isClean
+ let some result := ScalarPacket.buildParts context base.codec query
+ | throw (IO.userError "source observation production failed")
+ return result.sign
+
+private def rejected (polynomial window : base.Poly) (ambiguous : Bool) : IO Unit := do
+ match SourceBuild.build polynomial window with
+ | .error .ambiguous => unless ambiguous do throw (IO.userError "unexpected ambiguity")
+ | .error .unselected => if ambiguous then throw (IO.userError "lost ambiguous roots")
+ | _ => throw (IO.userError "source selection did not preserve its refusal")
+
+private def packet (source : SourceBuild.Result base) (proposal : ScalarPacket.Proposal) : IO Unit := do
+ let literal := proposal.packet
+ let .ok fields := Codec.tuple 3 literal | throw (IO.userError "invalid scalar packet layout")
+ unless fields[0] == proposal.polynomial && fields[1] == Codec.Json.of proposal.sign &&
+ fields[2] == proposal.evidence do throw (IO.userError "scalar packet fields changed")
+ let .ok graph := Codec.readGraph base.codec Tower.Signature.codec base.signature
+ source.root.raw.head source.root.raw.lower source.root.raw.upper proposal.evidence
+ | throw (IO.userError "source graph did not decode")
+ unless (graph.validate? base.sign base.signature source.root.raw.head
+ source.root.raw.lower source.root.raw.upper).isSome do
+ throw (IO.userError "source graph did not independently validate")
+
+#eval (show IO Unit from do
+ let quadratic := poly [-2,0,1]
+ let square : DyadicSquare := ⟨Dyadic.ofInt 181 >>> (7 : Int),0,8⟩
+ let positive ← require quadratic (margin square)
+ let negative ← require quadratic (margin {square with re := -square.re})
+ unless (← signAt positive (poly [0,1])) == 1 &&
+ (← signAt negative (poly [0,1])) == -1 do
+ throw (IO.userError "source selection confused real conjugates")
+ let cubicSquare : DyadicSquare := ⟨Dyadic.ofInt 1290 >>> (10 : Int),0,12⟩
+ let cubic ← require (poly [-2,0,0,1]) (margin cubicSquare)
+ unless (← signAt cubic (poly [-1,1])) == 1 do
+ throw (IO.userError "nonquadratic root lost its positive embedding")
+ for source in [positive,negative,cubic] do
+ packet source source.equation
+ packet source source.enclosure
+ unless source.equation.sign == 0 && source.enclosure.sign == 1 do
+ throw (IO.userError "source proposal changed selected signs")
+ rejected quadratic (poly [1]) true
+ rejected quadratic (poly [-1]) false
+ rejected quadratic (poly []) false
+ match SourceBuild.select (poly [1]) (poly [1]) [positive.root] with
+ | .error .equation => pure ()
+ | _ => throw (IO.userError "source selection ignored a different equation")
+ match SourceBuild.select quadratic (poly [1]) [positive.root,positive.root] with
+ | .error .ambiguous => pure ()
+ | _ => throw (IO.userError "duplicate proposed roots bypassed ambiguity")
+ match SourceBuild.build (poly []) (poly [1]) with
+ | .error (.roots _) => pure ()
+ | _ => throw (IO.userError "invalid root input bypassed root production failure")
+ let _ : Hashable base.Value := ⟨fun value => hash (base.codec.encode value)⟩
+ let _ : Hashable Tower.Signature := ⟨fun value => hash (Tower.Signature.codec.encode value)⟩
+ let packets := [positive,negative,cubic].toArray.map fun source =>
+ Codec.Json.arr #[Codec.descriptor base.codec Tower.Signature.codec source.root.raw,
+ Codec.graph base.codec Tower.Signature.codec (Dag.encode source.root.evidence),
+ source.equation.packet,source.enclosure.packet]
+ let frozen := Codec.Json.arr #[EnumeratedSource.Positive.packet,
+ EnumeratedSource.Negative.packet,EnumeratedSource.Cubic.packet]
+ unless (Codec.Json.arr packets).writeBytes == frozen.writeBytes do
+ throw (IO.userError "enumerated-source proposals differ from frozen quotation inputs")
+ if let some path ← IO.getEnv "HEX_RCF_ENUMERATED_SOURCE_OUTPUT" then
+ IO.FS.writeBinFile path (Codec.Json.arr packets).writeBytes
+ IO.println "source enumeration: positive/negative quadratic, cubic, six independent graph replays, ambiguous/empty/zero windows, wrong equation and duplicate-root refusals passed")
+
+end Hex.RCF.SourceBuildTests
diff --git a/conformance/HexRCF/SourceIdentityControls.lean b/conformance/HexRCF/SourceIdentityControls.lean
new file mode 100644
index 0000000000..53108421c7
--- /dev/null
+++ b/conformance/HexRCF/SourceIdentityControls.lean
@@ -0,0 +1,104 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+import HexRCF.SourceIdentityPacket
+open Lean Meta Qq Hex Hex.RealClosure Hex.SignDet Hex.RCF.RealCoefficients
+open Hex.RCF.SelectedRootTests Hex.RCF.SourceIdentityCases
+open Hex.RCF.SourceIdentityPacket
+namespace Hex.RCF.SourceIdentityControls
+open Hex.RCF.SelectedRootTests.SourceIdentityPackets
+set_option maxRecDepth 32768
+set_option maxHeartbeats 32000000
+
+private meta def restored (before : MetavarContext) (sentinel : Expr)
+ (names : Option (Array Name) := none) : MetaM Unit := do
+ let after ← getMCtx
+ unless !(← sentinel.mvarId!.isAssigned) && before.mvarCounter == after.mvarCounter &&
+ before.lmvarCounter == after.lmvarCounter && before.eAssignment.toList == after.eAssignment.toList &&
+ before.lAssignment.toList == after.lAssignment.toList &&
+ before.decls.toList.map Prod.fst == after.decls.toList.map Prod.fst do
+ throwError "source identity quotation retained caller metavariables"
+ if let some names := names then
+ unless (← (← getEnv).getLocalConstantInfos).map (·.name) == names do
+ throwError "failed source identity quotation retained declarations"
+
+run_meta do
+ withoutExporting do
+ let (anchor,packets) ← inputs
+ let basic : Hex.RealFormula.Reify.Config := {}
+ let config := {basic with ring := {basic.ring with budget :=
+ {basic.ring.budget with proofNodes := 2000000}}}
+ let sentinel ← mkFreshExprMVar (mkConst ``Nat)
+ let before ← getMCtx
+ let action : Hex.RealFormula.Reify.ReifyM RootQuote.Result := do
+ sentinel.mvarId!.assign (mkNatLit 96)
+ quoteSource anchor packets
+ let .ok baseline ← RootQuote.runWith action config
+ | throwError "source identity baseline refused"
+ restored before sentinel
+ let exact := {config with ring := {config.ring with budget :=
+ {config.ring.budget with proofNodes := baseline.usage.proofNodes}}}
+ let .ok repeated ← RootQuote.runWith action exact
+ | throwError "source identity rejected its exact budget"
+ unless repeated.usage == baseline.usage do throwError "source identity usage changed"
+ restored before sentinel
+ let names := (← (← getEnv).getLocalConstantInfos).map (·.name)
+ let small := {exact with ring := {exact.ring with budget :=
+ {exact.ring.budget with proofNodes := baseline.usage.proofNodes-1}}}
+ let .error (.budget exhausted) ← RootQuote.runWith action small
+ | throwError "source identity accepted below its exact budget"
+ unless exhausted.dimension == .proofNodes do throwError "wrong source identity budget exhausted"
+ restored before sentinel (some names)
+ logInfo m!"source identity exact/below budgets and success/failure rollback checked: {baseline.usage.proofNodes}"
+
+ let negativeReader := q(ScalarPacket.read Data.rational Data.base.codec Data.native
+ packet2.1 packet2.2.1 packet2.2.2)
+ let .ok negative ← RootQuote.runWith (withParent fun context same decode =>
+ ScalarPacket.quoteWith negativeReader context same decode) config
+ | throwError "valid negative-conjugate enclosure packet refused"
+ let factName := `Hex.RCF.SourceIdentityControls.negativeFact
+ withExporting (isExporting := true) do
+ addDecl (.defnDecl {
+ name := factName,levelParams := [],
+ type := ← inferType negative.value,value := negative.value,
+ hints := .regular 0,safety := .safe}) (forceExpose := true)
+ let readTarget ← mkEq negativeReader (← mkAppM ``Option.some #[mkConst factName])
+ let readProof ← Hex.RCF.checkProof `negativePacket readTarget
+ (mkExpectedPropHint negative.proof readTarget)
+ addDecl (.thmDecl {
+ name := `Hex.RCF.SourceIdentityControls.negative_read,
+ levelParams := [],type := readTarget,value := readProof})
+ let signTarget ← mkEq (← mkAppM ``Algebraic.SignFact.sign #[mkConst factName]) (toExpr (-1 : Int))
+ let signProof ← Hex.RCF.checkProof `negativeSign signTarget
+ (mkExpectedPropHint (← mkEqRefl (toExpr (-1 : Int))) signTarget)
+ addDecl (.thmDecl {
+ name := `Hex.RCF.SourceIdentityControls.negative_sign,
+ levelParams := [],type := signTarget,value := signProof})
+ let negativeValue : Q(ℝ) := q((Field.literalRep SquareTwo.polynomial negativeSquare
+ negative_witness negative_precision).root.re)
+ let negativeAnchor := {anchor with
+ square := mkConst ``negativeSquare
+ witness := mkConst ``negative_witness
+ precision := mkConst ``negative_precision
+ value := negativeValue
+ selected := ← mkEqRefl negativeValue}
+ let negativePackets := {packets with
+ enclosure := negativeReader,enclosureValue := mkConst ``negative_value}
+ let incorrect := {packets with equationValue := ← mkEqRefl (mkConst ``Bool.false)}
+ for (label,a,p) in [("wrong conjugate",negativeAnchor,negativePackets),
+ ("wrong coefficient proof",anchor,incorrect)] do
+ let before ← getMCtx
+ let names := (← (← getEnv).getLocalConstantInfos).map (·.name)
+ let refused ← try
+ match ← RootQuote.runWith (do
+ sentinel.mvarId!.assign (mkNatLit 97)
+ quoteSource a p) config with
+ | .ok _ => pure false
+ | .error _ => pure true
+ catch _ => pure true
+ unless refused do throwError "source identity accepted {label}"
+ restored before sentinel (some names)
+ logInfo m!"source identity refused {label} with complete rollback"
+end Hex.RCF.SourceIdentityControls
diff --git a/conformance/HexRCF/SourceIdentityEmit.lean b/conformance/HexRCF/SourceIdentityEmit.lean
new file mode 100644
index 0000000000..a8fa834749
--- /dev/null
+++ b/conformance/HexRCF/SourceIdentityEmit.lean
@@ -0,0 +1,35 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+import HexRCF.SourceIdentityPacket
+import HexSignDet.Codec.Bytes
+open Hex Hex.RealClosure Hex.SignDet Hex.RCF.RealCoefficients
+open Hex.RCF.SelectedRootTests Hex.RCF.SourceIdentityCases
+open Hex.RCF.SelectedRootTests.SourceIdentityPackets
+
+/-! Build-only input production, separate from the frozen source quotation.
+The emitted bytes propose evidence; the importing kernel audits check replay.
+This Mathlib-importing generator is not a runtime benchmark. -/
+
+private def stored (packet : Codec.Json × Int × Codec.Json) : Codec.Json :=
+ .arr #[packet.1,Codec.Json.of packet.2.1,packet.2.2]
+
+#eval (show IO Unit from do
+ let some equation := ScalarPacket.build Data.native Data.base.codec
+ (embed (ZPoly.toRatPoly SquareTwo.polynomial))
+ | throw (IO.userError "source equation production rejected")
+ let some enclosure := ScalarPacket.build Data.native Data.base.codec
+ (embed (SourceIdentity.margin SquareTwo.square))
+ | throw (IO.userError "source enclosure production rejected")
+ let some negative := ScalarPacket.build Data.native Data.base.codec
+ (embed (SourceIdentity.margin negativeSquare))
+ | throw (IO.userError "negative enclosure production rejected")
+ let proposed := Codec.Json.arr #[equation,enclosure,negative]
+ let frozen := Codec.Json.arr #[stored packet0,stored packet1,stored packet2]
+ unless proposed.writeBytes == frozen.writeBytes do
+ throw (IO.userError "source-identity proposals differ from the frozen packets")
+ if let some path ← IO.getEnv "HEX_RCF_SOURCE_IDENTITY_OUTPUT" then
+ IO.FS.writeBinFile path proposed.writeBytes
+ IO.println s!"source-identity proposals match frozen packets ({proposed.writeBytes.size} bytes); replay is checked separately")
diff --git a/conformance/HexRCF/SourceIdentityLiterals.lean b/conformance/HexRCF/SourceIdentityLiterals.lean
new file mode 100644
index 0000000000..f34c48531a
--- /dev/null
+++ b/conformance/HexRCF/SourceIdentityLiterals.lean
@@ -0,0 +1,184 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+
+import HexSignDet.Codec.Json
+
+/-! Shared constructor literals generated from
+`conformance-fixtures/HexRCF/source-identity.json` by
+`scripts/rcf/selected_literals.py`. No certificate producer is invoked. -/
+
+open Hex.SignDet
+
+namespace Hex.RCF.SelectedRootTests.SourceIdentityPackets
+def j0 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-2)) (.cons (.number (1)) .nil)))
+def j1 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (0)) (.cons (.number (1)) .nil)))
+def j2 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (1)) (.cons (.number (1)) .nil)))
+def j3 : Codec.Json := .array (.cons (j0) (.cons (j1) (.cons (j2) .nil)))
+def j4 : Codec.Json := .array .nil
+def j5 : Codec.Json := .array (.cons (j4) (.cons (.number (0)) (.cons (j4) .nil)))
+def j6 : Codec.Json := .array (.cons (.number (1)) (.cons (j2) .nil))
+def j7 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (2)) (.cons (.number (1)) .nil)))
+def j8 : Codec.Json := .array (.cons (.number (1)) (.cons (j7) .nil))
+def j9 : Codec.Json := .array (.cons (j4) .nil)
+def j10 : Codec.Json := .array (.cons (.number (0)) .nil)
+def j11 : Codec.Json := .array (.cons (.number (1)) .nil)
+def j12 : Codec.Json := .array (.cons (.number (2)) .nil)
+def j13 : Codec.Json := .array (.cons (j10) (.cons (j11) (.cons (j12) .nil)))
+def j14 : Codec.Json := .array (.cons (.number (-1)) .nil)
+def j15 : Codec.Json := .array (.cons (j14) (.cons (j10) (.cons (j11) .nil)))
+def j16 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (1)) (.cons (.number (0)) .nil)))
+def j17 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (0)) (.cons (.number (0)) .nil)))
+def j18 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-1)) (.cons (.number (1)) .nil)))
+def j19 : Codec.Json := .array (.cons (.number (2)) (.cons (.number (0)) (.cons (.number (-2)) .nil)))
+def j20 : Codec.Json := .array (.cons (j18) (.cons (j19) (.cons (j2) .nil)))
+def j21 : Codec.Json := .array (.cons (j13) (.cons (j15) (.cons (j16) (.cons (j17) (.cons (j20) (.cons (.number (2)) .nil))))))
+def j22 : Codec.Json := .array (.cons (j2) .nil)
+def j23 : Codec.Json := .array (.cons (j1) (.cons (j2) .nil))
+def j24 : Codec.Json := .array (.cons (j3) (.cons (j23) (.cons (j22) .nil)))
+def j25 : Codec.Json := .array (.cons (.number (2)) (.cons (.number (1)) (.cons (.number (0)) .nil)))
+def j26 : Codec.Json := .array (.cons (j2) (.cons (j4) (.cons (j7) .nil)))
+def j27 : Codec.Json := .array (.cons (j2) (.cons (j23) (.cons (j7) .nil)))
+def j28 : Codec.Json := .array (.cons (j27) .nil)
+def j29 : Codec.Json := .array (.cons (j2) (.cons (j23) .nil))
+def j30 : Codec.Json := .array (.cons (j29) .nil)
+def j31 : Codec.Json := .array (.cons (j24) (.cons (j25) (.cons (j26) (.cons (j28) (.cons (j30) .nil)))))
+def j32 : Codec.Json := .array (.cons (.number (-1)) (.cons (.number (1)) (.cons (.number (1)) .nil)))
+def j33 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (1)) (.cons (.number (1)) .nil)))
+def j34 : Codec.Json := .array (.cons (j5) (.cons (j3) (.cons (j22) (.cons (j6) (.cons (j8) (.cons (j31) (.cons (j31) (.cons (j32) (.cons (j33) (.cons (.number (1)) (.cons (.number (0)) (.cons (.number (1)) .nil))))))))))))
+def j35 : Codec.Json := .array (.cons (j3) .nil)
+def j36 : Codec.Json := .array (.cons (j2) (.cons (j4) (.cons (j2) .nil)))
+def j37 : Codec.Json := .array (.cons (j35) (.cons (j12) (.cons (j36) (.cons (j4) (.cons (j4) .nil)))))
+def j38 : Codec.Json := .array (.cons (j5) (.cons (j3) (.cons (j4) (.cons (j6) (.cons (j8) (.cons (j31) (.cons (j37) (.cons (j14) (.cons (j11) (.cons (.number (0)) (.cons (.number (0)) (.cons (.number (0)) .nil))))))))))))
+def j39 : Codec.Json := .array (.cons (j34) (.cons (j38) (.cons (j38) .nil)))
+def j40 : Codec.Json := .array (.cons (j4) (.cons (j22) .nil))
+def j41 : Codec.Json := .array (.cons (j40) .nil)
+def j42 : Codec.Json := .array (.cons (.number (0)) (.cons (j4) (.cons (j36) .nil)))
+def j43 : Codec.Json := .array (.cons (j42) .nil)
+def j44 : Codec.Json := .array (.cons (j43) (.cons (j4) .nil))
+def j45 : Codec.Json := .array (.cons (j44) .nil)
+def j46 : Codec.Json := .array (.cons (j42) (.cons (j42) .nil))
+def j47 : Codec.Json := .array (.cons (j46) (.cons (j4) .nil))
+def j48 : Codec.Json := .array (.cons (j47) .nil)
+def j49 : Codec.Json := .array (.cons (j41) (.cons (j45) (.cons (j48) .nil)))
+def j50 : Codec.Json := .array (.cons (j43) .nil)
+def j51 : Codec.Json := .array (.cons (j11) .nil)
+def j52 : Codec.Json := .array (.cons (.number (1)) (.cons (j10) (.cons (j10) (.cons (.number (1)) (.cons (j51) .nil)))))
+def j53 : Codec.Json := .array (.cons (j5) (.cons (j3) (.cons (j6) (.cons (j8) (.cons (j9) (.cons (.number (3)) (.cons (j21) (.cons (j39) (.cons (j49) (.cons (j50) (.cons (j52) .nil)))))))))))
+def j54 : Codec.Json := .array (.cons (j53) (.cons (j4) .nil))
+def j55 : Codec.Json := .array (.cons (j54) .nil)
+def j56 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (0)) (.cons (j55) .nil)))
+def packet0 : Codec.Json × Int × Codec.Json := (j3, (0), j56)
+def j57 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-65521)) (.cons (.number (32768)) .nil)))
+def j58 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (181)) (.cons (.number (64)) .nil)))
+def j59 : Codec.Json := .array (.cons (j57) (.cons (j58) (.cons (j18) .nil)))
+def j60 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-131057)) (.cons (.number (32768)) .nil)))
+def j61 : Codec.Json := .array (.cons (j60) (.cons (j58) .nil))
+def j62 : Codec.Json := .array (.cons (j61) .nil)
+def j63 : Codec.Json := .array (.cons (j13) (.cons (j15) (.cons (j1) (.cons (j33) (.cons (j20) (.cons (.number (2)) .nil))))))
+def j64 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-131057)) (.cons (.number (92672)) .nil)))
+def j65 : Codec.Json := .array (.cons (j64) (.cons (j2) .nil))
+def j66 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (185344)) (.cons (.number (131057)) .nil)))
+def j67 : Codec.Json := .array (.cons (j66) (.cons (j18) .nil))
+def j68 : Codec.Json := .array (.cons (j18) .nil)
+def j69 : Codec.Json := .array (.cons (j3) (.cons (j67) (.cons (j68) .nil)))
+def j70 : Codec.Json := .array (.cons (j7) .nil)
+def j71 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (131057)) (.cons (.number (46336)) .nil)))
+def j72 : Codec.Json := .array (.cons (j2) (.cons (j70) (.cons (j71) .nil)))
+def j73 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-185344)) (.cons (.number (131057)) .nil)))
+def j74 : Codec.Json := .array (.cons (j73) (.cons (j18) .nil))
+def j75 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (523838)) (.cons (.number (17175937249)) .nil)))
+def j76 : Codec.Json := .array (.cons (j2) (.cons (j74) (.cons (j75) .nil)))
+def j77 : Codec.Json := .array (.cons (j76) .nil)
+def j78 : Codec.Json := .array (.cons (j73) (.cons (j2) .nil))
+def j79 : Codec.Json := .array (.cons (j2) (.cons (j78) .nil))
+def j80 : Codec.Json := .array (.cons (j79) .nil)
+def j81 : Codec.Json := .array (.cons (j69) (.cons (j25) (.cons (j72) (.cons (j77) (.cons (j80) .nil)))))
+def j82 : Codec.Json := .array (.cons (.number (-1)) (.cons (.number (1)) (.cons (.number (-1)) .nil)))
+def j83 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (-1)) (.cons (.number (-1)) .nil)))
+def j84 : Codec.Json := .array (.cons (j5) (.cons (j3) (.cons (j65) (.cons (j6) (.cons (j8) (.cons (j31) (.cons (j81) (.cons (j82) (.cons (j83) (.cons (.number (2)) (.cons (.number (1)) (.cons (.number (1)) .nil))))))))))))
+def j85 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (34352136417)) (.cons (.number (24290628608)) .nil)))
+def j86 : Codec.Json := .array (.cons (j85) (.cons (j18) .nil))
+def j87 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-48581257216)) (.cons (.number (34352136417)) .nil)))
+def j88 : Codec.Json := .array (.cons (j87) (.cons (j2) .nil))
+def j89 : Codec.Json := .array (.cons (j3) (.cons (j88) (.cons (j22) .nil)))
+def j90 : Codec.Json := .array (.cons (j0) .nil)
+def j91 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (34352136417)) (.cons (.number (12145314304)) .nil)))
+def j92 : Codec.Json := .array (.cons (j2) (.cons (j90) (.cons (j91) .nil)))
+def j93 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (48581257216)) (.cons (.number (34352136417)) .nil)))
+def j94 : Codec.Json := .array (.cons (j93) (.cons (j2) .nil))
+def j95 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (137203125122)) (.cons (.number (1180069276412177597889)) .nil)))
+def j96 : Codec.Json := .array (.cons (j2) (.cons (j94) (.cons (j95) .nil)))
+def j97 : Codec.Json := .array (.cons (j96) .nil)
+def j98 : Codec.Json := .array (.cons (j2) (.cons (j88) .nil))
+def j99 : Codec.Json := .array (.cons (j98) .nil)
+def j100 : Codec.Json := .array (.cons (j89) (.cons (j25) (.cons (j92) (.cons (j97) (.cons (j99) .nil)))))
+def j101 : Codec.Json := .array (.cons (.number (-1)) (.cons (.number (-1)) (.cons (.number (1)) .nil)))
+def j102 : Codec.Json := .array (.cons (j5) (.cons (j3) (.cons (j86) (.cons (j6) (.cons (j8) (.cons (j31) (.cons (j100) (.cons (j101) (.cons (j33) (.cons (.number (1)) (.cons (.number (0)) (.cons (.number (1)) .nil))))))))))))
+def j103 : Codec.Json := .array (.cons (j34) (.cons (j84) (.cons (j102) .nil)))
+def j104 : Codec.Json := .array (.cons (.number (0)) (.cons (j65) (.cons (j36) .nil)))
+def j105 : Codec.Json := .array (.cons (j104) .nil)
+def j106 : Codec.Json := .array (.cons (j105) (.cons (j65) .nil))
+def j107 : Codec.Json := .array (.cons (j106) .nil)
+def j108 : Codec.Json := .array (.cons (j2) (.cons (j22) (.cons (j71) .nil)))
+def j109 : Codec.Json := .array (.cons (.number (0)) (.cons (j86) (.cons (j108) .nil)))
+def j110 : Codec.Json := .array (.cons (j104) (.cons (j109) .nil))
+def j111 : Codec.Json := .array (.cons (j110) (.cons (j86) .nil))
+def j112 : Codec.Json := .array (.cons (j111) .nil)
+def j113 : Codec.Json := .array (.cons (j41) (.cons (j107) (.cons (j112) .nil)))
+def j114 : Codec.Json := .array (.cons (j2) (.cons (j4) (.cons (j58) .nil)))
+def j115 : Codec.Json := .array (.cons (.number (0)) (.cons (j65) (.cons (j114) .nil)))
+def j116 : Codec.Json := .array (.cons (j115) .nil)
+def j117 : Codec.Json := .array (.cons (j116) .nil)
+def j118 : Codec.Json := .array (.cons (j5) (.cons (j3) (.cons (j6) (.cons (j8) (.cons (j62) (.cons (.number (3)) (.cons (j63) (.cons (j103) (.cons (j113) (.cons (j117) (.cons (j52) .nil)))))))))))
+def j119 : Codec.Json := .array (.cons (j118) (.cons (j4) .nil))
+def j120 : Codec.Json := .array (.cons (j119) .nil)
+def j121 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (0)) (.cons (j120) .nil)))
+def packet1 : Codec.Json × Int × Codec.Json := (j59, (1), j121)
+def j122 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-181)) (.cons (.number (64)) .nil)))
+def j123 : Codec.Json := .array (.cons (j57) (.cons (j122) (.cons (j18) .nil)))
+def j124 : Codec.Json := .array (.cons (j60) (.cons (j122) .nil))
+def j125 : Codec.Json := .array (.cons (j124) .nil)
+def j126 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (-1)) (.cons (.number (1)) .nil)))
+def j127 : Codec.Json := .array (.cons (j13) (.cons (j15) (.cons (j17) (.cons (j126) (.cons (j20) (.cons (.number (2)) .nil))))))
+def j128 : Codec.Json := .array (.cons (j64) (.cons (j18) .nil))
+def j129 : Codec.Json := .array (.cons (j3) (.cons (j74) (.cons (j68) .nil)))
+def j130 : Codec.Json := .array (.cons (j2) (.cons (j90) (.cons (j71) .nil)))
+def j131 : Codec.Json := .array (.cons (j2) (.cons (j67) (.cons (j75) .nil)))
+def j132 : Codec.Json := .array (.cons (j131) .nil)
+def j133 : Codec.Json := .array (.cons (j66) (.cons (j2) .nil))
+def j134 : Codec.Json := .array (.cons (j2) (.cons (j133) .nil))
+def j135 : Codec.Json := .array (.cons (j134) .nil)
+def j136 : Codec.Json := .array (.cons (j129) (.cons (j25) (.cons (j130) (.cons (j132) (.cons (j135) .nil)))))
+def j137 : Codec.Json := .array (.cons (.number (-1)) (.cons (.number (-1)) (.cons (.number (-1)) .nil)))
+def j138 : Codec.Json := .array (.cons (j5) (.cons (j3) (.cons (j128) (.cons (j6) (.cons (j8) (.cons (j31) (.cons (j136) (.cons (j137) (.cons (j83) (.cons (.number (0)) (.cons (.number (1)) (.cons (.number (-1)) .nil))))))))))))
+def j139 : Codec.Json := .array (.cons (j85) (.cons (j2) .nil))
+def j140 : Codec.Json := .array (.cons (j3) (.cons (j94) (.cons (j22) .nil)))
+def j141 : Codec.Json := .array (.cons (j2) (.cons (j70) (.cons (j91) .nil)))
+def j142 : Codec.Json := .array (.cons (j2) (.cons (j88) (.cons (j95) .nil)))
+def j143 : Codec.Json := .array (.cons (j142) .nil)
+def j144 : Codec.Json := .array (.cons (j2) (.cons (j94) .nil))
+def j145 : Codec.Json := .array (.cons (j144) .nil)
+def j146 : Codec.Json := .array (.cons (j140) (.cons (j25) (.cons (j141) (.cons (j143) (.cons (j145) .nil)))))
+def j147 : Codec.Json := .array (.cons (j5) (.cons (j3) (.cons (j139) (.cons (j6) (.cons (j8) (.cons (j31) (.cons (j146) (.cons (j32) (.cons (j33) (.cons (.number (1)) (.cons (.number (0)) (.cons (.number (1)) .nil))))))))))))
+def j148 : Codec.Json := .array (.cons (j34) (.cons (j138) (.cons (j147) .nil)))
+def j149 : Codec.Json := .array (.cons (.number (0)) (.cons (j128) (.cons (j36) .nil)))
+def j150 : Codec.Json := .array (.cons (j149) .nil)
+def j151 : Codec.Json := .array (.cons (j150) (.cons (j128) .nil))
+def j152 : Codec.Json := .array (.cons (j151) .nil)
+def j153 : Codec.Json := .array (.cons (.number (0)) (.cons (j139) (.cons (j108) .nil)))
+def j154 : Codec.Json := .array (.cons (j149) (.cons (j153) .nil))
+def j155 : Codec.Json := .array (.cons (j154) (.cons (j139) .nil))
+def j156 : Codec.Json := .array (.cons (j155) .nil)
+def j157 : Codec.Json := .array (.cons (j41) (.cons (j152) (.cons (j156) .nil)))
+def j158 : Codec.Json := .array (.cons (.number (0)) (.cons (j128) (.cons (j114) .nil)))
+def j159 : Codec.Json := .array (.cons (j158) .nil)
+def j160 : Codec.Json := .array (.cons (j159) .nil)
+def j161 : Codec.Json := .array (.cons (j5) (.cons (j3) (.cons (j6) (.cons (j8) (.cons (j125) (.cons (.number (3)) (.cons (j127) (.cons (j148) (.cons (j157) (.cons (j160) (.cons (j52) .nil)))))))))))
+def j162 : Codec.Json := .array (.cons (j161) (.cons (j4) .nil))
+def j163 : Codec.Json := .array (.cons (j162) .nil)
+def j164 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (0)) (.cons (j163) .nil)))
+def packet2 : Codec.Json × Int × Codec.Json := (j123, (-1), j164)
+end Hex.RCF.SelectedRootTests.SourceIdentityPackets
diff --git a/conformance/HexRCF/SourceIdentityPacket.lean b/conformance/HexRCF/SourceIdentityPacket.lean
new file mode 100644
index 0000000000..917dcf82a0
--- /dev/null
+++ b/conformance/HexRCF/SourceIdentityPacket.lean
@@ -0,0 +1,117 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+import HexRCF.SourceIdentityLiterals
+import HexRCF.SourceIdentityCases
+import HexRCF.RealCoefficients.SourceIdentityQuote
+import HexRCF.RealCoefficients.RootHeader
+import HexRCF.RealCoefficients.RootPrepare
+import HexRCF.RealCoefficients.RationalQuote
+open Lean Meta Qq Hex Hex.RealClosure Hex.SignDet Hex.RCF.RealCoefficients
+open Hex.RCF.SelectedRootTests Hex.RCF.SourceIdentityCases
+namespace Hex.RCF.SourceIdentityPacket
+open Hex.RCF.SelectedRootTests.SourceIdentityPackets
+set_option maxRecDepth 32768
+set_option maxHeartbeats 16000000
+
+theorem witness : atomWitness SquareTwo.polynomial SquareTwo.square := by decide +kernel
+theorem precision : (mahlerPrec SquareTwo.polynomial : Int) ≤ SquareTwo.square.prec := by decide +kernel
+
+theorem equation_value :
+ HexPolyTheory.Interpret.interpret Data.rational.value Data.rational.zero_iff
+ (ScalarPacket.key Data.base.codec packet0.1) =
+ LiteralSign.realPoly (ZPoly.toRatPoly SquareTwo.polynomial) := by
+ have parsed : ScalarPacket.key Data.base.codec packet0.1 =
+ embed (ZPoly.toRatPoly SquareTwo.polynomial) := by decide +kernel
+ rw [parsed]
+ exact embed_value _
+
+theorem enclosure_value :
+ HexPolyTheory.Interpret.interpret Data.rational.value Data.rational.zero_iff
+ (ScalarPacket.key Data.base.codec packet1.1) =
+ LiteralSign.realPoly (SourceIdentity.margin SquareTwo.square) := by
+ have parsed : ScalarPacket.key Data.base.codec packet1.1 =
+ embed (SourceIdentity.margin SquareTwo.square) := by decide +kernel
+ rw [parsed]
+ exact embed_value _
+
+theorem negative_value :
+ HexPolyTheory.Interpret.interpret Data.rational.value Data.rational.zero_iff
+ (ScalarPacket.key Data.base.codec packet2.1) =
+ LiteralSign.realPoly (SourceIdentity.margin negativeSquare) := by
+ have parsed : ScalarPacket.key Data.base.codec packet2.1 =
+ embed (SourceIdentity.margin negativeSquare) := by decide +kernel
+ rw [parsed]
+ exact embed_value _
+
+meta def inputs : MetaM (SourceIdentity.Anchor × SourceIdentity.Packets) := do
+ let anchor : SourceIdentity.Anchor := {
+ polynomial := mkConst ``SquareTwo.polynomial
+ square := mkConst ``SquareTwo.square
+ witness := mkConst ``witness
+ precision := mkConst ``precision
+ value := q(Real.sqrt 2)
+ selected := mkConst ``SquareTwo.square_selected_root }
+ let reader (packet : Expr) : MetaM Expr := do
+ let polynomial ← mkAppM ``Prod.fst #[packet]
+ let rest ← mkAppM ``Prod.snd #[packet]
+ let sign ← mkAppM ``Prod.fst #[rest]
+ let graph ← mkAppM ``Prod.snd #[rest]
+ mkAppM ``ScalarPacket.read #[mkConst ``Data.rational,q(Data.base.codec),
+ mkConst ``Data.native,polynomial,sign,graph]
+ let packets : SourceIdentity.Packets := {
+ equation := ← reader (mkConst ``packet0)
+ enclosure := ← reader (mkConst ``packet1)
+ equationValue := mkConst ``equation_value
+ enclosureValue := mkConst ``enclosure_value }
+ return (anchor,packets)
+
+meta def withParent
+ (consume : Expr → Expr → RootQuote.DecoderM → Hex.RealFormula.Reify.ReifyM RootQuote.Result) :
+ Hex.RealFormula.Reify.ReifyM RootQuote.Result := do
+ let decode : RootQuote.DecoderM := fun expression =>
+ liftM (RationalQuote.decoder (mkConst ``Data.registry) expression)
+ let some original ← unfoldDefinition? (mkConst ``Data.lowerRead)
+ | throwError "original root reader unavailable"
+ let header ← RootHeader.quoteWith original decode
+ let clean ← mkAppM ``Tower.Context.isClean #[mkConst ``Data.base]
+ let prepared ← RootPrepare.prepareWith header clean
+ let rootEq ← mkAppM ``Option.get_of_eq_some #[mkConst ``Data.lowerAccepted,header.root.proof]
+ let contextFn ← withLocalDeclD `root (← inferType (mkConst ``Data.lower)) fun root => do
+ mkLambdaFVars #[root] (← mkAppM ``Algebraic.Context.adjoin #[root,clean])
+ let contextEq ← mkAppM ``congrArg #[contextFn,rootEq]
+ let same ← mkEqTrans contextEq prepared.same
+ consume prepared.context same fun expression => do
+ if let some proof ← prepared.decoder expression then return some proof
+ decode expression
+
+meta def quoteSource (anchor : SourceIdentity.Anchor) (packets : SourceIdentity.Packets) :
+ Hex.RealFormula.Reify.ReifyM RootQuote.Result :=
+ withParent fun context same decode => do
+ let quoted ← SourceIdentity.quoteWith anchor packets context same decode
+ pure ⟨anchor.value,quoted.proof,quoted.usage⟩
+
+run_meta do
+ withoutExporting do
+ let (anchor,packets) ← inputs
+ let result ← RootQuote.runWith (quoteSource anchor packets)
+ let quoted ← match result with
+ | .ok result => pure result
+ | .error error => throwError "source identity quotation refused: {Hex.RealFormula.Reify.Error.toMessageData error}"
+ let target : Q(Prop) := q(Data.selectedReal = Real.sqrt 2)
+ let proof ← Hex.RCF.checkProof `selectedOriginal target (mkExpectedPropHint quoted.proof target)
+ withExporting (isExporting := true) do
+ addDecl (.thmDecl {
+ name := `Hex.RCF.SourceIdentityPacket.selected,levelParams := [],type := target,value := proof})
+ let axioms ← collectAxioms `Hex.RCF.SourceIdentityPacket.selected
+ unless axioms.all (fun name => [``propext,``Classical.choice,``Quot.sound].contains name) do
+ throwError "quoted source selection has inadmissible dependencies"
+ logInfo m!"quoted source selection proofNodes={quoted.usage.proofNodes}; axioms={axioms}"
+
+theorem coefficient : Data.original.value Data.alpha = Real.sqrt 2 := by
+ rw [← Data.generator_eq]
+ exact (Data.rational.root_generator (.base (BaseContext.rational Data.registry))
+ Data.lower Data.frozenFrame Data.frameEncoded).trans selected
+end Hex.RCF.SourceIdentityPacket
diff --git a/conformance/HexRCF/SourceIdentityProofs.lean b/conformance/HexRCF/SourceIdentityProofs.lean
new file mode 100644
index 0000000000..e2d04a7549
--- /dev/null
+++ b/conformance/HexRCF/SourceIdentityProofs.lean
@@ -0,0 +1,73 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+import HexRCF.SourceIdentityControls
+import HexRCF.SourceIdentityCases
+import HexRCF.RealCoefficients.ScalarPacket
+import HexRCF.ProofEvidence
+import HexRCF.SelectedRoot.KernelCheck
+import KernelReplay.AxiomClosure
+meta section
+open Lean Meta Hex.RealClosure Hex.RCF.RealCoefficients
+set_option maxRecDepth 32768
+set_option maxHeartbeats 12000000
+run_meta do
+ let roots := #[``Hex.RCF.SourceIdentityPacket.selected,``Hex.RCF.SourceIdentityPacket.coefficient,
+ ``Hex.RCF.SourceIdentityControls.negative_read,``Hex.RCF.SourceIdentityControls.negative_sign]
+ let axioms ← Algebraic.KernelReplay.AxiomClosure.collect roots
+ unless axioms.all (fun name => [``propext,``Classical.choice,``Quot.sound].contains name) do
+ throwError "quoted source identity has inadmissible dependencies"
+ let dependencies ← Hex.RCF.ProofEvidence.projectDependencies roots
+ for required in #[``SourceIdentity.identify,``SourceIdentity.observe,``SourceIdentity.select,
+ ``SourceIdentity.margin_eval,``RootQuote.option_eq,``ScalarPacket.fields,
+ ``ScalarPacket.restore,``ScalarPacket.read_restore,``Hex.RealClosure.Algebraic.Context.signPoly_spec] do
+ unless dependencies.contains required do throwError "quoted source omitted {required}"
+ for forbidden in #[``Hex.RCF.SourceIdentityCases.equationFact,
+ ``Hex.RCF.SourceIdentityCases.marginFact,``Hex.RCF.SourceIdentityCases.negativeMarginFact,
+ ``Hex.RCF.SourceIdentityCases.source_zero,``Hex.RCF.SourceIdentityCases.source_margin,
+ ``Hex.RCF.SourceIdentityCases.source_selected,``Hex.RCF.SourceIdentityCases.coefficient,
+ ``Hex.RCF.SourceIdentityCases.observed,``Hex.RCF.SelectedRootTests.Data.alpha_value,
+ ``Hex.RCF.SelectedRootTests.Data.selectedSqrt] do
+ if dependencies.contains forbidden then throwError "quoted source reused {forbidden}"
+ let selected ← Hex.RCF.ProofEvidence.projectDependencies #[``Hex.RCF.SourceIdentityPacket.selected]
+ for forbidden in #[``Hex.RCF.SelectedRootTests.Data.selectedFacts,
+ ``Hex.RCF.SelectedRootTests.Data.definingPoly,``Hex.RCF.SelectedRootTests.Data.lowerData] do
+ if selected.contains forbidden then throwError "quoted selection reused {forbidden}"
+ let names := (← (← getEnv).getLocalConstantInfos).map (·.name)
+ let modules := (← getEnv).header.moduleNames
+ let allowed := #[`HexRCF.SourceIdentityPacket,`HexRCF.SourceIdentityControls,`HexRCF.SourceIdentityLiterals,
+ `HexRCF.RealCoefficients.SourceIdentity,`HexRCF.RealCoefficients.SourceIdentityQuote,
+ `HexRCF.RealCoefficients.RootQuote,`HexRCF.RealCoefficients.ScalarPacket]
+ let mut theorems : Nat := 0
+ let mut definitions : Nat := 0
+ let mut traces : Nat := 0
+ for name in dependencies.toArray do
+ let some index := (← getEnv).getModuleIdxFor? name | continue
+ unless allowed.contains modules[index]! do continue
+ let declaration ← match ← getConstInfo name with
+ | .thmInfo info =>
+ theorems := theorems+1
+ pure (Declaration.thmDecl {info with name := ← mkFreshUserName `__treeBody})
+ | .defnInfo info =>
+ definitions := definitions+1
+ pure (Declaration.defnDecl {info with name := ← mkFreshUserName `__treeData})
+ | _ => continue
+ let options := (← getOptions).setBool `debug.skipKernelTC false
+ let environment := Kernel.enableDiag (Kernel.resetDiag (← getEnv)) true
+ let checked ← ofExceptKernelException <| environment.addDeclCore
+ (Core.getMaxHeartbeats options).toUSize (maxRecDepth.get options).toUSize
+ declaration none (doCheck := true)
+ let diagnostics := Kernel.getDiagnostics checked
+ unless diagnostics.enabled do throwError "quoted source identity diagnostics disabled"
+ if let some (producer,count) := Hex.RCF.SelectedRootTests.KernelCheck.violation? diagnostics
+ #[``ScalarPacket.build,``ScalarPacket.buildLiteral,``Algebraic.Element.codec,
+ ``Hex.SignDet.Descriptor.ofReplay?] then
+ throwError "quoted source identity reduced producer {producer}: {count}; body={name}"
+ if !diagnostics.unfoldCounter.isEmpty then traces := traces+1
+ unless theorems == 218 && definitions == 179 && traces == 385 do
+ throwError "quoted source identity inventory changed: {theorems}/{definitions}/{traces}"
+ unless (← (← getEnv).getLocalConstantInfos).map (·.name) == names do
+ throwError "quoted source identity audit retained copied declarations"
+ logInfo m!"quoted source identity actual bodies: {theorems} theorems/{definitions} definitions; nonempty traces={traces}; full axioms={axioms}"
diff --git a/conformance/HexRCF/SourceSelectionCases.lean b/conformance/HexRCF/SourceSelectionCases.lean
index a9195b3cf0..ba4d19a259 100644
--- a/conformance/HexRCF/SourceSelectionCases.lean
+++ b/conformance/HexRCF/SourceSelectionCases.lean
@@ -22,7 +22,11 @@ set_option maxRecDepth 32768 in
run_meta do
withOptions (fun options => debug.skipKernelTC.set (Elab.async.set options false) false) do
withExporting (isExporting := false) do
- let quoted ← match ← RootQuote.quote (mkConst ``reader) with
+ -- This literal regression measures quotation separately from the public default limit.
+ let basic : Hex.RealFormula.Reify.Config := {}
+ let config := {basic with ring := {basic.ring with budget :=
+ {basic.ring.budget with proofNodes := 2000000}}}
+ let quoted ← match ← RootQuote.quote (mkConst ``reader) (config := config) with
| .ok result => pure result
| .error error => throwError "source-selection root quotation: {Hex.RealFormula.Reify.Error.toMessageData error}"
logInfo m!"source-selection root quotation proofNodes={quoted.usage.proofNodes}"
diff --git a/conformance/HexRCF/SourceValuationConformance.lean b/conformance/HexRCF/SourceValuationConformance.lean
new file mode 100644
index 0000000000..ae3321b9d9
--- /dev/null
+++ b/conformance/HexRCF/SourceValuationConformance.lean
@@ -0,0 +1,90 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+import HexRCF.RealCoefficients.CellQuote
+import HexRCF.RealCoefficients.TowerCompile
+import HexRCF.RealCoefficients.FieldLiteral
+import HexRCF.SelectedRoot.Data
+
+open Lean Meta Qq Hex Hex.RCF.RealCoefficients
+open Hex.RCF.SelectedRootTests
+set_option maxRecDepth 32768
+set_option maxHeartbeats 8000000
+
+private meta def leaf (source : Expr) : Hex.RealFormula.Reify.ReifyM (Option TowerCompile.Term) := do
+ if source == q(Real.sqrt 2) then
+ return some ⟨mkConst ``Data.alpha,mkConst ``Data.alpha_value⟩
+ return none
+
+run_meta do
+ let targets : Array Expr := #[q(∀ x : ℝ, x^2 ≥ 0),
+ q(∀ x : ℝ, x^2 + Real.sqrt 2 > 0),
+ q(∀ x : ℝ, x^2 + x * (Real.sqrt 2 + 1) + (Real.sqrt 2 + 2) > 0)]
+ for i in List.finRange targets.size do
+ let target := targets[i]
+ let .ok source ← Reify.prepare target | throwError "valuation source did not prepare"
+ let .ok result ← RootQuote.runWith (do
+ let (coefficients,_) ← TowerCompile.prepareWith source (mkConst ``Data.original) leaf
+ let zero ← TowerCompile.compile (mkConst ``Data.original) leaf q((0 : ℝ))
+ let values ← FieldLiteral.finiteExpr (← inferType zero.expression)
+ (coefficients.map (·.expression)) zero.expression
+ let proof ← CellQuote.valuationWith source (mkConst ``Data.original)
+ values (coefficients.map (·.proof))
+ pure ⟨values,proof,(← get).budget.consumed⟩) {} source.usage
+ | throwError "ordered valuation proof was declined"
+ let name := Name.num `Hex.RCF.SourceValuationConformance.quoted i.val
+ addDecl (.thmDecl {name,levelParams := [],type := ← inferType result.proof,value := result.proof})
+ let axioms ← collectAxioms name
+ unless axioms.all (#[``propext,``Classical.choice,``Quot.sound].contains ·) do
+ throwError "source valuation has a forbidden axiom"
+ logInfo m!"source valuation coordinates={source.coefficients.size}; proofNodes={result.usage.proofNodes}"
+
+run_meta do
+ let .ok source ← Reify.prepare q(∀ x : ℝ,
+ x^2 + x * (Real.sqrt 2 + 1) + (Real.sqrt 2 + 2) > 0)
+ | throwError "permutation control did not prepare"
+ for mode in [0,1,2,3] do
+ let rejected ← try
+ let _ ← RootQuote.runWith (do
+ let (coefficients,_) ← TowerCompile.prepareWith source (mkConst ``Data.original) leaf
+ let zero ← TowerCompile.compile (mkConst ``Data.original) leaf q((0 : ℝ))
+ let entries := if mode == 0 then coefficients.reverse
+ else if mode == 3 then coefficients.extract 0 1 else coefficients
+ let proofs := if mode == 1 then (coefficients.map (·.proof)).reverse
+ else if mode == 2 then (coefficients.map (·.proof)).extract 0 1
+ else coefficients.map (·.proof)
+ let values ← FieldLiteral.finiteExpr (← inferType zero.expression)
+ (entries.map (·.expression)) zero.expression
+ let proof ← CellQuote.valuationWith source (mkConst ``Data.original) values proofs
+ pure ⟨values,proof,(← get).budget.consumed⟩) {} source.usage
+ pure false
+ catch _ => pure true
+ unless rejected do throwError "valuation accepted a swapped coordinate/proof or missing entry"
+ logInfo "swapped coordinates/proofs, missing entries and wrong coordinate counts rejected"
+
+run_meta do
+ let .ok source ← Reify.prepare q(∀ x : ℝ, x^2 + Real.sqrt 2 > 0)
+ | throwError "unresolved-coordinate source failed to prepare"
+ let domain ← mkAppM ``Fin #[mkNatLit source.coefficients.size]
+ let carrier ← mkAppM ``RealClosure.Tower.Context.Value #[mkConst ``Data.parent]
+ let values ← mkFreshExprMVar (← mkArrow domain carrier)
+ let names := (← (← getEnv).getLocalConstantInfos).map (·.name)
+ let rejected ← try
+ let _ ← RootQuote.runWith (do
+ let (coefficients,_) ← TowerCompile.prepareWith source (mkConst ``Data.original) leaf
+ let proof ← CellQuote.valuationWith source (mkConst ``Data.original) values
+ (coefficients.map (·.proof))
+ pure ⟨values,proof,(← get).budget.consumed⟩) {} source.usage
+ pure false
+ catch _ => pure true
+ unless rejected do throwError "unresolved source coordinates were accepted"
+ if ← values.mvarId!.isAssigned then throwError "valuation construction assigned caller coordinates"
+ unless (← (← getEnv).getLocalConstantInfos).map (·.name) == names do
+ throwError "failed valuation construction retained declarations"
+ logInfo "unresolved coordinates rejected without metavariable or declaration changes"
+
+namespace Hex.RCF.SourceValuationConformance
+theorem runFinished : True := trivial
+end Hex.RCF.SourceValuationConformance
diff --git a/conformance/HexRCF/SourceValuationProofs.lean b/conformance/HexRCF/SourceValuationProofs.lean
new file mode 100644
index 0000000000..4083b5c7e3
--- /dev/null
+++ b/conformance/HexRCF/SourceValuationProofs.lean
@@ -0,0 +1,48 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+import HexRCF.SourceValuationConformance
+import HexRCF.ProofEvidence
+import KernelReplay.AxiomClosure
+
+open Lean Meta Hex.RealClosure
+set_option maxRecDepth 32768
+set_option maxHeartbeats 8000000
+
+run_meta do
+ let roots := ((List.range 3).toArray.map
+ (Name.num `Hex.RCF.SourceValuationConformance.quoted)).push
+ ``Hex.RCF.SourceValuationConformance.runFinished
+ let axioms ← Algebraic.KernelReplay.AxiomClosure.collect roots
+ unless axioms == (#[``propext,``Classical.choice,``Quot.sound].qsort Name.lt) do
+ throwError "source valuation has an unexpected complete axiom closure"
+ let dependencies ← Hex.RCF.ProofEvidence.projectDependencies roots
+ for required in #[``Tower.Model.add,``Tower.Model.nat,
+ ``Hex.RCF.SelectedRootTests.Data.alpha_value] do
+ unless dependencies.contains required do
+ throwError "source valuation omitted its actual interpretation law {required}"
+ let before := (← (← getEnv).getLocalConstantInfos).map (·.name)
+ let modules := (← getEnv).header.moduleNames
+ let mut bodies : Nat := 0
+ let mut traces : Nat := 0
+ for name in dependencies.toArray do
+ let some index := (← getEnv).getModuleIdxFor? name | continue
+ unless modules[index]! == `HexRCF.SourceValuationConformance do continue
+ let .thmInfo info ← getConstInfo name | continue
+ bodies := bodies + 1
+ let declaration := Declaration.thmDecl {info with name := ← mkFreshUserName `__valuationBody}
+ let options := (← getOptions).setBool `debug.skipKernelTC false
+ let environment := Kernel.enableDiag (Kernel.resetDiag (← getEnv)) true
+ let checked ← ofExceptKernelException <| environment.addDeclCore
+ (Core.getMaxHeartbeats options).toUSize (maxRecDepth.get options).toUSize
+ declaration none (doCheck := true)
+ let diagnostics := Kernel.getDiagnostics checked
+ unless diagnostics.enabled do throwError "source valuation kernel diagnostics disabled"
+ if !diagnostics.unfoldCounter.isEmpty then traces := traces + 1
+ unless bodies == 14 && traces == 13 do
+ throwError "source valuation inventory changed: {bodies}/{traces}"
+ unless (← (← getEnv).getLocalConstantInfos).map (·.name) == before do
+ throwError "source valuation audit retained copied declarations"
+ logInfo m!"fresh source valuations: {bodies} actual theorem bodies; nonempty traces={traces}; full axioms={axioms}"
diff --git a/conformance/HexRCF/TowerCompileConformance.lean b/conformance/HexRCF/TowerCompileConformance.lean
new file mode 100644
index 0000000000..5b8a0af61b
--- /dev/null
+++ b/conformance/HexRCF/TowerCompileConformance.lean
@@ -0,0 +1,169 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+import HexRCF.RealCoefficients.TowerCompile
+import HexRCF.SelectedRoot.Data
+
+open Lean Meta Qq Hex Hex.RCF.RealCoefficients
+open Hex.RCF.SelectedRootTests
+
+set_option maxRecDepth 32768
+set_option maxHeartbeats 8000000
+
+private meta def leaf (source : Expr) : Hex.RealFormula.Reify.ReifyM (Option TowerCompile.Term) := do
+ if source == q(Real.sqrt 2) then
+ return some ⟨mkConst ``Data.alpha,mkConst ``Data.alpha_value⟩
+ return none
+
+private meta def action (source : Expr) : Hex.RealFormula.Reify.ReifyM RootQuote.Result := do
+ let term ← TowerCompile.compile (mkConst ``Data.original) leaf source
+ return ⟨term.expression,term.proof,(← get).budget.consumed⟩
+
+run_meta do
+ let sources : Array Expr := #[q((2 : ℝ)),q((-3 : ℝ)),q((1 / 7 : ℝ)),
+ q(((3 / 2 : ℚ) : ℝ)),q(Real.sqrt 2 + 3),q(Real.sqrt 2 - 1),
+ q((Real.sqrt 2 - 1)^3 / (Real.sqrt 2 + 1)),q((Real.sqrt 2)⁻¹),
+ q((Real.sqrt 2)^0)]
+ for i in List.finRange sources.size do
+ let source := sources[i]
+ let .ok result ← RootQuote.runWith (action source)
+ | throwError "tower arithmetic quotation declined a supported source"
+ let target ← mkEq (← mkAppM ``RealClosure.Tower.Model.value
+ #[mkConst ``Data.original,result.value]) source
+ unless ← isDefEq (← inferType result.proof) target do
+ throwError "tower arithmetic quotation changed its source"
+ let name := Name.num `Hex.RCF.TowerCompileConformance.quoted i.val
+ addDecl (.thmDecl {name,levelParams := [],type := target,value := result.proof})
+ let axioms ← collectAxioms name
+ unless axioms.all (#[``propext,``Classical.choice,``Quot.sound].contains ·) do
+ throwError "tower arithmetic quotation has a forbidden axiom"
+ logInfo m!"tower source {source}: proofNodes={result.usage.proofNodes}"
+
+run_meta do
+ let .ok _ ← RootQuote.runWith (do
+ let marker ← mkFreshExprMVar (mkConst ``Nat)
+ let declaration ← mkFreshUserName `declinedLeaf
+ let decline := fun (_ : Expr) => do
+ marker.mvarId!.assign (mkNatLit 42)
+ let _ ← mkAuxDefinition declaration (mkConst ``Nat) (mkNatLit 42) (compile := false)
+ pure (none : Option TowerCompile.Term)
+ let term ← TowerCompile.compile (mkConst ``Data.original) decline q((3 : ℝ))
+ if ← marker.mvarId!.isAssigned then throwError "declined leaf assigned caller metavariable"
+ if (← getEnv).contains declaration then throwError "declined leaf retained a declaration"
+ pure ⟨term.expression,term.proof,(← get).budget.consumed⟩)
+ | throwError "declining leaf unexpectedly rejected rational compilation"
+ logInfo "declining leaf restored metavariables and declarations inside the request"
+
+run_meta do
+ let before ← saveState
+ let rejected ← try
+ let _ ← RootQuote.runWith (do
+ let term ← TowerCompile.compile (mkConst ``Data.original)
+ (fun _ => pure (some ⟨mkConst ``Data.alpha,mkConst ``Data.alpha_value⟩)) q((0 : ℝ))
+ pure ⟨term.expression,term.proof,(← get).budget.consumed⟩)
+ pure false
+ catch _ => pure true
+ unless rejected do throwError "wrong source identity was accepted"
+ before.restore
+ let config : Hex.RealFormula.Reify.Config := {}
+ let config := {config with ring := {config.ring with budget :=
+ {config.ring.budget with proofNodes := 1}}}
+ let .error (.budget _) ← RootQuote.runWith (action q(Real.sqrt 2 + 1)) config
+ | throwError "tower source quotation did not preserve budget refusal"
+ logInfo "wrong source identity rejected and aggregate budget refusal retained"
+
+run_meta do
+ for original in #[q(∀ x : ℝ, x^2 + (Real.sqrt 2 + 1) / (Real.sqrt 2 - 1) > 0),
+ q(∀ x : ℝ, x^2 + x * ((Real.sqrt 2 + 1) / (Real.sqrt 2 - 1)) +
+ (Real.sqrt 2 + 2) / (Real.sqrt 2 + 3) > 0),
+ q(∀ x : ℝ, x^2 + 0 * (1 / (Real.sqrt 2 - Real.sqrt 2)) ≥ 0)] do
+ let .ok source ← Reify.prepare original
+ | throwError "source preparation rejected the ordered-inventory control"
+ unless source.divisors.size > 0 do throwError "source preparation lost the original guard"
+ let .ok _ ← RootQuote.runWith (do
+ let (coefficients,divisors) ← TowerCompile.prepareWith source (mkConst ``Data.original) leaf
+ unless coefficients.size == source.coefficients.size && divisors.size == source.divisors.size do
+ throwError "tower preparation changed an original inventory"
+ for i in List.finRange source.coefficients.size do
+ let some coefficient := coefficients[i.val]? | throwError "missing compiled coefficient"
+ let target ← mkEq (← mkAppM ``RealClosure.Tower.Model.value
+ #[mkConst ``Data.original,coefficient.expression]) source.coefficients[i]
+ unless ← isDefEq (← inferType coefficient.proof) target do
+ throwError "tower preparation changed original coefficient order"
+ for i in List.finRange source.divisors.size do
+ let some divisor := divisors[i.val]? | throwError "missing compiled divisor"
+ let target ← mkEq (← mkAppM ``RealClosure.Tower.Model.value
+ #[mkConst ``Data.original,divisor.expression]) source.divisors[i]
+ unless ← isDefEq (← inferType divisor.proof) target do
+ throwError "tower preparation changed original divisor order"
+ logInfo m!"ordered tower inventory: {coefficients.size} coefficients, {divisors.size} original guards"
+ let some divisor := divisors[0]? | throwError "missing original divisor"
+ pure ⟨divisor.expression,divisor.proof,(← get).budget.consumed⟩) {} source.usage
+ | throwError "tower preparation declined an authenticated source inventory"
+ let .error (.internal _) ← RootQuote.runWith (do
+ let _ ← TowerCompile.prepareWith source (mkConst ``Data.original) leaf
+ throwError "unexpectedly reset source accounting")
+ | throwError "tower preparation accepted a reset source budget"
+ logInfo "original guard inventories survive zero multiplication; reset source budgets rejected"
+
+run_meta do
+ let marker ← mkFreshExprMVar (mkConst ``Nat)
+ let declaration ← mkFreshUserName `failedTowerLeaf
+ let failed ← try
+ let _ ← RootQuote.runWith (do
+ let term ← TowerCompile.compile (mkConst ``Data.original) (fun _ => do
+ marker.mvarId!.assign (mkNatLit 42)
+ let _ ← mkAuxDefinition declaration (mkConst ``Nat) (mkNatLit 42) (compile := false)
+ throwError "deliberate leaf failure") q(Real.sqrt 2)
+ pure ⟨term.expression,term.proof,(← get).budget.consumed⟩)
+ pure false
+ catch _ => pure true
+ unless failed do throwError "leaf failure was swallowed"
+ if ← marker.mvarId!.isAssigned then throwError "failed leaf retained a metavariable assignment"
+ if (← getEnv).contains declaration then throwError "failed leaf retained a declaration"
+ let swapped ← try
+ let _ ← RootQuote.runWith (do
+ let term ← TowerCompile.compile (mkConst ``Data.rational) leaf q(Real.sqrt 2)
+ pure ⟨term.expression,term.proof,(← get).budget.consumed⟩)
+ pure false
+ catch _ => pure true
+ unless swapped do throwError "coefficient proof accepted a different context model"
+ let .error (.unsupported _ _) ← RootQuote.runWith (action q(Real.sin (0 : ℝ)))
+ | throwError "arbitrary closed function entered coefficient arithmetic"
+ logInfo "terminal leaf failure restored state; swapped model and unsupported function rejected"
+
+run_meta do
+ let .ok source ← Reify.prepare q(∀ x : ℝ, x^2 ≥ 0)
+ | throwError "empty-inventory source preparation failed"
+ unless source.coefficients.isEmpty && source.divisors.isEmpty do
+ throwError "rational empty-inventory control acquired a coefficient"
+ let rejected ← try
+ let _ ← RootQuote.runWith (do
+ let _ ← TowerCompile.prepareWith source (mkNatLit 0) leaf
+ let zero := mkNatLit 0
+ pure ⟨zero,← mkEqRefl zero,(← get).budget.consumed⟩) {} source.usage
+ pure false
+ catch _ => pure true
+ unless rejected do throwError "empty inventories bypassed model validation"
+ logInfo "empty coefficient/divisor inventories still validate the retained real model"
+
+run_meta do
+ let .ok source ← Reify.prepare q(∀ x : ℝ, x^2 + Real.sqrt 2 > 0)
+ | throwError "transferred source-budget control failed to prepare"
+ unless source.usage.sourceNodes > 0 do throwError "source-budget control recorded no work"
+ let config : Hex.RealFormula.Reify.Config := {}
+ let config := {config with ring := {config.ring with budget :=
+ {config.ring.budget with sourceNodes := source.usage.sourceNodes - 1}}}
+ let .error (.budget exhausted) ← RootQuote.runWith (do
+ let (coefficients,_) ← TowerCompile.prepareWith source (mkConst ``Data.original) leaf
+ let some term := coefficients[0]? | throwError "source-budget control lost its coefficient"
+ pure ⟨term.expression,term.proof,(← get).budget.consumed⟩) config source.usage
+ | throwError "transferred source usage exceeded its new request's limit"
+ unless exhausted.dimension == .sourceNodes do throwError "wrong transferred-budget refusal"
+ logInfo "transferred source usage is checked against every enclosing limit"
+
+namespace Hex.RCF.TowerCompileConformance
+theorem runFinished : True := trivial
+end Hex.RCF.TowerCompileConformance
diff --git a/conformance/HexRCF/TowerCompileProofs.lean b/conformance/HexRCF/TowerCompileProofs.lean
new file mode 100644
index 0000000000..78c41b71bd
--- /dev/null
+++ b/conformance/HexRCF/TowerCompileProofs.lean
@@ -0,0 +1,50 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+import HexRCF.TowerCompileConformance
+import HexRCF.ProofEvidence
+import KernelReplay.AxiomClosure
+
+open Lean Meta Hex.RealClosure Hex.RCF.RealCoefficients
+set_option maxRecDepth 32768
+set_option maxHeartbeats 8000000
+
+run_meta do
+ let roots := (List.range 9).toArray.map
+ (Name.num `Hex.RCF.TowerCompileConformance.quoted)
+ let roots := roots ++ #[``TowerCompile.pow_value,``Hex.RCF.TowerCompileConformance.runFinished]
+ let axioms ← Algebraic.KernelReplay.AxiomClosure.collect roots
+ unless axioms == (#[``propext,``Classical.choice,``Quot.sound].qsort Name.lt) do
+ throwError "tower coefficient quotation has an unexpected complete axiom closure"
+ let dependencies ← Hex.RCF.ProofEvidence.projectDependencies roots
+ for required in #[``Tower.Model.nat,``Tower.Model.add,``Tower.Model.sub,
+ ``Tower.Model.mul,``Tower.Model.neg,``Tower.Model.inv,``Tower.Model.div,
+ ``TowerCompile.pow_value,``Hex.RCF.SelectedRootTests.Data.alpha_value] do
+ unless dependencies.contains required do
+ throwError "tower coefficient quotation omitted its actual interpretation law {required}"
+ let before := (← (← getEnv).getLocalConstantInfos).map (·.name)
+ let modules := (← getEnv).header.moduleNames
+ let allowed := #[`HexRCF.TowerCompileConformance,`HexRCF.RealCoefficients.TowerCompile]
+ let mut bodies : Nat := 0
+ let mut traces : Nat := 0
+ for name in dependencies.toArray do
+ let some index := (← getEnv).getModuleIdxFor? name | continue
+ unless allowed.contains modules[index]! do continue
+ let .thmInfo info ← getConstInfo name | continue
+ bodies := bodies + 1
+ let declaration := Declaration.thmDecl {info with name := ← mkFreshUserName `__towerBody}
+ let options := (← getOptions).setBool `debug.skipKernelTC false
+ let environment := Kernel.enableDiag (Kernel.resetDiag (← getEnv)) true
+ let checked ← ofExceptKernelException <| environment.addDeclCore
+ (Core.getMaxHeartbeats options).toUSize (maxRecDepth.get options).toUSize
+ declaration none (doCheck := true)
+ let diagnostics := Kernel.getDiagnostics checked
+ unless diagnostics.enabled do throwError "tower quotation kernel diagnostics disabled"
+ if !diagnostics.unfoldCounter.isEmpty then traces := traces + 1
+ unless (← (← getEnv).getLocalConstantInfos).map (·.name) == before do
+ throwError "fresh tower quotation audit retained copied declarations"
+ unless bodies == 36 && traces == 35 do
+ throwError "fresh tower quotation inventory changed: {bodies}/{traces}"
+ logInfo m!"fresh tower quotation: {bodies} actual theorem bodies; nonempty traces={traces}; full axioms={axioms}"
diff --git a/conformance/HexRCF/TreeQuote.lean b/conformance/HexRCF/TreeQuote.lean
new file mode 100644
index 0000000000..5bccf1757f
--- /dev/null
+++ b/conformance/HexRCF/TreeQuote.lean
@@ -0,0 +1,76 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+module
+public import HexRCF.TreeQuoteData
+public meta import HexRCF.RealCoefficients.RootQuote
+public section
+open Lean Meta Hex.RCF.RealCoefficients
+namespace Hex.RCF.TreeQuote
+set_option maxHeartbeats 2000000
+set_option maxRecDepth 32768
+
+run_meta do
+ for (reader,result,name) in #[(``leafTrue,7,`Hex.RCF.TreeQuote.leafAccepted),
+ (``leafFalse,29,`Hex.RCF.TreeQuote.leafRefused),
+ (``splitTrue,31,`Hex.RCF.TreeQuote.splitAccepted),
+ (``splitFalse,37,`Hex.RCF.TreeQuote.splitRefused)] do
+ let .ok quoted ← RootQuote.quote (mkConst reader)
+ | throwError "public replay equation quotation refused {reader}"
+ let target ← mkEq (← mkAppM ``Except.toOption #[mkConst reader])
+ (← mkAppM ``Option.some #[mkNatLit result])
+ let proof ← Hex.RCF.checkProof name target (mkExpectedPropHint quoted.proof target)
+ addDecl (.thmDecl {name,levelParams := [],type := target,value := proof})
+ logInfo m!"{reader}: proofNodes={quoted.usage.proofNodes}"
+private meta def restored (before : MetavarContext) (sentinel : Expr)
+ (names : Option (Array Name) := none) : MetaM Unit := do
+ let after ← getMCtx
+ unless !(← sentinel.mvarId!.isAssigned) && before.mvarCounter == after.mvarCounter &&
+ before.lmvarCounter == after.lmvarCounter && before.eAssignment.toList == after.eAssignment.toList &&
+ before.lAssignment.toList == after.lAssignment.toList &&
+ before.decls.toList.map Prod.fst == after.decls.toList.map Prod.fst do
+ throwError "replay quotation retained caller metavariables"
+ if let some names := names then
+ unless (← (← getEnv).getLocalConstantInfos).map (·.name) == names do
+ throwError "failed replay quotation retained declarations"
+run_meta do
+ let sentinel ← mkFreshExprMVar (mkConst ``Nat)
+ let before ← getMCtx
+ let action : Hex.RealFormula.Reify.ReifyM RootQuote.Result := do
+ sentinel.mvarId!.assign (mkNatLit 41)
+ RootQuote.quoteWith (mkConst ``leafTrue)
+ let .ok result ← RootQuote.runWith action
+ | throwError "leaf quotation baseline refused"
+ unless result.usage.proofNodes == 101056 do
+ throwError "leaf quotation budget changed: {result.usage.proofNodes}"
+ restored before sentinel
+ let basic : Hex.RealFormula.Reify.Config := {}
+ let exactConfig := {basic with ring := {basic.ring with budget :=
+ {basic.ring.budget with proofNodes := result.usage.proofNodes}}}
+ let .ok exactResult ← RootQuote.runWith action exactConfig
+ | throwError "leaf quotation rejected exact budget"
+ unless exactResult.usage == result.usage do throwError "leaf quotation accounting changed"
+ restored before sentinel
+ let names := (← (← getEnv).getLocalConstantInfos).map (·.name)
+ let small := {exactConfig with ring := {exactConfig.ring with budget :=
+ {exactConfig.ring.budget with proofNodes := result.usage.proofNodes-1}}}
+ let .error (.budget exhausted) ← RootQuote.runWith action small
+ | throwError "leaf quotation accepted below budget"
+ unless exhausted.dimension == .proofNodes do throwError "leaf quotation exhausted wrong resource"
+ restored before sentinel (some names)
+ logInfo "public replay leaf exact/below budget and caller rollback checked"
+run_meta do
+ let sentinel ← mkFreshExprMVar (mkConst ``Nat)
+ let before ← getMCtx
+ let names := (← (← getEnv).getLocalConstantInfos).map (·.name)
+ for rejected in [``wrongContext,``swappedChildren] do
+ let .error (.providerFailure (.invalidProviderEvidence _ _) _) ← RootQuote.runWith (do
+ sentinel.mvarId!.assign (mkNatLit 43)
+ RootQuote.quoteWith (mkConst rejected))
+ | throwError "quotation accepted a rejected replay reader"
+ restored before sentinel (some names)
+ logInfo "wrong-context/swapped-child reader failures and caller rollback checked"
+
+end Hex.RCF.TreeQuote
diff --git a/conformance/HexRCF/TreeQuoteData.lean b/conformance/HexRCF/TreeQuoteData.lean
new file mode 100644
index 0000000000..1af309f6fe
--- /dev/null
+++ b/conformance/HexRCF/TreeQuoteData.lean
@@ -0,0 +1,37 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+module
+public import HexSignDet.Conformance
+public import Mathlib.Algebra.Field.Rat
+public section
+namespace Hex.RCF.TreeQuote
+open Hex Hex.SignDet
+
+@[expose] def leafTrue : Except String Nat :=
+ if (Replay.leaf Conformance.literalNode).check Sturm.orderSign 7
+ Sturm.Fixtures.p (.finite (-2)) (.finite 2) [] = true then .ok 7 else .error "leaf refused"
+@[expose] def leafFalse : Except String Nat :=
+ if (Replay.leaf Conformance.literalNode).check Sturm.orderSign 8
+ Sturm.Fixtures.p (.finite (-2)) (.finite 2) [] = true then .error "wrong context accepted" else .ok 29
+@[expose] def splitTrue : Except String Nat :=
+ if Conformance.fullReplay.check Sturm.orderSign 7 Conformance.singletonRaw.head
+ Conformance.singletonRaw.lower Conformance.singletonRaw.upper
+ (Conformance.singletonRaw.full []).queries = true then .ok 31 else .error "split refused"
+@[expose] def splitFalse : Except String Nat :=
+ if (Replay.split Conformance.fullNode (.leaf Conformance.derivativeNode)
+ (.leaf Conformance.firstNode)).check Sturm.orderSign 7 Conformance.singletonRaw.head
+ Conformance.singletonRaw.lower Conformance.singletonRaw.upper
+ (Conformance.singletonRaw.full []).queries = true then .error "swapped children accepted" else .ok 37
+@[expose] def wrongContext : Except String Nat :=
+ if (Replay.leaf Conformance.literalNode).check Sturm.orderSign 8
+ Sturm.Fixtures.p (.finite (-2)) (.finite 2) [] = true then .ok 7 else .error "wrong context"
+@[expose] def swappedChildren : Except String Nat :=
+ if (Replay.split Conformance.fullNode (.leaf Conformance.derivativeNode)
+ (.leaf Conformance.firstNode)).check Sturm.orderSign 7 Conformance.singletonRaw.head
+ Conformance.singletonRaw.lower Conformance.singletonRaw.upper
+ (Conformance.singletonRaw.full []).queries = true then .ok 31 else .error "swapped children"
+
+end Hex.RCF.TreeQuote
diff --git a/conformance/HexRCF/TreeQuoteProofs.lean b/conformance/HexRCF/TreeQuoteProofs.lean
new file mode 100644
index 0000000000..32f007edac
--- /dev/null
+++ b/conformance/HexRCF/TreeQuoteProofs.lean
@@ -0,0 +1,60 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+import HexRCF.TreeQuotePublic
+import HexRCF.RealCoefficients.ScalarPacket
+import HexRCF.ProofEvidence
+import HexRCF.SelectedRoot.KernelCheck
+import KernelReplay.AxiomClosure
+meta section
+open Lean Meta Hex.RealClosure Hex.RCF.RealCoefficients
+set_option maxRecDepth 32768
+set_option maxHeartbeats 12000000
+run_meta do
+ let roots := #[``Hex.RCF.TreeQuotePublic.leaf_true,``Hex.RCF.TreeQuotePublic.leaf_false,
+ ``Hex.RCF.TreeQuotePublic.split_true,``Hex.RCF.TreeQuotePublic.split_false]
+ let axioms ← Algebraic.KernelReplay.AxiomClosure.collect roots
+ unless axioms.all (fun name => [``propext,``Classical.choice,``Quot.sound].contains name) do
+ throwError "tree quotation has inadmissible dependencies"
+ let dependencies ← Hex.RCF.ProofEvidence.projectDependencies roots
+ for required in #[``Hex.SignDet.Replay.check.eq_1,``Hex.SignDet.Replay.check.eq_2] do
+ unless dependencies.contains required do throwError "public quotation omitted {required}"
+ for forbidden in #[``Hex.SignDet.Conformance.literal_accepts,``Hex.SignDet.Conformance.full_kernel] do
+ if dependencies.contains forbidden then throwError "public quotation reused fixture proof {forbidden}"
+ let names := (← (← getEnv).getLocalConstantInfos).map (·.name)
+ let modules := (← getEnv).header.moduleNames
+ let allowed := #[`HexRCF.TreeQuote,`HexRCF.TreeQuoteData,
+ `HexRCF.TreeQuotePublic,`HexRCF.RealCoefficients.RootQuote]
+ let mut theorems : Nat := 0
+ let mut definitions : Nat := 0
+ let mut traces : Nat := 0
+ for name in dependencies.toArray do
+ let some index := (← getEnv).getModuleIdxFor? name | continue
+ unless allowed.contains modules[index]! do continue
+ let declaration ← match ← getConstInfo name with
+ | .thmInfo info =>
+ theorems := theorems+1
+ pure (Declaration.thmDecl {info with name := ← mkFreshUserName `__treeBody})
+ | .defnInfo info =>
+ definitions := definitions+1
+ pure (Declaration.defnDecl {info with name := ← mkFreshUserName `__treeData})
+ | _ => continue
+ let options := (← getOptions).setBool `debug.skipKernelTC false
+ let environment := Kernel.enableDiag (Kernel.resetDiag (← getEnv)) true
+ let checked ← ofExceptKernelException <| environment.addDeclCore
+ (Core.getMaxHeartbeats options).toUSize (maxRecDepth.get options).toUSize
+ declaration none (doCheck := true)
+ let diagnostics := Kernel.getDiagnostics checked
+ unless diagnostics.enabled do throwError "tree quotation diagnostics disabled"
+ if let some (producer,count) := Hex.RCF.SelectedRootTests.KernelCheck.violation? diagnostics
+ #[``ScalarPacket.build,``ScalarPacket.buildLiteral,``Algebraic.Element.codec,
+ ``Hex.SignDet.Descriptor.ofReplay?] then
+ throwError "tree quotation reduced producer {producer}: {count}; body={name}"
+ if !diagnostics.unfoldCounter.isEmpty then traces := traces+1
+ unless theorems == 254 && definitions == 4 && traces == 246 do
+ throwError "public replay quotation inventory changed: {theorems}/{definitions}/{traces}"
+ unless (← (← getEnv).getLocalConstantInfos).map (·.name) == names do
+ throwError "tree quotation audit retained copied declarations"
+ logInfo m!"public replay quotation actual bodies: {theorems} theorems/{definitions} definitions; nonempty traces={traces}; full axioms={axioms}"
diff --git a/conformance/HexRCF/TreeQuotePublic.lean b/conformance/HexRCF/TreeQuotePublic.lean
new file mode 100644
index 0000000000..9621e3e092
--- /dev/null
+++ b/conformance/HexRCF/TreeQuotePublic.lean
@@ -0,0 +1,23 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+module
+public import HexRCF.TreeQuote
+public section
+namespace Hex.RCF.TreeQuotePublic
+
+theorem leaf_true : Hex.RCF.TreeQuote.leafTrue.toOption = some 7 :=
+ Hex.RCF.TreeQuote.leafAccepted
+
+theorem leaf_false : Hex.RCF.TreeQuote.leafFalse.toOption = some 29 :=
+ Hex.RCF.TreeQuote.leafRefused
+
+theorem split_true : Hex.RCF.TreeQuote.splitTrue.toOption = some 31 :=
+ Hex.RCF.TreeQuote.splitAccepted
+
+theorem split_false : Hex.RCF.TreeQuote.splitFalse.toOption = some 37 :=
+ Hex.RCF.TreeQuote.splitRefused
+
+end Hex.RCF.TreeQuotePublic
diff --git a/lakefile.lean b/lakefile.lean
index f2d72fc687..d1338b6c7d 100644
--- a/lakefile.lean
+++ b/lakefile.lean
@@ -697,7 +697,7 @@ lean_lib HexRCFRealFormula where
@[default_target]
lean_lib HexRCFRealCoefficients where
srcDir := "adapters"
- globs := #[`HexRCF.RealCoefficients.FieldSelection, `HexRCF.RealCoefficients.SourceSelection, `HexRCF.RealCoefficients.RootQuote, `HexRCF.RealCoefficients.RationalQuote, `HexRCF.RealCoefficients.ScalarQuote, `HexRCF.RealCoefficients.ScalarPacketQuote,
+ globs := #[`HexRCF.RealCoefficients.TowerCompile, `HexRCF.RealCoefficients.FieldSelection, `HexRCF.RealCoefficients.SourceSelection, `HexRCF.RealCoefficients.RootQuote, `HexRCF.RealCoefficients.RowQuote, `HexRCF.RealCoefficients.RowPacketQuote, `HexRCF.RealCoefficients.RootHeader, `HexRCF.RealCoefficients.RootPrepare, `HexRCF.RealCoefficients.RootContext, `HexRCF.RealCoefficients.SignatureQuote, `HexRCF.RealCoefficients.RationalQuote, `HexRCF.RealCoefficients.ScalarQuote, `HexRCF.RealCoefficients.ScalarPacketQuote,
`HexRCF.RealCoefficients.RowOperations, `HexRCF.RealCoefficients.CellReuse, `HexRCF.RealCoefficients.CellPackets,
`HexRCF.RealCoefficients.CellOperations, `HexRCF.RealCoefficients.CompleteReplay, `HexRCF.RealCoefficients.RootTableCodec, `HexRCF.RealCoefficients.RootCodec, `HexRCF.RealCoefficients.CellFootprint, `HexRCF.RealCoefficients.CellEncode, `HexRCF.RealCoefficients.CellCodec, `HexRCF.RealCoefficients.SectorEncode, `HexRCF.RealCoefficients.CellPacketRead, `HexRCF.RealCoefficients.CellPacketConvert,
`HexRCF.RealCoefficients.CellPacketTransport, `HexRCF.RealCoefficients.RepresentationCarrier, `HexRCF.RealCoefficients.RootCells, `HexRCF.RealCoefficients.RepresentationCells, `HexRCF.RealCoefficients.BoundarySigns, `HexRCF.RealCoefficients.SectorSamples, `HexRCF.RealCoefficients.PointRows, `HexRCF.RealCoefficients.CellReplay, `HexRCF.RealCoefficients.RowReplay, `HexRCF.RealCoefficients.SectorReplay, `HexRCF.RealCoefficients.CellRead, `HexRCF.RealCoefficients.CellBuild, `HexRCF.RealCoefficients.CellDiscover, `HexRCF.RealCoefficients.CellAlignment, `HexRCF.RealCoefficients.SectorRequest, `HexRCF.RealCoefficients.CellProgress, `HexRCF.RealCoefficients.CellDecision, `HexRCF.RealCoefficients.CellExecution, `HexRCF.RealCoefficients.NumberFieldCells, `HexRCF.RealCoefficients.RowEncode, `HexRCF.RealCoefficients.CellQuote, `HexRCF.RealCoefficients, `HexRCF.RealCoefficients.Reify,
@@ -711,6 +711,8 @@ lean_lib HexRCFRealCoefficients where
`HexRCF.RealCoefficients.IntervalSign, `HexRCF.RealCoefficients.SquareRoot,
`HexRCF.RealCoefficients.CommonTactic,
`HexRCF.RealCoefficients.CommonPresentation, `HexRCF.RealCoefficients.SourceIdentity,
+ `HexRCF.RealCoefficients.SourceBuild,
+ `HexRCF.RealCoefficients.SourceIdentityQuote,
`HexRCF.RealCoefficients.FieldSpecialize,
`HexRCF.RealCoefficients.RepresentationSpecialize,
`HexRCF.RealCoefficients.Samples, `HexRCF.RealCoefficients.Gather, `HexRCF.RealCoefficients.GatherCells, `HexRCF.RealCoefficients.AlgebraicCells,
@@ -1338,13 +1340,42 @@ lean_lib HexConformance where
srcDir := "conformance"
globs := Array.filter (fun g => !isParkedGlob g) <| #[
`HexPosDef.Conformance, `HexArith.Conformance, `HexArith.CrossCheck, `HexBerlekamp.Conformance, `HexBerlekampZassenhaus.Conformance, `HexBerlekampZassenhaus.CrossCheck, `HexBerlekampZassenhausTheory.Conformance, `HexConway.Conformance, `HexGF2.Conformance, `HexGF2.CrossCheck, `HexGF2.FastCheck, `HexGFq.Conformance, `HexGFq.CrossCheck, `HexGFqField.Conformance, `HexGFqRing.Conformance, `HexGramSchmidt.Conformance, `HexGraphIso.Conformance, `HexHensel.Conformance, `HexHensel.CrossCheck, `HexInterval.Conformance, `HexIntervalTheory.IntervalConformance, `HexInterval.CenterConformance, `HexInterval.ScaleConformance, `HexInterval.PropagatorConformance, `HexInterval.ScopeConformance, `HexInterval.StructuralMatcherConformance, `HexInterval.MatcherSchedulerConformance, `HexInterval.NestedBranchConformance, `HexInterval.StructureViewConformance, `HexInterval.PolicyConformance, `HexInterval.PolicyFrontierConformance, `HexInterval.PolicyDriverConformance, `HexInterval.PackageRegistryConformance, `HexInterval.DyadicIntervalConformance, `HexInterval.DyadicRulesConformance, `HexInterval.PayloadArenaConformance, `HexInterval.PayloadSessionConformance, `HexInterval.PolicySessionConformance, `HexInterval.PolicyFunctionConformance, `HexInterval.SemanticReplayConformance, `HexInterval.ChronologicalReplayConformance, `HexInterval.GenericInstanceReconstructionConformance, `HexInterval.ProofEmitterConformance, `HexInterval.TraceReplayConformance, `HexInterval.SinTenIntervalConformance, `HexIntervalTheory.DyadicIntervalConformance, `HexIntervalTheory.CenteredConformance, `HexIntervalTheory.SineSignConformance, `HexIntervalTheory.SineProofConformance, `HexIntervalTheory.SineTacticConformance, `HexIntervalTheory.ProofRegistryConformance, `HexIntervalTheory.ExpSignConformance, `HexIntervalTheory.ReluConformance, `HexIntervalTheory.RefuteConformance, `HexIntervalTheory.PntLogTableConformance, `HexIntervalTheory.PntNestedLogConformance, `HexIntervalTheory.PntExpTailConformance, `HexIntervalTheory.PntTable12Conformance, `HexIntervalTheory.PntTable12OrdinaryConformance, `HexIntervalAlgebraic.PolynomialDispatchConformance, `HexIntervalTheory.PntTable12LogConformance, `HexIntervalTheory.PntFks2ShardConformance, `HexIntervalTheory.LogTablePrecisionConformance, `HexIntervalTheory.IntegralCanaryConformance, `HexIntervalTheory.PntBKLNWExpConformance, `HexIntervalTheory.PntBKLNWPowConformance, `HexIntervalTheory.PntPrimeLogSmallConformance, `HexIntervalTheory.PntDusartExpConformance, `HexIntervalTheory.SinTenConformance, `HexIntervalTheory.SinTenIntervalConformance, `HexIntervalTheory.CosBillionConformance, `HexHermite.Conformance, `HexLLL.Conformance, `HexMatrix.Conformance, `HexRealFormula.Conformance, `HexRealFormulaTheory.Conformance, `HexRealFormulaTheory.Arithmetic, `HexMvPolyFixtures, `HexMvPoly.Conformance, `HexMvPolyTheory.Conformance, `HexSparsePolyFixtures, `HexSparsePoly.Conformance, `HexRowReduce.Conformance, `HexDeterminant.Conformance, `HexDeterminantalIdealFixtures, `HexDeterminantalIdeal.Conformance, `HexDeterminant.Carriers, `HexBareiss.Fixtures, `HexBareiss.Conformance, `HexModularMatrix.Fixtures, `HexModularMatrix.Conformance, `HexDet.Conformance, `HexDet.Carriers, `HexCharPoly.Fixtures, `HexCharPoly.Carriers, `HexCharPoly.Conformance, `HexModArith.Conformance, `HexModArith.FastCheck, `HexModular.Conformance, `HexPolyZGcd.Conformance, `HexMvGcd.Conformance, `HexNumberField.Conformance, `HexNumberFieldTower.Conformance, `HexPoly.Conformance, `HexPrimality.CertificateProducer, `HexPrimality.ConstructionConformance, `HexPrimality.ConstructionRetry, `HexPrimality.ConstructionRegistration, `HexPrimality.Curve25519Replay, `HexPrimality.Curve448Replay, `HexPrimality.SqufofConformance, `HexPrimality.Conformance, `HexECPP.NativeConformance, `HexECPP.Conformance, `HexECPP.Fixture17, `HexECPP.PolicyProbe, `HexECPP.Fixture65, `HexECPP.Fixture256, `HexECPP.Fixture512, `HexECPP.PariFixtures, `HexECPP.ImportConformance, `HexECPPTheory.NativeConformance, `HexECPPTheory.NativeFixtures, `HexECPPTheory.Conformance, `HexECPPTheory.CompactFixtures, `HexECPPTheory.CompactReject, `HexECPPTheory.PariProcess, `HexECPPTheory.Reject, `HexECPPTheory.HasseAudit, `HexECPPTheory.SoundnessAudit, `HexPrimalityTheory.Conformance, `HexPrimalityTheoryConformance.OptIn, `HexPolyFp.Conformance, `HexPolyZ.Conformance, `HexRCF.Conformance, `HexRealRoots.Conformance, `HexRealRootsTheory.Conformance, `HexResultant.Conformance, `HexRoots.Conformance].map Glob.one ++
- #[`HexRCF.DependentQuoteData, `HexRCF.DependentQuote, `HexRCF.DependentQuoteProofs,
+ #[`HexRCF.FrozenSignatureConformance, `HexRCF.FrozenSignatureProofs, `HexRCF.RootContextConformance, `HexRCF.RootContextProofs,
+ `HexRCF.RootPreparePacket, `HexRCF.RootPreparePublic,
+ `HexRCF.RootPrepareProofs, `HexRCF.RootPrepareControls,
+ `HexRCF.RootHeaderPacket, `HexRCF.RootHeaderValues, `HexRCF.RootHeaderControls,
+ `HexRCF.RootHeaderProofs, `HexRCF.RootHeaderBudget, `HexRCF.SignatureQuoteConformance,
+ `HexRCF.DependentQuoteData, `HexRCF.DependentQuote, `HexRCF.DependentQuoteProofs,
+ `HexRCF.ProofFunctionPublic,
+ `HexRCF.QuotientQuoteData, `HexRCF.QuotientQuote, `HexRCF.QuotientQuotePublic,
+ `HexRCF.QuotientQuoteProofs,
+ `HexRCF.RowQuoteData, `HexRCF.RowQuoteCases, `HexRCF.RowQuoteDepth, `HexRCF.RowQuoteProofs,
+ `HexRCF.ReplayBoundary, `HexRCF.ReplayBoundaryProofs,
+ `HexRCF.ReplayHelpers, `HexRCF.ReplayHelperProofs,
+ `HexRCF.CellQuoteStages, `HexRCF.CellQuoteStageProofs,
+ `HexRCF.CellFinishCases, `HexRCF.CellFinishProofs,
+ `HexRCF.CellSourceQuote, `HexRCF.CellSourceProofs,
+ `HexRCF.RowPacketControls,
+ `HexRCF.SourceIdentityLiterals, `HexRCF.SourceIdentityPacket,
+ `HexRCF.SourceIdentityControls, `HexRCF.SourceIdentityProofs,
+ `HexRCF.SourceIdentityEmit,
+ `HexRCF.SourceBuild,
+ `HexRCF.EnumeratedSource.PositiveData0, `HexRCF.EnumeratedSource.Positive,
+ `HexRCF.EnumeratedSource.NegativeData0, `HexRCF.EnumeratedSource.Negative,
+ `HexRCF.EnumeratedSource.CubicData0, `HexRCF.EnumeratedSource.Cubic,
+ `HexRCF.EnumeratedSource.Inputs, `HexRCF.EnumeratedSource.Quote,
+ `HexRCF.EnumeratedSource.Proofs,
+ `HexRCF.BoundedSource,
+ `HexRCF.BoundedSource.Positive, `HexRCF.BoundedSource.Negative,
+ `HexRCF.BoundedSource.Cubic, `HexRCF.BoundedSource.Inputs,
+ `HexRCF.BoundedSource.Quote, `HexRCF.BoundedSource.Proofs,
+ `HexRCF.TreeQuoteData, `HexRCF.TreeQuote, `HexRCF.TreeQuotePublic, `HexRCF.TreeQuoteProofs,
`HexRCF.DependentScalarQuote, `HexRCF.DependentScalarProofs,
`HexRCF.PublicSignPacket, `HexRCF.PublicSignPacketValues, `HexRCF.PublicSignPacketControls, `HexRCF.PublicSignPacketProofs,
`HexRCF.RootQuoteData, `HexRCF.RootQuoteCases,
`HexRCF.RootQuoteSource, `HexRCF.RootQuoteConformance, `HexRCF.RationalQuoteData, `HexRCF.RationalQuoteCases, `HexRCF.RationalQuoteConformance, `HexRCF.ScalarQuoteCases, `HexRCF.ScalarQuoteConformance, `HexRCF.ScalarQuotePublic, `HexRCF.SharedQuoteCases, `HexRCF.SharedQuoteConformance, `HexRCF.SharedQuoteCallbacks, `HexRCF.SharedQuoteCallbackProofs, `HexRCF.SignPacketQuote, `HexRCF.SignPacketProofs, `HexRCF.RecursiveScalarQuote, `HexRCF.RecursiveScalarProofs, `HexRCF.RecursiveScalarPublic, `HexRCF.PolynomialQuotePublic,
`HexRCF.RootTableQuote.Cases, `HexRCF.RootTableQuote.Input, `HexRCF.RootTableQuote.Table, `HexRCF.RootTableQuote.Semantics, `HexRCF.RootTableQuote.Conformance, `HexRCF.RootTableQuote.Runtime,
- `HexRCF.SourceIdentityKernel, `HexRCF.SourceIdentityCases, `HexRCF.MaximalCoefficientsKernel, `HexRCF.MaximalCoefficientsConformance, `HexRCF.MaximalCoefficients, `HexRCF.CellReplay.AssembledKernel, `HexRCF.CellReplay.Assembled, `HexRCF.CellReplay.OperationsPublic, `HexRCF.CellReplay.OperationsKernel, `HexRCF.CellReplay.Operations, `HexRCF.CellReplay.Algebraic.Emit, `HexRCF.CellReplay.Algebraic.MutationData0, `HexRCF.CellReplay.Algebraic.Mutations, `HexRCF.CellReplay.Algebraic.Refusals, `HexRCF.CellReplay.Algebraic.Guards, `HexRCF.CellReplay.Algebraic.Meaning, `HexRCF.CellReplay.Algebraic.Boolean, `HexRCF.CellReplay.Algebraic.BooleanSources, `HexRCF.CellReplay.Algebraic.BooleanBinding, `HexRCF.CellReplay.Algebraic.BooleanQuoted, `HexRCF.CellBuildConformance, `HexRCF.CellDiscoverLinear, `HexRCF.CellDiscoverAlgebraic, `HexRCF.CellDiscoverCases, `HexRCF.CellDiscoverProofs, `HexRCF.CellRequestedConformance, `HexRCF.CellDecisionProofs, `HexRCF.CellCodecProofs, `HexRCF.CellExecutionProofs, `HexRCF.NumberFieldCellsConformance, `HexRCF.GatherCellsConformance, `HexRCF.RealModelConformance, `HexRCF.AlgebraicPreparationCases, `HexRCF.AlgebraicPreparationConformance, `HexRCF.SourceAcceptancePublic, `HexRCF.AlgebraicCellsConformance, `HexRCF.CellReplay.Algebraic.Canonical, `HexRCF.CellReplay.Algebraic.Check, `HexRCF.CellReplay.Algebraic.Convert, `HexRCF.CellReplay.Algebraic.Inputs, `HexRCF.CellReplay.Algebraic.LiteralData0, `HexRCF.CellReplay.Algebraic.LiteralData1, `HexRCF.CellReplay.Algebraic.Literals, `HexRCF.CellReplay.Algebraic.Quote, `HexRCF.CellReplay.Algebraic.Quoted, `HexRCF.CellReplay.Algebraic.CompleteQuote, `HexRCF.CellReplay.Algebraic.CompleteQuoted, `HexRCF.CellReplay.Algebraic.Radical, `HexRCF.CellReplay.Algebraic.Read, `HexRCF.CellReplay.Algebraic.Records, `HexRCF.CellReplay.Algebraic.ScalarData0, `HexRCF.CellReplay.Algebraic.ScalarData1, `HexRCF.CellReplay.Algebraic.Scalars, `HexRCF.CellReplay.Algebraic.Schema, `HexRCF.CellReplay.Algebraic.Sections, `HexPolyDet.Conformance, `HexRank.Conformance, `HexGenericRank.Conformance, `HexGenericRank.Fixtures, `HexRowReduce.FieldFixtures, `HexRealFormulaTheory.ReifierConformance, `HexRCF.RealFormulaConformance, `HexRCF.RealCoefficientsConformance, `HexRCF.AlgebraicProgress, `HexRCF.IsolationProgress, `HexRCF.RadicalProgress, `HexRCF.ProductionProgress, `HexRCF.FieldRootsConformance, `HexRCF.CertificationInputs, `HexRCF.RationalSources, `HexRCF.ProofEvidence, `HexRCF.CheckedConversions, `HexRCF.ReplayModes, `HexRCF.CarrierModes, `HexRCF.SignIndex, `HexRCF.PreparedCoefficients, `HexRCF.FiniteReplay, `HexRCF.FiniteSignsConformance, `HexRCF.CellReplay.OutsideLiterals, `HexRCF.CellReplay.Zero, `HexRCF.CellReplay.ZeroLiterals, `HexRCF.CellReplay.Valuation, `HexRCF.CellReplay.ModuleCheck, `HexRCF.CellReplay.Schema, `HexRCF.CellReplay.Check, `HexRCF.CellReplay.Ordinary, `HexRCF.CellReplay.Quote, `HexRCF.CellReplay.Controls, `HexRCF.CellReplay.Quoted, `HexRCF.CellReplay.Refusals, `HexRCF.CellReplay.Emit, `HexRCF.CellReplay.LiteralData0, `HexRCF.CellReplay.Literals, `HexRCF.CellReplay.MutationData0, `HexRCF.CellReplay.Mutations, `HexRCF.FiniteMatrix.Binding, `HexRCF.FiniteMatrix.Guards.Binding, `HexRCF.FiniteMatrix.Guards.Quotient.Binding, `HexRCF.FiniteMatrix.Guards.Quotient.Controls, `HexRCF.FiniteMatrix.Guards.Quotient.Emit, `HexRCF.FiniteMatrix.Guards.Quotient.Literals, `HexRCF.FiniteMatrix.Guards.Quotient.Ordinary, `HexRCF.FiniteMatrix.Guards.Quotient.Quote, `HexRCF.FiniteMatrix.Guards.Quotient.Reader, `HexRCF.FiniteMatrix.Guards.Quotient.Records, `HexRCF.FiniteMatrix.Guards.Quotient.Source, `HexRCF.FiniteMatrix.Guards.Controls, `HexRCF.FiniteMatrix.Guards.Data, `HexRCF.FiniteMatrix.Guards.Domains, `HexRCF.FiniteMatrix.Guards.Emit, `HexRCF.FiniteMatrix.Guards.LiteralData0, `HexRCF.FiniteMatrix.Guards.Literals, `HexRCF.FiniteMatrix.Guards.Meaning, `HexRCF.FiniteMatrix.Guards.MutationData0, `HexRCF.FiniteMatrix.Guards.Mutations, `HexRCF.FiniteMatrix.Guards.Ordinary, `HexRCF.FiniteMatrix.Guards.Quote, `HexRCF.FiniteMatrix.Guards.Read, `HexRCF.FiniteMatrix.Guards.Records, `HexRCF.FiniteMatrix.Guards.Refusals, `HexRCF.FiniteMatrix.Guards.Schema, `HexRCF.FiniteMatrix.Data, `HexRCF.FiniteMatrix.Emit, `HexRCF.FiniteMatrix.Inputs, `HexRCF.FiniteMatrix.KernelControls, `HexRCF.FiniteMatrix.LiteralData0, `HexRCF.FiniteMatrix.LiteralData1, `HexRCF.FiniteMatrix.LiteralData2, `HexRCF.FiniteMatrix.LiteralData3, `HexRCF.FiniteMatrix.LiteralData4, `HexRCF.FiniteMatrix.LiteralData5, `HexRCF.FiniteMatrix.Literals, `HexRCF.FiniteMatrix.ModuleCheck, `HexRCF.FiniteMatrix.Ordinary, `HexRCF.FiniteMatrix.Packings, `HexRCF.FiniteMatrix.Quote, `HexRCF.FiniteMatrix.Controls, `HexRCF.FiniteMatrix.Refusals, `HexRCF.FiniteMatrix.Read, `HexRCF.FiniteMatrix.Restore, `HexRCF.FiniteMatrix.Schema, `HexRCF.FiniteMatrix.Selected, `HexRCF.FiniteMatrix.Semantics, `HexRCF.FiniteMatrix.Signs, `HexRCF.TowerSamples, `HexRCF.Samples, `HexRCF.RealizationData, `HexRCF.Realization, `HexRCF.NumberField, `HexRCF.Gather, `HexRCF.GatherCatalog, `HexRCF.RegisteredGatherConformance, `HexRCF.GeneratorWindowInputs, `HexRCF.GeneratorWindow, `HexRCF.CertificationProofs, `HexRCF.SuppliedIrreducible, `HexRCF.SuppliedIrreducibleProofs, `HexRCF.SuppliedBudget, `HexRCF.NativeFormulaConformance, `HexRCF.NativeSpecializeConformance, `HexRCF.NativeSamplesConformance, `HexRCF.NativeSampleModelConformance, `HexRCF.NativeSampleModelLiterals, `HexRCF.NativeSourcesConformance, `HexRCF.NativeSelectionLiterals, `HexRCF.NativeSelectionConformance, `HexRCF.NativeSelectionOrdinaryConformance, `HexRCF.SourceSelectionCases, `HexRCF.SourceSelectionNegativeLiterals, `HexRCF.SourceSelectionNegative, `HexRCF.SourceSelectionConformance, `HexRCF.SourceSelectionNative, `HexRCF.SourceSelectionProofs, `HexRCF.SourceSelectionKernel, `HexRCF.SourceSelectionPublic, `HexRCF.FieldSelectionConformance, `HexRCF.NativeSelectionOrderedConformance, `HexRCF.SectionReplayConformance, `HexRCF.SectionProduceConformance, `HexRCF.SectionOrdinaryConformance, `HexRCF.PointReplayConformance, `HexRCF.PointProduceConformance, `HexRCF.PointOrdinaryConformance, `HexRCF.RootReplayLiterals, `HexRCF.RootReplayConformance, `HexRCF.RootReplayOrdinaryConformance, `HexRCF.NestedRootLiterals, `HexRCF.NestedRootProduceConformance, `HexRCF.NestedRootOrdinaryConformance, `HexRCF.RootTransportData, `HexRCF.RootTransportLiterals, `HexRCF.RootTransportConformance, `HexRCF.RootTransportOrdinaryConformance, `HexRCF.NestedTransport.Frame, `HexRCF.NestedTransport.Context, `HexRCF.NestedTransport.Map, `HexRCF.NestedTransport.Conversion, `HexRCF.NestedTransport.Fields, `HexRCF.NestedTransport.Restore, `HexRCF.NestedTransport.Predecessor, `HexRCF.NestedTransport.Facts, `HexRCF.NestedTransport.Constants, `HexRCF.NestedTransport.Operations, `HexRCF.NestedTransport.RootRead, `HexRCF.NestedTransport.Read, `HexRCF.NestedTransport.Model, `HexRCF.NestedTransport.Source, `HexRCF.NestedTransport.Ordinary, `HexRCF.NestedTransport.Controls, `HexRCF.NestedTransport.Literals, `HexRCF.NestedTransport.EndpointLiterals, `HexRCF.NestedTransport.SignLiterals, `HexRCF.NestedTransport.SignData, `HexRCF.TotalAlgebraicProofs, `HexRCF.AlgebraicDivision, `HexRCF.NormalizedCoefficients, `HexRCF.NormalizedInputs, `HexRCF.RegisteredConstants, `HexRCF.NamedConstants, `HexRCF.NamedConstantProofs, `HexRCF.MixedConstants, `HexRCF.CoarseConstants, `HexRCF.RealCoefficientTactic, `HexRCF.RealCoefficientCommonField, `HexRCF.CommonFieldPresentation, `HexRCF.RootAliasesConformance, `HexRCF.RationalRoots, `HexRCF.AlgebraicRoots, `HexRCF.FormulaConformance, `HexRCF.LiteralSignConformance, `HexRCF.FieldSpecializeConformance, `HexRCF.SignDetFieldProofs, `HexRCF.AdmissionConformance, `HexRCF.IsolationConformance].map Glob.one
+ `HexRCF.SourceIdentityKernel, `HexRCF.SourceIdentityCases, `HexRCF.MaximalCoefficientsKernel, `HexRCF.MaximalCoefficientsConformance, `HexRCF.MaximalCoefficients, `HexRCF.CellReplay.AssembledKernel, `HexRCF.CellReplay.Assembled, `HexRCF.CellReplay.OperationsPublic, `HexRCF.CellReplay.OperationsKernel, `HexRCF.CellReplay.Operations, `HexRCF.CellReplay.Algebraic.Emit, `HexRCF.CellReplay.Algebraic.MutationData0, `HexRCF.CellReplay.Algebraic.Mutations, `HexRCF.CellReplay.Algebraic.Refusals, `HexRCF.CellReplay.Algebraic.Guards, `HexRCF.CellReplay.Algebraic.Meaning, `HexRCF.CellReplay.Algebraic.Boolean, `HexRCF.CellReplay.Algebraic.BooleanSources, `HexRCF.CellReplay.Algebraic.BooleanBinding, `HexRCF.CellReplay.Algebraic.BooleanQuoted, `HexRCF.CellBuildConformance, `HexRCF.CellDiscoverLinear, `HexRCF.CellDiscoverAlgebraic, `HexRCF.CellDiscoverCases, `HexRCF.CellDiscoverProofs, `HexRCF.CellRequestedConformance, `HexRCF.CellDecisionProofs, `HexRCF.CellCodecProofs, `HexRCF.CellExecutionProofs, `HexRCF.NumberFieldCellsConformance, `HexRCF.GatherCellsConformance, `HexRCF.RealModelConformance, `HexRCF.AlgebraicPreparationCases, `HexRCF.SourceValuationConformance, `HexRCF.SourceValuationProofs, `HexRCF.TowerCompileConformance, `HexRCF.TowerCompileProofs, `HexRCF.AlgebraicPreparationConformance, `HexRCF.SourceAcceptancePublic, `HexRCF.AlgebraicCellsConformance, `HexRCF.CellReplay.Algebraic.Canonical, `HexRCF.CellReplay.Algebraic.Check, `HexRCF.CellReplay.Algebraic.Convert, `HexRCF.CellReplay.Algebraic.Inputs, `HexRCF.CellReplay.Algebraic.LiteralData0, `HexRCF.CellReplay.Algebraic.LiteralData1, `HexRCF.CellReplay.Algebraic.Literals, `HexRCF.CellReplay.Algebraic.Quote, `HexRCF.CellReplay.Algebraic.Quoted, `HexRCF.CellReplay.Algebraic.CompleteQuote, `HexRCF.CellReplay.Algebraic.CompleteQuoted, `HexRCF.CellReplay.Algebraic.Radical, `HexRCF.CellReplay.Algebraic.Read, `HexRCF.CellReplay.Algebraic.Records, `HexRCF.CellReplay.Algebraic.ScalarData0, `HexRCF.CellReplay.Algebraic.ScalarData1, `HexRCF.CellReplay.Algebraic.Scalars, `HexRCF.CellReplay.Algebraic.Schema, `HexRCF.CellReplay.Algebraic.Sections, `HexPolyDet.Conformance, `HexRank.Conformance, `HexGenericRank.Conformance, `HexGenericRank.Fixtures, `HexRowReduce.FieldFixtures, `HexRealFormulaTheory.ReifierConformance, `HexRCF.RealFormulaConformance, `HexRCF.RealCoefficientsConformance, `HexRCF.AlgebraicProgress, `HexRCF.IsolationProgress, `HexRCF.RadicalProgress, `HexRCF.ProductionProgress, `HexRCF.FieldRootsConformance, `HexRCF.CertificationInputs, `HexRCF.RationalSources, `HexRCF.ProofEvidence, `HexRCF.CheckedConversions, `HexRCF.ReplayModes, `HexRCF.CarrierModes, `HexRCF.SignIndex, `HexRCF.PreparedCoefficients, `HexRCF.FiniteReplay, `HexRCF.FiniteSignsConformance, `HexRCF.CellReplay.OutsideLiterals, `HexRCF.CellReplay.Zero, `HexRCF.CellReplay.ZeroLiterals, `HexRCF.CellReplay.Valuation, `HexRCF.CellReplay.ModuleCheck, `HexRCF.CellReplay.Schema, `HexRCF.CellReplay.Check, `HexRCF.CellReplay.Ordinary, `HexRCF.CellReplay.Quote, `HexRCF.CellReplay.Controls, `HexRCF.CellReplay.Quoted, `HexRCF.CellReplay.Refusals, `HexRCF.CellReplay.Emit, `HexRCF.CellReplay.LiteralData0, `HexRCF.CellReplay.Literals, `HexRCF.CellReplay.MutationData0, `HexRCF.CellReplay.Mutations, `HexRCF.FiniteMatrix.Binding, `HexRCF.FiniteMatrix.Guards.Binding, `HexRCF.FiniteMatrix.Guards.Quotient.Binding, `HexRCF.FiniteMatrix.Guards.Quotient.Controls, `HexRCF.FiniteMatrix.Guards.Quotient.Emit, `HexRCF.FiniteMatrix.Guards.Quotient.Literals, `HexRCF.FiniteMatrix.Guards.Quotient.Ordinary, `HexRCF.FiniteMatrix.Guards.Quotient.Quote, `HexRCF.FiniteMatrix.Guards.Quotient.Reader, `HexRCF.FiniteMatrix.Guards.Quotient.Records, `HexRCF.FiniteMatrix.Guards.Quotient.Source, `HexRCF.FiniteMatrix.Guards.Controls, `HexRCF.FiniteMatrix.Guards.Data, `HexRCF.FiniteMatrix.Guards.Domains, `HexRCF.FiniteMatrix.Guards.Emit, `HexRCF.FiniteMatrix.Guards.LiteralData0, `HexRCF.FiniteMatrix.Guards.Literals, `HexRCF.FiniteMatrix.Guards.Meaning, `HexRCF.FiniteMatrix.Guards.MutationData0, `HexRCF.FiniteMatrix.Guards.Mutations, `HexRCF.FiniteMatrix.Guards.Ordinary, `HexRCF.FiniteMatrix.Guards.Quote, `HexRCF.FiniteMatrix.Guards.Read, `HexRCF.FiniteMatrix.Guards.Records, `HexRCF.FiniteMatrix.Guards.Refusals, `HexRCF.FiniteMatrix.Guards.Schema, `HexRCF.FiniteMatrix.Data, `HexRCF.FiniteMatrix.Emit, `HexRCF.FiniteMatrix.Inputs, `HexRCF.FiniteMatrix.KernelControls, `HexRCF.FiniteMatrix.LiteralData0, `HexRCF.FiniteMatrix.LiteralData1, `HexRCF.FiniteMatrix.LiteralData2, `HexRCF.FiniteMatrix.LiteralData3, `HexRCF.FiniteMatrix.LiteralData4, `HexRCF.FiniteMatrix.LiteralData5, `HexRCF.FiniteMatrix.Literals, `HexRCF.FiniteMatrix.ModuleCheck, `HexRCF.FiniteMatrix.Ordinary, `HexRCF.FiniteMatrix.Packings, `HexRCF.FiniteMatrix.Quote, `HexRCF.FiniteMatrix.Controls, `HexRCF.FiniteMatrix.Refusals, `HexRCF.FiniteMatrix.Read, `HexRCF.FiniteMatrix.Restore, `HexRCF.FiniteMatrix.Schema, `HexRCF.FiniteMatrix.Selected, `HexRCF.FiniteMatrix.Semantics, `HexRCF.FiniteMatrix.Signs, `HexRCF.TowerSamples, `HexRCF.Samples, `HexRCF.RealizationData, `HexRCF.Realization, `HexRCF.NumberField, `HexRCF.Gather, `HexRCF.GatherCatalog, `HexRCF.RegisteredGatherConformance, `HexRCF.GeneratorWindowInputs, `HexRCF.GeneratorWindow, `HexRCF.CertificationProofs, `HexRCF.SuppliedIrreducible, `HexRCF.SuppliedIrreducibleProofs, `HexRCF.SuppliedBudget, `HexRCF.NativeFormulaConformance, `HexRCF.NativeSpecializeConformance, `HexRCF.NativeSamplesConformance, `HexRCF.NativeSampleModelConformance, `HexRCF.NativeSampleModelLiterals, `HexRCF.NativeSourcesConformance, `HexRCF.NativeSelectionLiterals, `HexRCF.NativeSelectionConformance, `HexRCF.NativeSelectionOrdinaryConformance, `HexRCF.SourceSelectionCases, `HexRCF.SourceSelectionNegativeLiterals, `HexRCF.SourceSelectionNegative, `HexRCF.SourceSelectionConformance, `HexRCF.SourceSelectionNative, `HexRCF.SourceSelectionProofs, `HexRCF.SourceSelectionKernel, `HexRCF.SourceSelectionPublic, `HexRCF.FieldSelectionConformance, `HexRCF.NativeSelectionOrderedConformance, `HexRCF.SectionReplayConformance, `HexRCF.SectionProduceConformance, `HexRCF.SectionOrdinaryConformance, `HexRCF.PointReplayConformance, `HexRCF.PointProduceConformance, `HexRCF.PointOrdinaryConformance, `HexRCF.RootReplayLiterals, `HexRCF.RootReplayConformance, `HexRCF.RootReplayOrdinaryConformance, `HexRCF.NestedRootLiterals, `HexRCF.NestedRootProduceConformance, `HexRCF.NestedRootOrdinaryConformance, `HexRCF.RootTransportData, `HexRCF.RootTransportLiterals, `HexRCF.RootTransportConformance, `HexRCF.RootTransportOrdinaryConformance, `HexRCF.NestedTransport.Frame, `HexRCF.NestedTransport.Context, `HexRCF.NestedTransport.Map, `HexRCF.NestedTransport.Conversion, `HexRCF.NestedTransport.Fields, `HexRCF.NestedTransport.Restore, `HexRCF.NestedTransport.Predecessor, `HexRCF.NestedTransport.Facts, `HexRCF.NestedTransport.Constants, `HexRCF.NestedTransport.Operations, `HexRCF.NestedTransport.RootRead, `HexRCF.NestedTransport.Read, `HexRCF.NestedTransport.Model, `HexRCF.NestedTransport.Source, `HexRCF.NestedTransport.Ordinary, `HexRCF.NestedTransport.Controls, `HexRCF.NestedTransport.Literals, `HexRCF.NestedTransport.EndpointLiterals, `HexRCF.NestedTransport.SignLiterals, `HexRCF.NestedTransport.SignData, `HexRCF.TotalAlgebraicProofs, `HexRCF.AlgebraicDivision, `HexRCF.NormalizedCoefficients, `HexRCF.NormalizedInputs, `HexRCF.RegisteredConstants, `HexRCF.NamedConstants, `HexRCF.NamedConstantProofs, `HexRCF.MixedConstants, `HexRCF.CoarseConstants, `HexRCF.RealCoefficientTactic, `HexRCF.RealCoefficientCommonField, `HexRCF.CommonFieldPresentation, `HexRCF.RootAliasesConformance, `HexRCF.RationalRoots, `HexRCF.AlgebraicRoots, `HexRCF.FormulaConformance, `HexRCF.LiteralSignConformance, `HexRCF.FieldSpecializeConformance, `HexRCF.SignDetFieldProofs, `HexRCF.AdmissionConformance, `HexRCF.IsolationConformance].map Glob.one
++ #[
`HexRCF.SelectedRoot.Packing, `HexRCF.SelectedRoot.PackingData,
@@ -1563,6 +1594,7 @@ lean_lib HexReleaseTests where
`HexRCF.DecisionTests,
`HexRCF.ReifyTests,
`HexRCF.HandlerTests.Support, `HexRCF.HandlerTests.Async,
+ `HexRCF.HandlerTests.Admission,
`HexRCF.HandlerTests,
`HexRCF.LintTests]
-- a name array mapped through Glob.one: an array literal this long is
diff --git a/reports/data/hexrcf-admission/Admission.lean.pending b/reports/data/hexrcf-admission/Admission.lean.pending
new file mode 100644
index 0000000000..3587f3105a
--- /dev/null
+++ b/reports/data/hexrcf-admission/Admission.lean.pending
@@ -0,0 +1,75 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+
+module
+
+public import HexRCF.Tactic
+
+public section
+
+open Lean Meta
+namespace Hex.RCF.AdmissionTests
+opaque hidden : Nat := 13
+inductive Link where
+ | nil
+ | cons (tail : Link)
+private meta def reference (expression : Expr) : MetaM Bool := do
+ let expression ← instantiateMVars expression
+ if expression.hasExprMVar then return false
+ for name in expression.getUsedConstants do
+ for axiomName in ← collectAxioms name do
+ unless [``propext,``Classical.choice,``Quot.sound].contains axiomName do return false
+ return true
+run_meta do
+ withoutModifyingEnv do
+ let mut previous := mkConst ``hidden
+ let mut expressions := #[previous,mkConst ``Link,mkConst ``Link.rec,
+ mkConst ``Quot.mk [.zero],mkConst ``Classical.choice [.zero],
+ mkConst ``sorryAx [.zero],mkConst ``sorryAx [.succ .zero]]
+ for i in [:64] do
+ let value ← mkAppM ``Nat.add #[previous,previous]
+ let name := mkPrivateName (← getEnv) (← mkFreshUserName `diamond)
+ previous ← mkAuxDefinition name (mkConst ``Nat) value (compile := false)
+ if i % 8 == 0 then expressions := expressions.push previous
+ expressions := expressions.push (← mkAppM ``Nat.add #[previous,previous])
+ let value ← mkAppM ``Nat.add #[previous,mkNatLit 1]
+ let left ← mkAuxDefinition (mkPrivateName (← getEnv) (← mkFreshUserName `left))
+ (mkConst ``Nat) value (compile := false)
+ let right ← mkAuxDefinition (mkPrivateName (← getEnv) (← mkFreshUserName `right))
+ (mkConst ``Nat) value (compile := false)
+ expressions := expressions.push (← mkAppM ``Nat.add #[left,right])
+ expressions := expressions.push (← mkFreshExprMVar (mkConst ``True))
+ let forbidden := mkConst ``sorryAx [.zero]
+ expressions := expressions.push (mkApp (mkLambda `unused .default (← inferType forbidden)
+ (mkConst ``True.intro)) forbidden)
+ for expression in expressions do
+ let expected ← reference expression
+ let actual ← try
+ Hex.RCF.checkAxioms `forestProbe expression
+ pure true
+ catch _ => pure false
+ unless expected == actual do
+ throwError "forest and authoritative admission policies disagree: {expression}"
+ logInfo m!"forest/reference agree on {expressions.size} imported/local/opaque/inductive/shared/forbidden/unresolved cases"
+-- Reuse an identical declaration name across rolled-back environments. A
+-- previous successful check must not mask a later forbidden dependency, and
+-- a failed check must not poison a later valid declaration with that name.
+run_meta do
+ let reused := Name.mkSimple "__rcfForestEnvironmentProbe"
+ for forbidden in #[false,true,false] do
+ withoutModifyingEnv do
+ let value ← if forbidden then mkSorry (mkConst ``Nat) false else pure (mkNatLit 3)
+ let root ← mkAuxDefinition reused (mkConst ``Nat) value (compile := false)
+ let shared ← mkAppM ``Nat.add #[root,root]
+ let expected ← reference shared
+ let actual ← try
+ Hex.RCF.checkAxioms `forestEnvironment shared
+ pure true
+ catch _ => pure false
+ unless expected == !forbidden && actual == expected do
+ throwError "admission retained results across an environment rollback"
+ logInfo "forest admission follows all three rolled-back environments"
+end Hex.RCF.AdmissionTests
diff --git a/reports/data/hexrcf-admission/ForestAudit.lean.txt b/reports/data/hexrcf-admission/ForestAudit.lean.txt
new file mode 100644
index 0000000000..b483600b5e
--- /dev/null
+++ b/reports/data/hexrcf-admission/ForestAudit.lean.txt
@@ -0,0 +1,78 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+import CellSourceCost
+import HexRCF.RealCoefficients.CellBuild
+import HexRCF.ProofEvidence
+import HexRCF.SelectedRoot.KernelCheck
+import KernelReplay.AxiomClosure
+meta section
+open Lean Meta Hex.RealClosure Hex.RCF.RealCoefficients
+set_option maxRecDepth 32768
+set_option maxHeartbeats 12000000
+run_meta do
+ let roots := #[``Hex.RCF.CellSourceCost.checked,``Hex.RCF.CellSourceCost.source]
+ let axioms ← Algebraic.KernelReplay.AxiomClosure.collect roots
+ unless axioms.all (fun name => [``propext,``Classical.choice,``Quot.sound].contains name) do
+ throwError "fresh complete source has inadmissible dependencies"
+ let dependencies ← Hex.RCF.ProofEvidence.projectDependencies roots
+ for required in #[``Hex.RCF.SourceIdentityPacket.coefficient,
+ ``SourceIdentity.identify,``SourceIdentity.observe,``SourceIdentity.select,
+ ``RowQuote.read_eq,``Hex.SignDet.Dag.selectedSigns_memo,
+ ``CompleteReplay.check_sound,``CellOperations.check_of_parts,
+ ``CellOperations.readCells_of_parts,``CellRead.collectWith_eq,``CellOperations.check_eq,
+ ``RootQuote.read_eq,``Hex.SignDet.Replay.check.eq_1,``Hex.MvPoly.termsList,
+ ``RowQuote.values_cast,``RowQuote.values_restore,
+ ``RowQuote.values_retarget,``RowQuote.value_eq] do
+ unless dependencies.contains required do throwError "fresh complete source omitted {required}"
+ for forbidden in #[``CellReplayTests.Algebraic.Schema.coefficient,
+ ``Hex.RCF.SelectedRootTests.Data.alpha_value,``Hex.RCF.SelectedRootTests.Data.selectedSqrt,
+ ``Hex.RCF.SourceIdentityCases.source_selected,``Hex.RCF.SourceIdentityCases.coefficient,
+ ``Hex.RCF.SourceIdentityCases.equationFact,``Hex.RCF.SourceIdentityCases.marginFact,
+ ``CellReplayTests.Operations.accepted,``CellReplayTests.Operations.checked,
+ ``CellReplayTests.Operations.source,``CellReplayTests.Algebraic.CompleteQuote.checked,
+ ``CellReplayTests.Algebraic.CompleteQuote.source,``CellReplayTests.Algebraic.Read.accepted,
+ ``CellReplayTests.Algebraic.Canonical.evidence,``CellReplayTests.Algebraic.Canonical.cert,
+ ``CellBuild.build,``ScalarPacket.build,``ScalarPacket.buildLiteral] do
+ if dependencies.contains forbidden then throwError "fresh complete source reused {forbidden}"
+ let names := (← (← getEnv).getLocalConstantInfos).map (·.name)
+ let modules := (← getEnv).header.moduleNames
+ let allowed := #[`HexRCF.SourceIdentityPacket,`HexRCF.SourceIdentityLiterals,
+ `HexRCF.RealCoefficients.SourceIdentity,`HexRCF.RealCoefficients.ScalarPacket,
+ `HexRCF.RealCoefficients.RowPacketQuote,`CellSourceCost,`HexRCF.RealCoefficients.RootQuote,
+ `HexRCF.RealCoefficients.ScalarQuote,`HexRCF.RealCoefficients.CellQuote,
+ `HexRCF.RealCoefficients.RowQuote,`HexRCF.RealCoefficients.CellRead,
+ `HexRCF.RealCoefficients.CellOperations]
+ let mut theorems : Nat := 0
+ let mut definitions : Nat := 0
+ let mut traces : Nat := 0
+ for name in dependencies.toArray do
+ let some index := (← getEnv).getModuleIdxFor? name | continue
+ unless allowed.contains modules[index]! do continue
+ let declaration ← match ← getConstInfo name with
+ | .thmInfo info =>
+ theorems := theorems+1
+ pure (Declaration.thmDecl {info with name := ← mkFreshUserName `__completeBody})
+ | .defnInfo info =>
+ definitions := definitions+1
+ pure (Declaration.defnDecl {info with name := ← mkFreshUserName `__completeData})
+ | _ => continue
+ let options := (← getOptions).setBool `debug.skipKernelTC false
+ let environment := Kernel.enableDiag (Kernel.resetDiag (← getEnv)) true
+ let checked ← ofExceptKernelException <| environment.addDeclCore
+ (Core.getMaxHeartbeats options).toUSize (maxRecDepth.get options).toUSize
+ declaration none (doCheck := true)
+ let diagnostics := Kernel.getDiagnostics checked
+ unless diagnostics.enabled do throwError "complete source diagnostics disabled"
+ if let some (producer,count) := Hex.RCF.SelectedRootTests.KernelCheck.violation? diagnostics
+ #[``ScalarPacket.build,``ScalarPacket.buildLiteral,``Algebraic.Element.codec,
+ ``Hex.SignDet.Descriptor.ofReplay?] then
+ throwError "complete source reduced producer {producer}: {count}; body={name}"
+ if !diagnostics.unfoldCounter.isEmpty then traces := traces+1
+ unless theorems == 1193 && definitions == 202 && traces == 1353 do
+ throwError "complete source inventory changed: {theorems}/{definitions}/{traces}"
+ unless (← (← getEnv).getLocalConstantInfos).map (·.name) == names do
+ throwError "complete source audit retained copied declarations"
+ logInfo m!"complete original source actual bodies: {theorems} theorems/{definitions} definitions; nonempty traces={traces}; full axioms={axioms}"
diff --git a/reports/data/hexrcf-admission/README.md b/reports/data/hexrcf-admission/README.md
new file mode 100644
index 0000000000..8a70db07dc
--- /dev/null
+++ b/reports/data/hexrcf-admission/README.md
@@ -0,0 +1,30 @@
+# Admission traversal evidence
+
+See [the report](../../hexrcf-admission.md) for scope and limitations. Run
+`python3 reports/data/hexrcf-admission/verify.py --check-head` from the repository
+root to check the source-bound record against the current tree. Without
+`--check-head`, verification checks the immutable implementation commit.
+
+`context.json` binds the implementation, its parent record, source files and
+frozen artifacts. The older records retain their original source pins. The
+source change is exactly the tactic implementation, its new admission test
+module and the registration of that test in the existing default library.
+
+The original-source profiles are separate diagnostic runs. The only paired
+cost comparison is the fixed guard-only AB/BA experiment, with all four arms
+retained. It is not a whole-tactic speedup or a scaling study. Profiler category
+times are exclusive. The copied Lean profiler implementation documents that
+interpretation.
+
+The full-source prototype inputs, timing-only checker, original checker,
+failed-input snapshots and final source patch identify the successive variants.
+Logs retain the unknown-constant and parser failures, cache-fetch failure,
+explicitly terminated setup attempt, initial negative-test warning and static
+negative-probe classification failure. A terminated service is not a passing
+sample even if systemd reports successful termination. The final negative-test
+module restores the complete saved state, including its deliberately forbidden
+local fixture and warning, and exports no admitted theorem.
+
+The systemd wrapper applies an aggregate 32 GiB limit with no swap and two Lean
+threads. Builds run serially. This record does not complete #10358 or replace
+the required fresh review, exact-head CI and merge.
diff --git a/reports/data/hexrcf-admission/axiom-forest-admission-1.log.gz b/reports/data/hexrcf-admission/axiom-forest-admission-1.log.gz
new file mode 100644
index 0000000000..8dd98908dd
Binary files /dev/null and b/reports/data/hexrcf-admission/axiom-forest-admission-1.log.gz differ
diff --git a/reports/data/hexrcf-admission/axiom-forest-admission-2.log.gz b/reports/data/hexrcf-admission/axiom-forest-admission-2.log.gz
new file mode 100644
index 0000000000..bf3c5c52cb
Binary files /dev/null and b/reports/data/hexrcf-admission/axiom-forest-admission-2.log.gz differ
diff --git a/reports/data/hexrcf-admission/axiom-forest-audit-1.log.gz b/reports/data/hexrcf-admission/axiom-forest-audit-1.log.gz
new file mode 100644
index 0000000000..f6bf7c12d4
Binary files /dev/null and b/reports/data/hexrcf-admission/axiom-forest-audit-1.log.gz differ
diff --git a/reports/data/hexrcf-admission/axiom-forest-checks-1-inputs/AxiomForestChecks.lean.txt b/reports/data/hexrcf-admission/axiom-forest-checks-1-inputs/AxiomForestChecks.lean.txt
new file mode 100644
index 0000000000..53fcae38b1
--- /dev/null
+++ b/reports/data/hexrcf-admission/axiom-forest-checks-1-inputs/AxiomForestChecks.lean.txt
@@ -0,0 +1,40 @@
+import HexRCF.Tactic
+open Lean Meta
+namespace Hex.RCF.ForestProbe
+opaque hidden : Nat := 13
+inductive Link where
+ | nil
+ | cons (tail : Link)
+meta def reference (expression : Expr) : MetaM Bool := do
+ let expression ← instantiateMVars expression
+ if expression.hasExprMVar then return false
+ for name in expression.getUsedConstants do
+ for axiomName in ← collectAxioms name do
+ unless [``propext,``Classical.choice,``Quot.sound].contains axiomName do return false
+ return true
+run_meta do
+ withoutModifyingEnv do
+ let mut previous := mkConst ``hidden
+ let mut expressions := #[previous,mkConst ``Link,mkConst ``Link.rec,
+ mkConst ``Quot.mk [.zero],mkConst ``Classical.choice [.zero],
+ mkConst ``sorryAx [.zero],mkConst ``Lean.ofReduceBool]
+ for i in [:64] do
+ let value ← mkAppM ``Nat.add #[previous,previous]
+ let name := mkPrivateName (← getEnv) (← mkFreshUserName `diamond)
+ previous ← mkAuxDefinition name (mkConst ``Nat) value (compile := false)
+ if i % 8 == 0 then expressions := expressions.push previous
+ expressions := expressions.push (← mkAppM ``Nat.add #[previous,previous])
+ expressions := expressions.push (← mkFreshExprMVar (mkConst ``True))
+ let forbidden := mkConst ``sorryAx [.zero]
+ expressions := expressions.push (mkApp (mkLambda `unused .default (← inferType forbidden)
+ (mkConst ``True.intro)) forbidden)
+ for expression in expressions do
+ let expected ← reference expression
+ let actual ← try
+ Hex.RCF.checkAxioms `forestProbe expression
+ pure true
+ catch _ => pure false
+ unless expected == actual do
+ throwError "forest and authoritative admission policies disagree: {expression}"
+ logInfo m!"forest/reference agree on {expressions.size} imported/local/opaque/inductive/shared/forbidden/unresolved cases"
+end Hex.RCF.ForestProbe
diff --git a/reports/data/hexrcf-admission/axiom-forest-checks-1.log.gz b/reports/data/hexrcf-admission/axiom-forest-checks-1.log.gz
new file mode 100644
index 0000000000..8b48fe5818
Binary files /dev/null and b/reports/data/hexrcf-admission/axiom-forest-checks-1.log.gz differ
diff --git a/reports/data/hexrcf-admission/axiom-forest-checks-2.log.gz b/reports/data/hexrcf-admission/axiom-forest-checks-2.log.gz
new file mode 100644
index 0000000000..e670786fba
Binary files /dev/null and b/reports/data/hexrcf-admission/axiom-forest-checks-2.log.gz differ
diff --git a/reports/data/hexrcf-admission/axiom-forest-core-1.log.gz b/reports/data/hexrcf-admission/axiom-forest-core-1.log.gz
new file mode 100644
index 0000000000..761b2114de
Binary files /dev/null and b/reports/data/hexrcf-admission/axiom-forest-core-1.log.gz differ
diff --git a/reports/data/hexrcf-admission/axiom-forest-cost-1.log.gz b/reports/data/hexrcf-admission/axiom-forest-cost-1.log.gz
new file mode 100644
index 0000000000..d38c1ae1cd
Binary files /dev/null and b/reports/data/hexrcf-admission/axiom-forest-cost-1.log.gz differ
diff --git a/reports/data/hexrcf-admission/axiom-forest-cost-context.json b/reports/data/hexrcf-admission/axiom-forest-cost-context.json
new file mode 100644
index 0000000000..f0fc78d924
--- /dev/null
+++ b/reports/data/hexrcf-admission/axiom-forest-cost-context.json
@@ -0,0 +1,19 @@
+{
+ "cpu": 2,
+ "affinity": [
+ 2
+ ],
+ "host_load": [
+ 3.10791015625,
+ 2.78515625,
+ 3.1240234375
+ ],
+ "schedule": [
+ "AB",
+ "BA"
+ ],
+ "repetitions": 10,
+ "depth": 128,
+ "roots": 8,
+ "scope": "build-only admission traversal, not a source proof or whole tactic comparison"
+}
diff --git a/reports/data/hexrcf-admission/axiom-forest-full-1-inputs/AxiomForestChecks.lean.txt b/reports/data/hexrcf-admission/axiom-forest-full-1-inputs/AxiomForestChecks.lean.txt
new file mode 100644
index 0000000000..1801cf691d
--- /dev/null
+++ b/reports/data/hexrcf-admission/axiom-forest-full-1-inputs/AxiomForestChecks.lean.txt
@@ -0,0 +1,46 @@
+import HexRCF.Tactic
+open Lean Meta
+namespace Hex.RCF.ForestProbe
+opaque hidden : Nat := 13
+inductive Link where
+ | nil
+ | cons (tail : Link)
+meta def reference (expression : Expr) : MetaM Bool := do
+ let expression ← instantiateMVars expression
+ if expression.hasExprMVar then return false
+ for name in expression.getUsedConstants do
+ for axiomName in ← collectAxioms name do
+ unless [``propext,``Classical.choice,``Quot.sound].contains axiomName do return false
+ return true
+run_meta do
+ withoutModifyingEnv do
+ let mut previous := mkConst ``hidden
+ let mut expressions := #[previous,mkConst ``Link,mkConst ``Link.rec,
+ mkConst ``Quot.mk [.zero],mkConst ``Classical.choice [.zero],
+ mkConst ``sorryAx [.zero],mkConst ``sorryAx [.succ .zero]]
+ for i in [:64] do
+ let value ← mkAppM ``Nat.add #[previous,previous]
+ let name := mkPrivateName (← getEnv) (← mkFreshUserName `diamond)
+ previous ← mkAuxDefinition name (mkConst ``Nat) value (compile := false)
+ if i % 8 == 0 then expressions := expressions.push previous
+ expressions := expressions.push (← mkAppM ``Nat.add #[previous,previous])
+ let value ← mkAppM ``Nat.add #[previous,mkNatLit 1]
+ let left ← mkAuxDefinition (mkPrivateName (← getEnv) (← mkFreshUserName `left))
+ (mkConst ``Nat) value (compile := false)
+ let right ← mkAuxDefinition (mkPrivateName (← getEnv) (← mkFreshUserName `right))
+ (mkConst ``Nat) value (compile := false)
+ expressions := expressions.push (← mkAppM ``Nat.add #[left,right])
+ expressions := expressions.push (← mkFreshExprMVar (mkConst ``True))
+ let forbidden := mkConst ``sorryAx [.zero]
+ expressions := expressions.push (mkApp (mkLambda `unused .default (← inferType forbidden)
+ (mkConst ``True.intro)) forbidden)
+ for expression in expressions do
+ let expected ← reference expression
+ let actual ← try
+ Hex.RCF.checkAxioms `forestProbe expression
+ pure true
+ catch _ => pure false
+ unless expected == actual do
+ throwError "forest and authoritative admission policies disagree: {expression}"
+ logInfo m!"forest/reference agree on {expressions.size} imported/local/opaque/inductive/shared/forbidden/unresolved cases"
+end Hex.RCF.ForestProbe
diff --git a/reports/data/hexrcf-admission/axiom-forest-full-1-inputs/AxiomForestCost.lean.txt b/reports/data/hexrcf-admission/axiom-forest-full-1-inputs/AxiomForestCost.lean.txt
new file mode 100644
index 0000000000..961a440415
--- /dev/null
+++ b/reports/data/hexrcf-admission/axiom-forest-full-1-inputs/AxiomForestCost.lean.txt
@@ -0,0 +1,27 @@
+import AxiomForestChecks
+open Lean Meta
+namespace Hex.RCF.ForestCost
+run_meta do
+ withoutModifyingEnv do
+ let mut previous := mkNatLit 0
+ for _ in [:128] do
+ let value ← mkAppM ``Nat.add #[previous,mkNatLit 1]
+ previous ← mkAuxDefinition (mkPrivateName (← getEnv) (← mkFreshUserName `chain))
+ (mkConst ``Nat) value (compile := false)
+ let mut expression := mkNatLit 0
+ for i in [:8] do
+ let value ← mkAppM ``Nat.add #[previous,mkNatLit i]
+ let root ← mkAuxDefinition (mkPrivateName (← getEnv) (← mkFreshUserName `root))
+ (mkConst ``Nat) value (compile := false)
+ expression ← mkAppM ``Nat.add #[expression,root]
+ for trial in [:2] do
+ let order := if trial % 2 == 0 then #[false,true] else #[true,false]
+ for improved in order do
+ let start ← IO.monoNanosNow
+ for _ in [:10] do
+ if improved then Hex.RCF.checkAxioms `forestCost expression
+ else unless ← Hex.RCF.ForestProbe.reference expression do
+ throwError "reference guard unexpectedly refused"
+ let elapsed := (← IO.monoNanosNow)-start
+ logInfo m!"guard-forest trial={trial}; arm={if improved then "B" else "A"}; ns={elapsed}; repetitions=10; depth=128; roots=8"
+end Hex.RCF.ForestCost
diff --git a/reports/data/hexrcf-admission/axiom-forest-full-1-inputs/CellSourceCost.lean.txt b/reports/data/hexrcf-admission/axiom-forest-full-1-inputs/CellSourceCost.lean.txt
new file mode 100644
index 0000000000..fd61085d90
--- /dev/null
+++ b/reports/data/hexrcf-admission/axiom-forest-full-1-inputs/CellSourceCost.lean.txt
@@ -0,0 +1,175 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+import HexRCF.RealCoefficients.RowQuote
+import HexRCF.CellReplay.Operations
+import HexRCF.RealCoefficients.RootQuote
+import HexRCF.RealCoefficients.RationalQuote
+import HexRCF.RealCoefficients.ScalarQuote
+import HexRCF.RootTableQuote.Input
+import HexRCF.RealCoefficients.CellQuote
+import HexRCF.SourceIdentityPacket
+open Lean Meta Qq Hex Hex.RealClosure Hex.SignDet Hex.RCF.RealCoefficients
+open Hex.RCF.RealCoefficients.CellReplayTests
+open Hex.RCF.RealCoefficients.CellReplayTests.Algebraic
+/-! Quote the original source through independently restored literal cells over
+one retained selected algebraic parent. Older complete-packet acceptance proofs
+are excluded by the importing audit; coefficient seed facts remain checked inputs. This fixed-parent case does not reconstruct arbitrary source histories. -/
+namespace Hex.RCF.CellSourceCost
+set_option profiler true
+set_option profiler.threshold 100
+set_option maxHeartbeats 60000000
+set_option maxRecDepth 32768
+set_option smartUnfolding false
+set_option trace.Hex.RCF.RowQuote true
+def rational (value : Int) : Codec.Json := .arr #[.number 0,.number value,.number 1]
+def scalar (polynomial : Array Codec.Json) (sign : Int) : Codec.Json :=
+ .arr #[.arr polynomial,.number sign]
+def polynomial : Codec.Json := .arr #[
+ scalar #[rational 0,rational (-1)] (-1),.arr #[],scalar #[rational 1] 1]
+run_meta do
+ withoutExporting do
+ let target : Q(Prop) := q(∃ x : ℝ, x ^ 2 - Real.sqrt 2 ≥ 0 ∧
+ x ^ 2 - Real.sqrt 2 ≤ 0 ∧ (0 : ℝ) = 0)
+ let basic : Hex.RealFormula.Reify.Config := {}
+ let config := {basic with ring := {basic.ring with budget :=
+ {basic.ring.budget with proofNodes := 24000000}}}
+ let .ok source ← Reify.prepare target config
+ | throwError "original complete-cell source was not recognized"
+ unless source.coefficients.size == 1 && source.divisors.isEmpty do
+ throwError "original complete-cell source changed its coefficient/guard inventory"
+ let quantified ← whnf source.formula
+ unless quantified.getAppFn.isConstOf ``Hex.RealFormula.Prenex.quant do
+ throwError "original complete-cell source is not quantified"
+ let matrix ← whnf quantified.appArg!
+ unless matrix.getAppFn.isConstOf ``Hex.RealFormula.Prenex.matrix do
+ throwError "original complete-cell source has no shared matrix"
+ let formula := matrix.appArg!
+ let codec : Q(ValueCodec (Algebraic.Element Hex.RCF.SelectedRootTests.Data.native)) :=
+ q(Algebraic.Element.codec (context := Hex.RCF.SelectedRootTests.Data.native)
+ Hex.RCF.SelectedRootTests.Data.base.codec)
+ let reader ← mkAppM ``Codec.readPoly #[codec,mkConst ``polynomial]
+ let result ← match ← profileitM Exception "complete algebraic source quotation" (← getOptions) (RootQuote.runWith (do
+ let p ← ScalarQuote.quotePolyWith reader (mkConst ``Records.facts) fun expression =>
+ liftM (RationalQuote.decoder (mkConst ``Hex.RCF.SelectedRootTests.Data.registry) expression)
+ logInfo m!"literal polynomial reconstructed; proofNodes={p.usage.proofNodes}"
+ let polynomialType ← inferType p.value
+ Hex.RealFormula.Reify.accountProof polynomialType
+ Hex.RealFormula.Reify.accountProof p.value
+ let polynomialName := mkPrivateName (← getEnv) (← mkFreshUserName `FrozenPolynomial)
+ let polynomial ← mkAuxDefinition polynomialName polynomialType p.value (compile := false)
+ let signature ← mkAppM ``Tower.Context.signature #[mkConst ``Schema.parent]
+ let cert ← mkAppM ``RadicalCert.mk #[signature,polynomial,polynomial,polynomial,mkNatLit 1]
+ let certificateType ← inferType cert
+ Hex.RealFormula.Reify.accountProof certificateType
+ Hex.RealFormula.Reify.accountProof cert
+ let certificateName := mkPrivateName (← getEnv) (← mkFreshUserName `FrozenRadical)
+ let cert ← mkAuxDefinition certificateName certificateType cert (compile := false)
+ let cells := mkApp (mkConst ``Codec.Json.Value.array)
+ (mkApp2 (mkConst ``Codec.Json.Values.cons) (mkConst ``Literals.sections)
+ (mkApp2 (mkConst ``Codec.Json.Values.cons) (mkConst ``Literals.sectors)
+ (mkConst ``Codec.Json.Values.nil)))
+ let empty ← mkListLit (← mkAppM ``Tower.Context.Value #[mkConst ``Schema.parent]) []
+ let some operations ← unfoldDefinition? (mkConst ``Operations.operations)
+ | throwError "supplied operations have no accessible definition"
+ let operations := operations.replace fun expression =>
+ if expression.isConstOf ``Hex.RCF.SelectedRootTests.Data.reduction then
+ some (mkConst ``Hex.RCF.RootTableQuoteTests.reduction)
+ else if expression.isConstOf ``Hex.RCF.SelectedRootTests.Data.reduction_eq then
+ some (mkConst ``Hex.RCF.RootTableQuoteTests.reduction_eq)
+ else none
+ Meta.check operations
+ let operationsType ← inferType operations
+ Hex.RealFormula.Reify.accountProof operationsType
+ Hex.RealFormula.Reify.accountProof operations
+ let name := mkPrivateName (← getEnv) (← mkFreshUserName `FrozenOperations)
+ let operations ← mkAuxDefinition name operationsType operations (compile := false)
+ let program ← mkAppM ``CellOperations.check
+ #[operations,mkConst ``Operations.codec,mkConst ``Schema.values,
+ formula,empty,cert,
+ mkConst ``Hex.RealFormula.Quantifier.existsReal,mkConst ``Literals.roots,cells]
+ let quoted ← CellQuote.replayWith program fun expression => do
+ if let some proof ← RowQuote.decoder expression then return some proof
+ if expression.getAppFn.isConstOf ``RootTable.read then
+ let table ← RootQuote.quoteWith expression fun expression =>
+ liftM (RationalQuote.decoder (mkConst ``Hex.RCF.SelectedRootTests.Data.registry) expression)
+ let kind ← inferType table.value
+ Hex.RealFormula.Reify.accountProof kind
+ Hex.RealFormula.Reify.accountProof table.value
+ let name := mkPrivateName (← getEnv) (← mkFreshUserName `FrozenRootTable)
+ let value ← mkAuxDefinition name kind table.value (compile := false)
+ let strict ← mkAppM ``RootQuote.read_eq #[expression,table.value,table.proof]
+ let readerType ← whnf (← inferType expression)
+ unless readerType.isAppOfArity ``Except 2 do
+ throwError "nested root-table result changed its exception type"
+ let accepted ← mkAppOptM ``Except.ok
+ #[some readerType.getAppArgs[0]!,some readerType.getAppArgs[1]!,some value]
+ let target ← mkEq expression accepted
+ Hex.RealFormula.Reify.accountProof target
+ Hex.RealFormula.Reify.accountProof strict
+ return some (← Hex.RCF.checkProof `frozenTable target (mkExpectedPropHint strict target))
+ return none
+ let result := quoted
+ let kind ← inferType result.proof
+ unless kind.isAppOfArity ``Eq 3 do throwError "complete quotation did not return an equation"
+ let optional := kind.getAppArgs[1]!
+ unless optional.getAppFn.isConstOf ``Except.toOption do
+ throwError "staged quotation omitted the optional reader boundary"
+ let program := optional.getAppArgs.back!
+ unless program.getAppFn.isConstOf ``CellOperations.check do
+ throwError "complete quotation changed its original checker"
+ let readerType ← whnf (← inferType program)
+ let accepted ← mkAppOptM ``Except.ok
+ #[some readerType.getAppArgs[0]!,some readerType.getAppArgs[1]!,some (mkConst ``Bool.true)]
+ let target ← mkEq program accepted
+ let checked ← mkAppM ``RootQuote.read_eq #[program,result.value,result.proof]
+ Hex.RealFormula.Reify.accountProof target
+ Hex.RealFormula.Reify.accountProof checked
+ let proof ← Hex.RCF.checkProof `freshCompleteLiteral target (mkExpectedPropHint checked target)
+ let axioms ← collectAxioms proof.getAppFn.constName!
+ unless axioms.all (fun name => [``propext,``Classical.choice,``Quot.sound].contains name) do
+ throwError "fresh complete literal quote has inadmissible dependencies"
+ addDecl (.thmDecl {
+ name := `Hex.RCF.CellSourceCost.checked,levelParams := [],type := target,value := proof})
+ let valuation ← withLocalDeclD `i (← mkAppM ``Fin #[mkNatLit 1]) fun i => do
+ let value ← mkAppM ``Tower.Model.value
+ #[mkConst ``Schema.original,mkApp (mkConst ``Schema.values) i]
+ mkLambdaFVars #[i] value
+ let identityType ← mkEq valuation source.valuation
+ let identity ← mkFreshExprMVar identityType
+ let remaining ← Lean.Elab.runTactic' identity.mvarId!
+ (← `(tactic| funext i; fin_cases i; exact Hex.RCF.SourceIdentityPacket.coefficient))
+ unless remaining.isEmpty do throwError "original coefficient identity left goals"
+ let identity ← instantiateMVars identity
+ Hex.RealFormula.Reify.accountProof identityType
+ Hex.RealFormula.Reify.accountProof identity
+ let identity ← Hex.RCF.checkProof `completeSourceIdentity identityType identity
+ let realTarget := source.original
+ let arguments := program.getAppArgs
+ let info ← getFunInfoNArgs program.getAppFn arguments.size
+ let inputs := arguments.zipIdx |>.filterMap fun (argument,index) =>
+ if info.paramInfo[index]!.binderInfo.isExplicit then some argument else none
+ let checker ← mkAppM ``CompleteReplay.check (inputs.extract 1 inputs.size)
+ let law ← mkAppM ``CellOperations.check_eq inputs
+ let accepted ← mkAppM ``Eq.trans #[← mkEqSymm law,mkConst `Hex.RCF.CellSourceCost.checked]
+ let completed ← CellQuote.finishPacketWith source realTarget checker accepted
+ (mkConst ``Schema.original) identity
+ let sourceProof := completed.proof
+ Hex.RealFormula.Reify.accountProof realTarget
+ Hex.RealFormula.Reify.accountProof sourceProof
+ let sourceProof ← Hex.RCF.checkProof `freshCompleteSource realTarget sourceProof
+ addDecl (.thmDecl {
+ name := `Hex.RCF.CellSourceCost.source,levelParams := [],type := realTarget,value := sourceProof})
+ let sourceAxioms ← collectAxioms `Hex.RCF.CellSourceCost.source
+ unless sourceAxioms.all (fun name => [``propext,``Classical.choice,``Quot.sound].contains name) do
+ throwError "complete original source quotation has inadmissible dependencies"
+ logInfo m!"original algebraic source quotation proofNodes={result.usage.proofNodes}; axioms={axioms}"
+ logInfo m!"original algebraic source complete proofNodes={completed.usage.proofNodes}"
+ return {completed with usage := (← get).budget.consumed}
+ ) config source.usage) with
+ | .ok result => pure result
+ | .error error => throwError "fresh complete literal quote refused: {Hex.RealFormula.Reify.Error.toMessageData error}"
+ logInfo m!"complete original-source attempt consumed proofNodes={result.usage.proofNodes}"
+end Hex.RCF.CellSourceCost
diff --git a/reports/data/hexrcf-admission/axiom-forest-full-1-inputs/Tactic.lean.txt b/reports/data/hexrcf-admission/axiom-forest-full-1-inputs/Tactic.lean.txt
new file mode 100644
index 0000000000..8cba82d576
--- /dev/null
+++ b/reports/data/hexrcf-admission/axiom-forest-full-1-inputs/Tactic.lean.txt
@@ -0,0 +1,301 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+
+module
+
+public import HexRCF.Reify
+public meta import HexRCF.DecisionCheck
+
+public section
+
+/-!
+# The `rcf` tactic
+
+The tactic runs certificate construction as compiled meta code, embeds the
+result as literal data, and closes true goals only through the kernel-facing
+Boolean checker and its soundness theorem. False verdicts are diagnostics.
+-/
+
+namespace Hex.RCF
+
+open Lean Elab Tactic Meta
+
+/-- An optional handler either declines the source syntax, reports a terminal
+failure (including false verdicts and exhausted/rejected replay), or proposes
+an ordinary proof of the original goal. -/
+meta inductive HandlerResult where
+ /-- This handler does not recognize the source syntax. -/
+ | declined
+ /-- Recognized syntax failed; no subsequent handler may run. -/
+ | failed (message : MessageData)
+ /-- A candidate proof, checked by the base before goal assignment. -/
+ | proved (proof : Expr)
+
+/-- Optional coefficient solvers receive the unchanged source target. -/
+meta abbrev Handler := Expr → MetaM HandlerResult
+
+private meta initialize handlerExt : SimplePersistentEnvExtension Name (Array Name) ←
+ registerSimplePersistentEnvExtension {
+ addImportedFn := fun entries => entries.flatten
+ addEntryFn := fun entries name => entries.push name
+ }
+
+meta initialize registerBuiltinAttribute {
+ name := `rcf_handler
+ descr := "register an optional closed-coefficient handler for rcf"
+ applicationTime := .afterCompilation
+ add := fun decl stx kind => do
+ ensureAttrDeclIsMeta `rcf_handler decl kind
+ Attribute.Builtin.ensureNoArgs stx
+ unless kind == AttributeKind.global do
+ throwAttrMustBeGlobal `rcf_handler kind
+ let info ← getConstInfo decl
+ unless info.levelParams.isEmpty do
+ throwError "rcf_handler: {decl} must be monomorphic"
+ unless ← MetaM.run' <| isDefEq info.type (mkConst ``Handler) do
+ throwAttrDeclNotOfExpectedType `rcf_handler decl info.type (mkConst ``Handler)
+ modifyEnv fun env => handlerExt.addEntry env decl
+}
+
+/-- Registered declaration names, deduplicated and sorted by `Name.lt`.
+Lookup order is independent of attribute and import order. -/
+meta def handlerNames : CoreM (Array Name) := do
+ return (handlerExt.getState (← getEnv)).qsort Name.lt |>.eraseReps
+
+private meta unsafe def evalHandlerUnsafe (name : Name) : MetaM Handler :=
+ evalConst Handler name
+
+@[implemented_by evalHandlerUnsafe]
+private meta opaque evalHandler (name : Name) : MetaM Handler
+
+private meta def ordinaryAxiom (name : Name) : Bool :=
+ [``propext, ``Classical.choice, ``Quot.sound].contains name
+
+/-- Visit each local dependency once within one admission check. Imported
+closures use Lean's authoritative module inventories, including hidden bodies.
+The state is discarded before returning; no environment-sensitive cache persists. -/
+private meta partial def checkConstant (handler : Name) (environment : Environment)
+ (root current : Name) : StateRefT NameSet MetaM Unit := do
+ let seen : NameSet ← get
+ if seen.contains current then return
+ modify fun (seen : NameSet) => seen.insert current
+ if (environment.getModuleIdxFor? current).isSome then
+ for dependency in ← collectAxioms current do
+ unless ordinaryAxiom dependency do
+ throwError "rcf: handler {handler} proposed a proof using forbidden axiom {dependency} (through {root})"
+ return
+ let visit (expression : Expr) := expression.getUsedConstants.forM fun dependency =>
+ checkConstant handler environment root dependency
+ match environment.checked.get.find? current with
+ | some (.axiomInfo info) =>
+ unless ordinaryAxiom current do
+ throwError "rcf: handler {handler} proposed a proof using forbidden axiom {current} (through {root})"
+ visit info.type
+ | some (.defnInfo info) => visit info.type; visit info.value
+ | some (.thmInfo info) => visit info.type; visit info.value
+ | some (.opaqueInfo info) => visit info.type; visit info.value
+ | some (.quotInfo _) => pure ()
+ | some (.ctorInfo info) => visit info.type
+ | some (.recInfo info) => visit info.type
+ | some (.inductInfo info) =>
+ visit info.type
+ info.ctors.forM (checkConstant handler environment root)
+ | none => pure ()
+
+/-- Optional solvers may depend only on Lean's standard logical axioms.
+Imported dependency inventories also cover theorem bodies hidden by modules. -/
+meta def checkAxioms (name : Name) (proof : Expr) : MetaM Unit := do
+ profileitM Exception "rcf axiom dependency check" (← getOptions) do
+ let proof ← instantiateMVars proof
+ -- Universe metavariables do not hide declarations in an inventory probe.
+ -- Expression metavariables can hide arbitrary proof dependencies.
+ if proof.hasExprMVar then throwError "rcf: handler {name} returned an unresolved proof"
+ let environment ← getEnv
+ let _ ← (proof.getUsedConstants.forM fun constant =>
+ checkConstant name environment constant constant).run ({} : NameSet)
+
+/-- Screen closed expression data before native evaluation or proof acceptance.
+Local hypotheses remain permitted; unresolved and nonstandard dependencies do not. -/
+meta def checkExpr (name : Name) (expression : Expr) : MetaM Expr := do
+ let expression ← instantiateMVars expression
+ if expression.hasMVar then throwError "rcf: {name} contains unresolved metavariables"
+ checkAxioms name expression
+ let usesUnsafe ← profileitM Exception "rcf unsafe dependency check" (← getOptions) do
+ pure ((← getEnv).hasUnsafe expression)
+ if usesUnsafe then
+ throwError "rcf: {name} uses an unsafe declaration"
+ return expression
+
+/-- Accept only a closed ordinary proof of the exact target. Agreement cannot
+assign caller metavariables; a fresh uncached theorem checks the candidate
+against its target in the kernel and exposes all transitive dependencies. -/
+meta def checkProof (name : Name) (target proof : Expr)
+ (category : String := "rcf proof") : MetaM Expr := withNewMCtxDepth do
+ let proof ← instantiateMVars proof
+ if proof.hasMVar then
+ throwError "rcf: handler {name} returned an unresolved proof"
+ let proof := ShareCommon.shareCommon' proof
+ let agrees ← profileitM Exception (category ++ " goal agreement") (← getOptions) do
+ withNewMCtxDepth <| isDefEq (← inferType proof) target
+ unless agrees do
+ throwError "rcf: handler {name} proposed a proof of a different goal"
+ checkAxioms name proof
+ let usesUnsafe ← profileitM Exception "rcf unsafe dependency check" (← getOptions) do
+ pure ((← getEnv).hasUnsafe proof)
+ if usesUnsafe then
+ throwError "rcf: handler {name} proposed a proof using an unsafe declaration"
+ let proof ← profileitM Exception (category ++ " candidate check") (← getOptions) do
+ withOptions (fun opts => debug.skipKernelTC.set (Elab.async.set opts false) false) do
+ mkAuxTheorem target proof (zetaDelta := true) (cache := false)
+ let .thmInfo _ ← withoutExporting <| getConstInfo proof.getAppFn.constName!
+ | throwError "rcf: handler {name} proposed a candidate that did not close as a theorem"
+ checkAxioms name proof
+ return proof
+
+/-- Try handlers transactionally. Successful handlers retain auxiliary
+proof declarations but cannot export assignments to the target's metavariables.
+Exceptions and structured failures are terminal; only `declined` continues. -/
+private meta def dispatchHandlers (target : Expr)
+ (reason : Reify.UnsupportedCoefficient) : MetaM Expr := do
+ for name in ← handlerNames do
+ let saved ← saveState
+ let (result, _) ← tryFinally' (do
+ let info ← getConstInfo name
+ unless info.levelParams.isEmpty && (← isDefEq info.type (mkConst ``Handler)) do
+ throwError "rcf: invalid handler signature for {name}"
+ let handler ← evalHandler name
+ match ← withOptions (debug.skipKernelTC.set · false) <| handler target with
+ | .proved proof => pure (HandlerResult.proved (← instantiateMVars proof))
+ | .failed message => pure (.failed (← addMessageContext message))
+ | .declined => pure .declined)
+ (fun result => do
+ match result with
+ | some (.proved _) =>
+ modify fun state => { state with
+ mctx := saved.meta.mctx
+ postponed := saved.meta.postponed
+ zetaDeltaFVarIds := saved.meta.zetaDeltaFVarIds }
+ | _ => saved.restore)
+ match result with
+ | .declined => pure ()
+ | .failed message => throwError message
+ | .proved proof => return ← checkProof name target proof "rcf handler"
+ throwError reason.message
+
+/-- Whether a cell participates in the sentence's quantifier fold. -/
+private meta def relevantCell (sentence : Sentence) (data : CellsCert)
+ (cell : Cell data.isolations.intervals.size) : Bool :=
+ match sentence, data.iocCmps with
+ | .forallReal _, _ | .existsReal _, _ => true
+ | .forallIoc a b _, some cmps | .existsIoc a b _, some cmps =>
+ Cell.meetsIocOn a b cmps cell
+ | _, none => false
+
+/-- Locate the first checked universal counterexample cell. -/
+private meta def failingCell? (sentence : Sentence) (data : CellsCert) :
+ Option (Cell data.isolations.intervals.size) :=
+ (Cell.all data.isolations.intervals.size).find? fun cell =>
+ relevantCell sentence data cell &&
+ data.signs.evalCell? sentence data.isolations cell == some false
+
+/-- Render the exact sample or isolating interval attached to a cell. -/
+private meta def describeCell (data : CellsCert)
+ (cell : Cell data.isolations.intervals.size) : MessageData :=
+ match cell with
+ | .open cut =>
+ m!"open cell at dyadic sample {data.isolations.openPoint cut |>.toRat}"
+ | .root i =>
+ let interval := data.isolations.intervals[i]
+ m!"root cell isolated in ({interval.lower.toRat}, {interval.upper.toRat}]"
+
+/-- Diagnostic for a checked false verdict. False results never enter the
+proof-producing path. -/
+private meta def falseMessage (sentence : Sentence)
+ (certificate : Certificate) : MessageData :=
+ match sentence with
+ | .existsReal _ | .existsIoc _ _ _ =>
+ "rcf: the existential sentence is false. Every relevant decomposition\n\
+ cell was checked and found false, so there is no witness"
+ | .forallReal _ | .forallIoc _ _ _ =>
+ match certificate with
+ | .cells data =>
+ match failingCell? sentence data with
+ | some cell => m!"rcf: the universal sentence is false on the {describeCell data cell}"
+ | none => "rcf: the universal sentence is false on a checked decomposition cell"
+ | .noRoots _ | .constants =>
+ "rcf: the universal sentence is false on the sole open cell at dyadic sample 0"
+ | .emptyIoc =>
+ "rcf: internal error: an empty-domain universal produced false"
+
+/-- Construct the proof for a supported true sentence. The compiled builder
+selects evidence, while `Certificate.check` and `check_sound` are the only
+certificate trust boundary. -/
+private meta def proveRational (target : Expr) (reflected : Reify.SentenceResult) : MetaM Expr := do
+ let sentence ← Reify.sentenceExpr reflected.sentence
+ unless ← isDefEq sentence reflected.expr do
+ throwError "rcf: internal runtime/literal sentence mismatch"
+ let some result := build? reflected.sentence
+ | throwError "rcf: certificate construction failed"
+ unless result.verdict do
+ throwError (falseMessage reflected.sentence result.certificate)
+ unless result.certificate.check reflected.sentence do
+ throwError "rcf: internal error: a true builder verdict failed replay"
+ let certificate ← Reify.certificateExpr result.certificate
+ let check ← mkAppM ``Certificate.check #[sentence, certificate]
+ let checkType ← mkAppM ``Eq #[check, mkConst ``Bool.true]
+ let checked ← mkDecideProof checkType
+ let sound ← mkAppM ``check_sound
+ #[sentence, certificate, checked]
+ let proof ← mkAppM ``Iff.mp #[reflected.proof, sound]
+ unless ← isDefEq (← inferType proof) target do
+ throwError "rcf: internal final proof mismatch"
+ return proof
+
+/-- Prove a rational goal without dispatching coefficient handlers. Unsupported
+syntax and unsuccessful proof attempts restore the metavariable state. -/
+meta def proveRationalGoal (target : Expr) : MetaM Expr := do
+ let saved ← saveState
+ let (proof, _) ← tryFinally' (do
+ match ← (Reify.recognizeSentence target).run with
+ | .ok reflected => proveRational target reflected
+ | .error reason => throwError reason.message)
+ (fun result => unless result.isSome do saved.restore)
+ return proof
+
+/-- Prove a rational goal, or dispatch only a typed closed-coefficient decline.
+Every unsuccessful attempt restores its metavariable state, including runtime
+exceptions. Existing rational search and replay remain terminal. -/
+meta def proveGoal (target : Expr) : MetaM Expr := do
+ let saved ← saveState
+ let (proof, _) ← tryFinally' (do
+ match ← (Reify.recognizeSentence target).run with
+ | .ok reflected => proveRational target reflected
+ | .error reason => do
+ saved.restore
+ dispatchHandlers target reason)
+ (fun result => unless result.isSome do saved.restore)
+ return proof
+
+/-- Decide a supported singly quantified univariate real polynomial goal by
+building and replaying a literal certificate. -/
+syntax (name := rcfTac) "rcf" : tactic
+
+/-- Elaborate `rcf` by constructing and replaying a checked certificate. -/
+@[tactic rcfTac] meta def evalRCFTac : Tactic := fun stx => do
+ match stx with
+ | `(tactic| rcf) =>
+ let saved ← saveState
+ let _ ← tryFinally' (do
+ let goal ← getMainGoal
+ goal.withContext do
+ let target ← instantiateMVars (← goal.getType)
+ let proof ← proveGoal target
+ goal.assign proof
+ replaceMainGoal [])
+ (fun result => unless result.isSome do saved.restore)
+ | _ => throwUnsupportedSyntax
+
+end Hex.RCF
diff --git a/reports/data/hexrcf-admission/axiom-forest-full-1.log.gz b/reports/data/hexrcf-admission/axiom-forest-full-1.log.gz
new file mode 100644
index 0000000000..a8e43821de
Binary files /dev/null and b/reports/data/hexrcf-admission/axiom-forest-full-1.log.gz differ
diff --git a/reports/data/hexrcf-admission/axiom-forest-integration-1.log.gz b/reports/data/hexrcf-admission/axiom-forest-integration-1.log.gz
new file mode 100644
index 0000000000..074175546c
Binary files /dev/null and b/reports/data/hexrcf-admission/axiom-forest-integration-1.log.gz differ
diff --git a/reports/data/hexrcf-admission/axiom-forest-integration-invocation.json b/reports/data/hexrcf-admission/axiom-forest-integration-invocation.json
new file mode 100644
index 0000000000..b856a37634
--- /dev/null
+++ b/reports/data/hexrcf-admission/axiom-forest-integration-invocation.json
@@ -0,0 +1,60 @@
+{
+ "cwd": "/home/kim/worktrees/hex-dev/hex-dev-issue-10358",
+ "argv": [
+ "/home/kim/.codex/tasks/hex-10358/bin/run-bounded",
+ "lake",
+ "build",
+ "HexRCF.TreeQuoteProofs",
+ "HexRCF.RootQuoteConformance",
+ "HexRCF.RationalQuoteConformance",
+ "HexRCF.QuotientQuoteProofs",
+ "HexRCF.DependentQuoteProofs",
+ "HexRCF.DependentScalarProofs",
+ "HexRCF.RootPrepareProofs",
+ "HexRCF.RootPrepareControls",
+ "HexRCF.RootHeaderProofs",
+ "HexRCF.RootHeaderControls",
+ "HexRCF.RootHeaderBudget",
+ "HexRCF.RootHeaderValues",
+ "HexRCF.RootContextProofs",
+ "HexRCF.RootContextConformance",
+ "HexRCF.PublicSignPacketProofs",
+ "HexRCF.PublicSignPacketControls",
+ "HexRCF.SignPacketProofs",
+ "HexRCF.SharedQuoteConformance",
+ "HexRCF.SharedQuoteCallbackProofs",
+ "HexRCF.RecursiveScalarProofs",
+ "HexRCF.ScalarQuoteConformance",
+ "HexRCF.SignatureQuoteConformance",
+ "HexRCF.FrozenSignatureProofs",
+ "HexRCF.FrozenSignatureConformance",
+ "HexRCF.Conformance",
+ "HexRCF.RealCoefficientTactic",
+ "HexRCF.RealCoefficientCommonField",
+ "HexRCF.RootTableQuote.Conformance",
+ "HexManual",
+ "HexRCF.RowQuoteProofs",
+ "HexRCF.ReplayBoundaryProofs",
+ "HexRCFRealCoefficients",
+ "HexRCF.ReplayHelperProofs",
+ "HexRCF.SourceSelectionKernel",
+ "HexRCF.SourceSelectionProofs",
+ "HexRCF.CellQuoteStages",
+ "HexRCF.CellQuoteStageProofs",
+ "HexRCF.CellSourceQuote",
+ "HexRCF.CellSourceProofs",
+ "HexRCF.RowPacketControls",
+ "HexRCF.SourceIdentityLiterals",
+ "HexRCF.SourceIdentityPacket",
+ "HexRCF.SourceIdentityControls",
+ "HexRCF.SourceIdentityProofs",
+ "HexRCF.SourceIdentityEmit",
+ "HexRCF.CellFinishCases",
+ "HexRCF.CellFinishProofs",
+ "HexRCF.HandlerTests.Admission",
+ "HexRCF.HandlerTests",
+ "HexRCF.HandlerTests.Async",
+ "HexRCF.ReifyTests"
+ ],
+ "targets": 51
+}
diff --git a/reports/data/hexrcf-admission/axiom-forest-integration-memory-policy.txt b/reports/data/hexrcf-admission/axiom-forest-integration-memory-policy.txt
new file mode 100644
index 0000000000..65fdeb1f24
--- /dev/null
+++ b/reports/data/hexrcf-admission/axiom-forest-integration-memory-policy.txt
@@ -0,0 +1,5 @@
+ActiveState=active
+MainPID=1107216
+MemoryCurrent=4828237824
+MemoryMax=34359738368
+MemorySwapMax=0
diff --git a/reports/data/hexrcf-admission/axiom-forest-metadata-admissions.log.gz b/reports/data/hexrcf-admission/axiom-forest-metadata-admissions.log.gz
new file mode 100644
index 0000000000..deb0599e89
Binary files /dev/null and b/reports/data/hexrcf-admission/axiom-forest-metadata-admissions.log.gz differ
diff --git a/reports/data/hexrcf-admission/axiom-forest-metadata-copyright.log.gz b/reports/data/hexrcf-admission/axiom-forest-metadata-copyright.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-admission/axiom-forest-metadata-copyright.log.gz differ
diff --git a/reports/data/hexrcf-admission/axiom-forest-metadata-dag.log.gz b/reports/data/hexrcf-admission/axiom-forest-metadata-dag.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-admission/axiom-forest-metadata-dag.log.gz differ
diff --git a/reports/data/hexrcf-admission/axiom-forest-metadata-diff.log.gz b/reports/data/hexrcf-admission/axiom-forest-metadata-diff.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-admission/axiom-forest-metadata-diff.log.gz differ
diff --git a/reports/data/hexrcf-admission/axiom-forest-metadata-lines.log.gz b/reports/data/hexrcf-admission/axiom-forest-metadata-lines.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-admission/axiom-forest-metadata-lines.log.gz differ
diff --git a/reports/data/hexrcf-admission/axiom-forest-metadata-negative-probe-failure.log.gz b/reports/data/hexrcf-admission/axiom-forest-metadata-negative-probe-failure.log.gz
new file mode 100644
index 0000000000..39b4b64823
Binary files /dev/null and b/reports/data/hexrcf-admission/axiom-forest-metadata-negative-probe-failure.log.gz differ
diff --git a/reports/data/hexrcf-admission/axiom-forest-metadata-relative.log.gz b/reports/data/hexrcf-admission/axiom-forest-metadata-relative.log.gz
new file mode 100644
index 0000000000..154780e0b7
Binary files /dev/null and b/reports/data/hexrcf-admission/axiom-forest-metadata-relative.log.gz differ
diff --git a/reports/data/hexrcf-admission/axiom-forest-metadata-selected-admissions.log.gz b/reports/data/hexrcf-admission/axiom-forest-metadata-selected-admissions.log.gz
new file mode 100644
index 0000000000..72d3556de5
Binary files /dev/null and b/reports/data/hexrcf-admission/axiom-forest-metadata-selected-admissions.log.gz differ
diff --git a/reports/data/hexrcf-admission/axiom-forest-metadata-summary.log.gz b/reports/data/hexrcf-admission/axiom-forest-metadata-summary.log.gz
new file mode 100644
index 0000000000..609e099a96
Binary files /dev/null and b/reports/data/hexrcf-admission/axiom-forest-metadata-summary.log.gz differ
diff --git a/reports/data/hexrcf-admission/axiom-forest-metadata.json b/reports/data/hexrcf-admission/axiom-forest-metadata.json
new file mode 100644
index 0000000000..21c7a12563
--- /dev/null
+++ b/reports/data/hexrcf-admission/axiom-forest-metadata.json
@@ -0,0 +1,61 @@
+[
+ {
+ "name": "copyright",
+ "command": [
+ "python3",
+ "scripts/check_copyright_headers.py"
+ ],
+ "log": "axiom-forest-metadata-copyright.log",
+ "exit_code": 0
+ },
+ {
+ "name": "lines",
+ "command": [
+ "python3",
+ "scripts/check_file_line_counts.py",
+ "--base",
+ "origin/main"
+ ],
+ "log": "axiom-forest-metadata-lines.log",
+ "exit_code": 0
+ },
+ {
+ "name": "dag",
+ "command": [
+ "python3",
+ "scripts/check_dag.py"
+ ],
+ "log": "axiom-forest-metadata-dag.log",
+ "exit_code": 0
+ },
+ {
+ "name": "admissions",
+ "command": [
+ "python3",
+ "scripts/ci/check_named_admissions.py"
+ ],
+ "log": "axiom-forest-metadata-admissions.log",
+ "exit_code": 0
+ },
+ {
+ "name": "diff",
+ "command": [
+ "git",
+ "diff",
+ "HEAD",
+ "--check"
+ ],
+ "log": "axiom-forest-metadata-diff.log",
+ "exit_code": 0
+ },
+ {
+ "name": "selected-admissions",
+ "log": "axiom-forest-metadata-selected-admissions.log",
+ "exit_code": 0
+ },
+ {
+ "name": "relative",
+ "log": "axiom-forest-metadata-relative.log",
+ "exit_code": 0
+ }
+]
diff --git a/reports/data/hexrcf-admission/axiom-forest-metadata.py b/reports/data/hexrcf-admission/axiom-forest-metadata.py
new file mode 100644
index 0000000000..244902c22e
--- /dev/null
+++ b/reports/data/hexrcf-admission/axiom-forest-metadata.py
@@ -0,0 +1,65 @@
+from pathlib import Path
+import importlib.util
+import json
+import re
+import subprocess
+
+repo = Path.cwd()
+task = Path('/home/kim/.codex/tasks/hex-10358')
+results = []
+
+def run(name, command):
+ log = task / f'axiom-forest-metadata-{name}.log'
+ with log.open('w') as output:
+ result = subprocess.run(command, stdout=output, stderr=subprocess.STDOUT)
+ results.append(dict(name=name, command=command, log=log.name, exit_code=result.returncode))
+
+run('copyright', ['python3', 'scripts/check_copyright_headers.py'])
+run('lines', ['python3', 'scripts/check_file_line_counts.py', '--base', 'origin/main'])
+run('dag', ['python3', 'scripts/check_dag.py'])
+run('admissions', ['python3', 'scripts/ci/check_named_admissions.py'])
+run('diff', ['git', 'diff', 'HEAD', '--check'])
+spec = importlib.util.spec_from_file_location('admissions', repo / 'scripts/ci/check_named_admissions.py')
+admissions = importlib.util.module_from_spec(spec)
+spec.loader.exec_module(admissions)
+paths = subprocess.check_output(['git', 'diff', 'HEAD', '--name-only'], text=True).splitlines()
+paths += subprocess.check_output(['git', 'ls-files', '--others', '--exclude-standard'], text=True).splitlines()
+# Verso prose is not Lean code for this source scanner. Its checked examples
+# remain covered by the complete HexManual build and ordinary axiom audits.
+lean = [path for path in paths if path.endswith('.lean') and not path.startswith('HexManual/')]
+for path in lean:
+ tracked = subprocess.run(['git', 'ls-files', '--error-unmatch', path], capture_output=True).returncode == 0
+ if tracked:
+ # Existing audit diagnostics can contain words such as "axiom" in
+ # interpolated text. Check the additions; new modules are checked whole.
+ diff = subprocess.check_output(['git', 'diff', 'HEAD', '--unified=0', '--', path], text=True)
+ source = '\n'.join(line[1:] for line in diff.splitlines() if line.startswith('+') and not line.startswith('+++'))
+ else:
+ source = (repo / path).read_text()
+ found = [match.group() for match in admissions.find_admissions(admissions.code_only(source))]
+ if path == 'HexRCF/HandlerTests/Admission.lean':
+ # Deliberately rejected raw expressions and one discarded local fixture.
+ # All four must remain inside these negative tests; no declaration escapes
+ # the enclosing environment rollback. Production has no such exception.
+ assert found == ['sorryAx', 'sorryAx', 'sorryAx', 'mkSorry'], found
+ assert 'finally\n saved.restore' in source
+ else:
+ assert not found, path
+(task / 'axiom-forest-metadata-selected-admissions.log').write_text(f'{len(lean)} changed/new Lean files: production additions contain no admissions; new negative-test module has exactly three raw forbidden constants and one discarded local fixture under full saved-state rollback; complete adapter import cones scanned separately; Verso prose excluded\n')
+results.append(dict(name='selected-admissions', log='axiom-forest-metadata-selected-admissions.log', exit_code=0))
+links = 0
+for path in paths:
+ if not path.endswith(('.lean', '.md')):
+ continue
+ for match in re.finditer(r'\]\(([^)]+)\)', (repo / path).read_text()):
+ target = match.group(1).split('#')[0]
+ if not target or '://' in target:
+ continue
+ assert (repo / path).parent.joinpath(target).exists(), (path, target)
+ links += 1
+(task / 'axiom-forest-metadata-relative.log').write_text(f'{links} relative filesystem links exist in changed/new Lean and Markdown files; external URLs excluded\n')
+results.append(dict(name='relative', log='axiom-forest-metadata-relative.log', exit_code=0))
+(task / 'axiom-forest-metadata.json').write_text(json.dumps(results, indent=2) + '\n')
+for result in results:
+ print(result['name'], result['exit_code'])
+assert all(result['exit_code'] == 0 for result in results)
diff --git a/reports/data/hexrcf-admission/axiom-forest-prototype.json b/reports/data/hexrcf-admission/axiom-forest-prototype.json
new file mode 100644
index 0000000000..e0724fa490
--- /dev/null
+++ b/reports/data/hexrcf-admission/axiom-forest-prototype.json
@@ -0,0 +1,22 @@
+{
+ "base": "1a666ea7c85d63cd9bc9372f78c8fdbbe1bf191d",
+ "checker_sha256": "26021113d121cfc9ab0d6e7ea7ce8d02eb6c4637c42bbdd2647ecd2d9291f3fb",
+ "scope": "Prototype only, isolated checkout. Per-call NameSet spans all local dependency roots; imported hidden-body inventories delegated to official collectAxioms. No persistent cache; both proof admission calls, unsafe guards, fresh uncached target kernel check and rollback unchanged.",
+ "validation": "19 reference-policy cases and full existing HandlerTests PASS. Guard-only automaticallyleasedCPU2 scheduleAB/BA tenchecks depth128 roots8 favorsprototypebothpairs; not whole-tactic speedup.",
+ "full_validation": {
+ "result": "PASS",
+ "log": "axiom-forest-full-1.log",
+ "jobs": 11171,
+ "proofNodes": 8651669,
+ "runtime": "16min29.907s",
+ "memoryPeak": "5.7G",
+ "swap": 0,
+ "exclusive_profile": {
+ "axiom_dependency_seconds": 189,
+ "unsafe_dependency_ms": 329,
+ "type_checking_seconds": 270,
+ "other_complete_action_seconds": 388
+ },
+ "limitation": "Unpaired full-source profiles diagnose costs only; no whole-tactic speedup claim."
+ }
+}
diff --git a/reports/data/hexrcf-admission/axiom-forest-prototype.patch.gz b/reports/data/hexrcf-admission/axiom-forest-prototype.patch.gz
new file mode 100644
index 0000000000..d3304932e0
Binary files /dev/null and b/reports/data/hexrcf-admission/axiom-forest-prototype.patch.gz differ
diff --git a/reports/data/hexrcf-admission/axiom-forest-source-equivalence.json b/reports/data/hexrcf-admission/axiom-forest-source-equivalence.json
new file mode 100644
index 0000000000..f03190794b
--- /dev/null
+++ b/reports/data/hexrcf-admission/axiom-forest-source-equivalence.json
@@ -0,0 +1,8 @@
+{
+ "production_checker_matches_validated_prototype": true,
+ "sha256": "26021113d121cfc9ab0d6e7ea7ce8d02eb6c4637c42bbdd2647ecd2d9291f3fb",
+ "main_source_commit": "637da4c86e",
+ "isolated_audit": "1193/202/1353, standard-three only; PASS",
+ "new_test": "19+3; final state restored; PASS",
+ "integration": "PASS; same original Lake process completed, no restart"
+}
diff --git a/reports/data/hexrcf-admission/cell-source-cost-1.log.gz b/reports/data/hexrcf-admission/cell-source-cost-1.log.gz
new file mode 100644
index 0000000000..ca37109d62
Binary files /dev/null and b/reports/data/hexrcf-admission/cell-source-cost-1.log.gz differ
diff --git a/reports/data/hexrcf-admission/cell-source-cost-inputs.json b/reports/data/hexrcf-admission/cell-source-cost-inputs.json
new file mode 100644
index 0000000000..f0fd93f52d
--- /dev/null
+++ b/reports/data/hexrcf-admission/cell-source-cost-inputs.json
@@ -0,0 +1,12 @@
+{
+ "source_head": "1a666ea7c85d63cd9bc9372f78c8fdbbe1bf191d",
+ "original_sha256": "bea057fe5c9470d701e02974fbd6a83e945bbaba1225ca294830f54ef762f504",
+ "probe_sha256": "f3e9f93c0f1f1529a84a5c6befc8a2a087909f63271a86c327d3791de4491957",
+ "changes": [
+ "namespace only",
+ "profiler=true,threshold=100ms",
+ "profile existing complete RootQuote.runWith action"
+ ],
+ "question": "Does ordinary kernel candidate checking/goal agreement account for the observed 916s source quotation cost? Admission traversal is a hypothesis, not an established bottleneck.",
+ "limits": "One diagnostic only, bounded32GiB/swap0/two threads; unchanged proof guards and24Mnodes/60Mheartbeats. No matched speedup or scaling claim."
+}
diff --git a/reports/data/hexrcf-admission/cell-source-cost-invocation.json b/reports/data/hexrcf-admission/cell-source-cost-invocation.json
new file mode 100644
index 0000000000..33f17eef73
--- /dev/null
+++ b/reports/data/hexrcf-admission/cell-source-cost-invocation.json
@@ -0,0 +1,8 @@
+{
+ "pid": 277101,
+ "argv": [
+ "/home/kim/.elan/toolchains/leanprover--lean4---v4.35.0-rc3/bin/lake",
+ "build",
+ "CellSourceCost"
+ ]
+}
diff --git a/reports/data/hexrcf-admission/cell-source-cost-memory-policy.txt b/reports/data/hexrcf-admission/cell-source-cost-memory-policy.txt
new file mode 100644
index 0000000000..769f581855
--- /dev/null
+++ b/reports/data/hexrcf-admission/cell-source-cost-memory-policy.txt
@@ -0,0 +1,5 @@
+ActiveState=active
+OOMPolicy=kill
+MemoryMax=34359738368
+MemorySwapMax=0
+Environment=PATH=/home/kim/.claude-patched:/home/kim/.local/bin:/home/kim/bin:/home/kim/.npm-global/bin:/run/wrappers/bin:/home/kim/.nix-profile/bin:/nix/profile/bin:/home/kim/.local/state/nix/profile/bin:/etc/profiles/per-user/kim/bin:/nix/var/nix/profiles/default/bin:/run/current-system/sw/bin LEAN_NUM_THREADS=2
diff --git a/reports/data/hexrcf-admission/cell-source-cost-profiler-semantics.lean.txt b/reports/data/hexrcf-admission/cell-source-cost-profiler-semantics.lean.txt
new file mode 100644
index 0000000000..df21629886
--- /dev/null
+++ b/reports/data/hexrcf-admission/cell-source-cost-profiler-semantics.lean.txt
@@ -0,0 +1,56 @@
+/-
+Copyright (c) 2019 Sebastian Ullrich. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Author: Sebastian Ullrich
+-/
+module
+
+prelude
+public import Init.Data.OfScientific
+public import Lean.Data.Options
+
+public section
+
+namespace Lean
+
+register_builtin_option profiler : Bool := {
+ defValue := false
+ descr := "show exclusive execution times of various Lean components
+
+See also `trace.profiler` for an alternative profiling system with structured output."
+}
+
+register_builtin_option profiler.threshold : Nat := {
+ defValue := 100
+ descr := "threshold in milliseconds, profiling times under threshold will not be reported individually"
+}
+
+@[export lean_get_profiler]
+private def get_profiler (o : Options) : Bool :=
+ profiler.get o
+
+@[export lean_get_profiler_threshold]
+def profiler.threshold.getSecs (o : Options) : Float :=
+ (profiler.threshold.get o).toFloat / 1000
+
+/-- Print and accumulate run time of `act` when option `profiler` is set to `true`. -/
+@[extern "lean_profileit"]
+def profileit {α : Type} (category : @& String) (opts : @& Options) (fn : Unit → α) (decl := Name.anonymous) : α := fn ()
+
+unsafe def profileitIOUnsafe {ε α : Type} (category : String) (opts : Options) (act : EIO ε α) (decl := Name.anonymous) : EIO ε α :=
+ match profileit (decl := decl) category opts fun _ => unsafeEIO act with
+ | Except.ok a => pure a
+ | Except.error e => throw e
+
+@[implemented_by profileitIOUnsafe]
+def profileitIO {ε α : Type} (category : String) (opts : Options) (act : EIO ε α) (decl := Name.anonymous) : EIO ε α := act
+
+-- impossible to infer `ε`
+def profileitM {m : Type → Type} (ε : Type) [MonadFunctorT (EIO ε) m] {α : Type} (category : String) (opts : Options) (act : m α) (decl := Name.anonymous) : m α :=
+ monadMap (fun {β} => profileitIO (ε := ε) (α := β) (decl := decl) category opts) act
+
+/-- Print all profiling times (if any) to standard error. -/
+@[extern "lean_display_cumulative_profiling_times"]
+opaque displayCumulativeProfilingTimes : BaseIO Unit
+
+end Lean
diff --git a/reports/data/hexrcf-admission/cell-source-cost-results.json b/reports/data/hexrcf-admission/cell-source-cost-results.json
new file mode 100644
index 0000000000..63ce898847
--- /dev/null
+++ b/reports/data/hexrcf-admission/cell-source-cost-results.json
@@ -0,0 +1,47 @@
+{
+ "source_head": "1a666ea7c85d63cd9bc9372f78c8fdbbe1bf191d",
+ "exclusive_seconds": {
+ "attribute application": 2.2e-05,
+ "compilation (IR)": 0.00335,
+ "compilation (LCNF base)": 0.42,
+ "compilation (LCNF impure)": 0.028399999999999998,
+ "compilation (LCNF mono)": 0.037,
+ "complete algebraic source quotation": 664.0,
+ "congr simp thm": 0.000619,
+ "do element elaborator": 0.0937,
+ "dsimp": 0.00266,
+ "elaboration": 0.528,
+ "fix level params": 0.000112,
+ "instantiate metavars": 3.91e-05,
+ "interpretation": 0.00299,
+ "let-to-have transformation": 1.4999999999999999e-05,
+ "linting": 0.163,
+ "norm_num": 0.00207,
+ "overlappingInstancesLinter": 0.013699999999999999,
+ "parsing": 0.007679999999999999,
+ "process pre-definitions": 0.0035600000000000002,
+ "rcf proof candidate check": 0.829,
+ "rcf proof goal agreement": 0.234,
+ "rcf source preparation": 0.0974,
+ "share common exprs": 0.00158,
+ "simp": 0.00853,
+ "sym canon": 0.000305,
+ "sym typeclass inference": 0.0119,
+ "tactic execution": 0.0363,
+ "tacticAnalysis": 0.0431,
+ "type checking": 211.0,
+ "typeclass inference": 0.276
+ },
+ "proof_nodes": 8651669,
+ "axioms": [
+ "propext",
+ "Classical.choice",
+ "Quot.sound"
+ ],
+ "service_runtime": "14min50.650s",
+ "cpu": "14min49.627s",
+ "peak": "2.3G",
+ "swap": "0B",
+ "interpretation": "Native profiler reports exclusive categories. Candidate-check829ms excludes separately profiled nested type checking; do not call this its inclusive cost. The664s source-quotation category is unattributed work, not an identified admission bottleneck.",
+ "next_question": "Focused wrappers in detached checkout separately time unchanged admission and unsafe checks; one new diagnostic, no optimization or matched benchmark."
+}
diff --git a/reports/data/hexrcf-admission/context.json b/reports/data/hexrcf-admission/context.json
new file mode 100644
index 0000000000..989522e515
--- /dev/null
+++ b/reports/data/hexrcf-admission/context.json
@@ -0,0 +1,520 @@
+{
+ "source_commit": "637da4c86e71f453980d68a9c455c281359283d8",
+ "base_commit": "1a666ea7c85d63cd9bc9372f78c8fdbbe1bf191d",
+ "parent_context_sha256": "cf782db33344b6a8a3595ba47e03c694b7c569029ef96cfca71491d0d89e3347",
+ "sources": {
+ ".github/workflows/ci.yml": "5db61a70eb52d7478994377179c1b35b360a794fcff4b1c257496b5a6394231c",
+ "AGENTS.md": "4e0a48cf49a61e56ed84c8b28e232b5bfad29f2da20571377692be6e1c316f30",
+ "HexManual/Chapters/HexRCF/AlgebraicCells.lean": "4fd07893031c5857cf27dbc70e2dd571369a02d358923e50520815da37029451",
+ "HexManual/Chapters/HexRCF/RootQuote.lean": "0fe7ecb8568a5b3492aeea8310a4816797802d0a764093b824673a635ecf628a",
+ "HexManual/Chapters/HexRCF/RootTableQuote.lean": "78d1be637a32593b03f000ab153c7fdf05a1b5332ea3efb9c186aacfd68f0ae5",
+ "HexRCF/HandlerTests/Admission.lean": "770518931dd3f7ab1934e327460b80607338207b17d97363b82c2a5c93669c36",
+ "HexRCF/README.md": "3830d758a8a75d59df1a6dd01f59204a86858b5eda3e43a78f9e9e9c2d769a8a",
+ "HexRCF/SPEC/hex-rcf.md": "df8c6bb2435a2794faa36bc77e41f4c936f06ae149f29c3e68fe0d79f4ebfafb",
+ "HexRCF/Tactic.lean": "26021113d121cfc9ab0d6e7ea7ce8d02eb6c4637c42bbdd2647ecd2d9291f3fb",
+ "HexRealClosure/Algebraic.lean": "d05f9fb72fe9544ae9ddc685dff17080f876aa4c99c70e8992d511e011f6a454",
+ "HexRealClosure/ContextData.lean": "ca29790752b8d25f10d03a9877690a5ff40f1fdf6815c96fe9693941206e662c",
+ "HexRealClosure/SignCodec.lean": "7126323c97b77204386795a0f252f1babfd0ed7f3dba7ee3927a99b9d5c1852a",
+ "HexRealClosure/SignFacts.lean": "9c22837e93e6f50cc96310163e352ac608fbcfbd6275edab33751da2fd84f47c",
+ "HexRealClosure/SignatureCodecTests.lean": "ffc72777523ac0e92b563481804bdfb581fb0173fe7a021009737d57959b4462",
+ "HexRealClosure/TowerContext.lean": "6ef8b87b2d81cb177505a4bbc88befa078b20578cedd49e836d850753c203ee3",
+ "PLAN.md": "e94a60324486913b4a04650edd617c4ff8bef469dc7fd311adea8407c6662ea0",
+ "SPEC/real-closure-execution.md": "bc0948ad7de6969baaed89c0b3052cb0d21d64d634f8a336f9a7dde446b057f5",
+ "adapters/HexRCF/RealCoefficients.lean": "0056d497cd09f465ce44102b6a80b42fa3be35f46e60208179a5473447e7e1b5",
+ "adapters/HexRCF/RealCoefficients/CellOperations.lean": "3561cc80c7c866141f05a387ce1100ee0cadd98281a03395551cebcde5bd6e2a",
+ "adapters/HexRCF/RealCoefficients/CellQuote.lean": "c572911d7be36001e0f1885c3460f3eb19425d90e78345b1c46878ddf3e6c6ea",
+ "adapters/HexRCF/RealCoefficients/CellRead.lean": "65274f89c940bad74eab8c9075f9256c6ed3d8b90d3294aec4e85883e425fb10",
+ "adapters/HexRCF/RealCoefficients/RationalQuote.lean": "675e2ba065b696f257adefc07fe30ddb0190f321d86005444579ea5a0744bdf5",
+ "adapters/HexRCF/RealCoefficients/RealModel.lean": "712b4fd3edff8eaa6f93e501da5debf04529d1ea8c11a18389820f866d179c43",
+ "adapters/HexRCF/RealCoefficients/Reify.lean": "ea8474b9e253f93a1583064ca99ec0bf376dadf5457fd60b57e9e18460cf449c",
+ "adapters/HexRCF/RealCoefficients/RootContext.lean": "792176eab63e5e62b759a10893569946ef6d019566b8116c85237b3e16fcdb86",
+ "adapters/HexRCF/RealCoefficients/RootHeader.lean": "681f2a964bc30f65a92a0fb1a58b4d4013eb396df37ca813962702065fb46261",
+ "adapters/HexRCF/RealCoefficients/RootPrepare.lean": "de72a8e3ac4adb13365801476467bf691e630d0952b018ccecd88846c3bdb025",
+ "adapters/HexRCF/RealCoefficients/RootQuote.lean": "89f3ad4b0c4a8ae058560201900877035d896427176b944b34acde9f9b23d7e8",
+ "adapters/HexRCF/RealCoefficients/RowPacketQuote.lean": "edbb3d23f72422f5a1dea163c283848ec285418b7bdb9eedba553b83066121af",
+ "adapters/HexRCF/RealCoefficients/RowQuote.lean": "3b7e7d2ebcbd53a6ea893bc8f4c884d767430f8b98a3f1ca770fe7c7b122f3c9",
+ "adapters/HexRCF/RealCoefficients/ScalarPacket.lean": "9ae62bea85dab43ec01329defa9f788af4843e74b24f40f6c6f1b28adaadc6bf",
+ "adapters/HexRCF/RealCoefficients/ScalarQuote.lean": "fee2617a998f29d05c8959b484060ac1d719359c6d851a8ff6699fa9cb370acc",
+ "adapters/HexRCF/RealCoefficients/SignatureQuote.lean": "c3bb71b52c2a544b902bc256b3a162e1c3c4e7f94ae6b21808914e67109710eb",
+ "adapters/HexRCF/RealCoefficients/SourceIdentity.lean": "d98ae0c746003be89edfc969e464383e6a6bda253e0dae8c290605e8b98ce3c3",
+ "adapters/HexRCF/RealCoefficients/SourceIdentityQuote.lean": "37c54a56f48b265d0ddca38ecae2c572871e8b7f1600b54f330ff3da60252fa7",
+ "adapters/HexRealClosureTheory/Algebraic.lean": "2495153acbe4e468521913a2f5d6569831cd05f5ee48d5ddb26fc31a43438c7e",
+ "adapters/HexRealClosureTheory/SignFacts.lean": "c2b8cf96de0cccc2c0c3cbe83f0afd7c40ab9736b75f377ec5bfedc0907f34e3",
+ "adapters/HexRealClosureTheory/TowerModel.lean": "70d0e57e8ecc78eb9b7675d875157462d27cf9494d49d72bba019eaa6dd1d788",
+ "conformance-fixtures/HexRCF/source-identity.json": "93540b60174e0d8bd85ca80d99c6cbdc427815f341a12a6e38f4b38613073f53",
+ "conformance/HexRCF/CellFinishCases.lean": "619208fd6528c4f12d4e12bc4ee6fd4016ab0948db16a61237a2aefbcd523a7c",
+ "conformance/HexRCF/CellFinishProofs.lean": "fd232e3b4a64f444d834ae244a110ad0910aa35c4773a90b6a3b26a48693e22c",
+ "conformance/HexRCF/CellQuoteStageProofs.lean": "a14f3f20e1add07f569ab222994995c409552aededef738972a70c864b94b919",
+ "conformance/HexRCF/CellQuoteStages.lean": "e4593f2c8169af00398ff608dd53cbbfbe6b8408ddbdd07de6f64f59acf8a25f",
+ "conformance/HexRCF/CellSourceProofs.lean": "cea22d1a532dc4415130ff1c9c20f43707ab9696c7df53c858bdfa41ad76f018",
+ "conformance/HexRCF/CellSourceQuote.lean": "bea057fe5c9470d701e02974fbd6a83e945bbaba1225ca294830f54ef762f504",
+ "conformance/HexRCF/DependentQuote.lean": "0df154544a17857334480e7c577ecbcf1afe04165fa2da1a5a6407bf41e85518",
+ "conformance/HexRCF/DependentQuoteData.lean": "ed254475e78fa6edb27d4e55222a598b07b7357154ea0495d6195f2f1d39ee46",
+ "conformance/HexRCF/DependentQuoteProofs.lean": "5875aa9748f50340668e58aea97b196d3353313352fb8c819ae5ee3542556980",
+ "conformance/HexRCF/DependentScalarProofs.lean": "9fe3f3871f929e28355985c574c0b8c742be062ae5f19033d7d8bf9e67cd88d8",
+ "conformance/HexRCF/DependentScalarQuote.lean": "e20dd7346c337dd17126c394965f268e568706730f475844d7c0907051224933",
+ "conformance/HexRCF/FrozenSignatureConformance.lean": "8e7d432aecb87fb89bb188e4c579e86fb5c3348c5430f1e2b1a00f1f820a940e",
+ "conformance/HexRCF/FrozenSignatureProofs.lean": "55de6da9b0b3dc2d1e384d6c838d13294287c44060afb8e70aa2a0c8e01a81cb",
+ "conformance/HexRCF/ProofFunctionPublic.lean": "f928c9f0dd0a704d34a516b6282cfa6a7a4eb6c112d49689c450647a44370a6b",
+ "conformance/HexRCF/PublicSignPacket.lean": "c32d73c5634376907b965e1ea6cf69352fdda1f1945ce2f34a378cc217778102",
+ "conformance/HexRCF/PublicSignPacketControls.lean": "b4f98bd8ef190a361dd7752d4d5ece0cfbd862ff4face5a06dfabecf87096028",
+ "conformance/HexRCF/PublicSignPacketProofs.lean": "442f6d3e04a36db25611f0396103a1eee5ee411c40e8f3cc93df1acf7898bbbb",
+ "conformance/HexRCF/PublicSignPacketValues.lean": "72705dba30f04f986188903fb49b983c6f0a664895116fca8bd8b6b46b6517e5",
+ "conformance/HexRCF/QuotientQuote.lean": "97b2cbc9abdb46db33a9a91328f331edf8dea055cc244489158121cde8dc1903",
+ "conformance/HexRCF/QuotientQuoteData.lean": "ec26777d655a7898d7f7922fcea8f426a3f8c77a53000b69b6fe1755a0348870",
+ "conformance/HexRCF/QuotientQuoteProofs.lean": "f1d95accf6caed1c7354408b3a1a0b29493a526e82036390e39102ebe80c6752",
+ "conformance/HexRCF/QuotientQuotePublic.lean": "a3bd9a082df14a0ac93ba3798e13c6ebbf9dff98d7613264713aa281a5a18bea",
+ "conformance/HexRCF/RationalQuoteConformance.lean": "f03844d4a44a5c61b702ed0b1697619da9b20f4ac42122b9d1a6d3fa4a2de9ac",
+ "conformance/HexRCF/RecursiveScalarQuote.lean": "83ba1f3ed63afdbb148f171736a0aacebc7eef4ae3bf32dca29811515c3f051b",
+ "conformance/HexRCF/ReplayBoundary.lean": "bbc09553d62198a18e897981d5f443c81f09dba8d371d2cdaeaa846d22cbc2f8",
+ "conformance/HexRCF/ReplayBoundaryProofs.lean": "d755462a7344dc9f5304fba255bcefb42188c1de5a51d92d8567a27f22482dc2",
+ "conformance/HexRCF/ReplayHelperProofs.lean": "6dd68829399ec8908a877a3f7705cc9321e49b9581d0d577d114950242e43a57",
+ "conformance/HexRCF/ReplayHelpers.lean": "4501fa39e52a8a2bb52fdd7b183c16801090dd026304105afb4342a1c441c2a3",
+ "conformance/HexRCF/RootContextConformance.lean": "0c52084609ec3de8afd51330a7d2cc97f7bae1d8b2bbc421138783940fc7db37",
+ "conformance/HexRCF/RootContextProofs.lean": "b4c2e3ce686ce8bc60bfdafe2be2f566c6de46758f4827d307f3d5592b59d2e9",
+ "conformance/HexRCF/RootHeaderBudget.lean": "db30b6b7781fabd238ea2c934477e5ae281cc6cd905f11848ce46eb66ef45fe0",
+ "conformance/HexRCF/RootHeaderControls.lean": "aca063af3bfe475166aef92193f162c25a0e53eea094087cf334406a3d513157",
+ "conformance/HexRCF/RootHeaderPacket.lean": "dcd8e63c1d656fc800690b35554a0f835a1ee0bb96312215f8c12348d8a0e79a",
+ "conformance/HexRCF/RootHeaderProofs.lean": "e6630f0464fd0096b9af74b4640d2abc514a62c0b0fc706b4a2e74c9602eeb8c",
+ "conformance/HexRCF/RootHeaderValues.lean": "de9a8fc7c2e9371cbd3324eb700180411e49865dbc6535a74d2c882f74e38e13",
+ "conformance/HexRCF/RootPrepareControls.lean": "b36af8efd1e12227188b6fb7bde258e80d5c1c874338a324cb53c5ccc6c1330f",
+ "conformance/HexRCF/RootPreparePacket.lean": "86185bcc5fdddb1f700d869a115a91034954714f69a83171fd0e96f601e76fe3",
+ "conformance/HexRCF/RootPrepareProofs.lean": "4a5bc6655576a6592fcd5cd801bcfebd425243b1bb6cb39b0bb46d500a3938be",
+ "conformance/HexRCF/RootPreparePublic.lean": "a9e09cbe8d1287b97dde71ad1c6dbe149cfbacb6f81f41a8493ee802416d0805",
+ "conformance/HexRCF/RootQuoteCases.lean": "602d15ef501e969183bffbda7fb3c0f00a174ba5c2dbc35370ee7fce896944dd",
+ "conformance/HexRCF/RootQuoteConformance.lean": "f6a652a243ba62cffc671d1365c6ab47b6618179acb172019ec5609ea0324d3c",
+ "conformance/HexRCF/RootQuoteData.lean": "faa259d129d5c65a063c7143e45d5d9d19573ed49862aa5ecb3978ff389cb514",
+ "conformance/HexRCF/RootQuoteSource.lean": "aca1654efc1a452aca8ef573bb8ea3a435a4e1e18a4dca854d9bcc8e350d511d",
+ "conformance/HexRCF/RootTableQuote/Conformance.lean": "ec5bd136df58cc24a40ca989e3d33e55923082aed7591b234f55c70c013c74ad",
+ "conformance/HexRCF/RowPacketControls.lean": "ab69c57b66fe8129be5f07e5e5f42b7b35d60a23b305ec224d2d7dca28ac7c82",
+ "conformance/HexRCF/RowQuoteCases.lean": "8d2ebddc05d5f0d08b62b50d3498b34b47ab0b3accc4d0a572e621fd83d606d4",
+ "conformance/HexRCF/RowQuoteData.lean": "ce60cb18f548f55e929d4803c7ed824ad0a7621fd4abda09a191f76393fabf0c",
+ "conformance/HexRCF/RowQuoteDepth.lean": "6ada3c44bea055425d223dc57eafb4f0c88349713d815ded4beec9720f7802ad",
+ "conformance/HexRCF/RowQuoteProofs.lean": "317d4f981f32bb28666fcabc6248f4a57fe67c95a7fe431f7993aeacfa377ed3",
+ "conformance/HexRCF/SelectedRoot/KernelCheck.lean": "12e7e2e3f4667a76dc89c4b36796bff177f3c187b81adc5eb5e049ff1ce6669d",
+ "conformance/HexRCF/SharedQuoteCallbacks.lean": "6132cc3722af3cf251d11c857a572f09128d3614d931724965cbcf488dc4db6d",
+ "conformance/HexRCF/SignPacketProofs.lean": "3980cad31637f5798b2c351e1efc2a29b946de1d90e06fb11acd85e2a5c46321",
+ "conformance/HexRCF/SignPacketQuote.lean": "fcda11e6c75353d4519c4eb0e9c302b84d7e41030316c99fcacb885dabf97545",
+ "conformance/HexRCF/SignatureQuoteConformance.lean": "26f16c37cb9e0d5c09a082787f4a66673437adbf998023fd5e9625db16ff5d3f",
+ "conformance/HexRCF/SourceIdentityControls.lean": "c655486606139658d73e5b4d394228c3632596fec366e3b410ea9deb5b085553",
+ "conformance/HexRCF/SourceIdentityEmit.lean": "aa12f1517efc675698c0795c5a463a77d7a3466bcc146d4981d82e913059ed99",
+ "conformance/HexRCF/SourceIdentityLiterals.lean": "61ee2ce703d4965b00e1e20cc62288a0bde4e839d68ca09e1b66281f4a3e48d0",
+ "conformance/HexRCF/SourceIdentityPacket.lean": "614b3132274de5bebebeecb09cf479ac68723f1518e1f52912543a812985a4a9",
+ "conformance/HexRCF/SourceIdentityProofs.lean": "c449238d5f915dbe1f337688bc4f7357f3a93e31ad79eaa9e8e159c280749173",
+ "conformance/HexRCF/SourceSelectionCases.lean": "368ded3f07bb4be269f26a2fd2b7044904ea16d1dd1cba41d8bccb373d004005",
+ "conformance/HexRCF/TreeQuote.lean": "049065aa64bb13432b1d7183759979d28eebba98d18b6f54ab849e5953ce92c1",
+ "conformance/HexRCF/TreeQuoteData.lean": "c595c2278d2997483b755aa585da874c27eed40e4e1a8106d7f553e4f574776b",
+ "conformance/HexRCF/TreeQuoteProofs.lean": "f9a40248237480f8972df62dff548ef0599205b76014e070866e72586f161933",
+ "conformance/HexRCF/TreeQuotePublic.lean": "adc6dc6871208f31970cf5ae0c2472fd325a72e1df8114a6e8178ef8b2c71570",
+ "experiments/KernelReplay/AxiomClosure.lean": "f49377265f05f52b633b10a59255a03731e08d022cc54763de9851c5b5325034",
+ "lake-manifest.json": "fd2dc4df30cd44e4d30568489d616e7bcc8a78747500139134be56f35ae746a4",
+ "lakefile.lean": "6c3a0ec428c7d7d027f00278cfdeb14dbf639f115b5b442150ce327c7175deea",
+ "lean-toolchain": "bc84812c94489d1e3e191baa1dc10d5eb684382d7fe9d2a5ab085e72c1c67e47",
+ "libraries.yml": "14e3dd1c01bb0c369b2216e2733378d61172040fd9f69dd0354d4e1267d9c5c1",
+ "scripts/rcf/source_identity_literals.py": "ea5d7df949871c4975367a759b9632d033f3a240523c2c917c9141220ffdfd78"
+ },
+ "artifacts": [
+ {
+ "path": "Admission.lean.pending",
+ "bytes": 3474,
+ "sha256": "237cb076dc5729033c865b326a0a53bd8d09d7595453c822b8f1dc6c4cfd639f"
+ },
+ {
+ "path": "ForestAudit.lean.txt",
+ "bytes": 4923,
+ "sha256": "899ab18e467d0738e252881b6e236c9ad0ecf942fddfef9fe9d9dd31b229666e"
+ },
+ {
+ "path": "README.md",
+ "bytes": 1776,
+ "sha256": "c80e91714ca3eeb5cdc594b69a6a6579dff42627feaf9543c61a63dbe6368586"
+ },
+ {
+ "path": "axiom-forest-admission-1.log.gz",
+ "bytes": 429,
+ "sha256": "1734518637465d54f4a7322b20ecc51827f4233ab25e9553e6a566cfeeb76ef8"
+ },
+ {
+ "path": "axiom-forest-admission-2.log.gz",
+ "bytes": 404,
+ "sha256": "fa55fbc9bb6b9bd5656f27fe6221c5c905d174053d588dd24500415341147779"
+ },
+ {
+ "path": "axiom-forest-audit-1.log.gz",
+ "bytes": 12304,
+ "sha256": "636fc33c74035de8e3e2b9f624c9cd58fce1b56c88d2245981cde95b341f4215"
+ },
+ {
+ "path": "axiom-forest-checks-1-inputs/AxiomForestChecks.lean.txt",
+ "bytes": 1895,
+ "sha256": "2b626a4ca4a91f5918f6aa1b391150784cf4701c50fb6e2b083262125d64c7f7"
+ },
+ {
+ "path": "axiom-forest-checks-1.log.gz",
+ "bytes": 687,
+ "sha256": "c8db64fac19baa0f470c6b29a9fbb8e6a1e3c8574297ffda3cce453a003f375e"
+ },
+ {
+ "path": "axiom-forest-checks-2.log.gz",
+ "bytes": 350,
+ "sha256": "f642ca2f87998de337409aba0cc8a470ab704014f8f59c531e74c882045e2d7c"
+ },
+ {
+ "path": "axiom-forest-core-1.log.gz",
+ "bytes": 274,
+ "sha256": "f89bbefa8c8737bb4056ad1a347a1501a576b384af320c6f96ef5202e7c44660"
+ },
+ {
+ "path": "axiom-forest-cost-1.log.gz",
+ "bytes": 466,
+ "sha256": "e77f27d63cbdcec63cc21bc16d304ae2e2b97a575aeb23e58f5f9a5079c9c927"
+ },
+ {
+ "path": "axiom-forest-cost-context.json",
+ "bytes": 299,
+ "sha256": "8496239217f4394d1ba28ea5beac08dc215bc6adeec0d86e6a052e6b3ce9d3ba"
+ },
+ {
+ "path": "axiom-forest-full-1-inputs/AxiomForestChecks.lean.txt",
+ "bytes": 2306,
+ "sha256": "d9b762c360be6f78ffc5c345878bf0b5d8aa884f4465147fabbfdd6d16fefc6f"
+ },
+ {
+ "path": "axiom-forest-full-1-inputs/AxiomForestCost.lean.txt",
+ "bytes": 1287,
+ "sha256": "ea337f33db23855c3054128cc39de8ad61a714c90de00a29f78e75c8b79a9508"
+ },
+ {
+ "path": "axiom-forest-full-1-inputs/CellSourceCost.lean.txt",
+ "bytes": 11383,
+ "sha256": "f3e9f93c0f1f1529a84a5c6befc8a2a087909f63271a86c327d3791de4491957"
+ },
+ {
+ "path": "axiom-forest-full-1-inputs/Tactic.lean.txt",
+ "bytes": 13998,
+ "sha256": "26021113d121cfc9ab0d6e7ea7ce8d02eb6c4637c42bbdd2647ecd2d9291f3fb"
+ },
+ {
+ "path": "axiom-forest-full-1.log.gz",
+ "bytes": 12376,
+ "sha256": "ad793c063843689889a41aa55f9930dfa5ae71d8d5dd5c1ec750f05ae5373965"
+ },
+ {
+ "path": "axiom-forest-integration-1.log.gz",
+ "bytes": 29952,
+ "sha256": "40ef514e40c05c1b80ffeea250d410c7afaa5755688113a7e46883817043ff4a"
+ },
+ {
+ "path": "axiom-forest-integration-invocation.json",
+ "bytes": 1899,
+ "sha256": "1e5571b3835cf20e3fbb196cde354fcf5f5b1973921427a409414088bf2055bb"
+ },
+ {
+ "path": "axiom-forest-integration-memory-policy.txt",
+ "bytes": 98,
+ "sha256": "eb88d7b4a2b5d2e0553d29508ef32a7da01f62d902ca0892338c4fb7f54ed84b"
+ },
+ {
+ "path": "axiom-forest-metadata-admissions.log.gz",
+ "bytes": 100,
+ "sha256": "a03bc6497f7874bd347cf6ba4b9b9ab91996c92cd706008e36105c28964247c3"
+ },
+ {
+ "path": "axiom-forest-metadata-copyright.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64"
+ },
+ {
+ "path": "axiom-forest-metadata-dag.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64"
+ },
+ {
+ "path": "axiom-forest-metadata-diff.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64"
+ },
+ {
+ "path": "axiom-forest-metadata-lines.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64"
+ },
+ {
+ "path": "axiom-forest-metadata-negative-probe-failure.log.gz",
+ "bytes": 220,
+ "sha256": "8b1fd54c293c4689740a501f58fdab9a04499890761853f6161d7ab0f0667602"
+ },
+ {
+ "path": "axiom-forest-metadata-relative.log.gz",
+ "bytes": 105,
+ "sha256": "c43d1ba9fa5a6ea3d05919ed8b5f63ae6d92bdbc66b09a9c0e2db03229da84e9"
+ },
+ {
+ "path": "axiom-forest-metadata-selected-admissions.log.gz",
+ "bytes": 204,
+ "sha256": "4e5f78d1cdb8e29446c2e801dcffb2d245def5838ba80efece31a9fbe8e431c0"
+ },
+ {
+ "path": "axiom-forest-metadata-summary.log.gz",
+ "bytes": 79,
+ "sha256": "3956b87a47b24f981cca11f7704b8421254b1df0ae1f7d3f1e180cbfcc9ad50e"
+ },
+ {
+ "path": "axiom-forest-metadata.json",
+ "bytes": 1155,
+ "sha256": "1a9dd323bee7a5e718fb6efb72a94951264a5b80b87f2bdaed14d6b6358d4518"
+ },
+ {
+ "path": "axiom-forest-metadata.py",
+ "bytes": 3896,
+ "sha256": "73fcea3b3031cecaf28101c3f8a2d5dfd9109db461c814d33356bc3386bd701d"
+ },
+ {
+ "path": "axiom-forest-prototype.json",
+ "bytes": 1142,
+ "sha256": "8c6d03d8eef75c5489ff65eaaf8a13eeba485b0f80f048f759cef3f478e03058"
+ },
+ {
+ "path": "axiom-forest-prototype.patch.gz",
+ "bytes": 1540,
+ "sha256": "2dda4307c1857d675aef48cecd00ddce0b747d59bb77773f7fd17ef2c0950f5b"
+ },
+ {
+ "path": "axiom-forest-source-equivalence.json",
+ "bytes": 368,
+ "sha256": "8655efc3ee1952fbaf9f39b1c2f9e678c7e5fc3e04688a3a870c1392cc96761e"
+ },
+ {
+ "path": "cell-source-cost-1.log.gz",
+ "bytes": 10409,
+ "sha256": "49d35388ab2cb93e8a9b0c29664f6d41d1a01b1bf1b0121319cfa70362b9215d"
+ },
+ {
+ "path": "cell-source-cost-inputs.json",
+ "bytes": 723,
+ "sha256": "b903a24ff7884af0c85b384e697bf7870b17ce17b17b1e3a026d9c93e1107f5e"
+ },
+ {
+ "path": "cell-source-cost-invocation.json",
+ "bytes": 146,
+ "sha256": "25007240325b68710e22446db73e3d9fdbaa5c9c9c0fd8825b968b948838cf21"
+ },
+ {
+ "path": "cell-source-cost-memory-policy.txt",
+ "bytes": 388,
+ "sha256": "bcd60928bece986758499f7160c443b9a722ebe3ab645c2038a0968c19ed3b55"
+ },
+ {
+ "path": "cell-source-cost-profiler-semantics.lean.txt",
+ "bytes": 2075,
+ "sha256": "bb6f45b4c357fa61c9bc647e4129343489af018505cdbc2422a92081053c890f"
+ },
+ {
+ "path": "cell-source-cost-results.json",
+ "bytes": 1823,
+ "sha256": "2789abbc8a485c9d970cf718c3428a7fccaafdabf311564471191b0298176064"
+ },
+ {
+ "path": "cpu_lease.py.txt",
+ "bytes": 765,
+ "sha256": "2da6fe01f5637f57b1f92a4baf743c8cfaa47ed61a51632f8b60173bc6436cdb"
+ },
+ {
+ "path": "guard-cost-core-1-inputs/Tactic.lean.txt",
+ "bytes": 12457,
+ "sha256": "0816fb99d08180075762058d50a18ffbf483ed4446861e838087b95de4e35f54"
+ },
+ {
+ "path": "guard-cost-core-1.log.gz",
+ "bytes": 662,
+ "sha256": "b6451964bdf0b058a592e43f510c1310848ad8c64477ac1092d5b04f886ebb5e"
+ },
+ {
+ "path": "guard-cost-core-2.log.gz",
+ "bytes": 273,
+ "sha256": "be93c5d2af83f2404fae2f3421abbde0cd6aff28f4d7813bc46a9d82595f9c4b"
+ },
+ {
+ "path": "guard-cost-dependencies.json",
+ "bytes": 944,
+ "sha256": "a66500f5a9b53abeb52464876e86ddd6430f9c9f56451871e3977f2e3fb020d0"
+ },
+ {
+ "path": "guard-cost-full-1-inputs/CellSourceCost.lean.txt",
+ "bytes": 11383,
+ "sha256": "f3e9f93c0f1f1529a84a5c6befc8a2a087909f63271a86c327d3791de4491957"
+ },
+ {
+ "path": "guard-cost-full-1-inputs/Tactic.lean.txt",
+ "bytes": 12473,
+ "sha256": "d79561a41df94ffa3be63b5259665af29f1b14628217d07dfcd055ec40444417"
+ },
+ {
+ "path": "guard-cost-full-1-inputs/lakefile.lean.txt",
+ "bytes": 140,
+ "sha256": "abd5e5ade29434a8b69b489b39bc121ddfec2374fb73d91d253247e5f03011d8"
+ },
+ {
+ "path": "guard-cost-full-1.log.gz",
+ "bytes": 3723,
+ "sha256": "84d51c75b3812af702689c6303c67130aa3353804351f16181088d2f7850b41d"
+ },
+ {
+ "path": "guard-cost-full-2.log.gz",
+ "bytes": 6894,
+ "sha256": "c5520c035aebbd373cd1e9d31be8170a6eb97a572793ef34287f2e1af67e1088"
+ },
+ {
+ "path": "guard-cost-full-3-invocation.json",
+ "bytes": 146,
+ "sha256": "14a98821b75303f2226b27818cbc33d2ed7e97283698dc7ed2b61f7ec407f8d0"
+ },
+ {
+ "path": "guard-cost-full-3-memory-policy.txt",
+ "bytes": 388,
+ "sha256": "bcd60928bece986758499f7160c443b9a722ebe3ab645c2038a0968c19ed3b55"
+ },
+ {
+ "path": "guard-cost-full-3.log.gz",
+ "bytes": 13058,
+ "sha256": "09679ae77250ac4150cd029e72f7e05b6490cd2c537cb34e5d67abb3ae4671c8"
+ },
+ {
+ "path": "guard-cost-guard-equivalence.txt",
+ "bytes": 190,
+ "sha256": "ea9829fb095a87301efededdef09d7365058d82abe0a3ebbd712396310e335af"
+ },
+ {
+ "path": "guard-cost-inputs.json",
+ "bytes": 623,
+ "sha256": "d97c1b73b2d4a6678904a21d6fe4dff386cf5e47171bdc43e13714ec5916793f"
+ },
+ {
+ "path": "guard-cost-results.json",
+ "bytes": 1574,
+ "sha256": "bea500ac74aa3460c406f86b863571dc96e3dc75e6078bbdcdc667f0dd77e07a"
+ },
+ {
+ "path": "guard-cost-setup-notes.txt",
+ "bytes": 636,
+ "sha256": "d1b6b1e6a9c8d191e74eb752d619d80655ec1ecac0c7b4cb81e1122f9e144f15"
+ },
+ {
+ "path": "guard-cost-validated-tactic.lean.txt",
+ "bytes": 12473,
+ "sha256": "d79561a41df94ffa3be63b5259665af29f1b14628217d07dfcd055ec40444417"
+ },
+ {
+ "path": "initial-profile-inputs/CellSourceCost.lean.txt",
+ "bytes": 11383,
+ "sha256": "f3e9f93c0f1f1529a84a5c6befc8a2a087909f63271a86c327d3791de4491957"
+ },
+ {
+ "path": "initial-profile-inputs/lakefile.lean.txt",
+ "bytes": 4913,
+ "sha256": "7e05d5129f84b805940a2fa56ddb0d22c0835340d4c4310f42f5623ce353cb82"
+ },
+ {
+ "path": "initial-profile-inputs/lean-toolchain.txt",
+ "bytes": 29,
+ "sha256": "bc84812c94489d1e3e191baa1dc10d5eb684382d7fe9d2a5ab085e72c1c67e47"
+ },
+ {
+ "path": "lakefile.lean.txt",
+ "bytes": 213,
+ "sha256": "b799808bc28d65f5edbf1b8a8f19df7ed01158a8dcf888fc73fbf1b58debc5fa"
+ },
+ {
+ "path": "lean-toolchain.txt",
+ "bytes": 29,
+ "sha256": "bc84812c94489d1e3e191baa1dc10d5eb684382d7fe9d2a5ab085e72c1c67e47"
+ },
+ {
+ "path": "original-Tactic.lean.txt",
+ "bytes": 12157,
+ "sha256": "09d895ba1dd2c1af0bfffca197494f2614380ded268ff13e4e0b02fea22b9224"
+ },
+ {
+ "path": "run-axiom-forest-cost.py",
+ "bytes": 812,
+ "sha256": "5bfee616c739a3013b13cda258c9c62f02e9946f39683428d447cd11fbbd57a9"
+ },
+ {
+ "path": "run-bounded.txt",
+ "bytes": 302,
+ "sha256": "63bc5f97337e6b039bb3a9b1ba2a500be96fd1c2a2f73b43dae284aa9b18dda8"
+ },
+ {
+ "path": "source.patch.gz",
+ "bytes": 2893,
+ "sha256": "085626f6292a52f224da59231ab6865335067aefe6dc960552094b63cdde4a7a"
+ },
+ {
+ "path": "verify.py",
+ "bytes": 3922,
+ "sha256": "701a78398a1785e0b079ef1269802e6e1b373ac70cf20a9dc83c6d8c3b297dea"
+ }
+ ],
+ "metadata": [
+ {
+ "name": "copyright",
+ "command": [
+ "python3",
+ "scripts/check_copyright_headers.py"
+ ],
+ "log": "axiom-forest-metadata-copyright.log",
+ "exit_code": 0
+ },
+ {
+ "name": "lines",
+ "command": [
+ "python3",
+ "scripts/check_file_line_counts.py",
+ "--base",
+ "origin/main"
+ ],
+ "log": "axiom-forest-metadata-lines.log",
+ "exit_code": 0
+ },
+ {
+ "name": "dag",
+ "command": [
+ "python3",
+ "scripts/check_dag.py"
+ ],
+ "log": "axiom-forest-metadata-dag.log",
+ "exit_code": 0
+ },
+ {
+ "name": "admissions",
+ "command": [
+ "python3",
+ "scripts/ci/check_named_admissions.py"
+ ],
+ "log": "axiom-forest-metadata-admissions.log",
+ "exit_code": 0
+ },
+ {
+ "name": "diff",
+ "command": [
+ "git",
+ "diff",
+ "HEAD",
+ "--check"
+ ],
+ "log": "axiom-forest-metadata-diff.log",
+ "exit_code": 0
+ },
+ {
+ "name": "selected-admissions",
+ "log": "axiom-forest-metadata-selected-admissions.log",
+ "exit_code": 0
+ },
+ {
+ "name": "relative",
+ "log": "axiom-forest-metadata-relative.log",
+ "exit_code": 0
+ }
+ ],
+ "scope": "Per-call admission forest; exact existing kernel/unsafe/axiom policy. 19+3 negative/rollback cases, fresh1193/202/1353 audit and 51-target integration. Fixed guard-only AB/BA experiment; full-source profiles are separate diagnostics, not a whole-tactic speedup or scaling claim."
+}
diff --git a/reports/data/hexrcf-admission/cpu_lease.py.txt b/reports/data/hexrcf-admission/cpu_lease.py.txt
new file mode 100644
index 0000000000..764589cae7
--- /dev/null
+++ b/reports/data/hexrcf-admission/cpu_lease.py.txt
@@ -0,0 +1,24 @@
+"""Lease one CPU for serial shared-host measurements."""
+from __future__ import annotations
+
+import fcntl
+import os
+
+
+def cpu_lease(requested=None):
+ cpus = sorted(os.sched_getaffinity(0))
+ if requested is not None:
+ if requested not in cpus:
+ raise RuntimeError("requested CPU is outside the process affinity")
+ cpus = [requested]
+ else:
+ offset = os.getpid() % len(cpus)
+ cpus = cpus[offset:] + cpus[:offset]
+ for cpu in cpus:
+ lease = open(f'/tmp/hex-bench-cpu-{cpu}.lock', 'a')
+ try:
+ fcntl.flock(lease, fcntl.LOCK_EX | fcntl.LOCK_NB)
+ return cpu, lease
+ except BlockingIOError:
+ lease.close()
+ raise RuntimeError('all measurement CPU leases are held')
diff --git a/reports/data/hexrcf-admission/guard-cost-core-1-inputs/Tactic.lean.txt b/reports/data/hexrcf-admission/guard-cost-core-1-inputs/Tactic.lean.txt
new file mode 100644
index 0000000000..de6c6467dc
--- /dev/null
+++ b/reports/data/hexrcf-admission/guard-cost-core-1-inputs/Tactic.lean.txt
@@ -0,0 +1,271 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+
+module
+
+public import HexRCF.Reify
+public meta import HexRCF.DecisionCheck
+
+public section
+
+/-!
+# The `rcf` tactic
+
+The tactic runs certificate construction as compiled meta code, embeds the
+result as literal data, and closes true goals only through the kernel-facing
+Boolean checker and its soundness theorem. False verdicts are diagnostics.
+-/
+
+namespace Hex.RCF
+
+open Lean Elab Tactic Meta
+
+/-- An optional handler either declines the source syntax, reports a terminal
+failure (including false verdicts and exhausted/rejected replay), or proposes
+an ordinary proof of the original goal. -/
+meta inductive HandlerResult where
+ /-- This handler does not recognize the source syntax. -/
+ | declined
+ /-- Recognized syntax failed; no subsequent handler may run. -/
+ | failed (message : MessageData)
+ /-- A candidate proof, checked by the base before goal assignment. -/
+ | proved (proof : Expr)
+
+/-- Optional coefficient solvers receive the unchanged source target. -/
+meta abbrev Handler := Expr → MetaM HandlerResult
+
+private meta initialize handlerExt : SimplePersistentEnvExtension Name (Array Name) ←
+ registerSimplePersistentEnvExtension {
+ addImportedFn := fun entries => entries.flatten
+ addEntryFn := fun entries name => entries.push name
+ }
+
+meta initialize registerBuiltinAttribute {
+ name := `rcf_handler
+ descr := "register an optional closed-coefficient handler for rcf"
+ applicationTime := .afterCompilation
+ add := fun decl stx kind => do
+ ensureAttrDeclIsMeta `rcf_handler decl kind
+ Attribute.Builtin.ensureNoArgs stx
+ unless kind == AttributeKind.global do
+ throwAttrMustBeGlobal `rcf_handler kind
+ let info ← getConstInfo decl
+ unless info.levelParams.isEmpty do
+ throwError "rcf_handler: {decl} must be monomorphic"
+ unless ← MetaM.run' <| isDefEq info.type (mkConst ``Handler) do
+ throwAttrDeclNotOfExpectedType `rcf_handler decl info.type (mkConst ``Handler)
+ modifyEnv fun env => handlerExt.addEntry env decl
+}
+
+/-- Registered declaration names, deduplicated and sorted by `Name.lt`.
+Lookup order is independent of attribute and import order. -/
+meta def handlerNames : CoreM (Array Name) := do
+ return (handlerExt.getState (← getEnv)).qsort Name.lt |>.eraseReps
+
+private meta unsafe def evalHandlerUnsafe (name : Name) : MetaM Handler :=
+ evalConst Handler name
+
+@[implemented_by evalHandlerUnsafe]
+private meta opaque evalHandler (name : Name) : MetaM Handler
+
+private meta def ordinaryAxiom (name : Name) : Bool :=
+ [``propext, ``Classical.choice, ``Quot.sound].contains name
+
+/-- Optional solvers may depend only on Lean's standard logical axioms.
+Imported dependency inventories also cover theorem bodies hidden by modules. -/
+meta def checkAxioms (name : Name) (proof : Expr) : MetaM Unit := do
+ profileitM Exception "rcf axiom dependency check" (← getOptions) do
+ let proof ← instantiateMVars proof
+ -- Universe metavariables do not hide declarations in an inventory probe.
+ -- Expression metavariables can hide arbitrary proof dependencies.
+ if proof.hasExprMVar then throwError "rcf: handler {name} returned an unresolved proof"
+ for constant in proof.getUsedConstants do
+ for dependency in ← collectAxioms constant do
+ unless ordinaryAxiom dependency do
+ throwError "rcf: handler {name} proposed a proof using forbidden axiom {dependency} (through {constant})"
+
+/-- Screen closed expression data before native evaluation or proof acceptance.
+Local hypotheses remain permitted; unresolved and nonstandard dependencies do not. -/
+meta def checkExpr (name : Name) (expression : Expr) : MetaM Expr := do
+ let expression ← instantiateMVars expression
+ if expression.hasMVar then throwError "rcf: {name} contains unresolved metavariables"
+ checkAxioms name expression
+ let unsafe ← profileitM Exception "rcf unsafe dependency check" (← getOptions) do
+ pure ((← getEnv).hasUnsafe expression)
+ if unsafe then
+ throwError "rcf: {name} uses an unsafe declaration"
+ return expression
+
+/-- Accept only a closed ordinary proof of the exact target. Agreement cannot
+assign caller metavariables; a fresh uncached theorem checks the candidate
+against its target in the kernel and exposes all transitive dependencies. -/
+meta def checkProof (name : Name) (target proof : Expr)
+ (category : String := "rcf proof") : MetaM Expr := withNewMCtxDepth do
+ let proof ← instantiateMVars proof
+ if proof.hasMVar then
+ throwError "rcf: handler {name} returned an unresolved proof"
+ let proof := ShareCommon.shareCommon' proof
+ let agrees ← profileitM Exception (category ++ " goal agreement") (← getOptions) do
+ withNewMCtxDepth <| isDefEq (← inferType proof) target
+ unless agrees do
+ throwError "rcf: handler {name} proposed a proof of a different goal"
+ checkAxioms name proof
+ let unsafe ← profileitM Exception "rcf unsafe dependency check" (← getOptions) do
+ pure ((← getEnv).hasUnsafe proof)
+ if unsafe then
+ throwError "rcf: handler {name} proposed a proof using an unsafe declaration"
+ let proof ← profileitM Exception (category ++ " candidate check") (← getOptions) do
+ withOptions (fun opts => debug.skipKernelTC.set (Elab.async.set opts false) false) do
+ mkAuxTheorem target proof (zetaDelta := true) (cache := false)
+ let .thmInfo _ ← withoutExporting <| getConstInfo proof.getAppFn.constName!
+ | throwError "rcf: handler {name} proposed a candidate that did not close as a theorem"
+ checkAxioms name proof
+ return proof
+
+/-- Try handlers transactionally. Successful handlers retain auxiliary
+proof declarations but cannot export assignments to the target's metavariables.
+Exceptions and structured failures are terminal; only `declined` continues. -/
+private meta def dispatchHandlers (target : Expr)
+ (reason : Reify.UnsupportedCoefficient) : MetaM Expr := do
+ for name in ← handlerNames do
+ let saved ← saveState
+ let (result, _) ← tryFinally' (do
+ let info ← getConstInfo name
+ unless info.levelParams.isEmpty && (← isDefEq info.type (mkConst ``Handler)) do
+ throwError "rcf: invalid handler signature for {name}"
+ let handler ← evalHandler name
+ match ← withOptions (debug.skipKernelTC.set · false) <| handler target with
+ | .proved proof => pure (HandlerResult.proved (← instantiateMVars proof))
+ | .failed message => pure (.failed (← addMessageContext message))
+ | .declined => pure .declined)
+ (fun result => do
+ match result with
+ | some (.proved _) =>
+ modify fun state => { state with
+ mctx := saved.meta.mctx
+ postponed := saved.meta.postponed
+ zetaDeltaFVarIds := saved.meta.zetaDeltaFVarIds }
+ | _ => saved.restore)
+ match result with
+ | .declined => pure ()
+ | .failed message => throwError message
+ | .proved proof => return ← checkProof name target proof "rcf handler"
+ throwError reason.message
+
+/-- Whether a cell participates in the sentence's quantifier fold. -/
+private meta def relevantCell (sentence : Sentence) (data : CellsCert)
+ (cell : Cell data.isolations.intervals.size) : Bool :=
+ match sentence, data.iocCmps with
+ | .forallReal _, _ | .existsReal _, _ => true
+ | .forallIoc a b _, some cmps | .existsIoc a b _, some cmps =>
+ Cell.meetsIocOn a b cmps cell
+ | _, none => false
+
+/-- Locate the first checked universal counterexample cell. -/
+private meta def failingCell? (sentence : Sentence) (data : CellsCert) :
+ Option (Cell data.isolations.intervals.size) :=
+ (Cell.all data.isolations.intervals.size).find? fun cell =>
+ relevantCell sentence data cell &&
+ data.signs.evalCell? sentence data.isolations cell == some false
+
+/-- Render the exact sample or isolating interval attached to a cell. -/
+private meta def describeCell (data : CellsCert)
+ (cell : Cell data.isolations.intervals.size) : MessageData :=
+ match cell with
+ | .open cut =>
+ m!"open cell at dyadic sample {data.isolations.openPoint cut |>.toRat}"
+ | .root i =>
+ let interval := data.isolations.intervals[i]
+ m!"root cell isolated in ({interval.lower.toRat}, {interval.upper.toRat}]"
+
+/-- Diagnostic for a checked false verdict. False results never enter the
+proof-producing path. -/
+private meta def falseMessage (sentence : Sentence)
+ (certificate : Certificate) : MessageData :=
+ match sentence with
+ | .existsReal _ | .existsIoc _ _ _ =>
+ "rcf: the existential sentence is false. Every relevant decomposition\n\
+ cell was checked and found false, so there is no witness"
+ | .forallReal _ | .forallIoc _ _ _ =>
+ match certificate with
+ | .cells data =>
+ match failingCell? sentence data with
+ | some cell => m!"rcf: the universal sentence is false on the {describeCell data cell}"
+ | none => "rcf: the universal sentence is false on a checked decomposition cell"
+ | .noRoots _ | .constants =>
+ "rcf: the universal sentence is false on the sole open cell at dyadic sample 0"
+ | .emptyIoc =>
+ "rcf: internal error: an empty-domain universal produced false"
+
+/-- Construct the proof for a supported true sentence. The compiled builder
+selects evidence, while `Certificate.check` and `check_sound` are the only
+certificate trust boundary. -/
+private meta def proveRational (target : Expr) (reflected : Reify.SentenceResult) : MetaM Expr := do
+ let sentence ← Reify.sentenceExpr reflected.sentence
+ unless ← isDefEq sentence reflected.expr do
+ throwError "rcf: internal runtime/literal sentence mismatch"
+ let some result := build? reflected.sentence
+ | throwError "rcf: certificate construction failed"
+ unless result.verdict do
+ throwError (falseMessage reflected.sentence result.certificate)
+ unless result.certificate.check reflected.sentence do
+ throwError "rcf: internal error: a true builder verdict failed replay"
+ let certificate ← Reify.certificateExpr result.certificate
+ let check ← mkAppM ``Certificate.check #[sentence, certificate]
+ let checkType ← mkAppM ``Eq #[check, mkConst ``Bool.true]
+ let checked ← mkDecideProof checkType
+ let sound ← mkAppM ``check_sound
+ #[sentence, certificate, checked]
+ let proof ← mkAppM ``Iff.mp #[reflected.proof, sound]
+ unless ← isDefEq (← inferType proof) target do
+ throwError "rcf: internal final proof mismatch"
+ return proof
+
+/-- Prove a rational goal without dispatching coefficient handlers. Unsupported
+syntax and unsuccessful proof attempts restore the metavariable state. -/
+meta def proveRationalGoal (target : Expr) : MetaM Expr := do
+ let saved ← saveState
+ let (proof, _) ← tryFinally' (do
+ match ← (Reify.recognizeSentence target).run with
+ | .ok reflected => proveRational target reflected
+ | .error reason => throwError reason.message)
+ (fun result => unless result.isSome do saved.restore)
+ return proof
+
+/-- Prove a rational goal, or dispatch only a typed closed-coefficient decline.
+Every unsuccessful attempt restores its metavariable state, including runtime
+exceptions. Existing rational search and replay remain terminal. -/
+meta def proveGoal (target : Expr) : MetaM Expr := do
+ let saved ← saveState
+ let (proof, _) ← tryFinally' (do
+ match ← (Reify.recognizeSentence target).run with
+ | .ok reflected => proveRational target reflected
+ | .error reason => do
+ saved.restore
+ dispatchHandlers target reason)
+ (fun result => unless result.isSome do saved.restore)
+ return proof
+
+/-- Decide a supported singly quantified univariate real polynomial goal by
+building and replaying a literal certificate. -/
+syntax (name := rcfTac) "rcf" : tactic
+
+/-- Elaborate `rcf` by constructing and replaying a checked certificate. -/
+@[tactic rcfTac] meta def evalRCFTac : Tactic := fun stx => do
+ match stx with
+ | `(tactic| rcf) =>
+ let saved ← saveState
+ let _ ← tryFinally' (do
+ let goal ← getMainGoal
+ goal.withContext do
+ let target ← instantiateMVars (← goal.getType)
+ let proof ← proveGoal target
+ goal.assign proof
+ replaceMainGoal [])
+ (fun result => unless result.isSome do saved.restore)
+ | _ => throwUnsupportedSyntax
+
+end Hex.RCF
diff --git a/reports/data/hexrcf-admission/guard-cost-core-1.log.gz b/reports/data/hexrcf-admission/guard-cost-core-1.log.gz
new file mode 100644
index 0000000000..d9a7bb09fa
Binary files /dev/null and b/reports/data/hexrcf-admission/guard-cost-core-1.log.gz differ
diff --git a/reports/data/hexrcf-admission/guard-cost-core-2.log.gz b/reports/data/hexrcf-admission/guard-cost-core-2.log.gz
new file mode 100644
index 0000000000..137423f6ac
Binary files /dev/null and b/reports/data/hexrcf-admission/guard-cost-core-2.log.gz differ
diff --git a/reports/data/hexrcf-admission/guard-cost-dependencies.json b/reports/data/hexrcf-admission/guard-cost-dependencies.json
new file mode 100644
index 0000000000..f78fa00b99
--- /dev/null
+++ b/reports/data/hexrcf-admission/guard-cost-dependencies.json
@@ -0,0 +1,18 @@
+{
+ "mathlib": "6b7abb3c7686292736be2955bd3eb9ebf63b456a",
+ "TauCeti": "1c497c347f615b3087cb605f8cf743e591376105",
+ "\u00ablean-bench\u00bb": "8a37daf1074c3bdbd0da479b55538bad4a0022db",
+ "NautyFFI": "ec8597014d0ae82490a616b855d59a35e6bfa21f",
+ "verso": "8fc7a297f14d5adc1a551b5b4ecf283c08bd691f",
+ "plausible": "fb13df72ecefd8ddbf9291021d7f33a8673eb57b",
+ "LeanSearchClient": "29ff470276c725ae01505d55b17148c18fc7dfd3",
+ "importGraph": "10a2cfff285e1c7c2ebc49c0ba22cab0f3c58ee5",
+ "proofwidgets": "c643bbb3c24f8a25f9c14e3a6b1ceb13d01f3de1",
+ "aesop": "a90fbf7b02ff06a0deebf74088dff9e5fe02c9ea",
+ "Qq": "37b0ba0b26109cf9f9c541f0f9557e50cfa1a3b9",
+ "batteries": "33131f4fb10067cb3009bf4db615d9680c1ccd6b",
+ "Cli": "843844fa601dd56767b1eb22b7ada5b64d5e567a",
+ "illuminate": "af451aaa73d8f8025189f228642b6e4fe047ce4f",
+ "MD4Lean": "31907cc18f48a95384f99cee5582c00fb39e0f67",
+ "subverso": "d047cb484b2f3598187450935dbcc84d078cb581"
+}
diff --git a/reports/data/hexrcf-admission/guard-cost-full-1-inputs/CellSourceCost.lean.txt b/reports/data/hexrcf-admission/guard-cost-full-1-inputs/CellSourceCost.lean.txt
new file mode 100644
index 0000000000..fd61085d90
--- /dev/null
+++ b/reports/data/hexrcf-admission/guard-cost-full-1-inputs/CellSourceCost.lean.txt
@@ -0,0 +1,175 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+import HexRCF.RealCoefficients.RowQuote
+import HexRCF.CellReplay.Operations
+import HexRCF.RealCoefficients.RootQuote
+import HexRCF.RealCoefficients.RationalQuote
+import HexRCF.RealCoefficients.ScalarQuote
+import HexRCF.RootTableQuote.Input
+import HexRCF.RealCoefficients.CellQuote
+import HexRCF.SourceIdentityPacket
+open Lean Meta Qq Hex Hex.RealClosure Hex.SignDet Hex.RCF.RealCoefficients
+open Hex.RCF.RealCoefficients.CellReplayTests
+open Hex.RCF.RealCoefficients.CellReplayTests.Algebraic
+/-! Quote the original source through independently restored literal cells over
+one retained selected algebraic parent. Older complete-packet acceptance proofs
+are excluded by the importing audit; coefficient seed facts remain checked inputs. This fixed-parent case does not reconstruct arbitrary source histories. -/
+namespace Hex.RCF.CellSourceCost
+set_option profiler true
+set_option profiler.threshold 100
+set_option maxHeartbeats 60000000
+set_option maxRecDepth 32768
+set_option smartUnfolding false
+set_option trace.Hex.RCF.RowQuote true
+def rational (value : Int) : Codec.Json := .arr #[.number 0,.number value,.number 1]
+def scalar (polynomial : Array Codec.Json) (sign : Int) : Codec.Json :=
+ .arr #[.arr polynomial,.number sign]
+def polynomial : Codec.Json := .arr #[
+ scalar #[rational 0,rational (-1)] (-1),.arr #[],scalar #[rational 1] 1]
+run_meta do
+ withoutExporting do
+ let target : Q(Prop) := q(∃ x : ℝ, x ^ 2 - Real.sqrt 2 ≥ 0 ∧
+ x ^ 2 - Real.sqrt 2 ≤ 0 ∧ (0 : ℝ) = 0)
+ let basic : Hex.RealFormula.Reify.Config := {}
+ let config := {basic with ring := {basic.ring with budget :=
+ {basic.ring.budget with proofNodes := 24000000}}}
+ let .ok source ← Reify.prepare target config
+ | throwError "original complete-cell source was not recognized"
+ unless source.coefficients.size == 1 && source.divisors.isEmpty do
+ throwError "original complete-cell source changed its coefficient/guard inventory"
+ let quantified ← whnf source.formula
+ unless quantified.getAppFn.isConstOf ``Hex.RealFormula.Prenex.quant do
+ throwError "original complete-cell source is not quantified"
+ let matrix ← whnf quantified.appArg!
+ unless matrix.getAppFn.isConstOf ``Hex.RealFormula.Prenex.matrix do
+ throwError "original complete-cell source has no shared matrix"
+ let formula := matrix.appArg!
+ let codec : Q(ValueCodec (Algebraic.Element Hex.RCF.SelectedRootTests.Data.native)) :=
+ q(Algebraic.Element.codec (context := Hex.RCF.SelectedRootTests.Data.native)
+ Hex.RCF.SelectedRootTests.Data.base.codec)
+ let reader ← mkAppM ``Codec.readPoly #[codec,mkConst ``polynomial]
+ let result ← match ← profileitM Exception "complete algebraic source quotation" (← getOptions) (RootQuote.runWith (do
+ let p ← ScalarQuote.quotePolyWith reader (mkConst ``Records.facts) fun expression =>
+ liftM (RationalQuote.decoder (mkConst ``Hex.RCF.SelectedRootTests.Data.registry) expression)
+ logInfo m!"literal polynomial reconstructed; proofNodes={p.usage.proofNodes}"
+ let polynomialType ← inferType p.value
+ Hex.RealFormula.Reify.accountProof polynomialType
+ Hex.RealFormula.Reify.accountProof p.value
+ let polynomialName := mkPrivateName (← getEnv) (← mkFreshUserName `FrozenPolynomial)
+ let polynomial ← mkAuxDefinition polynomialName polynomialType p.value (compile := false)
+ let signature ← mkAppM ``Tower.Context.signature #[mkConst ``Schema.parent]
+ let cert ← mkAppM ``RadicalCert.mk #[signature,polynomial,polynomial,polynomial,mkNatLit 1]
+ let certificateType ← inferType cert
+ Hex.RealFormula.Reify.accountProof certificateType
+ Hex.RealFormula.Reify.accountProof cert
+ let certificateName := mkPrivateName (← getEnv) (← mkFreshUserName `FrozenRadical)
+ let cert ← mkAuxDefinition certificateName certificateType cert (compile := false)
+ let cells := mkApp (mkConst ``Codec.Json.Value.array)
+ (mkApp2 (mkConst ``Codec.Json.Values.cons) (mkConst ``Literals.sections)
+ (mkApp2 (mkConst ``Codec.Json.Values.cons) (mkConst ``Literals.sectors)
+ (mkConst ``Codec.Json.Values.nil)))
+ let empty ← mkListLit (← mkAppM ``Tower.Context.Value #[mkConst ``Schema.parent]) []
+ let some operations ← unfoldDefinition? (mkConst ``Operations.operations)
+ | throwError "supplied operations have no accessible definition"
+ let operations := operations.replace fun expression =>
+ if expression.isConstOf ``Hex.RCF.SelectedRootTests.Data.reduction then
+ some (mkConst ``Hex.RCF.RootTableQuoteTests.reduction)
+ else if expression.isConstOf ``Hex.RCF.SelectedRootTests.Data.reduction_eq then
+ some (mkConst ``Hex.RCF.RootTableQuoteTests.reduction_eq)
+ else none
+ Meta.check operations
+ let operationsType ← inferType operations
+ Hex.RealFormula.Reify.accountProof operationsType
+ Hex.RealFormula.Reify.accountProof operations
+ let name := mkPrivateName (← getEnv) (← mkFreshUserName `FrozenOperations)
+ let operations ← mkAuxDefinition name operationsType operations (compile := false)
+ let program ← mkAppM ``CellOperations.check
+ #[operations,mkConst ``Operations.codec,mkConst ``Schema.values,
+ formula,empty,cert,
+ mkConst ``Hex.RealFormula.Quantifier.existsReal,mkConst ``Literals.roots,cells]
+ let quoted ← CellQuote.replayWith program fun expression => do
+ if let some proof ← RowQuote.decoder expression then return some proof
+ if expression.getAppFn.isConstOf ``RootTable.read then
+ let table ← RootQuote.quoteWith expression fun expression =>
+ liftM (RationalQuote.decoder (mkConst ``Hex.RCF.SelectedRootTests.Data.registry) expression)
+ let kind ← inferType table.value
+ Hex.RealFormula.Reify.accountProof kind
+ Hex.RealFormula.Reify.accountProof table.value
+ let name := mkPrivateName (← getEnv) (← mkFreshUserName `FrozenRootTable)
+ let value ← mkAuxDefinition name kind table.value (compile := false)
+ let strict ← mkAppM ``RootQuote.read_eq #[expression,table.value,table.proof]
+ let readerType ← whnf (← inferType expression)
+ unless readerType.isAppOfArity ``Except 2 do
+ throwError "nested root-table result changed its exception type"
+ let accepted ← mkAppOptM ``Except.ok
+ #[some readerType.getAppArgs[0]!,some readerType.getAppArgs[1]!,some value]
+ let target ← mkEq expression accepted
+ Hex.RealFormula.Reify.accountProof target
+ Hex.RealFormula.Reify.accountProof strict
+ return some (← Hex.RCF.checkProof `frozenTable target (mkExpectedPropHint strict target))
+ return none
+ let result := quoted
+ let kind ← inferType result.proof
+ unless kind.isAppOfArity ``Eq 3 do throwError "complete quotation did not return an equation"
+ let optional := kind.getAppArgs[1]!
+ unless optional.getAppFn.isConstOf ``Except.toOption do
+ throwError "staged quotation omitted the optional reader boundary"
+ let program := optional.getAppArgs.back!
+ unless program.getAppFn.isConstOf ``CellOperations.check do
+ throwError "complete quotation changed its original checker"
+ let readerType ← whnf (← inferType program)
+ let accepted ← mkAppOptM ``Except.ok
+ #[some readerType.getAppArgs[0]!,some readerType.getAppArgs[1]!,some (mkConst ``Bool.true)]
+ let target ← mkEq program accepted
+ let checked ← mkAppM ``RootQuote.read_eq #[program,result.value,result.proof]
+ Hex.RealFormula.Reify.accountProof target
+ Hex.RealFormula.Reify.accountProof checked
+ let proof ← Hex.RCF.checkProof `freshCompleteLiteral target (mkExpectedPropHint checked target)
+ let axioms ← collectAxioms proof.getAppFn.constName!
+ unless axioms.all (fun name => [``propext,``Classical.choice,``Quot.sound].contains name) do
+ throwError "fresh complete literal quote has inadmissible dependencies"
+ addDecl (.thmDecl {
+ name := `Hex.RCF.CellSourceCost.checked,levelParams := [],type := target,value := proof})
+ let valuation ← withLocalDeclD `i (← mkAppM ``Fin #[mkNatLit 1]) fun i => do
+ let value ← mkAppM ``Tower.Model.value
+ #[mkConst ``Schema.original,mkApp (mkConst ``Schema.values) i]
+ mkLambdaFVars #[i] value
+ let identityType ← mkEq valuation source.valuation
+ let identity ← mkFreshExprMVar identityType
+ let remaining ← Lean.Elab.runTactic' identity.mvarId!
+ (← `(tactic| funext i; fin_cases i; exact Hex.RCF.SourceIdentityPacket.coefficient))
+ unless remaining.isEmpty do throwError "original coefficient identity left goals"
+ let identity ← instantiateMVars identity
+ Hex.RealFormula.Reify.accountProof identityType
+ Hex.RealFormula.Reify.accountProof identity
+ let identity ← Hex.RCF.checkProof `completeSourceIdentity identityType identity
+ let realTarget := source.original
+ let arguments := program.getAppArgs
+ let info ← getFunInfoNArgs program.getAppFn arguments.size
+ let inputs := arguments.zipIdx |>.filterMap fun (argument,index) =>
+ if info.paramInfo[index]!.binderInfo.isExplicit then some argument else none
+ let checker ← mkAppM ``CompleteReplay.check (inputs.extract 1 inputs.size)
+ let law ← mkAppM ``CellOperations.check_eq inputs
+ let accepted ← mkAppM ``Eq.trans #[← mkEqSymm law,mkConst `Hex.RCF.CellSourceCost.checked]
+ let completed ← CellQuote.finishPacketWith source realTarget checker accepted
+ (mkConst ``Schema.original) identity
+ let sourceProof := completed.proof
+ Hex.RealFormula.Reify.accountProof realTarget
+ Hex.RealFormula.Reify.accountProof sourceProof
+ let sourceProof ← Hex.RCF.checkProof `freshCompleteSource realTarget sourceProof
+ addDecl (.thmDecl {
+ name := `Hex.RCF.CellSourceCost.source,levelParams := [],type := realTarget,value := sourceProof})
+ let sourceAxioms ← collectAxioms `Hex.RCF.CellSourceCost.source
+ unless sourceAxioms.all (fun name => [``propext,``Classical.choice,``Quot.sound].contains name) do
+ throwError "complete original source quotation has inadmissible dependencies"
+ logInfo m!"original algebraic source quotation proofNodes={result.usage.proofNodes}; axioms={axioms}"
+ logInfo m!"original algebraic source complete proofNodes={completed.usage.proofNodes}"
+ return {completed with usage := (← get).budget.consumed}
+ ) config source.usage) with
+ | .ok result => pure result
+ | .error error => throwError "fresh complete literal quote refused: {Hex.RealFormula.Reify.Error.toMessageData error}"
+ logInfo m!"complete original-source attempt consumed proofNodes={result.usage.proofNodes}"
+end Hex.RCF.CellSourceCost
diff --git a/reports/data/hexrcf-admission/guard-cost-full-1-inputs/Tactic.lean.txt b/reports/data/hexrcf-admission/guard-cost-full-1-inputs/Tactic.lean.txt
new file mode 100644
index 0000000000..ebd75a45fd
--- /dev/null
+++ b/reports/data/hexrcf-admission/guard-cost-full-1-inputs/Tactic.lean.txt
@@ -0,0 +1,271 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+
+module
+
+public import HexRCF.Reify
+public meta import HexRCF.DecisionCheck
+
+public section
+
+/-!
+# The `rcf` tactic
+
+The tactic runs certificate construction as compiled meta code, embeds the
+result as literal data, and closes true goals only through the kernel-facing
+Boolean checker and its soundness theorem. False verdicts are diagnostics.
+-/
+
+namespace Hex.RCF
+
+open Lean Elab Tactic Meta
+
+/-- An optional handler either declines the source syntax, reports a terminal
+failure (including false verdicts and exhausted/rejected replay), or proposes
+an ordinary proof of the original goal. -/
+meta inductive HandlerResult where
+ /-- This handler does not recognize the source syntax. -/
+ | declined
+ /-- Recognized syntax failed; no subsequent handler may run. -/
+ | failed (message : MessageData)
+ /-- A candidate proof, checked by the base before goal assignment. -/
+ | proved (proof : Expr)
+
+/-- Optional coefficient solvers receive the unchanged source target. -/
+meta abbrev Handler := Expr → MetaM HandlerResult
+
+private meta initialize handlerExt : SimplePersistentEnvExtension Name (Array Name) ←
+ registerSimplePersistentEnvExtension {
+ addImportedFn := fun entries => entries.flatten
+ addEntryFn := fun entries name => entries.push name
+ }
+
+meta initialize registerBuiltinAttribute {
+ name := `rcf_handler
+ descr := "register an optional closed-coefficient handler for rcf"
+ applicationTime := .afterCompilation
+ add := fun decl stx kind => do
+ ensureAttrDeclIsMeta `rcf_handler decl kind
+ Attribute.Builtin.ensureNoArgs stx
+ unless kind == AttributeKind.global do
+ throwAttrMustBeGlobal `rcf_handler kind
+ let info ← getConstInfo decl
+ unless info.levelParams.isEmpty do
+ throwError "rcf_handler: {decl} must be monomorphic"
+ unless ← MetaM.run' <| isDefEq info.type (mkConst ``Handler) do
+ throwAttrDeclNotOfExpectedType `rcf_handler decl info.type (mkConst ``Handler)
+ modifyEnv fun env => handlerExt.addEntry env decl
+}
+
+/-- Registered declaration names, deduplicated and sorted by `Name.lt`.
+Lookup order is independent of attribute and import order. -/
+meta def handlerNames : CoreM (Array Name) := do
+ return (handlerExt.getState (← getEnv)).qsort Name.lt |>.eraseReps
+
+private meta unsafe def evalHandlerUnsafe (name : Name) : MetaM Handler :=
+ evalConst Handler name
+
+@[implemented_by evalHandlerUnsafe]
+private meta opaque evalHandler (name : Name) : MetaM Handler
+
+private meta def ordinaryAxiom (name : Name) : Bool :=
+ [``propext, ``Classical.choice, ``Quot.sound].contains name
+
+/-- Optional solvers may depend only on Lean's standard logical axioms.
+Imported dependency inventories also cover theorem bodies hidden by modules. -/
+meta def checkAxioms (name : Name) (proof : Expr) : MetaM Unit := do
+ profileitM Exception "rcf axiom dependency check" (← getOptions) do
+ let proof ← instantiateMVars proof
+ -- Universe metavariables do not hide declarations in an inventory probe.
+ -- Expression metavariables can hide arbitrary proof dependencies.
+ if proof.hasExprMVar then throwError "rcf: handler {name} returned an unresolved proof"
+ for constant in proof.getUsedConstants do
+ for dependency in ← collectAxioms constant do
+ unless ordinaryAxiom dependency do
+ throwError "rcf: handler {name} proposed a proof using forbidden axiom {dependency} (through {constant})"
+
+/-- Screen closed expression data before native evaluation or proof acceptance.
+Local hypotheses remain permitted; unresolved and nonstandard dependencies do not. -/
+meta def checkExpr (name : Name) (expression : Expr) : MetaM Expr := do
+ let expression ← instantiateMVars expression
+ if expression.hasMVar then throwError "rcf: {name} contains unresolved metavariables"
+ checkAxioms name expression
+ let usesUnsafe ← profileitM Exception "rcf unsafe dependency check" (← getOptions) do
+ pure ((← getEnv).hasUnsafe expression)
+ if usesUnsafe then
+ throwError "rcf: {name} uses an unsafe declaration"
+ return expression
+
+/-- Accept only a closed ordinary proof of the exact target. Agreement cannot
+assign caller metavariables; a fresh uncached theorem checks the candidate
+against its target in the kernel and exposes all transitive dependencies. -/
+meta def checkProof (name : Name) (target proof : Expr)
+ (category : String := "rcf proof") : MetaM Expr := withNewMCtxDepth do
+ let proof ← instantiateMVars proof
+ if proof.hasMVar then
+ throwError "rcf: handler {name} returned an unresolved proof"
+ let proof := ShareCommon.shareCommon' proof
+ let agrees ← profileitM Exception (category ++ " goal agreement") (← getOptions) do
+ withNewMCtxDepth <| isDefEq (← inferType proof) target
+ unless agrees do
+ throwError "rcf: handler {name} proposed a proof of a different goal"
+ checkAxioms name proof
+ let usesUnsafe ← profileitM Exception "rcf unsafe dependency check" (← getOptions) do
+ pure ((← getEnv).hasUnsafe proof)
+ if usesUnsafe then
+ throwError "rcf: handler {name} proposed a proof using an unsafe declaration"
+ let proof ← profileitM Exception (category ++ " candidate check") (← getOptions) do
+ withOptions (fun opts => debug.skipKernelTC.set (Elab.async.set opts false) false) do
+ mkAuxTheorem target proof (zetaDelta := true) (cache := false)
+ let .thmInfo _ ← withoutExporting <| getConstInfo proof.getAppFn.constName!
+ | throwError "rcf: handler {name} proposed a candidate that did not close as a theorem"
+ checkAxioms name proof
+ return proof
+
+/-- Try handlers transactionally. Successful handlers retain auxiliary
+proof declarations but cannot export assignments to the target's metavariables.
+Exceptions and structured failures are terminal; only `declined` continues. -/
+private meta def dispatchHandlers (target : Expr)
+ (reason : Reify.UnsupportedCoefficient) : MetaM Expr := do
+ for name in ← handlerNames do
+ let saved ← saveState
+ let (result, _) ← tryFinally' (do
+ let info ← getConstInfo name
+ unless info.levelParams.isEmpty && (← isDefEq info.type (mkConst ``Handler)) do
+ throwError "rcf: invalid handler signature for {name}"
+ let handler ← evalHandler name
+ match ← withOptions (debug.skipKernelTC.set · false) <| handler target with
+ | .proved proof => pure (HandlerResult.proved (← instantiateMVars proof))
+ | .failed message => pure (.failed (← addMessageContext message))
+ | .declined => pure .declined)
+ (fun result => do
+ match result with
+ | some (.proved _) =>
+ modify fun state => { state with
+ mctx := saved.meta.mctx
+ postponed := saved.meta.postponed
+ zetaDeltaFVarIds := saved.meta.zetaDeltaFVarIds }
+ | _ => saved.restore)
+ match result with
+ | .declined => pure ()
+ | .failed message => throwError message
+ | .proved proof => return ← checkProof name target proof "rcf handler"
+ throwError reason.message
+
+/-- Whether a cell participates in the sentence's quantifier fold. -/
+private meta def relevantCell (sentence : Sentence) (data : CellsCert)
+ (cell : Cell data.isolations.intervals.size) : Bool :=
+ match sentence, data.iocCmps with
+ | .forallReal _, _ | .existsReal _, _ => true
+ | .forallIoc a b _, some cmps | .existsIoc a b _, some cmps =>
+ Cell.meetsIocOn a b cmps cell
+ | _, none => false
+
+/-- Locate the first checked universal counterexample cell. -/
+private meta def failingCell? (sentence : Sentence) (data : CellsCert) :
+ Option (Cell data.isolations.intervals.size) :=
+ (Cell.all data.isolations.intervals.size).find? fun cell =>
+ relevantCell sentence data cell &&
+ data.signs.evalCell? sentence data.isolations cell == some false
+
+/-- Render the exact sample or isolating interval attached to a cell. -/
+private meta def describeCell (data : CellsCert)
+ (cell : Cell data.isolations.intervals.size) : MessageData :=
+ match cell with
+ | .open cut =>
+ m!"open cell at dyadic sample {data.isolations.openPoint cut |>.toRat}"
+ | .root i =>
+ let interval := data.isolations.intervals[i]
+ m!"root cell isolated in ({interval.lower.toRat}, {interval.upper.toRat}]"
+
+/-- Diagnostic for a checked false verdict. False results never enter the
+proof-producing path. -/
+private meta def falseMessage (sentence : Sentence)
+ (certificate : Certificate) : MessageData :=
+ match sentence with
+ | .existsReal _ | .existsIoc _ _ _ =>
+ "rcf: the existential sentence is false. Every relevant decomposition\n\
+ cell was checked and found false, so there is no witness"
+ | .forallReal _ | .forallIoc _ _ _ =>
+ match certificate with
+ | .cells data =>
+ match failingCell? sentence data with
+ | some cell => m!"rcf: the universal sentence is false on the {describeCell data cell}"
+ | none => "rcf: the universal sentence is false on a checked decomposition cell"
+ | .noRoots _ | .constants =>
+ "rcf: the universal sentence is false on the sole open cell at dyadic sample 0"
+ | .emptyIoc =>
+ "rcf: internal error: an empty-domain universal produced false"
+
+/-- Construct the proof for a supported true sentence. The compiled builder
+selects evidence, while `Certificate.check` and `check_sound` are the only
+certificate trust boundary. -/
+private meta def proveRational (target : Expr) (reflected : Reify.SentenceResult) : MetaM Expr := do
+ let sentence ← Reify.sentenceExpr reflected.sentence
+ unless ← isDefEq sentence reflected.expr do
+ throwError "rcf: internal runtime/literal sentence mismatch"
+ let some result := build? reflected.sentence
+ | throwError "rcf: certificate construction failed"
+ unless result.verdict do
+ throwError (falseMessage reflected.sentence result.certificate)
+ unless result.certificate.check reflected.sentence do
+ throwError "rcf: internal error: a true builder verdict failed replay"
+ let certificate ← Reify.certificateExpr result.certificate
+ let check ← mkAppM ``Certificate.check #[sentence, certificate]
+ let checkType ← mkAppM ``Eq #[check, mkConst ``Bool.true]
+ let checked ← mkDecideProof checkType
+ let sound ← mkAppM ``check_sound
+ #[sentence, certificate, checked]
+ let proof ← mkAppM ``Iff.mp #[reflected.proof, sound]
+ unless ← isDefEq (← inferType proof) target do
+ throwError "rcf: internal final proof mismatch"
+ return proof
+
+/-- Prove a rational goal without dispatching coefficient handlers. Unsupported
+syntax and unsuccessful proof attempts restore the metavariable state. -/
+meta def proveRationalGoal (target : Expr) : MetaM Expr := do
+ let saved ← saveState
+ let (proof, _) ← tryFinally' (do
+ match ← (Reify.recognizeSentence target).run with
+ | .ok reflected => proveRational target reflected
+ | .error reason => throwError reason.message)
+ (fun result => unless result.isSome do saved.restore)
+ return proof
+
+/-- Prove a rational goal, or dispatch only a typed closed-coefficient decline.
+Every unsuccessful attempt restores its metavariable state, including runtime
+exceptions. Existing rational search and replay remain terminal. -/
+meta def proveGoal (target : Expr) : MetaM Expr := do
+ let saved ← saveState
+ let (proof, _) ← tryFinally' (do
+ match ← (Reify.recognizeSentence target).run with
+ | .ok reflected => proveRational target reflected
+ | .error reason => do
+ saved.restore
+ dispatchHandlers target reason)
+ (fun result => unless result.isSome do saved.restore)
+ return proof
+
+/-- Decide a supported singly quantified univariate real polynomial goal by
+building and replaying a literal certificate. -/
+syntax (name := rcfTac) "rcf" : tactic
+
+/-- Elaborate `rcf` by constructing and replaying a checked certificate. -/
+@[tactic rcfTac] meta def evalRCFTac : Tactic := fun stx => do
+ match stx with
+ | `(tactic| rcf) =>
+ let saved ← saveState
+ let _ ← tryFinally' (do
+ let goal ← getMainGoal
+ goal.withContext do
+ let target ← instantiateMVars (← goal.getType)
+ let proof ← proveGoal target
+ goal.assign proof
+ replaceMainGoal [])
+ (fun result => unless result.isSome do saved.restore)
+ | _ => throwUnsupportedSyntax
+
+end Hex.RCF
diff --git a/reports/data/hexrcf-admission/guard-cost-full-1-inputs/lakefile.lean.txt b/reports/data/hexrcf-admission/guard-cost-full-1-inputs/lakefile.lean.txt
new file mode 100644
index 0000000000..2071365dce
--- /dev/null
+++ b/reports/data/hexrcf-admission/guard-cost-full-1-inputs/lakefile.lean.txt
@@ -0,0 +1,5 @@
+import Lake
+open Lake DSL
+package guardCost
+require Hex from "/home/kim/.codex/tasks/hex-10358/guard-cost-worktree"
+lean_lib CellSourceCost
diff --git a/reports/data/hexrcf-admission/guard-cost-full-1.log.gz b/reports/data/hexrcf-admission/guard-cost-full-1.log.gz
new file mode 100644
index 0000000000..064d5b8f31
Binary files /dev/null and b/reports/data/hexrcf-admission/guard-cost-full-1.log.gz differ
diff --git a/reports/data/hexrcf-admission/guard-cost-full-2.log.gz b/reports/data/hexrcf-admission/guard-cost-full-2.log.gz
new file mode 100644
index 0000000000..1e789e73c0
Binary files /dev/null and b/reports/data/hexrcf-admission/guard-cost-full-2.log.gz differ
diff --git a/reports/data/hexrcf-admission/guard-cost-full-3-invocation.json b/reports/data/hexrcf-admission/guard-cost-full-3-invocation.json
new file mode 100644
index 0000000000..2bacbdd0d3
--- /dev/null
+++ b/reports/data/hexrcf-admission/guard-cost-full-3-invocation.json
@@ -0,0 +1,8 @@
+{
+ "pid": 465756,
+ "argv": [
+ "/home/kim/.elan/toolchains/leanprover--lean4---v4.35.0-rc3/bin/lake",
+ "build",
+ "CellSourceCost"
+ ]
+}
diff --git a/reports/data/hexrcf-admission/guard-cost-full-3-memory-policy.txt b/reports/data/hexrcf-admission/guard-cost-full-3-memory-policy.txt
new file mode 100644
index 0000000000..769f581855
--- /dev/null
+++ b/reports/data/hexrcf-admission/guard-cost-full-3-memory-policy.txt
@@ -0,0 +1,5 @@
+ActiveState=active
+OOMPolicy=kill
+MemoryMax=34359738368
+MemorySwapMax=0
+Environment=PATH=/home/kim/.claude-patched:/home/kim/.local/bin:/home/kim/bin:/home/kim/.npm-global/bin:/run/wrappers/bin:/home/kim/.nix-profile/bin:/nix/profile/bin:/home/kim/.local/state/nix/profile/bin:/etc/profiles/per-user/kim/bin:/nix/var/nix/profiles/default/bin:/run/current-system/sw/bin LEAN_NUM_THREADS=2
diff --git a/reports/data/hexrcf-admission/guard-cost-full-3.log.gz b/reports/data/hexrcf-admission/guard-cost-full-3.log.gz
new file mode 100644
index 0000000000..e675d054fc
Binary files /dev/null and b/reports/data/hexrcf-admission/guard-cost-full-3.log.gz differ
diff --git a/reports/data/hexrcf-admission/guard-cost-guard-equivalence.txt b/reports/data/hexrcf-admission/guard-cost-guard-equivalence.txt
new file mode 100644
index 0000000000..aa558b3c27
--- /dev/null
+++ b/reports/data/hexrcf-admission/guard-cost-guard-equivalence.txt
@@ -0,0 +1 @@
+Removing only the three profileitM wrappers reproduces the committed main-worktree Tactic.lean byte-for-byte. No admission, unsafe, target, kernel, cache or state-restoration check changed.
diff --git a/reports/data/hexrcf-admission/guard-cost-inputs.json b/reports/data/hexrcf-admission/guard-cost-inputs.json
new file mode 100644
index 0000000000..aadf1a19e0
--- /dev/null
+++ b/reports/data/hexrcf-admission/guard-cost-inputs.json
@@ -0,0 +1,7 @@
+{
+ "source_head": "1a666ea7c85d63cd9bc9372f78c8fdbbe1bf191d",
+ "probe_sha256": "f3e9f93c0f1f1529a84a5c6befc8a2a087909f63271a86c327d3791de4491957",
+ "instrumented_tactic_sha256": "d79561a41df94ffa3be63b5259665af29f1b14628217d07dfcd055ec40444417",
+ "scope": "Only profileitM wrappers around unchanged admission and unsafe checks in detached diagnostic worktree; current issue-10358 worktree and its artifacts remain separate. COW snapshot, no hard links to build files.",
+ "question": "Attribute the first profile residual to actual admission/unsafe walks or remaining quotation work; no cache/guard behavior change."
+}
diff --git a/reports/data/hexrcf-admission/guard-cost-results.json b/reports/data/hexrcf-admission/guard-cost-results.json
new file mode 100644
index 0000000000..5ad0a9e971
--- /dev/null
+++ b/reports/data/hexrcf-admission/guard-cost-results.json
@@ -0,0 +1,46 @@
+{
+ "exclusive_seconds": {
+ "attribute application": 2.19e-05,
+ "compilation (IR)": 0.00404,
+ "compilation (LCNF base)": 0.473,
+ "compilation (LCNF impure)": 0.0305,
+ "compilation (LCNF mono)": 0.0378,
+ "complete algebraic source quotation": 378.0,
+ "congr simp thm": 0.0007149999999999999,
+ "do element elaborator": 0.101,
+ "dsimp": 0.0031,
+ "elaboration": 0.59,
+ "fix level params": 0.00011999999999999999,
+ "instantiate metavars": 2.5399999999999997e-05,
+ "interpretation": 0.00577,
+ "let-to-have transformation": 1.76e-05,
+ "linting": 0.144,
+ "norm_num": 0.00277,
+ "overlappingInstancesLinter": 0.012199999999999999,
+ "parsing": 0.0101,
+ "process pre-definitions": 0.0039,
+ "rcf axiom dependency check": 317.0,
+ "rcf proof candidate check": 0.878,
+ "rcf proof goal agreement": 0.244,
+ "rcf source preparation": 0.116,
+ "rcf unsafe dependency check": 0.304,
+ "share common exprs": 0.00227,
+ "simp": 0.00966,
+ "sym canon": 0.000337,
+ "sym typeclass inference": 0.0129,
+ "tactic execution": 0.0455,
+ "tacticAnalysis": 0.033100000000000004,
+ "type checking": 237.0,
+ "typeclass inference": 0.291
+ },
+ "nodes": 8651669,
+ "axioms": [
+ "propext",
+ "Classical.choice",
+ "Quot.sound"
+ ],
+ "runtime": "18min14.085s",
+ "cpu": "18min49.491s",
+ "peak": "11.4G/swap0",
+ "limits": "Build includes dependency rebuild after isolated timing-only checker modification. Exclusive categories, no paired speedup/scaling claim. Remaining378s not attributed by this diagnostic."
+}
diff --git a/reports/data/hexrcf-admission/guard-cost-setup-notes.txt b/reports/data/hexrcf-admission/guard-cost-setup-notes.txt
new file mode 100644
index 0000000000..45c33ec6fd
--- /dev/null
+++ b/reports/data/hexrcf-admission/guard-cost-setup-notes.txt
@@ -0,0 +1 @@
+Full1 terminated with mathlib cache fetch failure before profile measurement. Dependency manifests matched all16 git revisions. First validation script failed on manifest name «lean-bench» versus directory lean-bench; an already-started full2 setup run was explicitly stopped before the requested source diagnostic (log code=killed15/TERM, not a completed sample). Corrected directory normalization; all16 actual package HEADs verified. Existing identical package caches linked; full3 is the first correctly configured focused diagnostic. All earlier logs retained. Main issue-10358 worktree and its source/artifacts remain separate.
diff --git a/reports/data/hexrcf-admission/guard-cost-validated-tactic.lean.txt b/reports/data/hexrcf-admission/guard-cost-validated-tactic.lean.txt
new file mode 100644
index 0000000000..ebd75a45fd
--- /dev/null
+++ b/reports/data/hexrcf-admission/guard-cost-validated-tactic.lean.txt
@@ -0,0 +1,271 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+
+module
+
+public import HexRCF.Reify
+public meta import HexRCF.DecisionCheck
+
+public section
+
+/-!
+# The `rcf` tactic
+
+The tactic runs certificate construction as compiled meta code, embeds the
+result as literal data, and closes true goals only through the kernel-facing
+Boolean checker and its soundness theorem. False verdicts are diagnostics.
+-/
+
+namespace Hex.RCF
+
+open Lean Elab Tactic Meta
+
+/-- An optional handler either declines the source syntax, reports a terminal
+failure (including false verdicts and exhausted/rejected replay), or proposes
+an ordinary proof of the original goal. -/
+meta inductive HandlerResult where
+ /-- This handler does not recognize the source syntax. -/
+ | declined
+ /-- Recognized syntax failed; no subsequent handler may run. -/
+ | failed (message : MessageData)
+ /-- A candidate proof, checked by the base before goal assignment. -/
+ | proved (proof : Expr)
+
+/-- Optional coefficient solvers receive the unchanged source target. -/
+meta abbrev Handler := Expr → MetaM HandlerResult
+
+private meta initialize handlerExt : SimplePersistentEnvExtension Name (Array Name) ←
+ registerSimplePersistentEnvExtension {
+ addImportedFn := fun entries => entries.flatten
+ addEntryFn := fun entries name => entries.push name
+ }
+
+meta initialize registerBuiltinAttribute {
+ name := `rcf_handler
+ descr := "register an optional closed-coefficient handler for rcf"
+ applicationTime := .afterCompilation
+ add := fun decl stx kind => do
+ ensureAttrDeclIsMeta `rcf_handler decl kind
+ Attribute.Builtin.ensureNoArgs stx
+ unless kind == AttributeKind.global do
+ throwAttrMustBeGlobal `rcf_handler kind
+ let info ← getConstInfo decl
+ unless info.levelParams.isEmpty do
+ throwError "rcf_handler: {decl} must be monomorphic"
+ unless ← MetaM.run' <| isDefEq info.type (mkConst ``Handler) do
+ throwAttrDeclNotOfExpectedType `rcf_handler decl info.type (mkConst ``Handler)
+ modifyEnv fun env => handlerExt.addEntry env decl
+}
+
+/-- Registered declaration names, deduplicated and sorted by `Name.lt`.
+Lookup order is independent of attribute and import order. -/
+meta def handlerNames : CoreM (Array Name) := do
+ return (handlerExt.getState (← getEnv)).qsort Name.lt |>.eraseReps
+
+private meta unsafe def evalHandlerUnsafe (name : Name) : MetaM Handler :=
+ evalConst Handler name
+
+@[implemented_by evalHandlerUnsafe]
+private meta opaque evalHandler (name : Name) : MetaM Handler
+
+private meta def ordinaryAxiom (name : Name) : Bool :=
+ [``propext, ``Classical.choice, ``Quot.sound].contains name
+
+/-- Optional solvers may depend only on Lean's standard logical axioms.
+Imported dependency inventories also cover theorem bodies hidden by modules. -/
+meta def checkAxioms (name : Name) (proof : Expr) : MetaM Unit := do
+ profileitM Exception "rcf axiom dependency check" (← getOptions) do
+ let proof ← instantiateMVars proof
+ -- Universe metavariables do not hide declarations in an inventory probe.
+ -- Expression metavariables can hide arbitrary proof dependencies.
+ if proof.hasExprMVar then throwError "rcf: handler {name} returned an unresolved proof"
+ for constant in proof.getUsedConstants do
+ for dependency in ← collectAxioms constant do
+ unless ordinaryAxiom dependency do
+ throwError "rcf: handler {name} proposed a proof using forbidden axiom {dependency} (through {constant})"
+
+/-- Screen closed expression data before native evaluation or proof acceptance.
+Local hypotheses remain permitted; unresolved and nonstandard dependencies do not. -/
+meta def checkExpr (name : Name) (expression : Expr) : MetaM Expr := do
+ let expression ← instantiateMVars expression
+ if expression.hasMVar then throwError "rcf: {name} contains unresolved metavariables"
+ checkAxioms name expression
+ let usesUnsafe ← profileitM Exception "rcf unsafe dependency check" (← getOptions) do
+ pure ((← getEnv).hasUnsafe expression)
+ if usesUnsafe then
+ throwError "rcf: {name} uses an unsafe declaration"
+ return expression
+
+/-- Accept only a closed ordinary proof of the exact target. Agreement cannot
+assign caller metavariables; a fresh uncached theorem checks the candidate
+against its target in the kernel and exposes all transitive dependencies. -/
+meta def checkProof (name : Name) (target proof : Expr)
+ (category : String := "rcf proof") : MetaM Expr := withNewMCtxDepth do
+ let proof ← instantiateMVars proof
+ if proof.hasMVar then
+ throwError "rcf: handler {name} returned an unresolved proof"
+ let proof := ShareCommon.shareCommon' proof
+ let agrees ← profileitM Exception (category ++ " goal agreement") (← getOptions) do
+ withNewMCtxDepth <| isDefEq (← inferType proof) target
+ unless agrees do
+ throwError "rcf: handler {name} proposed a proof of a different goal"
+ checkAxioms name proof
+ let usesUnsafe ← profileitM Exception "rcf unsafe dependency check" (← getOptions) do
+ pure ((← getEnv).hasUnsafe proof)
+ if usesUnsafe then
+ throwError "rcf: handler {name} proposed a proof using an unsafe declaration"
+ let proof ← profileitM Exception (category ++ " candidate check") (← getOptions) do
+ withOptions (fun opts => debug.skipKernelTC.set (Elab.async.set opts false) false) do
+ mkAuxTheorem target proof (zetaDelta := true) (cache := false)
+ let .thmInfo _ ← withoutExporting <| getConstInfo proof.getAppFn.constName!
+ | throwError "rcf: handler {name} proposed a candidate that did not close as a theorem"
+ checkAxioms name proof
+ return proof
+
+/-- Try handlers transactionally. Successful handlers retain auxiliary
+proof declarations but cannot export assignments to the target's metavariables.
+Exceptions and structured failures are terminal; only `declined` continues. -/
+private meta def dispatchHandlers (target : Expr)
+ (reason : Reify.UnsupportedCoefficient) : MetaM Expr := do
+ for name in ← handlerNames do
+ let saved ← saveState
+ let (result, _) ← tryFinally' (do
+ let info ← getConstInfo name
+ unless info.levelParams.isEmpty && (← isDefEq info.type (mkConst ``Handler)) do
+ throwError "rcf: invalid handler signature for {name}"
+ let handler ← evalHandler name
+ match ← withOptions (debug.skipKernelTC.set · false) <| handler target with
+ | .proved proof => pure (HandlerResult.proved (← instantiateMVars proof))
+ | .failed message => pure (.failed (← addMessageContext message))
+ | .declined => pure .declined)
+ (fun result => do
+ match result with
+ | some (.proved _) =>
+ modify fun state => { state with
+ mctx := saved.meta.mctx
+ postponed := saved.meta.postponed
+ zetaDeltaFVarIds := saved.meta.zetaDeltaFVarIds }
+ | _ => saved.restore)
+ match result with
+ | .declined => pure ()
+ | .failed message => throwError message
+ | .proved proof => return ← checkProof name target proof "rcf handler"
+ throwError reason.message
+
+/-- Whether a cell participates in the sentence's quantifier fold. -/
+private meta def relevantCell (sentence : Sentence) (data : CellsCert)
+ (cell : Cell data.isolations.intervals.size) : Bool :=
+ match sentence, data.iocCmps with
+ | .forallReal _, _ | .existsReal _, _ => true
+ | .forallIoc a b _, some cmps | .existsIoc a b _, some cmps =>
+ Cell.meetsIocOn a b cmps cell
+ | _, none => false
+
+/-- Locate the first checked universal counterexample cell. -/
+private meta def failingCell? (sentence : Sentence) (data : CellsCert) :
+ Option (Cell data.isolations.intervals.size) :=
+ (Cell.all data.isolations.intervals.size).find? fun cell =>
+ relevantCell sentence data cell &&
+ data.signs.evalCell? sentence data.isolations cell == some false
+
+/-- Render the exact sample or isolating interval attached to a cell. -/
+private meta def describeCell (data : CellsCert)
+ (cell : Cell data.isolations.intervals.size) : MessageData :=
+ match cell with
+ | .open cut =>
+ m!"open cell at dyadic sample {data.isolations.openPoint cut |>.toRat}"
+ | .root i =>
+ let interval := data.isolations.intervals[i]
+ m!"root cell isolated in ({interval.lower.toRat}, {interval.upper.toRat}]"
+
+/-- Diagnostic for a checked false verdict. False results never enter the
+proof-producing path. -/
+private meta def falseMessage (sentence : Sentence)
+ (certificate : Certificate) : MessageData :=
+ match sentence with
+ | .existsReal _ | .existsIoc _ _ _ =>
+ "rcf: the existential sentence is false. Every relevant decomposition\n\
+ cell was checked and found false, so there is no witness"
+ | .forallReal _ | .forallIoc _ _ _ =>
+ match certificate with
+ | .cells data =>
+ match failingCell? sentence data with
+ | some cell => m!"rcf: the universal sentence is false on the {describeCell data cell}"
+ | none => "rcf: the universal sentence is false on a checked decomposition cell"
+ | .noRoots _ | .constants =>
+ "rcf: the universal sentence is false on the sole open cell at dyadic sample 0"
+ | .emptyIoc =>
+ "rcf: internal error: an empty-domain universal produced false"
+
+/-- Construct the proof for a supported true sentence. The compiled builder
+selects evidence, while `Certificate.check` and `check_sound` are the only
+certificate trust boundary. -/
+private meta def proveRational (target : Expr) (reflected : Reify.SentenceResult) : MetaM Expr := do
+ let sentence ← Reify.sentenceExpr reflected.sentence
+ unless ← isDefEq sentence reflected.expr do
+ throwError "rcf: internal runtime/literal sentence mismatch"
+ let some result := build? reflected.sentence
+ | throwError "rcf: certificate construction failed"
+ unless result.verdict do
+ throwError (falseMessage reflected.sentence result.certificate)
+ unless result.certificate.check reflected.sentence do
+ throwError "rcf: internal error: a true builder verdict failed replay"
+ let certificate ← Reify.certificateExpr result.certificate
+ let check ← mkAppM ``Certificate.check #[sentence, certificate]
+ let checkType ← mkAppM ``Eq #[check, mkConst ``Bool.true]
+ let checked ← mkDecideProof checkType
+ let sound ← mkAppM ``check_sound
+ #[sentence, certificate, checked]
+ let proof ← mkAppM ``Iff.mp #[reflected.proof, sound]
+ unless ← isDefEq (← inferType proof) target do
+ throwError "rcf: internal final proof mismatch"
+ return proof
+
+/-- Prove a rational goal without dispatching coefficient handlers. Unsupported
+syntax and unsuccessful proof attempts restore the metavariable state. -/
+meta def proveRationalGoal (target : Expr) : MetaM Expr := do
+ let saved ← saveState
+ let (proof, _) ← tryFinally' (do
+ match ← (Reify.recognizeSentence target).run with
+ | .ok reflected => proveRational target reflected
+ | .error reason => throwError reason.message)
+ (fun result => unless result.isSome do saved.restore)
+ return proof
+
+/-- Prove a rational goal, or dispatch only a typed closed-coefficient decline.
+Every unsuccessful attempt restores its metavariable state, including runtime
+exceptions. Existing rational search and replay remain terminal. -/
+meta def proveGoal (target : Expr) : MetaM Expr := do
+ let saved ← saveState
+ let (proof, _) ← tryFinally' (do
+ match ← (Reify.recognizeSentence target).run with
+ | .ok reflected => proveRational target reflected
+ | .error reason => do
+ saved.restore
+ dispatchHandlers target reason)
+ (fun result => unless result.isSome do saved.restore)
+ return proof
+
+/-- Decide a supported singly quantified univariate real polynomial goal by
+building and replaying a literal certificate. -/
+syntax (name := rcfTac) "rcf" : tactic
+
+/-- Elaborate `rcf` by constructing and replaying a checked certificate. -/
+@[tactic rcfTac] meta def evalRCFTac : Tactic := fun stx => do
+ match stx with
+ | `(tactic| rcf) =>
+ let saved ← saveState
+ let _ ← tryFinally' (do
+ let goal ← getMainGoal
+ goal.withContext do
+ let target ← instantiateMVars (← goal.getType)
+ let proof ← proveGoal target
+ goal.assign proof
+ replaceMainGoal [])
+ (fun result => unless result.isSome do saved.restore)
+ | _ => throwUnsupportedSyntax
+
+end Hex.RCF
diff --git a/reports/data/hexrcf-admission/initial-profile-inputs/CellSourceCost.lean.txt b/reports/data/hexrcf-admission/initial-profile-inputs/CellSourceCost.lean.txt
new file mode 100644
index 0000000000..fd61085d90
--- /dev/null
+++ b/reports/data/hexrcf-admission/initial-profile-inputs/CellSourceCost.lean.txt
@@ -0,0 +1,175 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+import HexRCF.RealCoefficients.RowQuote
+import HexRCF.CellReplay.Operations
+import HexRCF.RealCoefficients.RootQuote
+import HexRCF.RealCoefficients.RationalQuote
+import HexRCF.RealCoefficients.ScalarQuote
+import HexRCF.RootTableQuote.Input
+import HexRCF.RealCoefficients.CellQuote
+import HexRCF.SourceIdentityPacket
+open Lean Meta Qq Hex Hex.RealClosure Hex.SignDet Hex.RCF.RealCoefficients
+open Hex.RCF.RealCoefficients.CellReplayTests
+open Hex.RCF.RealCoefficients.CellReplayTests.Algebraic
+/-! Quote the original source through independently restored literal cells over
+one retained selected algebraic parent. Older complete-packet acceptance proofs
+are excluded by the importing audit; coefficient seed facts remain checked inputs. This fixed-parent case does not reconstruct arbitrary source histories. -/
+namespace Hex.RCF.CellSourceCost
+set_option profiler true
+set_option profiler.threshold 100
+set_option maxHeartbeats 60000000
+set_option maxRecDepth 32768
+set_option smartUnfolding false
+set_option trace.Hex.RCF.RowQuote true
+def rational (value : Int) : Codec.Json := .arr #[.number 0,.number value,.number 1]
+def scalar (polynomial : Array Codec.Json) (sign : Int) : Codec.Json :=
+ .arr #[.arr polynomial,.number sign]
+def polynomial : Codec.Json := .arr #[
+ scalar #[rational 0,rational (-1)] (-1),.arr #[],scalar #[rational 1] 1]
+run_meta do
+ withoutExporting do
+ let target : Q(Prop) := q(∃ x : ℝ, x ^ 2 - Real.sqrt 2 ≥ 0 ∧
+ x ^ 2 - Real.sqrt 2 ≤ 0 ∧ (0 : ℝ) = 0)
+ let basic : Hex.RealFormula.Reify.Config := {}
+ let config := {basic with ring := {basic.ring with budget :=
+ {basic.ring.budget with proofNodes := 24000000}}}
+ let .ok source ← Reify.prepare target config
+ | throwError "original complete-cell source was not recognized"
+ unless source.coefficients.size == 1 && source.divisors.isEmpty do
+ throwError "original complete-cell source changed its coefficient/guard inventory"
+ let quantified ← whnf source.formula
+ unless quantified.getAppFn.isConstOf ``Hex.RealFormula.Prenex.quant do
+ throwError "original complete-cell source is not quantified"
+ let matrix ← whnf quantified.appArg!
+ unless matrix.getAppFn.isConstOf ``Hex.RealFormula.Prenex.matrix do
+ throwError "original complete-cell source has no shared matrix"
+ let formula := matrix.appArg!
+ let codec : Q(ValueCodec (Algebraic.Element Hex.RCF.SelectedRootTests.Data.native)) :=
+ q(Algebraic.Element.codec (context := Hex.RCF.SelectedRootTests.Data.native)
+ Hex.RCF.SelectedRootTests.Data.base.codec)
+ let reader ← mkAppM ``Codec.readPoly #[codec,mkConst ``polynomial]
+ let result ← match ← profileitM Exception "complete algebraic source quotation" (← getOptions) (RootQuote.runWith (do
+ let p ← ScalarQuote.quotePolyWith reader (mkConst ``Records.facts) fun expression =>
+ liftM (RationalQuote.decoder (mkConst ``Hex.RCF.SelectedRootTests.Data.registry) expression)
+ logInfo m!"literal polynomial reconstructed; proofNodes={p.usage.proofNodes}"
+ let polynomialType ← inferType p.value
+ Hex.RealFormula.Reify.accountProof polynomialType
+ Hex.RealFormula.Reify.accountProof p.value
+ let polynomialName := mkPrivateName (← getEnv) (← mkFreshUserName `FrozenPolynomial)
+ let polynomial ← mkAuxDefinition polynomialName polynomialType p.value (compile := false)
+ let signature ← mkAppM ``Tower.Context.signature #[mkConst ``Schema.parent]
+ let cert ← mkAppM ``RadicalCert.mk #[signature,polynomial,polynomial,polynomial,mkNatLit 1]
+ let certificateType ← inferType cert
+ Hex.RealFormula.Reify.accountProof certificateType
+ Hex.RealFormula.Reify.accountProof cert
+ let certificateName := mkPrivateName (← getEnv) (← mkFreshUserName `FrozenRadical)
+ let cert ← mkAuxDefinition certificateName certificateType cert (compile := false)
+ let cells := mkApp (mkConst ``Codec.Json.Value.array)
+ (mkApp2 (mkConst ``Codec.Json.Values.cons) (mkConst ``Literals.sections)
+ (mkApp2 (mkConst ``Codec.Json.Values.cons) (mkConst ``Literals.sectors)
+ (mkConst ``Codec.Json.Values.nil)))
+ let empty ← mkListLit (← mkAppM ``Tower.Context.Value #[mkConst ``Schema.parent]) []
+ let some operations ← unfoldDefinition? (mkConst ``Operations.operations)
+ | throwError "supplied operations have no accessible definition"
+ let operations := operations.replace fun expression =>
+ if expression.isConstOf ``Hex.RCF.SelectedRootTests.Data.reduction then
+ some (mkConst ``Hex.RCF.RootTableQuoteTests.reduction)
+ else if expression.isConstOf ``Hex.RCF.SelectedRootTests.Data.reduction_eq then
+ some (mkConst ``Hex.RCF.RootTableQuoteTests.reduction_eq)
+ else none
+ Meta.check operations
+ let operationsType ← inferType operations
+ Hex.RealFormula.Reify.accountProof operationsType
+ Hex.RealFormula.Reify.accountProof operations
+ let name := mkPrivateName (← getEnv) (← mkFreshUserName `FrozenOperations)
+ let operations ← mkAuxDefinition name operationsType operations (compile := false)
+ let program ← mkAppM ``CellOperations.check
+ #[operations,mkConst ``Operations.codec,mkConst ``Schema.values,
+ formula,empty,cert,
+ mkConst ``Hex.RealFormula.Quantifier.existsReal,mkConst ``Literals.roots,cells]
+ let quoted ← CellQuote.replayWith program fun expression => do
+ if let some proof ← RowQuote.decoder expression then return some proof
+ if expression.getAppFn.isConstOf ``RootTable.read then
+ let table ← RootQuote.quoteWith expression fun expression =>
+ liftM (RationalQuote.decoder (mkConst ``Hex.RCF.SelectedRootTests.Data.registry) expression)
+ let kind ← inferType table.value
+ Hex.RealFormula.Reify.accountProof kind
+ Hex.RealFormula.Reify.accountProof table.value
+ let name := mkPrivateName (← getEnv) (← mkFreshUserName `FrozenRootTable)
+ let value ← mkAuxDefinition name kind table.value (compile := false)
+ let strict ← mkAppM ``RootQuote.read_eq #[expression,table.value,table.proof]
+ let readerType ← whnf (← inferType expression)
+ unless readerType.isAppOfArity ``Except 2 do
+ throwError "nested root-table result changed its exception type"
+ let accepted ← mkAppOptM ``Except.ok
+ #[some readerType.getAppArgs[0]!,some readerType.getAppArgs[1]!,some value]
+ let target ← mkEq expression accepted
+ Hex.RealFormula.Reify.accountProof target
+ Hex.RealFormula.Reify.accountProof strict
+ return some (← Hex.RCF.checkProof `frozenTable target (mkExpectedPropHint strict target))
+ return none
+ let result := quoted
+ let kind ← inferType result.proof
+ unless kind.isAppOfArity ``Eq 3 do throwError "complete quotation did not return an equation"
+ let optional := kind.getAppArgs[1]!
+ unless optional.getAppFn.isConstOf ``Except.toOption do
+ throwError "staged quotation omitted the optional reader boundary"
+ let program := optional.getAppArgs.back!
+ unless program.getAppFn.isConstOf ``CellOperations.check do
+ throwError "complete quotation changed its original checker"
+ let readerType ← whnf (← inferType program)
+ let accepted ← mkAppOptM ``Except.ok
+ #[some readerType.getAppArgs[0]!,some readerType.getAppArgs[1]!,some (mkConst ``Bool.true)]
+ let target ← mkEq program accepted
+ let checked ← mkAppM ``RootQuote.read_eq #[program,result.value,result.proof]
+ Hex.RealFormula.Reify.accountProof target
+ Hex.RealFormula.Reify.accountProof checked
+ let proof ← Hex.RCF.checkProof `freshCompleteLiteral target (mkExpectedPropHint checked target)
+ let axioms ← collectAxioms proof.getAppFn.constName!
+ unless axioms.all (fun name => [``propext,``Classical.choice,``Quot.sound].contains name) do
+ throwError "fresh complete literal quote has inadmissible dependencies"
+ addDecl (.thmDecl {
+ name := `Hex.RCF.CellSourceCost.checked,levelParams := [],type := target,value := proof})
+ let valuation ← withLocalDeclD `i (← mkAppM ``Fin #[mkNatLit 1]) fun i => do
+ let value ← mkAppM ``Tower.Model.value
+ #[mkConst ``Schema.original,mkApp (mkConst ``Schema.values) i]
+ mkLambdaFVars #[i] value
+ let identityType ← mkEq valuation source.valuation
+ let identity ← mkFreshExprMVar identityType
+ let remaining ← Lean.Elab.runTactic' identity.mvarId!
+ (← `(tactic| funext i; fin_cases i; exact Hex.RCF.SourceIdentityPacket.coefficient))
+ unless remaining.isEmpty do throwError "original coefficient identity left goals"
+ let identity ← instantiateMVars identity
+ Hex.RealFormula.Reify.accountProof identityType
+ Hex.RealFormula.Reify.accountProof identity
+ let identity ← Hex.RCF.checkProof `completeSourceIdentity identityType identity
+ let realTarget := source.original
+ let arguments := program.getAppArgs
+ let info ← getFunInfoNArgs program.getAppFn arguments.size
+ let inputs := arguments.zipIdx |>.filterMap fun (argument,index) =>
+ if info.paramInfo[index]!.binderInfo.isExplicit then some argument else none
+ let checker ← mkAppM ``CompleteReplay.check (inputs.extract 1 inputs.size)
+ let law ← mkAppM ``CellOperations.check_eq inputs
+ let accepted ← mkAppM ``Eq.trans #[← mkEqSymm law,mkConst `Hex.RCF.CellSourceCost.checked]
+ let completed ← CellQuote.finishPacketWith source realTarget checker accepted
+ (mkConst ``Schema.original) identity
+ let sourceProof := completed.proof
+ Hex.RealFormula.Reify.accountProof realTarget
+ Hex.RealFormula.Reify.accountProof sourceProof
+ let sourceProof ← Hex.RCF.checkProof `freshCompleteSource realTarget sourceProof
+ addDecl (.thmDecl {
+ name := `Hex.RCF.CellSourceCost.source,levelParams := [],type := realTarget,value := sourceProof})
+ let sourceAxioms ← collectAxioms `Hex.RCF.CellSourceCost.source
+ unless sourceAxioms.all (fun name => [``propext,``Classical.choice,``Quot.sound].contains name) do
+ throwError "complete original source quotation has inadmissible dependencies"
+ logInfo m!"original algebraic source quotation proofNodes={result.usage.proofNodes}; axioms={axioms}"
+ logInfo m!"original algebraic source complete proofNodes={completed.usage.proofNodes}"
+ return {completed with usage := (← get).budget.consumed}
+ ) config source.usage) with
+ | .ok result => pure result
+ | .error error => throwError "fresh complete literal quote refused: {Hex.RealFormula.Reify.Error.toMessageData error}"
+ logInfo m!"complete original-source attempt consumed proofNodes={result.usage.proofNodes}"
+end Hex.RCF.CellSourceCost
diff --git a/reports/data/hexrcf-admission/initial-profile-inputs/lakefile.lean.txt b/reports/data/hexrcf-admission/initial-profile-inputs/lakefile.lean.txt
new file mode 100644
index 0000000000..c626ed7141
--- /dev/null
+++ b/reports/data/hexrcf-admission/initial-profile-inputs/lakefile.lean.txt
@@ -0,0 +1,324 @@
+import Lake
+open Lake DSL
+package scalarReviewRender
+require Hex from "/home/kim/worktrees/hex-dev/hex-dev-issue-10358"
+lean_lib ScalarReviewRender
+lean_lib SourceSelectionProbe
+
+lean_lib SourceSelectionEmitter
+
+lean_lib SignPacketEncodedProbe
+
+lean_lib PublicFrameProbe
+
+lean_lib RelativeScalarProbe
+
+lean_lib ScratchRootQuote
+
+lean_lib MajorSource
+lean_lib MajorProbe
+
+lean_lib SignPacketEncodedAudit
+
+lean_lib PacketBodyProbe
+
+lean_lib PacketBodyCheck
+
+lean_lib PacketConversions
+
+lean_lib MomentHeadProof
+
+lean_lib SignatureQuote
+lean_lib SignatureProbe
+
+lean_lib SignatureControls
+lean_lib SignatureAudit
+
+lean_lib SignatureRoundtrip
+
+lean_lib HeaderQuote
+lean_lib HeaderProbe
+
+lean_lib TransportCases
+lean_lib TransportProbe
+
+lean_lib TransportAudit
+
+lean_lib TransportQuote
+lean_lib TransportFixedProbe
+lean_lib TransportFixedAudit
+
+lean_lib OldRootQuote
+lean_lib MixedHeadData
+lean_lib MixedHeadProbe
+
+lean_lib CodecTransportCases
+lean_lib CodecTransportProbe
+lean_lib CodecTransportAudit
+
+lean_lib LiteralCallbackProbe
+lean_lib TransportPacket
+lean_lib TransportPacketValues
+lean_lib TransportPacketAudit
+
+lean_lib ContextQuote
+
+lean_lib MultiCodecQuote
+lean_lib MultiCodecAudit
+
+lean_lib HeaderPacket
+
+lean_lib HeaderPacketAudit
+
+lean_lib HeaderPacketValues
+
+lean_lib HeaderPacketControls
+
+lean_lib HeaderControls
+
+lean_lib HelperOrderData
+lean_lib HelperOrderProbe
+
+lean_lib PackedHeader
+
+lean_lib PackedHeaderAudit
+
+lean_lib RootDecode
+
+lean_lib RootDecodeProbe
+
+lean_lib RootDecodeAudit
+
+lean_lib FrameBindingProbe
+
+lean_lib GraphEncodingProbe
+
+lean_lib RootDecodeInlineProbe
+
+lean_lib PreparedRootDecode
+
+lean_lib PreparedInlineProbe
+
+lean_lib ReflexiveDecode
+
+lean_lib RetainedInlineProbe
+
+lean_lib RetainedInlineAudit
+
+lean_lib RootPrepareImport
+lean_lib RootPreparePrivateImport
+
+lean_lib RootPrepareInspect
+
+lean_lib FreshCompleteQuote
+
+lean_lib ProofFunctionData
+
+lean_lib ProofFunctionQuote
+
+lean_lib FreshCompleteFrozen
+
+lean_lib FormulaTerms
+
+lean_lib FreshCompleteAudit
+
+lean_lib FreshSourcePreflight
+
+lean_lib RootCacheProbe
+
+lean_lib FreshCompleteCached
+
+lean_lib BooleanCacheData
+
+lean_lib BooleanCacheControls
+
+lean_lib FreshCachedAudit
+
+lean_lib FreshCompleteBaseline
+
+lean_lib FreshBaselineAudit
+
+lean_lib RootProfileProbe
+
+lean_lib FreshCompleteProfile
+
+lean_lib FreshProfileAudit
+
+lean_lib QuoteSnapshot
+
+lean_lib SnapshotSeed
+
+lean_lib SnapshotRead
+
+lean_lib SnapshotReject
+
+lean_lib RootSnapshotProbe
+
+lean_lib FreshCompleteSnapshot
+
+lean_lib SnapshotLocalRead
+
+lean_lib SnapshotReplay
+
+lean_lib FreshSnapshotAudit
+
+lean_lib FreshCompleteRead
+
+lean_lib SnapshotRepair
+
+lean_lib SnapshotParts
+
+lean_lib SnapshotBridge
+
+lean_lib SnapshotInner
+
+lean_lib SnapshotReflexive
+
+lean_lib ReplayEquationProbe
+
+lean_lib SnapshotShape
+
+lean_lib RootReplayQuoteProbe
+
+lean_lib SnapshotExplicit
+
+lean_lib ReplayQuoteControls
+
+lean_lib ReplayQuoteAudit
+
+lean_lib FreshCompleteReplay
+
+lean_lib FreshReplayAudit
+
+lean_lib FreshCompletePublished
+
+lean_lib FreshPublishedAudit
+
+lean_lib TreeReviewRender
+
+lean_lib RootFailureProbe
+
+lean_lib RadicalBoundaryProbe
+
+lean_lib CollectBoundaryProbe
+
+lean_lib ReadCollectFailure
+
+lean_lib FreshCompleteFailure
+
+lean_lib CollectQuoteProbe
+
+lean_lib CollectQuoteCases
+
+lean_lib ReadBooleanFailure
+
+lean_lib BooleanFailureSummary
+
+lean_lib SelectedProjectionProbe
+
+lean_lib SelectedProjectionRepair
+
+lean_lib SelectedProjectionQuote
+
+lean_lib SelectedProjectionCallback
+
+lean_lib ProjectionCaseData
+
+lean_lib ProjectionCases
+
+lean_lib ProjectionAudit
+
+lean_lib FreshCompleteProjected
+
+lean_lib FreshProjectedAudit
+
+lean_lib BoundaryCase
+
+lean_lib BoundaryQuoteProbe
+
+lean_lib BoundaryCaseProbe
+
+lean_lib ProjectionDepthCases
+
+lean_lib RowReviewRender
+
+lean_lib BoundaryTable
+
+lean_lib BoundaryTableProbe
+
+lean_lib BoundaryTypeOrder
+
+lean_lib BoundaryTypeOrderBase
+
+lean_lib BoundaryTypeHiddenBase
+lean_lib BoundaryTypeHidden
+
+lean_lib BoundaryTypeAudit
+
+lean_lib BoundaryProductionAudit
+
+lean_lib PrefixQuoteProbe
+lean_lib FunctionReplay
+
+lean_lib ReplayHelperReviewRender
+
+lean_lib PhaseQuote
+lean_lib SourcePhaseProfile
+
+lean_lib FreshStaged
+
+lean_lib FreshStagedAudit
+
+lean_lib StagedZeroProbe
+
+lean_lib PhaseCellQuote
+
+lean_lib ConstructorProfile
+
+lean_lib ConstructorAlgebraicProfile
+
+lean_lib FormulaShapeProbe
+
+lean_lib BoundaryCellQuote
+
+lean_lib RowBoundaryProbe
+
+lean_lib PhaseCellPointwise
+
+lean_lib CellPointwiseProfile
+
+lean_lib HelperCostProbe
+
+lean_lib SignPacketCostProbe
+
+lean_lib CellQuotationReviewRender
+
+lean_lib RecursiveCostProbe
+
+lean_lib RowReadStage
+
+lean_lib RowReadStageProbe
+
+lean_lib RowReadStageAudit
+
+lean_lib RowReadMemo
+
+lean_lib RowReadMemoProbe
+
+lean_lib RowReadMemoAudit
+
+lean_lib CellMemoReviewRender
+
+lean_lib SourceIdentityEmitter
+
+lean_lib SourceIdentityLiterals
+
+lean_lib SourceIdentityProbe
+
+lean_lib SourceIdentityAudit
+
+lean_lib SourceIdentityControls
+
+lean_lib SourceIdentityReviewRender
+
+lean_lib CellSourceCost
diff --git a/reports/data/hexrcf-admission/initial-profile-inputs/lean-toolchain.txt b/reports/data/hexrcf-admission/initial-profile-inputs/lean-toolchain.txt
new file mode 100644
index 0000000000..f0e00b3338
--- /dev/null
+++ b/reports/data/hexrcf-admission/initial-profile-inputs/lean-toolchain.txt
@@ -0,0 +1 @@
+leanprover/lean4:v4.35.0-rc3
diff --git a/reports/data/hexrcf-admission/lakefile.lean.txt b/reports/data/hexrcf-admission/lakefile.lean.txt
new file mode 100644
index 0000000000..f7377b0536
--- /dev/null
+++ b/reports/data/hexrcf-admission/lakefile.lean.txt
@@ -0,0 +1,8 @@
+import Lake
+open Lake DSL
+package guardCost
+require Hex from "/home/kim/.codex/tasks/hex-10358/guard-cost-worktree"
+lean_lib CellSourceCost
+lean_lib AxiomForestChecks
+lean_lib AxiomForestCost
+lean_lib ForestAudit
diff --git a/reports/data/hexrcf-admission/lean-toolchain.txt b/reports/data/hexrcf-admission/lean-toolchain.txt
new file mode 100644
index 0000000000..f0e00b3338
--- /dev/null
+++ b/reports/data/hexrcf-admission/lean-toolchain.txt
@@ -0,0 +1 @@
+leanprover/lean4:v4.35.0-rc3
diff --git a/reports/data/hexrcf-admission/original-Tactic.lean.txt b/reports/data/hexrcf-admission/original-Tactic.lean.txt
new file mode 100644
index 0000000000..5b86f61b7c
--- /dev/null
+++ b/reports/data/hexrcf-admission/original-Tactic.lean.txt
@@ -0,0 +1,266 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+
+module
+
+public import HexRCF.Reify
+public meta import HexRCF.DecisionCheck
+
+public section
+
+/-!
+# The `rcf` tactic
+
+The tactic runs certificate construction as compiled meta code, embeds the
+result as literal data, and closes true goals only through the kernel-facing
+Boolean checker and its soundness theorem. False verdicts are diagnostics.
+-/
+
+namespace Hex.RCF
+
+open Lean Elab Tactic Meta
+
+/-- An optional handler either declines the source syntax, reports a terminal
+failure (including false verdicts and exhausted/rejected replay), or proposes
+an ordinary proof of the original goal. -/
+meta inductive HandlerResult where
+ /-- This handler does not recognize the source syntax. -/
+ | declined
+ /-- Recognized syntax failed; no subsequent handler may run. -/
+ | failed (message : MessageData)
+ /-- A candidate proof, checked by the base before goal assignment. -/
+ | proved (proof : Expr)
+
+/-- Optional coefficient solvers receive the unchanged source target. -/
+meta abbrev Handler := Expr → MetaM HandlerResult
+
+private meta initialize handlerExt : SimplePersistentEnvExtension Name (Array Name) ←
+ registerSimplePersistentEnvExtension {
+ addImportedFn := fun entries => entries.flatten
+ addEntryFn := fun entries name => entries.push name
+ }
+
+meta initialize registerBuiltinAttribute {
+ name := `rcf_handler
+ descr := "register an optional closed-coefficient handler for rcf"
+ applicationTime := .afterCompilation
+ add := fun decl stx kind => do
+ ensureAttrDeclIsMeta `rcf_handler decl kind
+ Attribute.Builtin.ensureNoArgs stx
+ unless kind == AttributeKind.global do
+ throwAttrMustBeGlobal `rcf_handler kind
+ let info ← getConstInfo decl
+ unless info.levelParams.isEmpty do
+ throwError "rcf_handler: {decl} must be monomorphic"
+ unless ← MetaM.run' <| isDefEq info.type (mkConst ``Handler) do
+ throwAttrDeclNotOfExpectedType `rcf_handler decl info.type (mkConst ``Handler)
+ modifyEnv fun env => handlerExt.addEntry env decl
+}
+
+/-- Registered declaration names, deduplicated and sorted by `Name.lt`.
+Lookup order is independent of attribute and import order. -/
+meta def handlerNames : CoreM (Array Name) := do
+ return (handlerExt.getState (← getEnv)).qsort Name.lt |>.eraseReps
+
+private meta unsafe def evalHandlerUnsafe (name : Name) : MetaM Handler :=
+ evalConst Handler name
+
+@[implemented_by evalHandlerUnsafe]
+private meta opaque evalHandler (name : Name) : MetaM Handler
+
+private meta def ordinaryAxiom (name : Name) : Bool :=
+ [``propext, ``Classical.choice, ``Quot.sound].contains name
+
+/-- Optional solvers may depend only on Lean's standard logical axioms.
+Imported dependency inventories also cover theorem bodies hidden by modules. -/
+meta def checkAxioms (name : Name) (proof : Expr) : MetaM Unit := do
+ let proof ← instantiateMVars proof
+ -- Universe metavariables do not hide declarations in an inventory probe.
+ -- Expression metavariables can hide arbitrary proof dependencies.
+ if proof.hasExprMVar then throwError "rcf: handler {name} returned an unresolved proof"
+ for constant in proof.getUsedConstants do
+ for dependency in ← collectAxioms constant do
+ unless ordinaryAxiom dependency do
+ throwError "rcf: handler {name} proposed a proof using forbidden axiom {dependency} (through {constant})"
+
+/-- Screen closed expression data before native evaluation or proof acceptance.
+Local hypotheses remain permitted; unresolved and nonstandard dependencies do not. -/
+meta def checkExpr (name : Name) (expression : Expr) : MetaM Expr := do
+ let expression ← instantiateMVars expression
+ if expression.hasMVar then throwError "rcf: {name} contains unresolved metavariables"
+ checkAxioms name expression
+ if (← getEnv).hasUnsafe expression then
+ throwError "rcf: {name} uses an unsafe declaration"
+ return expression
+
+/-- Accept only a closed ordinary proof of the exact target. Agreement cannot
+assign caller metavariables; a fresh uncached theorem checks the candidate
+against its target in the kernel and exposes all transitive dependencies. -/
+meta def checkProof (name : Name) (target proof : Expr)
+ (category : String := "rcf proof") : MetaM Expr := withNewMCtxDepth do
+ let proof ← instantiateMVars proof
+ if proof.hasMVar then
+ throwError "rcf: handler {name} returned an unresolved proof"
+ let proof := ShareCommon.shareCommon' proof
+ let agrees ← profileitM Exception (category ++ " goal agreement") (← getOptions) do
+ withNewMCtxDepth <| isDefEq (← inferType proof) target
+ unless agrees do
+ throwError "rcf: handler {name} proposed a proof of a different goal"
+ checkAxioms name proof
+ if (← getEnv).hasUnsafe proof then
+ throwError "rcf: handler {name} proposed a proof using an unsafe declaration"
+ let proof ← profileitM Exception (category ++ " candidate check") (← getOptions) do
+ withOptions (fun opts => debug.skipKernelTC.set (Elab.async.set opts false) false) do
+ mkAuxTheorem target proof (zetaDelta := true) (cache := false)
+ let .thmInfo _ ← withoutExporting <| getConstInfo proof.getAppFn.constName!
+ | throwError "rcf: handler {name} proposed a candidate that did not close as a theorem"
+ checkAxioms name proof
+ return proof
+
+/-- Try handlers transactionally. Successful handlers retain auxiliary
+proof declarations but cannot export assignments to the target's metavariables.
+Exceptions and structured failures are terminal; only `declined` continues. -/
+private meta def dispatchHandlers (target : Expr)
+ (reason : Reify.UnsupportedCoefficient) : MetaM Expr := do
+ for name in ← handlerNames do
+ let saved ← saveState
+ let (result, _) ← tryFinally' (do
+ let info ← getConstInfo name
+ unless info.levelParams.isEmpty && (← isDefEq info.type (mkConst ``Handler)) do
+ throwError "rcf: invalid handler signature for {name}"
+ let handler ← evalHandler name
+ match ← withOptions (debug.skipKernelTC.set · false) <| handler target with
+ | .proved proof => pure (HandlerResult.proved (← instantiateMVars proof))
+ | .failed message => pure (.failed (← addMessageContext message))
+ | .declined => pure .declined)
+ (fun result => do
+ match result with
+ | some (.proved _) =>
+ modify fun state => { state with
+ mctx := saved.meta.mctx
+ postponed := saved.meta.postponed
+ zetaDeltaFVarIds := saved.meta.zetaDeltaFVarIds }
+ | _ => saved.restore)
+ match result with
+ | .declined => pure ()
+ | .failed message => throwError message
+ | .proved proof => return ← checkProof name target proof "rcf handler"
+ throwError reason.message
+
+/-- Whether a cell participates in the sentence's quantifier fold. -/
+private meta def relevantCell (sentence : Sentence) (data : CellsCert)
+ (cell : Cell data.isolations.intervals.size) : Bool :=
+ match sentence, data.iocCmps with
+ | .forallReal _, _ | .existsReal _, _ => true
+ | .forallIoc a b _, some cmps | .existsIoc a b _, some cmps =>
+ Cell.meetsIocOn a b cmps cell
+ | _, none => false
+
+/-- Locate the first checked universal counterexample cell. -/
+private meta def failingCell? (sentence : Sentence) (data : CellsCert) :
+ Option (Cell data.isolations.intervals.size) :=
+ (Cell.all data.isolations.intervals.size).find? fun cell =>
+ relevantCell sentence data cell &&
+ data.signs.evalCell? sentence data.isolations cell == some false
+
+/-- Render the exact sample or isolating interval attached to a cell. -/
+private meta def describeCell (data : CellsCert)
+ (cell : Cell data.isolations.intervals.size) : MessageData :=
+ match cell with
+ | .open cut =>
+ m!"open cell at dyadic sample {data.isolations.openPoint cut |>.toRat}"
+ | .root i =>
+ let interval := data.isolations.intervals[i]
+ m!"root cell isolated in ({interval.lower.toRat}, {interval.upper.toRat}]"
+
+/-- Diagnostic for a checked false verdict. False results never enter the
+proof-producing path. -/
+private meta def falseMessage (sentence : Sentence)
+ (certificate : Certificate) : MessageData :=
+ match sentence with
+ | .existsReal _ | .existsIoc _ _ _ =>
+ "rcf: the existential sentence is false. Every relevant decomposition\n\
+ cell was checked and found false, so there is no witness"
+ | .forallReal _ | .forallIoc _ _ _ =>
+ match certificate with
+ | .cells data =>
+ match failingCell? sentence data with
+ | some cell => m!"rcf: the universal sentence is false on the {describeCell data cell}"
+ | none => "rcf: the universal sentence is false on a checked decomposition cell"
+ | .noRoots _ | .constants =>
+ "rcf: the universal sentence is false on the sole open cell at dyadic sample 0"
+ | .emptyIoc =>
+ "rcf: internal error: an empty-domain universal produced false"
+
+/-- Construct the proof for a supported true sentence. The compiled builder
+selects evidence, while `Certificate.check` and `check_sound` are the only
+certificate trust boundary. -/
+private meta def proveRational (target : Expr) (reflected : Reify.SentenceResult) : MetaM Expr := do
+ let sentence ← Reify.sentenceExpr reflected.sentence
+ unless ← isDefEq sentence reflected.expr do
+ throwError "rcf: internal runtime/literal sentence mismatch"
+ let some result := build? reflected.sentence
+ | throwError "rcf: certificate construction failed"
+ unless result.verdict do
+ throwError (falseMessage reflected.sentence result.certificate)
+ unless result.certificate.check reflected.sentence do
+ throwError "rcf: internal error: a true builder verdict failed replay"
+ let certificate ← Reify.certificateExpr result.certificate
+ let check ← mkAppM ``Certificate.check #[sentence, certificate]
+ let checkType ← mkAppM ``Eq #[check, mkConst ``Bool.true]
+ let checked ← mkDecideProof checkType
+ let sound ← mkAppM ``check_sound
+ #[sentence, certificate, checked]
+ let proof ← mkAppM ``Iff.mp #[reflected.proof, sound]
+ unless ← isDefEq (← inferType proof) target do
+ throwError "rcf: internal final proof mismatch"
+ return proof
+
+/-- Prove a rational goal without dispatching coefficient handlers. Unsupported
+syntax and unsuccessful proof attempts restore the metavariable state. -/
+meta def proveRationalGoal (target : Expr) : MetaM Expr := do
+ let saved ← saveState
+ let (proof, _) ← tryFinally' (do
+ match ← (Reify.recognizeSentence target).run with
+ | .ok reflected => proveRational target reflected
+ | .error reason => throwError reason.message)
+ (fun result => unless result.isSome do saved.restore)
+ return proof
+
+/-- Prove a rational goal, or dispatch only a typed closed-coefficient decline.
+Every unsuccessful attempt restores its metavariable state, including runtime
+exceptions. Existing rational search and replay remain terminal. -/
+meta def proveGoal (target : Expr) : MetaM Expr := do
+ let saved ← saveState
+ let (proof, _) ← tryFinally' (do
+ match ← (Reify.recognizeSentence target).run with
+ | .ok reflected => proveRational target reflected
+ | .error reason => do
+ saved.restore
+ dispatchHandlers target reason)
+ (fun result => unless result.isSome do saved.restore)
+ return proof
+
+/-- Decide a supported singly quantified univariate real polynomial goal by
+building and replaying a literal certificate. -/
+syntax (name := rcfTac) "rcf" : tactic
+
+/-- Elaborate `rcf` by constructing and replaying a checked certificate. -/
+@[tactic rcfTac] meta def evalRCFTac : Tactic := fun stx => do
+ match stx with
+ | `(tactic| rcf) =>
+ let saved ← saveState
+ let _ ← tryFinally' (do
+ let goal ← getMainGoal
+ goal.withContext do
+ let target ← instantiateMVars (← goal.getType)
+ let proof ← proveGoal target
+ goal.assign proof
+ replaceMainGoal [])
+ (fun result => unless result.isSome do saved.restore)
+ | _ => throwUnsupportedSyntax
+
+end Hex.RCF
diff --git a/reports/data/hexrcf-admission/run-axiom-forest-cost.py b/reports/data/hexrcf-admission/run-axiom-forest-cost.py
new file mode 100644
index 0000000000..d9abdacf83
--- /dev/null
+++ b/reports/data/hexrcf-admission/run-axiom-forest-cost.py
@@ -0,0 +1,12 @@
+from pathlib import Path
+import importlib.util,json,os,subprocess
+repo=Path("/home/kim/worktrees/hex-dev/hex-dev-issue-10358")
+spec=importlib.util.spec_from_file_location("cpu_lease",repo/"scripts/bench/cpu_lease.py")
+module=importlib.util.module_from_spec(spec);spec.loader.exec_module(module)
+cpu,lease=module.cpu_lease()
+try:
+ os.sched_setaffinity(0,{cpu})
+ context=dict(cpu=cpu,affinity=sorted(os.sched_getaffinity(0)),host_load=os.getloadavg(),schedule=["AB","BA"],repetitions=10,depth=128,roots=8,scope="build-only admission traversal, not a source proof or whole tactic comparison")
+ Path("/home/kim/.codex/tasks/hex-10358/axiom-forest-cost-context.json").write_text(json.dumps(context,indent=2)+"\n")
+ raise SystemExit(subprocess.run(["lake","build","AxiomForestCost"]).returncode)
+finally:lease.close()
diff --git a/reports/data/hexrcf-admission/run-bounded.txt b/reports/data/hexrcf-admission/run-bounded.txt
new file mode 100644
index 0000000000..2cc8636e8a
--- /dev/null
+++ b/reports/data/hexrcf-admission/run-bounded.txt
@@ -0,0 +1,10 @@
+#!/usr/bin/env bash
+set -euo pipefail
+exec systemd-run --user --wait --pipe --collect \
+ --unit=hex-10358-lean-build \
+ --property=MemoryMax=32G \
+ --property=MemorySwapMax=0 \
+ --property=OOMPolicy=kill \
+ --working-directory="$PWD" \
+ --setenv="PATH=$PATH" --setenv=LEAN_NUM_THREADS=2 \
+ "$@"
diff --git a/reports/data/hexrcf-admission/source.patch.gz b/reports/data/hexrcf-admission/source.patch.gz
new file mode 100644
index 0000000000..d468a907cc
Binary files /dev/null and b/reports/data/hexrcf-admission/source.patch.gz differ
diff --git a/reports/data/hexrcf-admission/verify.py b/reports/data/hexrcf-admission/verify.py
new file mode 100644
index 0000000000..68ecc20c19
--- /dev/null
+++ b/reports/data/hexrcf-admission/verify.py
@@ -0,0 +1,70 @@
+#!/usr/bin/env python3
+"""Verify the source-bound admission traversal evidence and immutable parent."""
+import argparse
+import gzip
+import hashlib
+import json
+from pathlib import Path
+import subprocess
+import sys
+
+parser = argparse.ArgumentParser(description=__doc__)
+parser.add_argument('--check-head', action='store_true')
+args = parser.parse_args()
+root = Path(__file__).resolve().parent
+repo = root.parents[2]
+sha = lambda raw: hashlib.sha256(raw).hexdigest()
+git = lambda *a: subprocess.check_output(['git', *a], cwd=repo)
+record = json.loads((root / 'context.json').read_text())
+parent = root.parent / 'hexrcf-cell-finish' / 'rollback'
+subprocess.run([sys.executable, str(parent / 'verify.py')], check=True)
+assert sha((parent / 'context.json').read_bytes()) == record['parent_context_sha256']
+changed = git('diff', '--name-only', record['base_commit'],
+ record['source_commit']).decode().splitlines()
+assert sorted(changed) == sorted([
+ 'HexRCF/Tactic.lean', 'HexRCF/HandlerTests/Admission.lean', 'lakefile.lean'])
+for name, digest in record['sources'].items():
+ assert sha(git('show', record['source_commit'] + ':' + name)) == digest, name
+ if args.check_head:
+ assert sha((repo / name).read_bytes()) == digest, name
+for item in record['artifacts']:
+ raw = (root / item['path']).read_bytes()
+ assert len(raw) == item['bytes'] and sha(raw) == item['sha256'], item['path']
+
+def log(name):
+ return gzip.decompress((root / (name + '.gz')).read_bytes()).decode()
+
+for name in ['axiom-forest-full-1.log', 'axiom-forest-audit-1.log',
+ 'axiom-forest-admission-2.log', 'axiom-forest-integration-1.log']:
+ assert 'Build completed successfully' in log(name), name
+ assert 'code=exited, status=0/SUCCESS' in log(name), name
+assert 'proofNodes=8651669' in log('axiom-forest-full-1.log')
+assert '1193 theorems/202 definitions; nonempty traces=1353' in log('axiom-forest-audit-1.log')
+assert 'forest/reference agree on 19' in log('axiom-forest-admission-2.log')
+assert 'forest admission follows all three rolled-back environments' in log('axiom-forest-admission-2.log')
+assert 'declaration uses `sorry`' not in log('axiom-forest-admission-2.log')
+invocation = json.loads((root / 'axiom-forest-integration-invocation.json').read_text())
+assert invocation['targets'] == 51
+for target in ['HexRCF.CellSourceProofs', 'HexRCF.HandlerTests.Admission',
+ 'HexRCF.HandlerTests.Async', 'HexRCF.ReifyTests', 'HexManual',
+ 'HexRCFRealCoefficients']:
+ assert target in invocation['argv'], target
+assert all(item['exit_code'] == 0 for item in record['metadata'])
+samples = log('axiom-forest-cost-1.log')
+for trial, arm, elapsed in [(0, 'A', 20073555), (0, 'B', 5839078),
+ (1, 'B', 5572483), (1, 'A', 19694513)]:
+ assert f'trial={trial}; arm={arm}; ns={elapsed}; repetitions=10; depth=128; roots=8' in samples
+checker = git('show', record['source_commit'] + ':HexRCF/Tactic.lean').decode()
+proof_check = checker.split('meta def checkProof ', 1)[1].split('private meta def dispatchHandlers', 1)[0]
+assert proof_check.count('checkAxioms name proof') == 2
+assert 'hasUnsafe proof' in proof_check and '(cache := false)' in proof_check
+assert 'debug.skipKernelTC.set' in proof_check and 'isDefEq' in proof_check
+assert 'MemoryMax=32G' in (root / 'run-bounded.txt').read_text()
+assert 'MemorySwapMax=0' in (root / 'run-bounded.txt').read_text()
+assert 'LEAN_NUM_THREADS=2' in (root / 'run-bounded.txt').read_text()
+policy = (root / 'axiom-forest-integration-memory-policy.txt').read_text()
+assert 'ActiveState=active' in policy
+assert 'MemoryMax=34359738368' in policy and 'MemorySwapMax=0' in policy
+print(f"Verified admission evidence: {len(record['sources'])} source bindings, "
+ f"{len(record['artifacts'])} artifacts, 51-target integration, 19+3 policy cases; "
+ "guard-only paired costs, not a whole-tactic speedup")
diff --git a/reports/data/hexrcf-bounded-source/BoundedSourceReviewRender.lean.txt b/reports/data/hexrcf-bounded-source/BoundedSourceReviewRender.lean.txt
new file mode 100644
index 0000000000..213eaa3519
--- /dev/null
+++ b/reports/data/hexrcf-bounded-source/BoundedSourceReviewRender.lean.txt
@@ -0,0 +1,5 @@
+import HexManual
+import VersoManual
+#eval Verso.Genre.Manual.manualMain (%doc HexManual)
+ (options := ["--output", "bounded-source-review-html",
+ "--without-tex", "--with-html-single", "--without-html-multi"])
diff --git a/reports/data/hexrcf-bounded-source/README.md b/reports/data/hexrcf-bounded-source/README.md
new file mode 100644
index 0000000000..9e916bd19d
--- /dev/null
+++ b/reports/data/hexrcf-bounded-source/README.md
@@ -0,0 +1,7 @@
+# Bounded-source evidence
+
+See [the report](../../hexrcf-bounded-source.md). Run `python3 reports/data/hexrcf-bounded-source/verify.py --check-head` to check the current source bindings; without that flag, the verifier checks the immutable implementation commit.
+
+The record binds actual default-budget proof quotation, the fresh importing body/axiom/producer audit, native endpoint/uniqueness/refusal controls, byte equality, the successful 57-target integration, final manual rebuild/render and all six actually inspected captures. The integration input hashes precede one manual-only timing wording correction; the original manual, exact patch and later full render bind that difference. All other integration sources match exactly.
+
+Completed scratch production and proof probes are retained with their inputs, separately from the default-budget repository proof builds. The initial scratch proof used 24M as its explicit ceiling. No paired runtime speedup or scaling result is claimed. Earlier records keep their original source/checker pins. This record does not establish full #10358, fresh Opus review, final CI or merge.
diff --git a/reports/data/hexrcf-bounded-source/bounded-source-browser-1.log.gz b/reports/data/hexrcf-bounded-source/bounded-source-browser-1.log.gz
new file mode 100644
index 0000000000..6168b4ae0e
Binary files /dev/null and b/reports/data/hexrcf-bounded-source/bounded-source-browser-1.log.gz differ
diff --git a/reports/data/hexrcf-bounded-source/bounded-source-browser.mjs b/reports/data/hexrcf-bounded-source/bounded-source-browser.mjs
new file mode 100644
index 0000000000..fc71868930
--- /dev/null
+++ b/reports/data/hexrcf-bounded-source/bounded-source-browser.mjs
@@ -0,0 +1,61 @@
+import fs from 'node:fs';
+import {spawn} from 'node:child_process';
+const root=process.argv[2];
+if(!root) throw new Error('Pass the scratch render directory');
+const profile=root+'/bounded-source-profile';
+fs.mkdirSync(profile,{recursive:true});
+fs.rmSync(profile+'/DevToolsActivePort',{force:true});
+const chrome=spawn(process.env.CHROME_BIN || '/home/kim/.cache/ms-playwright/chromium-1243/chrome-linux64/chrome',[
+ '--headless=new','--no-sandbox','--disable-gpu','--allow-file-access-from-files',
+ '--remote-debugging-port=0','--remote-allow-origins=*','--user-data-dir='+profile,'about:blank'],
+ {env:{...process.env,LD_LIBRARY_PATH:fs.readFileSync(root+'/browser-lib-paths.txt','utf8').trim()},stdio:'ignore'});
+let socket;
+try {
+ const portFile=profile+'/DevToolsActivePort';
+ for(let i=0;!fs.existsSync(portFile);i++) {
+ if(i>200||chrome.exitCode!==null) throw new Error('Chrome did not expose CDP');
+ await new Promise(r=>setTimeout(r,100));
+ }
+ const port=fs.readFileSync(portFile,'utf8').split('\n')[0];
+ const tabs=await (await fetch('http://127.0.0.1:'+port+'/json')).json();
+ socket=new WebSocket(tabs.find(t=>t.type==='page').webSocketDebuggerUrl);
+ await new Promise((r,j)=>{socket.onopen=r;socket.onerror=j});
+ let sequence=0;const pending=new Map();let loaded;
+ socket.onmessage=e=>{
+ const msg=JSON.parse(e.data);
+ if(msg.id){const p=pending.get(msg.id);pending.delete(msg.id);msg.error?p.reject(msg.error):p.resolve(msg.result);}
+ if(msg.method==='Page.loadEventFired'&&loaded){loaded();loaded=undefined;}
+ };
+ const call=(method,params={})=>new Promise((resolve,reject)=>{const id=++sequence;pending.set(id,{resolve,reject});socket.send(JSON.stringify({id,method,params}));});
+ await call('Page.enable');
+ const load=new Promise(r=>loaded=r);
+ await call('Page.navigate',{url:'file:///home/kim/.codex/tasks/hex-10358/scalar-review-render/bounded-source-review-html/html-single/index.html'});
+ await load;
+ const evaluate=async expression=>{const r=await call('Runtime.evaluate',{expression,returnByValue:true});if(r.exceptionDetails)throw new Error(JSON.stringify(r.exceptionDetails));return r.result.value;};
+ const metadata=[]; const sectionMetadata=[];
+ for(const [label,width] of [['desktop',1440],['narrow',390]]) {
+ await call('Emulation.setDeviceMetricsOverride',{width,height:width===390?1800:1000,deviceScaleFactor:1,mobile:false});
+ for(const [kind,phrase] of [["api", "When a source already supplies an isolating square"], ["apicode", "When a source already supplies an isolating square"], ["source", "produce both quadratic conjugates and the cubic source"]] ) {
+ const exact=await evaluate(`(() => {const p=Array.from(document.querySelectorAll('p')).find(e=>e.textContent.replace(/\\s+/g,' ').includes(${JSON.stringify(phrase)}));if(!p)throw new Error('missing paragraph');const target=['sourcecode','apicode'].includes(${JSON.stringify(kind)})?p.nextElementSibling:p;if(['sourcecode','apicode'].includes(${JSON.stringify(kind)})&&!target.matches('.hl.lean.block, pre, div:has(code)'))throw new Error('target is not a Lean code block');target.scrollIntoView({block:${JSON.stringify('center')}});return {text:p.textContent,viewport:innerWidth,scrollY,paragraphWidth:p.getBoundingClientRect().width,scrollWidth:p.scrollWidth,targetTag:target.tagName,targetWidth:target.getBoundingClientRect().width,targetScrollWidth:target.scrollWidth,descendantOverflow:Math.max(0,...[target,...target.querySelectorAll('*')].map(e=>e.scrollWidth-e.clientWidth)),overflowElements:[target,...target.querySelectorAll('*')].filter(e=>e.scrollWidth-e.clientWidth>1).map(e=>({tag:e.tagName,classes:e.className,width:e.clientWidth,scroll:e.scrollWidth,text:e.textContent.slice(0,100)})).slice(0,8)};})()`);
+ if(!exact)throw new Error('missing visual target '+kind);
+ await evaluate('new Promise(resolve=>requestAnimationFrame(()=>requestAnimationFrame(resolve)))');
+ const shot=await call('Page.captureScreenshot',{format:'png'});
+ fs.writeFileSync(root+'/'+'bounded-source-final-'+label+'-'+kind+'.png',Buffer.from(shot.data,'base64'));
+ metadata.push({label,kind,...exact});
+ }
+ sectionMetadata.push(await evaluate(`(() => {
+ const headings=Array.from(document.querySelectorAll('h1,h2,h3,h4,h5,h6'));
+ const heading=headings.find(e=>e.textContent.includes('Frozen cells over a selected algebraic coefficient'));
+ if(!heading)throw new Error('missing quotation heading');
+ const following=headings.find(e=>e!==heading && Number(e.tagName[1])<=Number(heading.tagName[1]) && (heading.compareDocumentPosition(e)&4));
+ if(!following)throw new Error('missing following section');
+ const targets=Array.from(document.querySelectorAll('p,.hl.lean.block')).filter(e=>(heading.compareDocumentPosition(e)&4) && (e.compareDocumentPosition(following)&4));
+ if(targets.length<8)throw new Error('incomplete quotation section');
+ return {label:${JSON.stringify(label)},width:innerWidth,targets:targets.map(e=>({tag:e.tagName,text:e.textContent.slice(0,160),overflow:Math.max(0,...[e,...e.querySelectorAll('*')].map(n=>n.scrollWidth-n.clientWidth))}))};
+ })()`));
+ }
+ fs.writeFileSync(root+'/bounded-source-final-section-overflow.json',JSON.stringify(sectionMetadata,null,2));
+ fs.writeFileSync(root+'/bounded-source-final-inspection.json',JSON.stringify(metadata,null,2));
+ if(metadata.some(e=>e.targetScrollWidth>e.targetWidth+1 || e.descendantOverflow>1)) throw new Error('Changed content overflows; retained captures and metrics identify the affected block.');
+ process.stdout.write('Saved bounded-source desktop/narrow screenshots\n');
+} finally {if(socket)socket.close();chrome.kill('SIGTERM');}
diff --git a/reports/data/hexrcf-bounded-source/bounded-source-controls-1.log.gz b/reports/data/hexrcf-bounded-source/bounded-source-controls-1.log.gz
new file mode 100644
index 0000000000..03a1248463
Binary files /dev/null and b/reports/data/hexrcf-bounded-source/bounded-source-controls-1.log.gz differ
diff --git a/reports/data/hexrcf-bounded-source/bounded-source-core-1.log.gz b/reports/data/hexrcf-bounded-source/bounded-source-core-1.log.gz
new file mode 100644
index 0000000000..27763e7a3f
Binary files /dev/null and b/reports/data/hexrcf-bounded-source/bounded-source-core-1.log.gz differ
diff --git a/reports/data/hexrcf-bounded-source/bounded-source-diff-check.log.gz b/reports/data/hexrcf-bounded-source/bounded-source-diff-check.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-bounded-source/bounded-source-diff-check.log.gz differ
diff --git a/reports/data/hexrcf-bounded-source/bounded-source-final-desktop-api.png b/reports/data/hexrcf-bounded-source/bounded-source-final-desktop-api.png
new file mode 100644
index 0000000000..c5a3c963cb
Binary files /dev/null and b/reports/data/hexrcf-bounded-source/bounded-source-final-desktop-api.png differ
diff --git a/reports/data/hexrcf-bounded-source/bounded-source-final-desktop-apicode.png b/reports/data/hexrcf-bounded-source/bounded-source-final-desktop-apicode.png
new file mode 100644
index 0000000000..c199c22d34
Binary files /dev/null and b/reports/data/hexrcf-bounded-source/bounded-source-final-desktop-apicode.png differ
diff --git a/reports/data/hexrcf-bounded-source/bounded-source-final-desktop-source.png b/reports/data/hexrcf-bounded-source/bounded-source-final-desktop-source.png
new file mode 100644
index 0000000000..dfb13f8877
Binary files /dev/null and b/reports/data/hexrcf-bounded-source/bounded-source-final-desktop-source.png differ
diff --git a/reports/data/hexrcf-bounded-source/bounded-source-final-inspection.json b/reports/data/hexrcf-bounded-source/bounded-source-final-inspection.json
new file mode 100644
index 0000000000..93ae08ec15
--- /dev/null
+++ b/reports/data/hexrcf-bounded-source/bounded-source-final-inspection.json
@@ -0,0 +1,86 @@
+[
+ {
+ "label": "desktop",
+ "kind": "api",
+ "text": "\n When a source already supplies an isolating square, a bounded proposal avoids\nconstructing all real roots and their derivative words. The existing\nSourceBuild.buildOn\nchecks an open interval with root-free endpoints and exactly one root, then\nstill produces the equation and original square-margin packets. It rejects\ninvalid endpoints, absent or ambiguous roots; it does not retry enumeration.\nFor this rational source, twice the square's half-width supplies candidate\nendpoints. The checked count and subsequent source identity establish their\nmeaning; the producer assumes no unchecked interval-isolation claim.",
+ "viewport": 1440,
+ "scrollY": 278737,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "P",
+ "targetWidth": 752,
+ "targetScrollWidth": 752,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "desktop",
+ "kind": "apicode",
+ "text": "\n When a source already supplies an isolating square, a bounded proposal avoids\nconstructing all real roots and their derivative words. The existing\nSourceBuild.buildOn\nchecks an open interval with root-free endpoints and exactly one root, then\nstill produces the equation and original square-margin packets. It rejects\ninvalid endpoints, absent or ambiguous roots; it does not retry enumeration.\nFor this rational source, twice the square's half-width supplies candidate\nendpoints. The checked count and subsequent source identity establish their\nmeaning; the producer assumes no unchecked interval-isolation claim.",
+ "viewport": 1440,
+ "scrollY": 279129,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "CODE",
+ "targetWidth": 740,
+ "targetScrollWidth": 740,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "desktop",
+ "kind": "source",
+ "text": "\n The bounded-source controls\nproduce both quadratic conjugates and the cubic source, retaining 25,477\ncanonical bytes. Separate ordinary-kernel quotation authenticates their\noriginal identities at 687,781, 690,200 and 731,070 charged proof nodes,\nrespectively, with the unchanged one-million-node default. Final driver checks\nand exports are outside these counts. The first default-budget quotation\nmodule built in 49 seconds. The combined native/proof/fresh-audit build took\n83 seconds and peaked at 1.9 GiB. These fixed observations are not a matched\ntiming comparison. The source alias, rational model and coefficient-map laws are\nstill supplied. Bounded proposals do not discover a general predecessor\nhistory, prove complete cell coverage or complete the tactic's algebraic\ndecision procedure.",
+ "viewport": 1440,
+ "scrollY": 279555,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "P",
+ "targetWidth": 752,
+ "targetScrollWidth": 752,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "api",
+ "text": "\n When a source already supplies an isolating square, a bounded proposal avoids\nconstructing all real roots and their derivative words. The existing\nSourceBuild.buildOn\nchecks an open interval with root-free endpoints and exactly one root, then\nstill produces the equation and original square-margin packets. It rejects\ninvalid endpoints, absent or ambiguous roots; it does not retry enumeration.\nFor this rational source, twice the square's half-width supplies candidate\nendpoints. The checked count and subsequent source identity establish their\nmeaning; the producer assumes no unchecked interval-isolation claim.",
+ "viewport": 390,
+ "scrollY": 447146,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "P",
+ "targetWidth": 343,
+ "targetScrollWidth": 343,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "apicode",
+ "text": "\n When a source already supplies an isolating square, a bounded proposal avoids\nconstructing all real roots and their derivative words. The existing\nSourceBuild.buildOn\nchecks an open interval with root-free endpoints and exactly one root, then\nstill produces the equation and original square-margin packets. It rejects\ninvalid endpoints, absent or ambiguous roots; it does not retry enumeration.\nFor this rational source, twice the square's half-width supplies candidate\nendpoints. The checked count and subsequent source identity establish their\nmeaning; the producer assumes no unchecked interval-isolation claim.",
+ "viewport": 390,
+ "scrollY": 447653,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "CODE",
+ "targetWidth": 331,
+ "targetScrollWidth": 331,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "source",
+ "text": "\n The bounded-source controls\nproduce both quadratic conjugates and the cubic source, retaining 25,477\ncanonical bytes. Separate ordinary-kernel quotation authenticates their\noriginal identities at 687,781, 690,200 and 731,070 charged proof nodes,\nrespectively, with the unchanged one-million-node default. Final driver checks\nand exports are outside these counts. The first default-budget quotation\nmodule built in 49 seconds. The combined native/proof/fresh-audit build took\n83 seconds and peaked at 1.9 GiB. These fixed observations are not a matched\ntiming comparison. The source alias, rational model and coefficient-map laws are\nstill supplied. Bounded proposals do not discover a general predecessor\nhistory, prove complete cell coverage or complete the tactic's algebraic\ndecision procedure.",
+ "viewport": 390,
+ "scrollY": 448207,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "P",
+ "targetWidth": 343,
+ "targetScrollWidth": 343,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ }
+]
\ No newline at end of file
diff --git a/reports/data/hexrcf-bounded-source/bounded-source-final-metadata-admissions.log.gz b/reports/data/hexrcf-bounded-source/bounded-source-final-metadata-admissions.log.gz
new file mode 100644
index 0000000000..bd2ec29cdf
Binary files /dev/null and b/reports/data/hexrcf-bounded-source/bounded-source-final-metadata-admissions.log.gz differ
diff --git a/reports/data/hexrcf-bounded-source/bounded-source-final-metadata-copyright.log.gz b/reports/data/hexrcf-bounded-source/bounded-source-final-metadata-copyright.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-bounded-source/bounded-source-final-metadata-copyright.log.gz differ
diff --git a/reports/data/hexrcf-bounded-source/bounded-source-final-metadata-dag.log.gz b/reports/data/hexrcf-bounded-source/bounded-source-final-metadata-dag.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-bounded-source/bounded-source-final-metadata-dag.log.gz differ
diff --git a/reports/data/hexrcf-bounded-source/bounded-source-final-metadata-diff.log.gz b/reports/data/hexrcf-bounded-source/bounded-source-final-metadata-diff.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-bounded-source/bounded-source-final-metadata-diff.log.gz differ
diff --git a/reports/data/hexrcf-bounded-source/bounded-source-final-metadata-freshness.log.gz b/reports/data/hexrcf-bounded-source/bounded-source-final-metadata-freshness.log.gz
new file mode 100644
index 0000000000..44c03f6508
Binary files /dev/null and b/reports/data/hexrcf-bounded-source/bounded-source-final-metadata-freshness.log.gz differ
diff --git a/reports/data/hexrcf-bounded-source/bounded-source-final-metadata-lines.log.gz b/reports/data/hexrcf-bounded-source/bounded-source-final-metadata-lines.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-bounded-source/bounded-source-final-metadata-lines.log.gz differ
diff --git a/reports/data/hexrcf-bounded-source/bounded-source-final-metadata-literals.log.gz b/reports/data/hexrcf-bounded-source/bounded-source-final-metadata-literals.log.gz
new file mode 100644
index 0000000000..251ef5b170
Binary files /dev/null and b/reports/data/hexrcf-bounded-source/bounded-source-final-metadata-literals.log.gz differ
diff --git a/reports/data/hexrcf-bounded-source/bounded-source-final-metadata-manifest.log.gz b/reports/data/hexrcf-bounded-source/bounded-source-final-metadata-manifest.log.gz
new file mode 100644
index 0000000000..1e2a3e818a
Binary files /dev/null and b/reports/data/hexrcf-bounded-source/bounded-source-final-metadata-manifest.log.gz differ
diff --git a/reports/data/hexrcf-bounded-source/bounded-source-final-metadata.json b/reports/data/hexrcf-bounded-source/bounded-source-final-metadata.json
new file mode 100644
index 0000000000..89ed4cacba
--- /dev/null
+++ b/reports/data/hexrcf-bounded-source/bounded-source-final-metadata.json
@@ -0,0 +1,79 @@
+[
+ {
+ "name": "copyright",
+ "argv": [
+ "python3",
+ "scripts/check_copyright_headers.py"
+ ],
+ "exit_code": 0,
+ "log": "bounded-source-final2-metadata-copyright.log"
+ },
+ {
+ "name": "lines",
+ "argv": [
+ "python3",
+ "scripts/check_file_line_counts.py",
+ "--base",
+ "origin/main"
+ ],
+ "exit_code": 0,
+ "log": "bounded-source-final2-metadata-lines.log"
+ },
+ {
+ "name": "dag",
+ "argv": [
+ "python3",
+ "scripts/check_dag.py"
+ ],
+ "exit_code": 0,
+ "log": "bounded-source-final-metadata-dag.log"
+ },
+ {
+ "name": "admissions",
+ "argv": [
+ "python3",
+ "scripts/ci/check_named_admissions.py"
+ ],
+ "exit_code": 0,
+ "log": "bounded-source-final-metadata-admissions.log"
+ },
+ {
+ "name": "manifest",
+ "argv": [
+ "python3",
+ "scripts/release/check_released_manifest.py"
+ ],
+ "exit_code": 0,
+ "log": "bounded-source-final-metadata-manifest.log"
+ },
+ {
+ "name": "freshness",
+ "argv": [
+ "python3",
+ "scripts/bench/check_factor_sweep_freshness.py"
+ ],
+ "exit_code": 0,
+ "log": "bounded-source-final-metadata-freshness.log"
+ },
+ {
+ "name": "literals",
+ "argv": [
+ "python3",
+ "scripts/rcf/selected_literals.py",
+ "--check"
+ ],
+ "exit_code": 0,
+ "log": "bounded-source-final-metadata-literals.log"
+ },
+ {
+ "name": "diff",
+ "argv": [
+ "git",
+ "diff",
+ "--cached",
+ "--check"
+ ],
+ "exit_code": 0,
+ "log": "bounded-source-final2-metadata-diff.log"
+ }
+]
diff --git a/reports/data/hexrcf-bounded-source/bounded-source-final-narrow-api.png b/reports/data/hexrcf-bounded-source/bounded-source-final-narrow-api.png
new file mode 100644
index 0000000000..2d37fc0af7
Binary files /dev/null and b/reports/data/hexrcf-bounded-source/bounded-source-final-narrow-api.png differ
diff --git a/reports/data/hexrcf-bounded-source/bounded-source-final-narrow-apicode.png b/reports/data/hexrcf-bounded-source/bounded-source-final-narrow-apicode.png
new file mode 100644
index 0000000000..5cde91918d
Binary files /dev/null and b/reports/data/hexrcf-bounded-source/bounded-source-final-narrow-apicode.png differ
diff --git a/reports/data/hexrcf-bounded-source/bounded-source-final-narrow-source.png b/reports/data/hexrcf-bounded-source/bounded-source-final-narrow-source.png
new file mode 100644
index 0000000000..255ee27c88
Binary files /dev/null and b/reports/data/hexrcf-bounded-source/bounded-source-final-narrow-source.png differ
diff --git a/reports/data/hexrcf-bounded-source/bounded-source-final-section-overflow.json b/reports/data/hexrcf-bounded-source/bounded-source-final-section-overflow.json
new file mode 100644
index 0000000000..e642dfe42d
--- /dev/null
+++ b/reports/data/hexrcf-bounded-source/bounded-source-final-section-overflow.json
@@ -0,0 +1,924 @@
+[
+ {
+ "label": "desktop",
+ "width": 1440,
+ "targets": [
+ {
+ "tag": "P",
+ "text": "\n Fix the coefficient field ℚ(√2), with its positive selected embedding in ℝ.\nThe polynomial X²−√2 has two real roots. The supplied complete ta",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n These examples import the monorepo fixture HexRCF.CellReplay.Algebraic.Quoted.\nThe original real source is proved by fresh schema preparation",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RealCoefficients\nopen CellReplayTests\nexample : ∃ x : ℝ,\n x ^ 2 - Real.sqrt 2 ≥ 0 ∧\n x ^ 2 - Real.sqrt 2 ≤ 0 ∧\n (0 : ℝ) = 0 := Algebraic.Q",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The complete-packet interface reads the full root table before its cell rows.\nCompleteReplay.check then checks the radical identities and str",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex Hex.RealClosure Hex.SignDet\nopen Hex.RealFormula\nopen Hex.RCF.RealCoefficients\nexample\n {r : BaseContext.Registry}\n {c : Tower.Context r} {n : Na",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n CellQuote.finishPacket additionally binds this checked shared sentence to a\nfreshly reified original source, its fixed coefficient valuation ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RealCoefficients\nopen CellReplayTests.Algebraic\nexample : ∃ x : ℝ,\n x ^ 2 - Real.sqrt 2 ≥ 0 ∧\n x ^ 2 - Real.sqrt 2 ≤ 0 ∧\n 0 / (-1 : ℝ) = 0",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The source-boundary checks refuse a false verdict, a different original\nformula, missing divisor identities and a cancelled zero divisor. A s",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The table's exact root set and strict order are proved conclusions of the\nsupplied replay. The positive and negative fourth roots of 2 have t",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RealCoefficients\nopen CellReplayTests\nexample (x : ℝ) :\n x ∈\n Algebraic.Canonical.roots.values\n Algebraic.Schema.original ↔\n x ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n All coefficient signs used by these readers come from 21 distinct frozen\nscalar packets. Each packet passes the owner's scalar reader in the ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Original divisors still enter preflight when a zero numerator removes their\nvalue from the normalized matrix. This source retains and authent",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RealCoefficients\nopen CellReplayTests\nexample : ∃ x : ℝ,\n x ^ 2 - Real.sqrt 2 ≥ 0 ∧\n x ^ 2 - Real.sqrt 2 ≤ 0 ∧\n 0 / (-1 : ℝ) = 0 :=\n Alge",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A supplied zero divisor is rejected before decoding, including with a malformed\npacket. The fresh quotation module rechecks both original pro",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The same checked rows can be reused when the entire ordered specialized\npolynomial list is unchanged, including repeated and zero atoms. Chan",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RealCoefficients\nopen CellReplayTests\nexample : ∀ x : ℝ,\n (x ^ 2 - Real.sqrt 2 < 0 ∨\n x ^ 2 - Real.sqrt 2 ≥ 0) ∧\n (0 : ℝ) = 0 :=\n Algeb",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Additional fresh proofs cover equality/non-equality and positive outer\nsectors. All six comparisons, conjunction, disjunction and negation ar",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n This example uses one supplied lawful ordinary-real parent and one fixed\ncomplete packet. It establishes finite replay over a non-rational st",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The native construction API can produce the same complete packet. RootBuild.build\nretains the owner's full derivative table and its extracted",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RealCoefficients\nopen Hex.RealClosure\nopen HexPolyTheory.Interpret\nexample\n {r : BaseContext.Registry}\n {c : Tower.Context r}\n (model : To",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n CellBuild.prepare first checks the original divisors, then specializes the\nshared atoms and constructs their radical carrier and complete roo",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n CellBuild.build constructs every section row and every sector record for that\ncomplete root table and proposed ordinary parent-field points. ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n This explicit-point interface does not discover ordinary sector points in\narbitrary parents, assemble missing scalar/provider histories or pr",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The separate native CellDiscover.run API obtains ordinary points from the\nowner's complete partition. Its actual collection converts all fixe",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RealCoefficients\nopen Hex.RealClosure\nexample\n {r : BaseContext.Registry}\n {c : Tower.Context r}\n {ps : List c.Poly}\n (family : Tower.S",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n CellAlignment.aligned derives exact equality between the partition's ordered\nreal boundaries and the independently checked radical root table",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n This is native production followed by independent cell replay. The returned\ncollection retains native conversion history; it is not a frozen ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n CellDiscover.run uses SectorRequest.points and the owner's proved\nboundary-request API. Cut.adjacent establishes the requested endpoints for ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n CellProgress obtains each selected-sign row and each ordinary-point descriptor\nfrom the owner's actual construction theorems. A checked linea",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex Hex.RealClosure\nopen Hex.RealFormula\nopen Hex.RCF.RealCoefficients\nexample\n {r : BaseContext.Registry}\n {c : Tower.Context r} {n : Nat}\n (mode",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n CellDecision.complete composes the actual collection, source conversion,\nradical/root preparation, requested sector points and complete typed",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n CellBuild.evidence now produces those typed rows before freezing them.\nThe public CellBuild.build serializes that same result in the existing",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The discovery result emits its full rootGraph as well as cells.\nPacket.rootGraph_eq binds the graph to the actual typed root table and native",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RealClosure\nopen Hex.RealFormula\nopen Hex.RCF.RealCoefficients\nexample\n {r : BaseContext.Registry}\n {c : Tower.Context r} {n : Nat}\n (model : ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Original fixed-field inputs can enter this producer through\nNumberField.cells. The existing number-field factory checks the original\nselected",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex\nopen Hex.RealClosure\nopen Hex.RealFormula\nopen Hex.RCF.RealCoefficients\nexample\n {n : Nat} (g : RealAlgebraicNumber)\n (registry : BaseContext.Reg",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The native conformance constructs both selected roots of X²−2 and a computed\ncoordinate in the field generated by the positive root of X³−2. ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Literal-reader acceptance still needs finite coverage of every serialized\ncoefficient and context. Frozen provider/context histories, strict ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Independently constructed coefficient contexts can enter complete packet\nproduction through GatherCells.build. Each input retains its origina",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n buildWith reuses the actual owner's gathering result. A compatible ordinary\nmodel proves complete packet production without assuming a succes",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex Hex.RealClosure\nopen Hex.RealClosure.Tower\nopen Hex.RealFormula\nopen Hex.RCF.RealCoefficients\nexample\n {r : BaseContext.Registry}\n {b : BaseConte",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n build_complete additionally derives successful gathering from the original\nowners' compatible base signatures and an ordinary base interpreta",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The native conformance combines separate positive √2 and √3 owners, repeats\none source coordinate, and checks a leading cancellation and repe",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n AlgebraicCells.build starts from original RealAlgebraicNumber inputs.\nIt constructs their checked selected presentations and gathers the resu",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The automatic constructor needs only the original nonzero guards for its\nprogress theorem. The rational interpretation, owner compatibility a",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex Hex.RealClosure\nopen Hex.RealFormula\nopen Hex.RCF.RealCoefficients\nexample (r : BaseContext.Registry)\n {m n : Nat}\n (vs : Fin m →\n RealAlgeb",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n These native-input theorems preserve both emitted quantifier verdicts at the\noriginal selected real values. build_domains concludes every ori",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The complete literal checker can use checked cached arithmetic through\nCellOperations.check. It takes the owner's existing Replay.Operations\n",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex Hex.RealClosure Hex.SignDet\nopen Hex.RealFormula\nopen Hex.RCF.RealCoefficients\nopen Hex.RealClosure.Replay\nexample {r : BaseContext.Registry}\n {p : ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Original guard preflight, radical identities, complete root/cell coverage and\nthe strict fold retain their existing soundness and domain theo",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n CellQuote.replayWith\nquotes a supplied CellOperations.check expression in three stages. It first\nchecks the complete root table, then each de",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula\nopen Hex.Reflect\nopen Hex.RCF.RealCoefficients\nmeta def quoteCellPacket\n (program : Expr)\n (decode : RootQuote.DecoderM)\n (co",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n set_option trace.Hex.RCF.CellQuote true reports reader and finite-family\nboundaries with cumulative proof-node usage. Lean heartbeats remain ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n CellQuote.finishPacketWith\ncontinues this request through the original source proof. It consumes the\nprepared source and the accepted canonic",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The separate finishing action can also continue already recorded usage:",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula\nopen Hex.Reflect\nopen Hex.RCF.RealCoefficients\nmeta def finishCellPacket\n (source : Reify.Source)\n (target checker accepted : Ex",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n That separate transaction rolls back its own work. Clients needing rollback\nof quotation as well must combine both actions in one transaction",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Within this request, row quotation parses each literal sign packet and checks\nits exact ordered queries. It validates a graph once for each d",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The returned equation retains both Boolean verdicts. CellQuote.finishPacket\nperforms source authentication separately and requires an accepte",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "example : ∀ _x : ℝ, (0 : ℝ) = 0 :=\n Hex.RCF.CellQuoteStages.source\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Its replay quotation uses 441,039 nodes for true and 441,041 for false. These\ncounts cover the three replay stages, separately from source re",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A separate rational quadratic packet checks two root sections and three\nsectors in 5,911,125 proof nodes. Its trace records two graph-memo re",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A fresh importing audit checks 1,247 theorem bodies and 101 definitions, with\n1,298 nonempty kernel traces, the unchanged producer guard and ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The algebraic source regression independently reads the complete frozen packet\nover the retained positive square root of 2. It reifies the fo",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "example : ∃ x : ℝ,\n x ^ 2 - Real.sqrt 2 ≥ 0 ∧\n x ^ 2 - Real.sqrt 2 ≤ 0 ∧\n (0 : ℝ) = 0 :=\n Hex.RCF.CellSourceQuote.source\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The shared reification and quotation budget records 8,644,422 proof nodes\nbefore source finishing and 8,651,669 for the complete original-sou",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Its importing proof audit checks 1,193 theorem bodies, 202 definitions and\n1,353 nonempty kernel traces. It excludes the older complete-packe",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a closed retained base/root context, RealModel.build constructs its\nordinary-real interpretation from a caller-supplied real base model a",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A source equation alone does not distinguish real conjugates.\nSourceIdentity.observe\nreads a checked scalar sign at the native descriptor's s",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n SourceIdentity.quoteWith\nconstructs this identity from two supplied scalar readers. Its Anchor retains\nthe original polynomial, isolating squ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula\nopen Hex.Reflect\nopen Hex.RCF.RealCoefficients\nmeta def quoteSourceIdentity\n (anchor : SourceIdentity.Anchor)\n (packets : Source",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The result proves that the reader's selected real root equals the original\nanchor value. Quotation checks both packets, their keys, signs, su",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The frozen square-root regression quotes its parent descriptor and both\npackets in 673,461 proof nodes. Its coefficient identity supplies the",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The native producer SourceBuild.build\ncan discover a selected source from its defining polynomial and a window\npolynomial whose sign is posit",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n This direct API example proposes the positive root of X²−2, using its checked\nsource square:",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex Hex.RealClosure\nopen Hex.RCF.RealCoefficients\n\ndef proposeSquareRoot\n (registry :\n BaseContext.Registry) :=\n Id.run do\n let parent :=\n ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The output reports proposal production. Independent frozen replay establishes\nthe selected real identity. ScalarPacket.buildParts retains the",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n ScalarPacket.buildParts_success and build_success prove actual packet\nproduction for every query at a validated descriptor with a lawful ordi",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The enumerated-source controls\nproduce both quadratic conjugates and a positive cubic root from X³−2, compare\ntheir complete bytes with froze",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n When a source already supplies an isolating square, a bounded proposal avoids\nconstructing all real roots and their derivative words. The exi",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "def proposeBoundedRoot\n (registry :\n BaseContext.Registry) :=\n Id.run do\n let parent :=\n RealClosure.NumberField.base\n registry\n let ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The bounded-source controls\nproduce both quadratic conjugates and the cubic source, retaining 25,477\ncanonical bytes. Separate ordinary-kerne",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n CellQuote.finishOperations takes the supplied-operation acceptance expression\nand an ordinary proof that its result is some (). It kernel-che",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Meta clients can prepare these native inputs from the original Lean statement\nwith AlgebraicPreparation.prepare. It reuses the shared source ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Meta Qq\nopen Hex.RCF.RealCoefficients\nrun_meta do\n let .ok prepared ←\n AlgebraicPreparation.prepare\n q(∀ x : ℝ,\n x^2 + 1 /\n ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The resulting environment stores coefficient proposals first and every original\ndivisor afterward, with separate ordered indices for each rol",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For the retained algebraic expressions, prepared.acceptanceIff proves an exact\nacceptance equivalence. The left side requires the actual alge",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex Lean Meta Qq\nopen Hex.RCF.RealCoefficients\nopen Hex.RealClosure.BaseContext\nrun_meta do\n let target : Q(Prop) :=\n q(∀ x : ℝ, x^2 + Real.sqrt 2 > 0)",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n This proof uses the checked algebraic expressions and their source identities.\nIt does not identify separately computed proposals with frozen",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The automatic-input conformance uses both selected signs of √2 alongside an\nindependent positive √3. It checks simultaneous conditions and a ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The explicit HexRCFAlgebraicCellsStress target retains the stronger condition\nx² = √2 with 1 < x < √3 and its negative-conjugate control. A r",
+ "overflow": 0
+ }
+ ]
+ },
+ {
+ "label": "narrow",
+ "width": 390,
+ "targets": [
+ {
+ "tag": "P",
+ "text": "\n Fix the coefficient field ℚ(√2), with its positive selected embedding in ℝ.\nThe polynomial X²−√2 has two real roots. The supplied complete ta",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n These examples import the monorepo fixture HexRCF.CellReplay.Algebraic.Quoted.\nThe original real source is proved by fresh schema preparation",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RealCoefficients\nopen CellReplayTests\nexample : ∃ x : ℝ,\n x ^ 2 - Real.sqrt 2 ≥ 0 ∧\n x ^ 2 - Real.sqrt 2 ≤ 0 ∧\n (0 : ℝ) = 0 := Algebraic.Q",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The complete-packet interface reads the full root table before its cell rows.\nCompleteReplay.check then checks the radical identities and str",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex Hex.RealClosure Hex.SignDet\nopen Hex.RealFormula\nopen Hex.RCF.RealCoefficients\nexample\n {r : BaseContext.Registry}\n {c : Tower.Context r} {n : Na",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n CellQuote.finishPacket additionally binds this checked shared sentence to a\nfreshly reified original source, its fixed coefficient valuation ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RealCoefficients\nopen CellReplayTests.Algebraic\nexample : ∃ x : ℝ,\n x ^ 2 - Real.sqrt 2 ≥ 0 ∧\n x ^ 2 - Real.sqrt 2 ≤ 0 ∧\n 0 / (-1 : ℝ) = 0",
+ "overflow": 1
+ },
+ {
+ "tag": "P",
+ "text": "\n The source-boundary checks refuse a false verdict, a different original\nformula, missing divisor identities and a cancelled zero divisor. A s",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The table's exact root set and strict order are proved conclusions of the\nsupplied replay. The positive and negative fourth roots of 2 have t",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RealCoefficients\nopen CellReplayTests\nexample (x : ℝ) :\n x ∈\n Algebraic.Canonical.roots.values\n Algebraic.Schema.original ↔\n x ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n All coefficient signs used by these readers come from 21 distinct frozen\nscalar packets. Each packet passes the owner's scalar reader in the ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Original divisors still enter preflight when a zero numerator removes their\nvalue from the normalized matrix. This source retains and authent",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RealCoefficients\nopen CellReplayTests\nexample : ∃ x : ℝ,\n x ^ 2 - Real.sqrt 2 ≥ 0 ∧\n x ^ 2 - Real.sqrt 2 ≤ 0 ∧\n 0 / (-1 : ℝ) = 0 :=\n Alge",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A supplied zero divisor is rejected before decoding, including with a malformed\npacket. The fresh quotation module rechecks both original pro",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The same checked rows can be reused when the entire ordered specialized\npolynomial list is unchanged, including repeated and zero atoms. Chan",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RealCoefficients\nopen CellReplayTests\nexample : ∀ x : ℝ,\n (x ^ 2 - Real.sqrt 2 < 0 ∨\n x ^ 2 - Real.sqrt 2 ≥ 0) ∧\n (0 : ℝ) = 0 :=\n Algeb",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Additional fresh proofs cover equality/non-equality and positive outer\nsectors. All six comparisons, conjunction, disjunction and negation ar",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n This example uses one supplied lawful ordinary-real parent and one fixed\ncomplete packet. It establishes finite replay over a non-rational st",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The native construction API can produce the same complete packet. RootBuild.build\nretains the owner's full derivative table and its extracted",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RealCoefficients\nopen Hex.RealClosure\nopen HexPolyTheory.Interpret\nexample\n {r : BaseContext.Registry}\n {c : Tower.Context r}\n (model : To",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n CellBuild.prepare first checks the original divisors, then specializes the\nshared atoms and constructs their radical carrier and complete roo",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n CellBuild.build constructs every section row and every sector record for that\ncomplete root table and proposed ordinary parent-field points. ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n This explicit-point interface does not discover ordinary sector points in\narbitrary parents, assemble missing scalar/provider histories or pr",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The separate native CellDiscover.run API obtains ordinary points from the\nowner's complete partition. Its actual collection converts all fixe",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RealCoefficients\nopen Hex.RealClosure\nexample\n {r : BaseContext.Registry}\n {c : Tower.Context r}\n {ps : List c.Poly}\n (family : Tower.S",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n CellAlignment.aligned derives exact equality between the partition's ordered\nreal boundaries and the independently checked radical root table",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n This is native production followed by independent cell replay. The returned\ncollection retains native conversion history; it is not a frozen ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n CellDiscover.run uses SectorRequest.points and the owner's proved\nboundary-request API. Cut.adjacent establishes the requested endpoints for ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n CellProgress obtains each selected-sign row and each ordinary-point descriptor\nfrom the owner's actual construction theorems. A checked linea",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex Hex.RealClosure\nopen Hex.RealFormula\nopen Hex.RCF.RealCoefficients\nexample\n {r : BaseContext.Registry}\n {c : Tower.Context r} {n : Nat}\n (mode",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n CellDecision.complete composes the actual collection, source conversion,\nradical/root preparation, requested sector points and complete typed",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n CellBuild.evidence now produces those typed rows before freezing them.\nThe public CellBuild.build serializes that same result in the existing",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The discovery result emits its full rootGraph as well as cells.\nPacket.rootGraph_eq binds the graph to the actual typed root table and native",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RealClosure\nopen Hex.RealFormula\nopen Hex.RCF.RealCoefficients\nexample\n {r : BaseContext.Registry}\n {c : Tower.Context r} {n : Nat}\n (model : ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Original fixed-field inputs can enter this producer through\nNumberField.cells. The existing number-field factory checks the original\nselected",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex\nopen Hex.RealClosure\nopen Hex.RealFormula\nopen Hex.RCF.RealCoefficients\nexample\n {n : Nat} (g : RealAlgebraicNumber)\n (registry : BaseContext.Reg",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The native conformance constructs both selected roots of X²−2 and a computed\ncoordinate in the field generated by the positive root of X³−2. ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Literal-reader acceptance still needs finite coverage of every serialized\ncoefficient and context. Frozen provider/context histories, strict ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Independently constructed coefficient contexts can enter complete packet\nproduction through GatherCells.build. Each input retains its origina",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n buildWith reuses the actual owner's gathering result. A compatible ordinary\nmodel proves complete packet production without assuming a succes",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex Hex.RealClosure\nopen Hex.RealClosure.Tower\nopen Hex.RealFormula\nopen Hex.RCF.RealCoefficients\nexample\n {r : BaseContext.Registry}\n {b : BaseConte",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n build_complete additionally derives successful gathering from the original\nowners' compatible base signatures and an ordinary base interpreta",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The native conformance combines separate positive √2 and √3 owners, repeats\none source coordinate, and checks a leading cancellation and repe",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n AlgebraicCells.build starts from original RealAlgebraicNumber inputs.\nIt constructs their checked selected presentations and gathers the resu",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The automatic constructor needs only the original nonzero guards for its\nprogress theorem. The rational interpretation, owner compatibility a",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex Hex.RealClosure\nopen Hex.RealFormula\nopen Hex.RCF.RealCoefficients\nexample (r : BaseContext.Registry)\n {m n : Nat}\n (vs : Fin m →\n RealAlgeb",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n These native-input theorems preserve both emitted quantifier verdicts at the\noriginal selected real values. build_domains concludes every ori",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The complete literal checker can use checked cached arithmetic through\nCellOperations.check. It takes the owner's existing Replay.Operations\n",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex Hex.RealClosure Hex.SignDet\nopen Hex.RealFormula\nopen Hex.RCF.RealCoefficients\nopen Hex.RealClosure.Replay\nexample {r : BaseContext.Registry}\n {p : ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Original guard preflight, radical identities, complete root/cell coverage and\nthe strict fold retain their existing soundness and domain theo",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n CellQuote.replayWith\nquotes a supplied CellOperations.check expression in three stages. It first\nchecks the complete root table, then each de",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula\nopen Hex.Reflect\nopen Hex.RCF.RealCoefficients\nmeta def quoteCellPacket\n (program : Expr)\n (decode : RootQuote.DecoderM)\n (co",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n set_option trace.Hex.RCF.CellQuote true reports reader and finite-family\nboundaries with cumulative proof-node usage. Lean heartbeats remain ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n CellQuote.finishPacketWith\ncontinues this request through the original source proof. It consumes the\nprepared source and the accepted canonic",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The separate finishing action can also continue already recorded usage:",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula\nopen Hex.Reflect\nopen Hex.RCF.RealCoefficients\nmeta def finishCellPacket\n (source : Reify.Source)\n (target checker accepted : Ex",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n That separate transaction rolls back its own work. Clients needing rollback\nof quotation as well must combine both actions in one transaction",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Within this request, row quotation parses each literal sign packet and checks\nits exact ordered queries. It validates a graph once for each d",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The returned equation retains both Boolean verdicts. CellQuote.finishPacket\nperforms source authentication separately and requires an accepte",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "example : ∀ _x : ℝ, (0 : ℝ) = 0 :=\n Hex.RCF.CellQuoteStages.source\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Its replay quotation uses 441,039 nodes for true and 441,041 for false. These\ncounts cover the three replay stages, separately from source re",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A separate rational quadratic packet checks two root sections and three\nsectors in 5,911,125 proof nodes. Its trace records two graph-memo re",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A fresh importing audit checks 1,247 theorem bodies and 101 definitions, with\n1,298 nonempty kernel traces, the unchanged producer guard and ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The algebraic source regression independently reads the complete frozen packet\nover the retained positive square root of 2. It reifies the fo",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "example : ∃ x : ℝ,\n x ^ 2 - Real.sqrt 2 ≥ 0 ∧\n x ^ 2 - Real.sqrt 2 ≤ 0 ∧\n (0 : ℝ) = 0 :=\n Hex.RCF.CellSourceQuote.source\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The shared reification and quotation budget records 8,644,422 proof nodes\nbefore source finishing and 8,651,669 for the complete original-sou",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Its importing proof audit checks 1,193 theorem bodies, 202 definitions and\n1,353 nonempty kernel traces. It excludes the older complete-packe",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a closed retained base/root context, RealModel.build constructs its\nordinary-real interpretation from a caller-supplied real base model a",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A source equation alone does not distinguish real conjugates.\nSourceIdentity.observe\nreads a checked scalar sign at the native descriptor's s",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n SourceIdentity.quoteWith\nconstructs this identity from two supplied scalar readers. Its Anchor retains\nthe original polynomial, isolating squ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula\nopen Hex.Reflect\nopen Hex.RCF.RealCoefficients\nmeta def quoteSourceIdentity\n (anchor : SourceIdentity.Anchor)\n (packets : Source",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The result proves that the reader's selected real root equals the original\nanchor value. Quotation checks both packets, their keys, signs, su",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The frozen square-root regression quotes its parent descriptor and both\npackets in 673,461 proof nodes. Its coefficient identity supplies the",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The native producer SourceBuild.build\ncan discover a selected source from its defining polynomial and a window\npolynomial whose sign is posit",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n This direct API example proposes the positive root of X²−2, using its checked\nsource square:",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex Hex.RealClosure\nopen Hex.RCF.RealCoefficients\n\ndef proposeSquareRoot\n (registry :\n BaseContext.Registry) :=\n Id.run do\n let parent :=\n ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The output reports proposal production. Independent frozen replay establishes\nthe selected real identity. ScalarPacket.buildParts retains the",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n ScalarPacket.buildParts_success and build_success prove actual packet\nproduction for every query at a validated descriptor with a lawful ordi",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The enumerated-source controls\nproduce both quadratic conjugates and a positive cubic root from X³−2, compare\ntheir complete bytes with froze",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n When a source already supplies an isolating square, a bounded proposal avoids\nconstructing all real roots and their derivative words. The exi",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "def proposeBoundedRoot\n (registry :\n BaseContext.Registry) :=\n Id.run do\n let parent :=\n RealClosure.NumberField.base\n registry\n let ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The bounded-source controls\nproduce both quadratic conjugates and the cubic source, retaining 25,477\ncanonical bytes. Separate ordinary-kerne",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n CellQuote.finishOperations takes the supplied-operation acceptance expression\nand an ordinary proof that its result is some (). It kernel-che",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Meta clients can prepare these native inputs from the original Lean statement\nwith AlgebraicPreparation.prepare. It reuses the shared source ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Meta Qq\nopen Hex.RCF.RealCoefficients\nrun_meta do\n let .ok prepared ←\n AlgebraicPreparation.prepare\n q(∀ x : ℝ,\n x^2 + 1 /\n ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The resulting environment stores coefficient proposals first and every original\ndivisor afterward, with separate ordered indices for each rol",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For the retained algebraic expressions, prepared.acceptanceIff proves an exact\nacceptance equivalence. The left side requires the actual alge",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex Lean Meta Qq\nopen Hex.RCF.RealCoefficients\nopen Hex.RealClosure.BaseContext\nrun_meta do\n let target : Q(Prop) :=\n q(∀ x : ℝ, x^2 + Real.sqrt 2 > 0)",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n This proof uses the checked algebraic expressions and their source identities.\nIt does not identify separately computed proposals with frozen",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The automatic-input conformance uses both selected signs of √2 alongside an\nindependent positive √3. It checks simultaneous conditions and a ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The explicit HexRCFAlgebraicCellsStress target retains the stronger condition\nx² = √2 with 1 < x < √3 and its negative-conjugate control. A r",
+ "overflow": 0
+ }
+ ]
+ }
+]
\ No newline at end of file
diff --git a/reports/data/hexrcf-bounded-source/bounded-source-final2-metadata-copyright.log.gz b/reports/data/hexrcf-bounded-source/bounded-source-final2-metadata-copyright.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-bounded-source/bounded-source-final2-metadata-copyright.log.gz differ
diff --git a/reports/data/hexrcf-bounded-source/bounded-source-final2-metadata-diff.log.gz b/reports/data/hexrcf-bounded-source/bounded-source-final2-metadata-diff.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-bounded-source/bounded-source-final2-metadata-diff.log.gz differ
diff --git a/reports/data/hexrcf-bounded-source/bounded-source-final2-metadata-lines.log.gz b/reports/data/hexrcf-bounded-source/bounded-source-final2-metadata-lines.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-bounded-source/bounded-source-final2-metadata-lines.log.gz differ
diff --git a/reports/data/hexrcf-bounded-source/bounded-source-integration-1.log.gz b/reports/data/hexrcf-bounded-source/bounded-source-integration-1.log.gz
new file mode 100644
index 0000000000..49ae166680
Binary files /dev/null and b/reports/data/hexrcf-bounded-source/bounded-source-integration-1.log.gz differ
diff --git a/reports/data/hexrcf-bounded-source/bounded-source-integration-inputs.json b/reports/data/hexrcf-bounded-source/bounded-source-integration-inputs.json
new file mode 100644
index 0000000000..1899b22767
--- /dev/null
+++ b/reports/data/hexrcf-bounded-source/bounded-source-integration-inputs.json
@@ -0,0 +1,16 @@
+{
+ "conformance-fixtures/HexRCF/bounded-source.json": "566c5f1f092abab73312bb630a02e24873e6723942d450320dae2b52aaa30a75",
+ "conformance/HexRCF/BoundedSource.lean": "5d759fa26433a5f25c6423e9b70b770394459c2b969b33b15a180023269fb9cd",
+ "conformance/HexRCF/BoundedSource/Cubic.lean": "da1c0e1b549fce22cb1f7ea7bb6888dff1d7b59c1219c5b580376bbb4a25ecde",
+ "conformance/HexRCF/BoundedSource/Inputs.lean": "7ffcd6d62f175f3027e2327fd4a86885e933e0715a85ab7afb9b112d76d49a39",
+ "conformance/HexRCF/BoundedSource/Negative.lean": "abb7ef67395b2b90f9e12f551bcc0d16146cca067bf3567707e924c2ecd2fb77",
+ "conformance/HexRCF/BoundedSource/Positive.lean": "d83184a9d54264ba7e1c138eb674db1d67df39681575fa91d96a4681af774321",
+ "conformance/HexRCF/BoundedSource/Proofs.lean": "7f9d47d59dd47aafa90a09d23a966efc0d2ca7fbfa3cdce5ae4771ae1da01a9f",
+ "conformance/HexRCF/BoundedSource/Quote.lean": "70da87d5868d0c3d725e9ed2a531a4b22221e42d794cfd259359f6524be1eaef",
+ "scripts/bench/proof_only_runtime_exemptions/lakefile-rcf-bounded-source-fea47caa-baeeaf73.json": "eaea20ebc9579f4c50ff88344d8c9be3da9fc7c7d0981e9e0d5251dd04a6ab3f",
+ "HexManual/Chapters/HexRCF/AlgebraicCells.lean": "a2d782538a51590f4748dd207b93e80ecdae1c0a5b92f7a10fbc28e763025985",
+ "adapters/HexRCF/RealCoefficients/SourceBuild.lean": "c47f7bc1a968019674c10b1826fb328536ca466e973a1ad38e2f00f30781ab89",
+ "conformance/HexRCF/SelectedRoot/KernelCheck.lean": "499299274a75c6e2a70630c8ae442f21ab7d0514c7d23cffdde3f09fd17421cb",
+ "lakefile.lean": "0b45717104644561ca7415d4c9f43bae6b318cf75eb00e0757a44c9f7db700bc",
+ "scripts/rcf/selected_literals.py": "03e02fa50575882c0784894b76746ff8e594b9a1eb0a285811bc76ee87265e72"
+}
diff --git a/reports/data/hexrcf-bounded-source/bounded-source-integration-invocation.json b/reports/data/hexrcf-bounded-source/bounded-source-integration-invocation.json
new file mode 100644
index 0000000000..c3d8642dc2
--- /dev/null
+++ b/reports/data/hexrcf-bounded-source/bounded-source-integration-invocation.json
@@ -0,0 +1,66 @@
+{
+ "cwd": "/home/kim/worktrees/hex-dev/hex-dev-issue-10358",
+ "argv": [
+ "/home/kim/.codex/tasks/hex-10358/bin/run-bounded",
+ "lake",
+ "build",
+ "HexRCF.TreeQuoteProofs",
+ "HexRCF.RootQuoteConformance",
+ "HexRCF.RationalQuoteConformance",
+ "HexRCF.QuotientQuoteProofs",
+ "HexRCF.DependentQuoteProofs",
+ "HexRCF.DependentScalarProofs",
+ "HexRCF.RootPrepareProofs",
+ "HexRCF.RootPrepareControls",
+ "HexRCF.RootHeaderProofs",
+ "HexRCF.RootHeaderControls",
+ "HexRCF.RootHeaderBudget",
+ "HexRCF.RootHeaderValues",
+ "HexRCF.RootContextProofs",
+ "HexRCF.RootContextConformance",
+ "HexRCF.PublicSignPacketProofs",
+ "HexRCF.PublicSignPacketControls",
+ "HexRCF.SignPacketProofs",
+ "HexRCF.SharedQuoteConformance",
+ "HexRCF.SharedQuoteCallbackProofs",
+ "HexRCF.RecursiveScalarProofs",
+ "HexRCF.ScalarQuoteConformance",
+ "HexRCF.SignatureQuoteConformance",
+ "HexRCF.FrozenSignatureProofs",
+ "HexRCF.FrozenSignatureConformance",
+ "HexRCF.Conformance",
+ "HexRCF.RealCoefficientTactic",
+ "HexRCF.RealCoefficientCommonField",
+ "HexRCF.RootTableQuote.Conformance",
+ "HexManual",
+ "HexRCF.RowQuoteProofs",
+ "HexRCF.ReplayBoundaryProofs",
+ "HexRCFRealCoefficients",
+ "HexRCF.ReplayHelperProofs",
+ "HexRCF.SourceSelectionKernel",
+ "HexRCF.SourceSelectionProofs",
+ "HexRCF.CellQuoteStages",
+ "HexRCF.CellQuoteStageProofs",
+ "HexRCF.CellSourceQuote",
+ "HexRCF.CellSourceProofs",
+ "HexRCF.RowPacketControls",
+ "HexRCF.SourceIdentityLiterals",
+ "HexRCF.SourceIdentityPacket",
+ "HexRCF.SourceIdentityControls",
+ "HexRCF.SourceIdentityProofs",
+ "HexRCF.SourceIdentityEmit",
+ "HexRCF.CellFinishCases",
+ "HexRCF.CellFinishProofs",
+ "HexRCF.HandlerTests.Admission",
+ "HexRCF.HandlerTests",
+ "HexRCF.HandlerTests.Async",
+ "HexRCF.ReifyTests",
+ "HexRCF.SourceBuild",
+ "HexRCF.EnumeratedSource.Quote",
+ "HexRCF.EnumeratedSource.Proofs",
+ "HexRCF.BoundedSource",
+ "HexRCF.BoundedSource.Quote",
+ "HexRCF.BoundedSource.Proofs"
+ ],
+ "targets": 57
+}
diff --git a/reports/data/hexrcf-bounded-source/bounded-source-manual-final.patch.gz b/reports/data/hexrcf-bounded-source/bounded-source-manual-final.patch.gz
new file mode 100644
index 0000000000..ce57380dd5
Binary files /dev/null and b/reports/data/hexrcf-bounded-source/bounded-source-manual-final.patch.gz differ
diff --git a/reports/data/hexrcf-bounded-source/bounded-source-metadata-admissions.log.gz b/reports/data/hexrcf-bounded-source/bounded-source-metadata-admissions.log.gz
new file mode 100644
index 0000000000..bd2ec29cdf
Binary files /dev/null and b/reports/data/hexrcf-bounded-source/bounded-source-metadata-admissions.log.gz differ
diff --git a/reports/data/hexrcf-bounded-source/bounded-source-metadata-copyright.log.gz b/reports/data/hexrcf-bounded-source/bounded-source-metadata-copyright.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-bounded-source/bounded-source-metadata-copyright.log.gz differ
diff --git a/reports/data/hexrcf-bounded-source/bounded-source-metadata-dag.log.gz b/reports/data/hexrcf-bounded-source/bounded-source-metadata-dag.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-bounded-source/bounded-source-metadata-dag.log.gz differ
diff --git a/reports/data/hexrcf-bounded-source/bounded-source-metadata-freshness.log.gz b/reports/data/hexrcf-bounded-source/bounded-source-metadata-freshness.log.gz
new file mode 100644
index 0000000000..44c03f6508
Binary files /dev/null and b/reports/data/hexrcf-bounded-source/bounded-source-metadata-freshness.log.gz differ
diff --git a/reports/data/hexrcf-bounded-source/bounded-source-metadata-lines.log.gz b/reports/data/hexrcf-bounded-source/bounded-source-metadata-lines.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-bounded-source/bounded-source-metadata-lines.log.gz differ
diff --git a/reports/data/hexrcf-bounded-source/bounded-source-metadata-literals.log.gz b/reports/data/hexrcf-bounded-source/bounded-source-metadata-literals.log.gz
new file mode 100644
index 0000000000..251ef5b170
Binary files /dev/null and b/reports/data/hexrcf-bounded-source/bounded-source-metadata-literals.log.gz differ
diff --git a/reports/data/hexrcf-bounded-source/bounded-source-metadata-manifest.log.gz b/reports/data/hexrcf-bounded-source/bounded-source-metadata-manifest.log.gz
new file mode 100644
index 0000000000..1e2a3e818a
Binary files /dev/null and b/reports/data/hexrcf-bounded-source/bounded-source-metadata-manifest.log.gz differ
diff --git a/reports/data/hexrcf-bounded-source/bounded-source-native.json.gz b/reports/data/hexrcf-bounded-source/bounded-source-native.json.gz
new file mode 100644
index 0000000000..df727d8049
Binary files /dev/null and b/reports/data/hexrcf-bounded-source/bounded-source-native.json.gz differ
diff --git a/reports/data/hexrcf-bounded-source/bounded-source-package-diff.log.gz b/reports/data/hexrcf-bounded-source/bounded-source-package-diff.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-bounded-source/bounded-source-package-diff.log.gz differ
diff --git a/reports/data/hexrcf-bounded-source/bounded-source-package-headers.log.gz b/reports/data/hexrcf-bounded-source/bounded-source-package-headers.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-bounded-source/bounded-source-package-headers.log.gz differ
diff --git a/reports/data/hexrcf-bounded-source/bounded-source-package-lines.log.gz b/reports/data/hexrcf-bounded-source/bounded-source-package-lines.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-bounded-source/bounded-source-package-lines.log.gz differ
diff --git a/reports/data/hexrcf-bounded-source/bounded-source-package-links.log.gz b/reports/data/hexrcf-bounded-source/bounded-source-package-links.log.gz
new file mode 100644
index 0000000000..8f9112e6b0
Binary files /dev/null and b/reports/data/hexrcf-bounded-source/bounded-source-package-links.log.gz differ
diff --git a/reports/data/hexrcf-bounded-source/bounded-source-probe-1.log.gz b/reports/data/hexrcf-bounded-source/bounded-source-probe-1.log.gz
new file mode 100644
index 0000000000..9962c6ce7f
Binary files /dev/null and b/reports/data/hexrcf-bounded-source/bounded-source-probe-1.log.gz differ
diff --git a/reports/data/hexrcf-bounded-source/bounded-source-production-1.log.gz b/reports/data/hexrcf-bounded-source/bounded-source-production-1.log.gz
new file mode 100644
index 0000000000..24bc26e456
Binary files /dev/null and b/reports/data/hexrcf-bounded-source/bounded-source-production-1.log.gz differ
diff --git a/reports/data/hexrcf-bounded-source/bounded-source-quote-1.log.gz b/reports/data/hexrcf-bounded-source/bounded-source-quote-1.log.gz
new file mode 100644
index 0000000000..69dfed6127
Binary files /dev/null and b/reports/data/hexrcf-bounded-source/bounded-source-quote-1.log.gz differ
diff --git a/reports/data/hexrcf-bounded-source/bounded-source-relative-links.log.gz b/reports/data/hexrcf-bounded-source/bounded-source-relative-links.log.gz
new file mode 100644
index 0000000000..235835e80a
Binary files /dev/null and b/reports/data/hexrcf-bounded-source/bounded-source-relative-links.log.gz differ
diff --git a/reports/data/hexrcf-bounded-source/bounded-source-render-1.log.gz b/reports/data/hexrcf-bounded-source/bounded-source-render-1.log.gz
new file mode 100644
index 0000000000..68e28b40b0
Binary files /dev/null and b/reports/data/hexrcf-bounded-source/bounded-source-render-1.log.gz differ
diff --git a/reports/data/hexrcf-bounded-source/bounded-source-render-2.log.gz b/reports/data/hexrcf-bounded-source/bounded-source-render-2.log.gz
new file mode 100644
index 0000000000..101f66f4fb
Binary files /dev/null and b/reports/data/hexrcf-bounded-source/bounded-source-render-2.log.gz differ
diff --git a/reports/data/hexrcf-bounded-source/bounded-source-setup-failure.json b/reports/data/hexrcf-bounded-source/bounded-source-setup-failure.json
new file mode 100644
index 0000000000..bcffdaf0d8
--- /dev/null
+++ b/reports/data/hexrcf-bounded-source/bounded-source-setup-failure.json
@@ -0,0 +1,8 @@
+{
+ "kind": "setup_failure",
+ "cwd": "/home/kim/.codex/tasks/hex-10358/scalar-review-render",
+ "attempted_relative_path": "HexManual/Chapters/HexRCF/AlgebraicCells.lean",
+ "exception": "FileNotFoundError before source editing",
+ "effect": "shell lacked set-e, so render1 started against pre-correction text; explicitly stopped after10.625s; main process SIGTERM; not passing validation",
+ "repair": "absolute source path, set-e, exact manual before/after patch, render2"
+}
diff --git a/reports/data/hexrcf-bounded-source/bounded-source-viewed.json b/reports/data/hexrcf-bounded-source/bounded-source-viewed.json
new file mode 100644
index 0000000000..551711a8f3
--- /dev/null
+++ b/reports/data/hexrcf-bounded-source/bounded-source-viewed.json
@@ -0,0 +1,12 @@
+{
+ "actually_viewed": true,
+ "images": [
+ "bounded-source-final-desktop-api.png",
+ "bounded-source-final-desktop-apicode.png",
+ "bounded-source-final-desktop-source.png",
+ "bounded-source-final-narrow-api.png",
+ "bounded-source-final-narrow-apicode.png",
+ "bounded-source-final-narrow-source.png"
+ ],
+ "inspection": "All six images were opened with view_image. Desktop1440px and narrow390px text and full code block are legible without local clipping; pre-existing global page scrollbar is outside changed-target overflow claims."
+}
diff --git a/reports/data/hexrcf-bounded-source/context.json b/reports/data/hexrcf-bounded-source/context.json
new file mode 100644
index 0000000000..ea4ed6fc85
--- /dev/null
+++ b/reports/data/hexrcf-bounded-source/context.json
@@ -0,0 +1,234 @@
+{
+ "source_commit": "a92cb428b043aa14b850c94772d54ac1055baf74",
+ "base_commit": "f8393684f629d0f020ae64f465c8dfe744785201",
+ "parent_context_sha256": "1d98ec77499aa97d5409129d3fd9464cf7f3eeb1718382f4baf55fcce22a83a1",
+ "sources": {
+ ".github/workflows/ci.yml": "5db61a70eb52d7478994377179c1b35b360a794fcff4b1c257496b5a6394231c",
+ "AGENTS.md": "4e0a48cf49a61e56ed84c8b28e232b5bfad29f2da20571377692be6e1c316f30",
+ "HexManual/Chapters/HexRCF/AlgebraicCells.lean": "c4dd5ca465697595f02c06d87e30bdd218ce9632b05b696f31f932f99d1fb8d4",
+ "HexManual/Chapters/HexRCF/RootQuote.lean": "0fe7ecb8568a5b3492aeea8310a4816797802d0a764093b824673a635ecf628a",
+ "HexManual/Chapters/HexRCF/RootTableQuote.lean": "78d1be637a32593b03f000ab153c7fdf05a1b5332ea3efb9c186aacfd68f0ae5",
+ "HexRCF/HandlerTests/Admission.lean": "770518931dd3f7ab1934e327460b80607338207b17d97363b82c2a5c93669c36",
+ "HexRCF/README.md": "3830d758a8a75d59df1a6dd01f59204a86858b5eda3e43a78f9e9e9c2d769a8a",
+ "HexRCF/SPEC/hex-rcf.md": "df8c6bb2435a2794faa36bc77e41f4c936f06ae149f29c3e68fe0d79f4ebfafb",
+ "HexRCF/Tactic.lean": "26021113d121cfc9ab0d6e7ea7ce8d02eb6c4637c42bbdd2647ecd2d9291f3fb",
+ "HexRealClosure/Algebraic.lean": "d05f9fb72fe9544ae9ddc685dff17080f876aa4c99c70e8992d511e011f6a454",
+ "HexRealClosure/ContextData.lean": "ca29790752b8d25f10d03a9877690a5ff40f1fdf6815c96fe9693941206e662c",
+ "HexRealClosure/SignCodec.lean": "7126323c97b77204386795a0f252f1babfd0ed7f3dba7ee3927a99b9d5c1852a",
+ "HexRealClosure/SignFacts.lean": "9c22837e93e6f50cc96310163e352ac608fbcfbd6275edab33751da2fd84f47c",
+ "HexRealClosure/SignatureCodecTests.lean": "ffc72777523ac0e92b563481804bdfb581fb0173fe7a021009737d57959b4462",
+ "HexRealClosure/TowerContext.lean": "6ef8b87b2d81cb177505a4bbc88befa078b20578cedd49e836d850753c203ee3",
+ "PLAN.md": "e94a60324486913b4a04650edd617c4ff8bef469dc7fd311adea8407c6662ea0",
+ "SPEC/real-closure-execution.md": "bc0948ad7de6969baaed89c0b3052cb0d21d64d634f8a336f9a7dde446b057f5",
+ "adapters/HexRCF/RealCoefficients.lean": "6b9f9a7eaa6e98e30a1faae38252d8616a15595f86347abee0aa54c8fb2f2161",
+ "adapters/HexRCF/RealCoefficients/CellOperations.lean": "3561cc80c7c866141f05a387ce1100ee0cadd98281a03395551cebcde5bd6e2a",
+ "adapters/HexRCF/RealCoefficients/CellQuote.lean": "c572911d7be36001e0f1885c3460f3eb19425d90e78345b1c46878ddf3e6c6ea",
+ "adapters/HexRCF/RealCoefficients/CellRead.lean": "65274f89c940bad74eab8c9075f9256c6ed3d8b90d3294aec4e85883e425fb10",
+ "adapters/HexRCF/RealCoefficients/RationalQuote.lean": "675e2ba065b696f257adefc07fe30ddb0190f321d86005444579ea5a0744bdf5",
+ "adapters/HexRCF/RealCoefficients/RealModel.lean": "712b4fd3edff8eaa6f93e501da5debf04529d1ea8c11a18389820f866d179c43",
+ "adapters/HexRCF/RealCoefficients/Reify.lean": "ea8474b9e253f93a1583064ca99ec0bf376dadf5457fd60b57e9e18460cf449c",
+ "adapters/HexRCF/RealCoefficients/RootContext.lean": "792176eab63e5e62b759a10893569946ef6d019566b8116c85237b3e16fcdb86",
+ "adapters/HexRCF/RealCoefficients/RootHeader.lean": "681f2a964bc30f65a92a0fb1a58b4d4013eb396df37ca813962702065fb46261",
+ "adapters/HexRCF/RealCoefficients/RootPrepare.lean": "de72a8e3ac4adb13365801476467bf691e630d0952b018ccecd88846c3bdb025",
+ "adapters/HexRCF/RealCoefficients/RootQuote.lean": "89f3ad4b0c4a8ae058560201900877035d896427176b944b34acde9f9b23d7e8",
+ "adapters/HexRCF/RealCoefficients/RowPacketQuote.lean": "edbb3d23f72422f5a1dea163c283848ec285418b7bdb9eedba553b83066121af",
+ "adapters/HexRCF/RealCoefficients/RowQuote.lean": "3b7e7d2ebcbd53a6ea893bc8f4c884d767430f8b98a3f1ca770fe7c7b122f3c9",
+ "adapters/HexRCF/RealCoefficients/ScalarPacket.lean": "b9fdaea5098dfa6fcda2f7307cfeae5738d6ca5c55252ff6ba2a440d10c89cc7",
+ "adapters/HexRCF/RealCoefficients/ScalarQuote.lean": "fee2617a998f29d05c8959b484060ac1d719359c6d851a8ff6699fa9cb370acc",
+ "adapters/HexRCF/RealCoefficients/SignatureQuote.lean": "c3bb71b52c2a544b902bc256b3a162e1c3c4e7f94ae6b21808914e67109710eb",
+ "adapters/HexRCF/RealCoefficients/SourceBuild.lean": "c47f7bc1a968019674c10b1826fb328536ca466e973a1ad38e2f00f30781ab89",
+ "adapters/HexRCF/RealCoefficients/SourceIdentity.lean": "d98ae0c746003be89edfc969e464383e6a6bda253e0dae8c290605e8b98ce3c3",
+ "adapters/HexRCF/RealCoefficients/SourceIdentityQuote.lean": "37c54a56f48b265d0ddca38ecae2c572871e8b7f1600b54f330ff3da60252fa7",
+ "adapters/HexRealClosureTheory/Algebraic.lean": "2495153acbe4e468521913a2f5d6569831cd05f5ee48d5ddb26fc31a43438c7e",
+ "adapters/HexRealClosureTheory/SignFacts.lean": "c2b8cf96de0cccc2c0c3cbe83f0afd7c40ab9736b75f377ec5bfedc0907f34e3",
+ "adapters/HexRealClosureTheory/TowerModel.lean": "70d0e57e8ecc78eb9b7675d875157462d27cf9494d49d72bba019eaa6dd1d788",
+ "conformance-fixtures/HexRCF/bounded-source.json": "566c5f1f092abab73312bb630a02e24873e6723942d450320dae2b52aaa30a75",
+ "conformance-fixtures/HexRCF/enumerated-source.json": "d1f70734b5c8d5c7f768b4d2c3f5359d8e1cc44105885e7f8af597102c8b5c98",
+ "conformance-fixtures/HexRCF/source-identity.json": "93540b60174e0d8bd85ca80d99c6cbdc427815f341a12a6e38f4b38613073f53",
+ "conformance/HexRCF/BoundedSource.lean": "5d759fa26433a5f25c6423e9b70b770394459c2b969b33b15a180023269fb9cd",
+ "conformance/HexRCF/BoundedSource/Cubic.lean": "da1c0e1b549fce22cb1f7ea7bb6888dff1d7b59c1219c5b580376bbb4a25ecde",
+ "conformance/HexRCF/BoundedSource/Inputs.lean": "7ffcd6d62f175f3027e2327fd4a86885e933e0715a85ab7afb9b112d76d49a39",
+ "conformance/HexRCF/BoundedSource/Negative.lean": "abb7ef67395b2b90f9e12f551bcc0d16146cca067bf3567707e924c2ecd2fb77",
+ "conformance/HexRCF/BoundedSource/Positive.lean": "d83184a9d54264ba7e1c138eb674db1d67df39681575fa91d96a4681af774321",
+ "conformance/HexRCF/BoundedSource/Proofs.lean": "7f9d47d59dd47aafa90a09d23a966efc0d2ca7fbfa3cdce5ae4771ae1da01a9f",
+ "conformance/HexRCF/BoundedSource/Quote.lean": "70da87d5868d0c3d725e9ed2a531a4b22221e42d794cfd259359f6524be1eaef",
+ "conformance/HexRCF/CellFinishCases.lean": "619208fd6528c4f12d4e12bc4ee6fd4016ab0948db16a61237a2aefbcd523a7c",
+ "conformance/HexRCF/CellFinishProofs.lean": "fd232e3b4a64f444d834ae244a110ad0910aa35c4773a90b6a3b26a48693e22c",
+ "conformance/HexRCF/CellQuoteStageProofs.lean": "a14f3f20e1add07f569ab222994995c409552aededef738972a70c864b94b919",
+ "conformance/HexRCF/CellQuoteStages.lean": "e4593f2c8169af00398ff608dd53cbbfbe6b8408ddbdd07de6f64f59acf8a25f",
+ "conformance/HexRCF/CellSourceProofs.lean": "cea22d1a532dc4415130ff1c9c20f43707ab9696c7df53c858bdfa41ad76f018",
+ "conformance/HexRCF/CellSourceQuote.lean": "bea057fe5c9470d701e02974fbd6a83e945bbaba1225ca294830f54ef762f504",
+ "conformance/HexRCF/DependentQuote.lean": "0df154544a17857334480e7c577ecbcf1afe04165fa2da1a5a6407bf41e85518",
+ "conformance/HexRCF/DependentQuoteData.lean": "ed254475e78fa6edb27d4e55222a598b07b7357154ea0495d6195f2f1d39ee46",
+ "conformance/HexRCF/DependentQuoteProofs.lean": "5875aa9748f50340668e58aea97b196d3353313352fb8c819ae5ee3542556980",
+ "conformance/HexRCF/DependentScalarProofs.lean": "9fe3f3871f929e28355985c574c0b8c742be062ae5f19033d7d8bf9e67cd88d8",
+ "conformance/HexRCF/DependentScalarQuote.lean": "e20dd7346c337dd17126c394965f268e568706730f475844d7c0907051224933",
+ "conformance/HexRCF/EnumeratedSource/Cubic.lean": "011464c56dc3ffc5a6bd1e62dc9ff8b35ac6d0e621beceb0336b69d8f626b78f",
+ "conformance/HexRCF/EnumeratedSource/CubicData0.lean": "79b971cb2816d7ee980c595199eedbfddfd7cdb62ea12bc71dfcb24d304f69da",
+ "conformance/HexRCF/EnumeratedSource/Inputs.lean": "23ae13a33e132ee7221c5fa353e71073fc05bd660dfc3ecf6620584b62b40306",
+ "conformance/HexRCF/EnumeratedSource/Negative.lean": "261fcd979ff77c772a28ecc89776b5771cec920fc4e58a0dfe2886aee43a58d7",
+ "conformance/HexRCF/EnumeratedSource/NegativeData0.lean": "c0700606f805664f89dd0106dfb5aebb5ab18949adbb30e5b71ffeb20bb4fdaf",
+ "conformance/HexRCF/EnumeratedSource/Positive.lean": "1382c958e53cdb8a04afd1e6d6f173fe697ba15a3321bf29c3e03059923c7181",
+ "conformance/HexRCF/EnumeratedSource/PositiveData0.lean": "41674140d15cf0136ca29b627f667b952355916b269ff7d2c14247ba2d21b3b1",
+ "conformance/HexRCF/EnumeratedSource/Proofs.lean": "3c08b8018b68469d3c6e7940f730d6b8fadbf6175df2e6f5017ed4fc24d50d5b",
+ "conformance/HexRCF/EnumeratedSource/Quote.lean": "8987d21be058f777f0ba875e917fcda77892bced1029616804fabd57f4eb41d8",
+ "conformance/HexRCF/FrozenSignatureConformance.lean": "8e7d432aecb87fb89bb188e4c579e86fb5c3348c5430f1e2b1a00f1f820a940e",
+ "conformance/HexRCF/FrozenSignatureProofs.lean": "55de6da9b0b3dc2d1e384d6c838d13294287c44060afb8e70aa2a0c8e01a81cb",
+ "conformance/HexRCF/ProofFunctionPublic.lean": "f928c9f0dd0a704d34a516b6282cfa6a7a4eb6c112d49689c450647a44370a6b",
+ "conformance/HexRCF/PublicSignPacket.lean": "c32d73c5634376907b965e1ea6cf69352fdda1f1945ce2f34a378cc217778102",
+ "conformance/HexRCF/PublicSignPacketControls.lean": "b4f98bd8ef190a361dd7752d4d5ece0cfbd862ff4face5a06dfabecf87096028",
+ "conformance/HexRCF/PublicSignPacketProofs.lean": "442f6d3e04a36db25611f0396103a1eee5ee411c40e8f3cc93df1acf7898bbbb",
+ "conformance/HexRCF/PublicSignPacketValues.lean": "72705dba30f04f986188903fb49b983c6f0a664895116fca8bd8b6b46b6517e5",
+ "conformance/HexRCF/QuotientQuote.lean": "97b2cbc9abdb46db33a9a91328f331edf8dea055cc244489158121cde8dc1903",
+ "conformance/HexRCF/QuotientQuoteData.lean": "ec26777d655a7898d7f7922fcea8f426a3f8c77a53000b69b6fe1755a0348870",
+ "conformance/HexRCF/QuotientQuoteProofs.lean": "f1d95accf6caed1c7354408b3a1a0b29493a526e82036390e39102ebe80c6752",
+ "conformance/HexRCF/QuotientQuotePublic.lean": "a3bd9a082df14a0ac93ba3798e13c6ebbf9dff98d7613264713aa281a5a18bea",
+ "conformance/HexRCF/RationalQuoteConformance.lean": "f03844d4a44a5c61b702ed0b1697619da9b20f4ac42122b9d1a6d3fa4a2de9ac",
+ "conformance/HexRCF/RecursiveScalarQuote.lean": "83ba1f3ed63afdbb148f171736a0aacebc7eef4ae3bf32dca29811515c3f051b",
+ "conformance/HexRCF/ReplayBoundary.lean": "bbc09553d62198a18e897981d5f443c81f09dba8d371d2cdaeaa846d22cbc2f8",
+ "conformance/HexRCF/ReplayBoundaryProofs.lean": "d755462a7344dc9f5304fba255bcefb42188c1de5a51d92d8567a27f22482dc2",
+ "conformance/HexRCF/ReplayHelperProofs.lean": "6dd68829399ec8908a877a3f7705cc9321e49b9581d0d577d114950242e43a57",
+ "conformance/HexRCF/ReplayHelpers.lean": "4501fa39e52a8a2bb52fdd7b183c16801090dd026304105afb4342a1c441c2a3",
+ "conformance/HexRCF/RootContextConformance.lean": "0c52084609ec3de8afd51330a7d2cc97f7bae1d8b2bbc421138783940fc7db37",
+ "conformance/HexRCF/RootContextProofs.lean": "b4c2e3ce686ce8bc60bfdafe2be2f566c6de46758f4827d307f3d5592b59d2e9",
+ "conformance/HexRCF/RootHeaderBudget.lean": "db30b6b7781fabd238ea2c934477e5ae281cc6cd905f11848ce46eb66ef45fe0",
+ "conformance/HexRCF/RootHeaderControls.lean": "aca063af3bfe475166aef92193f162c25a0e53eea094087cf334406a3d513157",
+ "conformance/HexRCF/RootHeaderPacket.lean": "dcd8e63c1d656fc800690b35554a0f835a1ee0bb96312215f8c12348d8a0e79a",
+ "conformance/HexRCF/RootHeaderProofs.lean": "e6630f0464fd0096b9af74b4640d2abc514a62c0b0fc706b4a2e74c9602eeb8c",
+ "conformance/HexRCF/RootHeaderValues.lean": "de9a8fc7c2e9371cbd3324eb700180411e49865dbc6535a74d2c882f74e38e13",
+ "conformance/HexRCF/RootPrepareControls.lean": "b36af8efd1e12227188b6fb7bde258e80d5c1c874338a324cb53c5ccc6c1330f",
+ "conformance/HexRCF/RootPreparePacket.lean": "86185bcc5fdddb1f700d869a115a91034954714f69a83171fd0e96f601e76fe3",
+ "conformance/HexRCF/RootPrepareProofs.lean": "4a5bc6655576a6592fcd5cd801bcfebd425243b1bb6cb39b0bb46d500a3938be",
+ "conformance/HexRCF/RootPreparePublic.lean": "a9e09cbe8d1287b97dde71ad1c6dbe149cfbacb6f81f41a8493ee802416d0805",
+ "conformance/HexRCF/RootQuoteCases.lean": "602d15ef501e969183bffbda7fb3c0f00a174ba5c2dbc35370ee7fce896944dd",
+ "conformance/HexRCF/RootQuoteConformance.lean": "f6a652a243ba62cffc671d1365c6ab47b6618179acb172019ec5609ea0324d3c",
+ "conformance/HexRCF/RootQuoteData.lean": "faa259d129d5c65a063c7143e45d5d9d19573ed49862aa5ecb3978ff389cb514",
+ "conformance/HexRCF/RootQuoteSource.lean": "aca1654efc1a452aca8ef573bb8ea3a435a4e1e18a4dca854d9bcc8e350d511d",
+ "conformance/HexRCF/RootTableQuote/Conformance.lean": "ec5bd136df58cc24a40ca989e3d33e55923082aed7591b234f55c70c013c74ad",
+ "conformance/HexRCF/RowPacketControls.lean": "ab69c57b66fe8129be5f07e5e5f42b7b35d60a23b305ec224d2d7dca28ac7c82",
+ "conformance/HexRCF/RowQuoteCases.lean": "8d2ebddc05d5f0d08b62b50d3498b34b47ab0b3accc4d0a572e621fd83d606d4",
+ "conformance/HexRCF/RowQuoteData.lean": "ce60cb18f548f55e929d4803c7ed824ad0a7621fd4abda09a191f76393fabf0c",
+ "conformance/HexRCF/RowQuoteDepth.lean": "6ada3c44bea055425d223dc57eafb4f0c88349713d815ded4beec9720f7802ad",
+ "conformance/HexRCF/RowQuoteProofs.lean": "317d4f981f32bb28666fcabc6248f4a57fe67c95a7fe431f7993aeacfa377ed3",
+ "conformance/HexRCF/SelectedRoot/KernelCheck.lean": "499299274a75c6e2a70630c8ae442f21ab7d0514c7d23cffdde3f09fd17421cb",
+ "conformance/HexRCF/SharedQuoteCallbacks.lean": "6132cc3722af3cf251d11c857a572f09128d3614d931724965cbcf488dc4db6d",
+ "conformance/HexRCF/SignPacketProofs.lean": "3980cad31637f5798b2c351e1efc2a29b946de1d90e06fb11acd85e2a5c46321",
+ "conformance/HexRCF/SignPacketQuote.lean": "fcda11e6c75353d4519c4eb0e9c302b84d7e41030316c99fcacb885dabf97545",
+ "conformance/HexRCF/SignatureQuoteConformance.lean": "26f16c37cb9e0d5c09a082787f4a66673437adbf998023fd5e9625db16ff5d3f",
+ "conformance/HexRCF/SourceBuild.lean": "c12b24a04234a45da0f4bf3be83bee517ec9ccff2451e804d258bf9bcab2ba5e",
+ "conformance/HexRCF/SourceIdentityControls.lean": "c655486606139658d73e5b4d394228c3632596fec366e3b410ea9deb5b085553",
+ "conformance/HexRCF/SourceIdentityEmit.lean": "aa12f1517efc675698c0795c5a463a77d7a3466bcc146d4981d82e913059ed99",
+ "conformance/HexRCF/SourceIdentityLiterals.lean": "61ee2ce703d4965b00e1e20cc62288a0bde4e839d68ca09e1b66281f4a3e48d0",
+ "conformance/HexRCF/SourceIdentityPacket.lean": "614b3132274de5bebebeecb09cf479ac68723f1518e1f52912543a812985a4a9",
+ "conformance/HexRCF/SourceIdentityProofs.lean": "c449238d5f915dbe1f337688bc4f7357f3a93e31ad79eaa9e8e159c280749173",
+ "conformance/HexRCF/SourceSelectionCases.lean": "368ded3f07bb4be269f26a2fd2b7044904ea16d1dd1cba41d8bccb373d004005",
+ "conformance/HexRCF/TreeQuote.lean": "049065aa64bb13432b1d7183759979d28eebba98d18b6f54ab849e5953ce92c1",
+ "conformance/HexRCF/TreeQuoteData.lean": "c595c2278d2997483b755aa585da874c27eed40e4e1a8106d7f553e4f574776b",
+ "conformance/HexRCF/TreeQuoteProofs.lean": "f9a40248237480f8972df62dff548ef0599205b76014e070866e72586f161933",
+ "conformance/HexRCF/TreeQuotePublic.lean": "adc6dc6871208f31970cf5ae0c2472fd325a72e1df8114a6e8178ef8b2c71570",
+ "experiments/KernelReplay/AxiomClosure.lean": "f49377265f05f52b633b10a59255a03731e08d022cc54763de9851c5b5325034",
+ "lake-manifest.json": "fd2dc4df30cd44e4d30568489d616e7bcc8a78747500139134be56f35ae746a4",
+ "lakefile.lean": "0b45717104644561ca7415d4c9f43bae6b318cf75eb00e0757a44c9f7db700bc",
+ "lean-toolchain": "bc84812c94489d1e3e191baa1dc10d5eb684382d7fe9d2a5ab085e72c1c67e47",
+ "libraries.yml": "14e3dd1c01bb0c369b2216e2733378d61172040fd9f69dd0354d4e1267d9c5c1",
+ "scripts/bench/proof_only_runtime_exemptions/lakefile-rcf-bounded-source-fea47caa-baeeaf73.json": "eaea20ebc9579f4c50ff88344d8c9be3da9fc7c7d0981e9e0d5251dd04a6ab3f",
+ "scripts/bench/proof_only_runtime_exemptions/lakefile-rcf-source-build-fea47caa-1ab4e88c.json": "38fcff53934dab8ff78146cc782b039265da3c6684638a5b00ab725d5a2c8e01",
+ "scripts/rcf/selected_literals.py": "03e02fa50575882c0784894b76746ff8e594b9a1eb0a285811bc76ee87265e72",
+ "scripts/rcf/source_identity_literals.py": "ea5d7df949871c4975367a759b9632d033f3a240523c2c917c9141220ffdfd78"
+ },
+ "artifacts": {
+ "README.md": "7995213b27c8bc9cc289a37c8cd5bef568ca5b4693edf94488b97a8194e10e3c",
+ "bounded-source-browser-1.log.gz": "2c917f87b14d1e995434d18ea99681c002bb054fc76ae3099b9604e0c79597b7",
+ "bounded-source-browser.mjs": "e4461698201d26770c92ecf70500dcfbd46ff9ab98212a3e3f2fda99a65ede89",
+ "bounded-source-controls-1.log.gz": "946244948c35336f96790b4c37166f24b291d02ada322438668794a8157edbed",
+ "bounded-source-core-1.log.gz": "93f733308dd0a13dd71200c24c171eef1b304ce5e43ce2657c064ba2637f300f",
+ "bounded-source-diff-check.log.gz": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "bounded-source-final-desktop-api.png": "5bb0d41a977df4ce7c26d6967c07714c6e1ea6712b327c47cf9e96549df40604",
+ "bounded-source-final-desktop-apicode.png": "172a04616834a906142ad0e945231bd0edb9f5eef677294ec37d08948915bec3",
+ "bounded-source-final-desktop-source.png": "9669a2d7f7765e034fccc2c28912e226d56ebd69095114637a7057e9e3642415",
+ "bounded-source-final-inspection.json": "ea1177d731092dba1e1c097f01022567f750de2b22c7b1db8cee59356d001aca",
+ "bounded-source-final-metadata-admissions.log.gz": "69a21bde72fd2d28ac505ea4f1e28c3b0a4e96998cb90674e584133f1fa72701",
+ "bounded-source-final-metadata-copyright.log.gz": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "bounded-source-final-metadata-dag.log.gz": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "bounded-source-final-metadata-diff.log.gz": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "bounded-source-final-metadata-freshness.log.gz": "2deda7e9f1dd38e7a3fd37966a9bdf33c905c76164d13133571f675b1ab75b13",
+ "bounded-source-final-metadata-lines.log.gz": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "bounded-source-final-metadata-literals.log.gz": "d363c41d04cc71aaa8b2bb97d1faf6ff4b311e5874c10d339f87aba4d4b97158",
+ "bounded-source-final-metadata-manifest.log.gz": "87c23c0a8f1159f2320fb2015c285ee9167c8c51ef9f6df2f69fc217f4b11029",
+ "bounded-source-final-metadata.json": "7f4e9ce1b23cdc837d24f8062e4ec5673f29f5bdfa1f17e8ce0cf761af38d167",
+ "bounded-source-final-narrow-api.png": "47062d48fbd69995e3682ff531a44005ee34e683ab0b7818704e575bed5f0c08",
+ "bounded-source-final-narrow-apicode.png": "4ac62caa9887182b171516ae4ce1d87bc6afa198f8034b97c85f28061340a2c5",
+ "bounded-source-final-narrow-source.png": "0cb5625fa8a5841c8b87a471610982cd9bb5ac5bf3bfde88ae9e880415b88257",
+ "bounded-source-final-section-overflow.json": "9bdd61ace6039ed9448340cf5fb9b0d94f2cca05252ea853992bd9cbf32261cf",
+ "bounded-source-final2-metadata-copyright.log.gz": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "bounded-source-final2-metadata-diff.log.gz": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "bounded-source-final2-metadata-lines.log.gz": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "bounded-source-integration-1.log.gz": "798402c42221fbef16c92f44e2f72c9027dffda73d4cf6669fb630249a79e807",
+ "bounded-source-integration-inputs.json": "a17a80bda3d194ee43046aa85acccd7ea16f00865627c319f564fa5b5dd0a4c7",
+ "bounded-source-integration-invocation.json": "e35070b5effbb81bb1f373ce75ad115e58f1bf94cfb195fdb13bb9f1271882a8",
+ "bounded-source-manual-final.patch.gz": "dbedb1bfa4db48a846388cf21ea93b599bbc1f9b0468ab65a3e84eb060be7e5f",
+ "bounded-source-metadata-admissions.log.gz": "69a21bde72fd2d28ac505ea4f1e28c3b0a4e96998cb90674e584133f1fa72701",
+ "bounded-source-metadata-copyright.log.gz": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "bounded-source-metadata-dag.log.gz": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "bounded-source-metadata-freshness.log.gz": "2deda7e9f1dd38e7a3fd37966a9bdf33c905c76164d13133571f675b1ab75b13",
+ "bounded-source-metadata-lines.log.gz": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "bounded-source-metadata-literals.log.gz": "d363c41d04cc71aaa8b2bb97d1faf6ff4b311e5874c10d339f87aba4d4b97158",
+ "bounded-source-metadata-manifest.log.gz": "87c23c0a8f1159f2320fb2015c285ee9167c8c51ef9f6df2f69fc217f4b11029",
+ "bounded-source-native.json.gz": "145547b1590607f96c848c6a8d5b94af03d12a3b1fa21eb3c545954f3d850688",
+ "bounded-source-probe-1.log.gz": "cb63f33a84958482dbea009e79bce5bbffc261cb7fbbe64c77a0e5fe9926590a",
+ "bounded-source-production-1.log.gz": "dec42ee432a5206a03a55ea6961350d9cb570a1d330e72589068c10ecdea2b77",
+ "bounded-source-quote-1.log.gz": "2a2c4d0b7fba980889b517546f4f5adcf8fdd013108e78c9833e8b04bfe1f6d8",
+ "bounded-source-relative-links.log.gz": "f04c62feea01787a4d297cdd70512563098131b08181003d003e3438e40614b2",
+ "bounded-source-render-1.log.gz": "bb4f3c96b330eff0e62ad0d70d43cf89fcf2df4a26a1a815fd66e6ddc964df59",
+ "bounded-source-render-2.log.gz": "9eb65b78d38fe7936349389c07150748dfe56c511cbc7b9a4a3fbdc96f8945de",
+ "bounded-source-setup-failure.json": "db11f9ef757e44bc3d19ec0b89fded503bcdf519348a089625a0d653701beaf4",
+ "bounded-source-viewed.json": "c857a526080f4cf5f074b9610a409bcac83d8aebeed38f87c91b5b2d9c49f5b5",
+ "manual-before-final-timing.lean.gz": "67f510c173957404cf23945452c4a43f34d08706acbdb087dc94726b5f54936e",
+ "probe-input-BoundedSourceCubic.lean.gz": "91efd19d27489e28a0ab1b5fc25ee2827c2307e24753d6a225744e000ee3f44c",
+ "probe-input-BoundedSourceInputs.lean.gz": "a5049efa04cfe0288244966b011decacc2edae32734fa475b1c2c90b49428370",
+ "probe-input-BoundedSourceNegative.lean.gz": "45587bf31b19f3e93935f9e54f52226b13f424433dba52e72fb2d2711081f510",
+ "probe-input-BoundedSourcePositive.lean.gz": "a1ab265094cb6a9b47582b7a1d884fa49d2bf17f34885dd66542a5b4f1f05c12",
+ "probe-input-BoundedSourceProbe.lean.gz": "ed86612801d29eeec74cbcbb4e281eeb90988d205e73d852e4dade6fd3696590",
+ "probe-input-BoundedSourceQuote.lean.gz": "d5320673268ccc707e3fa6f7a082e2df612ab881cf772b5e33c25b58fbcf67dd",
+ "run-bounded.sh": "63bc5f97337e6b039bb3a9b1ba2a500be96fd1c2a2f73b43dae284aa9b18dda8",
+ "verify.py": "24976992a3968d846e7a3303e1486b5324caa677d3ef3d80c0a2784b7fee0cf2",
+ "BoundedSourceReviewRender.lean.txt": "6376a216742deba979f2cf6d07da17420d34a7ff3e3a4814a772570c2f9d3d5c",
+ "bounded-source-package-headers.log.gz": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "bounded-source-package-lines.log.gz": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "bounded-source-package-links.log.gz": "da625920d647c32d61d3fa6ef82e6bc258afb88cbcf2e5d1b72f3b6b4c99b117",
+ "bounded-source-package-diff.log.gz": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64"
+ },
+ "integration_sources": {
+ "conformance-fixtures/HexRCF/bounded-source.json": "566c5f1f092abab73312bb630a02e24873e6723942d450320dae2b52aaa30a75",
+ "conformance/HexRCF/BoundedSource.lean": "5d759fa26433a5f25c6423e9b70b770394459c2b969b33b15a180023269fb9cd",
+ "conformance/HexRCF/BoundedSource/Cubic.lean": "da1c0e1b549fce22cb1f7ea7bb6888dff1d7b59c1219c5b580376bbb4a25ecde",
+ "conformance/HexRCF/BoundedSource/Inputs.lean": "7ffcd6d62f175f3027e2327fd4a86885e933e0715a85ab7afb9b112d76d49a39",
+ "conformance/HexRCF/BoundedSource/Negative.lean": "abb7ef67395b2b90f9e12f551bcc0d16146cca067bf3567707e924c2ecd2fb77",
+ "conformance/HexRCF/BoundedSource/Positive.lean": "d83184a9d54264ba7e1c138eb674db1d67df39681575fa91d96a4681af774321",
+ "conformance/HexRCF/BoundedSource/Proofs.lean": "7f9d47d59dd47aafa90a09d23a966efc0d2ca7fbfa3cdce5ae4771ae1da01a9f",
+ "conformance/HexRCF/BoundedSource/Quote.lean": "70da87d5868d0c3d725e9ed2a531a4b22221e42d794cfd259359f6524be1eaef",
+ "scripts/bench/proof_only_runtime_exemptions/lakefile-rcf-bounded-source-fea47caa-baeeaf73.json": "eaea20ebc9579f4c50ff88344d8c9be3da9fc7c7d0981e9e0d5251dd04a6ab3f",
+ "HexManual/Chapters/HexRCF/AlgebraicCells.lean": "a2d782538a51590f4748dd207b93e80ecdae1c0a5b92f7a10fbc28e763025985",
+ "adapters/HexRCF/RealCoefficients/SourceBuild.lean": "c47f7bc1a968019674c10b1826fb328536ca466e973a1ad38e2f00f30781ab89",
+ "conformance/HexRCF/SelectedRoot/KernelCheck.lean": "499299274a75c6e2a70630c8ae442f21ab7d0514c7d23cffdde3f09fd17421cb",
+ "lakefile.lean": "0b45717104644561ca7415d4c9f43bae6b318cf75eb00e0757a44c9f7db700bc",
+ "scripts/rcf/selected_literals.py": "03e02fa50575882c0784894b76746ff8e594b9a1eb0a285811bc76ee87265e72"
+ },
+ "targets": 57,
+ "proof_nodes": [
+ 687781,
+ 690200,
+ 731070
+ ],
+ "audit": {
+ "theorems": 392,
+ "definitions": 449,
+ "traces": 811
+ },
+ "limits": {
+ "memory_max": 34359738368,
+ "memory_swap_max": 0,
+ "lean_threads": 2,
+ "serial": true
+ }
+}
diff --git a/reports/data/hexrcf-bounded-source/manual-before-final-timing.lean.gz b/reports/data/hexrcf-bounded-source/manual-before-final-timing.lean.gz
new file mode 100644
index 0000000000..9012729a44
Binary files /dev/null and b/reports/data/hexrcf-bounded-source/manual-before-final-timing.lean.gz differ
diff --git a/reports/data/hexrcf-bounded-source/probe-input-BoundedSourceCubic.lean.gz b/reports/data/hexrcf-bounded-source/probe-input-BoundedSourceCubic.lean.gz
new file mode 100644
index 0000000000..0fcec7ce1c
Binary files /dev/null and b/reports/data/hexrcf-bounded-source/probe-input-BoundedSourceCubic.lean.gz differ
diff --git a/reports/data/hexrcf-bounded-source/probe-input-BoundedSourceInputs.lean.gz b/reports/data/hexrcf-bounded-source/probe-input-BoundedSourceInputs.lean.gz
new file mode 100644
index 0000000000..024290cda8
Binary files /dev/null and b/reports/data/hexrcf-bounded-source/probe-input-BoundedSourceInputs.lean.gz differ
diff --git a/reports/data/hexrcf-bounded-source/probe-input-BoundedSourceNegative.lean.gz b/reports/data/hexrcf-bounded-source/probe-input-BoundedSourceNegative.lean.gz
new file mode 100644
index 0000000000..f68641cb5a
Binary files /dev/null and b/reports/data/hexrcf-bounded-source/probe-input-BoundedSourceNegative.lean.gz differ
diff --git a/reports/data/hexrcf-bounded-source/probe-input-BoundedSourcePositive.lean.gz b/reports/data/hexrcf-bounded-source/probe-input-BoundedSourcePositive.lean.gz
new file mode 100644
index 0000000000..812bf24b25
Binary files /dev/null and b/reports/data/hexrcf-bounded-source/probe-input-BoundedSourcePositive.lean.gz differ
diff --git a/reports/data/hexrcf-bounded-source/probe-input-BoundedSourceProbe.lean.gz b/reports/data/hexrcf-bounded-source/probe-input-BoundedSourceProbe.lean.gz
new file mode 100644
index 0000000000..bac2344287
Binary files /dev/null and b/reports/data/hexrcf-bounded-source/probe-input-BoundedSourceProbe.lean.gz differ
diff --git a/reports/data/hexrcf-bounded-source/probe-input-BoundedSourceQuote.lean.gz b/reports/data/hexrcf-bounded-source/probe-input-BoundedSourceQuote.lean.gz
new file mode 100644
index 0000000000..e4e49377b5
Binary files /dev/null and b/reports/data/hexrcf-bounded-source/probe-input-BoundedSourceQuote.lean.gz differ
diff --git a/reports/data/hexrcf-bounded-source/progress/README.md b/reports/data/hexrcf-bounded-source/progress/README.md
new file mode 100644
index 0000000000..45257cc90a
--- /dev/null
+++ b/reports/data/hexrcf-bounded-source/progress/README.md
@@ -0,0 +1,5 @@
+# Source proposal progress evidence
+
+See [the report](../../../hexrcf-source-progress.md). Run `python3 reports/data/hexrcf-bounded-source/progress/verify.py --check-head` to verify current sources, or omit the flag to check the immutable implementation commit.
+
+This is a proof-only supplement. The verifier checks all source bindings, exact recovery of the three parent files after removing only the new theorem blocks and fresh audit, three actual body rechecks/full standard-three axiom closure, unchanged native frozen-byte/refusal controls, and metadata checks. Earlier quotation/manual/integration evidence retains its original source pin and is not claimed as rerun. Completed elaboration failures and successful attempts are retained as logs; exact failed-source snapshots are not claimed. No executable, serialized data, manual, Lake target or CI change is included. Full #10358 and final review/CI/merge remain unfinished.
diff --git a/reports/data/hexrcf-bounded-source/progress/bounded-source-progress-controls-1.log.gz b/reports/data/hexrcf-bounded-source/progress/bounded-source-progress-controls-1.log.gz
new file mode 100644
index 0000000000..62ba4eba3a
Binary files /dev/null and b/reports/data/hexrcf-bounded-source/progress/bounded-source-progress-controls-1.log.gz differ
diff --git a/reports/data/hexrcf-bounded-source/progress/bounded-source-progress-controls-2.log.gz b/reports/data/hexrcf-bounded-source/progress/bounded-source-progress-controls-2.log.gz
new file mode 100644
index 0000000000..1d746c29ba
Binary files /dev/null and b/reports/data/hexrcf-bounded-source/progress/bounded-source-progress-controls-2.log.gz differ
diff --git a/reports/data/hexrcf-bounded-source/progress/bounded-source-progress-core-1.log.gz b/reports/data/hexrcf-bounded-source/progress/bounded-source-progress-core-1.log.gz
new file mode 100644
index 0000000000..2d236dd9b1
Binary files /dev/null and b/reports/data/hexrcf-bounded-source/progress/bounded-source-progress-core-1.log.gz differ
diff --git a/reports/data/hexrcf-bounded-source/progress/bounded-source-progress-core-2.log.gz b/reports/data/hexrcf-bounded-source/progress/bounded-source-progress-core-2.log.gz
new file mode 100644
index 0000000000..d27aec39ec
Binary files /dev/null and b/reports/data/hexrcf-bounded-source/progress/bounded-source-progress-core-2.log.gz differ
diff --git a/reports/data/hexrcf-bounded-source/progress/bounded-source-progress-core-3.log.gz b/reports/data/hexrcf-bounded-source/progress/bounded-source-progress-core-3.log.gz
new file mode 100644
index 0000000000..2e0308fd35
Binary files /dev/null and b/reports/data/hexrcf-bounded-source/progress/bounded-source-progress-core-3.log.gz differ
diff --git a/reports/data/hexrcf-bounded-source/progress/bounded-source-progress-core-4.log.gz b/reports/data/hexrcf-bounded-source/progress/bounded-source-progress-core-4.log.gz
new file mode 100644
index 0000000000..ccc320da2d
Binary files /dev/null and b/reports/data/hexrcf-bounded-source/progress/bounded-source-progress-core-4.log.gz differ
diff --git a/reports/data/hexrcf-bounded-source/progress/bounded-source-progress-core-5.log.gz b/reports/data/hexrcf-bounded-source/progress/bounded-source-progress-core-5.log.gz
new file mode 100644
index 0000000000..003dc681d5
Binary files /dev/null and b/reports/data/hexrcf-bounded-source/progress/bounded-source-progress-core-5.log.gz differ
diff --git a/reports/data/hexrcf-bounded-source/progress/bounded-source-progress-core-6.log.gz b/reports/data/hexrcf-bounded-source/progress/bounded-source-progress-core-6.log.gz
new file mode 100644
index 0000000000..87b6508f1b
Binary files /dev/null and b/reports/data/hexrcf-bounded-source/progress/bounded-source-progress-core-6.log.gz differ
diff --git a/reports/data/hexrcf-bounded-source/progress/bounded-source-progress-core-7.log.gz b/reports/data/hexrcf-bounded-source/progress/bounded-source-progress-core-7.log.gz
new file mode 100644
index 0000000000..da3b20534a
Binary files /dev/null and b/reports/data/hexrcf-bounded-source/progress/bounded-source-progress-core-7.log.gz differ
diff --git a/reports/data/hexrcf-bounded-source/progress/context.json b/reports/data/hexrcf-bounded-source/progress/context.json
new file mode 100644
index 0000000000..d077937a3f
--- /dev/null
+++ b/reports/data/hexrcf-bounded-source/progress/context.json
@@ -0,0 +1,175 @@
+{
+ "source_commit": "ad5afa7b7ec3e05dc7755e541ba72178b7b6d2c3",
+ "base_commit": "ff85306782a282c7741b3a69ca4df6610fa308b7",
+ "parent_context_sha256": "95cdb5321e865965e88ff06e7b4e996d670b9ebb11a1b7e77f658f78495c58ce",
+ "sources": {
+ ".github/workflows/ci.yml": "5db61a70eb52d7478994377179c1b35b360a794fcff4b1c257496b5a6394231c",
+ "AGENTS.md": "4e0a48cf49a61e56ed84c8b28e232b5bfad29f2da20571377692be6e1c316f30",
+ "HexManual/Chapters/HexRCF/AlgebraicCells.lean": "c4dd5ca465697595f02c06d87e30bdd218ce9632b05b696f31f932f99d1fb8d4",
+ "HexManual/Chapters/HexRCF/RootQuote.lean": "0fe7ecb8568a5b3492aeea8310a4816797802d0a764093b824673a635ecf628a",
+ "HexManual/Chapters/HexRCF/RootTableQuote.lean": "78d1be637a32593b03f000ab153c7fdf05a1b5332ea3efb9c186aacfd68f0ae5",
+ "HexRCF/HandlerTests/Admission.lean": "770518931dd3f7ab1934e327460b80607338207b17d97363b82c2a5c93669c36",
+ "HexRCF/README.md": "3830d758a8a75d59df1a6dd01f59204a86858b5eda3e43a78f9e9e9c2d769a8a",
+ "HexRCF/SPEC/hex-rcf.md": "df8c6bb2435a2794faa36bc77e41f4c936f06ae149f29c3e68fe0d79f4ebfafb",
+ "HexRCF/Tactic.lean": "26021113d121cfc9ab0d6e7ea7ce8d02eb6c4637c42bbdd2647ecd2d9291f3fb",
+ "HexRealClosure/Algebraic.lean": "d05f9fb72fe9544ae9ddc685dff17080f876aa4c99c70e8992d511e011f6a454",
+ "HexRealClosure/ContextData.lean": "ca29790752b8d25f10d03a9877690a5ff40f1fdf6815c96fe9693941206e662c",
+ "HexRealClosure/SignCodec.lean": "7126323c97b77204386795a0f252f1babfd0ed7f3dba7ee3927a99b9d5c1852a",
+ "HexRealClosure/SignFacts.lean": "9c22837e93e6f50cc96310163e352ac608fbcfbd6275edab33751da2fd84f47c",
+ "HexRealClosure/SignatureCodecTests.lean": "ffc72777523ac0e92b563481804bdfb581fb0173fe7a021009737d57959b4462",
+ "HexRealClosure/TowerContext.lean": "6ef8b87b2d81cb177505a4bbc88befa078b20578cedd49e836d850753c203ee3",
+ "PLAN.md": "e94a60324486913b4a04650edd617c4ff8bef469dc7fd311adea8407c6662ea0",
+ "SPEC/real-closure-execution.md": "bc0948ad7de6969baaed89c0b3052cb0d21d64d634f8a336f9a7dde446b057f5",
+ "adapters/HexRCF/RealCoefficients.lean": "6b9f9a7eaa6e98e30a1faae38252d8616a15595f86347abee0aa54c8fb2f2161",
+ "adapters/HexRCF/RealCoefficients/CellOperations.lean": "3561cc80c7c866141f05a387ce1100ee0cadd98281a03395551cebcde5bd6e2a",
+ "adapters/HexRCF/RealCoefficients/CellQuote.lean": "c572911d7be36001e0f1885c3460f3eb19425d90e78345b1c46878ddf3e6c6ea",
+ "adapters/HexRCF/RealCoefficients/CellRead.lean": "65274f89c940bad74eab8c9075f9256c6ed3d8b90d3294aec4e85883e425fb10",
+ "adapters/HexRCF/RealCoefficients/RationalQuote.lean": "675e2ba065b696f257adefc07fe30ddb0190f321d86005444579ea5a0744bdf5",
+ "adapters/HexRCF/RealCoefficients/RealModel.lean": "712b4fd3edff8eaa6f93e501da5debf04529d1ea8c11a18389820f866d179c43",
+ "adapters/HexRCF/RealCoefficients/Reify.lean": "ea8474b9e253f93a1583064ca99ec0bf376dadf5457fd60b57e9e18460cf449c",
+ "adapters/HexRCF/RealCoefficients/RootContext.lean": "792176eab63e5e62b759a10893569946ef6d019566b8116c85237b3e16fcdb86",
+ "adapters/HexRCF/RealCoefficients/RootHeader.lean": "681f2a964bc30f65a92a0fb1a58b4d4013eb396df37ca813962702065fb46261",
+ "adapters/HexRCF/RealCoefficients/RootPrepare.lean": "de72a8e3ac4adb13365801476467bf691e630d0952b018ccecd88846c3bdb025",
+ "adapters/HexRCF/RealCoefficients/RootQuote.lean": "89f3ad4b0c4a8ae058560201900877035d896427176b944b34acde9f9b23d7e8",
+ "adapters/HexRCF/RealCoefficients/RowPacketQuote.lean": "edbb3d23f72422f5a1dea163c283848ec285418b7bdb9eedba553b83066121af",
+ "adapters/HexRCF/RealCoefficients/RowQuote.lean": "3b7e7d2ebcbd53a6ea893bc8f4c884d767430f8b98a3f1ca770fe7c7b122f3c9",
+ "adapters/HexRCF/RealCoefficients/ScalarPacket.lean": "6d32a4abc10ae7b217c34e202f722153fa944ec6e790ca864d2c3a0e6f90d99b",
+ "adapters/HexRCF/RealCoefficients/ScalarQuote.lean": "fee2617a998f29d05c8959b484060ac1d719359c6d851a8ff6699fa9cb370acc",
+ "adapters/HexRCF/RealCoefficients/SignatureQuote.lean": "c3bb71b52c2a544b902bc256b3a162e1c3c4e7f94ae6b21808914e67109710eb",
+ "adapters/HexRCF/RealCoefficients/SourceBuild.lean": "4ad1fa90358f33ac142b0a88ddbc692657836f44146966151c877cdf1f284466",
+ "adapters/HexRCF/RealCoefficients/SourceIdentity.lean": "d98ae0c746003be89edfc969e464383e6a6bda253e0dae8c290605e8b98ce3c3",
+ "adapters/HexRCF/RealCoefficients/SourceIdentityQuote.lean": "37c54a56f48b265d0ddca38ecae2c572871e8b7f1600b54f330ff3da60252fa7",
+ "adapters/HexRealClosureTheory/Algebraic.lean": "2495153acbe4e468521913a2f5d6569831cd05f5ee48d5ddb26fc31a43438c7e",
+ "adapters/HexRealClosureTheory/SignFacts.lean": "c2b8cf96de0cccc2c0c3cbe83f0afd7c40ab9736b75f377ec5bfedc0907f34e3",
+ "adapters/HexRealClosureTheory/TowerModel.lean": "70d0e57e8ecc78eb9b7675d875157462d27cf9494d49d72bba019eaa6dd1d788",
+ "conformance-fixtures/HexRCF/bounded-source.json": "566c5f1f092abab73312bb630a02e24873e6723942d450320dae2b52aaa30a75",
+ "conformance-fixtures/HexRCF/enumerated-source.json": "d1f70734b5c8d5c7f768b4d2c3f5359d8e1cc44105885e7f8af597102c8b5c98",
+ "conformance-fixtures/HexRCF/source-identity.json": "93540b60174e0d8bd85ca80d99c6cbdc427815f341a12a6e38f4b38613073f53",
+ "conformance/HexRCF/BoundedSource.lean": "343667fb4be6cf3c06bb6f9524a1c22472b072212d5c6145bf6fb11861e6c363",
+ "conformance/HexRCF/BoundedSource/Cubic.lean": "da1c0e1b549fce22cb1f7ea7bb6888dff1d7b59c1219c5b580376bbb4a25ecde",
+ "conformance/HexRCF/BoundedSource/Inputs.lean": "7ffcd6d62f175f3027e2327fd4a86885e933e0715a85ab7afb9b112d76d49a39",
+ "conformance/HexRCF/BoundedSource/Negative.lean": "abb7ef67395b2b90f9e12f551bcc0d16146cca067bf3567707e924c2ecd2fb77",
+ "conformance/HexRCF/BoundedSource/Positive.lean": "d83184a9d54264ba7e1c138eb674db1d67df39681575fa91d96a4681af774321",
+ "conformance/HexRCF/BoundedSource/Proofs.lean": "7f9d47d59dd47aafa90a09d23a966efc0d2ca7fbfa3cdce5ae4771ae1da01a9f",
+ "conformance/HexRCF/BoundedSource/Quote.lean": "70da87d5868d0c3d725e9ed2a531a4b22221e42d794cfd259359f6524be1eaef",
+ "conformance/HexRCF/CellFinishCases.lean": "619208fd6528c4f12d4e12bc4ee6fd4016ab0948db16a61237a2aefbcd523a7c",
+ "conformance/HexRCF/CellFinishProofs.lean": "fd232e3b4a64f444d834ae244a110ad0910aa35c4773a90b6a3b26a48693e22c",
+ "conformance/HexRCF/CellQuoteStageProofs.lean": "a14f3f20e1add07f569ab222994995c409552aededef738972a70c864b94b919",
+ "conformance/HexRCF/CellQuoteStages.lean": "e4593f2c8169af00398ff608dd53cbbfbe6b8408ddbdd07de6f64f59acf8a25f",
+ "conformance/HexRCF/CellSourceProofs.lean": "cea22d1a532dc4415130ff1c9c20f43707ab9696c7df53c858bdfa41ad76f018",
+ "conformance/HexRCF/CellSourceQuote.lean": "bea057fe5c9470d701e02974fbd6a83e945bbaba1225ca294830f54ef762f504",
+ "conformance/HexRCF/DependentQuote.lean": "0df154544a17857334480e7c577ecbcf1afe04165fa2da1a5a6407bf41e85518",
+ "conformance/HexRCF/DependentQuoteData.lean": "ed254475e78fa6edb27d4e55222a598b07b7357154ea0495d6195f2f1d39ee46",
+ "conformance/HexRCF/DependentQuoteProofs.lean": "5875aa9748f50340668e58aea97b196d3353313352fb8c819ae5ee3542556980",
+ "conformance/HexRCF/DependentScalarProofs.lean": "9fe3f3871f929e28355985c574c0b8c742be062ae5f19033d7d8bf9e67cd88d8",
+ "conformance/HexRCF/DependentScalarQuote.lean": "e20dd7346c337dd17126c394965f268e568706730f475844d7c0907051224933",
+ "conformance/HexRCF/EnumeratedSource/Cubic.lean": "011464c56dc3ffc5a6bd1e62dc9ff8b35ac6d0e621beceb0336b69d8f626b78f",
+ "conformance/HexRCF/EnumeratedSource/CubicData0.lean": "79b971cb2816d7ee980c595199eedbfddfd7cdb62ea12bc71dfcb24d304f69da",
+ "conformance/HexRCF/EnumeratedSource/Inputs.lean": "23ae13a33e132ee7221c5fa353e71073fc05bd660dfc3ecf6620584b62b40306",
+ "conformance/HexRCF/EnumeratedSource/Negative.lean": "261fcd979ff77c772a28ecc89776b5771cec920fc4e58a0dfe2886aee43a58d7",
+ "conformance/HexRCF/EnumeratedSource/NegativeData0.lean": "c0700606f805664f89dd0106dfb5aebb5ab18949adbb30e5b71ffeb20bb4fdaf",
+ "conformance/HexRCF/EnumeratedSource/Positive.lean": "1382c958e53cdb8a04afd1e6d6f173fe697ba15a3321bf29c3e03059923c7181",
+ "conformance/HexRCF/EnumeratedSource/PositiveData0.lean": "41674140d15cf0136ca29b627f667b952355916b269ff7d2c14247ba2d21b3b1",
+ "conformance/HexRCF/EnumeratedSource/Proofs.lean": "3c08b8018b68469d3c6e7940f730d6b8fadbf6175df2e6f5017ed4fc24d50d5b",
+ "conformance/HexRCF/EnumeratedSource/Quote.lean": "8987d21be058f777f0ba875e917fcda77892bced1029616804fabd57f4eb41d8",
+ "conformance/HexRCF/FrozenSignatureConformance.lean": "8e7d432aecb87fb89bb188e4c579e86fb5c3348c5430f1e2b1a00f1f820a940e",
+ "conformance/HexRCF/FrozenSignatureProofs.lean": "55de6da9b0b3dc2d1e384d6c838d13294287c44060afb8e70aa2a0c8e01a81cb",
+ "conformance/HexRCF/ProofFunctionPublic.lean": "f928c9f0dd0a704d34a516b6282cfa6a7a4eb6c112d49689c450647a44370a6b",
+ "conformance/HexRCF/PublicSignPacket.lean": "c32d73c5634376907b965e1ea6cf69352fdda1f1945ce2f34a378cc217778102",
+ "conformance/HexRCF/PublicSignPacketControls.lean": "b4f98bd8ef190a361dd7752d4d5ece0cfbd862ff4face5a06dfabecf87096028",
+ "conformance/HexRCF/PublicSignPacketProofs.lean": "442f6d3e04a36db25611f0396103a1eee5ee411c40e8f3cc93df1acf7898bbbb",
+ "conformance/HexRCF/PublicSignPacketValues.lean": "72705dba30f04f986188903fb49b983c6f0a664895116fca8bd8b6b46b6517e5",
+ "conformance/HexRCF/QuotientQuote.lean": "97b2cbc9abdb46db33a9a91328f331edf8dea055cc244489158121cde8dc1903",
+ "conformance/HexRCF/QuotientQuoteData.lean": "ec26777d655a7898d7f7922fcea8f426a3f8c77a53000b69b6fe1755a0348870",
+ "conformance/HexRCF/QuotientQuoteProofs.lean": "f1d95accf6caed1c7354408b3a1a0b29493a526e82036390e39102ebe80c6752",
+ "conformance/HexRCF/QuotientQuotePublic.lean": "a3bd9a082df14a0ac93ba3798e13c6ebbf9dff98d7613264713aa281a5a18bea",
+ "conformance/HexRCF/RationalQuoteConformance.lean": "f03844d4a44a5c61b702ed0b1697619da9b20f4ac42122b9d1a6d3fa4a2de9ac",
+ "conformance/HexRCF/RecursiveScalarQuote.lean": "83ba1f3ed63afdbb148f171736a0aacebc7eef4ae3bf32dca29811515c3f051b",
+ "conformance/HexRCF/ReplayBoundary.lean": "bbc09553d62198a18e897981d5f443c81f09dba8d371d2cdaeaa846d22cbc2f8",
+ "conformance/HexRCF/ReplayBoundaryProofs.lean": "d755462a7344dc9f5304fba255bcefb42188c1de5a51d92d8567a27f22482dc2",
+ "conformance/HexRCF/ReplayHelperProofs.lean": "6dd68829399ec8908a877a3f7705cc9321e49b9581d0d577d114950242e43a57",
+ "conformance/HexRCF/ReplayHelpers.lean": "4501fa39e52a8a2bb52fdd7b183c16801090dd026304105afb4342a1c441c2a3",
+ "conformance/HexRCF/RootContextConformance.lean": "0c52084609ec3de8afd51330a7d2cc97f7bae1d8b2bbc421138783940fc7db37",
+ "conformance/HexRCF/RootContextProofs.lean": "b4c2e3ce686ce8bc60bfdafe2be2f566c6de46758f4827d307f3d5592b59d2e9",
+ "conformance/HexRCF/RootHeaderBudget.lean": "db30b6b7781fabd238ea2c934477e5ae281cc6cd905f11848ce46eb66ef45fe0",
+ "conformance/HexRCF/RootHeaderControls.lean": "aca063af3bfe475166aef92193f162c25a0e53eea094087cf334406a3d513157",
+ "conformance/HexRCF/RootHeaderPacket.lean": "dcd8e63c1d656fc800690b35554a0f835a1ee0bb96312215f8c12348d8a0e79a",
+ "conformance/HexRCF/RootHeaderProofs.lean": "e6630f0464fd0096b9af74b4640d2abc514a62c0b0fc706b4a2e74c9602eeb8c",
+ "conformance/HexRCF/RootHeaderValues.lean": "de9a8fc7c2e9371cbd3324eb700180411e49865dbc6535a74d2c882f74e38e13",
+ "conformance/HexRCF/RootPrepareControls.lean": "b36af8efd1e12227188b6fb7bde258e80d5c1c874338a324cb53c5ccc6c1330f",
+ "conformance/HexRCF/RootPreparePacket.lean": "86185bcc5fdddb1f700d869a115a91034954714f69a83171fd0e96f601e76fe3",
+ "conformance/HexRCF/RootPrepareProofs.lean": "4a5bc6655576a6592fcd5cd801bcfebd425243b1bb6cb39b0bb46d500a3938be",
+ "conformance/HexRCF/RootPreparePublic.lean": "a9e09cbe8d1287b97dde71ad1c6dbe149cfbacb6f81f41a8493ee802416d0805",
+ "conformance/HexRCF/RootQuoteCases.lean": "602d15ef501e969183bffbda7fb3c0f00a174ba5c2dbc35370ee7fce896944dd",
+ "conformance/HexRCF/RootQuoteConformance.lean": "f6a652a243ba62cffc671d1365c6ab47b6618179acb172019ec5609ea0324d3c",
+ "conformance/HexRCF/RootQuoteData.lean": "faa259d129d5c65a063c7143e45d5d9d19573ed49862aa5ecb3978ff389cb514",
+ "conformance/HexRCF/RootQuoteSource.lean": "aca1654efc1a452aca8ef573bb8ea3a435a4e1e18a4dca854d9bcc8e350d511d",
+ "conformance/HexRCF/RootTableQuote/Conformance.lean": "ec5bd136df58cc24a40ca989e3d33e55923082aed7591b234f55c70c013c74ad",
+ "conformance/HexRCF/RowPacketControls.lean": "ab69c57b66fe8129be5f07e5e5f42b7b35d60a23b305ec224d2d7dca28ac7c82",
+ "conformance/HexRCF/RowQuoteCases.lean": "8d2ebddc05d5f0d08b62b50d3498b34b47ab0b3accc4d0a572e621fd83d606d4",
+ "conformance/HexRCF/RowQuoteData.lean": "ce60cb18f548f55e929d4803c7ed824ad0a7621fd4abda09a191f76393fabf0c",
+ "conformance/HexRCF/RowQuoteDepth.lean": "6ada3c44bea055425d223dc57eafb4f0c88349713d815ded4beec9720f7802ad",
+ "conformance/HexRCF/RowQuoteProofs.lean": "317d4f981f32bb28666fcabc6248f4a57fe67c95a7fe431f7993aeacfa377ed3",
+ "conformance/HexRCF/SelectedRoot/KernelCheck.lean": "499299274a75c6e2a70630c8ae442f21ab7d0514c7d23cffdde3f09fd17421cb",
+ "conformance/HexRCF/SharedQuoteCallbacks.lean": "6132cc3722af3cf251d11c857a572f09128d3614d931724965cbcf488dc4db6d",
+ "conformance/HexRCF/SignPacketProofs.lean": "3980cad31637f5798b2c351e1efc2a29b946de1d90e06fb11acd85e2a5c46321",
+ "conformance/HexRCF/SignPacketQuote.lean": "fcda11e6c75353d4519c4eb0e9c302b84d7e41030316c99fcacb885dabf97545",
+ "conformance/HexRCF/SignatureQuoteConformance.lean": "26f16c37cb9e0d5c09a082787f4a66673437adbf998023fd5e9625db16ff5d3f",
+ "conformance/HexRCF/SourceBuild.lean": "c12b24a04234a45da0f4bf3be83bee517ec9ccff2451e804d258bf9bcab2ba5e",
+ "conformance/HexRCF/SourceIdentityControls.lean": "c655486606139658d73e5b4d394228c3632596fec366e3b410ea9deb5b085553",
+ "conformance/HexRCF/SourceIdentityEmit.lean": "aa12f1517efc675698c0795c5a463a77d7a3466bcc146d4981d82e913059ed99",
+ "conformance/HexRCF/SourceIdentityLiterals.lean": "61ee2ce703d4965b00e1e20cc62288a0bde4e839d68ca09e1b66281f4a3e48d0",
+ "conformance/HexRCF/SourceIdentityPacket.lean": "614b3132274de5bebebeecb09cf479ac68723f1518e1f52912543a812985a4a9",
+ "conformance/HexRCF/SourceIdentityProofs.lean": "c449238d5f915dbe1f337688bc4f7357f3a93e31ad79eaa9e8e159c280749173",
+ "conformance/HexRCF/SourceSelectionCases.lean": "368ded3f07bb4be269f26a2fd2b7044904ea16d1dd1cba41d8bccb373d004005",
+ "conformance/HexRCF/TreeQuote.lean": "049065aa64bb13432b1d7183759979d28eebba98d18b6f54ab849e5953ce92c1",
+ "conformance/HexRCF/TreeQuoteData.lean": "c595c2278d2997483b755aa585da874c27eed40e4e1a8106d7f553e4f574776b",
+ "conformance/HexRCF/TreeQuoteProofs.lean": "f9a40248237480f8972df62dff548ef0599205b76014e070866e72586f161933",
+ "conformance/HexRCF/TreeQuotePublic.lean": "adc6dc6871208f31970cf5ae0c2472fd325a72e1df8114a6e8178ef8b2c71570",
+ "experiments/KernelReplay/AxiomClosure.lean": "f49377265f05f52b633b10a59255a03731e08d022cc54763de9851c5b5325034",
+ "lake-manifest.json": "fd2dc4df30cd44e4d30568489d616e7bcc8a78747500139134be56f35ae746a4",
+ "lakefile.lean": "0b45717104644561ca7415d4c9f43bae6b318cf75eb00e0757a44c9f7db700bc",
+ "lean-toolchain": "bc84812c94489d1e3e191baa1dc10d5eb684382d7fe9d2a5ab085e72c1c67e47",
+ "libraries.yml": "14e3dd1c01bb0c369b2216e2733378d61172040fd9f69dd0354d4e1267d9c5c1",
+ "scripts/bench/proof_only_runtime_exemptions/lakefile-rcf-bounded-source-fea47caa-baeeaf73.json": "eaea20ebc9579f4c50ff88344d8c9be3da9fc7c7d0981e9e0d5251dd04a6ab3f",
+ "scripts/bench/proof_only_runtime_exemptions/lakefile-rcf-source-build-fea47caa-1ab4e88c.json": "38fcff53934dab8ff78146cc782b039265da3c6684638a5b00ab725d5a2c8e01",
+ "scripts/rcf/selected_literals.py": "03e02fa50575882c0784894b76746ff8e594b9a1eb0a285811bc76ee87265e72",
+ "scripts/rcf/source_identity_literals.py": "ea5d7df949871c4975367a759b9632d033f3a240523c2c917c9141220ffdfd78"
+ },
+ "changed": [
+ "adapters/HexRCF/RealCoefficients/ScalarPacket.lean",
+ "adapters/HexRCF/RealCoefficients/SourceBuild.lean",
+ "conformance/HexRCF/BoundedSource.lean"
+ ],
+ "artifacts": {
+ "README.md": "c4a49e2ad18c3f0e669c5d3293e5caa31ba147b74c059a51e70492d62c5b6d44",
+ "bounded-source-progress-controls-1.log.gz": "1611f115895185a44b6c1b4ad6adf55bd419d51dee7247696adf991d993fb94f",
+ "bounded-source-progress-controls-2.log.gz": "009d50dfb491b07979d19614510636d69ac0ada9d49fd824319c5454cf57a5d2",
+ "bounded-source-progress-core-1.log.gz": "710858eb45bd07b1c8e7a26110be2f6e2d570df6202e96302988c5fa1baf7738",
+ "bounded-source-progress-core-2.log.gz": "05591a9ecfd98d53194e9e93f83d5448beec075bcc6cc813e4ba1a2a949dcd6e",
+ "bounded-source-progress-core-3.log.gz": "aaab056ff5832ddb3e253eec7f976ef06e3f327a9887c42bbe628b0ffdf27a3d",
+ "bounded-source-progress-core-4.log.gz": "21d6645a32ec543efec4dc5de1b22da64bb0416e7138b4edaa5742a2d8e53ae3",
+ "bounded-source-progress-core-5.log.gz": "b3c775d10651973a39ec30ab0f633925441f0e87281bb742aabf22eeb7f2f947",
+ "bounded-source-progress-core-6.log.gz": "42cb41735583d1edd4c547ded8f89861bb775120e668c508acf9367490699b4b",
+ "bounded-source-progress-core-7.log.gz": "26177c5743ae8ff2660cbe38686e1ae27cd8cc25fe68eb4c750555b95af773de",
+ "source-progress-metadata-admissions.log.gz": "69a21bde72fd2d28ac505ea4f1e28c3b0a4e96998cb90674e584133f1fa72701",
+ "source-progress-metadata-copyright.log.gz": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "source-progress-metadata-dag.log.gz": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "source-progress-metadata-diff.log.gz": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "source-progress-metadata-freshness.log.gz": "2deda7e9f1dd38e7a3fd37966a9bdf33c905c76164d13133571f675b1ab75b13",
+ "source-progress-metadata-lines.log.gz": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "source-progress-metadata-literals.log.gz": "d363c41d04cc71aaa8b2bb97d1faf6ff4b311e5874c10d339f87aba4d4b97158",
+ "source-progress-metadata-manifest.log.gz": "87c23c0a8f1159f2320fb2015c285ee9167c8c51ef9f6df2f69fc217f4b11029",
+ "source-progress-metadata.json": "608a9a3a3b9dd337d79a8b3822ee9351777030c541bb355dab2e232132bfdc55",
+ "source-progress-proof-only-projection.json": "5825c69a41830c1410ba20617cf72211e530cd8f7bbd9475588f834fb683e5a9",
+ "verify.py": "36df35f743e1dfba065c275756384432dee01e0c66169d1078c33e2bba807738",
+ "source-progress-source.patch.gz": "d4abdc0174d0867acca097a863a8234e4d72a70c6fc5f3ecde7fcfe818c0ad6e"
+ },
+ "limits": {
+ "memory_max": 34359738368,
+ "memory_swap_max": 0,
+ "lean_threads": 2,
+ "serial": true
+ },
+ "validation_scope": "Three new theorem bodies and actual native frozen controls; exact proof-only projection; earlier57-target/manual/quoted-proof run retains old pin and is not claimed as new."
+}
diff --git a/reports/data/hexrcf-bounded-source/progress/source-progress-metadata-admissions.log.gz b/reports/data/hexrcf-bounded-source/progress/source-progress-metadata-admissions.log.gz
new file mode 100644
index 0000000000..bd2ec29cdf
Binary files /dev/null and b/reports/data/hexrcf-bounded-source/progress/source-progress-metadata-admissions.log.gz differ
diff --git a/reports/data/hexrcf-bounded-source/progress/source-progress-metadata-copyright.log.gz b/reports/data/hexrcf-bounded-source/progress/source-progress-metadata-copyright.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-bounded-source/progress/source-progress-metadata-copyright.log.gz differ
diff --git a/reports/data/hexrcf-bounded-source/progress/source-progress-metadata-dag.log.gz b/reports/data/hexrcf-bounded-source/progress/source-progress-metadata-dag.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-bounded-source/progress/source-progress-metadata-dag.log.gz differ
diff --git a/reports/data/hexrcf-bounded-source/progress/source-progress-metadata-diff.log.gz b/reports/data/hexrcf-bounded-source/progress/source-progress-metadata-diff.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-bounded-source/progress/source-progress-metadata-diff.log.gz differ
diff --git a/reports/data/hexrcf-bounded-source/progress/source-progress-metadata-freshness.log.gz b/reports/data/hexrcf-bounded-source/progress/source-progress-metadata-freshness.log.gz
new file mode 100644
index 0000000000..44c03f6508
Binary files /dev/null and b/reports/data/hexrcf-bounded-source/progress/source-progress-metadata-freshness.log.gz differ
diff --git a/reports/data/hexrcf-bounded-source/progress/source-progress-metadata-lines.log.gz b/reports/data/hexrcf-bounded-source/progress/source-progress-metadata-lines.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-bounded-source/progress/source-progress-metadata-lines.log.gz differ
diff --git a/reports/data/hexrcf-bounded-source/progress/source-progress-metadata-literals.log.gz b/reports/data/hexrcf-bounded-source/progress/source-progress-metadata-literals.log.gz
new file mode 100644
index 0000000000..251ef5b170
Binary files /dev/null and b/reports/data/hexrcf-bounded-source/progress/source-progress-metadata-literals.log.gz differ
diff --git a/reports/data/hexrcf-bounded-source/progress/source-progress-metadata-manifest.log.gz b/reports/data/hexrcf-bounded-source/progress/source-progress-metadata-manifest.log.gz
new file mode 100644
index 0000000000..1e2a3e818a
Binary files /dev/null and b/reports/data/hexrcf-bounded-source/progress/source-progress-metadata-manifest.log.gz differ
diff --git a/reports/data/hexrcf-bounded-source/progress/source-progress-metadata.json b/reports/data/hexrcf-bounded-source/progress/source-progress-metadata.json
new file mode 100644
index 0000000000..2578d3d5fa
--- /dev/null
+++ b/reports/data/hexrcf-bounded-source/progress/source-progress-metadata.json
@@ -0,0 +1,79 @@
+[
+ {
+ "name": "copyright",
+ "argv": [
+ "python3",
+ "scripts/check_copyright_headers.py"
+ ],
+ "exit_code": 0,
+ "log": "source-progress-metadata-copyright.log"
+ },
+ {
+ "name": "lines",
+ "argv": [
+ "python3",
+ "scripts/check_file_line_counts.py",
+ "--base",
+ "origin/main"
+ ],
+ "exit_code": 0,
+ "log": "source-progress-metadata-lines.log"
+ },
+ {
+ "name": "dag",
+ "argv": [
+ "python3",
+ "scripts/check_dag.py"
+ ],
+ "exit_code": 0,
+ "log": "source-progress-metadata-dag.log"
+ },
+ {
+ "name": "admissions",
+ "argv": [
+ "python3",
+ "scripts/ci/check_named_admissions.py"
+ ],
+ "exit_code": 0,
+ "log": "source-progress-metadata-admissions.log"
+ },
+ {
+ "name": "manifest",
+ "argv": [
+ "python3",
+ "scripts/release/check_released_manifest.py"
+ ],
+ "exit_code": 0,
+ "log": "source-progress-metadata-manifest.log"
+ },
+ {
+ "name": "freshness",
+ "argv": [
+ "python3",
+ "scripts/bench/check_factor_sweep_freshness.py"
+ ],
+ "exit_code": 0,
+ "log": "source-progress-metadata-freshness.log"
+ },
+ {
+ "name": "literals",
+ "argv": [
+ "python3",
+ "scripts/rcf/selected_literals.py",
+ "--check"
+ ],
+ "exit_code": 0,
+ "log": "source-progress-metadata-literals.log"
+ },
+ {
+ "name": "diff",
+ "argv": [
+ "git",
+ "diff",
+ "--cached",
+ "--check"
+ ],
+ "exit_code": 0,
+ "log": "source-progress-metadata-diff.log"
+ }
+]
diff --git a/reports/data/hexrcf-bounded-source/progress/source-progress-proof-only-projection.json b/reports/data/hexrcf-bounded-source/progress/source-progress-proof-only-projection.json
new file mode 100644
index 0000000000..fec2b528f7
--- /dev/null
+++ b/reports/data/hexrcf-bounded-source/progress/source-progress-proof-only-projection.json
@@ -0,0 +1,9 @@
+{
+ "base": "ff85306782a282c7741b3a69ca4df6610fa308b7",
+ "files": [
+ "adapters/HexRCF/RealCoefficients/ScalarPacket.lean",
+ "adapters/HexRCF/RealCoefficients/SourceBuild.lean",
+ "conformance/HexRCF/BoundedSource.lean"
+ ],
+ "result": "PASS exact byte projection after removing only new theorem blocks and fresh Meta audit"
+}
diff --git a/reports/data/hexrcf-bounded-source/progress/source-progress-source.patch.gz b/reports/data/hexrcf-bounded-source/progress/source-progress-source.patch.gz
new file mode 100644
index 0000000000..356c5c89e5
Binary files /dev/null and b/reports/data/hexrcf-bounded-source/progress/source-progress-source.patch.gz differ
diff --git a/reports/data/hexrcf-bounded-source/progress/verify.py b/reports/data/hexrcf-bounded-source/progress/verify.py
new file mode 100644
index 0000000000..46659ecd11
--- /dev/null
+++ b/reports/data/hexrcf-bounded-source/progress/verify.py
@@ -0,0 +1,47 @@
+#!/usr/bin/env python3
+"""Verify the proof-only selected-source progress supplement."""
+from pathlib import Path
+import argparse,gzip,hashlib,json,subprocess
+here=Path(__file__).resolve().parent
+root=next(p for p in here.parents if (p/'.git').exists())
+parser=argparse.ArgumentParser();parser.add_argument('--check-head',action='store_true');args=parser.parse_args()
+def sha(raw):return hashlib.sha256(raw).hexdigest()
+c=json.loads((here/'context.json').read_text());parent=here.parent
+assert sha((parent/'context.json').read_bytes())==c['parent_context_sha256']
+subprocess.run(['python3',str(parent/'verify.py')],cwd=root,check=True,stdout=subprocess.DEVNULL)
+for path,digest in c['sources'].items():
+ raw=subprocess.check_output(['git','show',c['source_commit']+':'+path],cwd=root)
+ assert sha(raw)==digest,path
+ if args.check_head:assert sha((root/path).read_bytes())==digest,path
+for path,digest in c['artifacts'].items():assert sha((here/path).read_bytes())==digest,path
+previous=json.loads((parent/'context.json').read_text())
+for path,digest in c['sources'].items():
+ current=subprocess.check_output(['git','show',c['source_commit']+':'+path],cwd=root).decode()
+ if path not in c['changed']:
+ assert previous['sources'][path]==digest,path
+ continue
+ before=subprocess.check_output(['git','show',c['base_commit']+':'+path],cwd=root).decode()
+ if path.endswith('ScalarPacket.lean'):
+ first=current.index('/-- A produced scalar proposal');last=current.index('/-- Literal assembly',first)
+ current=current[:first]+current[last:]
+ elif path.endswith('SourceBuild.lean'):
+ first=current.index('/-- A lawful selected root');last=current.index('/-- Enumerate with',first)
+ current=current[:first]+current[last:]
+ first=current.index('/-- An ordinary-real count-one domain');last=current.index('end Hex.RCF.RealCoefficients.SourceBuild',first)
+ current=current[:first]+current[last:]
+ else:
+ current=current.replace('import KernelReplay.AxiomClosure\n','')
+ first=current.index(' let roots := #[``ScalarPacket.buildParts_sign');last=current.index('\n\nprivate def descriptorError',first)
+ current=current[:first]+current[last+1:]
+ assert current==before,path
+read=lambda name:gzip.decompress((here/(name+'.gz')).read_bytes()).decode()
+log=read('bounded-source-progress-controls-2.log')
+assert 'code=exited, status=0/SUCCESS' in log
+assert 'three actual theorem bodies rechecked; full axioms=[propext, Classical.choice, Quot.sound]' in log
+assert '25477 frozen bytes; six scalar graphs;' in log
+for result in json.loads((here/'source-progress-metadata.json').read_text()):assert result['exit_code']==0,result
+build=subprocess.check_output(['git','show',c['source_commit']+':adapters/HexRCF/RealCoefficients/SourceBuild.lean'],cwd=root).decode()
+body=build[build.index('theorem buildOn_success'):]
+assert '(degree :' not in body and 'Polynomial.degree_pos_of_root domain.1 rootZero' in body
+assert 'Descriptor.build_success_iff' in body
+print(f'Verified source progress: {len(c["sources"])} source bindings/{len(c["artifacts"])} artifacts; three fresh theorem bodies/standard-three axioms; exact proof-only projection; frozen-byte/refusal controls; full #10358 incomplete')
diff --git a/reports/data/hexrcf-bounded-source/run-bounded.sh b/reports/data/hexrcf-bounded-source/run-bounded.sh
new file mode 100644
index 0000000000..2cc8636e8a
--- /dev/null
+++ b/reports/data/hexrcf-bounded-source/run-bounded.sh
@@ -0,0 +1,10 @@
+#!/usr/bin/env bash
+set -euo pipefail
+exec systemd-run --user --wait --pipe --collect \
+ --unit=hex-10358-lean-build \
+ --property=MemoryMax=32G \
+ --property=MemorySwapMax=0 \
+ --property=OOMPolicy=kill \
+ --working-directory="$PWD" \
+ --setenv="PATH=$PATH" --setenv=LEAN_NUM_THREADS=2 \
+ "$@"
diff --git a/reports/data/hexrcf-bounded-source/verify.py b/reports/data/hexrcf-bounded-source/verify.py
new file mode 100644
index 0000000000..64218ee0cf
--- /dev/null
+++ b/reports/data/hexrcf-bounded-source/verify.py
@@ -0,0 +1,56 @@
+#!/usr/bin/env python3
+"""Verify immutable bounded-source production and independent-proof evidence."""
+import argparse,gzip,hashlib,json,subprocess
+from pathlib import Path
+here=Path(__file__).resolve().parent
+root=next(p for p in here.parents if (p/'.git').exists())
+def sha(raw):return hashlib.sha256(raw).hexdigest()
+args=argparse.ArgumentParser();args.add_argument('--check-head',action='store_true');args=args.parse_args()
+c=json.loads((here/'context.json').read_text())
+parent=root/'reports/data/hexrcf-enumerated-source'
+assert sha((parent/'context.json').read_bytes())==c['parent_context_sha256']
+subprocess.run(['python3',str(parent/'verify.py')],cwd=root,check=True,stdout=subprocess.DEVNULL)
+for path,digest in c['sources'].items():
+ raw=subprocess.check_output(['git','show',c['source_commit']+':'+path],cwd=root)
+ assert sha(raw)==digest,path
+ if args.check_head:assert sha((root/path).read_bytes())==digest,path
+for path,digest in c['artifacts'].items():assert sha((here/path).read_bytes())==digest,path
+previous=json.loads((parent/'context.json').read_text())
+changed={'HexManual/Chapters/HexRCF/AlgebraicCells.lean','adapters/HexRCF/RealCoefficients/SourceBuild.lean','conformance/HexRCF/SelectedRoot/KernelCheck.lean','lakefile.lean','scripts/rcf/selected_literals.py'}
+for path,digest in previous['sources'].items():
+ if path not in changed:assert c['sources'][path]==digest,path
+read=lambda name:gzip.decompress((here/(name+'.gz')).read_bytes()).decode()
+for name in ['bounded-source-probe-1.log','bounded-source-quote-1.log','bounded-source-core-1.log','bounded-source-production-1.log','bounded-source-controls-1.log','bounded-source-integration-1.log','bounded-source-render-2.log','bounded-source-browser-1.log']:
+ assert 'code=exited, status=0/SUCCESS' in read(name),name
+log=read('bounded-source-controls-1.log')
+for nodes in [687781,690200,731070]:assert f'proofNodes={nodes}' in log
+assert 'limit=687780' in log
+assert '392 theorems/449 definitions; nonempty traces=811' in log
+assert c['proof_nodes']==[687781,690200,731070]
+assert c['targets']==57
+inv=json.loads((here/'bounded-source-integration-invocation.json').read_text())
+assert len(inv['argv'][3:])==57
+assert all(x in inv['argv'] for x in ['HexManual','HexRCFRealCoefficients','HexRCF.SourceBuild','HexRCF.BoundedSource','HexRCF.BoundedSource.Proofs'])
+for result in json.loads((here/'bounded-source-final-metadata.json').read_text()):assert result['exit_code']==0,result
+fixture=json.loads(subprocess.check_output(['git','show',c['source_commit']+':conformance-fixtures/HexRCF/bounded-source.json'],cwd=root))
+assert fixture==json.loads(read('bounded-source-native.json'))
+assert '25477 frozen bytes' in read('bounded-source-production-1.log')
+for path,digest in c['integration_sources'].items():
+ if path=='HexManual/Chapters/HexRCF/AlgebraicCells.lean':
+ assert sha(gzip.decompress((here/'manual-before-final-timing.lean.gz').read_bytes()))==digest
+ else:assert c['sources'][path]==digest,path
+shots=json.loads((here/'bounded-source-viewed.json').read_text())
+assert shots['actually_viewed'] is True and len(shots['images'])==6
+for path in shots['images']:assert path in c['artifacts']
+inspection=json.loads((here/'bounded-source-final-inspection.json').read_text())
+assert len(inspection)==6
+assert all(x['descendantOverflow']<=1 and x['targetScrollWidth']<=x['targetWidth']+1 for x in inspection)
+code=subprocess.check_output(['git','show',c['source_commit']+':adapters/HexRCF/RealCoefficients/SourceBuild.lean'],cwd=root).decode()
+quote=subprocess.check_output(['git','show',c['source_commit']+':conformance/HexRCF/BoundedSource/Quote.lean'],cwd=root).decode()
+assert 'RootQuote.runWith (quote literal anchor equationValue enclosureValue)' in quote
+assert 'proofNodes := 24000000' not in quote
+assert 'RootQuote.runWith action small' in quote
+assert 'def buildOn' in code and 'Descriptor.build parent.sign parent.signature raw' in code
+assert '| .error error => .error (.production error)' in code
+assert '| .ok (.error error) => .error (.descriptor error)' in code
+print(f"Verified bounded sources: {len(c['sources'])} source bindings/{len(c['artifacts'])} artifacts; default687781/690200/731070 nodes, rollback,392/449/811 fresh audit,57 targets and six viewed captures; full #10358 incomplete")
diff --git a/reports/data/hexrcf-cell-finish/README.md b/reports/data/hexrcf-cell-finish/README.md
new file mode 100644
index 0000000000..89be79931a
--- /dev/null
+++ b/reports/data/hexrcf-cell-finish/README.md
@@ -0,0 +1,20 @@
+# Continued source-finishing evidence
+
+Run `python3 reports/data/hexrcf-cell-finish/verify.py --check-head`.
+The optional flag compares current sources with the pinned implementation.
+`context.json` binds 108 sources and 96 artifacts to
+`b38a112f811e3e654ad7ddffc09e783c7a2f12e2`.
+
+The record covers cumulative source/proof budgets, prepared-source bindings,
+zero/cancelled original divisor refusal despite valid source equivalences,
+complete rollback, joint replay/source proofs and fresh importing audits.
+All 47 affected targets and the complete manual pass. Six final desktop/narrow
+captures were actually inspected. The final render checks the manual-only
+argument wrap after the affected build; the verifier checks that exact source
+difference. Available failed inputs, diagnostic logs and active memory policy
+are retained. Earlier records keep their pins and can be verified for integrity
+without comparing their older source versions to current files.
+
+Source/model/coordinate evidence remains checked caller input. General history
+assembly and the full tactic are incomplete. See the
+[report](../../hexrcf-cell-finish.md) for timings and scope limits.
diff --git a/reports/data/hexrcf-cell-finish/captures/browser.mjs b/reports/data/hexrcf-cell-finish/captures/browser.mjs
new file mode 100644
index 0000000000..716ee466a1
--- /dev/null
+++ b/reports/data/hexrcf-cell-finish/captures/browser.mjs
@@ -0,0 +1,61 @@
+import fs from 'node:fs';
+import {spawn} from 'node:child_process';
+const root=process.argv[2];
+if(!root) throw new Error('Pass the scratch render directory');
+const profile=root+'/cell-finish-profile';
+fs.mkdirSync(profile,{recursive:true});
+fs.rmSync(profile+'/DevToolsActivePort',{force:true});
+const chrome=spawn(process.env.CHROME_BIN || '/home/kim/.cache/ms-playwright/chromium-1243/chrome-linux64/chrome',[
+ '--headless=new','--no-sandbox','--disable-gpu','--allow-file-access-from-files',
+ '--remote-debugging-port=0','--remote-allow-origins=*','--user-data-dir='+profile,'about:blank'],
+ {env:{...process.env,LD_LIBRARY_PATH:fs.readFileSync(root+'/browser-lib-paths.txt','utf8').trim()},stdio:'ignore'});
+let socket;
+try {
+ const portFile=profile+'/DevToolsActivePort';
+ for(let i=0;!fs.existsSync(portFile);i++) {
+ if(i>200||chrome.exitCode!==null) throw new Error('Chrome did not expose CDP');
+ await new Promise(r=>setTimeout(r,100));
+ }
+ const port=fs.readFileSync(portFile,'utf8').split('\n')[0];
+ const tabs=await (await fetch('http://127.0.0.1:'+port+'/json')).json();
+ socket=new WebSocket(tabs.find(t=>t.type==='page').webSocketDebuggerUrl);
+ await new Promise((r,j)=>{socket.onopen=r;socket.onerror=j});
+ let sequence=0;const pending=new Map();let loaded;
+ socket.onmessage=e=>{
+ const msg=JSON.parse(e.data);
+ if(msg.id){const p=pending.get(msg.id);pending.delete(msg.id);msg.error?p.reject(msg.error):p.resolve(msg.result);}
+ if(msg.method==='Page.loadEventFired'&&loaded){loaded();loaded=undefined;}
+ };
+ const call=(method,params={})=>new Promise((resolve,reject)=>{const id=++sequence;pending.set(id,{resolve,reject});socket.send(JSON.stringify({id,method,params}));});
+ await call('Page.enable');
+ const load=new Promise(r=>loaded=r);
+ await call('Page.navigate',{url:'file:///home/kim/.codex/tasks/hex-10358/scalar-review-render/source-identity-review-html/html-single/index.html'});
+ await load;
+ const evaluate=async expression=>{const r=await call('Runtime.evaluate',{expression,returnByValue:true});if(r.exceptionDetails)throw new Error(JSON.stringify(r.exceptionDetails));return r.result.value;};
+ const metadata=[]; const sectionMetadata=[];
+ for(const [label,width] of [['desktop',1440],['narrow',390]]) {
+ await call('Emulation.setDeviceMetricsOverride',{width,height:width===390?1800:1000,deviceScaleFactor:1,mobile:false});
+ for(const [kind,phrase] of [["api", "continues this request through the original source proof"], ["apicode", "The separate finishing action can also continue already recorded usage"], ["source", "The algebraic source regression independently reads the complete frozen packet"]] ) {
+ const exact=await evaluate(`(() => {const p=Array.from(document.querySelectorAll('p')).find(e=>e.textContent.replace(/\\s+/g,' ').includes(${JSON.stringify(phrase)}));if(!p)throw new Error('missing paragraph');const target=['sourcecode','apicode'].includes(${JSON.stringify(kind)})?p.nextElementSibling:p;if(['sourcecode','apicode'].includes(${JSON.stringify(kind)})&&!target.matches('.hl.lean.block, pre, div:has(code)'))throw new Error('target is not a Lean code block');target.scrollIntoView({block:${JSON.stringify('center')}});return {text:p.textContent,viewport:innerWidth,scrollY,paragraphWidth:p.getBoundingClientRect().width,scrollWidth:p.scrollWidth,targetTag:target.tagName,targetWidth:target.getBoundingClientRect().width,targetScrollWidth:target.scrollWidth,descendantOverflow:Math.max(0,...[target,...target.querySelectorAll('*')].map(e=>e.scrollWidth-e.clientWidth)),overflowElements:[target,...target.querySelectorAll('*')].filter(e=>e.scrollWidth-e.clientWidth>1).map(e=>({tag:e.tagName,classes:e.className,width:e.clientWidth,scroll:e.scrollWidth,text:e.textContent.slice(0,100)})).slice(0,8)};})()`);
+ if(!exact)throw new Error('missing visual target '+kind);
+ await evaluate('new Promise(resolve=>requestAnimationFrame(()=>requestAnimationFrame(resolve)))');
+ const shot=await call('Page.captureScreenshot',{format:'png'});
+ fs.writeFileSync(root+'/'+'cell-finish-final-'+label+'-'+kind+'.png',Buffer.from(shot.data,'base64'));
+ metadata.push({label,kind,...exact});
+ }
+ sectionMetadata.push(await evaluate(`(() => {
+ const headings=Array.from(document.querySelectorAll('h1,h2,h3,h4,h5,h6'));
+ const heading=headings.find(e=>e.textContent.includes('Quoting a supplied root replay'));
+ if(!heading)throw new Error('missing quotation heading');
+ const following=headings.find(e=>e!==heading && Number(e.tagName[1])<=Number(heading.tagName[1]) && (heading.compareDocumentPosition(e)&4));
+ if(!following)throw new Error('missing following section');
+ const targets=Array.from(document.querySelectorAll('p,.hl.lean.block')).filter(e=>(heading.compareDocumentPosition(e)&4) && (e.compareDocumentPosition(following)&4));
+ if(targets.length<8)throw new Error('incomplete quotation section');
+ return {label:${JSON.stringify(label)},width:innerWidth,targets:targets.map(e=>({tag:e.tagName,text:e.textContent.slice(0,160),overflow:Math.max(0,...[e,...e.querySelectorAll('*')].map(n=>n.scrollWidth-n.clientWidth))}))};
+ })()`));
+ }
+ fs.writeFileSync(root+'/cell-finish-final-section-overflow.json',JSON.stringify(sectionMetadata,null,2));
+ fs.writeFileSync(root+'/cell-finish-final-inspection.json',JSON.stringify(metadata,null,2));
+ if(metadata.some(e=>e.targetScrollWidth>e.targetWidth+1 || e.descendantOverflow>1)) throw new Error('Changed content overflows; retained captures and metrics identify the affected block.');
+ process.stdout.write('Saved shared-budget finishing desktop/narrow screenshots\n');
+} finally {if(socket)socket.close();chrome.kill('SIGTERM');}
diff --git a/reports/data/hexrcf-cell-finish/captures/cell-finish-final-desktop-api.png b/reports/data/hexrcf-cell-finish/captures/cell-finish-final-desktop-api.png
new file mode 100644
index 0000000000..e6f1d5aef3
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/captures/cell-finish-final-desktop-api.png differ
diff --git a/reports/data/hexrcf-cell-finish/captures/cell-finish-final-desktop-apicode.png b/reports/data/hexrcf-cell-finish/captures/cell-finish-final-desktop-apicode.png
new file mode 100644
index 0000000000..f585da5520
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/captures/cell-finish-final-desktop-apicode.png differ
diff --git a/reports/data/hexrcf-cell-finish/captures/cell-finish-final-desktop-source.png b/reports/data/hexrcf-cell-finish/captures/cell-finish-final-desktop-source.png
new file mode 100644
index 0000000000..f5ff5c2779
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/captures/cell-finish-final-desktop-source.png differ
diff --git a/reports/data/hexrcf-cell-finish/captures/cell-finish-final-narrow-api.png b/reports/data/hexrcf-cell-finish/captures/cell-finish-final-narrow-api.png
new file mode 100644
index 0000000000..0ea11a44b9
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/captures/cell-finish-final-narrow-api.png differ
diff --git a/reports/data/hexrcf-cell-finish/captures/cell-finish-final-narrow-apicode.png b/reports/data/hexrcf-cell-finish/captures/cell-finish-final-narrow-apicode.png
new file mode 100644
index 0000000000..f6daa621ea
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/captures/cell-finish-final-narrow-apicode.png differ
diff --git a/reports/data/hexrcf-cell-finish/captures/cell-finish-final-narrow-source.png b/reports/data/hexrcf-cell-finish/captures/cell-finish-final-narrow-source.png
new file mode 100644
index 0000000000..b5eeaedd8b
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/captures/cell-finish-final-narrow-source.png differ
diff --git a/reports/data/hexrcf-cell-finish/captures/inspection.json b/reports/data/hexrcf-cell-finish/captures/inspection.json
new file mode 100644
index 0000000000..bc7e684a97
--- /dev/null
+++ b/reports/data/hexrcf-cell-finish/captures/inspection.json
@@ -0,0 +1,86 @@
+[
+ {
+ "label": "desktop",
+ "kind": "api",
+ "text": "\n CellQuote.finishPacketWith\ncontinues this request through the original source proof. It consumes the\nprepared source and the accepted canonical checker, model, coefficient identity\nand ordered divisor identities. The source record is checked again: its original\ntarget, divisor inventory and ordinary-kernel equivalence must match. This avoids\nstarting another reification budget. Invoke quotation and finishing inside the\nsame RootQuote.runWith transaction, seeded with source preparation's usage;\nthe final usage then includes both stages. A finishing failure restores the\nwhole attempt, including declarations produced while quoting the packet.",
+ "viewport": 1440,
+ "scrollY": 274305,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "P",
+ "targetWidth": 752,
+ "targetScrollWidth": 752,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "desktop",
+ "kind": "apicode",
+ "text": "\n The separate finishing action can also continue already recorded usage:",
+ "viewport": 1440,
+ "scrollY": 274595,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "CODE",
+ "targetWidth": 740,
+ "targetScrollWidth": 740,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "desktop",
+ "kind": "source",
+ "text": "\n The algebraic source regression independently reads the complete frozen packet\nover the retained positive square root of 2. It reifies the following original\nsentence, reconstructs the coefficient polynomial, authenticates its fixed\ncoefficient and composes the checked cell verdict with the original source:",
+ "viewport": 1440,
+ "scrollY": 275669,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "P",
+ "targetWidth": 752,
+ "targetScrollWidth": 752,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "api",
+ "text": "\n CellQuote.finishPacketWith\ncontinues this request through the original source proof. It consumes the\nprepared source and the accepted canonical checker, model, coefficient identity\nand ordered divisor identities. The source record is checked again: its original\ntarget, divisor inventory and ordinary-kernel equivalence must match. This avoids\nstarting another reification budget. Invoke quotation and finishing inside the\nsame RootQuote.runWith transaction, seeded with source preparation's usage;\nthe final usage then includes both stages. A finishing failure restores the\nwhole attempt, including declarations produced while quoting the packet.",
+ "viewport": 390,
+ "scrollY": 439502,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "P",
+ "targetWidth": 343,
+ "targetScrollWidth": 343,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "apicode",
+ "text": "\n The separate finishing action can also continue already recorded usage:",
+ "viewport": 390,
+ "scrollY": 439920,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "CODE",
+ "targetWidth": 331,
+ "targetScrollWidth": 331,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "source",
+ "text": "\n The algebraic source regression independently reads the complete frozen packet\nover the retained positive square root of 2. It reifies the following original\nsentence, reconstructs the coefficient polynomial, authenticates its fixed\ncoefficient and composes the checked cell verdict with the original source:",
+ "viewport": 390,
+ "scrollY": 441851,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "P",
+ "targetWidth": 343,
+ "targetScrollWidth": 343,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ }
+]
\ No newline at end of file
diff --git a/reports/data/hexrcf-cell-finish/captures/render.lean.txt b/reports/data/hexrcf-cell-finish/captures/render.lean.txt
new file mode 100644
index 0000000000..6b8ce4789d
--- /dev/null
+++ b/reports/data/hexrcf-cell-finish/captures/render.lean.txt
@@ -0,0 +1,5 @@
+import HexManual
+import VersoManual
+#eval Verso.Genre.Manual.manualMain (%doc HexManual)
+ (options := ["--output", "source-identity-review-html",
+ "--without-tex", "--with-html-single", "--without-html-multi"])
diff --git a/reports/data/hexrcf-cell-finish/captures/section-overflow.json b/reports/data/hexrcf-cell-finish/captures/section-overflow.json
new file mode 100644
index 0000000000..47d2b2608b
--- /dev/null
+++ b/reports/data/hexrcf-cell-finish/captures/section-overflow.json
@@ -0,0 +1,704 @@
+[
+ {
+ "label": "desktop",
+ "width": 1440,
+ "targets": [
+ {
+ "tag": "P",
+ "text": "\n RootQuote.quote accepts a Lean\nexpression for an Except ε α replay reader, including structured errors. It returns the reconstructed\ndata and",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A scalar decoder may propose an equality for the exact demanded decode. The\nhelper checks its type, dependencies and kernel proof before usin",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For example, this helper continues a request's existing budget and returns the\nupdated usage together with the checked equation:",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSuppliedRoot\n (reader : Expr)\n (scalar : RootQuote.Decoder",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Quotation follows the representative of a closed quotient when selecting\nreducibility boundaries. This lets a formula polynomial stored in a ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF in\nexample :\n QuotientQuote.reader = some 7 :=\n QuotientQuotePublic.accepted\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Its exact 92-node budget succeeds, one node less exhausts, and a wrong term\ncount rejects. The controls check caller-state restoration; a fre",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Tree replay uses its public leaf and split equations before opening the local\nnode checks. Keeping that boundary explicit avoids kernel conve",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF in\nexample :\n TreeQuote.splitTrue.toOption =\n some 31 :=\n TreeQuotePublic.split_true\n\nopen Hex.RCF in\nexample :\n TreeQuote.splitFalse.t",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The second reader selects its diagnostic branch; it does not accept the\nchanged certificate. Readers returning an error abort quotation and r",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Checked replay data may occur inside a Boolean condition. Quotation keeps\nclosed helpers whose types mention a protected replay function atta",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Conversion preserves data type arguments while rewriting their Boolean\ncomputations. A helper's type can itself mention another checked repla",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The helper controls cover stored arrays with table-dependent element types and\nfunctions with fixed replay-dependent proof types. Matching an",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RowQuote.decoder reads the\nliteral value of a checked selected-sign row through query, root and operation\ntransports. It uses the row's recor",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteRootRows\n (reader : Expr)\n (scalar : RootQuote.DecoderM)\n ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The row controls check positive, zero, negative and false comparisons, exact\nand one-node-below budgets, wrong-goal proposals and caller rest",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a rational predecessor, RationalQuote.decoder supplies these proposals\nwithout a fixed list of permitted numerators. It recognizes canoni",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteRationalRoot\n (reader registry : Expr)\n (config : Reify.Co",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The registry argument is a Lean expression of type\nHex.RealClosure.BaseContext.Registry. This helper supplies scalar equations;\nit does not r",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The cubic regression reads a\nsupplied replay for X³−3 on the open interval (−8,8). A fresh public consumer\nproves that the accepted descripto",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A reader that rejects its input or replay returns structured invalid-provider\nevidence. Non-readers and unsupported shapes raise terminal exc",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Canonical Element.codec decodes remain protected throughout quotation,\nincluding predecessor decodes with an explicit Element.codec head. Exp",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The original root and rational cases use maxHeartbeats := 12000000 and\nmaxRecDepth := 8192. Scalar, sign-packet, shared, callback/module exam",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n This API does not register a tactic handler or establish complete root coverage.\nThe acceptance equation alone does not authenticate original",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a coefficient in a selected algebraic extension,\nScalarQuote.quote uses the owner's Element.signCodec with supplied checked\nsign facts, t",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Pass the original, fully applied Element.codec expression, retaining its\nimplicit arguments. Reinferring definitionally equal context aliases",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSuppliedScalar\n (codec facts literal : Expr)\n (predecessor",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The monorepo regression imports HexRCF.ScalarQuoteCases. It decodes the\nnonrational coefficient −2√2 in the existing selected positive √2 con",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.SelectedRootTests in\nopen Hex.RCF.ScalarQuoteTests in\nexample :\n Data.original.value restored =\n -2 * Real.sqrt 2 :=\n restored_value\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The fresh audit rechecks 13 reachable quotation-case theorem bodies, including this value\nidentity, with only the standard three axioms and n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Regressions cover continued/exact/exhausted proof budgets, rollback after the\nstrict stage succeeds, missing or mismatched facts, zero withou",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a polynomial over the same selected extension,\nScalarQuote.quotePolyWith\nquotes the coefficient array through its finite sign reader and ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSuppliedPolynomial\n (reader facts : Expr)\n (predecessor : ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The regression polynomial contains two copies of −2√2. The checked original\nreader restores both positions. Its first coefficient has this or",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.SelectedRootTests in\nopen Hex.RCF.SharedQuoteTests in\nexample :\n Data.original.value\n (restored.coeff 0) =\n -2 * Real.sqrt 2 :=\n valu",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The fresh importing audit pins seven reachable theorem bodies and three data\ndefinitions, their actual owner refinement and supplied sign evi",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RootQuote.runWith supplies the transaction for a sequence of quoteWith\nactions. RootQuote.run supplies it for a reader with DecoderM callback",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n This scalar API does not reconstruct provider or predecessor histories,\nproduce missing signs, or install a general source-goal solver. The s",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n ScalarQuote.decoderWith composes checked scalar decoding through several\nselected-field predecessors. Its lookup receives each exact canonica",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSelectedReader\n (reader registry : Expr)\n (factsFor :\n Expr → Reify.Reify",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The two-level regression checks one visit to its selected context followed by\none visit to its selected predecessor. Its lookup adds 19 sourc",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n An ordinary module consumer also runs the callback factory and exports the\nchecked scalar reader equation. Its sign follows from the owner's ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RecursiveScalarPublic in\nexample : restored.sign = 1 := sign\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A fresh importing audit checks the two-level fixture and this public consumer,\nincluding accepted annotated decodes and a charged decline fol",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n ScalarPacket.quoteWith checks a supplied optional sign-packet reader. Its\nprepared context has a checked equality to the original context; a ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSuppliedSignPacket\n (reader prepared same : Expr)\n (predecessor :\n RootQuote.DecoderM) :=",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The regression quotes the parent descriptor and one packet for the polynomial\n−2X at the selected positive square root of 2. The resulting fa",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RealClosure in\nopen Hex.RCF.SelectedRootTests in\nopen Hex.RCF.SignPacketQuote in\nexample :\n Option.map Data.original.value\n (Except.toOption\n ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Quoting the parent and packet in one request consumes 268,798 proof nodes.\nWith the frozen parent and its equality already available, the pac",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The caller still supplies and authenticates the parent history and packet.\nPredecessor arithmetic retains its supplied implementation; this h",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A separate public-module example quotes a packet for X at the selected real\nroot of X³−3. Its context slots retain closed applications of the",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.PublicSignPacket in\nexample :\n coefficientReal =\n Hex.RCF.RootQuoteTests.realRoot :=\n coefficient_value\n\nopen Hex.RCF.PublicSignPacket in\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a dependent match, quotation moves trailing branch-equality proofs along\nthe checked equation for the match's subject. This uses ordinary",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF in\nexample :\n DependentQuote.continuedFunction =\n some 29 :=\n ProofFunctionPublic.continued\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n During replay-law\nconversion, an explicit checked function boundary is first kept abstract, then instantiated\nwith the actual function and it",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RootHeader.quoteWith\naccepts the complete original RootReplay.readDescriptor application. It quotes\nthat reader, obtains the independently pa",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The public regression constructs a new root and context from that result,\nquotes the sign packet for X with fully numerical graph fields, and",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RootHeaderPacket in\nexample : coefficientReal = realRoot :=\n coefficient_value\n\nopen Hex.RCF.RootHeaderPacket in\nexample : 0 < coefficientReal :=\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The fresh importing audit includes the generated binding, packet reader,\ncoefficient decoding and real-value proofs. It rejects dependencies ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The default quotation rules recognize Signature.codec.decode applied to the\ncanonical encoding of its actual signature argument, using the ex",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.FrozenSignature in\nexample : readFirst.toOption =\n some first :=\n readFirst_checked\n\nopen Hex.RCF.FrozenSignature in\nexample : readSecond.toOpt",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The cubic packet retains frozen numerical node and nested-moment signatures\nfor its rational predecessor. A signature's serialization identit",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RootContext.packWith\nthen assembles an actual native root context from a closed retained parent and\nits checked descriptor. It keeps the exis",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The same decoded coefficient can be interpreted through the owner's ordinary\nreal model of the packed context, retaining its selected value a",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF in\nopen RootContextCases in\nopen RootHeaderPacket in\nexample : model.value coefficient =\n realRoot :=\n value_checked\n\nopen Hex.RCF in\nopen Root",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The packing budget covers context and signature proof construction. Model\nconstruction is checked separately; its cost is not included in tha",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RootPrepare.prepareWith\nprepares the native context of a reconstructed descriptor for subsequent\nquotation. It checks closed inputs and the e",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.RCF.RealCoefficients in\nmeta def prepareRootContext\n (reader clean : Expr)\n (scalar : RootQuote.DecoderM) :\n Reif",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Run this action and subsequent quotation in one RootQuote.runWith request.\nCombine its decoder with the exact predecessor's scalar and signat",
+ "overflow": 0
+ }
+ ]
+ },
+ {
+ "label": "narrow",
+ "width": 390,
+ "targets": [
+ {
+ "tag": "P",
+ "text": "\n RootQuote.quote accepts a Lean\nexpression for an Except ε α replay reader, including structured errors. It returns the reconstructed\ndata and",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A scalar decoder may propose an equality for the exact demanded decode. The\nhelper checks its type, dependencies and kernel proof before usin",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For example, this helper continues a request's existing budget and returns the\nupdated usage together with the checked equation:",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSuppliedRoot\n (reader : Expr)\n (scalar : RootQuote.Decoder",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Quotation follows the representative of a closed quotient when selecting\nreducibility boundaries. This lets a formula polynomial stored in a ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF in\nexample :\n QuotientQuote.reader = some 7 :=\n QuotientQuotePublic.accepted\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Its exact 92-node budget succeeds, one node less exhausts, and a wrong term\ncount rejects. The controls check caller-state restoration; a fre",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Tree replay uses its public leaf and split equations before opening the local\nnode checks. Keeping that boundary explicit avoids kernel conve",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF in\nexample :\n TreeQuote.splitTrue.toOption =\n some 31 :=\n TreeQuotePublic.split_true\n\nopen Hex.RCF in\nexample :\n TreeQuote.splitFalse.t",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The second reader selects its diagnostic branch; it does not accept the\nchanged certificate. Readers returning an error abort quotation and r",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Checked replay data may occur inside a Boolean condition. Quotation keeps\nclosed helpers whose types mention a protected replay function atta",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Conversion preserves data type arguments while rewriting their Boolean\ncomputations. A helper's type can itself mention another checked repla",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The helper controls cover stored arrays with table-dependent element types and\nfunctions with fixed replay-dependent proof types. Matching an",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RowQuote.decoder reads the\nliteral value of a checked selected-sign row through query, root and operation\ntransports. It uses the row's recor",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteRootRows\n (reader : Expr)\n (scalar : RootQuote.DecoderM)\n ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The row controls check positive, zero, negative and false comparisons, exact\nand one-node-below budgets, wrong-goal proposals and caller rest",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a rational predecessor, RationalQuote.decoder supplies these proposals\nwithout a fixed list of permitted numerators. It recognizes canoni",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteRationalRoot\n (reader registry : Expr)\n (config : Reify.Co",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The registry argument is a Lean expression of type\nHex.RealClosure.BaseContext.Registry. This helper supplies scalar equations;\nit does not r",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The cubic regression reads a\nsupplied replay for X³−3 on the open interval (−8,8). A fresh public consumer\nproves that the accepted descripto",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A reader that rejects its input or replay returns structured invalid-provider\nevidence. Non-readers and unsupported shapes raise terminal exc",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Canonical Element.codec decodes remain protected throughout quotation,\nincluding predecessor decodes with an explicit Element.codec head. Exp",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The original root and rational cases use maxHeartbeats := 12000000 and\nmaxRecDepth := 8192. Scalar, sign-packet, shared, callback/module exam",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n This API does not register a tactic handler or establish complete root coverage.\nThe acceptance equation alone does not authenticate original",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a coefficient in a selected algebraic extension,\nScalarQuote.quote uses the owner's Element.signCodec with supplied checked\nsign facts, t",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Pass the original, fully applied Element.codec expression, retaining its\nimplicit arguments. Reinferring definitionally equal context aliases",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSuppliedScalar\n (codec facts literal : Expr)\n (predecessor",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The monorepo regression imports HexRCF.ScalarQuoteCases. It decodes the\nnonrational coefficient −2√2 in the existing selected positive √2 con",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.SelectedRootTests in\nopen Hex.RCF.ScalarQuoteTests in\nexample :\n Data.original.value restored =\n -2 * Real.sqrt 2 :=\n restored_value\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The fresh audit rechecks 13 reachable quotation-case theorem bodies, including this value\nidentity, with only the standard three axioms and n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Regressions cover continued/exact/exhausted proof budgets, rollback after the\nstrict stage succeeds, missing or mismatched facts, zero withou",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a polynomial over the same selected extension,\nScalarQuote.quotePolyWith\nquotes the coefficient array through its finite sign reader and ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSuppliedPolynomial\n (reader facts : Expr)\n (predecessor : ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The regression polynomial contains two copies of −2√2. The checked original\nreader restores both positions. Its first coefficient has this or",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.SelectedRootTests in\nopen Hex.RCF.SharedQuoteTests in\nexample :\n Data.original.value\n (restored.coeff 0) =\n -2 * Real.sqrt 2 :=\n valu",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The fresh importing audit pins seven reachable theorem bodies and three data\ndefinitions, their actual owner refinement and supplied sign evi",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RootQuote.runWith supplies the transaction for a sequence of quoteWith\nactions. RootQuote.run supplies it for a reader with DecoderM callback",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n This scalar API does not reconstruct provider or predecessor histories,\nproduce missing signs, or install a general source-goal solver. The s",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n ScalarQuote.decoderWith composes checked scalar decoding through several\nselected-field predecessors. Its lookup receives each exact canonica",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSelectedReader\n (reader registry : Expr)\n (factsFor :\n Expr → Reify.Reify",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The two-level regression checks one visit to its selected context followed by\none visit to its selected predecessor. Its lookup adds 19 sourc",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n An ordinary module consumer also runs the callback factory and exports the\nchecked scalar reader equation. Its sign follows from the owner's ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RecursiveScalarPublic in\nexample : restored.sign = 1 := sign\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A fresh importing audit checks the two-level fixture and this public consumer,\nincluding accepted annotated decodes and a charged decline fol",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n ScalarPacket.quoteWith checks a supplied optional sign-packet reader. Its\nprepared context has a checked equality to the original context; a ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSuppliedSignPacket\n (reader prepared same : Expr)\n (predecessor :\n RootQuote.DecoderM) :=",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The regression quotes the parent descriptor and one packet for the polynomial\n−2X at the selected positive square root of 2. The resulting fa",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RealClosure in\nopen Hex.RCF.SelectedRootTests in\nopen Hex.RCF.SignPacketQuote in\nexample :\n Option.map Data.original.value\n (Except.toOption\n ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Quoting the parent and packet in one request consumes 268,798 proof nodes.\nWith the frozen parent and its equality already available, the pac",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The caller still supplies and authenticates the parent history and packet.\nPredecessor arithmetic retains its supplied implementation; this h",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A separate public-module example quotes a packet for X at the selected real\nroot of X³−3. Its context slots retain closed applications of the",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.PublicSignPacket in\nexample :\n coefficientReal =\n Hex.RCF.RootQuoteTests.realRoot :=\n coefficient_value\n\nopen Hex.RCF.PublicSignPacket in\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a dependent match, quotation moves trailing branch-equality proofs along\nthe checked equation for the match's subject. This uses ordinary",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF in\nexample :\n DependentQuote.continuedFunction =\n some 29 :=\n ProofFunctionPublic.continued\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n During replay-law\nconversion, an explicit checked function boundary is first kept abstract, then instantiated\nwith the actual function and it",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RootHeader.quoteWith\naccepts the complete original RootReplay.readDescriptor application. It quotes\nthat reader, obtains the independently pa",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The public regression constructs a new root and context from that result,\nquotes the sign packet for X with fully numerical graph fields, and",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RootHeaderPacket in\nexample : coefficientReal = realRoot :=\n coefficient_value\n\nopen Hex.RCF.RootHeaderPacket in\nexample : 0 < coefficientReal :=\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The fresh importing audit includes the generated binding, packet reader,\ncoefficient decoding and real-value proofs. It rejects dependencies ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The default quotation rules recognize Signature.codec.decode applied to the\ncanonical encoding of its actual signature argument, using the ex",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.FrozenSignature in\nexample : readFirst.toOption =\n some first :=\n readFirst_checked\n\nopen Hex.RCF.FrozenSignature in\nexample : readSecond.toOpt",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The cubic packet retains frozen numerical node and nested-moment signatures\nfor its rational predecessor. A signature's serialization identit",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RootContext.packWith\nthen assembles an actual native root context from a closed retained parent and\nits checked descriptor. It keeps the exis",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The same decoded coefficient can be interpreted through the owner's ordinary\nreal model of the packed context, retaining its selected value a",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF in\nopen RootContextCases in\nopen RootHeaderPacket in\nexample : model.value coefficient =\n realRoot :=\n value_checked\n\nopen Hex.RCF in\nopen Root",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The packing budget covers context and signature proof construction. Model\nconstruction is checked separately; its cost is not included in tha",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RootPrepare.prepareWith\nprepares the native context of a reconstructed descriptor for subsequent\nquotation. It checks closed inputs and the e",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.RCF.RealCoefficients in\nmeta def prepareRootContext\n (reader clean : Expr)\n (scalar : RootQuote.DecoderM) :\n Reif",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Run this action and subsequent quotation in one RootQuote.runWith request.\nCombine its decoder with the exact predecessor's scalar and signat",
+ "overflow": 0
+ }
+ ]
+ }
+]
\ No newline at end of file
diff --git a/reports/data/hexrcf-cell-finish/captures/visual-review.json b/reports/data/hexrcf-cell-finish/captures/visual-review.json
new file mode 100644
index 0000000000..be3a261e1d
--- /dev/null
+++ b/reports/data/hexrcf-cell-finish/captures/visual-review.json
@@ -0,0 +1,35 @@
+{
+ "captures": [
+ {
+ "path": "captures/cell-finish-final-desktop-api.png",
+ "sha256": "53f1da632393704ab511703bdeedc4257e0ba6d9dae7c05cf5c7c84afc2bb7d7",
+ "viewed": true
+ },
+ {
+ "path": "captures/cell-finish-final-desktop-apicode.png",
+ "sha256": "4afdb89cd688ea9799c4786c262383c041b87abf16361c4f4c22dd2186639f56",
+ "viewed": true
+ },
+ {
+ "path": "captures/cell-finish-final-desktop-source.png",
+ "sha256": "49a90a26418a4a20300dcfeb6b6c17acadbb03cd5baf3629e9c9990a2946045f",
+ "viewed": true
+ },
+ {
+ "path": "captures/cell-finish-final-narrow-api.png",
+ "sha256": "6f1b8513ed1ea0db2a3eeaf5152380ab8d07b049c7eb8fbe72d03199b04c8f94",
+ "viewed": true
+ },
+ {
+ "path": "captures/cell-finish-final-narrow-apicode.png",
+ "sha256": "ef021ded10d4b569cb33b4e8bce5c01f3eeee50fcda2293e7e9774c255db529d",
+ "viewed": true
+ },
+ {
+ "path": "captures/cell-finish-final-narrow-source.png",
+ "sha256": "4ba65599c8918f58db6df0c196eb5bd5cf8d79671927323da376133ae780de2a",
+ "viewed": true
+ }
+ ],
+ "finding": "All six final desktop/narrow captures actually inspected. Changed prose and source-finishing code are readable and locally contained. Existing unrelated page overflow is outside scope."
+}
diff --git a/reports/data/hexrcf-cell-finish/context.json b/reports/data/hexrcf-cell-finish/context.json
new file mode 100644
index 0000000000..076ab2876b
--- /dev/null
+++ b/reports/data/hexrcf-cell-finish/context.json
@@ -0,0 +1,727 @@
+{
+ "source_commit": "b38a112f811e3e654ad7ddffc09e783c7a2f12e2",
+ "source_tree": "f81d15daf70925cd672eea48fe3ff68cec456927",
+ "baseline_commit": "372368f8a52882855dbefc7cc1df5b0b1feca062",
+ "unchanged_guards": [
+ "conformance/HexRCF/SelectedRoot/KernelCheck.lean",
+ "experiments/KernelReplay/AxiomClosure.lean",
+ "AGENTS.md",
+ "PLAN.md",
+ ".github/workflows/ci.yml"
+ ],
+ "sources": {
+ ".github/workflows/ci.yml": "5db61a70eb52d7478994377179c1b35b360a794fcff4b1c257496b5a6394231c",
+ "AGENTS.md": "4e0a48cf49a61e56ed84c8b28e232b5bfad29f2da20571377692be6e1c316f30",
+ "HexManual/Chapters/HexRCF/AlgebraicCells.lean": "4fd07893031c5857cf27dbc70e2dd571369a02d358923e50520815da37029451",
+ "HexManual/Chapters/HexRCF/RootQuote.lean": "0fe7ecb8568a5b3492aeea8310a4816797802d0a764093b824673a635ecf628a",
+ "HexManual/Chapters/HexRCF/RootTableQuote.lean": "78d1be637a32593b03f000ab153c7fdf05a1b5332ea3efb9c186aacfd68f0ae5",
+ "HexRCF/README.md": "3830d758a8a75d59df1a6dd01f59204a86858b5eda3e43a78f9e9e9c2d769a8a",
+ "HexRCF/SPEC/hex-rcf.md": "df8c6bb2435a2794faa36bc77e41f4c936f06ae149f29c3e68fe0d79f4ebfafb",
+ "HexRCF/Tactic.lean": "09d895ba1dd2c1af0bfffca197494f2614380ded268ff13e4e0b02fea22b9224",
+ "HexRealClosure/Algebraic.lean": "d05f9fb72fe9544ae9ddc685dff17080f876aa4c99c70e8992d511e011f6a454",
+ "HexRealClosure/ContextData.lean": "ca29790752b8d25f10d03a9877690a5ff40f1fdf6815c96fe9693941206e662c",
+ "HexRealClosure/SignCodec.lean": "7126323c97b77204386795a0f252f1babfd0ed7f3dba7ee3927a99b9d5c1852a",
+ "HexRealClosure/SignFacts.lean": "9c22837e93e6f50cc96310163e352ac608fbcfbd6275edab33751da2fd84f47c",
+ "HexRealClosure/SignatureCodecTests.lean": "ffc72777523ac0e92b563481804bdfb581fb0173fe7a021009737d57959b4462",
+ "HexRealClosure/TowerContext.lean": "6ef8b87b2d81cb177505a4bbc88befa078b20578cedd49e836d850753c203ee3",
+ "PLAN.md": "e94a60324486913b4a04650edd617c4ff8bef469dc7fd311adea8407c6662ea0",
+ "SPEC/real-closure-execution.md": "bc0948ad7de6969baaed89c0b3052cb0d21d64d634f8a336f9a7dde446b057f5",
+ "adapters/HexRCF/RealCoefficients.lean": "0056d497cd09f465ce44102b6a80b42fa3be35f46e60208179a5473447e7e1b5",
+ "adapters/HexRCF/RealCoefficients/CellOperations.lean": "3561cc80c7c866141f05a387ce1100ee0cadd98281a03395551cebcde5bd6e2a",
+ "adapters/HexRCF/RealCoefficients/CellQuote.lean": "c572911d7be36001e0f1885c3460f3eb19425d90e78345b1c46878ddf3e6c6ea",
+ "adapters/HexRCF/RealCoefficients/CellRead.lean": "65274f89c940bad74eab8c9075f9256c6ed3d8b90d3294aec4e85883e425fb10",
+ "adapters/HexRCF/RealCoefficients/RationalQuote.lean": "675e2ba065b696f257adefc07fe30ddb0190f321d86005444579ea5a0744bdf5",
+ "adapters/HexRCF/RealCoefficients/RealModel.lean": "712b4fd3edff8eaa6f93e501da5debf04529d1ea8c11a18389820f866d179c43",
+ "adapters/HexRCF/RealCoefficients/Reify.lean": "ea8474b9e253f93a1583064ca99ec0bf376dadf5457fd60b57e9e18460cf449c",
+ "adapters/HexRCF/RealCoefficients/RootContext.lean": "792176eab63e5e62b759a10893569946ef6d019566b8116c85237b3e16fcdb86",
+ "adapters/HexRCF/RealCoefficients/RootHeader.lean": "681f2a964bc30f65a92a0fb1a58b4d4013eb396df37ca813962702065fb46261",
+ "adapters/HexRCF/RealCoefficients/RootPrepare.lean": "de72a8e3ac4adb13365801476467bf691e630d0952b018ccecd88846c3bdb025",
+ "adapters/HexRCF/RealCoefficients/RootQuote.lean": "89f3ad4b0c4a8ae058560201900877035d896427176b944b34acde9f9b23d7e8",
+ "adapters/HexRCF/RealCoefficients/RowPacketQuote.lean": "edbb3d23f72422f5a1dea163c283848ec285418b7bdb9eedba553b83066121af",
+ "adapters/HexRCF/RealCoefficients/RowQuote.lean": "3b7e7d2ebcbd53a6ea893bc8f4c884d767430f8b98a3f1ca770fe7c7b122f3c9",
+ "adapters/HexRCF/RealCoefficients/ScalarPacket.lean": "9ae62bea85dab43ec01329defa9f788af4843e74b24f40f6c6f1b28adaadc6bf",
+ "adapters/HexRCF/RealCoefficients/ScalarQuote.lean": "fee2617a998f29d05c8959b484060ac1d719359c6d851a8ff6699fa9cb370acc",
+ "adapters/HexRCF/RealCoefficients/SignatureQuote.lean": "c3bb71b52c2a544b902bc256b3a162e1c3c4e7f94ae6b21808914e67109710eb",
+ "adapters/HexRCF/RealCoefficients/SourceIdentity.lean": "d98ae0c746003be89edfc969e464383e6a6bda253e0dae8c290605e8b98ce3c3",
+ "adapters/HexRCF/RealCoefficients/SourceIdentityQuote.lean": "37c54a56f48b265d0ddca38ecae2c572871e8b7f1600b54f330ff3da60252fa7",
+ "adapters/HexRealClosureTheory/Algebraic.lean": "2495153acbe4e468521913a2f5d6569831cd05f5ee48d5ddb26fc31a43438c7e",
+ "adapters/HexRealClosureTheory/SignFacts.lean": "c2b8cf96de0cccc2c0c3cbe83f0afd7c40ab9736b75f377ec5bfedc0907f34e3",
+ "adapters/HexRealClosureTheory/TowerModel.lean": "70d0e57e8ecc78eb9b7675d875157462d27cf9494d49d72bba019eaa6dd1d788",
+ "conformance-fixtures/HexRCF/source-identity.json": "93540b60174e0d8bd85ca80d99c6cbdc427815f341a12a6e38f4b38613073f53",
+ "conformance/HexRCF/CellFinishCases.lean": "9b6db1562ad88a1ad0ceffa84b9a3e3dfdf329c3a59a6d3f26a0ec207e1f6260",
+ "conformance/HexRCF/CellFinishProofs.lean": "fd232e3b4a64f444d834ae244a110ad0910aa35c4773a90b6a3b26a48693e22c",
+ "conformance/HexRCF/CellQuoteStageProofs.lean": "a14f3f20e1add07f569ab222994995c409552aededef738972a70c864b94b919",
+ "conformance/HexRCF/CellQuoteStages.lean": "e4593f2c8169af00398ff608dd53cbbfbe6b8408ddbdd07de6f64f59acf8a25f",
+ "conformance/HexRCF/CellSourceProofs.lean": "cea22d1a532dc4415130ff1c9c20f43707ab9696c7df53c858bdfa41ad76f018",
+ "conformance/HexRCF/CellSourceQuote.lean": "bea057fe5c9470d701e02974fbd6a83e945bbaba1225ca294830f54ef762f504",
+ "conformance/HexRCF/DependentQuote.lean": "0df154544a17857334480e7c577ecbcf1afe04165fa2da1a5a6407bf41e85518",
+ "conformance/HexRCF/DependentQuoteData.lean": "ed254475e78fa6edb27d4e55222a598b07b7357154ea0495d6195f2f1d39ee46",
+ "conformance/HexRCF/DependentQuoteProofs.lean": "5875aa9748f50340668e58aea97b196d3353313352fb8c819ae5ee3542556980",
+ "conformance/HexRCF/DependentScalarProofs.lean": "9fe3f3871f929e28355985c574c0b8c742be062ae5f19033d7d8bf9e67cd88d8",
+ "conformance/HexRCF/DependentScalarQuote.lean": "e20dd7346c337dd17126c394965f268e568706730f475844d7c0907051224933",
+ "conformance/HexRCF/FrozenSignatureConformance.lean": "8e7d432aecb87fb89bb188e4c579e86fb5c3348c5430f1e2b1a00f1f820a940e",
+ "conformance/HexRCF/FrozenSignatureProofs.lean": "55de6da9b0b3dc2d1e384d6c838d13294287c44060afb8e70aa2a0c8e01a81cb",
+ "conformance/HexRCF/ProofFunctionPublic.lean": "f928c9f0dd0a704d34a516b6282cfa6a7a4eb6c112d49689c450647a44370a6b",
+ "conformance/HexRCF/PublicSignPacket.lean": "c32d73c5634376907b965e1ea6cf69352fdda1f1945ce2f34a378cc217778102",
+ "conformance/HexRCF/PublicSignPacketControls.lean": "b4f98bd8ef190a361dd7752d4d5ece0cfbd862ff4face5a06dfabecf87096028",
+ "conformance/HexRCF/PublicSignPacketProofs.lean": "442f6d3e04a36db25611f0396103a1eee5ee411c40e8f3cc93df1acf7898bbbb",
+ "conformance/HexRCF/PublicSignPacketValues.lean": "72705dba30f04f986188903fb49b983c6f0a664895116fca8bd8b6b46b6517e5",
+ "conformance/HexRCF/QuotientQuote.lean": "97b2cbc9abdb46db33a9a91328f331edf8dea055cc244489158121cde8dc1903",
+ "conformance/HexRCF/QuotientQuoteData.lean": "ec26777d655a7898d7f7922fcea8f426a3f8c77a53000b69b6fe1755a0348870",
+ "conformance/HexRCF/QuotientQuoteProofs.lean": "f1d95accf6caed1c7354408b3a1a0b29493a526e82036390e39102ebe80c6752",
+ "conformance/HexRCF/QuotientQuotePublic.lean": "a3bd9a082df14a0ac93ba3798e13c6ebbf9dff98d7613264713aa281a5a18bea",
+ "conformance/HexRCF/RationalQuoteConformance.lean": "f03844d4a44a5c61b702ed0b1697619da9b20f4ac42122b9d1a6d3fa4a2de9ac",
+ "conformance/HexRCF/RecursiveScalarQuote.lean": "83ba1f3ed63afdbb148f171736a0aacebc7eef4ae3bf32dca29811515c3f051b",
+ "conformance/HexRCF/ReplayBoundary.lean": "bbc09553d62198a18e897981d5f443c81f09dba8d371d2cdaeaa846d22cbc2f8",
+ "conformance/HexRCF/ReplayBoundaryProofs.lean": "d755462a7344dc9f5304fba255bcefb42188c1de5a51d92d8567a27f22482dc2",
+ "conformance/HexRCF/ReplayHelperProofs.lean": "6dd68829399ec8908a877a3f7705cc9321e49b9581d0d577d114950242e43a57",
+ "conformance/HexRCF/ReplayHelpers.lean": "4501fa39e52a8a2bb52fdd7b183c16801090dd026304105afb4342a1c441c2a3",
+ "conformance/HexRCF/RootContextConformance.lean": "0c52084609ec3de8afd51330a7d2cc97f7bae1d8b2bbc421138783940fc7db37",
+ "conformance/HexRCF/RootContextProofs.lean": "b4c2e3ce686ce8bc60bfdafe2be2f566c6de46758f4827d307f3d5592b59d2e9",
+ "conformance/HexRCF/RootHeaderBudget.lean": "db30b6b7781fabd238ea2c934477e5ae281cc6cd905f11848ce46eb66ef45fe0",
+ "conformance/HexRCF/RootHeaderControls.lean": "aca063af3bfe475166aef92193f162c25a0e53eea094087cf334406a3d513157",
+ "conformance/HexRCF/RootHeaderPacket.lean": "dcd8e63c1d656fc800690b35554a0f835a1ee0bb96312215f8c12348d8a0e79a",
+ "conformance/HexRCF/RootHeaderProofs.lean": "e6630f0464fd0096b9af74b4640d2abc514a62c0b0fc706b4a2e74c9602eeb8c",
+ "conformance/HexRCF/RootHeaderValues.lean": "de9a8fc7c2e9371cbd3324eb700180411e49865dbc6535a74d2c882f74e38e13",
+ "conformance/HexRCF/RootPrepareControls.lean": "b36af8efd1e12227188b6fb7bde258e80d5c1c874338a324cb53c5ccc6c1330f",
+ "conformance/HexRCF/RootPreparePacket.lean": "86185bcc5fdddb1f700d869a115a91034954714f69a83171fd0e96f601e76fe3",
+ "conformance/HexRCF/RootPrepareProofs.lean": "4a5bc6655576a6592fcd5cd801bcfebd425243b1bb6cb39b0bb46d500a3938be",
+ "conformance/HexRCF/RootPreparePublic.lean": "a9e09cbe8d1287b97dde71ad1c6dbe149cfbacb6f81f41a8493ee802416d0805",
+ "conformance/HexRCF/RootQuoteCases.lean": "602d15ef501e969183bffbda7fb3c0f00a174ba5c2dbc35370ee7fce896944dd",
+ "conformance/HexRCF/RootQuoteConformance.lean": "f6a652a243ba62cffc671d1365c6ab47b6618179acb172019ec5609ea0324d3c",
+ "conformance/HexRCF/RootQuoteData.lean": "faa259d129d5c65a063c7143e45d5d9d19573ed49862aa5ecb3978ff389cb514",
+ "conformance/HexRCF/RootQuoteSource.lean": "aca1654efc1a452aca8ef573bb8ea3a435a4e1e18a4dca854d9bcc8e350d511d",
+ "conformance/HexRCF/RootTableQuote/Conformance.lean": "ec5bd136df58cc24a40ca989e3d33e55923082aed7591b234f55c70c013c74ad",
+ "conformance/HexRCF/RowPacketControls.lean": "ab69c57b66fe8129be5f07e5e5f42b7b35d60a23b305ec224d2d7dca28ac7c82",
+ "conformance/HexRCF/RowQuoteCases.lean": "8d2ebddc05d5f0d08b62b50d3498b34b47ab0b3accc4d0a572e621fd83d606d4",
+ "conformance/HexRCF/RowQuoteData.lean": "ce60cb18f548f55e929d4803c7ed824ad0a7621fd4abda09a191f76393fabf0c",
+ "conformance/HexRCF/RowQuoteDepth.lean": "6ada3c44bea055425d223dc57eafb4f0c88349713d815ded4beec9720f7802ad",
+ "conformance/HexRCF/RowQuoteProofs.lean": "317d4f981f32bb28666fcabc6248f4a57fe67c95a7fe431f7993aeacfa377ed3",
+ "conformance/HexRCF/SelectedRoot/KernelCheck.lean": "12e7e2e3f4667a76dc89c4b36796bff177f3c187b81adc5eb5e049ff1ce6669d",
+ "conformance/HexRCF/SharedQuoteCallbacks.lean": "6132cc3722af3cf251d11c857a572f09128d3614d931724965cbcf488dc4db6d",
+ "conformance/HexRCF/SignPacketProofs.lean": "3980cad31637f5798b2c351e1efc2a29b946de1d90e06fb11acd85e2a5c46321",
+ "conformance/HexRCF/SignPacketQuote.lean": "fcda11e6c75353d4519c4eb0e9c302b84d7e41030316c99fcacb885dabf97545",
+ "conformance/HexRCF/SignatureQuoteConformance.lean": "26f16c37cb9e0d5c09a082787f4a66673437adbf998023fd5e9625db16ff5d3f",
+ "conformance/HexRCF/SourceIdentityControls.lean": "c655486606139658d73e5b4d394228c3632596fec366e3b410ea9deb5b085553",
+ "conformance/HexRCF/SourceIdentityEmit.lean": "aa12f1517efc675698c0795c5a463a77d7a3466bcc146d4981d82e913059ed99",
+ "conformance/HexRCF/SourceIdentityLiterals.lean": "61ee2ce703d4965b00e1e20cc62288a0bde4e839d68ca09e1b66281f4a3e48d0",
+ "conformance/HexRCF/SourceIdentityPacket.lean": "614b3132274de5bebebeecb09cf479ac68723f1518e1f52912543a812985a4a9",
+ "conformance/HexRCF/SourceIdentityProofs.lean": "c449238d5f915dbe1f337688bc4f7357f3a93e31ad79eaa9e8e159c280749173",
+ "conformance/HexRCF/SourceSelectionCases.lean": "368ded3f07bb4be269f26a2fd2b7044904ea16d1dd1cba41d8bccb373d004005",
+ "conformance/HexRCF/TreeQuote.lean": "049065aa64bb13432b1d7183759979d28eebba98d18b6f54ab849e5953ce92c1",
+ "conformance/HexRCF/TreeQuoteData.lean": "c595c2278d2997483b755aa585da874c27eed40e4e1a8106d7f553e4f574776b",
+ "conformance/HexRCF/TreeQuoteProofs.lean": "f9a40248237480f8972df62dff548ef0599205b76014e070866e72586f161933",
+ "conformance/HexRCF/TreeQuotePublic.lean": "adc6dc6871208f31970cf5ae0c2472fd325a72e1df8114a6e8178ef8b2c71570",
+ "experiments/KernelReplay/AxiomClosure.lean": "f49377265f05f52b633b10a59255a03731e08d022cc54763de9851c5b5325034",
+ "lake-manifest.json": "fd2dc4df30cd44e4d30568489d616e7bcc8a78747500139134be56f35ae746a4",
+ "lakefile.lean": "7a42c0f15153580ac8cf2c48ce6ddf880b35b63275406b04eee4a689f6ef1479",
+ "lean-toolchain": "bc84812c94489d1e3e191baa1dc10d5eb684382d7fe9d2a5ab085e72c1c67e47",
+ "libraries.yml": "14e3dd1c01bb0c369b2216e2733378d61172040fd9f69dd0354d4e1267d9c5c1",
+ "scripts/rcf/source_identity_literals.py": "ea5d7df949871c4975367a759b9632d033f3a240523c2c917c9141220ffdfd78"
+ },
+ "artifacts": [
+ {
+ "path": "validation/cell-finish-expanded-1.log.gz",
+ "bytes": 29076,
+ "sha256": "77396f9627d5f79582814fe4dd6ac7efbd42438960ed4f704f57915a5795b32b",
+ "uncompressed_sha256": "7a13987c499a1addac9297ac298b67d026968b33e78a71fe6c409d65c9858428"
+ },
+ {
+ "path": "validation/cell-finish-cases-final.log.gz",
+ "bytes": 7603,
+ "sha256": "22e41b25ff4494d029cd6fae8293c18c601f06eb97e1b6522fefcd3743ddb748",
+ "uncompressed_sha256": "33e1ed8aa7e818807638022de86a017906d3e700cd16932f9eb213fa86418051"
+ },
+ {
+ "path": "validation/cell-finish-render-final.log.gz",
+ "bytes": 16502,
+ "sha256": "9fed8a912ac11ce4c3114c1bf350c11d2271e21d20215362aeef87b1e9e58fd6",
+ "uncompressed_sha256": "6029b270b8b05f12129fc47912765072ca0e77973422c5d50f21de3580ca6198"
+ },
+ {
+ "path": "validation/cell-finish-browser-final.log.gz",
+ "bytes": 245,
+ "sha256": "d3ee819d91fcb736065710642d9e5f03f76ef1b36619b82077d03285c0f43143",
+ "uncompressed_sha256": "7b2ac52b992028b23e18a1aff486c442b96c0d3ee9c5fce16e6e54eb4aa221ac"
+ },
+ {
+ "path": "validation/metadata.json",
+ "bytes": 1190,
+ "sha256": "0eaaefb0466ab931e1eb54228001c4365d8690e74c6315b54fe4abe59f7ff5c3"
+ },
+ {
+ "path": "validation/cell-finish-final-metadata-copyright.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "validation/cell-finish-final-metadata-lines.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "validation/cell-finish-final-metadata-dag.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "validation/cell-finish-final-metadata-admissions.log.gz",
+ "bytes": 100,
+ "sha256": "a03bc6497f7874bd347cf6ba4b9b9ab91996c92cd706008e36105c28964247c3",
+ "uncompressed_sha256": "11c18f0e4a60afd9aad75ab5d0794a9ff28799aac4c708a482d683f962e9e14f"
+ },
+ {
+ "path": "validation/cell-finish-final-metadata-diff.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "validation/cell-finish-final-metadata-selected-admissions.log.gz",
+ "bytes": 133,
+ "sha256": "1405cc2b2156018bf49c50518e8faccc0240f2e5b43bf48d5bceea648365b74a",
+ "uncompressed_sha256": "7f3d330bbdf59b88d2146c4317bbcc6c71b980747b55379b17857d002820a541"
+ },
+ {
+ "path": "validation/cell-finish-final-metadata-relative.log.gz",
+ "bytes": 105,
+ "sha256": "c43d1ba9fa5a6ea3d05919ed8b5f63ae6d92bdbc66b09a9c0e2db03229da84e9",
+ "uncompressed_sha256": "5b6d65aeb6cb570bc5e9b14d70d6222627b455a17e51016ce5d0bf8c9d5cd4c3"
+ },
+ {
+ "path": "validation/collect-cell-finish.py.gz",
+ "bytes": 1767,
+ "sha256": "1eb3047b574b5fe6a5b09815f225b1e7bdc2b81552f050083ffbb1e7e6559390",
+ "uncompressed_sha256": "b476d506428f6c419f246fe277d9635b9833bf661fd570f08e6668001d8d997a"
+ },
+ {
+ "path": "validation/cell-finish-final-metadata.py.gz",
+ "bytes": 1332,
+ "sha256": "6cfaadfff55c3e22fb5d22acb6548d7c54564df28243413b2764b70cd2a6b20e",
+ "uncompressed_sha256": "fcfbbf19824325dbe9fcee1612c1f4ed9ea3f1ac267dc4352ada0147dabdc50b"
+ },
+ {
+ "path": "validation/cell-finish-expanded-targets.txt.gz",
+ "bytes": 349,
+ "sha256": "098602eb23acd7325e11e1100ec1d5f7395740499420af6b3c75251983dae8f9",
+ "uncompressed_sha256": "53b52a7233e95342234ce8a0da951330e151dd6198f2ccfdfd813de880873c09"
+ },
+ {
+ "path": "validation/cell-finish-memory-policy.txt.gz",
+ "bytes": 345,
+ "sha256": "a6c02a921169a059b8e7b36550c37baf1bc20549e681a168b6c0b272616e8875",
+ "uncompressed_sha256": "f725eb2e57ced1d6ec88c832da10d0f69f25c296c65a6daf103ec2bc16c4e5e9"
+ },
+ {
+ "path": "validation/cell-finish-expanded-invocation.json.gz",
+ "bytes": 460,
+ "sha256": "bbd42aac82a3f91facf6b5646a5a57687a0ecbe50895333107fd2dfb73f8cae9",
+ "uncompressed_sha256": "f3005dbbe5473884c8a558d530a6ac56b496e6097be80ccdc823a26a18a899b2"
+ },
+ {
+ "path": "validation/run-bounded.sh",
+ "bytes": 302,
+ "sha256": "63bc5f97337e6b039bb3a9b1ba2a500be96fd1c2a2f73b43dae284aa9b18dda8"
+ },
+ {
+ "path": "captures/render.lean.txt",
+ "bytes": 215,
+ "sha256": "2b08ffde769c3469be036a2aafbfc65b1a5d5e8d560ccc2a98d907a0c5c54f81"
+ },
+ {
+ "path": "captures/browser.mjs",
+ "bytes": 5669,
+ "sha256": "0129957c96323f5ff556ba724f9b10de4bb1bf51f21ea0f27e7a673e04eb5545"
+ },
+ {
+ "path": "captures/inspection.json",
+ "bytes": 3986,
+ "sha256": "24c3551cb2a4b6cf0cd41df7ce5d578ec3f02e9655c5b63e1502c229675d07fc"
+ },
+ {
+ "path": "captures/section-overflow.json",
+ "bytes": 33290,
+ "sha256": "460d7d18f6abf49cea53de4ca49cee19fe70e1a715c67b010f3e16f49dc27c49"
+ },
+ {
+ "path": "captures/cell-finish-final-desktop-api.png",
+ "bytes": 251258,
+ "sha256": "53f1da632393704ab511703bdeedc4257e0ba6d9dae7c05cf5c7c84afc2bb7d7"
+ },
+ {
+ "path": "captures/cell-finish-final-desktop-apicode.png",
+ "bytes": 274683,
+ "sha256": "4afdb89cd688ea9799c4786c262383c041b87abf16361c4f4c22dd2186639f56"
+ },
+ {
+ "path": "captures/cell-finish-final-desktop-source.png",
+ "bytes": 285079,
+ "sha256": "49a90a26418a4a20300dcfeb6b6c17acadbb03cd5baf3629e9c9990a2946045f"
+ },
+ {
+ "path": "captures/cell-finish-final-narrow-api.png",
+ "bytes": 175284,
+ "sha256": "6f1b8513ed1ea0db2a3eeaf5152380ab8d07b049c7eb8fbe72d03199b04c8f94"
+ },
+ {
+ "path": "captures/cell-finish-final-narrow-apicode.png",
+ "bytes": 173977,
+ "sha256": "ef021ded10d4b569cb33b4e8bce5c01f3eeee50fcda2293e7e9774c255db529d"
+ },
+ {
+ "path": "captures/cell-finish-final-narrow-source.png",
+ "bytes": 172697,
+ "sha256": "4ba65599c8918f58db6df0c196eb5bd5cf8d79671927323da376133ae780de2a"
+ },
+ {
+ "path": "captures/visual-review.json",
+ "bytes": 1303,
+ "sha256": "ff5c821490f99c49bd8880ef1d3e43c734571ce5f947b83e9a0a908d91b4b290"
+ },
+ {
+ "path": "diagnostics/cell-finish-browser-1-inputs/AlgebraicCells.lean.gz",
+ "bytes": 13012,
+ "sha256": "1a41335870127752572a7b444b26af26c0073b04d8378eaa4bcbc6ee1b9c3dd2",
+ "uncompressed_sha256": "26803404f703d305f97d62cee1514ec40ae6435605fa761f6c34d35dd0f13602"
+ },
+ {
+ "path": "diagnostics/cell-finish-browser-1-inputs/cell-finish-final-desktop-api.png.gz",
+ "bytes": 236567,
+ "sha256": "029c3538b5fbc17dad9a92c09ffcc79b8e3f91002e8612e4e6a824f269a48165",
+ "uncompressed_sha256": "3b4827261b1851c4ac98b1991273afd142221afdc15415654cb6019c69f76462"
+ },
+ {
+ "path": "diagnostics/cell-finish-browser-1-inputs/cell-finish-final-desktop-apicode.png.gz",
+ "bytes": 260673,
+ "sha256": "696bb6b81350059859a15df545f8e3895fb3472e43c8022b7b44a446a218b763",
+ "uncompressed_sha256": "3b128175077140a1978dbd4c41580e4812a7fc3c2ca56c4bc28c4a011a386c24"
+ },
+ {
+ "path": "diagnostics/cell-finish-browser-1-inputs/cell-finish-final-desktop-source.png.gz",
+ "bytes": 271777,
+ "sha256": "cfd3bc2d8f9972b119627a19650ab7ca0663c49ab2dc3ede63d5c61fe5d9ae13",
+ "uncompressed_sha256": "49a90a26418a4a20300dcfeb6b6c17acadbb03cd5baf3629e9c9990a2946045f"
+ },
+ {
+ "path": "diagnostics/cell-finish-browser-1-inputs/cell-finish-final-inspection.json.gz",
+ "bytes": 970,
+ "sha256": "082d3f69b49fbead6295a92a831eeda3772d79c6fc94ce24ea74a3644a5e7562",
+ "uncompressed_sha256": "e3f89a6ee5a04fdfa7fe3eeda41c34bb2004b08cba83fe05504e788830ca47d3"
+ },
+ {
+ "path": "diagnostics/cell-finish-browser-1-inputs/cell-finish-final-narrow-api.png.gz",
+ "bytes": 168359,
+ "sha256": "3f7a460d86c310b42df7ccc1100d6f0ee3b4c766d40ee5863847b5ba7620aec8",
+ "uncompressed_sha256": "3d2c4482e3e1743e860ce3b732e9a4ed328d553bdb133583519b63f5b80b28ef"
+ },
+ {
+ "path": "diagnostics/cell-finish-browser-1-inputs/cell-finish-final-narrow-apicode.png.gz",
+ "bytes": 168870,
+ "sha256": "6d4aa78db720e858d3a5fb5cf4d524734ed53c19435e6a14603ccbc1a04f0e19",
+ "uncompressed_sha256": "d259b2de8e1e06a066df50050a1540d2da07126398a55c8ad52cbc68627a0996"
+ },
+ {
+ "path": "diagnostics/cell-finish-browser-1-inputs/cell-finish-final-narrow-source.png.gz",
+ "bytes": 165808,
+ "sha256": "4c630ff98d2b84a4457223d7844316196181c878830298424fb65cea6d214b15",
+ "uncompressed_sha256": "4ba65599c8918f58db6df0c196eb5bd5cf8d79671927323da376133ae780de2a"
+ },
+ {
+ "path": "diagnostics/cell-finish-browser-1-inputs/cell-finish-final-section-overflow.json.gz",
+ "bytes": 4193,
+ "sha256": "997dd7062659e613ed9d8fc4c04d074c11c56e0f147bd44a8da07f2e0c15619a",
+ "uncompressed_sha256": "460d7d18f6abf49cea53de4ca49cee19fe70e1a715c67b010f3e16f49dc27c49"
+ },
+ {
+ "path": "diagnostics/cell-finish-browser-1.log.gz",
+ "bytes": 415,
+ "sha256": "da82e9665edc3825fe70f5be018d115c46e1fb2c6596aef693d85db2b8f2fc7e",
+ "uncompressed_sha256": "eec95cd2bce6ef4377bebda42f42765781393c7ad603294dac73ad488c654ae8"
+ },
+ {
+ "path": "diagnostics/cell-finish-browser-2-inputs/AlgebraicCells.lean.gz",
+ "bytes": 13016,
+ "sha256": "f51b0943ecfc9fa5491ddff01e1eb0162747e1d21b6a487e938b4bab6f8a5be1",
+ "uncompressed_sha256": "0ef98c7541ab747e0ec8b75538292f6d8ee903556a36d920c4dc159ae04515cd"
+ },
+ {
+ "path": "diagnostics/cell-finish-browser-2-inputs/cell-finish-final-desktop-api.png.gz",
+ "bytes": 232812,
+ "sha256": "be43a160bf18b1573e0a1775f589200308eddf116a159e109faa972234cfd642",
+ "uncompressed_sha256": "22d8be79b50dd05dea895efc88aa30df75ca09123d0b2968c966163848cdc72a"
+ },
+ {
+ "path": "diagnostics/cell-finish-browser-2-inputs/cell-finish-final-desktop-apicode.png.gz",
+ "bytes": 261828,
+ "sha256": "43ed204a1c01d99ac90aa6224d847a5da458c7363b5c0d5d472681df90097bbd",
+ "uncompressed_sha256": "17e537b40e80d9a5c8cef9864f3ec9a4cfd0a0cc5194a7120dd84a947ab2b2fd"
+ },
+ {
+ "path": "diagnostics/cell-finish-browser-2-inputs/cell-finish-final-desktop-source.png.gz",
+ "bytes": 271777,
+ "sha256": "cfd3bc2d8f9972b119627a19650ab7ca0663c49ab2dc3ede63d5c61fe5d9ae13",
+ "uncompressed_sha256": "49a90a26418a4a20300dcfeb6b6c17acadbb03cd5baf3629e9c9990a2946045f"
+ },
+ {
+ "path": "diagnostics/cell-finish-browser-2-inputs/cell-finish-final-inspection.json.gz",
+ "bytes": 969,
+ "sha256": "3ca10aae310d36bbc582de289f87f5468081659ae99cb702fa0976fc6bb88237",
+ "uncompressed_sha256": "afc6abd392dfb3487201565f58318eff433456bde98fa75eb926942375195945"
+ },
+ {
+ "path": "diagnostics/cell-finish-browser-2-inputs/cell-finish-final-narrow-api.png.gz",
+ "bytes": 168520,
+ "sha256": "f98081272e568b3965e3998d4cad975f0f594b754600857a67662574d1ebcc5b",
+ "uncompressed_sha256": "1f82038bd73288ba2ce63e8f2687a4ab20997fdcbb39f6e0d673b45f6d795c13"
+ },
+ {
+ "path": "diagnostics/cell-finish-browser-2-inputs/cell-finish-final-narrow-apicode.png.gz",
+ "bytes": 168006,
+ "sha256": "e27237fa7cdcbf46054ce5624cd714493d24f57310d810559f0d664484e7cddc",
+ "uncompressed_sha256": "1ca0652d9df127c94f71f5a6df820b4fd4f535c109cd635f1d0ceb3af6351f89"
+ },
+ {
+ "path": "diagnostics/cell-finish-browser-2-inputs/cell-finish-final-narrow-source.png.gz",
+ "bytes": 165802,
+ "sha256": "1c40b9dba7dee0c3c34df9cd3d6aba588919991611b06d76e7ad26611ce08993",
+ "uncompressed_sha256": "87127e0331135e415db206c2bc00a2d7f56007af5e5d5913ec1ba320e7cb0e30"
+ },
+ {
+ "path": "diagnostics/cell-finish-browser-2-inputs/cell-finish-final-section-overflow.json.gz",
+ "bytes": 4193,
+ "sha256": "997dd7062659e613ed9d8fc4c04d074c11c56e0f147bd44a8da07f2e0c15619a",
+ "uncompressed_sha256": "460d7d18f6abf49cea53de4ca49cee19fe70e1a715c67b010f3e16f49dc27c49"
+ },
+ {
+ "path": "diagnostics/cell-finish-browser-2.log.gz",
+ "bytes": 414,
+ "sha256": "421c6d2640213dbf2469da742257b994963fa671e024ea2460710328582ef3dd",
+ "uncompressed_sha256": "13cbd1e2011908dc1e2aca43c02fc9d49d42a1a65caf3aa25e776bd15da47526"
+ },
+ {
+ "path": "diagnostics/cell-finish-browser-final.log.gz",
+ "bytes": 245,
+ "sha256": "d3ee819d91fcb736065710642d9e5f03f76ef1b36619b82077d03285c0f43143",
+ "uncompressed_sha256": "7b2ac52b992028b23e18a1aff486c442b96c0d3ee9c5fce16e6e54eb4aa221ac"
+ },
+ {
+ "path": "diagnostics/cell-finish-cases-1-inputs/adapters/HexRCF/RealCoefficients/CellQuote.lean.gz",
+ "bytes": 6385,
+ "sha256": "31ccabd832691be940a4de1ed1dd30d6ffdf01a1779689561053611ee93cd23e",
+ "uncompressed_sha256": "c572911d7be36001e0f1885c3460f3eb19425d90e78345b1c46878ddf3e6c6ea"
+ },
+ {
+ "path": "diagnostics/cell-finish-cases-1-inputs/conformance/HexRCF/CellFinishCases.lean.gz",
+ "bytes": 2463,
+ "sha256": "50ef8fee3c3394bda3ddcd61c6d321383729487b070d3d9e69fe093cf85833d8",
+ "uncompressed_sha256": "e2a93ef06b550cc71575b146b9425992d8b7fc83d63d5b6b9f36ae0874fec46d"
+ },
+ {
+ "path": "diagnostics/cell-finish-cases-1-inputs/conformance/HexRCF/CellQuoteStages.lean.gz",
+ "bytes": 3700,
+ "sha256": "c5fd1f462583386208f0ec97e8b6aa078648cdaaa009f720957f8a1295d1755d",
+ "uncompressed_sha256": "e4593f2c8169af00398ff608dd53cbbfbe6b8408ddbdd07de6f64f59acf8a25f"
+ },
+ {
+ "path": "diagnostics/cell-finish-cases-1.log.gz",
+ "bytes": 7855,
+ "sha256": "8b9c4b9cb1760b5cb4086f921ddda84c607bd6627c294923c8c0ee30db320f21",
+ "uncompressed_sha256": "264dfd5ace5e6e580350fdae9ac9a546078ab1cfda215268f85cb549fdb40140"
+ },
+ {
+ "path": "diagnostics/cell-finish-cases-2.log.gz",
+ "bytes": 7557,
+ "sha256": "1ad33f6857604a3f07605203ab260e2dc5d599ff9c57524e09591578a999c064",
+ "uncompressed_sha256": "b202bf4516834f76884835cd96a9a7eb6d44401f186827f3a55a55fabda661ad"
+ },
+ {
+ "path": "diagnostics/cell-finish-cases-final.log.gz",
+ "bytes": 7603,
+ "sha256": "22e41b25ff4494d029cd6fae8293c18c601f06eb97e1b6522fefcd3743ddb748",
+ "uncompressed_sha256": "33e1ed8aa7e818807638022de86a017906d3e700cd16932f9eb213fa86418051"
+ },
+ {
+ "path": "diagnostics/cell-finish-cases-guard-1-inputs/conformance/HexRCF/CellFinishCases.lean.gz",
+ "bytes": 2720,
+ "sha256": "bb60afd0fae1589d5f810783c5a8b946cb5a296452bd8d63f008aa847df72cb3",
+ "uncompressed_sha256": "97870ea78800e48fc7056d7d78c564d27f6ee3cd92a6e282554de92ed169a35d"
+ },
+ {
+ "path": "diagnostics/cell-finish-cases-guard-1.log.gz",
+ "bytes": 7992,
+ "sha256": "206e059568e47b6bc7f46f1ae7b5fb951674582341226dce8e1a84bbdfb9e773",
+ "uncompressed_sha256": "bb5a85d8cf64836728d7e8d1bbccea784261db9dd1366bed7ff127440f643536"
+ },
+ {
+ "path": "diagnostics/cell-finish-compat-audit-1-inputs/conformance/HexRCF/CellQuoteStageProofs.lean.gz",
+ "bytes": 1632,
+ "sha256": "84f9ae9fc491b1e9787b4d2d4be213c602e8ebd50314a7448cdc15045c6f4014",
+ "uncompressed_sha256": "e4b52419e3409001df535a9ed4bae1f66d977fb33d507ff6c79f787a9f1f7f11"
+ },
+ {
+ "path": "diagnostics/cell-finish-compat-audit-1.log.gz",
+ "bytes": 7765,
+ "sha256": "e64124e8e98cd1ae188b2de5013bcdfee736ba0810f26512bfe95adb7cc15385",
+ "uncompressed_sha256": "4c3cf7d5fd3ac645ad2b74ba37928a615c005a8575ff4e34ec07b34fce0c85b9"
+ },
+ {
+ "path": "diagnostics/cell-finish-core-1-inputs/adapters/HexRCF/RealCoefficients/CellQuote.lean.gz",
+ "bytes": 6385,
+ "sha256": "31ccabd832691be940a4de1ed1dd30d6ffdf01a1779689561053611ee93cd23e",
+ "uncompressed_sha256": "c572911d7be36001e0f1885c3460f3eb19425d90e78345b1c46878ddf3e6c6ea"
+ },
+ {
+ "path": "diagnostics/cell-finish-core-1.log.gz",
+ "bytes": 6351,
+ "sha256": "3e88eaa1dd14e24312f85e0f23859ad4a12b68b27577e97b56ddba36a031e693",
+ "uncompressed_sha256": "adddde3b50a9406e0c850dd8c0e4763e60e4a5bdea34fa600ac819b858b17b67"
+ },
+ {
+ "path": "diagnostics/cell-finish-expanded-1-inputs/HexManual/Chapters/HexRCF/AlgebraicCells.lean.gz",
+ "bytes": 13012,
+ "sha256": "1a41335870127752572a7b444b26af26c0073b04d8378eaa4bcbc6ee1b9c3dd2",
+ "uncompressed_sha256": "26803404f703d305f97d62cee1514ec40ae6435605fa761f6c34d35dd0f13602"
+ },
+ {
+ "path": "diagnostics/cell-finish-expanded-1-inputs/adapters/HexRCF/RealCoefficients/CellQuote.lean.gz",
+ "bytes": 6385,
+ "sha256": "31ccabd832691be940a4de1ed1dd30d6ffdf01a1779689561053611ee93cd23e",
+ "uncompressed_sha256": "c572911d7be36001e0f1885c3460f3eb19425d90e78345b1c46878ddf3e6c6ea"
+ },
+ {
+ "path": "diagnostics/cell-finish-expanded-1-inputs/conformance/HexRCF/CellFinishCases.lean.gz",
+ "bytes": 2746,
+ "sha256": "b83726c34ffb0d10ce388df5172fc53da4264bcc794fe6e0a864a38f78f3e7e3",
+ "uncompressed_sha256": "9b6db1562ad88a1ad0ceffa84b9a3e3dfdf329c3a59a6d3f26a0ec207e1f6260"
+ },
+ {
+ "path": "diagnostics/cell-finish-expanded-1-inputs/conformance/HexRCF/CellFinishProofs.lean.gz",
+ "bytes": 1541,
+ "sha256": "b2293a8f51ecbc7ce3a20f4900eed14a5dc105c33527b8f1b1aa780ac16927e1",
+ "uncompressed_sha256": "fd232e3b4a64f444d834ae244a110ad0910aa35c4773a90b6a3b26a48693e22c"
+ },
+ {
+ "path": "diagnostics/cell-finish-expanded-1-inputs/conformance/HexRCF/CellQuoteStageProofs.lean.gz",
+ "bytes": 1633,
+ "sha256": "37185af35f5f9f5751adca5172be61754302de0ccb14b3b71353846314e7d709",
+ "uncompressed_sha256": "a14f3f20e1add07f569ab222994995c409552aededef738972a70c864b94b919"
+ },
+ {
+ "path": "diagnostics/cell-finish-expanded-1-inputs/conformance/HexRCF/CellSourceProofs.lean.gz",
+ "bytes": 1728,
+ "sha256": "5742749fdc22a6d4285284d2bc63a65e4137813c9e8117492f6505680ea7ac42",
+ "uncompressed_sha256": "cea22d1a532dc4415130ff1c9c20f43707ab9696c7df53c858bdfa41ad76f018"
+ },
+ {
+ "path": "diagnostics/cell-finish-expanded-1-inputs/conformance/HexRCF/CellSourceQuote.lean.gz",
+ "bytes": 3254,
+ "sha256": "cbbd940bd00007aaae3a7252dc5794636e1f0c16bbea78105c7c246a76b0c322",
+ "uncompressed_sha256": "bea057fe5c9470d701e02974fbd6a83e945bbaba1225ca294830f54ef762f504"
+ },
+ {
+ "path": "diagnostics/cell-finish-expanded-1-inputs/lakefile.lean.gz",
+ "bytes": 22736,
+ "sha256": "7ff234188fc0f638447c5bfbaf99adaa16e09d0f6e8304806a39d535c7d1bb09",
+ "uncompressed_sha256": "7a42c0f15153580ac8cf2c48ce6ddf880b35b63275406b04eee4a689f6ef1479"
+ },
+ {
+ "path": "diagnostics/cell-finish-expanded-1-inputs.json.gz",
+ "bytes": 495,
+ "sha256": "1f597c964ea856d3cc06d1bcac59f2368c722758dc4d164a5e6ed50cfb704407",
+ "uncompressed_sha256": "7b0c77b48fd8872bff88610681a3f8f87ab0bc09a65c252dea11f174a4de0ca3"
+ },
+ {
+ "path": "diagnostics/cell-finish-expanded-1.log.gz",
+ "bytes": 29076,
+ "sha256": "77396f9627d5f79582814fe4dd6ac7efbd42438960ed4f704f57915a5795b32b",
+ "uncompressed_sha256": "7a13987c499a1addac9297ac298b67d026968b33e78a71fe6c409d65c9858428"
+ },
+ {
+ "path": "diagnostics/cell-finish-expanded-invocation.json.gz",
+ "bytes": 460,
+ "sha256": "bbd42aac82a3f91facf6b5646a5a57687a0ecbe50895333107fd2dfb73f8cae9",
+ "uncompressed_sha256": "f3005dbbe5473884c8a558d530a6ac56b496e6097be80ccdc823a26a18a899b2"
+ },
+ {
+ "path": "diagnostics/cell-finish-final-metadata-admissions.log.gz",
+ "bytes": 100,
+ "sha256": "a03bc6497f7874bd347cf6ba4b9b9ab91996c92cd706008e36105c28964247c3",
+ "uncompressed_sha256": "11c18f0e4a60afd9aad75ab5d0794a9ff28799aac4c708a482d683f962e9e14f"
+ },
+ {
+ "path": "diagnostics/cell-finish-final-metadata-copyright.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "diagnostics/cell-finish-final-metadata-dag.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "diagnostics/cell-finish-final-metadata-diff.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "diagnostics/cell-finish-final-metadata-lines.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "diagnostics/cell-finish-final-metadata-relative.log.gz",
+ "bytes": 105,
+ "sha256": "c43d1ba9fa5a6ea3d05919ed8b5f63ae6d92bdbc66b09a9c0e2db03229da84e9",
+ "uncompressed_sha256": "5b6d65aeb6cb570bc5e9b14d70d6222627b455a17e51016ce5d0bf8c9d5cd4c3"
+ },
+ {
+ "path": "diagnostics/cell-finish-final-metadata-selected-admissions.log.gz",
+ "bytes": 133,
+ "sha256": "1405cc2b2156018bf49c50518e8faccc0240f2e5b43bf48d5bceea648365b74a",
+ "uncompressed_sha256": "7f3d330bbdf59b88d2146c4317bbcc6c71b980747b55379b17857d002820a541"
+ },
+ {
+ "path": "diagnostics/cell-finish-final-metadata-summary.log.gz",
+ "bytes": 79,
+ "sha256": "3956b87a47b24f981cca11f7704b8421254b1df0ae1f7d3f1e180cbfcc9ad50e",
+ "uncompressed_sha256": "14b64de8d82592f8227746917408c7571dd8ef67acd7faf0c511b0baf07cc9ec"
+ },
+ {
+ "path": "diagnostics/cell-finish-final-metadata.json.gz",
+ "bytes": 292,
+ "sha256": "66c49506010d009baf11f1a4d9623c33b0ed55b5dde15136c855a653e48e71bd",
+ "uncompressed_sha256": "0eaaefb0466ab931e1eb54228001c4365d8690e74c6315b54fe4abe59f7ff5c3"
+ },
+ {
+ "path": "diagnostics/cell-finish-full-source-1-inputs/HexManual/Chapters/HexRCF/AlgebraicCells.lean.gz",
+ "bytes": 12991,
+ "sha256": "22211b406d8d3517cc4c014b37bc42d8e88571e5801252e2b885ff05bf720e8d",
+ "uncompressed_sha256": "9b4f9eb63430797ec30453a9b6133eb16f465b4ff023f8d508d8d7d7932bd61e"
+ },
+ {
+ "path": "diagnostics/cell-finish-full-source-1-inputs/adapters/HexRCF/RealCoefficients/CellQuote.lean.gz",
+ "bytes": 6385,
+ "sha256": "31ccabd832691be940a4de1ed1dd30d6ffdf01a1779689561053611ee93cd23e",
+ "uncompressed_sha256": "c572911d7be36001e0f1885c3460f3eb19425d90e78345b1c46878ddf3e6c6ea"
+ },
+ {
+ "path": "diagnostics/cell-finish-full-source-1-inputs/conformance/HexRCF/CellFinishCases.lean.gz",
+ "bytes": 2471,
+ "sha256": "bed9819456854afc236df8b34450cc24dd5ef3510361509d48564c80353e1c28",
+ "uncompressed_sha256": "0b4c1f7686674c3af63f072681f690c1f5fa9e2eddb2a0b4e7f245210b485970"
+ },
+ {
+ "path": "diagnostics/cell-finish-full-source-1-inputs/conformance/HexRCF/CellFinishProofs.lean.gz",
+ "bytes": 1541,
+ "sha256": "b2293a8f51ecbc7ce3a20f4900eed14a5dc105c33527b8f1b1aa780ac16927e1",
+ "uncompressed_sha256": "fd232e3b4a64f444d834ae244a110ad0910aa35c4773a90b6a3b26a48693e22c"
+ },
+ {
+ "path": "diagnostics/cell-finish-full-source-1-inputs/conformance/HexRCF/CellQuoteStageProofs.lean.gz",
+ "bytes": 1633,
+ "sha256": "37185af35f5f9f5751adca5172be61754302de0ccb14b3b71353846314e7d709",
+ "uncompressed_sha256": "a14f3f20e1add07f569ab222994995c409552aededef738972a70c864b94b919"
+ },
+ {
+ "path": "diagnostics/cell-finish-full-source-1-inputs/conformance/HexRCF/CellSourceQuote.lean.gz",
+ "bytes": 3254,
+ "sha256": "cbbd940bd00007aaae3a7252dc5794636e1f0c16bbea78105c7c246a76b0c322",
+ "uncompressed_sha256": "bea057fe5c9470d701e02974fbd6a83e945bbaba1225ca294830f54ef762f504"
+ },
+ {
+ "path": "diagnostics/cell-finish-full-source-1-inputs/lakefile.lean.gz",
+ "bytes": 22736,
+ "sha256": "7ff234188fc0f638447c5bfbaf99adaa16e09d0f6e8304806a39d535c7d1bb09",
+ "uncompressed_sha256": "7a42c0f15153580ac8cf2c48ce6ddf880b35b63275406b04eee4a689f6ef1479"
+ },
+ {
+ "path": "diagnostics/cell-finish-full-source-1-inputs.json.gz",
+ "bytes": 500,
+ "sha256": "2aae37be3655c90e7f34a4da03024ef1256feed02dd6c2041eb871600eec8d80",
+ "uncompressed_sha256": "283c7b26a721eca0c5190af5ab1992cf9737b7d4d0c6492430f319bab2a1caaa"
+ },
+ {
+ "path": "diagnostics/cell-finish-full-source-1.log.gz",
+ "bytes": 17281,
+ "sha256": "415bc85098ea422967eaa4c529aa68cd523ab63e047144b75fa51d55dce231ca",
+ "uncompressed_sha256": "46e63587a8b9b60f5cf40b9895fd4be5a348fa9f196910c4ae0b9e5587e1e58f"
+ },
+ {
+ "path": "diagnostics/cell-finish-full-source-invocation.json.gz",
+ "bytes": 187,
+ "sha256": "5ffa055b016fe397dc80944dc1b855eeb773e784beefb6921fcdbce7b549ef8d",
+ "uncompressed_sha256": "ddcc27786378f368b0884b0db5432ae4bdaf6afa9139f60e08d764be85bc325b"
+ },
+ {
+ "path": "diagnostics/cell-finish-render-2.log.gz",
+ "bytes": 16507,
+ "sha256": "ec5a099f553d2a06168df45abee26c0e0d3175b912172f3f914291eacd4d98ab",
+ "uncompressed_sha256": "a333dc0834a57d0219285a8cc4e892773d048a5b4689e7fa97946707606ce550"
+ },
+ {
+ "path": "diagnostics/cell-finish-render-final.log.gz",
+ "bytes": 16502,
+ "sha256": "9fed8a912ac11ce4c3114c1bf350c11d2271e21d20215362aeef87b1e9e58fd6",
+ "uncompressed_sha256": "6029b270b8b05f12129fc47912765072ca0e77973422c5d50f21de3580ca6198"
+ },
+ {
+ "path": "diagnostics/cell-finish-render-unmodified-1.log.gz",
+ "bytes": 16406,
+ "sha256": "dddcb29798085c0267e2c336131ad569badb5b0dcb3375182d1a0ae46ea651ca",
+ "uncompressed_sha256": "5041ab29aa3f866841f076fe4e7efbe7c3ff98ba57e44eb37eda394485ae5771"
+ },
+ {
+ "path": "diagnostics/cell-finish-visual-review.json.gz",
+ "bytes": 566,
+ "sha256": "30b3cf7e9bb7283d020c2feb507603b84279ad60b262c213be1edd5d06f17162",
+ "uncompressed_sha256": "889dbf28ddcbecb5e0e5a456637c93e657bd3ab70aa45d08a4453b41e2637cf3"
+ }
+ ],
+ "validation": {
+ "integration": "validation/cell-finish-expanded-1.log.gz",
+ "component": "validation/cell-finish-cases-final.log.gz",
+ "render": "validation/cell-finish-render-final.log.gz",
+ "browser": "validation/cell-finish-browser-final.log.gz"
+ },
+ "compiled_files": [
+ {
+ "path": ".lake/build/lib/lean/HexRCF/CellFinishCases.olean",
+ "bytes": 642352,
+ "sha256": "5e3b7a001afad245d85fc2adb40a479ccb0c1c9bd99a2d8f6082aaac285d32b3"
+ },
+ {
+ "path": ".lake/build/lib/lean/HexRCF/CellFinishProofs.olean",
+ "bytes": 3352,
+ "sha256": "c9ea76685dd2b0e1d15726a430402eec5dd30b0ee33edffffa2c6bfa74782b7a"
+ },
+ {
+ "path": ".lake/build/lib/lean/HexRCF/CellQuoteStages.olean",
+ "bytes": 4265144,
+ "sha256": "f36c44078bb2359c8757640132f844b1a45f3b07780cdd54bbe302576e84e6bc"
+ },
+ {
+ "path": ".lake/build/lib/lean/HexRCF/CellQuoteStageProofs.olean",
+ "bytes": 3352,
+ "sha256": "870bb8e74a7bf7af63a11674745ea695466c76be237698052a6f2844d98452a7"
+ },
+ {
+ "path": ".lake/build/lib/lean/HexRCF/CellSourceQuote.olean",
+ "bytes": 3485080,
+ "sha256": "0f5218bcf06442cd26b100065ca509b9cbf324ba40e5a4038db72a5a23c8a912"
+ },
+ {
+ "path": ".lake/build/lib/lean/HexRCF/CellSourceProofs.olean",
+ "bytes": 3352,
+ "sha256": "b7707d1986295d43c2a76fe6f4c4f7a6682ff3dcd8eb2c5b7b84a35c0237b947"
+ }
+ ],
+ "scope": "Continued source-finishing budgets, prepared-source authentication and whole-attempt rollback; original algebraic source and forty-seven affected targets/manual.",
+ "limits": "The prepared source, model and coefficient/guard identities remain checked inputs. General source/history assembly, full tactic/backend closure and strict arbitrary compiled misses remain incomplete. No speedup/scaling or physical-sharing claim. Older records retain their pins."
+}
diff --git a/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-browser-1-inputs/AlgebraicCells.lean.gz b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-browser-1-inputs/AlgebraicCells.lean.gz
new file mode 100644
index 0000000000..1e25114535
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-browser-1-inputs/AlgebraicCells.lean.gz differ
diff --git a/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-browser-1-inputs/cell-finish-final-desktop-api.png.gz b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-browser-1-inputs/cell-finish-final-desktop-api.png.gz
new file mode 100644
index 0000000000..74c09f1b49
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-browser-1-inputs/cell-finish-final-desktop-api.png.gz differ
diff --git a/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-browser-1-inputs/cell-finish-final-desktop-apicode.png.gz b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-browser-1-inputs/cell-finish-final-desktop-apicode.png.gz
new file mode 100644
index 0000000000..e0bb991077
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-browser-1-inputs/cell-finish-final-desktop-apicode.png.gz differ
diff --git a/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-browser-1-inputs/cell-finish-final-desktop-source.png.gz b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-browser-1-inputs/cell-finish-final-desktop-source.png.gz
new file mode 100644
index 0000000000..9c36c4a828
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-browser-1-inputs/cell-finish-final-desktop-source.png.gz differ
diff --git a/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-browser-1-inputs/cell-finish-final-inspection.json.gz b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-browser-1-inputs/cell-finish-final-inspection.json.gz
new file mode 100644
index 0000000000..faff97ad9a
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-browser-1-inputs/cell-finish-final-inspection.json.gz differ
diff --git a/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-browser-1-inputs/cell-finish-final-narrow-api.png.gz b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-browser-1-inputs/cell-finish-final-narrow-api.png.gz
new file mode 100644
index 0000000000..26f3d0a3b7
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-browser-1-inputs/cell-finish-final-narrow-api.png.gz differ
diff --git a/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-browser-1-inputs/cell-finish-final-narrow-apicode.png.gz b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-browser-1-inputs/cell-finish-final-narrow-apicode.png.gz
new file mode 100644
index 0000000000..2c7c5b8e4c
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-browser-1-inputs/cell-finish-final-narrow-apicode.png.gz differ
diff --git a/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-browser-1-inputs/cell-finish-final-narrow-source.png.gz b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-browser-1-inputs/cell-finish-final-narrow-source.png.gz
new file mode 100644
index 0000000000..fde139555d
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-browser-1-inputs/cell-finish-final-narrow-source.png.gz differ
diff --git a/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-browser-1-inputs/cell-finish-final-section-overflow.json.gz b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-browser-1-inputs/cell-finish-final-section-overflow.json.gz
new file mode 100644
index 0000000000..5ac98c2c50
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-browser-1-inputs/cell-finish-final-section-overflow.json.gz differ
diff --git a/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-browser-1.log.gz b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-browser-1.log.gz
new file mode 100644
index 0000000000..cf98c51d75
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-browser-1.log.gz differ
diff --git a/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-browser-2-inputs/AlgebraicCells.lean.gz b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-browser-2-inputs/AlgebraicCells.lean.gz
new file mode 100644
index 0000000000..9682a4940d
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-browser-2-inputs/AlgebraicCells.lean.gz differ
diff --git a/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-browser-2-inputs/cell-finish-final-desktop-api.png.gz b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-browser-2-inputs/cell-finish-final-desktop-api.png.gz
new file mode 100644
index 0000000000..64a106668c
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-browser-2-inputs/cell-finish-final-desktop-api.png.gz differ
diff --git a/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-browser-2-inputs/cell-finish-final-desktop-apicode.png.gz b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-browser-2-inputs/cell-finish-final-desktop-apicode.png.gz
new file mode 100644
index 0000000000..727e8282df
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-browser-2-inputs/cell-finish-final-desktop-apicode.png.gz differ
diff --git a/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-browser-2-inputs/cell-finish-final-desktop-source.png.gz b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-browser-2-inputs/cell-finish-final-desktop-source.png.gz
new file mode 100644
index 0000000000..9c36c4a828
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-browser-2-inputs/cell-finish-final-desktop-source.png.gz differ
diff --git a/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-browser-2-inputs/cell-finish-final-inspection.json.gz b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-browser-2-inputs/cell-finish-final-inspection.json.gz
new file mode 100644
index 0000000000..b1a30d7fbb
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-browser-2-inputs/cell-finish-final-inspection.json.gz differ
diff --git a/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-browser-2-inputs/cell-finish-final-narrow-api.png.gz b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-browser-2-inputs/cell-finish-final-narrow-api.png.gz
new file mode 100644
index 0000000000..502c0818af
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-browser-2-inputs/cell-finish-final-narrow-api.png.gz differ
diff --git a/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-browser-2-inputs/cell-finish-final-narrow-apicode.png.gz b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-browser-2-inputs/cell-finish-final-narrow-apicode.png.gz
new file mode 100644
index 0000000000..c8882a46e6
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-browser-2-inputs/cell-finish-final-narrow-apicode.png.gz differ
diff --git a/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-browser-2-inputs/cell-finish-final-narrow-source.png.gz b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-browser-2-inputs/cell-finish-final-narrow-source.png.gz
new file mode 100644
index 0000000000..7f168db75b
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-browser-2-inputs/cell-finish-final-narrow-source.png.gz differ
diff --git a/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-browser-2-inputs/cell-finish-final-section-overflow.json.gz b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-browser-2-inputs/cell-finish-final-section-overflow.json.gz
new file mode 100644
index 0000000000..5ac98c2c50
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-browser-2-inputs/cell-finish-final-section-overflow.json.gz differ
diff --git a/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-browser-2.log.gz b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-browser-2.log.gz
new file mode 100644
index 0000000000..a0ba980c03
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-browser-2.log.gz differ
diff --git a/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-browser-final.log.gz b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-browser-final.log.gz
new file mode 100644
index 0000000000..6eff84d97c
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-browser-final.log.gz differ
diff --git a/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-cases-1-inputs/adapters/HexRCF/RealCoefficients/CellQuote.lean.gz b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-cases-1-inputs/adapters/HexRCF/RealCoefficients/CellQuote.lean.gz
new file mode 100644
index 0000000000..d90fc95439
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-cases-1-inputs/adapters/HexRCF/RealCoefficients/CellQuote.lean.gz differ
diff --git a/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-cases-1-inputs/conformance/HexRCF/CellFinishCases.lean.gz b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-cases-1-inputs/conformance/HexRCF/CellFinishCases.lean.gz
new file mode 100644
index 0000000000..e79a3cc3a3
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-cases-1-inputs/conformance/HexRCF/CellFinishCases.lean.gz differ
diff --git a/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-cases-1-inputs/conformance/HexRCF/CellQuoteStages.lean.gz b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-cases-1-inputs/conformance/HexRCF/CellQuoteStages.lean.gz
new file mode 100644
index 0000000000..03533b2a33
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-cases-1-inputs/conformance/HexRCF/CellQuoteStages.lean.gz differ
diff --git a/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-cases-1.log.gz b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-cases-1.log.gz
new file mode 100644
index 0000000000..becc531b8e
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-cases-1.log.gz differ
diff --git a/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-cases-2.log.gz b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-cases-2.log.gz
new file mode 100644
index 0000000000..96966bbe06
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-cases-2.log.gz differ
diff --git a/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-cases-final.log.gz b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-cases-final.log.gz
new file mode 100644
index 0000000000..98d427d86f
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-cases-final.log.gz differ
diff --git a/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-cases-guard-1-inputs/conformance/HexRCF/CellFinishCases.lean.gz b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-cases-guard-1-inputs/conformance/HexRCF/CellFinishCases.lean.gz
new file mode 100644
index 0000000000..f663c0fd5a
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-cases-guard-1-inputs/conformance/HexRCF/CellFinishCases.lean.gz differ
diff --git a/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-cases-guard-1.log.gz b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-cases-guard-1.log.gz
new file mode 100644
index 0000000000..846737a0a1
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-cases-guard-1.log.gz differ
diff --git a/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-compat-audit-1-inputs/conformance/HexRCF/CellQuoteStageProofs.lean.gz b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-compat-audit-1-inputs/conformance/HexRCF/CellQuoteStageProofs.lean.gz
new file mode 100644
index 0000000000..7bb637e20b
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-compat-audit-1-inputs/conformance/HexRCF/CellQuoteStageProofs.lean.gz differ
diff --git a/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-compat-audit-1.log.gz b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-compat-audit-1.log.gz
new file mode 100644
index 0000000000..05d2bf6e9a
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-compat-audit-1.log.gz differ
diff --git a/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-core-1-inputs/adapters/HexRCF/RealCoefficients/CellQuote.lean.gz b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-core-1-inputs/adapters/HexRCF/RealCoefficients/CellQuote.lean.gz
new file mode 100644
index 0000000000..d90fc95439
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-core-1-inputs/adapters/HexRCF/RealCoefficients/CellQuote.lean.gz differ
diff --git a/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-core-1.log.gz b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-core-1.log.gz
new file mode 100644
index 0000000000..157d929564
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-core-1.log.gz differ
diff --git a/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-expanded-1-inputs.json.gz b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-expanded-1-inputs.json.gz
new file mode 100644
index 0000000000..efc09f2b95
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-expanded-1-inputs.json.gz differ
diff --git a/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-expanded-1-inputs/HexManual/Chapters/HexRCF/AlgebraicCells.lean.gz b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-expanded-1-inputs/HexManual/Chapters/HexRCF/AlgebraicCells.lean.gz
new file mode 100644
index 0000000000..1e25114535
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-expanded-1-inputs/HexManual/Chapters/HexRCF/AlgebraicCells.lean.gz differ
diff --git a/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-expanded-1-inputs/adapters/HexRCF/RealCoefficients/CellQuote.lean.gz b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-expanded-1-inputs/adapters/HexRCF/RealCoefficients/CellQuote.lean.gz
new file mode 100644
index 0000000000..d90fc95439
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-expanded-1-inputs/adapters/HexRCF/RealCoefficients/CellQuote.lean.gz differ
diff --git a/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-expanded-1-inputs/conformance/HexRCF/CellFinishCases.lean.gz b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-expanded-1-inputs/conformance/HexRCF/CellFinishCases.lean.gz
new file mode 100644
index 0000000000..70357601ef
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-expanded-1-inputs/conformance/HexRCF/CellFinishCases.lean.gz differ
diff --git a/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-expanded-1-inputs/conformance/HexRCF/CellFinishProofs.lean.gz b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-expanded-1-inputs/conformance/HexRCF/CellFinishProofs.lean.gz
new file mode 100644
index 0000000000..1a16557a97
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-expanded-1-inputs/conformance/HexRCF/CellFinishProofs.lean.gz differ
diff --git a/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-expanded-1-inputs/conformance/HexRCF/CellQuoteStageProofs.lean.gz b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-expanded-1-inputs/conformance/HexRCF/CellQuoteStageProofs.lean.gz
new file mode 100644
index 0000000000..8c2b621db8
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-expanded-1-inputs/conformance/HexRCF/CellQuoteStageProofs.lean.gz differ
diff --git a/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-expanded-1-inputs/conformance/HexRCF/CellSourceProofs.lean.gz b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-expanded-1-inputs/conformance/HexRCF/CellSourceProofs.lean.gz
new file mode 100644
index 0000000000..a623a45df8
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-expanded-1-inputs/conformance/HexRCF/CellSourceProofs.lean.gz differ
diff --git a/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-expanded-1-inputs/conformance/HexRCF/CellSourceQuote.lean.gz b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-expanded-1-inputs/conformance/HexRCF/CellSourceQuote.lean.gz
new file mode 100644
index 0000000000..808e549482
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-expanded-1-inputs/conformance/HexRCF/CellSourceQuote.lean.gz differ
diff --git a/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-expanded-1-inputs/lakefile.lean.gz b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-expanded-1-inputs/lakefile.lean.gz
new file mode 100644
index 0000000000..9bbb04720a
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-expanded-1-inputs/lakefile.lean.gz differ
diff --git a/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-expanded-1.log.gz b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-expanded-1.log.gz
new file mode 100644
index 0000000000..9aaf3c48ce
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-expanded-1.log.gz differ
diff --git a/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-expanded-invocation.json.gz b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-expanded-invocation.json.gz
new file mode 100644
index 0000000000..ebc17dbe9a
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-expanded-invocation.json.gz differ
diff --git a/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-final-metadata-admissions.log.gz b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-final-metadata-admissions.log.gz
new file mode 100644
index 0000000000..deb0599e89
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-final-metadata-admissions.log.gz differ
diff --git a/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-final-metadata-copyright.log.gz b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-final-metadata-copyright.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-final-metadata-copyright.log.gz differ
diff --git a/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-final-metadata-dag.log.gz b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-final-metadata-dag.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-final-metadata-dag.log.gz differ
diff --git a/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-final-metadata-diff.log.gz b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-final-metadata-diff.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-final-metadata-diff.log.gz differ
diff --git a/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-final-metadata-lines.log.gz b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-final-metadata-lines.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-final-metadata-lines.log.gz differ
diff --git a/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-final-metadata-relative.log.gz b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-final-metadata-relative.log.gz
new file mode 100644
index 0000000000..154780e0b7
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-final-metadata-relative.log.gz differ
diff --git a/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-final-metadata-selected-admissions.log.gz b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-final-metadata-selected-admissions.log.gz
new file mode 100644
index 0000000000..4a34d5298a
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-final-metadata-selected-admissions.log.gz differ
diff --git a/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-final-metadata-summary.log.gz b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-final-metadata-summary.log.gz
new file mode 100644
index 0000000000..609e099a96
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-final-metadata-summary.log.gz differ
diff --git a/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-final-metadata.json.gz b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-final-metadata.json.gz
new file mode 100644
index 0000000000..2762045c68
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-final-metadata.json.gz differ
diff --git a/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-full-source-1-inputs.json.gz b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-full-source-1-inputs.json.gz
new file mode 100644
index 0000000000..259360f4a5
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-full-source-1-inputs.json.gz differ
diff --git a/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-full-source-1-inputs/HexManual/Chapters/HexRCF/AlgebraicCells.lean.gz b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-full-source-1-inputs/HexManual/Chapters/HexRCF/AlgebraicCells.lean.gz
new file mode 100644
index 0000000000..00230a887c
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-full-source-1-inputs/HexManual/Chapters/HexRCF/AlgebraicCells.lean.gz differ
diff --git a/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-full-source-1-inputs/adapters/HexRCF/RealCoefficients/CellQuote.lean.gz b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-full-source-1-inputs/adapters/HexRCF/RealCoefficients/CellQuote.lean.gz
new file mode 100644
index 0000000000..d90fc95439
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-full-source-1-inputs/adapters/HexRCF/RealCoefficients/CellQuote.lean.gz differ
diff --git a/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-full-source-1-inputs/conformance/HexRCF/CellFinishCases.lean.gz b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-full-source-1-inputs/conformance/HexRCF/CellFinishCases.lean.gz
new file mode 100644
index 0000000000..2c0d28c368
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-full-source-1-inputs/conformance/HexRCF/CellFinishCases.lean.gz differ
diff --git a/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-full-source-1-inputs/conformance/HexRCF/CellFinishProofs.lean.gz b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-full-source-1-inputs/conformance/HexRCF/CellFinishProofs.lean.gz
new file mode 100644
index 0000000000..1a16557a97
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-full-source-1-inputs/conformance/HexRCF/CellFinishProofs.lean.gz differ
diff --git a/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-full-source-1-inputs/conformance/HexRCF/CellQuoteStageProofs.lean.gz b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-full-source-1-inputs/conformance/HexRCF/CellQuoteStageProofs.lean.gz
new file mode 100644
index 0000000000..8c2b621db8
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-full-source-1-inputs/conformance/HexRCF/CellQuoteStageProofs.lean.gz differ
diff --git a/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-full-source-1-inputs/conformance/HexRCF/CellSourceQuote.lean.gz b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-full-source-1-inputs/conformance/HexRCF/CellSourceQuote.lean.gz
new file mode 100644
index 0000000000..808e549482
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-full-source-1-inputs/conformance/HexRCF/CellSourceQuote.lean.gz differ
diff --git a/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-full-source-1-inputs/lakefile.lean.gz b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-full-source-1-inputs/lakefile.lean.gz
new file mode 100644
index 0000000000..9bbb04720a
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-full-source-1-inputs/lakefile.lean.gz differ
diff --git a/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-full-source-1.log.gz b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-full-source-1.log.gz
new file mode 100644
index 0000000000..f83921073b
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-full-source-1.log.gz differ
diff --git a/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-full-source-invocation.json.gz b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-full-source-invocation.json.gz
new file mode 100644
index 0000000000..c3bac39e8d
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-full-source-invocation.json.gz differ
diff --git a/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-render-2.log.gz b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-render-2.log.gz
new file mode 100644
index 0000000000..d189aa2335
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-render-2.log.gz differ
diff --git a/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-render-final.log.gz b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-render-final.log.gz
new file mode 100644
index 0000000000..9ecff23988
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-render-final.log.gz differ
diff --git a/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-render-unmodified-1.log.gz b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-render-unmodified-1.log.gz
new file mode 100644
index 0000000000..b3aa0f8051
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-render-unmodified-1.log.gz differ
diff --git a/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-visual-review.json.gz b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-visual-review.json.gz
new file mode 100644
index 0000000000..e1a339b2e4
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/diagnostics/cell-finish-visual-review.json.gz differ
diff --git a/reports/data/hexrcf-cell-finish/rollback/README.md b/reports/data/hexrcf-cell-finish/rollback/README.md
new file mode 100644
index 0000000000..41b005d27f
--- /dev/null
+++ b/reports/data/hexrcf-cell-finish/rollback/README.md
@@ -0,0 +1,23 @@
+# Joint late-exhaustion rollback
+
+Run `python3 reports/data/hexrcf-cell-finish/rollback/verify.py --check-head`.
+This supplement binds the current 108 sources to test-only commit
+`111ce080624edf549479112ea69c5e176e630c50`, preserving the parent record's
+source pin and artifacts.
+
+The same action succeeds at 448,469 proof nodes. At limit 448,468, quotation
+has already completed and created fresh declarations; source finishing consumes
+448,274 nodes and requests 195 more. It exhausts, then restores every checked
+metavariable field and the complete caller declaration list. The regression
+asserts that fresh quotation declarations existed before failure, so rollback
+is not vacuous.
+
+The targeted build and fresh importing audit pass in 33.282s, peak 1.1 GiB/no
+swap, under the unchanged serial 32 GiB wrapper. The audit remains 163 theorem
+bodies/43 definitions/170 nonempty traces, with the same producer exclusions
+and complete standard-three axiom closure. Header, line, admission and diff
+checks pass. No production code, theorem statement, API or manual changed;
+the parent's 47-target/manual validation is retained, not rerun or repinned.
+
+This closes one composition-regression gap. The full #10358 implementation
+and evidence requirements remain incomplete.
diff --git a/reports/data/hexrcf-cell-finish/rollback/build.log.gz b/reports/data/hexrcf-cell-finish/rollback/build.log.gz
new file mode 100644
index 0000000000..5e9d3a077a
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/rollback/build.log.gz differ
diff --git a/reports/data/hexrcf-cell-finish/rollback/context.json b/reports/data/hexrcf-cell-finish/rollback/context.json
new file mode 100644
index 0000000000..84da84e968
--- /dev/null
+++ b/reports/data/hexrcf-cell-finish/rollback/context.json
@@ -0,0 +1,170 @@
+{
+ "source_commit": "111ce080624edf549479112ea69c5e176e630c50",
+ "parent_source_commit": "b38a112f811e3e654ad7ddffc09e783c7a2f12e2",
+ "parent_context_sha256": "16507579756811d4304373abbf7588a0bbb938b5845c52913c404358c934edcc",
+ "sources": {
+ ".github/workflows/ci.yml": "5db61a70eb52d7478994377179c1b35b360a794fcff4b1c257496b5a6394231c",
+ "AGENTS.md": "4e0a48cf49a61e56ed84c8b28e232b5bfad29f2da20571377692be6e1c316f30",
+ "HexManual/Chapters/HexRCF/AlgebraicCells.lean": "4fd07893031c5857cf27dbc70e2dd571369a02d358923e50520815da37029451",
+ "HexManual/Chapters/HexRCF/RootQuote.lean": "0fe7ecb8568a5b3492aeea8310a4816797802d0a764093b824673a635ecf628a",
+ "HexManual/Chapters/HexRCF/RootTableQuote.lean": "78d1be637a32593b03f000ab153c7fdf05a1b5332ea3efb9c186aacfd68f0ae5",
+ "HexRCF/README.md": "3830d758a8a75d59df1a6dd01f59204a86858b5eda3e43a78f9e9e9c2d769a8a",
+ "HexRCF/SPEC/hex-rcf.md": "df8c6bb2435a2794faa36bc77e41f4c936f06ae149f29c3e68fe0d79f4ebfafb",
+ "HexRCF/Tactic.lean": "09d895ba1dd2c1af0bfffca197494f2614380ded268ff13e4e0b02fea22b9224",
+ "HexRealClosure/Algebraic.lean": "d05f9fb72fe9544ae9ddc685dff17080f876aa4c99c70e8992d511e011f6a454",
+ "HexRealClosure/ContextData.lean": "ca29790752b8d25f10d03a9877690a5ff40f1fdf6815c96fe9693941206e662c",
+ "HexRealClosure/SignCodec.lean": "7126323c97b77204386795a0f252f1babfd0ed7f3dba7ee3927a99b9d5c1852a",
+ "HexRealClosure/SignFacts.lean": "9c22837e93e6f50cc96310163e352ac608fbcfbd6275edab33751da2fd84f47c",
+ "HexRealClosure/SignatureCodecTests.lean": "ffc72777523ac0e92b563481804bdfb581fb0173fe7a021009737d57959b4462",
+ "HexRealClosure/TowerContext.lean": "6ef8b87b2d81cb177505a4bbc88befa078b20578cedd49e836d850753c203ee3",
+ "PLAN.md": "e94a60324486913b4a04650edd617c4ff8bef469dc7fd311adea8407c6662ea0",
+ "SPEC/real-closure-execution.md": "bc0948ad7de6969baaed89c0b3052cb0d21d64d634f8a336f9a7dde446b057f5",
+ "adapters/HexRCF/RealCoefficients.lean": "0056d497cd09f465ce44102b6a80b42fa3be35f46e60208179a5473447e7e1b5",
+ "adapters/HexRCF/RealCoefficients/CellOperations.lean": "3561cc80c7c866141f05a387ce1100ee0cadd98281a03395551cebcde5bd6e2a",
+ "adapters/HexRCF/RealCoefficients/CellQuote.lean": "c572911d7be36001e0f1885c3460f3eb19425d90e78345b1c46878ddf3e6c6ea",
+ "adapters/HexRCF/RealCoefficients/CellRead.lean": "65274f89c940bad74eab8c9075f9256c6ed3d8b90d3294aec4e85883e425fb10",
+ "adapters/HexRCF/RealCoefficients/RationalQuote.lean": "675e2ba065b696f257adefc07fe30ddb0190f321d86005444579ea5a0744bdf5",
+ "adapters/HexRCF/RealCoefficients/RealModel.lean": "712b4fd3edff8eaa6f93e501da5debf04529d1ea8c11a18389820f866d179c43",
+ "adapters/HexRCF/RealCoefficients/Reify.lean": "ea8474b9e253f93a1583064ca99ec0bf376dadf5457fd60b57e9e18460cf449c",
+ "adapters/HexRCF/RealCoefficients/RootContext.lean": "792176eab63e5e62b759a10893569946ef6d019566b8116c85237b3e16fcdb86",
+ "adapters/HexRCF/RealCoefficients/RootHeader.lean": "681f2a964bc30f65a92a0fb1a58b4d4013eb396df37ca813962702065fb46261",
+ "adapters/HexRCF/RealCoefficients/RootPrepare.lean": "de72a8e3ac4adb13365801476467bf691e630d0952b018ccecd88846c3bdb025",
+ "adapters/HexRCF/RealCoefficients/RootQuote.lean": "89f3ad4b0c4a8ae058560201900877035d896427176b944b34acde9f9b23d7e8",
+ "adapters/HexRCF/RealCoefficients/RowPacketQuote.lean": "edbb3d23f72422f5a1dea163c283848ec285418b7bdb9eedba553b83066121af",
+ "adapters/HexRCF/RealCoefficients/RowQuote.lean": "3b7e7d2ebcbd53a6ea893bc8f4c884d767430f8b98a3f1ca770fe7c7b122f3c9",
+ "adapters/HexRCF/RealCoefficients/ScalarPacket.lean": "9ae62bea85dab43ec01329defa9f788af4843e74b24f40f6c6f1b28adaadc6bf",
+ "adapters/HexRCF/RealCoefficients/ScalarQuote.lean": "fee2617a998f29d05c8959b484060ac1d719359c6d851a8ff6699fa9cb370acc",
+ "adapters/HexRCF/RealCoefficients/SignatureQuote.lean": "c3bb71b52c2a544b902bc256b3a162e1c3c4e7f94ae6b21808914e67109710eb",
+ "adapters/HexRCF/RealCoefficients/SourceIdentity.lean": "d98ae0c746003be89edfc969e464383e6a6bda253e0dae8c290605e8b98ce3c3",
+ "adapters/HexRCF/RealCoefficients/SourceIdentityQuote.lean": "37c54a56f48b265d0ddca38ecae2c572871e8b7f1600b54f330ff3da60252fa7",
+ "adapters/HexRealClosureTheory/Algebraic.lean": "2495153acbe4e468521913a2f5d6569831cd05f5ee48d5ddb26fc31a43438c7e",
+ "adapters/HexRealClosureTheory/SignFacts.lean": "c2b8cf96de0cccc2c0c3cbe83f0afd7c40ab9736b75f377ec5bfedc0907f34e3",
+ "adapters/HexRealClosureTheory/TowerModel.lean": "70d0e57e8ecc78eb9b7675d875157462d27cf9494d49d72bba019eaa6dd1d788",
+ "conformance-fixtures/HexRCF/source-identity.json": "93540b60174e0d8bd85ca80d99c6cbdc427815f341a12a6e38f4b38613073f53",
+ "conformance/HexRCF/CellFinishCases.lean": "619208fd6528c4f12d4e12bc4ee6fd4016ab0948db16a61237a2aefbcd523a7c",
+ "conformance/HexRCF/CellFinishProofs.lean": "fd232e3b4a64f444d834ae244a110ad0910aa35c4773a90b6a3b26a48693e22c",
+ "conformance/HexRCF/CellQuoteStageProofs.lean": "a14f3f20e1add07f569ab222994995c409552aededef738972a70c864b94b919",
+ "conformance/HexRCF/CellQuoteStages.lean": "e4593f2c8169af00398ff608dd53cbbfbe6b8408ddbdd07de6f64f59acf8a25f",
+ "conformance/HexRCF/CellSourceProofs.lean": "cea22d1a532dc4415130ff1c9c20f43707ab9696c7df53c858bdfa41ad76f018",
+ "conformance/HexRCF/CellSourceQuote.lean": "bea057fe5c9470d701e02974fbd6a83e945bbaba1225ca294830f54ef762f504",
+ "conformance/HexRCF/DependentQuote.lean": "0df154544a17857334480e7c577ecbcf1afe04165fa2da1a5a6407bf41e85518",
+ "conformance/HexRCF/DependentQuoteData.lean": "ed254475e78fa6edb27d4e55222a598b07b7357154ea0495d6195f2f1d39ee46",
+ "conformance/HexRCF/DependentQuoteProofs.lean": "5875aa9748f50340668e58aea97b196d3353313352fb8c819ae5ee3542556980",
+ "conformance/HexRCF/DependentScalarProofs.lean": "9fe3f3871f929e28355985c574c0b8c742be062ae5f19033d7d8bf9e67cd88d8",
+ "conformance/HexRCF/DependentScalarQuote.lean": "e20dd7346c337dd17126c394965f268e568706730f475844d7c0907051224933",
+ "conformance/HexRCF/FrozenSignatureConformance.lean": "8e7d432aecb87fb89bb188e4c579e86fb5c3348c5430f1e2b1a00f1f820a940e",
+ "conformance/HexRCF/FrozenSignatureProofs.lean": "55de6da9b0b3dc2d1e384d6c838d13294287c44060afb8e70aa2a0c8e01a81cb",
+ "conformance/HexRCF/ProofFunctionPublic.lean": "f928c9f0dd0a704d34a516b6282cfa6a7a4eb6c112d49689c450647a44370a6b",
+ "conformance/HexRCF/PublicSignPacket.lean": "c32d73c5634376907b965e1ea6cf69352fdda1f1945ce2f34a378cc217778102",
+ "conformance/HexRCF/PublicSignPacketControls.lean": "b4f98bd8ef190a361dd7752d4d5ece0cfbd862ff4face5a06dfabecf87096028",
+ "conformance/HexRCF/PublicSignPacketProofs.lean": "442f6d3e04a36db25611f0396103a1eee5ee411c40e8f3cc93df1acf7898bbbb",
+ "conformance/HexRCF/PublicSignPacketValues.lean": "72705dba30f04f986188903fb49b983c6f0a664895116fca8bd8b6b46b6517e5",
+ "conformance/HexRCF/QuotientQuote.lean": "97b2cbc9abdb46db33a9a91328f331edf8dea055cc244489158121cde8dc1903",
+ "conformance/HexRCF/QuotientQuoteData.lean": "ec26777d655a7898d7f7922fcea8f426a3f8c77a53000b69b6fe1755a0348870",
+ "conformance/HexRCF/QuotientQuoteProofs.lean": "f1d95accf6caed1c7354408b3a1a0b29493a526e82036390e39102ebe80c6752",
+ "conformance/HexRCF/QuotientQuotePublic.lean": "a3bd9a082df14a0ac93ba3798e13c6ebbf9dff98d7613264713aa281a5a18bea",
+ "conformance/HexRCF/RationalQuoteConformance.lean": "f03844d4a44a5c61b702ed0b1697619da9b20f4ac42122b9d1a6d3fa4a2de9ac",
+ "conformance/HexRCF/RecursiveScalarQuote.lean": "83ba1f3ed63afdbb148f171736a0aacebc7eef4ae3bf32dca29811515c3f051b",
+ "conformance/HexRCF/ReplayBoundary.lean": "bbc09553d62198a18e897981d5f443c81f09dba8d371d2cdaeaa846d22cbc2f8",
+ "conformance/HexRCF/ReplayBoundaryProofs.lean": "d755462a7344dc9f5304fba255bcefb42188c1de5a51d92d8567a27f22482dc2",
+ "conformance/HexRCF/ReplayHelperProofs.lean": "6dd68829399ec8908a877a3f7705cc9321e49b9581d0d577d114950242e43a57",
+ "conformance/HexRCF/ReplayHelpers.lean": "4501fa39e52a8a2bb52fdd7b183c16801090dd026304105afb4342a1c441c2a3",
+ "conformance/HexRCF/RootContextConformance.lean": "0c52084609ec3de8afd51330a7d2cc97f7bae1d8b2bbc421138783940fc7db37",
+ "conformance/HexRCF/RootContextProofs.lean": "b4c2e3ce686ce8bc60bfdafe2be2f566c6de46758f4827d307f3d5592b59d2e9",
+ "conformance/HexRCF/RootHeaderBudget.lean": "db30b6b7781fabd238ea2c934477e5ae281cc6cd905f11848ce46eb66ef45fe0",
+ "conformance/HexRCF/RootHeaderControls.lean": "aca063af3bfe475166aef92193f162c25a0e53eea094087cf334406a3d513157",
+ "conformance/HexRCF/RootHeaderPacket.lean": "dcd8e63c1d656fc800690b35554a0f835a1ee0bb96312215f8c12348d8a0e79a",
+ "conformance/HexRCF/RootHeaderProofs.lean": "e6630f0464fd0096b9af74b4640d2abc514a62c0b0fc706b4a2e74c9602eeb8c",
+ "conformance/HexRCF/RootHeaderValues.lean": "de9a8fc7c2e9371cbd3324eb700180411e49865dbc6535a74d2c882f74e38e13",
+ "conformance/HexRCF/RootPrepareControls.lean": "b36af8efd1e12227188b6fb7bde258e80d5c1c874338a324cb53c5ccc6c1330f",
+ "conformance/HexRCF/RootPreparePacket.lean": "86185bcc5fdddb1f700d869a115a91034954714f69a83171fd0e96f601e76fe3",
+ "conformance/HexRCF/RootPrepareProofs.lean": "4a5bc6655576a6592fcd5cd801bcfebd425243b1bb6cb39b0bb46d500a3938be",
+ "conformance/HexRCF/RootPreparePublic.lean": "a9e09cbe8d1287b97dde71ad1c6dbe149cfbacb6f81f41a8493ee802416d0805",
+ "conformance/HexRCF/RootQuoteCases.lean": "602d15ef501e969183bffbda7fb3c0f00a174ba5c2dbc35370ee7fce896944dd",
+ "conformance/HexRCF/RootQuoteConformance.lean": "f6a652a243ba62cffc671d1365c6ab47b6618179acb172019ec5609ea0324d3c",
+ "conformance/HexRCF/RootQuoteData.lean": "faa259d129d5c65a063c7143e45d5d9d19573ed49862aa5ecb3978ff389cb514",
+ "conformance/HexRCF/RootQuoteSource.lean": "aca1654efc1a452aca8ef573bb8ea3a435a4e1e18a4dca854d9bcc8e350d511d",
+ "conformance/HexRCF/RootTableQuote/Conformance.lean": "ec5bd136df58cc24a40ca989e3d33e55923082aed7591b234f55c70c013c74ad",
+ "conformance/HexRCF/RowPacketControls.lean": "ab69c57b66fe8129be5f07e5e5f42b7b35d60a23b305ec224d2d7dca28ac7c82",
+ "conformance/HexRCF/RowQuoteCases.lean": "8d2ebddc05d5f0d08b62b50d3498b34b47ab0b3accc4d0a572e621fd83d606d4",
+ "conformance/HexRCF/RowQuoteData.lean": "ce60cb18f548f55e929d4803c7ed824ad0a7621fd4abda09a191f76393fabf0c",
+ "conformance/HexRCF/RowQuoteDepth.lean": "6ada3c44bea055425d223dc57eafb4f0c88349713d815ded4beec9720f7802ad",
+ "conformance/HexRCF/RowQuoteProofs.lean": "317d4f981f32bb28666fcabc6248f4a57fe67c95a7fe431f7993aeacfa377ed3",
+ "conformance/HexRCF/SelectedRoot/KernelCheck.lean": "12e7e2e3f4667a76dc89c4b36796bff177f3c187b81adc5eb5e049ff1ce6669d",
+ "conformance/HexRCF/SharedQuoteCallbacks.lean": "6132cc3722af3cf251d11c857a572f09128d3614d931724965cbcf488dc4db6d",
+ "conformance/HexRCF/SignPacketProofs.lean": "3980cad31637f5798b2c351e1efc2a29b946de1d90e06fb11acd85e2a5c46321",
+ "conformance/HexRCF/SignPacketQuote.lean": "fcda11e6c75353d4519c4eb0e9c302b84d7e41030316c99fcacb885dabf97545",
+ "conformance/HexRCF/SignatureQuoteConformance.lean": "26f16c37cb9e0d5c09a082787f4a66673437adbf998023fd5e9625db16ff5d3f",
+ "conformance/HexRCF/SourceIdentityControls.lean": "c655486606139658d73e5b4d394228c3632596fec366e3b410ea9deb5b085553",
+ "conformance/HexRCF/SourceIdentityEmit.lean": "aa12f1517efc675698c0795c5a463a77d7a3466bcc146d4981d82e913059ed99",
+ "conformance/HexRCF/SourceIdentityLiterals.lean": "61ee2ce703d4965b00e1e20cc62288a0bde4e839d68ca09e1b66281f4a3e48d0",
+ "conformance/HexRCF/SourceIdentityPacket.lean": "614b3132274de5bebebeecb09cf479ac68723f1518e1f52912543a812985a4a9",
+ "conformance/HexRCF/SourceIdentityProofs.lean": "c449238d5f915dbe1f337688bc4f7357f3a93e31ad79eaa9e8e159c280749173",
+ "conformance/HexRCF/SourceSelectionCases.lean": "368ded3f07bb4be269f26a2fd2b7044904ea16d1dd1cba41d8bccb373d004005",
+ "conformance/HexRCF/TreeQuote.lean": "049065aa64bb13432b1d7183759979d28eebba98d18b6f54ab849e5953ce92c1",
+ "conformance/HexRCF/TreeQuoteData.lean": "c595c2278d2997483b755aa585da874c27eed40e4e1a8106d7f553e4f574776b",
+ "conformance/HexRCF/TreeQuoteProofs.lean": "f9a40248237480f8972df62dff548ef0599205b76014e070866e72586f161933",
+ "conformance/HexRCF/TreeQuotePublic.lean": "adc6dc6871208f31970cf5ae0c2472fd325a72e1df8114a6e8178ef8b2c71570",
+ "experiments/KernelReplay/AxiomClosure.lean": "f49377265f05f52b633b10a59255a03731e08d022cc54763de9851c5b5325034",
+ "lake-manifest.json": "fd2dc4df30cd44e4d30568489d616e7bcc8a78747500139134be56f35ae746a4",
+ "lakefile.lean": "7a42c0f15153580ac8cf2c48ce6ddf880b35b63275406b04eee4a689f6ef1479",
+ "lean-toolchain": "bc84812c94489d1e3e191baa1dc10d5eb684382d7fe9d2a5ab085e72c1c67e47",
+ "libraries.yml": "14e3dd1c01bb0c369b2216e2733378d61172040fd9f69dd0354d4e1267d9c5c1",
+ "scripts/rcf/source_identity_literals.py": "ea5d7df949871c4975367a759b9632d033f3a240523c2c917c9141220ffdfd78"
+ },
+ "artifacts": [
+ {
+ "path": "build.log.gz",
+ "bytes": 7656,
+ "sha256": "4c309ced69ba86a15f342968a86e20b16d881eca67e1f3b4c43be615327e25a2"
+ },
+ {
+ "path": "metadata.log",
+ "bytes": 96,
+ "sha256": "11c18f0e4a60afd9aad75ab5d0794a9ff28799aac4c708a482d683f962e9e14f"
+ },
+ {
+ "path": "source.patch",
+ "bytes": 2454,
+ "sha256": "097ffd9bf8ff225253b3b21bb81ec912b38d39c594ae27aca0939474bf53ff33"
+ },
+ {
+ "path": "run-bounded.sh",
+ "bytes": 302,
+ "sha256": "63bc5f97337e6b039bb3a9b1ba2a500be96fd1c2a2f73b43dae284aa9b18dda8"
+ }
+ ],
+ "checks": [
+ {
+ "command": [
+ "python3",
+ "scripts/check_copyright_headers.py"
+ ],
+ "exit_code": 0
+ },
+ {
+ "command": [
+ "python3",
+ "scripts/check_file_line_counts.py",
+ "--base",
+ "origin/main"
+ ],
+ "exit_code": 0
+ },
+ {
+ "command": [
+ "git",
+ "diff",
+ "--check"
+ ],
+ "exit_code": 0
+ }
+ ],
+ "command": [
+ "/home/kim/.codex/tasks/hex-10358/bin/run-bounded",
+ "lake",
+ "build",
+ "HexRCF.CellFinishProofs"
+ ],
+ "scope": "Test-only joint late-exhaustion rollback; no production, theorem-statement, manual or API change. Parent47-target/manual evidence retains its pin."
+}
diff --git a/reports/data/hexrcf-cell-finish/rollback/metadata.log b/reports/data/hexrcf-cell-finish/rollback/metadata.log
new file mode 100644
index 0000000000..167a15277d
--- /dev/null
+++ b/reports/data/hexrcf-cell-finish/rollback/metadata.log
@@ -0,0 +1 @@
+1482 scanned adapter/conformance import cones: 2394 local modules, no admissions in these cones
diff --git a/reports/data/hexrcf-cell-finish/rollback/run-bounded.sh b/reports/data/hexrcf-cell-finish/rollback/run-bounded.sh
new file mode 100644
index 0000000000..2cc8636e8a
--- /dev/null
+++ b/reports/data/hexrcf-cell-finish/rollback/run-bounded.sh
@@ -0,0 +1,10 @@
+#!/usr/bin/env bash
+set -euo pipefail
+exec systemd-run --user --wait --pipe --collect \
+ --unit=hex-10358-lean-build \
+ --property=MemoryMax=32G \
+ --property=MemorySwapMax=0 \
+ --property=OOMPolicy=kill \
+ --working-directory="$PWD" \
+ --setenv="PATH=$PATH" --setenv=LEAN_NUM_THREADS=2 \
+ "$@"
diff --git a/reports/data/hexrcf-cell-finish/rollback/source.patch b/reports/data/hexrcf-cell-finish/rollback/source.patch
new file mode 100644
index 0000000000..47a0e08466
--- /dev/null
+++ b/reports/data/hexrcf-cell-finish/rollback/source.patch
@@ -0,0 +1,38 @@
+diff --git a/conformance/HexRCF/CellFinishCases.lean b/conformance/HexRCF/CellFinishCases.lean
+index 07683c5ce5..21057a0f92 100644
+--- a/conformance/HexRCF/CellFinishCases.lean
++++ b/conformance/HexRCF/CellFinishCases.lean
+@@ -120,12 +120,28 @@ run_meta do
+ (mkConst ``signatureData) (mkConst ``signature_literal) expression then
+ return some proof
+ liftM (RationalQuote.decoder (mkConst ``registry) expression)
+- let .ok complete ← RootQuote.runWith (do
+- let quoted ← CellQuote.replayWith program decode
+- let strict ← mkAppM ``RootQuote.read_eq #[program,mkConst ``Bool.true,quoted.proof]
+- let accepted ← mkEqTrans (← mkEqSymm same) strict
+- CellQuote.finishPacketWith source target checker accepted model identity) basic source.usage
++ let declarations ← IO.mkRef 0
++ let joint : Hex.RealFormula.Reify.ReifyM RootQuote.Result := do
++ sentinel.mvarId!.assign (mkNatLit 99)
++ let quoted ← CellQuote.replayWith program decode
++ declarations.set (← (← getEnv).getLocalConstantInfos).size
++ let strict ← mkAppM ``RootQuote.read_eq #[program,mkConst ``Bool.true,quoted.proof]
++ let accepted ← mkEqTrans (← mkEqSymm same) strict
++ CellQuote.finishPacketWith source target checker accepted model identity
++ let before ← getMCtx
++ let .ok complete ← RootQuote.runWith joint basic source.usage
+ | throwError "joint cell quotation/source finishing refused"
++ restored before sentinel
++ let names := (← (← getEnv).getLocalConstantInfos).map (·.name)
++ declarations.set 0
++ let late := {basic with ring := {basic.ring with budget :=
++ {basic.ring.budget with proofNodes := complete.usage.proofNodes-1}}}
++ let .error (.budget exhausted) ← RootQuote.runWith joint late source.usage
++ | throwError "joint source attempt accepted below its complete budget"
++ unless exhausted.dimension == .proofNodes && (← declarations.get) > names.size do
++ throwError "joint exhaustion did not follow successful quotation with new declarations"
++ restored before sentinel (some names)
++ logInfo m!"joint late finishing exhaustion restored quotation declarations: limit={exhausted.limit}; consumed={exhausted.consumed}; requested={exhausted.requested}"
+ let proof ← Hex.RCF.checkProof `jointCellSource target complete.proof
+ withExporting (isExporting := true) do
+ addDecl (.thmDecl {
diff --git a/reports/data/hexrcf-cell-finish/rollback/verify.py b/reports/data/hexrcf-cell-finish/rollback/verify.py
new file mode 100644
index 0000000000..48bcd54383
--- /dev/null
+++ b/reports/data/hexrcf-cell-finish/rollback/verify.py
@@ -0,0 +1,41 @@
+#!/usr/bin/env python3
+"""Verify the test-only joint rollback supplement without repinning its parent."""
+import argparse
+import gzip
+import hashlib
+import json
+from pathlib import Path
+import subprocess
+import sys
+
+parser = argparse.ArgumentParser(description=__doc__)
+parser.add_argument('--check-head', action='store_true')
+args = parser.parse_args()
+root = Path(__file__).resolve().parent
+repo = root.parents[3]
+sha = lambda raw: hashlib.sha256(raw).hexdigest()
+git = lambda *a: subprocess.check_output(['git', *a], cwd=repo)
+record = json.loads((root / 'context.json').read_text())
+subprocess.run([sys.executable, str(root.parent / 'verify.py')], check=True)
+assert sha((root.parent / 'context.json').read_bytes()) == record['parent_context_sha256']
+changed = git('diff', '--name-only', record['parent_source_commit'],
+ record['source_commit']).decode().splitlines()
+assert [p for p in changed if not p.startswith('reports/')] == ['conformance/HexRCF/CellFinishCases.lean']
+for name, digest in record['sources'].items():
+ assert sha(git('show', record['source_commit'] + ':' + name)) == digest, name
+ if args.check_head:
+ assert sha((repo / name).read_bytes()) == digest, name
+for item in record['artifacts']:
+ raw = (root / item['path']).read_bytes()
+ assert len(raw) == item['bytes'] and sha(raw) == item['sha256'], item['path']
+assert all(x['exit_code'] == 0 for x in record['checks'])
+log = gzip.decompress((root / 'build.log.gz').read_bytes()).decode()
+for text in ['code=exited, status=0/SUCCESS',
+ 'joint late finishing exhaustion restored quotation declarations: limit=448468; consumed=448274; requested=195',
+ 'joint replay and original-source finishing proofNodes=448469',
+ '163 theorems/43 definitions; nonempty traces=170']:
+ assert text in log, text
+assert '2394 local modules, no admissions' in (root / 'metadata.log').read_text()
+patch = (root / 'source.patch').read_text()
+assert 'declarations.get) > names.size' in patch and 'restored before sentinel (some names)' in patch
+print('Verified test-only late finishing exhaustion, quotation-declaration/MCtx rollback and fresh audit; 108 source bindings')
diff --git a/reports/data/hexrcf-cell-finish/validation/cell-finish-browser-final.log.gz b/reports/data/hexrcf-cell-finish/validation/cell-finish-browser-final.log.gz
new file mode 100644
index 0000000000..6eff84d97c
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/validation/cell-finish-browser-final.log.gz differ
diff --git a/reports/data/hexrcf-cell-finish/validation/cell-finish-cases-final.log.gz b/reports/data/hexrcf-cell-finish/validation/cell-finish-cases-final.log.gz
new file mode 100644
index 0000000000..98d427d86f
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/validation/cell-finish-cases-final.log.gz differ
diff --git a/reports/data/hexrcf-cell-finish/validation/cell-finish-expanded-1.log.gz b/reports/data/hexrcf-cell-finish/validation/cell-finish-expanded-1.log.gz
new file mode 100644
index 0000000000..9aaf3c48ce
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/validation/cell-finish-expanded-1.log.gz differ
diff --git a/reports/data/hexrcf-cell-finish/validation/cell-finish-expanded-invocation.json.gz b/reports/data/hexrcf-cell-finish/validation/cell-finish-expanded-invocation.json.gz
new file mode 100644
index 0000000000..ebc17dbe9a
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/validation/cell-finish-expanded-invocation.json.gz differ
diff --git a/reports/data/hexrcf-cell-finish/validation/cell-finish-expanded-targets.txt.gz b/reports/data/hexrcf-cell-finish/validation/cell-finish-expanded-targets.txt.gz
new file mode 100644
index 0000000000..01d7830ce6
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/validation/cell-finish-expanded-targets.txt.gz differ
diff --git a/reports/data/hexrcf-cell-finish/validation/cell-finish-final-metadata-admissions.log.gz b/reports/data/hexrcf-cell-finish/validation/cell-finish-final-metadata-admissions.log.gz
new file mode 100644
index 0000000000..deb0599e89
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/validation/cell-finish-final-metadata-admissions.log.gz differ
diff --git a/reports/data/hexrcf-cell-finish/validation/cell-finish-final-metadata-copyright.log.gz b/reports/data/hexrcf-cell-finish/validation/cell-finish-final-metadata-copyright.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/validation/cell-finish-final-metadata-copyright.log.gz differ
diff --git a/reports/data/hexrcf-cell-finish/validation/cell-finish-final-metadata-dag.log.gz b/reports/data/hexrcf-cell-finish/validation/cell-finish-final-metadata-dag.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/validation/cell-finish-final-metadata-dag.log.gz differ
diff --git a/reports/data/hexrcf-cell-finish/validation/cell-finish-final-metadata-diff.log.gz b/reports/data/hexrcf-cell-finish/validation/cell-finish-final-metadata-diff.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/validation/cell-finish-final-metadata-diff.log.gz differ
diff --git a/reports/data/hexrcf-cell-finish/validation/cell-finish-final-metadata-lines.log.gz b/reports/data/hexrcf-cell-finish/validation/cell-finish-final-metadata-lines.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/validation/cell-finish-final-metadata-lines.log.gz differ
diff --git a/reports/data/hexrcf-cell-finish/validation/cell-finish-final-metadata-relative.log.gz b/reports/data/hexrcf-cell-finish/validation/cell-finish-final-metadata-relative.log.gz
new file mode 100644
index 0000000000..154780e0b7
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/validation/cell-finish-final-metadata-relative.log.gz differ
diff --git a/reports/data/hexrcf-cell-finish/validation/cell-finish-final-metadata-selected-admissions.log.gz b/reports/data/hexrcf-cell-finish/validation/cell-finish-final-metadata-selected-admissions.log.gz
new file mode 100644
index 0000000000..4a34d5298a
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/validation/cell-finish-final-metadata-selected-admissions.log.gz differ
diff --git a/reports/data/hexrcf-cell-finish/validation/cell-finish-final-metadata.py.gz b/reports/data/hexrcf-cell-finish/validation/cell-finish-final-metadata.py.gz
new file mode 100644
index 0000000000..149852b9be
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/validation/cell-finish-final-metadata.py.gz differ
diff --git a/reports/data/hexrcf-cell-finish/validation/cell-finish-memory-policy.txt.gz b/reports/data/hexrcf-cell-finish/validation/cell-finish-memory-policy.txt.gz
new file mode 100644
index 0000000000..bec88a6199
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/validation/cell-finish-memory-policy.txt.gz differ
diff --git a/reports/data/hexrcf-cell-finish/validation/cell-finish-render-final.log.gz b/reports/data/hexrcf-cell-finish/validation/cell-finish-render-final.log.gz
new file mode 100644
index 0000000000..9ecff23988
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/validation/cell-finish-render-final.log.gz differ
diff --git a/reports/data/hexrcf-cell-finish/validation/collect-cell-finish.py.gz b/reports/data/hexrcf-cell-finish/validation/collect-cell-finish.py.gz
new file mode 100644
index 0000000000..0f7ce79c35
Binary files /dev/null and b/reports/data/hexrcf-cell-finish/validation/collect-cell-finish.py.gz differ
diff --git a/reports/data/hexrcf-cell-finish/validation/metadata.json b/reports/data/hexrcf-cell-finish/validation/metadata.json
new file mode 100644
index 0000000000..a4f0d798cd
--- /dev/null
+++ b/reports/data/hexrcf-cell-finish/validation/metadata.json
@@ -0,0 +1,61 @@
+[
+ {
+ "name": "copyright",
+ "command": [
+ "python3",
+ "scripts/check_copyright_headers.py"
+ ],
+ "log": "cell-finish-final-metadata-copyright.log",
+ "exit_code": 0
+ },
+ {
+ "name": "lines",
+ "command": [
+ "python3",
+ "scripts/check_file_line_counts.py",
+ "--base",
+ "origin/main"
+ ],
+ "log": "cell-finish-final-metadata-lines.log",
+ "exit_code": 0
+ },
+ {
+ "name": "dag",
+ "command": [
+ "python3",
+ "scripts/check_dag.py"
+ ],
+ "log": "cell-finish-final-metadata-dag.log",
+ "exit_code": 0
+ },
+ {
+ "name": "admissions",
+ "command": [
+ "python3",
+ "scripts/ci/check_named_admissions.py"
+ ],
+ "log": "cell-finish-final-metadata-admissions.log",
+ "exit_code": 0
+ },
+ {
+ "name": "diff",
+ "command": [
+ "git",
+ "diff",
+ "HEAD",
+ "--check"
+ ],
+ "log": "cell-finish-final-metadata-diff.log",
+ "exit_code": 0
+ },
+ {
+ "name": "selected-admissions",
+ "log": "cell-finish-final-metadata-selected-admissions.log",
+ "exit_code": 0
+ },
+ {
+ "name": "relative",
+ "log": "cell-finish-final-metadata-relative.log",
+ "exit_code": 0
+ }
+]
diff --git a/reports/data/hexrcf-cell-finish/validation/run-bounded.sh b/reports/data/hexrcf-cell-finish/validation/run-bounded.sh
new file mode 100644
index 0000000000..2cc8636e8a
--- /dev/null
+++ b/reports/data/hexrcf-cell-finish/validation/run-bounded.sh
@@ -0,0 +1,10 @@
+#!/usr/bin/env bash
+set -euo pipefail
+exec systemd-run --user --wait --pipe --collect \
+ --unit=hex-10358-lean-build \
+ --property=MemoryMax=32G \
+ --property=MemorySwapMax=0 \
+ --property=OOMPolicy=kill \
+ --working-directory="$PWD" \
+ --setenv="PATH=$PATH" --setenv=LEAN_NUM_THREADS=2 \
+ "$@"
diff --git a/reports/data/hexrcf-cell-finish/verify.py b/reports/data/hexrcf-cell-finish/verify.py
new file mode 100644
index 0000000000..2d1e77ca3b
--- /dev/null
+++ b/reports/data/hexrcf-cell-finish/verify.py
@@ -0,0 +1,81 @@
+#!/usr/bin/env python3
+"""Verify packet-derived selected-source authentication evidence."""
+import argparse
+import gzip
+import hashlib
+import json
+from pathlib import Path
+import subprocess
+
+parser = argparse.ArgumentParser(description=__doc__)
+parser.add_argument('--check-head', action='store_true')
+args = parser.parse_args()
+root = Path(__file__).resolve().parent
+repo = root.parents[2]
+record = json.loads((root / 'context.json').read_text())
+git = lambda *a: subprocess.check_output(['git', *a], cwd=repo)
+sha = lambda b: hashlib.sha256(b).hexdigest()
+read = lambda p: gzip.decompress((root / p).read_bytes()).decode()
+log = lambda key: read(record['validation'][key])
+
+assert git('rev-parse', record['source_commit'] + '^{tree}').decode().strip() == record['source_tree']
+for path, digest in record['sources'].items():
+ assert sha(git('show', record['source_commit'] + ':' + path)) == digest, path
+ if args.check_head:
+ assert sha((repo / path).read_bytes()) == digest, path
+if args.check_head:
+ paths = git('diff', '--name-only', record['source_commit']).decode().splitlines()
+ paths += git('ls-files', '--others', '--exclude-standard').decode().splitlines()
+ assert all(p.startswith('reports/') for p in paths), paths
+for path in record['unchanged_guards']:
+ assert git('show', record['baseline_commit'] + ':' + path) == git('show', record['source_commit'] + ':' + path), path
+for item in record['artifacts']:
+ raw = (root / item['path']).read_bytes()
+ assert len(raw) == item['bytes'] and sha(raw) == item['sha256'], item['path']
+ if 'uncompressed_sha256' in item:
+ assert sha(gzip.decompress(raw)) == item['uncompressed_sha256'], item['path']
+for key in record['validation']:
+ assert 'code=exited, status=0/SUCCESS' in log(key), key
+assert 'Build completed successfully (' in log('integration')
+for text in ['continued cell finishing exact/below/source budgets, bindings and rollback checked: proofNodes=7430; sourceNodes=250',
+ 'prepared finishing refused zero/cancelled divisors despite valid source equivalences',
+ 'joint replay and original-source finishing proofNodes=448469',
+ '163 theorems/43 definitions; nonempty traces=170']:
+ assert text in log('component'), text
+for text in ['complete original-source attempt consumed proofNodes=8651669',
+ '1193 theorems/202 definitions; nonempty traces=1353',
+ '1247 theorems/101 definitions; nonempty traces=1298']:
+ assert text in log('integration'), text
+metadata = json.loads((root / 'validation/metadata.json').read_text())
+assert {x['name'] for x in metadata} == {'copyright', 'lines', 'dag', 'admissions', 'selected-admissions', 'relative', 'diff'}
+assert all(x['exit_code'] == 0 for x in metadata)
+invocation = json.loads(read('validation/cell-finish-expanded-invocation.json.gz'))
+targets = read('validation/cell-finish-expanded-targets.txt.gz').splitlines()
+assert len(set(targets)) == len(targets) == 47
+assert invocation['argv'][1:] == ['build', *targets]
+assert {'HexManual', 'HexRCFRealCoefficients', 'HexRCF.CellSourceProofs', 'HexRCF.CellFinishCases', 'HexRCF.CellFinishProofs'} <= set(targets)
+memory = read('validation/cell-finish-memory-policy.txt.gz')
+assert all(x in memory for x in ['ActiveState=active', 'MemoryMax=34359738368', 'MemorySwapMax=0', 'OOMPolicy=kill', 'LEAN_NUM_THREADS=2'])
+inspection = json.loads((root / 'captures/inspection.json').read_text())
+kinds = ['source', 'api', 'apicode']
+assert {(x['label'], x['kind']) for x in inspection} == {(a, b) for a in ['desktop', 'narrow'] for b in kinds}
+assert all(x['descendantOverflow'] == 0 and x['targetScrollWidth'] <= x['targetWidth'] + 1 for x in inspection)
+review = json.loads((root / 'captures/visual-review.json').read_text())
+assert len(review['captures']) == 6
+for item in review['captures']:
+ assert item['viewed'] and sha((root / item['path']).read_bytes()) == item['sha256']
+assert len(record['compiled_files']) == 6 and all(x['bytes'] > 0 for x in record['compiled_files'])
+inputs = json.loads(read('diagnostics/cell-finish-expanded-1-inputs.json.gz'))
+manual = 'HexManual/Chapters/HexRCF/AlgebraicCells.lean'
+for name, digest in inputs.items():
+ if name != manual:
+ assert record['sources'][name] == digest, name
+original = read('diagnostics/cell-finish-expanded-1-inputs/' + manual + '.gz')
+wrapped = original.replace(' (source :\n Hex.RCF.RealCoefficients.Reify.Source)',
+ ' (source : Reify.Source)').replace(
+ ' (target checker accepted model identity : Expr)',
+ ' (target checker accepted : Expr)\n (model identity : Expr)')
+assert git('show', record['source_commit'] + ':' + manual).decode() == wrapped
+print(f'Verified {len(record["artifacts"])} artifacts/{len(record["sources"])} sources; '
+ '47 targets/manual, continued source-finishing budgets and 6 inspected captures; '
+ 'general source/history assembly and the full tactic remain incomplete')
diff --git a/reports/data/hexrcf-cell-memos/README.md b/reports/data/hexrcf-cell-memos/README.md
new file mode 100644
index 0000000000..1bdaab3028
--- /dev/null
+++ b/reports/data/hexrcf-cell-memos/README.md
@@ -0,0 +1,18 @@
+# Checked row graph and algebraic source evidence
+
+Run `python3 reports/data/hexrcf-cell-memos/verify.py --check-head`.
+The optional flag compares the pinned implementation with current sources.
+`context.json` binds 97 sources and 225 artifacts to implementation
+`fd394a45b015b713dc0692adfb29da39924671a9`.
+
+The record covers checked row graph memo reuse, independent quotation of a
+complete frozen algebraic packet, its original source proof, fresh body and
+axiom audits, 40 affected targets, the complete manual and ten actually viewed
+desktop/narrow captures. Changed-query rejection precedes graph validation and
+restores the complete caller state. Earlier records retain their original pins.
+
+Diagnostic attempts and their available exact input snapshots are retained
+separately. Temporary compiled diagnostic results in failed control setups are
+not proof evidence. This fixed-parent example consumes checked seed facts;
+generic source/history assembly and the full tactic remain incomplete.
+See the [report](../../hexrcf-cell-memos.md) for scope and limitations.
diff --git a/reports/data/hexrcf-cell-memos/captures/browser.mjs b/reports/data/hexrcf-cell-memos/captures/browser.mjs
new file mode 100644
index 0000000000..f6e84bb5d5
--- /dev/null
+++ b/reports/data/hexrcf-cell-memos/captures/browser.mjs
@@ -0,0 +1,61 @@
+import fs from 'node:fs';
+import {spawn} from 'node:child_process';
+const root=process.argv[2];
+if(!root) throw new Error('Pass the scratch render directory');
+const profile=root+'/cell-memo-profile';
+fs.mkdirSync(profile,{recursive:true});
+fs.rmSync(profile+'/DevToolsActivePort',{force:true});
+const chrome=spawn(process.env.CHROME_BIN || '/home/kim/.cache/ms-playwright/chromium-1243/chrome-linux64/chrome',[
+ '--headless=new','--no-sandbox','--disable-gpu','--allow-file-access-from-files',
+ '--remote-debugging-port=0','--remote-allow-origins=*','--user-data-dir='+profile,'about:blank'],
+ {env:{...process.env,LD_LIBRARY_PATH:fs.readFileSync(root+'/browser-lib-paths.txt','utf8').trim()},stdio:'ignore'});
+let socket;
+try {
+ const portFile=profile+'/DevToolsActivePort';
+ for(let i=0;!fs.existsSync(portFile);i++) {
+ if(i>200||chrome.exitCode!==null) throw new Error('Chrome did not expose CDP');
+ await new Promise(r=>setTimeout(r,100));
+ }
+ const port=fs.readFileSync(portFile,'utf8').split('\n')[0];
+ const tabs=await (await fetch('http://127.0.0.1:'+port+'/json')).json();
+ socket=new WebSocket(tabs.find(t=>t.type==='page').webSocketDebuggerUrl);
+ await new Promise((r,j)=>{socket.onopen=r;socket.onerror=j});
+ let sequence=0;const pending=new Map();let loaded;
+ socket.onmessage=e=>{
+ const msg=JSON.parse(e.data);
+ if(msg.id){const p=pending.get(msg.id);pending.delete(msg.id);msg.error?p.reject(msg.error):p.resolve(msg.result);}
+ if(msg.method==='Page.loadEventFired'&&loaded){loaded();loaded=undefined;}
+ };
+ const call=(method,params={})=>new Promise((resolve,reject)=>{const id=++sequence;pending.set(id,{resolve,reject});socket.send(JSON.stringify({id,method,params}));});
+ await call('Page.enable');
+ const load=new Promise(r=>loaded=r);
+ await call('Page.navigate',{url:'file:///home/kim/.codex/tasks/hex-10358/scalar-review-render/cell-memo-review-html/html-single/index.html'});
+ await load;
+ const evaluate=async expression=>{const r=await call('Runtime.evaluate',{expression,returnByValue:true});if(r.exceptionDetails)throw new Error(JSON.stringify(r.exceptionDetails));return r.result.value;};
+ const metadata=[]; const sectionMetadata=[];
+ for(const [label,width] of [['desktop',1440],['narrow',390]]) {
+ await call('Emulation.setDeviceMetricsOverride',{width,height:width===390?1800:1000,deviceScaleFactor:1,mobile:false});
+ for(const [kind,phrase] of [["memo", "Within this request, row quotation parses each literal sign packet"], ["measurements", "A separate rational quadratic packet checks two root sections"], ["audit", "A fresh importing audit checks 1,246 theorem bodies"], ["source", "The algebraic source regression independently reads the complete frozen packet"], ["sourcecode", "The algebraic source regression independently reads the complete frozen packet"]] ) {
+ const exact=await evaluate(`(() => {const p=Array.from(document.querySelectorAll('p')).find(e=>e.textContent.replace(/\\s+/g,' ').includes(${JSON.stringify(phrase)}));if(!p)throw new Error('missing paragraph');const target=['sourcecode'].includes(${JSON.stringify(kind)})?p.nextElementSibling:p;if(['sourcecode'].includes(${JSON.stringify(kind)})&&!target.matches('.hl.lean.block, pre, div:has(code)'))throw new Error('target is not a Lean code block');target.scrollIntoView({block:${JSON.stringify('center')}});return {text:p.textContent,viewport:innerWidth,scrollY,paragraphWidth:p.getBoundingClientRect().width,scrollWidth:p.scrollWidth,targetTag:target.tagName,targetWidth:target.getBoundingClientRect().width,targetScrollWidth:target.scrollWidth,descendantOverflow:Math.max(0,...[target,...target.querySelectorAll('*')].map(e=>e.scrollWidth-e.clientWidth)),overflowElements:[target,...target.querySelectorAll('*')].filter(e=>e.scrollWidth-e.clientWidth>1).map(e=>({tag:e.tagName,classes:e.className,width:e.clientWidth,scroll:e.scrollWidth,text:e.textContent.slice(0,100)})).slice(0,8)};})()`);
+ if(!exact)throw new Error('missing visual target '+kind);
+ await evaluate('new Promise(resolve=>requestAnimationFrame(()=>requestAnimationFrame(resolve)))');
+ const shot=await call('Page.captureScreenshot',{format:'png'});
+ fs.writeFileSync(root+'/'+'cell-memo-final-'+label+'-'+kind+'.png',Buffer.from(shot.data,'base64'));
+ metadata.push({label,kind,...exact});
+ }
+ sectionMetadata.push(await evaluate(`(() => {
+ const headings=Array.from(document.querySelectorAll('h1,h2,h3,h4,h5,h6'));
+ const heading=headings.find(e=>e.textContent.includes('Quoting a supplied root replay'));
+ if(!heading)throw new Error('missing quotation heading');
+ const following=headings.find(e=>e!==heading && Number(e.tagName[1])<=Number(heading.tagName[1]) && (heading.compareDocumentPosition(e)&4));
+ if(!following)throw new Error('missing following section');
+ const targets=Array.from(document.querySelectorAll('p,.hl.lean.block')).filter(e=>(heading.compareDocumentPosition(e)&4) && (e.compareDocumentPosition(following)&4));
+ if(targets.length<8)throw new Error('incomplete quotation section');
+ return {label:${JSON.stringify(label)},width:innerWidth,targets:targets.map(e=>({tag:e.tagName,text:e.textContent.slice(0,160),overflow:Math.max(0,...[e,...e.querySelectorAll('*')].map(n=>n.scrollWidth-n.clientWidth))}))};
+ })()`));
+ }
+ fs.writeFileSync(root+'/cell-memo-final-section-overflow.json',JSON.stringify(sectionMetadata,null,2));
+ fs.writeFileSync(root+'/cell-memo-final-inspection.json',JSON.stringify(metadata,null,2));
+ if(metadata.some(e=>e.targetScrollWidth>e.targetWidth+1 || e.descendantOverflow>1)) throw new Error('Changed content overflows; retained captures and metrics identify the affected block.');
+ process.stdout.write('Saved cell quotation desktop/narrow screenshots\n');
+} finally {if(socket)socket.close();chrome.kill('SIGTERM');}
diff --git a/reports/data/hexrcf-cell-memos/captures/cell-memo-final-desktop-audit.png b/reports/data/hexrcf-cell-memos/captures/cell-memo-final-desktop-audit.png
new file mode 100644
index 0000000000..e75adbac12
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/captures/cell-memo-final-desktop-audit.png differ
diff --git a/reports/data/hexrcf-cell-memos/captures/cell-memo-final-desktop-measurements.png b/reports/data/hexrcf-cell-memos/captures/cell-memo-final-desktop-measurements.png
new file mode 100644
index 0000000000..ea2290c7d7
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/captures/cell-memo-final-desktop-measurements.png differ
diff --git a/reports/data/hexrcf-cell-memos/captures/cell-memo-final-desktop-memo.png b/reports/data/hexrcf-cell-memos/captures/cell-memo-final-desktop-memo.png
new file mode 100644
index 0000000000..0c5ec18350
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/captures/cell-memo-final-desktop-memo.png differ
diff --git a/reports/data/hexrcf-cell-memos/captures/cell-memo-final-desktop-source.png b/reports/data/hexrcf-cell-memos/captures/cell-memo-final-desktop-source.png
new file mode 100644
index 0000000000..46f8d32b04
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/captures/cell-memo-final-desktop-source.png differ
diff --git a/reports/data/hexrcf-cell-memos/captures/cell-memo-final-desktop-sourcecode.png b/reports/data/hexrcf-cell-memos/captures/cell-memo-final-desktop-sourcecode.png
new file mode 100644
index 0000000000..f8422b7ec7
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/captures/cell-memo-final-desktop-sourcecode.png differ
diff --git a/reports/data/hexrcf-cell-memos/captures/cell-memo-final-narrow-audit.png b/reports/data/hexrcf-cell-memos/captures/cell-memo-final-narrow-audit.png
new file mode 100644
index 0000000000..d68d991b5f
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/captures/cell-memo-final-narrow-audit.png differ
diff --git a/reports/data/hexrcf-cell-memos/captures/cell-memo-final-narrow-measurements.png b/reports/data/hexrcf-cell-memos/captures/cell-memo-final-narrow-measurements.png
new file mode 100644
index 0000000000..eeafe50bfc
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/captures/cell-memo-final-narrow-measurements.png differ
diff --git a/reports/data/hexrcf-cell-memos/captures/cell-memo-final-narrow-memo.png b/reports/data/hexrcf-cell-memos/captures/cell-memo-final-narrow-memo.png
new file mode 100644
index 0000000000..304ac97575
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/captures/cell-memo-final-narrow-memo.png differ
diff --git a/reports/data/hexrcf-cell-memos/captures/cell-memo-final-narrow-source.png b/reports/data/hexrcf-cell-memos/captures/cell-memo-final-narrow-source.png
new file mode 100644
index 0000000000..a309435690
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/captures/cell-memo-final-narrow-source.png differ
diff --git a/reports/data/hexrcf-cell-memos/captures/cell-memo-final-narrow-sourcecode.png b/reports/data/hexrcf-cell-memos/captures/cell-memo-final-narrow-sourcecode.png
new file mode 100644
index 0000000000..0dbd2cafcb
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/captures/cell-memo-final-narrow-sourcecode.png differ
diff --git a/reports/data/hexrcf-cell-memos/captures/inspection.json b/reports/data/hexrcf-cell-memos/captures/inspection.json
new file mode 100644
index 0000000000..879d90e5b9
--- /dev/null
+++ b/reports/data/hexrcf-cell-memos/captures/inspection.json
@@ -0,0 +1,142 @@
+[
+ {
+ "label": "desktop",
+ "kind": "memo",
+ "text": "\n Within this request, row quotation parses each literal sign packet and checks\nits exact ordered queries. It validates a graph once for each distinct set of\narithmetic operations, sign function, context, polynomial, endpoints and graph\ndata. The owner's SelectedSigns.ofMemo? extracts each root's row from that\nchecked graph; Dag.selectedSigns_memo identifies it with the original reader.\nEvery reused equation is kernel checked against the new reader. The cache is\nlocal to one quotation attempt, and every visit consumes the shared budget.\nset_option trace.Hex.RCF.RowQuote true reports validations and reuse. Supplied\narithmetic operations remain attached to the descriptor, including operations\nthat are proved equal to canonical arithmetic rather than definitionally equal.",
+ "viewport": 1440,
+ "scrollY": 274328,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "P",
+ "targetWidth": 752,
+ "targetScrollWidth": 752,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "desktop",
+ "kind": "measurements",
+ "text": "\n A separate rational quadratic packet checks two root sections and three\nsectors in 5,911,125 proof nodes. Its trace records two graph-memo reuses and\nseven independent validations. These are charged quotation counts, rather\nthan a timing comparison or a measurement of physical sharing. The test supplies\n16M proof nodes and a separate 24M heartbeat allowance. Compiled replay and\ngeneral algebraic quotation costs need separate evidence.",
+ "viewport": 1440,
+ "scrollY": 274766,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "P",
+ "targetWidth": 752,
+ "targetScrollWidth": 752,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "desktop",
+ "kind": "audit",
+ "text": "\n A fresh importing audit checks 1,246 theorem bodies and 101 definitions, with\n1,297 nonempty kernel traces, the unchanged producer guard and only the\nstandard three axioms. It excludes older fixture acceptance proofs. The\nconstant example establishes source quotation; the quadratic packet adds\nreplay coverage with multiple roots. General coefficient and history assembly\nremain separate obligations.",
+ "viewport": 1440,
+ "scrollY": 274898,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "P",
+ "targetWidth": 752,
+ "targetScrollWidth": 752,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "desktop",
+ "kind": "source",
+ "text": "\n The algebraic source regression independently reads the complete frozen packet\nover the retained positive square root of 2. It reifies the following original\nsentence, reconstructs the coefficient polynomial, authenticates its fixed\ncoefficient and composes the checked cell verdict with the original source:",
+ "viewport": 1440,
+ "scrollY": 275018,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "P",
+ "targetWidth": 752,
+ "targetScrollWidth": 752,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "desktop",
+ "kind": "sourcecode",
+ "text": "\n The algebraic source regression independently reads the complete frozen packet\nover the retained positive square root of 2. It reifies the following original\nsentence, reconstructs the coefficient polynomial, authenticates its fixed\ncoefficient and composes the checked cell verdict with the original source:",
+ "viewport": 1440,
+ "scrollY": 275128,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "CODE",
+ "targetWidth": 740,
+ "targetScrollWidth": 740,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "memo",
+ "text": "\n Within this request, row quotation parses each literal sign packet and checks\nits exact ordered queries. It validates a graph once for each distinct set of\narithmetic operations, sign function, context, polynomial, endpoints and graph\ndata. The owner's SelectedSigns.ofMemo? extracts each root's row from that\nchecked graph; Dag.selectedSigns_memo identifies it with the original reader.\nEvery reused equation is kernel checked against the new reader. The cache is\nlocal to one quotation attempt, and every visit consumes the shared budget.\nset_option trace.Hex.RCF.RowQuote true reports validations and reuse. Supplied\narithmetic operations remain attached to the descriptor, including operations\nthat are proved equal to canonical arithmetic rather than definitionally equal.",
+ "viewport": 390,
+ "scrollY": 439536,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "P",
+ "targetWidth": 343,
+ "targetScrollWidth": 343,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "measurements",
+ "text": "\n A separate rational quadratic packet checks two root sections and three\nsectors in 5,911,125 proof nodes. Its trace records two graph-memo reuses and\nseven independent validations. These are charged quotation counts, rather\nthan a timing comparison or a measurement of physical sharing. The test supplies\n16M proof nodes and a separate 24M heartbeat allowance. Compiled replay and\ngeneral algebraic quotation costs need separate evidence.",
+ "viewport": 390,
+ "scrollY": 440357,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "P",
+ "targetWidth": 343,
+ "targetScrollWidth": 343,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "audit",
+ "text": "\n A fresh importing audit checks 1,246 theorem bodies and 101 definitions, with\n1,297 nonempty kernel traces, the unchanged producer guard and only the\nstandard three axioms. It excludes older fixture acceptance proofs. The\nconstant example establishes source quotation; the quadratic packet adds\nreplay coverage with multiple roots. General coefficient and history assembly\nremain separate obligations.",
+ "viewport": 390,
+ "scrollY": 440640,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "P",
+ "targetWidth": 343,
+ "targetScrollWidth": 343,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "source",
+ "text": "\n The algebraic source regression independently reads the complete frozen packet\nover the retained positive square root of 2. It reifies the following original\nsentence, reconstructs the coefficient polynomial, authenticates its fixed\ncoefficient and composes the checked cell verdict with the original source:",
+ "viewport": 390,
+ "scrollY": 440876,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "P",
+ "targetWidth": 343,
+ "targetScrollWidth": 343,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "sourcecode",
+ "text": "\n The algebraic source regression independently reads the complete frozen packet\nover the retained positive square root of 2. It reifies the following original\nsentence, reconstructs the coefficient polynomial, authenticates its fixed\ncoefficient and composes the checked cell verdict with the original source:",
+ "viewport": 390,
+ "scrollY": 441032,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "CODE",
+ "targetWidth": 331,
+ "targetScrollWidth": 331,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ }
+]
\ No newline at end of file
diff --git a/reports/data/hexrcf-cell-memos/captures/render.lean.txt b/reports/data/hexrcf-cell-memos/captures/render.lean.txt
new file mode 100644
index 0000000000..96d46fe9cf
--- /dev/null
+++ b/reports/data/hexrcf-cell-memos/captures/render.lean.txt
@@ -0,0 +1,5 @@
+import HexManual
+import VersoManual
+#eval Verso.Genre.Manual.manualMain (%doc HexManual)
+ (options := ["--output", "cell-memo-review-html",
+ "--without-tex", "--with-html-single", "--without-html-multi"])
diff --git a/reports/data/hexrcf-cell-memos/captures/section-overflow.json b/reports/data/hexrcf-cell-memos/captures/section-overflow.json
new file mode 100644
index 0000000000..47d2b2608b
--- /dev/null
+++ b/reports/data/hexrcf-cell-memos/captures/section-overflow.json
@@ -0,0 +1,704 @@
+[
+ {
+ "label": "desktop",
+ "width": 1440,
+ "targets": [
+ {
+ "tag": "P",
+ "text": "\n RootQuote.quote accepts a Lean\nexpression for an Except ε α replay reader, including structured errors. It returns the reconstructed\ndata and",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A scalar decoder may propose an equality for the exact demanded decode. The\nhelper checks its type, dependencies and kernel proof before usin",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For example, this helper continues a request's existing budget and returns the\nupdated usage together with the checked equation:",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSuppliedRoot\n (reader : Expr)\n (scalar : RootQuote.Decoder",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Quotation follows the representative of a closed quotient when selecting\nreducibility boundaries. This lets a formula polynomial stored in a ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF in\nexample :\n QuotientQuote.reader = some 7 :=\n QuotientQuotePublic.accepted\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Its exact 92-node budget succeeds, one node less exhausts, and a wrong term\ncount rejects. The controls check caller-state restoration; a fre",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Tree replay uses its public leaf and split equations before opening the local\nnode checks. Keeping that boundary explicit avoids kernel conve",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF in\nexample :\n TreeQuote.splitTrue.toOption =\n some 31 :=\n TreeQuotePublic.split_true\n\nopen Hex.RCF in\nexample :\n TreeQuote.splitFalse.t",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The second reader selects its diagnostic branch; it does not accept the\nchanged certificate. Readers returning an error abort quotation and r",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Checked replay data may occur inside a Boolean condition. Quotation keeps\nclosed helpers whose types mention a protected replay function atta",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Conversion preserves data type arguments while rewriting their Boolean\ncomputations. A helper's type can itself mention another checked repla",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The helper controls cover stored arrays with table-dependent element types and\nfunctions with fixed replay-dependent proof types. Matching an",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RowQuote.decoder reads the\nliteral value of a checked selected-sign row through query, root and operation\ntransports. It uses the row's recor",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteRootRows\n (reader : Expr)\n (scalar : RootQuote.DecoderM)\n ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The row controls check positive, zero, negative and false comparisons, exact\nand one-node-below budgets, wrong-goal proposals and caller rest",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a rational predecessor, RationalQuote.decoder supplies these proposals\nwithout a fixed list of permitted numerators. It recognizes canoni",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteRationalRoot\n (reader registry : Expr)\n (config : Reify.Co",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The registry argument is a Lean expression of type\nHex.RealClosure.BaseContext.Registry. This helper supplies scalar equations;\nit does not r",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The cubic regression reads a\nsupplied replay for X³−3 on the open interval (−8,8). A fresh public consumer\nproves that the accepted descripto",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A reader that rejects its input or replay returns structured invalid-provider\nevidence. Non-readers and unsupported shapes raise terminal exc",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Canonical Element.codec decodes remain protected throughout quotation,\nincluding predecessor decodes with an explicit Element.codec head. Exp",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The original root and rational cases use maxHeartbeats := 12000000 and\nmaxRecDepth := 8192. Scalar, sign-packet, shared, callback/module exam",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n This API does not register a tactic handler or establish complete root coverage.\nThe acceptance equation alone does not authenticate original",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a coefficient in a selected algebraic extension,\nScalarQuote.quote uses the owner's Element.signCodec with supplied checked\nsign facts, t",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Pass the original, fully applied Element.codec expression, retaining its\nimplicit arguments. Reinferring definitionally equal context aliases",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSuppliedScalar\n (codec facts literal : Expr)\n (predecessor",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The monorepo regression imports HexRCF.ScalarQuoteCases. It decodes the\nnonrational coefficient −2√2 in the existing selected positive √2 con",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.SelectedRootTests in\nopen Hex.RCF.ScalarQuoteTests in\nexample :\n Data.original.value restored =\n -2 * Real.sqrt 2 :=\n restored_value\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The fresh audit rechecks 13 reachable quotation-case theorem bodies, including this value\nidentity, with only the standard three axioms and n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Regressions cover continued/exact/exhausted proof budgets, rollback after the\nstrict stage succeeds, missing or mismatched facts, zero withou",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a polynomial over the same selected extension,\nScalarQuote.quotePolyWith\nquotes the coefficient array through its finite sign reader and ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSuppliedPolynomial\n (reader facts : Expr)\n (predecessor : ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The regression polynomial contains two copies of −2√2. The checked original\nreader restores both positions. Its first coefficient has this or",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.SelectedRootTests in\nopen Hex.RCF.SharedQuoteTests in\nexample :\n Data.original.value\n (restored.coeff 0) =\n -2 * Real.sqrt 2 :=\n valu",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The fresh importing audit pins seven reachable theorem bodies and three data\ndefinitions, their actual owner refinement and supplied sign evi",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RootQuote.runWith supplies the transaction for a sequence of quoteWith\nactions. RootQuote.run supplies it for a reader with DecoderM callback",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n This scalar API does not reconstruct provider or predecessor histories,\nproduce missing signs, or install a general source-goal solver. The s",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n ScalarQuote.decoderWith composes checked scalar decoding through several\nselected-field predecessors. Its lookup receives each exact canonica",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSelectedReader\n (reader registry : Expr)\n (factsFor :\n Expr → Reify.Reify",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The two-level regression checks one visit to its selected context followed by\none visit to its selected predecessor. Its lookup adds 19 sourc",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n An ordinary module consumer also runs the callback factory and exports the\nchecked scalar reader equation. Its sign follows from the owner's ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RecursiveScalarPublic in\nexample : restored.sign = 1 := sign\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A fresh importing audit checks the two-level fixture and this public consumer,\nincluding accepted annotated decodes and a charged decline fol",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n ScalarPacket.quoteWith checks a supplied optional sign-packet reader. Its\nprepared context has a checked equality to the original context; a ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSuppliedSignPacket\n (reader prepared same : Expr)\n (predecessor :\n RootQuote.DecoderM) :=",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The regression quotes the parent descriptor and one packet for the polynomial\n−2X at the selected positive square root of 2. The resulting fa",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RealClosure in\nopen Hex.RCF.SelectedRootTests in\nopen Hex.RCF.SignPacketQuote in\nexample :\n Option.map Data.original.value\n (Except.toOption\n ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Quoting the parent and packet in one request consumes 268,798 proof nodes.\nWith the frozen parent and its equality already available, the pac",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The caller still supplies and authenticates the parent history and packet.\nPredecessor arithmetic retains its supplied implementation; this h",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A separate public-module example quotes a packet for X at the selected real\nroot of X³−3. Its context slots retain closed applications of the",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.PublicSignPacket in\nexample :\n coefficientReal =\n Hex.RCF.RootQuoteTests.realRoot :=\n coefficient_value\n\nopen Hex.RCF.PublicSignPacket in\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a dependent match, quotation moves trailing branch-equality proofs along\nthe checked equation for the match's subject. This uses ordinary",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF in\nexample :\n DependentQuote.continuedFunction =\n some 29 :=\n ProofFunctionPublic.continued\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n During replay-law\nconversion, an explicit checked function boundary is first kept abstract, then instantiated\nwith the actual function and it",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RootHeader.quoteWith\naccepts the complete original RootReplay.readDescriptor application. It quotes\nthat reader, obtains the independently pa",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The public regression constructs a new root and context from that result,\nquotes the sign packet for X with fully numerical graph fields, and",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RootHeaderPacket in\nexample : coefficientReal = realRoot :=\n coefficient_value\n\nopen Hex.RCF.RootHeaderPacket in\nexample : 0 < coefficientReal :=\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The fresh importing audit includes the generated binding, packet reader,\ncoefficient decoding and real-value proofs. It rejects dependencies ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The default quotation rules recognize Signature.codec.decode applied to the\ncanonical encoding of its actual signature argument, using the ex",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.FrozenSignature in\nexample : readFirst.toOption =\n some first :=\n readFirst_checked\n\nopen Hex.RCF.FrozenSignature in\nexample : readSecond.toOpt",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The cubic packet retains frozen numerical node and nested-moment signatures\nfor its rational predecessor. A signature's serialization identit",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RootContext.packWith\nthen assembles an actual native root context from a closed retained parent and\nits checked descriptor. It keeps the exis",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The same decoded coefficient can be interpreted through the owner's ordinary\nreal model of the packed context, retaining its selected value a",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF in\nopen RootContextCases in\nopen RootHeaderPacket in\nexample : model.value coefficient =\n realRoot :=\n value_checked\n\nopen Hex.RCF in\nopen Root",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The packing budget covers context and signature proof construction. Model\nconstruction is checked separately; its cost is not included in tha",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RootPrepare.prepareWith\nprepares the native context of a reconstructed descriptor for subsequent\nquotation. It checks closed inputs and the e",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.RCF.RealCoefficients in\nmeta def prepareRootContext\n (reader clean : Expr)\n (scalar : RootQuote.DecoderM) :\n Reif",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Run this action and subsequent quotation in one RootQuote.runWith request.\nCombine its decoder with the exact predecessor's scalar and signat",
+ "overflow": 0
+ }
+ ]
+ },
+ {
+ "label": "narrow",
+ "width": 390,
+ "targets": [
+ {
+ "tag": "P",
+ "text": "\n RootQuote.quote accepts a Lean\nexpression for an Except ε α replay reader, including structured errors. It returns the reconstructed\ndata and",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A scalar decoder may propose an equality for the exact demanded decode. The\nhelper checks its type, dependencies and kernel proof before usin",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For example, this helper continues a request's existing budget and returns the\nupdated usage together with the checked equation:",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSuppliedRoot\n (reader : Expr)\n (scalar : RootQuote.Decoder",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Quotation follows the representative of a closed quotient when selecting\nreducibility boundaries. This lets a formula polynomial stored in a ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF in\nexample :\n QuotientQuote.reader = some 7 :=\n QuotientQuotePublic.accepted\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Its exact 92-node budget succeeds, one node less exhausts, and a wrong term\ncount rejects. The controls check caller-state restoration; a fre",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Tree replay uses its public leaf and split equations before opening the local\nnode checks. Keeping that boundary explicit avoids kernel conve",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF in\nexample :\n TreeQuote.splitTrue.toOption =\n some 31 :=\n TreeQuotePublic.split_true\n\nopen Hex.RCF in\nexample :\n TreeQuote.splitFalse.t",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The second reader selects its diagnostic branch; it does not accept the\nchanged certificate. Readers returning an error abort quotation and r",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Checked replay data may occur inside a Boolean condition. Quotation keeps\nclosed helpers whose types mention a protected replay function atta",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Conversion preserves data type arguments while rewriting their Boolean\ncomputations. A helper's type can itself mention another checked repla",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The helper controls cover stored arrays with table-dependent element types and\nfunctions with fixed replay-dependent proof types. Matching an",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RowQuote.decoder reads the\nliteral value of a checked selected-sign row through query, root and operation\ntransports. It uses the row's recor",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteRootRows\n (reader : Expr)\n (scalar : RootQuote.DecoderM)\n ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The row controls check positive, zero, negative and false comparisons, exact\nand one-node-below budgets, wrong-goal proposals and caller rest",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a rational predecessor, RationalQuote.decoder supplies these proposals\nwithout a fixed list of permitted numerators. It recognizes canoni",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteRationalRoot\n (reader registry : Expr)\n (config : Reify.Co",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The registry argument is a Lean expression of type\nHex.RealClosure.BaseContext.Registry. This helper supplies scalar equations;\nit does not r",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The cubic regression reads a\nsupplied replay for X³−3 on the open interval (−8,8). A fresh public consumer\nproves that the accepted descripto",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A reader that rejects its input or replay returns structured invalid-provider\nevidence. Non-readers and unsupported shapes raise terminal exc",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Canonical Element.codec decodes remain protected throughout quotation,\nincluding predecessor decodes with an explicit Element.codec head. Exp",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The original root and rational cases use maxHeartbeats := 12000000 and\nmaxRecDepth := 8192. Scalar, sign-packet, shared, callback/module exam",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n This API does not register a tactic handler or establish complete root coverage.\nThe acceptance equation alone does not authenticate original",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a coefficient in a selected algebraic extension,\nScalarQuote.quote uses the owner's Element.signCodec with supplied checked\nsign facts, t",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Pass the original, fully applied Element.codec expression, retaining its\nimplicit arguments. Reinferring definitionally equal context aliases",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSuppliedScalar\n (codec facts literal : Expr)\n (predecessor",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The monorepo regression imports HexRCF.ScalarQuoteCases. It decodes the\nnonrational coefficient −2√2 in the existing selected positive √2 con",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.SelectedRootTests in\nopen Hex.RCF.ScalarQuoteTests in\nexample :\n Data.original.value restored =\n -2 * Real.sqrt 2 :=\n restored_value\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The fresh audit rechecks 13 reachable quotation-case theorem bodies, including this value\nidentity, with only the standard three axioms and n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Regressions cover continued/exact/exhausted proof budgets, rollback after the\nstrict stage succeeds, missing or mismatched facts, zero withou",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a polynomial over the same selected extension,\nScalarQuote.quotePolyWith\nquotes the coefficient array through its finite sign reader and ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSuppliedPolynomial\n (reader facts : Expr)\n (predecessor : ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The regression polynomial contains two copies of −2√2. The checked original\nreader restores both positions. Its first coefficient has this or",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.SelectedRootTests in\nopen Hex.RCF.SharedQuoteTests in\nexample :\n Data.original.value\n (restored.coeff 0) =\n -2 * Real.sqrt 2 :=\n valu",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The fresh importing audit pins seven reachable theorem bodies and three data\ndefinitions, their actual owner refinement and supplied sign evi",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RootQuote.runWith supplies the transaction for a sequence of quoteWith\nactions. RootQuote.run supplies it for a reader with DecoderM callback",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n This scalar API does not reconstruct provider or predecessor histories,\nproduce missing signs, or install a general source-goal solver. The s",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n ScalarQuote.decoderWith composes checked scalar decoding through several\nselected-field predecessors. Its lookup receives each exact canonica",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSelectedReader\n (reader registry : Expr)\n (factsFor :\n Expr → Reify.Reify",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The two-level regression checks one visit to its selected context followed by\none visit to its selected predecessor. Its lookup adds 19 sourc",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n An ordinary module consumer also runs the callback factory and exports the\nchecked scalar reader equation. Its sign follows from the owner's ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RecursiveScalarPublic in\nexample : restored.sign = 1 := sign\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A fresh importing audit checks the two-level fixture and this public consumer,\nincluding accepted annotated decodes and a charged decline fol",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n ScalarPacket.quoteWith checks a supplied optional sign-packet reader. Its\nprepared context has a checked equality to the original context; a ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSuppliedSignPacket\n (reader prepared same : Expr)\n (predecessor :\n RootQuote.DecoderM) :=",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The regression quotes the parent descriptor and one packet for the polynomial\n−2X at the selected positive square root of 2. The resulting fa",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RealClosure in\nopen Hex.RCF.SelectedRootTests in\nopen Hex.RCF.SignPacketQuote in\nexample :\n Option.map Data.original.value\n (Except.toOption\n ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Quoting the parent and packet in one request consumes 268,798 proof nodes.\nWith the frozen parent and its equality already available, the pac",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The caller still supplies and authenticates the parent history and packet.\nPredecessor arithmetic retains its supplied implementation; this h",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A separate public-module example quotes a packet for X at the selected real\nroot of X³−3. Its context slots retain closed applications of the",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.PublicSignPacket in\nexample :\n coefficientReal =\n Hex.RCF.RootQuoteTests.realRoot :=\n coefficient_value\n\nopen Hex.RCF.PublicSignPacket in\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a dependent match, quotation moves trailing branch-equality proofs along\nthe checked equation for the match's subject. This uses ordinary",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF in\nexample :\n DependentQuote.continuedFunction =\n some 29 :=\n ProofFunctionPublic.continued\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n During replay-law\nconversion, an explicit checked function boundary is first kept abstract, then instantiated\nwith the actual function and it",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RootHeader.quoteWith\naccepts the complete original RootReplay.readDescriptor application. It quotes\nthat reader, obtains the independently pa",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The public regression constructs a new root and context from that result,\nquotes the sign packet for X with fully numerical graph fields, and",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RootHeaderPacket in\nexample : coefficientReal = realRoot :=\n coefficient_value\n\nopen Hex.RCF.RootHeaderPacket in\nexample : 0 < coefficientReal :=\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The fresh importing audit includes the generated binding, packet reader,\ncoefficient decoding and real-value proofs. It rejects dependencies ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The default quotation rules recognize Signature.codec.decode applied to the\ncanonical encoding of its actual signature argument, using the ex",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.FrozenSignature in\nexample : readFirst.toOption =\n some first :=\n readFirst_checked\n\nopen Hex.RCF.FrozenSignature in\nexample : readSecond.toOpt",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The cubic packet retains frozen numerical node and nested-moment signatures\nfor its rational predecessor. A signature's serialization identit",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RootContext.packWith\nthen assembles an actual native root context from a closed retained parent and\nits checked descriptor. It keeps the exis",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The same decoded coefficient can be interpreted through the owner's ordinary\nreal model of the packed context, retaining its selected value a",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF in\nopen RootContextCases in\nopen RootHeaderPacket in\nexample : model.value coefficient =\n realRoot :=\n value_checked\n\nopen Hex.RCF in\nopen Root",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The packing budget covers context and signature proof construction. Model\nconstruction is checked separately; its cost is not included in tha",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RootPrepare.prepareWith\nprepares the native context of a reconstructed descriptor for subsequent\nquotation. It checks closed inputs and the e",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.RCF.RealCoefficients in\nmeta def prepareRootContext\n (reader clean : Expr)\n (scalar : RootQuote.DecoderM) :\n Reif",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Run this action and subsequent quotation in one RootQuote.runWith request.\nCombine its decoder with the exact predecessor's scalar and signat",
+ "overflow": 0
+ }
+ ]
+ }
+]
\ No newline at end of file
diff --git a/reports/data/hexrcf-cell-memos/captures/visual-review.json b/reports/data/hexrcf-cell-memos/captures/visual-review.json
new file mode 100644
index 0000000000..3c70e60d66
--- /dev/null
+++ b/reports/data/hexrcf-cell-memos/captures/visual-review.json
@@ -0,0 +1,55 @@
+{
+ "scope": "All ten final captures actually viewed at native resolution; changed prose and source code readable with no local clipping. Pre-existing page overflow is outside this change.",
+ "captures": [
+ {
+ "path": "captures/cell-memo-final-desktop-memo.png",
+ "sha256": "86cacee24f4a37178c2cd0aca13154935072b0c0bd3e37030bb22fd0e87bc419",
+ "viewed": true
+ },
+ {
+ "path": "captures/cell-memo-final-desktop-measurements.png",
+ "sha256": "baf79ecaf31220d35f28a63ba851439ec4adb5d7579f9efb8a476d35ae3b98db",
+ "viewed": true
+ },
+ {
+ "path": "captures/cell-memo-final-desktop-audit.png",
+ "sha256": "822e492e21be6e070101d0d97fb9e660c9335122d00ed6e3a71cdc3a1d7f4055",
+ "viewed": true
+ },
+ {
+ "path": "captures/cell-memo-final-desktop-source.png",
+ "sha256": "105d6a2b955189ea6a94322ef7886693183d09d0d8a46295e962d6ada943b964",
+ "viewed": true
+ },
+ {
+ "path": "captures/cell-memo-final-desktop-sourcecode.png",
+ "sha256": "df0ee93e0fd0f89c746e9b6ae1176fe88fb8183b560b30bc02e2ddc0d22e15be",
+ "viewed": true
+ },
+ {
+ "path": "captures/cell-memo-final-narrow-memo.png",
+ "sha256": "79d3e35eb080c7e99113722227509b3b9678329ff4899d4cd7e7ea5363d1fe34",
+ "viewed": true
+ },
+ {
+ "path": "captures/cell-memo-final-narrow-measurements.png",
+ "sha256": "8634e9a948bd80650fe863dcb49e5600b49666f04a6c527dc4a15062b7ed3771",
+ "viewed": true
+ },
+ {
+ "path": "captures/cell-memo-final-narrow-audit.png",
+ "sha256": "e936759b851d46fcb48ae5e356051544413002e82d64be3625b662c01952d2a5",
+ "viewed": true
+ },
+ {
+ "path": "captures/cell-memo-final-narrow-source.png",
+ "sha256": "52b3fe187c48d9add65fd848db62f1f267d128bc7fd6fabfbb2f1cef87a4bec6",
+ "viewed": true
+ },
+ {
+ "path": "captures/cell-memo-final-narrow-sourcecode.png",
+ "sha256": "b56fb63228651c89bc86aa3d14615da3f7da856da5893b1a127e4e5128217ddd",
+ "viewed": true
+ }
+ ]
+}
diff --git a/reports/data/hexrcf-cell-memos/context.json b/reports/data/hexrcf-cell-memos/context.json
new file mode 100644
index 0000000000..9938929403
--- /dev/null
+++ b/reports/data/hexrcf-cell-memos/context.json
@@ -0,0 +1,1482 @@
+{
+ "source_commit": "fd394a45b015b713dc0692adfb29da39924671a9",
+ "source_tree": "02c08794ce28a9cc58b57919fc24732abb26eeec",
+ "baseline_commit": "372368f8a52882855dbefc7cc1df5b0b1feca062",
+ "unchanged_guards": [
+ "conformance/HexRCF/SelectedRoot/KernelCheck.lean",
+ "experiments/KernelReplay/AxiomClosure.lean",
+ "AGENTS.md",
+ "PLAN.md",
+ ".github/workflows/ci.yml"
+ ],
+ "sources": {
+ ".github/workflows/ci.yml": "5db61a70eb52d7478994377179c1b35b360a794fcff4b1c257496b5a6394231c",
+ "AGENTS.md": "4e0a48cf49a61e56ed84c8b28e232b5bfad29f2da20571377692be6e1c316f30",
+ "HexManual/Chapters/HexRCF/AlgebraicCells.lean": "756608f269f58579c646367a46d5d8314a912459b02938d4b4355d716e6278dd",
+ "HexManual/Chapters/HexRCF/RootQuote.lean": "0fe7ecb8568a5b3492aeea8310a4816797802d0a764093b824673a635ecf628a",
+ "HexManual/Chapters/HexRCF/RootTableQuote.lean": "78d1be637a32593b03f000ab153c7fdf05a1b5332ea3efb9c186aacfd68f0ae5",
+ "HexRCF/README.md": "3830d758a8a75d59df1a6dd01f59204a86858b5eda3e43a78f9e9e9c2d769a8a",
+ "HexRCF/SPEC/hex-rcf.md": "df8c6bb2435a2794faa36bc77e41f4c936f06ae149f29c3e68fe0d79f4ebfafb",
+ "HexRCF/Tactic.lean": "09d895ba1dd2c1af0bfffca197494f2614380ded268ff13e4e0b02fea22b9224",
+ "HexRealClosure/Algebraic.lean": "d05f9fb72fe9544ae9ddc685dff17080f876aa4c99c70e8992d511e011f6a454",
+ "HexRealClosure/ContextData.lean": "ca29790752b8d25f10d03a9877690a5ff40f1fdf6815c96fe9693941206e662c",
+ "HexRealClosure/SignCodec.lean": "7126323c97b77204386795a0f252f1babfd0ed7f3dba7ee3927a99b9d5c1852a",
+ "HexRealClosure/SignFacts.lean": "9c22837e93e6f50cc96310163e352ac608fbcfbd6275edab33751da2fd84f47c",
+ "HexRealClosure/SignatureCodecTests.lean": "ffc72777523ac0e92b563481804bdfb581fb0173fe7a021009737d57959b4462",
+ "HexRealClosure/TowerContext.lean": "6ef8b87b2d81cb177505a4bbc88befa078b20578cedd49e836d850753c203ee3",
+ "PLAN.md": "e94a60324486913b4a04650edd617c4ff8bef469dc7fd311adea8407c6662ea0",
+ "SPEC/real-closure-execution.md": "bc0948ad7de6969baaed89c0b3052cb0d21d64d634f8a336f9a7dde446b057f5",
+ "adapters/HexRCF/RealCoefficients.lean": "6a80cc920997d149d4098220453f357cd9ac12476d4cb6d0642d0d10d9579650",
+ "adapters/HexRCF/RealCoefficients/CellOperations.lean": "3561cc80c7c866141f05a387ce1100ee0cadd98281a03395551cebcde5bd6e2a",
+ "adapters/HexRCF/RealCoefficients/CellQuote.lean": "618edb72b0f175cdb9d528919f46c3a7613d0b1ab69fc9640c29a9a4669baf3e",
+ "adapters/HexRCF/RealCoefficients/CellRead.lean": "65274f89c940bad74eab8c9075f9256c6ed3d8b90d3294aec4e85883e425fb10",
+ "adapters/HexRCF/RealCoefficients/RationalQuote.lean": "675e2ba065b696f257adefc07fe30ddb0190f321d86005444579ea5a0744bdf5",
+ "adapters/HexRCF/RealCoefficients/RealModel.lean": "712b4fd3edff8eaa6f93e501da5debf04529d1ea8c11a18389820f866d179c43",
+ "adapters/HexRCF/RealCoefficients/Reify.lean": "ea8474b9e253f93a1583064ca99ec0bf376dadf5457fd60b57e9e18460cf449c",
+ "adapters/HexRCF/RealCoefficients/RootContext.lean": "792176eab63e5e62b759a10893569946ef6d019566b8116c85237b3e16fcdb86",
+ "adapters/HexRCF/RealCoefficients/RootHeader.lean": "681f2a964bc30f65a92a0fb1a58b4d4013eb396df37ca813962702065fb46261",
+ "adapters/HexRCF/RealCoefficients/RootPrepare.lean": "de72a8e3ac4adb13365801476467bf691e630d0952b018ccecd88846c3bdb025",
+ "adapters/HexRCF/RealCoefficients/RootQuote.lean": "89f3ad4b0c4a8ae058560201900877035d896427176b944b34acde9f9b23d7e8",
+ "adapters/HexRCF/RealCoefficients/RowPacketQuote.lean": "edbb3d23f72422f5a1dea163c283848ec285418b7bdb9eedba553b83066121af",
+ "adapters/HexRCF/RealCoefficients/RowQuote.lean": "3b7e7d2ebcbd53a6ea893bc8f4c884d767430f8b98a3f1ca770fe7c7b122f3c9",
+ "adapters/HexRCF/RealCoefficients/ScalarPacket.lean": "9ae62bea85dab43ec01329defa9f788af4843e74b24f40f6c6f1b28adaadc6bf",
+ "adapters/HexRCF/RealCoefficients/ScalarQuote.lean": "fee2617a998f29d05c8959b484060ac1d719359c6d851a8ff6699fa9cb370acc",
+ "adapters/HexRCF/RealCoefficients/SignatureQuote.lean": "c3bb71b52c2a544b902bc256b3a162e1c3c4e7f94ae6b21808914e67109710eb",
+ "adapters/HexRealClosureTheory/Algebraic.lean": "2495153acbe4e468521913a2f5d6569831cd05f5ee48d5ddb26fc31a43438c7e",
+ "adapters/HexRealClosureTheory/SignFacts.lean": "c2b8cf96de0cccc2c0c3cbe83f0afd7c40ab9736b75f377ec5bfedc0907f34e3",
+ "adapters/HexRealClosureTheory/TowerModel.lean": "70d0e57e8ecc78eb9b7675d875157462d27cf9494d49d72bba019eaa6dd1d788",
+ "conformance/HexRCF/CellQuoteStageProofs.lean": "e4b52419e3409001df535a9ed4bae1f66d977fb33d507ff6c79f787a9f1f7f11",
+ "conformance/HexRCF/CellQuoteStages.lean": "e4593f2c8169af00398ff608dd53cbbfbe6b8408ddbdd07de6f64f59acf8a25f",
+ "conformance/HexRCF/CellSourceProofs.lean": "5c2376bd0735faa7889fe4e240404236baadc367c2f91753d71ad91ad0c63448",
+ "conformance/HexRCF/CellSourceQuote.lean": "c64892641528285d8ee40db87e36c39835b9796653c741a8f150f2010e9e8f92",
+ "conformance/HexRCF/DependentQuote.lean": "0df154544a17857334480e7c577ecbcf1afe04165fa2da1a5a6407bf41e85518",
+ "conformance/HexRCF/DependentQuoteData.lean": "ed254475e78fa6edb27d4e55222a598b07b7357154ea0495d6195f2f1d39ee46",
+ "conformance/HexRCF/DependentQuoteProofs.lean": "5875aa9748f50340668e58aea97b196d3353313352fb8c819ae5ee3542556980",
+ "conformance/HexRCF/DependentScalarProofs.lean": "9fe3f3871f929e28355985c574c0b8c742be062ae5f19033d7d8bf9e67cd88d8",
+ "conformance/HexRCF/DependentScalarQuote.lean": "e20dd7346c337dd17126c394965f268e568706730f475844d7c0907051224933",
+ "conformance/HexRCF/FrozenSignatureConformance.lean": "8e7d432aecb87fb89bb188e4c579e86fb5c3348c5430f1e2b1a00f1f820a940e",
+ "conformance/HexRCF/FrozenSignatureProofs.lean": "55de6da9b0b3dc2d1e384d6c838d13294287c44060afb8e70aa2a0c8e01a81cb",
+ "conformance/HexRCF/ProofFunctionPublic.lean": "f928c9f0dd0a704d34a516b6282cfa6a7a4eb6c112d49689c450647a44370a6b",
+ "conformance/HexRCF/PublicSignPacket.lean": "c32d73c5634376907b965e1ea6cf69352fdda1f1945ce2f34a378cc217778102",
+ "conformance/HexRCF/PublicSignPacketControls.lean": "b4f98bd8ef190a361dd7752d4d5ece0cfbd862ff4face5a06dfabecf87096028",
+ "conformance/HexRCF/PublicSignPacketProofs.lean": "442f6d3e04a36db25611f0396103a1eee5ee411c40e8f3cc93df1acf7898bbbb",
+ "conformance/HexRCF/PublicSignPacketValues.lean": "72705dba30f04f986188903fb49b983c6f0a664895116fca8bd8b6b46b6517e5",
+ "conformance/HexRCF/QuotientQuote.lean": "97b2cbc9abdb46db33a9a91328f331edf8dea055cc244489158121cde8dc1903",
+ "conformance/HexRCF/QuotientQuoteData.lean": "ec26777d655a7898d7f7922fcea8f426a3f8c77a53000b69b6fe1755a0348870",
+ "conformance/HexRCF/QuotientQuoteProofs.lean": "f1d95accf6caed1c7354408b3a1a0b29493a526e82036390e39102ebe80c6752",
+ "conformance/HexRCF/QuotientQuotePublic.lean": "a3bd9a082df14a0ac93ba3798e13c6ebbf9dff98d7613264713aa281a5a18bea",
+ "conformance/HexRCF/RationalQuoteConformance.lean": "f03844d4a44a5c61b702ed0b1697619da9b20f4ac42122b9d1a6d3fa4a2de9ac",
+ "conformance/HexRCF/RecursiveScalarQuote.lean": "83ba1f3ed63afdbb148f171736a0aacebc7eef4ae3bf32dca29811515c3f051b",
+ "conformance/HexRCF/ReplayBoundary.lean": "bbc09553d62198a18e897981d5f443c81f09dba8d371d2cdaeaa846d22cbc2f8",
+ "conformance/HexRCF/ReplayBoundaryProofs.lean": "d755462a7344dc9f5304fba255bcefb42188c1de5a51d92d8567a27f22482dc2",
+ "conformance/HexRCF/ReplayHelperProofs.lean": "6dd68829399ec8908a877a3f7705cc9321e49b9581d0d577d114950242e43a57",
+ "conformance/HexRCF/ReplayHelpers.lean": "4501fa39e52a8a2bb52fdd7b183c16801090dd026304105afb4342a1c441c2a3",
+ "conformance/HexRCF/RootContextConformance.lean": "0c52084609ec3de8afd51330a7d2cc97f7bae1d8b2bbc421138783940fc7db37",
+ "conformance/HexRCF/RootContextProofs.lean": "b4c2e3ce686ce8bc60bfdafe2be2f566c6de46758f4827d307f3d5592b59d2e9",
+ "conformance/HexRCF/RootHeaderBudget.lean": "db30b6b7781fabd238ea2c934477e5ae281cc6cd905f11848ce46eb66ef45fe0",
+ "conformance/HexRCF/RootHeaderControls.lean": "aca063af3bfe475166aef92193f162c25a0e53eea094087cf334406a3d513157",
+ "conformance/HexRCF/RootHeaderPacket.lean": "dcd8e63c1d656fc800690b35554a0f835a1ee0bb96312215f8c12348d8a0e79a",
+ "conformance/HexRCF/RootHeaderProofs.lean": "e6630f0464fd0096b9af74b4640d2abc514a62c0b0fc706b4a2e74c9602eeb8c",
+ "conformance/HexRCF/RootHeaderValues.lean": "de9a8fc7c2e9371cbd3324eb700180411e49865dbc6535a74d2c882f74e38e13",
+ "conformance/HexRCF/RootPrepareControls.lean": "b36af8efd1e12227188b6fb7bde258e80d5c1c874338a324cb53c5ccc6c1330f",
+ "conformance/HexRCF/RootPreparePacket.lean": "86185bcc5fdddb1f700d869a115a91034954714f69a83171fd0e96f601e76fe3",
+ "conformance/HexRCF/RootPrepareProofs.lean": "4a5bc6655576a6592fcd5cd801bcfebd425243b1bb6cb39b0bb46d500a3938be",
+ "conformance/HexRCF/RootPreparePublic.lean": "a9e09cbe8d1287b97dde71ad1c6dbe149cfbacb6f81f41a8493ee802416d0805",
+ "conformance/HexRCF/RootQuoteCases.lean": "602d15ef501e969183bffbda7fb3c0f00a174ba5c2dbc35370ee7fce896944dd",
+ "conformance/HexRCF/RootQuoteConformance.lean": "f6a652a243ba62cffc671d1365c6ab47b6618179acb172019ec5609ea0324d3c",
+ "conformance/HexRCF/RootQuoteData.lean": "faa259d129d5c65a063c7143e45d5d9d19573ed49862aa5ecb3978ff389cb514",
+ "conformance/HexRCF/RootQuoteSource.lean": "aca1654efc1a452aca8ef573bb8ea3a435a4e1e18a4dca854d9bcc8e350d511d",
+ "conformance/HexRCF/RootTableQuote/Conformance.lean": "ec5bd136df58cc24a40ca989e3d33e55923082aed7591b234f55c70c013c74ad",
+ "conformance/HexRCF/RowPacketControls.lean": "ab69c57b66fe8129be5f07e5e5f42b7b35d60a23b305ec224d2d7dca28ac7c82",
+ "conformance/HexRCF/RowQuoteCases.lean": "8d2ebddc05d5f0d08b62b50d3498b34b47ab0b3accc4d0a572e621fd83d606d4",
+ "conformance/HexRCF/RowQuoteData.lean": "ce60cb18f548f55e929d4803c7ed824ad0a7621fd4abda09a191f76393fabf0c",
+ "conformance/HexRCF/RowQuoteDepth.lean": "6ada3c44bea055425d223dc57eafb4f0c88349713d815ded4beec9720f7802ad",
+ "conformance/HexRCF/RowQuoteProofs.lean": "317d4f981f32bb28666fcabc6248f4a57fe67c95a7fe431f7993aeacfa377ed3",
+ "conformance/HexRCF/SelectedRoot/KernelCheck.lean": "12e7e2e3f4667a76dc89c4b36796bff177f3c187b81adc5eb5e049ff1ce6669d",
+ "conformance/HexRCF/SharedQuoteCallbacks.lean": "6132cc3722af3cf251d11c857a572f09128d3614d931724965cbcf488dc4db6d",
+ "conformance/HexRCF/SignPacketProofs.lean": "3980cad31637f5798b2c351e1efc2a29b946de1d90e06fb11acd85e2a5c46321",
+ "conformance/HexRCF/SignPacketQuote.lean": "fcda11e6c75353d4519c4eb0e9c302b84d7e41030316c99fcacb885dabf97545",
+ "conformance/HexRCF/SignatureQuoteConformance.lean": "26f16c37cb9e0d5c09a082787f4a66673437adbf998023fd5e9625db16ff5d3f",
+ "conformance/HexRCF/SourceSelectionCases.lean": "368ded3f07bb4be269f26a2fd2b7044904ea16d1dd1cba41d8bccb373d004005",
+ "conformance/HexRCF/TreeQuote.lean": "049065aa64bb13432b1d7183759979d28eebba98d18b6f54ab849e5953ce92c1",
+ "conformance/HexRCF/TreeQuoteData.lean": "c595c2278d2997483b755aa585da874c27eed40e4e1a8106d7f553e4f574776b",
+ "conformance/HexRCF/TreeQuoteProofs.lean": "f9a40248237480f8972df62dff548ef0599205b76014e070866e72586f161933",
+ "conformance/HexRCF/TreeQuotePublic.lean": "adc6dc6871208f31970cf5ae0c2472fd325a72e1df8114a6e8178ef8b2c71570",
+ "experiments/KernelReplay/AxiomClosure.lean": "f49377265f05f52b633b10a59255a03731e08d022cc54763de9851c5b5325034",
+ "lake-manifest.json": "fd2dc4df30cd44e4d30568489d616e7bcc8a78747500139134be56f35ae746a4",
+ "lakefile.lean": "90d9b2ba6f94f61ae5ebe523782d107ff6b4b96e4b1b994ca0245df968df3628",
+ "lean-toolchain": "bc84812c94489d1e3e191baa1dc10d5eb684382d7fe9d2a5ab085e72c1c67e47",
+ "libraries.yml": "14e3dd1c01bb0c369b2216e2733378d61172040fd9f69dd0354d4e1267d9c5c1"
+ },
+ "artifacts": [
+ {
+ "path": "validation/cell-memo-expanded-1.log.gz",
+ "bytes": 28796,
+ "sha256": "af487af7f92976bb325ad33476f0c776c36bb191bb90be14039a3dc57f8d3804",
+ "uncompressed_sha256": "812d9e998c0594deaa06e10ad72b22680794c12e45c23ea1ae335fde93885997"
+ },
+ {
+ "path": "validation/row-packet-production-conformance-3.log.gz",
+ "bytes": 7959,
+ "sha256": "9369dd1ead5e2719e9707bdcae7d3d0b0431220eb26cd0b71c208beaa04ad924",
+ "uncompressed_sha256": "102d5516f360ce1c3a505f7e283d031c97ff2bb5a1b019e9ef5e50709dc12e9f"
+ },
+ {
+ "path": "validation/row-packet-controls-7.log.gz",
+ "bytes": 7452,
+ "sha256": "6cda13b83f5dbc9ff1b4e5468a24aed564c08498a8cd6dc83d1efb9ab5256cc8",
+ "uncompressed_sha256": "7738322b680c24a0c87178754fd98c3ffada9e70aa4ee3cb5a160ed6ced3b41e"
+ },
+ {
+ "path": "validation/cell-memo-render-1.log.gz",
+ "bytes": 16337,
+ "sha256": "b2d5367b82c6e12e6e65bba8655ee6232873f0a582da50dbb7e8aabb7cd72f80",
+ "uncompressed_sha256": "5a52b08b55015c0ba7f8942d688cc6e7b25cb6032e3c079c2fc58789ac18b2d9"
+ },
+ {
+ "path": "validation/cell-memo-browser-1.log.gz",
+ "bytes": 241,
+ "sha256": "4474e2f0e7b013bc221b4fbd882e572c85a7baf7dfe8d8191c5339b50449e522",
+ "uncompressed_sha256": "53cc88081512b0706f6e440743d998a1b661593c43a1f398406a31836cece2bb"
+ },
+ {
+ "path": "validation/metadata.json",
+ "bytes": 1183,
+ "sha256": "e5c807d17e9de1548ca91fa8e8571517c4278136d4381033a6f893cefbbb6947"
+ },
+ {
+ "path": "validation/row-packet-final-metadata-copyright.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "validation/row-packet-final-metadata-lines.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "validation/row-packet-final-metadata-dag.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "validation/row-packet-final-metadata-admissions.log.gz",
+ "bytes": 100,
+ "sha256": "6ba2a1bd399c71b9e886200a3dcadfce12544222770b314a019de2f5dc7ca4a0",
+ "uncompressed_sha256": "9ab723f53eef87022d408fffd50a2648dd41a1ffe9d7261628d7274f1bd2bd69"
+ },
+ {
+ "path": "validation/row-packet-final-metadata-diff.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "validation/row-packet-final-metadata-selected-admissions.log.gz",
+ "bytes": 133,
+ "sha256": "708380ef9db2cc22419d7585d40e2bf48a6051be49098c21816f09a97a4c1839",
+ "uncompressed_sha256": "1cb8e704c3b1cb8f713582bb4a8fbd4f85e8b366d3e8f81d1085c36a8d7192a7"
+ },
+ {
+ "path": "validation/row-packet-final-metadata-relative.log.gz",
+ "bytes": 105,
+ "sha256": "c43d1ba9fa5a6ea3d05919ed8b5f63ae6d92bdbc66b09a9c0e2db03229da84e9",
+ "uncompressed_sha256": "5b6d65aeb6cb570bc5e9b14d70d6222627b455a17e51016ce5d0bf8c9d5cd4c3"
+ },
+ {
+ "path": "validation/collect-cell-memos.py.gz",
+ "bytes": 1759,
+ "sha256": "08fe9bf8b8f5ce49f58134fb82d382b2bfe112457e24f113328ec7358d72f8d4",
+ "uncompressed_sha256": "84d79320635e15462abae6de701c04fdd1644e4db3f2d9f2a21d18fb3fa71f2b"
+ },
+ {
+ "path": "validation/row-packet-final-metadata.py.gz",
+ "bytes": 1333,
+ "sha256": "6b0ba99ea862697754d65605c34ac282d525f53d036c7af50ab544b8da951751",
+ "uncompressed_sha256": "13e60da6869c60617b71da3facabb4d7125638d1cf5b00edef365dd272649a12"
+ },
+ {
+ "path": "validation/cell-memo-expanded-targets.txt.gz",
+ "bytes": 309,
+ "sha256": "2cd9f77c5aaa708a15390178d9acf6ef9aec6e1ef2dad496395c83ac33f0032e",
+ "uncompressed_sha256": "e4af4835af73c26310dbb52570599ca4cd471eef987f1dea760747e4a7f6dd79"
+ },
+ {
+ "path": "validation/cell-memo-memory-policy.txt.gz",
+ "bytes": 133,
+ "sha256": "08e514d38897fb685609021c8978254ea8088070528b88ac72cc838a969b7824",
+ "uncompressed_sha256": "75ff277f8c05a442a9c9b7c8529d0e7b3467e1e65059fdb15e331ac4df8543c7"
+ },
+ {
+ "path": "validation/cell-memo-expanded-invocation.json.gz",
+ "bytes": 448,
+ "sha256": "4aaae89c5998a049300b67c9b4ff755e5f410a3c1fe836cefd1f981d95b2411e",
+ "uncompressed_sha256": "b8d1a17146857e685af2e619c4e30c1e76af646d3ac48f1cd70a8d0d5177651c"
+ },
+ {
+ "path": "validation/run-bounded.sh",
+ "bytes": 302,
+ "sha256": "63bc5f97337e6b039bb3a9b1ba2a500be96fd1c2a2f73b43dae284aa9b18dda8"
+ },
+ {
+ "path": "captures/render.lean.txt",
+ "bytes": 209,
+ "sha256": "0176e2996b1af2c01a0da614d2338ee68901fa0026a328ce31b66a2e23d35ad6"
+ },
+ {
+ "path": "captures/browser.mjs",
+ "bytes": 5797,
+ "sha256": "36d2f34d409ba7ae6c6e8da066588de95c7a9648f553f69b228a6812bb429e1d"
+ },
+ {
+ "path": "captures/inspection.json",
+ "bytes": 7716,
+ "sha256": "bace22fae4cc7b27d374e7fa73134b3a5392c8d0f524fba9cbd3a316bdb882b1"
+ },
+ {
+ "path": "captures/section-overflow.json",
+ "bytes": 33290,
+ "sha256": "460d7d18f6abf49cea53de4ca49cee19fe70e1a715c67b010f3e16f49dc27c49"
+ },
+ {
+ "path": "captures/cell-memo-final-desktop-memo.png",
+ "bytes": 273510,
+ "sha256": "86cacee24f4a37178c2cd0aca13154935072b0c0bd3e37030bb22fd0e87bc419"
+ },
+ {
+ "path": "captures/cell-memo-final-desktop-measurements.png",
+ "bytes": 278521,
+ "sha256": "baf79ecaf31220d35f28a63ba851439ec4adb5d7579f9efb8a476d35ae3b98db"
+ },
+ {
+ "path": "captures/cell-memo-final-desktop-audit.png",
+ "bytes": 279874,
+ "sha256": "822e492e21be6e070101d0d97fb9e660c9335122d00ed6e3a71cdc3a1d7f4055"
+ },
+ {
+ "path": "captures/cell-memo-final-desktop-source.png",
+ "bytes": 279927,
+ "sha256": "105d6a2b955189ea6a94322ef7886693183d09d0d8a46295e962d6ada943b964"
+ },
+ {
+ "path": "captures/cell-memo-final-desktop-sourcecode.png",
+ "bytes": 284317,
+ "sha256": "df0ee93e0fd0f89c746e9b6ae1176fe88fb8183b560b30bc02e2ddc0d22e15be"
+ },
+ {
+ "path": "captures/cell-memo-final-narrow-memo.png",
+ "bytes": 176469,
+ "sha256": "79d3e35eb080c7e99113722227509b3b9678329ff4899d4cd7e7ea5363d1fe34"
+ },
+ {
+ "path": "captures/cell-memo-final-narrow-measurements.png",
+ "bytes": 172408,
+ "sha256": "8634e9a948bd80650fe863dcb49e5600b49666f04a6c527dc4a15062b7ed3771"
+ },
+ {
+ "path": "captures/cell-memo-final-narrow-audit.png",
+ "bytes": 173275,
+ "sha256": "e936759b851d46fcb48ae5e356051544413002e82d64be3625b662c01952d2a5"
+ },
+ {
+ "path": "captures/cell-memo-final-narrow-source.png",
+ "bytes": 171846,
+ "sha256": "52b3fe187c48d9add65fd848db62f1f267d128bc7fd6fabfbb2f1cef87a4bec6"
+ },
+ {
+ "path": "captures/cell-memo-final-narrow-sourcecode.png",
+ "bytes": 171370,
+ "sha256": "b56fb63228651c89bc86aa3d14615da3f7da856da5893b1a127e4e5128217ddd"
+ },
+ {
+ "path": "captures/visual-review.json",
+ "bytes": 2011,
+ "sha256": "9ea83334e789a9e9a0c5c65b21629bbe36d50394d87068e10ed6f726c8567283"
+ },
+ {
+ "path": "diagnostics/cell-memo-expanded-1-inputs/HexManual/Chapters/HexRCF/AlgebraicCells.lean.gz",
+ "bytes": 11961,
+ "sha256": "3f2803d9b73ef2269aa74acb5b14e11f5dd77a1893f5f2fc461af5d8ecf113a6",
+ "uncompressed_sha256": "756608f269f58579c646367a46d5d8314a912459b02938d4b4355d716e6278dd"
+ },
+ {
+ "path": "diagnostics/cell-memo-expanded-1-inputs/adapters/HexRCF/RealCoefficients/CellQuote.lean.gz",
+ "bytes": 5903,
+ "sha256": "7966bbaf5d46a2e15430a74add28b968a8dbd561d74dd8b93f8072705aa4c320",
+ "uncompressed_sha256": "618edb72b0f175cdb9d528919f46c3a7613d0b1ab69fc9640c29a9a4669baf3e"
+ },
+ {
+ "path": "diagnostics/cell-memo-expanded-1-inputs/adapters/HexRCF/RealCoefficients/RowPacketQuote.lean.gz",
+ "bytes": 2826,
+ "sha256": "d546171a2404fa49938f78fe25ae0a787316362430b26dc038bad5b20f60c6ef",
+ "uncompressed_sha256": "edbb3d23f72422f5a1dea163c283848ec285418b7bdb9eedba553b83066121af"
+ },
+ {
+ "path": "diagnostics/cell-memo-expanded-1-inputs/conformance/HexRCF/CellQuoteStageProofs.lean.gz",
+ "bytes": 1632,
+ "sha256": "84f9ae9fc491b1e9787b4d2d4be213c602e8ebd50314a7448cdc15045c6f4014",
+ "uncompressed_sha256": "e4b52419e3409001df535a9ed4bae1f66d977fb33d507ff6c79f787a9f1f7f11"
+ },
+ {
+ "path": "diagnostics/cell-memo-expanded-1-inputs/conformance/HexRCF/CellQuoteStages.lean.gz",
+ "bytes": 3700,
+ "sha256": "c5fd1f462583386208f0ec97e8b6aa078648cdaaa009f720957f8a1295d1755d",
+ "uncompressed_sha256": "e4593f2c8169af00398ff608dd53cbbfbe6b8408ddbdd07de6f64f59acf8a25f"
+ },
+ {
+ "path": "diagnostics/cell-memo-expanded-1-inputs/conformance/HexRCF/CellSourceProofs.lean.gz",
+ "bytes": 1606,
+ "sha256": "449bb777552b18636b220e4d514dd3857530082962786b1457f8180c2cd842b3",
+ "uncompressed_sha256": "5c2376bd0735faa7889fe4e240404236baadc367c2f91753d71ad91ad0c63448"
+ },
+ {
+ "path": "diagnostics/cell-memo-expanded-1-inputs/conformance/HexRCF/CellSourceQuote.lean.gz",
+ "bytes": 3141,
+ "sha256": "6a6d392eec40834af7d5e9977df21aa635367e5d25aa95e42d3e6d363140d89e",
+ "uncompressed_sha256": "c64892641528285d8ee40db87e36c39835b9796653c741a8f150f2010e9e8f92"
+ },
+ {
+ "path": "diagnostics/cell-memo-expanded-1-inputs/conformance/HexRCF/RowPacketControls.lean.gz",
+ "bytes": 1414,
+ "sha256": "a078cddfde48c8b3ef14e43f078293c17b78093fcbfd7d4786864f1ecd381624",
+ "uncompressed_sha256": "ab69c57b66fe8129be5f07e5e5f42b7b35d60a23b305ec224d2d7dca28ac7c82"
+ },
+ {
+ "path": "diagnostics/cell-memo-expanded-1-inputs/lakefile.lean.gz",
+ "bytes": 22692,
+ "sha256": "e1fc4d26394b38877626a64ad59ffb997b8368be4ec6bc28595e6a0b7d1f393f",
+ "uncompressed_sha256": "90d9b2ba6f94f61ae5ebe523782d107ff6b4b96e4b1b994ca0245df968df3628"
+ },
+ {
+ "path": "diagnostics/cell-memo-expanded-1-inputs.json.gz",
+ "bytes": 545,
+ "sha256": "a8facaf619e94ba3e9140daeafa83a039929c039858192ac22fc638bea913d09",
+ "uncompressed_sha256": "e126d13f667429bacf2b666e8a2a6bfe7303ea94b7426c06ff3c09ed7b44980b"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/.github/workflows/ci.yml.gz",
+ "bytes": 12791,
+ "sha256": "a03e42085f591b70fc3c3bf846bab4b2b022e40534b126760faf667f861efe43",
+ "uncompressed_sha256": "5db61a70eb52d7478994377179c1b35b360a794fcff4b1c257496b5a6394231c"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/AGENTS.md.gz",
+ "bytes": 5050,
+ "sha256": "2944f37f298980376a1ee7e75844f54f5ee6a58063c40410d5e7061ca6f29a74",
+ "uncompressed_sha256": "4e0a48cf49a61e56ed84c8b28e232b5bfad29f2da20571377692be6e1c316f30"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/HexManual/Chapters/HexRCF/AlgebraicCells.lean.gz",
+ "bytes": 11300,
+ "sha256": "cb2a2e088bbd2cba080c226e660e719a55c4204e912afa122fbfb16d75f76133",
+ "uncompressed_sha256": "31d46d5285571d86e8dad8015bad1ef7b9f02be026ff82f2cb1b2adba8053344"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/HexManual/Chapters/HexRCF/RootQuote.lean.gz",
+ "bytes": 10703,
+ "sha256": "f8391976216841f4a276cde4f6526096fe91b6ebff8fae71ca667d2384813409",
+ "uncompressed_sha256": "0fe7ecb8568a5b3492aeea8310a4816797802d0a764093b824673a635ecf628a"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/HexManual/Chapters/HexRCF/RootTableQuote.lean.gz",
+ "bytes": 2115,
+ "sha256": "2c4da9af19ec0f3039405ec41453a3f14b73ae7ad80192f115b348d237dbc936",
+ "uncompressed_sha256": "78d1be637a32593b03f000ab153c7fdf05a1b5332ea3efb9c186aacfd68f0ae5"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/HexRCF/README.md.gz",
+ "bytes": 17157,
+ "sha256": "6da6ca6d7faa80f0c5caece89cee471c9b8afa035428929fabc7e924ae72f9e8",
+ "uncompressed_sha256": "3830d758a8a75d59df1a6dd01f59204a86858b5eda3e43a78f9e9e9c2d769a8a"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/HexRCF/SPEC/hex-rcf.md.gz",
+ "bytes": 37502,
+ "sha256": "1f55ae00f2da30330461b74f584e8f8adc743c2396a64aecb256d8bab81e388a",
+ "uncompressed_sha256": "df8c6bb2435a2794faa36bc77e41f4c936f06ae149f29c3e68fe0d79f4ebfafb"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/HexRCF/Tactic.lean.gz",
+ "bytes": 4163,
+ "sha256": "9ce0298c35efd098c1e081c41a27f10547fd2ca82f6368c5949973f6f9f83cb9",
+ "uncompressed_sha256": "09d895ba1dd2c1af0bfffca197494f2614380ded268ff13e4e0b02fea22b9224"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/HexRealClosure/Algebraic.lean.gz",
+ "bytes": 6341,
+ "sha256": "379e64a7d46e8545da14a880c8d6087640f6e390c33e1ed804301c0441d998a4",
+ "uncompressed_sha256": "d05f9fb72fe9544ae9ddc685dff17080f876aa4c99c70e8992d511e011f6a454"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/HexRealClosure/ContextData.lean.gz",
+ "bytes": 667,
+ "sha256": "4dfe7d03a751a549a9accab87d2af4748d1596fb79fe074c0c30cf0553bbe3d2",
+ "uncompressed_sha256": "ca29790752b8d25f10d03a9877690a5ff40f1fdf6815c96fe9693941206e662c"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/HexRealClosure/SignCodec.lean.gz",
+ "bytes": 3068,
+ "sha256": "c0e3155efb5fe3316b6b59c580256c06b899099954d587fc25e5201fa07462ea",
+ "uncompressed_sha256": "7126323c97b77204386795a0f252f1babfd0ed7f3dba7ee3927a99b9d5c1852a"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/HexRealClosure/SignFacts.lean.gz",
+ "bytes": 2880,
+ "sha256": "6a1d5b415e3c024cdee6aa1fe44b0ab71359a3c4a048a2d9fbdd0b64d9619cef",
+ "uncompressed_sha256": "9c22837e93e6f50cc96310163e352ac608fbcfbd6275edab33751da2fd84f47c"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/HexRealClosure/SignatureCodecTests.lean.gz",
+ "bytes": 663,
+ "sha256": "1bb60916d927b593ac8d4d44bd461517482ee9e95d91b8a8b67ea4e6b86c0bd1",
+ "uncompressed_sha256": "ffc72777523ac0e92b563481804bdfb581fb0173fe7a021009737d57959b4462"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/HexRealClosure/TowerContext.lean.gz",
+ "bytes": 4789,
+ "sha256": "428142eeef84340eba8351013a76354d40001c3309add2f6aad511607a2263fc",
+ "uncompressed_sha256": "6ef8b87b2d81cb177505a4bbc88befa078b20578cedd49e836d850753c203ee3"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/PLAN.md.gz",
+ "bytes": 1405,
+ "sha256": "5ef8b4888dab273be995905eab2b87ae2f6f9036b776a3c72968d82be141cdea",
+ "uncompressed_sha256": "e94a60324486913b4a04650edd617c4ff8bef469dc7fd311adea8407c6662ea0"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/SPEC/real-closure-execution.md.gz",
+ "bytes": 6305,
+ "sha256": "256dadec08729a7c1ce84527cdd64f6e9d5e5d44be4a3d01c1f69def3172cf9a",
+ "uncompressed_sha256": "bc0948ad7de6969baaed89c0b3052cb0d21d64d634f8a336f9a7dde446b057f5"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/adapters/HexRCF/RealCoefficients/CellOperations.lean.gz",
+ "bytes": 4729,
+ "sha256": "554d0c0ba93156533c8e6481ec6674d36f65dfd932fbcebeaa6a56a2b7619c58",
+ "uncompressed_sha256": "3561cc80c7c866141f05a387ce1100ee0cadd98281a03395551cebcde5bd6e2a"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/adapters/HexRCF/RealCoefficients/CellQuote.lean.gz",
+ "bytes": 5814,
+ "sha256": "88ea4b3eeab58c162bd9d8a56d620f968152ff07c30fe0c47ee597136343ab4b",
+ "uncompressed_sha256": "0a588b0491406a83e5152d428546ed5c99acd4a65e08ab8426b2d0762595b49a"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/adapters/HexRCF/RealCoefficients/CellRead.lean.gz",
+ "bytes": 1727,
+ "sha256": "3895b36d8a6902cc88e07916cfa81d12d603f1d07484652a16dc1e1967f4347d",
+ "uncompressed_sha256": "65274f89c940bad74eab8c9075f9256c6ed3d8b90d3294aec4e85883e425fb10"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/adapters/HexRCF/RealCoefficients/RationalQuote.lean.gz",
+ "bytes": 1637,
+ "sha256": "a22a9ca519c55085af6a52fa47a8d11404540cb012fcd813b0115b7da4e98ce3",
+ "uncompressed_sha256": "675e2ba065b696f257adefc07fe30ddb0190f321d86005444579ea5a0744bdf5"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/adapters/HexRCF/RealCoefficients/RealModel.lean.gz",
+ "bytes": 1582,
+ "sha256": "ca7000c0e04c9010e5edebb88dc7f3ffb521e179b69f12e1d44522d8183b3d49",
+ "uncompressed_sha256": "712b4fd3edff8eaa6f93e501da5debf04529d1ea8c11a18389820f866d179c43"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/adapters/HexRCF/RealCoefficients/Reify.lean.gz",
+ "bytes": 8940,
+ "sha256": "0d2be35726195304ac952b583d8a76dac00c892a57e67b3f75548ff8637d8214",
+ "uncompressed_sha256": "ea8474b9e253f93a1583064ca99ec0bf376dadf5457fd60b57e9e18460cf449c"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/adapters/HexRCF/RealCoefficients/RootContext.lean.gz",
+ "bytes": 1333,
+ "sha256": "c062e734234218b4e5ce3ffd58c71cd7fb75dcbe6d71aa506f2d784c0eb43488",
+ "uncompressed_sha256": "792176eab63e5e62b759a10893569946ef6d019566b8116c85237b3e16fcdb86"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/adapters/HexRCF/RealCoefficients/RootHeader.lean.gz",
+ "bytes": 1248,
+ "sha256": "44f41665f8a57424566e4fb7cf3e3e071a0fbf842f06e63738556879f387f5d0",
+ "uncompressed_sha256": "681f2a964bc30f65a92a0fb1a58b4d4013eb396df37ca813962702065fb46261"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/adapters/HexRCF/RealCoefficients/RootPrepare.lean.gz",
+ "bytes": 2105,
+ "sha256": "3d04826af519ced922a1eac6e97e1bf01b2c15c3ea0dddddce8cf774d07db6b1",
+ "uncompressed_sha256": "de72a8e3ac4adb13365801476467bf691e630d0952b018ccecd88846c3bdb025"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/adapters/HexRCF/RealCoefficients/RootQuote.lean.gz",
+ "bytes": 10341,
+ "sha256": "15af1afe031b39e463c8e864ef361e004661a42a7407a40338b7339ccebb4f42",
+ "uncompressed_sha256": "89f3ad4b0c4a8ae058560201900877035d896427176b944b34acde9f9b23d7e8"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/adapters/HexRCF/RealCoefficients/RowQuote.lean.gz",
+ "bytes": 3131,
+ "sha256": "daa89cc5803c05e2baae397c5f6c2f6936b51178de0475188e42618c0950ad76",
+ "uncompressed_sha256": "3b7e7d2ebcbd53a6ea893bc8f4c884d767430f8b98a3f1ca770fe7c7b122f3c9"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/adapters/HexRCF/RealCoefficients/ScalarPacket.lean.gz",
+ "bytes": 1906,
+ "sha256": "fd9e8ac26e9fdaf0b2f3a67292b796b73408ed1223c70cc7f38cbc30387c0cde",
+ "uncompressed_sha256": "9ae62bea85dab43ec01329defa9f788af4843e74b24f40f6c6f1b28adaadc6bf"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/adapters/HexRCF/RealCoefficients/ScalarQuote.lean.gz",
+ "bytes": 5136,
+ "sha256": "396957e1d3b6b06dfb587c4532f5c73a45a24337ce24e6240127dbbe4e305e7b",
+ "uncompressed_sha256": "fee2617a998f29d05c8959b484060ac1d719359c6d851a8ff6699fa9cb370acc"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/adapters/HexRCF/RealCoefficients/SignatureQuote.lean.gz",
+ "bytes": 1299,
+ "sha256": "fab782d3f7966db5fa608f2b0a11f3623b5546afe156facac070d2e8404d68cf",
+ "uncompressed_sha256": "c3bb71b52c2a544b902bc256b3a162e1c3c4e7f94ae6b21808914e67109710eb"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/adapters/HexRCF/RealCoefficients.lean.gz",
+ "bytes": 1075,
+ "sha256": "de00c475f3153a0085b276645e5c6d8a1fb7dabf60faad52a8da917ea085f15d",
+ "uncompressed_sha256": "6a80cc920997d149d4098220453f357cd9ac12476d4cb6d0642d0d10d9579650"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/adapters/HexRealClosureTheory/Algebraic.lean.gz",
+ "bytes": 7680,
+ "sha256": "7e677c9b6d0e064b41574688a36dbdfa92ecacbbcbb3c5caa9b8febed944bcda",
+ "uncompressed_sha256": "2495153acbe4e468521913a2f5d6569831cd05f5ee48d5ddb26fc31a43438c7e"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/adapters/HexRealClosureTheory/SignFacts.lean.gz",
+ "bytes": 2004,
+ "sha256": "f657b1e7849442fbe073c9eb09706fc617f14a33a2232cf0204aa7bf66903391",
+ "uncompressed_sha256": "c2b8cf96de0cccc2c0c3cbe83f0afd7c40ab9736b75f377ec5bfedc0907f34e3"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/adapters/HexRealClosureTheory/TowerModel.lean.gz",
+ "bytes": 4537,
+ "sha256": "b11038d9b06c2353c208e665b1075d6e42a70e98f70300b5b5ffec0f82ab6118",
+ "uncompressed_sha256": "70d0e57e8ecc78eb9b7675d875157462d27cf9494d49d72bba019eaa6dd1d788"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/CellQuoteStageProofs.lean.gz",
+ "bytes": 1608,
+ "sha256": "ac978a97aab62e6dc5bd8e24a4ac88693b0cd7ebd29e86482ab7b61ad0c98aff",
+ "uncompressed_sha256": "331a09a449f2f67173201128f90c1ef5372cad7c1935553ab82312fcae520fe6"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/CellQuoteStages.lean.gz",
+ "bytes": 3695,
+ "sha256": "58167ffcde923abbf314a00c2573a7d62ed47c20dd64c239158ddcf7a71eb184",
+ "uncompressed_sha256": "240dc6565bd019ef41517b0e5c1e6886970b0d656da5a2e1425242a685c0aeb9"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/DependentQuote.lean.gz",
+ "bytes": 2180,
+ "sha256": "432519dba7b6168912327616055cdab5751458c82ae3bab7916bea3adaea081a",
+ "uncompressed_sha256": "0df154544a17857334480e7c577ecbcf1afe04165fa2da1a5a6407bf41e85518"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/DependentQuoteData.lean.gz",
+ "bytes": 1046,
+ "sha256": "c66eea2d4db949cbc83a82dcac88a34074b0ceb85d727d92610348202d0f37fb",
+ "uncompressed_sha256": "ed254475e78fa6edb27d4e55222a598b07b7357154ea0495d6195f2f1d39ee46"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/DependentQuoteProofs.lean.gz",
+ "bytes": 1534,
+ "sha256": "344a4e526a1ffde41dacb7ae422a4ee388be1282ec4a93d9eda8cb94092fc8ad",
+ "uncompressed_sha256": "5875aa9748f50340668e58aea97b196d3353313352fb8c819ae5ee3542556980"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/DependentScalarProofs.lean.gz",
+ "bytes": 1450,
+ "sha256": "e5c82d7d2f6b2c4d0e08955a81ccaec9cbed37c8b5023449def3ac202c808845",
+ "uncompressed_sha256": "9fe3f3871f929e28355985c574c0b8c742be062ae5f19033d7d8bf9e67cd88d8"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/DependentScalarQuote.lean.gz",
+ "bytes": 1446,
+ "sha256": "ef9cda6f21faf83ff73ee1ef96b8f80efc5cf5c1e431d0f2bf6a38c64cc44ec2",
+ "uncompressed_sha256": "e20dd7346c337dd17126c394965f268e568706730f475844d7c0907051224933"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/FrozenSignatureConformance.lean.gz",
+ "bytes": 1992,
+ "sha256": "93759ebe6870e19b0d1c84a4df4707ba7c65e4f212eeaf7c433ec64359363b97",
+ "uncompressed_sha256": "8e7d432aecb87fb89bb188e4c579e86fb5c3348c5430f1e2b1a00f1f820a940e"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/FrozenSignatureProofs.lean.gz",
+ "bytes": 1368,
+ "sha256": "9e119fb5c6a3ce3e146a96d40dae8f708ac4bb114ca8a3a6caaea7f96c66de7e",
+ "uncompressed_sha256": "55de6da9b0b3dc2d1e384d6c838d13294287c44060afb8e70aa2a0c8e01a81cb"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/ProofFunctionPublic.lean.gz",
+ "bytes": 275,
+ "sha256": "0ba2935e138242298c0e8aba253e498e3de8c4ef74198b357f10063afc5e523e",
+ "uncompressed_sha256": "f928c9f0dd0a704d34a516b6282cfa6a7a4eb6c112d49689c450647a44370a6b"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/PublicSignPacket.lean.gz",
+ "bytes": 2792,
+ "sha256": "8b6f965871f529919694413608075595e5e93ae9d8cbcd0c8cb27e161b3ca945",
+ "uncompressed_sha256": "c32d73c5634376907b965e1ea6cf69352fdda1f1945ce2f34a378cc217778102"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/PublicSignPacketControls.lean.gz",
+ "bytes": 2213,
+ "sha256": "2df7ef21a26a77ee54fc33d65fa286682cb7f097a1d11d3897bbd4da75cacb70",
+ "uncompressed_sha256": "b4f98bd8ef190a361dd7752d4d5ece0cfbd862ff4face5a06dfabecf87096028"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/PublicSignPacketProofs.lean.gz",
+ "bytes": 1724,
+ "sha256": "d354ce9978ca2e95a9524b2187207801b59c7933106e27769e461cd9864d9984",
+ "uncompressed_sha256": "442f6d3e04a36db25611f0396103a1eee5ee411c40e8f3cc93df1acf7898bbbb"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/PublicSignPacketValues.lean.gz",
+ "bytes": 1662,
+ "sha256": "f23822ebff1e4cb82e4bc5bb117e2a1d25beeaa62d7c4c85d78c3e4d3b6e8d9e",
+ "uncompressed_sha256": "72705dba30f04f986188903fb49b983c6f0a664895116fca8bd8b6b46b6517e5"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/QuotientQuote.lean.gz",
+ "bytes": 1260,
+ "sha256": "cb11aca0470782ddc13e4a686583206e0d6cc3ae385784a7625cd5b17fbeb448",
+ "uncompressed_sha256": "97b2cbc9abdb46db33a9a91328f331edf8dea055cc244489158121cde8dc1903"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/QuotientQuoteData.lean.gz",
+ "bytes": 333,
+ "sha256": "4d13ade5e58868b574d7c3f5f455c8ebbfb972b47fa2491d7e576053f44df023",
+ "uncompressed_sha256": "ec26777d655a7898d7f7922fcea8f426a3f8c77a53000b69b6fe1755a0348870"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/QuotientQuoteProofs.lean.gz",
+ "bytes": 1309,
+ "sha256": "796d9756e7ba7e89c3898fb6b10d105601f649e9e1649d90517dafe66d7ed4e8",
+ "uncompressed_sha256": "f1d95accf6caed1c7354408b3a1a0b29493a526e82036390e39102ebe80c6752"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/QuotientQuotePublic.lean.gz",
+ "bytes": 243,
+ "sha256": "5725ce4ccaac5803415ae3c3f84ab241883c177fe46b73bca0701d50fc77ba5a",
+ "uncompressed_sha256": "a3bd9a082df14a0ac93ba3798e13c6ebbf9dff98d7613264713aa281a5a18bea"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RationalQuoteConformance.lean.gz",
+ "bytes": 1420,
+ "sha256": "d3f3e3262067ebf15f5bbef6e4d27a42512e16a20b2c34ea27f42e70ab69f0bf",
+ "uncompressed_sha256": "f03844d4a44a5c61b702ed0b1697619da9b20f4ac42122b9d1a6d3fa4a2de9ac"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RecursiveScalarQuote.lean.gz",
+ "bytes": 3107,
+ "sha256": "2dc78c6125de81aff7125587da472ae773db992853a9de4c546c2cc27abe459f",
+ "uncompressed_sha256": "83ba1f3ed63afdbb148f171736a0aacebc7eef4ae3bf32dca29811515c3f051b"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/ReplayBoundary.lean.gz",
+ "bytes": 2340,
+ "sha256": "ada2daa983a8277c74a8e089e292df9ae092b4cf819afa2a3c93e9c51e7b1a81",
+ "uncompressed_sha256": "bbc09553d62198a18e897981d5f443c81f09dba8d371d2cdaeaa846d22cbc2f8"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/ReplayBoundaryProofs.lean.gz",
+ "bytes": 1420,
+ "sha256": "7998ae8b5e001cf5c612f8aae8be3f4cbd1b42161016435312ad8a58dfd21ea5",
+ "uncompressed_sha256": "d755462a7344dc9f5304fba255bcefb42188c1de5a51d92d8567a27f22482dc2"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/ReplayHelperProofs.lean.gz",
+ "bytes": 1433,
+ "sha256": "36c2e65cceac2bf919aa5e1872b337a13634e7405fa9182eaf764600120696f6",
+ "uncompressed_sha256": "6dd68829399ec8908a877a3f7705cc9321e49b9581d0d577d114950242e43a57"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/ReplayHelpers.lean.gz",
+ "bytes": 2525,
+ "sha256": "169675fa6256ee503ff8d2af256c3186eb05986010d768b8dddd62e4e44fb244",
+ "uncompressed_sha256": "4501fa39e52a8a2bb52fdd7b183c16801090dd026304105afb4342a1c441c2a3"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RootContextConformance.lean.gz",
+ "bytes": 2192,
+ "sha256": "9790fbf15d0338968b83201d26be852b4a31b5d6c1213d508e33e9983720b548",
+ "uncompressed_sha256": "0c52084609ec3de8afd51330a7d2cc97f7bae1d8b2bbc421138783940fc7db37"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RootContextProofs.lean.gz",
+ "bytes": 1673,
+ "sha256": "0c379d66887618253ea71590a96aa2bf113f1103b169fb9c931c4ee1cea42e68",
+ "uncompressed_sha256": "b4c2e3ce686ce8bc60bfdafe2be2f566c6de46758f4827d307f3d5592b59d2e9"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RootHeaderBudget.lean.gz",
+ "bytes": 1551,
+ "sha256": "e7de49658b25fe54e61654f284a5884273c06c2fca1d03af5287ed9b10c21870",
+ "uncompressed_sha256": "db30b6b7781fabd238ea2c934477e5ae281cc6cd905f11848ce46eb66ef45fe0"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RootHeaderControls.lean.gz",
+ "bytes": 2209,
+ "sha256": "73bd9cda9fc7b1a77ecad8e26bbba762c047974316dc72a79a0f3a590e74d9e8",
+ "uncompressed_sha256": "aca063af3bfe475166aef92193f162c25a0e53eea094087cf334406a3d513157"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RootHeaderPacket.lean.gz",
+ "bytes": 2761,
+ "sha256": "33221871328f4eb1cc1e0449bc828f2add0f09eb1ba16fc3f12cbfdb1e7ea946",
+ "uncompressed_sha256": "dcd8e63c1d656fc800690b35554a0f835a1ee0bb96312215f8c12348d8a0e79a"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RootHeaderProofs.lean.gz",
+ "bytes": 1604,
+ "sha256": "863129dc8cf91a806eb8febaa839d861ffd216b1406ded1a3a8575ae08d1c9ee",
+ "uncompressed_sha256": "e6630f0464fd0096b9af74b4640d2abc514a62c0b0fc706b4a2e74c9602eeb8c"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RootHeaderValues.lean.gz",
+ "bytes": 1675,
+ "sha256": "13ac4ada54c866382658977679e84d4e0d6fb2aa2dd8620ba4187f75b142fd54",
+ "uncompressed_sha256": "de9a8fc7c2e9371cbd3324eb700180411e49865dbc6535a74d2c882f74e38e13"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RootPrepareControls.lean.gz",
+ "bytes": 1742,
+ "sha256": "ecb59da84413884d128891bc082d55e55c7e8554451d749e0a4b3b6aab1f9a9e",
+ "uncompressed_sha256": "b36af8efd1e12227188b6fb7bde258e80d5c1c874338a324cb53c5ccc6c1330f"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RootPreparePacket.lean.gz",
+ "bytes": 2249,
+ "sha256": "06a64c546835f522897bb8c291abee76c8e84e065d85d26c89fa0c0a63d43f44",
+ "uncompressed_sha256": "86185bcc5fdddb1f700d869a115a91034954714f69a83171fd0e96f601e76fe3"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RootPrepareProofs.lean.gz",
+ "bytes": 1829,
+ "sha256": "053ed0cc967f648f1210f6d69890afb3a4a83a48b06273ac0b6590ab3ea81a1b",
+ "uncompressed_sha256": "4a5bc6655576a6592fcd5cd801bcfebd425243b1bb6cb39b0bb46d500a3938be"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RootPreparePublic.lean.gz",
+ "bytes": 455,
+ "sha256": "2eddae41771317110effa329814b65197212f8a3ea82c4864c685ea932d09dda",
+ "uncompressed_sha256": "a9e09cbe8d1287b97dde71ad1c6dbe149cfbacb6f81f41a8493ee802416d0805"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RootQuoteCases.lean.gz",
+ "bytes": 3801,
+ "sha256": "1956f75a0cc3340f53866ae42646654e380056f702ec1b6e4a216f79d73d662d",
+ "uncompressed_sha256": "602d15ef501e969183bffbda7fb3c0f00a174ba5c2dbc35370ee7fce896944dd"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RootQuoteConformance.lean.gz",
+ "bytes": 2080,
+ "sha256": "ccdfe0da7fb6265fcb93e14af14cbd7b2918f411a92e4571e727c738a1c241dc",
+ "uncompressed_sha256": "f6a652a243ba62cffc671d1365c6ab47b6618179acb172019ec5609ea0324d3c"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RootQuoteData.lean.gz",
+ "bytes": 2002,
+ "sha256": "ddd13fa63084139782dc16ef1467e6ed271f76e3f6609797bbb55b1882d71f3f",
+ "uncompressed_sha256": "faa259d129d5c65a063c7143e45d5d9d19573ed49862aa5ecb3978ff389cb514"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RootQuoteSource.lean.gz",
+ "bytes": 1543,
+ "sha256": "99045aba22ecd6c37a78b27e6237e0dde98b6a5f224861f23070ead5d0c939cb",
+ "uncompressed_sha256": "aca1654efc1a452aca8ef573bb8ea3a435a4e1e18a4dca854d9bcc8e350d511d"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RootTableQuote/Conformance.lean.gz",
+ "bytes": 1573,
+ "sha256": "a7a905d3900e7137e355cb95ea6b64deecf78eafc73dfe584ef5a804463a596c",
+ "uncompressed_sha256": "ec5bd136df58cc24a40ca989e3d33e55923082aed7591b234f55c70c013c74ad"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RowQuoteCases.lean.gz",
+ "bytes": 1804,
+ "sha256": "fdd5187e084cff3325624b31a05ae5dcde374fe8e8aed418a8574d0d30e67f56",
+ "uncompressed_sha256": "8d2ebddc05d5f0d08b62b50d3498b34b47ab0b3accc4d0a572e621fd83d606d4"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RowQuoteData.lean.gz",
+ "bytes": 537,
+ "sha256": "72fd7561e024b13485c0adcef9b951d120d7cf1b109b4ab8a24be3ec79521630",
+ "uncompressed_sha256": "ce60cb18f548f55e929d4803c7ed824ad0a7621fd4abda09a191f76393fabf0c"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RowQuoteDepth.lean.gz",
+ "bytes": 1346,
+ "sha256": "71e26e7b5ac794f2edf458b631c2bb2a80e501c74e7512774739f073c0028a6f",
+ "uncompressed_sha256": "6ada3c44bea055425d223dc57eafb4f0c88349713d815ded4beec9720f7802ad"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RowQuoteProofs.lean.gz",
+ "bytes": 1468,
+ "sha256": "1d79c701a1eb440120ffb7a0fe7225f46217406df01b0bd8b34d64c1438fefb0",
+ "uncompressed_sha256": "317d4f981f32bb28666fcabc6248f4a57fe67c95a7fe431f7993aeacfa377ed3"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/SelectedRoot/KernelCheck.lean.gz",
+ "bytes": 1301,
+ "sha256": "0a6c187689db9ce2b1b8d53140ed10e114a8e0255004c197fdc4d1babe3d624b",
+ "uncompressed_sha256": "12e7e2e3f4667a76dc89c4b36796bff177f3c187b81adc5eb5e049ff1ce6669d"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/SharedQuoteCallbacks.lean.gz",
+ "bytes": 3255,
+ "sha256": "7462daf015882fe3d711d51c6c45796413265302cfceb9a13ef31c4967e418d5",
+ "uncompressed_sha256": "6132cc3722af3cf251d11c857a572f09128d3614d931724965cbcf488dc4db6d"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/SignPacketProofs.lean.gz",
+ "bytes": 1614,
+ "sha256": "3e51a957bf8cac36bf653edbad09a740e4c7dc1d1c0ebfa3b738c6a7dade1863",
+ "uncompressed_sha256": "3980cad31637f5798b2c351e1efc2a29b946de1d90e06fb11acd85e2a5c46321"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/SignPacketQuote.lean.gz",
+ "bytes": 3744,
+ "sha256": "8ef8bff495af7dfd4060de892d2258f189386b560af5fb3f8fbf374697810e3c",
+ "uncompressed_sha256": "fcda11e6c75353d4519c4eb0e9c302b84d7e41030316c99fcacb885dabf97545"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/SignatureQuoteConformance.lean.gz",
+ "bytes": 1340,
+ "sha256": "3019a1b6441ba6e0ee67fe2c85ece072868c2882335a9781f398f0ce7109ecb7",
+ "uncompressed_sha256": "26f16c37cb9e0d5c09a082787f4a66673437adbf998023fd5e9625db16ff5d3f"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/SourceSelectionCases.lean.gz",
+ "bytes": 2187,
+ "sha256": "5a44af7266cbeb132c97f01b0f299dc0137bc34abdda6b4804f12c4e6c900dd1",
+ "uncompressed_sha256": "368ded3f07bb4be269f26a2fd2b7044904ea16d1dd1cba41d8bccb373d004005"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/TreeQuote.lean.gz",
+ "bytes": 1430,
+ "sha256": "b0ba6e750ea3b7b560c772c4921a182b41a6346cc6c7ee018b8d307cca104df2",
+ "uncompressed_sha256": "049065aa64bb13432b1d7183759979d28eebba98d18b6f54ab849e5953ce92c1"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/TreeQuoteData.lean.gz",
+ "bytes": 578,
+ "sha256": "7bc0dd8de739ff1634749061da1bf474958c401b2442e19713099c34e63bf9fc",
+ "uncompressed_sha256": "c595c2278d2997483b755aa585da874c27eed40e4e1a8106d7f553e4f574776b"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/TreeQuoteProofs.lean.gz",
+ "bytes": 1427,
+ "sha256": "837ba1e574069d7febbf927460056bc763ab03943f0e027268a5ca13485ceb82",
+ "uncompressed_sha256": "f9a40248237480f8972df62dff548ef0599205b76014e070866e72586f161933"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/TreeQuotePublic.lean.gz",
+ "bytes": 303,
+ "sha256": "90637de2826e25559a418f3cd1d30584017bc3e91bbb227f6f0d5bce627a5312",
+ "uncompressed_sha256": "adc6dc6871208f31970cf5ae0c2472fd325a72e1df8114a6e8178ef8b2c71570"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/experiments/KernelReplay/AxiomClosure.lean.gz",
+ "bytes": 1356,
+ "sha256": "afec3b6db2d4a53a6cc9ddf66b35fe7182904fe9cd14ef6ea68bed929f19abfa",
+ "uncompressed_sha256": "f49377265f05f52b633b10a59255a03731e08d022cc54763de9851c5b5325034"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/lake-manifest.json.gz",
+ "bytes": 1045,
+ "sha256": "5f11ece8b5e8fd1f33ca463a9056e208fcf18cf3e0b17d45f3ab689acb6c7d95",
+ "uncompressed_sha256": "fd2dc4df30cd44e4d30568489d616e7bcc8a78747500139134be56f35ae746a4"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/lakefile.lean.gz",
+ "bytes": 22675,
+ "sha256": "ac4a88690f76dff8b228f9d8f7c29d35d5624f06d1d974fde686306101e07a16",
+ "uncompressed_sha256": "ec37db14bf8f78f58a8947789eb8fbd882827334478b2c3a264009bf1a7a9693"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/lean-toolchain.gz",
+ "bytes": 47,
+ "sha256": "eb216dc197e741249333628ea5e479634b480530e8069052deb5a7ee0d39409d",
+ "uncompressed_sha256": "bc84812c94489d1e3e191baa1dc10d5eb684382d7fe9d2a5ab085e72c1c67e47"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/libraries.yml.gz",
+ "bytes": 3539,
+ "sha256": "5e2b574bb3d4b10e2225ed8f32b71ddb47c2a785baec52c0e6394c2e84e5a133",
+ "uncompressed_sha256": "14e3dd1c01bb0c369b2216e2733378d61172040fd9f69dd0354d4e1267d9c5c1"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/reports/hexrcf-packet-quotation.md.gz",
+ "bytes": 6158,
+ "sha256": "2ab46d7665bd9c5a48a1891dee641e5eed604938fd17f3a98a43b70d51f50183",
+ "uncompressed_sha256": "2b0f0b40a29fe3232ee588ec06b3bdfefb2facced7327049c8ad1cd70b6ca35e"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/reports/hexrcf-proof-functions.md.gz",
+ "bytes": 1799,
+ "sha256": "62e272644eebe6a9acce80d737820fd7f63d0dd1c66aa40a425cc22d91f66620",
+ "uncompressed_sha256": "ff410e9c4714476913d5651dd04d61a7ec55289b6143a6b1d29ccda331cd8989"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/reports/hexrcf-public-packet-quotation.md.gz",
+ "bytes": 3243,
+ "sha256": "fe547ccd2c2dadc220b25fea17b6b0ce81c3ff3afdcbc276d318240b712072fb",
+ "uncompressed_sha256": "019ff6fe31e6699ec10e126a1d477a6a4b4f78b67893b5ce447cfe2aa637b316"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/reports/hexrcf-root-context.md.gz",
+ "bytes": 2101,
+ "sha256": "2c6ddf4b6f4e60d8b28734239bca8b1405c7dd632c204da112921e2ebd061e4c",
+ "uncompressed_sha256": "fa967a71370454f5d1fcdb757ebf6ab6fa669538f253c3cc6cb6b6f826361c8a"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/reports/hexrcf-root-header-quotation.md.gz",
+ "bytes": 2244,
+ "sha256": "2584778a9bd1734eba9e833dddf438b626303ff8f51f2ed1793dfd3ae9f35999",
+ "uncompressed_sha256": "62ecb8f293a9144b8a8a0bdc4910c473bd87063162bb656b94f1be53eb2e4617"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/reports/hexrcf-root-preparation.md.gz",
+ "bytes": 2109,
+ "sha256": "9a2cbff77a730026b82eed2038bf2a38b17583fc84723e8dd32cd63641b547a2",
+ "uncompressed_sha256": "23b6fc84e7b54447e224a166228f275f9ad239c90b2c6c8e4ea38d2f93e55cef"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/reports/hexrcf-row-quotation.md.gz",
+ "bytes": 2384,
+ "sha256": "9d63c6ad0c3f08cb44b5331f6df3edc2f7d1446b348be64878e8ecd59da97a44",
+ "uncompressed_sha256": "8b249f3f3add4995e4d6483431d77e210400e949319e18e160b88c72157b03f6"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/reports/hexrcf-sign-packet-quotation.md.gz",
+ "bytes": 2186,
+ "sha256": "9d19866efa699fe1c8abb499dcee17e7858661ff8c4441c71907ae599542ba87",
+ "uncompressed_sha256": "64adc6438ad1593d1018e14f2757cb6193614db26141af9c0c76d359084d9d99"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/repo/reports/hexrcf-tree-quotation.md.gz",
+ "bytes": 2679,
+ "sha256": "0d59711ba680935ca827848e7eb28967c283bf147595ec27e1170258c11688f2",
+ "uncompressed_sha256": "256ea13a022a3b92fecb3ef0875a3e01f9efd67776c104081ccb81e8ca463f2b"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/task/FreshStaged.lean.gz",
+ "bytes": 3541,
+ "sha256": "ac3a71fc8e5945bf3ed1c7b90711df49fa79d46d2e8ddbcb2fe42b79e6dcc5d8",
+ "uncompressed_sha256": "bc180c1d797657fcdf58da2ffc47537798e380c7d1fc370d51558814c7b15a23"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/task/FreshStagedAudit.lean.gz",
+ "bytes": 1442,
+ "sha256": "7d17a97dded0be991ff097cc0e95209034e0273c23ed98d18cb3a4adc5488ef2",
+ "uncompressed_sha256": "86659bf0a84563afa5f6a7503b317e08b95ff62ab6ed9e960039f34a69fcb9f2"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/task/lake-manifest.json.gz",
+ "bytes": 1122,
+ "sha256": "16e0bbbb278451d8030e5735adc2f441ca852dc77e4144604b593ca8effe7840",
+ "uncompressed_sha256": "6ee53eeef0c9336cd671e6bc4605ca7e097b73af8541fc2bdb92a941dc3974d2"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs/task/lakefile.lean.gz",
+ "bytes": 1063,
+ "sha256": "291a11ebcf5860a00dbdd8413faed5246acb3823c5b70b8cb322d98062b2c601",
+ "uncompressed_sha256": "5c65610a87c23814434a757dc315270d8bcae5d6e8fcf2dcfba1e0fabda17cee"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-inputs.json.gz",
+ "bytes": 5548,
+ "sha256": "b432ba591e982d1395e1a01c4a568da3fb704a2b0f7a6488e02db327ccb4c912",
+ "uncompressed_sha256": "4d984a2b8f0f06b9dd33306e1ba8bbb1820b963212758f64c55567ef4eac8cb4"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1-progress.log.gz",
+ "bytes": 2315,
+ "sha256": "c0c046da88e25e1e44e9aef226abccaebe4e75ec89dafd32daba9576d4b12a8d",
+ "uncompressed_sha256": "537c200536a009e01a5cdb9a127bccc7037c27b7633e1514cd0da224d98b10e7"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-1.log.gz",
+ "bytes": 8021,
+ "sha256": "d5b1ed2bc67ba2fe0257d65db78a6d3f6b20591df62039394654e44d849b4f7d",
+ "uncompressed_sha256": "3a095cd6aa4a5b35483ac01caa988c50bcdb1b2085c54bf45350cf379a075537"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-audit-1-inputs/FreshStaged.lean.gz",
+ "bytes": 3541,
+ "sha256": "ac3a71fc8e5945bf3ed1c7b90711df49fa79d46d2e8ddbcb2fe42b79e6dcc5d8",
+ "uncompressed_sha256": "bc180c1d797657fcdf58da2ffc47537798e380c7d1fc370d51558814c7b15a23"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-audit-1-inputs/FreshStagedAudit.lean.gz",
+ "bytes": 1447,
+ "sha256": "8ea4d7da3c23050022eb62d3d2d4db215cf16cec39e9d394b3decb4f3e6a3a65",
+ "uncompressed_sha256": "37e73d71328262fd8472291b5ad1fea46ccff46aec1dc4d6fbcdc6cefa9ea725"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-audit-1-inputs/lakefile.lean.gz",
+ "bytes": 1074,
+ "sha256": "3d9edfde110f08f7583f3071764ca213169ed321c99670c81fe1ec684dc4e16f",
+ "uncompressed_sha256": "389daf3eaf33b8e9706853d54499abb13d50497a8854835966c602220ab684d6"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-audit-1-inputs.json.gz",
+ "bytes": 229,
+ "sha256": "0ba135f51db8b3aa8ca86da7be6307d98b661a2d0edd67bd5f33968331bf06a5",
+ "uncompressed_sha256": "8c9030d575c900adb4b45a9150171913e971e9b43e056d6e63a230f62dc9df2c"
+ },
+ {
+ "path": "diagnostics/fresh-staged-pointwise-audit-1.log.gz",
+ "bytes": 7681,
+ "sha256": "25622c89300e4c63ba641bfb7c44c29c683d4bb5a4bde8cfe5e3e23b9908af40",
+ "uncompressed_sha256": "d8fda2e489190e520528ea86f7ee06ac0cef3ffcab4238924449795a89883235"
+ },
+ {
+ "path": "diagnostics/row-packet-conformance-metadata.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "diagnostics/row-packet-controls-1.log.gz",
+ "bytes": 7782,
+ "sha256": "f8b7a2e6c0bbdf292235ec6cb53990696da49f983e6d6a1588e66d699dd8ab61",
+ "uncompressed_sha256": "55390c8ba0ccbf23180afc8e78b46bc53684c0b1ccde58f98d9e4d12b9f4475e"
+ },
+ {
+ "path": "diagnostics/row-packet-controls-2.log.gz",
+ "bytes": 7775,
+ "sha256": "a47d36d5034b02122a72ded0f167543fcce5ef978ff8dcdd054648d7cbd199ac",
+ "uncompressed_sha256": "5bcd00623b2dc591a490dc956ce9c7b286bd6c0428ed3eac6242234c2baf90cb"
+ },
+ {
+ "path": "diagnostics/row-packet-controls-3.log.gz",
+ "bytes": 7795,
+ "sha256": "87226171b25b3bf200a144192fd47c90c5733b9cdef42a4a0452ce71f9fc6cfc",
+ "uncompressed_sha256": "7f099a7c306362fb9c063ac86e9f9a2553ff558a893152aa75823628e0a6907e"
+ },
+ {
+ "path": "diagnostics/row-packet-controls-4.log.gz",
+ "bytes": 7853,
+ "sha256": "1078ec5887dad3bc788b2d950e848449452079cc328a8a013a17467f7cbf9213",
+ "uncompressed_sha256": "3183bbf7cf0f7f32831b1a6957f2834906e6fa4ac0f89442134caac110446235"
+ },
+ {
+ "path": "diagnostics/row-packet-controls-5.log.gz",
+ "bytes": 7919,
+ "sha256": "781ed9c4f8b4f1791ac808dd372b9d11927436850f5e042d70009b214b1daa0a",
+ "uncompressed_sha256": "17ebca20c372a74470ad7aeb36e4b7bd645d5c89479c0b6c282be658cedaabb9"
+ },
+ {
+ "path": "diagnostics/row-packet-controls-6.log.gz",
+ "bytes": 7950,
+ "sha256": "080cdf45d94a26be4ee0edac6bc50c48c8761cd4b899b75b7023c75d9326aae0",
+ "uncompressed_sha256": "57a483b3cbf0d6421dda7f86ac65681cb5e002dc28a13e666c8b018c5bd19409"
+ },
+ {
+ "path": "diagnostics/row-packet-controls-7.log.gz",
+ "bytes": 7452,
+ "sha256": "6cda13b83f5dbc9ff1b4e5468a24aed564c08498a8cd6dc83d1efb9ab5256cc8",
+ "uncompressed_sha256": "7738322b680c24a0c87178754fd98c3ffada9e70aa4ee3cb5a160ed6ced3b41e"
+ },
+ {
+ "path": "diagnostics/row-packet-final-metadata-admissions.log.gz",
+ "bytes": 100,
+ "sha256": "6ba2a1bd399c71b9e886200a3dcadfce12544222770b314a019de2f5dc7ca4a0",
+ "uncompressed_sha256": "9ab723f53eef87022d408fffd50a2648dd41a1ffe9d7261628d7274f1bd2bd69"
+ },
+ {
+ "path": "diagnostics/row-packet-final-metadata-copyright.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "diagnostics/row-packet-final-metadata-dag.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "diagnostics/row-packet-final-metadata-diff.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "diagnostics/row-packet-final-metadata-lines.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "diagnostics/row-packet-final-metadata-relative.log.gz",
+ "bytes": 105,
+ "sha256": "c43d1ba9fa5a6ea3d05919ed8b5f63ae6d92bdbc66b09a9c0e2db03229da84e9",
+ "uncompressed_sha256": "5b6d65aeb6cb570bc5e9b14d70d6222627b455a17e51016ce5d0bf8c9d5cd4c3"
+ },
+ {
+ "path": "diagnostics/row-packet-final-metadata-selected-admissions.log.gz",
+ "bytes": 133,
+ "sha256": "708380ef9db2cc22419d7585d40e2bf48a6051be49098c21816f09a97a4c1839",
+ "uncompressed_sha256": "1cb8e704c3b1cb8f713582bb4a8fbd4f85e8b366d3e8f81d1085c36a8d7192a7"
+ },
+ {
+ "path": "diagnostics/row-packet-final-metadata-summary.log.gz",
+ "bytes": 79,
+ "sha256": "3956b87a47b24f981cca11f7704b8421254b1df0ae1f7d3f1e180cbfcc9ad50e",
+ "uncompressed_sha256": "14b64de8d82592f8227746917408c7571dd8ef67acd7faf0c511b0baf07cc9ec"
+ },
+ {
+ "path": "diagnostics/row-packet-final-metadata.json.gz",
+ "bytes": 293,
+ "sha256": "99c9d6f942a65119979739bdd0628dc3914992694a3ada460a7225faa41cf9f8",
+ "uncompressed_sha256": "e5c807d17e9de1548ca91fa8e8571517c4278136d4381033a6f893cefbbb6947"
+ },
+ {
+ "path": "diagnostics/row-packet-production-conformance-1-inputs/adapters/HexRCF/RealCoefficients/CellQuote.lean.gz",
+ "bytes": 5903,
+ "sha256": "7966bbaf5d46a2e15430a74add28b968a8dbd561d74dd8b93f8072705aa4c320",
+ "uncompressed_sha256": "618edb72b0f175cdb9d528919f46c3a7613d0b1ab69fc9640c29a9a4669baf3e"
+ },
+ {
+ "path": "diagnostics/row-packet-production-conformance-1-inputs/adapters/HexRCF/RealCoefficients/RowPacketQuote.lean.gz",
+ "bytes": 2645,
+ "sha256": "8c44c56ffd53a0c8b5e55a6fb507ce174793bf266891b5526b9c0e717a2db067",
+ "uncompressed_sha256": "85ecca4da6de2868763a48a6eca945bca73f3c7846478e95a4df48d65d1f09db"
+ },
+ {
+ "path": "diagnostics/row-packet-production-conformance-1-inputs/conformance/HexRCF/CellQuoteStageProofs.lean.gz",
+ "bytes": 1633,
+ "sha256": "c5769db77693c2fe4a0474d156ce344e19e958f0e15896e56bece52340b7f584",
+ "uncompressed_sha256": "afbe71d44c7b22bc592736689b19bb07ee0a07ebdaf7566dcbaa817fcd95acf8"
+ },
+ {
+ "path": "diagnostics/row-packet-production-conformance-1-inputs/conformance/HexRCF/CellQuoteStages.lean.gz",
+ "bytes": 3700,
+ "sha256": "c5fd1f462583386208f0ec97e8b6aa078648cdaaa009f720957f8a1295d1755d",
+ "uncompressed_sha256": "e4593f2c8169af00398ff608dd53cbbfbe6b8408ddbdd07de6f64f59acf8a25f"
+ },
+ {
+ "path": "diagnostics/row-packet-production-conformance-1-inputs/conformance/HexRCF/CellSourceProofs.lean.gz",
+ "bytes": 1582,
+ "sha256": "2ea1ba35f5b6ef6244fab4a2b714bdea5a717b581f3b5a6cbabdbd80f6c9544c",
+ "uncompressed_sha256": "a493370a03652923c85099e73bb19d69368bf365055a0a97be0a5554e4b269ac"
+ },
+ {
+ "path": "diagnostics/row-packet-production-conformance-1-inputs/conformance/HexRCF/CellSourceQuote.lean.gz",
+ "bytes": 3141,
+ "sha256": "6a6d392eec40834af7d5e9977df21aa635367e5d25aa95e42d3e6d363140d89e",
+ "uncompressed_sha256": "c64892641528285d8ee40db87e36c39835b9796653c741a8f150f2010e9e8f92"
+ },
+ {
+ "path": "diagnostics/row-packet-production-conformance-1-inputs/lakefile.lean.gz",
+ "bytes": 22687,
+ "sha256": "d79606faad3e9db777e2589d36f5c787b84446754be7674ed60ad27b38914245",
+ "uncompressed_sha256": "0cb9152929cfd0035f323ac3824cd034d310c08877ec402f9d046e8020c93293"
+ },
+ {
+ "path": "diagnostics/row-packet-production-conformance-1-inputs.json.gz",
+ "bytes": 454,
+ "sha256": "1bb18a17c533dc901673c6c6ef9b0153289944beaee9dbe5461294a6bcd8c82e",
+ "uncompressed_sha256": "28038210191021c3eb774e301176d37374dbf3d669fc2f5529fe69641b45fc10"
+ },
+ {
+ "path": "diagnostics/row-packet-production-conformance-1.log.gz",
+ "bytes": 8614,
+ "sha256": "f87e13f30df7e3678077e8cf1be4eb500f8b43b0437399f7a0171c23097a7842",
+ "uncompressed_sha256": "d817246e8e7773e4f8fdff3dc42ac89f23847a09dca74c05b05596fb38b22d59"
+ },
+ {
+ "path": "diagnostics/row-packet-production-conformance-3-inputs/HexManual/Chapters/HexRCF/AlgebraicCells.lean.gz",
+ "bytes": 11583,
+ "sha256": "3144aee5452a0f63c67f34432b7ebcce54aefe6bf738179bbad4e8d00d4d1a6a",
+ "uncompressed_sha256": "6a700cf36002297838f7339a5a6ebcb06a2eba94c7dce6661481ad57dfe83d7c"
+ },
+ {
+ "path": "diagnostics/row-packet-production-conformance-3-inputs/adapters/HexRCF/RealCoefficients/CellQuote.lean.gz",
+ "bytes": 5903,
+ "sha256": "7966bbaf5d46a2e15430a74add28b968a8dbd561d74dd8b93f8072705aa4c320",
+ "uncompressed_sha256": "618edb72b0f175cdb9d528919f46c3a7613d0b1ab69fc9640c29a9a4669baf3e"
+ },
+ {
+ "path": "diagnostics/row-packet-production-conformance-3-inputs/adapters/HexRCF/RealCoefficients/RowPacketQuote.lean.gz",
+ "bytes": 2826,
+ "sha256": "d546171a2404fa49938f78fe25ae0a787316362430b26dc038bad5b20f60c6ef",
+ "uncompressed_sha256": "edbb3d23f72422f5a1dea163c283848ec285418b7bdb9eedba553b83066121af"
+ },
+ {
+ "path": "diagnostics/row-packet-production-conformance-3-inputs/conformance/HexRCF/CellQuoteStageProofs.lean.gz",
+ "bytes": 1632,
+ "sha256": "84f9ae9fc491b1e9787b4d2d4be213c602e8ebd50314a7448cdc15045c6f4014",
+ "uncompressed_sha256": "e4b52419e3409001df535a9ed4bae1f66d977fb33d507ff6c79f787a9f1f7f11"
+ },
+ {
+ "path": "diagnostics/row-packet-production-conformance-3-inputs/conformance/HexRCF/CellQuoteStages.lean.gz",
+ "bytes": 3700,
+ "sha256": "c5fd1f462583386208f0ec97e8b6aa078648cdaaa009f720957f8a1295d1755d",
+ "uncompressed_sha256": "e4593f2c8169af00398ff608dd53cbbfbe6b8408ddbdd07de6f64f59acf8a25f"
+ },
+ {
+ "path": "diagnostics/row-packet-production-conformance-3-inputs/conformance/HexRCF/CellSourceProofs.lean.gz",
+ "bytes": 1582,
+ "sha256": "2ea1ba35f5b6ef6244fab4a2b714bdea5a717b581f3b5a6cbabdbd80f6c9544c",
+ "uncompressed_sha256": "a493370a03652923c85099e73bb19d69368bf365055a0a97be0a5554e4b269ac"
+ },
+ {
+ "path": "diagnostics/row-packet-production-conformance-3-inputs/conformance/HexRCF/CellSourceQuote.lean.gz",
+ "bytes": 3141,
+ "sha256": "6a6d392eec40834af7d5e9977df21aa635367e5d25aa95e42d3e6d363140d89e",
+ "uncompressed_sha256": "c64892641528285d8ee40db87e36c39835b9796653c741a8f150f2010e9e8f92"
+ },
+ {
+ "path": "diagnostics/row-packet-production-conformance-3-inputs/lakefile.lean.gz",
+ "bytes": 22687,
+ "sha256": "d79606faad3e9db777e2589d36f5c787b84446754be7674ed60ad27b38914245",
+ "uncompressed_sha256": "0cb9152929cfd0035f323ac3824cd034d310c08877ec402f9d046e8020c93293"
+ },
+ {
+ "path": "diagnostics/row-packet-production-conformance-3-inputs.json.gz",
+ "bytes": 535,
+ "sha256": "bdd4d0001502da180364194242855d6b070c3ea90d8b93bb2180163b6f944509",
+ "uncompressed_sha256": "328453e3f87b72eaba0079dd9f8c9a23d1afa11948f2f21b4a368171af11fcd4"
+ },
+ {
+ "path": "diagnostics/row-packet-production-conformance-3.log.gz",
+ "bytes": 7959,
+ "sha256": "9369dd1ead5e2719e9707bdcae7d3d0b0431220eb26cd0b71c208beaa04ad924",
+ "uncompressed_sha256": "102d5516f360ce1c3a505f7e283d031c97ff2bb5a1b019e9ef5e50709dc12e9f"
+ },
+ {
+ "path": "diagnostics/row-packet-production-core-1.log.gz",
+ "bytes": 6492,
+ "sha256": "c7b0ec462758ec93cd7784a44fe1b99038ace7df654f6eb461670788ef1de3e4",
+ "uncompressed_sha256": "2a1a998477eaa47592aea3d9191ed53b1f08cc3d9b9173fe8af2169f8eba7131"
+ },
+ {
+ "path": "diagnostics/row-packet-production-core-2.log.gz",
+ "bytes": 6888,
+ "sha256": "b177de47c3fc22601ac07164b86161de2c194b130b06167535630cfe40a0ac4c",
+ "uncompressed_sha256": "96aa659b80ba67587ff558cd3611e10506b73b2ad7fca607300860b1e1cdf6e0"
+ },
+ {
+ "path": "diagnostics/row-packet-production-core-3.log.gz",
+ "bytes": 6812,
+ "sha256": "2d4f2c5ec5360317391025d7d699456717295502db49ce76481e1108e0fdb905",
+ "uncompressed_sha256": "807678a36a49cd8b8c8b0055e2122660ef0cd6bd26351ef9224ac185590a88cf"
+ },
+ {
+ "path": "diagnostics/row-packet-production-core-4.log.gz",
+ "bytes": 6332,
+ "sha256": "5b3eaef7572feb4ed999941394515d6afdc1930565262cf615b129a95b903b28",
+ "uncompressed_sha256": "a4571448d436d4ed13e44b0eb307584737c6c0300b7cb80260a56e9ec8c7380c"
+ },
+ {
+ "path": "diagnostics/row-packet-production-core-5.log.gz",
+ "bytes": 6358,
+ "sha256": "5799d528095e849c546aa5cfd47d63e4a47310c8ec9de4485892c138bacb9fbd",
+ "uncompressed_sha256": "98400a322ac30ffabd0a7bf78692227d74aa90556ba58b8f9fed36ed85710425"
+ },
+ {
+ "path": "diagnostics/row-packet-production-core-6.log.gz",
+ "bytes": 6346,
+ "sha256": "765a4cc24d736a126357a5b7115db600156b52fec5e9e6dc19659370cb256073",
+ "uncompressed_sha256": "75981ef62bb9de0dbd02529688a9002c5db0d74d43f27f03284acf4eb39ea3f9"
+ },
+ {
+ "path": "diagnostics/row-packet-production-metadata-1.log.gz",
+ "bytes": 79,
+ "sha256": "3956b87a47b24f981cca11f7704b8421254b1df0ae1f7d3f1e180cbfcc9ad50e",
+ "uncompressed_sha256": "14b64de8d82592f8227746917408c7571dd8ef67acd7faf0c511b0baf07cc9ec"
+ },
+ {
+ "path": "diagnostics/row-packet-production-source-2-inputs/adapters/HexRCF/RealCoefficients/CellQuote.lean.gz",
+ "bytes": 5903,
+ "sha256": "7966bbaf5d46a2e15430a74add28b968a8dbd561d74dd8b93f8072705aa4c320",
+ "uncompressed_sha256": "618edb72b0f175cdb9d528919f46c3a7613d0b1ab69fc9640c29a9a4669baf3e"
+ },
+ {
+ "path": "diagnostics/row-packet-production-source-2-inputs/adapters/HexRCF/RealCoefficients/RowPacketQuote.lean.gz",
+ "bytes": 2840,
+ "sha256": "d8ec4a941780986bface3738b80f53234d5dd52c306e4dfe2f13edbaa4c23ec8",
+ "uncompressed_sha256": "519aa4d256b8c5bfa653b5d1ff0d4a532ae729a92ebee761d6b9fcd6448f4dfb"
+ },
+ {
+ "path": "diagnostics/row-packet-production-source-2-inputs/conformance/HexRCF/CellQuoteStageProofs.lean.gz",
+ "bytes": 1633,
+ "sha256": "c5769db77693c2fe4a0474d156ce344e19e958f0e15896e56bece52340b7f584",
+ "uncompressed_sha256": "afbe71d44c7b22bc592736689b19bb07ee0a07ebdaf7566dcbaa817fcd95acf8"
+ },
+ {
+ "path": "diagnostics/row-packet-production-source-2-inputs/conformance/HexRCF/CellQuoteStages.lean.gz",
+ "bytes": 3700,
+ "sha256": "c5fd1f462583386208f0ec97e8b6aa078648cdaaa009f720957f8a1295d1755d",
+ "uncompressed_sha256": "e4593f2c8169af00398ff608dd53cbbfbe6b8408ddbdd07de6f64f59acf8a25f"
+ },
+ {
+ "path": "diagnostics/row-packet-production-source-2-inputs/conformance/HexRCF/CellSourceProofs.lean.gz",
+ "bytes": 1582,
+ "sha256": "2ea1ba35f5b6ef6244fab4a2b714bdea5a717b581f3b5a6cbabdbd80f6c9544c",
+ "uncompressed_sha256": "a493370a03652923c85099e73bb19d69368bf365055a0a97be0a5554e4b269ac"
+ },
+ {
+ "path": "diagnostics/row-packet-production-source-2-inputs/conformance/HexRCF/CellSourceQuote.lean.gz",
+ "bytes": 3141,
+ "sha256": "6a6d392eec40834af7d5e9977df21aa635367e5d25aa95e42d3e6d363140d89e",
+ "uncompressed_sha256": "c64892641528285d8ee40db87e36c39835b9796653c741a8f150f2010e9e8f92"
+ },
+ {
+ "path": "diagnostics/row-packet-production-source-2-inputs/lakefile.lean.gz",
+ "bytes": 22687,
+ "sha256": "d79606faad3e9db777e2589d36f5c787b84446754be7674ed60ad27b38914245",
+ "uncompressed_sha256": "0cb9152929cfd0035f323ac3824cd034d310c08877ec402f9d046e8020c93293"
+ },
+ {
+ "path": "diagnostics/row-packet-production-source-2-inputs.json.gz",
+ "bytes": 473,
+ "sha256": "67df8541b52b3cd54893ff6145a02c22ac0f7e4b8f526cfbabdbf65f3cd94cca",
+ "uncompressed_sha256": "6138b9d28106859adb2ff274fda6e07f3216194c5e275ed5783a79289aeea54f"
+ },
+ {
+ "path": "diagnostics/row-packet-production-source-2.log.gz",
+ "bytes": 7846,
+ "sha256": "f95f22e234bbeae16c58c8ad5851a129c148001171ff255d68c513bab51d8a9e",
+ "uncompressed_sha256": "97937acba5d66d5a5c505e086e56ced81db8206f4e8d6b0c1926e062aa05a461"
+ },
+ {
+ "path": "diagnostics/row-read-memo-audit-1.log.gz",
+ "bytes": 7383,
+ "sha256": "dd72c7249d036f66dfe84c371c63ba61758f6aaf32748ddb522bebd8e26e6c38",
+ "uncompressed_sha256": "e2c2653bd70cb4d7f00bf9f3338d102e0861152753a6ebac0b6e8205887ca9d3"
+ },
+ {
+ "path": "diagnostics/row-read-memo-core-1.log.gz",
+ "bytes": 6728,
+ "sha256": "278129d0840396f381af532a54f33125d49d5f7a86270318709426844955ca66",
+ "uncompressed_sha256": "1ee3c3c8c2c0a9e44d58831bedc1b371d3306048c7f1d7bf39a9b7c00b85557b"
+ },
+ {
+ "path": "diagnostics/row-read-memo-core-2.log.gz",
+ "bytes": 6343,
+ "sha256": "e77b5fcd5c6553d4702a2b6c7c118e4e23e0db6215f7aa2a754d15a61404501c",
+ "uncompressed_sha256": "c14d3a609ed4562d5bcc9c88a5a608e85712c565c361f02a42cd2055eaa26968"
+ },
+ {
+ "path": "diagnostics/row-read-memo-probe-1-inputs/RowReadMemo.lean.gz",
+ "bytes": 1562,
+ "sha256": "5688c5e70e860c7be4222bde406d26e3a202af588040c551521c75fec401fd7e",
+ "uncompressed_sha256": "ea361ae36679ab5175b8e07bb6b442b376343e3b66afc82ddca535544c66f26c"
+ },
+ {
+ "path": "diagnostics/row-read-memo-probe-1-inputs/RowReadMemoAudit.lean.gz",
+ "bytes": 1598,
+ "sha256": "b0302b86f036553d1cfafea5ac8d082b1530a48ed0d89af75b85b74d60b8e01f",
+ "uncompressed_sha256": "e4a6c9cac52c33a24e7296b68acdd4b819e7e9ab997e66227a0273a96f90e0fb"
+ },
+ {
+ "path": "diagnostics/row-read-memo-probe-1-inputs/RowReadMemoProbe.lean.gz",
+ "bytes": 1251,
+ "sha256": "97f325633ab12275019907af16574f0e56792d1483110f97d5e468e0b0a95365",
+ "uncompressed_sha256": "5eac2f800a9d5a11515929135320d2bf39fad0d426d5d3084801b6a0cebac967"
+ },
+ {
+ "path": "diagnostics/row-read-memo-probe-1-inputs/RowReadStage.lean.gz",
+ "bytes": 1586,
+ "sha256": "073e025e59f26f02184cfb055e0acc31394abd859bc64367cf29816383a245ea",
+ "uncompressed_sha256": "a57d0a7f9d39491f2b94605ec4a3d2ce628417c02bceca3b1b96af88f4ac1a76"
+ },
+ {
+ "path": "diagnostics/row-read-memo-probe-1-inputs.json.gz",
+ "bytes": 273,
+ "sha256": "32d9e6f0fdc0d5d930d2372575ff18f54105d3a89156b788ef41d8579608fc7c",
+ "uncompressed_sha256": "7da12fc9cbebfc6704bedd14b0974a582da4ca2ea0934733320d539fd1bbe4f9"
+ },
+ {
+ "path": "diagnostics/row-read-memo-probe-1.log.gz",
+ "bytes": 7720,
+ "sha256": "8361870eb5f24d8636a5b0a0292dccd8cbce06c506bd56356c1ec8c260115eed",
+ "uncompressed_sha256": "f389f494a8a8516718f144779c554ee3ae44c4766e39c91c550610809199d2c1"
+ },
+ {
+ "path": "diagnostics/row-read-stage-core-1.log.gz",
+ "bytes": 6359,
+ "sha256": "03eabc8e08dc55af455467a436b9d76dc9c88a1f62194d1728bdc5895892149e",
+ "uncompressed_sha256": "4481acf930a8b8324e7d851385221e75be134141bbae5b9b8feb83ba08ba1e25"
+ },
+ {
+ "path": "diagnostics/row-read-stage-probe-1-inputs/RowReadStage.lean.gz",
+ "bytes": 1586,
+ "sha256": "073e025e59f26f02184cfb055e0acc31394abd859bc64367cf29816383a245ea",
+ "uncompressed_sha256": "a57d0a7f9d39491f2b94605ec4a3d2ce628417c02bceca3b1b96af88f4ac1a76"
+ },
+ {
+ "path": "diagnostics/row-read-stage-probe-1-inputs/RowReadStageAudit.lean.gz",
+ "bytes": 1579,
+ "sha256": "6c206580224b3da360e09f9d2f24c37d16195f1d92444e9339f8930753f23b2a",
+ "uncompressed_sha256": "caf86cdaa70cd7297754f0230bc365376b5f07b832e9c698f2f8b03d0c3bd6b8"
+ },
+ {
+ "path": "diagnostics/row-read-stage-probe-1-inputs/RowReadStageProbe.lean.gz",
+ "bytes": 1063,
+ "sha256": "1f3a51494ffc36b19509fda5624d9334c4995ca9a33aa0e2c747b6133d9b80c7",
+ "uncompressed_sha256": "fcf6514ef3daaa0e3ce15ff78dd6cb31a236fe8bd3354f0a8a9ba2fa53d8f3af"
+ },
+ {
+ "path": "diagnostics/row-read-stage-probe-1-inputs.json.gz",
+ "bytes": 228,
+ "sha256": "ee35912cdce0649dec251f2f10b7d190db1979222d165a401529763796778260",
+ "uncompressed_sha256": "436ceae99b96b0d75d926632c0ee9eae80d456834207aa7901784806cc67483f"
+ },
+ {
+ "path": "diagnostics/row-read-stage-probe-1.log.gz",
+ "bytes": 7402,
+ "sha256": "cc79f57996fdeb719333b9f68d66cc7eb67277a8f78838de27b3e119597afe98",
+ "uncompressed_sha256": "d0662741a7646ebeb6b68e4293197eca64ea94b4e09d21faa6a1d33d7f6b50d6"
+ }
+ ],
+ "validation": {
+ "integration": "validation/cell-memo-expanded-1.log.gz",
+ "source": "validation/row-packet-production-conformance-3.log.gz",
+ "controls": "validation/row-packet-controls-7.log.gz",
+ "render": "validation/cell-memo-render-1.log.gz",
+ "browser": "validation/cell-memo-browser-1.log.gz"
+ },
+ "compiled_files": [
+ {
+ "path": ".lake/build/lib/lean/HexRCF/CellQuoteStages.olean",
+ "bytes": 4264096,
+ "sha256": "051b3cdadfe0f556e7de9a9bc4cc101ee3cfb7847f192bff9f57cebf71ae9fde"
+ },
+ {
+ "path": ".lake/build/lib/lean/HexRCF/CellQuoteStageProofs.olean",
+ "bytes": 3352,
+ "sha256": "870bb8e74a7bf7af63a11674745ea695466c76be237698052a6f2844d98452a7"
+ },
+ {
+ "path": ".lake/build/lib/lean/HexRCF/CellSourceQuote.olean",
+ "bytes": 3481656,
+ "sha256": "4e43038482d2cefe73086ebb4985ac136fcc976e705c93ef7cea01116555234a"
+ },
+ {
+ "path": ".lake/build/lib/lean/HexRCF/CellSourceProofs.olean",
+ "bytes": 3352,
+ "sha256": "b7707d1986295d43c2a76fe6f4c4f7a6682ff3dcd8eb2c5b7b84a35c0237b947"
+ },
+ {
+ "path": ".lake/build/lib/lean/HexRCF/RowPacketControls.olean",
+ "bytes": 23720,
+ "sha256": "2b75f338e535991d7bd4420269a722a752e2b19120ef1e96226d3953edf904c9"
+ }
+ ],
+ "scope": "Fixed-parent original algebraic source quotation, checked graph memos, forty affected targets/manual and ten actually inspected captures.",
+ "limits": "No generic source/history assembly, strict compiled whole-reader completeness, total tactic closure, matched timing/scaling or physical-sharing claim. Older records remain immutable."
+}
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/cell-memo-expanded-1-inputs.json.gz b/reports/data/hexrcf-cell-memos/diagnostics/cell-memo-expanded-1-inputs.json.gz
new file mode 100644
index 0000000000..c5a853b4b7
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/cell-memo-expanded-1-inputs.json.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/cell-memo-expanded-1-inputs/HexManual/Chapters/HexRCF/AlgebraicCells.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/cell-memo-expanded-1-inputs/HexManual/Chapters/HexRCF/AlgebraicCells.lean.gz
new file mode 100644
index 0000000000..e7000c7233
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/cell-memo-expanded-1-inputs/HexManual/Chapters/HexRCF/AlgebraicCells.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/cell-memo-expanded-1-inputs/adapters/HexRCF/RealCoefficients/CellQuote.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/cell-memo-expanded-1-inputs/adapters/HexRCF/RealCoefficients/CellQuote.lean.gz
new file mode 100644
index 0000000000..b0b8f88460
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/cell-memo-expanded-1-inputs/adapters/HexRCF/RealCoefficients/CellQuote.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/cell-memo-expanded-1-inputs/adapters/HexRCF/RealCoefficients/RowPacketQuote.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/cell-memo-expanded-1-inputs/adapters/HexRCF/RealCoefficients/RowPacketQuote.lean.gz
new file mode 100644
index 0000000000..af3c0c1c6d
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/cell-memo-expanded-1-inputs/adapters/HexRCF/RealCoefficients/RowPacketQuote.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/cell-memo-expanded-1-inputs/conformance/HexRCF/CellQuoteStageProofs.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/cell-memo-expanded-1-inputs/conformance/HexRCF/CellQuoteStageProofs.lean.gz
new file mode 100644
index 0000000000..7bb637e20b
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/cell-memo-expanded-1-inputs/conformance/HexRCF/CellQuoteStageProofs.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/cell-memo-expanded-1-inputs/conformance/HexRCF/CellQuoteStages.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/cell-memo-expanded-1-inputs/conformance/HexRCF/CellQuoteStages.lean.gz
new file mode 100644
index 0000000000..03533b2a33
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/cell-memo-expanded-1-inputs/conformance/HexRCF/CellQuoteStages.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/cell-memo-expanded-1-inputs/conformance/HexRCF/CellSourceProofs.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/cell-memo-expanded-1-inputs/conformance/HexRCF/CellSourceProofs.lean.gz
new file mode 100644
index 0000000000..f75bfc8b5e
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/cell-memo-expanded-1-inputs/conformance/HexRCF/CellSourceProofs.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/cell-memo-expanded-1-inputs/conformance/HexRCF/CellSourceQuote.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/cell-memo-expanded-1-inputs/conformance/HexRCF/CellSourceQuote.lean.gz
new file mode 100644
index 0000000000..9077e3ac4c
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/cell-memo-expanded-1-inputs/conformance/HexRCF/CellSourceQuote.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/cell-memo-expanded-1-inputs/conformance/HexRCF/RowPacketControls.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/cell-memo-expanded-1-inputs/conformance/HexRCF/RowPacketControls.lean.gz
new file mode 100644
index 0000000000..7fb19f431e
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/cell-memo-expanded-1-inputs/conformance/HexRCF/RowPacketControls.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/cell-memo-expanded-1-inputs/lakefile.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/cell-memo-expanded-1-inputs/lakefile.lean.gz
new file mode 100644
index 0000000000..a6d227ef2b
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/cell-memo-expanded-1-inputs/lakefile.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs.json.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs.json.gz
new file mode 100644
index 0000000000..1e0c2ed72d
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs.json.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/.github/workflows/ci.yml.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/.github/workflows/ci.yml.gz
new file mode 100644
index 0000000000..371085d537
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/.github/workflows/ci.yml.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/AGENTS.md.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/AGENTS.md.gz
new file mode 100644
index 0000000000..08ec339aad
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/AGENTS.md.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/HexManual/Chapters/HexRCF/AlgebraicCells.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/HexManual/Chapters/HexRCF/AlgebraicCells.lean.gz
new file mode 100644
index 0000000000..1508c4b4be
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/HexManual/Chapters/HexRCF/AlgebraicCells.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/HexManual/Chapters/HexRCF/RootQuote.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/HexManual/Chapters/HexRCF/RootQuote.lean.gz
new file mode 100644
index 0000000000..cf335f8043
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/HexManual/Chapters/HexRCF/RootQuote.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/HexManual/Chapters/HexRCF/RootTableQuote.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/HexManual/Chapters/HexRCF/RootTableQuote.lean.gz
new file mode 100644
index 0000000000..bee5efd565
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/HexManual/Chapters/HexRCF/RootTableQuote.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/HexRCF/README.md.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/HexRCF/README.md.gz
new file mode 100644
index 0000000000..0e4580ca0d
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/HexRCF/README.md.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/HexRCF/SPEC/hex-rcf.md.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/HexRCF/SPEC/hex-rcf.md.gz
new file mode 100644
index 0000000000..2389bc46a2
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/HexRCF/SPEC/hex-rcf.md.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/HexRCF/Tactic.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/HexRCF/Tactic.lean.gz
new file mode 100644
index 0000000000..d8fa651a80
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/HexRCF/Tactic.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/HexRealClosure/Algebraic.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/HexRealClosure/Algebraic.lean.gz
new file mode 100644
index 0000000000..158627aedb
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/HexRealClosure/Algebraic.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/HexRealClosure/ContextData.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/HexRealClosure/ContextData.lean.gz
new file mode 100644
index 0000000000..7913a552cf
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/HexRealClosure/ContextData.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/HexRealClosure/SignCodec.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/HexRealClosure/SignCodec.lean.gz
new file mode 100644
index 0000000000..17077c8e78
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/HexRealClosure/SignCodec.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/HexRealClosure/SignFacts.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/HexRealClosure/SignFacts.lean.gz
new file mode 100644
index 0000000000..90c463bcbb
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/HexRealClosure/SignFacts.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/HexRealClosure/SignatureCodecTests.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/HexRealClosure/SignatureCodecTests.lean.gz
new file mode 100644
index 0000000000..408dfb3412
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/HexRealClosure/SignatureCodecTests.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/HexRealClosure/TowerContext.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/HexRealClosure/TowerContext.lean.gz
new file mode 100644
index 0000000000..81b909aa58
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/HexRealClosure/TowerContext.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/PLAN.md.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/PLAN.md.gz
new file mode 100644
index 0000000000..8f36baa719
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/PLAN.md.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/SPEC/real-closure-execution.md.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/SPEC/real-closure-execution.md.gz
new file mode 100644
index 0000000000..e88ed07df6
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/SPEC/real-closure-execution.md.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/adapters/HexRCF/RealCoefficients.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/adapters/HexRCF/RealCoefficients.lean.gz
new file mode 100644
index 0000000000..6b97000eb6
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/adapters/HexRCF/RealCoefficients.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/adapters/HexRCF/RealCoefficients/CellOperations.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/adapters/HexRCF/RealCoefficients/CellOperations.lean.gz
new file mode 100644
index 0000000000..ce413e143c
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/adapters/HexRCF/RealCoefficients/CellOperations.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/adapters/HexRCF/RealCoefficients/CellQuote.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/adapters/HexRCF/RealCoefficients/CellQuote.lean.gz
new file mode 100644
index 0000000000..f7d1e4d407
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/adapters/HexRCF/RealCoefficients/CellQuote.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/adapters/HexRCF/RealCoefficients/CellRead.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/adapters/HexRCF/RealCoefficients/CellRead.lean.gz
new file mode 100644
index 0000000000..b4e6738c73
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/adapters/HexRCF/RealCoefficients/CellRead.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/adapters/HexRCF/RealCoefficients/RationalQuote.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/adapters/HexRCF/RealCoefficients/RationalQuote.lean.gz
new file mode 100644
index 0000000000..fefe0591e4
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/adapters/HexRCF/RealCoefficients/RationalQuote.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/adapters/HexRCF/RealCoefficients/RealModel.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/adapters/HexRCF/RealCoefficients/RealModel.lean.gz
new file mode 100644
index 0000000000..7447ec74db
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/adapters/HexRCF/RealCoefficients/RealModel.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/adapters/HexRCF/RealCoefficients/Reify.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/adapters/HexRCF/RealCoefficients/Reify.lean.gz
new file mode 100644
index 0000000000..3f822077cf
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/adapters/HexRCF/RealCoefficients/Reify.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/adapters/HexRCF/RealCoefficients/RootContext.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/adapters/HexRCF/RealCoefficients/RootContext.lean.gz
new file mode 100644
index 0000000000..b2b55a1852
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/adapters/HexRCF/RealCoefficients/RootContext.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/adapters/HexRCF/RealCoefficients/RootHeader.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/adapters/HexRCF/RealCoefficients/RootHeader.lean.gz
new file mode 100644
index 0000000000..f439439699
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/adapters/HexRCF/RealCoefficients/RootHeader.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/adapters/HexRCF/RealCoefficients/RootPrepare.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/adapters/HexRCF/RealCoefficients/RootPrepare.lean.gz
new file mode 100644
index 0000000000..03dff204c1
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/adapters/HexRCF/RealCoefficients/RootPrepare.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/adapters/HexRCF/RealCoefficients/RootQuote.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/adapters/HexRCF/RealCoefficients/RootQuote.lean.gz
new file mode 100644
index 0000000000..3f862b815a
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/adapters/HexRCF/RealCoefficients/RootQuote.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/adapters/HexRCF/RealCoefficients/RowQuote.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/adapters/HexRCF/RealCoefficients/RowQuote.lean.gz
new file mode 100644
index 0000000000..e8aa120c87
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/adapters/HexRCF/RealCoefficients/RowQuote.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/adapters/HexRCF/RealCoefficients/ScalarPacket.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/adapters/HexRCF/RealCoefficients/ScalarPacket.lean.gz
new file mode 100644
index 0000000000..be1b5d4e2d
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/adapters/HexRCF/RealCoefficients/ScalarPacket.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/adapters/HexRCF/RealCoefficients/ScalarQuote.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/adapters/HexRCF/RealCoefficients/ScalarQuote.lean.gz
new file mode 100644
index 0000000000..3717329d08
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/adapters/HexRCF/RealCoefficients/ScalarQuote.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/adapters/HexRCF/RealCoefficients/SignatureQuote.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/adapters/HexRCF/RealCoefficients/SignatureQuote.lean.gz
new file mode 100644
index 0000000000..bc36a5dd57
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/adapters/HexRCF/RealCoefficients/SignatureQuote.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/adapters/HexRealClosureTheory/Algebraic.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/adapters/HexRealClosureTheory/Algebraic.lean.gz
new file mode 100644
index 0000000000..95371fece7
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/adapters/HexRealClosureTheory/Algebraic.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/adapters/HexRealClosureTheory/SignFacts.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/adapters/HexRealClosureTheory/SignFacts.lean.gz
new file mode 100644
index 0000000000..dba77446ae
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/adapters/HexRealClosureTheory/SignFacts.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/adapters/HexRealClosureTheory/TowerModel.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/adapters/HexRealClosureTheory/TowerModel.lean.gz
new file mode 100644
index 0000000000..b72ae7d5c5
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/adapters/HexRealClosureTheory/TowerModel.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/CellQuoteStageProofs.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/CellQuoteStageProofs.lean.gz
new file mode 100644
index 0000000000..2fd086db75
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/CellQuoteStageProofs.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/CellQuoteStages.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/CellQuoteStages.lean.gz
new file mode 100644
index 0000000000..d6ec2a7225
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/CellQuoteStages.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/DependentQuote.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/DependentQuote.lean.gz
new file mode 100644
index 0000000000..24a2d1ec6e
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/DependentQuote.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/DependentQuoteData.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/DependentQuoteData.lean.gz
new file mode 100644
index 0000000000..e6a5b7e784
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/DependentQuoteData.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/DependentQuoteProofs.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/DependentQuoteProofs.lean.gz
new file mode 100644
index 0000000000..09145ca8a6
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/DependentQuoteProofs.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/DependentScalarProofs.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/DependentScalarProofs.lean.gz
new file mode 100644
index 0000000000..efe7eacfba
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/DependentScalarProofs.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/DependentScalarQuote.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/DependentScalarQuote.lean.gz
new file mode 100644
index 0000000000..6d2819be3b
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/DependentScalarQuote.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/FrozenSignatureConformance.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/FrozenSignatureConformance.lean.gz
new file mode 100644
index 0000000000..3878b99eae
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/FrozenSignatureConformance.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/FrozenSignatureProofs.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/FrozenSignatureProofs.lean.gz
new file mode 100644
index 0000000000..93b403cf7d
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/FrozenSignatureProofs.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/ProofFunctionPublic.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/ProofFunctionPublic.lean.gz
new file mode 100644
index 0000000000..ca2837b3a5
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/ProofFunctionPublic.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/PublicSignPacket.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/PublicSignPacket.lean.gz
new file mode 100644
index 0000000000..16857fb54f
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/PublicSignPacket.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/PublicSignPacketControls.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/PublicSignPacketControls.lean.gz
new file mode 100644
index 0000000000..d101cf6c04
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/PublicSignPacketControls.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/PublicSignPacketProofs.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/PublicSignPacketProofs.lean.gz
new file mode 100644
index 0000000000..b190aeb20a
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/PublicSignPacketProofs.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/PublicSignPacketValues.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/PublicSignPacketValues.lean.gz
new file mode 100644
index 0000000000..d6bd7af2a6
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/PublicSignPacketValues.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/QuotientQuote.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/QuotientQuote.lean.gz
new file mode 100644
index 0000000000..9fef518047
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/QuotientQuote.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/QuotientQuoteData.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/QuotientQuoteData.lean.gz
new file mode 100644
index 0000000000..ea53eb2579
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/QuotientQuoteData.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/QuotientQuoteProofs.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/QuotientQuoteProofs.lean.gz
new file mode 100644
index 0000000000..deea7b5d15
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/QuotientQuoteProofs.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/QuotientQuotePublic.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/QuotientQuotePublic.lean.gz
new file mode 100644
index 0000000000..d8a20bd873
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/QuotientQuotePublic.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RationalQuoteConformance.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RationalQuoteConformance.lean.gz
new file mode 100644
index 0000000000..a5fb8195d3
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RationalQuoteConformance.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RecursiveScalarQuote.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RecursiveScalarQuote.lean.gz
new file mode 100644
index 0000000000..e8fd5fdd70
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RecursiveScalarQuote.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/ReplayBoundary.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/ReplayBoundary.lean.gz
new file mode 100644
index 0000000000..e082d9f721
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/ReplayBoundary.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/ReplayBoundaryProofs.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/ReplayBoundaryProofs.lean.gz
new file mode 100644
index 0000000000..934a02294d
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/ReplayBoundaryProofs.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/ReplayHelperProofs.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/ReplayHelperProofs.lean.gz
new file mode 100644
index 0000000000..93187dd114
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/ReplayHelperProofs.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/ReplayHelpers.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/ReplayHelpers.lean.gz
new file mode 100644
index 0000000000..e43a91b76d
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/ReplayHelpers.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RootContextConformance.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RootContextConformance.lean.gz
new file mode 100644
index 0000000000..e14c9c2168
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RootContextConformance.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RootContextProofs.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RootContextProofs.lean.gz
new file mode 100644
index 0000000000..45df4babfa
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RootContextProofs.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RootHeaderBudget.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RootHeaderBudget.lean.gz
new file mode 100644
index 0000000000..899351d2f9
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RootHeaderBudget.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RootHeaderControls.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RootHeaderControls.lean.gz
new file mode 100644
index 0000000000..c754c69b4a
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RootHeaderControls.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RootHeaderPacket.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RootHeaderPacket.lean.gz
new file mode 100644
index 0000000000..3642bf45c5
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RootHeaderPacket.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RootHeaderProofs.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RootHeaderProofs.lean.gz
new file mode 100644
index 0000000000..d37b33f07f
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RootHeaderProofs.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RootHeaderValues.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RootHeaderValues.lean.gz
new file mode 100644
index 0000000000..2559915847
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RootHeaderValues.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RootPrepareControls.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RootPrepareControls.lean.gz
new file mode 100644
index 0000000000..d51407f779
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RootPrepareControls.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RootPreparePacket.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RootPreparePacket.lean.gz
new file mode 100644
index 0000000000..c8c76953e5
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RootPreparePacket.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RootPrepareProofs.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RootPrepareProofs.lean.gz
new file mode 100644
index 0000000000..78ed17a4b0
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RootPrepareProofs.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RootPreparePublic.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RootPreparePublic.lean.gz
new file mode 100644
index 0000000000..e86ec6e4c6
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RootPreparePublic.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RootQuoteCases.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RootQuoteCases.lean.gz
new file mode 100644
index 0000000000..072d81479c
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RootQuoteCases.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RootQuoteConformance.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RootQuoteConformance.lean.gz
new file mode 100644
index 0000000000..80c85d8f12
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RootQuoteConformance.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RootQuoteData.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RootQuoteData.lean.gz
new file mode 100644
index 0000000000..d687ed0824
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RootQuoteData.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RootQuoteSource.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RootQuoteSource.lean.gz
new file mode 100644
index 0000000000..0c81daa6d8
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RootQuoteSource.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RootTableQuote/Conformance.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RootTableQuote/Conformance.lean.gz
new file mode 100644
index 0000000000..d95eaa4824
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RootTableQuote/Conformance.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RowQuoteCases.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RowQuoteCases.lean.gz
new file mode 100644
index 0000000000..44c1f96644
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RowQuoteCases.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RowQuoteData.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RowQuoteData.lean.gz
new file mode 100644
index 0000000000..fb607c8d57
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RowQuoteData.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RowQuoteDepth.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RowQuoteDepth.lean.gz
new file mode 100644
index 0000000000..c548e5750c
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RowQuoteDepth.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RowQuoteProofs.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RowQuoteProofs.lean.gz
new file mode 100644
index 0000000000..7084bd6426
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/RowQuoteProofs.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/SelectedRoot/KernelCheck.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/SelectedRoot/KernelCheck.lean.gz
new file mode 100644
index 0000000000..adc4d30e81
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/SelectedRoot/KernelCheck.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/SharedQuoteCallbacks.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/SharedQuoteCallbacks.lean.gz
new file mode 100644
index 0000000000..6352bbf7a5
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/SharedQuoteCallbacks.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/SignPacketProofs.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/SignPacketProofs.lean.gz
new file mode 100644
index 0000000000..082fe3ae69
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/SignPacketProofs.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/SignPacketQuote.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/SignPacketQuote.lean.gz
new file mode 100644
index 0000000000..6e248b2a25
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/SignPacketQuote.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/SignatureQuoteConformance.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/SignatureQuoteConformance.lean.gz
new file mode 100644
index 0000000000..c505f25c34
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/SignatureQuoteConformance.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/SourceSelectionCases.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/SourceSelectionCases.lean.gz
new file mode 100644
index 0000000000..e863ba4a2d
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/SourceSelectionCases.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/TreeQuote.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/TreeQuote.lean.gz
new file mode 100644
index 0000000000..74c13640a6
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/TreeQuote.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/TreeQuoteData.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/TreeQuoteData.lean.gz
new file mode 100644
index 0000000000..82d16190d9
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/TreeQuoteData.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/TreeQuoteProofs.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/TreeQuoteProofs.lean.gz
new file mode 100644
index 0000000000..67eabe097a
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/TreeQuoteProofs.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/TreeQuotePublic.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/TreeQuotePublic.lean.gz
new file mode 100644
index 0000000000..fcb41e9042
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/conformance/HexRCF/TreeQuotePublic.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/experiments/KernelReplay/AxiomClosure.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/experiments/KernelReplay/AxiomClosure.lean.gz
new file mode 100644
index 0000000000..23f9195417
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/experiments/KernelReplay/AxiomClosure.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/lake-manifest.json.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/lake-manifest.json.gz
new file mode 100644
index 0000000000..c149e3a18d
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/lake-manifest.json.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/lakefile.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/lakefile.lean.gz
new file mode 100644
index 0000000000..d733237ce5
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/lakefile.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/lean-toolchain.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/lean-toolchain.gz
new file mode 100644
index 0000000000..7d66d8bf66
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/lean-toolchain.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/libraries.yml.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/libraries.yml.gz
new file mode 100644
index 0000000000..36f463e228
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/libraries.yml.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/reports/hexrcf-packet-quotation.md.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/reports/hexrcf-packet-quotation.md.gz
new file mode 100644
index 0000000000..6acabc400a
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/reports/hexrcf-packet-quotation.md.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/reports/hexrcf-proof-functions.md.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/reports/hexrcf-proof-functions.md.gz
new file mode 100644
index 0000000000..040049e1ad
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/reports/hexrcf-proof-functions.md.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/reports/hexrcf-public-packet-quotation.md.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/reports/hexrcf-public-packet-quotation.md.gz
new file mode 100644
index 0000000000..93c81e8543
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/reports/hexrcf-public-packet-quotation.md.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/reports/hexrcf-root-context.md.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/reports/hexrcf-root-context.md.gz
new file mode 100644
index 0000000000..caa307701e
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/reports/hexrcf-root-context.md.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/reports/hexrcf-root-header-quotation.md.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/reports/hexrcf-root-header-quotation.md.gz
new file mode 100644
index 0000000000..959e5ef729
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/reports/hexrcf-root-header-quotation.md.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/reports/hexrcf-root-preparation.md.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/reports/hexrcf-root-preparation.md.gz
new file mode 100644
index 0000000000..85c237ac13
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/reports/hexrcf-root-preparation.md.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/reports/hexrcf-row-quotation.md.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/reports/hexrcf-row-quotation.md.gz
new file mode 100644
index 0000000000..851eac669f
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/reports/hexrcf-row-quotation.md.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/reports/hexrcf-sign-packet-quotation.md.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/reports/hexrcf-sign-packet-quotation.md.gz
new file mode 100644
index 0000000000..68ba6a92df
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/reports/hexrcf-sign-packet-quotation.md.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/reports/hexrcf-tree-quotation.md.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/reports/hexrcf-tree-quotation.md.gz
new file mode 100644
index 0000000000..76a8f16977
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/repo/reports/hexrcf-tree-quotation.md.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/task/FreshStaged.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/task/FreshStaged.lean.gz
new file mode 100644
index 0000000000..e6d332c686
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/task/FreshStaged.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/task/FreshStagedAudit.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/task/FreshStagedAudit.lean.gz
new file mode 100644
index 0000000000..8cadf11f4e
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/task/FreshStagedAudit.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/task/lake-manifest.json.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/task/lake-manifest.json.gz
new file mode 100644
index 0000000000..bc3d8e411f
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/task/lake-manifest.json.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/task/lakefile.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/task/lakefile.lean.gz
new file mode 100644
index 0000000000..93246f647c
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-inputs/task/lakefile.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-progress.log.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-progress.log.gz
new file mode 100644
index 0000000000..609794133e
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1-progress.log.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1.log.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1.log.gz
new file mode 100644
index 0000000000..e345ac79db
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-1.log.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-audit-1-inputs.json.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-audit-1-inputs.json.gz
new file mode 100644
index 0000000000..71d501cacb
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-audit-1-inputs.json.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-audit-1-inputs/FreshStaged.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-audit-1-inputs/FreshStaged.lean.gz
new file mode 100644
index 0000000000..e6d332c686
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-audit-1-inputs/FreshStaged.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-audit-1-inputs/FreshStagedAudit.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-audit-1-inputs/FreshStagedAudit.lean.gz
new file mode 100644
index 0000000000..f47823ea8c
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-audit-1-inputs/FreshStagedAudit.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-audit-1-inputs/lakefile.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-audit-1-inputs/lakefile.lean.gz
new file mode 100644
index 0000000000..2e1864fb2d
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-audit-1-inputs/lakefile.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-audit-1.log.gz b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-audit-1.log.gz
new file mode 100644
index 0000000000..28794bc315
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/fresh-staged-pointwise-audit-1.log.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/row-packet-conformance-metadata.log.gz b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-conformance-metadata.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-conformance-metadata.log.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/row-packet-controls-1.log.gz b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-controls-1.log.gz
new file mode 100644
index 0000000000..139036430e
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-controls-1.log.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/row-packet-controls-2.log.gz b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-controls-2.log.gz
new file mode 100644
index 0000000000..aaeff7240f
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-controls-2.log.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/row-packet-controls-3.log.gz b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-controls-3.log.gz
new file mode 100644
index 0000000000..2841c3a495
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-controls-3.log.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/row-packet-controls-4.log.gz b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-controls-4.log.gz
new file mode 100644
index 0000000000..a69f1bedca
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-controls-4.log.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/row-packet-controls-5.log.gz b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-controls-5.log.gz
new file mode 100644
index 0000000000..a785947115
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-controls-5.log.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/row-packet-controls-6.log.gz b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-controls-6.log.gz
new file mode 100644
index 0000000000..ddb236b6b8
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-controls-6.log.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/row-packet-controls-7.log.gz b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-controls-7.log.gz
new file mode 100644
index 0000000000..1693fe6981
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-controls-7.log.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/row-packet-final-metadata-admissions.log.gz b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-final-metadata-admissions.log.gz
new file mode 100644
index 0000000000..3407256eac
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-final-metadata-admissions.log.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/row-packet-final-metadata-copyright.log.gz b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-final-metadata-copyright.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-final-metadata-copyright.log.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/row-packet-final-metadata-dag.log.gz b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-final-metadata-dag.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-final-metadata-dag.log.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/row-packet-final-metadata-diff.log.gz b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-final-metadata-diff.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-final-metadata-diff.log.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/row-packet-final-metadata-lines.log.gz b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-final-metadata-lines.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-final-metadata-lines.log.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/row-packet-final-metadata-relative.log.gz b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-final-metadata-relative.log.gz
new file mode 100644
index 0000000000..154780e0b7
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-final-metadata-relative.log.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/row-packet-final-metadata-selected-admissions.log.gz b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-final-metadata-selected-admissions.log.gz
new file mode 100644
index 0000000000..13e605f948
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-final-metadata-selected-admissions.log.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/row-packet-final-metadata-summary.log.gz b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-final-metadata-summary.log.gz
new file mode 100644
index 0000000000..609e099a96
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-final-metadata-summary.log.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/row-packet-final-metadata.json.gz b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-final-metadata.json.gz
new file mode 100644
index 0000000000..5feb2e2b0b
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-final-metadata.json.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-conformance-1-inputs.json.gz b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-conformance-1-inputs.json.gz
new file mode 100644
index 0000000000..16bd09a07f
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-conformance-1-inputs.json.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-conformance-1-inputs/adapters/HexRCF/RealCoefficients/CellQuote.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-conformance-1-inputs/adapters/HexRCF/RealCoefficients/CellQuote.lean.gz
new file mode 100644
index 0000000000..b0b8f88460
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-conformance-1-inputs/adapters/HexRCF/RealCoefficients/CellQuote.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-conformance-1-inputs/adapters/HexRCF/RealCoefficients/RowPacketQuote.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-conformance-1-inputs/adapters/HexRCF/RealCoefficients/RowPacketQuote.lean.gz
new file mode 100644
index 0000000000..96016a41a0
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-conformance-1-inputs/adapters/HexRCF/RealCoefficients/RowPacketQuote.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-conformance-1-inputs/conformance/HexRCF/CellQuoteStageProofs.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-conformance-1-inputs/conformance/HexRCF/CellQuoteStageProofs.lean.gz
new file mode 100644
index 0000000000..6fb25e943b
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-conformance-1-inputs/conformance/HexRCF/CellQuoteStageProofs.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-conformance-1-inputs/conformance/HexRCF/CellQuoteStages.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-conformance-1-inputs/conformance/HexRCF/CellQuoteStages.lean.gz
new file mode 100644
index 0000000000..03533b2a33
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-conformance-1-inputs/conformance/HexRCF/CellQuoteStages.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-conformance-1-inputs/conformance/HexRCF/CellSourceProofs.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-conformance-1-inputs/conformance/HexRCF/CellSourceProofs.lean.gz
new file mode 100644
index 0000000000..c32e3c356a
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-conformance-1-inputs/conformance/HexRCF/CellSourceProofs.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-conformance-1-inputs/conformance/HexRCF/CellSourceQuote.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-conformance-1-inputs/conformance/HexRCF/CellSourceQuote.lean.gz
new file mode 100644
index 0000000000..9077e3ac4c
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-conformance-1-inputs/conformance/HexRCF/CellSourceQuote.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-conformance-1-inputs/lakefile.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-conformance-1-inputs/lakefile.lean.gz
new file mode 100644
index 0000000000..b56348b4ba
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-conformance-1-inputs/lakefile.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-conformance-1.log.gz b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-conformance-1.log.gz
new file mode 100644
index 0000000000..7c212ee07e
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-conformance-1.log.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-conformance-3-inputs.json.gz b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-conformance-3-inputs.json.gz
new file mode 100644
index 0000000000..08515dba9f
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-conformance-3-inputs.json.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-conformance-3-inputs/HexManual/Chapters/HexRCF/AlgebraicCells.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-conformance-3-inputs/HexManual/Chapters/HexRCF/AlgebraicCells.lean.gz
new file mode 100644
index 0000000000..598a6eae7f
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-conformance-3-inputs/HexManual/Chapters/HexRCF/AlgebraicCells.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-conformance-3-inputs/adapters/HexRCF/RealCoefficients/CellQuote.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-conformance-3-inputs/adapters/HexRCF/RealCoefficients/CellQuote.lean.gz
new file mode 100644
index 0000000000..b0b8f88460
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-conformance-3-inputs/adapters/HexRCF/RealCoefficients/CellQuote.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-conformance-3-inputs/adapters/HexRCF/RealCoefficients/RowPacketQuote.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-conformance-3-inputs/adapters/HexRCF/RealCoefficients/RowPacketQuote.lean.gz
new file mode 100644
index 0000000000..af3c0c1c6d
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-conformance-3-inputs/adapters/HexRCF/RealCoefficients/RowPacketQuote.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-conformance-3-inputs/conformance/HexRCF/CellQuoteStageProofs.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-conformance-3-inputs/conformance/HexRCF/CellQuoteStageProofs.lean.gz
new file mode 100644
index 0000000000..7bb637e20b
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-conformance-3-inputs/conformance/HexRCF/CellQuoteStageProofs.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-conformance-3-inputs/conformance/HexRCF/CellQuoteStages.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-conformance-3-inputs/conformance/HexRCF/CellQuoteStages.lean.gz
new file mode 100644
index 0000000000..03533b2a33
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-conformance-3-inputs/conformance/HexRCF/CellQuoteStages.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-conformance-3-inputs/conformance/HexRCF/CellSourceProofs.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-conformance-3-inputs/conformance/HexRCF/CellSourceProofs.lean.gz
new file mode 100644
index 0000000000..c32e3c356a
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-conformance-3-inputs/conformance/HexRCF/CellSourceProofs.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-conformance-3-inputs/conformance/HexRCF/CellSourceQuote.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-conformance-3-inputs/conformance/HexRCF/CellSourceQuote.lean.gz
new file mode 100644
index 0000000000..9077e3ac4c
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-conformance-3-inputs/conformance/HexRCF/CellSourceQuote.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-conformance-3-inputs/lakefile.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-conformance-3-inputs/lakefile.lean.gz
new file mode 100644
index 0000000000..b56348b4ba
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-conformance-3-inputs/lakefile.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-conformance-3.log.gz b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-conformance-3.log.gz
new file mode 100644
index 0000000000..35cb116fce
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-conformance-3.log.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-core-1.log.gz b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-core-1.log.gz
new file mode 100644
index 0000000000..4dab0b2c7b
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-core-1.log.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-core-2.log.gz b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-core-2.log.gz
new file mode 100644
index 0000000000..d4bb8003c6
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-core-2.log.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-core-3.log.gz b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-core-3.log.gz
new file mode 100644
index 0000000000..38f1c99a33
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-core-3.log.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-core-4.log.gz b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-core-4.log.gz
new file mode 100644
index 0000000000..72a18c2b0e
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-core-4.log.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-core-5.log.gz b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-core-5.log.gz
new file mode 100644
index 0000000000..47ee68c174
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-core-5.log.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-core-6.log.gz b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-core-6.log.gz
new file mode 100644
index 0000000000..57c6b3f6dd
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-core-6.log.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-metadata-1.log.gz b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-metadata-1.log.gz
new file mode 100644
index 0000000000..609e099a96
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-metadata-1.log.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-source-2-inputs.json.gz b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-source-2-inputs.json.gz
new file mode 100644
index 0000000000..06f207f496
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-source-2-inputs.json.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-source-2-inputs/adapters/HexRCF/RealCoefficients/CellQuote.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-source-2-inputs/adapters/HexRCF/RealCoefficients/CellQuote.lean.gz
new file mode 100644
index 0000000000..b0b8f88460
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-source-2-inputs/adapters/HexRCF/RealCoefficients/CellQuote.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-source-2-inputs/adapters/HexRCF/RealCoefficients/RowPacketQuote.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-source-2-inputs/adapters/HexRCF/RealCoefficients/RowPacketQuote.lean.gz
new file mode 100644
index 0000000000..b0302ef8f9
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-source-2-inputs/adapters/HexRCF/RealCoefficients/RowPacketQuote.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-source-2-inputs/conformance/HexRCF/CellQuoteStageProofs.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-source-2-inputs/conformance/HexRCF/CellQuoteStageProofs.lean.gz
new file mode 100644
index 0000000000..6fb25e943b
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-source-2-inputs/conformance/HexRCF/CellQuoteStageProofs.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-source-2-inputs/conformance/HexRCF/CellQuoteStages.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-source-2-inputs/conformance/HexRCF/CellQuoteStages.lean.gz
new file mode 100644
index 0000000000..03533b2a33
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-source-2-inputs/conformance/HexRCF/CellQuoteStages.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-source-2-inputs/conformance/HexRCF/CellSourceProofs.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-source-2-inputs/conformance/HexRCF/CellSourceProofs.lean.gz
new file mode 100644
index 0000000000..c32e3c356a
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-source-2-inputs/conformance/HexRCF/CellSourceProofs.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-source-2-inputs/conformance/HexRCF/CellSourceQuote.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-source-2-inputs/conformance/HexRCF/CellSourceQuote.lean.gz
new file mode 100644
index 0000000000..9077e3ac4c
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-source-2-inputs/conformance/HexRCF/CellSourceQuote.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-source-2-inputs/lakefile.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-source-2-inputs/lakefile.lean.gz
new file mode 100644
index 0000000000..b56348b4ba
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-source-2-inputs/lakefile.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-source-2.log.gz b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-source-2.log.gz
new file mode 100644
index 0000000000..431497407e
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/row-packet-production-source-2.log.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/row-read-memo-audit-1.log.gz b/reports/data/hexrcf-cell-memos/diagnostics/row-read-memo-audit-1.log.gz
new file mode 100644
index 0000000000..af8f220b24
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/row-read-memo-audit-1.log.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/row-read-memo-core-1.log.gz b/reports/data/hexrcf-cell-memos/diagnostics/row-read-memo-core-1.log.gz
new file mode 100644
index 0000000000..95bd15e8e3
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/row-read-memo-core-1.log.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/row-read-memo-core-2.log.gz b/reports/data/hexrcf-cell-memos/diagnostics/row-read-memo-core-2.log.gz
new file mode 100644
index 0000000000..56f8fb2465
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/row-read-memo-core-2.log.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/row-read-memo-probe-1-inputs.json.gz b/reports/data/hexrcf-cell-memos/diagnostics/row-read-memo-probe-1-inputs.json.gz
new file mode 100644
index 0000000000..1e56dd1dd7
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/row-read-memo-probe-1-inputs.json.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/row-read-memo-probe-1-inputs/RowReadMemo.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/row-read-memo-probe-1-inputs/RowReadMemo.lean.gz
new file mode 100644
index 0000000000..ab1673c38e
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/row-read-memo-probe-1-inputs/RowReadMemo.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/row-read-memo-probe-1-inputs/RowReadMemoAudit.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/row-read-memo-probe-1-inputs/RowReadMemoAudit.lean.gz
new file mode 100644
index 0000000000..598139fc7c
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/row-read-memo-probe-1-inputs/RowReadMemoAudit.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/row-read-memo-probe-1-inputs/RowReadMemoProbe.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/row-read-memo-probe-1-inputs/RowReadMemoProbe.lean.gz
new file mode 100644
index 0000000000..0ef2758398
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/row-read-memo-probe-1-inputs/RowReadMemoProbe.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/row-read-memo-probe-1-inputs/RowReadStage.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/row-read-memo-probe-1-inputs/RowReadStage.lean.gz
new file mode 100644
index 0000000000..9f9d721a72
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/row-read-memo-probe-1-inputs/RowReadStage.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/row-read-memo-probe-1.log.gz b/reports/data/hexrcf-cell-memos/diagnostics/row-read-memo-probe-1.log.gz
new file mode 100644
index 0000000000..a348c05444
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/row-read-memo-probe-1.log.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/row-read-stage-core-1.log.gz b/reports/data/hexrcf-cell-memos/diagnostics/row-read-stage-core-1.log.gz
new file mode 100644
index 0000000000..361301594a
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/row-read-stage-core-1.log.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/row-read-stage-probe-1-inputs.json.gz b/reports/data/hexrcf-cell-memos/diagnostics/row-read-stage-probe-1-inputs.json.gz
new file mode 100644
index 0000000000..e645dd5f9d
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/row-read-stage-probe-1-inputs.json.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/row-read-stage-probe-1-inputs/RowReadStage.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/row-read-stage-probe-1-inputs/RowReadStage.lean.gz
new file mode 100644
index 0000000000..9f9d721a72
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/row-read-stage-probe-1-inputs/RowReadStage.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/row-read-stage-probe-1-inputs/RowReadStageAudit.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/row-read-stage-probe-1-inputs/RowReadStageAudit.lean.gz
new file mode 100644
index 0000000000..b479565909
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/row-read-stage-probe-1-inputs/RowReadStageAudit.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/row-read-stage-probe-1-inputs/RowReadStageProbe.lean.gz b/reports/data/hexrcf-cell-memos/diagnostics/row-read-stage-probe-1-inputs/RowReadStageProbe.lean.gz
new file mode 100644
index 0000000000..afc5eb60c4
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/row-read-stage-probe-1-inputs/RowReadStageProbe.lean.gz differ
diff --git a/reports/data/hexrcf-cell-memos/diagnostics/row-read-stage-probe-1.log.gz b/reports/data/hexrcf-cell-memos/diagnostics/row-read-stage-probe-1.log.gz
new file mode 100644
index 0000000000..62d288c6fb
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/diagnostics/row-read-stage-probe-1.log.gz differ
diff --git a/reports/data/hexrcf-cell-memos/validation/cell-memo-browser-1.log.gz b/reports/data/hexrcf-cell-memos/validation/cell-memo-browser-1.log.gz
new file mode 100644
index 0000000000..fcf95543b6
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/validation/cell-memo-browser-1.log.gz differ
diff --git a/reports/data/hexrcf-cell-memos/validation/cell-memo-expanded-1.log.gz b/reports/data/hexrcf-cell-memos/validation/cell-memo-expanded-1.log.gz
new file mode 100644
index 0000000000..ce9f43522f
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/validation/cell-memo-expanded-1.log.gz differ
diff --git a/reports/data/hexrcf-cell-memos/validation/cell-memo-expanded-invocation.json.gz b/reports/data/hexrcf-cell-memos/validation/cell-memo-expanded-invocation.json.gz
new file mode 100644
index 0000000000..0040039971
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/validation/cell-memo-expanded-invocation.json.gz differ
diff --git a/reports/data/hexrcf-cell-memos/validation/cell-memo-expanded-targets.txt.gz b/reports/data/hexrcf-cell-memos/validation/cell-memo-expanded-targets.txt.gz
new file mode 100644
index 0000000000..39c6dc863d
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/validation/cell-memo-expanded-targets.txt.gz differ
diff --git a/reports/data/hexrcf-cell-memos/validation/cell-memo-memory-policy.txt.gz b/reports/data/hexrcf-cell-memos/validation/cell-memo-memory-policy.txt.gz
new file mode 100644
index 0000000000..f46aedca0b
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/validation/cell-memo-memory-policy.txt.gz differ
diff --git a/reports/data/hexrcf-cell-memos/validation/cell-memo-render-1.log.gz b/reports/data/hexrcf-cell-memos/validation/cell-memo-render-1.log.gz
new file mode 100644
index 0000000000..c26adc7c03
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/validation/cell-memo-render-1.log.gz differ
diff --git a/reports/data/hexrcf-cell-memos/validation/collect-cell-memos.py.gz b/reports/data/hexrcf-cell-memos/validation/collect-cell-memos.py.gz
new file mode 100644
index 0000000000..9ef01efb29
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/validation/collect-cell-memos.py.gz differ
diff --git a/reports/data/hexrcf-cell-memos/validation/metadata.json b/reports/data/hexrcf-cell-memos/validation/metadata.json
new file mode 100644
index 0000000000..05cd3f3d87
--- /dev/null
+++ b/reports/data/hexrcf-cell-memos/validation/metadata.json
@@ -0,0 +1,61 @@
+[
+ {
+ "name": "copyright",
+ "command": [
+ "python3",
+ "scripts/check_copyright_headers.py"
+ ],
+ "log": "row-packet-final-metadata-copyright.log",
+ "exit_code": 0
+ },
+ {
+ "name": "lines",
+ "command": [
+ "python3",
+ "scripts/check_file_line_counts.py",
+ "--base",
+ "origin/main"
+ ],
+ "log": "row-packet-final-metadata-lines.log",
+ "exit_code": 0
+ },
+ {
+ "name": "dag",
+ "command": [
+ "python3",
+ "scripts/check_dag.py"
+ ],
+ "log": "row-packet-final-metadata-dag.log",
+ "exit_code": 0
+ },
+ {
+ "name": "admissions",
+ "command": [
+ "python3",
+ "scripts/ci/check_named_admissions.py"
+ ],
+ "log": "row-packet-final-metadata-admissions.log",
+ "exit_code": 0
+ },
+ {
+ "name": "diff",
+ "command": [
+ "git",
+ "diff",
+ "HEAD",
+ "--check"
+ ],
+ "log": "row-packet-final-metadata-diff.log",
+ "exit_code": 0
+ },
+ {
+ "name": "selected-admissions",
+ "log": "row-packet-final-metadata-selected-admissions.log",
+ "exit_code": 0
+ },
+ {
+ "name": "relative",
+ "log": "row-packet-final-metadata-relative.log",
+ "exit_code": 0
+ }
+]
diff --git a/reports/data/hexrcf-cell-memos/validation/row-packet-controls-7.log.gz b/reports/data/hexrcf-cell-memos/validation/row-packet-controls-7.log.gz
new file mode 100644
index 0000000000..1693fe6981
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/validation/row-packet-controls-7.log.gz differ
diff --git a/reports/data/hexrcf-cell-memos/validation/row-packet-final-metadata-admissions.log.gz b/reports/data/hexrcf-cell-memos/validation/row-packet-final-metadata-admissions.log.gz
new file mode 100644
index 0000000000..3407256eac
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/validation/row-packet-final-metadata-admissions.log.gz differ
diff --git a/reports/data/hexrcf-cell-memos/validation/row-packet-final-metadata-copyright.log.gz b/reports/data/hexrcf-cell-memos/validation/row-packet-final-metadata-copyright.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/validation/row-packet-final-metadata-copyright.log.gz differ
diff --git a/reports/data/hexrcf-cell-memos/validation/row-packet-final-metadata-dag.log.gz b/reports/data/hexrcf-cell-memos/validation/row-packet-final-metadata-dag.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/validation/row-packet-final-metadata-dag.log.gz differ
diff --git a/reports/data/hexrcf-cell-memos/validation/row-packet-final-metadata-diff.log.gz b/reports/data/hexrcf-cell-memos/validation/row-packet-final-metadata-diff.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/validation/row-packet-final-metadata-diff.log.gz differ
diff --git a/reports/data/hexrcf-cell-memos/validation/row-packet-final-metadata-lines.log.gz b/reports/data/hexrcf-cell-memos/validation/row-packet-final-metadata-lines.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/validation/row-packet-final-metadata-lines.log.gz differ
diff --git a/reports/data/hexrcf-cell-memos/validation/row-packet-final-metadata-relative.log.gz b/reports/data/hexrcf-cell-memos/validation/row-packet-final-metadata-relative.log.gz
new file mode 100644
index 0000000000..154780e0b7
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/validation/row-packet-final-metadata-relative.log.gz differ
diff --git a/reports/data/hexrcf-cell-memos/validation/row-packet-final-metadata-selected-admissions.log.gz b/reports/data/hexrcf-cell-memos/validation/row-packet-final-metadata-selected-admissions.log.gz
new file mode 100644
index 0000000000..13e605f948
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/validation/row-packet-final-metadata-selected-admissions.log.gz differ
diff --git a/reports/data/hexrcf-cell-memos/validation/row-packet-final-metadata.py.gz b/reports/data/hexrcf-cell-memos/validation/row-packet-final-metadata.py.gz
new file mode 100644
index 0000000000..f297abc597
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/validation/row-packet-final-metadata.py.gz differ
diff --git a/reports/data/hexrcf-cell-memos/validation/row-packet-production-conformance-3.log.gz b/reports/data/hexrcf-cell-memos/validation/row-packet-production-conformance-3.log.gz
new file mode 100644
index 0000000000..35cb116fce
Binary files /dev/null and b/reports/data/hexrcf-cell-memos/validation/row-packet-production-conformance-3.log.gz differ
diff --git a/reports/data/hexrcf-cell-memos/validation/run-bounded.sh b/reports/data/hexrcf-cell-memos/validation/run-bounded.sh
new file mode 100644
index 0000000000..2cc8636e8a
--- /dev/null
+++ b/reports/data/hexrcf-cell-memos/validation/run-bounded.sh
@@ -0,0 +1,10 @@
+#!/usr/bin/env bash
+set -euo pipefail
+exec systemd-run --user --wait --pipe --collect \
+ --unit=hex-10358-lean-build \
+ --property=MemoryMax=32G \
+ --property=MemorySwapMax=0 \
+ --property=OOMPolicy=kill \
+ --working-directory="$PWD" \
+ --setenv="PATH=$PATH" --setenv=LEAN_NUM_THREADS=2 \
+ "$@"
diff --git a/reports/data/hexrcf-cell-memos/verify.py b/reports/data/hexrcf-cell-memos/verify.py
new file mode 100644
index 0000000000..bc1f6ab29d
--- /dev/null
+++ b/reports/data/hexrcf-cell-memos/verify.py
@@ -0,0 +1,72 @@
+#!/usr/bin/env python3
+"""Verify fixed-parent source quotation and checked graph-memo evidence."""
+import argparse
+import gzip
+import hashlib
+import json
+from pathlib import Path
+import subprocess
+
+parser = argparse.ArgumentParser(description=__doc__)
+parser.add_argument('--check-head', action='store_true')
+args = parser.parse_args()
+root = Path(__file__).resolve().parent
+repo = root.parents[2]
+record = json.loads((root / 'context.json').read_text())
+git = lambda *a: subprocess.check_output(['git', *a], cwd=repo)
+sha = lambda b: hashlib.sha256(b).hexdigest()
+read = lambda p: gzip.decompress((root / p).read_bytes()).decode()
+log = lambda key: read(record['validation'][key])
+
+assert git('rev-parse', record['source_commit'] + '^{tree}').decode().strip() == record['source_tree']
+for path, digest in record['sources'].items():
+ assert sha(git('show', record['source_commit'] + ':' + path)) == digest, path
+ if args.check_head:
+ assert sha((repo / path).read_bytes()) == digest, path
+if args.check_head:
+ paths = git('diff', '--name-only', record['source_commit']).decode().splitlines()
+ paths += git('ls-files', '--others', '--exclude-standard').decode().splitlines()
+ assert all(p.startswith('reports/') for p in paths), paths
+for path in record['unchanged_guards']:
+ assert git('show', record['baseline_commit'] + ':' + path) == git('show', record['source_commit'] + ':' + path), path
+for item in record['artifacts']:
+ raw = (root / item['path']).read_bytes()
+ assert len(raw) == item['bytes'] and sha(raw) == item['sha256'], item['path']
+ if 'uncompressed_sha256' in item:
+ assert sha(gzip.decompress(raw)) == item['uncompressed_sha256'], item['path']
+for key in record['validation']:
+ assert 'code=exited, status=0/SUCCESS' in log(key), key
+assert 'Build completed successfully (14432 jobs)' in log('integration')
+for text in ['staged zero true: nodes=441039', 'staged zero false: nodes=441041',
+ 'staged two-root quadratic true: nodes=5911125',
+ 'staged exact/below/wrong-goal and full caller restoration checked',
+ 'staged replay proves its original constant source; false verdict cannot prove that source',
+ 'staged malformed cells, original zero guard, terminal callback and full rollback checked',
+ '1246 theorems/101 definitions; nonempty traces=1297',
+ 'original algebraic source quotation proofNodes=8644422',
+ '1056 theorems/72 definitions; nonempty traces=1094']:
+ assert text in log('source'), text
+assert log('source').count('checked graph memos: reused=2; validated=7') == 2
+assert 'changed ordered row queries rejected before graph validation; structured failure and full rollback checked' in log('controls')
+metadata = json.loads((root / 'validation/metadata.json').read_text())
+assert {x['name'] for x in metadata} == {'copyright', 'lines', 'dag', 'admissions', 'selected-admissions', 'relative', 'diff'}
+assert all(x['exit_code'] == 0 for x in metadata)
+invocation = json.loads(read('validation/cell-memo-expanded-invocation.json.gz'))
+targets = read('validation/cell-memo-expanded-targets.txt.gz').splitlines()
+assert len(set(targets)) == len(targets) == 40
+assert invocation['argv'][1:] == ['build', *targets]
+assert {'HexManual', 'HexRCFRealCoefficients', 'HexRCF.CellSourceProofs', 'HexRCF.RowPacketControls'} <= set(targets)
+memory = read('validation/cell-memo-memory-policy.txt.gz')
+assert all(x in memory for x in ['ActiveState=active', 'MemoryMax=34359738368', 'MemorySwapMax=0', 'OOMPolicy=kill', 'LEAN_NUM_THREADS=2'])
+inspection = json.loads((root / 'captures/inspection.json').read_text())
+kinds = ['memo', 'measurements', 'audit', 'source', 'sourcecode']
+assert {(x['label'], x['kind']) for x in inspection} == {(a, b) for a in ['desktop', 'narrow'] for b in kinds}
+assert all(x['descendantOverflow'] == 0 and x['targetScrollWidth'] <= x['targetWidth'] + 1 for x in inspection)
+review = json.loads((root / 'captures/visual-review.json').read_text())
+assert len(review['captures']) == 10
+for item in review['captures']:
+ assert item['viewed'] and sha((root / item['path']).read_bytes()) == item['sha256']
+assert len(record['compiled_files']) == 5 and all(x['bytes'] > 0 for x in record['compiled_files'])
+print(f'Verified {len(record["artifacts"])} artifacts/{len(record["sources"])} sources; '
+ '40 targets/manual, fixed algebraic original source and 10 inspected captures; '
+ 'general source/history assembly remains incomplete')
diff --git a/reports/data/hexrcf-cell-quotation/README.md b/reports/data/hexrcf-cell-quotation/README.md
new file mode 100644
index 0000000000..b3d98e7188
--- /dev/null
+++ b/reports/data/hexrcf-cell-quotation/README.md
@@ -0,0 +1,18 @@
+# Cell quotation evidence
+
+Run `python3 reports/data/hexrcf-cell-quotation/verify.py --check-head`.
+The optional flag compares the pinned implementation with current source files.
+`context.json` binds 102 sources and 238 artifacts to implementation
+`465ee034ca6599e12f9a5c5e84487d4c5c74b34a`.
+
+The record covers pointwise quotation of a complete rational quadratic packet,
+an original constant source, strict failure/resource/state controls, the fresh
+ordinary-kernel audit, all 37 affected targets and the complete manual. All
+eighteen final desktop/narrow captures were actually viewed. Initial captures
+revealed a clipped code line; the final source wraps it and the final code-block
+overflow check passes. Pre-existing page overflow remains recorded separately.
+
+Failed and diagnostic attempts retain their own exact available inputs and
+hashes under `diagnostics/`. They are not successful certificates, matched
+performance comparisons or evidence of physical sharing. Earlier records retain
+their original pins. See the [report](../../hexrcf-cell-quotation.md) for scope.
diff --git a/reports/data/hexrcf-cell-quotation/captures/browser.mjs b/reports/data/hexrcf-cell-quotation/captures/browser.mjs
new file mode 100644
index 0000000000..c0602c041f
--- /dev/null
+++ b/reports/data/hexrcf-cell-quotation/captures/browser.mjs
@@ -0,0 +1,61 @@
+import fs from 'node:fs';
+import {spawn} from 'node:child_process';
+const root=process.argv[2];
+if(!root) throw new Error('Pass the scratch render directory');
+const profile=root+'/cell-quotation-profile';
+fs.mkdirSync(profile,{recursive:true});
+fs.rmSync(profile+'/DevToolsActivePort',{force:true});
+const chrome=spawn(process.env.CHROME_BIN || '/home/kim/.cache/ms-playwright/chromium-1243/chrome-linux64/chrome',[
+ '--headless=new','--no-sandbox','--disable-gpu','--allow-file-access-from-files',
+ '--remote-debugging-port=0','--remote-allow-origins=*','--user-data-dir='+profile,'about:blank'],
+ {env:{...process.env,LD_LIBRARY_PATH:fs.readFileSync(root+'/browser-lib-paths.txt','utf8').trim()},stdio:'ignore'});
+let socket;
+try {
+ const portFile=profile+'/DevToolsActivePort';
+ for(let i=0;!fs.existsSync(portFile);i++) {
+ if(i>200||chrome.exitCode!==null) throw new Error('Chrome did not expose CDP');
+ await new Promise(r=>setTimeout(r,100));
+ }
+ const port=fs.readFileSync(portFile,'utf8').split('\n')[0];
+ const tabs=await (await fetch('http://127.0.0.1:'+port+'/json')).json();
+ socket=new WebSocket(tabs.find(t=>t.type==='page').webSocketDebuggerUrl);
+ await new Promise((r,j)=>{socket.onopen=r;socket.onerror=j});
+ let sequence=0;const pending=new Map();let loaded;
+ socket.onmessage=e=>{
+ const msg=JSON.parse(e.data);
+ if(msg.id){const p=pending.get(msg.id);pending.delete(msg.id);msg.error?p.reject(msg.error):p.resolve(msg.result);}
+ if(msg.method==='Page.loadEventFired'&&loaded){loaded();loaded=undefined;}
+ };
+ const call=(method,params={})=>new Promise((resolve,reject)=>{const id=++sequence;pending.set(id,{resolve,reject});socket.send(JSON.stringify({id,method,params}));});
+ await call('Page.enable');
+ const load=new Promise(r=>loaded=r);
+ await call('Page.navigate',{url:'file:///home/kim/.codex/tasks/hex-10358/scalar-review-render/cell-quotation-review-html/html-single/index.html'});
+ await load;
+ const evaluate=async expression=>{const r=await call('Runtime.evaluate',{expression,returnByValue:true});if(r.exceptionDetails)throw new Error(JSON.stringify(r.exceptionDetails));return r.result.value;};
+ const metadata=[]; const sectionMetadata=[];
+ for(const [label,width] of [['desktop',1440],['narrow',390]]) {
+ await call('Emulation.setDeviceMetricsOverride',{width,height:width===390?1800:1000,deviceScaleFactor:1,mobile:false});
+ for(const [kind,phrase] of [["types", "Conversion preserves data type arguments while rewriting their Boolean"], ["callbacks", "budgets also cover the added transport work:"], ["packet", "Quoting the parent and packet in one request consumes"], ["stages", "quotes a supplied CellOperations.check expression in three stages"], ["packetcode", "quotes a supplied CellOperations.check expression in three stages"], ["trace", "reports reader and finite-family boundaries"], ["example", "The constant example uses independently read literal root and cell packets"], ["measurements", "A separate rational quadratic packet checks two root sections"], ["audit", "A fresh importing audit checks 1,409 theorem bodies"]] ) {
+ const exact=await evaluate(`(() => {const p=Array.from(document.querySelectorAll('p')).find(e=>e.textContent.replace(/\\s+/g,' ').includes(${JSON.stringify(phrase)}));if(!p)throw new Error('missing paragraph');const target=['example','packetcode'].includes(${JSON.stringify(kind)})?p.nextElementSibling:p;if(['example','packetcode'].includes(${JSON.stringify(kind)})&&!target.matches('.hl.lean.block, pre, div:has(code)'))throw new Error('target is not a Lean code block');target.scrollIntoView({block:${JSON.stringify('center')}});return {text:p.textContent,viewport:innerWidth,scrollY,paragraphWidth:p.getBoundingClientRect().width,scrollWidth:p.scrollWidth,targetTag:target.tagName,targetWidth:target.getBoundingClientRect().width,targetScrollWidth:target.scrollWidth,descendantOverflow:Math.max(0,...[target,...target.querySelectorAll('*')].map(e=>e.scrollWidth-e.clientWidth)),overflowElements:[target,...target.querySelectorAll('*')].filter(e=>e.scrollWidth-e.clientWidth>1).map(e=>({tag:e.tagName,classes:e.className,width:e.clientWidth,scroll:e.scrollWidth,text:e.textContent.slice(0,100)})).slice(0,8)};})()`);
+ if(!exact)throw new Error('missing visual target '+kind);
+ await evaluate('new Promise(resolve=>requestAnimationFrame(()=>requestAnimationFrame(resolve)))');
+ const shot=await call('Page.captureScreenshot',{format:'png'});
+ fs.writeFileSync(root+'/'+'cell-quotation-final-'+label+'-'+kind+'.png',Buffer.from(shot.data,'base64'));
+ metadata.push({label,kind,...exact});
+ }
+ sectionMetadata.push(await evaluate(`(() => {
+ const headings=Array.from(document.querySelectorAll('h1,h2,h3,h4,h5,h6'));
+ const heading=headings.find(e=>e.textContent.includes('Quoting a supplied root replay'));
+ if(!heading)throw new Error('missing quotation heading');
+ const following=headings.find(e=>e!==heading && Number(e.tagName[1])<=Number(heading.tagName[1]) && (heading.compareDocumentPosition(e)&4));
+ if(!following)throw new Error('missing following section');
+ const targets=Array.from(document.querySelectorAll('p,.hl.lean.block')).filter(e=>(heading.compareDocumentPosition(e)&4) && (e.compareDocumentPosition(following)&4));
+ if(targets.length<8)throw new Error('incomplete quotation section');
+ return {label:${JSON.stringify(label)},width:innerWidth,targets:targets.map(e=>({tag:e.tagName,text:e.textContent.slice(0,160),overflow:Math.max(0,...[e,...e.querySelectorAll('*')].map(n=>n.scrollWidth-n.clientWidth))}))};
+ })()`));
+ }
+ fs.writeFileSync(root+'/cell-quotation-final-section-overflow.json',JSON.stringify(sectionMetadata,null,2));
+ fs.writeFileSync(root+'/cell-quotation-final-inspection.json',JSON.stringify(metadata,null,2));
+ if(metadata.some(e=>e.targetScrollWidth>e.targetWidth+1 || e.descendantOverflow>1)) throw new Error('Changed content overflows; retained captures and metrics identify the affected block.');
+ process.stdout.write('Saved cell quotation desktop/narrow screenshots\n');
+} finally {if(socket)socket.close();chrome.kill('SIGTERM');}
diff --git a/reports/data/hexrcf-cell-quotation/captures/cell-quotation-final-desktop-audit.png b/reports/data/hexrcf-cell-quotation/captures/cell-quotation-final-desktop-audit.png
new file mode 100644
index 0000000000..ae49669087
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/captures/cell-quotation-final-desktop-audit.png differ
diff --git a/reports/data/hexrcf-cell-quotation/captures/cell-quotation-final-desktop-callbacks.png b/reports/data/hexrcf-cell-quotation/captures/cell-quotation-final-desktop-callbacks.png
new file mode 100644
index 0000000000..c8299db30e
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/captures/cell-quotation-final-desktop-callbacks.png differ
diff --git a/reports/data/hexrcf-cell-quotation/captures/cell-quotation-final-desktop-example.png b/reports/data/hexrcf-cell-quotation/captures/cell-quotation-final-desktop-example.png
new file mode 100644
index 0000000000..b5e0c57aca
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/captures/cell-quotation-final-desktop-example.png differ
diff --git a/reports/data/hexrcf-cell-quotation/captures/cell-quotation-final-desktop-measurements.png b/reports/data/hexrcf-cell-quotation/captures/cell-quotation-final-desktop-measurements.png
new file mode 100644
index 0000000000..c54d3593b0
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/captures/cell-quotation-final-desktop-measurements.png differ
diff --git a/reports/data/hexrcf-cell-quotation/captures/cell-quotation-final-desktop-packet.png b/reports/data/hexrcf-cell-quotation/captures/cell-quotation-final-desktop-packet.png
new file mode 100644
index 0000000000..66979604e1
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/captures/cell-quotation-final-desktop-packet.png differ
diff --git a/reports/data/hexrcf-cell-quotation/captures/cell-quotation-final-desktop-packetcode.png b/reports/data/hexrcf-cell-quotation/captures/cell-quotation-final-desktop-packetcode.png
new file mode 100644
index 0000000000..b5c94ffd4f
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/captures/cell-quotation-final-desktop-packetcode.png differ
diff --git a/reports/data/hexrcf-cell-quotation/captures/cell-quotation-final-desktop-stages.png b/reports/data/hexrcf-cell-quotation/captures/cell-quotation-final-desktop-stages.png
new file mode 100644
index 0000000000..14c9289781
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/captures/cell-quotation-final-desktop-stages.png differ
diff --git a/reports/data/hexrcf-cell-quotation/captures/cell-quotation-final-desktop-trace.png b/reports/data/hexrcf-cell-quotation/captures/cell-quotation-final-desktop-trace.png
new file mode 100644
index 0000000000..3341f3c22c
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/captures/cell-quotation-final-desktop-trace.png differ
diff --git a/reports/data/hexrcf-cell-quotation/captures/cell-quotation-final-desktop-types.png b/reports/data/hexrcf-cell-quotation/captures/cell-quotation-final-desktop-types.png
new file mode 100644
index 0000000000..b3a6ff082e
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/captures/cell-quotation-final-desktop-types.png differ
diff --git a/reports/data/hexrcf-cell-quotation/captures/cell-quotation-final-narrow-audit.png b/reports/data/hexrcf-cell-quotation/captures/cell-quotation-final-narrow-audit.png
new file mode 100644
index 0000000000..baa15ff33b
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/captures/cell-quotation-final-narrow-audit.png differ
diff --git a/reports/data/hexrcf-cell-quotation/captures/cell-quotation-final-narrow-callbacks.png b/reports/data/hexrcf-cell-quotation/captures/cell-quotation-final-narrow-callbacks.png
new file mode 100644
index 0000000000..f450ee0118
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/captures/cell-quotation-final-narrow-callbacks.png differ
diff --git a/reports/data/hexrcf-cell-quotation/captures/cell-quotation-final-narrow-example.png b/reports/data/hexrcf-cell-quotation/captures/cell-quotation-final-narrow-example.png
new file mode 100644
index 0000000000..12d5a6eb9a
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/captures/cell-quotation-final-narrow-example.png differ
diff --git a/reports/data/hexrcf-cell-quotation/captures/cell-quotation-final-narrow-measurements.png b/reports/data/hexrcf-cell-quotation/captures/cell-quotation-final-narrow-measurements.png
new file mode 100644
index 0000000000..e653b5bb75
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/captures/cell-quotation-final-narrow-measurements.png differ
diff --git a/reports/data/hexrcf-cell-quotation/captures/cell-quotation-final-narrow-packet.png b/reports/data/hexrcf-cell-quotation/captures/cell-quotation-final-narrow-packet.png
new file mode 100644
index 0000000000..21b240ecaf
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/captures/cell-quotation-final-narrow-packet.png differ
diff --git a/reports/data/hexrcf-cell-quotation/captures/cell-quotation-final-narrow-packetcode.png b/reports/data/hexrcf-cell-quotation/captures/cell-quotation-final-narrow-packetcode.png
new file mode 100644
index 0000000000..4b77fa3186
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/captures/cell-quotation-final-narrow-packetcode.png differ
diff --git a/reports/data/hexrcf-cell-quotation/captures/cell-quotation-final-narrow-stages.png b/reports/data/hexrcf-cell-quotation/captures/cell-quotation-final-narrow-stages.png
new file mode 100644
index 0000000000..3472d3eee9
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/captures/cell-quotation-final-narrow-stages.png differ
diff --git a/reports/data/hexrcf-cell-quotation/captures/cell-quotation-final-narrow-trace.png b/reports/data/hexrcf-cell-quotation/captures/cell-quotation-final-narrow-trace.png
new file mode 100644
index 0000000000..030440a854
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/captures/cell-quotation-final-narrow-trace.png differ
diff --git a/reports/data/hexrcf-cell-quotation/captures/cell-quotation-final-narrow-types.png b/reports/data/hexrcf-cell-quotation/captures/cell-quotation-final-narrow-types.png
new file mode 100644
index 0000000000..14ab1aab29
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/captures/cell-quotation-final-narrow-types.png differ
diff --git a/reports/data/hexrcf-cell-quotation/captures/inspection.json b/reports/data/hexrcf-cell-quotation/captures/inspection.json
new file mode 100644
index 0000000000..ac4785ea01
--- /dev/null
+++ b/reports/data/hexrcf-cell-quotation/captures/inspection.json
@@ -0,0 +1,254 @@
+[
+ {
+ "label": "desktop",
+ "kind": "types",
+ "text": "\n Conversion preserves data type arguments while rewriting their Boolean\ncomputations. A helper's type can itself mention another checked replay helper;\nquotation retains those dependencies in order. Exposed function definitions\nremain available for the reductions used by the reader. Opaque proof helpers\nremain parameters. Function-valued conditionals retain their applied arguments.\nDependencies appearing in retained function bodies are collected as well.\nClosed data constructors with proof fields depending on replay retain their\nordinary projection reductions. The same data is retained in helper types and\nbodies, so changing the computational context does not change those proof\nindices.",
+ "viewport": 1440,
+ "scrollY": 282666,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "P",
+ "targetWidth": 752,
+ "targetScrollWidth": 752,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "desktop",
+ "kind": "callbacks",
+ "text": "\n Canonical Element.codec decodes remain protected throughout quotation,\nincluding predecessor decodes with an explicit Element.codec head. Expand codec\naliases first; that protection does not cover aliases. Supply a checked equation for that exact decode\nthrough the callback; without one the call fails closed. A DecoderM returns\nnone to decline a proposal. A structured error is terminal, including one\nnamed providerDeclined. The nested polynomial conformance fixture uses an\nexisting selected-root extension to require actual predecessor callbacks and\nretain their source charges. It also checks a bare protected decoder, a wrong\nsecond coefficient sign, trailing zeros and malformed reader heads.\nScalarQuote.quoteDecodeWith retains the exact demanded decode expression,\nincluding its primitive projection form. RootQuote also transports accepted\ncanonical callbacks for the constant ValueCodec.decode form through the\nsame abstract codec; both forms have emitted proof-body regressions. Metadata\nannotations are ignored for classification while the original term is retained.\nDecode transport and nested reader steps are checked with an abstract codec before applying the concrete codec\nand its checked equation. The original reader expression must expose that\npredecessor codec; expand a hiding definition first. Dependent proof terms may\nprevent abstraction; type and kernel failures remain terminal. A late rejection restores\nthe completed callback's auxiliaries. The fresh importing audit rechecks all\n65 reachable callback/module theorem bodies and 14 definitions, forbidding\nboth native producers and canonical-codec unfolding. Exact and one-below nested\nbudgets also cover the added transport work: 19,448 proof nodes, with exhaustion\nat the final 1,006-node charge after 18,442 nodes were consumed. The predecessor\ncallback is required to run exactly once and retain 17 source nodes.",
+ "viewport": 1440,
+ "scrollY": 284874,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "P",
+ "targetWidth": 752,
+ "targetScrollWidth": 752,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "desktop",
+ "kind": "packet",
+ "text": "\n Quoting the parent and packet in one request consumes 268,798 proof nodes.\nWith the frozen parent and its equality already available, the packet consumes\n174,189; a limit one node lower exhausts at the final 23-node charge. Decoding the\ncoefficient from that fact consumes 966 more nodes in its separate request.\nThe controls check caller metavariable restoration after successful decoding\nand final exhaustion, reject an empty graph, and reject a forged context equality\nbefore decoding. A valid graph paired with the wrong claimed sign or polynomial\nis also rejected after decoding, restoring the mutated caller. The importing\naudit excludes the old fixture fact list. Accounting sums the syntax checked at\neach stage, including repeated occurrences; these are not unique DAG-node counts,\ntiming or scaling comparisons.",
+ "viewport": 1440,
+ "scrollY": 289558,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "P",
+ "targetWidth": 752,
+ "targetScrollWidth": 752,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "desktop",
+ "kind": "stages",
+ "text": "\n CellQuote.replayWith\nquotes a supplied CellOperations.check expression in three stages. It first\nchecks the complete root table, then each dependent section and sector record,\nthen the strict Boolean and quantifier fold. Checked data definitions retain\nthe exact root and cell indices between stages. Pointwise reader equations\ncompose through CellRead.collectWith_eq and CellOperations.readCells_of_parts;\nquotation does not normalize the complete finite collector as one expression.\nCellOperations.check_of_parts\ncomposes their equations at the original packet. All three stages and their\ndecoder callbacks consume one reflection budget:",
+ "viewport": 1440,
+ "scrollY": 273797,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "P",
+ "targetWidth": 752,
+ "targetScrollWidth": 752,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "desktop",
+ "kind": "packetcode",
+ "text": "\n CellQuote.replayWith\nquotes a supplied CellOperations.check expression in three stages. It first\nchecks the complete root table, then each dependent section and sector record,\nthen the strict Boolean and quantifier fold. Checked data definitions retain\nthe exact root and cell indices between stages. Pointwise reader equations\ncompose through CellRead.collectWith_eq and CellOperations.readCells_of_parts;\nquotation does not normalize the complete finite collector as one expression.\nCellOperations.check_of_parts\ncomposes their equations at the original packet. All three stages and their\ndecoder callbacks consume one reflection budget:",
+ "viewport": 1440,
+ "scrollY": 274020,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "CODE",
+ "targetWidth": 740,
+ "targetScrollWidth": 740,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "desktop",
+ "kind": "trace",
+ "text": "\n set_option trace.Hex.RCF.CellQuote true reports reader and finite-family\nboundaries with cumulative proof-node usage. Lean heartbeats remain a separate\nelaboration limit.",
+ "viewport": 1440,
+ "scrollY": 274173,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "P",
+ "targetWidth": 752,
+ "targetScrollWidth": 752,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "desktop",
+ "kind": "example",
+ "text": "\n The returned equation retains both Boolean verdicts. CellQuote.finishPacket\nperforms source authentication separately and requires an accepted true result.\nThe constant example uses independently read literal root and cell packets:",
+ "viewport": 1440,
+ "scrollY": 274316,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "CODE",
+ "targetWidth": 740,
+ "targetScrollWidth": 740,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "desktop",
+ "kind": "measurements",
+ "text": "\n A separate rational quadratic packet checks two root sections and three\nsectors in 14,294,138 proof nodes. The conformance build, including the constant\ncontrols, took 12m04s with a 1.9 GiB memory peak on the recorded host. This is\nbuild-only quotation evidence; it does not measure compiled replay or establish\npractical running times for general algebraic coefficients. The test supplies\n16M proof nodes and a separate 24M heartbeat allowance.",
+ "viewport": 1440,
+ "scrollY": 274530,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "P",
+ "targetWidth": 752,
+ "targetScrollWidth": 752,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "desktop",
+ "kind": "audit",
+ "text": "\n A fresh importing audit checks 1,409 theorem bodies and 78 definitions, with\n1,439 nonempty kernel traces, the unchanged producer guard and only the\nstandard three axioms. It excludes older fixture acceptance proofs. The\nconstant example establishes source quotation; the quadratic packet adds\nreplay coverage with multiple roots. General coefficient and history assembly\nremain separate obligations.",
+ "viewport": 1440,
+ "scrollY": 274673,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "P",
+ "targetWidth": 752,
+ "targetScrollWidth": 752,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "types",
+ "text": "\n Conversion preserves data type arguments while rewriting their Boolean\ncomputations. A helper's type can itself mention another checked replay helper;\nquotation retains those dependencies in order. Exposed function definitions\nremain available for the reductions used by the reader. Opaque proof helpers\nremain parameters. Function-valued conditionals retain their applied arguments.\nDependencies appearing in retained function bodies are collected as well.\nClosed data constructors with proof fields depending on replay retain their\nordinary projection reductions. The same data is retained in helper types and\nbodies, so changing the computational context does not change those proof\nindices.",
+ "viewport": 390,
+ "scrollY": 454475,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "P",
+ "targetWidth": 343,
+ "targetScrollWidth": 343,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "callbacks",
+ "text": "\n Canonical Element.codec decodes remain protected throughout quotation,\nincluding predecessor decodes with an explicit Element.codec head. Expand codec\naliases first; that protection does not cover aliases. Supply a checked equation for that exact decode\nthrough the callback; without one the call fails closed. A DecoderM returns\nnone to decline a proposal. A structured error is terminal, including one\nnamed providerDeclined. The nested polynomial conformance fixture uses an\nexisting selected-root extension to require actual predecessor callbacks and\nretain their source charges. It also checks a bare protected decoder, a wrong\nsecond coefficient sign, trailing zeros and malformed reader heads.\nScalarQuote.quoteDecodeWith retains the exact demanded decode expression,\nincluding its primitive projection form. RootQuote also transports accepted\ncanonical callbacks for the constant ValueCodec.decode form through the\nsame abstract codec; both forms have emitted proof-body regressions. Metadata\nannotations are ignored for classification while the original term is retained.\nDecode transport and nested reader steps are checked with an abstract codec before applying the concrete codec\nand its checked equation. The original reader expression must expose that\npredecessor codec; expand a hiding definition first. Dependent proof terms may\nprevent abstraction; type and kernel failures remain terminal. A late rejection restores\nthe completed callback's auxiliaries. The fresh importing audit rechecks all\n65 reachable callback/module theorem bodies and 14 definitions, forbidding\nboth native producers and canonical-codec unfolding. Exact and one-below nested\nbudgets also cover the added transport work: 19,448 proof nodes, with exhaustion\nat the final 1,006-node charge after 18,442 nodes were consumed. The predecessor\ncallback is required to run exactly once and retain 17 source nodes.",
+ "viewport": 390,
+ "scrollY": 458688,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "P",
+ "targetWidth": 343,
+ "targetScrollWidth": 343,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "packet",
+ "text": "\n Quoting the parent and packet in one request consumes 268,798 proof nodes.\nWith the frozen parent and its equality already available, the packet consumes\n174,189; a limit one node lower exhausts at the final 23-node charge. Decoding the\ncoefficient from that fact consumes 966 more nodes in its separate request.\nThe controls check caller metavariable restoration after successful decoding\nand final exhaustion, reject an empty graph, and reject a forged context equality\nbefore decoding. A valid graph paired with the wrong claimed sign or polynomial\nis also rejected after decoding, restoring the mutated caller. The importing\naudit excludes the old fixture fact list. Accounting sums the syntax checked at\neach stage, including repeated occurrences; these are not unique DAG-node counts,\ntiming or scaling comparisons.",
+ "viewport": 390,
+ "scrollY": 466815,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "P",
+ "targetWidth": 343,
+ "targetScrollWidth": 343,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "stages",
+ "text": "\n CellQuote.replayWith\nquotes a supplied CellOperations.check expression in three stages. It first\nchecks the complete root table, then each dependent section and sector record,\nthen the strict Boolean and quantifier fold. Checked data definitions retain\nthe exact root and cell indices between stages. Pointwise reader equations\ncompose through CellRead.collectWith_eq and CellOperations.readCells_of_parts;\nquotation does not normalize the complete finite collector as one expression.\nCellOperations.check_of_parts\ncomposes their equations at the original packet. All three stages and their\ndecoder callbacks consume one reflection budget:",
+ "viewport": 390,
+ "scrollY": 438716,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "P",
+ "targetWidth": 343,
+ "targetScrollWidth": 343,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "packetcode",
+ "text": "\n CellQuote.replayWith\nquotes a supplied CellOperations.check expression in three stages. It first\nchecks the complete root table, then each dependent section and sector record,\nthen the strict Boolean and quantifier fold. Checked data definitions retain\nthe exact root and cell indices between stages. Pointwise reader equations\ncompose through CellRead.collectWith_eq and CellOperations.readCells_of_parts;\nquotation does not normalize the complete finite collector as one expression.\nCellOperations.check_of_parts\ncomposes their equations at the original packet. All three stages and their\ndecoder callbacks consume one reflection budget:",
+ "viewport": 390,
+ "scrollY": 439043,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "CODE",
+ "targetWidth": 331,
+ "targetScrollWidth": 331,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "trace",
+ "text": "\n set_option trace.Hex.RCF.CellQuote true reports reader and finite-family\nboundaries with cumulative proof-node usage. Lean heartbeats remain a separate\nelaboration limit.",
+ "viewport": 390,
+ "scrollY": 439231,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "P",
+ "targetWidth": 343,
+ "targetScrollWidth": 343,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "example",
+ "text": "\n The returned equation retains both Boolean verdicts. CellQuote.finishPacket\nperforms source authentication separately and requires an accepted true result.\nThe constant example uses independently read literal root and cell packets:",
+ "viewport": 390,
+ "scrollY": 439479,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "CODE",
+ "targetWidth": 331,
+ "targetScrollWidth": 331,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "measurements",
+ "text": "\n A separate rational quadratic packet checks two root sections and three\nsectors in 14,294,138 proof nodes. The conformance build, including the constant\ncontrols, took 12m04s with a 1.9 GiB memory peak on the recorded host. This is\nbuild-only quotation evidence; it does not measure compiled replay or establish\npractical running times for general algebraic coefficients. The test supplies\n16M proof nodes and a separate 24M heartbeat allowance.",
+ "viewport": 390,
+ "scrollY": 439878,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "P",
+ "targetWidth": 343,
+ "targetScrollWidth": 343,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "audit",
+ "text": "\n A fresh importing audit checks 1,409 theorem bodies and 78 definitions, with\n1,439 nonempty kernel traces, the unchanged producer guard and only the\nstandard three axioms. It excludes older fixture acceptance proofs. The\nconstant example establishes source quotation; the quadratic packet adds\nreplay coverage with multiple roots. General coefficient and history assembly\nremain separate obligations.",
+ "viewport": 390,
+ "scrollY": 440160,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "P",
+ "targetWidth": 343,
+ "targetScrollWidth": 343,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ }
+]
\ No newline at end of file
diff --git a/reports/data/hexrcf-cell-quotation/captures/section-overflow.json b/reports/data/hexrcf-cell-quotation/captures/section-overflow.json
new file mode 100644
index 0000000000..47d2b2608b
--- /dev/null
+++ b/reports/data/hexrcf-cell-quotation/captures/section-overflow.json
@@ -0,0 +1,704 @@
+[
+ {
+ "label": "desktop",
+ "width": 1440,
+ "targets": [
+ {
+ "tag": "P",
+ "text": "\n RootQuote.quote accepts a Lean\nexpression for an Except ε α replay reader, including structured errors. It returns the reconstructed\ndata and",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A scalar decoder may propose an equality for the exact demanded decode. The\nhelper checks its type, dependencies and kernel proof before usin",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For example, this helper continues a request's existing budget and returns the\nupdated usage together with the checked equation:",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSuppliedRoot\n (reader : Expr)\n (scalar : RootQuote.Decoder",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Quotation follows the representative of a closed quotient when selecting\nreducibility boundaries. This lets a formula polynomial stored in a ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF in\nexample :\n QuotientQuote.reader = some 7 :=\n QuotientQuotePublic.accepted\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Its exact 92-node budget succeeds, one node less exhausts, and a wrong term\ncount rejects. The controls check caller-state restoration; a fre",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Tree replay uses its public leaf and split equations before opening the local\nnode checks. Keeping that boundary explicit avoids kernel conve",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF in\nexample :\n TreeQuote.splitTrue.toOption =\n some 31 :=\n TreeQuotePublic.split_true\n\nopen Hex.RCF in\nexample :\n TreeQuote.splitFalse.t",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The second reader selects its diagnostic branch; it does not accept the\nchanged certificate. Readers returning an error abort quotation and r",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Checked replay data may occur inside a Boolean condition. Quotation keeps\nclosed helpers whose types mention a protected replay function atta",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Conversion preserves data type arguments while rewriting their Boolean\ncomputations. A helper's type can itself mention another checked repla",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The helper controls cover stored arrays with table-dependent element types and\nfunctions with fixed replay-dependent proof types. Matching an",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RowQuote.decoder reads the\nliteral value of a checked selected-sign row through query, root and operation\ntransports. It uses the row's recor",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteRootRows\n (reader : Expr)\n (scalar : RootQuote.DecoderM)\n ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The row controls check positive, zero, negative and false comparisons, exact\nand one-node-below budgets, wrong-goal proposals and caller rest",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a rational predecessor, RationalQuote.decoder supplies these proposals\nwithout a fixed list of permitted numerators. It recognizes canoni",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteRationalRoot\n (reader registry : Expr)\n (config : Reify.Co",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The registry argument is a Lean expression of type\nHex.RealClosure.BaseContext.Registry. This helper supplies scalar equations;\nit does not r",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The cubic regression reads a\nsupplied replay for X³−3 on the open interval (−8,8). A fresh public consumer\nproves that the accepted descripto",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A reader that rejects its input or replay returns structured invalid-provider\nevidence. Non-readers and unsupported shapes raise terminal exc",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Canonical Element.codec decodes remain protected throughout quotation,\nincluding predecessor decodes with an explicit Element.codec head. Exp",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The original root and rational cases use maxHeartbeats := 12000000 and\nmaxRecDepth := 8192. Scalar, sign-packet, shared, callback/module exam",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n This API does not register a tactic handler or establish complete root coverage.\nThe acceptance equation alone does not authenticate original",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a coefficient in a selected algebraic extension,\nScalarQuote.quote uses the owner's Element.signCodec with supplied checked\nsign facts, t",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Pass the original, fully applied Element.codec expression, retaining its\nimplicit arguments. Reinferring definitionally equal context aliases",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSuppliedScalar\n (codec facts literal : Expr)\n (predecessor",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The monorepo regression imports HexRCF.ScalarQuoteCases. It decodes the\nnonrational coefficient −2√2 in the existing selected positive √2 con",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.SelectedRootTests in\nopen Hex.RCF.ScalarQuoteTests in\nexample :\n Data.original.value restored =\n -2 * Real.sqrt 2 :=\n restored_value\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The fresh audit rechecks 13 reachable quotation-case theorem bodies, including this value\nidentity, with only the standard three axioms and n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Regressions cover continued/exact/exhausted proof budgets, rollback after the\nstrict stage succeeds, missing or mismatched facts, zero withou",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a polynomial over the same selected extension,\nScalarQuote.quotePolyWith\nquotes the coefficient array through its finite sign reader and ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSuppliedPolynomial\n (reader facts : Expr)\n (predecessor : ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The regression polynomial contains two copies of −2√2. The checked original\nreader restores both positions. Its first coefficient has this or",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.SelectedRootTests in\nopen Hex.RCF.SharedQuoteTests in\nexample :\n Data.original.value\n (restored.coeff 0) =\n -2 * Real.sqrt 2 :=\n valu",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The fresh importing audit pins seven reachable theorem bodies and three data\ndefinitions, their actual owner refinement and supplied sign evi",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RootQuote.runWith supplies the transaction for a sequence of quoteWith\nactions. RootQuote.run supplies it for a reader with DecoderM callback",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n This scalar API does not reconstruct provider or predecessor histories,\nproduce missing signs, or install a general source-goal solver. The s",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n ScalarQuote.decoderWith composes checked scalar decoding through several\nselected-field predecessors. Its lookup receives each exact canonica",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSelectedReader\n (reader registry : Expr)\n (factsFor :\n Expr → Reify.Reify",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The two-level regression checks one visit to its selected context followed by\none visit to its selected predecessor. Its lookup adds 19 sourc",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n An ordinary module consumer also runs the callback factory and exports the\nchecked scalar reader equation. Its sign follows from the owner's ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RecursiveScalarPublic in\nexample : restored.sign = 1 := sign\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A fresh importing audit checks the two-level fixture and this public consumer,\nincluding accepted annotated decodes and a charged decline fol",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n ScalarPacket.quoteWith checks a supplied optional sign-packet reader. Its\nprepared context has a checked equality to the original context; a ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSuppliedSignPacket\n (reader prepared same : Expr)\n (predecessor :\n RootQuote.DecoderM) :=",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The regression quotes the parent descriptor and one packet for the polynomial\n−2X at the selected positive square root of 2. The resulting fa",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RealClosure in\nopen Hex.RCF.SelectedRootTests in\nopen Hex.RCF.SignPacketQuote in\nexample :\n Option.map Data.original.value\n (Except.toOption\n ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Quoting the parent and packet in one request consumes 268,798 proof nodes.\nWith the frozen parent and its equality already available, the pac",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The caller still supplies and authenticates the parent history and packet.\nPredecessor arithmetic retains its supplied implementation; this h",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A separate public-module example quotes a packet for X at the selected real\nroot of X³−3. Its context slots retain closed applications of the",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.PublicSignPacket in\nexample :\n coefficientReal =\n Hex.RCF.RootQuoteTests.realRoot :=\n coefficient_value\n\nopen Hex.RCF.PublicSignPacket in\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a dependent match, quotation moves trailing branch-equality proofs along\nthe checked equation for the match's subject. This uses ordinary",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF in\nexample :\n DependentQuote.continuedFunction =\n some 29 :=\n ProofFunctionPublic.continued\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n During replay-law\nconversion, an explicit checked function boundary is first kept abstract, then instantiated\nwith the actual function and it",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RootHeader.quoteWith\naccepts the complete original RootReplay.readDescriptor application. It quotes\nthat reader, obtains the independently pa",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The public regression constructs a new root and context from that result,\nquotes the sign packet for X with fully numerical graph fields, and",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RootHeaderPacket in\nexample : coefficientReal = realRoot :=\n coefficient_value\n\nopen Hex.RCF.RootHeaderPacket in\nexample : 0 < coefficientReal :=\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The fresh importing audit includes the generated binding, packet reader,\ncoefficient decoding and real-value proofs. It rejects dependencies ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The default quotation rules recognize Signature.codec.decode applied to the\ncanonical encoding of its actual signature argument, using the ex",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.FrozenSignature in\nexample : readFirst.toOption =\n some first :=\n readFirst_checked\n\nopen Hex.RCF.FrozenSignature in\nexample : readSecond.toOpt",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The cubic packet retains frozen numerical node and nested-moment signatures\nfor its rational predecessor. A signature's serialization identit",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RootContext.packWith\nthen assembles an actual native root context from a closed retained parent and\nits checked descriptor. It keeps the exis",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The same decoded coefficient can be interpreted through the owner's ordinary\nreal model of the packed context, retaining its selected value a",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF in\nopen RootContextCases in\nopen RootHeaderPacket in\nexample : model.value coefficient =\n realRoot :=\n value_checked\n\nopen Hex.RCF in\nopen Root",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The packing budget covers context and signature proof construction. Model\nconstruction is checked separately; its cost is not included in tha",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RootPrepare.prepareWith\nprepares the native context of a reconstructed descriptor for subsequent\nquotation. It checks closed inputs and the e",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.RCF.RealCoefficients in\nmeta def prepareRootContext\n (reader clean : Expr)\n (scalar : RootQuote.DecoderM) :\n Reif",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Run this action and subsequent quotation in one RootQuote.runWith request.\nCombine its decoder with the exact predecessor's scalar and signat",
+ "overflow": 0
+ }
+ ]
+ },
+ {
+ "label": "narrow",
+ "width": 390,
+ "targets": [
+ {
+ "tag": "P",
+ "text": "\n RootQuote.quote accepts a Lean\nexpression for an Except ε α replay reader, including structured errors. It returns the reconstructed\ndata and",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A scalar decoder may propose an equality for the exact demanded decode. The\nhelper checks its type, dependencies and kernel proof before usin",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For example, this helper continues a request's existing budget and returns the\nupdated usage together with the checked equation:",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSuppliedRoot\n (reader : Expr)\n (scalar : RootQuote.Decoder",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Quotation follows the representative of a closed quotient when selecting\nreducibility boundaries. This lets a formula polynomial stored in a ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF in\nexample :\n QuotientQuote.reader = some 7 :=\n QuotientQuotePublic.accepted\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Its exact 92-node budget succeeds, one node less exhausts, and a wrong term\ncount rejects. The controls check caller-state restoration; a fre",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Tree replay uses its public leaf and split equations before opening the local\nnode checks. Keeping that boundary explicit avoids kernel conve",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF in\nexample :\n TreeQuote.splitTrue.toOption =\n some 31 :=\n TreeQuotePublic.split_true\n\nopen Hex.RCF in\nexample :\n TreeQuote.splitFalse.t",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The second reader selects its diagnostic branch; it does not accept the\nchanged certificate. Readers returning an error abort quotation and r",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Checked replay data may occur inside a Boolean condition. Quotation keeps\nclosed helpers whose types mention a protected replay function atta",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Conversion preserves data type arguments while rewriting their Boolean\ncomputations. A helper's type can itself mention another checked repla",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The helper controls cover stored arrays with table-dependent element types and\nfunctions with fixed replay-dependent proof types. Matching an",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RowQuote.decoder reads the\nliteral value of a checked selected-sign row through query, root and operation\ntransports. It uses the row's recor",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteRootRows\n (reader : Expr)\n (scalar : RootQuote.DecoderM)\n ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The row controls check positive, zero, negative and false comparisons, exact\nand one-node-below budgets, wrong-goal proposals and caller rest",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a rational predecessor, RationalQuote.decoder supplies these proposals\nwithout a fixed list of permitted numerators. It recognizes canoni",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteRationalRoot\n (reader registry : Expr)\n (config : Reify.Co",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The registry argument is a Lean expression of type\nHex.RealClosure.BaseContext.Registry. This helper supplies scalar equations;\nit does not r",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The cubic regression reads a\nsupplied replay for X³−3 on the open interval (−8,8). A fresh public consumer\nproves that the accepted descripto",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A reader that rejects its input or replay returns structured invalid-provider\nevidence. Non-readers and unsupported shapes raise terminal exc",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Canonical Element.codec decodes remain protected throughout quotation,\nincluding predecessor decodes with an explicit Element.codec head. Exp",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The original root and rational cases use maxHeartbeats := 12000000 and\nmaxRecDepth := 8192. Scalar, sign-packet, shared, callback/module exam",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n This API does not register a tactic handler or establish complete root coverage.\nThe acceptance equation alone does not authenticate original",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a coefficient in a selected algebraic extension,\nScalarQuote.quote uses the owner's Element.signCodec with supplied checked\nsign facts, t",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Pass the original, fully applied Element.codec expression, retaining its\nimplicit arguments. Reinferring definitionally equal context aliases",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSuppliedScalar\n (codec facts literal : Expr)\n (predecessor",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The monorepo regression imports HexRCF.ScalarQuoteCases. It decodes the\nnonrational coefficient −2√2 in the existing selected positive √2 con",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.SelectedRootTests in\nopen Hex.RCF.ScalarQuoteTests in\nexample :\n Data.original.value restored =\n -2 * Real.sqrt 2 :=\n restored_value\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The fresh audit rechecks 13 reachable quotation-case theorem bodies, including this value\nidentity, with only the standard three axioms and n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Regressions cover continued/exact/exhausted proof budgets, rollback after the\nstrict stage succeeds, missing or mismatched facts, zero withou",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a polynomial over the same selected extension,\nScalarQuote.quotePolyWith\nquotes the coefficient array through its finite sign reader and ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSuppliedPolynomial\n (reader facts : Expr)\n (predecessor : ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The regression polynomial contains two copies of −2√2. The checked original\nreader restores both positions. Its first coefficient has this or",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.SelectedRootTests in\nopen Hex.RCF.SharedQuoteTests in\nexample :\n Data.original.value\n (restored.coeff 0) =\n -2 * Real.sqrt 2 :=\n valu",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The fresh importing audit pins seven reachable theorem bodies and three data\ndefinitions, their actual owner refinement and supplied sign evi",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RootQuote.runWith supplies the transaction for a sequence of quoteWith\nactions. RootQuote.run supplies it for a reader with DecoderM callback",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n This scalar API does not reconstruct provider or predecessor histories,\nproduce missing signs, or install a general source-goal solver. The s",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n ScalarQuote.decoderWith composes checked scalar decoding through several\nselected-field predecessors. Its lookup receives each exact canonica",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSelectedReader\n (reader registry : Expr)\n (factsFor :\n Expr → Reify.Reify",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The two-level regression checks one visit to its selected context followed by\none visit to its selected predecessor. Its lookup adds 19 sourc",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n An ordinary module consumer also runs the callback factory and exports the\nchecked scalar reader equation. Its sign follows from the owner's ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RecursiveScalarPublic in\nexample : restored.sign = 1 := sign\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A fresh importing audit checks the two-level fixture and this public consumer,\nincluding accepted annotated decodes and a charged decline fol",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n ScalarPacket.quoteWith checks a supplied optional sign-packet reader. Its\nprepared context has a checked equality to the original context; a ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSuppliedSignPacket\n (reader prepared same : Expr)\n (predecessor :\n RootQuote.DecoderM) :=",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The regression quotes the parent descriptor and one packet for the polynomial\n−2X at the selected positive square root of 2. The resulting fa",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RealClosure in\nopen Hex.RCF.SelectedRootTests in\nopen Hex.RCF.SignPacketQuote in\nexample :\n Option.map Data.original.value\n (Except.toOption\n ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Quoting the parent and packet in one request consumes 268,798 proof nodes.\nWith the frozen parent and its equality already available, the pac",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The caller still supplies and authenticates the parent history and packet.\nPredecessor arithmetic retains its supplied implementation; this h",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A separate public-module example quotes a packet for X at the selected real\nroot of X³−3. Its context slots retain closed applications of the",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.PublicSignPacket in\nexample :\n coefficientReal =\n Hex.RCF.RootQuoteTests.realRoot :=\n coefficient_value\n\nopen Hex.RCF.PublicSignPacket in\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a dependent match, quotation moves trailing branch-equality proofs along\nthe checked equation for the match's subject. This uses ordinary",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF in\nexample :\n DependentQuote.continuedFunction =\n some 29 :=\n ProofFunctionPublic.continued\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n During replay-law\nconversion, an explicit checked function boundary is first kept abstract, then instantiated\nwith the actual function and it",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RootHeader.quoteWith\naccepts the complete original RootReplay.readDescriptor application. It quotes\nthat reader, obtains the independently pa",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The public regression constructs a new root and context from that result,\nquotes the sign packet for X with fully numerical graph fields, and",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RootHeaderPacket in\nexample : coefficientReal = realRoot :=\n coefficient_value\n\nopen Hex.RCF.RootHeaderPacket in\nexample : 0 < coefficientReal :=\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The fresh importing audit includes the generated binding, packet reader,\ncoefficient decoding and real-value proofs. It rejects dependencies ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The default quotation rules recognize Signature.codec.decode applied to the\ncanonical encoding of its actual signature argument, using the ex",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.FrozenSignature in\nexample : readFirst.toOption =\n some first :=\n readFirst_checked\n\nopen Hex.RCF.FrozenSignature in\nexample : readSecond.toOpt",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The cubic packet retains frozen numerical node and nested-moment signatures\nfor its rational predecessor. A signature's serialization identit",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RootContext.packWith\nthen assembles an actual native root context from a closed retained parent and\nits checked descriptor. It keeps the exis",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The same decoded coefficient can be interpreted through the owner's ordinary\nreal model of the packed context, retaining its selected value a",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF in\nopen RootContextCases in\nopen RootHeaderPacket in\nexample : model.value coefficient =\n realRoot :=\n value_checked\n\nopen Hex.RCF in\nopen Root",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The packing budget covers context and signature proof construction. Model\nconstruction is checked separately; its cost is not included in tha",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RootPrepare.prepareWith\nprepares the native context of a reconstructed descriptor for subsequent\nquotation. It checks closed inputs and the e",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.RCF.RealCoefficients in\nmeta def prepareRootContext\n (reader clean : Expr)\n (scalar : RootQuote.DecoderM) :\n Reif",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Run this action and subsequent quotation in one RootQuote.runWith request.\nCombine its decoder with the exact predecessor's scalar and signat",
+ "overflow": 0
+ }
+ ]
+ }
+]
\ No newline at end of file
diff --git a/reports/data/hexrcf-cell-quotation/captures/visual-review.json b/reports/data/hexrcf-cell-quotation/captures/visual-review.json
new file mode 100644
index 0000000000..0f4599faac
--- /dev/null
+++ b/reports/data/hexrcf-cell-quotation/captures/visual-review.json
@@ -0,0 +1,132 @@
+{
+ "captures": [
+ {
+ "path": "captures/cell-quotation-final-desktop-types.png",
+ "sha256": "128c1b65e9f8d1b61083d169a4e9a73fc0b95616c0c9337f3beb94f01e422725",
+ "viewed": true,
+ "label": "desktop",
+ "kind": "types"
+ },
+ {
+ "path": "captures/cell-quotation-final-desktop-callbacks.png",
+ "sha256": "eabd9bf9dea1b6c880770a66f07dbd2a3fb55335be04782aae7b49a2ff93cf86",
+ "viewed": true,
+ "label": "desktop",
+ "kind": "callbacks"
+ },
+ {
+ "path": "captures/cell-quotation-final-desktop-packet.png",
+ "sha256": "6b93e33f1a17a0c4d38b279054b78674142746a593158f15d6edb1321f215661",
+ "viewed": true,
+ "label": "desktop",
+ "kind": "packet"
+ },
+ {
+ "path": "captures/cell-quotation-final-desktop-stages.png",
+ "sha256": "4d937753e7ebdf57e51daa4115e6112c71382621bbc825fcb281aaa5c300b193",
+ "viewed": true,
+ "label": "desktop",
+ "kind": "stages"
+ },
+ {
+ "path": "captures/cell-quotation-final-desktop-packetcode.png",
+ "sha256": "414725e76c6db02124bf4f2ec3743e475b359a63c70ae8246662955c45af917e",
+ "viewed": true,
+ "label": "desktop",
+ "kind": "packetcode"
+ },
+ {
+ "path": "captures/cell-quotation-final-desktop-trace.png",
+ "sha256": "3516831b9b064b3c834e6a49b8e169b20d5b12cbdeb5bb26e01ddd4cb6379d2f",
+ "viewed": true,
+ "label": "desktop",
+ "kind": "trace"
+ },
+ {
+ "path": "captures/cell-quotation-final-desktop-example.png",
+ "sha256": "552b37904949cefe08409edc2b63913b695a6f8e5b9a74a7e8eaf9f31c772dcd",
+ "viewed": true,
+ "label": "desktop",
+ "kind": "example"
+ },
+ {
+ "path": "captures/cell-quotation-final-desktop-measurements.png",
+ "sha256": "34101717a3a696b27ae06d27f889e6982ae706982715c5391cfbf3e122f73e35",
+ "viewed": true,
+ "label": "desktop",
+ "kind": "measurements"
+ },
+ {
+ "path": "captures/cell-quotation-final-desktop-audit.png",
+ "sha256": "dfe4f6029222721cbbb25b5f261eb2de49419dff1f4922af0dc9aa4919865af8",
+ "viewed": true,
+ "label": "desktop",
+ "kind": "audit"
+ },
+ {
+ "path": "captures/cell-quotation-final-narrow-types.png",
+ "sha256": "ff79fd66fc837a20ee19cf66a13c07790f919692044d321bf6ede81d07e4e672",
+ "viewed": true,
+ "label": "narrow",
+ "kind": "types"
+ },
+ {
+ "path": "captures/cell-quotation-final-narrow-callbacks.png",
+ "sha256": "f2f69f992ab6bb3a74b9ff9b99049dbfbf090cc29d9aa6ed20df7ba0d2c6d651",
+ "viewed": true,
+ "label": "narrow",
+ "kind": "callbacks"
+ },
+ {
+ "path": "captures/cell-quotation-final-narrow-packet.png",
+ "sha256": "f8e18b277e1444b36abf3e1ff757f915b041b1f1f929d674047b795fafd810ff",
+ "viewed": true,
+ "label": "narrow",
+ "kind": "packet"
+ },
+ {
+ "path": "captures/cell-quotation-final-narrow-stages.png",
+ "sha256": "e0cee942f046d8b423dfa8cb19c96a9506960eb93aedad2fae5b982cfcdbb9dd",
+ "viewed": true,
+ "label": "narrow",
+ "kind": "stages"
+ },
+ {
+ "path": "captures/cell-quotation-final-narrow-packetcode.png",
+ "sha256": "aba6306665908882af24c3cddc316b022178c393e623896f4d29e249ebbf4f91",
+ "viewed": true,
+ "label": "narrow",
+ "kind": "packetcode"
+ },
+ {
+ "path": "captures/cell-quotation-final-narrow-trace.png",
+ "sha256": "b10f12bd275a6d13897e5ea0ea79e90db23c2d578b61480b2a4e8aee1fe79784",
+ "viewed": true,
+ "label": "narrow",
+ "kind": "trace"
+ },
+ {
+ "path": "captures/cell-quotation-final-narrow-example.png",
+ "sha256": "2c34aafe9e2a9998966f03acbb5284b890035a047452135ea1b4261815c6f705",
+ "viewed": true,
+ "label": "narrow",
+ "kind": "example"
+ },
+ {
+ "path": "captures/cell-quotation-final-narrow-measurements.png",
+ "sha256": "f3c0bf9bacc023a27242960fe11f917c50b9fa38ae2ee956d03a8f50d9bdfad0",
+ "viewed": true,
+ "label": "narrow",
+ "kind": "measurements"
+ },
+ {
+ "path": "captures/cell-quotation-final-narrow-audit.png",
+ "sha256": "a0c074882fb69ba4bd9d726fbd68906dea04a9992a247bd3d703300f85c63c62",
+ "viewed": true,
+ "label": "narrow",
+ "kind": "audit"
+ }
+ ],
+ "changed_targets_overflow": false,
+ "notes": "All18finalimagesactuallyviewed. Correctednewhelperlinewrapfits390px; narrowheight1800allowsfullcallbackparagraphandcounts. Pre-existingpage/sectionoverflowrecordedseparately; no claimglobalpageoverflowfixed."
+}
diff --git a/reports/data/hexrcf-cell-quotation/context.json b/reports/data/hexrcf-cell-quotation/context.json
new file mode 100644
index 0000000000..b3a37df52f
--- /dev/null
+++ b/reports/data/hexrcf-cell-quotation/context.json
@@ -0,0 +1,1558 @@
+{
+ "source_commit": "465ee034ca6599e12f9a5c5e84487d4c5c74b34a",
+ "source_tree": "4989874511ca1245ad340f560fd40337f4c272ac",
+ "baseline_commit": "372368f8a52882855dbefc7cc1df5b0b1feca062",
+ "prior_evidence_source": "223c7118d944d28a457a2eb59a5d5b9de8f1a4ef",
+ "sources": {
+ ".github/workflows/ci.yml": "5db61a70eb52d7478994377179c1b35b360a794fcff4b1c257496b5a6394231c",
+ "AGENTS.md": "4e0a48cf49a61e56ed84c8b28e232b5bfad29f2da20571377692be6e1c316f30",
+ "HexManual/Chapters/HexRCF/AlgebraicCells.lean": "31d46d5285571d86e8dad8015bad1ef7b9f02be026ff82f2cb1b2adba8053344",
+ "HexManual/Chapters/HexRCF/RootQuote.lean": "0fe7ecb8568a5b3492aeea8310a4816797802d0a764093b824673a635ecf628a",
+ "HexManual/Chapters/HexRCF/RootTableQuote.lean": "78d1be637a32593b03f000ab153c7fdf05a1b5332ea3efb9c186aacfd68f0ae5",
+ "HexRCF/README.md": "3830d758a8a75d59df1a6dd01f59204a86858b5eda3e43a78f9e9e9c2d769a8a",
+ "HexRCF/SPEC/hex-rcf.md": "df8c6bb2435a2794faa36bc77e41f4c936f06ae149f29c3e68fe0d79f4ebfafb",
+ "HexRCF/Tactic.lean": "09d895ba1dd2c1af0bfffca197494f2614380ded268ff13e4e0b02fea22b9224",
+ "HexRealClosure/Algebraic.lean": "d05f9fb72fe9544ae9ddc685dff17080f876aa4c99c70e8992d511e011f6a454",
+ "HexRealClosure/ContextData.lean": "ca29790752b8d25f10d03a9877690a5ff40f1fdf6815c96fe9693941206e662c",
+ "HexRealClosure/SignCodec.lean": "7126323c97b77204386795a0f252f1babfd0ed7f3dba7ee3927a99b9d5c1852a",
+ "HexRealClosure/SignFacts.lean": "9c22837e93e6f50cc96310163e352ac608fbcfbd6275edab33751da2fd84f47c",
+ "HexRealClosure/SignatureCodecTests.lean": "ffc72777523ac0e92b563481804bdfb581fb0173fe7a021009737d57959b4462",
+ "HexRealClosure/TowerContext.lean": "6ef8b87b2d81cb177505a4bbc88befa078b20578cedd49e836d850753c203ee3",
+ "PLAN.md": "e94a60324486913b4a04650edd617c4ff8bef469dc7fd311adea8407c6662ea0",
+ "SPEC/real-closure-execution.md": "bc0948ad7de6969baaed89c0b3052cb0d21d64d634f8a336f9a7dde446b057f5",
+ "adapters/HexRCF/RealCoefficients.lean": "6a80cc920997d149d4098220453f357cd9ac12476d4cb6d0642d0d10d9579650",
+ "adapters/HexRCF/RealCoefficients/CellOperations.lean": "3561cc80c7c866141f05a387ce1100ee0cadd98281a03395551cebcde5bd6e2a",
+ "adapters/HexRCF/RealCoefficients/CellQuote.lean": "0a588b0491406a83e5152d428546ed5c99acd4a65e08ab8426b2d0762595b49a",
+ "adapters/HexRCF/RealCoefficients/CellRead.lean": "65274f89c940bad74eab8c9075f9256c6ed3d8b90d3294aec4e85883e425fb10",
+ "adapters/HexRCF/RealCoefficients/RationalQuote.lean": "675e2ba065b696f257adefc07fe30ddb0190f321d86005444579ea5a0744bdf5",
+ "adapters/HexRCF/RealCoefficients/RealModel.lean": "712b4fd3edff8eaa6f93e501da5debf04529d1ea8c11a18389820f866d179c43",
+ "adapters/HexRCF/RealCoefficients/Reify.lean": "ea8474b9e253f93a1583064ca99ec0bf376dadf5457fd60b57e9e18460cf449c",
+ "adapters/HexRCF/RealCoefficients/RootContext.lean": "792176eab63e5e62b759a10893569946ef6d019566b8116c85237b3e16fcdb86",
+ "adapters/HexRCF/RealCoefficients/RootHeader.lean": "681f2a964bc30f65a92a0fb1a58b4d4013eb396df37ca813962702065fb46261",
+ "adapters/HexRCF/RealCoefficients/RootPrepare.lean": "de72a8e3ac4adb13365801476467bf691e630d0952b018ccecd88846c3bdb025",
+ "adapters/HexRCF/RealCoefficients/RootQuote.lean": "89f3ad4b0c4a8ae058560201900877035d896427176b944b34acde9f9b23d7e8",
+ "adapters/HexRCF/RealCoefficients/RowQuote.lean": "3b7e7d2ebcbd53a6ea893bc8f4c884d767430f8b98a3f1ca770fe7c7b122f3c9",
+ "adapters/HexRCF/RealCoefficients/ScalarPacket.lean": "9ae62bea85dab43ec01329defa9f788af4843e74b24f40f6c6f1b28adaadc6bf",
+ "adapters/HexRCF/RealCoefficients/ScalarQuote.lean": "fee2617a998f29d05c8959b484060ac1d719359c6d851a8ff6699fa9cb370acc",
+ "adapters/HexRCF/RealCoefficients/SignatureQuote.lean": "c3bb71b52c2a544b902bc256b3a162e1c3c4e7f94ae6b21808914e67109710eb",
+ "adapters/HexRealClosureTheory/Algebraic.lean": "2495153acbe4e468521913a2f5d6569831cd05f5ee48d5ddb26fc31a43438c7e",
+ "adapters/HexRealClosureTheory/SignFacts.lean": "c2b8cf96de0cccc2c0c3cbe83f0afd7c40ab9736b75f377ec5bfedc0907f34e3",
+ "adapters/HexRealClosureTheory/TowerModel.lean": "70d0e57e8ecc78eb9b7675d875157462d27cf9494d49d72bba019eaa6dd1d788",
+ "conformance/HexRCF/CellQuoteStageProofs.lean": "331a09a449f2f67173201128f90c1ef5372cad7c1935553ab82312fcae520fe6",
+ "conformance/HexRCF/CellQuoteStages.lean": "240dc6565bd019ef41517b0e5c1e6886970b0d656da5a2e1425242a685c0aeb9",
+ "conformance/HexRCF/DependentQuote.lean": "0df154544a17857334480e7c577ecbcf1afe04165fa2da1a5a6407bf41e85518",
+ "conformance/HexRCF/DependentQuoteData.lean": "ed254475e78fa6edb27d4e55222a598b07b7357154ea0495d6195f2f1d39ee46",
+ "conformance/HexRCF/DependentQuoteProofs.lean": "5875aa9748f50340668e58aea97b196d3353313352fb8c819ae5ee3542556980",
+ "conformance/HexRCF/DependentScalarProofs.lean": "9fe3f3871f929e28355985c574c0b8c742be062ae5f19033d7d8bf9e67cd88d8",
+ "conformance/HexRCF/DependentScalarQuote.lean": "e20dd7346c337dd17126c394965f268e568706730f475844d7c0907051224933",
+ "conformance/HexRCF/FrozenSignatureConformance.lean": "8e7d432aecb87fb89bb188e4c579e86fb5c3348c5430f1e2b1a00f1f820a940e",
+ "conformance/HexRCF/FrozenSignatureProofs.lean": "55de6da9b0b3dc2d1e384d6c838d13294287c44060afb8e70aa2a0c8e01a81cb",
+ "conformance/HexRCF/ProofFunctionPublic.lean": "f928c9f0dd0a704d34a516b6282cfa6a7a4eb6c112d49689c450647a44370a6b",
+ "conformance/HexRCF/PublicSignPacket.lean": "c32d73c5634376907b965e1ea6cf69352fdda1f1945ce2f34a378cc217778102",
+ "conformance/HexRCF/PublicSignPacketControls.lean": "b4f98bd8ef190a361dd7752d4d5ece0cfbd862ff4face5a06dfabecf87096028",
+ "conformance/HexRCF/PublicSignPacketProofs.lean": "442f6d3e04a36db25611f0396103a1eee5ee411c40e8f3cc93df1acf7898bbbb",
+ "conformance/HexRCF/PublicSignPacketValues.lean": "72705dba30f04f986188903fb49b983c6f0a664895116fca8bd8b6b46b6517e5",
+ "conformance/HexRCF/QuotientQuote.lean": "97b2cbc9abdb46db33a9a91328f331edf8dea055cc244489158121cde8dc1903",
+ "conformance/HexRCF/QuotientQuoteData.lean": "ec26777d655a7898d7f7922fcea8f426a3f8c77a53000b69b6fe1755a0348870",
+ "conformance/HexRCF/QuotientQuoteProofs.lean": "f1d95accf6caed1c7354408b3a1a0b29493a526e82036390e39102ebe80c6752",
+ "conformance/HexRCF/QuotientQuotePublic.lean": "a3bd9a082df14a0ac93ba3798e13c6ebbf9dff98d7613264713aa281a5a18bea",
+ "conformance/HexRCF/RationalQuoteConformance.lean": "f03844d4a44a5c61b702ed0b1697619da9b20f4ac42122b9d1a6d3fa4a2de9ac",
+ "conformance/HexRCF/RecursiveScalarQuote.lean": "83ba1f3ed63afdbb148f171736a0aacebc7eef4ae3bf32dca29811515c3f051b",
+ "conformance/HexRCF/ReplayBoundary.lean": "bbc09553d62198a18e897981d5f443c81f09dba8d371d2cdaeaa846d22cbc2f8",
+ "conformance/HexRCF/ReplayBoundaryProofs.lean": "d755462a7344dc9f5304fba255bcefb42188c1de5a51d92d8567a27f22482dc2",
+ "conformance/HexRCF/ReplayHelperProofs.lean": "6dd68829399ec8908a877a3f7705cc9321e49b9581d0d577d114950242e43a57",
+ "conformance/HexRCF/ReplayHelpers.lean": "4501fa39e52a8a2bb52fdd7b183c16801090dd026304105afb4342a1c441c2a3",
+ "conformance/HexRCF/RootContextConformance.lean": "0c52084609ec3de8afd51330a7d2cc97f7bae1d8b2bbc421138783940fc7db37",
+ "conformance/HexRCF/RootContextProofs.lean": "b4c2e3ce686ce8bc60bfdafe2be2f566c6de46758f4827d307f3d5592b59d2e9",
+ "conformance/HexRCF/RootHeaderBudget.lean": "db30b6b7781fabd238ea2c934477e5ae281cc6cd905f11848ce46eb66ef45fe0",
+ "conformance/HexRCF/RootHeaderControls.lean": "aca063af3bfe475166aef92193f162c25a0e53eea094087cf334406a3d513157",
+ "conformance/HexRCF/RootHeaderPacket.lean": "dcd8e63c1d656fc800690b35554a0f835a1ee0bb96312215f8c12348d8a0e79a",
+ "conformance/HexRCF/RootHeaderProofs.lean": "e6630f0464fd0096b9af74b4640d2abc514a62c0b0fc706b4a2e74c9602eeb8c",
+ "conformance/HexRCF/RootHeaderValues.lean": "de9a8fc7c2e9371cbd3324eb700180411e49865dbc6535a74d2c882f74e38e13",
+ "conformance/HexRCF/RootPrepareControls.lean": "b36af8efd1e12227188b6fb7bde258e80d5c1c874338a324cb53c5ccc6c1330f",
+ "conformance/HexRCF/RootPreparePacket.lean": "86185bcc5fdddb1f700d869a115a91034954714f69a83171fd0e96f601e76fe3",
+ "conformance/HexRCF/RootPrepareProofs.lean": "4a5bc6655576a6592fcd5cd801bcfebd425243b1bb6cb39b0bb46d500a3938be",
+ "conformance/HexRCF/RootPreparePublic.lean": "a9e09cbe8d1287b97dde71ad1c6dbe149cfbacb6f81f41a8493ee802416d0805",
+ "conformance/HexRCF/RootQuoteCases.lean": "602d15ef501e969183bffbda7fb3c0f00a174ba5c2dbc35370ee7fce896944dd",
+ "conformance/HexRCF/RootQuoteConformance.lean": "f6a652a243ba62cffc671d1365c6ab47b6618179acb172019ec5609ea0324d3c",
+ "conformance/HexRCF/RootQuoteData.lean": "faa259d129d5c65a063c7143e45d5d9d19573ed49862aa5ecb3978ff389cb514",
+ "conformance/HexRCF/RootQuoteSource.lean": "aca1654efc1a452aca8ef573bb8ea3a435a4e1e18a4dca854d9bcc8e350d511d",
+ "conformance/HexRCF/RootTableQuote/Conformance.lean": "ec5bd136df58cc24a40ca989e3d33e55923082aed7591b234f55c70c013c74ad",
+ "conformance/HexRCF/RowQuoteCases.lean": "8d2ebddc05d5f0d08b62b50d3498b34b47ab0b3accc4d0a572e621fd83d606d4",
+ "conformance/HexRCF/RowQuoteData.lean": "ce60cb18f548f55e929d4803c7ed824ad0a7621fd4abda09a191f76393fabf0c",
+ "conformance/HexRCF/RowQuoteDepth.lean": "6ada3c44bea055425d223dc57eafb4f0c88349713d815ded4beec9720f7802ad",
+ "conformance/HexRCF/RowQuoteProofs.lean": "317d4f981f32bb28666fcabc6248f4a57fe67c95a7fe431f7993aeacfa377ed3",
+ "conformance/HexRCF/SelectedRoot/KernelCheck.lean": "12e7e2e3f4667a76dc89c4b36796bff177f3c187b81adc5eb5e049ff1ce6669d",
+ "conformance/HexRCF/SharedQuoteCallbacks.lean": "6132cc3722af3cf251d11c857a572f09128d3614d931724965cbcf488dc4db6d",
+ "conformance/HexRCF/SignPacketProofs.lean": "3980cad31637f5798b2c351e1efc2a29b946de1d90e06fb11acd85e2a5c46321",
+ "conformance/HexRCF/SignPacketQuote.lean": "fcda11e6c75353d4519c4eb0e9c302b84d7e41030316c99fcacb885dabf97545",
+ "conformance/HexRCF/SignatureQuoteConformance.lean": "26f16c37cb9e0d5c09a082787f4a66673437adbf998023fd5e9625db16ff5d3f",
+ "conformance/HexRCF/SourceSelectionCases.lean": "368ded3f07bb4be269f26a2fd2b7044904ea16d1dd1cba41d8bccb373d004005",
+ "conformance/HexRCF/TreeQuote.lean": "049065aa64bb13432b1d7183759979d28eebba98d18b6f54ab849e5953ce92c1",
+ "conformance/HexRCF/TreeQuoteData.lean": "c595c2278d2997483b755aa585da874c27eed40e4e1a8106d7f553e4f574776b",
+ "conformance/HexRCF/TreeQuoteProofs.lean": "f9a40248237480f8972df62dff548ef0599205b76014e070866e72586f161933",
+ "conformance/HexRCF/TreeQuotePublic.lean": "adc6dc6871208f31970cf5ae0c2472fd325a72e1df8114a6e8178ef8b2c71570",
+ "experiments/KernelReplay/AxiomClosure.lean": "f49377265f05f52b633b10a59255a03731e08d022cc54763de9851c5b5325034",
+ "lake-manifest.json": "fd2dc4df30cd44e4d30568489d616e7bcc8a78747500139134be56f35ae746a4",
+ "lakefile.lean": "ec37db14bf8f78f58a8947789eb8fbd882827334478b2c3a264009bf1a7a9693",
+ "lean-toolchain": "bc84812c94489d1e3e191baa1dc10d5eb684382d7fe9d2a5ab085e72c1c67e47",
+ "libraries.yml": "14e3dd1c01bb0c369b2216e2733378d61172040fd9f69dd0354d4e1267d9c5c1",
+ "reports/hexrcf-packet-quotation.md": "2b0f0b40a29fe3232ee588ec06b3bdfefb2facced7327049c8ad1cd70b6ca35e",
+ "reports/hexrcf-proof-functions.md": "ff410e9c4714476913d5651dd04d61a7ec55289b6143a6b1d29ccda331cd8989",
+ "reports/hexrcf-public-packet-quotation.md": "019ff6fe31e6699ec10e126a1d477a6a4b4f78b67893b5ce447cfe2aa637b316",
+ "reports/hexrcf-root-context.md": "fa967a71370454f5d1fcdb757ebf6ab6fa669538f253c3cc6cb6b6f826361c8a",
+ "reports/hexrcf-root-header-quotation.md": "62ecb8f293a9144b8a8a0bdc4910c473bd87063162bb656b94f1be53eb2e4617",
+ "reports/hexrcf-root-preparation.md": "23b6fc84e7b54447e224a166228f275f9ad239c90b2c6c8e4ea38d2f93e55cef",
+ "reports/hexrcf-row-quotation.md": "8b249f3f3add4995e4d6483431d77e210400e949319e18e160b88c72157b03f6",
+ "reports/hexrcf-sign-packet-quotation.md": "64adc6438ad1593d1018e14f2757cb6193614db26141af9c0c76d359084d9d99",
+ "reports/hexrcf-tree-quotation.md": "256ea13a022a3b92fecb3ef0875a3e01f9efd67776c104081ccb81e8ca463f2b"
+ },
+ "artifacts": [
+ {
+ "path": "validation/cell-pointwise-expanded-3.log.gz",
+ "bytes": 28196,
+ "sha256": "5601065ebe7af0d7ad6a3b54faa9c768e474e599ac5dad7de357b74663d85a0b",
+ "uncompressed_sha256": "de9e1207f0ac9f61a548c72dfd91df8978ea30733d95cd290bd751f7da6af023"
+ },
+ {
+ "path": "validation/cell-pointwise-quadratic-6.log.gz",
+ "bytes": 7356,
+ "sha256": "5d876c81b9c303d6fe8a84d335c19492a7d37cd3b383fbecb819a77a2804c3dc",
+ "uncompressed_sha256": "22eb34b9ce09ab3b53a196c372e0f882288748b5c7d851e10d34e939f142e03b"
+ },
+ {
+ "path": "validation/cell-pointwise-audit-5.log.gz",
+ "bytes": 7427,
+ "sha256": "ae0ac09372dbd4ed734c298ad35df6c8c7cdf79068d28ae04d2520c8c1d25aea",
+ "uncompressed_sha256": "72839ee2ed5a2e4eaeb798189345539b567876dfa7b7228cfccbfb30f8df417f"
+ },
+ {
+ "path": "validation/cell-pointwise-repaired-2.log.gz",
+ "bytes": 11732,
+ "sha256": "e3979cb0e3bfd2b97df02e7ba1166675fe32372c0ea1610b60fcec6e7c25e002",
+ "uncompressed_sha256": "c36248511ee2ef7efdf943898fea8f7b786f1d797fc924e0bdad5352f6f10163"
+ },
+ {
+ "path": "validation/cell-recursive-repaired-1.log.gz",
+ "bytes": 7914,
+ "sha256": "e3168ec29e017dbac637777cfb2f7e5e691c40a0adaadfbe3ce43073bd9cc7bb",
+ "uncompressed_sha256": "5241ca82a17bfa5851abdecfcf5997851d79995c15359309eae0b2d35886b27a"
+ },
+ {
+ "path": "validation/cell-quotation-render-2.log.gz",
+ "bytes": 16225,
+ "sha256": "f7ced68bbbaafa86088b79c7d3144edd53f763e7f61a0fad392cdd0ad0a81b14",
+ "uncompressed_sha256": "e229b35763cebbec8421ae39b6252771579df936147cf3f2a5ba3f74554623df"
+ },
+ {
+ "path": "validation/cell-quotation-browser-2.log.gz",
+ "bytes": 239,
+ "sha256": "e1b3065b7db9d8933b14388ffa6ce76014f0bc8b71693a45c6a92c3651bb02c3",
+ "uncompressed_sha256": "19d8310337de978720848166e811d1dd8e14126aba011aa148be0e93e31efd30"
+ },
+ {
+ "path": "validation/metadata.json",
+ "bytes": 1211,
+ "sha256": "60a508ee66fd18c6df63890861bb55b3e7277ab61aa39b1fdab6d2d48de78f77"
+ },
+ {
+ "path": "validation/cell-pointwise-final-metadata-copyright.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "validation/cell-pointwise-final-metadata-lines.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "validation/cell-pointwise-final-metadata-dag.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "validation/cell-pointwise-final-metadata-admissions.log.gz",
+ "bytes": 101,
+ "sha256": "5ef3526bdd8bb899e5e7a3f03fa58d42060fbca6f9e3c2ff420788c73def3bc9",
+ "uncompressed_sha256": "e91b29e6d3976c3325f3c2b0ebed23e3422543a76884bbafb55f83b43446d840"
+ },
+ {
+ "path": "validation/cell-pointwise-final-metadata-diff.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "validation/cell-pointwise-final-metadata-selected-admissions.log.gz",
+ "bytes": 135,
+ "sha256": "6732390d2b36388a36f3838122e67215c0918ed4b6107c6cabb4e6b2191df1bd",
+ "uncompressed_sha256": "4b6c0e3bd5ed2d23e65cb024b754ea83bf37faafc93304713ce9ceccbbb50d72"
+ },
+ {
+ "path": "validation/cell-pointwise-final-metadata-relative.log.gz",
+ "bytes": 105,
+ "sha256": "c43d1ba9fa5a6ea3d05919ed8b5f63ae6d92bdbc66b09a9c0e2db03229da84e9",
+ "uncompressed_sha256": "5b6d65aeb6cb570bc5e9b14d70d6222627b455a17e51016ce5d0bf8c9d5cd4c3"
+ },
+ {
+ "path": "validation/cell-pointwise-final-metadata.py.gz",
+ "bytes": 1335,
+ "sha256": "bc57e9d90c70078bf5ed0747a58781365675a0981a21690ce1154778edd0f613",
+ "uncompressed_sha256": "125138c09d36e0ed3682656d0081aded397e9f140bb6fe1e8e1ee84a524d719d"
+ },
+ {
+ "path": "validation/cell-pointwise-expanded-targets.txt.gz",
+ "bytes": 298,
+ "sha256": "dba1b04572608e0fa71bdc7c783d28158738c1fcc05512bb62c619567f16f43e",
+ "uncompressed_sha256": "04059e559bc9fcf1e312d9842b07811e20e2d792e43dab5cf7f953c8d5eeee7d"
+ },
+ {
+ "path": "validation/cell-quotation-memory-policy.txt.gz",
+ "bytes": 265,
+ "sha256": "49b520e31497d470453f9a58c1238e780176c60cd6c6748a747d917957780972",
+ "uncompressed_sha256": "e8a8ad5c3de0879bb45817d7fed00b4b5bf8dbc2bf5950ff0749807db6ae48fb"
+ },
+ {
+ "path": "validation/collect-cell-quotation.py.gz",
+ "bytes": 2111,
+ "sha256": "d6271c05aa86de6d1add743df2de0fb7fce48cb67e3121851d3b63c3a3deb5d8",
+ "uncompressed_sha256": "915909363a86f781ec7e18ea8136538f804518ef607ddb4c758abef6e0143f7f"
+ },
+ {
+ "path": "validation/run-bounded.sh",
+ "bytes": 302,
+ "sha256": "63bc5f97337e6b039bb3a9b1ba2a500be96fd1c2a2f73b43dae284aa9b18dda8"
+ },
+ {
+ "path": "validation/render.lean.txt",
+ "bytes": 214,
+ "sha256": "0809cac1ced3a11158afbdb4a9734ed0bea54d9337e3cea603083545b4ac8ba4"
+ },
+ {
+ "path": "captures/browser.mjs",
+ "bytes": 6102,
+ "sha256": "285d923138336f749f60a8d0ed6f9ba2cf301c67936e9bfe669caacea2758d39"
+ },
+ {
+ "path": "captures/inspection.json",
+ "bytes": 17778,
+ "sha256": "cf1f19e9cf7be7fbd11c2cc9db049f127e2a842764b92b55511158a1085986d8"
+ },
+ {
+ "path": "captures/section-overflow.json",
+ "bytes": 33290,
+ "sha256": "460d7d18f6abf49cea53de4ca49cee19fe70e1a715c67b010f3e16f49dc27c49"
+ },
+ {
+ "path": "captures/cell-quotation-final-desktop-types.png",
+ "bytes": 276894,
+ "sha256": "128c1b65e9f8d1b61083d169a4e9a73fc0b95616c0c9337f3beb94f01e422725"
+ },
+ {
+ "path": "captures/cell-quotation-final-desktop-callbacks.png",
+ "bytes": 315067,
+ "sha256": "eabd9bf9dea1b6c880770a66f07dbd2a3fb55335be04782aae7b49a2ff93cf86"
+ },
+ {
+ "path": "captures/cell-quotation-final-desktop-packet.png",
+ "bytes": 274626,
+ "sha256": "6b93e33f1a17a0c4d38b279054b78674142746a593158f15d6edb1321f215661"
+ },
+ {
+ "path": "captures/cell-quotation-final-desktop-stages.png",
+ "bytes": 282020,
+ "sha256": "4d937753e7ebdf57e51daa4115e6112c71382621bbc825fcb281aaa5c300b193"
+ },
+ {
+ "path": "captures/cell-quotation-final-desktop-packetcode.png",
+ "bytes": 273475,
+ "sha256": "414725e76c6db02124bf4f2ec3743e475b359a63c70ae8246662955c45af917e"
+ },
+ {
+ "path": "captures/cell-quotation-final-desktop-trace.png",
+ "bytes": 271082,
+ "sha256": "3516831b9b064b3c834e6a49b8e169b20d5b12cbdeb5bb26e01ddd4cb6379d2f"
+ },
+ {
+ "path": "captures/cell-quotation-final-desktop-example.png",
+ "bytes": 269646,
+ "sha256": "552b37904949cefe08409edc2b63913b695a6f8e5b9a74a7e8eaf9f31c772dcd"
+ },
+ {
+ "path": "captures/cell-quotation-final-desktop-measurements.png",
+ "bytes": 283374,
+ "sha256": "34101717a3a696b27ae06d27f889e6982ae706982715c5391cfbf3e122f73e35"
+ },
+ {
+ "path": "captures/cell-quotation-final-desktop-audit.png",
+ "bytes": 293460,
+ "sha256": "dfe4f6029222721cbbb25b5f261eb2de49419dff1f4922af0dc9aa4919865af8"
+ },
+ {
+ "path": "captures/cell-quotation-final-narrow-types.png",
+ "bytes": 171571,
+ "sha256": "ff79fd66fc837a20ee19cf66a13c07790f919692044d321bf6ede81d07e4e672"
+ },
+ {
+ "path": "captures/cell-quotation-final-narrow-callbacks.png",
+ "bytes": 178321,
+ "sha256": "f2f69f992ab6bb3a74b9ff9b99049dbfbf090cc29d9aa6ed20df7ba0d2c6d651"
+ },
+ {
+ "path": "captures/cell-quotation-final-narrow-packet.png",
+ "bytes": 178280,
+ "sha256": "f8e18b277e1444b36abf3e1ff757f915b041b1f1f929d674047b795fafd810ff"
+ },
+ {
+ "path": "captures/cell-quotation-final-narrow-stages.png",
+ "bytes": 176405,
+ "sha256": "e0cee942f046d8b423dfa8cb19c96a9506960eb93aedad2fae5b982cfcdbb9dd"
+ },
+ {
+ "path": "captures/cell-quotation-final-narrow-packetcode.png",
+ "bytes": 177329,
+ "sha256": "aba6306665908882af24c3cddc316b022178c393e623896f4d29e249ebbf4f91"
+ },
+ {
+ "path": "captures/cell-quotation-final-narrow-trace.png",
+ "bytes": 176610,
+ "sha256": "b10f12bd275a6d13897e5ea0ea79e90db23c2d578b61480b2a4e8aee1fe79784"
+ },
+ {
+ "path": "captures/cell-quotation-final-narrow-example.png",
+ "bytes": 175411,
+ "sha256": "2c34aafe9e2a9998966f03acbb5284b890035a047452135ea1b4261815c6f705"
+ },
+ {
+ "path": "captures/cell-quotation-final-narrow-measurements.png",
+ "bytes": 172943,
+ "sha256": "f3c0bf9bacc023a27242960fe11f917c50b9fa38ae2ee956d03a8f50d9bdfad0"
+ },
+ {
+ "path": "captures/cell-quotation-final-narrow-audit.png",
+ "bytes": 177705,
+ "sha256": "a0c074882fb69ba4bd9d726fbd68906dea04a9992a247bd3d703300f85c63c62"
+ },
+ {
+ "path": "captures/visual-review.json",
+ "bytes": 4520,
+ "sha256": "b3742a0a96bd8d0e6bcd00d669c1525588c596ecfa0fe81b8d97f1ac349e17ee"
+ },
+ {
+ "path": "diagnostics/cell-collect-equation-1.log.gz",
+ "bytes": 6220,
+ "sha256": "0acddfa594f4cac255bfeee31421f874069c303ffc676cb9f9cd4a17d56a1e6f",
+ "uncompressed_sha256": "86bc07472a5f531fdcea26f82557d5e9cb448ff9b64798dcf0a8cfff9324bfbf"
+ },
+ {
+ "path": "diagnostics/cell-finite-family-core-1.log.gz",
+ "bytes": 6351,
+ "sha256": "db039c076d2cfd9bbe7839cce080ea602694663b0814b42d905813f021f988a4",
+ "uncompressed_sha256": "5e0c516c0a02b1d050de07428b2d6a1d480c05a75f44bc539412602b329a25d5"
+ },
+ {
+ "path": "diagnostics/cell-helper-cost-probes-1-inputs/HelperCostProbe.lean.gz",
+ "bytes": 2542,
+ "sha256": "681ff67a8547b464840d5a2f7eb7d1685bd4831f3d7f1aeeb540aabc771fa0f3",
+ "uncompressed_sha256": "b5c459df374feb49bb2d600d8b6c785363594c9394e3dde1b943918a2a8cce9a"
+ },
+ {
+ "path": "diagnostics/cell-helper-cost-probes-1-inputs/SignPacketCostProbe.lean.gz",
+ "bytes": 3771,
+ "sha256": "754c60207f61f2cff10ed048cf4224da806d2c04ce35328c2ba36e6779623a09",
+ "uncompressed_sha256": "74429d9637a2acc8e79cf933ea923041a703fe86c8ce6ea1cda8c2e7d4fabe8f"
+ },
+ {
+ "path": "diagnostics/cell-helper-cost-probes-1-inputs.json.gz",
+ "bytes": 190,
+ "sha256": "a1a41acf5b72461f7644ee285233bd777bc05d4fadf884a0a30c27a0696109ef",
+ "uncompressed_sha256": "4c7387122d8e8b79b7b2c3c64ae210d01f1070b176dd1a5a32c5ad523d4332fd"
+ },
+ {
+ "path": "diagnostics/cell-helper-cost-probes-1.log.gz",
+ "bytes": 7164,
+ "sha256": "37b47b5e2d88a9b3bdfe5f34f23a80f05de979fb7158b2641a24d43e58f7d2a9",
+ "uncompressed_sha256": "a923d318d7683929d9856366289d05a6cf56c2f8ee9721cd27abe7031b35602f"
+ },
+ {
+ "path": "diagnostics/cell-parts-rows-equation-1.log.gz",
+ "bytes": 7387,
+ "sha256": "8df2675afddfac4e848aad710f7e6d30db6d0bc10f5a1b8de02d68be76dbbdac",
+ "uncompressed_sha256": "37a8f73286ae331e0a368d69cd39f418fc7af14f2c9f426a06b680ca771377dd"
+ },
+ {
+ "path": "diagnostics/cell-parts-rows-equation-2.log.gz",
+ "bytes": 6214,
+ "sha256": "15482c4b5bf011b3db2c3a7d1e4b3282b7dc27717dbdb29f4c44dde30711ee52",
+ "uncompressed_sha256": "16966eeb43d96151cde11ccf07a9a2191803f48220d418adfb7f817e39ed1f34"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-audit-1.log.gz",
+ "bytes": 7425,
+ "sha256": "c2e6c34fcf5185fe4d3525646b293579f81f828f8ffd3fbd8befe2c7eb7509ec",
+ "uncompressed_sha256": "ae5dba8367f0a63c855d672b3c1566c4cab46b37cae62d1c4dac257349ce4789"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-audit-2.log.gz",
+ "bytes": 7426,
+ "sha256": "917f228280bd9ea4b9d9d09e60458edc4c7a7471e1e46d5567c8302e5bf4ef39",
+ "uncompressed_sha256": "ccc139cffac03a5d4af78513133fe462b686e4bae6b7978cc2e3ee6b3f82b891"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-audit-3.log.gz",
+ "bytes": 7121,
+ "sha256": "6989365fe6cb1df158d4729079533a2491af106e427a50b3644d6fbfbe6f3bd2",
+ "uncompressed_sha256": "15cc3c3466635399b481d20be021e28537a08eacd5cf83f1c2028460597c26f3"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-audit-4.log.gz",
+ "bytes": 7742,
+ "sha256": "428b86cc50ea9bdf3e5d182c3f0f2974f6a5ec5e8d473db2c5b4d2a5bc2ac6f5",
+ "uncompressed_sha256": "d422ffd4818202b7750e68bb78d60225fe562f5b9d8125a6a57280c9f2381261"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-audit-5.log.gz",
+ "bytes": 7427,
+ "sha256": "ae0ac09372dbd4ed734c298ad35df6c8c7cdf79068d28ae04d2520c8c1d25aea",
+ "uncompressed_sha256": "72839ee2ed5a2e4eaeb798189345539b567876dfa7b7228cfccbfb30f8df417f"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-controls-1-inputs/CellOperations.lean.gz",
+ "bytes": 4729,
+ "sha256": "554d0c0ba93156533c8e6481ec6674d36f65dfd932fbcebeaa6a56a2b7619c58",
+ "uncompressed_sha256": "3561cc80c7c866141f05a387ce1100ee0cadd98281a03395551cebcde5bd6e2a"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-controls-1-inputs/CellQuote.lean.gz",
+ "bytes": 5497,
+ "sha256": "5485f7b06c6558c64e8483534705fd1d9993fb55b6446eb43e61c60ef5883129",
+ "uncompressed_sha256": "390ac0f44aadd0ff6215cbf6c7471f96cd2b5cc89e15cc8c250972b2502689c2"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-controls-1-inputs/CellQuoteStageProofs.lean.gz",
+ "bytes": 1533,
+ "sha256": "998e6ad9bf151111b2c59728bc9f259784a56d89caa9685c787e42b2b08e0087",
+ "uncompressed_sha256": "f9c4f4e6c82a6ed19b99664d120a056ae8539e57fa567f948b3dddd1cb7f41c9"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-controls-1-inputs/CellQuoteStages.lean.gz",
+ "bytes": 3301,
+ "sha256": "6210a0bd453aeac17e616aa61af29e9b1202e5626c5850035c4144792984c998",
+ "uncompressed_sha256": "8060c6f6de459c49780bd9de9440ac257ed65d58a5b0057c67750efc7094b8b9"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-controls-1-inputs/CellRead.lean.gz",
+ "bytes": 1727,
+ "sha256": "3895b36d8a6902cc88e07916cfa81d12d603f1d07484652a16dc1e1967f4347d",
+ "uncompressed_sha256": "65274f89c940bad74eab8c9075f9256c6ed3d8b90d3294aec4e85883e425fb10"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-controls-1-inputs/RootQuote.lean.gz",
+ "bytes": 10341,
+ "sha256": "15af1afe031b39e463c8e864ef361e004661a42a7407a40338b7339ccebb4f42",
+ "uncompressed_sha256": "89f3ad4b0c4a8ae058560201900877035d896427176b944b34acde9f9b23d7e8"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-controls-1.log.gz",
+ "bytes": 7297,
+ "sha256": "8542125cd81f4b6d6e4552732c55bbdf89400180ac012f420eee6f87db5e94aa",
+ "uncompressed_sha256": "f9bd3fc266d16da9c21f81aaa40eaf10868dd91d70338ac01f13a33e10b0894c"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-controls-2.log.gz",
+ "bytes": 7471,
+ "sha256": "e0c5f075d0f771766a44a57369c1a02f3fedd4f502f6973db3eb390f9f50e433",
+ "uncompressed_sha256": "e6b4cbabb1cab141a65e0113b180273347b3e37d252a65bb819b80e6fcb9690d"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-controls-3.log.gz",
+ "bytes": 7040,
+ "sha256": "5cd22cd833ba4ad7b07cb1ab8ce9b59ca1150b6bf1dbe0c14c2e05591124a0a2",
+ "uncompressed_sha256": "4ee4b76108b2d4de65facddf64ac6e3ad675772a460ccc8c358af187489a7f85"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-core-1.log.gz",
+ "bytes": 6852,
+ "sha256": "7b9f9dddc5dc2e5dec4e824d5318851b467573f502aa33266a00873dca53f1a6",
+ "uncompressed_sha256": "c7301d4257f16483172d58610d90d679c4ee8f31facc78a74a6906484507c01c"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-core-2.log.gz",
+ "bytes": 6351,
+ "sha256": "93b3ab4bd934d9f8fcd0f48b69f395f27f6f4549623ad6c788e8316c368e9b31",
+ "uncompressed_sha256": "4078a3a2f651f04c600d077eba12915832a75418de465903f005315a361e216a"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-core-3.log.gz",
+ "bytes": 6348,
+ "sha256": "e7385fab2e4c6799c5accd8ccdf41a5f0299153c150ff8ae6f3d307f6e13876c",
+ "uncompressed_sha256": "c8734fc7ad12026e0527ac2f7b64cee71ddf9bd7ccb7b9553c3aa635e20714a2"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-core-4.log.gz",
+ "bytes": 6354,
+ "sha256": "cbcacb01b77b178a08fcfbc626aa6a36515730d82876736f7e0e8bf5b33dd485",
+ "uncompressed_sha256": "5370d9fc006a8ae65e41e1f28e5be3865261267ca92d767bcf3d17e86d6cc054"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-expanded-1-failed-inputs/conformance/HexRCF/ReplayBoundary.lean.gz",
+ "bytes": 2338,
+ "sha256": "75fa4a476cc6fc6c982bbe6a034ade85083bdd3275336302e7baf4d84ba00fbc",
+ "uncompressed_sha256": "ab35f68ae5dc4affe6653a171e68ab1a404d90db3d9043c0d947f17fb9f5e164"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-expanded-1-failed-inputs/conformance/HexRCF/ReplayHelpers.lean.gz",
+ "bytes": 2522,
+ "sha256": "66dbe3747357fc80b6cfbf9f0f31ca1ba6bf48753f80dc3b7dc52ac62d4a6f6b",
+ "uncompressed_sha256": "4472fcc41217f558db18dc40cbfeda795b32e8e456c98559097fc20a732233f6"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-expanded-1-failed-inputs/conformance/HexRCF/RootHeaderPacket.lean.gz",
+ "bytes": 2761,
+ "sha256": "f935d12234faaadce4370aabd3b90870c4f68cec89c3f8756647565738c56f81",
+ "uncompressed_sha256": "e924a3b799cfff2573e2861e3533be94147a6505aa11837a99dc8985ba0ae7dc"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-expanded-1-failed-inputs/conformance/HexRCF/SharedQuoteCallbacks.lean.gz",
+ "bytes": 3254,
+ "sha256": "b6ff1b38a59140587efc26230fd59956f80533fc1a78b901c61a202545afa3a2",
+ "uncompressed_sha256": "623e63e5f4d5664e6873bde702fcac44ea426aff4ef8b87efa7f62cf2ac2a0b7"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-expanded-1-failed-inputs/conformance/HexRCF/SignPacketQuote.lean.gz",
+ "bytes": 3743,
+ "sha256": "8858d41480d736b09e75a58fccf1a8f4193022243fc7f247a8dc31c1b209a6b5",
+ "uncompressed_sha256": "f88fc608772871b12570c2bf37f8ea93799ded0c0a033af21454c27a13522f1a"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-expanded-1-failed-inputs/conformance/HexRCF/TreeQuote.lean.gz",
+ "bytes": 1429,
+ "sha256": "f9b2fd02a0a17ac3d308dd0269ea10bc9a2b4063d708dad4d6ba94ba2db8226c",
+ "uncompressed_sha256": "1d931b1ec3a8cef997b5cb50f151b9acfd73303ca013bb0a90f63550315eaa12"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-expanded-1-failed-inputs.json.gz",
+ "bytes": 408,
+ "sha256": "8955268f7f849e1c2bf0b03de820531219acc645b3558a5fdcc91c0f9f8cd421",
+ "uncompressed_sha256": "3143acd26d26948e0d032bf3652490d6766f7a70201a3cb1106962a5beedadb8"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-expanded-1.log.gz",
+ "bytes": 28185,
+ "sha256": "762e770646aab3fd45d22a355f52c475a047e5bca5e8c48c8299483524c598d4",
+ "uncompressed_sha256": "434da93214f8e77d324081f77f619c514ad7c76956416abf7b068afa4487396a"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-expanded-2-failed-inputs/conformance/HexRCF/RecursiveScalarQuote.lean.gz",
+ "bytes": 3106,
+ "sha256": "ee9c43ec4ea349cf2d8340def73c73d7496bedef60772784581948cc4c8b4c16",
+ "uncompressed_sha256": "1dc5f0f2ccfe2b72c985422ef714fcd6ee15278daf32991ba7ca74ebb1366f10"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-expanded-2-failed-inputs.json.gz",
+ "bytes": 154,
+ "sha256": "52bddbd1ca105c4414c7a88d122532dfee6e7ff36f9a629b691bba7adbd8d556",
+ "uncompressed_sha256": "16e7a156ebc31a17e68eb91e6b7bf199033b79daee4cea0d8605b62c142663cb"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-expanded-2.log.gz",
+ "bytes": 29268,
+ "sha256": "5ca290c09dd59eed7ddb09ff14724cce09ee3e688d0b06dbe19261bafb62dd37",
+ "uncompressed_sha256": "82ab4507608a78387d29a3603c2a2b9d3da2c2d2fa5e3da67636232882f6cf42"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-expanded-3.log.gz",
+ "bytes": 28196,
+ "sha256": "5601065ebe7af0d7ad6a3b54faa9c768e474e599ac5dad7de357b74663d85a0b",
+ "uncompressed_sha256": "de9e1207f0ac9f61a548c72dfd91df8978ea30733d95cd290bd751f7da6af023"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-expanded-targets.txt.gz",
+ "bytes": 298,
+ "sha256": "dba1b04572608e0fa71bdc7c783d28158738c1fcc05512bb62c619567f16f43e",
+ "uncompressed_sha256": "04059e559bc9fcf1e312d9842b07811e20e2d792e43dab5cf7f953c8d5eeee7d"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-final-metadata-admissions.log.gz",
+ "bytes": 101,
+ "sha256": "5ef3526bdd8bb899e5e7a3f03fa58d42060fbca6f9e3c2ff420788c73def3bc9",
+ "uncompressed_sha256": "e91b29e6d3976c3325f3c2b0ebed23e3422543a76884bbafb55f83b43446d840"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-final-metadata-copyright.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-final-metadata-dag.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-final-metadata-diff.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-final-metadata-lines.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-final-metadata-relative.log.gz",
+ "bytes": 105,
+ "sha256": "c43d1ba9fa5a6ea3d05919ed8b5f63ae6d92bdbc66b09a9c0e2db03229da84e9",
+ "uncompressed_sha256": "5b6d65aeb6cb570bc5e9b14d70d6222627b455a17e51016ce5d0bf8c9d5cd4c3"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-final-metadata-selected-admissions.log.gz",
+ "bytes": 135,
+ "sha256": "6732390d2b36388a36f3838122e67215c0918ed4b6107c6cabb4e6b2191df1bd",
+ "uncompressed_sha256": "4b6c0e3bd5ed2d23e65cb024b754ea83bf37faafc93304713ce9ceccbbb50d72"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-final-metadata.json.gz",
+ "bytes": 292,
+ "sha256": "0d91712917c8e2366913145a416dc23c04c77f34365e330b761a54ae475b2470",
+ "uncompressed_sha256": "60a508ee66fd18c6df63890861bb55b3e7277ab61aa39b1fdab6d2d48de78f77"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-main-stash.txt.gz",
+ "bytes": 60,
+ "sha256": "96220861f466295391b65e07bd3f3ca351d9ed885df7867b7a12c591961a505a",
+ "uncompressed_sha256": "72122947098c72aab1f551c539b937068921711d0afe41fddb941ab319bc44c9"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-quadratic-1.log.gz",
+ "bytes": 7486,
+ "sha256": "c8f74908ea7c4fc429111a82cb8fdb98e6114cad330fef985c9c125f48c17a78",
+ "uncompressed_sha256": "e520a946e3e96af62542ee1e10ad4aa5829c20acd5ccc1363e9a76142fc0be15"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-quadratic-2-inputs/HexManual/Chapters/HexRCF/AlgebraicCells.lean.gz",
+ "bytes": 11029,
+ "sha256": "2bd8d1e036291a42ed64a8bd99c13f27b37b06985f2a35e404a7c202a771a044",
+ "uncompressed_sha256": "30b5d31d983ad610de15f783637e2fa2de9ad7690f08eb92a3b7e5c9a73149f2"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-quadratic-2-inputs/HexManual/Chapters/HexRCF/RootQuote.lean.gz",
+ "bytes": 10705,
+ "sha256": "57ec49603a12b9ce1e4817a8329316298bf060672084ea38f8d0d80b8e1a7342",
+ "uncompressed_sha256": "0e0d0ba8893ad75d43784796405ff10f6e44e2483192a3b782553dbcf5847a2e"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-quadratic-2-inputs/adapters/HexRCF/RealCoefficients/CellOperations.lean.gz",
+ "bytes": 4729,
+ "sha256": "554d0c0ba93156533c8e6481ec6674d36f65dfd932fbcebeaa6a56a2b7619c58",
+ "uncompressed_sha256": "3561cc80c7c866141f05a387ce1100ee0cadd98281a03395551cebcde5bd6e2a"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-quadratic-2-inputs/adapters/HexRCF/RealCoefficients/CellQuote.lean.gz",
+ "bytes": 5666,
+ "sha256": "847311e432450495bd778b1a57e8f9bc00b5fd77c1c712389f0aa78a9b4bb8f8",
+ "uncompressed_sha256": "7efa1db3d494783612fe6de725901bf0bed7aaa0545770d54b83ed3944f0a933"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-quadratic-2-inputs/adapters/HexRCF/RealCoefficients/CellRead.lean.gz",
+ "bytes": 1727,
+ "sha256": "3895b36d8a6902cc88e07916cfa81d12d603f1d07484652a16dc1e1967f4347d",
+ "uncompressed_sha256": "65274f89c940bad74eab8c9075f9256c6ed3d8b90d3294aec4e85883e425fb10"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-quadratic-2-inputs/adapters/HexRCF/RealCoefficients/RootQuote.lean.gz",
+ "bytes": 10341,
+ "sha256": "15af1afe031b39e463c8e864ef361e004661a42a7407a40338b7339ccebb4f42",
+ "uncompressed_sha256": "89f3ad4b0c4a8ae058560201900877035d896427176b944b34acde9f9b23d7e8"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-quadratic-2-inputs/conformance/HexRCF/CellQuoteStageProofs.lean.gz",
+ "bytes": 1559,
+ "sha256": "1695f23fdd6df36aae51c18a7ed86236c6267fa8c372ded93410977de198d9a8",
+ "uncompressed_sha256": "78d5c07db598e1c2df048b82722a937a9489dcf6cb28b57aabfb62faf13d15d0"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-quadratic-2-inputs/conformance/HexRCF/CellQuoteStages.lean.gz",
+ "bytes": 3629,
+ "sha256": "8dabd56fe71388e59c055847d7bb21d9c8557ddad3f2e115f913e3962239a8cf",
+ "uncompressed_sha256": "2241ddcd1651e2b67223cb2bddf5bbc0f4426b905376d33b49d87538e2e2ddd6"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-quadratic-2-inputs/lakefile.lean.gz",
+ "bytes": 19438,
+ "sha256": "749c3dc39278ebab43127d1d78f78ad3350d64e52314258342f84c352837474b",
+ "uncompressed_sha256": "78a6438d1dd0706f447123097acec1febbd177bba96432f5f587db4c4ca50461"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-quadratic-2-inputs.json.gz",
+ "bytes": 562,
+ "sha256": "30d8c7328068d463c68a75598351468b6d3b1118dd96e0445b60818222772387",
+ "uncompressed_sha256": "549ef17e60d3840089cbf64ac0013e34f9bd6887f704ffa1b43b7b6f249975a4"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-quadratic-2.log.gz",
+ "bytes": 7404,
+ "sha256": "e9eb9bb8cc7e4c6387631a1583068f97f69c3e482889082a55758184f39cb62c",
+ "uncompressed_sha256": "435d9d139ac18d5f7b2fb891420c1c87adb091835718932d43a2420e81922f50"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-quadratic-3-inputs/HexManual/Chapters/HexRCF/AlgebraicCells.lean.gz",
+ "bytes": 11029,
+ "sha256": "2bd8d1e036291a42ed64a8bd99c13f27b37b06985f2a35e404a7c202a771a044",
+ "uncompressed_sha256": "30b5d31d983ad610de15f783637e2fa2de9ad7690f08eb92a3b7e5c9a73149f2"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-quadratic-3-inputs/HexManual/Chapters/HexRCF/RootQuote.lean.gz",
+ "bytes": 10705,
+ "sha256": "57ec49603a12b9ce1e4817a8329316298bf060672084ea38f8d0d80b8e1a7342",
+ "uncompressed_sha256": "0e0d0ba8893ad75d43784796405ff10f6e44e2483192a3b782553dbcf5847a2e"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-quadratic-3-inputs/adapters/HexRCF/RealCoefficients/CellOperations.lean.gz",
+ "bytes": 4729,
+ "sha256": "554d0c0ba93156533c8e6481ec6674d36f65dfd932fbcebeaa6a56a2b7619c58",
+ "uncompressed_sha256": "3561cc80c7c866141f05a387ce1100ee0cadd98281a03395551cebcde5bd6e2a"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-quadratic-3-inputs/adapters/HexRCF/RealCoefficients/CellQuote.lean.gz",
+ "bytes": 5666,
+ "sha256": "847311e432450495bd778b1a57e8f9bc00b5fd77c1c712389f0aa78a9b4bb8f8",
+ "uncompressed_sha256": "7efa1db3d494783612fe6de725901bf0bed7aaa0545770d54b83ed3944f0a933"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-quadratic-3-inputs/adapters/HexRCF/RealCoefficients/CellRead.lean.gz",
+ "bytes": 1727,
+ "sha256": "3895b36d8a6902cc88e07916cfa81d12d603f1d07484652a16dc1e1967f4347d",
+ "uncompressed_sha256": "65274f89c940bad74eab8c9075f9256c6ed3d8b90d3294aec4e85883e425fb10"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-quadratic-3-inputs/adapters/HexRCF/RealCoefficients/RootQuote.lean.gz",
+ "bytes": 10341,
+ "sha256": "15af1afe031b39e463c8e864ef361e004661a42a7407a40338b7339ccebb4f42",
+ "uncompressed_sha256": "89f3ad4b0c4a8ae058560201900877035d896427176b944b34acde9f9b23d7e8"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-quadratic-3-inputs/conformance/HexRCF/CellQuoteStageProofs.lean.gz",
+ "bytes": 1581,
+ "sha256": "99774984da47ba9265fd6fed87b0277cc2113c4572d845512c4bac5365526aa6",
+ "uncompressed_sha256": "cffb2d8a52b04a81fc526e1f8c43d07a45bc5f2ddc2d938ad86daa8a074c9a32"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-quadratic-3-inputs/conformance/HexRCF/CellQuoteStages.lean.gz",
+ "bytes": 3671,
+ "sha256": "29186d1a262ba79611a0ef178d893d57c9993b581a711a6cfb2d9a4cae4aa633",
+ "uncompressed_sha256": "b04dc1109cb92af837cd894255848b377d8fcd0526c040b9c356ef229b2cd75c"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-quadratic-3-inputs/lakefile.lean.gz",
+ "bytes": 19438,
+ "sha256": "749c3dc39278ebab43127d1d78f78ad3350d64e52314258342f84c352837474b",
+ "uncompressed_sha256": "78a6438d1dd0706f447123097acec1febbd177bba96432f5f587db4c4ca50461"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-quadratic-3-inputs.json.gz",
+ "bytes": 562,
+ "sha256": "f8b95509a694a937375c341c3429cfece10079241cda78dc284c876b32277cf2",
+ "uncompressed_sha256": "1df57b61ba43ff71df8399d7b60c5cd7bf76ac0a6197f11cf9d2121dcce81a0f"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-quadratic-3.log.gz",
+ "bytes": 7437,
+ "sha256": "4b578624b05781ebe27185be113dab7b41dbb7d6d3a8cfa8371f40ce3a931ea8",
+ "uncompressed_sha256": "ae7605275d968d4431ab0c19e4af44bec2294196e9cb4af136da68b42fcb0459"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-quadratic-4-inputs/HexManual/Chapters/HexRCF/AlgebraicCells.lean.gz",
+ "bytes": 11029,
+ "sha256": "2bd8d1e036291a42ed64a8bd99c13f27b37b06985f2a35e404a7c202a771a044",
+ "uncompressed_sha256": "30b5d31d983ad610de15f783637e2fa2de9ad7690f08eb92a3b7e5c9a73149f2"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-quadratic-4-inputs/HexManual/Chapters/HexRCF/RootQuote.lean.gz",
+ "bytes": 10705,
+ "sha256": "57ec49603a12b9ce1e4817a8329316298bf060672084ea38f8d0d80b8e1a7342",
+ "uncompressed_sha256": "0e0d0ba8893ad75d43784796405ff10f6e44e2483192a3b782553dbcf5847a2e"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-quadratic-4-inputs/adapters/HexRCF/RealCoefficients/CellOperations.lean.gz",
+ "bytes": 4729,
+ "sha256": "554d0c0ba93156533c8e6481ec6674d36f65dfd932fbcebeaa6a56a2b7619c58",
+ "uncompressed_sha256": "3561cc80c7c866141f05a387ce1100ee0cadd98281a03395551cebcde5bd6e2a"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-quadratic-4-inputs/adapters/HexRCF/RealCoefficients/CellQuote.lean.gz",
+ "bytes": 5666,
+ "sha256": "847311e432450495bd778b1a57e8f9bc00b5fd77c1c712389f0aa78a9b4bb8f8",
+ "uncompressed_sha256": "7efa1db3d494783612fe6de725901bf0bed7aaa0545770d54b83ed3944f0a933"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-quadratic-4-inputs/adapters/HexRCF/RealCoefficients/CellRead.lean.gz",
+ "bytes": 1727,
+ "sha256": "3895b36d8a6902cc88e07916cfa81d12d603f1d07484652a16dc1e1967f4347d",
+ "uncompressed_sha256": "65274f89c940bad74eab8c9075f9256c6ed3d8b90d3294aec4e85883e425fb10"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-quadratic-4-inputs/adapters/HexRCF/RealCoefficients/RootQuote.lean.gz",
+ "bytes": 10341,
+ "sha256": "15af1afe031b39e463c8e864ef361e004661a42a7407a40338b7339ccebb4f42",
+ "uncompressed_sha256": "89f3ad4b0c4a8ae058560201900877035d896427176b944b34acde9f9b23d7e8"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-quadratic-4-inputs/conformance/HexRCF/CellQuoteStageProofs.lean.gz",
+ "bytes": 1588,
+ "sha256": "173a40ff4a5c30e59f2379ccb9452d469af4337a7d2b09e5368775a81a87d688",
+ "uncompressed_sha256": "b305200f61e0f97580d2fafcbd6184435812dca5b95388ff6cb241c6ca4945bb"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-quadratic-4-inputs/conformance/HexRCF/CellQuoteStages.lean.gz",
+ "bytes": 3687,
+ "sha256": "e74097c9e271b83aa88103c3750c57967d40f8a5b3dd9fd250318a23f58b8395",
+ "uncompressed_sha256": "a846a25383a970cb2f402982f4ff02e1f5425d63d27925937f6f63f7e9ec87da"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-quadratic-4-inputs/lakefile.lean.gz",
+ "bytes": 19438,
+ "sha256": "749c3dc39278ebab43127d1d78f78ad3350d64e52314258342f84c352837474b",
+ "uncompressed_sha256": "78a6438d1dd0706f447123097acec1febbd177bba96432f5f587db4c4ca50461"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-quadratic-4-inputs.json.gz",
+ "bytes": 565,
+ "sha256": "31b0e8c9d3f99604facd71a478a01e7e2e1773d2cb2cdc99c4ca8c08cfc21b7d",
+ "uncompressed_sha256": "5c915007d2c83e52fcd71d9fce4374f519e45c0b8d746059f01661fdc5c4dfb0"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-quadratic-4.log.gz",
+ "bytes": 7461,
+ "sha256": "be8619b5c60130542f2604e234faf438b5dbddccd003901493079da1b5f4ddfe",
+ "uncompressed_sha256": "b38b02e0daf1c03480d52d2f172927c9c477585b8137a28070f46cf5d404bb59"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-quadratic-5-inputs/HexManual/Chapters/HexRCF/AlgebraicCells.lean.gz",
+ "bytes": 11029,
+ "sha256": "2bd8d1e036291a42ed64a8bd99c13f27b37b06985f2a35e404a7c202a771a044",
+ "uncompressed_sha256": "30b5d31d983ad610de15f783637e2fa2de9ad7690f08eb92a3b7e5c9a73149f2"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-quadratic-5-inputs/HexManual/Chapters/HexRCF/RootQuote.lean.gz",
+ "bytes": 10705,
+ "sha256": "57ec49603a12b9ce1e4817a8329316298bf060672084ea38f8d0d80b8e1a7342",
+ "uncompressed_sha256": "0e0d0ba8893ad75d43784796405ff10f6e44e2483192a3b782553dbcf5847a2e"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-quadratic-5-inputs/adapters/HexRCF/RealCoefficients/CellOperations.lean.gz",
+ "bytes": 4729,
+ "sha256": "554d0c0ba93156533c8e6481ec6674d36f65dfd932fbcebeaa6a56a2b7619c58",
+ "uncompressed_sha256": "3561cc80c7c866141f05a387ce1100ee0cadd98281a03395551cebcde5bd6e2a"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-quadratic-5-inputs/adapters/HexRCF/RealCoefficients/CellQuote.lean.gz",
+ "bytes": 5666,
+ "sha256": "847311e432450495bd778b1a57e8f9bc00b5fd77c1c712389f0aa78a9b4bb8f8",
+ "uncompressed_sha256": "7efa1db3d494783612fe6de725901bf0bed7aaa0545770d54b83ed3944f0a933"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-quadratic-5-inputs/adapters/HexRCF/RealCoefficients/CellRead.lean.gz",
+ "bytes": 1727,
+ "sha256": "3895b36d8a6902cc88e07916cfa81d12d603f1d07484652a16dc1e1967f4347d",
+ "uncompressed_sha256": "65274f89c940bad74eab8c9075f9256c6ed3d8b90d3294aec4e85883e425fb10"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-quadratic-5-inputs/adapters/HexRCF/RealCoefficients/RootQuote.lean.gz",
+ "bytes": 10341,
+ "sha256": "15af1afe031b39e463c8e864ef361e004661a42a7407a40338b7339ccebb4f42",
+ "uncompressed_sha256": "89f3ad4b0c4a8ae058560201900877035d896427176b944b34acde9f9b23d7e8"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-quadratic-5-inputs/conformance/HexRCF/CellQuoteStageProofs.lean.gz",
+ "bytes": 1579,
+ "sha256": "5910e4623233b7f1aafd147089caa8d25246d5233d46ffb8cee7039a7d46dd39",
+ "uncompressed_sha256": "f673bb4a41bde0ee014e0baeed416828a37226edce9f87c4f1640895273680a6"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-quadratic-5-inputs/conformance/HexRCF/CellQuoteStages.lean.gz",
+ "bytes": 3673,
+ "sha256": "10a613e3378d5aad2f7fd084ab3fe53add6641ab684e9b4eea97a44d392a6d79",
+ "uncompressed_sha256": "d0d39c9230a0dccf340088dc018d859f10839a509f9c5c272aaef1191c091e8b"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-quadratic-5-inputs/lakefile.lean.gz",
+ "bytes": 19438,
+ "sha256": "749c3dc39278ebab43127d1d78f78ad3350d64e52314258342f84c352837474b",
+ "uncompressed_sha256": "78a6438d1dd0706f447123097acec1febbd177bba96432f5f587db4c4ca50461"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-quadratic-5-inputs.json.gz",
+ "bytes": 563,
+ "sha256": "c737fb0e11c9ec2b3690727eeb43650c8a13db1e9a34a837cc8b10ece324031f",
+ "uncompressed_sha256": "d7174ffc0192c22e8d72b9c84a43dc35d975db2169a541ecd2d034e9d0e92f3a"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-quadratic-5.log.gz",
+ "bytes": 7522,
+ "sha256": "73334685277638ea509d2226fdfa83a96d2afa473b601f070b5703b091984c1f",
+ "uncompressed_sha256": "48702108a25c6cdc38ce6e87faddc69c965f79c36eeec2d193f254d5fb88a79d"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-quadratic-6-inputs/HexManual/Chapters/HexRCF/AlgebraicCells.lean.gz",
+ "bytes": 11029,
+ "sha256": "2bd8d1e036291a42ed64a8bd99c13f27b37b06985f2a35e404a7c202a771a044",
+ "uncompressed_sha256": "30b5d31d983ad610de15f783637e2fa2de9ad7690f08eb92a3b7e5c9a73149f2"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-quadratic-6-inputs/HexManual/Chapters/HexRCF/RootQuote.lean.gz",
+ "bytes": 10705,
+ "sha256": "57ec49603a12b9ce1e4817a8329316298bf060672084ea38f8d0d80b8e1a7342",
+ "uncompressed_sha256": "0e0d0ba8893ad75d43784796405ff10f6e44e2483192a3b782553dbcf5847a2e"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-quadratic-6-inputs/adapters/HexRCF/RealCoefficients/CellOperations.lean.gz",
+ "bytes": 4729,
+ "sha256": "554d0c0ba93156533c8e6481ec6674d36f65dfd932fbcebeaa6a56a2b7619c58",
+ "uncompressed_sha256": "3561cc80c7c866141f05a387ce1100ee0cadd98281a03395551cebcde5bd6e2a"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-quadratic-6-inputs/adapters/HexRCF/RealCoefficients/CellQuote.lean.gz",
+ "bytes": 5814,
+ "sha256": "88ea4b3eeab58c162bd9d8a56d620f968152ff07c30fe0c47ee597136343ab4b",
+ "uncompressed_sha256": "0a588b0491406a83e5152d428546ed5c99acd4a65e08ab8426b2d0762595b49a"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-quadratic-6-inputs/adapters/HexRCF/RealCoefficients/CellRead.lean.gz",
+ "bytes": 1727,
+ "sha256": "3895b36d8a6902cc88e07916cfa81d12d603f1d07484652a16dc1e1967f4347d",
+ "uncompressed_sha256": "65274f89c940bad74eab8c9075f9256c6ed3d8b90d3294aec4e85883e425fb10"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-quadratic-6-inputs/adapters/HexRCF/RealCoefficients/RootQuote.lean.gz",
+ "bytes": 10341,
+ "sha256": "15af1afe031b39e463c8e864ef361e004661a42a7407a40338b7339ccebb4f42",
+ "uncompressed_sha256": "89f3ad4b0c4a8ae058560201900877035d896427176b944b34acde9f9b23d7e8"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-quadratic-6-inputs/conformance/HexRCF/CellQuoteStageProofs.lean.gz",
+ "bytes": 1579,
+ "sha256": "5910e4623233b7f1aafd147089caa8d25246d5233d46ffb8cee7039a7d46dd39",
+ "uncompressed_sha256": "f673bb4a41bde0ee014e0baeed416828a37226edce9f87c4f1640895273680a6"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-quadratic-6-inputs/conformance/HexRCF/CellQuoteStages.lean.gz",
+ "bytes": 3695,
+ "sha256": "58167ffcde923abbf314a00c2573a7d62ed47c20dd64c239158ddcf7a71eb184",
+ "uncompressed_sha256": "240dc6565bd019ef41517b0e5c1e6886970b0d656da5a2e1425242a685c0aeb9"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-quadratic-6-inputs/lakefile.lean.gz",
+ "bytes": 19438,
+ "sha256": "749c3dc39278ebab43127d1d78f78ad3350d64e52314258342f84c352837474b",
+ "uncompressed_sha256": "78a6438d1dd0706f447123097acec1febbd177bba96432f5f587db4c4ca50461"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-quadratic-6-inputs.json.gz",
+ "bytes": 565,
+ "sha256": "097d4297f47bd2fdf9f91d8ab92fcb3eca3d90327973312a49f1474624bfec08",
+ "uncompressed_sha256": "1cc3345de7bd71ec4cf540c1b41246b983e676d50484d5dbd62b4763171612cf"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-quadratic-6.log.gz",
+ "bytes": 7356,
+ "sha256": "5d876c81b9c303d6fe8a84d335c19492a7d37cd3b383fbecb819a77a2804c3dc",
+ "uncompressed_sha256": "22eb34b9ce09ab3b53a196c372e0f882288748b5c7d851e10d34e939f142e03b"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-repaired-1-failed-inputs/conformance/HexRCF/SharedQuoteCallbacks.lean.gz",
+ "bytes": 3255,
+ "sha256": "ddd4b0abe502ef0d5b37e1d6b4fb95eb59eb25d6b84cfb960d9bffb983c461a5",
+ "uncompressed_sha256": "ee31111622510655ce380894084201aff3e8211090c3216f9eca6d7192f39596"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-repaired-1-failed-inputs.json.gz",
+ "bytes": 152,
+ "sha256": "f2b4e84dda218fd5d41415ea99fa1070a723d7a32ef6529d04ca20e4252950fd",
+ "uncompressed_sha256": "d28ba3e3c5fdb899454032cf7c3409dd4a7cc4cbe9cf35d47ef1b40dba14b4f2"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-repaired-1.log.gz",
+ "bytes": 13325,
+ "sha256": "40f12833bad31d010224fc70dbde2c828cbcfe7d8f9412896c68c88d76cf6493",
+ "uncompressed_sha256": "635fc77abbf6ddca2e8adee1ab0f769ea40474344f4da6be790d9f895f11e632"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-repaired-2.log.gz",
+ "bytes": 11732,
+ "sha256": "e3979cb0e3bfd2b97df02e7ba1166675fe32372c0ea1610b60fcec6e7c25e002",
+ "uncompressed_sha256": "c36248511ee2ef7efdf943898fea8f7b786f1d797fc924e0bdad5352f6f10163"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-stage-profile-1-inputs/CellPointwiseProfile.lean.gz",
+ "bytes": 1848,
+ "sha256": "53dc48ffe2e6fb6f9341320eb7e9f8c17998c4f078983af898641ff9838f7bb8",
+ "uncompressed_sha256": "87cc531cecbc50e6b085054db1be9b1df89552411a37e1e97309d95638bed892"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-stage-profile-1-inputs/PhaseCellPointwise.lean.gz",
+ "bytes": 5875,
+ "sha256": "61a2f3ea175002a5141f9922eef941fa6e3abba4b8bc467dd123147688176644",
+ "uncompressed_sha256": "168b2e7f8fe6632e0233298faa24015d76dce8d5517d9fcf890011ec95642dd1"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-stage-profile-1-inputs.json.gz",
+ "bytes": 193,
+ "sha256": "3f80b3f170a811aa895eb861e63a595aa1eb41fa831cc8f3098e0e6ccc0bd58a",
+ "uncompressed_sha256": "96a45309024e68f41cd24aa40b3abfddd7b76b520c086ed1531937da2d00500a"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-stage-profile-1-progress.log.gz",
+ "bytes": 251,
+ "sha256": "8b5f68bac42b4aaf2d643b1024cca6c4cdd152fdf43a718fb9d06b1457ef311f",
+ "uncompressed_sha256": "30155265f16b318596677cf0e2bcfcee6ad9cec25d3be6cc56075765ea888df1"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-stage-profile-1.log.gz",
+ "bytes": 7295,
+ "sha256": "c00784be6cd4d5fba62340d91d7a63145525cfc992476b8707b9d6b90779d90a",
+ "uncompressed_sha256": "05e9cf4e5f5671c9f82e023e83c1d79791a05990c243216e7ec46575e665daf1"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-stage-profile-2-inputs/CellPointwiseProfile.lean.gz",
+ "bytes": 1847,
+ "sha256": "e3d8910a677d1c2e5fad4158dfd6461df059f693ff4fc3d4699afa45bd4bff8e",
+ "uncompressed_sha256": "7f780086cc77c559ffaa4f6fd688a7ec07199df8d528e2efb32d54c93afb1259"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-stage-profile-2-inputs/PhaseCellPointwise.lean.gz",
+ "bytes": 5875,
+ "sha256": "61a2f3ea175002a5141f9922eef941fa6e3abba4b8bc467dd123147688176644",
+ "uncompressed_sha256": "168b2e7f8fe6632e0233298faa24015d76dce8d5517d9fcf890011ec95642dd1"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-stage-profile-2-inputs.json.gz",
+ "bytes": 194,
+ "sha256": "7afee2a642f947ec603ab18018378a9c2d6e117c2346c33b50f2422c604631fc",
+ "uncompressed_sha256": "4777e80c989774007219b5bb9a3beedc12f70266512e3a5bc77eb8f06862f785"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-stage-profile-2-progress.log.gz",
+ "bytes": 279,
+ "sha256": "aa423f3c63282751f5942c0bbd636e2155e4ca2558c0f13481dcea39a37990b7",
+ "uncompressed_sha256": "542de2e892f34fca7762e140fcabb087cb8e233ab1de630658a3f0b34e7f4fe8"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-stage-profile-2.log.gz",
+ "bytes": 7275,
+ "sha256": "ac85481357a480c1e25c7469d4d5725b332e7ca79b60ce95f451273cdd229c97",
+ "uncompressed_sha256": "f0db6b1f322126de725486f332d778fa6094a66622c0b20d0c38f4fec30273bf"
+ },
+ {
+ "path": "diagnostics/cell-pointwise-trace-core-1.log.gz",
+ "bytes": 6351,
+ "sha256": "b1f2298be0d340e3a78c587c257788cda24343d0436b4505b27f34202ed382f0",
+ "uncompressed_sha256": "123fccbea3c91f339b78cae899a3560710c4c5d6ba45eef75a0e8b1966875abb"
+ },
+ {
+ "path": "diagnostics/cell-quotation-browser-1.log.gz",
+ "bytes": 241,
+ "sha256": "17e1c4469440bd61686cdba7cacce65115bffed53a209dc039ab58111268ace9",
+ "uncompressed_sha256": "234617e825737d620cf0a723b10355e4832739255e7ca9670131398952ab3883"
+ },
+ {
+ "path": "diagnostics/cell-quotation-render-1.log.gz",
+ "bytes": 16140,
+ "sha256": "904568a97f8d961c08b9d1194979d113a82d49bddb4eabb4491b0fa719314526",
+ "uncompressed_sha256": "73bc4dcbe3cc98b78b0283ceefbb04521995a64ddf185feb610cb23be5b3e980"
+ },
+ {
+ "path": "diagnostics/cell-recursive-cost-probe-1-inputs/RecursiveCostProbe.lean.gz",
+ "bytes": 3100,
+ "sha256": "b9d566d3eedd367a121a9da6ee4106ffe2830d7ed87cc524d08a3c6f44c95160",
+ "uncompressed_sha256": "3e08f7d4fe79be4e6f44139dfc02289d6fe8effbbaf094fc60c413d6e86c8f8f"
+ },
+ {
+ "path": "diagnostics/cell-recursive-cost-probe-1-inputs.json.gz",
+ "bytes": 136,
+ "sha256": "297a59d6d33aed25750bb2960ff56d6793b52a7dd0edc1c34c7ca05fc30525d3",
+ "uncompressed_sha256": "6ff32d7a9ea12ea0a91b21a59e8794fa609edebdbca4c90d0aa4414d21f42470"
+ },
+ {
+ "path": "diagnostics/cell-recursive-cost-probe-1.log.gz",
+ "bytes": 7391,
+ "sha256": "8231929e722beb1413424e2ebff24ca0b300e243e2fc9ad564866cbb3ad06ac1",
+ "uncompressed_sha256": "28e6fcd770ba6978016e1f4d2ad4a05feed23e64ee43681f17003ca73e6e0b19"
+ },
+ {
+ "path": "diagnostics/cell-recursive-repaired-1.log.gz",
+ "bytes": 7914,
+ "sha256": "e3168ec29e017dbac637777cfb2f7e5e691c40a0adaadfbe3ce43073bd9cc7bb",
+ "uncompressed_sha256": "5241ca82a17bfa5851abdecfcf5997851d79995c15359309eae0b2d35886b27a"
+ },
+ {
+ "path": "diagnostics/cell-stages-audit-1-inputs/CellOperations.lean.gz",
+ "bytes": 4424,
+ "sha256": "ac63525a55dd0604490367315114affcef96ffda8a110f95aac81c5f2aa091f3",
+ "uncompressed_sha256": "a7de11691787eb489590856bc6f3254b844acf0588f26b13b5744406aa974b29"
+ },
+ {
+ "path": "diagnostics/cell-stages-audit-1-inputs/CellQuote.lean.gz",
+ "bytes": 4044,
+ "sha256": "889c2e906388d294e77d9336e8378d9f74c347e16551a5d1ed9732f70f17563a",
+ "uncompressed_sha256": "c366731177878baf2c8e44ea11d9558bd7e19f743230d90944ed3cd20521d55f"
+ },
+ {
+ "path": "diagnostics/cell-stages-audit-1-inputs/CellQuoteStageProofs.lean.gz",
+ "bytes": 1525,
+ "sha256": "efafc57ab097b02ff7a52dda8ffafc0a771d5ffde8849b1ababa2d9869dd434b",
+ "uncompressed_sha256": "0c1695e3a4162f17da9ecf52c16b131de5758b2f00a9f8de3fd639370b8e33a8"
+ },
+ {
+ "path": "diagnostics/cell-stages-audit-1-inputs/CellQuoteStages.lean.gz",
+ "bytes": 3302,
+ "sha256": "6f7dbed1d985235ee04c19c53fa90773cf0fb239883f4e3dbba4ca11cfd87527",
+ "uncompressed_sha256": "93e1e776e363e145910b9aed7f57e3ed8bd8976b5c14fdddd7ebe9404cdefb4d"
+ },
+ {
+ "path": "diagnostics/cell-stages-audit-1-inputs/RootQuote.lean.gz",
+ "bytes": 10177,
+ "sha256": "22bae699b3fafb3766ee66925c9321abc48e8c2f6c0ae26e42d7358dccf067d4",
+ "uncompressed_sha256": "07fabedf7c5c450f36bf80a400fcb0e818fe7754c8713e35c3469a56407f2951"
+ },
+ {
+ "path": "diagnostics/cell-stages-audit-1-inputs/lakefile.lean.gz",
+ "bytes": 19438,
+ "sha256": "749c3dc39278ebab43127d1d78f78ad3350d64e52314258342f84c352837474b",
+ "uncompressed_sha256": "78a6438d1dd0706f447123097acec1febbd177bba96432f5f587db4c4ca50461"
+ },
+ {
+ "path": "diagnostics/cell-stages-audit-1.log.gz",
+ "bytes": 7447,
+ "sha256": "e3ff2f0c2b36ce9e51f41ad7e11df2ef81cbc58901cafa8e01e09615933082c6",
+ "uncompressed_sha256": "a70bbd81fc8657f722a870d9fdc9127b9bfc4c269c33daeca10de740e00b392d"
+ },
+ {
+ "path": "diagnostics/cell-stages-audit-2.log.gz",
+ "bytes": 7230,
+ "sha256": "e3508087a3d2f578e7428939decca6813385d0a30b2f31903aa2b414689e4ebb",
+ "uncompressed_sha256": "28206f3fb4868f60a0626ae5d75ed38066dcb680d80ae83cb48d442c228064f7"
+ },
+ {
+ "path": "diagnostics/cell-stages-audit-3.log.gz",
+ "bytes": 7211,
+ "sha256": "f8db5e7f38dce48ea3e1bc20657b907294e020ecc6b277e8fe5f4510b1b9ea35",
+ "uncompressed_sha256": "7070e04d8ff2e268719c9bc2d5957afdf8030836934b1eacacc317aa5e8eb451"
+ },
+ {
+ "path": "diagnostics/cell-stages-clean-core-1.log.gz",
+ "bytes": 6464,
+ "sha256": "f27c7fd2ec56eb2b0f2935623e269d2b4c06dea0bff6dc0b6df8872df9b8fc64",
+ "uncompressed_sha256": "13f7491617d7db8207c42b12a05d6db10efe3d90a016a20bed966fe069de4a80"
+ },
+ {
+ "path": "diagnostics/cell-stages-conformance-1.log.gz",
+ "bytes": 6997,
+ "sha256": "fb8f2265766d4a4bfe8705ec550e54825947a82dcbea0947f8cb62ae98ad4300",
+ "uncompressed_sha256": "944de01a7ad607463b9d5169577762b32fbe220f2479de36a3ceb7a0f0e042fa"
+ },
+ {
+ "path": "diagnostics/cell-stages-conformance-2-inputs/CellOperations.lean.gz",
+ "bytes": 4424,
+ "sha256": "ac63525a55dd0604490367315114affcef96ffda8a110f95aac81c5f2aa091f3",
+ "uncompressed_sha256": "a7de11691787eb489590856bc6f3254b844acf0588f26b13b5744406aa974b29"
+ },
+ {
+ "path": "diagnostics/cell-stages-conformance-2-inputs/CellQuote.lean.gz",
+ "bytes": 4044,
+ "sha256": "889c2e906388d294e77d9336e8378d9f74c347e16551a5d1ed9732f70f17563a",
+ "uncompressed_sha256": "c366731177878baf2c8e44ea11d9558bd7e19f743230d90944ed3cd20521d55f"
+ },
+ {
+ "path": "diagnostics/cell-stages-conformance-2-inputs/CellQuoteStages.lean.gz",
+ "bytes": 3302,
+ "sha256": "6f7dbed1d985235ee04c19c53fa90773cf0fb239883f4e3dbba4ca11cfd87527",
+ "uncompressed_sha256": "93e1e776e363e145910b9aed7f57e3ed8bd8976b5c14fdddd7ebe9404cdefb4d"
+ },
+ {
+ "path": "diagnostics/cell-stages-conformance-2-inputs/RootQuote.lean.gz",
+ "bytes": 10177,
+ "sha256": "22bae699b3fafb3766ee66925c9321abc48e8c2f6c0ae26e42d7358dccf067d4",
+ "uncompressed_sha256": "07fabedf7c5c450f36bf80a400fcb0e818fe7754c8713e35c3469a56407f2951"
+ },
+ {
+ "path": "diagnostics/cell-stages-conformance-2-inputs/lakefile.lean.gz",
+ "bytes": 19434,
+ "sha256": "e9b17c6d6aec1afec7a8ca9a23b71ddcea1ac515b3aa23a5e547e09d3982df85",
+ "uncompressed_sha256": "4c4691d35691b2dc474f83ac04845492050c6eccf3927fd505cad8a359165e8f"
+ },
+ {
+ "path": "diagnostics/cell-stages-conformance-2.log.gz",
+ "bytes": 7094,
+ "sha256": "dff801101c51dabd5c1b2739ce13fbba2d16ebe941e2889a177a5ec292fdf19d",
+ "uncompressed_sha256": "f16f10565359260f1ec4f3d0cec29519aced89d25eefb9f6699449d14e6c3044"
+ },
+ {
+ "path": "diagnostics/cell-stages-core-1.log.gz",
+ "bytes": 6746,
+ "sha256": "9da6d2e50c45308cfaa6c8aa2f93a39560cd9f49c66cc0260cdd620f4e7b8f58",
+ "uncompressed_sha256": "46ea1c27250f2b658523da2724a8821401a6dce15ca3b980c466bcb285a1fe3e"
+ },
+ {
+ "path": "diagnostics/cell-stages-core-2.log.gz",
+ "bytes": 6353,
+ "sha256": "455b671e22aa43e4fa290fa86e606e6d98a4686647f9ee65a03101dd6c5ac81f",
+ "uncompressed_sha256": "927cb6a8c51f4ca74e57a585cbfc9d3b8a163a3dce36f10bb503c93fb888c6c2"
+ },
+ {
+ "path": "diagnostics/cell-stages-core-3.log.gz",
+ "bytes": 6352,
+ "sha256": "ba46f400dae6d42304634fbc958311f68716a4618ba3f1c559c401762dd187e6",
+ "uncompressed_sha256": "866193f6c2434c9d993799bbeed73bb91b436c5a9f1f6583c33232d9628f0027"
+ },
+ {
+ "path": "diagnostics/cell-stages-core-4.log.gz",
+ "bytes": 6352,
+ "sha256": "41c65105adcc012e9c30be5b719cea09dd4404c8ba96e42b1431c1c7a2bb702e",
+ "uncompressed_sha256": "94d11bbdb7d10171c89cf239a653a8486577357494e9354de1dcd0181ae0298b"
+ },
+ {
+ "path": "diagnostics/cell-stages-final-1-inputs/AlgebraicCells.lean.gz",
+ "bytes": 10962,
+ "sha256": "f5346efc74a0e8d96912940b38fed5f38b1226d21625e46dcec820afcf349132",
+ "uncompressed_sha256": "98807cb0d9ccdafde493e1d0332504e77429d3671a068708bd9affc808264996"
+ },
+ {
+ "path": "diagnostics/cell-stages-final-1-inputs/CellOperations.lean.gz",
+ "bytes": 4424,
+ "sha256": "ac63525a55dd0604490367315114affcef96ffda8a110f95aac81c5f2aa091f3",
+ "uncompressed_sha256": "a7de11691787eb489590856bc6f3254b844acf0588f26b13b5744406aa974b29"
+ },
+ {
+ "path": "diagnostics/cell-stages-final-1-inputs/CellQuote.lean.gz",
+ "bytes": 4044,
+ "sha256": "889c2e906388d294e77d9336e8378d9f74c347e16551a5d1ed9732f70f17563a",
+ "uncompressed_sha256": "c366731177878baf2c8e44ea11d9558bd7e19f743230d90944ed3cd20521d55f"
+ },
+ {
+ "path": "diagnostics/cell-stages-final-1-inputs/CellQuoteStageProofs.lean.gz",
+ "bytes": 1534,
+ "sha256": "902a249094d56f2cc7236de5454fa174fc0b59e24bf3f55a06957c9e3b645064",
+ "uncompressed_sha256": "4c2e0a2415f377a96beb7de4118e6e64770aa1b0c417a6d7d64dc45a33cdc568"
+ },
+ {
+ "path": "diagnostics/cell-stages-final-1-inputs/CellQuoteStages.lean.gz",
+ "bytes": 3301,
+ "sha256": "6210a0bd453aeac17e616aa61af29e9b1202e5626c5850035c4144792984c998",
+ "uncompressed_sha256": "8060c6f6de459c49780bd9de9440ac257ed65d58a5b0057c67750efc7094b8b9"
+ },
+ {
+ "path": "diagnostics/cell-stages-final-1-inputs/RootQuote.lean.gz",
+ "bytes": 10705,
+ "sha256": "57ec49603a12b9ce1e4817a8329316298bf060672084ea38f8d0d80b8e1a7342",
+ "uncompressed_sha256": "0e0d0ba8893ad75d43784796405ff10f6e44e2483192a3b782553dbcf5847a2e"
+ },
+ {
+ "path": "diagnostics/cell-stages-final-1-inputs/lakefile.lean.gz",
+ "bytes": 19438,
+ "sha256": "749c3dc39278ebab43127d1d78f78ad3350d64e52314258342f84c352837474b",
+ "uncompressed_sha256": "78a6438d1dd0706f447123097acec1febbd177bba96432f5f587db4c4ca50461"
+ },
+ {
+ "path": "diagnostics/cell-stages-final-metadata-1.log.gz",
+ "bytes": 79,
+ "sha256": "3956b87a47b24f981cca11f7704b8421254b1df0ae1f7d3f1e180cbfcc9ad50e",
+ "uncompressed_sha256": "14b64de8d82592f8227746917408c7571dd8ef67acd7faf0c511b0baf07cc9ec"
+ },
+ {
+ "path": "diagnostics/cell-stages-final-metadata-admissions.log.gz",
+ "bytes": 100,
+ "sha256": "d3756d45b035561a8b730b971f446d08da1977b542f6ba4571609462989a4d25",
+ "uncompressed_sha256": "b09374d3404da13ef190fe222aee3e78790c6366070f0fc2505665080d0c4ce5"
+ },
+ {
+ "path": "diagnostics/cell-stages-final-metadata-copyright.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "diagnostics/cell-stages-final-metadata-dag.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "diagnostics/cell-stages-final-metadata-diff.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "diagnostics/cell-stages-final-metadata-lines.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "diagnostics/cell-stages-final-metadata-relative.log.gz",
+ "bytes": 105,
+ "sha256": "c43d1ba9fa5a6ea3d05919ed8b5f63ae6d92bdbc66b09a9c0e2db03229da84e9",
+ "uncompressed_sha256": "5b6d65aeb6cb570bc5e9b14d70d6222627b455a17e51016ce5d0bf8c9d5cd4c3"
+ },
+ {
+ "path": "diagnostics/cell-stages-final-metadata-selected-admissions.log.gz",
+ "bytes": 133,
+ "sha256": "6381b08bd6149d24567708b596462972834b3f662918466bb9a80715356a5aed",
+ "uncompressed_sha256": "db6e71079dbdf0e787b19801b1f89f86b76cc08e01e1b774119fa7e4ed7595b5"
+ },
+ {
+ "path": "diagnostics/cell-stages-final-metadata.json.gz",
+ "bytes": 292,
+ "sha256": "a3451c633e1b3342a12d666c893daf09eaa4399f9ade87574394af960105f651",
+ "uncompressed_sha256": "8a8f9ae3aff4b9b191b128df93d39759b330a83f2601234dd7ba2a43179bbc35"
+ },
+ {
+ "path": "diagnostics/cell-stages-row-boundaries-1-inputs/CellOperations.lean.gz",
+ "bytes": 4424,
+ "sha256": "ac63525a55dd0604490367315114affcef96ffda8a110f95aac81c5f2aa091f3",
+ "uncompressed_sha256": "a7de11691787eb489590856bc6f3254b844acf0588f26b13b5744406aa974b29"
+ },
+ {
+ "path": "diagnostics/cell-stages-row-boundaries-1-inputs/CellQuote.lean.gz",
+ "bytes": 4379,
+ "sha256": "e8d0ee4935b9ccd392606d1fd4fedfeef2eef96dfc80caf26660baf4b2cbf945",
+ "uncompressed_sha256": "7b2a77a771697b6ad5fac4225335656229e060998ddbb90ad2b738f73495b529"
+ },
+ {
+ "path": "diagnostics/cell-stages-row-boundaries-1-inputs/CellQuoteStageProofs.lean.gz",
+ "bytes": 1534,
+ "sha256": "902a249094d56f2cc7236de5454fa174fc0b59e24bf3f55a06957c9e3b645064",
+ "uncompressed_sha256": "4c2e0a2415f377a96beb7de4118e6e64770aa1b0c417a6d7d64dc45a33cdc568"
+ },
+ {
+ "path": "diagnostics/cell-stages-row-boundaries-1-inputs/CellQuoteStages.lean.gz",
+ "bytes": 3301,
+ "sha256": "6210a0bd453aeac17e616aa61af29e9b1202e5626c5850035c4144792984c998",
+ "uncompressed_sha256": "8060c6f6de459c49780bd9de9440ac257ed65d58a5b0057c67750efc7094b8b9"
+ },
+ {
+ "path": "diagnostics/cell-stages-row-boundaries-1-inputs/RootQuote.lean.gz",
+ "bytes": 10341,
+ "sha256": "15af1afe031b39e463c8e864ef361e004661a42a7407a40338b7339ccebb4f42",
+ "uncompressed_sha256": "89f3ad4b0c4a8ae058560201900877035d896427176b944b34acde9f9b23d7e8"
+ },
+ {
+ "path": "diagnostics/cell-stages-row-boundaries-1.log.gz",
+ "bytes": 7473,
+ "sha256": "0e3718bac523fbc820fb56a87a41f043ad52210c583f2b52a6d4097574dbfa57",
+ "uncompressed_sha256": "b6da645f3a366c49a7f99a732bab096b522ca0a4118cc43ce7f3ec3edd73f3a9"
+ },
+ {
+ "path": "diagnostics/constructor-metadata-algebraic-1-inputs/ConstructorAlgebraicProfile.lean.gz",
+ "bytes": 1176,
+ "sha256": "4f2358a51b3521bbd2170499b55fd106351bdaead9abf8a00b9c4e5141c3ab33",
+ "uncompressed_sha256": "110b77df7aa8050fd7962c36dc4fd7cb68aa42761fb223c685a63e238373d5b3"
+ },
+ {
+ "path": "diagnostics/constructor-metadata-algebraic-1-inputs/FormulaShapeProbe.lean.gz",
+ "bytes": 760,
+ "sha256": "9118d4c28c44ab188ae70ef3c187cf01588ad8e8dd09202c71a528820e54b28f",
+ "uncompressed_sha256": "96fa223489dd6d64d87c6f7ab3040f27133fa33d535ced5534127cb219f4e418"
+ },
+ {
+ "path": "diagnostics/constructor-metadata-algebraic-1-inputs/PhaseQuote.lean.gz",
+ "bytes": 10382,
+ "sha256": "ca6d2c1ffc572b17812c1d0b945be2bc5db867ad592af0c930c9c4350dacb8bd",
+ "uncompressed_sha256": "eefb981953efb6d88c474713bb52f8d2884cfc85c4c18ba18e0bdb73e9e388b8"
+ },
+ {
+ "path": "diagnostics/constructor-metadata-algebraic-1.csv.gz",
+ "bytes": 3409,
+ "sha256": "cb6df91a2d2355860b0bc98b43e38197f98858156e1f162eda82064d8381d7db",
+ "uncompressed_sha256": "e693ec5a73460beddf0e326cc1c4175639ea601da4f308898ae8036859a8d257"
+ },
+ {
+ "path": "diagnostics/constructor-metadata-algebraic-1.log.gz",
+ "bytes": 7268,
+ "sha256": "6f5c82a328ae5b39b21901ed13ff620c5326bf261609fc8f35bc82bc60abbb0e",
+ "uncompressed_sha256": "faa012b7892562691bd251c7f994e223e49f733351f2fd89d18d30772d1b990d"
+ },
+ {
+ "path": "diagnostics/constructor-metadata-profile-1-inputs/ConstructorProfile.lean.gz",
+ "bytes": 1125,
+ "sha256": "9f5279c20bb39efa0903f55b7329e0c3898c8a302120046267bfa6206a121310",
+ "uncompressed_sha256": "0b3729a6ffdf6bd3826fa2f65ea0f46033bf3e0417c85c54ab6e591cd40b29f5"
+ },
+ {
+ "path": "diagnostics/constructor-metadata-profile-1-inputs/PhaseCellQuote.lean.gz",
+ "bytes": 4052,
+ "sha256": "fb159490753745c5c39ee6b33405a7132da5988c3567394bf9cfb416f2b856b1",
+ "uncompressed_sha256": "e9b12f4a02913e67a3cbf12072175a1a060a6e4adbf66e053b79b907753c2ae9"
+ },
+ {
+ "path": "diagnostics/constructor-metadata-profile-1-inputs/PhaseQuote.lean.gz",
+ "bytes": 10382,
+ "sha256": "ca6d2c1ffc572b17812c1d0b945be2bc5db867ad592af0c930c9c4350dacb8bd",
+ "uncompressed_sha256": "eefb981953efb6d88c474713bb52f8d2884cfc85c4c18ba18e0bdb73e9e388b8"
+ },
+ {
+ "path": "diagnostics/constructor-metadata-profile-1.csv.gz",
+ "bytes": 2908,
+ "sha256": "9c8be6b4b0bd7027d78a528a770524d03cdace511de0e433f4844efaba53571a",
+ "uncompressed_sha256": "ba56c005b74898a4bb1f77608f1de3675c0afb139452b8a61070adec7ace1852"
+ },
+ {
+ "path": "diagnostics/constructor-metadata-profile-1.log.gz",
+ "bytes": 7201,
+ "sha256": "51755480952d20c28f808d9e1b7d3cdc63dcd629327c64b36c1d60c3a7574a3d",
+ "uncompressed_sha256": "573e177e87f229bfefcc61b0b2896da796aa07c0e57e69a98fac08e69caf8b0a"
+ },
+ {
+ "path": "diagnostics/fresh-staged-1-inputs/CellOperations.lean.gz",
+ "bytes": 4424,
+ "sha256": "d058e64b40e2b36127e86237bf4a99068375104481bea5ce88da429d5c2e5ca5",
+ "uncompressed_sha256": "94f7e67bd4db9be6b7feaae7de87fd2ac02830b7d0268945cd7aa8653cab25b8"
+ },
+ {
+ "path": "diagnostics/fresh-staged-1-inputs/CellQuote.lean.gz",
+ "bytes": 3987,
+ "sha256": "b91c74a345ae00975b1632225bea384a8b69825b3f16266ad050a1395defefe3",
+ "uncompressed_sha256": "4b61e02af907b142cbaf8a513ba184a9dc300dacf20a024e88570612960d8020"
+ },
+ {
+ "path": "diagnostics/fresh-staged-1-inputs/FreshStaged.lean.gz",
+ "bytes": 3527,
+ "sha256": "264be4b32e4749c8d2fe6a80000abd9624569930039446a1464f0a704987270a",
+ "uncompressed_sha256": "c69ef083a7e4d6ef35ee98fcc217070827eb18141207a5a8ad72f3f52b8dde48"
+ },
+ {
+ "path": "diagnostics/fresh-staged-1-inputs/FreshStagedAudit.lean.gz",
+ "bytes": 1410,
+ "sha256": "bf23d700a53ac28484eff885f8f720779364901bb325c2d3e634ef1eed693687",
+ "uncompressed_sha256": "e52a806d6d3d670788a10626f4431c20e983796c5228dcdeb00c95ebd3df3d91"
+ },
+ {
+ "path": "diagnostics/fresh-staged-1-progress.log.gz",
+ "bytes": 236,
+ "sha256": "9ccfac195082b18add3755f623a5f9ea0b9c8c632a987cec857a8214f51c6e85",
+ "uncompressed_sha256": "02b7948346bda7df130261aee5f935d130732969630c73d33230f85d4482edc1"
+ },
+ {
+ "path": "diagnostics/fresh-staged-1.log.gz",
+ "bytes": 7801,
+ "sha256": "9a9cdb8803fbb3b26383ddd53d3af2a6bfca85e39a642d438d2734b1b9bdad27",
+ "uncompressed_sha256": "742c12928fbffed0b4d65e806129c612abb756953fc246dbbb37e1328f6e1303"
+ },
+ {
+ "path": "diagnostics/fresh-staged-2-inputs/CellOperations.lean.gz",
+ "bytes": 4424,
+ "sha256": "ac63525a55dd0604490367315114affcef96ffda8a110f95aac81c5f2aa091f3",
+ "uncompressed_sha256": "a7de11691787eb489590856bc6f3254b844acf0588f26b13b5744406aa974b29"
+ },
+ {
+ "path": "diagnostics/fresh-staged-2-inputs/CellQuote.lean.gz",
+ "bytes": 4044,
+ "sha256": "889c2e906388d294e77d9336e8378d9f74c347e16551a5d1ed9732f70f17563a",
+ "uncompressed_sha256": "c366731177878baf2c8e44ea11d9558bd7e19f743230d90944ed3cd20521d55f"
+ },
+ {
+ "path": "diagnostics/fresh-staged-2-inputs/FreshStaged.lean.gz",
+ "bytes": 3527,
+ "sha256": "264be4b32e4749c8d2fe6a80000abd9624569930039446a1464f0a704987270a",
+ "uncompressed_sha256": "c69ef083a7e4d6ef35ee98fcc217070827eb18141207a5a8ad72f3f52b8dde48"
+ },
+ {
+ "path": "diagnostics/fresh-staged-2-inputs/FreshStagedAudit.lean.gz",
+ "bytes": 1410,
+ "sha256": "bf23d700a53ac28484eff885f8f720779364901bb325c2d3e634ef1eed693687",
+ "uncompressed_sha256": "e52a806d6d3d670788a10626f4431c20e983796c5228dcdeb00c95ebd3df3d91"
+ },
+ {
+ "path": "diagnostics/fresh-staged-2-inputs/RootQuote.lean.gz",
+ "bytes": 10171,
+ "sha256": "5c4bc4c474b802d209c0fe69d517021463d82b4c692cd43a49b889da3f46a5d1",
+ "uncompressed_sha256": "21351a1e3d957119551eae4b9b5838c0e5b5a28ae0aa5d1635613d7a07d4e7b3"
+ },
+ {
+ "path": "diagnostics/fresh-staged-2-inputs.json.gz",
+ "bytes": 425,
+ "sha256": "f0d5bab436ed828760f704d43d7d2bf20bd24d951ad4046722e221156bdd68e4",
+ "uncompressed_sha256": "6103a8c9b1a829e8f0c14a2132ed8acc755db1c0f87ae3c6434cf49a4084f91d"
+ },
+ {
+ "path": "diagnostics/fresh-staged-2-progress.log.gz",
+ "bytes": 1846,
+ "sha256": "3ba14181287cb92987e66f0b038254261c5e27f932a5f8576834189d8b537777",
+ "uncompressed_sha256": "913b9dc5b367146d1d231e1849b1737780a7651c59bacaf495a11165ccf7bc0c"
+ },
+ {
+ "path": "diagnostics/fresh-staged-2.log.gz",
+ "bytes": 7821,
+ "sha256": "9cdbe521ddfc7b8c483b6cbca30f285547203f3c96b048a6bdbb258158a5cdc0",
+ "uncompressed_sha256": "aa83261ef996e888d8f8d466341b41c78549f346cedfd4ab217fa9abfd8ed634"
+ },
+ {
+ "path": "diagnostics/row-boundary-probe-1-inputs/BoundaryCellQuote.lean.gz",
+ "bytes": 4440,
+ "sha256": "17cdb6e5d67ef79944b8c7296f07ddadc8578599f78cac1111844144a2c9a961",
+ "uncompressed_sha256": "43fb684626e886a2042c845d2e54228479e9c8878a625a97787bb73b4c97adf1"
+ },
+ {
+ "path": "diagnostics/row-boundary-probe-1-inputs/RowBoundaryProbe.lean.gz",
+ "bytes": 819,
+ "sha256": "4ff3c09de2f1a406a06de667293d39655c11be047895430d5f59be09bf31cbb2",
+ "uncompressed_sha256": "0d38ea6c9ebc2f6aff4f792344fddf9be4edec63906040d2d00e58ec4e529a05"
+ },
+ {
+ "path": "diagnostics/row-boundary-probe-1.log.gz",
+ "bytes": 7117,
+ "sha256": "6fc523102e55aa1dea896c4253efda7f8d61b491f245dc4a5114d73b358a5a91",
+ "uncompressed_sha256": "2ea8de91a813b3b3eea00caef14e9cdea01a278ab5f45cb55edbd947204d3622"
+ }
+ ],
+ "validation": {
+ "integration": "validation/cell-pointwise-expanded-3.log.gz",
+ "controls": "validation/cell-pointwise-quadratic-6.log.gz",
+ "audit": "validation/cell-pointwise-audit-5.log.gz",
+ "repairs": "validation/cell-pointwise-repaired-2.log.gz",
+ "recursive": "validation/cell-recursive-repaired-1.log.gz",
+ "render": "validation/cell-quotation-render-2.log.gz",
+ "browser": "validation/cell-quotation-browser-2.log.gz"
+ },
+ "unchanged_guards": [
+ "conformance/HexRCF/SelectedRoot/KernelCheck.lean",
+ "experiments/KernelReplay/AxiomClosure.lean",
+ "AGENTS.md",
+ "PLAN.md",
+ ".github/workflows/ci.yml"
+ ],
+ "compiled_files": [
+ {
+ "path": ".lake/build/lib/lean/HexRCF/CellQuoteStages.olean",
+ "bytes": 4598520,
+ "sha256": "25e0e26b2ff6fc61e29448836828acc584825f848d1df446b2be3a12cdd717d9"
+ },
+ {
+ "path": ".lake/build/lib/lean/HexRCF/CellQuoteStageProofs.olean",
+ "bytes": 3352,
+ "sha256": "870bb8e74a7bf7af63a11674745ea695466c76be237698052a6f2844d98452a7"
+ },
+ {
+ "path": ".lake/build/lib/lean/HexRCF/ReplayHelperProofs.olean",
+ "bytes": 3352,
+ "sha256": "bc7eac74acff328f37c6897470b950fe91a99cba4886b03e99789c96dfeea280"
+ },
+ {
+ "path": ".lake/build/lib/lean/HexRCF/RecursiveScalarProofs.olean",
+ "bytes": 3384,
+ "sha256": "1220a5453e127def54a309379fa6d09334532965b8a97d40553f3054e2bce3e9"
+ }
+ ],
+ "constant_source_accepted": true,
+ "rational_quadratic_packet_accepted": true,
+ "algebraic_original_source_accepted": false,
+ "scope": "Pointwise complete frozen cell quotation, original constant source, two-root rational packet, full37 affected targets/manual and18 actually viewed final captures.",
+ "limits": "Fixed inputs only. Full algebraic original-source acceptance and generic source/history assembly remain unproved here. No compiled replay timing, scaling, matched speedup, practical general cost or physical-sharing claim. Failed attempts and task-only diagnostic inputs retain their own versions. Older records keep their pins."
+}
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-collect-equation-1.log.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-collect-equation-1.log.gz
new file mode 100644
index 0000000000..ef8b17c18c
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-collect-equation-1.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-finite-family-core-1.log.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-finite-family-core-1.log.gz
new file mode 100644
index 0000000000..c7990eea2b
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-finite-family-core-1.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-helper-cost-probes-1-inputs.json.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-helper-cost-probes-1-inputs.json.gz
new file mode 100644
index 0000000000..97a7f72ebf
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-helper-cost-probes-1-inputs.json.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-helper-cost-probes-1-inputs/HelperCostProbe.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-helper-cost-probes-1-inputs/HelperCostProbe.lean.gz
new file mode 100644
index 0000000000..0bbd5d5890
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-helper-cost-probes-1-inputs/HelperCostProbe.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-helper-cost-probes-1-inputs/SignPacketCostProbe.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-helper-cost-probes-1-inputs/SignPacketCostProbe.lean.gz
new file mode 100644
index 0000000000..f0bc13cbdd
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-helper-cost-probes-1-inputs/SignPacketCostProbe.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-helper-cost-probes-1.log.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-helper-cost-probes-1.log.gz
new file mode 100644
index 0000000000..86416ae70e
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-helper-cost-probes-1.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-parts-rows-equation-1.log.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-parts-rows-equation-1.log.gz
new file mode 100644
index 0000000000..a1e7512913
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-parts-rows-equation-1.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-parts-rows-equation-2.log.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-parts-rows-equation-2.log.gz
new file mode 100644
index 0000000000..6572db9a8d
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-parts-rows-equation-2.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-audit-1.log.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-audit-1.log.gz
new file mode 100644
index 0000000000..c947072098
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-audit-1.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-audit-2.log.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-audit-2.log.gz
new file mode 100644
index 0000000000..c67b35e43d
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-audit-2.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-audit-3.log.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-audit-3.log.gz
new file mode 100644
index 0000000000..7f40dbc26b
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-audit-3.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-audit-4.log.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-audit-4.log.gz
new file mode 100644
index 0000000000..ade1eb2e37
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-audit-4.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-audit-5.log.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-audit-5.log.gz
new file mode 100644
index 0000000000..003b735c5f
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-audit-5.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-controls-1-inputs/CellOperations.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-controls-1-inputs/CellOperations.lean.gz
new file mode 100644
index 0000000000..ce413e143c
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-controls-1-inputs/CellOperations.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-controls-1-inputs/CellQuote.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-controls-1-inputs/CellQuote.lean.gz
new file mode 100644
index 0000000000..e7f44f88aa
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-controls-1-inputs/CellQuote.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-controls-1-inputs/CellQuoteStageProofs.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-controls-1-inputs/CellQuoteStageProofs.lean.gz
new file mode 100644
index 0000000000..761335d704
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-controls-1-inputs/CellQuoteStageProofs.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-controls-1-inputs/CellQuoteStages.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-controls-1-inputs/CellQuoteStages.lean.gz
new file mode 100644
index 0000000000..56b89a30c7
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-controls-1-inputs/CellQuoteStages.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-controls-1-inputs/CellRead.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-controls-1-inputs/CellRead.lean.gz
new file mode 100644
index 0000000000..b4e6738c73
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-controls-1-inputs/CellRead.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-controls-1-inputs/RootQuote.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-controls-1-inputs/RootQuote.lean.gz
new file mode 100644
index 0000000000..3f862b815a
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-controls-1-inputs/RootQuote.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-controls-1.log.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-controls-1.log.gz
new file mode 100644
index 0000000000..457d10a428
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-controls-1.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-controls-2.log.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-controls-2.log.gz
new file mode 100644
index 0000000000..7cbc4aad41
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-controls-2.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-controls-3.log.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-controls-3.log.gz
new file mode 100644
index 0000000000..4236fe9129
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-controls-3.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-core-1.log.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-core-1.log.gz
new file mode 100644
index 0000000000..a096ebf018
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-core-1.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-core-2.log.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-core-2.log.gz
new file mode 100644
index 0000000000..fffd6ebcf8
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-core-2.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-core-3.log.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-core-3.log.gz
new file mode 100644
index 0000000000..5feebe0b4d
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-core-3.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-core-4.log.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-core-4.log.gz
new file mode 100644
index 0000000000..56eb1b79dd
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-core-4.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-expanded-1-failed-inputs.json.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-expanded-1-failed-inputs.json.gz
new file mode 100644
index 0000000000..2463df0cf4
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-expanded-1-failed-inputs.json.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-expanded-1-failed-inputs/conformance/HexRCF/ReplayBoundary.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-expanded-1-failed-inputs/conformance/HexRCF/ReplayBoundary.lean.gz
new file mode 100644
index 0000000000..d3cdfdec4d
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-expanded-1-failed-inputs/conformance/HexRCF/ReplayBoundary.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-expanded-1-failed-inputs/conformance/HexRCF/ReplayHelpers.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-expanded-1-failed-inputs/conformance/HexRCF/ReplayHelpers.lean.gz
new file mode 100644
index 0000000000..5fc3afcc86
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-expanded-1-failed-inputs/conformance/HexRCF/ReplayHelpers.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-expanded-1-failed-inputs/conformance/HexRCF/RootHeaderPacket.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-expanded-1-failed-inputs/conformance/HexRCF/RootHeaderPacket.lean.gz
new file mode 100644
index 0000000000..b9f34731b3
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-expanded-1-failed-inputs/conformance/HexRCF/RootHeaderPacket.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-expanded-1-failed-inputs/conformance/HexRCF/SharedQuoteCallbacks.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-expanded-1-failed-inputs/conformance/HexRCF/SharedQuoteCallbacks.lean.gz
new file mode 100644
index 0000000000..2b4853e182
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-expanded-1-failed-inputs/conformance/HexRCF/SharedQuoteCallbacks.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-expanded-1-failed-inputs/conformance/HexRCF/SignPacketQuote.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-expanded-1-failed-inputs/conformance/HexRCF/SignPacketQuote.lean.gz
new file mode 100644
index 0000000000..58b0da6f29
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-expanded-1-failed-inputs/conformance/HexRCF/SignPacketQuote.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-expanded-1-failed-inputs/conformance/HexRCF/TreeQuote.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-expanded-1-failed-inputs/conformance/HexRCF/TreeQuote.lean.gz
new file mode 100644
index 0000000000..b20dbc7cfc
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-expanded-1-failed-inputs/conformance/HexRCF/TreeQuote.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-expanded-1.log.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-expanded-1.log.gz
new file mode 100644
index 0000000000..3bcfcc5346
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-expanded-1.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-expanded-2-failed-inputs.json.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-expanded-2-failed-inputs.json.gz
new file mode 100644
index 0000000000..15e56fbab7
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-expanded-2-failed-inputs.json.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-expanded-2-failed-inputs/conformance/HexRCF/RecursiveScalarQuote.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-expanded-2-failed-inputs/conformance/HexRCF/RecursiveScalarQuote.lean.gz
new file mode 100644
index 0000000000..afa0b4faa6
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-expanded-2-failed-inputs/conformance/HexRCF/RecursiveScalarQuote.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-expanded-2.log.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-expanded-2.log.gz
new file mode 100644
index 0000000000..342d7f96d0
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-expanded-2.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-expanded-3.log.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-expanded-3.log.gz
new file mode 100644
index 0000000000..bb47c5d378
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-expanded-3.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-expanded-targets.txt.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-expanded-targets.txt.gz
new file mode 100644
index 0000000000..5bde5e4589
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-expanded-targets.txt.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-final-metadata-admissions.log.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-final-metadata-admissions.log.gz
new file mode 100644
index 0000000000..e1a79928fb
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-final-metadata-admissions.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-final-metadata-copyright.log.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-final-metadata-copyright.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-final-metadata-copyright.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-final-metadata-dag.log.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-final-metadata-dag.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-final-metadata-dag.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-final-metadata-diff.log.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-final-metadata-diff.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-final-metadata-diff.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-final-metadata-lines.log.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-final-metadata-lines.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-final-metadata-lines.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-final-metadata-relative.log.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-final-metadata-relative.log.gz
new file mode 100644
index 0000000000..154780e0b7
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-final-metadata-relative.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-final-metadata-selected-admissions.log.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-final-metadata-selected-admissions.log.gz
new file mode 100644
index 0000000000..3ac54cac40
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-final-metadata-selected-admissions.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-final-metadata.json.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-final-metadata.json.gz
new file mode 100644
index 0000000000..b4c6734e54
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-final-metadata.json.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-main-stash.txt.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-main-stash.txt.gz
new file mode 100644
index 0000000000..0008a72131
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-main-stash.txt.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-1.log.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-1.log.gz
new file mode 100644
index 0000000000..8d7dbe6176
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-1.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-2-inputs.json.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-2-inputs.json.gz
new file mode 100644
index 0000000000..48b703b359
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-2-inputs.json.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-2-inputs/HexManual/Chapters/HexRCF/AlgebraicCells.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-2-inputs/HexManual/Chapters/HexRCF/AlgebraicCells.lean.gz
new file mode 100644
index 0000000000..3f1c88d522
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-2-inputs/HexManual/Chapters/HexRCF/AlgebraicCells.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-2-inputs/HexManual/Chapters/HexRCF/RootQuote.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-2-inputs/HexManual/Chapters/HexRCF/RootQuote.lean.gz
new file mode 100644
index 0000000000..9cf948386d
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-2-inputs/HexManual/Chapters/HexRCF/RootQuote.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-2-inputs/adapters/HexRCF/RealCoefficients/CellOperations.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-2-inputs/adapters/HexRCF/RealCoefficients/CellOperations.lean.gz
new file mode 100644
index 0000000000..ce413e143c
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-2-inputs/adapters/HexRCF/RealCoefficients/CellOperations.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-2-inputs/adapters/HexRCF/RealCoefficients/CellQuote.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-2-inputs/adapters/HexRCF/RealCoefficients/CellQuote.lean.gz
new file mode 100644
index 0000000000..80a3cb772f
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-2-inputs/adapters/HexRCF/RealCoefficients/CellQuote.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-2-inputs/adapters/HexRCF/RealCoefficients/CellRead.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-2-inputs/adapters/HexRCF/RealCoefficients/CellRead.lean.gz
new file mode 100644
index 0000000000..b4e6738c73
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-2-inputs/adapters/HexRCF/RealCoefficients/CellRead.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-2-inputs/adapters/HexRCF/RealCoefficients/RootQuote.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-2-inputs/adapters/HexRCF/RealCoefficients/RootQuote.lean.gz
new file mode 100644
index 0000000000..3f862b815a
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-2-inputs/adapters/HexRCF/RealCoefficients/RootQuote.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-2-inputs/conformance/HexRCF/CellQuoteStageProofs.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-2-inputs/conformance/HexRCF/CellQuoteStageProofs.lean.gz
new file mode 100644
index 0000000000..0bbb511e80
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-2-inputs/conformance/HexRCF/CellQuoteStageProofs.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-2-inputs/conformance/HexRCF/CellQuoteStages.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-2-inputs/conformance/HexRCF/CellQuoteStages.lean.gz
new file mode 100644
index 0000000000..665ca3a174
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-2-inputs/conformance/HexRCF/CellQuoteStages.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-2-inputs/lakefile.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-2-inputs/lakefile.lean.gz
new file mode 100644
index 0000000000..02b95fd916
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-2-inputs/lakefile.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-2.log.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-2.log.gz
new file mode 100644
index 0000000000..5ce8199c65
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-2.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-3-inputs.json.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-3-inputs.json.gz
new file mode 100644
index 0000000000..de28974c98
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-3-inputs.json.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-3-inputs/HexManual/Chapters/HexRCF/AlgebraicCells.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-3-inputs/HexManual/Chapters/HexRCF/AlgebraicCells.lean.gz
new file mode 100644
index 0000000000..3f1c88d522
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-3-inputs/HexManual/Chapters/HexRCF/AlgebraicCells.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-3-inputs/HexManual/Chapters/HexRCF/RootQuote.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-3-inputs/HexManual/Chapters/HexRCF/RootQuote.lean.gz
new file mode 100644
index 0000000000..9cf948386d
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-3-inputs/HexManual/Chapters/HexRCF/RootQuote.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-3-inputs/adapters/HexRCF/RealCoefficients/CellOperations.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-3-inputs/adapters/HexRCF/RealCoefficients/CellOperations.lean.gz
new file mode 100644
index 0000000000..ce413e143c
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-3-inputs/adapters/HexRCF/RealCoefficients/CellOperations.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-3-inputs/adapters/HexRCF/RealCoefficients/CellQuote.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-3-inputs/adapters/HexRCF/RealCoefficients/CellQuote.lean.gz
new file mode 100644
index 0000000000..80a3cb772f
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-3-inputs/adapters/HexRCF/RealCoefficients/CellQuote.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-3-inputs/adapters/HexRCF/RealCoefficients/CellRead.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-3-inputs/adapters/HexRCF/RealCoefficients/CellRead.lean.gz
new file mode 100644
index 0000000000..b4e6738c73
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-3-inputs/adapters/HexRCF/RealCoefficients/CellRead.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-3-inputs/adapters/HexRCF/RealCoefficients/RootQuote.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-3-inputs/adapters/HexRCF/RealCoefficients/RootQuote.lean.gz
new file mode 100644
index 0000000000..3f862b815a
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-3-inputs/adapters/HexRCF/RealCoefficients/RootQuote.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-3-inputs/conformance/HexRCF/CellQuoteStageProofs.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-3-inputs/conformance/HexRCF/CellQuoteStageProofs.lean.gz
new file mode 100644
index 0000000000..15e0d2eb3a
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-3-inputs/conformance/HexRCF/CellQuoteStageProofs.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-3-inputs/conformance/HexRCF/CellQuoteStages.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-3-inputs/conformance/HexRCF/CellQuoteStages.lean.gz
new file mode 100644
index 0000000000..f1e2edb912
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-3-inputs/conformance/HexRCF/CellQuoteStages.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-3-inputs/lakefile.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-3-inputs/lakefile.lean.gz
new file mode 100644
index 0000000000..02b95fd916
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-3-inputs/lakefile.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-3.log.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-3.log.gz
new file mode 100644
index 0000000000..778678ac48
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-3.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-4-inputs.json.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-4-inputs.json.gz
new file mode 100644
index 0000000000..50791bb47a
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-4-inputs.json.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-4-inputs/HexManual/Chapters/HexRCF/AlgebraicCells.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-4-inputs/HexManual/Chapters/HexRCF/AlgebraicCells.lean.gz
new file mode 100644
index 0000000000..3f1c88d522
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-4-inputs/HexManual/Chapters/HexRCF/AlgebraicCells.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-4-inputs/HexManual/Chapters/HexRCF/RootQuote.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-4-inputs/HexManual/Chapters/HexRCF/RootQuote.lean.gz
new file mode 100644
index 0000000000..9cf948386d
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-4-inputs/HexManual/Chapters/HexRCF/RootQuote.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-4-inputs/adapters/HexRCF/RealCoefficients/CellOperations.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-4-inputs/adapters/HexRCF/RealCoefficients/CellOperations.lean.gz
new file mode 100644
index 0000000000..ce413e143c
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-4-inputs/adapters/HexRCF/RealCoefficients/CellOperations.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-4-inputs/adapters/HexRCF/RealCoefficients/CellQuote.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-4-inputs/adapters/HexRCF/RealCoefficients/CellQuote.lean.gz
new file mode 100644
index 0000000000..80a3cb772f
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-4-inputs/adapters/HexRCF/RealCoefficients/CellQuote.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-4-inputs/adapters/HexRCF/RealCoefficients/CellRead.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-4-inputs/adapters/HexRCF/RealCoefficients/CellRead.lean.gz
new file mode 100644
index 0000000000..b4e6738c73
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-4-inputs/adapters/HexRCF/RealCoefficients/CellRead.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-4-inputs/adapters/HexRCF/RealCoefficients/RootQuote.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-4-inputs/adapters/HexRCF/RealCoefficients/RootQuote.lean.gz
new file mode 100644
index 0000000000..3f862b815a
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-4-inputs/adapters/HexRCF/RealCoefficients/RootQuote.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-4-inputs/conformance/HexRCF/CellQuoteStageProofs.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-4-inputs/conformance/HexRCF/CellQuoteStageProofs.lean.gz
new file mode 100644
index 0000000000..0d88c50018
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-4-inputs/conformance/HexRCF/CellQuoteStageProofs.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-4-inputs/conformance/HexRCF/CellQuoteStages.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-4-inputs/conformance/HexRCF/CellQuoteStages.lean.gz
new file mode 100644
index 0000000000..1aff03eed8
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-4-inputs/conformance/HexRCF/CellQuoteStages.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-4-inputs/lakefile.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-4-inputs/lakefile.lean.gz
new file mode 100644
index 0000000000..02b95fd916
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-4-inputs/lakefile.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-4.log.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-4.log.gz
new file mode 100644
index 0000000000..f5ab147952
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-4.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-5-inputs.json.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-5-inputs.json.gz
new file mode 100644
index 0000000000..fb60c7f2c6
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-5-inputs.json.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-5-inputs/HexManual/Chapters/HexRCF/AlgebraicCells.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-5-inputs/HexManual/Chapters/HexRCF/AlgebraicCells.lean.gz
new file mode 100644
index 0000000000..3f1c88d522
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-5-inputs/HexManual/Chapters/HexRCF/AlgebraicCells.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-5-inputs/HexManual/Chapters/HexRCF/RootQuote.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-5-inputs/HexManual/Chapters/HexRCF/RootQuote.lean.gz
new file mode 100644
index 0000000000..9cf948386d
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-5-inputs/HexManual/Chapters/HexRCF/RootQuote.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-5-inputs/adapters/HexRCF/RealCoefficients/CellOperations.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-5-inputs/adapters/HexRCF/RealCoefficients/CellOperations.lean.gz
new file mode 100644
index 0000000000..ce413e143c
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-5-inputs/adapters/HexRCF/RealCoefficients/CellOperations.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-5-inputs/adapters/HexRCF/RealCoefficients/CellQuote.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-5-inputs/adapters/HexRCF/RealCoefficients/CellQuote.lean.gz
new file mode 100644
index 0000000000..80a3cb772f
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-5-inputs/adapters/HexRCF/RealCoefficients/CellQuote.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-5-inputs/adapters/HexRCF/RealCoefficients/CellRead.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-5-inputs/adapters/HexRCF/RealCoefficients/CellRead.lean.gz
new file mode 100644
index 0000000000..b4e6738c73
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-5-inputs/adapters/HexRCF/RealCoefficients/CellRead.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-5-inputs/adapters/HexRCF/RealCoefficients/RootQuote.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-5-inputs/adapters/HexRCF/RealCoefficients/RootQuote.lean.gz
new file mode 100644
index 0000000000..3f862b815a
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-5-inputs/adapters/HexRCF/RealCoefficients/RootQuote.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-5-inputs/conformance/HexRCF/CellQuoteStageProofs.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-5-inputs/conformance/HexRCF/CellQuoteStageProofs.lean.gz
new file mode 100644
index 0000000000..e3b779bab3
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-5-inputs/conformance/HexRCF/CellQuoteStageProofs.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-5-inputs/conformance/HexRCF/CellQuoteStages.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-5-inputs/conformance/HexRCF/CellQuoteStages.lean.gz
new file mode 100644
index 0000000000..a39091c0b0
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-5-inputs/conformance/HexRCF/CellQuoteStages.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-5-inputs/lakefile.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-5-inputs/lakefile.lean.gz
new file mode 100644
index 0000000000..02b95fd916
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-5-inputs/lakefile.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-5.log.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-5.log.gz
new file mode 100644
index 0000000000..7fb619c63f
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-5.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-6-inputs.json.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-6-inputs.json.gz
new file mode 100644
index 0000000000..e8085beff3
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-6-inputs.json.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-6-inputs/HexManual/Chapters/HexRCF/AlgebraicCells.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-6-inputs/HexManual/Chapters/HexRCF/AlgebraicCells.lean.gz
new file mode 100644
index 0000000000..3f1c88d522
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-6-inputs/HexManual/Chapters/HexRCF/AlgebraicCells.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-6-inputs/HexManual/Chapters/HexRCF/RootQuote.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-6-inputs/HexManual/Chapters/HexRCF/RootQuote.lean.gz
new file mode 100644
index 0000000000..9cf948386d
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-6-inputs/HexManual/Chapters/HexRCF/RootQuote.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-6-inputs/adapters/HexRCF/RealCoefficients/CellOperations.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-6-inputs/adapters/HexRCF/RealCoefficients/CellOperations.lean.gz
new file mode 100644
index 0000000000..ce413e143c
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-6-inputs/adapters/HexRCF/RealCoefficients/CellOperations.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-6-inputs/adapters/HexRCF/RealCoefficients/CellQuote.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-6-inputs/adapters/HexRCF/RealCoefficients/CellQuote.lean.gz
new file mode 100644
index 0000000000..f7d1e4d407
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-6-inputs/adapters/HexRCF/RealCoefficients/CellQuote.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-6-inputs/adapters/HexRCF/RealCoefficients/CellRead.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-6-inputs/adapters/HexRCF/RealCoefficients/CellRead.lean.gz
new file mode 100644
index 0000000000..b4e6738c73
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-6-inputs/adapters/HexRCF/RealCoefficients/CellRead.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-6-inputs/adapters/HexRCF/RealCoefficients/RootQuote.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-6-inputs/adapters/HexRCF/RealCoefficients/RootQuote.lean.gz
new file mode 100644
index 0000000000..3f862b815a
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-6-inputs/adapters/HexRCF/RealCoefficients/RootQuote.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-6-inputs/conformance/HexRCF/CellQuoteStageProofs.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-6-inputs/conformance/HexRCF/CellQuoteStageProofs.lean.gz
new file mode 100644
index 0000000000..e3b779bab3
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-6-inputs/conformance/HexRCF/CellQuoteStageProofs.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-6-inputs/conformance/HexRCF/CellQuoteStages.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-6-inputs/conformance/HexRCF/CellQuoteStages.lean.gz
new file mode 100644
index 0000000000..d6ec2a7225
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-6-inputs/conformance/HexRCF/CellQuoteStages.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-6-inputs/lakefile.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-6-inputs/lakefile.lean.gz
new file mode 100644
index 0000000000..02b95fd916
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-6-inputs/lakefile.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-6.log.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-6.log.gz
new file mode 100644
index 0000000000..b9ec6f265e
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-quadratic-6.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-repaired-1-failed-inputs.json.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-repaired-1-failed-inputs.json.gz
new file mode 100644
index 0000000000..64d8f07a69
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-repaired-1-failed-inputs.json.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-repaired-1-failed-inputs/conformance/HexRCF/SharedQuoteCallbacks.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-repaired-1-failed-inputs/conformance/HexRCF/SharedQuoteCallbacks.lean.gz
new file mode 100644
index 0000000000..eb238666a7
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-repaired-1-failed-inputs/conformance/HexRCF/SharedQuoteCallbacks.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-repaired-1.log.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-repaired-1.log.gz
new file mode 100644
index 0000000000..31166c1b56
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-repaired-1.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-repaired-2.log.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-repaired-2.log.gz
new file mode 100644
index 0000000000..4ff65367a8
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-repaired-2.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-stage-profile-1-inputs.json.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-stage-profile-1-inputs.json.gz
new file mode 100644
index 0000000000..dc67a0c29f
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-stage-profile-1-inputs.json.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-stage-profile-1-inputs/CellPointwiseProfile.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-stage-profile-1-inputs/CellPointwiseProfile.lean.gz
new file mode 100644
index 0000000000..6ed292619d
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-stage-profile-1-inputs/CellPointwiseProfile.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-stage-profile-1-inputs/PhaseCellPointwise.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-stage-profile-1-inputs/PhaseCellPointwise.lean.gz
new file mode 100644
index 0000000000..46d3bb5cba
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-stage-profile-1-inputs/PhaseCellPointwise.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-stage-profile-1-progress.log.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-stage-profile-1-progress.log.gz
new file mode 100644
index 0000000000..56a30cc7dd
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-stage-profile-1-progress.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-stage-profile-1.log.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-stage-profile-1.log.gz
new file mode 100644
index 0000000000..e5d283a20c
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-stage-profile-1.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-stage-profile-2-inputs.json.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-stage-profile-2-inputs.json.gz
new file mode 100644
index 0000000000..614cd7b88f
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-stage-profile-2-inputs.json.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-stage-profile-2-inputs/CellPointwiseProfile.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-stage-profile-2-inputs/CellPointwiseProfile.lean.gz
new file mode 100644
index 0000000000..9b548f0fb6
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-stage-profile-2-inputs/CellPointwiseProfile.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-stage-profile-2-inputs/PhaseCellPointwise.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-stage-profile-2-inputs/PhaseCellPointwise.lean.gz
new file mode 100644
index 0000000000..46d3bb5cba
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-stage-profile-2-inputs/PhaseCellPointwise.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-stage-profile-2-progress.log.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-stage-profile-2-progress.log.gz
new file mode 100644
index 0000000000..e73cfdddb8
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-stage-profile-2-progress.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-stage-profile-2.log.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-stage-profile-2.log.gz
new file mode 100644
index 0000000000..cfad65f3ba
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-stage-profile-2.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-trace-core-1.log.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-trace-core-1.log.gz
new file mode 100644
index 0000000000..f55cb48123
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-pointwise-trace-core-1.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-quotation-browser-1.log.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-quotation-browser-1.log.gz
new file mode 100644
index 0000000000..907b0abccd
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-quotation-browser-1.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-quotation-render-1.log.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-quotation-render-1.log.gz
new file mode 100644
index 0000000000..4be2534873
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-quotation-render-1.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-recursive-cost-probe-1-inputs.json.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-recursive-cost-probe-1-inputs.json.gz
new file mode 100644
index 0000000000..06ea4d298f
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-recursive-cost-probe-1-inputs.json.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-recursive-cost-probe-1-inputs/RecursiveCostProbe.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-recursive-cost-probe-1-inputs/RecursiveCostProbe.lean.gz
new file mode 100644
index 0000000000..62f3ac582d
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-recursive-cost-probe-1-inputs/RecursiveCostProbe.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-recursive-cost-probe-1.log.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-recursive-cost-probe-1.log.gz
new file mode 100644
index 0000000000..05629fa87d
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-recursive-cost-probe-1.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-recursive-repaired-1.log.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-recursive-repaired-1.log.gz
new file mode 100644
index 0000000000..08799b8531
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-recursive-repaired-1.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-audit-1-inputs/CellOperations.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-audit-1-inputs/CellOperations.lean.gz
new file mode 100644
index 0000000000..4e32aa1cf3
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-audit-1-inputs/CellOperations.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-audit-1-inputs/CellQuote.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-audit-1-inputs/CellQuote.lean.gz
new file mode 100644
index 0000000000..5849ec80ed
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-audit-1-inputs/CellQuote.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-audit-1-inputs/CellQuoteStageProofs.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-audit-1-inputs/CellQuoteStageProofs.lean.gz
new file mode 100644
index 0000000000..19e4f4a15f
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-audit-1-inputs/CellQuoteStageProofs.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-audit-1-inputs/CellQuoteStages.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-audit-1-inputs/CellQuoteStages.lean.gz
new file mode 100644
index 0000000000..6de37f0fa9
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-audit-1-inputs/CellQuoteStages.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-audit-1-inputs/RootQuote.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-audit-1-inputs/RootQuote.lean.gz
new file mode 100644
index 0000000000..1a723e1d6d
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-audit-1-inputs/RootQuote.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-audit-1-inputs/lakefile.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-audit-1-inputs/lakefile.lean.gz
new file mode 100644
index 0000000000..02b95fd916
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-audit-1-inputs/lakefile.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-audit-1.log.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-audit-1.log.gz
new file mode 100644
index 0000000000..ac1e7341ac
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-audit-1.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-audit-2.log.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-audit-2.log.gz
new file mode 100644
index 0000000000..fc8a795d13
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-audit-2.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-audit-3.log.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-audit-3.log.gz
new file mode 100644
index 0000000000..95c686e7a9
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-audit-3.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-clean-core-1.log.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-clean-core-1.log.gz
new file mode 100644
index 0000000000..a8c98c7496
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-clean-core-1.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-conformance-1.log.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-conformance-1.log.gz
new file mode 100644
index 0000000000..2f409b6f1e
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-conformance-1.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-conformance-2-inputs/CellOperations.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-conformance-2-inputs/CellOperations.lean.gz
new file mode 100644
index 0000000000..4e32aa1cf3
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-conformance-2-inputs/CellOperations.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-conformance-2-inputs/CellQuote.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-conformance-2-inputs/CellQuote.lean.gz
new file mode 100644
index 0000000000..5849ec80ed
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-conformance-2-inputs/CellQuote.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-conformance-2-inputs/CellQuoteStages.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-conformance-2-inputs/CellQuoteStages.lean.gz
new file mode 100644
index 0000000000..6de37f0fa9
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-conformance-2-inputs/CellQuoteStages.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-conformance-2-inputs/RootQuote.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-conformance-2-inputs/RootQuote.lean.gz
new file mode 100644
index 0000000000..1a723e1d6d
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-conformance-2-inputs/RootQuote.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-conformance-2-inputs/lakefile.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-conformance-2-inputs/lakefile.lean.gz
new file mode 100644
index 0000000000..2fc9a3da85
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-conformance-2-inputs/lakefile.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-conformance-2.log.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-conformance-2.log.gz
new file mode 100644
index 0000000000..5dca7ad141
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-conformance-2.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-core-1.log.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-core-1.log.gz
new file mode 100644
index 0000000000..1e633859ae
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-core-1.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-core-2.log.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-core-2.log.gz
new file mode 100644
index 0000000000..f08635c45d
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-core-2.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-core-3.log.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-core-3.log.gz
new file mode 100644
index 0000000000..b5cfb041fd
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-core-3.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-core-4.log.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-core-4.log.gz
new file mode 100644
index 0000000000..a18193376f
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-core-4.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-final-1-inputs/AlgebraicCells.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-final-1-inputs/AlgebraicCells.lean.gz
new file mode 100644
index 0000000000..dec187add8
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-final-1-inputs/AlgebraicCells.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-final-1-inputs/CellOperations.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-final-1-inputs/CellOperations.lean.gz
new file mode 100644
index 0000000000..4e32aa1cf3
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-final-1-inputs/CellOperations.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-final-1-inputs/CellQuote.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-final-1-inputs/CellQuote.lean.gz
new file mode 100644
index 0000000000..5849ec80ed
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-final-1-inputs/CellQuote.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-final-1-inputs/CellQuoteStageProofs.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-final-1-inputs/CellQuoteStageProofs.lean.gz
new file mode 100644
index 0000000000..6e43ed1d17
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-final-1-inputs/CellQuoteStageProofs.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-final-1-inputs/CellQuoteStages.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-final-1-inputs/CellQuoteStages.lean.gz
new file mode 100644
index 0000000000..56b89a30c7
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-final-1-inputs/CellQuoteStages.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-final-1-inputs/RootQuote.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-final-1-inputs/RootQuote.lean.gz
new file mode 100644
index 0000000000..9cf948386d
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-final-1-inputs/RootQuote.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-final-1-inputs/lakefile.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-final-1-inputs/lakefile.lean.gz
new file mode 100644
index 0000000000..02b95fd916
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-final-1-inputs/lakefile.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-final-metadata-1.log.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-final-metadata-1.log.gz
new file mode 100644
index 0000000000..609e099a96
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-final-metadata-1.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-final-metadata-admissions.log.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-final-metadata-admissions.log.gz
new file mode 100644
index 0000000000..df90d604db
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-final-metadata-admissions.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-final-metadata-copyright.log.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-final-metadata-copyright.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-final-metadata-copyright.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-final-metadata-dag.log.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-final-metadata-dag.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-final-metadata-dag.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-final-metadata-diff.log.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-final-metadata-diff.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-final-metadata-diff.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-final-metadata-lines.log.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-final-metadata-lines.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-final-metadata-lines.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-final-metadata-relative.log.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-final-metadata-relative.log.gz
new file mode 100644
index 0000000000..154780e0b7
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-final-metadata-relative.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-final-metadata-selected-admissions.log.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-final-metadata-selected-admissions.log.gz
new file mode 100644
index 0000000000..8f3133342c
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-final-metadata-selected-admissions.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-final-metadata.json.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-final-metadata.json.gz
new file mode 100644
index 0000000000..89f2582b19
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-final-metadata.json.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-row-boundaries-1-inputs/CellOperations.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-row-boundaries-1-inputs/CellOperations.lean.gz
new file mode 100644
index 0000000000..4e32aa1cf3
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-row-boundaries-1-inputs/CellOperations.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-row-boundaries-1-inputs/CellQuote.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-row-boundaries-1-inputs/CellQuote.lean.gz
new file mode 100644
index 0000000000..ccd1fc6a13
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-row-boundaries-1-inputs/CellQuote.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-row-boundaries-1-inputs/CellQuoteStageProofs.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-row-boundaries-1-inputs/CellQuoteStageProofs.lean.gz
new file mode 100644
index 0000000000..6e43ed1d17
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-row-boundaries-1-inputs/CellQuoteStageProofs.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-row-boundaries-1-inputs/CellQuoteStages.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-row-boundaries-1-inputs/CellQuoteStages.lean.gz
new file mode 100644
index 0000000000..56b89a30c7
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-row-boundaries-1-inputs/CellQuoteStages.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-row-boundaries-1-inputs/RootQuote.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-row-boundaries-1-inputs/RootQuote.lean.gz
new file mode 100644
index 0000000000..3f862b815a
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-row-boundaries-1-inputs/RootQuote.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-row-boundaries-1.log.gz b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-row-boundaries-1.log.gz
new file mode 100644
index 0000000000..ed721888c7
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/cell-stages-row-boundaries-1.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/constructor-metadata-algebraic-1-inputs/ConstructorAlgebraicProfile.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/constructor-metadata-algebraic-1-inputs/ConstructorAlgebraicProfile.lean.gz
new file mode 100644
index 0000000000..3dddfb8953
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/constructor-metadata-algebraic-1-inputs/ConstructorAlgebraicProfile.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/constructor-metadata-algebraic-1-inputs/FormulaShapeProbe.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/constructor-metadata-algebraic-1-inputs/FormulaShapeProbe.lean.gz
new file mode 100644
index 0000000000..e00ce0f7ee
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/constructor-metadata-algebraic-1-inputs/FormulaShapeProbe.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/constructor-metadata-algebraic-1-inputs/PhaseQuote.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/constructor-metadata-algebraic-1-inputs/PhaseQuote.lean.gz
new file mode 100644
index 0000000000..2257d6119e
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/constructor-metadata-algebraic-1-inputs/PhaseQuote.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/constructor-metadata-algebraic-1.csv.gz b/reports/data/hexrcf-cell-quotation/diagnostics/constructor-metadata-algebraic-1.csv.gz
new file mode 100644
index 0000000000..a806621ca6
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/constructor-metadata-algebraic-1.csv.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/constructor-metadata-algebraic-1.log.gz b/reports/data/hexrcf-cell-quotation/diagnostics/constructor-metadata-algebraic-1.log.gz
new file mode 100644
index 0000000000..1df9b186a4
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/constructor-metadata-algebraic-1.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/constructor-metadata-profile-1-inputs/ConstructorProfile.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/constructor-metadata-profile-1-inputs/ConstructorProfile.lean.gz
new file mode 100644
index 0000000000..c665315be1
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/constructor-metadata-profile-1-inputs/ConstructorProfile.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/constructor-metadata-profile-1-inputs/PhaseCellQuote.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/constructor-metadata-profile-1-inputs/PhaseCellQuote.lean.gz
new file mode 100644
index 0000000000..f2a7e0b614
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/constructor-metadata-profile-1-inputs/PhaseCellQuote.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/constructor-metadata-profile-1-inputs/PhaseQuote.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/constructor-metadata-profile-1-inputs/PhaseQuote.lean.gz
new file mode 100644
index 0000000000..2257d6119e
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/constructor-metadata-profile-1-inputs/PhaseQuote.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/constructor-metadata-profile-1.csv.gz b/reports/data/hexrcf-cell-quotation/diagnostics/constructor-metadata-profile-1.csv.gz
new file mode 100644
index 0000000000..ec25c16e13
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/constructor-metadata-profile-1.csv.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/constructor-metadata-profile-1.log.gz b/reports/data/hexrcf-cell-quotation/diagnostics/constructor-metadata-profile-1.log.gz
new file mode 100644
index 0000000000..3b6c46eb5f
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/constructor-metadata-profile-1.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/fresh-staged-1-inputs/CellOperations.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/fresh-staged-1-inputs/CellOperations.lean.gz
new file mode 100644
index 0000000000..130e062fde
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/fresh-staged-1-inputs/CellOperations.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/fresh-staged-1-inputs/CellQuote.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/fresh-staged-1-inputs/CellQuote.lean.gz
new file mode 100644
index 0000000000..b0616fead4
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/fresh-staged-1-inputs/CellQuote.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/fresh-staged-1-inputs/FreshStaged.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/fresh-staged-1-inputs/FreshStaged.lean.gz
new file mode 100644
index 0000000000..19e6984d9f
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/fresh-staged-1-inputs/FreshStaged.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/fresh-staged-1-inputs/FreshStagedAudit.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/fresh-staged-1-inputs/FreshStagedAudit.lean.gz
new file mode 100644
index 0000000000..f3254338be
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/fresh-staged-1-inputs/FreshStagedAudit.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/fresh-staged-1-progress.log.gz b/reports/data/hexrcf-cell-quotation/diagnostics/fresh-staged-1-progress.log.gz
new file mode 100644
index 0000000000..4610e3c837
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/fresh-staged-1-progress.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/fresh-staged-1.log.gz b/reports/data/hexrcf-cell-quotation/diagnostics/fresh-staged-1.log.gz
new file mode 100644
index 0000000000..25171fb664
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/fresh-staged-1.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/fresh-staged-2-inputs.json.gz b/reports/data/hexrcf-cell-quotation/diagnostics/fresh-staged-2-inputs.json.gz
new file mode 100644
index 0000000000..d19148c132
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/fresh-staged-2-inputs.json.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/fresh-staged-2-inputs/CellOperations.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/fresh-staged-2-inputs/CellOperations.lean.gz
new file mode 100644
index 0000000000..4e32aa1cf3
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/fresh-staged-2-inputs/CellOperations.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/fresh-staged-2-inputs/CellQuote.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/fresh-staged-2-inputs/CellQuote.lean.gz
new file mode 100644
index 0000000000..5849ec80ed
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/fresh-staged-2-inputs/CellQuote.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/fresh-staged-2-inputs/FreshStaged.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/fresh-staged-2-inputs/FreshStaged.lean.gz
new file mode 100644
index 0000000000..19e6984d9f
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/fresh-staged-2-inputs/FreshStaged.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/fresh-staged-2-inputs/FreshStagedAudit.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/fresh-staged-2-inputs/FreshStagedAudit.lean.gz
new file mode 100644
index 0000000000..f3254338be
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/fresh-staged-2-inputs/FreshStagedAudit.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/fresh-staged-2-inputs/RootQuote.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/fresh-staged-2-inputs/RootQuote.lean.gz
new file mode 100644
index 0000000000..c67f1fc133
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/fresh-staged-2-inputs/RootQuote.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/fresh-staged-2-progress.log.gz b/reports/data/hexrcf-cell-quotation/diagnostics/fresh-staged-2-progress.log.gz
new file mode 100644
index 0000000000..337c48a8b1
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/fresh-staged-2-progress.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/fresh-staged-2.log.gz b/reports/data/hexrcf-cell-quotation/diagnostics/fresh-staged-2.log.gz
new file mode 100644
index 0000000000..58bf0a889c
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/fresh-staged-2.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/row-boundary-probe-1-inputs/BoundaryCellQuote.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/row-boundary-probe-1-inputs/BoundaryCellQuote.lean.gz
new file mode 100644
index 0000000000..28f3f2c2b7
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/row-boundary-probe-1-inputs/BoundaryCellQuote.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/row-boundary-probe-1-inputs/RowBoundaryProbe.lean.gz b/reports/data/hexrcf-cell-quotation/diagnostics/row-boundary-probe-1-inputs/RowBoundaryProbe.lean.gz
new file mode 100644
index 0000000000..5f66a78b62
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/row-boundary-probe-1-inputs/RowBoundaryProbe.lean.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/diagnostics/row-boundary-probe-1.log.gz b/reports/data/hexrcf-cell-quotation/diagnostics/row-boundary-probe-1.log.gz
new file mode 100644
index 0000000000..77e27e8531
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/diagnostics/row-boundary-probe-1.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/validation/cell-pointwise-audit-5.log.gz b/reports/data/hexrcf-cell-quotation/validation/cell-pointwise-audit-5.log.gz
new file mode 100644
index 0000000000..003b735c5f
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/validation/cell-pointwise-audit-5.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/validation/cell-pointwise-expanded-3.log.gz b/reports/data/hexrcf-cell-quotation/validation/cell-pointwise-expanded-3.log.gz
new file mode 100644
index 0000000000..bb47c5d378
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/validation/cell-pointwise-expanded-3.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/validation/cell-pointwise-expanded-targets.txt.gz b/reports/data/hexrcf-cell-quotation/validation/cell-pointwise-expanded-targets.txt.gz
new file mode 100644
index 0000000000..5bde5e4589
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/validation/cell-pointwise-expanded-targets.txt.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/validation/cell-pointwise-final-metadata-admissions.log.gz b/reports/data/hexrcf-cell-quotation/validation/cell-pointwise-final-metadata-admissions.log.gz
new file mode 100644
index 0000000000..e1a79928fb
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/validation/cell-pointwise-final-metadata-admissions.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/validation/cell-pointwise-final-metadata-copyright.log.gz b/reports/data/hexrcf-cell-quotation/validation/cell-pointwise-final-metadata-copyright.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/validation/cell-pointwise-final-metadata-copyright.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/validation/cell-pointwise-final-metadata-dag.log.gz b/reports/data/hexrcf-cell-quotation/validation/cell-pointwise-final-metadata-dag.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/validation/cell-pointwise-final-metadata-dag.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/validation/cell-pointwise-final-metadata-diff.log.gz b/reports/data/hexrcf-cell-quotation/validation/cell-pointwise-final-metadata-diff.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/validation/cell-pointwise-final-metadata-diff.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/validation/cell-pointwise-final-metadata-lines.log.gz b/reports/data/hexrcf-cell-quotation/validation/cell-pointwise-final-metadata-lines.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/validation/cell-pointwise-final-metadata-lines.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/validation/cell-pointwise-final-metadata-relative.log.gz b/reports/data/hexrcf-cell-quotation/validation/cell-pointwise-final-metadata-relative.log.gz
new file mode 100644
index 0000000000..154780e0b7
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/validation/cell-pointwise-final-metadata-relative.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/validation/cell-pointwise-final-metadata-selected-admissions.log.gz b/reports/data/hexrcf-cell-quotation/validation/cell-pointwise-final-metadata-selected-admissions.log.gz
new file mode 100644
index 0000000000..3ac54cac40
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/validation/cell-pointwise-final-metadata-selected-admissions.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/validation/cell-pointwise-final-metadata.py.gz b/reports/data/hexrcf-cell-quotation/validation/cell-pointwise-final-metadata.py.gz
new file mode 100644
index 0000000000..5ce05e6522
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/validation/cell-pointwise-final-metadata.py.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/validation/cell-pointwise-quadratic-6.log.gz b/reports/data/hexrcf-cell-quotation/validation/cell-pointwise-quadratic-6.log.gz
new file mode 100644
index 0000000000..b9ec6f265e
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/validation/cell-pointwise-quadratic-6.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/validation/cell-pointwise-repaired-2.log.gz b/reports/data/hexrcf-cell-quotation/validation/cell-pointwise-repaired-2.log.gz
new file mode 100644
index 0000000000..4ff65367a8
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/validation/cell-pointwise-repaired-2.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/validation/cell-quotation-browser-2.log.gz b/reports/data/hexrcf-cell-quotation/validation/cell-quotation-browser-2.log.gz
new file mode 100644
index 0000000000..d7570ca632
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/validation/cell-quotation-browser-2.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/validation/cell-quotation-memory-policy.txt.gz b/reports/data/hexrcf-cell-quotation/validation/cell-quotation-memory-policy.txt.gz
new file mode 100644
index 0000000000..fdc19c8496
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/validation/cell-quotation-memory-policy.txt.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/validation/cell-quotation-render-2.log.gz b/reports/data/hexrcf-cell-quotation/validation/cell-quotation-render-2.log.gz
new file mode 100644
index 0000000000..2f8c9156ff
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/validation/cell-quotation-render-2.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/validation/cell-recursive-repaired-1.log.gz b/reports/data/hexrcf-cell-quotation/validation/cell-recursive-repaired-1.log.gz
new file mode 100644
index 0000000000..08799b8531
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/validation/cell-recursive-repaired-1.log.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/validation/collect-cell-quotation.py.gz b/reports/data/hexrcf-cell-quotation/validation/collect-cell-quotation.py.gz
new file mode 100644
index 0000000000..1f7207839e
Binary files /dev/null and b/reports/data/hexrcf-cell-quotation/validation/collect-cell-quotation.py.gz differ
diff --git a/reports/data/hexrcf-cell-quotation/validation/metadata.json b/reports/data/hexrcf-cell-quotation/validation/metadata.json
new file mode 100644
index 0000000000..86e93c3fa6
--- /dev/null
+++ b/reports/data/hexrcf-cell-quotation/validation/metadata.json
@@ -0,0 +1,61 @@
+[
+ {
+ "name": "copyright",
+ "command": [
+ "python3",
+ "scripts/check_copyright_headers.py"
+ ],
+ "log": "cell-pointwise-final-metadata-copyright.log",
+ "exit_code": 0
+ },
+ {
+ "name": "lines",
+ "command": [
+ "python3",
+ "scripts/check_file_line_counts.py",
+ "--base",
+ "origin/main"
+ ],
+ "log": "cell-pointwise-final-metadata-lines.log",
+ "exit_code": 0
+ },
+ {
+ "name": "dag",
+ "command": [
+ "python3",
+ "scripts/check_dag.py"
+ ],
+ "log": "cell-pointwise-final-metadata-dag.log",
+ "exit_code": 0
+ },
+ {
+ "name": "admissions",
+ "command": [
+ "python3",
+ "scripts/ci/check_named_admissions.py"
+ ],
+ "log": "cell-pointwise-final-metadata-admissions.log",
+ "exit_code": 0
+ },
+ {
+ "name": "diff",
+ "command": [
+ "git",
+ "diff",
+ "HEAD",
+ "--check"
+ ],
+ "log": "cell-pointwise-final-metadata-diff.log",
+ "exit_code": 0
+ },
+ {
+ "name": "selected-admissions",
+ "log": "cell-pointwise-final-metadata-selected-admissions.log",
+ "exit_code": 0
+ },
+ {
+ "name": "relative",
+ "log": "cell-pointwise-final-metadata-relative.log",
+ "exit_code": 0
+ }
+]
diff --git a/reports/data/hexrcf-cell-quotation/validation/render.lean.txt b/reports/data/hexrcf-cell-quotation/validation/render.lean.txt
new file mode 100644
index 0000000000..5445469437
--- /dev/null
+++ b/reports/data/hexrcf-cell-quotation/validation/render.lean.txt
@@ -0,0 +1,5 @@
+import HexManual
+import VersoManual
+#eval Verso.Genre.Manual.manualMain (%doc HexManual)
+ (options := ["--output", "cell-quotation-review-html",
+ "--without-tex", "--with-html-single", "--without-html-multi"])
diff --git a/reports/data/hexrcf-cell-quotation/validation/run-bounded.sh b/reports/data/hexrcf-cell-quotation/validation/run-bounded.sh
new file mode 100644
index 0000000000..2cc8636e8a
--- /dev/null
+++ b/reports/data/hexrcf-cell-quotation/validation/run-bounded.sh
@@ -0,0 +1,10 @@
+#!/usr/bin/env bash
+set -euo pipefail
+exec systemd-run --user --wait --pipe --collect \
+ --unit=hex-10358-lean-build \
+ --property=MemoryMax=32G \
+ --property=MemorySwapMax=0 \
+ --property=OOMPolicy=kill \
+ --working-directory="$PWD" \
+ --setenv="PATH=$PATH" --setenv=LEAN_NUM_THREADS=2 \
+ "$@"
diff --git a/reports/data/hexrcf-cell-quotation/verify.py b/reports/data/hexrcf-cell-quotation/verify.py
new file mode 100644
index 0000000000..85c3536471
--- /dev/null
+++ b/reports/data/hexrcf-cell-quotation/verify.py
@@ -0,0 +1,79 @@
+#!/usr/bin/env python3
+"""Verify the fixed-input cell quotation evidence and its source binding."""
+import argparse
+import gzip
+import hashlib
+import json
+from pathlib import Path
+import subprocess
+
+parser = argparse.ArgumentParser(description=__doc__)
+parser.add_argument('--check-head', action='store_true')
+args = parser.parse_args()
+root = Path(__file__).resolve().parent
+repo = root.parents[2]
+record = json.loads((root / 'context.json').read_text())
+git = lambda *a: subprocess.check_output(['git', *a], cwd=repo)
+sha = lambda b: hashlib.sha256(b).hexdigest()
+read = lambda p: gzip.decompress((root / p).read_bytes()).decode()
+log = lambda key: read(record['validation'][key])
+
+assert git('rev-parse', record['source_commit'] + '^{tree}').decode().strip() == record['source_tree']
+for path, digest in record['sources'].items():
+ assert sha(git('show', record['source_commit'] + ':' + path)) == digest, path
+ if args.check_head:
+ assert sha((repo / path).read_bytes()) == digest, path
+if args.check_head:
+ paths = git('diff', '--name-only', record['source_commit']).decode().splitlines()
+ paths += git('ls-files', '--others', '--exclude-standard').decode().splitlines()
+ assert all(p.startswith('reports/') for p in paths), paths
+for path in record['unchanged_guards']:
+ assert git('show', record['baseline_commit'] + ':' + path) == git('show', record['source_commit'] + ':' + path), path
+for item in record['artifacts']:
+ raw = (root / item['path']).read_bytes()
+ assert len(raw) == item['bytes'] and sha(raw) == item['sha256'], item['path']
+ if 'uncompressed_sha256' in item:
+ assert sha(gzip.decompress(raw)) == item['uncompressed_sha256'], item['path']
+for key in record['validation']:
+ assert 'code=exited, status=0/SUCCESS' in log(key), key
+assert 'Build completed successfully (14427 jobs)' in log('integration')
+for text in [
+ 'staged zero true: nodes=502481', 'staged zero false: nodes=502483',
+ 'staged two-root quadratic true: nodes=14294138',
+ 'finite family checked: 2 entries; nodes=4441813',
+ 'finite family checked: 3 entries; nodes=14292933',
+ 'staged exact/below/wrong-goal and full caller restoration checked',
+ 'staged replay proves its original constant source; false verdict cannot prove that source',
+ 'staged malformed cells, original zero guard, terminal callback and full rollback checked']:
+ assert text in log('controls'), text
+assert '1409 theorems/78 definitions; nonempty traces=1439' in log('audit')
+for text in ['retained packet exact/one-below request budget=3382239',
+ 'retained packet wrong-sign rejection restored caller declarations and metavariables',
+ 'malformed retained input refused with caller rollback: variant=2',
+ 'source selection: 14 exported theorem bodies checked in a fresh module']:
+ assert text in log('integration'), text
+assert 'recursive scalar quotation: 87 theorem bodies, 5 definitions' in log('recursive')
+assert 'recursive variants: constant=28294; tagged=28307; retry=31022' in log('recursive')
+assert 'recursive exhausted: consumed=29391, requested=925' in log('recursive')
+assert 'maximum number of heartbeats (12000000)' in read('diagnostics/cell-pointwise-quadratic-5.log.gz')
+assert 'limit 12000000, consumed 12000000, requested 1' in read('diagnostics/cell-pointwise-stage-profile-2.log.gz')
+assert 'status=1/FAILURE' in read('diagnostics/fresh-staged-2.log.gz')
+assert record['constant_source_accepted'] and record['rational_quadratic_packet_accepted']
+assert record['algebraic_original_source_accepted'] is False
+metadata = json.loads((root / 'validation/metadata.json').read_text())
+assert {x['name'] for x in metadata} == {'copyright', 'lines', 'dag', 'admissions', 'selected-admissions', 'relative', 'diff'}
+assert all(x['exit_code'] == 0 for x in metadata)
+memory = read('validation/cell-quotation-memory-policy.txt.gz')
+assert all(x in memory for x in ['ActiveState=active', 'MemoryMax=34359738368', 'MemorySwapMax=0', 'OOMPolicy=kill', 'LEAN_NUM_THREADS=2'])
+inspection = json.loads((root / 'captures/inspection.json').read_text())
+kinds = ['types', 'callbacks', 'packet', 'stages', 'packetcode', 'trace', 'example', 'measurements', 'audit']
+assert {(x['label'], x['kind']) for x in inspection} == {(a, b) for a in ['desktop', 'narrow'] for b in kinds}
+assert all(x['descendantOverflow'] == 0 and x['targetScrollWidth'] <= x['targetWidth'] + 1 for x in inspection)
+review = json.loads((root / 'captures/visual-review.json').read_text())
+assert len(review['captures']) == 18
+for item in review['captures']:
+ assert item['viewed'] and sha((root / item['path']).read_bytes()) == item['sha256']
+assert len(record['compiled_files']) == 4 and all(x['bytes'] > 0 for x in record['compiled_files'])
+print(f'Verified {len(record["artifacts"])} artifacts/{len(record["sources"])} sources; '
+ '37 targets/manual, fixed quadratic packet, constant source and 18 inspected captures; '
+ 'general algebraic source assembly remains incomplete')
diff --git a/reports/data/hexrcf-enumerated-progress/README.md b/reports/data/hexrcf-enumerated-progress/README.md
new file mode 100644
index 0000000000..2463497dd4
--- /dev/null
+++ b/reports/data/hexrcf-enumerated-progress/README.md
@@ -0,0 +1,7 @@
+# Enumerated-source progress and acceptance
+
+See [the report](../../hexrcf-enumerated-progress.md). Run `python3 reports/data/hexrcf-enumerated-progress/verify.py --check-head` to check current source bindings, or omit the flag to verify the immutable implementation commit.
+
+The five new theorems prove progress from semantic uniqueness and literal acceptance for arbitrary enumerated roots. They consume the actual owner root-coverage and no-duplicate laws. No successful root/scalar result or serializer equation is a progress hypothesis. Source models, squarefreeness and unique positive windows remain explicit mathematical inputs; generic predecessor/history discovery and complete tactic integration are not inferred.
+
+Removing only the new theorem regions, one proof-audit import and the expanded Meta audit recovers both prior files exactly. Executable production, rejection, replay and quotation bodies are unchanged. Logs and failed-source snapshots retain elaboration attempts; only the final source is claimed. The successful native run checks seven actual theorem bodies with standard-three axiom closure, original conjugate/cubic packets and refusal controls. Affected integration includes the optional umbrella and prior frozen source proofs; cached dependencies are identified in its log. The record is not a full conformance/manual rerun or scientific timing study. Prior evidence records retain their original pins.
diff --git a/reports/data/hexrcf-enumerated-progress/context.json b/reports/data/hexrcf-enumerated-progress/context.json
new file mode 100644
index 0000000000..5bdd0593f8
--- /dev/null
+++ b/reports/data/hexrcf-enumerated-progress/context.json
@@ -0,0 +1,157 @@
+{
+ "source_commit": "583df51096cde99ac18f4abba9e50bc31a9f302a",
+ "base_commit": "d1c635143ac1dd2bbd136995495cc6028cb5add1",
+ "parent_context_sha256": "83fe4638f46017779e54bc418c1913d55d094d1fb32787cd00ca4c4f7fec5576",
+ "sources": {
+ ".github/workflows/ci.yml": "5db61a70eb52d7478994377179c1b35b360a794fcff4b1c257496b5a6394231c",
+ "AGENTS.md": "4e0a48cf49a61e56ed84c8b28e232b5bfad29f2da20571377692be6e1c316f30",
+ "HexManual/Chapters/HexRCF/AlgebraicCells.lean": "c4dd5ca465697595f02c06d87e30bdd218ce9632b05b696f31f932f99d1fb8d4",
+ "HexManual/Chapters/HexRCF/RootQuote.lean": "2e0746d1a35c192d1127a0c9768470e6e36b14d9d96b5eebbb29c26a03c91e78",
+ "HexManual/Chapters/HexRCF/RootTableQuote.lean": "78d1be637a32593b03f000ab153c7fdf05a1b5332ea3efb9c186aacfd68f0ae5",
+ "HexRCF/HandlerTests/Admission.lean": "770518931dd3f7ab1934e327460b80607338207b17d97363b82c2a5c93669c36",
+ "HexRCF/README.md": "3830d758a8a75d59df1a6dd01f59204a86858b5eda3e43a78f9e9e9c2d769a8a",
+ "HexRCF/SPEC/hex-rcf.md": "df8c6bb2435a2794faa36bc77e41f4c936f06ae149f29c3e68fe0d79f4ebfafb",
+ "HexRCF/Tactic.lean": "26021113d121cfc9ab0d6e7ea7ce8d02eb6c4637c42bbdd2647ecd2d9291f3fb",
+ "HexRealClosure/Algebraic.lean": "d05f9fb72fe9544ae9ddc685dff17080f876aa4c99c70e8992d511e011f6a454",
+ "HexRealClosure/ContextData.lean": "ca29790752b8d25f10d03a9877690a5ff40f1fdf6815c96fe9693941206e662c",
+ "HexRealClosure/SignCodec.lean": "7126323c97b77204386795a0f252f1babfd0ed7f3dba7ee3927a99b9d5c1852a",
+ "HexRealClosure/SignFacts.lean": "9c22837e93e6f50cc96310163e352ac608fbcfbd6275edab33751da2fd84f47c",
+ "HexRealClosure/SignatureCodecTests.lean": "ffc72777523ac0e92b563481804bdfb581fb0173fe7a021009737d57959b4462",
+ "HexRealClosure/TowerContext.lean": "6ef8b87b2d81cb177505a4bbc88befa078b20578cedd49e836d850753c203ee3",
+ "HexSignDet/Codec/Coefficients.lean": "0fef85cb8c11fe614705ca230f437785c9c7c6b76d9362449f834bb25e82d3aa",
+ "HexSignDet/Codec/FiniteGraph.lean": "bb1e0611aa74d7c7b4a74f83f05e481ccd4584523e0aaeca7beba53c70a6895c",
+ "HexSignDet/Codec/FiniteLaws.lean": "a30dbc456d8613e247bfc691376206a7da405b8a3e08ef7a550c0b857a234ab8",
+ "HexSignDet/Codec/GraphLaws.lean": "292cebb2c9ea1131ddd0458de3997aac95cfc1422e99dbd8fb5e7f6d08fcdaa5",
+ "HexSignDet/Codec/Laws.lean": "7b7293bcd80b89c887e1227f7ac27f2f7a2ce936adca3b14818ec5c228c36740",
+ "HexSignDet/Codec/NodeLaws.lean": "77621bd2ab5c1d7c99d1a7355dd7418ed43a06c4ca5eb885bd37cc1ba6e394f2",
+ "HexSignDet/DagBounds.lean": "1ff482fbcb51846b61348d1708062647fb0f61bf2eb04184b86fa17d7bac33a7",
+ "HexSignDet/DagReplay.lean": "be3317f306194a18a314e9f8fca021eefda76ea17704c5ec89daeff9a2867f42",
+ "HexSignDet/DagSelectedSigns.lean": "3ffbfbe2cebf6ad7b5db0cf8b0a3c5a26142a46465d2577a08ddb292594eed26",
+ "HexSignDetTheory/RootList.lean": "aead98f0d004fb1407a437c0eacec5235287a8669e56a6856bad4e3d7ec3d088",
+ "HexSignDetTheory/ThomRoots.lean": "b37b36fec150e23165101ecf05b4105ba429c52050efb3452df496cecc0a456e",
+ "PLAN.md": "e94a60324486913b4a04650edd617c4ff8bef469dc7fd311adea8407c6662ea0",
+ "SPEC/real-closure-execution.md": "bc0948ad7de6969baaed89c0b3052cb0d21d64d634f8a336f9a7dde446b057f5",
+ "adapters/HexRCF/RealCoefficients.lean": "6b9f9a7eaa6e98e30a1faae38252d8616a15595f86347abee0aa54c8fb2f2161",
+ "adapters/HexRCF/RealCoefficients/CellOperations.lean": "3561cc80c7c866141f05a387ce1100ee0cadd98281a03395551cebcde5bd6e2a",
+ "adapters/HexRCF/RealCoefficients/CellQuote.lean": "c572911d7be36001e0f1885c3460f3eb19425d90e78345b1c46878ddf3e6c6ea",
+ "adapters/HexRCF/RealCoefficients/CellRead.lean": "65274f89c940bad74eab8c9075f9256c6ed3d8b90d3294aec4e85883e425fb10",
+ "adapters/HexRCF/RealCoefficients/RationalQuote.lean": "675e2ba065b696f257adefc07fe30ddb0190f321d86005444579ea5a0744bdf5",
+ "adapters/HexRCF/RealCoefficients/RealModel.lean": "712b4fd3edff8eaa6f93e501da5debf04529d1ea8c11a18389820f866d179c43",
+ "adapters/HexRCF/RealCoefficients/Reify.lean": "ea8474b9e253f93a1583064ca99ec0bf376dadf5457fd60b57e9e18460cf449c",
+ "adapters/HexRCF/RealCoefficients/RootBuild.lean": "be8e2b24aad8e67946afbe70d48a83ff2ca6db75cb62cca0185ec309f596994a",
+ "adapters/HexRCF/RealCoefficients/RootContext.lean": "792176eab63e5e62b759a10893569946ef6d019566b8116c85237b3e16fcdb86",
+ "adapters/HexRCF/RealCoefficients/RootHeader.lean": "681f2a964bc30f65a92a0fb1a58b4d4013eb396df37ca813962702065fb46261",
+ "adapters/HexRCF/RealCoefficients/RootPrepare.lean": "de72a8e3ac4adb13365801476467bf691e630d0952b018ccecd88846c3bdb025",
+ "adapters/HexRCF/RealCoefficients/RootQuote.lean": "89f3ad4b0c4a8ae058560201900877035d896427176b944b34acde9f9b23d7e8",
+ "adapters/HexRCF/RealCoefficients/RootReplay.lean": "35e5c09926534d79082443ffbaf1ccaa9bca6095f0250da4f0b45d23e185c023",
+ "adapters/HexRCF/RealCoefficients/RowPacketQuote.lean": "edbb3d23f72422f5a1dea163c283848ec285418b7bdb9eedba553b83066121af",
+ "adapters/HexRCF/RealCoefficients/RowQuote.lean": "3b7e7d2ebcbd53a6ea893bc8f4c884d767430f8b98a3f1ca770fe7c7b122f3c9",
+ "adapters/HexRCF/RealCoefficients/ScalarPacket.lean": "6b8353895cff48df759bb4fc8cb5cda767313974e0a57f1e59973249b6eefdca",
+ "adapters/HexRCF/RealCoefficients/ScalarQuote.lean": "fee2617a998f29d05c8959b484060ac1d719359c6d851a8ff6699fa9cb370acc",
+ "adapters/HexRCF/RealCoefficients/SignatureQuote.lean": "c3bb71b52c2a544b902bc256b3a162e1c3c4e7f94ae6b21808914e67109710eb",
+ "adapters/HexRCF/RealCoefficients/SourceBuild.lean": "eb66b3f56832e3fd6644a980fe3f13f62242dda88e84c6bf99dfc717c74290fe",
+ "adapters/HexRCF/RealCoefficients/SourceIdentity.lean": "d98ae0c746003be89edfc969e464383e6a6bda253e0dae8c290605e8b98ce3c3",
+ "adapters/HexRCF/RealCoefficients/SourceIdentityQuote.lean": "37c54a56f48b265d0ddca38ecae2c572871e8b7f1600b54f330ff3da60252fa7",
+ "adapters/HexRealClosureTheory/Algebraic.lean": "2495153acbe4e468521913a2f5d6569831cd05f5ee48d5ddb26fc31a43438c7e",
+ "adapters/HexRealClosureTheory/SignFacts.lean": "c2b8cf96de0cccc2c0c3cbe83f0afd7c40ab9736b75f377ec5bfedc0907f34e3",
+ "adapters/HexRealClosureTheory/TowerModel.lean": "70d0e57e8ecc78eb9b7675d875157462d27cf9494d49d72bba019eaa6dd1d788",
+ "conformance-fixtures/HexRCF/bounded-source.json": "566c5f1f092abab73312bb630a02e24873e6723942d450320dae2b52aaa30a75",
+ "conformance-fixtures/HexRCF/enumerated-source.json": "d1f70734b5c8d5c7f768b4d2c3f5359d8e1cc44105885e7f8af597102c8b5c98",
+ "conformance-fixtures/HexRCF/source-identity.json": "93540b60174e0d8bd85ca80d99c6cbdc427815f341a12a6e38f4b38613073f53",
+ "conformance/HexRCF/BoundedSource.lean": "5c2166dd0977d3e27d3fefa89f9c0382e9dd7226bff629112cfd0e0faad1127b",
+ "conformance/HexRCF/BoundedSource/Cubic.lean": "da1c0e1b549fce22cb1f7ea7bb6888dff1d7b59c1219c5b580376bbb4a25ecde",
+ "conformance/HexRCF/BoundedSource/Inputs.lean": "7ffcd6d62f175f3027e2327fd4a86885e933e0715a85ab7afb9b112d76d49a39",
+ "conformance/HexRCF/BoundedSource/Negative.lean": "abb7ef67395b2b90f9e12f551bcc0d16146cca067bf3567707e924c2ecd2fb77",
+ "conformance/HexRCF/BoundedSource/Positive.lean": "d83184a9d54264ba7e1c138eb674db1d67df39681575fa91d96a4681af774321",
+ "conformance/HexRCF/BoundedSource/Proofs.lean": "7f9d47d59dd47aafa90a09d23a966efc0d2ca7fbfa3cdce5ae4771ae1da01a9f",
+ "conformance/HexRCF/BoundedSource/Quote.lean": "70da87d5868d0c3d725e9ed2a531a4b22221e42d794cfd259359f6524be1eaef",
+ "conformance/HexRCF/CellFinishCases.lean": "619208fd6528c4f12d4e12bc4ee6fd4016ab0948db16a61237a2aefbcd523a7c",
+ "conformance/HexRCF/CellFinishProofs.lean": "fd232e3b4a64f444d834ae244a110ad0910aa35c4773a90b6a3b26a48693e22c",
+ "conformance/HexRCF/CellQuoteStageProofs.lean": "a14f3f20e1add07f569ab222994995c409552aededef738972a70c864b94b919",
+ "conformance/HexRCF/CellQuoteStages.lean": "e4593f2c8169af00398ff608dd53cbbfbe6b8408ddbdd07de6f64f59acf8a25f",
+ "conformance/HexRCF/CellSourceProofs.lean": "cea22d1a532dc4415130ff1c9c20f43707ab9696c7df53c858bdfa41ad76f018",
+ "conformance/HexRCF/CellSourceQuote.lean": "bea057fe5c9470d701e02974fbd6a83e945bbaba1225ca294830f54ef762f504",
+ "conformance/HexRCF/DependentQuote.lean": "0df154544a17857334480e7c577ecbcf1afe04165fa2da1a5a6407bf41e85518",
+ "conformance/HexRCF/DependentQuoteData.lean": "ed254475e78fa6edb27d4e55222a598b07b7357154ea0495d6195f2f1d39ee46",
+ "conformance/HexRCF/DependentQuoteProofs.lean": "5875aa9748f50340668e58aea97b196d3353313352fb8c819ae5ee3542556980",
+ "conformance/HexRCF/DependentScalarProofs.lean": "9fe3f3871f929e28355985c574c0b8c742be062ae5f19033d7d8bf9e67cd88d8",
+ "conformance/HexRCF/DependentScalarQuote.lean": "e20dd7346c337dd17126c394965f268e568706730f475844d7c0907051224933",
+ "conformance/HexRCF/EnumeratedSource/Cubic.lean": "011464c56dc3ffc5a6bd1e62dc9ff8b35ac6d0e621beceb0336b69d8f626b78f",
+ "conformance/HexRCF/EnumeratedSource/CubicData0.lean": "79b971cb2816d7ee980c595199eedbfddfd7cdb62ea12bc71dfcb24d304f69da",
+ "conformance/HexRCF/EnumeratedSource/Inputs.lean": "23ae13a33e132ee7221c5fa353e71073fc05bd660dfc3ecf6620584b62b40306",
+ "conformance/HexRCF/EnumeratedSource/Negative.lean": "261fcd979ff77c772a28ecc89776b5771cec920fc4e58a0dfe2886aee43a58d7",
+ "conformance/HexRCF/EnumeratedSource/NegativeData0.lean": "c0700606f805664f89dd0106dfb5aebb5ab18949adbb30e5b71ffeb20bb4fdaf",
+ "conformance/HexRCF/EnumeratedSource/Positive.lean": "1382c958e53cdb8a04afd1e6d6f173fe697ba15a3321bf29c3e03059923c7181",
+ "conformance/HexRCF/EnumeratedSource/PositiveData0.lean": "41674140d15cf0136ca29b627f667b952355916b269ff7d2c14247ba2d21b3b1",
+ "conformance/HexRCF/EnumeratedSource/Proofs.lean": "3c08b8018b68469d3c6e7940f730d6b8fadbf6175df2e6f5017ed4fc24d50d5b",
+ "conformance/HexRCF/EnumeratedSource/Quote.lean": "8987d21be058f777f0ba875e917fcda77892bced1029616804fabd57f4eb41d8",
+ "conformance/HexRCF/FrozenSignatureConformance.lean": "8e7d432aecb87fb89bb188e4c579e86fb5c3348c5430f1e2b1a00f1f820a940e",
+ "conformance/HexRCF/FrozenSignatureProofs.lean": "55de6da9b0b3dc2d1e384d6c838d13294287c44060afb8e70aa2a0c8e01a81cb",
+ "conformance/HexRCF/ProofFunctionPublic.lean": "f928c9f0dd0a704d34a516b6282cfa6a7a4eb6c112d49689c450647a44370a6b",
+ "conformance/HexRCF/PublicSignPacket.lean": "c32d73c5634376907b965e1ea6cf69352fdda1f1945ce2f34a378cc217778102",
+ "conformance/HexRCF/PublicSignPacketControls.lean": "b4f98bd8ef190a361dd7752d4d5ece0cfbd862ff4face5a06dfabecf87096028",
+ "conformance/HexRCF/PublicSignPacketProofs.lean": "442f6d3e04a36db25611f0396103a1eee5ee411c40e8f3cc93df1acf7898bbbb",
+ "conformance/HexRCF/PublicSignPacketValues.lean": "72705dba30f04f986188903fb49b983c6f0a664895116fca8bd8b6b46b6517e5",
+ "conformance/HexRCF/QuotientQuote.lean": "97b2cbc9abdb46db33a9a91328f331edf8dea055cc244489158121cde8dc1903",
+ "conformance/HexRCF/QuotientQuoteData.lean": "ec26777d655a7898d7f7922fcea8f426a3f8c77a53000b69b6fe1755a0348870",
+ "conformance/HexRCF/QuotientQuoteProofs.lean": "f1d95accf6caed1c7354408b3a1a0b29493a526e82036390e39102ebe80c6752",
+ "conformance/HexRCF/QuotientQuotePublic.lean": "a3bd9a082df14a0ac93ba3798e13c6ebbf9dff98d7613264713aa281a5a18bea",
+ "conformance/HexRCF/RationalQuoteConformance.lean": "f03844d4a44a5c61b702ed0b1697619da9b20f4ac42122b9d1a6d3fa4a2de9ac",
+ "conformance/HexRCF/RecursiveScalarQuote.lean": "83ba1f3ed63afdbb148f171736a0aacebc7eef4ae3bf32dca29811515c3f051b",
+ "conformance/HexRCF/ReplayBoundary.lean": "bbc09553d62198a18e897981d5f443c81f09dba8d371d2cdaeaa846d22cbc2f8",
+ "conformance/HexRCF/ReplayBoundaryProofs.lean": "d755462a7344dc9f5304fba255bcefb42188c1de5a51d92d8567a27f22482dc2",
+ "conformance/HexRCF/ReplayHelperProofs.lean": "6dd68829399ec8908a877a3f7705cc9321e49b9581d0d577d114950242e43a57",
+ "conformance/HexRCF/ReplayHelpers.lean": "4501fa39e52a8a2bb52fdd7b183c16801090dd026304105afb4342a1c441c2a3",
+ "conformance/HexRCF/RootContextConformance.lean": "0c52084609ec3de8afd51330a7d2cc97f7bae1d8b2bbc421138783940fc7db37",
+ "conformance/HexRCF/RootContextProofs.lean": "b4c2e3ce686ce8bc60bfdafe2be2f566c6de46758f4827d307f3d5592b59d2e9",
+ "conformance/HexRCF/RootHeaderBudget.lean": "db30b6b7781fabd238ea2c934477e5ae281cc6cd905f11848ce46eb66ef45fe0",
+ "conformance/HexRCF/RootHeaderControls.lean": "aca063af3bfe475166aef92193f162c25a0e53eea094087cf334406a3d513157",
+ "conformance/HexRCF/RootHeaderPacket.lean": "dcd8e63c1d656fc800690b35554a0f835a1ee0bb96312215f8c12348d8a0e79a",
+ "conformance/HexRCF/RootHeaderProofs.lean": "e6630f0464fd0096b9af74b4640d2abc514a62c0b0fc706b4a2e74c9602eeb8c",
+ "conformance/HexRCF/RootHeaderValues.lean": "de9a8fc7c2e9371cbd3324eb700180411e49865dbc6535a74d2c882f74e38e13",
+ "conformance/HexRCF/RootPrepareControls.lean": "b36af8efd1e12227188b6fb7bde258e80d5c1c874338a324cb53c5ccc6c1330f",
+ "conformance/HexRCF/RootPreparePacket.lean": "86185bcc5fdddb1f700d869a115a91034954714f69a83171fd0e96f601e76fe3",
+ "conformance/HexRCF/RootPrepareProofs.lean": "4a5bc6655576a6592fcd5cd801bcfebd425243b1bb6cb39b0bb46d500a3938be",
+ "conformance/HexRCF/RootPreparePublic.lean": "a9e09cbe8d1287b97dde71ad1c6dbe149cfbacb6f81f41a8493ee802416d0805",
+ "conformance/HexRCF/RootQuoteCases.lean": "602d15ef501e969183bffbda7fb3c0f00a174ba5c2dbc35370ee7fce896944dd",
+ "conformance/HexRCF/RootQuoteConformance.lean": "f6a652a243ba62cffc671d1365c6ab47b6618179acb172019ec5609ea0324d3c",
+ "conformance/HexRCF/RootQuoteData.lean": "faa259d129d5c65a063c7143e45d5d9d19573ed49862aa5ecb3978ff389cb514",
+ "conformance/HexRCF/RootQuoteSource.lean": "aca1654efc1a452aca8ef573bb8ea3a435a4e1e18a4dca854d9bcc8e350d511d",
+ "conformance/HexRCF/RootTableQuote/Conformance.lean": "ec5bd136df58cc24a40ca989e3d33e55923082aed7591b234f55c70c013c74ad",
+ "conformance/HexRCF/RowPacketControls.lean": "ab69c57b66fe8129be5f07e5e5f42b7b35d60a23b305ec224d2d7dca28ac7c82",
+ "conformance/HexRCF/RowQuoteCases.lean": "8d2ebddc05d5f0d08b62b50d3498b34b47ab0b3accc4d0a572e621fd83d606d4",
+ "conformance/HexRCF/RowQuoteData.lean": "ce60cb18f548f55e929d4803c7ed824ad0a7621fd4abda09a191f76393fabf0c",
+ "conformance/HexRCF/RowQuoteDepth.lean": "6ada3c44bea055425d223dc57eafb4f0c88349713d815ded4beec9720f7802ad",
+ "conformance/HexRCF/RowQuoteProofs.lean": "317d4f981f32bb28666fcabc6248f4a57fe67c95a7fe431f7993aeacfa377ed3",
+ "conformance/HexRCF/SelectedRoot/KernelCheck.lean": "499299274a75c6e2a70630c8ae442f21ab7d0514c7d23cffdde3f09fd17421cb",
+ "conformance/HexRCF/SharedQuoteCallbacks.lean": "6132cc3722af3cf251d11c857a572f09128d3614d931724965cbcf488dc4db6d",
+ "conformance/HexRCF/SignPacketProofs.lean": "3980cad31637f5798b2c351e1efc2a29b946de1d90e06fb11acd85e2a5c46321",
+ "conformance/HexRCF/SignPacketQuote.lean": "fcda11e6c75353d4519c4eb0e9c302b84d7e41030316c99fcacb885dabf97545",
+ "conformance/HexRCF/SignatureQuoteConformance.lean": "26f16c37cb9e0d5c09a082787f4a66673437adbf998023fd5e9625db16ff5d3f",
+ "conformance/HexRCF/SourceBuild.lean": "f70e66af4041dffdc43ed12145c5ff07a097d3c1a180caac629df6c0a15f8eeb",
+ "conformance/HexRCF/SourceIdentityControls.lean": "c655486606139658d73e5b4d394228c3632596fec366e3b410ea9deb5b085553",
+ "conformance/HexRCF/SourceIdentityEmit.lean": "aa12f1517efc675698c0795c5a463a77d7a3466bcc146d4981d82e913059ed99",
+ "conformance/HexRCF/SourceIdentityLiterals.lean": "61ee2ce703d4965b00e1e20cc62288a0bde4e839d68ca09e1b66281f4a3e48d0",
+ "conformance/HexRCF/SourceIdentityPacket.lean": "614b3132274de5bebebeecb09cf479ac68723f1518e1f52912543a812985a4a9",
+ "conformance/HexRCF/SourceIdentityProofs.lean": "c449238d5f915dbe1f337688bc4f7357f3a93e31ad79eaa9e8e159c280749173",
+ "conformance/HexRCF/SourceSelectionCases.lean": "368ded3f07bb4be269f26a2fd2b7044904ea16d1dd1cba41d8bccb373d004005",
+ "conformance/HexRCF/TreeQuote.lean": "049065aa64bb13432b1d7183759979d28eebba98d18b6f54ab849e5953ce92c1",
+ "conformance/HexRCF/TreeQuoteData.lean": "c595c2278d2997483b755aa585da874c27eed40e4e1a8106d7f553e4f574776b",
+ "conformance/HexRCF/TreeQuoteProofs.lean": "f9a40248237480f8972df62dff548ef0599205b76014e070866e72586f161933",
+ "conformance/HexRCF/TreeQuotePublic.lean": "adc6dc6871208f31970cf5ae0c2472fd325a72e1df8114a6e8178ef8b2c71570",
+ "experiments/KernelReplay/AxiomClosure.lean": "f49377265f05f52b633b10a59255a03731e08d022cc54763de9851c5b5325034",
+ "lake-manifest.json": "fd2dc4df30cd44e4d30568489d616e7bcc8a78747500139134be56f35ae746a4",
+ "lakefile.lean": "0b45717104644561ca7415d4c9f43bae6b318cf75eb00e0757a44c9f7db700bc",
+ "lean-toolchain": "bc84812c94489d1e3e191baa1dc10d5eb684382d7fe9d2a5ab085e72c1c67e47",
+ "libraries.yml": "14e3dd1c01bb0c369b2216e2733378d61172040fd9f69dd0354d4e1267d9c5c1",
+ "scripts/bench/proof_only_runtime_exemptions/lakefile-rcf-bounded-source-fea47caa-baeeaf73.json": "eaea20ebc9579f4c50ff88344d8c9be3da9fc7c7d0981e9e0d5251dd04a6ab3f",
+ "scripts/bench/proof_only_runtime_exemptions/lakefile-rcf-source-build-fea47caa-1ab4e88c.json": "38fcff53934dab8ff78146cc782b039265da3c6684638a5b00ab725d5a2c8e01",
+ "scripts/rcf/selected_literals.py": "03e02fa50575882c0784894b76746ff8e594b9a1eb0a285811bc76ee87265e72",
+ "scripts/rcf/source_identity_literals.py": "ea5d7df949871c4975367a759b9632d033f3a240523c2c917c9141220ffdfd78"
+ },
+ "changed": [
+ "adapters/HexRCF/RealCoefficients/SourceBuild.lean",
+ "conformance/HexRCF/SourceBuild.lean"
+ ],
+ "scope": "Five new enumerated-source progress/acceptance laws, seven fresh actual theorem-body checks and original native/frozen compatibility. No executable change, generic source/history reconstruction, strict compiled missing-record guarantee, whole tactic completeness or new timing measurement."
+}
diff --git a/reports/data/hexrcf-enumerated-progress/manifest.json b/reports/data/hexrcf-enumerated-progress/manifest.json
new file mode 100644
index 0000000000..3aa4062f3a
--- /dev/null
+++ b/reports/data/hexrcf-enumerated-progress/manifest.json
@@ -0,0 +1,40 @@
+{
+ "README.md": "7e5c23735c933c1a30750bb18550f8a6915f1a2526ff2e7131f0ba43eee2006d",
+ "context.json": "a2923d9e72fb31b61cb487a389cbc1a4c5b371361ecbb15cef4504de0e167169",
+ "source-enumeration-change.patch.gz": "b158f4b615f21949af4efc3dc63f43a7bdfcae25569dce4a3a8b32329ecd10cb",
+ "source-enumeration-conformance-1.log.gz": "e9301897db9cbaf0fe3b0e6105151800b701b695eaf9ea8a4c0aaffd7cc01707",
+ "source-enumeration-conformance-2.log.gz": "f3f7ae60160f62d491cd50118716065ec191f40651f71b678b302e39f47008b1",
+ "source-enumeration-final-admissions.log.gz": "69a21bde72fd2d28ac505ea4f1e28c3b0a4e96998cb90674e584133f1fa72701",
+ "source-enumeration-final-copyright.log.gz": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "source-enumeration-final-dag.log.gz": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "source-enumeration-final-diff.log.gz": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "source-enumeration-final-freshness.log.gz": "2deda7e9f1dd38e7a3fd37966a9bdf33c905c76164d13133571f675b1ab75b13",
+ "source-enumeration-final-inputs.json": "2d842e438a4cf34d37af87fdfae96b880429258535cf00557d4a891e2e4e70e0",
+ "source-enumeration-final-integration.log.gz": "b5e7d171b9ff298fc796ef3e8abff904b49fbd1ea7b02dede01ca19ba81ba0cf",
+ "source-enumeration-final-invocation.json": "55a071256da3c010f69c3f4d0b4a9ec2bfac84ffce796b530b8cf8178d819676",
+ "source-enumeration-final-lines.log.gz": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "source-enumeration-final-literals.log.gz": "d363c41d04cc71aaa8b2bb97d1faf6ff4b311e5874c10d339f87aba4d4b97158",
+ "source-enumeration-final-manifest.log.gz": "87c23c0a8f1159f2320fb2015c285ee9167c8c51ef9f6df2f69fc217f4b11029",
+ "source-enumeration-final-metadata-driver.log.gz": "78c0d2aaff07fd448ce9f52b4d6b9ae2c844e48733a018521bc834ce0ce18841",
+ "source-enumeration-final-metadata.json": "41d4234722fe62d3ab0cd77c6650e4c701ba9e706c86ddb60cad53ab08a4b1c2",
+ "source-enumeration-final-source_literals.log.gz": "167f5ed8596142f3f1d3fdc40daa83c40dd6f4c31c76c0268645b4a297e47a56",
+ "source-enumeration-implementation-commit.log.gz": "f5150ed4669c5faae8566249d1f1de07676660dfdc6e1698d8aec060ed7bfc59",
+ "source-enumeration-progress-1.lean.txt": "c61737c076763256389f588251e2bdcf01765f1e1dede1a14b7263f5aec7f246",
+ "source-enumeration-progress-1.log.gz": "16c3c032aaa5d26ef374743178ed1c2572aa6a5989ba4d23241b2e8521743eac",
+ "source-enumeration-progress-2.log.gz": "2a5891a5f444c0cb63f4bf367c7debba0bb3a7cddd24f83d3a9f84b6d3c3b43d",
+ "source-enumeration-projection.json": "228da0f81acb22ec1769fd73a1b4dcfafa2016f0e9d85656fe506962efd07639",
+ "source-select-checks-1.lean.txt": "d040ee9e2ed707b44c9dc7a1a606026f70fcd2272803560aee7a3c995cf0077d",
+ "source-select-checks-1.log.gz": "dbfff4c01db7935f5c65acfdd6e5659a0271b9b5d3d6d6564aff4008cbf3f111",
+ "source-select-checks-2.lean.txt": "ecba1838bf4e5ed7573ae8d6e3d6ae9f97da30a3d1ca3cc7f402716c5ad325f9",
+ "source-select-checks-2.log.gz": "6c5c3a94473e53d90c33bd076acad356c8abbc5a4a00af2da481cee7a0c76a9a",
+ "source-select-checks-3.log.gz": "7f5045d769ce348d054e344115af19fd01e5f3fef323ac7e141915458135e4a2",
+ "source-select-checks-4.log.gz": "9996e1a8724162a36456c1ad1abc74f89417a6e6bb5799ae472deb1c73a7df79",
+ "source-select-progress-1.lean.txt": "8fc6917eef37ab847f0e7e57d4fceed5d2b17aac8e2ba75ae26d886fc67f7613",
+ "source-select-progress-1.log.gz": "87db941a66a2fcffbaa0d17b29d6e10b36564dc00ac45306503b05b57ca2d024",
+ "source-select-progress-2.lean.txt": "74923d33990f11d4d13bd0947d471e0e8b01fa37ff2af44df92c22da9f02c377",
+ "source-select-progress-2.log.gz": "80c33d5b35710b4b0f11881b6b0737e114dfa6184adaca7c4839da793e9796f1",
+ "source-select-progress-3.log.gz": "4bb01e8fe2c64bd1d22c631792e5dbaff5a56de6497b27a507a819fc29783bfd",
+ "source-select-shape-1.lean.txt": "8b7047b27a09fa593799128c9892d08534f5754a0f730ad4c9746e7199dd946e",
+ "source-select-shape-1.log.gz": "38c702d5d7593bdf0efb14c99a03e6cffa424750eda7bf57f3594f85a7eb6462",
+ "verify.py": "0e24c60b34227254d60c476b63d961694db035aeb0b4676ccde82a5fa4199cff"
+}
diff --git a/reports/data/hexrcf-enumerated-progress/source-enumeration-change.patch.gz b/reports/data/hexrcf-enumerated-progress/source-enumeration-change.patch.gz
new file mode 100644
index 0000000000..13263556c4
Binary files /dev/null and b/reports/data/hexrcf-enumerated-progress/source-enumeration-change.patch.gz differ
diff --git a/reports/data/hexrcf-enumerated-progress/source-enumeration-conformance-1.log.gz b/reports/data/hexrcf-enumerated-progress/source-enumeration-conformance-1.log.gz
new file mode 100644
index 0000000000..59e9a1a83d
Binary files /dev/null and b/reports/data/hexrcf-enumerated-progress/source-enumeration-conformance-1.log.gz differ
diff --git a/reports/data/hexrcf-enumerated-progress/source-enumeration-conformance-2.log.gz b/reports/data/hexrcf-enumerated-progress/source-enumeration-conformance-2.log.gz
new file mode 100644
index 0000000000..cd89e96384
Binary files /dev/null and b/reports/data/hexrcf-enumerated-progress/source-enumeration-conformance-2.log.gz differ
diff --git a/reports/data/hexrcf-enumerated-progress/source-enumeration-final-admissions.log.gz b/reports/data/hexrcf-enumerated-progress/source-enumeration-final-admissions.log.gz
new file mode 100644
index 0000000000..bd2ec29cdf
Binary files /dev/null and b/reports/data/hexrcf-enumerated-progress/source-enumeration-final-admissions.log.gz differ
diff --git a/reports/data/hexrcf-enumerated-progress/source-enumeration-final-copyright.log.gz b/reports/data/hexrcf-enumerated-progress/source-enumeration-final-copyright.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-enumerated-progress/source-enumeration-final-copyright.log.gz differ
diff --git a/reports/data/hexrcf-enumerated-progress/source-enumeration-final-dag.log.gz b/reports/data/hexrcf-enumerated-progress/source-enumeration-final-dag.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-enumerated-progress/source-enumeration-final-dag.log.gz differ
diff --git a/reports/data/hexrcf-enumerated-progress/source-enumeration-final-diff.log.gz b/reports/data/hexrcf-enumerated-progress/source-enumeration-final-diff.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-enumerated-progress/source-enumeration-final-diff.log.gz differ
diff --git a/reports/data/hexrcf-enumerated-progress/source-enumeration-final-freshness.log.gz b/reports/data/hexrcf-enumerated-progress/source-enumeration-final-freshness.log.gz
new file mode 100644
index 0000000000..44c03f6508
Binary files /dev/null and b/reports/data/hexrcf-enumerated-progress/source-enumeration-final-freshness.log.gz differ
diff --git a/reports/data/hexrcf-enumerated-progress/source-enumeration-final-inputs.json b/reports/data/hexrcf-enumerated-progress/source-enumeration-final-inputs.json
new file mode 100644
index 0000000000..73a646dd7e
--- /dev/null
+++ b/reports/data/hexrcf-enumerated-progress/source-enumeration-final-inputs.json
@@ -0,0 +1,4 @@
+{
+ "adapters/HexRCF/RealCoefficients/SourceBuild.lean": "eb66b3f56832e3fd6644a980fe3f13f62242dda88e84c6bf99dfc717c74290fe",
+ "conformance/HexRCF/SourceBuild.lean": "f70e66af4041dffdc43ed12145c5ff07a097d3c1a180caac629df6c0a15f8eeb"
+}
diff --git a/reports/data/hexrcf-enumerated-progress/source-enumeration-final-integration.log.gz b/reports/data/hexrcf-enumerated-progress/source-enumeration-final-integration.log.gz
new file mode 100644
index 0000000000..a64bd7e319
Binary files /dev/null and b/reports/data/hexrcf-enumerated-progress/source-enumeration-final-integration.log.gz differ
diff --git a/reports/data/hexrcf-enumerated-progress/source-enumeration-final-invocation.json b/reports/data/hexrcf-enumerated-progress/source-enumeration-final-invocation.json
new file mode 100644
index 0000000000..4822ffe4ba
--- /dev/null
+++ b/reports/data/hexrcf-enumerated-progress/source-enumeration-final-invocation.json
@@ -0,0 +1,14 @@
+{
+ "argv": [
+ "/home/kim/.codex/tasks/hex-10358/bin/run-bounded",
+ "lake",
+ "build",
+ "HexRCFRealCoefficients",
+ "+HexRCF.SourceBuild",
+ "+HexRCF.BoundedSource",
+ "+HexRCF.BoundedSource.Proofs",
+ "+HexRCF.EnumeratedSource.Proofs"
+ ],
+ "cwd": "/home/kim/worktrees/hex-dev/hex-dev-issue-10358",
+ "scope": "New source progress/acceptance declarations and fresh audit plus original native controls, optional umbrella and unchanged frozen proof compatibility; not full conformance/manual or new timing study"
+}
diff --git a/reports/data/hexrcf-enumerated-progress/source-enumeration-final-lines.log.gz b/reports/data/hexrcf-enumerated-progress/source-enumeration-final-lines.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-enumerated-progress/source-enumeration-final-lines.log.gz differ
diff --git a/reports/data/hexrcf-enumerated-progress/source-enumeration-final-literals.log.gz b/reports/data/hexrcf-enumerated-progress/source-enumeration-final-literals.log.gz
new file mode 100644
index 0000000000..251ef5b170
Binary files /dev/null and b/reports/data/hexrcf-enumerated-progress/source-enumeration-final-literals.log.gz differ
diff --git a/reports/data/hexrcf-enumerated-progress/source-enumeration-final-manifest.log.gz b/reports/data/hexrcf-enumerated-progress/source-enumeration-final-manifest.log.gz
new file mode 100644
index 0000000000..1e2a3e818a
Binary files /dev/null and b/reports/data/hexrcf-enumerated-progress/source-enumeration-final-manifest.log.gz differ
diff --git a/reports/data/hexrcf-enumerated-progress/source-enumeration-final-metadata-driver.log.gz b/reports/data/hexrcf-enumerated-progress/source-enumeration-final-metadata-driver.log.gz
new file mode 100644
index 0000000000..8d6d631ace
Binary files /dev/null and b/reports/data/hexrcf-enumerated-progress/source-enumeration-final-metadata-driver.log.gz differ
diff --git a/reports/data/hexrcf-enumerated-progress/source-enumeration-final-metadata.json b/reports/data/hexrcf-enumerated-progress/source-enumeration-final-metadata.json
new file mode 100644
index 0000000000..436bd93d7d
--- /dev/null
+++ b/reports/data/hexrcf-enumerated-progress/source-enumeration-final-metadata.json
@@ -0,0 +1,88 @@
+[
+ {
+ "name": "copyright",
+ "argv": [
+ "python3",
+ "scripts/check_copyright_headers.py"
+ ],
+ "exit_code": 0,
+ "log": "source-enumeration-final-copyright.log"
+ },
+ {
+ "name": "lines",
+ "argv": [
+ "python3",
+ "scripts/check_file_line_counts.py",
+ "--base",
+ "origin/main"
+ ],
+ "exit_code": 0,
+ "log": "source-enumeration-final-lines.log"
+ },
+ {
+ "name": "dag",
+ "argv": [
+ "python3",
+ "scripts/check_dag.py"
+ ],
+ "exit_code": 0,
+ "log": "source-enumeration-final-dag.log"
+ },
+ {
+ "name": "admissions",
+ "argv": [
+ "python3",
+ "scripts/ci/check_named_admissions.py"
+ ],
+ "exit_code": 0,
+ "log": "source-enumeration-final-admissions.log"
+ },
+ {
+ "name": "manifest",
+ "argv": [
+ "python3",
+ "scripts/release/check_released_manifest.py"
+ ],
+ "exit_code": 0,
+ "log": "source-enumeration-final-manifest.log"
+ },
+ {
+ "name": "freshness",
+ "argv": [
+ "python3",
+ "scripts/bench/check_factor_sweep_freshness.py"
+ ],
+ "exit_code": 0,
+ "log": "source-enumeration-final-freshness.log"
+ },
+ {
+ "name": "literals",
+ "argv": [
+ "python3",
+ "scripts/rcf/selected_literals.py",
+ "--check"
+ ],
+ "exit_code": 0,
+ "log": "source-enumeration-final-literals.log"
+ },
+ {
+ "name": "source_literals",
+ "argv": [
+ "python3",
+ "scripts/rcf/source_identity_literals.py",
+ "--check"
+ ],
+ "exit_code": 0,
+ "log": "source-enumeration-final-source_literals.log"
+ },
+ {
+ "name": "diff",
+ "argv": [
+ "git",
+ "diff",
+ "--check"
+ ],
+ "exit_code": 0,
+ "log": "source-enumeration-final-diff.log"
+ }
+]
diff --git a/reports/data/hexrcf-enumerated-progress/source-enumeration-final-source_literals.log.gz b/reports/data/hexrcf-enumerated-progress/source-enumeration-final-source_literals.log.gz
new file mode 100644
index 0000000000..ddc79da867
Binary files /dev/null and b/reports/data/hexrcf-enumerated-progress/source-enumeration-final-source_literals.log.gz differ
diff --git a/reports/data/hexrcf-enumerated-progress/source-enumeration-implementation-commit.log.gz b/reports/data/hexrcf-enumerated-progress/source-enumeration-implementation-commit.log.gz
new file mode 100644
index 0000000000..834cc8a7c8
Binary files /dev/null and b/reports/data/hexrcf-enumerated-progress/source-enumeration-implementation-commit.log.gz differ
diff --git a/reports/data/hexrcf-enumerated-progress/source-enumeration-progress-1.lean.txt b/reports/data/hexrcf-enumerated-progress/source-enumeration-progress-1.lean.txt
new file mode 100644
index 0000000000..2449669f82
--- /dev/null
+++ b/reports/data/hexrcf-enumerated-progress/source-enumeration-progress-1.lean.txt
@@ -0,0 +1,588 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+module
+public import HexRCF.RealCoefficients.RootBuild
+public import HexRCF.RealCoefficients.ScalarPacket
+public import HexRCF.RealCoefficients.SourceIdentity
+public section
+
+namespace Hex.RCF.RealCoefficients.SourceBuild
+open Hex Hex.RealClosure Hex.RealClosure.Tower Hex.SignDet
+variable {registry : BaseContext.Registry} {parent : Tower.Context registry}
+
+inductive Error where
+ | roots (error : RootBuild.Error)
+ | production (error : BuildError)
+ | descriptor (error : DescriptorError)
+ | equation
+ | enclosure
+ | ambiguous
+ | unselected
+ deriving Repr
+
+/-- Native proposals for one source root and the two independent scalar
+packets demanded by source authentication. The sign equalities only describe
+the proposed literal fields; they are not proof evidence about real values. -/
+structure Result (parent : Tower.Context registry) where
+ root : Descriptor parent.Value Signature parent.sign parent.signature
+ equation : ScalarPacket.Proposal
+ enclosure : ScalarPacket.Proposal
+ zero : equation.sign = 0
+ positive : enclosure.sign = 1
+
+/-- Visit every enumerated root. Failure to produce a row is terminal, and a
+second positive window match rejects an ambiguous source rather than choosing
+an arbitrary conjugate. No equation or enclosure is silently substituted. -/
+def select (polynomial window : DensePoly parent.Value)
+ (roots : List (Descriptor parent.Value Signature parent.sign parent.signature)) :
+ Except Error (Result parent) := do
+ let mut selected : Option (Result parent) := none
+ for root in roots do
+ let context := Algebraic.Context.adjoin root parent.isClean
+ let some equation := ScalarPacket.buildParts context parent.codec polynomial
+ | throw .equation
+ if zero : equation.sign = 0 then
+ let some enclosure := ScalarPacket.buildParts context parent.codec window
+ | throw .enclosure
+ if positive : enclosure.sign = 1 then
+ if selected.isSome then throw .ambiguous
+ selected := some ⟨root,equation,enclosure,zero,positive⟩
+ else unless enclosure.sign = 0 || enclosure.sign = -1 do throw .enclosure
+ else throw .equation
+ match selected with
+ | none => throw .unselected
+ | some result => return result
+
+/-- A lawful selected root satisfying the original equation and strictly
+positive window produces both scalar packets. No successful producer output
+or table is assumed. This establishes proposal progress, not frozen replay. -/
+theorem select_single (model : Model parent ℝ)
+ (root : Descriptor parent.Value Signature parent.sign parent.signature)
+ (polynomial window : DensePoly parent.Value)
+ (zero : (HexPolyTheory.Interpret.interpret model.value model.zero_iff polynomial).eval
+ (root.root model.value model.zero_iff model.one model.add model.sub model.mul model.nat model.sign) = 0)
+ (positive : 0 < (HexPolyTheory.Interpret.interpret model.value model.zero_iff window).eval
+ (root.root model.value model.zero_iff model.one model.add model.sub model.mul model.nat model.sign)) :
+ ∃ result, select polynomial window [root] = .ok result := by
+ let context := Algebraic.Context.adjoin root parent.isClean
+ have equationSign : context.signPoly polynomial = 0 := by
+ rw [context.signPoly_spec model.value model.zero_iff model.one model.add model.sub
+ model.mul model.nat model.sign model.neg model.inv]
+ simp [Algebraic.Context.evalPoly, Algebraic.Context.rootValue,
+ context, Algebraic.Context.root_adjoin, zero]
+ have windowSign : context.signPoly window = 1 := by
+ rw [context.signPoly_spec model.value model.zero_iff model.one model.add model.sub
+ model.mul model.nat model.sign model.neg model.inv]
+ have sign := congrArg (fun sign : SignType => (sign : Int)) (sign_eq_one_iff.mpr positive)
+ simpa [Algebraic.Context.evalPoly, Algebraic.Context.rootValue,
+ context, Algebraic.Context.root_adjoin] using sign
+ obtain ⟨equation, equationBuilt⟩ := ScalarPacket.buildParts_success model context parent.codec polynomial
+ obtain ⟨enclosure, enclosureBuilt⟩ := ScalarPacket.buildParts_success model context parent.codec window
+ have equationZero := (ScalarPacket.buildParts_sign model context parent.codec polynomial equation equationBuilt).trans equationSign
+ have enclosurePositive := (ScalarPacket.buildParts_sign model context parent.codec window enclosure enclosureBuilt).trans windowSign
+ dsimp only [context] at equationBuilt enclosureBuilt
+ refine ⟨⟨root,equation,enclosure,equationZero,enclosurePositive⟩, ?_⟩
+ simp [select, equationBuilt, enclosureBuilt, equationZero, enclosurePositive,
+ pure, Except.pure, bind, Except.bind]
+
+/-- Successful singleton selection retains two independently accepted scalar
+packets at its exact root, using the canonical predecessor codec. -/
+theorem select_checked (model : Model parent ℝ)
+ (root : Descriptor parent.Value Signature parent.sign parent.signature)
+ (polynomial window : DensePoly parent.Value) (result : Result parent)
+ (produced : select polynomial window [root] = .ok result) :
+ result.root = root ∧
+ result.equation.polynomial = Codec.poly parent.codec polynomial ∧
+ result.enclosure.polynomial = Codec.poly parent.codec window ∧
+ (let context := Algebraic.Context.adjoin result.root parent.isClean
+ (ScalarPacket.read model parent.codec context result.equation.polynomial
+ result.equation.sign result.equation.evidence).isSome = true ∧
+ (ScalarPacket.read model parent.codec context result.enclosure.polynomial
+ result.enclosure.sign result.enclosure.evidence).isSome = true) := by
+ cases equationBuilt : ScalarPacket.buildParts (Algebraic.Context.adjoin root parent.isClean)
+ parent.codec polynomial with
+ | none => simp [select, equationBuilt, pure, Except.pure, bind, Except.bind] at produced
+ | some equation =>
+ by_cases zero : equation.sign = 0
+ · cases enclosureBuilt : ScalarPacket.buildParts (Algebraic.Context.adjoin root parent.isClean)
+ parent.codec window with
+ | none => simp [select, equationBuilt, zero, enclosureBuilt, pure, Except.pure, bind, Except.bind] at produced
+ | some enclosure =>
+ by_cases positive : enclosure.sign = 1
+ · simp [select, equationBuilt, zero, enclosureBuilt, positive,
+ pure, Except.pure, bind, Except.bind] at produced
+ cases produced
+ exact ⟨rfl, ScalarPacket.buildParts_poly _ parent.codec polynomial equation equationBuilt,
+ ScalarPacket.buildParts_poly _ parent.codec window enclosure enclosureBuilt,
+ ScalarPacket.buildParts_accepted model _ parent.codec parent.codec_lawful
+ polynomial equation equationBuilt,
+ ScalarPacket.buildParts_accepted model _ parent.codec parent.codec_lawful
+ window enclosure enclosureBuilt⟩
+ · by_cases absent : enclosure.sign = 0 ∨ enclosure.sign = -1 <;>
+ simp [select, equationBuilt, zero, enclosureBuilt, positive, absent,
+ pure, Except.pure, bind, Except.bind, throw] at produced
+ · simp [select, equationBuilt, zero, pure, Except.pure, bind, Except.bind] at produced
+
+/-- A list of actual roots with exactly one positive window match produces a
+source. These are semantic input conditions; no scalar packet or successful
+producer result is assumed. -/
+theorem select_success (model : Model parent ℝ)
+ (polynomial window : DensePoly parent.Value)
+ (roots : List (Descriptor parent.Value Signature parent.sign parent.signature))
+ (zero : ∀ root ∈ roots,
+ (HexPolyTheory.Interpret.interpret model.value model.zero_iff polynomial).eval
+ (root.root model.value model.zero_iff model.one model.add model.sub model.mul
+ model.nat model.sign) = 0)
+ (one : (roots.filter fun root => Decidable.decide (0 <
+ (HexPolyTheory.Interpret.interpret model.value model.zero_iff window).eval
+ (root.root model.value model.zero_iff model.one model.add model.sub model.mul
+ model.nat model.sign))).length = 1) :
+ ∃ result, select polynomial window roots = .ok result := by
+ classical
+ let value (root : Descriptor parent.Value Signature parent.sign parent.signature) :=
+ root.root model.value model.zero_iff model.one model.add model.sub model.mul model.nat model.sign
+ let query root := (HexPolyTheory.Interpret.interpret model.value model.zero_iff window).eval (value root)
+ let marked root := Decidable.decide (0 < query root)
+ let step (root : Descriptor parent.Value Signature parent.sign parent.signature)
+ (state : Option (Result parent)) : Except Error (ForInStep (Option (Result parent))) := do
+ let context := Algebraic.Context.adjoin root parent.isClean
+ let some equation := ScalarPacket.buildParts context parent.codec polynomial | throw .equation
+ if zero : equation.sign = 0 then
+ let some enclosure := ScalarPacket.buildParts context parent.codec window | throw .enclosure
+ if positive : enclosure.sign = 1 then
+ if state.isSome then throw .ambiguous
+ return .yield (some ⟨root,equation,enclosure,zero,positive⟩)
+ else
+ unless enclosure.sign = 0 || enclosure.sign = -1 do throw .enclosure
+ return .yield state
+ else throw .equation
+ have advances (root) (member : root ∈ roots) (state : Option (Result parent))
+ (capacity : marked root = true → state.isSome = false) :
+ ∃ next, step root state = .ok (.yield next) ∧
+ (if next.isSome then 1 else 0) =
+ (if state.isSome then 1 else 0) + (if marked root then 1 else 0) := by
+ let context := Algebraic.Context.adjoin root parent.isClean
+ obtain ⟨equation,equationBuilt⟩ := ScalarPacket.buildParts_success model context parent.codec polynomial
+ obtain ⟨enclosure,enclosureBuilt⟩ := ScalarPacket.buildParts_success model context parent.codec window
+ have equationZero : equation.sign = 0 := by
+ rw [ScalarPacket.buildParts_sign model context parent.codec polynomial equation equationBuilt,
+ context.signPoly_spec model.value model.zero_iff model.one model.add model.sub
+ model.mul model.nat model.sign model.neg model.inv]
+ simp [Algebraic.Context.evalPoly, Algebraic.Context.rootValue, context,
+ Algebraic.Context.root_adjoin, zero root member]
+ have enclosureSign : enclosure.sign = (SignType.sign (query root) : Int) := by
+ rw [ScalarPacket.buildParts_sign model context parent.codec window enclosure enclosureBuilt,
+ context.signPoly_spec model.value model.zero_iff model.one model.add model.sub
+ model.mul model.nat model.sign model.neg model.inv]
+ simp [Algebraic.Context.evalPoly, Algebraic.Context.rootValue, context,
+ Algebraic.Context.root_adjoin, query, value]
+ dsimp only [context] at equationBuilt enclosureBuilt
+ by_cases positive : 0 < query root
+ · have enclosurePositive : enclosure.sign = 1 := enclosureSign.trans
+ (congrArg (fun sign : SignType => (sign : Int)) (sign_eq_one_iff.mpr positive))
+ have empty := capacity (by simp [marked,positive])
+ refine ⟨some ⟨root,equation,enclosure,equationZero,enclosurePositive⟩, ?_, ?_⟩
+ · simp [step,equationBuilt,enclosureBuilt,equationZero,enclosurePositive,empty,
+ bind,Except.bind,pure,Except.pure]
+ · simp [empty,marked,positive]
+ · have allowed : enclosure.sign = 0 ∨ enclosure.sign = -1 := by
+ rcases lt_or_eq_of_le (le_of_not_gt positive) with negative | equal
+ · exact Or.inr (enclosureSign.trans
+ (congrArg (fun sign : SignType => (sign : Int)) (sign_eq_neg_one_iff.mpr negative)))
+ · exact Or.inl (by simpa [equal] using enclosureSign)
+ have notOne : enclosure.sign ≠ 1 := by rcases allowed with h | h <;> omega
+ refine ⟨state, ?_, ?_⟩
+ · simp [step,equationBuilt,enclosureBuilt,equationZero,notOne,allowed,
+ bind,Except.bind,pure,Except.pure]
+ · simp [marked,positive]
+ have loop (rest : List _) (members : ∀ root ∈ rest, root ∈ roots) (state : Option (Result parent))
+ (count : (rest.filter marked).length + (if state.isSome then 1 else 0) = 1) :
+ ∃ output, forIn rest state step = .ok output ∧ output.isSome = true := by
+ induction rest generalizing state with
+ | nil =>
+ cases state with
+ | none => simp at count
+ | some source => exact ⟨some source, by simp [pure,Except.pure], rfl⟩
+ | cons root rest ih =>
+ have capacity : marked root = true → state.isSome = false := by
+ intro positive
+ have bound := count
+ simp only [List.filter_cons,positive,↓reduceIte,List.length_cons] at bound
+ cases occupied : state.isSome <;> simp_all
+ obtain ⟨next,advanced,flags⟩ := advances root (members root (by simp)) state capacity
+ have remaining : (rest.filter marked).length + (if next.isSome then 1 else 0) = 1 := by
+ cases positive : marked root <;> simp [positive] at count flags <;> omega
+ obtain ⟨output,returned,present⟩ := ih (fun root member => members root (by simp [member])) next remaining
+ exact ⟨output, by simpa [List.forIn_cons,advanced,bind,Except.bind] using returned, present⟩
+ obtain ⟨state,returned,present⟩ := loop roots (fun _ member => member) none (by simpa [marked,query,value] using one)
+ cases state with
+ | none => simp at present
+ | some source =>
+ refine ⟨source, ?_⟩
+ change (do
+ let state ← forIn roots (none : Option (Result parent)) step
+ match state with
+ | none => throw Error.unselected
+ | some source => pure source) = .ok source
+ simp [returned,bind,Except.bind,pure,Except.pure]
+
+/-- Every successful selection from an arbitrary root list retains a member
+of that list and independently accepted packets for the original two keys.
+No singleton-list, producer-success or serialization premise is required. -/
+theorem select_checks (model : Model parent ℝ)
+ (polynomial window : DensePoly parent.Value)
+ (roots : List (Descriptor parent.Value Signature parent.sign parent.signature))
+ (result : Result parent) (produced : select polynomial window roots = .ok result) :
+ result.root ∈ roots ∧
+ result.equation.polynomial = Codec.poly parent.codec polynomial ∧
+ result.enclosure.polynomial = Codec.poly parent.codec window ∧
+ (let context := Algebraic.Context.adjoin result.root parent.isClean
+ (ScalarPacket.read model parent.codec context result.equation.polynomial
+ result.equation.sign result.equation.evidence).isSome = true ∧
+ (ScalarPacket.read model parent.codec context result.enclosure.polynomial
+ result.enclosure.sign result.enclosure.evidence).isSome = true) := by
+ let checked (source : Result parent) : Prop :=
+ source.root ∈ roots ∧
+ source.equation.polynomial = Codec.poly parent.codec polynomial ∧
+ source.enclosure.polynomial = Codec.poly parent.codec window ∧
+ (let context := Algebraic.Context.adjoin source.root parent.isClean
+ (ScalarPacket.read model parent.codec context source.equation.polynomial
+ source.equation.sign source.equation.evidence).isSome = true ∧
+ (ScalarPacket.read model parent.codec context source.enclosure.polynomial
+ source.enclosure.sign source.enclosure.evidence).isSome = true)
+ let invariant (state : Option (Result parent)) : Prop :=
+ ∀ source, state = some source → checked source
+ let step (root : Descriptor parent.Value Signature parent.sign parent.signature)
+ (state : Option (Result parent)) : Except Error (ForInStep (Option (Result parent))) := do
+ let context := Algebraic.Context.adjoin root parent.isClean
+ let some equation := ScalarPacket.buildParts context parent.codec polynomial
+ | throw .equation
+ if zero : equation.sign = 0 then
+ let some enclosure := ScalarPacket.buildParts context parent.codec window
+ | throw .enclosure
+ if positive : enclosure.sign = 1 then
+ if state.isSome then throw .ambiguous
+ return .yield (some ⟨root,equation,enclosure,zero,positive⟩)
+ else
+ unless enclosure.sign = 0 || enclosure.sign = -1 do throw .enclosure
+ return .yield state
+ else throw .equation
+ have preserves (root) (member : root ∈ roots) (state) (valid : invariant state)
+ (next) (returned : step root state = .ok next) : invariant next.value := by
+ cases equationBuilt : ScalarPacket.buildParts (Algebraic.Context.adjoin root parent.isClean)
+ parent.codec polynomial with
+ | none => simp [step, equationBuilt, bind, Except.bind] at returned
+ | some equation =>
+ by_cases zero : equation.sign = 0
+ · cases enclosureBuilt : ScalarPacket.buildParts (Algebraic.Context.adjoin root parent.isClean)
+ parent.codec window with
+ | none => simp [step, equationBuilt, zero, enclosureBuilt, bind, Except.bind] at returned
+ | some enclosure =>
+ by_cases positive : enclosure.sign = 1
+ · by_cases occupied : state.isSome = true
+ · simp [step, equationBuilt, zero, enclosureBuilt, positive, occupied,
+ bind, Except.bind] at returned
+ · simp [step, equationBuilt, zero, enclosureBuilt, positive, occupied,
+ bind, Except.bind, pure, Except.pure] at returned
+ cases returned
+ have accepted : checked ⟨root,equation,enclosure,zero,positive⟩ :=
+ ⟨member, ScalarPacket.buildParts_poly _ parent.codec polynomial equation equationBuilt,
+ ScalarPacket.buildParts_poly _ parent.codec window enclosure enclosureBuilt,
+ ScalarPacket.buildParts_accepted model _ parent.codec parent.codec_lawful
+ polynomial equation equationBuilt,
+ ScalarPacket.buildParts_accepted model _ parent.codec parent.codec_lawful
+ window enclosure enclosureBuilt⟩
+ simpa [invariant] using accepted
+ · by_cases allowed : enclosure.sign = 0 ∨ enclosure.sign = -1
+ · simp [step, equationBuilt, zero, enclosureBuilt, positive, allowed,
+ bind, Except.bind, pure, Except.pure] at returned
+ cases returned
+ exact valid
+ · simp [step, equationBuilt, zero, enclosureBuilt, positive, allowed,
+ bind, Except.bind] at returned
+ · simp [step, equationBuilt, zero, bind, Except.bind] at returned
+ have loop (rest : List _) (members : ∀ root ∈ rest, root ∈ roots)
+ (state output) (valid : invariant state)
+ (returned : forIn rest state step = .ok output) : invariant output := by
+ induction rest generalizing state output with
+ | nil =>
+ simp only [List.forIn_nil, pure, Except.pure, Except.ok.injEq] at returned
+ cases returned
+ exact valid
+ | cons root rest ih =>
+ rw [List.forIn_cons] at returned
+ cases advanced : step root state with
+ | error cause => simp [advanced, bind, Except.bind] at returned
+ | ok next =>
+ have validNext := preserves root (members root (by simp)) state valid next advanced
+ cases next with
+ | done next =>
+ simp [advanced, bind, Except.bind, pure, Except.pure] at returned
+ cases returned
+ exact validNext
+ | yield next =>
+ exact ih (fun root member => members root (by simp [member])) next output validNext
+ (by simpa [advanced, bind, Except.bind] using returned)
+ change (do
+ let state ← forIn roots (none : Option (Result parent)) step
+ match state with
+ | none => throw Error.unselected
+ | some source => pure source) = .ok result at produced
+ cases returned : forIn roots (none : Option (Result parent)) step with
+ | error cause => simp [returned, bind, Except.bind] at produced
+ | ok state =>
+ have valid := loop roots (fun _ member => member) none state
+ (by intro source impossible; cases impossible) returned
+ cases state with
+ | none => simp [returned, bind, Except.bind] at produced
+ | some source =>
+ simp [returned, bind, Except.bind, pure, Except.pure] at produced
+ cases produced
+ exact valid result rfl
+
+/-- Enumerate with the existing owner root producer and select exactly one
+root using the supplied enclosure polynomial. The usual window is the source
+isolating-square margin. Its original-source interpretation and selected-root
+identity are subsequently checked by `SourceIdentity.quoteWith`; this producer
+does not prove them, reconstruct a frozen parent, or establish completeness. -/
+def build (polynomial window : DensePoly parent.Value) : Except Error (Result parent) := do
+ let roots ← RootBuild.build polynomial |>.mapError Error.roots
+ select polynomial window roots.roots
+
+/-- A squarefree real head with exactly one positive window root produces a
+source by complete enumeration. Coverage and absence of duplicate real roots
+come from the owner's checked table; neither a native root list nor a
+successful scalar production result is supplied as a premise. -/
+theorem build_success (model : Model parent ℝ)
+ (polynomial window : DensePoly parent.Value)
+ (squarefree : Squarefree (HexPolyTheory.Interpret.interpret model.value model.zero_iff polynomial))
+ (unique : ∃! x : ℝ,
+ x ∈ HexRealRootsTheory.Tarski.rootsIn
+ (HexPolyTheory.Interpret.interpret model.value model.zero_iff polynomial) .negInf .posInf ∧
+ 0 < (HexPolyTheory.Interpret.interpret model.value model.zero_iff window).eval x) :
+ ∃ result, build polynomial window = .ok result := by
+ classical
+ obtain ⟨roots,enumerated⟩ := RootBuild.success model polynomial squarefree
+ let value (root : Descriptor parent.Value Signature parent.sign parent.signature) :=
+ root.root model.value model.zero_iff model.one model.add model.sub model.mul model.nat model.sign
+ let positive (x : ℝ) := Decidable.decide
+ (0 < (HexPolyTheory.Interpret.interpret model.value model.zero_iff window).eval x)
+ let matches := (roots.values model).filter positive
+ have coverage := roots.coverage model
+ obtain ⟨anchor,selected,only⟩ := unique
+ have subset : matches ⊆ [anchor] := by
+ intro x member
+ obtain ⟨root,window⟩ := List.mem_filter.mp member
+ exact List.mem_singleton.mpr (only x ⟨(coverage.1 x).mpr root, of_decide_eq_true window⟩)
+ have bound : matches.length ≤ 1 := by
+ simpa using (coverage.2.filter positive).length_le_of_subset subset
+ have present : anchor ∈ matches :=
+ List.mem_filter.mpr ⟨(coverage.1 anchor).mp selected.1, by simpa [positive] using selected.2⟩
+ have nonzero : matches.length ≠ 0 := by
+ intro empty
+ simpa [List.length_eq_zero_iff.mp empty] using present
+ have one : matches.length = 1 := by omega
+ have mapped : (roots.roots.filter (fun root => positive (value root))).map value = matches := by
+ simp only [matches, RootReplay.Result.values, List.filter_map, Function.comp_def, value]
+ have count : (roots.roots.filter fun root => Decidable.decide (0 <
+ (HexPolyTheory.Interpret.interpret model.value model.zero_iff window).eval
+ (root.root model.value model.zero_iff model.one model.add model.sub model.mul
+ model.nat model.sign))).length = 1 := by
+ change (roots.roots.filter (fun root => positive (value root))).length = 1
+ rw [← List.length_map value, mapped]
+ exact one
+ obtain ⟨result,produced⟩ := select_success model polynomial window roots.roots
+ (fun root member => ((HexRealRootsTheory.Tarski.mem_rootsIn_iff _ squarefree.ne_zero _ _ _).mp
+ (roots.root_spec model root member)).1) count
+ refine ⟨result, ?_⟩
+ simp [build,enumerated,Except.mapError,produced,bind,Except.bind]
+
+/-- Successful enumeration retains the exact original full descriptor, an
+actual real root and independently accepted original equation/window packets.
+The root and serialization facts are checked conclusions, not assumptions.
+Predecessor reconstruction and source-alias identification remain separate. -/
+theorem build_checked (model : Model parent ℝ)
+ (polynomial window : DensePoly parent.Value) (result : Result parent)
+ (produced : build polynomial window = .ok result) :
+ ∃ word, result.root.raw = (RootReplay.subject polynomial .negInf .posInf).full word ∧
+ result.root.root model.value model.zero_iff model.one model.add model.sub model.mul
+ model.nat model.sign ∈ HexRealRootsTheory.Tarski.rootsIn
+ (HexPolyTheory.Interpret.interpret model.value model.zero_iff polynomial)
+ .negInf .posInf ∧
+ result.equation.polynomial = Codec.poly parent.codec polynomial ∧
+ result.enclosure.polynomial = Codec.poly parent.codec window ∧
+ (let context := Algebraic.Context.adjoin result.root parent.isClean
+ (ScalarPacket.read model parent.codec context result.equation.polynomial
+ result.equation.sign result.equation.evidence).isSome = true ∧
+ (ScalarPacket.read model parent.codec context result.enclosure.polynomial
+ result.enclosure.sign result.enclosure.evidence).isSome = true) := by
+ cases enumerated : RootBuild.build polynomial with
+ | error cause => simp [build, enumerated, Except.mapError, bind, Except.bind] at produced
+ | ok roots =>
+ have selected : select polynomial window roots.roots = .ok result := by
+ simpa [build, enumerated, Except.mapError, bind, Except.bind] using produced
+ obtain ⟨member,equation,enclosure,accepted⟩ :=
+ select_checks model polynomial window roots.roots result selected
+ obtain ⟨word,raw⟩ := roots.fields result.root member
+ exact ⟨word,raw,roots.root_spec model result.root member,equation,enclosure,accepted⟩
+
+/-- Propose a source in an open interval with root-free endpoints. The
+owner checks the endpoints and exactly one root before constructing a
+descriptor with no derivative queries. The independent equation and original
+window packets are still required. Invalid domains, absent/ambiguous roots
+and production failures remain distinct; no all-real enumeration is retried.
+This is certificate production, not source identification or completeness. -/
+def buildOn (polynomial window : DensePoly parent.Value)
+ (lower upper : Endpoint parent.Value) : Except Error (Result parent) := do
+ let raw : RawDescriptor parent.Value Signature :=
+ ⟨parent.signature, polynomial, lower, upper, [], []⟩
+ let root ← match Descriptor.build parent.sign parent.signature raw with
+ | .error error => .error (.production error)
+ | .ok (.error error) => .error (.descriptor error)
+ | .ok (.ok root) => .ok root
+ select polynomial window [root]
+
+/-- Actual bounded production implies independent acceptance of its original
+equation and enclosure packets. No serialization or graph-shape premise is
+added; the canonical parent codec already has its owner roundtrip law. -/
+theorem buildOn_checked (model : Model parent ℝ)
+ (polynomial window : DensePoly parent.Value) (lower upper : Endpoint parent.Value)
+ (result : Result parent) (produced : buildOn polynomial window lower upper = .ok result) :
+ result.root.raw = ⟨parent.signature,polynomial,lower,upper,[],[]⟩ ∧
+ result.equation.polynomial = Codec.poly parent.codec polynomial ∧
+ result.enclosure.polynomial = Codec.poly parent.codec window ∧
+ (let context := Algebraic.Context.adjoin result.root parent.isClean
+ (ScalarPacket.read model parent.codec context result.equation.polynomial
+ result.equation.sign result.equation.evidence).isSome = true ∧
+ (ScalarPacket.read model parent.codec context result.enclosure.polynomial
+ result.enclosure.sign result.enclosure.evidence).isSome = true) := by
+ cases built : Descriptor.build parent.sign parent.signature
+ (⟨parent.signature,polynomial,lower,upper,[],[]⟩ : RawDescriptor parent.Value Signature) with
+ | error error => simp [buildOn, built, bind, Except.bind] at produced
+ | ok outcome =>
+ cases outcome with
+ | error error => simp [buildOn, built, bind, Except.bind] at produced
+ | ok root =>
+ have selected : select polynomial window [root] = .ok result := by
+ simpa only [buildOn, built, bind, Except.bind] using produced
+ obtain ⟨same, equation, enclosure, checked⟩ := select_checked model root polynomial window result selected
+ exact ⟨(congrArg (·.raw) same).trans (Descriptor.build_raw built), equation, enclosure, checked⟩
+
+/-- Accepted produced packets identify the original selected source. The
+source witness, alias selection and coefficient-map laws are inputs; scalar
+vanishing and window positivity are derived from the returned packets. This
+soundness law does not replace independent frozen quotation. -/
+theorem buildOn_identify (model : Model parent ℝ)
+ (polynomial window : DensePoly parent.Value) (lower upper : Endpoint parent.Value)
+ (result : Result parent) (produced : buildOn polynomial window lower upper = .ok result)
+ (sourceP : ZPoly) (square : DyadicSquare)
+ (hw : atomWitness sourceP square) (hp : (mahlerPrec sourceP : Int) ≤ square.prec)
+ (anchor : ℝ) (selected : (Field.literalRep sourceP square hw hp).root.re = anchor)
+ (equationValue : HexPolyTheory.Interpret.interpret model.value model.zero_iff polynomial =
+ LiteralSign.realPoly (ZPoly.toRatPoly sourceP))
+ (enclosureValue : HexPolyTheory.Interpret.interpret model.value model.zero_iff window =
+ LiteralSign.realPoly (SourceIdentity.margin square)) :
+ result.root.root model.value model.zero_iff model.one model.add model.sub model.mul
+ model.nat model.sign = anchor := by
+ obtain ⟨_, equationKey, enclosureKey, equationRead, enclosureRead⟩ :=
+ buildOn_checked model polynomial window lower upper result produced
+ let context := Algebraic.Context.adjoin result.root parent.isClean
+ let equation := ScalarPacket.restore model parent.codec context result.equation.polynomial
+ result.equation.sign result.equation.evidence equationRead
+ let enclosure := ScalarPacket.restore model parent.codec context result.enclosure.polynomial
+ result.enclosure.sign result.enclosure.evidence enclosureRead
+ have equationPoly : equation.polynomial = polynomial := by
+ change ScalarPacket.key parent.codec result.equation.polynomial = polynomial
+ rw [equationKey]
+ simp only [ScalarPacket.key, Codec.read_poly parent.codec parent.codec_lawful,
+ Except.toOption, Option.getD_some]
+ have enclosurePoly : enclosure.polynomial = window := by
+ change ScalarPacket.key parent.codec result.enclosure.polynomial = window
+ rw [enclosureKey]
+ simp only [ScalarPacket.key, Codec.read_poly parent.codec parent.codec_lawful,
+ Except.toOption, Option.getD_some]
+ apply SourceIdentity.identify model result.root sourceP square hw hp anchor selected equation enclosure
+ · rw [equationPoly]
+ exact equationValue
+ · rw [enclosurePoly]
+ exact enclosureValue
+ · exact result.zero
+ · exact result.positive
+
+/-- An ordinary-real count-one domain with a positive original window yields
+an actual bounded source proposal. The domain, count and sign premises are
+mathematical properties of the input, not successful producer equations.
+Frozen serialization acceptance and source alias identification are separate. -/
+theorem buildOn_success (model : Model parent ℝ)
+ (polynomial window : DensePoly parent.Value) (lower upper : Endpoint parent.Value)
+ (domain : HexSturmTheory.Domain model.value model.zero_iff polynomial lower upper)
+ (one : (HexRealRootsTheory.Tarski.rootsIn
+ (HexPolyTheory.Interpret.interpret model.value model.zero_iff polynomial)
+ (lower.map model.value) (upper.map model.value)).card = 1)
+ (positive : ∀ x ∈ HexRealRootsTheory.Tarski.rootsIn
+ (HexPolyTheory.Interpret.interpret model.value model.zero_iff polynomial)
+ (lower.map model.value) (upper.map model.value),
+ 0 < (HexPolyTheory.Interpret.interpret model.value model.zero_iff window).eval x) :
+ ∃ result, buildOn polynomial window lower upper = .ok result := by
+ classical
+ have countPositive : 0 < (HexRealRootsTheory.Tarski.rootsIn
+ (HexPolyTheory.Interpret.interpret model.value model.zero_iff polynomial)
+ (lower.map model.value) (upper.map model.value)).card := by
+ rw [one]
+ exact Nat.zero_lt_one
+ obtain ⟨witness, inDomain⟩ := Finset.card_pos.mp countPositive
+ have rootZero := ((HexRealRootsTheory.Tarski.mem_rootsIn_iff _ domain.1 _ _ _).mp inDomain).1
+ have semanticDegree := Polynomial.natDegree_pos_iff_degree_pos.mpr
+ (Polynomial.degree_pos_of_root domain.1 rootZero)
+ have degree : 0 < polynomial.natDegree := by
+ simpa only [HexPolyTheory.Interpret.natDegree_interpret] using semanticDegree
+ let raw : RawDescriptor parent.Value Signature :=
+ ⟨parent.signature,polynomial,lower,upper,[],[]⟩
+ obtain ⟨root, built⟩ := (Descriptor.build_success_iff model.value model.zero_iff
+ model.one model.add model.sub model.mul model.nat model.neg model.inv
+ parent.sign model.sign parent.signature raw).mpr
+ ⟨rfl, by simp [raw, RawDescriptor.wellFormed, degree], domain,
+ by simpa [raw, RawDescriptor.queries, signsAt] using one⟩
+ have retained := Descriptor.build_raw built
+ have member : root.root model.value model.zero_iff model.one model.add model.sub
+ model.mul model.nat model.sign ∈ HexRealRootsTheory.Tarski.rootsIn
+ (HexPolyTheory.Interpret.interpret model.value model.zero_iff polynomial)
+ (lower.map model.value) (upper.map model.value) := by
+ simpa only [retained] using (root.root_spec model.value model.zero_iff model.one
+ model.add model.sub model.mul model.nat model.sign).1
+ have zero := ((HexRealRootsTheory.Tarski.mem_rootsIn_iff _ domain.1 _ _ _).mp member).1
+ obtain ⟨result, selected⟩ := select_single model root polynomial window zero (positive _ member)
+ dsimp only [raw] at built
+ refine ⟨result, ?_⟩
+ simpa only [buildOn, built, bind, Except.bind] using selected
+
+/-- Valid count-one real inputs yield actual bounded production, exact literal
+subjects and two independently accepted scalar packets. The codec law belongs
+to the canonical parent; no accepted-output or serialization premise is added.
+This does not reconstruct a frozen parent history or identify a source alias. -/
+theorem buildOn_checks (model : Model parent ℝ)
+ (polynomial window : DensePoly parent.Value) (lower upper : Endpoint parent.Value)
+ (domain : HexSturmTheory.Domain model.value model.zero_iff polynomial lower upper)
+ (one : (HexRealRootsTheory.Tarski.rootsIn
+ (HexPolyTheory.Interpret.interpret model.value model.zero_iff polynomial)
+ (lower.map model.value) (upper.map model.value)).card = 1)
+ (positive : ∀ x ∈ HexRealRootsTheory.Tarski.rootsIn
+ (HexPolyTheory.Interpret.interpret model.value model.zero_iff polynomial)
+ (lower.map model.value) (upper.map model.value),
+ 0 < (HexPolyTheory.Interpret.interpret model.value model.zero_iff window).eval x) :
+ ∃ result, buildOn polynomial window lower upper = .ok result ∧
+ result.root.raw = ⟨parent.signature,polynomial,lower,upper,[],[]⟩ ∧
+ result.equation.polynomial = Codec.poly parent.codec polynomial ∧
+ result.enclosure.polynomial = Codec.poly parent.codec window ∧
+ (let context := Algebraic.Context.adjoin result.root parent.isClean
+ (ScalarPacket.read model parent.codec context result.equation.polynomial
+ result.equation.sign result.equation.evidence).isSome = true ∧
+ (ScalarPacket.read model parent.codec context result.enclosure.polynomial
+ result.enclosure.sign result.enclosure.evidence).isSome = true) := by
+ obtain ⟨result, produced⟩ := buildOn_success model polynomial window lower upper domain one positive
+ exact ⟨result, produced, buildOn_checked model polynomial window lower upper result produced⟩
+
+end Hex.RCF.RealCoefficients.SourceBuild
diff --git a/reports/data/hexrcf-enumerated-progress/source-enumeration-progress-1.log.gz b/reports/data/hexrcf-enumerated-progress/source-enumeration-progress-1.log.gz
new file mode 100644
index 0000000000..ef08f58451
Binary files /dev/null and b/reports/data/hexrcf-enumerated-progress/source-enumeration-progress-1.log.gz differ
diff --git a/reports/data/hexrcf-enumerated-progress/source-enumeration-progress-2.log.gz b/reports/data/hexrcf-enumerated-progress/source-enumeration-progress-2.log.gz
new file mode 100644
index 0000000000..6b5448d7cc
Binary files /dev/null and b/reports/data/hexrcf-enumerated-progress/source-enumeration-progress-2.log.gz differ
diff --git a/reports/data/hexrcf-enumerated-progress/source-enumeration-projection.json b/reports/data/hexrcf-enumerated-progress/source-enumeration-projection.json
new file mode 100644
index 0000000000..6ccd5ad6d5
--- /dev/null
+++ b/reports/data/hexrcf-enumerated-progress/source-enumeration-projection.json
@@ -0,0 +1,16 @@
+[
+ {
+ "path": "adapters/HexRCF/RealCoefficients/SourceBuild.lean",
+ "base_commit": "d1c635143ac1dd2bbd136995495cc6028cb5add1",
+ "base_sha256": "e4e6d8fd707f32e78091e42f5996a0dfd703b82973ed993b0a7795efc15388ca",
+ "projection_sha256": "e4e6d8fd707f32e78091e42f5996a0dfd703b82973ed993b0a7795efc15388ca",
+ "status": "byte-exact recovery after removing new theorem regions or restoring only the expanded Meta audit"
+ },
+ {
+ "path": "conformance/HexRCF/SourceBuild.lean",
+ "base_commit": "d1c635143ac1dd2bbd136995495cc6028cb5add1",
+ "base_sha256": "c12b24a04234a45da0f4bf3be83bee517ec9ccff2451e804d258bf9bcab2ba5e",
+ "projection_sha256": "c12b24a04234a45da0f4bf3be83bee517ec9ccff2451e804d258bf9bcab2ba5e",
+ "status": "byte-exact recovery after removing new theorem regions or restoring only the expanded Meta audit"
+ }
+]
diff --git a/reports/data/hexrcf-enumerated-progress/source-select-checks-1.lean.txt b/reports/data/hexrcf-enumerated-progress/source-select-checks-1.lean.txt
new file mode 100644
index 0000000000..7c8158d5ba
--- /dev/null
+++ b/reports/data/hexrcf-enumerated-progress/source-select-checks-1.lean.txt
@@ -0,0 +1,408 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+module
+public import HexRCF.RealCoefficients.RootBuild
+public import HexRCF.RealCoefficients.ScalarPacket
+public import HexRCF.RealCoefficients.SourceIdentity
+public section
+
+namespace Hex.RCF.RealCoefficients.SourceBuild
+open Hex Hex.RealClosure Hex.RealClosure.Tower Hex.SignDet
+variable {registry : BaseContext.Registry} {parent : Tower.Context registry}
+
+inductive Error where
+ | roots (error : RootBuild.Error)
+ | production (error : BuildError)
+ | descriptor (error : DescriptorError)
+ | equation
+ | enclosure
+ | ambiguous
+ | unselected
+ deriving Repr
+
+/-- Native proposals for one source root and the two independent scalar
+packets demanded by source authentication. The sign equalities only describe
+the proposed literal fields; they are not proof evidence about real values. -/
+structure Result (parent : Tower.Context registry) where
+ root : Descriptor parent.Value Signature parent.sign parent.signature
+ equation : ScalarPacket.Proposal
+ enclosure : ScalarPacket.Proposal
+ zero : equation.sign = 0
+ positive : enclosure.sign = 1
+
+/-- Visit every enumerated root. Failure to produce a row is terminal, and a
+second positive window match rejects an ambiguous source rather than choosing
+an arbitrary conjugate. No equation or enclosure is silently substituted. -/
+def select (polynomial window : DensePoly parent.Value)
+ (roots : List (Descriptor parent.Value Signature parent.sign parent.signature)) :
+ Except Error (Result parent) := do
+ let mut selected : Option (Result parent) := none
+ for root in roots do
+ let context := Algebraic.Context.adjoin root parent.isClean
+ let some equation := ScalarPacket.buildParts context parent.codec polynomial
+ | throw .equation
+ if zero : equation.sign = 0 then
+ let some enclosure := ScalarPacket.buildParts context parent.codec window
+ | throw .enclosure
+ if positive : enclosure.sign = 1 then
+ if selected.isSome then throw .ambiguous
+ selected := some ⟨root,equation,enclosure,zero,positive⟩
+ else unless enclosure.sign = 0 || enclosure.sign = -1 do throw .enclosure
+ else throw .equation
+ match selected with
+ | none => throw .unselected
+ | some result => return result
+
+/-- A lawful selected root satisfying the original equation and strictly
+positive window produces both scalar packets. No successful producer output
+or table is assumed. This establishes proposal progress, not frozen replay. -/
+theorem select_single (model : Model parent ℝ)
+ (root : Descriptor parent.Value Signature parent.sign parent.signature)
+ (polynomial window : DensePoly parent.Value)
+ (zero : (HexPolyTheory.Interpret.interpret model.value model.zero_iff polynomial).eval
+ (root.root model.value model.zero_iff model.one model.add model.sub model.mul model.nat model.sign) = 0)
+ (positive : 0 < (HexPolyTheory.Interpret.interpret model.value model.zero_iff window).eval
+ (root.root model.value model.zero_iff model.one model.add model.sub model.mul model.nat model.sign)) :
+ ∃ result, select polynomial window [root] = .ok result := by
+ let context := Algebraic.Context.adjoin root parent.isClean
+ have equationSign : context.signPoly polynomial = 0 := by
+ rw [context.signPoly_spec model.value model.zero_iff model.one model.add model.sub
+ model.mul model.nat model.sign model.neg model.inv]
+ simp [Algebraic.Context.evalPoly, Algebraic.Context.rootValue,
+ context, Algebraic.Context.root_adjoin, zero]
+ have windowSign : context.signPoly window = 1 := by
+ rw [context.signPoly_spec model.value model.zero_iff model.one model.add model.sub
+ model.mul model.nat model.sign model.neg model.inv]
+ have sign := congrArg (fun sign : SignType => (sign : Int)) (sign_eq_one_iff.mpr positive)
+ simpa [Algebraic.Context.evalPoly, Algebraic.Context.rootValue,
+ context, Algebraic.Context.root_adjoin] using sign
+ obtain ⟨equation, equationBuilt⟩ := ScalarPacket.buildParts_success model context parent.codec polynomial
+ obtain ⟨enclosure, enclosureBuilt⟩ := ScalarPacket.buildParts_success model context parent.codec window
+ have equationZero := (ScalarPacket.buildParts_sign model context parent.codec polynomial equation equationBuilt).trans equationSign
+ have enclosurePositive := (ScalarPacket.buildParts_sign model context parent.codec window enclosure enclosureBuilt).trans windowSign
+ dsimp only [context] at equationBuilt enclosureBuilt
+ refine ⟨⟨root,equation,enclosure,equationZero,enclosurePositive⟩, ?_⟩
+ simp [select, equationBuilt, enclosureBuilt, equationZero, enclosurePositive,
+ pure, Except.pure, bind, Except.bind]
+
+/-- Successful singleton selection retains two independently accepted scalar
+packets at its exact root, using the canonical predecessor codec. -/
+theorem select_checked (model : Model parent ℝ)
+ (root : Descriptor parent.Value Signature parent.sign parent.signature)
+ (polynomial window : DensePoly parent.Value) (result : Result parent)
+ (produced : select polynomial window [root] = .ok result) :
+ result.root = root ∧
+ result.equation.polynomial = Codec.poly parent.codec polynomial ∧
+ result.enclosure.polynomial = Codec.poly parent.codec window ∧
+ (let context := Algebraic.Context.adjoin result.root parent.isClean
+ (ScalarPacket.read model parent.codec context result.equation.polynomial
+ result.equation.sign result.equation.evidence).isSome = true ∧
+ (ScalarPacket.read model parent.codec context result.enclosure.polynomial
+ result.enclosure.sign result.enclosure.evidence).isSome = true) := by
+ cases equationBuilt : ScalarPacket.buildParts (Algebraic.Context.adjoin root parent.isClean)
+ parent.codec polynomial with
+ | none => simp [select, equationBuilt, pure, Except.pure, bind, Except.bind] at produced
+ | some equation =>
+ by_cases zero : equation.sign = 0
+ · cases enclosureBuilt : ScalarPacket.buildParts (Algebraic.Context.adjoin root parent.isClean)
+ parent.codec window with
+ | none => simp [select, equationBuilt, zero, enclosureBuilt, pure, Except.pure, bind, Except.bind] at produced
+ | some enclosure =>
+ by_cases positive : enclosure.sign = 1
+ · simp [select, equationBuilt, zero, enclosureBuilt, positive,
+ pure, Except.pure, bind, Except.bind] at produced
+ cases produced
+ exact ⟨rfl, ScalarPacket.buildParts_poly _ parent.codec polynomial equation equationBuilt,
+ ScalarPacket.buildParts_poly _ parent.codec window enclosure enclosureBuilt,
+ ScalarPacket.buildParts_accepted model _ parent.codec parent.codec_lawful
+ polynomial equation equationBuilt,
+ ScalarPacket.buildParts_accepted model _ parent.codec parent.codec_lawful
+ window enclosure enclosureBuilt⟩
+ · by_cases absent : enclosure.sign = 0 ∨ enclosure.sign = -1 <;>
+ simp [select, equationBuilt, zero, enclosureBuilt, positive, absent,
+ pure, Except.pure, bind, Except.bind, throw] at produced
+ · simp [select, equationBuilt, zero, pure, Except.pure, bind, Except.bind] at produced
+
+/-- Every successful selection from an arbitrary root list retains a member
+of that list and independently accepted packets for the original two keys.
+No singleton-list, producer-success or serialization premise is required. -/
+theorem select_checks (model : Model parent ℝ)
+ (polynomial window : DensePoly parent.Value)
+ (roots : List (Descriptor parent.Value Signature parent.sign parent.signature))
+ (result : Result parent) (produced : select polynomial window roots = .ok result) :
+ result.root ∈ roots ∧
+ result.equation.polynomial = Codec.poly parent.codec polynomial ∧
+ result.enclosure.polynomial = Codec.poly parent.codec window ∧
+ (let context := Algebraic.Context.adjoin result.root parent.isClean
+ (ScalarPacket.read model parent.codec context result.equation.polynomial
+ result.equation.sign result.equation.evidence).isSome = true ∧
+ (ScalarPacket.read model parent.codec context result.enclosure.polynomial
+ result.enclosure.sign result.enclosure.evidence).isSome = true) := by
+ let checked (source : Result parent) : Prop :=
+ source.root ∈ roots ∧
+ source.equation.polynomial = Codec.poly parent.codec polynomial ∧
+ source.enclosure.polynomial = Codec.poly parent.codec window ∧
+ (let context := Algebraic.Context.adjoin source.root parent.isClean
+ (ScalarPacket.read model parent.codec context source.equation.polynomial
+ source.equation.sign source.equation.evidence).isSome = true ∧
+ (ScalarPacket.read model parent.codec context source.enclosure.polynomial
+ source.enclosure.sign source.enclosure.evidence).isSome = true)
+ let invariant (state : Option (Result parent)) : Prop :=
+ ∀ source, state = some source → checked source
+ let step (root : Descriptor parent.Value Signature parent.sign parent.signature)
+ (state : Option (Result parent)) : Except Error (ForInStep (Option (Result parent))) := do
+ let context := Algebraic.Context.adjoin root parent.isClean
+ let some equation := ScalarPacket.buildParts context parent.codec polynomial
+ | throw .equation
+ if zero : equation.sign = 0 then
+ let some enclosure := ScalarPacket.buildParts context parent.codec window
+ | throw .enclosure
+ if positive : enclosure.sign = 1 then
+ if state.isSome then throw .ambiguous
+ return .yield (some ⟨root,equation,enclosure,zero,positive⟩)
+ else
+ unless enclosure.sign = 0 || enclosure.sign = -1 do throw .enclosure
+ return .yield state
+ else throw .equation
+ have preserves (root) (member : root ∈ roots) (state) (valid : invariant state)
+ (next) (returned : step root state = .ok next) : invariant next.value := by
+ cases equationBuilt : ScalarPacket.buildParts (Algebraic.Context.adjoin root parent.isClean)
+ parent.codec polynomial with
+ | none => simp [step, equationBuilt, bind, Except.bind] at returned
+ | some equation =>
+ by_cases zero : equation.sign = 0
+ · cases enclosureBuilt : ScalarPacket.buildParts (Algebraic.Context.adjoin root parent.isClean)
+ parent.codec window with
+ | none => simp [step, equationBuilt, zero, enclosureBuilt, bind, Except.bind] at returned
+ | some enclosure =>
+ by_cases positive : enclosure.sign = 1
+ · by_cases occupied : state.isSome = true
+ · simp [step, equationBuilt, zero, enclosureBuilt, positive, occupied,
+ bind, Except.bind] at returned
+ · simp [step, equationBuilt, zero, enclosureBuilt, positive, occupied,
+ bind, Except.bind, pure, Except.pure] at returned
+ cases returned
+ have accepted : checked ⟨root,equation,enclosure,zero,positive⟩ :=
+ ⟨member, ScalarPacket.buildParts_poly _ parent.codec polynomial equation equationBuilt,
+ ScalarPacket.buildParts_poly _ parent.codec window enclosure enclosureBuilt,
+ ScalarPacket.buildParts_accepted model _ parent.codec parent.codec_lawful
+ polynomial equation equationBuilt,
+ ScalarPacket.buildParts_accepted model _ parent.codec parent.codec_lawful
+ window enclosure enclosureBuilt⟩
+ simpa [invariant] using accepted
+ · by_cases allowed : enclosure.sign = 0 ∨ enclosure.sign = -1
+ · simp [step, equationBuilt, zero, enclosureBuilt, positive, allowed,
+ bind, Except.bind, pure, Except.pure] at returned
+ cases returned
+ exact valid
+ · simp [step, equationBuilt, zero, enclosureBuilt, positive, allowed,
+ bind, Except.bind] at returned
+ · simp [step, equationBuilt, zero, bind, Except.bind] at returned
+ have loop (rest : List _) (members : ∀ root ∈ rest, root ∈ roots)
+ (state output) (valid : invariant state)
+ (returned : forIn rest state step = .ok output) : invariant output := by
+ induction rest generalizing state output with
+ | nil =>
+ simp only [List.forIn_nil, pure, Except.pure, Except.ok.injEq] at returned
+ cases returned
+ exact valid
+ | cons root rest ih =>
+ rw [List.forIn_cons] at returned
+ cases advanced : step root state with
+ | error cause => simp [advanced, bind, Except.bind] at returned
+ | ok next =>
+ have validNext := preserves root (members root (by simp)) state valid next advanced
+ cases next with
+ | done next =>
+ simp [advanced, bind, Except.bind, pure, Except.pure] at returned
+ cases returned
+ exact validNext
+ | yield next =>
+ exact ih (fun root member => members root (by simp [member])) next output validNext
+ (by simpa [advanced, bind, Except.bind] using returned)
+ change (do
+ let state ← forIn roots (none : Option (Result parent)) step
+ match state with
+ | none => throw .unselected
+ | some source => pure source) = .ok result at produced
+ cases returned : forIn roots (none : Option (Result parent)) step with
+ | error cause => simp [returned, bind, Except.bind] at produced
+ | ok state =>
+ have valid := loop roots (fun _ member => member) none state
+ (by intro source impossible; cases impossible) returned
+ cases state with
+ | none => simp [returned, bind, Except.bind] at produced
+ | some source =>
+ simp [returned, bind, Except.bind, pure, Except.pure] at produced
+ cases produced
+ exact valid source rfl
+
+/-- Enumerate with the existing owner root producer and select exactly one
+root using the supplied enclosure polynomial. The usual window is the source
+isolating-square margin. Its original-source interpretation and selected-root
+identity are subsequently checked by `SourceIdentity.quoteWith`; this producer
+does not prove them, reconstruct a frozen parent, or establish completeness. -/
+def build (polynomial window : DensePoly parent.Value) : Except Error (Result parent) := do
+ let roots ← RootBuild.build polynomial |>.mapError Error.roots
+ select polynomial window roots.roots
+
+/-- Propose a source in an open interval with root-free endpoints. The
+owner checks the endpoints and exactly one root before constructing a
+descriptor with no derivative queries. The independent equation and original
+window packets are still required. Invalid domains, absent/ambiguous roots
+and production failures remain distinct; no all-real enumeration is retried.
+This is certificate production, not source identification or completeness. -/
+def buildOn (polynomial window : DensePoly parent.Value)
+ (lower upper : Endpoint parent.Value) : Except Error (Result parent) := do
+ let raw : RawDescriptor parent.Value Signature :=
+ ⟨parent.signature, polynomial, lower, upper, [], []⟩
+ let root ← match Descriptor.build parent.sign parent.signature raw with
+ | .error error => .error (.production error)
+ | .ok (.error error) => .error (.descriptor error)
+ | .ok (.ok root) => .ok root
+ select polynomial window [root]
+
+/-- Actual bounded production implies independent acceptance of its original
+equation and enclosure packets. No serialization or graph-shape premise is
+added; the canonical parent codec already has its owner roundtrip law. -/
+theorem buildOn_checked (model : Model parent ℝ)
+ (polynomial window : DensePoly parent.Value) (lower upper : Endpoint parent.Value)
+ (result : Result parent) (produced : buildOn polynomial window lower upper = .ok result) :
+ result.root.raw = ⟨parent.signature,polynomial,lower,upper,[],[]⟩ ∧
+ result.equation.polynomial = Codec.poly parent.codec polynomial ∧
+ result.enclosure.polynomial = Codec.poly parent.codec window ∧
+ (let context := Algebraic.Context.adjoin result.root parent.isClean
+ (ScalarPacket.read model parent.codec context result.equation.polynomial
+ result.equation.sign result.equation.evidence).isSome = true ∧
+ (ScalarPacket.read model parent.codec context result.enclosure.polynomial
+ result.enclosure.sign result.enclosure.evidence).isSome = true) := by
+ cases built : Descriptor.build parent.sign parent.signature
+ (⟨parent.signature,polynomial,lower,upper,[],[]⟩ : RawDescriptor parent.Value Signature) with
+ | error error => simp [buildOn, built, bind, Except.bind] at produced
+ | ok outcome =>
+ cases outcome with
+ | error error => simp [buildOn, built, bind, Except.bind] at produced
+ | ok root =>
+ have selected : select polynomial window [root] = .ok result := by
+ simpa only [buildOn, built, bind, Except.bind] using produced
+ obtain ⟨same, equation, enclosure, checked⟩ := select_checked model root polynomial window result selected
+ exact ⟨(congrArg (·.raw) same).trans (Descriptor.build_raw built), equation, enclosure, checked⟩
+
+/-- Accepted produced packets identify the original selected source. The
+source witness, alias selection and coefficient-map laws are inputs; scalar
+vanishing and window positivity are derived from the returned packets. This
+soundness law does not replace independent frozen quotation. -/
+theorem buildOn_identify (model : Model parent ℝ)
+ (polynomial window : DensePoly parent.Value) (lower upper : Endpoint parent.Value)
+ (result : Result parent) (produced : buildOn polynomial window lower upper = .ok result)
+ (sourceP : ZPoly) (square : DyadicSquare)
+ (hw : atomWitness sourceP square) (hp : (mahlerPrec sourceP : Int) ≤ square.prec)
+ (anchor : ℝ) (selected : (Field.literalRep sourceP square hw hp).root.re = anchor)
+ (equationValue : HexPolyTheory.Interpret.interpret model.value model.zero_iff polynomial =
+ LiteralSign.realPoly (ZPoly.toRatPoly sourceP))
+ (enclosureValue : HexPolyTheory.Interpret.interpret model.value model.zero_iff window =
+ LiteralSign.realPoly (SourceIdentity.margin square)) :
+ result.root.root model.value model.zero_iff model.one model.add model.sub model.mul
+ model.nat model.sign = anchor := by
+ obtain ⟨_, equationKey, enclosureKey, equationRead, enclosureRead⟩ :=
+ buildOn_checked model polynomial window lower upper result produced
+ let context := Algebraic.Context.adjoin result.root parent.isClean
+ let equation := ScalarPacket.restore model parent.codec context result.equation.polynomial
+ result.equation.sign result.equation.evidence equationRead
+ let enclosure := ScalarPacket.restore model parent.codec context result.enclosure.polynomial
+ result.enclosure.sign result.enclosure.evidence enclosureRead
+ have equationPoly : equation.polynomial = polynomial := by
+ change ScalarPacket.key parent.codec result.equation.polynomial = polynomial
+ rw [equationKey]
+ simp only [ScalarPacket.key, Codec.read_poly parent.codec parent.codec_lawful,
+ Except.toOption, Option.getD_some]
+ have enclosurePoly : enclosure.polynomial = window := by
+ change ScalarPacket.key parent.codec result.enclosure.polynomial = window
+ rw [enclosureKey]
+ simp only [ScalarPacket.key, Codec.read_poly parent.codec parent.codec_lawful,
+ Except.toOption, Option.getD_some]
+ apply SourceIdentity.identify model result.root sourceP square hw hp anchor selected equation enclosure
+ · rw [equationPoly]
+ exact equationValue
+ · rw [enclosurePoly]
+ exact enclosureValue
+ · exact result.zero
+ · exact result.positive
+
+/-- An ordinary-real count-one domain with a positive original window yields
+an actual bounded source proposal. The domain, count and sign premises are
+mathematical properties of the input, not successful producer equations.
+Frozen serialization acceptance and source alias identification are separate. -/
+theorem buildOn_success (model : Model parent ℝ)
+ (polynomial window : DensePoly parent.Value) (lower upper : Endpoint parent.Value)
+ (domain : HexSturmTheory.Domain model.value model.zero_iff polynomial lower upper)
+ (one : (HexRealRootsTheory.Tarski.rootsIn
+ (HexPolyTheory.Interpret.interpret model.value model.zero_iff polynomial)
+ (lower.map model.value) (upper.map model.value)).card = 1)
+ (positive : ∀ x ∈ HexRealRootsTheory.Tarski.rootsIn
+ (HexPolyTheory.Interpret.interpret model.value model.zero_iff polynomial)
+ (lower.map model.value) (upper.map model.value),
+ 0 < (HexPolyTheory.Interpret.interpret model.value model.zero_iff window).eval x) :
+ ∃ result, buildOn polynomial window lower upper = .ok result := by
+ classical
+ have countPositive : 0 < (HexRealRootsTheory.Tarski.rootsIn
+ (HexPolyTheory.Interpret.interpret model.value model.zero_iff polynomial)
+ (lower.map model.value) (upper.map model.value)).card := by
+ rw [one]
+ exact Nat.zero_lt_one
+ obtain ⟨witness, inDomain⟩ := Finset.card_pos.mp countPositive
+ have rootZero := ((HexRealRootsTheory.Tarski.mem_rootsIn_iff _ domain.1 _ _ _).mp inDomain).1
+ have semanticDegree := Polynomial.natDegree_pos_iff_degree_pos.mpr
+ (Polynomial.degree_pos_of_root domain.1 rootZero)
+ have degree : 0 < polynomial.natDegree := by
+ simpa only [HexPolyTheory.Interpret.natDegree_interpret] using semanticDegree
+ let raw : RawDescriptor parent.Value Signature :=
+ ⟨parent.signature,polynomial,lower,upper,[],[]⟩
+ obtain ⟨root, built⟩ := (Descriptor.build_success_iff model.value model.zero_iff
+ model.one model.add model.sub model.mul model.nat model.neg model.inv
+ parent.sign model.sign parent.signature raw).mpr
+ ⟨rfl, by simp [raw, RawDescriptor.wellFormed, degree], domain,
+ by simpa [raw, RawDescriptor.queries, signsAt] using one⟩
+ have retained := Descriptor.build_raw built
+ have member : root.root model.value model.zero_iff model.one model.add model.sub
+ model.mul model.nat model.sign ∈ HexRealRootsTheory.Tarski.rootsIn
+ (HexPolyTheory.Interpret.interpret model.value model.zero_iff polynomial)
+ (lower.map model.value) (upper.map model.value) := by
+ simpa only [retained] using (root.root_spec model.value model.zero_iff model.one
+ model.add model.sub model.mul model.nat model.sign).1
+ have zero := ((HexRealRootsTheory.Tarski.mem_rootsIn_iff _ domain.1 _ _ _).mp member).1
+ obtain ⟨result, selected⟩ := select_single model root polynomial window zero (positive _ member)
+ dsimp only [raw] at built
+ refine ⟨result, ?_⟩
+ simpa only [buildOn, built, bind, Except.bind] using selected
+
+/-- Valid count-one real inputs yield actual bounded production, exact literal
+subjects and two independently accepted scalar packets. The codec law belongs
+to the canonical parent; no accepted-output or serialization premise is added.
+This does not reconstruct a frozen parent history or identify a source alias. -/
+theorem buildOn_checks (model : Model parent ℝ)
+ (polynomial window : DensePoly parent.Value) (lower upper : Endpoint parent.Value)
+ (domain : HexSturmTheory.Domain model.value model.zero_iff polynomial lower upper)
+ (one : (HexRealRootsTheory.Tarski.rootsIn
+ (HexPolyTheory.Interpret.interpret model.value model.zero_iff polynomial)
+ (lower.map model.value) (upper.map model.value)).card = 1)
+ (positive : ∀ x ∈ HexRealRootsTheory.Tarski.rootsIn
+ (HexPolyTheory.Interpret.interpret model.value model.zero_iff polynomial)
+ (lower.map model.value) (upper.map model.value),
+ 0 < (HexPolyTheory.Interpret.interpret model.value model.zero_iff window).eval x) :
+ ∃ result, buildOn polynomial window lower upper = .ok result ∧
+ result.root.raw = ⟨parent.signature,polynomial,lower,upper,[],[]⟩ ∧
+ result.equation.polynomial = Codec.poly parent.codec polynomial ∧
+ result.enclosure.polynomial = Codec.poly parent.codec window ∧
+ (let context := Algebraic.Context.adjoin result.root parent.isClean
+ (ScalarPacket.read model parent.codec context result.equation.polynomial
+ result.equation.sign result.equation.evidence).isSome = true ∧
+ (ScalarPacket.read model parent.codec context result.enclosure.polynomial
+ result.enclosure.sign result.enclosure.evidence).isSome = true) := by
+ obtain ⟨result, produced⟩ := buildOn_success model polynomial window lower upper domain one positive
+ exact ⟨result, produced, buildOn_checked model polynomial window lower upper result produced⟩
+
+end Hex.RCF.RealCoefficients.SourceBuild
diff --git a/reports/data/hexrcf-enumerated-progress/source-select-checks-1.log.gz b/reports/data/hexrcf-enumerated-progress/source-select-checks-1.log.gz
new file mode 100644
index 0000000000..bec9ec023a
Binary files /dev/null and b/reports/data/hexrcf-enumerated-progress/source-select-checks-1.log.gz differ
diff --git a/reports/data/hexrcf-enumerated-progress/source-select-checks-2.lean.txt b/reports/data/hexrcf-enumerated-progress/source-select-checks-2.lean.txt
new file mode 100644
index 0000000000..3565e365fd
--- /dev/null
+++ b/reports/data/hexrcf-enumerated-progress/source-select-checks-2.lean.txt
@@ -0,0 +1,408 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+module
+public import HexRCF.RealCoefficients.RootBuild
+public import HexRCF.RealCoefficients.ScalarPacket
+public import HexRCF.RealCoefficients.SourceIdentity
+public section
+
+namespace Hex.RCF.RealCoefficients.SourceBuild
+open Hex Hex.RealClosure Hex.RealClosure.Tower Hex.SignDet
+variable {registry : BaseContext.Registry} {parent : Tower.Context registry}
+
+inductive Error where
+ | roots (error : RootBuild.Error)
+ | production (error : BuildError)
+ | descriptor (error : DescriptorError)
+ | equation
+ | enclosure
+ | ambiguous
+ | unselected
+ deriving Repr
+
+/-- Native proposals for one source root and the two independent scalar
+packets demanded by source authentication. The sign equalities only describe
+the proposed literal fields; they are not proof evidence about real values. -/
+structure Result (parent : Tower.Context registry) where
+ root : Descriptor parent.Value Signature parent.sign parent.signature
+ equation : ScalarPacket.Proposal
+ enclosure : ScalarPacket.Proposal
+ zero : equation.sign = 0
+ positive : enclosure.sign = 1
+
+/-- Visit every enumerated root. Failure to produce a row is terminal, and a
+second positive window match rejects an ambiguous source rather than choosing
+an arbitrary conjugate. No equation or enclosure is silently substituted. -/
+def select (polynomial window : DensePoly parent.Value)
+ (roots : List (Descriptor parent.Value Signature parent.sign parent.signature)) :
+ Except Error (Result parent) := do
+ let mut selected : Option (Result parent) := none
+ for root in roots do
+ let context := Algebraic.Context.adjoin root parent.isClean
+ let some equation := ScalarPacket.buildParts context parent.codec polynomial
+ | throw .equation
+ if zero : equation.sign = 0 then
+ let some enclosure := ScalarPacket.buildParts context parent.codec window
+ | throw .enclosure
+ if positive : enclosure.sign = 1 then
+ if selected.isSome then throw .ambiguous
+ selected := some ⟨root,equation,enclosure,zero,positive⟩
+ else unless enclosure.sign = 0 || enclosure.sign = -1 do throw .enclosure
+ else throw .equation
+ match selected with
+ | none => throw .unselected
+ | some result => return result
+
+/-- A lawful selected root satisfying the original equation and strictly
+positive window produces both scalar packets. No successful producer output
+or table is assumed. This establishes proposal progress, not frozen replay. -/
+theorem select_single (model : Model parent ℝ)
+ (root : Descriptor parent.Value Signature parent.sign parent.signature)
+ (polynomial window : DensePoly parent.Value)
+ (zero : (HexPolyTheory.Interpret.interpret model.value model.zero_iff polynomial).eval
+ (root.root model.value model.zero_iff model.one model.add model.sub model.mul model.nat model.sign) = 0)
+ (positive : 0 < (HexPolyTheory.Interpret.interpret model.value model.zero_iff window).eval
+ (root.root model.value model.zero_iff model.one model.add model.sub model.mul model.nat model.sign)) :
+ ∃ result, select polynomial window [root] = .ok result := by
+ let context := Algebraic.Context.adjoin root parent.isClean
+ have equationSign : context.signPoly polynomial = 0 := by
+ rw [context.signPoly_spec model.value model.zero_iff model.one model.add model.sub
+ model.mul model.nat model.sign model.neg model.inv]
+ simp [Algebraic.Context.evalPoly, Algebraic.Context.rootValue,
+ context, Algebraic.Context.root_adjoin, zero]
+ have windowSign : context.signPoly window = 1 := by
+ rw [context.signPoly_spec model.value model.zero_iff model.one model.add model.sub
+ model.mul model.nat model.sign model.neg model.inv]
+ have sign := congrArg (fun sign : SignType => (sign : Int)) (sign_eq_one_iff.mpr positive)
+ simpa [Algebraic.Context.evalPoly, Algebraic.Context.rootValue,
+ context, Algebraic.Context.root_adjoin] using sign
+ obtain ⟨equation, equationBuilt⟩ := ScalarPacket.buildParts_success model context parent.codec polynomial
+ obtain ⟨enclosure, enclosureBuilt⟩ := ScalarPacket.buildParts_success model context parent.codec window
+ have equationZero := (ScalarPacket.buildParts_sign model context parent.codec polynomial equation equationBuilt).trans equationSign
+ have enclosurePositive := (ScalarPacket.buildParts_sign model context parent.codec window enclosure enclosureBuilt).trans windowSign
+ dsimp only [context] at equationBuilt enclosureBuilt
+ refine ⟨⟨root,equation,enclosure,equationZero,enclosurePositive⟩, ?_⟩
+ simp [select, equationBuilt, enclosureBuilt, equationZero, enclosurePositive,
+ pure, Except.pure, bind, Except.bind]
+
+/-- Successful singleton selection retains two independently accepted scalar
+packets at its exact root, using the canonical predecessor codec. -/
+theorem select_checked (model : Model parent ℝ)
+ (root : Descriptor parent.Value Signature parent.sign parent.signature)
+ (polynomial window : DensePoly parent.Value) (result : Result parent)
+ (produced : select polynomial window [root] = .ok result) :
+ result.root = root ∧
+ result.equation.polynomial = Codec.poly parent.codec polynomial ∧
+ result.enclosure.polynomial = Codec.poly parent.codec window ∧
+ (let context := Algebraic.Context.adjoin result.root parent.isClean
+ (ScalarPacket.read model parent.codec context result.equation.polynomial
+ result.equation.sign result.equation.evidence).isSome = true ∧
+ (ScalarPacket.read model parent.codec context result.enclosure.polynomial
+ result.enclosure.sign result.enclosure.evidence).isSome = true) := by
+ cases equationBuilt : ScalarPacket.buildParts (Algebraic.Context.adjoin root parent.isClean)
+ parent.codec polynomial with
+ | none => simp [select, equationBuilt, pure, Except.pure, bind, Except.bind] at produced
+ | some equation =>
+ by_cases zero : equation.sign = 0
+ · cases enclosureBuilt : ScalarPacket.buildParts (Algebraic.Context.adjoin root parent.isClean)
+ parent.codec window with
+ | none => simp [select, equationBuilt, zero, enclosureBuilt, pure, Except.pure, bind, Except.bind] at produced
+ | some enclosure =>
+ by_cases positive : enclosure.sign = 1
+ · simp [select, equationBuilt, zero, enclosureBuilt, positive,
+ pure, Except.pure, bind, Except.bind] at produced
+ cases produced
+ exact ⟨rfl, ScalarPacket.buildParts_poly _ parent.codec polynomial equation equationBuilt,
+ ScalarPacket.buildParts_poly _ parent.codec window enclosure enclosureBuilt,
+ ScalarPacket.buildParts_accepted model _ parent.codec parent.codec_lawful
+ polynomial equation equationBuilt,
+ ScalarPacket.buildParts_accepted model _ parent.codec parent.codec_lawful
+ window enclosure enclosureBuilt⟩
+ · by_cases absent : enclosure.sign = 0 ∨ enclosure.sign = -1 <;>
+ simp [select, equationBuilt, zero, enclosureBuilt, positive, absent,
+ pure, Except.pure, bind, Except.bind, throw] at produced
+ · simp [select, equationBuilt, zero, pure, Except.pure, bind, Except.bind] at produced
+
+/-- Every successful selection from an arbitrary root list retains a member
+of that list and independently accepted packets for the original two keys.
+No singleton-list, producer-success or serialization premise is required. -/
+theorem select_checks (model : Model parent ℝ)
+ (polynomial window : DensePoly parent.Value)
+ (roots : List (Descriptor parent.Value Signature parent.sign parent.signature))
+ (result : Result parent) (produced : select polynomial window roots = .ok result) :
+ result.root ∈ roots ∧
+ result.equation.polynomial = Codec.poly parent.codec polynomial ∧
+ result.enclosure.polynomial = Codec.poly parent.codec window ∧
+ (let context := Algebraic.Context.adjoin result.root parent.isClean
+ (ScalarPacket.read model parent.codec context result.equation.polynomial
+ result.equation.sign result.equation.evidence).isSome = true ∧
+ (ScalarPacket.read model parent.codec context result.enclosure.polynomial
+ result.enclosure.sign result.enclosure.evidence).isSome = true) := by
+ let checked (source : Result parent) : Prop :=
+ source.root ∈ roots ∧
+ source.equation.polynomial = Codec.poly parent.codec polynomial ∧
+ source.enclosure.polynomial = Codec.poly parent.codec window ∧
+ (let context := Algebraic.Context.adjoin source.root parent.isClean
+ (ScalarPacket.read model parent.codec context source.equation.polynomial
+ source.equation.sign source.equation.evidence).isSome = true ∧
+ (ScalarPacket.read model parent.codec context source.enclosure.polynomial
+ source.enclosure.sign source.enclosure.evidence).isSome = true)
+ let invariant (state : Option (Result parent)) : Prop :=
+ ∀ source, state = some source → checked source
+ let step (root : Descriptor parent.Value Signature parent.sign parent.signature)
+ (state : Option (Result parent)) : Except Error (ForInStep (Option (Result parent))) := do
+ let context := Algebraic.Context.adjoin root parent.isClean
+ let some equation := ScalarPacket.buildParts context parent.codec polynomial
+ | throw .equation
+ if zero : equation.sign = 0 then
+ let some enclosure := ScalarPacket.buildParts context parent.codec window
+ | throw .enclosure
+ if positive : enclosure.sign = 1 then
+ if state.isSome then throw .ambiguous
+ return .yield (some ⟨root,equation,enclosure,zero,positive⟩)
+ else
+ unless enclosure.sign = 0 || enclosure.sign = -1 do throw .enclosure
+ return .yield state
+ else throw .equation
+ have preserves (root) (member : root ∈ roots) (state) (valid : invariant state)
+ (next) (returned : step root state = .ok next) : invariant next.value := by
+ cases equationBuilt : ScalarPacket.buildParts (Algebraic.Context.adjoin root parent.isClean)
+ parent.codec polynomial with
+ | none => simp [step, equationBuilt, bind, Except.bind] at returned
+ | some equation =>
+ by_cases zero : equation.sign = 0
+ · cases enclosureBuilt : ScalarPacket.buildParts (Algebraic.Context.adjoin root parent.isClean)
+ parent.codec window with
+ | none => simp [step, equationBuilt, zero, enclosureBuilt, bind, Except.bind] at returned
+ | some enclosure =>
+ by_cases positive : enclosure.sign = 1
+ · by_cases occupied : state.isSome = true
+ · simp [step, equationBuilt, zero, enclosureBuilt, positive, occupied,
+ bind, Except.bind] at returned
+ · simp [step, equationBuilt, zero, enclosureBuilt, positive, occupied,
+ bind, Except.bind, pure, Except.pure] at returned
+ cases returned
+ have accepted : checked ⟨root,equation,enclosure,zero,positive⟩ :=
+ ⟨member, ScalarPacket.buildParts_poly _ parent.codec polynomial equation equationBuilt,
+ ScalarPacket.buildParts_poly _ parent.codec window enclosure enclosureBuilt,
+ ScalarPacket.buildParts_accepted model _ parent.codec parent.codec_lawful
+ polynomial equation equationBuilt,
+ ScalarPacket.buildParts_accepted model _ parent.codec parent.codec_lawful
+ window enclosure enclosureBuilt⟩
+ simpa [invariant] using accepted
+ · by_cases allowed : enclosure.sign = 0 ∨ enclosure.sign = -1
+ · simp [step, equationBuilt, zero, enclosureBuilt, positive, allowed,
+ bind, Except.bind, pure, Except.pure] at returned
+ cases returned
+ exact valid
+ · simp [step, equationBuilt, zero, enclosureBuilt, positive, allowed,
+ bind, Except.bind] at returned
+ · simp [step, equationBuilt, zero, bind, Except.bind] at returned
+ have loop (rest : List _) (members : ∀ root ∈ rest, root ∈ roots)
+ (state output) (valid : invariant state)
+ (returned : forIn rest state step = .ok output) : invariant output := by
+ induction rest generalizing state output with
+ | nil =>
+ simp only [List.forIn_nil, pure, Except.pure, Except.ok.injEq] at returned
+ cases returned
+ exact valid
+ | cons root rest ih =>
+ rw [List.forIn_cons] at returned
+ cases advanced : step root state with
+ | error cause => simp [advanced, bind, Except.bind] at returned
+ | ok next =>
+ have validNext := preserves root (members root (by simp)) state valid next advanced
+ cases next with
+ | done next =>
+ simp [advanced, bind, Except.bind, pure, Except.pure] at returned
+ cases returned
+ exact validNext
+ | yield next =>
+ exact ih (fun root member => members root (by simp [member])) next output validNext
+ (by simpa [advanced, bind, Except.bind] using returned)
+ change (do
+ let state ← forIn roots (none : Option (Result parent)) step
+ match state with
+ | none => throw Error.unselected
+ | some source => pure source) = .ok result at produced
+ cases returned : forIn roots (none : Option (Result parent)) step with
+ | error cause => simp [returned, bind, Except.bind] at produced
+ | ok state =>
+ have valid := loop roots (fun _ member => member) none state
+ (by intro source impossible; cases impossible) returned
+ cases state with
+ | none => simp [returned, bind, Except.bind] at produced
+ | some source =>
+ simp [returned, bind, Except.bind, pure, Except.pure] at produced
+ cases produced
+ exact valid source rfl
+
+/-- Enumerate with the existing owner root producer and select exactly one
+root using the supplied enclosure polynomial. The usual window is the source
+isolating-square margin. Its original-source interpretation and selected-root
+identity are subsequently checked by `SourceIdentity.quoteWith`; this producer
+does not prove them, reconstruct a frozen parent, or establish completeness. -/
+def build (polynomial window : DensePoly parent.Value) : Except Error (Result parent) := do
+ let roots ← RootBuild.build polynomial |>.mapError Error.roots
+ select polynomial window roots.roots
+
+/-- Propose a source in an open interval with root-free endpoints. The
+owner checks the endpoints and exactly one root before constructing a
+descriptor with no derivative queries. The independent equation and original
+window packets are still required. Invalid domains, absent/ambiguous roots
+and production failures remain distinct; no all-real enumeration is retried.
+This is certificate production, not source identification or completeness. -/
+def buildOn (polynomial window : DensePoly parent.Value)
+ (lower upper : Endpoint parent.Value) : Except Error (Result parent) := do
+ let raw : RawDescriptor parent.Value Signature :=
+ ⟨parent.signature, polynomial, lower, upper, [], []⟩
+ let root ← match Descriptor.build parent.sign parent.signature raw with
+ | .error error => .error (.production error)
+ | .ok (.error error) => .error (.descriptor error)
+ | .ok (.ok root) => .ok root
+ select polynomial window [root]
+
+/-- Actual bounded production implies independent acceptance of its original
+equation and enclosure packets. No serialization or graph-shape premise is
+added; the canonical parent codec already has its owner roundtrip law. -/
+theorem buildOn_checked (model : Model parent ℝ)
+ (polynomial window : DensePoly parent.Value) (lower upper : Endpoint parent.Value)
+ (result : Result parent) (produced : buildOn polynomial window lower upper = .ok result) :
+ result.root.raw = ⟨parent.signature,polynomial,lower,upper,[],[]⟩ ∧
+ result.equation.polynomial = Codec.poly parent.codec polynomial ∧
+ result.enclosure.polynomial = Codec.poly parent.codec window ∧
+ (let context := Algebraic.Context.adjoin result.root parent.isClean
+ (ScalarPacket.read model parent.codec context result.equation.polynomial
+ result.equation.sign result.equation.evidence).isSome = true ∧
+ (ScalarPacket.read model parent.codec context result.enclosure.polynomial
+ result.enclosure.sign result.enclosure.evidence).isSome = true) := by
+ cases built : Descriptor.build parent.sign parent.signature
+ (⟨parent.signature,polynomial,lower,upper,[],[]⟩ : RawDescriptor parent.Value Signature) with
+ | error error => simp [buildOn, built, bind, Except.bind] at produced
+ | ok outcome =>
+ cases outcome with
+ | error error => simp [buildOn, built, bind, Except.bind] at produced
+ | ok root =>
+ have selected : select polynomial window [root] = .ok result := by
+ simpa only [buildOn, built, bind, Except.bind] using produced
+ obtain ⟨same, equation, enclosure, checked⟩ := select_checked model root polynomial window result selected
+ exact ⟨(congrArg (·.raw) same).trans (Descriptor.build_raw built), equation, enclosure, checked⟩
+
+/-- Accepted produced packets identify the original selected source. The
+source witness, alias selection and coefficient-map laws are inputs; scalar
+vanishing and window positivity are derived from the returned packets. This
+soundness law does not replace independent frozen quotation. -/
+theorem buildOn_identify (model : Model parent ℝ)
+ (polynomial window : DensePoly parent.Value) (lower upper : Endpoint parent.Value)
+ (result : Result parent) (produced : buildOn polynomial window lower upper = .ok result)
+ (sourceP : ZPoly) (square : DyadicSquare)
+ (hw : atomWitness sourceP square) (hp : (mahlerPrec sourceP : Int) ≤ square.prec)
+ (anchor : ℝ) (selected : (Field.literalRep sourceP square hw hp).root.re = anchor)
+ (equationValue : HexPolyTheory.Interpret.interpret model.value model.zero_iff polynomial =
+ LiteralSign.realPoly (ZPoly.toRatPoly sourceP))
+ (enclosureValue : HexPolyTheory.Interpret.interpret model.value model.zero_iff window =
+ LiteralSign.realPoly (SourceIdentity.margin square)) :
+ result.root.root model.value model.zero_iff model.one model.add model.sub model.mul
+ model.nat model.sign = anchor := by
+ obtain ⟨_, equationKey, enclosureKey, equationRead, enclosureRead⟩ :=
+ buildOn_checked model polynomial window lower upper result produced
+ let context := Algebraic.Context.adjoin result.root parent.isClean
+ let equation := ScalarPacket.restore model parent.codec context result.equation.polynomial
+ result.equation.sign result.equation.evidence equationRead
+ let enclosure := ScalarPacket.restore model parent.codec context result.enclosure.polynomial
+ result.enclosure.sign result.enclosure.evidence enclosureRead
+ have equationPoly : equation.polynomial = polynomial := by
+ change ScalarPacket.key parent.codec result.equation.polynomial = polynomial
+ rw [equationKey]
+ simp only [ScalarPacket.key, Codec.read_poly parent.codec parent.codec_lawful,
+ Except.toOption, Option.getD_some]
+ have enclosurePoly : enclosure.polynomial = window := by
+ change ScalarPacket.key parent.codec result.enclosure.polynomial = window
+ rw [enclosureKey]
+ simp only [ScalarPacket.key, Codec.read_poly parent.codec parent.codec_lawful,
+ Except.toOption, Option.getD_some]
+ apply SourceIdentity.identify model result.root sourceP square hw hp anchor selected equation enclosure
+ · rw [equationPoly]
+ exact equationValue
+ · rw [enclosurePoly]
+ exact enclosureValue
+ · exact result.zero
+ · exact result.positive
+
+/-- An ordinary-real count-one domain with a positive original window yields
+an actual bounded source proposal. The domain, count and sign premises are
+mathematical properties of the input, not successful producer equations.
+Frozen serialization acceptance and source alias identification are separate. -/
+theorem buildOn_success (model : Model parent ℝ)
+ (polynomial window : DensePoly parent.Value) (lower upper : Endpoint parent.Value)
+ (domain : HexSturmTheory.Domain model.value model.zero_iff polynomial lower upper)
+ (one : (HexRealRootsTheory.Tarski.rootsIn
+ (HexPolyTheory.Interpret.interpret model.value model.zero_iff polynomial)
+ (lower.map model.value) (upper.map model.value)).card = 1)
+ (positive : ∀ x ∈ HexRealRootsTheory.Tarski.rootsIn
+ (HexPolyTheory.Interpret.interpret model.value model.zero_iff polynomial)
+ (lower.map model.value) (upper.map model.value),
+ 0 < (HexPolyTheory.Interpret.interpret model.value model.zero_iff window).eval x) :
+ ∃ result, buildOn polynomial window lower upper = .ok result := by
+ classical
+ have countPositive : 0 < (HexRealRootsTheory.Tarski.rootsIn
+ (HexPolyTheory.Interpret.interpret model.value model.zero_iff polynomial)
+ (lower.map model.value) (upper.map model.value)).card := by
+ rw [one]
+ exact Nat.zero_lt_one
+ obtain ⟨witness, inDomain⟩ := Finset.card_pos.mp countPositive
+ have rootZero := ((HexRealRootsTheory.Tarski.mem_rootsIn_iff _ domain.1 _ _ _).mp inDomain).1
+ have semanticDegree := Polynomial.natDegree_pos_iff_degree_pos.mpr
+ (Polynomial.degree_pos_of_root domain.1 rootZero)
+ have degree : 0 < polynomial.natDegree := by
+ simpa only [HexPolyTheory.Interpret.natDegree_interpret] using semanticDegree
+ let raw : RawDescriptor parent.Value Signature :=
+ ⟨parent.signature,polynomial,lower,upper,[],[]⟩
+ obtain ⟨root, built⟩ := (Descriptor.build_success_iff model.value model.zero_iff
+ model.one model.add model.sub model.mul model.nat model.neg model.inv
+ parent.sign model.sign parent.signature raw).mpr
+ ⟨rfl, by simp [raw, RawDescriptor.wellFormed, degree], domain,
+ by simpa [raw, RawDescriptor.queries, signsAt] using one⟩
+ have retained := Descriptor.build_raw built
+ have member : root.root model.value model.zero_iff model.one model.add model.sub
+ model.mul model.nat model.sign ∈ HexRealRootsTheory.Tarski.rootsIn
+ (HexPolyTheory.Interpret.interpret model.value model.zero_iff polynomial)
+ (lower.map model.value) (upper.map model.value) := by
+ simpa only [retained] using (root.root_spec model.value model.zero_iff model.one
+ model.add model.sub model.mul model.nat model.sign).1
+ have zero := ((HexRealRootsTheory.Tarski.mem_rootsIn_iff _ domain.1 _ _ _).mp member).1
+ obtain ⟨result, selected⟩ := select_single model root polynomial window zero (positive _ member)
+ dsimp only [raw] at built
+ refine ⟨result, ?_⟩
+ simpa only [buildOn, built, bind, Except.bind] using selected
+
+/-- Valid count-one real inputs yield actual bounded production, exact literal
+subjects and two independently accepted scalar packets. The codec law belongs
+to the canonical parent; no accepted-output or serialization premise is added.
+This does not reconstruct a frozen parent history or identify a source alias. -/
+theorem buildOn_checks (model : Model parent ℝ)
+ (polynomial window : DensePoly parent.Value) (lower upper : Endpoint parent.Value)
+ (domain : HexSturmTheory.Domain model.value model.zero_iff polynomial lower upper)
+ (one : (HexRealRootsTheory.Tarski.rootsIn
+ (HexPolyTheory.Interpret.interpret model.value model.zero_iff polynomial)
+ (lower.map model.value) (upper.map model.value)).card = 1)
+ (positive : ∀ x ∈ HexRealRootsTheory.Tarski.rootsIn
+ (HexPolyTheory.Interpret.interpret model.value model.zero_iff polynomial)
+ (lower.map model.value) (upper.map model.value),
+ 0 < (HexPolyTheory.Interpret.interpret model.value model.zero_iff window).eval x) :
+ ∃ result, buildOn polynomial window lower upper = .ok result ∧
+ result.root.raw = ⟨parent.signature,polynomial,lower,upper,[],[]⟩ ∧
+ result.equation.polynomial = Codec.poly parent.codec polynomial ∧
+ result.enclosure.polynomial = Codec.poly parent.codec window ∧
+ (let context := Algebraic.Context.adjoin result.root parent.isClean
+ (ScalarPacket.read model parent.codec context result.equation.polynomial
+ result.equation.sign result.equation.evidence).isSome = true ∧
+ (ScalarPacket.read model parent.codec context result.enclosure.polynomial
+ result.enclosure.sign result.enclosure.evidence).isSome = true) := by
+ obtain ⟨result, produced⟩ := buildOn_success model polynomial window lower upper domain one positive
+ exact ⟨result, produced, buildOn_checked model polynomial window lower upper result produced⟩
+
+end Hex.RCF.RealCoefficients.SourceBuild
diff --git a/reports/data/hexrcf-enumerated-progress/source-select-checks-2.log.gz b/reports/data/hexrcf-enumerated-progress/source-select-checks-2.log.gz
new file mode 100644
index 0000000000..40eb3c7687
Binary files /dev/null and b/reports/data/hexrcf-enumerated-progress/source-select-checks-2.log.gz differ
diff --git a/reports/data/hexrcf-enumerated-progress/source-select-checks-3.log.gz b/reports/data/hexrcf-enumerated-progress/source-select-checks-3.log.gz
new file mode 100644
index 0000000000..e3a4dd3fb1
Binary files /dev/null and b/reports/data/hexrcf-enumerated-progress/source-select-checks-3.log.gz differ
diff --git a/reports/data/hexrcf-enumerated-progress/source-select-checks-4.log.gz b/reports/data/hexrcf-enumerated-progress/source-select-checks-4.log.gz
new file mode 100644
index 0000000000..3d949a7006
Binary files /dev/null and b/reports/data/hexrcf-enumerated-progress/source-select-checks-4.log.gz differ
diff --git a/reports/data/hexrcf-enumerated-progress/source-select-progress-1.lean.txt b/reports/data/hexrcf-enumerated-progress/source-select-progress-1.lean.txt
new file mode 100644
index 0000000000..110dc79cc8
--- /dev/null
+++ b/reports/data/hexrcf-enumerated-progress/source-select-progress-1.lean.txt
@@ -0,0 +1,541 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+module
+public import HexRCF.RealCoefficients.RootBuild
+public import HexRCF.RealCoefficients.ScalarPacket
+public import HexRCF.RealCoefficients.SourceIdentity
+public section
+
+namespace Hex.RCF.RealCoefficients.SourceBuild
+open Hex Hex.RealClosure Hex.RealClosure.Tower Hex.SignDet
+variable {registry : BaseContext.Registry} {parent : Tower.Context registry}
+
+inductive Error where
+ | roots (error : RootBuild.Error)
+ | production (error : BuildError)
+ | descriptor (error : DescriptorError)
+ | equation
+ | enclosure
+ | ambiguous
+ | unselected
+ deriving Repr
+
+/-- Native proposals for one source root and the two independent scalar
+packets demanded by source authentication. The sign equalities only describe
+the proposed literal fields; they are not proof evidence about real values. -/
+structure Result (parent : Tower.Context registry) where
+ root : Descriptor parent.Value Signature parent.sign parent.signature
+ equation : ScalarPacket.Proposal
+ enclosure : ScalarPacket.Proposal
+ zero : equation.sign = 0
+ positive : enclosure.sign = 1
+
+/-- Visit every enumerated root. Failure to produce a row is terminal, and a
+second positive window match rejects an ambiguous source rather than choosing
+an arbitrary conjugate. No equation or enclosure is silently substituted. -/
+def select (polynomial window : DensePoly parent.Value)
+ (roots : List (Descriptor parent.Value Signature parent.sign parent.signature)) :
+ Except Error (Result parent) := do
+ let mut selected : Option (Result parent) := none
+ for root in roots do
+ let context := Algebraic.Context.adjoin root parent.isClean
+ let some equation := ScalarPacket.buildParts context parent.codec polynomial
+ | throw .equation
+ if zero : equation.sign = 0 then
+ let some enclosure := ScalarPacket.buildParts context parent.codec window
+ | throw .enclosure
+ if positive : enclosure.sign = 1 then
+ if selected.isSome then throw .ambiguous
+ selected := some ⟨root,equation,enclosure,zero,positive⟩
+ else unless enclosure.sign = 0 || enclosure.sign = -1 do throw .enclosure
+ else throw .equation
+ match selected with
+ | none => throw .unselected
+ | some result => return result
+
+/-- A lawful selected root satisfying the original equation and strictly
+positive window produces both scalar packets. No successful producer output
+or table is assumed. This establishes proposal progress, not frozen replay. -/
+theorem select_single (model : Model parent ℝ)
+ (root : Descriptor parent.Value Signature parent.sign parent.signature)
+ (polynomial window : DensePoly parent.Value)
+ (zero : (HexPolyTheory.Interpret.interpret model.value model.zero_iff polynomial).eval
+ (root.root model.value model.zero_iff model.one model.add model.sub model.mul model.nat model.sign) = 0)
+ (positive : 0 < (HexPolyTheory.Interpret.interpret model.value model.zero_iff window).eval
+ (root.root model.value model.zero_iff model.one model.add model.sub model.mul model.nat model.sign)) :
+ ∃ result, select polynomial window [root] = .ok result := by
+ let context := Algebraic.Context.adjoin root parent.isClean
+ have equationSign : context.signPoly polynomial = 0 := by
+ rw [context.signPoly_spec model.value model.zero_iff model.one model.add model.sub
+ model.mul model.nat model.sign model.neg model.inv]
+ simp [Algebraic.Context.evalPoly, Algebraic.Context.rootValue,
+ context, Algebraic.Context.root_adjoin, zero]
+ have windowSign : context.signPoly window = 1 := by
+ rw [context.signPoly_spec model.value model.zero_iff model.one model.add model.sub
+ model.mul model.nat model.sign model.neg model.inv]
+ have sign := congrArg (fun sign : SignType => (sign : Int)) (sign_eq_one_iff.mpr positive)
+ simpa [Algebraic.Context.evalPoly, Algebraic.Context.rootValue,
+ context, Algebraic.Context.root_adjoin] using sign
+ obtain ⟨equation, equationBuilt⟩ := ScalarPacket.buildParts_success model context parent.codec polynomial
+ obtain ⟨enclosure, enclosureBuilt⟩ := ScalarPacket.buildParts_success model context parent.codec window
+ have equationZero := (ScalarPacket.buildParts_sign model context parent.codec polynomial equation equationBuilt).trans equationSign
+ have enclosurePositive := (ScalarPacket.buildParts_sign model context parent.codec window enclosure enclosureBuilt).trans windowSign
+ dsimp only [context] at equationBuilt enclosureBuilt
+ refine ⟨⟨root,equation,enclosure,equationZero,enclosurePositive⟩, ?_⟩
+ simp [select, equationBuilt, enclosureBuilt, equationZero, enclosurePositive,
+ pure, Except.pure, bind, Except.bind]
+
+/-- Successful singleton selection retains two independently accepted scalar
+packets at its exact root, using the canonical predecessor codec. -/
+theorem select_checked (model : Model parent ℝ)
+ (root : Descriptor parent.Value Signature parent.sign parent.signature)
+ (polynomial window : DensePoly parent.Value) (result : Result parent)
+ (produced : select polynomial window [root] = .ok result) :
+ result.root = root ∧
+ result.equation.polynomial = Codec.poly parent.codec polynomial ∧
+ result.enclosure.polynomial = Codec.poly parent.codec window ∧
+ (let context := Algebraic.Context.adjoin result.root parent.isClean
+ (ScalarPacket.read model parent.codec context result.equation.polynomial
+ result.equation.sign result.equation.evidence).isSome = true ∧
+ (ScalarPacket.read model parent.codec context result.enclosure.polynomial
+ result.enclosure.sign result.enclosure.evidence).isSome = true) := by
+ cases equationBuilt : ScalarPacket.buildParts (Algebraic.Context.adjoin root parent.isClean)
+ parent.codec polynomial with
+ | none => simp [select, equationBuilt, pure, Except.pure, bind, Except.bind] at produced
+ | some equation =>
+ by_cases zero : equation.sign = 0
+ · cases enclosureBuilt : ScalarPacket.buildParts (Algebraic.Context.adjoin root parent.isClean)
+ parent.codec window with
+ | none => simp [select, equationBuilt, zero, enclosureBuilt, pure, Except.pure, bind, Except.bind] at produced
+ | some enclosure =>
+ by_cases positive : enclosure.sign = 1
+ · simp [select, equationBuilt, zero, enclosureBuilt, positive,
+ pure, Except.pure, bind, Except.bind] at produced
+ cases produced
+ exact ⟨rfl, ScalarPacket.buildParts_poly _ parent.codec polynomial equation equationBuilt,
+ ScalarPacket.buildParts_poly _ parent.codec window enclosure enclosureBuilt,
+ ScalarPacket.buildParts_accepted model _ parent.codec parent.codec_lawful
+ polynomial equation equationBuilt,
+ ScalarPacket.buildParts_accepted model _ parent.codec parent.codec_lawful
+ window enclosure enclosureBuilt⟩
+ · by_cases absent : enclosure.sign = 0 ∨ enclosure.sign = -1 <;>
+ simp [select, equationBuilt, zero, enclosureBuilt, positive, absent,
+ pure, Except.pure, bind, Except.bind, throw] at produced
+ · simp [select, equationBuilt, zero, pure, Except.pure, bind, Except.bind] at produced
+
+/-- A list of actual roots with exactly one positive window match produces a
+source. These are semantic input conditions; no scalar packet or successful
+producer result is assumed. -/
+theorem select_success (model : Model parent ℝ)
+ (polynomial window : DensePoly parent.Value)
+ (roots : List (Descriptor parent.Value Signature parent.sign parent.signature))
+ (zero : ∀ root ∈ roots,
+ (HexPolyTheory.Interpret.interpret model.value model.zero_iff polynomial).eval
+ (root.root model.value model.zero_iff model.one model.add model.sub model.mul
+ model.nat model.sign) = 0)
+ (one : (roots.filter fun root => decide (0 <
+ (HexPolyTheory.Interpret.interpret model.value model.zero_iff window).eval
+ (root.root model.value model.zero_iff model.one model.add model.sub model.mul
+ model.nat model.sign))).length = 1) :
+ ∃ result, select polynomial window roots = .ok result := by
+ classical
+ let value (root : Descriptor parent.Value Signature parent.sign parent.signature) :=
+ root.root model.value model.zero_iff model.one model.add model.sub model.mul model.nat model.sign
+ let query root := (HexPolyTheory.Interpret.interpret model.value model.zero_iff window).eval (value root)
+ let marked root := decide (0 < query root)
+ let step (root : Descriptor parent.Value Signature parent.sign parent.signature)
+ (state : Option (Result parent)) : Except Error (ForInStep (Option (Result parent))) := do
+ let context := Algebraic.Context.adjoin root parent.isClean
+ let some equation := ScalarPacket.buildParts context parent.codec polynomial | throw .equation
+ if zero : equation.sign = 0 then
+ let some enclosure := ScalarPacket.buildParts context parent.codec window | throw .enclosure
+ if positive : enclosure.sign = 1 then
+ if state.isSome then throw .ambiguous
+ return .yield (some ⟨root,equation,enclosure,zero,positive⟩)
+ else
+ unless enclosure.sign = 0 || enclosure.sign = -1 do throw .enclosure
+ return .yield state
+ else throw .equation
+ have advances (root) (member : root ∈ roots) (state : Option (Result parent))
+ (capacity : marked root = true → state.isSome = false) :
+ ∃ next, step root state = .ok (.yield next) ∧
+ (if next.isSome then 1 else 0) =
+ (if state.isSome then 1 else 0) + (if marked root then 1 else 0) := by
+ let context := Algebraic.Context.adjoin root parent.isClean
+ obtain ⟨equation,equationBuilt⟩ := ScalarPacket.buildParts_success model context parent.codec polynomial
+ obtain ⟨enclosure,enclosureBuilt⟩ := ScalarPacket.buildParts_success model context parent.codec window
+ have equationZero : equation.sign = 0 := by
+ rw [ScalarPacket.buildParts_sign model context parent.codec polynomial equation equationBuilt,
+ context.signPoly_spec model.value model.zero_iff model.one model.add model.sub
+ model.mul model.nat model.sign model.neg model.inv]
+ simp [Algebraic.Context.evalPoly, Algebraic.Context.rootValue, context,
+ Algebraic.Context.root_adjoin, zero root member]
+ have enclosureSign : enclosure.sign = (SignType.sign (query root) : Int) := by
+ rw [ScalarPacket.buildParts_sign model context parent.codec window enclosure enclosureBuilt,
+ context.signPoly_spec model.value model.zero_iff model.one model.add model.sub
+ model.mul model.nat model.sign model.neg model.inv]
+ simp [Algebraic.Context.evalPoly, Algebraic.Context.rootValue, context,
+ Algebraic.Context.root_adjoin, query, value]
+ dsimp only [context] at equationBuilt enclosureBuilt
+ by_cases positive : 0 < query root
+ · have enclosurePositive : enclosure.sign = 1 := enclosureSign.trans
+ (congrArg (fun sign : SignType => (sign : Int)) (sign_eq_one_iff.mpr positive))
+ have empty := capacity (by simp [marked,positive])
+ refine ⟨some ⟨root,equation,enclosure,equationZero,enclosurePositive⟩, ?_, ?_⟩
+ · simp [step,equationBuilt,enclosureBuilt,equationZero,enclosurePositive,empty,
+ bind,Except.bind,pure,Except.pure]
+ · simp [empty,marked,positive]
+ · have allowed : enclosure.sign = 0 ∨ enclosure.sign = -1 := by
+ rcases lt_or_eq_of_le (le_of_not_gt positive) with negative | equal
+ · exact Or.inr (enclosureSign.trans
+ (congrArg (fun sign : SignType => (sign : Int)) (sign_eq_neg_one_iff.mpr negative)))
+ · exact Or.inl (by simpa [equal] using enclosureSign)
+ have notOne : enclosure.sign ≠ 1 := by rcases allowed with h | h <;> omega
+ refine ⟨state, ?_, ?_⟩
+ · simp [step,equationBuilt,enclosureBuilt,equationZero,notOne,allowed,
+ bind,Except.bind,pure,Except.pure]
+ · simp [marked,positive]
+ have loop (rest : List _) (members : ∀ root ∈ rest, root ∈ roots) (state : Option (Result parent))
+ (count : (rest.filter marked).length + (if state.isSome then 1 else 0) = 1) :
+ ∃ output, forIn rest state step = .ok output ∧ output.isSome = true := by
+ induction rest generalizing state with
+ | nil =>
+ cases state with
+ | none => simp at count
+ | some source => exact ⟨some source, by simp, rfl⟩
+ | cons root rest ih =>
+ have capacity : marked root = true → state.isSome = false := by
+ intro positive
+ have bound := count
+ simp only [List.filter_cons,positive,↓reduceIte,List.length_cons] at bound
+ cases occupied : state.isSome <;> simp_all
+ omega
+ obtain ⟨next,advanced,flags⟩ := advances root (members root (by simp)) state capacity
+ have remaining : (rest.filter marked).length + (if next.isSome then 1 else 0) = 1 := by
+ cases positive : marked root <;> simp [positive] at count flags <;> omega
+ obtain ⟨output,returned,present⟩ := ih (fun root member => members root (by simp [member])) next remaining
+ exact ⟨output, by simpa [List.forIn_cons,advanced,bind,Except.bind] using returned, present⟩
+ obtain ⟨state,returned,present⟩ := loop roots (fun _ member => member) none (by simpa [marked,query,value] using one)
+ cases state with
+ | none => simp at present
+ | some source =>
+ refine ⟨source, ?_⟩
+ change (do
+ let state ← forIn roots (none : Option (Result parent)) step
+ match state with
+ | none => throw Error.unselected
+ | some source => pure source) = .ok source
+ simp [returned,bind,Except.bind,pure,Except.pure]
+
+/-- Every successful selection from an arbitrary root list retains a member
+of that list and independently accepted packets for the original two keys.
+No singleton-list, producer-success or serialization premise is required. -/
+theorem select_checks (model : Model parent ℝ)
+ (polynomial window : DensePoly parent.Value)
+ (roots : List (Descriptor parent.Value Signature parent.sign parent.signature))
+ (result : Result parent) (produced : select polynomial window roots = .ok result) :
+ result.root ∈ roots ∧
+ result.equation.polynomial = Codec.poly parent.codec polynomial ∧
+ result.enclosure.polynomial = Codec.poly parent.codec window ∧
+ (let context := Algebraic.Context.adjoin result.root parent.isClean
+ (ScalarPacket.read model parent.codec context result.equation.polynomial
+ result.equation.sign result.equation.evidence).isSome = true ∧
+ (ScalarPacket.read model parent.codec context result.enclosure.polynomial
+ result.enclosure.sign result.enclosure.evidence).isSome = true) := by
+ let checked (source : Result parent) : Prop :=
+ source.root ∈ roots ∧
+ source.equation.polynomial = Codec.poly parent.codec polynomial ∧
+ source.enclosure.polynomial = Codec.poly parent.codec window ∧
+ (let context := Algebraic.Context.adjoin source.root parent.isClean
+ (ScalarPacket.read model parent.codec context source.equation.polynomial
+ source.equation.sign source.equation.evidence).isSome = true ∧
+ (ScalarPacket.read model parent.codec context source.enclosure.polynomial
+ source.enclosure.sign source.enclosure.evidence).isSome = true)
+ let invariant (state : Option (Result parent)) : Prop :=
+ ∀ source, state = some source → checked source
+ let step (root : Descriptor parent.Value Signature parent.sign parent.signature)
+ (state : Option (Result parent)) : Except Error (ForInStep (Option (Result parent))) := do
+ let context := Algebraic.Context.adjoin root parent.isClean
+ let some equation := ScalarPacket.buildParts context parent.codec polynomial
+ | throw .equation
+ if zero : equation.sign = 0 then
+ let some enclosure := ScalarPacket.buildParts context parent.codec window
+ | throw .enclosure
+ if positive : enclosure.sign = 1 then
+ if state.isSome then throw .ambiguous
+ return .yield (some ⟨root,equation,enclosure,zero,positive⟩)
+ else
+ unless enclosure.sign = 0 || enclosure.sign = -1 do throw .enclosure
+ return .yield state
+ else throw .equation
+ have preserves (root) (member : root ∈ roots) (state) (valid : invariant state)
+ (next) (returned : step root state = .ok next) : invariant next.value := by
+ cases equationBuilt : ScalarPacket.buildParts (Algebraic.Context.adjoin root parent.isClean)
+ parent.codec polynomial with
+ | none => simp [step, equationBuilt, bind, Except.bind] at returned
+ | some equation =>
+ by_cases zero : equation.sign = 0
+ · cases enclosureBuilt : ScalarPacket.buildParts (Algebraic.Context.adjoin root parent.isClean)
+ parent.codec window with
+ | none => simp [step, equationBuilt, zero, enclosureBuilt, bind, Except.bind] at returned
+ | some enclosure =>
+ by_cases positive : enclosure.sign = 1
+ · by_cases occupied : state.isSome = true
+ · simp [step, equationBuilt, zero, enclosureBuilt, positive, occupied,
+ bind, Except.bind] at returned
+ · simp [step, equationBuilt, zero, enclosureBuilt, positive, occupied,
+ bind, Except.bind, pure, Except.pure] at returned
+ cases returned
+ have accepted : checked ⟨root,equation,enclosure,zero,positive⟩ :=
+ ⟨member, ScalarPacket.buildParts_poly _ parent.codec polynomial equation equationBuilt,
+ ScalarPacket.buildParts_poly _ parent.codec window enclosure enclosureBuilt,
+ ScalarPacket.buildParts_accepted model _ parent.codec parent.codec_lawful
+ polynomial equation equationBuilt,
+ ScalarPacket.buildParts_accepted model _ parent.codec parent.codec_lawful
+ window enclosure enclosureBuilt⟩
+ simpa [invariant] using accepted
+ · by_cases allowed : enclosure.sign = 0 ∨ enclosure.sign = -1
+ · simp [step, equationBuilt, zero, enclosureBuilt, positive, allowed,
+ bind, Except.bind, pure, Except.pure] at returned
+ cases returned
+ exact valid
+ · simp [step, equationBuilt, zero, enclosureBuilt, positive, allowed,
+ bind, Except.bind] at returned
+ · simp [step, equationBuilt, zero, bind, Except.bind] at returned
+ have loop (rest : List _) (members : ∀ root ∈ rest, root ∈ roots)
+ (state output) (valid : invariant state)
+ (returned : forIn rest state step = .ok output) : invariant output := by
+ induction rest generalizing state output with
+ | nil =>
+ simp only [List.forIn_nil, pure, Except.pure, Except.ok.injEq] at returned
+ cases returned
+ exact valid
+ | cons root rest ih =>
+ rw [List.forIn_cons] at returned
+ cases advanced : step root state with
+ | error cause => simp [advanced, bind, Except.bind] at returned
+ | ok next =>
+ have validNext := preserves root (members root (by simp)) state valid next advanced
+ cases next with
+ | done next =>
+ simp [advanced, bind, Except.bind, pure, Except.pure] at returned
+ cases returned
+ exact validNext
+ | yield next =>
+ exact ih (fun root member => members root (by simp [member])) next output validNext
+ (by simpa [advanced, bind, Except.bind] using returned)
+ change (do
+ let state ← forIn roots (none : Option (Result parent)) step
+ match state with
+ | none => throw Error.unselected
+ | some source => pure source) = .ok result at produced
+ cases returned : forIn roots (none : Option (Result parent)) step with
+ | error cause => simp [returned, bind, Except.bind] at produced
+ | ok state =>
+ have valid := loop roots (fun _ member => member) none state
+ (by intro source impossible; cases impossible) returned
+ cases state with
+ | none => simp [returned, bind, Except.bind] at produced
+ | some source =>
+ simp [returned, bind, Except.bind, pure, Except.pure] at produced
+ cases produced
+ exact valid result rfl
+
+/-- Enumerate with the existing owner root producer and select exactly one
+root using the supplied enclosure polynomial. The usual window is the source
+isolating-square margin. Its original-source interpretation and selected-root
+identity are subsequently checked by `SourceIdentity.quoteWith`; this producer
+does not prove them, reconstruct a frozen parent, or establish completeness. -/
+def build (polynomial window : DensePoly parent.Value) : Except Error (Result parent) := do
+ let roots ← RootBuild.build polynomial |>.mapError Error.roots
+ select polynomial window roots.roots
+
+/-- Successful enumeration retains the exact original full descriptor, an
+actual real root and independently accepted original equation/window packets.
+The root and serialization facts are checked conclusions, not assumptions.
+Predecessor reconstruction and source-alias identification remain separate. -/
+theorem build_checked (model : Model parent ℝ)
+ (polynomial window : DensePoly parent.Value) (result : Result parent)
+ (produced : build polynomial window = .ok result) :
+ ∃ word, result.root.raw = (RootReplay.subject polynomial .negInf .posInf).full word ∧
+ result.root.root model.value model.zero_iff model.one model.add model.sub model.mul
+ model.nat model.sign ∈ HexRealRootsTheory.Tarski.rootsIn
+ (HexPolyTheory.Interpret.interpret model.value model.zero_iff polynomial)
+ .negInf .posInf ∧
+ result.equation.polynomial = Codec.poly parent.codec polynomial ∧
+ result.enclosure.polynomial = Codec.poly parent.codec window ∧
+ (let context := Algebraic.Context.adjoin result.root parent.isClean
+ (ScalarPacket.read model parent.codec context result.equation.polynomial
+ result.equation.sign result.equation.evidence).isSome = true ∧
+ (ScalarPacket.read model parent.codec context result.enclosure.polynomial
+ result.enclosure.sign result.enclosure.evidence).isSome = true) := by
+ cases enumerated : RootBuild.build polynomial with
+ | error cause => simp [build, enumerated, Except.mapError, bind, Except.bind] at produced
+ | ok roots =>
+ have selected : select polynomial window roots.roots = .ok result := by
+ simpa [build, enumerated, Except.mapError, bind, Except.bind] using produced
+ obtain ⟨member,equation,enclosure,accepted⟩ :=
+ select_checks model polynomial window roots.roots result selected
+ obtain ⟨word,raw⟩ := roots.fields result.root member
+ exact ⟨word,raw,roots.root_spec model result.root member,equation,enclosure,accepted⟩
+
+/-- Propose a source in an open interval with root-free endpoints. The
+owner checks the endpoints and exactly one root before constructing a
+descriptor with no derivative queries. The independent equation and original
+window packets are still required. Invalid domains, absent/ambiguous roots
+and production failures remain distinct; no all-real enumeration is retried.
+This is certificate production, not source identification or completeness. -/
+def buildOn (polynomial window : DensePoly parent.Value)
+ (lower upper : Endpoint parent.Value) : Except Error (Result parent) := do
+ let raw : RawDescriptor parent.Value Signature :=
+ ⟨parent.signature, polynomial, lower, upper, [], []⟩
+ let root ← match Descriptor.build parent.sign parent.signature raw with
+ | .error error => .error (.production error)
+ | .ok (.error error) => .error (.descriptor error)
+ | .ok (.ok root) => .ok root
+ select polynomial window [root]
+
+/-- Actual bounded production implies independent acceptance of its original
+equation and enclosure packets. No serialization or graph-shape premise is
+added; the canonical parent codec already has its owner roundtrip law. -/
+theorem buildOn_checked (model : Model parent ℝ)
+ (polynomial window : DensePoly parent.Value) (lower upper : Endpoint parent.Value)
+ (result : Result parent) (produced : buildOn polynomial window lower upper = .ok result) :
+ result.root.raw = ⟨parent.signature,polynomial,lower,upper,[],[]⟩ ∧
+ result.equation.polynomial = Codec.poly parent.codec polynomial ∧
+ result.enclosure.polynomial = Codec.poly parent.codec window ∧
+ (let context := Algebraic.Context.adjoin result.root parent.isClean
+ (ScalarPacket.read model parent.codec context result.equation.polynomial
+ result.equation.sign result.equation.evidence).isSome = true ∧
+ (ScalarPacket.read model parent.codec context result.enclosure.polynomial
+ result.enclosure.sign result.enclosure.evidence).isSome = true) := by
+ cases built : Descriptor.build parent.sign parent.signature
+ (⟨parent.signature,polynomial,lower,upper,[],[]⟩ : RawDescriptor parent.Value Signature) with
+ | error error => simp [buildOn, built, bind, Except.bind] at produced
+ | ok outcome =>
+ cases outcome with
+ | error error => simp [buildOn, built, bind, Except.bind] at produced
+ | ok root =>
+ have selected : select polynomial window [root] = .ok result := by
+ simpa only [buildOn, built, bind, Except.bind] using produced
+ obtain ⟨same, equation, enclosure, checked⟩ := select_checked model root polynomial window result selected
+ exact ⟨(congrArg (·.raw) same).trans (Descriptor.build_raw built), equation, enclosure, checked⟩
+
+/-- Accepted produced packets identify the original selected source. The
+source witness, alias selection and coefficient-map laws are inputs; scalar
+vanishing and window positivity are derived from the returned packets. This
+soundness law does not replace independent frozen quotation. -/
+theorem buildOn_identify (model : Model parent ℝ)
+ (polynomial window : DensePoly parent.Value) (lower upper : Endpoint parent.Value)
+ (result : Result parent) (produced : buildOn polynomial window lower upper = .ok result)
+ (sourceP : ZPoly) (square : DyadicSquare)
+ (hw : atomWitness sourceP square) (hp : (mahlerPrec sourceP : Int) ≤ square.prec)
+ (anchor : ℝ) (selected : (Field.literalRep sourceP square hw hp).root.re = anchor)
+ (equationValue : HexPolyTheory.Interpret.interpret model.value model.zero_iff polynomial =
+ LiteralSign.realPoly (ZPoly.toRatPoly sourceP))
+ (enclosureValue : HexPolyTheory.Interpret.interpret model.value model.zero_iff window =
+ LiteralSign.realPoly (SourceIdentity.margin square)) :
+ result.root.root model.value model.zero_iff model.one model.add model.sub model.mul
+ model.nat model.sign = anchor := by
+ obtain ⟨_, equationKey, enclosureKey, equationRead, enclosureRead⟩ :=
+ buildOn_checked model polynomial window lower upper result produced
+ let context := Algebraic.Context.adjoin result.root parent.isClean
+ let equation := ScalarPacket.restore model parent.codec context result.equation.polynomial
+ result.equation.sign result.equation.evidence equationRead
+ let enclosure := ScalarPacket.restore model parent.codec context result.enclosure.polynomial
+ result.enclosure.sign result.enclosure.evidence enclosureRead
+ have equationPoly : equation.polynomial = polynomial := by
+ change ScalarPacket.key parent.codec result.equation.polynomial = polynomial
+ rw [equationKey]
+ simp only [ScalarPacket.key, Codec.read_poly parent.codec parent.codec_lawful,
+ Except.toOption, Option.getD_some]
+ have enclosurePoly : enclosure.polynomial = window := by
+ change ScalarPacket.key parent.codec result.enclosure.polynomial = window
+ rw [enclosureKey]
+ simp only [ScalarPacket.key, Codec.read_poly parent.codec parent.codec_lawful,
+ Except.toOption, Option.getD_some]
+ apply SourceIdentity.identify model result.root sourceP square hw hp anchor selected equation enclosure
+ · rw [equationPoly]
+ exact equationValue
+ · rw [enclosurePoly]
+ exact enclosureValue
+ · exact result.zero
+ · exact result.positive
+
+/-- An ordinary-real count-one domain with a positive original window yields
+an actual bounded source proposal. The domain, count and sign premises are
+mathematical properties of the input, not successful producer equations.
+Frozen serialization acceptance and source alias identification are separate. -/
+theorem buildOn_success (model : Model parent ℝ)
+ (polynomial window : DensePoly parent.Value) (lower upper : Endpoint parent.Value)
+ (domain : HexSturmTheory.Domain model.value model.zero_iff polynomial lower upper)
+ (one : (HexRealRootsTheory.Tarski.rootsIn
+ (HexPolyTheory.Interpret.interpret model.value model.zero_iff polynomial)
+ (lower.map model.value) (upper.map model.value)).card = 1)
+ (positive : ∀ x ∈ HexRealRootsTheory.Tarski.rootsIn
+ (HexPolyTheory.Interpret.interpret model.value model.zero_iff polynomial)
+ (lower.map model.value) (upper.map model.value),
+ 0 < (HexPolyTheory.Interpret.interpret model.value model.zero_iff window).eval x) :
+ ∃ result, buildOn polynomial window lower upper = .ok result := by
+ classical
+ have countPositive : 0 < (HexRealRootsTheory.Tarski.rootsIn
+ (HexPolyTheory.Interpret.interpret model.value model.zero_iff polynomial)
+ (lower.map model.value) (upper.map model.value)).card := by
+ rw [one]
+ exact Nat.zero_lt_one
+ obtain ⟨witness, inDomain⟩ := Finset.card_pos.mp countPositive
+ have rootZero := ((HexRealRootsTheory.Tarski.mem_rootsIn_iff _ domain.1 _ _ _).mp inDomain).1
+ have semanticDegree := Polynomial.natDegree_pos_iff_degree_pos.mpr
+ (Polynomial.degree_pos_of_root domain.1 rootZero)
+ have degree : 0 < polynomial.natDegree := by
+ simpa only [HexPolyTheory.Interpret.natDegree_interpret] using semanticDegree
+ let raw : RawDescriptor parent.Value Signature :=
+ ⟨parent.signature,polynomial,lower,upper,[],[]⟩
+ obtain ⟨root, built⟩ := (Descriptor.build_success_iff model.value model.zero_iff
+ model.one model.add model.sub model.mul model.nat model.neg model.inv
+ parent.sign model.sign parent.signature raw).mpr
+ ⟨rfl, by simp [raw, RawDescriptor.wellFormed, degree], domain,
+ by simpa [raw, RawDescriptor.queries, signsAt] using one⟩
+ have retained := Descriptor.build_raw built
+ have member : root.root model.value model.zero_iff model.one model.add model.sub
+ model.mul model.nat model.sign ∈ HexRealRootsTheory.Tarski.rootsIn
+ (HexPolyTheory.Interpret.interpret model.value model.zero_iff polynomial)
+ (lower.map model.value) (upper.map model.value) := by
+ simpa only [retained] using (root.root_spec model.value model.zero_iff model.one
+ model.add model.sub model.mul model.nat model.sign).1
+ have zero := ((HexRealRootsTheory.Tarski.mem_rootsIn_iff _ domain.1 _ _ _).mp member).1
+ obtain ⟨result, selected⟩ := select_single model root polynomial window zero (positive _ member)
+ dsimp only [raw] at built
+ refine ⟨result, ?_⟩
+ simpa only [buildOn, built, bind, Except.bind] using selected
+
+/-- Valid count-one real inputs yield actual bounded production, exact literal
+subjects and two independently accepted scalar packets. The codec law belongs
+to the canonical parent; no accepted-output or serialization premise is added.
+This does not reconstruct a frozen parent history or identify a source alias. -/
+theorem buildOn_checks (model : Model parent ℝ)
+ (polynomial window : DensePoly parent.Value) (lower upper : Endpoint parent.Value)
+ (domain : HexSturmTheory.Domain model.value model.zero_iff polynomial lower upper)
+ (one : (HexRealRootsTheory.Tarski.rootsIn
+ (HexPolyTheory.Interpret.interpret model.value model.zero_iff polynomial)
+ (lower.map model.value) (upper.map model.value)).card = 1)
+ (positive : ∀ x ∈ HexRealRootsTheory.Tarski.rootsIn
+ (HexPolyTheory.Interpret.interpret model.value model.zero_iff polynomial)
+ (lower.map model.value) (upper.map model.value),
+ 0 < (HexPolyTheory.Interpret.interpret model.value model.zero_iff window).eval x) :
+ ∃ result, buildOn polynomial window lower upper = .ok result ∧
+ result.root.raw = ⟨parent.signature,polynomial,lower,upper,[],[]⟩ ∧
+ result.equation.polynomial = Codec.poly parent.codec polynomial ∧
+ result.enclosure.polynomial = Codec.poly parent.codec window ∧
+ (let context := Algebraic.Context.adjoin result.root parent.isClean
+ (ScalarPacket.read model parent.codec context result.equation.polynomial
+ result.equation.sign result.equation.evidence).isSome = true ∧
+ (ScalarPacket.read model parent.codec context result.enclosure.polynomial
+ result.enclosure.sign result.enclosure.evidence).isSome = true) := by
+ obtain ⟨result, produced⟩ := buildOn_success model polynomial window lower upper domain one positive
+ exact ⟨result, produced, buildOn_checked model polynomial window lower upper result produced⟩
+
+end Hex.RCF.RealCoefficients.SourceBuild
diff --git a/reports/data/hexrcf-enumerated-progress/source-select-progress-1.log.gz b/reports/data/hexrcf-enumerated-progress/source-select-progress-1.log.gz
new file mode 100644
index 0000000000..1b06d094d4
Binary files /dev/null and b/reports/data/hexrcf-enumerated-progress/source-select-progress-1.log.gz differ
diff --git a/reports/data/hexrcf-enumerated-progress/source-select-progress-2.lean.txt b/reports/data/hexrcf-enumerated-progress/source-select-progress-2.lean.txt
new file mode 100644
index 0000000000..2fb4824a0d
--- /dev/null
+++ b/reports/data/hexrcf-enumerated-progress/source-select-progress-2.lean.txt
@@ -0,0 +1,541 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+module
+public import HexRCF.RealCoefficients.RootBuild
+public import HexRCF.RealCoefficients.ScalarPacket
+public import HexRCF.RealCoefficients.SourceIdentity
+public section
+
+namespace Hex.RCF.RealCoefficients.SourceBuild
+open Hex Hex.RealClosure Hex.RealClosure.Tower Hex.SignDet
+variable {registry : BaseContext.Registry} {parent : Tower.Context registry}
+
+inductive Error where
+ | roots (error : RootBuild.Error)
+ | production (error : BuildError)
+ | descriptor (error : DescriptorError)
+ | equation
+ | enclosure
+ | ambiguous
+ | unselected
+ deriving Repr
+
+/-- Native proposals for one source root and the two independent scalar
+packets demanded by source authentication. The sign equalities only describe
+the proposed literal fields; they are not proof evidence about real values. -/
+structure Result (parent : Tower.Context registry) where
+ root : Descriptor parent.Value Signature parent.sign parent.signature
+ equation : ScalarPacket.Proposal
+ enclosure : ScalarPacket.Proposal
+ zero : equation.sign = 0
+ positive : enclosure.sign = 1
+
+/-- Visit every enumerated root. Failure to produce a row is terminal, and a
+second positive window match rejects an ambiguous source rather than choosing
+an arbitrary conjugate. No equation or enclosure is silently substituted. -/
+def select (polynomial window : DensePoly parent.Value)
+ (roots : List (Descriptor parent.Value Signature parent.sign parent.signature)) :
+ Except Error (Result parent) := do
+ let mut selected : Option (Result parent) := none
+ for root in roots do
+ let context := Algebraic.Context.adjoin root parent.isClean
+ let some equation := ScalarPacket.buildParts context parent.codec polynomial
+ | throw .equation
+ if zero : equation.sign = 0 then
+ let some enclosure := ScalarPacket.buildParts context parent.codec window
+ | throw .enclosure
+ if positive : enclosure.sign = 1 then
+ if selected.isSome then throw .ambiguous
+ selected := some ⟨root,equation,enclosure,zero,positive⟩
+ else unless enclosure.sign = 0 || enclosure.sign = -1 do throw .enclosure
+ else throw .equation
+ match selected with
+ | none => throw .unselected
+ | some result => return result
+
+/-- A lawful selected root satisfying the original equation and strictly
+positive window produces both scalar packets. No successful producer output
+or table is assumed. This establishes proposal progress, not frozen replay. -/
+theorem select_single (model : Model parent ℝ)
+ (root : Descriptor parent.Value Signature parent.sign parent.signature)
+ (polynomial window : DensePoly parent.Value)
+ (zero : (HexPolyTheory.Interpret.interpret model.value model.zero_iff polynomial).eval
+ (root.root model.value model.zero_iff model.one model.add model.sub model.mul model.nat model.sign) = 0)
+ (positive : 0 < (HexPolyTheory.Interpret.interpret model.value model.zero_iff window).eval
+ (root.root model.value model.zero_iff model.one model.add model.sub model.mul model.nat model.sign)) :
+ ∃ result, select polynomial window [root] = .ok result := by
+ let context := Algebraic.Context.adjoin root parent.isClean
+ have equationSign : context.signPoly polynomial = 0 := by
+ rw [context.signPoly_spec model.value model.zero_iff model.one model.add model.sub
+ model.mul model.nat model.sign model.neg model.inv]
+ simp [Algebraic.Context.evalPoly, Algebraic.Context.rootValue,
+ context, Algebraic.Context.root_adjoin, zero]
+ have windowSign : context.signPoly window = 1 := by
+ rw [context.signPoly_spec model.value model.zero_iff model.one model.add model.sub
+ model.mul model.nat model.sign model.neg model.inv]
+ have sign := congrArg (fun sign : SignType => (sign : Int)) (sign_eq_one_iff.mpr positive)
+ simpa [Algebraic.Context.evalPoly, Algebraic.Context.rootValue,
+ context, Algebraic.Context.root_adjoin] using sign
+ obtain ⟨equation, equationBuilt⟩ := ScalarPacket.buildParts_success model context parent.codec polynomial
+ obtain ⟨enclosure, enclosureBuilt⟩ := ScalarPacket.buildParts_success model context parent.codec window
+ have equationZero := (ScalarPacket.buildParts_sign model context parent.codec polynomial equation equationBuilt).trans equationSign
+ have enclosurePositive := (ScalarPacket.buildParts_sign model context parent.codec window enclosure enclosureBuilt).trans windowSign
+ dsimp only [context] at equationBuilt enclosureBuilt
+ refine ⟨⟨root,equation,enclosure,equationZero,enclosurePositive⟩, ?_⟩
+ simp [select, equationBuilt, enclosureBuilt, equationZero, enclosurePositive,
+ pure, Except.pure, bind, Except.bind]
+
+/-- Successful singleton selection retains two independently accepted scalar
+packets at its exact root, using the canonical predecessor codec. -/
+theorem select_checked (model : Model parent ℝ)
+ (root : Descriptor parent.Value Signature parent.sign parent.signature)
+ (polynomial window : DensePoly parent.Value) (result : Result parent)
+ (produced : select polynomial window [root] = .ok result) :
+ result.root = root ∧
+ result.equation.polynomial = Codec.poly parent.codec polynomial ∧
+ result.enclosure.polynomial = Codec.poly parent.codec window ∧
+ (let context := Algebraic.Context.adjoin result.root parent.isClean
+ (ScalarPacket.read model parent.codec context result.equation.polynomial
+ result.equation.sign result.equation.evidence).isSome = true ∧
+ (ScalarPacket.read model parent.codec context result.enclosure.polynomial
+ result.enclosure.sign result.enclosure.evidence).isSome = true) := by
+ cases equationBuilt : ScalarPacket.buildParts (Algebraic.Context.adjoin root parent.isClean)
+ parent.codec polynomial with
+ | none => simp [select, equationBuilt, pure, Except.pure, bind, Except.bind] at produced
+ | some equation =>
+ by_cases zero : equation.sign = 0
+ · cases enclosureBuilt : ScalarPacket.buildParts (Algebraic.Context.adjoin root parent.isClean)
+ parent.codec window with
+ | none => simp [select, equationBuilt, zero, enclosureBuilt, pure, Except.pure, bind, Except.bind] at produced
+ | some enclosure =>
+ by_cases positive : enclosure.sign = 1
+ · simp [select, equationBuilt, zero, enclosureBuilt, positive,
+ pure, Except.pure, bind, Except.bind] at produced
+ cases produced
+ exact ⟨rfl, ScalarPacket.buildParts_poly _ parent.codec polynomial equation equationBuilt,
+ ScalarPacket.buildParts_poly _ parent.codec window enclosure enclosureBuilt,
+ ScalarPacket.buildParts_accepted model _ parent.codec parent.codec_lawful
+ polynomial equation equationBuilt,
+ ScalarPacket.buildParts_accepted model _ parent.codec parent.codec_lawful
+ window enclosure enclosureBuilt⟩
+ · by_cases absent : enclosure.sign = 0 ∨ enclosure.sign = -1 <;>
+ simp [select, equationBuilt, zero, enclosureBuilt, positive, absent,
+ pure, Except.pure, bind, Except.bind, throw] at produced
+ · simp [select, equationBuilt, zero, pure, Except.pure, bind, Except.bind] at produced
+
+/-- A list of actual roots with exactly one positive window match produces a
+source. These are semantic input conditions; no scalar packet or successful
+producer result is assumed. -/
+theorem select_success (model : Model parent ℝ)
+ (polynomial window : DensePoly parent.Value)
+ (roots : List (Descriptor parent.Value Signature parent.sign parent.signature))
+ (zero : ∀ root ∈ roots,
+ (HexPolyTheory.Interpret.interpret model.value model.zero_iff polynomial).eval
+ (root.root model.value model.zero_iff model.one model.add model.sub model.mul
+ model.nat model.sign) = 0)
+ (one : (roots.filter fun root => Decidable.decide (0 <
+ (HexPolyTheory.Interpret.interpret model.value model.zero_iff window).eval
+ (root.root model.value model.zero_iff model.one model.add model.sub model.mul
+ model.nat model.sign))).length = 1) :
+ ∃ result, select polynomial window roots = .ok result := by
+ classical
+ let value (root : Descriptor parent.Value Signature parent.sign parent.signature) :=
+ root.root model.value model.zero_iff model.one model.add model.sub model.mul model.nat model.sign
+ let query root := (HexPolyTheory.Interpret.interpret model.value model.zero_iff window).eval (value root)
+ let marked root := Decidable.decide (0 < query root)
+ let step (root : Descriptor parent.Value Signature parent.sign parent.signature)
+ (state : Option (Result parent)) : Except Error (ForInStep (Option (Result parent))) := do
+ let context := Algebraic.Context.adjoin root parent.isClean
+ let some equation := ScalarPacket.buildParts context parent.codec polynomial | throw .equation
+ if zero : equation.sign = 0 then
+ let some enclosure := ScalarPacket.buildParts context parent.codec window | throw .enclosure
+ if positive : enclosure.sign = 1 then
+ if state.isSome then throw .ambiguous
+ return .yield (some ⟨root,equation,enclosure,zero,positive⟩)
+ else
+ unless enclosure.sign = 0 || enclosure.sign = -1 do throw .enclosure
+ return .yield state
+ else throw .equation
+ have advances (root) (member : root ∈ roots) (state : Option (Result parent))
+ (capacity : marked root = true → state.isSome = false) :
+ ∃ next, step root state = .ok (.yield next) ∧
+ (if next.isSome then 1 else 0) =
+ (if state.isSome then 1 else 0) + (if marked root then 1 else 0) := by
+ let context := Algebraic.Context.adjoin root parent.isClean
+ obtain ⟨equation,equationBuilt⟩ := ScalarPacket.buildParts_success model context parent.codec polynomial
+ obtain ⟨enclosure,enclosureBuilt⟩ := ScalarPacket.buildParts_success model context parent.codec window
+ have equationZero : equation.sign = 0 := by
+ rw [ScalarPacket.buildParts_sign model context parent.codec polynomial equation equationBuilt,
+ context.signPoly_spec model.value model.zero_iff model.one model.add model.sub
+ model.mul model.nat model.sign model.neg model.inv]
+ simp [Algebraic.Context.evalPoly, Algebraic.Context.rootValue, context,
+ Algebraic.Context.root_adjoin, zero root member]
+ have enclosureSign : enclosure.sign = (SignType.sign (query root) : Int) := by
+ rw [ScalarPacket.buildParts_sign model context parent.codec window enclosure enclosureBuilt,
+ context.signPoly_spec model.value model.zero_iff model.one model.add model.sub
+ model.mul model.nat model.sign model.neg model.inv]
+ simp [Algebraic.Context.evalPoly, Algebraic.Context.rootValue, context,
+ Algebraic.Context.root_adjoin, query, value]
+ dsimp only [context] at equationBuilt enclosureBuilt
+ by_cases positive : 0 < query root
+ · have enclosurePositive : enclosure.sign = 1 := enclosureSign.trans
+ (congrArg (fun sign : SignType => (sign : Int)) (sign_eq_one_iff.mpr positive))
+ have empty := capacity (by simp [marked,positive])
+ refine ⟨some ⟨root,equation,enclosure,equationZero,enclosurePositive⟩, ?_, ?_⟩
+ · simp [step,equationBuilt,enclosureBuilt,equationZero,enclosurePositive,empty,
+ bind,Except.bind,pure,Except.pure]
+ · simp [empty,marked,positive]
+ · have allowed : enclosure.sign = 0 ∨ enclosure.sign = -1 := by
+ rcases lt_or_eq_of_le (le_of_not_gt positive) with negative | equal
+ · exact Or.inr (enclosureSign.trans
+ (congrArg (fun sign : SignType => (sign : Int)) (sign_eq_neg_one_iff.mpr negative)))
+ · exact Or.inl (by simpa [equal] using enclosureSign)
+ have notOne : enclosure.sign ≠ 1 := by rcases allowed with h | h <;> omega
+ refine ⟨state, ?_, ?_⟩
+ · simp [step,equationBuilt,enclosureBuilt,equationZero,notOne,allowed,
+ bind,Except.bind,pure,Except.pure]
+ · simp [marked,positive]
+ have loop (rest : List _) (members : ∀ root ∈ rest, root ∈ roots) (state : Option (Result parent))
+ (count : (rest.filter marked).length + (if state.isSome then 1 else 0) = 1) :
+ ∃ output, forIn rest state step = .ok output ∧ output.isSome = true := by
+ induction rest generalizing state with
+ | nil =>
+ cases state with
+ | none => simp at count
+ | some source => exact ⟨some source, by simp, rfl⟩
+ | cons root rest ih =>
+ have capacity : marked root = true → state.isSome = false := by
+ intro positive
+ have bound := count
+ simp only [List.filter_cons,positive,↓reduceIte,List.length_cons] at bound
+ cases occupied : state.isSome <;> simp_all
+ omega
+ obtain ⟨next,advanced,flags⟩ := advances root (members root (by simp)) state capacity
+ have remaining : (rest.filter marked).length + (if next.isSome then 1 else 0) = 1 := by
+ cases positive : marked root <;> simp [positive] at count flags <;> omega
+ obtain ⟨output,returned,present⟩ := ih (fun root member => members root (by simp [member])) next remaining
+ exact ⟨output, by simpa [List.forIn_cons,advanced,bind,Except.bind] using returned, present⟩
+ obtain ⟨state,returned,present⟩ := loop roots (fun _ member => member) none (by simpa [marked,query,value] using one)
+ cases state with
+ | none => simp at present
+ | some source =>
+ refine ⟨source, ?_⟩
+ change (do
+ let state ← forIn roots (none : Option (Result parent)) step
+ match state with
+ | none => throw Error.unselected
+ | some source => pure source) = .ok source
+ simp [returned,bind,Except.bind,pure,Except.pure]
+
+/-- Every successful selection from an arbitrary root list retains a member
+of that list and independently accepted packets for the original two keys.
+No singleton-list, producer-success or serialization premise is required. -/
+theorem select_checks (model : Model parent ℝ)
+ (polynomial window : DensePoly parent.Value)
+ (roots : List (Descriptor parent.Value Signature parent.sign parent.signature))
+ (result : Result parent) (produced : select polynomial window roots = .ok result) :
+ result.root ∈ roots ∧
+ result.equation.polynomial = Codec.poly parent.codec polynomial ∧
+ result.enclosure.polynomial = Codec.poly parent.codec window ∧
+ (let context := Algebraic.Context.adjoin result.root parent.isClean
+ (ScalarPacket.read model parent.codec context result.equation.polynomial
+ result.equation.sign result.equation.evidence).isSome = true ∧
+ (ScalarPacket.read model parent.codec context result.enclosure.polynomial
+ result.enclosure.sign result.enclosure.evidence).isSome = true) := by
+ let checked (source : Result parent) : Prop :=
+ source.root ∈ roots ∧
+ source.equation.polynomial = Codec.poly parent.codec polynomial ∧
+ source.enclosure.polynomial = Codec.poly parent.codec window ∧
+ (let context := Algebraic.Context.adjoin source.root parent.isClean
+ (ScalarPacket.read model parent.codec context source.equation.polynomial
+ source.equation.sign source.equation.evidence).isSome = true ∧
+ (ScalarPacket.read model parent.codec context source.enclosure.polynomial
+ source.enclosure.sign source.enclosure.evidence).isSome = true)
+ let invariant (state : Option (Result parent)) : Prop :=
+ ∀ source, state = some source → checked source
+ let step (root : Descriptor parent.Value Signature parent.sign parent.signature)
+ (state : Option (Result parent)) : Except Error (ForInStep (Option (Result parent))) := do
+ let context := Algebraic.Context.adjoin root parent.isClean
+ let some equation := ScalarPacket.buildParts context parent.codec polynomial
+ | throw .equation
+ if zero : equation.sign = 0 then
+ let some enclosure := ScalarPacket.buildParts context parent.codec window
+ | throw .enclosure
+ if positive : enclosure.sign = 1 then
+ if state.isSome then throw .ambiguous
+ return .yield (some ⟨root,equation,enclosure,zero,positive⟩)
+ else
+ unless enclosure.sign = 0 || enclosure.sign = -1 do throw .enclosure
+ return .yield state
+ else throw .equation
+ have preserves (root) (member : root ∈ roots) (state) (valid : invariant state)
+ (next) (returned : step root state = .ok next) : invariant next.value := by
+ cases equationBuilt : ScalarPacket.buildParts (Algebraic.Context.adjoin root parent.isClean)
+ parent.codec polynomial with
+ | none => simp [step, equationBuilt, bind, Except.bind] at returned
+ | some equation =>
+ by_cases zero : equation.sign = 0
+ · cases enclosureBuilt : ScalarPacket.buildParts (Algebraic.Context.adjoin root parent.isClean)
+ parent.codec window with
+ | none => simp [step, equationBuilt, zero, enclosureBuilt, bind, Except.bind] at returned
+ | some enclosure =>
+ by_cases positive : enclosure.sign = 1
+ · by_cases occupied : state.isSome = true
+ · simp [step, equationBuilt, zero, enclosureBuilt, positive, occupied,
+ bind, Except.bind] at returned
+ · simp [step, equationBuilt, zero, enclosureBuilt, positive, occupied,
+ bind, Except.bind, pure, Except.pure] at returned
+ cases returned
+ have accepted : checked ⟨root,equation,enclosure,zero,positive⟩ :=
+ ⟨member, ScalarPacket.buildParts_poly _ parent.codec polynomial equation equationBuilt,
+ ScalarPacket.buildParts_poly _ parent.codec window enclosure enclosureBuilt,
+ ScalarPacket.buildParts_accepted model _ parent.codec parent.codec_lawful
+ polynomial equation equationBuilt,
+ ScalarPacket.buildParts_accepted model _ parent.codec parent.codec_lawful
+ window enclosure enclosureBuilt⟩
+ simpa [invariant] using accepted
+ · by_cases allowed : enclosure.sign = 0 ∨ enclosure.sign = -1
+ · simp [step, equationBuilt, zero, enclosureBuilt, positive, allowed,
+ bind, Except.bind, pure, Except.pure] at returned
+ cases returned
+ exact valid
+ · simp [step, equationBuilt, zero, enclosureBuilt, positive, allowed,
+ bind, Except.bind] at returned
+ · simp [step, equationBuilt, zero, bind, Except.bind] at returned
+ have loop (rest : List _) (members : ∀ root ∈ rest, root ∈ roots)
+ (state output) (valid : invariant state)
+ (returned : forIn rest state step = .ok output) : invariant output := by
+ induction rest generalizing state output with
+ | nil =>
+ simp only [List.forIn_nil, pure, Except.pure, Except.ok.injEq] at returned
+ cases returned
+ exact valid
+ | cons root rest ih =>
+ rw [List.forIn_cons] at returned
+ cases advanced : step root state with
+ | error cause => simp [advanced, bind, Except.bind] at returned
+ | ok next =>
+ have validNext := preserves root (members root (by simp)) state valid next advanced
+ cases next with
+ | done next =>
+ simp [advanced, bind, Except.bind, pure, Except.pure] at returned
+ cases returned
+ exact validNext
+ | yield next =>
+ exact ih (fun root member => members root (by simp [member])) next output validNext
+ (by simpa [advanced, bind, Except.bind] using returned)
+ change (do
+ let state ← forIn roots (none : Option (Result parent)) step
+ match state with
+ | none => throw Error.unselected
+ | some source => pure source) = .ok result at produced
+ cases returned : forIn roots (none : Option (Result parent)) step with
+ | error cause => simp [returned, bind, Except.bind] at produced
+ | ok state =>
+ have valid := loop roots (fun _ member => member) none state
+ (by intro source impossible; cases impossible) returned
+ cases state with
+ | none => simp [returned, bind, Except.bind] at produced
+ | some source =>
+ simp [returned, bind, Except.bind, pure, Except.pure] at produced
+ cases produced
+ exact valid result rfl
+
+/-- Enumerate with the existing owner root producer and select exactly one
+root using the supplied enclosure polynomial. The usual window is the source
+isolating-square margin. Its original-source interpretation and selected-root
+identity are subsequently checked by `SourceIdentity.quoteWith`; this producer
+does not prove them, reconstruct a frozen parent, or establish completeness. -/
+def build (polynomial window : DensePoly parent.Value) : Except Error (Result parent) := do
+ let roots ← RootBuild.build polynomial |>.mapError Error.roots
+ select polynomial window roots.roots
+
+/-- Successful enumeration retains the exact original full descriptor, an
+actual real root and independently accepted original equation/window packets.
+The root and serialization facts are checked conclusions, not assumptions.
+Predecessor reconstruction and source-alias identification remain separate. -/
+theorem build_checked (model : Model parent ℝ)
+ (polynomial window : DensePoly parent.Value) (result : Result parent)
+ (produced : build polynomial window = .ok result) :
+ ∃ word, result.root.raw = (RootReplay.subject polynomial .negInf .posInf).full word ∧
+ result.root.root model.value model.zero_iff model.one model.add model.sub model.mul
+ model.nat model.sign ∈ HexRealRootsTheory.Tarski.rootsIn
+ (HexPolyTheory.Interpret.interpret model.value model.zero_iff polynomial)
+ .negInf .posInf ∧
+ result.equation.polynomial = Codec.poly parent.codec polynomial ∧
+ result.enclosure.polynomial = Codec.poly parent.codec window ∧
+ (let context := Algebraic.Context.adjoin result.root parent.isClean
+ (ScalarPacket.read model parent.codec context result.equation.polynomial
+ result.equation.sign result.equation.evidence).isSome = true ∧
+ (ScalarPacket.read model parent.codec context result.enclosure.polynomial
+ result.enclosure.sign result.enclosure.evidence).isSome = true) := by
+ cases enumerated : RootBuild.build polynomial with
+ | error cause => simp [build, enumerated, Except.mapError, bind, Except.bind] at produced
+ | ok roots =>
+ have selected : select polynomial window roots.roots = .ok result := by
+ simpa [build, enumerated, Except.mapError, bind, Except.bind] using produced
+ obtain ⟨member,equation,enclosure,accepted⟩ :=
+ select_checks model polynomial window roots.roots result selected
+ obtain ⟨word,raw⟩ := roots.fields result.root member
+ exact ⟨word,raw,roots.root_spec model result.root member,equation,enclosure,accepted⟩
+
+/-- Propose a source in an open interval with root-free endpoints. The
+owner checks the endpoints and exactly one root before constructing a
+descriptor with no derivative queries. The independent equation and original
+window packets are still required. Invalid domains, absent/ambiguous roots
+and production failures remain distinct; no all-real enumeration is retried.
+This is certificate production, not source identification or completeness. -/
+def buildOn (polynomial window : DensePoly parent.Value)
+ (lower upper : Endpoint parent.Value) : Except Error (Result parent) := do
+ let raw : RawDescriptor parent.Value Signature :=
+ ⟨parent.signature, polynomial, lower, upper, [], []⟩
+ let root ← match Descriptor.build parent.sign parent.signature raw with
+ | .error error => .error (.production error)
+ | .ok (.error error) => .error (.descriptor error)
+ | .ok (.ok root) => .ok root
+ select polynomial window [root]
+
+/-- Actual bounded production implies independent acceptance of its original
+equation and enclosure packets. No serialization or graph-shape premise is
+added; the canonical parent codec already has its owner roundtrip law. -/
+theorem buildOn_checked (model : Model parent ℝ)
+ (polynomial window : DensePoly parent.Value) (lower upper : Endpoint parent.Value)
+ (result : Result parent) (produced : buildOn polynomial window lower upper = .ok result) :
+ result.root.raw = ⟨parent.signature,polynomial,lower,upper,[],[]⟩ ∧
+ result.equation.polynomial = Codec.poly parent.codec polynomial ∧
+ result.enclosure.polynomial = Codec.poly parent.codec window ∧
+ (let context := Algebraic.Context.adjoin result.root parent.isClean
+ (ScalarPacket.read model parent.codec context result.equation.polynomial
+ result.equation.sign result.equation.evidence).isSome = true ∧
+ (ScalarPacket.read model parent.codec context result.enclosure.polynomial
+ result.enclosure.sign result.enclosure.evidence).isSome = true) := by
+ cases built : Descriptor.build parent.sign parent.signature
+ (⟨parent.signature,polynomial,lower,upper,[],[]⟩ : RawDescriptor parent.Value Signature) with
+ | error error => simp [buildOn, built, bind, Except.bind] at produced
+ | ok outcome =>
+ cases outcome with
+ | error error => simp [buildOn, built, bind, Except.bind] at produced
+ | ok root =>
+ have selected : select polynomial window [root] = .ok result := by
+ simpa only [buildOn, built, bind, Except.bind] using produced
+ obtain ⟨same, equation, enclosure, checked⟩ := select_checked model root polynomial window result selected
+ exact ⟨(congrArg (·.raw) same).trans (Descriptor.build_raw built), equation, enclosure, checked⟩
+
+/-- Accepted produced packets identify the original selected source. The
+source witness, alias selection and coefficient-map laws are inputs; scalar
+vanishing and window positivity are derived from the returned packets. This
+soundness law does not replace independent frozen quotation. -/
+theorem buildOn_identify (model : Model parent ℝ)
+ (polynomial window : DensePoly parent.Value) (lower upper : Endpoint parent.Value)
+ (result : Result parent) (produced : buildOn polynomial window lower upper = .ok result)
+ (sourceP : ZPoly) (square : DyadicSquare)
+ (hw : atomWitness sourceP square) (hp : (mahlerPrec sourceP : Int) ≤ square.prec)
+ (anchor : ℝ) (selected : (Field.literalRep sourceP square hw hp).root.re = anchor)
+ (equationValue : HexPolyTheory.Interpret.interpret model.value model.zero_iff polynomial =
+ LiteralSign.realPoly (ZPoly.toRatPoly sourceP))
+ (enclosureValue : HexPolyTheory.Interpret.interpret model.value model.zero_iff window =
+ LiteralSign.realPoly (SourceIdentity.margin square)) :
+ result.root.root model.value model.zero_iff model.one model.add model.sub model.mul
+ model.nat model.sign = anchor := by
+ obtain ⟨_, equationKey, enclosureKey, equationRead, enclosureRead⟩ :=
+ buildOn_checked model polynomial window lower upper result produced
+ let context := Algebraic.Context.adjoin result.root parent.isClean
+ let equation := ScalarPacket.restore model parent.codec context result.equation.polynomial
+ result.equation.sign result.equation.evidence equationRead
+ let enclosure := ScalarPacket.restore model parent.codec context result.enclosure.polynomial
+ result.enclosure.sign result.enclosure.evidence enclosureRead
+ have equationPoly : equation.polynomial = polynomial := by
+ change ScalarPacket.key parent.codec result.equation.polynomial = polynomial
+ rw [equationKey]
+ simp only [ScalarPacket.key, Codec.read_poly parent.codec parent.codec_lawful,
+ Except.toOption, Option.getD_some]
+ have enclosurePoly : enclosure.polynomial = window := by
+ change ScalarPacket.key parent.codec result.enclosure.polynomial = window
+ rw [enclosureKey]
+ simp only [ScalarPacket.key, Codec.read_poly parent.codec parent.codec_lawful,
+ Except.toOption, Option.getD_some]
+ apply SourceIdentity.identify model result.root sourceP square hw hp anchor selected equation enclosure
+ · rw [equationPoly]
+ exact equationValue
+ · rw [enclosurePoly]
+ exact enclosureValue
+ · exact result.zero
+ · exact result.positive
+
+/-- An ordinary-real count-one domain with a positive original window yields
+an actual bounded source proposal. The domain, count and sign premises are
+mathematical properties of the input, not successful producer equations.
+Frozen serialization acceptance and source alias identification are separate. -/
+theorem buildOn_success (model : Model parent ℝ)
+ (polynomial window : DensePoly parent.Value) (lower upper : Endpoint parent.Value)
+ (domain : HexSturmTheory.Domain model.value model.zero_iff polynomial lower upper)
+ (one : (HexRealRootsTheory.Tarski.rootsIn
+ (HexPolyTheory.Interpret.interpret model.value model.zero_iff polynomial)
+ (lower.map model.value) (upper.map model.value)).card = 1)
+ (positive : ∀ x ∈ HexRealRootsTheory.Tarski.rootsIn
+ (HexPolyTheory.Interpret.interpret model.value model.zero_iff polynomial)
+ (lower.map model.value) (upper.map model.value),
+ 0 < (HexPolyTheory.Interpret.interpret model.value model.zero_iff window).eval x) :
+ ∃ result, buildOn polynomial window lower upper = .ok result := by
+ classical
+ have countPositive : 0 < (HexRealRootsTheory.Tarski.rootsIn
+ (HexPolyTheory.Interpret.interpret model.value model.zero_iff polynomial)
+ (lower.map model.value) (upper.map model.value)).card := by
+ rw [one]
+ exact Nat.zero_lt_one
+ obtain ⟨witness, inDomain⟩ := Finset.card_pos.mp countPositive
+ have rootZero := ((HexRealRootsTheory.Tarski.mem_rootsIn_iff _ domain.1 _ _ _).mp inDomain).1
+ have semanticDegree := Polynomial.natDegree_pos_iff_degree_pos.mpr
+ (Polynomial.degree_pos_of_root domain.1 rootZero)
+ have degree : 0 < polynomial.natDegree := by
+ simpa only [HexPolyTheory.Interpret.natDegree_interpret] using semanticDegree
+ let raw : RawDescriptor parent.Value Signature :=
+ ⟨parent.signature,polynomial,lower,upper,[],[]⟩
+ obtain ⟨root, built⟩ := (Descriptor.build_success_iff model.value model.zero_iff
+ model.one model.add model.sub model.mul model.nat model.neg model.inv
+ parent.sign model.sign parent.signature raw).mpr
+ ⟨rfl, by simp [raw, RawDescriptor.wellFormed, degree], domain,
+ by simpa [raw, RawDescriptor.queries, signsAt] using one⟩
+ have retained := Descriptor.build_raw built
+ have member : root.root model.value model.zero_iff model.one model.add model.sub
+ model.mul model.nat model.sign ∈ HexRealRootsTheory.Tarski.rootsIn
+ (HexPolyTheory.Interpret.interpret model.value model.zero_iff polynomial)
+ (lower.map model.value) (upper.map model.value) := by
+ simpa only [retained] using (root.root_spec model.value model.zero_iff model.one
+ model.add model.sub model.mul model.nat model.sign).1
+ have zero := ((HexRealRootsTheory.Tarski.mem_rootsIn_iff _ domain.1 _ _ _).mp member).1
+ obtain ⟨result, selected⟩ := select_single model root polynomial window zero (positive _ member)
+ dsimp only [raw] at built
+ refine ⟨result, ?_⟩
+ simpa only [buildOn, built, bind, Except.bind] using selected
+
+/-- Valid count-one real inputs yield actual bounded production, exact literal
+subjects and two independently accepted scalar packets. The codec law belongs
+to the canonical parent; no accepted-output or serialization premise is added.
+This does not reconstruct a frozen parent history or identify a source alias. -/
+theorem buildOn_checks (model : Model parent ℝ)
+ (polynomial window : DensePoly parent.Value) (lower upper : Endpoint parent.Value)
+ (domain : HexSturmTheory.Domain model.value model.zero_iff polynomial lower upper)
+ (one : (HexRealRootsTheory.Tarski.rootsIn
+ (HexPolyTheory.Interpret.interpret model.value model.zero_iff polynomial)
+ (lower.map model.value) (upper.map model.value)).card = 1)
+ (positive : ∀ x ∈ HexRealRootsTheory.Tarski.rootsIn
+ (HexPolyTheory.Interpret.interpret model.value model.zero_iff polynomial)
+ (lower.map model.value) (upper.map model.value),
+ 0 < (HexPolyTheory.Interpret.interpret model.value model.zero_iff window).eval x) :
+ ∃ result, buildOn polynomial window lower upper = .ok result ∧
+ result.root.raw = ⟨parent.signature,polynomial,lower,upper,[],[]⟩ ∧
+ result.equation.polynomial = Codec.poly parent.codec polynomial ∧
+ result.enclosure.polynomial = Codec.poly parent.codec window ∧
+ (let context := Algebraic.Context.adjoin result.root parent.isClean
+ (ScalarPacket.read model parent.codec context result.equation.polynomial
+ result.equation.sign result.equation.evidence).isSome = true ∧
+ (ScalarPacket.read model parent.codec context result.enclosure.polynomial
+ result.enclosure.sign result.enclosure.evidence).isSome = true) := by
+ obtain ⟨result, produced⟩ := buildOn_success model polynomial window lower upper domain one positive
+ exact ⟨result, produced, buildOn_checked model polynomial window lower upper result produced⟩
+
+end Hex.RCF.RealCoefficients.SourceBuild
diff --git a/reports/data/hexrcf-enumerated-progress/source-select-progress-2.log.gz b/reports/data/hexrcf-enumerated-progress/source-select-progress-2.log.gz
new file mode 100644
index 0000000000..45a7ad4c9c
Binary files /dev/null and b/reports/data/hexrcf-enumerated-progress/source-select-progress-2.log.gz differ
diff --git a/reports/data/hexrcf-enumerated-progress/source-select-progress-3.log.gz b/reports/data/hexrcf-enumerated-progress/source-select-progress-3.log.gz
new file mode 100644
index 0000000000..c86ead8814
Binary files /dev/null and b/reports/data/hexrcf-enumerated-progress/source-select-progress-3.log.gz differ
diff --git a/reports/data/hexrcf-enumerated-progress/source-select-shape-1.lean.txt b/reports/data/hexrcf-enumerated-progress/source-select-shape-1.lean.txt
new file mode 100644
index 0000000000..7a42d9f493
--- /dev/null
+++ b/reports/data/hexrcf-enumerated-progress/source-select-shape-1.lean.txt
@@ -0,0 +1,3 @@
+import HexRCF.RealCoefficients.SourceBuild
+set_option pp.proofs false
+#print Hex.RCF.RealCoefficients.SourceBuild.select
diff --git a/reports/data/hexrcf-enumerated-progress/source-select-shape-1.log.gz b/reports/data/hexrcf-enumerated-progress/source-select-shape-1.log.gz
new file mode 100644
index 0000000000..aefc080e6e
Binary files /dev/null and b/reports/data/hexrcf-enumerated-progress/source-select-shape-1.log.gz differ
diff --git a/reports/data/hexrcf-enumerated-progress/verify.py b/reports/data/hexrcf-enumerated-progress/verify.py
new file mode 100644
index 0000000000..16e092e9a0
--- /dev/null
+++ b/reports/data/hexrcf-enumerated-progress/verify.py
@@ -0,0 +1,39 @@
+#!/usr/bin/env python3
+"""Check source-bound enumerated progress evidence and exact code projection."""
+from pathlib import Path
+import argparse,gzip,hashlib,json,subprocess
+here=Path(__file__).resolve().parent;root=next(p for p in here.parents if (p/'.git').exists())
+a=argparse.ArgumentParser();a.add_argument('--check-head',action='store_true');args=a.parse_args()
+sha=lambda b:hashlib.sha256(b).hexdigest()
+c=json.loads((here/'context.json').read_text())
+assert sha((root/'reports/data/hexrcf-scalar-acceptance/context.json').read_bytes())==c['parent_context_sha256']
+for p,digest in c['sources'].items():
+ raw=subprocess.check_output(['git','show',c['source_commit']+':'+p],cwd=root);assert sha(raw)==digest,p
+ if args.check_head:assert sha((root/p).read_bytes())==digest,p
+ before=subprocess.check_output(['git','show',c['base_commit']+':'+p],cwd=root)
+ if p not in c['changed']:assert raw==before,p;continue
+ s=raw.decode();old=before.decode()
+ if p.startswith('adapters/'):
+ for start,end in [('/-- A list of actual roots with exactly one positive window match','/-- Enumerate with the existing owner root producer'),('/-- A squarefree real head with exactly one positive window root','/-- Propose a source in an open interval')]:
+ first=s.index(start);last=s.index(end,first);s=s[:first]+s[last:]
+ else:
+ s=s.replace('import KernelReplay.AxiomClosure\n','');first=s.index(' let roots := #[');last=s.index('\nprivate def require',first);old_first=old.index(' for name in #[``ScalarPacket.buildParts_success');old_last=old.index('\nprivate def require',old_first);s=s[:first]+old[old_first:old_last]+s[last:]
+ assert s==old,p
+for name,digest in json.loads((here/'manifest.json').read_text()).items():assert sha((here/name).read_bytes())==digest,name
+read=lambda name:gzip.decompress((here/(name+'.gz')).read_bytes()).decode()
+for name in ['source-enumeration-conformance-2.log','source-enumeration-final-integration.log']:
+ assert 'code=exited, status=0/SUCCESS' in read(name),name
+native=read('source-enumeration-conformance-2.log')
+assert '7 actual theorem bodies rechecked; full axioms=[propext, Classical.choice, Quot.sound]' in native
+assert 'six independent graph replays, ambiguous/empty/zero windows, wrong equation and duplicate-root refusals passed' in native
+assert '25477 frozen bytes; six scalar graphs;' in native
+log=read('source-enumeration-final-integration.log')
+for number in [687781,690200,731070,6371355,6442217,8127841]:assert f'proofNodes={number}' in log,number
+assert 'limit=687780' in log and '392 theorems/449 definitions; nonempty traces=811' in log
+for r in json.loads((here/'source-enumeration-final-metadata.json').read_text()):assert r['exit_code']==0,r
+for p,digest in json.loads((here/'source-enumeration-final-inputs.json').read_text()).items():assert c['sources'][p]==digest,p
+source=subprocess.check_output(['git','show',c['source_commit']+':adapters/HexRCF/RealCoefficients/SourceBuild.lean'],cwd=root).decode()
+for name in ['select_success','select_checks','build_success','build_checked','build_checks']:assert f'theorem {name}' in source,name
+assert 'roots.coverage model' in source and 'RootBuild.success model polynomial squarefree' in source
+assert '∃! x : ℝ' in source
+print(f'Verified {len(c["sources"])} source bindings; exact proof/audit-only projection, seven fresh bodies/standard-three axioms and native/frozen compatibility. Full #10358 remains incomplete.')
diff --git a/reports/data/hexrcf-enumerated-source/README.md b/reports/data/hexrcf-enumerated-source/README.md
new file mode 100644
index 0000000000..b1accba0c0
--- /dev/null
+++ b/reports/data/hexrcf-enumerated-source/README.md
@@ -0,0 +1,37 @@
+# Enumerated-source evidence
+
+See [the report](../../hexrcf-enumerated-source.md). Run
+`python3 reports/data/hexrcf-enumerated-source/verify.py --check-head` from the
+repository root to verify the implementation and artifacts against the current
+tree. Without `--check-head`, verification checks the immutable source commit.
+
+`context.json` binds the source commit, relevant files, successful 54-target
+invocation, all retained artifacts, and the earlier admission record. Previous
+records retain their original implementation pins.
+
+`integration_sources` records the exact successful integration input hashes.
+The later source differs only in the manual example. Its original source,
+exact patch, successful final render, six final captures and visual inspection
+attestation bind that difference. The initial narrow-layout failure and all six
+failed captures remain separate from the final inspected images. The global
+page scrollbar is outside the changed targets; reported overflow measurements
+cover those targets only.
+
+The native driver proposes both quadratic conjugates and a cubic root without
+a retained selected-root fixture. Its canonical bytes match the frozen
+constructor literals. Three separate ordinary-kernel identities and a fresh
+actual-body audit check the mathematical meaning. The generic packet-progress
+lemmas have a separate complete axiom audit. These are producer, replay and
+fixed-input proof observations; they do not establish generic source-history
+assembly, full tactic completeness, scaling or a speedup.
+
+All completed diagnostic/build attempts are retained, including failed budget,
+syntax/import/serializer and proof-only import-boundary attempts. The failed
+standalone progress probe cannot unfold hidden producer definitions; the final
+lemmas live beside those definitions without exposing their bodies. Available
+source snapshots state their exact scope. A focused reconstruction from the
+unchanged staged index is not claimed as a complete snapshot of a failed run.
+
+Lean/Lake and browser invocations use one serial systemd unit with aggregate
+32 GiB memory, no swap and two Lean threads. This record does not complete
+#10358 or satisfy the separate final review, CI and merge gates.
diff --git a/reports/data/hexrcf-enumerated-source/SourceBuildReviewRender.lean.txt b/reports/data/hexrcf-enumerated-source/SourceBuildReviewRender.lean.txt
new file mode 100644
index 0000000000..6d5ea9a58c
--- /dev/null
+++ b/reports/data/hexrcf-enumerated-source/SourceBuildReviewRender.lean.txt
@@ -0,0 +1,5 @@
+import HexManual
+import VersoManual
+#eval Verso.Genre.Manual.manualMain (%doc HexManual)
+ (options := ["--output", "source-build-review-html",
+ "--without-tex", "--with-html-single", "--without-html-multi"])
diff --git a/reports/data/hexrcf-enumerated-source/admission-manifest-ci-final.json b/reports/data/hexrcf-enumerated-source/admission-manifest-ci-final.json
new file mode 100644
index 0000000000..3a7eeeac2e
--- /dev/null
+++ b/reports/data/hexrcf-enumerated-source/admission-manifest-ci-final.json
@@ -0,0 +1 @@
+{"conclusion":"failure","headSha":"75713cb885d3c3705b06dcce8b19f6a7e8abac9d","jobs":[{"completedAt":"2026-10-18T23:47:14Z","conclusion":"failure","databaseId":117823462380,"name":"build","startedAt":"2026-10-18T23:42:17Z","status":"completed","steps":[{"completedAt":"2026-10-18T23:42:19Z","conclusion":"success","name":"Set up job","number":1,"startedAt":"2026-10-18T23:42:18Z","status":"completed"},{"completedAt":"2026-10-18T23:42:40Z","conclusion":"success","name":"Run actions/checkout@v4","number":2,"startedAt":"2026-10-18T23:42:19Z","status":"completed"},{"completedAt":"2026-10-18T23:42:40Z","conclusion":"success","name":"Classify the change (docs-only fast path)","number":3,"startedAt":"2026-10-18T23:42:40Z","status":"completed"},{"completedAt":"2026-10-18T23:42:41Z","conclusion":"success","name":"Run python3 scripts/check_copyright_headers.py","number":4,"startedAt":"2026-10-18T23:42:40Z","status":"completed"},{"completedAt":"2026-10-18T23:42:41Z","conclusion":"success","name":"Lint Lean file line counts (SPEC/CI.md §Source-file lints)","number":5,"startedAt":"2026-10-18T23:42:41Z","status":"completed"},{"completedAt":"2026-10-18T23:43:34Z","conclusion":"success","name":"Check dependency DAG and trusted-internals imports","number":6,"startedAt":"2026-10-18T23:42:41Z","status":"completed"},{"completedAt":"2026-10-18T23:43:51Z","conclusion":"success","name":"Check the released manifest and Phase-7 admission state","number":7,"startedAt":"2026-10-18T23:43:34Z","status":"completed"},{"completedAt":"2026-10-18T23:43:51Z","conclusion":"success","name":"Check the manual's released/unreleased split matches released.yml","number":8,"startedAt":"2026-10-18T23:43:51Z","status":"completed"},{"completedAt":"2026-10-18T23:44:26Z","conclusion":"success","name":"Run python3 -m unittest scripts/release/test_sync_released.py","number":9,"startedAt":"2026-10-18T23:43:51Z","status":"completed"},{"completedAt":"2026-10-18T23:44:31Z","conclusion":"success","name":"Run python3 scripts/release/check_trust_surface.py","number":10,"startedAt":"2026-10-18T23:44:26Z","status":"completed"},{"completedAt":"2026-10-18T23:44:32Z","conclusion":"success","name":"Cross-check every compiled clmul path (HexGF2/SPEC/hex-gf2.md)","number":11,"startedAt":"2026-10-18T23:44:31Z","status":"completed"},{"completedAt":"2026-10-18T23:44:32Z","conclusion":"success","name":"Run python3 scripts/check_phase4.py","number":12,"startedAt":"2026-10-18T23:44:32Z","status":"completed"},{"completedAt":"2026-10-18T23:44:32Z","conclusion":"success","name":"Check Phase 7 chapters and anchored tutorials (PLAN/Phase7.md)","number":13,"startedAt":"2026-10-18T23:44:32Z","status":"completed"},{"completedAt":"2026-10-18T23:45:36Z","conclusion":"success","name":"Run bench source lints (SPEC/benchmarking.md)","number":14,"startedAt":"2026-10-18T23:44:32Z","status":"completed"},{"completedAt":"2026-10-18T23:46:02Z","conclusion":"success","name":"Check benches are Mathlib-free (SPEC/benchmarking.md)","number":15,"startedAt":"2026-10-18T23:45:36Z","status":"completed"},{"completedAt":"2026-10-18T23:46:02Z","conclusion":"success","name":"Verify conformance matrix invariant","number":16,"startedAt":"2026-10-18T23:46:02Z","status":"completed"},{"completedAt":"2026-10-18T23:46:02Z","conclusion":"success","name":"Validate committed PNT+ inventory (offline)","number":17,"startedAt":"2026-10-18T23:46:02Z","status":"completed"},{"completedAt":"2026-10-18T23:46:02Z","conclusion":"success","name":"Validate committed CADE-24 inventory (offline)","number":18,"startedAt":"2026-10-18T23:46:02Z","status":"completed"},{"completedAt":"2026-10-18T23:46:13Z","conclusion":"success","name":"Install system dependencies","number":19,"startedAt":"2026-10-18T23:46:02Z","status":"completed"},{"completedAt":"2026-10-18T23:46:57Z","conclusion":"success","name":"Install Python dependencies (bench comparator + oracles)","number":20,"startedAt":"2026-10-18T23:46:13Z","status":"completed"},{"completedAt":"2026-10-18T23:47:12Z","conclusion":"failure","name":"Verify performance measurements and figures are current","number":21,"startedAt":"2026-10-18T23:46:57Z","status":"completed"},{"completedAt":"2026-10-18T23:47:12Z","conclusion":"skipped","name":"Set up pinned Lean toolchain (no build)","number":22,"startedAt":"2026-10-18T23:47:12Z","status":"completed"},{"completedAt":"2026-10-18T23:47:12Z","conclusion":"skipped","name":"Fetch Mathlib cache","number":23,"startedAt":"2026-10-18T23:47:12Z","status":"completed"},{"completedAt":"2026-10-18T23:47:12Z","conclusion":"skipped","name":"Verify Mathlib cache populated (hard fail on miss)","number":24,"startedAt":"2026-10-18T23:47:12Z","status":"completed"},{"completedAt":"2026-10-18T23:47:12Z","conclusion":"skipped","name":"Configure Lean shared library path","number":25,"startedAt":"2026-10-18T23:47:12Z","status":"completed"},{"completedAt":"2026-10-18T23:47:12Z","conclusion":"skipped","name":"Restore .lake/build (project and TauCeti modules)","number":26,"startedAt":"2026-10-18T23:47:12Z","status":"completed"},{"completedAt":"2026-10-18T23:47:12Z","conclusion":"skipped","name":"Configure Lake artifact cache (no-op unless endpoints set)","number":27,"startedAt":"2026-10-18T23:47:12Z","status":"completed"},{"completedAt":"2026-10-18T23:47:12Z","conclusion":"skipped","name":"Restore hex-dev oleans from the Lake cache (anonymous; non-fatal)","number":28,"startedAt":"2026-10-18T23:47:12Z","status":"completed"},{"completedAt":"2026-10-18T23:47:12Z","conclusion":"skipped","name":"Disable implicit Lake cache restores during build","number":29,"startedAt":"2026-10-18T23:47:12Z","status":"completed"},{"completedAt":"2026-10-18T23:47:12Z","conclusion":"skipped","name":"Assert Mathlib will not rebuild (lake build --no-build)","number":30,"startedAt":"2026-10-18T23:47:12Z","status":"completed"},{"completedAt":"2026-10-18T23:47:12Z","conclusion":"skipped","name":"Define the hex-dev cache + build target sets","number":31,"startedAt":"2026-10-18T23:47:12Z","status":"completed"},{"completedAt":"2026-10-18T23:47:12Z","conclusion":"skipped","name":"Decide whether to collect Conway rebuild evidence","number":32,"startedAt":"2026-10-18T23:47:12Z","status":"completed"},{"completedAt":"2026-10-18T23:47:12Z","conclusion":"skipped","name":"Collect Conway rebuild evidence","number":33,"startedAt":"2026-10-18T23:47:12Z","status":"completed"},{"completedAt":"2026-10-18T23:47:12Z","conclusion":"skipped","name":"Build hex libraries + bench exes","number":34,"startedAt":"2026-10-18T23:47:12Z","status":"completed"},{"completedAt":"2026-10-18T23:47:12Z","conclusion":"skipped","name":"Verify Conway generation and compiled certificates","number":35,"startedAt":"2026-10-18T23:47:12Z","status":"completed"},{"completedAt":"2026-10-18T23:47:12Z","conclusion":"skipped","name":"Verify Conway rebuild provenance","number":36,"startedAt":"2026-10-18T23:47:12Z","status":"completed"},{"completedAt":"2026-10-18T23:47:12Z","conclusion":"skipped","name":"Upload Conway rebuild evidence","number":37,"startedAt":"2026-10-18T23:47:12Z","status":"completed"},{"completedAt":"2026-10-18T23:47:12Z","conclusion":"skipped","name":"Verify deterministic HexPrimality table regeneration","number":38,"startedAt":"2026-10-18T23:47:12Z","status":"completed"},{"completedAt":"2026-10-18T23:47:12Z","conclusion":"skipped","name":"Build conformance + emit-fixture targets","number":39,"startedAt":"2026-10-18T23:47:12Z","status":"completed"},{"completedAt":"2026-10-18T23:47:12Z","conclusion":"skipped","name":"Check real-closure architecture experiments","number":40,"startedAt":"2026-10-18T23:47:12Z","status":"completed"},{"completedAt":"2026-10-18T23:47:12Z","conclusion":"skipped","name":"Build HexManual","number":41,"startedAt":"2026-10-18T23:47:12Z","status":"completed"},{"completedAt":"2026-10-18T23:47:12Z","conclusion":"skipped","name":"Save .lake/build (project and TauCeti modules; main only)","number":42,"startedAt":"2026-10-18T23:47:12Z","status":"completed"},{"completedAt":"2026-10-18T23:47:12Z","conclusion":"skipped","name":"Bench verify (smoke gate per SPEC/benchmarking.md §CI integration)","number":43,"startedAt":"0001-01-01T00:00:00Z","status":"completed"},{"completedAt":"2026-10-18T23:47:12Z","conclusion":"skipped","name":"Conformance oracles + BZ gates","number":44,"startedAt":"0001-01-01T00:00:00Z","status":"completed"},{"completedAt":"2026-10-18T23:47:12Z","conclusion":"success","name":"Wait for all","number":45,"startedAt":"2026-10-18T23:47:12Z","status":"completed"},{"completedAt":"2026-10-18T23:47:12Z","conclusion":"skipped","name":"Gate on parallel verification results (fail-closed)","number":46,"startedAt":"2026-10-18T23:47:12Z","status":"completed"},{"completedAt":"2026-10-18T23:47:12Z","conclusion":"skipped","name":"Publish hex-dev oleans to the Lake cache (main only)","number":47,"startedAt":"2026-10-18T23:47:12Z","status":"completed"},{"completedAt":"2026-10-18T23:47:13Z","conclusion":"success","name":"Upload failure records","number":48,"startedAt":"2026-10-18T23:47:12Z","status":"completed"},{"completedAt":"2026-10-18T23:47:13Z","conclusion":"success","name":"Post Run actions/checkout@v4","number":96,"startedAt":"2026-10-18T23:47:13Z","status":"completed"},{"completedAt":"2026-10-18T23:47:13Z","conclusion":"success","name":"Complete job","number":97,"startedAt":"2026-10-18T23:47:13Z","status":"completed"}],"url":"https://github.com/kim-em/hex-dev/actions/runs/39177628081/job/117823462380"}],"status":"completed"}
diff --git a/reports/data/hexrcf-enumerated-source/context.json b/reports/data/hexrcf-enumerated-source/context.json
new file mode 100644
index 0000000000..6d0bb06f68
--- /dev/null
+++ b/reports/data/hexrcf-enumerated-source/context.json
@@ -0,0 +1,732 @@
+{
+ "source_commit": "35a88941d7faab551dfa16210f1a081a2875dffb",
+ "base_commit": "686a00a854e119ccd4be07834d1d044201b6c035",
+ "parent_context_sha256": "0dabeee616582fc0b12db9737e5708373cb0ec3fd93f26f4b5edb0d8f652f0bb",
+ "sources": {
+ ".github/workflows/ci.yml": "5db61a70eb52d7478994377179c1b35b360a794fcff4b1c257496b5a6394231c",
+ "AGENTS.md": "4e0a48cf49a61e56ed84c8b28e232b5bfad29f2da20571377692be6e1c316f30",
+ "HexManual/Chapters/HexRCF/AlgebraicCells.lean": "a0f1729a421f0ff05b61d2ce9c131670e8df7f9aa164013ed162120c0e097a07",
+ "HexManual/Chapters/HexRCF/RootQuote.lean": "0fe7ecb8568a5b3492aeea8310a4816797802d0a764093b824673a635ecf628a",
+ "HexManual/Chapters/HexRCF/RootTableQuote.lean": "78d1be637a32593b03f000ab153c7fdf05a1b5332ea3efb9c186aacfd68f0ae5",
+ "HexRCF/HandlerTests/Admission.lean": "770518931dd3f7ab1934e327460b80607338207b17d97363b82c2a5c93669c36",
+ "HexRCF/README.md": "3830d758a8a75d59df1a6dd01f59204a86858b5eda3e43a78f9e9e9c2d769a8a",
+ "HexRCF/SPEC/hex-rcf.md": "df8c6bb2435a2794faa36bc77e41f4c936f06ae149f29c3e68fe0d79f4ebfafb",
+ "HexRCF/Tactic.lean": "26021113d121cfc9ab0d6e7ea7ce8d02eb6c4637c42bbdd2647ecd2d9291f3fb",
+ "HexRealClosure/Algebraic.lean": "d05f9fb72fe9544ae9ddc685dff17080f876aa4c99c70e8992d511e011f6a454",
+ "HexRealClosure/ContextData.lean": "ca29790752b8d25f10d03a9877690a5ff40f1fdf6815c96fe9693941206e662c",
+ "HexRealClosure/SignCodec.lean": "7126323c97b77204386795a0f252f1babfd0ed7f3dba7ee3927a99b9d5c1852a",
+ "HexRealClosure/SignFacts.lean": "9c22837e93e6f50cc96310163e352ac608fbcfbd6275edab33751da2fd84f47c",
+ "HexRealClosure/SignatureCodecTests.lean": "ffc72777523ac0e92b563481804bdfb581fb0173fe7a021009737d57959b4462",
+ "HexRealClosure/TowerContext.lean": "6ef8b87b2d81cb177505a4bbc88befa078b20578cedd49e836d850753c203ee3",
+ "PLAN.md": "e94a60324486913b4a04650edd617c4ff8bef469dc7fd311adea8407c6662ea0",
+ "SPEC/real-closure-execution.md": "bc0948ad7de6969baaed89c0b3052cb0d21d64d634f8a336f9a7dde446b057f5",
+ "adapters/HexRCF/RealCoefficients.lean": "6b9f9a7eaa6e98e30a1faae38252d8616a15595f86347abee0aa54c8fb2f2161",
+ "adapters/HexRCF/RealCoefficients/CellOperations.lean": "3561cc80c7c866141f05a387ce1100ee0cadd98281a03395551cebcde5bd6e2a",
+ "adapters/HexRCF/RealCoefficients/CellQuote.lean": "c572911d7be36001e0f1885c3460f3eb19425d90e78345b1c46878ddf3e6c6ea",
+ "adapters/HexRCF/RealCoefficients/CellRead.lean": "65274f89c940bad74eab8c9075f9256c6ed3d8b90d3294aec4e85883e425fb10",
+ "adapters/HexRCF/RealCoefficients/RationalQuote.lean": "675e2ba065b696f257adefc07fe30ddb0190f321d86005444579ea5a0744bdf5",
+ "adapters/HexRCF/RealCoefficients/RealModel.lean": "712b4fd3edff8eaa6f93e501da5debf04529d1ea8c11a18389820f866d179c43",
+ "adapters/HexRCF/RealCoefficients/Reify.lean": "ea8474b9e253f93a1583064ca99ec0bf376dadf5457fd60b57e9e18460cf449c",
+ "adapters/HexRCF/RealCoefficients/RootContext.lean": "792176eab63e5e62b759a10893569946ef6d019566b8116c85237b3e16fcdb86",
+ "adapters/HexRCF/RealCoefficients/RootHeader.lean": "681f2a964bc30f65a92a0fb1a58b4d4013eb396df37ca813962702065fb46261",
+ "adapters/HexRCF/RealCoefficients/RootPrepare.lean": "de72a8e3ac4adb13365801476467bf691e630d0952b018ccecd88846c3bdb025",
+ "adapters/HexRCF/RealCoefficients/RootQuote.lean": "89f3ad4b0c4a8ae058560201900877035d896427176b944b34acde9f9b23d7e8",
+ "adapters/HexRCF/RealCoefficients/RowPacketQuote.lean": "edbb3d23f72422f5a1dea163c283848ec285418b7bdb9eedba553b83066121af",
+ "adapters/HexRCF/RealCoefficients/RowQuote.lean": "3b7e7d2ebcbd53a6ea893bc8f4c884d767430f8b98a3f1ca770fe7c7b122f3c9",
+ "adapters/HexRCF/RealCoefficients/ScalarPacket.lean": "b9fdaea5098dfa6fcda2f7307cfeae5738d6ca5c55252ff6ba2a440d10c89cc7",
+ "adapters/HexRCF/RealCoefficients/ScalarQuote.lean": "fee2617a998f29d05c8959b484060ac1d719359c6d851a8ff6699fa9cb370acc",
+ "adapters/HexRCF/RealCoefficients/SignatureQuote.lean": "c3bb71b52c2a544b902bc256b3a162e1c3c4e7f94ae6b21808914e67109710eb",
+ "adapters/HexRCF/RealCoefficients/SourceBuild.lean": "c347e21a41fddb3a4d5a00c97ae33e259206650b155b8c314b68992e948504d4",
+ "adapters/HexRCF/RealCoefficients/SourceIdentity.lean": "d98ae0c746003be89edfc969e464383e6a6bda253e0dae8c290605e8b98ce3c3",
+ "adapters/HexRCF/RealCoefficients/SourceIdentityQuote.lean": "37c54a56f48b265d0ddca38ecae2c572871e8b7f1600b54f330ff3da60252fa7",
+ "adapters/HexRealClosureTheory/Algebraic.lean": "2495153acbe4e468521913a2f5d6569831cd05f5ee48d5ddb26fc31a43438c7e",
+ "adapters/HexRealClosureTheory/SignFacts.lean": "c2b8cf96de0cccc2c0c3cbe83f0afd7c40ab9736b75f377ec5bfedc0907f34e3",
+ "adapters/HexRealClosureTheory/TowerModel.lean": "70d0e57e8ecc78eb9b7675d875157462d27cf9494d49d72bba019eaa6dd1d788",
+ "conformance-fixtures/HexRCF/enumerated-source.json": "d1f70734b5c8d5c7f768b4d2c3f5359d8e1cc44105885e7f8af597102c8b5c98",
+ "conformance-fixtures/HexRCF/source-identity.json": "93540b60174e0d8bd85ca80d99c6cbdc427815f341a12a6e38f4b38613073f53",
+ "conformance/HexRCF/CellFinishCases.lean": "619208fd6528c4f12d4e12bc4ee6fd4016ab0948db16a61237a2aefbcd523a7c",
+ "conformance/HexRCF/CellFinishProofs.lean": "fd232e3b4a64f444d834ae244a110ad0910aa35c4773a90b6a3b26a48693e22c",
+ "conformance/HexRCF/CellQuoteStageProofs.lean": "a14f3f20e1add07f569ab222994995c409552aededef738972a70c864b94b919",
+ "conformance/HexRCF/CellQuoteStages.lean": "e4593f2c8169af00398ff608dd53cbbfbe6b8408ddbdd07de6f64f59acf8a25f",
+ "conformance/HexRCF/CellSourceProofs.lean": "cea22d1a532dc4415130ff1c9c20f43707ab9696c7df53c858bdfa41ad76f018",
+ "conformance/HexRCF/CellSourceQuote.lean": "bea057fe5c9470d701e02974fbd6a83e945bbaba1225ca294830f54ef762f504",
+ "conformance/HexRCF/DependentQuote.lean": "0df154544a17857334480e7c577ecbcf1afe04165fa2da1a5a6407bf41e85518",
+ "conformance/HexRCF/DependentQuoteData.lean": "ed254475e78fa6edb27d4e55222a598b07b7357154ea0495d6195f2f1d39ee46",
+ "conformance/HexRCF/DependentQuoteProofs.lean": "5875aa9748f50340668e58aea97b196d3353313352fb8c819ae5ee3542556980",
+ "conformance/HexRCF/DependentScalarProofs.lean": "9fe3f3871f929e28355985c574c0b8c742be062ae5f19033d7d8bf9e67cd88d8",
+ "conformance/HexRCF/DependentScalarQuote.lean": "e20dd7346c337dd17126c394965f268e568706730f475844d7c0907051224933",
+ "conformance/HexRCF/EnumeratedSource/Cubic.lean": "011464c56dc3ffc5a6bd1e62dc9ff8b35ac6d0e621beceb0336b69d8f626b78f",
+ "conformance/HexRCF/EnumeratedSource/CubicData0.lean": "79b971cb2816d7ee980c595199eedbfddfd7cdb62ea12bc71dfcb24d304f69da",
+ "conformance/HexRCF/EnumeratedSource/Inputs.lean": "23ae13a33e132ee7221c5fa353e71073fc05bd660dfc3ecf6620584b62b40306",
+ "conformance/HexRCF/EnumeratedSource/Negative.lean": "261fcd979ff77c772a28ecc89776b5771cec920fc4e58a0dfe2886aee43a58d7",
+ "conformance/HexRCF/EnumeratedSource/NegativeData0.lean": "c0700606f805664f89dd0106dfb5aebb5ab18949adbb30e5b71ffeb20bb4fdaf",
+ "conformance/HexRCF/EnumeratedSource/Positive.lean": "1382c958e53cdb8a04afd1e6d6f173fe697ba15a3321bf29c3e03059923c7181",
+ "conformance/HexRCF/EnumeratedSource/PositiveData0.lean": "41674140d15cf0136ca29b627f667b952355916b269ff7d2c14247ba2d21b3b1",
+ "conformance/HexRCF/EnumeratedSource/Proofs.lean": "3c08b8018b68469d3c6e7940f730d6b8fadbf6175df2e6f5017ed4fc24d50d5b",
+ "conformance/HexRCF/EnumeratedSource/Quote.lean": "8987d21be058f777f0ba875e917fcda77892bced1029616804fabd57f4eb41d8",
+ "conformance/HexRCF/FrozenSignatureConformance.lean": "8e7d432aecb87fb89bb188e4c579e86fb5c3348c5430f1e2b1a00f1f820a940e",
+ "conformance/HexRCF/FrozenSignatureProofs.lean": "55de6da9b0b3dc2d1e384d6c838d13294287c44060afb8e70aa2a0c8e01a81cb",
+ "conformance/HexRCF/ProofFunctionPublic.lean": "f928c9f0dd0a704d34a516b6282cfa6a7a4eb6c112d49689c450647a44370a6b",
+ "conformance/HexRCF/PublicSignPacket.lean": "c32d73c5634376907b965e1ea6cf69352fdda1f1945ce2f34a378cc217778102",
+ "conformance/HexRCF/PublicSignPacketControls.lean": "b4f98bd8ef190a361dd7752d4d5ece0cfbd862ff4face5a06dfabecf87096028",
+ "conformance/HexRCF/PublicSignPacketProofs.lean": "442f6d3e04a36db25611f0396103a1eee5ee411c40e8f3cc93df1acf7898bbbb",
+ "conformance/HexRCF/PublicSignPacketValues.lean": "72705dba30f04f986188903fb49b983c6f0a664895116fca8bd8b6b46b6517e5",
+ "conformance/HexRCF/QuotientQuote.lean": "97b2cbc9abdb46db33a9a91328f331edf8dea055cc244489158121cde8dc1903",
+ "conformance/HexRCF/QuotientQuoteData.lean": "ec26777d655a7898d7f7922fcea8f426a3f8c77a53000b69b6fe1755a0348870",
+ "conformance/HexRCF/QuotientQuoteProofs.lean": "f1d95accf6caed1c7354408b3a1a0b29493a526e82036390e39102ebe80c6752",
+ "conformance/HexRCF/QuotientQuotePublic.lean": "a3bd9a082df14a0ac93ba3798e13c6ebbf9dff98d7613264713aa281a5a18bea",
+ "conformance/HexRCF/RationalQuoteConformance.lean": "f03844d4a44a5c61b702ed0b1697619da9b20f4ac42122b9d1a6d3fa4a2de9ac",
+ "conformance/HexRCF/RecursiveScalarQuote.lean": "83ba1f3ed63afdbb148f171736a0aacebc7eef4ae3bf32dca29811515c3f051b",
+ "conformance/HexRCF/ReplayBoundary.lean": "bbc09553d62198a18e897981d5f443c81f09dba8d371d2cdaeaa846d22cbc2f8",
+ "conformance/HexRCF/ReplayBoundaryProofs.lean": "d755462a7344dc9f5304fba255bcefb42188c1de5a51d92d8567a27f22482dc2",
+ "conformance/HexRCF/ReplayHelperProofs.lean": "6dd68829399ec8908a877a3f7705cc9321e49b9581d0d577d114950242e43a57",
+ "conformance/HexRCF/ReplayHelpers.lean": "4501fa39e52a8a2bb52fdd7b183c16801090dd026304105afb4342a1c441c2a3",
+ "conformance/HexRCF/RootContextConformance.lean": "0c52084609ec3de8afd51330a7d2cc97f7bae1d8b2bbc421138783940fc7db37",
+ "conformance/HexRCF/RootContextProofs.lean": "b4c2e3ce686ce8bc60bfdafe2be2f566c6de46758f4827d307f3d5592b59d2e9",
+ "conformance/HexRCF/RootHeaderBudget.lean": "db30b6b7781fabd238ea2c934477e5ae281cc6cd905f11848ce46eb66ef45fe0",
+ "conformance/HexRCF/RootHeaderControls.lean": "aca063af3bfe475166aef92193f162c25a0e53eea094087cf334406a3d513157",
+ "conformance/HexRCF/RootHeaderPacket.lean": "dcd8e63c1d656fc800690b35554a0f835a1ee0bb96312215f8c12348d8a0e79a",
+ "conformance/HexRCF/RootHeaderProofs.lean": "e6630f0464fd0096b9af74b4640d2abc514a62c0b0fc706b4a2e74c9602eeb8c",
+ "conformance/HexRCF/RootHeaderValues.lean": "de9a8fc7c2e9371cbd3324eb700180411e49865dbc6535a74d2c882f74e38e13",
+ "conformance/HexRCF/RootPrepareControls.lean": "b36af8efd1e12227188b6fb7bde258e80d5c1c874338a324cb53c5ccc6c1330f",
+ "conformance/HexRCF/RootPreparePacket.lean": "86185bcc5fdddb1f700d869a115a91034954714f69a83171fd0e96f601e76fe3",
+ "conformance/HexRCF/RootPrepareProofs.lean": "4a5bc6655576a6592fcd5cd801bcfebd425243b1bb6cb39b0bb46d500a3938be",
+ "conformance/HexRCF/RootPreparePublic.lean": "a9e09cbe8d1287b97dde71ad1c6dbe149cfbacb6f81f41a8493ee802416d0805",
+ "conformance/HexRCF/RootQuoteCases.lean": "602d15ef501e969183bffbda7fb3c0f00a174ba5c2dbc35370ee7fce896944dd",
+ "conformance/HexRCF/RootQuoteConformance.lean": "f6a652a243ba62cffc671d1365c6ab47b6618179acb172019ec5609ea0324d3c",
+ "conformance/HexRCF/RootQuoteData.lean": "faa259d129d5c65a063c7143e45d5d9d19573ed49862aa5ecb3978ff389cb514",
+ "conformance/HexRCF/RootQuoteSource.lean": "aca1654efc1a452aca8ef573bb8ea3a435a4e1e18a4dca854d9bcc8e350d511d",
+ "conformance/HexRCF/RootTableQuote/Conformance.lean": "ec5bd136df58cc24a40ca989e3d33e55923082aed7591b234f55c70c013c74ad",
+ "conformance/HexRCF/RowPacketControls.lean": "ab69c57b66fe8129be5f07e5e5f42b7b35d60a23b305ec224d2d7dca28ac7c82",
+ "conformance/HexRCF/RowQuoteCases.lean": "8d2ebddc05d5f0d08b62b50d3498b34b47ab0b3accc4d0a572e621fd83d606d4",
+ "conformance/HexRCF/RowQuoteData.lean": "ce60cb18f548f55e929d4803c7ed824ad0a7621fd4abda09a191f76393fabf0c",
+ "conformance/HexRCF/RowQuoteDepth.lean": "6ada3c44bea055425d223dc57eafb4f0c88349713d815ded4beec9720f7802ad",
+ "conformance/HexRCF/RowQuoteProofs.lean": "317d4f981f32bb28666fcabc6248f4a57fe67c95a7fe431f7993aeacfa377ed3",
+ "conformance/HexRCF/SelectedRoot/KernelCheck.lean": "026cbaa5d364fc099d2d2236e50346e5373632a74c94c24daa35f23b943120b8",
+ "conformance/HexRCF/SharedQuoteCallbacks.lean": "6132cc3722af3cf251d11c857a572f09128d3614d931724965cbcf488dc4db6d",
+ "conformance/HexRCF/SignPacketProofs.lean": "3980cad31637f5798b2c351e1efc2a29b946de1d90e06fb11acd85e2a5c46321",
+ "conformance/HexRCF/SignPacketQuote.lean": "fcda11e6c75353d4519c4eb0e9c302b84d7e41030316c99fcacb885dabf97545",
+ "conformance/HexRCF/SignatureQuoteConformance.lean": "26f16c37cb9e0d5c09a082787f4a66673437adbf998023fd5e9625db16ff5d3f",
+ "conformance/HexRCF/SourceBuild.lean": "c12b24a04234a45da0f4bf3be83bee517ec9ccff2451e804d258bf9bcab2ba5e",
+ "conformance/HexRCF/SourceIdentityControls.lean": "c655486606139658d73e5b4d394228c3632596fec366e3b410ea9deb5b085553",
+ "conformance/HexRCF/SourceIdentityEmit.lean": "aa12f1517efc675698c0795c5a463a77d7a3466bcc146d4981d82e913059ed99",
+ "conformance/HexRCF/SourceIdentityLiterals.lean": "61ee2ce703d4965b00e1e20cc62288a0bde4e839d68ca09e1b66281f4a3e48d0",
+ "conformance/HexRCF/SourceIdentityPacket.lean": "614b3132274de5bebebeecb09cf479ac68723f1518e1f52912543a812985a4a9",
+ "conformance/HexRCF/SourceIdentityProofs.lean": "c449238d5f915dbe1f337688bc4f7357f3a93e31ad79eaa9e8e159c280749173",
+ "conformance/HexRCF/SourceSelectionCases.lean": "368ded3f07bb4be269f26a2fd2b7044904ea16d1dd1cba41d8bccb373d004005",
+ "conformance/HexRCF/TreeQuote.lean": "049065aa64bb13432b1d7183759979d28eebba98d18b6f54ab849e5953ce92c1",
+ "conformance/HexRCF/TreeQuoteData.lean": "c595c2278d2997483b755aa585da874c27eed40e4e1a8106d7f553e4f574776b",
+ "conformance/HexRCF/TreeQuoteProofs.lean": "f9a40248237480f8972df62dff548ef0599205b76014e070866e72586f161933",
+ "conformance/HexRCF/TreeQuotePublic.lean": "adc6dc6871208f31970cf5ae0c2472fd325a72e1df8114a6e8178ef8b2c71570",
+ "experiments/KernelReplay/AxiomClosure.lean": "f49377265f05f52b633b10a59255a03731e08d022cc54763de9851c5b5325034",
+ "lake-manifest.json": "fd2dc4df30cd44e4d30568489d616e7bcc8a78747500139134be56f35ae746a4",
+ "lakefile.lean": "3b0745b7c0219779bd8f59538df6215a865209b97b4f95096873b07affe7848b",
+ "lean-toolchain": "bc84812c94489d1e3e191baa1dc10d5eb684382d7fe9d2a5ab085e72c1c67e47",
+ "libraries.yml": "14e3dd1c01bb0c369b2216e2733378d61172040fd9f69dd0354d4e1267d9c5c1",
+ "scripts/bench/proof_only_runtime_exemptions/lakefile-rcf-source-build-fea47caa-1ab4e88c.json": "38fcff53934dab8ff78146cc782b039265da3c6684638a5b00ab725d5a2c8e01",
+ "scripts/rcf/selected_literals.py": "31ff385f0949fb1ea709b5ba15d60e83b170117cd81346ffbd797f528c701f0f",
+ "scripts/rcf/source_identity_literals.py": "ea5d7df949871c4975367a759b9632d033f3a240523c2c917c9141220ffdfd78"
+ },
+ "artifacts": [
+ {
+ "path": "README.md",
+ "bytes": 2225,
+ "sha256": "31be43644ae05427a44e4e6f69884896164f67c771e3c7239be2e1d2b1c49655"
+ },
+ {
+ "path": "SourceBuildReviewRender.lean.txt",
+ "bytes": 212,
+ "sha256": "efb106327dbe89a92b673c6ee7ecdd172369534cb5763215ec1da69c7e774642"
+ },
+ {
+ "path": "admission-manifest-ci-final.json",
+ "bytes": 9498,
+ "sha256": "4796bcd37c30bcc5ee0e0546b2c67ff1a1551747900c6854d8e3673fc6d08233"
+ },
+ {
+ "path": "failed-browser-attempt-1/AlgebraicCells.lean.before-layout.txt",
+ "bytes": 43971,
+ "sha256": "e6ba5764fde1a4f8a5f3eff52b27e3b163b37ebe36494adc4118bc783c460076"
+ },
+ {
+ "path": "failed-browser-attempt-1/source-build-final-desktop-api.png",
+ "bytes": 291345,
+ "sha256": "b43121590b74d131ba0d556de77697df8627904fc334f04105032a914e303ec5"
+ },
+ {
+ "path": "failed-browser-attempt-1/source-build-final-desktop-apicode.png",
+ "bytes": 295607,
+ "sha256": "7b23946620132323e9968091e3e4a66ec5fc76ed9782a81914d7324c9663e1c2"
+ },
+ {
+ "path": "failed-browser-attempt-1/source-build-final-desktop-source.png",
+ "bytes": 300029,
+ "sha256": "80854b5d95be9372e1cf77520765621e9fc4c44bb8ac6f3df8a9d6e645bfac77"
+ },
+ {
+ "path": "failed-browser-attempt-1/source-build-final-inspection.json",
+ "bytes": 5270,
+ "sha256": "1cc0700781f5fb9f9c844459589ac32b675fdd658d44cedfd7c4b470e12fcae7"
+ },
+ {
+ "path": "failed-browser-attempt-1/source-build-final-narrow-api.png",
+ "bytes": 177419,
+ "sha256": "552cce44e27083cc3c507b50ef5f203857fb6e7b0291496f57d682bce00c3432"
+ },
+ {
+ "path": "failed-browser-attempt-1/source-build-final-narrow-apicode.png",
+ "bytes": 180939,
+ "sha256": "3ed6b285c9cf9bf52c31922db952aaa35afb4832ade1d18d0e83f33ad2d81fed"
+ },
+ {
+ "path": "failed-browser-attempt-1/source-build-final-narrow-source.png",
+ "bytes": 179484,
+ "sha256": "f156b24bd59c425808f034197ee6efe3052b54ee7131ef081a18694cf8d88792"
+ },
+ {
+ "path": "failed-browser-attempt-1/source-build-final-section-overflow.json",
+ "bytes": 42640,
+ "sha256": "02a7384916fcd7273fe53639d41e203fdeeae2782e0a6736bb3849f7c9524b17"
+ },
+ {
+ "path": "failed-progress-probe.lean.txt",
+ "bytes": 1880,
+ "sha256": "14fafa0bd11667fd75bd79048fe80c1b11dd12583170517bd2afcf71516b0b61"
+ },
+ {
+ "path": "run-bounded.txt",
+ "bytes": 302,
+ "sha256": "63bc5f97337e6b039bb3a9b1ba2a500be96fd1c2a2f73b43dae284aa9b18dda8"
+ },
+ {
+ "path": "source-build-admissions.log.gz",
+ "bytes": 100,
+ "sha256": "69a21bde72fd2d28ac505ea4f1e28c3b0a4e96998cb90674e584133f1fa72701"
+ },
+ {
+ "path": "source-build-audit-1.log.gz",
+ "bytes": 8955,
+ "sha256": "34b3bf127ea9f11ceea7b6b285e06b79b1fc5c3f64be8a66c8865c4d516cf319"
+ },
+ {
+ "path": "source-build-audit-2.log.gz",
+ "bytes": 8598,
+ "sha256": "42fd3d1a079800e5caad4a33358ff1ad7d731e3989d87d6a4527ec28bf7898b7"
+ },
+ {
+ "path": "source-build-boundary-failure-inputs/KernelCheck.before-repair.lean.txt.txt",
+ "bytes": 3158,
+ "sha256": "37320035a142ffc494f52e6659f0e99cc7be3b284b506295ca4fb024e711fa8b"
+ },
+ {
+ "path": "source-build-boundary-failure-inputs/Proofs.before-repair.lean.txt.txt",
+ "bytes": 4489,
+ "sha256": "ed3b268f863f75f2af6dc695d4e94840b82b2679bab96d652fb612ec573aa5c3"
+ },
+ {
+ "path": "source-build-boundary-failure-inputs/README.txt.txt",
+ "bytes": 367,
+ "sha256": "05b80063049931aa01d27ae0c32f64b9193b27706fabf4116610d378ea51d897"
+ },
+ {
+ "path": "source-build-boundary-repair-1.log.gz",
+ "bytes": 17158,
+ "sha256": "746b4345edee4b86690493ddea2503b140840c905f390d988b72b84c57ccc13e"
+ },
+ {
+ "path": "source-build-browser-1.log.gz",
+ "bytes": 413,
+ "sha256": "9b987a3a24c4b33839a99f289611984cd1682ecdcf200ae059b5a1021f2bf8a4"
+ },
+ {
+ "path": "source-build-browser-2.log.gz",
+ "bytes": 243,
+ "sha256": "2e2aca6f2331f62d15daf2f5e804bc8df0aa1b414513a256100c0e674f9a5500"
+ },
+ {
+ "path": "source-build-browser.mjs",
+ "bytes": 5591,
+ "sha256": "44703829a7180f565c7d8294fd1594482200ded3457fd2792fa2bf8311e57bd7"
+ },
+ {
+ "path": "source-build-ci-failed.log.gz",
+ "bytes": 462,
+ "sha256": "14c2a4d75db906c5da85f0eab17fd251799dfcd0e81b1dfc29295e585aed3058"
+ },
+ {
+ "path": "source-build-ci-final.json",
+ "bytes": 9498,
+ "sha256": "7be007e7ccc1c914588ebe14dc1b52f09d44c92b714e7f7ba149d3033fee0e63"
+ },
+ {
+ "path": "source-build-ci39178303607-resumed-watch.log.gz",
+ "bytes": 1523,
+ "sha256": "7973987748e6fdafb70577d1b61a6d7d4161105e549f82676506a22a683d8ab9"
+ },
+ {
+ "path": "source-build-controls-1.log.gz",
+ "bytes": 6348,
+ "sha256": "994489542c8514f4a25727eb427e110a582b60a167006db78ae61630cbc145f8"
+ },
+ {
+ "path": "source-build-controls-2.log.gz",
+ "bytes": 6683,
+ "sha256": "384076451899f88e3e58737f3ec161dd44eef893a96bce36059b665d545560d4"
+ },
+ {
+ "path": "source-build-controls-3.log.gz",
+ "bytes": 6336,
+ "sha256": "139a6577816312efb6efa40668cd5b9812e803db1e86041b6a4c9d5453fd078e"
+ },
+ {
+ "path": "source-build-copyright.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64"
+ },
+ {
+ "path": "source-build-core-1.log.gz",
+ "bytes": 360,
+ "sha256": "18afe7a6cb2f51649f6818a51efed11f5ab6be612f80a60ebf22e1c47743a511"
+ },
+ {
+ "path": "source-build-core-2.log.gz",
+ "bytes": 6614,
+ "sha256": "42944e8e2b98e0b448bde45ea668455eac875048189ba4adcb14bfcdd366265f"
+ },
+ {
+ "path": "source-build-core-3.log.gz",
+ "bytes": 6224,
+ "sha256": "50ae85864c61c0647ff23c6e80ebf01cdef22c45761916feb6e00e39d6303dc4"
+ },
+ {
+ "path": "source-build-current-inputs/adapters/HexRCF/RealCoefficients/ScalarPacket.lean.txt",
+ "bytes": 7411,
+ "sha256": "626fd139dafcb4c6f6a62dc5657e6ea0c46fff0f125a743cf67ed66ac5e2a241"
+ },
+ {
+ "path": "source-build-current-inputs/adapters/HexRCF/RealCoefficients/SourceBuild.lean.txt",
+ "bytes": 2859,
+ "sha256": "c347e21a41fddb3a4d5a00c97ae33e259206650b155b8c314b68992e948504d4"
+ },
+ {
+ "path": "source-build-current-inputs/adapters/HexRCF/RealCoefficients.lean.txt",
+ "bytes": 7535,
+ "sha256": "6b9f9a7eaa6e98e30a1faae38252d8616a15595f86347abee0aa54c8fb2f2161"
+ },
+ {
+ "path": "source-build-current-inputs/conformance/HexRCF/EnumeratedSource/Cubic.lean.txt",
+ "bytes": 6783,
+ "sha256": "011464c56dc3ffc5a6bd1e62dc9ff8b35ac6d0e621beceb0336b69d8f626b78f"
+ },
+ {
+ "path": "source-build-current-inputs/conformance/HexRCF/EnumeratedSource/CubicData0.lean.txt",
+ "bytes": 23400,
+ "sha256": "79b971cb2816d7ee980c595199eedbfddfd7cdb62ea12bc71dfcb24d304f69da"
+ },
+ {
+ "path": "source-build-current-inputs/conformance/HexRCF/EnumeratedSource/Inputs.lean.txt",
+ "bytes": 3325,
+ "sha256": "23ae13a33e132ee7221c5fa353e71073fc05bd660dfc3ecf6620584b62b40306"
+ },
+ {
+ "path": "source-build-current-inputs/conformance/HexRCF/EnumeratedSource/Negative.lean.txt",
+ "bytes": 5146,
+ "sha256": "261fcd979ff77c772a28ecc89776b5771cec920fc4e58a0dfe2886aee43a58d7"
+ },
+ {
+ "path": "source-build-current-inputs/conformance/HexRCF/EnumeratedSource/NegativeData0.lean.txt",
+ "bytes": 23018,
+ "sha256": "c0700606f805664f89dd0106dfb5aebb5ab18949adbb30e5b71ffeb20bb4fdaf"
+ },
+ {
+ "path": "source-build-current-inputs/conformance/HexRCF/EnumeratedSource/Positive.lean.txt",
+ "bytes": 4703,
+ "sha256": "1382c958e53cdb8a04afd1e6d6f173fe697ba15a3321bf29c3e03059923c7181"
+ },
+ {
+ "path": "source-build-current-inputs/conformance/HexRCF/EnumeratedSource/PositiveData0.lean.txt",
+ "bytes": 23030,
+ "sha256": "41674140d15cf0136ca29b627f667b952355916b269ff7d2c14247ba2d21b3b1"
+ },
+ {
+ "path": "source-build-current-inputs/conformance/HexRCF/EnumeratedSource/Quote.lean.txt",
+ "bytes": 5352,
+ "sha256": "8987d21be058f777f0ba875e917fcda77892bced1029616804fabd57f4eb41d8"
+ },
+ {
+ "path": "source-build-current-inputs/conformance/HexRCF/SelectedRoot/KernelCheck.lean.txt",
+ "bytes": 3158,
+ "sha256": "37320035a142ffc494f52e6659f0e99cc7be3b284b506295ca4fb024e711fa8b"
+ },
+ {
+ "path": "source-build-current-inputs/conformance/HexRCF/SourceBuild.lean.txt",
+ "bytes": 5593,
+ "sha256": "2ec7f60f87ae56f4bd5a2c3275be87936ff0c884b3e945906d1a94225d036ebf"
+ },
+ {
+ "path": "source-build-current-inputs/conformance-fixtures/HexRCF/enumerated-source.json.txt.gz",
+ "bytes": 3094,
+ "sha256": "38bc842bc335cc17f00e8dfb7b74a33e349e183bb30874bc0de8aa30681393d3"
+ },
+ {
+ "path": "source-build-current-inputs/lakefile.lean.txt",
+ "bytes": 149461,
+ "sha256": "1bd072fee1095ad6f5ce2f1d200a9670bc841910d2138d64d7abfe115ea43a9d"
+ },
+ {
+ "path": "source-build-current-inputs/scripts/rcf/selected_literals.py.txt",
+ "bytes": 33551,
+ "sha256": "31ff385f0949fb1ea709b5ba15d60e83b170117cd81346ffbd797f528c701f0f"
+ },
+ {
+ "path": "source-build-current-inputs/snapshot.json.txt",
+ "bytes": 2160,
+ "sha256": "f1edf5db4360659f8a85fb190b1fefe20d78c2a7d2d6085cefa4216dd3b858a1"
+ },
+ {
+ "path": "source-build-dag.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64"
+ },
+ {
+ "path": "source-build-diff-check.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64"
+ },
+ {
+ "path": "source-build-diff-final.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64"
+ },
+ {
+ "path": "source-build-final-desktop-api.png",
+ "bytes": 262788,
+ "sha256": "d72e970023cd8754ff603bf22e6bdc30448bfc14a0799c1c482086e461c87f0e"
+ },
+ {
+ "path": "source-build-final-desktop-apicode.png",
+ "bytes": 245714,
+ "sha256": "700042066b62b8936f0a7c95a2bc068a43654f03f7394586e5e126d0125fbf45"
+ },
+ {
+ "path": "source-build-final-desktop-source.png",
+ "bytes": 296453,
+ "sha256": "99c60ded05f6003e1bcd5779f673a19218439227a275436377d91346bfee29d8"
+ },
+ {
+ "path": "source-build-final-inspection.json",
+ "bytes": 5020,
+ "sha256": "eff24443087a1320b1e3d4c57991019636686183312bf6a7e81bd80078aa8a4c"
+ },
+ {
+ "path": "source-build-final-narrow-api.png",
+ "bytes": 170345,
+ "sha256": "0778a4b7c3cba55d351dd70f83a2d16e901955c3b33a28b827a9521ab04e7b38"
+ },
+ {
+ "path": "source-build-final-narrow-apicode.png",
+ "bytes": 171697,
+ "sha256": "afbcf9732c4c717315cc2d3506b3c3af9405a9f5ce60bcf39899036c0a68e039"
+ },
+ {
+ "path": "source-build-final-narrow-source.png",
+ "bytes": 178584,
+ "sha256": "a8e35e1eea53dcee85972e86244fe9d17323389ec97238e44544f4860de6aa77"
+ },
+ {
+ "path": "source-build-final-section-overflow.json",
+ "bytes": 42644,
+ "sha256": "f968e9c4edd7af4e1fc7b418a9a1dd26d884d9f2981675fc5a2d0942b3638ac0"
+ },
+ {
+ "path": "source-build-inputs-1.log.gz",
+ "bytes": 8737,
+ "sha256": "b3925e3a7653f368f915c71bc6a9e596c44e7cf58fac640b7c1ef3acd3ac9fc7"
+ },
+ {
+ "path": "source-build-inputs-2.log.gz",
+ "bytes": 8032,
+ "sha256": "88322cf840c6072c39703be7c2bc31aa5a076028a22944845f5ce37209a2cbda"
+ },
+ {
+ "path": "source-build-integration-1.log.gz",
+ "bytes": 225,
+ "sha256": "b7ae6cb47d0bb93d5cd86ca9b846e7350758f597e0dc7ce12566fa6654472197"
+ },
+ {
+ "path": "source-build-integration-2.log.gz",
+ "bytes": 29872,
+ "sha256": "d06faf02caedb6d625254212edf30cf26882c1883471f75cb80710fb3989d73f"
+ },
+ {
+ "path": "source-build-integration-3.log.gz",
+ "bytes": 30509,
+ "sha256": "4f6108928a27d68f8ddeb98c0833c92af4e66d8e4bcbfa6b8ae3fa39d7617984"
+ },
+ {
+ "path": "source-build-integration-invocation.json",
+ "bytes": 2000,
+ "sha256": "e5396530d806f59eced8da288f6741ba1d4d954ae9c0814d2fc472ed7867c38e"
+ },
+ {
+ "path": "source-build-integration-sources.json",
+ "bytes": 14599,
+ "sha256": "54b1da1614718307c764274e6c452f120b3f37afa0509b815cb6fa552c9c2403"
+ },
+ {
+ "path": "source-build-lines.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64"
+ },
+ {
+ "path": "source-build-literals.log.gz",
+ "bytes": 52,
+ "sha256": "c2179e30f0af73c4ff53d0b387d7f7f52f4a1a5e15395f7c1402ebed3b5f7740"
+ },
+ {
+ "path": "source-build-manual-layout.patch.gz",
+ "bytes": 540,
+ "sha256": "691c30fc6e1fee8241b2d882ef2b783a316c460cfb27fc43e6865ed59f1aa9ae"
+ },
+ {
+ "path": "source-build-metadata-admissions.log.gz",
+ "bytes": 100,
+ "sha256": "69a21bde72fd2d28ac505ea4f1e28c3b0a4e96998cb90674e584133f1fa72701"
+ },
+ {
+ "path": "source-build-metadata-copyright.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64"
+ },
+ {
+ "path": "source-build-metadata-dag.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64"
+ },
+ {
+ "path": "source-build-metadata-diff.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64"
+ },
+ {
+ "path": "source-build-metadata-freshness.log.gz",
+ "bytes": 78,
+ "sha256": "2deda7e9f1dd38e7a3fd37966a9bdf33c905c76164d13133571f675b1ab75b13"
+ },
+ {
+ "path": "source-build-metadata-lines.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64"
+ },
+ {
+ "path": "source-build-metadata-literals.log.gz",
+ "bytes": 49,
+ "sha256": "d363c41d04cc71aaa8b2bb97d1faf6ff4b311e5874c10d339f87aba4d4b97158"
+ },
+ {
+ "path": "source-build-metadata-manifest.log.gz",
+ "bytes": 127,
+ "sha256": "87c23c0a8f1159f2320fb2015c285ee9167c8c51ef9f6df2f69fc217f4b11029"
+ },
+ {
+ "path": "source-build-metadata-relative.log.gz",
+ "bytes": 102,
+ "sha256": "7a642c4ba6dc7e9200c94cf42d3f99ff035a83d02b8e5eae15a3be6fb5bc530d"
+ },
+ {
+ "path": "source-build-metadata.json",
+ "bytes": 1673,
+ "sha256": "ca48a8b0e4835de5c719f62da070e955d4ef951baac5f239cd11ca3bad15316c"
+ },
+ {
+ "path": "source-build-progress-1.log.gz",
+ "bytes": 6681,
+ "sha256": "9be18a60cbcc197aa38c6696ce436528117d698b7b78f005e93ae504c3c2860b"
+ },
+ {
+ "path": "source-build-progress-2.log.gz",
+ "bytes": 6216,
+ "sha256": "bb7e54c3935093f05b6f9b5866e87b2231f324e935beb97477330a778249fc61"
+ },
+ {
+ "path": "source-build-progress-controls-1.log.gz",
+ "bytes": 6923,
+ "sha256": "68f2e8dee065945f1280cf60ff2b1a469af94ee6e1766896fb667524c40659d1"
+ },
+ {
+ "path": "source-build-quote-1.log.gz",
+ "bytes": 8855,
+ "sha256": "fa78d4ee8a31fca671ac7f232ecd10e4bdbc68a8b273a672f9bcae91d1724a59"
+ },
+ {
+ "path": "source-build-quote-2.log.gz",
+ "bytes": 8655,
+ "sha256": "06a3b4dddd9bdd9e62474e1bca8a16cf794851d9f62f83a3e36620c9a0afa406"
+ },
+ {
+ "path": "source-build-quote-3.log.gz",
+ "bytes": 8426,
+ "sha256": "bb3433a510a88d3103a42083f7038ae9c3b447a16cb77abeaef9357b2f874978"
+ },
+ {
+ "path": "source-build-render-1.log.gz",
+ "bytes": 16468,
+ "sha256": "db71552246023d26504c09b7170b7f47b70e0dc3253f77f7b8245b75bacbd13f"
+ },
+ {
+ "path": "source-build-render-2.log.gz",
+ "bytes": 16491,
+ "sha256": "4504615208a4c65f7e99dd40de6a66f8b23aba9a5901a3109e72a2b5e70336df"
+ },
+ {
+ "path": "source-build-viewed.json",
+ "bytes": 687,
+ "sha256": "f394cc912dee6fe599dd42ee577d57172973b563738bd6a698bb9b31470c0cef"
+ },
+ {
+ "path": "verify.py",
+ "bytes": 5609,
+ "sha256": "31b827eb7faec77441ad3caee4f5fc9fe9154826b88572f358c9c880ca65dece"
+ }
+ ],
+ "targets": 54,
+ "integration_sources": {
+ ".github/workflows/ci.yml": "5db61a70eb52d7478994377179c1b35b360a794fcff4b1c257496b5a6394231c",
+ "AGENTS.md": "4e0a48cf49a61e56ed84c8b28e232b5bfad29f2da20571377692be6e1c316f30",
+ "HexManual/Chapters/HexRCF/AlgebraicCells.lean": "e6ba5764fde1a4f8a5f3eff52b27e3b163b37ebe36494adc4118bc783c460076",
+ "HexManual/Chapters/HexRCF/RootQuote.lean": "0fe7ecb8568a5b3492aeea8310a4816797802d0a764093b824673a635ecf628a",
+ "HexManual/Chapters/HexRCF/RootTableQuote.lean": "78d1be637a32593b03f000ab153c7fdf05a1b5332ea3efb9c186aacfd68f0ae5",
+ "HexRCF/HandlerTests/Admission.lean": "770518931dd3f7ab1934e327460b80607338207b17d97363b82c2a5c93669c36",
+ "HexRCF/README.md": "3830d758a8a75d59df1a6dd01f59204a86858b5eda3e43a78f9e9e9c2d769a8a",
+ "HexRCF/SPEC/hex-rcf.md": "df8c6bb2435a2794faa36bc77e41f4c936f06ae149f29c3e68fe0d79f4ebfafb",
+ "HexRCF/Tactic.lean": "26021113d121cfc9ab0d6e7ea7ce8d02eb6c4637c42bbdd2647ecd2d9291f3fb",
+ "HexRealClosure/Algebraic.lean": "d05f9fb72fe9544ae9ddc685dff17080f876aa4c99c70e8992d511e011f6a454",
+ "HexRealClosure/ContextData.lean": "ca29790752b8d25f10d03a9877690a5ff40f1fdf6815c96fe9693941206e662c",
+ "HexRealClosure/SignCodec.lean": "7126323c97b77204386795a0f252f1babfd0ed7f3dba7ee3927a99b9d5c1852a",
+ "HexRealClosure/SignFacts.lean": "9c22837e93e6f50cc96310163e352ac608fbcfbd6275edab33751da2fd84f47c",
+ "HexRealClosure/SignatureCodecTests.lean": "ffc72777523ac0e92b563481804bdfb581fb0173fe7a021009737d57959b4462",
+ "HexRealClosure/TowerContext.lean": "6ef8b87b2d81cb177505a4bbc88befa078b20578cedd49e836d850753c203ee3",
+ "PLAN.md": "e94a60324486913b4a04650edd617c4ff8bef469dc7fd311adea8407c6662ea0",
+ "SPEC/real-closure-execution.md": "bc0948ad7de6969baaed89c0b3052cb0d21d64d634f8a336f9a7dde446b057f5",
+ "adapters/HexRCF/RealCoefficients.lean": "6b9f9a7eaa6e98e30a1faae38252d8616a15595f86347abee0aa54c8fb2f2161",
+ "adapters/HexRCF/RealCoefficients/CellOperations.lean": "3561cc80c7c866141f05a387ce1100ee0cadd98281a03395551cebcde5bd6e2a",
+ "adapters/HexRCF/RealCoefficients/CellQuote.lean": "c572911d7be36001e0f1885c3460f3eb19425d90e78345b1c46878ddf3e6c6ea",
+ "adapters/HexRCF/RealCoefficients/CellRead.lean": "65274f89c940bad74eab8c9075f9256c6ed3d8b90d3294aec4e85883e425fb10",
+ "adapters/HexRCF/RealCoefficients/RationalQuote.lean": "675e2ba065b696f257adefc07fe30ddb0190f321d86005444579ea5a0744bdf5",
+ "adapters/HexRCF/RealCoefficients/RealModel.lean": "712b4fd3edff8eaa6f93e501da5debf04529d1ea8c11a18389820f866d179c43",
+ "adapters/HexRCF/RealCoefficients/Reify.lean": "ea8474b9e253f93a1583064ca99ec0bf376dadf5457fd60b57e9e18460cf449c",
+ "adapters/HexRCF/RealCoefficients/RootContext.lean": "792176eab63e5e62b759a10893569946ef6d019566b8116c85237b3e16fcdb86",
+ "adapters/HexRCF/RealCoefficients/RootHeader.lean": "681f2a964bc30f65a92a0fb1a58b4d4013eb396df37ca813962702065fb46261",
+ "adapters/HexRCF/RealCoefficients/RootPrepare.lean": "de72a8e3ac4adb13365801476467bf691e630d0952b018ccecd88846c3bdb025",
+ "adapters/HexRCF/RealCoefficients/RootQuote.lean": "89f3ad4b0c4a8ae058560201900877035d896427176b944b34acde9f9b23d7e8",
+ "adapters/HexRCF/RealCoefficients/RowPacketQuote.lean": "edbb3d23f72422f5a1dea163c283848ec285418b7bdb9eedba553b83066121af",
+ "adapters/HexRCF/RealCoefficients/RowQuote.lean": "3b7e7d2ebcbd53a6ea893bc8f4c884d767430f8b98a3f1ca770fe7c7b122f3c9",
+ "adapters/HexRCF/RealCoefficients/ScalarPacket.lean": "b9fdaea5098dfa6fcda2f7307cfeae5738d6ca5c55252ff6ba2a440d10c89cc7",
+ "adapters/HexRCF/RealCoefficients/ScalarQuote.lean": "fee2617a998f29d05c8959b484060ac1d719359c6d851a8ff6699fa9cb370acc",
+ "adapters/HexRCF/RealCoefficients/SignatureQuote.lean": "c3bb71b52c2a544b902bc256b3a162e1c3c4e7f94ae6b21808914e67109710eb",
+ "adapters/HexRCF/RealCoefficients/SourceBuild.lean": "c347e21a41fddb3a4d5a00c97ae33e259206650b155b8c314b68992e948504d4",
+ "adapters/HexRCF/RealCoefficients/SourceIdentity.lean": "d98ae0c746003be89edfc969e464383e6a6bda253e0dae8c290605e8b98ce3c3",
+ "adapters/HexRCF/RealCoefficients/SourceIdentityQuote.lean": "37c54a56f48b265d0ddca38ecae2c572871e8b7f1600b54f330ff3da60252fa7",
+ "adapters/HexRealClosureTheory/Algebraic.lean": "2495153acbe4e468521913a2f5d6569831cd05f5ee48d5ddb26fc31a43438c7e",
+ "adapters/HexRealClosureTheory/SignFacts.lean": "c2b8cf96de0cccc2c0c3cbe83f0afd7c40ab9736b75f377ec5bfedc0907f34e3",
+ "adapters/HexRealClosureTheory/TowerModel.lean": "70d0e57e8ecc78eb9b7675d875157462d27cf9494d49d72bba019eaa6dd1d788",
+ "conformance-fixtures/HexRCF/enumerated-source.json": "d1f70734b5c8d5c7f768b4d2c3f5359d8e1cc44105885e7f8af597102c8b5c98",
+ "conformance-fixtures/HexRCF/source-identity.json": "93540b60174e0d8bd85ca80d99c6cbdc427815f341a12a6e38f4b38613073f53",
+ "conformance/HexRCF/CellFinishCases.lean": "619208fd6528c4f12d4e12bc4ee6fd4016ab0948db16a61237a2aefbcd523a7c",
+ "conformance/HexRCF/CellFinishProofs.lean": "fd232e3b4a64f444d834ae244a110ad0910aa35c4773a90b6a3b26a48693e22c",
+ "conformance/HexRCF/CellQuoteStageProofs.lean": "a14f3f20e1add07f569ab222994995c409552aededef738972a70c864b94b919",
+ "conformance/HexRCF/CellQuoteStages.lean": "e4593f2c8169af00398ff608dd53cbbfbe6b8408ddbdd07de6f64f59acf8a25f",
+ "conformance/HexRCF/CellSourceProofs.lean": "cea22d1a532dc4415130ff1c9c20f43707ab9696c7df53c858bdfa41ad76f018",
+ "conformance/HexRCF/CellSourceQuote.lean": "bea057fe5c9470d701e02974fbd6a83e945bbaba1225ca294830f54ef762f504",
+ "conformance/HexRCF/DependentQuote.lean": "0df154544a17857334480e7c577ecbcf1afe04165fa2da1a5a6407bf41e85518",
+ "conformance/HexRCF/DependentQuoteData.lean": "ed254475e78fa6edb27d4e55222a598b07b7357154ea0495d6195f2f1d39ee46",
+ "conformance/HexRCF/DependentQuoteProofs.lean": "5875aa9748f50340668e58aea97b196d3353313352fb8c819ae5ee3542556980",
+ "conformance/HexRCF/DependentScalarProofs.lean": "9fe3f3871f929e28355985c574c0b8c742be062ae5f19033d7d8bf9e67cd88d8",
+ "conformance/HexRCF/DependentScalarQuote.lean": "e20dd7346c337dd17126c394965f268e568706730f475844d7c0907051224933",
+ "conformance/HexRCF/EnumeratedSource/Cubic.lean": "011464c56dc3ffc5a6bd1e62dc9ff8b35ac6d0e621beceb0336b69d8f626b78f",
+ "conformance/HexRCF/EnumeratedSource/CubicData0.lean": "79b971cb2816d7ee980c595199eedbfddfd7cdb62ea12bc71dfcb24d304f69da",
+ "conformance/HexRCF/EnumeratedSource/Inputs.lean": "23ae13a33e132ee7221c5fa353e71073fc05bd660dfc3ecf6620584b62b40306",
+ "conformance/HexRCF/EnumeratedSource/Negative.lean": "261fcd979ff77c772a28ecc89776b5771cec920fc4e58a0dfe2886aee43a58d7",
+ "conformance/HexRCF/EnumeratedSource/NegativeData0.lean": "c0700606f805664f89dd0106dfb5aebb5ab18949adbb30e5b71ffeb20bb4fdaf",
+ "conformance/HexRCF/EnumeratedSource/Positive.lean": "1382c958e53cdb8a04afd1e6d6f173fe697ba15a3321bf29c3e03059923c7181",
+ "conformance/HexRCF/EnumeratedSource/PositiveData0.lean": "41674140d15cf0136ca29b627f667b952355916b269ff7d2c14247ba2d21b3b1",
+ "conformance/HexRCF/EnumeratedSource/Proofs.lean": "3c08b8018b68469d3c6e7940f730d6b8fadbf6175df2e6f5017ed4fc24d50d5b",
+ "conformance/HexRCF/EnumeratedSource/Quote.lean": "8987d21be058f777f0ba875e917fcda77892bced1029616804fabd57f4eb41d8",
+ "conformance/HexRCF/FrozenSignatureConformance.lean": "8e7d432aecb87fb89bb188e4c579e86fb5c3348c5430f1e2b1a00f1f820a940e",
+ "conformance/HexRCF/FrozenSignatureProofs.lean": "55de6da9b0b3dc2d1e384d6c838d13294287c44060afb8e70aa2a0c8e01a81cb",
+ "conformance/HexRCF/ProofFunctionPublic.lean": "f928c9f0dd0a704d34a516b6282cfa6a7a4eb6c112d49689c450647a44370a6b",
+ "conformance/HexRCF/PublicSignPacket.lean": "c32d73c5634376907b965e1ea6cf69352fdda1f1945ce2f34a378cc217778102",
+ "conformance/HexRCF/PublicSignPacketControls.lean": "b4f98bd8ef190a361dd7752d4d5ece0cfbd862ff4face5a06dfabecf87096028",
+ "conformance/HexRCF/PublicSignPacketProofs.lean": "442f6d3e04a36db25611f0396103a1eee5ee411c40e8f3cc93df1acf7898bbbb",
+ "conformance/HexRCF/PublicSignPacketValues.lean": "72705dba30f04f986188903fb49b983c6f0a664895116fca8bd8b6b46b6517e5",
+ "conformance/HexRCF/QuotientQuote.lean": "97b2cbc9abdb46db33a9a91328f331edf8dea055cc244489158121cde8dc1903",
+ "conformance/HexRCF/QuotientQuoteData.lean": "ec26777d655a7898d7f7922fcea8f426a3f8c77a53000b69b6fe1755a0348870",
+ "conformance/HexRCF/QuotientQuoteProofs.lean": "f1d95accf6caed1c7354408b3a1a0b29493a526e82036390e39102ebe80c6752",
+ "conformance/HexRCF/QuotientQuotePublic.lean": "a3bd9a082df14a0ac93ba3798e13c6ebbf9dff98d7613264713aa281a5a18bea",
+ "conformance/HexRCF/RationalQuoteConformance.lean": "f03844d4a44a5c61b702ed0b1697619da9b20f4ac42122b9d1a6d3fa4a2de9ac",
+ "conformance/HexRCF/RecursiveScalarQuote.lean": "83ba1f3ed63afdbb148f171736a0aacebc7eef4ae3bf32dca29811515c3f051b",
+ "conformance/HexRCF/ReplayBoundary.lean": "bbc09553d62198a18e897981d5f443c81f09dba8d371d2cdaeaa846d22cbc2f8",
+ "conformance/HexRCF/ReplayBoundaryProofs.lean": "d755462a7344dc9f5304fba255bcefb42188c1de5a51d92d8567a27f22482dc2",
+ "conformance/HexRCF/ReplayHelperProofs.lean": "6dd68829399ec8908a877a3f7705cc9321e49b9581d0d577d114950242e43a57",
+ "conformance/HexRCF/ReplayHelpers.lean": "4501fa39e52a8a2bb52fdd7b183c16801090dd026304105afb4342a1c441c2a3",
+ "conformance/HexRCF/RootContextConformance.lean": "0c52084609ec3de8afd51330a7d2cc97f7bae1d8b2bbc421138783940fc7db37",
+ "conformance/HexRCF/RootContextProofs.lean": "b4c2e3ce686ce8bc60bfdafe2be2f566c6de46758f4827d307f3d5592b59d2e9",
+ "conformance/HexRCF/RootHeaderBudget.lean": "db30b6b7781fabd238ea2c934477e5ae281cc6cd905f11848ce46eb66ef45fe0",
+ "conformance/HexRCF/RootHeaderControls.lean": "aca063af3bfe475166aef92193f162c25a0e53eea094087cf334406a3d513157",
+ "conformance/HexRCF/RootHeaderPacket.lean": "dcd8e63c1d656fc800690b35554a0f835a1ee0bb96312215f8c12348d8a0e79a",
+ "conformance/HexRCF/RootHeaderProofs.lean": "e6630f0464fd0096b9af74b4640d2abc514a62c0b0fc706b4a2e74c9602eeb8c",
+ "conformance/HexRCF/RootHeaderValues.lean": "de9a8fc7c2e9371cbd3324eb700180411e49865dbc6535a74d2c882f74e38e13",
+ "conformance/HexRCF/RootPrepareControls.lean": "b36af8efd1e12227188b6fb7bde258e80d5c1c874338a324cb53c5ccc6c1330f",
+ "conformance/HexRCF/RootPreparePacket.lean": "86185bcc5fdddb1f700d869a115a91034954714f69a83171fd0e96f601e76fe3",
+ "conformance/HexRCF/RootPrepareProofs.lean": "4a5bc6655576a6592fcd5cd801bcfebd425243b1bb6cb39b0bb46d500a3938be",
+ "conformance/HexRCF/RootPreparePublic.lean": "a9e09cbe8d1287b97dde71ad1c6dbe149cfbacb6f81f41a8493ee802416d0805",
+ "conformance/HexRCF/RootQuoteCases.lean": "602d15ef501e969183bffbda7fb3c0f00a174ba5c2dbc35370ee7fce896944dd",
+ "conformance/HexRCF/RootQuoteConformance.lean": "f6a652a243ba62cffc671d1365c6ab47b6618179acb172019ec5609ea0324d3c",
+ "conformance/HexRCF/RootQuoteData.lean": "faa259d129d5c65a063c7143e45d5d9d19573ed49862aa5ecb3978ff389cb514",
+ "conformance/HexRCF/RootQuoteSource.lean": "aca1654efc1a452aca8ef573bb8ea3a435a4e1e18a4dca854d9bcc8e350d511d",
+ "conformance/HexRCF/RootTableQuote/Conformance.lean": "ec5bd136df58cc24a40ca989e3d33e55923082aed7591b234f55c70c013c74ad",
+ "conformance/HexRCF/RowPacketControls.lean": "ab69c57b66fe8129be5f07e5e5f42b7b35d60a23b305ec224d2d7dca28ac7c82",
+ "conformance/HexRCF/RowQuoteCases.lean": "8d2ebddc05d5f0d08b62b50d3498b34b47ab0b3accc4d0a572e621fd83d606d4",
+ "conformance/HexRCF/RowQuoteData.lean": "ce60cb18f548f55e929d4803c7ed824ad0a7621fd4abda09a191f76393fabf0c",
+ "conformance/HexRCF/RowQuoteDepth.lean": "6ada3c44bea055425d223dc57eafb4f0c88349713d815ded4beec9720f7802ad",
+ "conformance/HexRCF/RowQuoteProofs.lean": "317d4f981f32bb28666fcabc6248f4a57fe67c95a7fe431f7993aeacfa377ed3",
+ "conformance/HexRCF/SelectedRoot/KernelCheck.lean": "026cbaa5d364fc099d2d2236e50346e5373632a74c94c24daa35f23b943120b8",
+ "conformance/HexRCF/SharedQuoteCallbacks.lean": "6132cc3722af3cf251d11c857a572f09128d3614d931724965cbcf488dc4db6d",
+ "conformance/HexRCF/SignPacketProofs.lean": "3980cad31637f5798b2c351e1efc2a29b946de1d90e06fb11acd85e2a5c46321",
+ "conformance/HexRCF/SignPacketQuote.lean": "fcda11e6c75353d4519c4eb0e9c302b84d7e41030316c99fcacb885dabf97545",
+ "conformance/HexRCF/SignatureQuoteConformance.lean": "26f16c37cb9e0d5c09a082787f4a66673437adbf998023fd5e9625db16ff5d3f",
+ "conformance/HexRCF/SourceBuild.lean": "c12b24a04234a45da0f4bf3be83bee517ec9ccff2451e804d258bf9bcab2ba5e",
+ "conformance/HexRCF/SourceIdentityControls.lean": "c655486606139658d73e5b4d394228c3632596fec366e3b410ea9deb5b085553",
+ "conformance/HexRCF/SourceIdentityEmit.lean": "aa12f1517efc675698c0795c5a463a77d7a3466bcc146d4981d82e913059ed99",
+ "conformance/HexRCF/SourceIdentityLiterals.lean": "61ee2ce703d4965b00e1e20cc62288a0bde4e839d68ca09e1b66281f4a3e48d0",
+ "conformance/HexRCF/SourceIdentityPacket.lean": "614b3132274de5bebebeecb09cf479ac68723f1518e1f52912543a812985a4a9",
+ "conformance/HexRCF/SourceIdentityProofs.lean": "c449238d5f915dbe1f337688bc4f7357f3a93e31ad79eaa9e8e159c280749173",
+ "conformance/HexRCF/SourceSelectionCases.lean": "368ded3f07bb4be269f26a2fd2b7044904ea16d1dd1cba41d8bccb373d004005",
+ "conformance/HexRCF/TreeQuote.lean": "049065aa64bb13432b1d7183759979d28eebba98d18b6f54ab849e5953ce92c1",
+ "conformance/HexRCF/TreeQuoteData.lean": "c595c2278d2997483b755aa585da874c27eed40e4e1a8106d7f553e4f574776b",
+ "conformance/HexRCF/TreeQuoteProofs.lean": "f9a40248237480f8972df62dff548ef0599205b76014e070866e72586f161933",
+ "conformance/HexRCF/TreeQuotePublic.lean": "adc6dc6871208f31970cf5ae0c2472fd325a72e1df8114a6e8178ef8b2c71570",
+ "experiments/KernelReplay/AxiomClosure.lean": "f49377265f05f52b633b10a59255a03731e08d022cc54763de9851c5b5325034",
+ "lake-manifest.json": "fd2dc4df30cd44e4d30568489d616e7bcc8a78747500139134be56f35ae746a4",
+ "lakefile.lean": "3b0745b7c0219779bd8f59538df6215a865209b97b4f95096873b07affe7848b",
+ "lean-toolchain": "bc84812c94489d1e3e191baa1dc10d5eb684382d7fe9d2a5ab085e72c1c67e47",
+ "libraries.yml": "14e3dd1c01bb0c369b2216e2733378d61172040fd9f69dd0354d4e1267d9c5c1",
+ "scripts/bench/proof_only_runtime_exemptions/lakefile-rcf-source-build-fea47caa-1ab4e88c.json": "38fcff53934dab8ff78146cc782b039265da3c6684638a5b00ab725d5a2c8e01",
+ "scripts/rcf/selected_literals.py": "31ff385f0949fb1ea709b5ba15d60e83b170117cd81346ffbd797f528c701f0f",
+ "scripts/rcf/source_identity_literals.py": "ea5d7df949871c4975367a759b9632d033f3a240523c2c917c9141220ffdfd78"
+ },
+ "manual_changes": [
+ "HexManual/Chapters/HexRCF/AlgebraicCells.lean"
+ ],
+ "audit": {
+ "theorems": 1488,
+ "definitions": 865,
+ "nonempty_traces": 2323
+ },
+ "proof_nodes": [
+ 6371355,
+ 6442217,
+ 8127841
+ ],
+ "limits": "Inner request counts exclude final driver checks/exports. Fixed-input build observations, not scaling or a matched speedup. Available snapshot is attempt3/current source, not exact inputs for earlier failures whose code was not saved. Full #10358 remains incomplete."
+}
diff --git a/reports/data/hexrcf-enumerated-source/failed-browser-attempt-1/AlgebraicCells.lean.before-layout.txt b/reports/data/hexrcf-enumerated-source/failed-browser-attempt-1/AlgebraicCells.lean.before-layout.txt
new file mode 100644
index 0000000000..0c0af76488
--- /dev/null
+++ b/reports/data/hexrcf-enumerated-source/failed-browser-attempt-1/AlgebraicCells.lean.before-layout.txt
@@ -0,0 +1,951 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+import VersoManual
+import HexRCF.CellReplay.Algebraic.BooleanQuoted
+import HexRCF.CellReplay.Algebraic.CompleteQuoted
+import HexRCF.RealCoefficients.RootBuild
+import HexRCF.RealCoefficients.NumberFieldCells
+import HexRCF.RealCoefficients.GatherCells
+import HexRCF.RealCoefficients.AlgebraicCells
+import HexRCF.RealCoefficients.AlgebraicPreparation
+import HexRCF.RealCoefficients.CellOperations
+import HexRCF.RealCoefficients.RealModel
+import HexRCF.RealCoefficients.SourceIdentity
+import HexRCF.RealCoefficients.SourceBuild
+import HexRCF.RealCoefficients.CellQuote
+import HexRCF.CellQuoteStages
+import HexRCF.CellSourceQuote
+import HexRCF.SourceIdentityPacket
+open Verso.Genre Manual
+open Verso.Genre.Manual.InlineLean
+
+#doc (Manual) "Frozen cells over a selected algebraic coefficient" =>
+%%%
+tag := "hex-rcf-algebraic-cells"
+%%%
+
+Fix the coefficient field ℚ(√2), with its positive selected embedding in ℝ.
+The polynomial X²−√2 has two real roots. The supplied complete table identifies
+both roots, orders them, and supplies ordinary sector points −2, 0 and 2.
+Its source matrix repeats the polynomial with opposite non-strict comparisons
+and includes a zero atom. The radical certificate checks that the product of
+the nonzero atoms has precisely the roots of X²−√2.
+
+These examples import the monorepo fixture `HexRCF.CellReplay.Algebraic.Quoted`.
+The original real source is proved by fresh schema preparation, fixed-coefficient
+specialization, complete cell replay and quotation:
+
+```lean
+open Hex.RCF.RealCoefficients
+open CellReplayTests
+example : ∃ x : ℝ,
+ x ^ 2 - Real.sqrt 2 ≥ 0 ∧
+ x ^ 2 - Real.sqrt 2 ≤ 0 ∧
+ (0 : ℝ) = 0 := Algebraic.Quote.source
+```
+
+The complete-packet interface reads the full root table before its cell rows.
+`CompleteReplay.check` then checks the radical identities and strict quantifier
+fold. Its soundness theorem accepts untrusted root and cell packets and proves
+the shared sentence at the supplied fixed real interpretation:
+
+```lean
+open Hex Hex.RealClosure Hex.SignDet
+open Hex.RealFormula
+open Hex.RCF.RealCoefficients
+example
+ {r : BaseContext.Registry}
+ {c : Tower.Context r} {n : Nat}
+ (model : Tower.Model c ℝ)
+ (codec : ValueCodec c.Value)
+ (values : Fin n → c.Value)
+ (formula : QF (n + 1))
+ (guards : List c.Value)
+ (cert : RadicalCert c.Value
+ Tower.Signature)
+ (quantifier : Quantifier)
+ (roots cells : Codec.Json)
+ (accepted : CompleteReplay.check
+ codec values formula guards
+ cert quantifier roots cells =
+ .ok true) :
+ (Prenex.quant quantifier
+ (.matrix formula)).toProp
+ (fun i =>
+ model.value (values i)) :=
+ CompleteReplay.check_sound
+ model codec values formula
+ guards cert quantifier
+ roots cells accepted
+```
+
+`CellQuote.finishPacket` additionally binds this checked shared sentence to a
+freshly reified original source, its fixed coefficient valuation and all ordered
+original divisors. These fresh source proofs use the same algebraic matrix,
+including a divisor whose value disappears from the normalized zero atom:
+
+```lean
+open Hex.RCF.RealCoefficients
+open CellReplayTests.Algebraic
+example : ∃ x : ℝ,
+ x ^ 2 - Real.sqrt 2 ≥ 0 ∧
+ x ^ 2 - Real.sqrt 2 ≤ 0 ∧
+ 0 / (-1 : ℝ) = 0 := by
+ exact CompleteQuote.guarded_source
+```
+
+The source-boundary checks refuse a false verdict, a different original
+formula, missing divisor identities and a cancelled zero divisor. A separate
+`CompleteReplay.check_domains` theorem proves every original guard nonzero in
+the supplied model. The new source proofs reuse the independently checked
+frozen fixture and finite codec laws. They do not claim a fresh reduction of
+the serialized readers. The supplied real model and coefficient codec also do
+not reconstruct general frozen provider or predecessor histories. In
+particular, the compiled supplied-operation fallback described below still
+prevents treating this as strict replay with arbitrary missing records.
+
+The table's exact root set and strict order are proved conclusions of the
+supplied replay. The positive and negative fourth roots of 2 have the same
+square but different selected identities:
+
+```lean
+open Hex.RCF.RealCoefficients
+open CellReplayTests
+example (x : ℝ) :
+ x ∈
+ Algebraic.Canonical.roots.values
+ Algebraic.Schema.original ↔
+ x = Real.sqrt (Real.sqrt 2) ∨
+ x = -Real.sqrt (Real.sqrt 2) :=
+ Algebraic.Meaning.roots_eq x
+
+example :
+ (Algebraic.Canonical.roots.values
+ Algebraic.Schema.original).Pairwise
+ (· < ·) :=
+ Algebraic.Meaning.ordered
+```
+
+All coefficient signs used by these readers come from 21 distinct frozen
+scalar packets. Each packet passes the owner's scalar reader in the ordinary
+kernel before entering the initially empty inventory. The complete table,
+section rows, sector boundaries, point descriptors and point rows are then
+checked using those supplied operations. Equality laws transport the accepted
+data to the canonical coefficient operations. No supplier is called during
+acceptance. The matrix fold visits every cell for both quantifiers; the true
+existential and false universal verdicts are checked separately.
+
+Original divisors still enter preflight when a zero numerator removes their
+value from the normalized matrix. This source retains and authenticates −1:
+
+```lean
+open Hex.RCF.RealCoefficients
+open CellReplayTests
+example : ∃ x : ℝ,
+ x ^ 2 - Real.sqrt 2 ≥ 0 ∧
+ x ^ 2 - Real.sqrt 2 ≤ 0 ∧
+ 0 / (-1 : ℝ) = 0 :=
+ Algebraic.Guards.source
+```
+
+A supplied zero divisor is rejected before decoding, including with a malformed
+packet. The fresh quotation module rechecks both original proof bodies,
+requires the actual frozen readers and carrier acceptance, and excludes earlier
+source witnesses. Their only axioms are `propext`, `Classical.choice` and
+`Quot.sound`. Kernel reduction diagnostics separately prohibit native root,
+sign and scalar production while checking replay acceptance.
+
+The same checked rows can be reused when the entire ordered specialized
+polynomial list is unchanged, including repeated and zero atoms. Changing a
+comparison or Boolean connective still requires a fresh strict fold and source
+quotation. The transfer preserves every stored row; it does not identify the
+old and new propositions. These universal and between-root examples reuse the
+same packet:
+
+```lean
+open Hex.RCF.RealCoefficients
+open CellReplayTests
+example : ∀ x : ℝ,
+ (x ^ 2 - Real.sqrt 2 < 0 ∨
+ x ^ 2 - Real.sqrt 2 ≥ 0) ∧
+ (0 : ℝ) = 0 :=
+ Algebraic.BooleanSources.lt_or_ge
+
+example : ∃ x : ℝ,
+ (x ^ 2 - Real.sqrt 2 ≤ 0 ∧
+ x ^ 2 - Real.sqrt 2 ≠ 0) ∧
+ (0 : ℝ) = 0 :=
+ Algebraic.BooleanSources.negative
+```
+
+Additional fresh proofs cover equality/non-equality and positive outer
+sectors. All six comparisons, conjunction, disjunction and negation are
+checked, including incompatible existential and false universal verdicts.
+Moving the zero atom changes the ordered polynomial list and the literal row
+reader rejects the reused packet. The fresh proof-body audit excludes the
+earlier source witnesses and scalar suppliers. Original divisor preflight
+and original-goal authentication remain mandatory for every new quotation.
+
+This example uses one supplied lawful ordinary-real parent and one fixed
+complete packet. It establishes finite replay over a non-rational stored
+coefficient. General provider history, automatic common-field certification,
+all-live representation changes and complete algebraic construction retain
+their separate obligations. The supplied-operation interface remains kernel
+assembly: compiled evaluation can use its documented native fallback when
+records are missing, so it is not a strict checker for arbitrary compiled
+packets. This example installs no tactic handler or numerical provider.
+
+The native construction API can produce the same complete packet. `RootBuild.build`
+retains the owner's full derivative table and its extracted roots. For a lawful
+ordinary real model, the owner theorem proves construction succeeds for every
+squarefree interpreted head:
+
+```lean
+open Hex.RCF.RealCoefficients
+open Hex.RealClosure
+open HexPolyTheory.Interpret
+example
+ {r : BaseContext.Registry}
+ {c : Tower.Context r}
+ (model : Tower.Model c ℝ)
+ (p : Hex.DensePoly c.Value)
+ (sq : Squarefree
+ (interpret model.value
+ model.zero_iff p)) :
+ ∃ result,
+ RootBuild.build p = .ok result :=
+ RootBuild.success model p sq
+```
+
+`CellBuild.prepare` first checks the original divisors, then specializes the
+shared atoms and constructs their radical carrier and complete root table.
+`prepare_success` derives progress and the literal radical check from the
+ordinary parent model, without assuming squarefreeness or a root list. Zero
+and repeated atoms retain their original positions in the source matrix.
+
+`CellBuild.build` constructs every section row and every sector record for that
+complete root table and proposed ordinary parent-field points. Strict adjacent
+signs check each point; incorrect exterior points are refused. Original divisor
+preflight comes first, and production errors retain their structured cause.
+The construction conformance produces the radical, roots and all rows for
+X²−√2 and verifies their exact match with the frozen packet used above. Native
+construction supplies proposals; the quoted proofs continue to consume the
+independently checked frozen data.
+
+This explicit-point interface does not discover ordinary sector points in
+arbitrary parents, assemble missing scalar/provider histories or prove general
+frontend acceptance.
+`RowEncode.read_covered` proves the shared row reader recovers an encoded checked
+row from finite predecessor-codec coverage. It neither supplies that coverage
+nor turns a compiled verdict into proof evidence.
+
+The separate native `CellDiscover.run` API obtains ordinary points from the
+owner's complete partition. Its actual collection converts all fixed source
+coefficients and original divisors into the same common context before carrier,
+root and row construction. It needs no supplied point function. The original
+parent's model extends through that collection, so accepted cells prove the
+shared sentence at the original coefficient values, and accepted divisor checks
+establish the original guards. Those semantic results do not assume that source
+and target representations are identical.
+
+```lean
+open Hex.RCF.RealCoefficients
+open Hex.RealClosure
+example
+ {r : BaseContext.Registry}
+ {c : Tower.Context r}
+ {ps : List c.Poly}
+ (family : Tower.Sample.Partition c ps)
+ (cut : Fin (family.values.length+1)) :
+ Tower.Cell.sector
+ (SectorRequest.Cut.lower family cut)
+ (SectorRequest.Cut.upper family cut)
+ ∈ family.cells :=
+ SectorRequest.Cut.adjacent family cut
+```
+
+`CellAlignment.aligned` derives exact equality between the partition's ordered
+real boundaries and the independently checked radical root table. It uses the
+source coefficient conversion, complete root coverage and strict ordering;
+equality of the two root lists is not an extra premise. Its `dimensions` theorem
+also derives the required sector count. Compilation tests construct and replay
+X²−√2 with automatically selected points in an enlarged context, reject the
+result in the old context, and check true/false formulas, zero atoms and literal
+half-open domain guards, including equal and reversed endpoints.
+
+This is native production followed by independent cell replay. The returned
+collection retains native conversion history; it is not a frozen certificate of
+that history. General frozen history, strict compiled missing-record checks and automatic
+source quotation retain their separate obligations. No native verdict is a
+proof of a real sentence.
+
+`CellDiscover.run` uses `SectorRequest.points` and the owner's proved
+boundary-request API. `Cut.adjacent` establishes the requested endpoints for every sector index,
+including both rays and an empty table's whole line. `CellAlignment.sector_vector`
+retains the request equation and transports those endpoint inequalities to the independently checked radical
+table. The adapter proves this index correspondence using public cell-membership
+laws and list identities; no new owner index theorem is needed.
+
+`CellProgress` obtains each selected-sign row and each ordinary-point descriptor
+from the owner's actual construction theorems. A checked linear head binds the
+point row to its proposed value:
+
+```lean
+open Hex Hex.RealClosure
+open Hex.RealFormula
+open Hex.RCF.RealCoefficients
+example
+ {r : BaseContext.Registry}
+ {c : Tower.Context r} {n : Nat}
+ (model : Tower.Model c ℝ)
+ (point : c.Value)
+ (values : Fin n → c.Value)
+ (formula : QF (n + 1)) :
+ Nonempty (PointRows.Packet
+ point values formula) :=
+ CellProgress.point_packet model point
+ values formula
+```
+
+`CellDecision.complete` composes the actual collection, source conversion,
+radical/root preparation, requested sector points and complete typed rows.
+Given a lawful ordinary-real parent and nonzero original divisors, it derives
+accepted typed evidence and a total diagnostic verdict for each quantifier.
+The verdict is true exactly when the shared sentence holds at the original
+fixed coefficient values. False verdicts remain diagnostics. The construction
+requires no supplied carrier, chosen root table, sector-point function or
+successful child-sign assumption. Its ordinary model remains an explicit domain
+hypothesis; this does not supply faithful models for arbitrary named constants.
+
+`CellBuild.evidence` now produces those typed rows before freezing them.
+The public `CellBuild.build` serializes that same result in the existing packet
+layout. `CellDiscover.run_success` proves that the actual native discovery
+returns a packet: its cells equal the frozen constructed rows, and those rows
+produce exact diagnostic verdicts for both quantifiers at the original fixed
+coefficients. The returned vector itself is related to the indexed open cells
+by `CellAlignment.sector_vector`.
+
+The discovery result emits its full `rootGraph` as well as `cells`.
+`Packet.rootGraph_eq` binds the graph to the actual typed root table and native
+writer. `CellDiscover.run_complete` proves that independently checking both
+emitted fields preserves both quantifier verdicts at the original coefficient
+values. It uses the returned native context's codec law; it does not restore
+an arbitrary frozen predecessor history.
+
+```lean
+open Hex.RealClosure
+open Hex.RealFormula
+open Hex.RCF.RealCoefficients
+example
+ {r : BaseContext.Registry}
+ {c : Tower.Context r} {n : Nat}
+ (model : Tower.Model c ℝ)
+ (values : Fin n → c.Value)
+ (guards : List c.Value)
+ (formula : QF (n+1))
+ (nonzero : ∀ d ∈ guards, d ≠ 0) :
+ ∃ p,
+ CellDiscover.run values guards
+ formula = .ok p ∧
+ let family := p.family
+ let input := family.collection.input
+ ∃ data : CellReplay.Evidence
+ p.roots (input.value ∘ values)
+ formula,
+ ∃ verdict,
+ CellReplay.check
+ (input.value ∘ values)
+ formula (guards.map input.value)
+ p.radical p.roots data
+ .forallReal = .ok verdict := by
+ obtain ⟨p, returned, _, _, _, data,
+ _, _, answers⟩ :=
+ CellDiscover.run_success model
+ values guards formula nonzero
+ obtain ⟨verdict, accepted, _⟩ :=
+ answers .forallReal
+ exact ⟨p, returned, data,
+ verdict, accepted⟩
+```
+
+Original fixed-field inputs can enter this producer through
+`NumberField.cells`. The existing number-field factory checks the original
+selected generator and supplies its ordinary-real model. Every coordinate
+retains its `Coefficients.ofField` interpretation. Original zero divisors are
+rejected before this factory runs, even for a constant or empty-domain matrix.
+`NumberField.cellsWith` reuses a checked presentation; its progress theorem
+retains the same actual vector, typed producer equation and frozen matrix as
+`CellDiscover.run_success`. `cellsWith_complete` further checks both emitted
+root/cell fields; `cells_complete` composes that acceptance with the actual
+presentation factory. Both verdicts retain the original selected-coordinate
+interpretation. No caller-supplied parent model is needed:
+
+```lean
+open Hex
+open Hex.RealClosure
+open Hex.RealFormula
+open Hex.RCF.RealCoefficients
+example
+ {n : Nat} (g : RealAlgebraicNumber)
+ (registry : BaseContext.Registry)
+ (values :
+ Fin n → QAdjoin g.toAlgebraic)
+ (guards :
+ List (QAdjoin g.toAlgebraic))
+ (formula : QF (n+1))
+ (guarded : ∀ d ∈ guards, d ≠ 0) :
+ ∃ source p,
+ NumberField.cells g registry
+ values guards formula =
+ .ok ⟨source,p⟩ ∧
+ NumberField.cellsWith source
+ values guards formula =
+ .ok p := by
+ obtain ⟨source,p,returned,_,built⟩ :=
+ NumberField.cells_success g registry
+ values guards formula guarded
+ exact ⟨source,p,returned,built⟩
+```
+
+The native conformance constructs both selected roots of X²−2 and a computed
+coordinate in the field generated by the positive root of X³−2. It produces
+and reads their complete cell packets, checking both quantifier verdicts and
+original zero-guard refusal. These native round trips are diagnostics; the
+three generic progress/domain proof bodies receive separate ordinary-kernel
+and dependency audits. They do not establish arbitrary finite-codec replay.
+
+Literal-reader acceptance still needs finite coverage of every serialized
+coefficient and context. Frozen provider/context histories, strict compiled
+missing-record checking and fresh general source-goal quotation retain their
+own obligations. A separate manually run stress target checks a four-boundary
+union of the algebraic equation and half-open guards. Its retained diagnostic trace exposes a substantial cost in
+cell-row production; this is a performance limitation, without a scaling or
+speedup claim.
+
+Independently constructed coefficient contexts can enter complete packet
+production through `GatherCells.build`. Each input retains its original owner;
+several coefficients can share an owner, and a guard can be absent from the
+coefficient tuple. The coefficient order, guard order and schema arity remain
+independent. A zero original guard is rejected before gathering, including
+for a constant matrix with no coefficient parameters.
+
+`buildWith` reuses the actual owner's gathering result. A compatible ordinary
+model proves complete packet production without assuming a successful child
+producer or choosing a new primitive common field:
+
+```lean
+open Hex Hex.RealClosure
+open Hex.RealClosure.Tower
+open Hex.RealFormula
+open Hex.RCF.RealCoefficients
+example
+ {r : BaseContext.Registry}
+ {b : BaseContext.PackedContext r}
+ {os : List (Context r)} {n : Nat}
+ (shared : Shared b os)
+ (target : Model
+ shared.input.context ℝ)
+ (models : Inclusions.Models
+ target shared.maps)
+ (cs : Fin n →
+ GatherCells.Source os)
+ (gs : List (GatherCells.Source os))
+ (f : QF (n+1))
+ (nonzero : ∀ g ∈ gs, g.2 ≠ 0) :
+ ∃ p, GatherCells.buildWith
+ shared cs gs f = .ok p := by
+ obtain ⟨p,built,_⟩ :=
+ GatherCells.buildWith_complete
+ shared target models cs gs f
+ nonzero
+ exact ⟨p,built⟩
+```
+
+`build_complete` additionally derives successful gathering from the original
+owners' compatible base signatures and an ordinary base interpretation. Both
+quantifier verdicts are proved equivalent to the shared sentence at the
+original owner values. `build_domains` establishes every original typed guard
+nonzero from successful production. These are native-context results: they
+supply neither source-expression identities nor frozen provider/predecessor
+histories, and do not discharge strict compiled missing-record admission.
+
+The native conformance combines separate positive √2 and √3 owners, repeats
+one source coordinate, and checks a leading cancellation and repeated zero root.
+It reads both emitted packets, refuses swapped coefficient
+coordinates, and checks a false constant with no coefficient parameters but
+retained guards. A late original zero guard still rejects that constant case.
+Compiled verdicts remain controls; the generic construction and transport
+laws are separate ordinary-kernel proofs.
+
+`AlgebraicCells.build` starts from original `RealAlgebraicNumber` inputs.
+It constructs their checked selected presentations and gathers the resulting
+owners automatically. Separate finite indices specify the coefficient tuple
+and the original guards; repeated indices and guard-only inputs are retained.
+An original zero guard rejects before any presentation construction.
+Recognized rational inputs use checked points in the rational predecessor,
+including guard-only inputs. This avoids adjoining a root of a linear
+polynomial just to represent a rational. Other inputs retain the owner's
+selected-root factory and its check of the original embedding.
+Every declared input is presented and gathered, even when absent from both
+index collections. An unused irrational input can enlarge the tower, so a
+focused input tuple avoids that additional cost.
+
+The automatic constructor needs only the original nonzero guards for its
+progress theorem. The rational interpretation, owner compatibility and
+selected coordinate identities are derived:
+
+```lean
+open Hex Hex.RealClosure
+open Hex.RealFormula
+open Hex.RCF.RealCoefficients
+example (r : BaseContext.Registry)
+ {m n : Nat}
+ (vs : Fin m →
+ RealAlgebraicNumber)
+ (cs : Fin n → Fin m)
+ (gs : List (Fin m))
+ (f : QF (n+1))
+ (nonzero : ∀ i ∈ gs, vs i ≠ 0) :
+ ∃ s p,
+ AlgebraicCells.build
+ r vs cs gs f = .ok ⟨s,p⟩ := by
+ obtain ⟨s,shared,packet,built,_⟩ :=
+ AlgebraicCells.build_complete
+ r vs cs gs f nonzero
+ exact ⟨s,⟨shared,packet⟩,built⟩
+```
+
+These native-input theorems preserve both emitted quantifier verdicts at the
+original selected real values. `build_domains` concludes every original real
+divisor nonzero from production success, including for constant formulas.
+`build_sound` derives both accepted verdicts from the exact successful build
+equation, without assuming guard validity; `GatherCells.build_sound` also derives
+compatible owner origins from successful gathering. They do not assemble
+frozen provider/predecessor histories or prove general source-goal quotation
+and strict compiled missing-record admission.
+
+The complete literal checker can use checked cached arithmetic through
+`CellOperations.check`. It takes the owner's existing `Replay.Operations`
+dictionary, whose equalities bind every supplied operation to the ordinary
+implementation. Root and cut indices remain canonical while section and
+sector evidence is read. The result preserves every error and both verdicts:
+
+```lean
+open Hex Hex.RealClosure Hex.SignDet
+open Hex.RealFormula
+open Hex.RCF.RealCoefficients
+open Hex.RealClosure.Replay
+example {r : BaseContext.Registry}
+ {p : Tower.Context r}
+ (o : Operations p.sign)
+ (v : ValueCodec p.Value)
+ {n : Nat} (vs : Fin n → p.Value)
+ (f : QF (n+1))
+ (gs : List p.Value)
+ (c : RadicalCert p.Value
+ Tower.Signature)
+ (q : Quantifier)
+ (graph cells : Codec.Json) :
+ CellOperations.check o v vs f gs c q
+ graph cells =
+ CompleteReplay.check v vs f gs c q
+ graph cells :=
+ CellOperations.check_eq o v vs f gs c q
+ graph cells
+```
+
+Original guard preflight, radical identities, complete root/cell coverage and
+the strict fold retain their existing soundness and domain theorems.
+`CellOperations.accept?` supplies the optional success predicate consumed by
+record assembly; only an accepted true verdict yields success. The public
+checker retains its typed failures and diagnostic false result. These
+interfaces do not authenticate source coefficients, construct general frozen
+histories or establish strict compiled rejection of missing intermediate
+arithmetic records. The compiled controls and ordinary proofs are separate;
+one source regression reuses independently checked fixture acceptance and finite
+codec laws as a transport check. A separate assembled-source regression collects
+actual reached records, checks complete literal packet acceptance in the ordinary
+kernel, and quotes the original statement ∃ x, x² - √2 ≥ 0 ∧ x² - √2 ≤ 0 ∧ 0 = 0.
+Its fresh consuming module derives ∃ x, x² = √2 and audits the actual proof
+bodies with only the standard three axioms, excluding the older fixture
+acceptance and source theorems. This uses a fixed retained field and finite
+coefficient codec; it does not reconstruct arbitrary frozen histories.
+
+{name Hex.RCF.RealCoefficients.CellQuote.replayWith}`CellQuote.replayWith`
+quotes a supplied `CellOperations.check` expression in three stages. It first
+checks the complete root table, then each dependent section and sector record,
+then the strict Boolean and quantifier fold. Checked data definitions retain
+the exact root and cell indices between stages. Pointwise reader equations
+compose through `CellRead.collectWith_eq` and `CellOperations.readCells_of_parts`;
+quotation does not normalize the complete finite collector as one expression.
+{name Hex.RCF.RealCoefficients.CellOperations.check_of_parts}`CellOperations.check_of_parts`
+composes their equations at the original packet. All three stages and their
+decoder callbacks consume one reflection budget:
+
+```lean
+open Lean Hex.RealFormula
+open Hex.Reflect
+open Hex.RCF.RealCoefficients
+meta def quoteCellPacket
+ (program : Expr)
+ (decode : RootQuote.DecoderM)
+ (config : Reify.Config)
+ (used : BudgetUsage) :=
+ RootQuote.runWith
+ (CellQuote.replayWith
+ program decode)
+ config used
+```
+
+`set_option trace.Hex.RCF.CellQuote true` reports reader and finite-family
+boundaries with cumulative proof-node usage. Lean heartbeats remain a separate
+elaboration limit.
+
+{name Hex.RCF.RealCoefficients.CellQuote.finishPacketWith}`CellQuote.finishPacketWith`
+continues this request through the original source proof. It consumes the
+prepared source and the accepted canonical checker, model, coefficient identity
+and ordered divisor identities. The source record is checked again: its original
+target, divisor inventory and ordinary-kernel equivalence must match. This avoids
+starting another reification budget. Invoke quotation and finishing inside the
+same `RootQuote.runWith` transaction, seeded with source preparation's usage;
+the final usage then includes both stages. A finishing failure restores the
+whole attempt, including declarations produced while quoting the packet.
+
+The separate finishing action can also continue already recorded usage:
+
+```lean
+open Lean Hex.RealFormula
+open Hex.Reflect
+open Hex.RCF.RealCoefficients
+meta def finishCellPacket
+ (source : Reify.Source)
+ (target checker accepted : Expr)
+ (model identity : Expr)
+ (guards : Array Expr)
+ (config : Reify.Config)
+ (used : BudgetUsage) :=
+ RootQuote.runWith
+ (CellQuote.finishPacketWith source
+ target checker accepted model
+ identity guards)
+ config used
+```
+
+That separate transaction rolls back its own work. Clients needing rollback
+of quotation as well must combine both actions in one transaction. Conformance
+checks exact and one-node-below cumulative limits, exhaustion of the continued
+source budget, tampered source records and wrong goal proofs.
+
+Within this request, row quotation parses each literal sign packet and checks
+its exact ordered queries. It validates a graph once for each distinct set of
+arithmetic operations, sign function, context, polynomial, endpoints and graph
+data. The owner's `SelectedSigns.ofMemo?` extracts each root's row from that
+checked graph; `Dag.selectedSigns_memo` identifies it with the original reader.
+Every reused equation is kernel checked against the new reader. The cache is
+local to one quotation attempt, and every visit consumes the shared budget.
+`set_option trace.Hex.RCF.RowQuote true` reports validations and reuse. Supplied
+arithmetic operations remain attached to the descriptor, including operations
+that are proved equal to canonical arithmetic rather than definitionally equal.
+
+The returned equation retains both Boolean verdicts. `CellQuote.finishPacket`
+performs source authentication separately and requires an accepted true result.
+The constant example uses independently read literal root and cell packets:
+
+```lean
+example : ∀ _x : ℝ, (0 : ℝ) = 0 :=
+ Hex.RCF.CellQuoteStages.source
+```
+
+Its replay quotation uses 441,039 nodes for true and 441,041 for false. These
+counts cover the three replay stages, separately from source reification and
+interpretation. Exact and one-node-below limits, wrong-goal proposals,
+malformed cells, original zero-divisor preflight, terminal callback failures
+and full caller-state restoration are checked.
+
+A separate rational quadratic packet checks two root sections and three
+sectors in 5,911,125 proof nodes. Its trace records two graph-memo reuses and
+seven independent validations. These are charged quotation counts, rather
+than a timing comparison or a measurement of physical sharing. The test supplies
+16M proof nodes and a separate 24M heartbeat allowance. Compiled replay and
+general algebraic quotation costs need separate evidence.
+
+A fresh importing audit checks 1,247 theorem bodies and 101 definitions, with
+1,298 nonempty kernel traces, the unchanged producer guard and only the
+standard three axioms. It excludes older fixture acceptance proofs. The
+constant example establishes source quotation; the quadratic packet adds
+replay coverage with multiple roots. General coefficient and history assembly
+remain separate obligations.
+
+The algebraic source regression independently reads the complete frozen packet
+over the retained positive square root of 2. It reifies the following original
+sentence, reconstructs the coefficient polynomial, authenticates its fixed
+coefficient and composes the checked cell verdict with the original source:
+
+```lean
+example : ∃ x : ℝ,
+ x ^ 2 - Real.sqrt 2 ≥ 0 ∧
+ x ^ 2 - Real.sqrt 2 ≤ 0 ∧
+ (0 : ℝ) = 0 :=
+ Hex.RCF.CellSourceQuote.source
+```
+
+The shared reification and quotation budget records 8,644,422 proof nodes
+before source finishing and 8,651,669 for the complete original-source attempt.
+Both stages run in one transaction. The test supplies 24M proof nodes and
+60M heartbeats. Its trace records two memo reuses and seven validations.
+Lake reports 916 seconds for this source module on the recorded shared host;
+this remains an expensive fixed-input proof build. These observations do not
+measure compiled replay or establish a general tactic running time.
+
+Its importing proof audit checks 1,193 theorem bodies, 202 definitions and
+1,353 nonempty kernel traces. It excludes the older complete-packet acceptance
+and source proofs and the handwritten coefficient identity, checks transitive
+axiom dependencies, and rejects native
+producer and canonical-codec reduction. The fixed
+selected parent and checked coefficient seed facts are supplied inputs. This
+example does not construct arbitrary predecessor histories or install a
+general source-to-certificate tactic backend.
+
+For a closed retained base/root context, `RealModel.build` constructs its
+ordinary-real interpretation from a caller-supplied real base model and each
+root's actual descriptor, frame and encoding proof. It checks every prefix's
+context, rejects a mismatched base model or exhausted depth bound, and restores
+elaborator state on failure. This interpretation still needs checked identities
+connecting its coefficient and divisor values to the original source statement.
+
+A source equation alone does not distinguish real conjugates.
+{name Hex.RCF.RealCoefficients.SourceIdentity.observe}`SourceIdentity.observe`
+reads a checked scalar sign at the native descriptor's selected root and binds
+every polynomial coefficient to its rational source query.
+{name Hex.RCF.RealCoefficients.SourceIdentity.margin}`SourceIdentity.margin`
+expresses membership in the source's isolating disc as a positive rational
+polynomial value. The equation and margin must hold at the same root;
+{name Hex.RCF.RealCoefficients.SourceIdentity.select}`SourceIdentity.select`
+then identifies that value with the source's selected embedding. The
+[checked source-identity example](https://github.com/kim-em/hex-dev/blob/main/conformance/HexRCF/SourceIdentityCases.lean)
+uses independently replayed equation and margin packets for the retained √2
+coordinate, with a separate ordinary-kernel body audit. These are source
+interpretation lemmas and a fixed-input example; general frozen source-history
+reconstruction still needs its own checked assembly.
+
+{name Hex.RCF.RealCoefficients.SourceIdentity.quoteWith}`SourceIdentity.quoteWith`
+constructs this identity from two supplied scalar readers. Its `Anchor` retains
+the original polynomial, isolating square, witness, precision and selected-value
+proof. Its `Packets` supplies the equation and enclosure readers and proofs
+binding their polynomial keys to the intended real polynomials. The readers
+carry the ordinary-real model. Both facts must belong to the same selected
+context: one sign is zero and the square margin is strictly positive.
+
+```lean
+open Lean Hex.RealFormula
+open Hex.Reflect
+open Hex.RCF.RealCoefficients
+meta def quoteSourceIdentity
+ (anchor : SourceIdentity.Anchor)
+ (packets : SourceIdentity.Packets)
+ (context same : Expr)
+ (decode : RootQuote.DecoderM)
+ (config : Reify.Config)
+ (used : BudgetUsage) :=
+ RootQuote.runWith (do
+ let selected ←
+ SourceIdentity.quoteWith
+ anchor packets context same
+ decode
+ pure ⟨anchor.value, selected.proof,
+ selected.usage⟩)
+ config used
+```
+
+The result proves that the reader's selected real root equals the original
+anchor value. Quotation checks both packets, their keys, signs, supplied value
+laws and the final original-source equality. The caller supplies the prepared
+context and its checked equality. All work shares the enclosing reflection
+budget and transaction. This authenticates a supplied selected source; it does
+not construct an arbitrary predecessor history or run missing root/sign searches.
+
+The frozen square-root regression quotes its parent descriptor and both
+packets in 673,461 proof nodes. Its coefficient identity supplies the complete
+algebraic source example above. A separate negative-window packet has an
+accepted literal reader and sign −1; it cannot identify the positive native
+root with the negative selected conjugate. Wrong coefficient proofs and
+one-node-below exhaustion also restore the complete caller state. The dedicated
+fresh audit checks 218 theorem bodies, 179 definitions and 385 nonempty kernel
+traces, excludes the handwritten source identities and native fact fixtures,
+and retains the producer guard and complete standard-three axiom closure.
+
+The native producer {name Hex.RCF.RealCoefficients.SourceBuild.build}`SourceBuild.build`
+can discover a selected source from its defining polynomial and a window
+polynomial whose sign is positive at exactly one of its real roots. For an
+isolating square, use `SourceIdentity.margin` as that window. The producer
+enumerates roots with the existing family algorithm, visits every candidate,
+and proposes the equation and window packets for the unique positive match.
+Two matches produce `ambiguous`; no match produces `unselected`. A failed
+equation or enclosure calculation remains an error.
+
+This direct API example proposes the positive root of X²−2, using its checked
+source square:
+
+```lean
+open Hex Hex.RealClosure
+open Hex.RCF.RealCoefficients
+
+def proposeSquareRoot
+ (registry : BaseContext.Registry) := Id.run do
+ let parent := Hex.RealClosure.NumberField.base registry
+ let polynomial : parent.Poly :=
+ DensePoly.ofCoeffs #[⟨-2⟩, ⟨0⟩, ⟨1⟩]
+ let window : parent.Poly := DensePoly.ofCoeffs
+ ((SourceIdentity.margin SquareTwo.square).coeffs.map
+ fun coefficient => ⟨coefficient⟩)
+ return SourceBuild.build polynomial window
+
+#eval (proposeSquareRoot (fun _ => none)).toOption.isSome
+```
+
+The output reports proposal production. Independent frozen replay establishes
+the selected real identity. `ScalarPacket.buildParts` retains the proposed
+polynomial, sign and graph separately; its `packet` method preserves the
+existing three-field scalar format. `SourceIdentity.quoteWith` checks those
+fields at the exact restored descriptor and original source alias.
+
+`ScalarPacket.buildParts_success` and `build_success` prove actual packet
+production for every query at a validated descriptor with a lawful ordinary-real
+parent model. They consume the owner's selected-sign production theorem,
+without assuming a successful table or producer result. Acceptance of the
+frozen serialized packet remains a separate obligation.
+
+The [enumerated-source controls](https://github.com/kim-em/hex-dev/blob/main/conformance/HexRCF/SourceBuild.lean)
+produce both quadratic conjugates and a positive cubic root from X³−2, compare
+their complete bytes with frozen constructor literals, and independently
+validate all six scalar graphs. They also reject an ambiguous window, empty
+and zero windows, a wrong source equation and duplicate roots. The separate
+[ordinary quotation](https://github.com/kim-em/hex-dev/blob/main/conformance/HexRCF/EnumeratedSource/Quote.lean)
+identifies these roots from the frozen descriptors and packets, with the
+rational model, alias selection and coefficient-map laws supplied. Its three
+quotation requests charge 6,371,355, 6,442,217 and 8,127,841 proof nodes
+respectively; the separate final driver checks and exports are outside those
+counts. The combined build
+took 624 seconds and peaked at 2.2 GiB on the shared host. These costs describe
+three fixed proof constructions. General predecessor-history assembly and
+automatic source discovery from a tactic goal remain separate work.
+
+`CellQuote.finishOperations` takes the supplied-operation acceptance expression
+and an ordinary proof that its result is `some ()`. It kernel-checks that exact
+equation, transports it to the canonical checker, and performs the original
+source, valuation and divisor checks of `CellQuote.finishPacket`. A reduced
+conversion proof can retain its original expected equation through this API.
+Failure restores both metavariables and auxiliary proof declarations.
+
+Meta clients can prepare these native inputs from the original Lean statement
+with `AlgebraicPreparation.prepare`. It reuses the shared source translator and
+the checked algebraic interpretation of each coefficient and original divisor.
+Its default proof callback, `FieldRuntime.nonnegative`, attempts routine
+nonnegativity facts and restores its state on decline. A caller can supply
+another callback returning an ordinary proof or `none`; thrown exceptions
+remain terminal. Preparation checks each supplied proof and retains one
+aggregate reflection budget across the source, coefficients and divisors.
+The source equivalence is charged during reification and again when retained
+as a private theorem for later composition:
+
+```lean
+open Lean Meta Qq
+open Hex.RCF.RealCoefficients
+run_meta do
+ let .ok prepared ←
+ AlgebraicPreparation.prepare
+ q(∀ x : ℝ,
+ x^2 + 1 /
+ (Real.sqrt 2 + 1) > 0)
+ | throwError "unsupported source"
+ let guards := prepared.source.divisors
+ unless guards.size == 1 do
+ throwError "missing original guard"
+```
+
+The resulting environment stores coefficient proposals first and every original
+divisor afterward, with separate ordered indices for each role. Its `build`
+method runs `AlgebraicCells.build` on those proposals. It does not first require
+a primitive common-field irreducibility certificate. The source identities are
+ordinary-kernel proofs about the retained algebraic expressions; they do not
+authenticate quoted literals for the computed proposals. This preparation API
+does not install a new `rcf` handler or close the remaining frozen-context,
+literal-authentication and general source-quotation obligations.
+
+For the retained algebraic expressions, `prepared.acceptanceIff` proves an exact
+acceptance equivalence. The left side requires the actual algebraic producer
+to return a complete packet and that packet's checker to accept `true`. The
+right side contains both the original real statement and every original
+divisor's nonzero condition. Guard validity is a conclusion of acceptance,
+even when cancellation or an empty interval makes the statement trivial.
+The helper reconstructs the ordered original guard inventory from the target;
+editing both stored guard arrays cannot remove or replace an obligation.
+The existing producer completeness and domain laws prove this equivalence;
+no successful child calculation is assumed.
+
+```lean
+open Hex Lean Meta Qq
+open Hex.RCF.RealCoefficients
+open Hex.RealClosure.BaseContext
+run_meta do
+ let target : Q(Prop) :=
+ q(∀ x : ℝ, x^2 + Real.sqrt 2 > 0)
+ let .ok prepared ←
+ AlgebraicPreparation.prepare
+ target
+ | throwError "unsupported source"
+ let before := prepared.usage
+ let registry : Q(Registry) :=
+ q(fun _ => none)
+ let .ok (equivalence, usage) ←
+ prepared.acceptanceIff
+ target registry
+ | throwError
+ "source equivalence failed"
+ let auxName := mkPrivateName
+ (← getEnv)
+ (← mkFreshUserName `sourceDoc)
+ let _ ←
+ withDeclNameForAuxNaming
+ auxName do
+ Hex.RCF.checkProof
+ `sourceAcceptance
+ (← inferType equivalence)
+ equivalence
+ unless usage.proofNodes >
+ before.proofNodes do
+ throwError
+ "proof usage did not increase"
+```
+
+This proof uses the checked algebraic expressions and their source identities.
+It does not identify separately computed proposals with frozen literals,
+reconstruct provider histories, or add a tactic handler. Those authentication
+and quotation obligations remain separate. The helper continues the same
+aggregate reflection budget, returns its updated usage for later stages, and
+restores caller state on exhaustion or failure.
+Callers continue with `{prepared with usage}` when constructing further proofs.
+Both preparation and acceptance preserve a caller's lowered recursion limit.
+Fresh importing regressions check its actual theorem bodies, true and false
+sources, retained zero guards and reversed intervals, with exactly the standard
+three axioms.
+
+The automatic-input conformance uses both selected signs of √2 alongside an
+independent positive √3. It checks simultaneous conditions and a repeated zero
+root, both true and false quantified verdicts, an unused zero input, a late
+original zero guard, and empty true/false constant inputs. Separate linear
+constraints a < x < 1 distinguish the variable's selected coefficient: a = −√2
+gives an existential true and universal false verdict; a = √2 gives both false.
+Thirteen actual automatic-input proof bodies are separately checked with only
+the standard three axioms.
+
+The explicit `HexRCFAlgebraicCellsStress` target retains the stronger condition
+x² = √2 with 1 < x < √3 and its negative-conjugate control. A recorded
+run was interrupted after 12 min 33 s at 1.4 GiB peak without a final module
+result; this is neither a completed timing nor an acceptance result. Stack
+samples show nested native inversion, gcd and Sturm sign work below an IR
+interpreter call chain, without identifying a particular case or phase. The cost remains a limitation of this
+complete native route.
diff --git a/reports/data/hexrcf-enumerated-source/failed-browser-attempt-1/source-build-final-desktop-api.png b/reports/data/hexrcf-enumerated-source/failed-browser-attempt-1/source-build-final-desktop-api.png
new file mode 100644
index 0000000000..753a29dfa1
Binary files /dev/null and b/reports/data/hexrcf-enumerated-source/failed-browser-attempt-1/source-build-final-desktop-api.png differ
diff --git a/reports/data/hexrcf-enumerated-source/failed-browser-attempt-1/source-build-final-desktop-apicode.png b/reports/data/hexrcf-enumerated-source/failed-browser-attempt-1/source-build-final-desktop-apicode.png
new file mode 100644
index 0000000000..6386a95f19
Binary files /dev/null and b/reports/data/hexrcf-enumerated-source/failed-browser-attempt-1/source-build-final-desktop-apicode.png differ
diff --git a/reports/data/hexrcf-enumerated-source/failed-browser-attempt-1/source-build-final-desktop-source.png b/reports/data/hexrcf-enumerated-source/failed-browser-attempt-1/source-build-final-desktop-source.png
new file mode 100644
index 0000000000..71b7780447
Binary files /dev/null and b/reports/data/hexrcf-enumerated-source/failed-browser-attempt-1/source-build-final-desktop-source.png differ
diff --git a/reports/data/hexrcf-enumerated-source/failed-browser-attempt-1/source-build-final-inspection.json b/reports/data/hexrcf-enumerated-source/failed-browser-attempt-1/source-build-final-inspection.json
new file mode 100644
index 0000000000..378068fe0a
--- /dev/null
+++ b/reports/data/hexrcf-enumerated-source/failed-browser-attempt-1/source-build-final-inspection.json
@@ -0,0 +1,94 @@
+[
+ {
+ "label": "desktop",
+ "kind": "api",
+ "text": "\n The native producer SourceBuild.build\ncan discover a selected source from its defining polynomial and a window\npolynomial whose sign is positive at exactly one of its real roots. For an\nisolating square, use SourceIdentity.margin as that window. The producer\nenumerates roots with the existing family algorithm, visits every candidate,\nand proposes the equation and window packets for the unique positive match.\nTwo matches produce ambiguous; no match produces unselected. A failed\nequation or enclosure calculation remains an error.",
+ "viewport": 1440,
+ "scrollY": 277472,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "P",
+ "targetWidth": 752,
+ "targetScrollWidth": 752,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "desktop",
+ "kind": "apicode",
+ "text": "\n This direct API example proposes the positive root of X²−2, using its checked\nsource square:",
+ "viewport": 1440,
+ "scrollY": 277729,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "CODE",
+ "targetWidth": 740,
+ "targetScrollWidth": 740,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "desktop",
+ "kind": "source",
+ "text": "\n The enumerated-source controls\nproduce both quadratic conjugates and a positive cubic root from X³−2, compare\ntheir complete bytes with frozen constructor literals, and independently\nvalidate all six scalar graphs. They also reject an ambiguous window, empty\nand zero windows, a wrong source equation and duplicate roots. The separate\nordinary quotation\nidentifies these roots from the frozen descriptors and packets, with the\nrational model, alias selection and coefficient-map laws supplied. Its three\nquotation requests charge 6,371,355, 6,442,217 and 8,127,841 proof nodes\nrespectively; the separate final driver checks and exports are outside those\ncounts. The combined build\ntook 624 seconds and peaked at 2.2 GiB on the shared host. These costs describe\nthree fixed proof constructions. General predecessor-history assembly and\nautomatic source discovery from a tactic goal remain separate work.",
+ "viewport": 1440,
+ "scrollY": 278247,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "P",
+ "targetWidth": 752,
+ "targetScrollWidth": 752,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "api",
+ "text": "\n The native producer SourceBuild.build\ncan discover a selected source from its defining polynomial and a window\npolynomial whose sign is positive at exactly one of its real roots. For an\nisolating square, use SourceIdentity.margin as that window. The producer\nenumerates roots with the existing family algorithm, visits every candidate,\nand proposes the equation and window packets for the unique positive match.\nTwo matches produce ambiguous; no match produces unselected. A failed\nequation or enclosure calculation remains an error.",
+ "viewport": 390,
+ "scrollY": 445080,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "P",
+ "targetWidth": 343,
+ "targetScrollWidth": 343,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "apicode",
+ "text": "\n This direct API example proposes the positive root of X²−2, using its checked\nsource square:",
+ "viewport": 390,
+ "scrollY": 445496,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "CODE",
+ "targetWidth": 331,
+ "targetScrollWidth": 493,
+ "descendantOverflow": 162,
+ "overflowElements": [
+ {
+ "tag": "CODE",
+ "classes": "hl lean block",
+ "width": 331,
+ "scroll": 493,
+ "text": "open Hex Hex.RealClosure\nopen Hex.RCF.RealCoefficients\n\ndef proposeSquareRoot\n (registry : BaseCo"
+ }
+ ]
+ },
+ {
+ "label": "narrow",
+ "kind": "source",
+ "text": "\n The enumerated-source controls\nproduce both quadratic conjugates and a positive cubic root from X³−2, compare\ntheir complete bytes with frozen constructor literals, and independently\nvalidate all six scalar graphs. They also reject an ambiguous window, empty\nand zero windows, a wrong source equation and duplicate roots. The separate\nordinary quotation\nidentifies these roots from the frozen descriptors and packets, with the\nrational model, alias selection and coefficient-map laws supplied. Its three\nquotation requests charge 6,371,355, 6,442,217 and 8,127,841 proof nodes\nrespectively; the separate final driver checks and exports are outside those\ncounts. The combined build\ntook 624 seconds and peaked at 2.2 GiB on the shared host. These costs describe\nthree fixed proof constructions. General predecessor-history assembly and\nautomatic source discovery from a tactic goal remain separate work.",
+ "viewport": 390,
+ "scrollY": 446403,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "P",
+ "targetWidth": 343,
+ "targetScrollWidth": 343,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ }
+]
\ No newline at end of file
diff --git a/reports/data/hexrcf-enumerated-source/failed-browser-attempt-1/source-build-final-narrow-api.png b/reports/data/hexrcf-enumerated-source/failed-browser-attempt-1/source-build-final-narrow-api.png
new file mode 100644
index 0000000000..020a71a646
Binary files /dev/null and b/reports/data/hexrcf-enumerated-source/failed-browser-attempt-1/source-build-final-narrow-api.png differ
diff --git a/reports/data/hexrcf-enumerated-source/failed-browser-attempt-1/source-build-final-narrow-apicode.png b/reports/data/hexrcf-enumerated-source/failed-browser-attempt-1/source-build-final-narrow-apicode.png
new file mode 100644
index 0000000000..04f6f7b824
Binary files /dev/null and b/reports/data/hexrcf-enumerated-source/failed-browser-attempt-1/source-build-final-narrow-apicode.png differ
diff --git a/reports/data/hexrcf-enumerated-source/failed-browser-attempt-1/source-build-final-narrow-source.png b/reports/data/hexrcf-enumerated-source/failed-browser-attempt-1/source-build-final-narrow-source.png
new file mode 100644
index 0000000000..ef1a908977
Binary files /dev/null and b/reports/data/hexrcf-enumerated-source/failed-browser-attempt-1/source-build-final-narrow-source.png differ
diff --git a/reports/data/hexrcf-enumerated-source/failed-browser-attempt-1/source-build-final-section-overflow.json b/reports/data/hexrcf-enumerated-source/failed-browser-attempt-1/source-build-final-section-overflow.json
new file mode 100644
index 0000000000..072d6cd704
--- /dev/null
+++ b/reports/data/hexrcf-enumerated-source/failed-browser-attempt-1/source-build-final-section-overflow.json
@@ -0,0 +1,894 @@
+[
+ {
+ "label": "desktop",
+ "width": 1440,
+ "targets": [
+ {
+ "tag": "P",
+ "text": "\n Fix the coefficient field ℚ(√2), with its positive selected embedding in ℝ.\nThe polynomial X²−√2 has two real roots. The supplied complete ta",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n These examples import the monorepo fixture HexRCF.CellReplay.Algebraic.Quoted.\nThe original real source is proved by fresh schema preparation",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RealCoefficients\nopen CellReplayTests\nexample : ∃ x : ℝ,\n x ^ 2 - Real.sqrt 2 ≥ 0 ∧\n x ^ 2 - Real.sqrt 2 ≤ 0 ∧\n (0 : ℝ) = 0 := Algebraic.Q",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The complete-packet interface reads the full root table before its cell rows.\nCompleteReplay.check then checks the radical identities and str",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex Hex.RealClosure Hex.SignDet\nopen Hex.RealFormula\nopen Hex.RCF.RealCoefficients\nexample\n {r : BaseContext.Registry}\n {c : Tower.Context r} {n : Na",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n CellQuote.finishPacket additionally binds this checked shared sentence to a\nfreshly reified original source, its fixed coefficient valuation ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RealCoefficients\nopen CellReplayTests.Algebraic\nexample : ∃ x : ℝ,\n x ^ 2 - Real.sqrt 2 ≥ 0 ∧\n x ^ 2 - Real.sqrt 2 ≤ 0 ∧\n 0 / (-1 : ℝ) = 0",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The source-boundary checks refuse a false verdict, a different original\nformula, missing divisor identities and a cancelled zero divisor. A s",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The table's exact root set and strict order are proved conclusions of the\nsupplied replay. The positive and negative fourth roots of 2 have t",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RealCoefficients\nopen CellReplayTests\nexample (x : ℝ) :\n x ∈\n Algebraic.Canonical.roots.values\n Algebraic.Schema.original ↔\n x ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n All coefficient signs used by these readers come from 21 distinct frozen\nscalar packets. Each packet passes the owner's scalar reader in the ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Original divisors still enter preflight when a zero numerator removes their\nvalue from the normalized matrix. This source retains and authent",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RealCoefficients\nopen CellReplayTests\nexample : ∃ x : ℝ,\n x ^ 2 - Real.sqrt 2 ≥ 0 ∧\n x ^ 2 - Real.sqrt 2 ≤ 0 ∧\n 0 / (-1 : ℝ) = 0 :=\n Alge",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A supplied zero divisor is rejected before decoding, including with a malformed\npacket. The fresh quotation module rechecks both original pro",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The same checked rows can be reused when the entire ordered specialized\npolynomial list is unchanged, including repeated and zero atoms. Chan",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RealCoefficients\nopen CellReplayTests\nexample : ∀ x : ℝ,\n (x ^ 2 - Real.sqrt 2 < 0 ∨\n x ^ 2 - Real.sqrt 2 ≥ 0) ∧\n (0 : ℝ) = 0 :=\n Algeb",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Additional fresh proofs cover equality/non-equality and positive outer\nsectors. All six comparisons, conjunction, disjunction and negation ar",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n This example uses one supplied lawful ordinary-real parent and one fixed\ncomplete packet. It establishes finite replay over a non-rational st",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The native construction API can produce the same complete packet. RootBuild.build\nretains the owner's full derivative table and its extracted",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RealCoefficients\nopen Hex.RealClosure\nopen HexPolyTheory.Interpret\nexample\n {r : BaseContext.Registry}\n {c : Tower.Context r}\n (model : To",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n CellBuild.prepare first checks the original divisors, then specializes the\nshared atoms and constructs their radical carrier and complete roo",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n CellBuild.build constructs every section row and every sector record for that\ncomplete root table and proposed ordinary parent-field points. ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n This explicit-point interface does not discover ordinary sector points in\narbitrary parents, assemble missing scalar/provider histories or pr",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The separate native CellDiscover.run API obtains ordinary points from the\nowner's complete partition. Its actual collection converts all fixe",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RealCoefficients\nopen Hex.RealClosure\nexample\n {r : BaseContext.Registry}\n {c : Tower.Context r}\n {ps : List c.Poly}\n (family : Tower.S",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n CellAlignment.aligned derives exact equality between the partition's ordered\nreal boundaries and the independently checked radical root table",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n This is native production followed by independent cell replay. The returned\ncollection retains native conversion history; it is not a frozen ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n CellDiscover.run uses SectorRequest.points and the owner's proved\nboundary-request API. Cut.adjacent establishes the requested endpoints for ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n CellProgress obtains each selected-sign row and each ordinary-point descriptor\nfrom the owner's actual construction theorems. A checked linea",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex Hex.RealClosure\nopen Hex.RealFormula\nopen Hex.RCF.RealCoefficients\nexample\n {r : BaseContext.Registry}\n {c : Tower.Context r} {n : Nat}\n (mode",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n CellDecision.complete composes the actual collection, source conversion,\nradical/root preparation, requested sector points and complete typed",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n CellBuild.evidence now produces those typed rows before freezing them.\nThe public CellBuild.build serializes that same result in the existing",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The discovery result emits its full rootGraph as well as cells.\nPacket.rootGraph_eq binds the graph to the actual typed root table and native",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RealClosure\nopen Hex.RealFormula\nopen Hex.RCF.RealCoefficients\nexample\n {r : BaseContext.Registry}\n {c : Tower.Context r} {n : Nat}\n (model : ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Original fixed-field inputs can enter this producer through\nNumberField.cells. The existing number-field factory checks the original\nselected",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex\nopen Hex.RealClosure\nopen Hex.RealFormula\nopen Hex.RCF.RealCoefficients\nexample\n {n : Nat} (g : RealAlgebraicNumber)\n (registry : BaseContext.Reg",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The native conformance constructs both selected roots of X²−2 and a computed\ncoordinate in the field generated by the positive root of X³−2. ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Literal-reader acceptance still needs finite coverage of every serialized\ncoefficient and context. Frozen provider/context histories, strict ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Independently constructed coefficient contexts can enter complete packet\nproduction through GatherCells.build. Each input retains its origina",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n buildWith reuses the actual owner's gathering result. A compatible ordinary\nmodel proves complete packet production without assuming a succes",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex Hex.RealClosure\nopen Hex.RealClosure.Tower\nopen Hex.RealFormula\nopen Hex.RCF.RealCoefficients\nexample\n {r : BaseContext.Registry}\n {b : BaseConte",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n build_complete additionally derives successful gathering from the original\nowners' compatible base signatures and an ordinary base interpreta",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The native conformance combines separate positive √2 and √3 owners, repeats\none source coordinate, and checks a leading cancellation and repe",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n AlgebraicCells.build starts from original RealAlgebraicNumber inputs.\nIt constructs their checked selected presentations and gathers the resu",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The automatic constructor needs only the original nonzero guards for its\nprogress theorem. The rational interpretation, owner compatibility a",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex Hex.RealClosure\nopen Hex.RealFormula\nopen Hex.RCF.RealCoefficients\nexample (r : BaseContext.Registry)\n {m n : Nat}\n (vs : Fin m →\n RealAlgeb",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n These native-input theorems preserve both emitted quantifier verdicts at the\noriginal selected real values. build_domains concludes every ori",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The complete literal checker can use checked cached arithmetic through\nCellOperations.check. It takes the owner's existing Replay.Operations\n",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex Hex.RealClosure Hex.SignDet\nopen Hex.RealFormula\nopen Hex.RCF.RealCoefficients\nopen Hex.RealClosure.Replay\nexample {r : BaseContext.Registry}\n {p : ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Original guard preflight, radical identities, complete root/cell coverage and\nthe strict fold retain their existing soundness and domain theo",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n CellQuote.replayWith\nquotes a supplied CellOperations.check expression in three stages. It first\nchecks the complete root table, then each de",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula\nopen Hex.Reflect\nopen Hex.RCF.RealCoefficients\nmeta def quoteCellPacket\n (program : Expr)\n (decode : RootQuote.DecoderM)\n (co",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n set_option trace.Hex.RCF.CellQuote true reports reader and finite-family\nboundaries with cumulative proof-node usage. Lean heartbeats remain ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n CellQuote.finishPacketWith\ncontinues this request through the original source proof. It consumes the\nprepared source and the accepted canonic",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The separate finishing action can also continue already recorded usage:",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula\nopen Hex.Reflect\nopen Hex.RCF.RealCoefficients\nmeta def finishCellPacket\n (source : Reify.Source)\n (target checker accepted : Ex",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n That separate transaction rolls back its own work. Clients needing rollback\nof quotation as well must combine both actions in one transaction",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Within this request, row quotation parses each literal sign packet and checks\nits exact ordered queries. It validates a graph once for each d",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The returned equation retains both Boolean verdicts. CellQuote.finishPacket\nperforms source authentication separately and requires an accepte",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "example : ∀ _x : ℝ, (0 : ℝ) = 0 :=\n Hex.RCF.CellQuoteStages.source\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Its replay quotation uses 441,039 nodes for true and 441,041 for false. These\ncounts cover the three replay stages, separately from source re",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A separate rational quadratic packet checks two root sections and three\nsectors in 5,911,125 proof nodes. Its trace records two graph-memo re",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A fresh importing audit checks 1,247 theorem bodies and 101 definitions, with\n1,298 nonempty kernel traces, the unchanged producer guard and ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The algebraic source regression independently reads the complete frozen packet\nover the retained positive square root of 2. It reifies the fo",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "example : ∃ x : ℝ,\n x ^ 2 - Real.sqrt 2 ≥ 0 ∧\n x ^ 2 - Real.sqrt 2 ≤ 0 ∧\n (0 : ℝ) = 0 :=\n Hex.RCF.CellSourceQuote.source\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The shared reification and quotation budget records 8,644,422 proof nodes\nbefore source finishing and 8,651,669 for the complete original-sou",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Its importing proof audit checks 1,193 theorem bodies, 202 definitions and\n1,353 nonempty kernel traces. It excludes the older complete-packe",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a closed retained base/root context, RealModel.build constructs its\nordinary-real interpretation from a caller-supplied real base model a",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A source equation alone does not distinguish real conjugates.\nSourceIdentity.observe\nreads a checked scalar sign at the native descriptor's s",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n SourceIdentity.quoteWith\nconstructs this identity from two supplied scalar readers. Its Anchor retains\nthe original polynomial, isolating squ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula\nopen Hex.Reflect\nopen Hex.RCF.RealCoefficients\nmeta def quoteSourceIdentity\n (anchor : SourceIdentity.Anchor)\n (packets : Source",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The result proves that the reader's selected real root equals the original\nanchor value. Quotation checks both packets, their keys, signs, su",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The frozen square-root regression quotes its parent descriptor and both\npackets in 673,461 proof nodes. Its coefficient identity supplies the",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The native producer SourceBuild.build\ncan discover a selected source from its defining polynomial and a window\npolynomial whose sign is posit",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n This direct API example proposes the positive root of X²−2, using its checked\nsource square:",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex Hex.RealClosure\nopen Hex.RCF.RealCoefficients\n\ndef proposeSquareRoot\n (registry : BaseContext.Registry) := Id.run do\n let parent := Hex.RealClosure",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The output reports proposal production. Independent frozen replay establishes\nthe selected real identity. ScalarPacket.buildParts retains the",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n ScalarPacket.buildParts_success and build_success prove actual packet\nproduction for every query at a validated descriptor with a lawful ordi",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The enumerated-source controls\nproduce both quadratic conjugates and a positive cubic root from X³−2, compare\ntheir complete bytes with froze",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n CellQuote.finishOperations takes the supplied-operation acceptance expression\nand an ordinary proof that its result is some (). It kernel-che",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Meta clients can prepare these native inputs from the original Lean statement\nwith AlgebraicPreparation.prepare. It reuses the shared source ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Meta Qq\nopen Hex.RCF.RealCoefficients\nrun_meta do\n let .ok prepared ←\n AlgebraicPreparation.prepare\n q(∀ x : ℝ,\n x^2 + 1 /\n ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The resulting environment stores coefficient proposals first and every original\ndivisor afterward, with separate ordered indices for each rol",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For the retained algebraic expressions, prepared.acceptanceIff proves an exact\nacceptance equivalence. The left side requires the actual alge",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex Lean Meta Qq\nopen Hex.RCF.RealCoefficients\nopen Hex.RealClosure.BaseContext\nrun_meta do\n let target : Q(Prop) :=\n q(∀ x : ℝ, x^2 + Real.sqrt 2 > 0)",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n This proof uses the checked algebraic expressions and their source identities.\nIt does not identify separately computed proposals with frozen",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The automatic-input conformance uses both selected signs of √2 alongside an\nindependent positive √3. It checks simultaneous conditions and a ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The explicit HexRCFAlgebraicCellsStress target retains the stronger condition\nx² = √2 with 1 < x < √3 and its negative-conjugate control. A r",
+ "overflow": 0
+ }
+ ]
+ },
+ {
+ "label": "narrow",
+ "width": 390,
+ "targets": [
+ {
+ "tag": "P",
+ "text": "\n Fix the coefficient field ℚ(√2), with its positive selected embedding in ℝ.\nThe polynomial X²−√2 has two real roots. The supplied complete ta",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n These examples import the monorepo fixture HexRCF.CellReplay.Algebraic.Quoted.\nThe original real source is proved by fresh schema preparation",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RealCoefficients\nopen CellReplayTests\nexample : ∃ x : ℝ,\n x ^ 2 - Real.sqrt 2 ≥ 0 ∧\n x ^ 2 - Real.sqrt 2 ≤ 0 ∧\n (0 : ℝ) = 0 := Algebraic.Q",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The complete-packet interface reads the full root table before its cell rows.\nCompleteReplay.check then checks the radical identities and str",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex Hex.RealClosure Hex.SignDet\nopen Hex.RealFormula\nopen Hex.RCF.RealCoefficients\nexample\n {r : BaseContext.Registry}\n {c : Tower.Context r} {n : Na",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n CellQuote.finishPacket additionally binds this checked shared sentence to a\nfreshly reified original source, its fixed coefficient valuation ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RealCoefficients\nopen CellReplayTests.Algebraic\nexample : ∃ x : ℝ,\n x ^ 2 - Real.sqrt 2 ≥ 0 ∧\n x ^ 2 - Real.sqrt 2 ≤ 0 ∧\n 0 / (-1 : ℝ) = 0",
+ "overflow": 1
+ },
+ {
+ "tag": "P",
+ "text": "\n The source-boundary checks refuse a false verdict, a different original\nformula, missing divisor identities and a cancelled zero divisor. A s",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The table's exact root set and strict order are proved conclusions of the\nsupplied replay. The positive and negative fourth roots of 2 have t",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RealCoefficients\nopen CellReplayTests\nexample (x : ℝ) :\n x ∈\n Algebraic.Canonical.roots.values\n Algebraic.Schema.original ↔\n x ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n All coefficient signs used by these readers come from 21 distinct frozen\nscalar packets. Each packet passes the owner's scalar reader in the ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Original divisors still enter preflight when a zero numerator removes their\nvalue from the normalized matrix. This source retains and authent",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RealCoefficients\nopen CellReplayTests\nexample : ∃ x : ℝ,\n x ^ 2 - Real.sqrt 2 ≥ 0 ∧\n x ^ 2 - Real.sqrt 2 ≤ 0 ∧\n 0 / (-1 : ℝ) = 0 :=\n Alge",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A supplied zero divisor is rejected before decoding, including with a malformed\npacket. The fresh quotation module rechecks both original pro",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The same checked rows can be reused when the entire ordered specialized\npolynomial list is unchanged, including repeated and zero atoms. Chan",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RealCoefficients\nopen CellReplayTests\nexample : ∀ x : ℝ,\n (x ^ 2 - Real.sqrt 2 < 0 ∨\n x ^ 2 - Real.sqrt 2 ≥ 0) ∧\n (0 : ℝ) = 0 :=\n Algeb",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Additional fresh proofs cover equality/non-equality and positive outer\nsectors. All six comparisons, conjunction, disjunction and negation ar",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n This example uses one supplied lawful ordinary-real parent and one fixed\ncomplete packet. It establishes finite replay over a non-rational st",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The native construction API can produce the same complete packet. RootBuild.build\nretains the owner's full derivative table and its extracted",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RealCoefficients\nopen Hex.RealClosure\nopen HexPolyTheory.Interpret\nexample\n {r : BaseContext.Registry}\n {c : Tower.Context r}\n (model : To",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n CellBuild.prepare first checks the original divisors, then specializes the\nshared atoms and constructs their radical carrier and complete roo",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n CellBuild.build constructs every section row and every sector record for that\ncomplete root table and proposed ordinary parent-field points. ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n This explicit-point interface does not discover ordinary sector points in\narbitrary parents, assemble missing scalar/provider histories or pr",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The separate native CellDiscover.run API obtains ordinary points from the\nowner's complete partition. Its actual collection converts all fixe",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RealCoefficients\nopen Hex.RealClosure\nexample\n {r : BaseContext.Registry}\n {c : Tower.Context r}\n {ps : List c.Poly}\n (family : Tower.S",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n CellAlignment.aligned derives exact equality between the partition's ordered\nreal boundaries and the independently checked radical root table",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n This is native production followed by independent cell replay. The returned\ncollection retains native conversion history; it is not a frozen ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n CellDiscover.run uses SectorRequest.points and the owner's proved\nboundary-request API. Cut.adjacent establishes the requested endpoints for ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n CellProgress obtains each selected-sign row and each ordinary-point descriptor\nfrom the owner's actual construction theorems. A checked linea",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex Hex.RealClosure\nopen Hex.RealFormula\nopen Hex.RCF.RealCoefficients\nexample\n {r : BaseContext.Registry}\n {c : Tower.Context r} {n : Nat}\n (mode",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n CellDecision.complete composes the actual collection, source conversion,\nradical/root preparation, requested sector points and complete typed",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n CellBuild.evidence now produces those typed rows before freezing them.\nThe public CellBuild.build serializes that same result in the existing",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The discovery result emits its full rootGraph as well as cells.\nPacket.rootGraph_eq binds the graph to the actual typed root table and native",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RealClosure\nopen Hex.RealFormula\nopen Hex.RCF.RealCoefficients\nexample\n {r : BaseContext.Registry}\n {c : Tower.Context r} {n : Nat}\n (model : ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Original fixed-field inputs can enter this producer through\nNumberField.cells. The existing number-field factory checks the original\nselected",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex\nopen Hex.RealClosure\nopen Hex.RealFormula\nopen Hex.RCF.RealCoefficients\nexample\n {n : Nat} (g : RealAlgebraicNumber)\n (registry : BaseContext.Reg",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The native conformance constructs both selected roots of X²−2 and a computed\ncoordinate in the field generated by the positive root of X³−2. ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Literal-reader acceptance still needs finite coverage of every serialized\ncoefficient and context. Frozen provider/context histories, strict ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Independently constructed coefficient contexts can enter complete packet\nproduction through GatherCells.build. Each input retains its origina",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n buildWith reuses the actual owner's gathering result. A compatible ordinary\nmodel proves complete packet production without assuming a succes",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex Hex.RealClosure\nopen Hex.RealClosure.Tower\nopen Hex.RealFormula\nopen Hex.RCF.RealCoefficients\nexample\n {r : BaseContext.Registry}\n {b : BaseConte",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n build_complete additionally derives successful gathering from the original\nowners' compatible base signatures and an ordinary base interpreta",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The native conformance combines separate positive √2 and √3 owners, repeats\none source coordinate, and checks a leading cancellation and repe",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n AlgebraicCells.build starts from original RealAlgebraicNumber inputs.\nIt constructs their checked selected presentations and gathers the resu",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The automatic constructor needs only the original nonzero guards for its\nprogress theorem. The rational interpretation, owner compatibility a",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex Hex.RealClosure\nopen Hex.RealFormula\nopen Hex.RCF.RealCoefficients\nexample (r : BaseContext.Registry)\n {m n : Nat}\n (vs : Fin m →\n RealAlgeb",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n These native-input theorems preserve both emitted quantifier verdicts at the\noriginal selected real values. build_domains concludes every ori",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The complete literal checker can use checked cached arithmetic through\nCellOperations.check. It takes the owner's existing Replay.Operations\n",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex Hex.RealClosure Hex.SignDet\nopen Hex.RealFormula\nopen Hex.RCF.RealCoefficients\nopen Hex.RealClosure.Replay\nexample {r : BaseContext.Registry}\n {p : ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Original guard preflight, radical identities, complete root/cell coverage and\nthe strict fold retain their existing soundness and domain theo",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n CellQuote.replayWith\nquotes a supplied CellOperations.check expression in three stages. It first\nchecks the complete root table, then each de",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula\nopen Hex.Reflect\nopen Hex.RCF.RealCoefficients\nmeta def quoteCellPacket\n (program : Expr)\n (decode : RootQuote.DecoderM)\n (co",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n set_option trace.Hex.RCF.CellQuote true reports reader and finite-family\nboundaries with cumulative proof-node usage. Lean heartbeats remain ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n CellQuote.finishPacketWith\ncontinues this request through the original source proof. It consumes the\nprepared source and the accepted canonic",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The separate finishing action can also continue already recorded usage:",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula\nopen Hex.Reflect\nopen Hex.RCF.RealCoefficients\nmeta def finishCellPacket\n (source : Reify.Source)\n (target checker accepted : Ex",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n That separate transaction rolls back its own work. Clients needing rollback\nof quotation as well must combine both actions in one transaction",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Within this request, row quotation parses each literal sign packet and checks\nits exact ordered queries. It validates a graph once for each d",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The returned equation retains both Boolean verdicts. CellQuote.finishPacket\nperforms source authentication separately and requires an accepte",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "example : ∀ _x : ℝ, (0 : ℝ) = 0 :=\n Hex.RCF.CellQuoteStages.source\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Its replay quotation uses 441,039 nodes for true and 441,041 for false. These\ncounts cover the three replay stages, separately from source re",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A separate rational quadratic packet checks two root sections and three\nsectors in 5,911,125 proof nodes. Its trace records two graph-memo re",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A fresh importing audit checks 1,247 theorem bodies and 101 definitions, with\n1,298 nonempty kernel traces, the unchanged producer guard and ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The algebraic source regression independently reads the complete frozen packet\nover the retained positive square root of 2. It reifies the fo",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "example : ∃ x : ℝ,\n x ^ 2 - Real.sqrt 2 ≥ 0 ∧\n x ^ 2 - Real.sqrt 2 ≤ 0 ∧\n (0 : ℝ) = 0 :=\n Hex.RCF.CellSourceQuote.source\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The shared reification and quotation budget records 8,644,422 proof nodes\nbefore source finishing and 8,651,669 for the complete original-sou",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Its importing proof audit checks 1,193 theorem bodies, 202 definitions and\n1,353 nonempty kernel traces. It excludes the older complete-packe",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a closed retained base/root context, RealModel.build constructs its\nordinary-real interpretation from a caller-supplied real base model a",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A source equation alone does not distinguish real conjugates.\nSourceIdentity.observe\nreads a checked scalar sign at the native descriptor's s",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n SourceIdentity.quoteWith\nconstructs this identity from two supplied scalar readers. Its Anchor retains\nthe original polynomial, isolating squ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula\nopen Hex.Reflect\nopen Hex.RCF.RealCoefficients\nmeta def quoteSourceIdentity\n (anchor : SourceIdentity.Anchor)\n (packets : Source",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The result proves that the reader's selected real root equals the original\nanchor value. Quotation checks both packets, their keys, signs, su",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The frozen square-root regression quotes its parent descriptor and both\npackets in 673,461 proof nodes. Its coefficient identity supplies the",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The native producer SourceBuild.build\ncan discover a selected source from its defining polynomial and a window\npolynomial whose sign is posit",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n This direct API example proposes the positive root of X²−2, using its checked\nsource square:",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex Hex.RealClosure\nopen Hex.RCF.RealCoefficients\n\ndef proposeSquareRoot\n (registry : BaseContext.Registry) := Id.run do\n let parent := Hex.RealClosure",
+ "overflow": 162
+ },
+ {
+ "tag": "P",
+ "text": "\n The output reports proposal production. Independent frozen replay establishes\nthe selected real identity. ScalarPacket.buildParts retains the",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n ScalarPacket.buildParts_success and build_success prove actual packet\nproduction for every query at a validated descriptor with a lawful ordi",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The enumerated-source controls\nproduce both quadratic conjugates and a positive cubic root from X³−2, compare\ntheir complete bytes with froze",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n CellQuote.finishOperations takes the supplied-operation acceptance expression\nand an ordinary proof that its result is some (). It kernel-che",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Meta clients can prepare these native inputs from the original Lean statement\nwith AlgebraicPreparation.prepare. It reuses the shared source ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Meta Qq\nopen Hex.RCF.RealCoefficients\nrun_meta do\n let .ok prepared ←\n AlgebraicPreparation.prepare\n q(∀ x : ℝ,\n x^2 + 1 /\n ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The resulting environment stores coefficient proposals first and every original\ndivisor afterward, with separate ordered indices for each rol",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For the retained algebraic expressions, prepared.acceptanceIff proves an exact\nacceptance equivalence. The left side requires the actual alge",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex Lean Meta Qq\nopen Hex.RCF.RealCoefficients\nopen Hex.RealClosure.BaseContext\nrun_meta do\n let target : Q(Prop) :=\n q(∀ x : ℝ, x^2 + Real.sqrt 2 > 0)",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n This proof uses the checked algebraic expressions and their source identities.\nIt does not identify separately computed proposals with frozen",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The automatic-input conformance uses both selected signs of √2 alongside an\nindependent positive √3. It checks simultaneous conditions and a ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The explicit HexRCFAlgebraicCellsStress target retains the stronger condition\nx² = √2 with 1 < x < √3 and its negative-conjugate control. A r",
+ "overflow": 0
+ }
+ ]
+ }
+]
\ No newline at end of file
diff --git a/reports/data/hexrcf-enumerated-source/failed-progress-probe.lean.txt b/reports/data/hexrcf-enumerated-source/failed-progress-probe.lean.txt
new file mode 100644
index 0000000000..9b81d4dda0
--- /dev/null
+++ b/reports/data/hexrcf-enumerated-source/failed-progress-probe.lean.txt
@@ -0,0 +1,35 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+module
+public import HexRCF.RealCoefficients.ScalarPacket
+public import HexSignDetTheory.SelectedProducer
+public section
+namespace Hex.RCF.RealCoefficients.ScalarPacket
+open Hex Hex.RealClosure Hex.RealClosure.Tower Hex.SignDet
+variable {registry : BaseContext.Registry} {parent : Tower.Context registry}
+
+/-- Actual selected-sign production supplies a packet at every polynomial
+query over a lawful ordinary-real parent. No successful producer result is
+assumed. Independent frozen acceptance remains a separate obligation. -/
+theorem buildParts_success (model : Model parent ℝ)
+ (context : Algebraic.Context parent.Value Signature parent.sign parent.signature)
+ (value : ValueCodec parent.Value) (polynomial : DensePoly parent.Value) :
+ ∃ proposal, buildParts context value polynomial = some proposal := by
+ obtain ⟨signs, produced⟩ := context.root.buildSigns_success model.value model.zero_iff
+ model.one model.add model.sub model.mul model.nat model.sign model.neg model.inv
+ [context.queryPoly polynomial]
+ simp [buildParts, Algebraic.Context.buildSigns_eq, produced]
+
+/-- Literal assembly preserves the actual producer's unconditional progress
+for a validated descriptor in its ordinary-real parent model. -/
+theorem build_success (model : Model parent ℝ)
+ (context : Algebraic.Context parent.Value Signature parent.sign parent.signature)
+ (value : ValueCodec parent.Value) (polynomial : DensePoly parent.Value) :
+ ∃ packet, build context value polynomial = some packet := by
+ obtain ⟨proposal, produced⟩ := buildParts_success model context value polynomial
+ exact ⟨proposal.packet, by simp only [build, produced, Option.map_some]⟩
+
+end Hex.RCF.RealCoefficients.ScalarPacket
diff --git a/reports/data/hexrcf-enumerated-source/run-bounded.txt b/reports/data/hexrcf-enumerated-source/run-bounded.txt
new file mode 100644
index 0000000000..2cc8636e8a
--- /dev/null
+++ b/reports/data/hexrcf-enumerated-source/run-bounded.txt
@@ -0,0 +1,10 @@
+#!/usr/bin/env bash
+set -euo pipefail
+exec systemd-run --user --wait --pipe --collect \
+ --unit=hex-10358-lean-build \
+ --property=MemoryMax=32G \
+ --property=MemorySwapMax=0 \
+ --property=OOMPolicy=kill \
+ --working-directory="$PWD" \
+ --setenv="PATH=$PATH" --setenv=LEAN_NUM_THREADS=2 \
+ "$@"
diff --git a/reports/data/hexrcf-enumerated-source/source-build-admissions.log.gz b/reports/data/hexrcf-enumerated-source/source-build-admissions.log.gz
new file mode 100644
index 0000000000..bd2ec29cdf
Binary files /dev/null and b/reports/data/hexrcf-enumerated-source/source-build-admissions.log.gz differ
diff --git a/reports/data/hexrcf-enumerated-source/source-build-audit-1.log.gz b/reports/data/hexrcf-enumerated-source/source-build-audit-1.log.gz
new file mode 100644
index 0000000000..281f3e689a
Binary files /dev/null and b/reports/data/hexrcf-enumerated-source/source-build-audit-1.log.gz differ
diff --git a/reports/data/hexrcf-enumerated-source/source-build-audit-2.log.gz b/reports/data/hexrcf-enumerated-source/source-build-audit-2.log.gz
new file mode 100644
index 0000000000..23a13c83fa
Binary files /dev/null and b/reports/data/hexrcf-enumerated-source/source-build-audit-2.log.gz differ
diff --git a/reports/data/hexrcf-enumerated-source/source-build-boundary-failure-inputs/KernelCheck.before-repair.lean.txt.txt b/reports/data/hexrcf-enumerated-source/source-build-boundary-failure-inputs/KernelCheck.before-repair.lean.txt.txt
new file mode 100644
index 0000000000..fced27de19
--- /dev/null
+++ b/reports/data/hexrcf-enumerated-source/source-build-boundary-failure-inputs/KernelCheck.before-repair.lean.txt.txt
@@ -0,0 +1,58 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+
+import HexRCF.SelectedRoot.Read
+import HexRealClosure.RootPolicy
+import HexRCF.RealCoefficients.SourceBuild
+import Lean.Elab.Command
+
+meta section
+namespace Hex.RCF.SelectedRootTests.KernelCheck
+open Hex.RCF.SelectedRootTests
+open Lean Meta Hex.RealClosure Hex.SignDet
+open Hex.RealClosure.Algebraic
+
+/-- Common producer boundary for whole acceptances and their named leaves. -/
+def producers : Array Name := #[``Read.rootRead, ``Hex.RealClosure.Roots.roots?, ``Hex.RealClosure.Roots.roots,
+ ``Hex.RealClosure.Roots.Policy.roots?, ``Hex.RealClosure.Roots.Policy.roots,
+ ``Tower.Sample.roots, ``Tower.Context.roots, ``Tower.Context.roots?, ``NumberField.roots, ``NumberField.roots?,
+ ``NumberField.Presentation.roots, ``NumberField.Presentation.roots?, ``Algebraic.Context.signPoly,
+ ``Algebraic.Context.buildSigns, ``Descriptor.buildSigns, ``Descriptor.buildSignsPrepared,
+ ``Hex.SignDet.buildPrepared, ``Hex.SignDet.buildTree, ``Hex.SignDet.buildTreeFrom,
+ ``Algebraic.Element.ofPoly, ``Descriptor.prepareQueries,
+ ``Hex.RCF.RealCoefficients.SourceBuild.build,
+ ``Hex.RCF.RealCoefficients.SourceBuild.select,
+ ``Hex.RCF.RealCoefficients.ScalarPacket.buildParts]
+
+/-- Return the exact prohibited reduction observed by a checked declaration. -/
+def violation? (diagnostics : Kernel.Diagnostics) (extra : Array Name := #[]) : Option (Name × Nat) :=
+ (producers ++ extra).findSome? fun name =>
+ (diagnostics.unfoldCounter.find? name).map (name, ·)
+
+/-- Check generated replay acceptance with active reduction diagnostics.
+The rational parent construction and separately elaborated source theorems are
+outside this guard; all frozen scalar, parser, root, row and collected refusal
+acceptance proofs pass through it. Shared seed declarations wrap already
+checked scalar acceptances separately. Callers can extend the producer denylist
+with `extra` without adding imports to this shared fixture helper. -/
+def addChecked (name : Name) (type proof : Expr)
+ (extra : Array Name := #[]) (required : Array Name := #[]) : MetaM Unit := do
+ let options := (← getOptions).setBool `debug.skipKernelTC false
+ let environment := Kernel.enableDiag (Kernel.resetDiag (← getEnv)) true
+ let env ← ofExceptKernelException <| environment.addDeclCore
+ (Core.getMaxHeartbeats options).toUSize (maxRecDepth.get options).toUSize
+ (.thmDecl {name, levelParams := [], type, value := proof}) none (doCheck := true)
+ let diagnostics := Kernel.getDiagnostics env
+ unless diagnostics.enabled do throwError "kernel diagnostics disabled"
+ unless !diagnostics.unfoldCounter.isEmpty do throwError "empty kernel diagnostics"
+ if let some (name, count) := violation? diagnostics extra then
+ throwError "native production unfolded {name}: {count}"
+ for name in required do
+ unless diagnostics.unfoldCounter.contains name do
+ throwError "kernel diagnostics did not observe required reader {name}"
+ setEnv (Kernel.enableDiag env false)
+
+end Hex.RCF.SelectedRootTests.KernelCheck
diff --git a/reports/data/hexrcf-enumerated-source/source-build-boundary-failure-inputs/Proofs.before-repair.lean.txt.txt b/reports/data/hexrcf-enumerated-source/source-build-boundary-failure-inputs/Proofs.before-repair.lean.txt.txt
new file mode 100644
index 0000000000..0163d1f598
--- /dev/null
+++ b/reports/data/hexrcf-enumerated-source/source-build-boundary-failure-inputs/Proofs.before-repair.lean.txt.txt
@@ -0,0 +1,72 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+import HexRCF.EnumeratedSource.Quote
+import HexRCF.ProofEvidence
+import HexRCF.SelectedRoot.KernelCheck
+import KernelReplay.AxiomClosure
+meta section
+open Lean Meta Hex.RealClosure Hex.RCF.RealCoefficients
+set_option maxRecDepth 32768
+set_option maxHeartbeats 24000000
+run_meta do
+ let roots := #[``Hex.RCF.EnumeratedSourceQuote.positive,
+ ``Hex.RCF.EnumeratedSourceQuote.negative,``Hex.RCF.EnumeratedSourceQuote.cubic]
+ let axioms ← Algebraic.KernelReplay.AxiomClosure.collect roots
+ unless axioms.all (fun name => [``propext,``Classical.choice,``Quot.sound].contains name) do
+ throwError "enumerated source has inadmissible dependencies"
+ let dependencies ← Hex.RCF.ProofEvidence.projectDependencies roots
+ -- The equality consumes the restored facts and their checked field laws.
+ -- The separate equality of the optional reader with `some fact` is not
+ -- retained in that proof; `restore` carries acceptance through `fields`.
+ for required in #[``SourceIdentity.identify,``SourceIdentity.observe,``SourceIdentity.select,
+ ``ScalarPacket.restore,``ScalarPacket.fields,``RootQuote.read_eq] do
+ unless dependencies.contains required do throwError "enumerated source omitted {required}"
+ for forbidden in #[``SourceBuild.build,``SourceBuild.select,``ScalarPacket.buildParts,
+ ``ScalarPacket.build,``ScalarPacket.buildLiteral,
+ ``Hex.RCF.SourceIdentityCases.source_selected,``Hex.RCF.SourceIdentityCases.equationFact,
+ ``Hex.RCF.SourceIdentityCases.marginFact,``Hex.RCF.SourceIdentityCases.negativeMarginFact,
+ ``Hex.RCF.SourceIdentityCases.coefficient,``Hex.RCF.SelectedRootTests.Data.lower,
+ ``Hex.RCF.SelectedRootTests.Data.lowerAccepted,``Hex.RCF.SelectedRootTests.Data.selectedSqrt] do
+ if dependencies.contains forbidden then throwError "enumerated source reused {forbidden}"
+ let names := (← (← getEnv).getLocalConstantInfos).map (·.name)
+ let modules := (← getEnv).header.moduleNames
+ let allowed := #[`HexRCF.EnumeratedSource.Quote,`HexRCF.EnumeratedSource.Inputs,
+ `HexRCF.EnumeratedSource.Positive,`HexRCF.EnumeratedSource.PositiveData0,
+ `HexRCF.EnumeratedSource.Negative,`HexRCF.EnumeratedSource.NegativeData0,
+ `HexRCF.EnumeratedSource.Cubic,`HexRCF.EnumeratedSource.CubicData0,
+ `HexRCF.RealCoefficients.SourceIdentity,`HexRCF.RealCoefficients.ScalarPacket,
+ `HexRCF.RealCoefficients.RootQuote]
+ let mut theorems : Nat := 0
+ let mut definitions : Nat := 0
+ let mut traces : Nat := 0
+ for name in dependencies.toArray do
+ let some index := (← getEnv).getModuleIdxFor? name | continue
+ unless allowed.contains modules[index]! do continue
+ let declaration ← match ← getConstInfo name with
+ | .thmInfo info =>
+ theorems := theorems+1
+ pure (Declaration.thmDecl {info with name := ← mkFreshUserName `__enumeratedBody})
+ | .defnInfo info =>
+ definitions := definitions+1
+ pure (Declaration.defnDecl {info with name := ← mkFreshUserName `__enumeratedData})
+ | _ => continue
+ let options := (← getOptions).setBool `debug.skipKernelTC false
+ let environment := Kernel.enableDiag (Kernel.resetDiag (← getEnv)) true
+ let checked ← ofExceptKernelException <| environment.addDeclCore
+ (Core.getMaxHeartbeats options).toUSize (maxRecDepth.get options).toUSize
+ declaration none (doCheck := true)
+ let diagnostics := Kernel.getDiagnostics checked
+ unless diagnostics.enabled do throwError "enumerated source diagnostics disabled"
+ if let some (producer,count) := Hex.RCF.SelectedRootTests.KernelCheck.violation? diagnostics
+ #[``ScalarPacket.build,``ScalarPacket.buildLiteral,``Algebraic.Element.codec,
+ ``Hex.SignDet.Descriptor.ofReplay?] then
+ throwError "enumerated source reduced producer {producer}: {count}; body={name}"
+ if !diagnostics.unfoldCounter.isEmpty then traces := traces+1
+ unless theorems == 1488 && definitions == 865 && traces == 2323 do
+ throwError "enumerated source inventory changed: {theorems}/{definitions}/{traces}"
+ unless (← (← getEnv).getLocalConstantInfos).map (·.name) == names do
+ throwError "enumerated source audit retained copied declarations"
+ logInfo m!"enumerated source actual bodies: {theorems} theorems/{definitions} definitions; nonempty traces={traces}; full axioms={axioms}"
diff --git a/reports/data/hexrcf-enumerated-source/source-build-boundary-failure-inputs/README.txt.txt b/reports/data/hexrcf-enumerated-source/source-build-boundary-failure-inputs/README.txt.txt
new file mode 100644
index 0000000000..a63c6781a6
--- /dev/null
+++ b/reports/data/hexrcf-enumerated-source/source-build-boundary-failure-inputs/README.txt.txt
@@ -0,0 +1 @@
+Captured from the unchanged staged index after failed integration2. The two guard files are the versions that introduced the producer import. This is a focused failure reconstruction, not a claim of a full exact source snapshot for that run. Worktree repair removes the import and uses literal declaration names; native driver separately resolves/checks those names.
diff --git a/reports/data/hexrcf-enumerated-source/source-build-boundary-repair-1.log.gz b/reports/data/hexrcf-enumerated-source/source-build-boundary-repair-1.log.gz
new file mode 100644
index 0000000000..b64946e871
Binary files /dev/null and b/reports/data/hexrcf-enumerated-source/source-build-boundary-repair-1.log.gz differ
diff --git a/reports/data/hexrcf-enumerated-source/source-build-browser-1.log.gz b/reports/data/hexrcf-enumerated-source/source-build-browser-1.log.gz
new file mode 100644
index 0000000000..56fe0aa4f9
Binary files /dev/null and b/reports/data/hexrcf-enumerated-source/source-build-browser-1.log.gz differ
diff --git a/reports/data/hexrcf-enumerated-source/source-build-browser-2.log.gz b/reports/data/hexrcf-enumerated-source/source-build-browser-2.log.gz
new file mode 100644
index 0000000000..967b79262e
Binary files /dev/null and b/reports/data/hexrcf-enumerated-source/source-build-browser-2.log.gz differ
diff --git a/reports/data/hexrcf-enumerated-source/source-build-browser.mjs b/reports/data/hexrcf-enumerated-source/source-build-browser.mjs
new file mode 100644
index 0000000000..52ff8e97c2
--- /dev/null
+++ b/reports/data/hexrcf-enumerated-source/source-build-browser.mjs
@@ -0,0 +1,61 @@
+import fs from 'node:fs';
+import {spawn} from 'node:child_process';
+const root=process.argv[2];
+if(!root) throw new Error('Pass the scratch render directory');
+const profile=root+'/source-build-profile';
+fs.mkdirSync(profile,{recursive:true});
+fs.rmSync(profile+'/DevToolsActivePort',{force:true});
+const chrome=spawn(process.env.CHROME_BIN || '/home/kim/.cache/ms-playwright/chromium-1243/chrome-linux64/chrome',[
+ '--headless=new','--no-sandbox','--disable-gpu','--allow-file-access-from-files',
+ '--remote-debugging-port=0','--remote-allow-origins=*','--user-data-dir='+profile,'about:blank'],
+ {env:{...process.env,LD_LIBRARY_PATH:fs.readFileSync(root+'/browser-lib-paths.txt','utf8').trim()},stdio:'ignore'});
+let socket;
+try {
+ const portFile=profile+'/DevToolsActivePort';
+ for(let i=0;!fs.existsSync(portFile);i++) {
+ if(i>200||chrome.exitCode!==null) throw new Error('Chrome did not expose CDP');
+ await new Promise(r=>setTimeout(r,100));
+ }
+ const port=fs.readFileSync(portFile,'utf8').split('\n')[0];
+ const tabs=await (await fetch('http://127.0.0.1:'+port+'/json')).json();
+ socket=new WebSocket(tabs.find(t=>t.type==='page').webSocketDebuggerUrl);
+ await new Promise((r,j)=>{socket.onopen=r;socket.onerror=j});
+ let sequence=0;const pending=new Map();let loaded;
+ socket.onmessage=e=>{
+ const msg=JSON.parse(e.data);
+ if(msg.id){const p=pending.get(msg.id);pending.delete(msg.id);msg.error?p.reject(msg.error):p.resolve(msg.result);}
+ if(msg.method==='Page.loadEventFired'&&loaded){loaded();loaded=undefined;}
+ };
+ const call=(method,params={})=>new Promise((resolve,reject)=>{const id=++sequence;pending.set(id,{resolve,reject});socket.send(JSON.stringify({id,method,params}));});
+ await call('Page.enable');
+ const load=new Promise(r=>loaded=r);
+ await call('Page.navigate',{url:'file:///home/kim/.codex/tasks/hex-10358/scalar-review-render/source-build-review-html/html-single/index.html'});
+ await load;
+ const evaluate=async expression=>{const r=await call('Runtime.evaluate',{expression,returnByValue:true});if(r.exceptionDetails)throw new Error(JSON.stringify(r.exceptionDetails));return r.result.value;};
+ const metadata=[]; const sectionMetadata=[];
+ for(const [label,width] of [['desktop',1440],['narrow',390]]) {
+ await call('Emulation.setDeviceMetricsOverride',{width,height:width===390?1800:1000,deviceScaleFactor:1,mobile:false});
+ for(const [kind,phrase] of [["api", "can discover a selected source"], ["apicode", "This direct API example proposes the positive root"], ["source", "quotation requests charge"]] ) {
+ const exact=await evaluate(`(() => {const p=Array.from(document.querySelectorAll('p')).find(e=>e.textContent.replace(/\\s+/g,' ').includes(${JSON.stringify(phrase)}));if(!p)throw new Error('missing paragraph');const target=['sourcecode','apicode'].includes(${JSON.stringify(kind)})?p.nextElementSibling:p;if(['sourcecode','apicode'].includes(${JSON.stringify(kind)})&&!target.matches('.hl.lean.block, pre, div:has(code)'))throw new Error('target is not a Lean code block');target.scrollIntoView({block:${JSON.stringify('center')}});return {text:p.textContent,viewport:innerWidth,scrollY,paragraphWidth:p.getBoundingClientRect().width,scrollWidth:p.scrollWidth,targetTag:target.tagName,targetWidth:target.getBoundingClientRect().width,targetScrollWidth:target.scrollWidth,descendantOverflow:Math.max(0,...[target,...target.querySelectorAll('*')].map(e=>e.scrollWidth-e.clientWidth)),overflowElements:[target,...target.querySelectorAll('*')].filter(e=>e.scrollWidth-e.clientWidth>1).map(e=>({tag:e.tagName,classes:e.className,width:e.clientWidth,scroll:e.scrollWidth,text:e.textContent.slice(0,100)})).slice(0,8)};})()`);
+ if(!exact)throw new Error('missing visual target '+kind);
+ await evaluate('new Promise(resolve=>requestAnimationFrame(()=>requestAnimationFrame(resolve)))');
+ const shot=await call('Page.captureScreenshot',{format:'png'});
+ fs.writeFileSync(root+'/'+'source-build-final-'+label+'-'+kind+'.png',Buffer.from(shot.data,'base64'));
+ metadata.push({label,kind,...exact});
+ }
+ sectionMetadata.push(await evaluate(`(() => {
+ const headings=Array.from(document.querySelectorAll('h1,h2,h3,h4,h5,h6'));
+ const heading=headings.find(e=>e.textContent.includes('Frozen cells over a selected algebraic coefficient'));
+ if(!heading)throw new Error('missing quotation heading');
+ const following=headings.find(e=>e!==heading && Number(e.tagName[1])<=Number(heading.tagName[1]) && (heading.compareDocumentPosition(e)&4));
+ if(!following)throw new Error('missing following section');
+ const targets=Array.from(document.querySelectorAll('p,.hl.lean.block')).filter(e=>(heading.compareDocumentPosition(e)&4) && (e.compareDocumentPosition(following)&4));
+ if(targets.length<8)throw new Error('incomplete quotation section');
+ return {label:${JSON.stringify(label)},width:innerWidth,targets:targets.map(e=>({tag:e.tagName,text:e.textContent.slice(0,160),overflow:Math.max(0,...[e,...e.querySelectorAll('*')].map(n=>n.scrollWidth-n.clientWidth))}))};
+ })()`));
+ }
+ fs.writeFileSync(root+'/source-build-final-section-overflow.json',JSON.stringify(sectionMetadata,null,2));
+ fs.writeFileSync(root+'/source-build-final-inspection.json',JSON.stringify(metadata,null,2));
+ if(metadata.some(e=>e.targetScrollWidth>e.targetWidth+1 || e.descendantOverflow>1)) throw new Error('Changed content overflows; retained captures and metrics identify the affected block.');
+ process.stdout.write('Saved shared-budget finishing desktop/narrow screenshots\n');
+} finally {if(socket)socket.close();chrome.kill('SIGTERM');}
diff --git a/reports/data/hexrcf-enumerated-source/source-build-ci-failed.log.gz b/reports/data/hexrcf-enumerated-source/source-build-ci-failed.log.gz
new file mode 100644
index 0000000000..b212586eaf
Binary files /dev/null and b/reports/data/hexrcf-enumerated-source/source-build-ci-failed.log.gz differ
diff --git a/reports/data/hexrcf-enumerated-source/source-build-ci-final.json b/reports/data/hexrcf-enumerated-source/source-build-ci-final.json
new file mode 100644
index 0000000000..b6ed1d71e3
--- /dev/null
+++ b/reports/data/hexrcf-enumerated-source/source-build-ci-final.json
@@ -0,0 +1 @@
+{"conclusion":"failure","headSha":"bd83ea2855c3fd3c4671c3f88c4ad8c3c6e3bc8e","jobs":[{"completedAt":"2026-10-18T23:33:28Z","conclusion":"failure","databaseId":117821220606,"name":"build","startedAt":"2026-10-18T23:31:21Z","status":"completed","steps":[{"completedAt":"2026-10-18T23:31:23Z","conclusion":"success","name":"Set up job","number":1,"startedAt":"2026-10-18T23:31:22Z","status":"completed"},{"completedAt":"2026-10-18T23:31:47Z","conclusion":"success","name":"Run actions/checkout@v4","number":2,"startedAt":"2026-10-18T23:31:23Z","status":"completed"},{"completedAt":"2026-10-18T23:31:47Z","conclusion":"success","name":"Classify the change (docs-only fast path)","number":3,"startedAt":"2026-10-18T23:31:47Z","status":"completed"},{"completedAt":"2026-10-18T23:31:47Z","conclusion":"success","name":"Run python3 scripts/check_copyright_headers.py","number":4,"startedAt":"2026-10-18T23:31:47Z","status":"completed"},{"completedAt":"2026-10-18T23:31:48Z","conclusion":"success","name":"Lint Lean file line counts (SPEC/CI.md §Source-file lints)","number":5,"startedAt":"2026-10-18T23:31:47Z","status":"completed"},{"completedAt":"2026-10-18T23:33:06Z","conclusion":"success","name":"Check dependency DAG and trusted-internals imports","number":6,"startedAt":"2026-10-18T23:31:48Z","status":"completed"},{"completedAt":"2026-10-18T23:33:25Z","conclusion":"failure","name":"Check the released manifest and Phase-7 admission state","number":7,"startedAt":"2026-10-18T23:33:06Z","status":"completed"},{"completedAt":"2026-10-18T23:33:25Z","conclusion":"skipped","name":"Check the manual's released/unreleased split matches released.yml","number":8,"startedAt":"2026-10-18T23:33:25Z","status":"completed"},{"completedAt":"2026-10-18T23:33:25Z","conclusion":"skipped","name":"Run python3 -m unittest scripts/release/test_sync_released.py","number":9,"startedAt":"2026-10-18T23:33:25Z","status":"completed"},{"completedAt":"2026-10-18T23:33:25Z","conclusion":"skipped","name":"Run python3 scripts/release/check_trust_surface.py","number":10,"startedAt":"2026-10-18T23:33:25Z","status":"completed"},{"completedAt":"2026-10-18T23:33:25Z","conclusion":"skipped","name":"Cross-check every compiled clmul path (HexGF2/SPEC/hex-gf2.md)","number":11,"startedAt":"2026-10-18T23:33:25Z","status":"completed"},{"completedAt":"2026-10-18T23:33:25Z","conclusion":"skipped","name":"Run python3 scripts/check_phase4.py","number":12,"startedAt":"2026-10-18T23:33:25Z","status":"completed"},{"completedAt":"2026-10-18T23:33:25Z","conclusion":"skipped","name":"Check Phase 7 chapters and anchored tutorials (PLAN/Phase7.md)","number":13,"startedAt":"2026-10-18T23:33:25Z","status":"completed"},{"completedAt":"2026-10-18T23:33:25Z","conclusion":"skipped","name":"Run bench source lints (SPEC/benchmarking.md)","number":14,"startedAt":"2026-10-18T23:33:25Z","status":"completed"},{"completedAt":"2026-10-18T23:33:25Z","conclusion":"skipped","name":"Check benches are Mathlib-free (SPEC/benchmarking.md)","number":15,"startedAt":"2026-10-18T23:33:25Z","status":"completed"},{"completedAt":"2026-10-18T23:33:25Z","conclusion":"skipped","name":"Verify conformance matrix invariant","number":16,"startedAt":"2026-10-18T23:33:25Z","status":"completed"},{"completedAt":"2026-10-18T23:33:25Z","conclusion":"skipped","name":"Validate committed PNT+ inventory (offline)","number":17,"startedAt":"2026-10-18T23:33:25Z","status":"completed"},{"completedAt":"2026-10-18T23:33:25Z","conclusion":"skipped","name":"Validate committed CADE-24 inventory (offline)","number":18,"startedAt":"2026-10-18T23:33:25Z","status":"completed"},{"completedAt":"2026-10-18T23:33:25Z","conclusion":"skipped","name":"Install system dependencies","number":19,"startedAt":"2026-10-18T23:33:25Z","status":"completed"},{"completedAt":"2026-10-18T23:33:25Z","conclusion":"skipped","name":"Install Python dependencies (bench comparator + oracles)","number":20,"startedAt":"2026-10-18T23:33:25Z","status":"completed"},{"completedAt":"2026-10-18T23:33:25Z","conclusion":"skipped","name":"Verify performance measurements and figures are current","number":21,"startedAt":"2026-10-18T23:33:25Z","status":"completed"},{"completedAt":"2026-10-18T23:33:25Z","conclusion":"skipped","name":"Set up pinned Lean toolchain (no build)","number":22,"startedAt":"2026-10-18T23:33:25Z","status":"completed"},{"completedAt":"2026-10-18T23:33:25Z","conclusion":"skipped","name":"Fetch Mathlib cache","number":23,"startedAt":"2026-10-18T23:33:25Z","status":"completed"},{"completedAt":"2026-10-18T23:33:25Z","conclusion":"skipped","name":"Verify Mathlib cache populated (hard fail on miss)","number":24,"startedAt":"2026-10-18T23:33:25Z","status":"completed"},{"completedAt":"2026-10-18T23:33:25Z","conclusion":"skipped","name":"Configure Lean shared library path","number":25,"startedAt":"2026-10-18T23:33:25Z","status":"completed"},{"completedAt":"2026-10-18T23:33:25Z","conclusion":"skipped","name":"Restore .lake/build (project and TauCeti modules)","number":26,"startedAt":"2026-10-18T23:33:25Z","status":"completed"},{"completedAt":"2026-10-18T23:33:25Z","conclusion":"skipped","name":"Configure Lake artifact cache (no-op unless endpoints set)","number":27,"startedAt":"2026-10-18T23:33:25Z","status":"completed"},{"completedAt":"2026-10-18T23:33:25Z","conclusion":"skipped","name":"Restore hex-dev oleans from the Lake cache (anonymous; non-fatal)","number":28,"startedAt":"2026-10-18T23:33:25Z","status":"completed"},{"completedAt":"2026-10-18T23:33:25Z","conclusion":"skipped","name":"Disable implicit Lake cache restores during build","number":29,"startedAt":"2026-10-18T23:33:25Z","status":"completed"},{"completedAt":"2026-10-18T23:33:25Z","conclusion":"skipped","name":"Assert Mathlib will not rebuild (lake build --no-build)","number":30,"startedAt":"2026-10-18T23:33:25Z","status":"completed"},{"completedAt":"2026-10-18T23:33:25Z","conclusion":"skipped","name":"Define the hex-dev cache + build target sets","number":31,"startedAt":"2026-10-18T23:33:25Z","status":"completed"},{"completedAt":"2026-10-18T23:33:25Z","conclusion":"skipped","name":"Decide whether to collect Conway rebuild evidence","number":32,"startedAt":"2026-10-18T23:33:25Z","status":"completed"},{"completedAt":"2026-10-18T23:33:25Z","conclusion":"skipped","name":"Collect Conway rebuild evidence","number":33,"startedAt":"2026-10-18T23:33:25Z","status":"completed"},{"completedAt":"2026-10-18T23:33:25Z","conclusion":"skipped","name":"Build hex libraries + bench exes","number":34,"startedAt":"2026-10-18T23:33:25Z","status":"completed"},{"completedAt":"2026-10-18T23:33:25Z","conclusion":"skipped","name":"Verify Conway generation and compiled certificates","number":35,"startedAt":"2026-10-18T23:33:25Z","status":"completed"},{"completedAt":"2026-10-18T23:33:25Z","conclusion":"skipped","name":"Verify Conway rebuild provenance","number":36,"startedAt":"2026-10-18T23:33:25Z","status":"completed"},{"completedAt":"2026-10-18T23:33:25Z","conclusion":"skipped","name":"Upload Conway rebuild evidence","number":37,"startedAt":"2026-10-18T23:33:25Z","status":"completed"},{"completedAt":"2026-10-18T23:33:25Z","conclusion":"skipped","name":"Verify deterministic HexPrimality table regeneration","number":38,"startedAt":"2026-10-18T23:33:25Z","status":"completed"},{"completedAt":"2026-10-18T23:33:25Z","conclusion":"skipped","name":"Build conformance + emit-fixture targets","number":39,"startedAt":"2026-10-18T23:33:25Z","status":"completed"},{"completedAt":"2026-10-18T23:33:25Z","conclusion":"skipped","name":"Check real-closure architecture experiments","number":40,"startedAt":"2026-10-18T23:33:25Z","status":"completed"},{"completedAt":"2026-10-18T23:33:25Z","conclusion":"skipped","name":"Build HexManual","number":41,"startedAt":"2026-10-18T23:33:25Z","status":"completed"},{"completedAt":"2026-10-18T23:33:25Z","conclusion":"skipped","name":"Save .lake/build (project and TauCeti modules; main only)","number":42,"startedAt":"2026-10-18T23:33:25Z","status":"completed"},{"completedAt":"2026-10-18T23:33:25Z","conclusion":"skipped","name":"Bench verify (smoke gate per SPEC/benchmarking.md §CI integration)","number":43,"startedAt":"0001-01-01T00:00:00Z","status":"completed"},{"completedAt":"2026-10-18T23:33:25Z","conclusion":"skipped","name":"Conformance oracles + BZ gates","number":44,"startedAt":"0001-01-01T00:00:00Z","status":"completed"},{"completedAt":"2026-10-18T23:33:25Z","conclusion":"success","name":"Wait for all","number":45,"startedAt":"2026-10-18T23:33:25Z","status":"completed"},{"completedAt":"2026-10-18T23:33:25Z","conclusion":"skipped","name":"Gate on parallel verification results (fail-closed)","number":46,"startedAt":"2026-10-18T23:33:25Z","status":"completed"},{"completedAt":"2026-10-18T23:33:25Z","conclusion":"skipped","name":"Publish hex-dev oleans to the Lake cache (main only)","number":47,"startedAt":"2026-10-18T23:33:25Z","status":"completed"},{"completedAt":"2026-10-18T23:33:25Z","conclusion":"success","name":"Upload failure records","number":48,"startedAt":"2026-10-18T23:33:25Z","status":"completed"},{"completedAt":"2026-10-18T23:33:26Z","conclusion":"success","name":"Post Run actions/checkout@v4","number":96,"startedAt":"2026-10-18T23:33:25Z","status":"completed"},{"completedAt":"2026-10-18T23:33:26Z","conclusion":"success","name":"Complete job","number":97,"startedAt":"2026-10-18T23:33:26Z","status":"completed"}],"url":"https://github.com/kim-em/hex-dev/actions/runs/39176845815/job/117821220606"}],"status":"completed"}
diff --git a/reports/data/hexrcf-enumerated-source/source-build-ci39178303607-resumed-watch.log.gz b/reports/data/hexrcf-enumerated-source/source-build-ci39178303607-resumed-watch.log.gz
new file mode 100644
index 0000000000..847421a60f
Binary files /dev/null and b/reports/data/hexrcf-enumerated-source/source-build-ci39178303607-resumed-watch.log.gz differ
diff --git a/reports/data/hexrcf-enumerated-source/source-build-controls-1.log.gz b/reports/data/hexrcf-enumerated-source/source-build-controls-1.log.gz
new file mode 100644
index 0000000000..a737fb6034
Binary files /dev/null and b/reports/data/hexrcf-enumerated-source/source-build-controls-1.log.gz differ
diff --git a/reports/data/hexrcf-enumerated-source/source-build-controls-2.log.gz b/reports/data/hexrcf-enumerated-source/source-build-controls-2.log.gz
new file mode 100644
index 0000000000..e7a5a079cd
Binary files /dev/null and b/reports/data/hexrcf-enumerated-source/source-build-controls-2.log.gz differ
diff --git a/reports/data/hexrcf-enumerated-source/source-build-controls-3.log.gz b/reports/data/hexrcf-enumerated-source/source-build-controls-3.log.gz
new file mode 100644
index 0000000000..c8c52d3683
Binary files /dev/null and b/reports/data/hexrcf-enumerated-source/source-build-controls-3.log.gz differ
diff --git a/reports/data/hexrcf-enumerated-source/source-build-copyright.log.gz b/reports/data/hexrcf-enumerated-source/source-build-copyright.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-enumerated-source/source-build-copyright.log.gz differ
diff --git a/reports/data/hexrcf-enumerated-source/source-build-core-1.log.gz b/reports/data/hexrcf-enumerated-source/source-build-core-1.log.gz
new file mode 100644
index 0000000000..c576dc1165
Binary files /dev/null and b/reports/data/hexrcf-enumerated-source/source-build-core-1.log.gz differ
diff --git a/reports/data/hexrcf-enumerated-source/source-build-core-2.log.gz b/reports/data/hexrcf-enumerated-source/source-build-core-2.log.gz
new file mode 100644
index 0000000000..a2fda661ff
Binary files /dev/null and b/reports/data/hexrcf-enumerated-source/source-build-core-2.log.gz differ
diff --git a/reports/data/hexrcf-enumerated-source/source-build-core-3.log.gz b/reports/data/hexrcf-enumerated-source/source-build-core-3.log.gz
new file mode 100644
index 0000000000..e761dc8572
Binary files /dev/null and b/reports/data/hexrcf-enumerated-source/source-build-core-3.log.gz differ
diff --git a/reports/data/hexrcf-enumerated-source/source-build-current-inputs/adapters/HexRCF/RealCoefficients.lean.txt b/reports/data/hexrcf-enumerated-source/source-build-current-inputs/adapters/HexRCF/RealCoefficients.lean.txt
new file mode 100644
index 0000000000..0781ad7070
--- /dev/null
+++ b/reports/data/hexrcf-enumerated-source/source-build-current-inputs/adapters/HexRCF/RealCoefficients.lean.txt
@@ -0,0 +1,151 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+
+module
+
+public import HexBerlekampZassenhausTheory.FactorTactic
+
+public import HexRCF.RealCoefficients.Registration
+public import HexRCF.RealCoefficients.AlgebraicBounds
+public meta import HexRCF.RealCoefficients.AlgebraicBounds
+public meta import HexRCF.RealCoefficients.Finite
+public meta import HexRCF.RealCoefficients.Reify
+public meta import HexRCF.RealCoefficients.Interpret
+public import HexRCF.RealCoefficients.RationalRoot
+public meta import HexRCF.RealCoefficients.RationalRoot
+public import HexRCF.RealCoefficients.RootAliases
+public import HexRCF.RealCoefficients.Conversion
+public import HexRCF.RealCoefficients.Coefficients
+public import HexRCF.RealCoefficients.Specialize
+public import HexRCF.RealCoefficients.Formula
+public import HexRCF.RealCoefficients.Field
+public import HexRCF.RealCoefficients.CommonPresentation
+public import HexRCF.RealCoefficients.SourceIdentity
+public meta import HexRCF.RealCoefficients.SourceIdentityQuote
+public import HexRCF.RealCoefficients.SourceBuild
+public import HexRCF.RealCoefficients.LiteralSign
+public import HexRCF.RealCoefficients.SignIndex
+public import HexRCF.RealCoefficients.FieldIndex
+public import HexRCF.RealCoefficients.FieldSpecialize
+public import HexRCF.RealCoefficients.RepresentationSpecialize
+public import HexRCF.RealCoefficients.Samples
+public import HexRCF.RealCoefficients.SelectedFormula
+public import HexRCF.RealCoefficients.SelectedBytes
+public import HexRCF.RealCoefficients.NumberField
+public import HexRCF.RealCoefficients.Realization
+public import HexRCF.RealCoefficients.NativeFormula
+public import HexRCF.RealCoefficients.NativeSpecialize
+public import HexRCF.RealCoefficients.NativeSamples
+public import HexRCF.RealCoefficients.NativeSources
+public import HexRCF.RealCoefficients.NativeSelection
+public import HexRCF.RealCoefficients.SourceSelection
+public import HexRCF.RealCoefficients.FieldSelection
+public import HexRCF.RealCoefficients.SectionReplay
+public import HexRCF.RealCoefficients.ScalarPacket
+public import HexRCF.RealCoefficients.SectionBuild
+public meta import HexRCF.RealCoefficients.SectionQuote
+public import HexRCF.RealCoefficients.PointReplay
+public import HexRCF.RealCoefficients.PointBuild
+public meta import HexRCF.RealCoefficients.PointQuote
+public meta import HexRCF.RealCoefficients.Quote
+public import HexRCF.RealCoefficients.RootReplay
+public import HexRCF.RealCoefficients.RootBuild
+public import HexRCF.RealCoefficients.RootQuote
+public import HexRCF.RealCoefficients.RowQuote
+public meta import HexRCF.RealCoefficients.RowQuote
+public meta import HexRCF.RealCoefficients.RootHeader
+public meta import HexRCF.RealCoefficients.RootPrepare
+public meta import HexRCF.RealCoefficients.RootContext
+public meta import HexRCF.RealCoefficients.SignatureQuote
+public meta import HexRCF.RealCoefficients.RootQuote
+public meta import HexRCF.RealCoefficients.RationalQuote
+public import HexRCF.RealCoefficients.ScalarQuote
+public import HexRCF.RealCoefficients.ScalarPacketQuote
+public meta import HexRCF.RealCoefficients.ScalarQuote
+public meta import HexRCF.RealCoefficients.ScalarPacketQuote
+public import HexRCF.RealCoefficients.RepresentationCarrier
+public import HexRCF.RealCoefficients.RootCells
+public import HexRCF.RealCoefficients.RepresentationCells
+public import HexRCF.RealCoefficients.BoundarySigns
+public import HexRCF.RealCoefficients.SectorSamples
+public import HexRCF.RealCoefficients.PointRows
+public import HexRCF.RealCoefficients.CellReplay
+public import HexRCF.RealCoefficients.RowOperations
+public import HexRCF.RealCoefficients.RowReplay
+public import HexRCF.RealCoefficients.CellPackets
+public import HexRCF.RealCoefficients.CellPacketRead
+public import HexRCF.RealCoefficients.CellPacketConvert
+public import HexRCF.RealCoefficients.CellPacketTransport
+public import HexRCF.RealCoefficients.SectorReplay
+public import HexRCF.RealCoefficients.CellRead
+public import HexRCF.RealCoefficients.CellBuild
+public import HexRCF.RealCoefficients.CellDiscover
+public import HexRCF.RealCoefficients.CellAlignment
+public import HexRCF.RealCoefficients.CellDecision
+public import HexRCF.RealCoefficients.CellExecution
+public import HexRCF.RealCoefficients.CellCodec
+public import HexRCF.RealCoefficients.CellFootprint
+public import HexRCF.RealCoefficients.RootCodec
+public import HexRCF.RealCoefficients.RootTableCodec
+public import HexRCF.RealCoefficients.CellOperations
+public import HexRCF.RealCoefficients.CompleteReplay
+public import HexRCF.RealCoefficients.NumberFieldCells
+public import HexRCF.RealCoefficients.RowEncode
+public import HexRCF.RealCoefficients.CellReuse
+public meta import HexRCF.RealCoefficients.CellQuote
+public import HexRCF.RealCoefficients.RootTable
+public import HexRCF.RealCoefficients.RootTransport
+public import HexRCF.RealCoefficients.Gather
+public import HexRCF.RealCoefficients.GatherCells
+public import HexRCF.RealCoefficients.AlgebraicCells
+public meta import HexRCF.RealCoefficients.AlgebraicPreparation
+public meta import HexRCF.RealCoefficients.RealModel
+public import HexRCF.RealCoefficients.RegisteredGather
+public import HexRCF.RealCoefficients.ReconciledGather
+public import HexRCF.RealCoefficients.InverseReplay
+public import HexRCF.RealCoefficients.SignInputs
+public import HexRCF.RealCoefficients.FieldCarrier
+public import HexRCF.RealCoefficients.Carrier
+public import HexRCF.RealCoefficients.IsolationBuild
+public import HexRCF.RealCoefficients.Isolations
+public import HexRCF.RealCoefficients.IsolationSemantics
+public import HexRCF.RealCoefficients.IsolationAssembly
+public import HexRCF.RealCoefficients.IsolationProgress
+public import HexRCF.RealCoefficients.RadicalCheck
+public import HexRCF.RealCoefficients.Radical
+public import HexRCF.RealCoefficients.RadicalBuild
+public import HexRCF.RealCoefficients.RadicalProgress
+public import HexRCF.RealCoefficients.FieldDecision
+public import HexRCF.RealCoefficients.FieldRootSigns
+public import HexRCF.RealCoefficients.FieldRootSignsProgress
+public import HexRCF.RealCoefficients.FieldReplay
+public import HexRCF.RealCoefficients.FieldBuild
+public import HexRCF.RealCoefficients.FieldSignProgress
+public import HexRCF.RealCoefficients.FieldRoots
+public import HexRCF.RealCoefficients.FieldBuildProgress
+public import HexRCF.RealCoefficients.FieldDecisionProgress
+public import HexRCF.RealCoefficients.FieldBuildBudget
+public import HexRCF.RealCoefficients.FiniteSigns
+public import HexRCF.RealCoefficients.FiniteReplay
+public import HexRCF.RealCoefficients.Replay
+public import HexRCF.RealCoefficients.FieldRefinement
+public meta import HexRCF.RealCoefficients.FieldLiteral
+public meta import HexRCF.RealCoefficients.FieldCompile
+public meta import HexRCF.RealCoefficients.FieldRuntime
+public import HexRCF.RealCoefficients.SquareTwo
+public import HexRCF.RealCoefficients.SquareRoot
+public import HexRCF.RealCoefficients.CubeTwo
+public import HexRCF.RealCoefficients.Selected
+public meta import HexRCF.RealCoefficients.Tactic
+public meta import HexRCF.RealCoefficients.Preparation
+public meta import HexRCF.RealCoefficients.AlgebraicRoot
+public meta import HexRCF.RealCoefficients.CommonTactic
+public meta import HexRCF.RealCoefficients.FiniteQuote
+public import HexRCF.RealCoefficients.CellFormula
+
+/-! Algebraic coefficient conversion, source preparation, fixed-field
+specialization, root-isolation search and checked cell decisions for the
+optional RCF adapter. -/
diff --git a/reports/data/hexrcf-enumerated-source/source-build-current-inputs/adapters/HexRCF/RealCoefficients/ScalarPacket.lean.txt b/reports/data/hexrcf-enumerated-source/source-build-current-inputs/adapters/HexRCF/RealCoefficients/ScalarPacket.lean.txt
new file mode 100644
index 0000000000..660c8431ab
--- /dev/null
+++ b/reports/data/hexrcf-enumerated-source/source-build-current-inputs/adapters/HexRCF/RealCoefficients/ScalarPacket.lean.txt
@@ -0,0 +1,138 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+module
+public import HexRCF.RealCoefficients.SectionReplay
+public import HexRealClosureTheory.SignFacts
+public import HexSignDet.DagEncode
+
+public section
+namespace Hex.RCF.RealCoefficients.ScalarPacket
+open Hex Hex.RealClosure Hex.RealClosure.Tower Hex.SignDet
+variable {registry : BaseContext.Registry} {parent : Tower.Context registry}
+
+/-- Untrusted literal fields proposed by scalar production. Keeping the sign
+separate lets source selection inspect it without decoding its own output. -/
+structure Proposal where
+ polynomial : Codec.Json
+ sign : Int
+ evidence : Codec.Json
+
+/-- The existing three-field scalar packet layout. -/
+@[expose] def Proposal.packet (proposal : Proposal) : Codec.Json :=
+ .arr #[proposal.polynomial, Codec.Json.of proposal.sign, proposal.evidence]
+
+/-- Produce literal fields for one demanded polynomial. Neither the proposed
+sign nor the producer's checked row replaces independent frozen replay. -/
+def buildParts (context : Algebraic.Context parent.Value Signature parent.sign parent.signature)
+ (value : ValueCodec parent.Value) (polynomial : DensePoly parent.Value) :
+ Option Proposal := do
+ let _ : Hashable parent.Value := ⟨fun a => hash (value.encode a)⟩
+ let _ : Hashable Signature := ⟨fun a => hash (Signature.codec.encode a)⟩
+ let .ok signs := context.buildSigns [context.queryPoly polynomial] | none
+ return ⟨Codec.poly value polynomial, signs.value,
+ Codec.graph value Signature.codec (Dag.encode signs.evidence)⟩
+
+/-- Produce a proposed scalar packet for one demanded polynomial. This is
+search code; the output must subsequently pass `read` in the ordinary kernel. -/
+def build (context : Algebraic.Context parent.Value Signature parent.sign parent.signature)
+ (value : ValueCodec parent.Value) (polynomial : DensePoly parent.Value) :
+ Option Codec.Json :=
+ (buildParts context value polynomial).map Proposal.packet
+
+/-- A literal production boundary keeps partially reduced interpreter terms
+out of the compiler. Parsing here proposes data; `read` independently checks it. -/
+def buildLiteral (context : Algebraic.Context parent.Value Signature parent.sign parent.signature)
+ (value : ValueCodec parent.Value) (polynomial : Codec.Json) : Option Codec.Json := do
+ let p ← (Codec.readPoly value polynomial).toOption
+ build context value p
+
+/-- Read exactly the supplied polynomial, sign and graph. No producer runs on
+a missing, invalid or context-swapped packet. Predecessor arithmetic retains
+its supplied implementation; avoiding native production at deeper parents
+requires their checked operations. The model is used only in proofs. -/
+@[expose, macro_inline] def read (original : Model parent ℝ)
+ (value : ValueCodec parent.Value)
+ (context : Algebraic.Context parent.Value Signature parent.sign parent.signature)
+ (polynomial : Codec.Json) (claimed : Int) (evidence : Codec.Json) :
+ Option (Algebraic.SignFact context) := do
+ let p ← (Codec.readPoly value polynomial).toOption
+ let graph ← (Codec.readGraph value Signature.codec parent.signature context.root.raw.head
+ context.root.raw.lower context.root.raw.upper evidence).toOption
+ let memo ← graph.validate? parent.sign parent.signature context.root.raw.head
+ context.root.raw.lower context.root.raw.upper
+ context.readSignFact? original.value original.zero_iff original.one original.add original.sub
+ original.mul original.nat original.sign original.neg original.inv p claimed memo graph.root
+
+/-- The fallback is unobservable after successful packet acceptance. -/
+@[expose] def key (value : ValueCodec parent.Value) (literal : Codec.Json) :=
+ (Codec.readPoly value literal).toOption.getD 0
+
+theorem fields (original : Model parent ℝ) (value : ValueCodec parent.Value)
+ (context : Algebraic.Context parent.Value Signature parent.sign parent.signature)
+ (polynomial : Codec.Json) (claimed : Int) (evidence : Codec.Json)
+ (fact : Algebraic.SignFact context)
+ (accepted : read original value context polynomial claimed evidence = some fact) :
+ fact.polynomial = key value polynomial ∧ fact.sign = claimed := by
+ unfold read at accepted
+ cases hp : Codec.readPoly value polynomial with
+ | error message => simp [hp, bind, Option.bind, Except.toOption] at accepted
+ | ok p =>
+ simp only [hp, Except.toOption, bind, Option.bind] at accepted
+ cases hg : Codec.readGraph value Signature.codec parent.signature context.root.raw.head
+ context.root.raw.lower context.root.raw.upper evidence with
+ | error message => simp [hg] at accepted
+ | ok graph =>
+ simp only [hg] at accepted
+ cases hm : graph.validate? parent.sign parent.signature context.root.raw.head
+ context.root.raw.lower context.root.raw.upper with
+ | none => simp [hm] at accepted
+ | some memo =>
+ simp only [hm] at accepted
+ have binding := context.readSignFact_fields original.value original.zero_iff original.one
+ original.add original.sub original.mul original.nat original.sign original.neg original.inv
+ p claimed memo graph.root fact accepted
+ simpa only [key, hp, Except.toOption, Option.getD_some] using binding
+
+/-- Restore literal fields using the already checked acceptance theorem. This
+avoids reducing the graph again when looking up a fact's polynomial or sign. -/
+@[expose, macro_inline] def restore (original : Model parent ℝ) (value : ValueCodec parent.Value)
+ (context : Algebraic.Context parent.Value Signature parent.sign parent.signature)
+ (polynomial : Codec.Json) (claimed : Int) (evidence : Codec.Json)
+ (accepted : (read original value context polynomial claimed evidence).isSome = true) :
+ Algebraic.SignFact context :=
+ let parsed := read original value context polynomial claimed evidence
+ let fact := parsed.get accepted
+ let binding := fields original value context polynomial claimed evidence fact
+ (Option.some_get accepted).symm
+ {polynomial := key value polynomial, sign := claimed, checked := by
+ rw [← binding.1, ← binding.2]
+ exact fact.checked}
+
+private theorem fact_eq {context : Algebraic.Context parent.Value Signature parent.sign parent.signature}
+ (left right : Algebraic.SignFact context)
+ (polynomial : left.polynomial = right.polynomial) (sign : left.sign = right.sign) :
+ left = right := by
+ cases left
+ cases right
+ cases polynomial
+ cases sign
+ rfl
+
+/-- Restoration retains the exact accepted optional-reader result. -/
+theorem read_restore (original : Model parent ℝ) (value : ValueCodec parent.Value)
+ (context : Algebraic.Context parent.Value Signature parent.sign parent.signature)
+ (polynomial : Codec.Json) (claimed : Int) (evidence : Codec.Json)
+ (accepted : (read original value context polynomial claimed evidence).isSome = true) :
+ read original value context polynomial claimed evidence =
+ some (restore original value context polynomial claimed evidence accepted) := by
+ have parsed := (Option.some_get accepted).symm
+ apply parsed.trans
+ apply congrArg some
+ apply fact_eq
+ · exact (fields original value context polynomial claimed evidence _ parsed).1
+ · exact (fields original value context polynomial claimed evidence _ parsed).2
+
+end Hex.RCF.RealCoefficients.ScalarPacket
diff --git a/reports/data/hexrcf-enumerated-source/source-build-current-inputs/adapters/HexRCF/RealCoefficients/SourceBuild.lean.txt b/reports/data/hexrcf-enumerated-source/source-build-current-inputs/adapters/HexRCF/RealCoefficients/SourceBuild.lean.txt
new file mode 100644
index 0000000000..a62e498709
--- /dev/null
+++ b/reports/data/hexrcf-enumerated-source/source-build-current-inputs/adapters/HexRCF/RealCoefficients/SourceBuild.lean.txt
@@ -0,0 +1,65 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+module
+public import HexRCF.RealCoefficients.RootBuild
+public import HexRCF.RealCoefficients.ScalarPacket
+public section
+
+namespace Hex.RCF.RealCoefficients.SourceBuild
+open Hex Hex.RealClosure Hex.RealClosure.Tower Hex.SignDet
+variable {registry : BaseContext.Registry} {parent : Tower.Context registry}
+
+inductive Error where
+ | roots (error : RootBuild.Error)
+ | equation
+ | enclosure
+ | ambiguous
+ | unselected
+ deriving Repr
+
+/-- Native proposals for one source root and the two independent scalar
+packets demanded by source authentication. The sign equalities only describe
+the proposed literal fields; they are not proof evidence about real values. -/
+structure Result (parent : Tower.Context registry) where
+ root : Descriptor parent.Value Signature parent.sign parent.signature
+ equation : ScalarPacket.Proposal
+ enclosure : ScalarPacket.Proposal
+ zero : equation.sign = 0
+ positive : enclosure.sign = 1
+
+/-- Visit every enumerated root. Failure to produce a row is terminal, and a
+second positive window match rejects an ambiguous source rather than choosing
+an arbitrary conjugate. No equation or enclosure is silently substituted. -/
+def select (polynomial window : DensePoly parent.Value)
+ (roots : List (Descriptor parent.Value Signature parent.sign parent.signature)) :
+ Except Error (Result parent) := do
+ let mut selected : Option (Result parent) := none
+ for root in roots do
+ let context := Algebraic.Context.adjoin root parent.isClean
+ let some equation := ScalarPacket.buildParts context parent.codec polynomial
+ | throw .equation
+ if zero : equation.sign = 0 then
+ let some enclosure := ScalarPacket.buildParts context parent.codec window
+ | throw .enclosure
+ if positive : enclosure.sign = 1 then
+ if selected.isSome then throw .ambiguous
+ selected := some ⟨root,equation,enclosure,zero,positive⟩
+ else unless enclosure.sign = 0 || enclosure.sign = -1 do throw .enclosure
+ else throw .equation
+ match selected with
+ | none => throw .unselected
+ | some result => return result
+
+/-- Enumerate with the existing owner root producer and select exactly one
+root using the supplied enclosure polynomial. The usual window is the source
+isolating-square margin. Its original-source interpretation and selected-root
+identity are subsequently checked by `SourceIdentity.quoteWith`; this producer
+does not prove them, reconstruct a frozen parent, or establish completeness. -/
+def build (polynomial window : DensePoly parent.Value) : Except Error (Result parent) := do
+ let roots ← RootBuild.build polynomial |>.mapError Error.roots
+ select polynomial window roots.roots
+
+end Hex.RCF.RealCoefficients.SourceBuild
diff --git a/reports/data/hexrcf-enumerated-source/source-build-current-inputs/conformance-fixtures/HexRCF/enumerated-source.json.txt.gz b/reports/data/hexrcf-enumerated-source/source-build-current-inputs/conformance-fixtures/HexRCF/enumerated-source.json.txt.gz
new file mode 100644
index 0000000000..f17865f389
Binary files /dev/null and b/reports/data/hexrcf-enumerated-source/source-build-current-inputs/conformance-fixtures/HexRCF/enumerated-source.json.txt.gz differ
diff --git a/reports/data/hexrcf-enumerated-source/source-build-current-inputs/conformance/HexRCF/EnumeratedSource/Cubic.lean.txt b/reports/data/hexrcf-enumerated-source/source-build-current-inputs/conformance/HexRCF/EnumeratedSource/Cubic.lean.txt
new file mode 100644
index 0000000000..f7dc69e415
--- /dev/null
+++ b/reports/data/hexrcf-enumerated-source/source-build-current-inputs/conformance/HexRCF/EnumeratedSource/Cubic.lean.txt
@@ -0,0 +1,74 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+module
+public import HexSignDet.Codec.Json
+public import HexRCF.EnumeratedSource.CubicData0
+/-! Shared constructor data from `conformance-fixtures/HexRCF/enumerated-source.json`.
+The descriptor reader checks this supplied replay independently of its producer. -/
+public section
+
+namespace Hex.RCF.RealCoefficients.EnumeratedSource.Cubic
+open Hex.SignDet
+@[expose] def j235 : Codec.Json := .array (.cons (j5) (.cons (j232) (.cons (j234) (.cons (j202) .nil))))
+@[expose] def j236 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-19317815121)) (.cons (.number (10224230144)) .nil)))
+@[expose] def j237 : Codec.Json := .array (.cons (j236) (.cons (j11) .nil))
+@[expose] def j238 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (1595863148103357)) (.cons (.number (670055146717184)) .nil)))
+@[expose] def j239 : Codec.Json := .array (.cons (j4) (.cons (j237) (.cons (j238) .nil)))
+@[expose] def j240 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-1340110293434368)) (.cons (.number (531954382701119)) .nil)))
+@[expose] def j241 : Codec.Json := .array (.cons (j240) (.cons (j18) .nil))
+@[expose] def j242 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (1346921726276322561523562446848)) (.cons (.number (282975465274928573198483852161)) .nil)))
+@[expose] def j243 : Codec.Json := .array (.cons (j4) (.cons (j241) (.cons (j242) .nil)))
+@[expose] def j244 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-451144542095674201519953963846426420385261889)) (.cons (.number (358250457724023371626526318932137133553811456)) .nil)))
+@[expose] def j245 : Codec.Json := .array (.cons (j244) (.cons (j4) .nil))
+@[expose] def j246 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (860908980737602065149122892520026022839822591)) (.cons (.number (453549534178797199769117499790381448220762277801366206283776)) .nil)))
+@[expose] def j247 : Codec.Json := .array (.cons (j4) (.cons (j245) (.cons (j246) .nil)))
+@[expose] def j248 : Codec.Json := .array (.cons (j243) (.cons (j247) .nil))
+@[expose] def j249 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-848507517748138632283156122497)) (.cons (.number (673460863138161280761781223424)) .nil)))
+@[expose] def j250 : Codec.Json := .array (.cons (j249) (.cons (j4) .nil))
+@[expose] def j251 : Codec.Json := .array (.cons (j4) (.cons (j250) .nil))
+@[expose] def j252 : Codec.Json := .array (.cons (j251) .nil)
+@[expose] def j253 : Codec.Json := .array (.cons (j235) (.cons (j204) (.cons (j239) (.cons (j248) (.cons (j252) .nil)))))
+@[expose] def j254 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j229) (.cons (j6) (.cons (j7) (.cons (j33) (.cons (j253) (.cons (j224) (.cons (j225) (.cons (.number (2)) (.cons (.number (1)) (.cons (.number (1)) .nil))))))))))))
+@[expose] def j255 : Codec.Json := .array (.cons (j35) (.cons (j226) (.cons (j254) .nil)))
+@[expose] def j256 : Codec.Json := .array (.cons (.number (0)) (.cons (j195) (.cons (j61) .nil)))
+@[expose] def j257 : Codec.Json := .array (.cons (j256) .nil)
+@[expose] def j258 : Codec.Json := .array (.cons (j257) (.cons (j195) .nil))
+@[expose] def j259 : Codec.Json := .array (.cons (j258) .nil)
+@[expose] def j260 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-645)) (.cons (.number (128)) .nil)))
+@[expose] def j261 : Codec.Json := .array (.cons (j260) (.cons (j4) .nil))
+@[expose] def j262 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (39938399)) (.cons (.number (4194304)) .nil)))
+@[expose] def j263 : Codec.Json := .array (.cons (j4) (.cons (j261) (.cons (j262) .nil)))
+@[expose] def j264 : Codec.Json := .array (.cons (.number (0)) (.cons (j229) (.cons (j263) .nil)))
+@[expose] def j265 : Codec.Json := .array (.cons (j256) (.cons (j264) .nil))
+@[expose] def j266 : Codec.Json := .array (.cons (j265) (.cons (j229) .nil))
+@[expose] def j267 : Codec.Json := .array (.cons (j266) .nil)
+@[expose] def j268 : Codec.Json := .array (.cons (j60) (.cons (j259) (.cons (j267) .nil)))
+@[expose] def j269 : Codec.Json := .array (.cons (j257) .nil)
+@[expose] def j270 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j6) (.cons (j7) (.cons (j196) (.cons (.number (3)) (.cons (j21) (.cons (j255) (.cons (j268) (.cons (j269) (.cons (j75) .nil)))))))))))
+@[expose] def j271 : Codec.Json := .array (.cons (j270) (.cons (j0) .nil))
+@[expose] def j272 : Codec.Json := .array (.cons (j95) (.cons (j195) .nil))
+@[expose] def j273 : Codec.Json := .array (.cons (.number (1)) (.cons (j195) (.cons (j61) .nil)))
+@[expose] def j274 : Codec.Json := .array (.cons (j106) (.cons (j273) .nil))
+@[expose] def j275 : Codec.Json := .array (.cons (j274) .nil)
+@[expose] def j276 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j6) (.cons (j7) (.cons (j272) (.cons (.number (1)) (.cons (j115) (.cons (j116) (.cons (j117) (.cons (j275) (.cons (j75) .nil)))))))))))
+@[expose] def j277 : Codec.Json := .array (.cons (j276) (.cons (j176) .nil))
+@[expose] def j278 : Codec.Json := .array (.cons (j12) (.cons (j78) (.cons (j95) (.cons (j195) .nil))))
+@[expose] def j279 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (1)) (.cons (.number (1)) (.cons (.number (1)) .nil))))
+@[expose] def j280 : Codec.Json := .array (.cons (j279) .nil)
+@[expose] def j281 : Codec.Json := .array (.cons (j180) (.cons (j280) (.cons (j14) (.cons (j14) (.cons (j74) (.cons (.number (1)) .nil))))))
+@[expose] def j282 : Codec.Json := .array (.cons (.number (3)) (.cons (j195) (.cons (j61) .nil)))
+@[expose] def j283 : Codec.Json := .array (.cons (j71) (.cons (j130) (.cons (j131) (.cons (j282) .nil))))
+@[expose] def j284 : Codec.Json := .array (.cons (j283) .nil)
+@[expose] def j285 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j6) (.cons (j7) (.cons (j278) (.cons (.number (1)) (.cons (j281) (.cons (j116) (.cons (j117) (.cons (j284) (.cons (j75) .nil)))))))))))
+@[expose] def j286 : Codec.Json := .array (.cons (j285) (.cons (j189) .nil))
+@[expose] def j287 : Codec.Json := .array (.cons (j77) (.cons (j94) (.cons (j146) (.cons (j110) (.cons (j271) (.cons (j277) (.cons (j286) .nil)))))))
+@[expose] def j288 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (6)) (.cons (j287) .nil)))
+@[expose] def marginGraph : Codec.Json := j288
+@[expose] def j289 : Codec.Json := .array (.cons (j5) (.cons (.number (0)) (.cons (j192) .nil)))
+@[expose] def j290 : Codec.Json := .array (.cons (j195) (.cons (.number (1)) (.cons (j288) .nil)))
+@[expose] def j291 : Codec.Json := .array (.cons (j10) (.cons (j139) (.cons (j289) (.cons (j290) .nil))))
+@[expose] def packet : Codec.Json := j291
+end Hex.RCF.RealCoefficients.EnumeratedSource.Cubic
diff --git a/reports/data/hexrcf-enumerated-source/source-build-current-inputs/conformance/HexRCF/EnumeratedSource/CubicData0.lean.txt b/reports/data/hexrcf-enumerated-source/source-build-current-inputs/conformance/HexRCF/EnumeratedSource/CubicData0.lean.txt
new file mode 100644
index 0000000000..459295e445
--- /dev/null
+++ b/reports/data/hexrcf-enumerated-source/source-build-current-inputs/conformance/HexRCF/EnumeratedSource/CubicData0.lean.txt
@@ -0,0 +1,254 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+module
+public import HexSignDet.Codec.Json
+/-! Shared constructor data from `conformance-fixtures/HexRCF/enumerated-source.json`.
+The descriptor reader checks this supplied replay independently of its producer. -/
+public section
+
+namespace Hex.RCF.RealCoefficients.EnumeratedSource.Cubic
+open Hex.SignDet
+@[expose] def j0 : Codec.Json := .array .nil
+@[expose] def j1 : Codec.Json := .array (.cons (j0) (.cons (.number (0)) (.cons (j0) .nil)))
+@[expose] def j2 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-2)) (.cons (.number (1)) .nil)))
+@[expose] def j3 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (0)) (.cons (.number (1)) .nil)))
+@[expose] def j4 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (1)) (.cons (.number (1)) .nil)))
+@[expose] def j5 : Codec.Json := .array (.cons (j2) (.cons (j3) (.cons (j3) (.cons (j4) .nil))))
+@[expose] def j6 : Codec.Json := .array (.cons (.number (0)) .nil)
+@[expose] def j7 : Codec.Json := .array (.cons (.number (2)) .nil)
+@[expose] def j8 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (2)) (.cons (.number (3)) .nil)))
+@[expose] def j9 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (1)) (.cons (.number (1)) .nil)))
+@[expose] def j10 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j6) (.cons (j7) (.cons (j8) (.cons (j9) .nil))))))
+@[expose] def subject : Codec.Json := j10
+@[expose] def j11 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (3)) (.cons (.number (1)) .nil)))
+@[expose] def j12 : Codec.Json := .array (.cons (j3) (.cons (j3) (.cons (j11) .nil)))
+@[expose] def j13 : Codec.Json := .array (.cons (j12) .nil)
+@[expose] def j14 : Codec.Json := .array (.cons (.number (1)) .nil)
+@[expose] def j15 : Codec.Json := .array (.cons (j6) (.cons (j14) (.cons (j7) .nil)))
+@[expose] def j16 : Codec.Json := .array (.cons (.number (-1)) .nil)
+@[expose] def j17 : Codec.Json := .array (.cons (j16) (.cons (j6) (.cons (j14) .nil)))
+@[expose] def j18 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-1)) (.cons (.number (1)) .nil)))
+@[expose] def j19 : Codec.Json := .array (.cons (.number (2)) (.cons (.number (0)) (.cons (.number (-2)) .nil)))
+@[expose] def j20 : Codec.Json := .array (.cons (j18) (.cons (j19) (.cons (j4) .nil)))
+@[expose] def j21 : Codec.Json := .array (.cons (j15) (.cons (j17) (.cons (j3) (.cons (j9) (.cons (j20) (.cons (.number (2)) .nil))))))
+@[expose] def j22 : Codec.Json := .array (.cons (j4) .nil)
+@[expose] def j23 : Codec.Json := .array (.cons (j3) (.cons (j3) (.cons (j4) .nil)))
+@[expose] def j24 : Codec.Json := .array (.cons (j5) (.cons (j23) (.cons (j22) .nil)))
+@[expose] def j25 : Codec.Json := .array (.cons (.number (3)) (.cons (.number (2)) (.cons (.number (0)) .nil)))
+@[expose] def j26 : Codec.Json := .array (.cons (j4) (.cons (j0) (.cons (j11) .nil)))
+@[expose] def j27 : Codec.Json := .array (.cons (j3) (.cons (j4) .nil))
+@[expose] def j28 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (2)) (.cons (.number (1)) .nil)))
+@[expose] def j29 : Codec.Json := .array (.cons (j4) (.cons (j27) (.cons (j28) .nil)))
+@[expose] def j30 : Codec.Json := .array (.cons (j29) .nil)
+@[expose] def j31 : Codec.Json := .array (.cons (j4) (.cons (j23) .nil))
+@[expose] def j32 : Codec.Json := .array (.cons (j31) .nil)
+@[expose] def j33 : Codec.Json := .array (.cons (j24) (.cons (j25) (.cons (j26) (.cons (j30) (.cons (j32) .nil)))))
+@[expose] def j34 : Codec.Json := .array (.cons (.number (-1)) (.cons (.number (1)) (.cons (.number (1)) .nil)))
+@[expose] def j35 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j22) (.cons (j6) (.cons (j7) (.cons (j33) (.cons (j33) (.cons (j34) (.cons (j9) (.cons (.number (1)) (.cons (.number (0)) (.cons (.number (1)) .nil))))))))))))
+@[expose] def j36 : Codec.Json := .array (.cons (j5) (.cons (j27) (.cons (j22) .nil)))
+@[expose] def j37 : Codec.Json := .array (.cons (.number (3)) (.cons (.number (1)) (.cons (.number (0)) .nil)))
+@[expose] def j38 : Codec.Json := .array (.cons (j3) (.cons (j11) .nil))
+@[expose] def j39 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (6)) (.cons (.number (1)) .nil)))
+@[expose] def j40 : Codec.Json := .array (.cons (j4) (.cons (j38) (.cons (j39) .nil)))
+@[expose] def j41 : Codec.Json := .array (.cons (j4) (.cons (j23) (.cons (j28) .nil)))
+@[expose] def j42 : Codec.Json := .array (.cons (j41) .nil)
+@[expose] def j43 : Codec.Json := .array (.cons (j4) (.cons (j27) .nil))
+@[expose] def j44 : Codec.Json := .array (.cons (j43) .nil)
+@[expose] def j45 : Codec.Json := .array (.cons (j36) (.cons (j37) (.cons (j40) (.cons (j42) (.cons (j44) .nil)))))
+@[expose] def j46 : Codec.Json := .array (.cons (.number (-1)) (.cons (.number (-1)) (.cons (.number (1)) .nil)))
+@[expose] def j47 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j23) (.cons (j6) (.cons (j7) (.cons (j33) (.cons (j45) (.cons (j46) (.cons (j9) (.cons (.number (1)) (.cons (.number (0)) (.cons (.number (1)) .nil))))))))))))
+@[expose] def j48 : Codec.Json := .array (.cons (j5) (.cons (j22) .nil))
+@[expose] def j49 : Codec.Json := .array (.cons (.number (3)) (.cons (.number (0)) .nil))
+@[expose] def j50 : Codec.Json := .array (.cons (j11) .nil)
+@[expose] def j51 : Codec.Json := .array (.cons (j4) (.cons (j50) (.cons (j39) .nil)))
+@[expose] def j52 : Codec.Json := .array (.cons (j4) (.cons (j5) .nil))
+@[expose] def j53 : Codec.Json := .array (.cons (j52) .nil)
+@[expose] def j54 : Codec.Json := .array (.cons (j48) (.cons (j49) (.cons (j51) (.cons (j0) (.cons (j53) .nil)))))
+@[expose] def j55 : Codec.Json := .array (.cons (.number (-1)) (.cons (.number (1)) .nil))
+@[expose] def j56 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (1)) .nil))
+@[expose] def j57 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j27) (.cons (j6) (.cons (j7) (.cons (j33) (.cons (j54) (.cons (j55) (.cons (j56) (.cons (.number (1)) (.cons (.number (0)) (.cons (.number (1)) .nil))))))))))))
+@[expose] def j58 : Codec.Json := .array (.cons (j35) (.cons (j47) (.cons (j57) .nil)))
+@[expose] def j59 : Codec.Json := .array (.cons (j0) (.cons (j22) .nil))
+@[expose] def j60 : Codec.Json := .array (.cons (j59) .nil)
+@[expose] def j61 : Codec.Json := .array (.cons (j4) (.cons (j0) (.cons (j4) .nil)))
+@[expose] def j62 : Codec.Json := .array (.cons (.number (0)) (.cons (j23) (.cons (j61) .nil)))
+@[expose] def j63 : Codec.Json := .array (.cons (j62) .nil)
+@[expose] def j64 : Codec.Json := .array (.cons (j63) (.cons (j23) .nil))
+@[expose] def j65 : Codec.Json := .array (.cons (j64) .nil)
+@[expose] def j66 : Codec.Json := .array (.cons (.number (0)) (.cons (j27) (.cons (j29) .nil)))
+@[expose] def j67 : Codec.Json := .array (.cons (j62) (.cons (j66) .nil))
+@[expose] def j68 : Codec.Json := .array (.cons (j67) (.cons (j27) .nil))
+@[expose] def j69 : Codec.Json := .array (.cons (j68) .nil)
+@[expose] def j70 : Codec.Json := .array (.cons (j60) (.cons (j65) (.cons (j69) .nil)))
+@[expose] def j71 : Codec.Json := .array (.cons (.number (0)) (.cons (j23) (.cons (j26) .nil)))
+@[expose] def j72 : Codec.Json := .array (.cons (j71) .nil)
+@[expose] def j73 : Codec.Json := .array (.cons (j72) .nil)
+@[expose] def j74 : Codec.Json := .array (.cons (j14) .nil)
+@[expose] def j75 : Codec.Json := .array (.cons (.number (1)) (.cons (j6) (.cons (j6) (.cons (.number (1)) (.cons (j74) .nil)))))
+@[expose] def j76 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j6) (.cons (j7) (.cons (j13) (.cons (.number (3)) (.cons (j21) (.cons (j58) (.cons (j70) (.cons (j73) (.cons (j75) .nil)))))))))))
+@[expose] def j77 : Codec.Json := .array (.cons (j76) (.cons (j0) .nil))
+@[expose] def j78 : Codec.Json := .array (.cons (j3) (.cons (j39) .nil))
+@[expose] def j79 : Codec.Json := .array (.cons (j78) .nil)
+@[expose] def j80 : Codec.Json := .array (.cons (j35) (.cons (j57) (.cons (j47) .nil)))
+@[expose] def j81 : Codec.Json := .array (.cons (.number (0)) (.cons (j27) (.cons (j61) .nil)))
+@[expose] def j82 : Codec.Json := .array (.cons (j81) .nil)
+@[expose] def j83 : Codec.Json := .array (.cons (j82) (.cons (j27) .nil))
+@[expose] def j84 : Codec.Json := .array (.cons (j83) .nil)
+@[expose] def j85 : Codec.Json := .array (.cons (j81) (.cons (j62) .nil))
+@[expose] def j86 : Codec.Json := .array (.cons (j85) (.cons (j23) .nil))
+@[expose] def j87 : Codec.Json := .array (.cons (j86) .nil)
+@[expose] def j88 : Codec.Json := .array (.cons (j60) (.cons (j84) (.cons (j87) .nil)))
+@[expose] def j89 : Codec.Json := .array (.cons (j4) (.cons (j0) (.cons (j39) .nil)))
+@[expose] def j90 : Codec.Json := .array (.cons (.number (0)) (.cons (j27) (.cons (j89) .nil)))
+@[expose] def j91 : Codec.Json := .array (.cons (j90) .nil)
+@[expose] def j92 : Codec.Json := .array (.cons (j91) .nil)
+@[expose] def j93 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j6) (.cons (j7) (.cons (j79) (.cons (.number (3)) (.cons (j21) (.cons (j80) (.cons (j88) (.cons (j92) (.cons (j75) .nil)))))))))))
+@[expose] def j94 : Codec.Json := .array (.cons (j93) (.cons (j0) .nil))
+@[expose] def j95 : Codec.Json := .array (.cons (j39) .nil)
+@[expose] def j96 : Codec.Json := .array (.cons (j95) .nil)
+@[expose] def j97 : Codec.Json := .array (.cons (j35) (.cons (j35) (.cons (j35) .nil)))
+@[expose] def j98 : Codec.Json := .array (.cons (.number (0)) (.cons (j22) (.cons (j61) .nil)))
+@[expose] def j99 : Codec.Json := .array (.cons (j98) .nil)
+@[expose] def j100 : Codec.Json := .array (.cons (j99) (.cons (j22) .nil))
+@[expose] def j101 : Codec.Json := .array (.cons (j100) .nil)
+@[expose] def j102 : Codec.Json := .array (.cons (j98) (.cons (j98) .nil))
+@[expose] def j103 : Codec.Json := .array (.cons (j102) (.cons (j22) .nil))
+@[expose] def j104 : Codec.Json := .array (.cons (j103) .nil)
+@[expose] def j105 : Codec.Json := .array (.cons (j60) (.cons (j101) (.cons (j104) .nil)))
+@[expose] def j106 : Codec.Json := .array (.cons (.number (0)) (.cons (j22) (.cons (j89) .nil)))
+@[expose] def j107 : Codec.Json := .array (.cons (j106) .nil)
+@[expose] def j108 : Codec.Json := .array (.cons (j107) .nil)
+@[expose] def j109 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j6) (.cons (j7) (.cons (j96) (.cons (.number (3)) (.cons (j21) (.cons (j97) (.cons (j105) (.cons (j108) (.cons (j75) .nil)))))))))))
+@[expose] def j110 : Codec.Json := .array (.cons (j109) (.cons (j0) .nil))
+@[expose] def j111 : Codec.Json := .array (.cons (j78) (.cons (j95) .nil))
+@[expose] def j112 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (0)) .nil))
+@[expose] def j113 : Codec.Json := .array (.cons (j112) .nil)
+@[expose] def j114 : Codec.Json := .array (.cons (j56) .nil)
+@[expose] def j115 : Codec.Json := .array (.cons (j113) (.cons (j114) (.cons (j14) (.cons (j14) (.cons (j74) (.cons (.number (1)) .nil))))))
+@[expose] def j116 : Codec.Json := .array (.cons (j35) .nil)
+@[expose] def j117 : Codec.Json := .array (.cons (j60) .nil)
+@[expose] def j118 : Codec.Json := .array (.cons (.number (1)) (.cons (j22) (.cons (j89) .nil)))
+@[expose] def j119 : Codec.Json := .array (.cons (j90) (.cons (j118) .nil))
+@[expose] def j120 : Codec.Json := .array (.cons (j119) .nil)
+@[expose] def j121 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j6) (.cons (j7) (.cons (j111) (.cons (.number (1)) (.cons (j115) (.cons (j116) (.cons (j117) (.cons (j120) (.cons (j75) .nil)))))))))))
+@[expose] def j122 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (2)) .nil))
+@[expose] def j123 : Codec.Json := .array (.cons (j122) .nil)
+@[expose] def j124 : Codec.Json := .array (.cons (j121) (.cons (j123) .nil))
+@[expose] def j125 : Codec.Json := .array (.cons (j12) (.cons (j78) (.cons (j95) .nil)))
+@[expose] def j126 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (0)) (.cons (.number (0)) .nil)))
+@[expose] def j127 : Codec.Json := .array (.cons (j126) .nil)
+@[expose] def j128 : Codec.Json := .array (.cons (j9) .nil)
+@[expose] def j129 : Codec.Json := .array (.cons (j127) (.cons (j128) (.cons (j14) (.cons (j14) (.cons (j74) (.cons (.number (1)) .nil))))))
+@[expose] def j130 : Codec.Json := .array (.cons (.number (1)) (.cons (j27) (.cons (j89) .nil)))
+@[expose] def j131 : Codec.Json := .array (.cons (.number (2)) (.cons (j22) (.cons (j89) .nil)))
+@[expose] def j132 : Codec.Json := .array (.cons (j71) (.cons (j130) (.cons (j131) .nil)))
+@[expose] def j133 : Codec.Json := .array (.cons (j132) .nil)
+@[expose] def j134 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j6) (.cons (j7) (.cons (j125) (.cons (.number (1)) (.cons (j129) (.cons (j116) (.cons (j117) (.cons (j133) (.cons (j75) .nil)))))))))))
+@[expose] def j135 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (3)) .nil))
+@[expose] def j136 : Codec.Json := .array (.cons (j135) .nil)
+@[expose] def j137 : Codec.Json := .array (.cons (j134) (.cons (j136) .nil))
+@[expose] def j138 : Codec.Json := .array (.cons (j77) (.cons (j94) (.cons (j110) (.cons (j124) (.cons (j137) .nil)))))
+@[expose] def j139 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (4)) (.cons (j138) .nil)))
+@[expose] def graph : Codec.Json := j139
+@[expose] def equation : Codec.Json := j5
+@[expose] def j140 : Codec.Json := .array (.cons (j12) (.cons (j78) .nil))
+@[expose] def j141 : Codec.Json := .array (.cons (j71) (.cons (j130) .nil))
+@[expose] def j142 : Codec.Json := .array (.cons (j141) .nil)
+@[expose] def j143 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j6) (.cons (j7) (.cons (j140) (.cons (.number (1)) (.cons (j115) (.cons (j116) (.cons (j117) (.cons (j142) (.cons (j75) .nil)))))))))))
+@[expose] def j144 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (1)) .nil))
+@[expose] def j145 : Codec.Json := .array (.cons (j144) .nil)
+@[expose] def j146 : Codec.Json := .array (.cons (j143) (.cons (j145) .nil))
+@[expose] def j147 : Codec.Json := .array (.cons (j0) .nil)
+@[expose] def j148 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (1)) (.cons (.number (0)) .nil)))
+@[expose] def j149 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (0)) (.cons (.number (0)) .nil)))
+@[expose] def j150 : Codec.Json := .array (.cons (j15) (.cons (j17) (.cons (j148) (.cons (j149) (.cons (j20) (.cons (.number (2)) .nil))))))
+@[expose] def j151 : Codec.Json := .array (.cons (j5) .nil)
+@[expose] def j152 : Codec.Json := .array (.cons (.number (3)) .nil)
+@[expose] def j153 : Codec.Json := .array (.cons (j151) (.cons (j152) (.cons (j61) (.cons (j0) (.cons (j0) .nil)))))
+@[expose] def j154 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j0) (.cons (j6) (.cons (j7) (.cons (j33) (.cons (j153) (.cons (j16) (.cons (j14) (.cons (.number (0)) (.cons (.number (0)) (.cons (.number (0)) .nil))))))))))))
+@[expose] def j155 : Codec.Json := .array (.cons (j35) (.cons (j154) (.cons (j154) .nil)))
+@[expose] def j156 : Codec.Json := .array (.cons (.number (0)) (.cons (j0) (.cons (j61) .nil)))
+@[expose] def j157 : Codec.Json := .array (.cons (j156) .nil)
+@[expose] def j158 : Codec.Json := .array (.cons (j157) (.cons (j0) .nil))
+@[expose] def j159 : Codec.Json := .array (.cons (j158) .nil)
+@[expose] def j160 : Codec.Json := .array (.cons (j156) (.cons (j156) .nil))
+@[expose] def j161 : Codec.Json := .array (.cons (j160) (.cons (j0) .nil))
+@[expose] def j162 : Codec.Json := .array (.cons (j161) .nil)
+@[expose] def j163 : Codec.Json := .array (.cons (j60) (.cons (j159) (.cons (j162) .nil)))
+@[expose] def j164 : Codec.Json := .array (.cons (j157) .nil)
+@[expose] def j165 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j6) (.cons (j7) (.cons (j147) (.cons (.number (3)) (.cons (j150) (.cons (j155) (.cons (j163) (.cons (j164) (.cons (j75) .nil)))))))))))
+@[expose] def j166 : Codec.Json := .array (.cons (j165) (.cons (j0) .nil))
+@[expose] def j167 : Codec.Json := .array (.cons (j95) (.cons (j0) .nil))
+@[expose] def j168 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (0)) .nil))
+@[expose] def j169 : Codec.Json := .array (.cons (j168) .nil)
+@[expose] def j170 : Codec.Json := .array (.cons (j113) (.cons (j169) (.cons (j14) (.cons (j14) (.cons (j74) (.cons (.number (1)) .nil))))))
+@[expose] def j171 : Codec.Json := .array (.cons (.number (1)) (.cons (j0) (.cons (j61) .nil)))
+@[expose] def j172 : Codec.Json := .array (.cons (j106) (.cons (j171) .nil))
+@[expose] def j173 : Codec.Json := .array (.cons (j172) .nil)
+@[expose] def j174 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j6) (.cons (j7) (.cons (j167) (.cons (.number (1)) (.cons (j170) (.cons (j116) (.cons (j117) (.cons (j173) (.cons (j75) .nil)))))))))))
+@[expose] def j175 : Codec.Json := .array (.cons (.number (3)) (.cons (.number (4)) .nil))
+@[expose] def j176 : Codec.Json := .array (.cons (j175) .nil)
+@[expose] def j177 : Codec.Json := .array (.cons (j174) (.cons (j176) .nil))
+@[expose] def j178 : Codec.Json := .array (.cons (j12) (.cons (j78) (.cons (j95) (.cons (j0) .nil))))
+@[expose] def j179 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (0)) (.cons (.number (0)) (.cons (.number (0)) .nil))))
+@[expose] def j180 : Codec.Json := .array (.cons (j179) .nil)
+@[expose] def j181 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (1)) (.cons (.number (1)) (.cons (.number (0)) .nil))))
+@[expose] def j182 : Codec.Json := .array (.cons (j181) .nil)
+@[expose] def j183 : Codec.Json := .array (.cons (j180) (.cons (j182) (.cons (j14) (.cons (j14) (.cons (j74) (.cons (.number (1)) .nil))))))
+@[expose] def j184 : Codec.Json := .array (.cons (.number (3)) (.cons (j0) (.cons (j61) .nil)))
+@[expose] def j185 : Codec.Json := .array (.cons (j71) (.cons (j130) (.cons (j131) (.cons (j184) .nil))))
+@[expose] def j186 : Codec.Json := .array (.cons (j185) .nil)
+@[expose] def j187 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j6) (.cons (j7) (.cons (j178) (.cons (.number (1)) (.cons (j183) (.cons (j116) (.cons (j117) (.cons (j186) (.cons (j75) .nil)))))))))))
+@[expose] def j188 : Codec.Json := .array (.cons (.number (2)) (.cons (.number (5)) .nil))
+@[expose] def j189 : Codec.Json := .array (.cons (j188) .nil)
+@[expose] def j190 : Codec.Json := .array (.cons (j187) (.cons (j189) .nil))
+@[expose] def j191 : Codec.Json := .array (.cons (j77) (.cons (j94) (.cons (j146) (.cons (j110) (.cons (j166) (.cons (j177) (.cons (j190) .nil)))))))
+@[expose] def j192 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (6)) (.cons (j191) .nil)))
+@[expose] def equationGraph : Codec.Json := j192
+@[expose] def j193 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-13312799)) (.cons (.number (8388608)) .nil)))
+@[expose] def j194 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (645)) (.cons (.number (256)) .nil)))
+@[expose] def j195 : Codec.Json := .array (.cons (j193) (.cons (j194) (.cons (j18) .nil)))
+@[expose] def margin : Codec.Json := j195
+@[expose] def j196 : Codec.Json := .array (.cons (j195) .nil)
+@[expose] def j197 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (42270720)) (.cons (.number (13312799)) .nil)))
+@[expose] def j198 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-16777216)) (.cons (.number (13312799)) .nil)))
+@[expose] def j199 : Codec.Json := .array (.cons (j197) (.cons (j198) (.cons (j18) .nil)))
+@[expose] def j200 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (531823117172161)) (.cons (.number (422108287827968)) .nil)))
+@[expose] def j201 : Codec.Json := .array (.cons (j200) (.cons (j18) .nil))
+@[expose] def j202 : Codec.Json := .array (.cons (j18) .nil)
+@[expose] def j203 : Codec.Json := .array (.cons (j5) (.cons (j199) (.cons (j201) (.cons (j202) .nil))))
+@[expose] def j204 : Codec.Json := .array (.cons (.number (3)) (.cons (.number (2)) (.cons (.number (1)) (.cons (.number (0)) .nil))))
+@[expose] def j205 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (1935)) (.cons (.number (256)) .nil)))
+@[expose] def j206 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-3)) (.cons (.number (1)) .nil)))
+@[expose] def j207 : Codec.Json := .array (.cons (j205) (.cons (j206) .nil))
+@[expose] def j208 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (39938397)) (.cons (.number (8388608)) .nil)))
+@[expose] def j209 : Codec.Json := .array (.cons (j4) (.cons (j207) (.cons (j208) .nil)))
+@[expose] def j210 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (16777216)) (.cons (.number (13312799)) .nil)))
+@[expose] def j211 : Codec.Json := .array (.cons (j210) (.cons (j18) .nil))
+@[expose] def j212 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (844216575655936)) (.cons (.number (177230617214401)) .nil)))
+@[expose] def j213 : Codec.Json := .array (.cons (j4) (.cons (j211) (.cons (j212) .nil)))
+@[expose] def j214 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (14161856182746417765727)) (.cons (.number (5619442792087884562432)) .nil)))
+@[expose] def j215 : Codec.Json := .array (.cons (j214) (.cons (j4) .nil))
+@[expose] def j216 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (16935998183659607946367)) (.cons (.number (178175406653058678027163009024)) .nil)))
+@[expose] def j217 : Codec.Json := .array (.cons (j4) (.cons (j215) (.cons (j216) .nil)))
+@[expose] def j218 : Codec.Json := .array (.cons (j213) (.cons (j217) .nil))
+@[expose] def j219 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-531823117172161)) (.cons (.number (422108287827968)) .nil)))
+@[expose] def j220 : Codec.Json := .array (.cons (j219) (.cons (j4) .nil))
+@[expose] def j221 : Codec.Json := .array (.cons (j4) (.cons (j220) .nil))
+@[expose] def j222 : Codec.Json := .array (.cons (j221) .nil)
+@[expose] def j223 : Codec.Json := .array (.cons (j203) (.cons (j204) (.cons (j209) (.cons (j218) (.cons (j222) .nil)))))
+@[expose] def j224 : Codec.Json := .array (.cons (.number (-1)) (.cons (.number (-1)) (.cons (.number (1)) (.cons (.number (-1)) .nil))))
+@[expose] def j225 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (-1)) (.cons (.number (-1)) (.cons (.number (-1)) .nil))))
+@[expose] def j226 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j195) (.cons (j6) (.cons (j7) (.cons (j33) (.cons (j223) (.cons (j224) (.cons (j225) (.cons (.number (2)) (.cons (.number (1)) (.cons (.number (1)) .nil))))))))))))
+@[expose] def j227 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-531954382701119)) (.cons (.number (670055146717184)) .nil)))
+@[expose] def j228 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-6439271707)) (.cons (.number (10224230144)) .nil)))
+@[expose] def j229 : Codec.Json := .array (.cons (j227) (.cons (j228) (.cons (j4) .nil)))
+@[expose] def j230 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-844008221179904)) (.cons (.number (531954382701119)) .nil)))
+@[expose] def j231 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (1340110293434368)) (.cons (.number (531954382701119)) .nil)))
+@[expose] def j232 : Codec.Json := .array (.cons (j230) (.cons (j231) (.cons (j18) .nil)))
+@[expose] def j233 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (848507517748138632283156122497)) (.cons (.number (673460863138161280761781223424)) .nil)))
+@[expose] def j234 : Codec.Json := .array (.cons (j233) (.cons (j18) .nil))
+end Hex.RCF.RealCoefficients.EnumeratedSource.Cubic
diff --git a/reports/data/hexrcf-enumerated-source/source-build-current-inputs/conformance/HexRCF/EnumeratedSource/Inputs.lean.txt b/reports/data/hexrcf-enumerated-source/source-build-current-inputs/conformance/HexRCF/EnumeratedSource/Inputs.lean.txt
new file mode 100644
index 0000000000..4701bd1b24
--- /dev/null
+++ b/reports/data/hexrcf-enumerated-source/source-build-current-inputs/conformance/HexRCF/EnumeratedSource/Inputs.lean.txt
@@ -0,0 +1,65 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+import HexRCF.EnumeratedSource.Positive
+import HexRCF.EnumeratedSource.Negative
+import HexRCF.EnumeratedSource.Cubic
+import HexRCF.SourceIdentityCases
+import HexRCF.RealCoefficients.CubeTwo
+import HexRCF.RealCoefficients.ScalarPacket
+
+namespace Hex.RCF.EnumeratedSourceInputs
+open Hex Hex.RealClosure Hex.SignDet Hex.RCF.RealCoefficients
+open Hex.RCF.SelectedRootTests Hex.RCF.SourceIdentityCases
+set_option maxRecDepth 32768
+set_option maxHeartbeats 12000000
+
+theorem positiveWitness : atomWitness SquareTwo.polynomial SquareTwo.square := by decide +kernel
+theorem positivePrecision : (mahlerPrec SquareTwo.polynomial : Int) ≤ SquareTwo.square.prec := by decide +kernel
+theorem cubicWitness : atomWitness CubeTwo.polynomial CubeTwo.square := by decide +kernel
+theorem cubicPrecision : (mahlerPrec CubeTwo.polynomial : Int) ≤ CubeTwo.square.prec := by decide +kernel
+theorem cubicSelected :
+ (Field.literalRep CubeTwo.polynomial CubeTwo.square cubicWitness cubicPrecision).root.re =
+ (2 : ℝ) ^ (1 / 3 : ℝ) :=
+ (CubeTwo.coordinate_value _ _ _).symm.trans (CubeTwo.value _ _ _ (by decide +kernel))
+
+private theorem value (literal : Codec.Json) (q : DensePoly Rat)
+ (same : ScalarPacket.key Data.base.codec literal = embed q) :
+ HexPolyTheory.Interpret.interpret Data.rational.value Data.rational.zero_iff
+ (ScalarPacket.key Data.base.codec literal) = LiteralSign.realPoly q := by
+ rw [same]
+ exact embed_value q
+
+theorem positiveEquation :
+ HexPolyTheory.Interpret.interpret Data.rational.value Data.rational.zero_iff
+ (ScalarPacket.key Data.base.codec EnumeratedSource.Positive.equation) =
+ LiteralSign.realPoly (ZPoly.toRatPoly SquareTwo.polynomial) :=
+ value _ _ (by decide +kernel)
+theorem positiveMargin :
+ HexPolyTheory.Interpret.interpret Data.rational.value Data.rational.zero_iff
+ (ScalarPacket.key Data.base.codec EnumeratedSource.Positive.margin) =
+ LiteralSign.realPoly (SourceIdentity.margin SquareTwo.square) :=
+ value _ _ (by decide +kernel)
+theorem negativeEquation :
+ HexPolyTheory.Interpret.interpret Data.rational.value Data.rational.zero_iff
+ (ScalarPacket.key Data.base.codec EnumeratedSource.Negative.equation) =
+ LiteralSign.realPoly (ZPoly.toRatPoly SquareTwo.polynomial) :=
+ value _ _ (by decide +kernel)
+theorem negativeMargin :
+ HexPolyTheory.Interpret.interpret Data.rational.value Data.rational.zero_iff
+ (ScalarPacket.key Data.base.codec EnumeratedSource.Negative.margin) =
+ LiteralSign.realPoly (SourceIdentity.margin negativeSquare) :=
+ value _ _ (by decide +kernel)
+theorem cubicEquation :
+ HexPolyTheory.Interpret.interpret Data.rational.value Data.rational.zero_iff
+ (ScalarPacket.key Data.base.codec EnumeratedSource.Cubic.equation) =
+ LiteralSign.realPoly (ZPoly.toRatPoly CubeTwo.polynomial) :=
+ value _ _ (by decide +kernel)
+theorem cubicMargin :
+ HexPolyTheory.Interpret.interpret Data.rational.value Data.rational.zero_iff
+ (ScalarPacket.key Data.base.codec EnumeratedSource.Cubic.margin) =
+ LiteralSign.realPoly (SourceIdentity.margin CubeTwo.square) :=
+ value _ _ (by decide +kernel)
+end Hex.RCF.EnumeratedSourceInputs
diff --git a/reports/data/hexrcf-enumerated-source/source-build-current-inputs/conformance/HexRCF/EnumeratedSource/Negative.lean.txt b/reports/data/hexrcf-enumerated-source/source-build-current-inputs/conformance/HexRCF/EnumeratedSource/Negative.lean.txt
new file mode 100644
index 0000000000..d7033d5191
--- /dev/null
+++ b/reports/data/hexrcf-enumerated-source/source-build-current-inputs/conformance/HexRCF/EnumeratedSource/Negative.lean.txt
@@ -0,0 +1,60 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+module
+public import HexSignDet.Codec.Json
+public import HexRCF.EnumeratedSource.NegativeData0
+/-! Shared constructor data from `conformance-fixtures/HexRCF/enumerated-source.json`.
+The descriptor reader checks this supplied replay independently of its producer. -/
+public section
+
+namespace Hex.RCF.RealCoefficients.EnumeratedSource.Negative
+open Hex.SignDet
+@[expose] def j235 : Codec.Json := .array (.cons (.number (2)) (.cons (.number (0)) (.cons (.number (0)) (.cons (.number (-2)) .nil))))
+@[expose] def j236 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (-1)) (.cons (.number (-1)) (.cons (.number (1)) .nil))))
+@[expose] def j237 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (1)) (.cons (.number (-1)) (.cons (.number (-1)) .nil))))
+@[expose] def j238 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (-1)) (.cons (.number (1)) (.cons (.number (-1)) .nil))))
+@[expose] def j239 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (1)) (.cons (.number (1)) (.cons (.number (1)) .nil))))
+@[expose] def j240 : Codec.Json := .array (.cons (j236) (.cons (j237) (.cons (j238) (.cons (j239) .nil))))
+@[expose] def j241 : Codec.Json := .array (.cons (j230) (.cons (j233) (.cons (j234) (.cons (j235) (.cons (j240) (.cons (.number (4)) .nil))))))
+@[expose] def j242 : Codec.Json := .array (.cons (j5) (.cons (j161) (.cons (j24) .nil)))
+@[expose] def j243 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (370688)) (.cons (.number (131057)) .nil)))
+@[expose] def j244 : Codec.Json := .array (.cons (j4) (.cons (j166) (.cons (j243) .nil)))
+@[expose] def j245 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (131057)) (.cons (.number (92672)) .nil)))
+@[expose] def j246 : Codec.Json := .array (.cons (j245) (.cons (j20) .nil))
+@[expose] def j247 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (261919)) (.cons (.number (8588099584)) .nil)))
+@[expose] def j248 : Codec.Json := .array (.cons (j4) (.cons (j246) (.cons (j247) .nil)))
+@[expose] def j249 : Codec.Json := .array (.cons (j248) .nil)
+@[expose] def j250 : Codec.Json := .array (.cons (j4) (.cons (j161) .nil))
+@[expose] def j251 : Codec.Json := .array (.cons (j250) .nil)
+@[expose] def j252 : Codec.Json := .array (.cons (j242) (.cons (j27) (.cons (j244) (.cons (j249) (.cons (j251) .nil)))))
+@[expose] def j253 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j163) (.cons (j6) (.cons (j7) (.cons (j33) (.cons (j252) (.cons (j35) (.cons (j34) (.cons (.number (0)) (.cons (.number (2)) (.cons (.number (-2)) .nil))))))))))))
+@[expose] def j254 : Codec.Json := .array (.cons (j36) (.cons (j180) (.cons (j46) (.cons (j253) .nil))))
+@[expose] def j255 : Codec.Json := .array (.cons (.number (2)) (.cons (j161) (.cons (j50) .nil)))
+@[expose] def j256 : Codec.Json := .array (.cons (j255) .nil)
+@[expose] def j257 : Codec.Json := .array (.cons (j256) (.cons (j161) .nil))
+@[expose] def j258 : Codec.Json := .array (.cons (j257) .nil)
+@[expose] def j259 : Codec.Json := .array (.cons (j4) (.cons (j164) (.cons (j245) .nil)))
+@[expose] def j260 : Codec.Json := .array (.cons (.number (2)) (.cons (j163) (.cons (j259) .nil)))
+@[expose] def j261 : Codec.Json := .array (.cons (j51) (.cons (j260) .nil))
+@[expose] def j262 : Codec.Json := .array (.cons (j261) (.cons (j163) .nil))
+@[expose] def j263 : Codec.Json := .array (.cons (j262) .nil)
+@[expose] def j264 : Codec.Json := .array (.cons (j49) (.cons (j258) (.cons (j54) (.cons (j263) .nil))))
+@[expose] def j265 : Codec.Json := .array (.cons (.number (2)) (.cons (j161) (.cons (j209) .nil)))
+@[expose] def j266 : Codec.Json := .array (.cons (j61) (.cons (j98) (.cons (j265) .nil)))
+@[expose] def j267 : Codec.Json := .array (.cons (j266) .nil)
+@[expose] def j268 : Codec.Json := .array (.cons (.number (-1)) (.cons (.number (-1)) .nil))
+@[expose] def j269 : Codec.Json := .array (.cons (j268) (.cons (j9) .nil))
+@[expose] def j270 : Codec.Json := .array (.cons (.number (2)) (.cons (j64) (.cons (j64) (.cons (.number (-2)) (.cons (j269) .nil)))))
+@[expose] def j271 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j6) (.cons (j7) (.cons (j229) (.cons (.number (4)) (.cons (j241) (.cons (j254) (.cons (j264) (.cons (j267) (.cons (j270) .nil)))))))))))
+@[expose] def j272 : Codec.Json := .array (.cons (j271) (.cons (j150) .nil))
+@[expose] def j273 : Codec.Json := .array (.cons (j69) (.cons (j89) (.cons (j214) (.cons (j228) (.cons (j272) .nil)))))
+@[expose] def j274 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (4)) (.cons (j273) .nil)))
+@[expose] def marginGraph : Codec.Json := j274
+@[expose] def j275 : Codec.Json := .array (.cons (j5) (.cons (.number (0)) (.cons (j153) .nil)))
+@[expose] def j276 : Codec.Json := .array (.cons (j156) (.cons (.number (1)) (.cons (j274) .nil)))
+@[expose] def j277 : Codec.Json := .array (.cons (j10) (.cons (j105) (.cons (j275) (.cons (j276) .nil))))
+@[expose] def packet : Codec.Json := j277
+end Hex.RCF.RealCoefficients.EnumeratedSource.Negative
diff --git a/reports/data/hexrcf-enumerated-source/source-build-current-inputs/conformance/HexRCF/EnumeratedSource/NegativeData0.lean.txt b/reports/data/hexrcf-enumerated-source/source-build-current-inputs/conformance/HexRCF/EnumeratedSource/NegativeData0.lean.txt
new file mode 100644
index 0000000000..0f8037cd47
--- /dev/null
+++ b/reports/data/hexrcf-enumerated-source/source-build-current-inputs/conformance/HexRCF/EnumeratedSource/NegativeData0.lean.txt
@@ -0,0 +1,254 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+module
+public import HexSignDet.Codec.Json
+/-! Shared constructor data from `conformance-fixtures/HexRCF/enumerated-source.json`.
+The descriptor reader checks this supplied replay independently of its producer. -/
+public section
+
+namespace Hex.RCF.RealCoefficients.EnumeratedSource.Negative
+open Hex.SignDet
+@[expose] def j0 : Codec.Json := .array .nil
+@[expose] def j1 : Codec.Json := .array (.cons (j0) (.cons (.number (0)) (.cons (j0) .nil)))
+@[expose] def j2 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-2)) (.cons (.number (1)) .nil)))
+@[expose] def j3 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (0)) (.cons (.number (1)) .nil)))
+@[expose] def j4 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (1)) (.cons (.number (1)) .nil)))
+@[expose] def j5 : Codec.Json := .array (.cons (j2) (.cons (j3) (.cons (j4) .nil)))
+@[expose] def j6 : Codec.Json := .array (.cons (.number (0)) .nil)
+@[expose] def j7 : Codec.Json := .array (.cons (.number (2)) .nil)
+@[expose] def j8 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (2)) .nil))
+@[expose] def j9 : Codec.Json := .array (.cons (.number (-1)) (.cons (.number (1)) .nil))
+@[expose] def j10 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j6) (.cons (j7) (.cons (j8) (.cons (j9) .nil))))))
+@[expose] def subject : Codec.Json := j10
+@[expose] def j11 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (2)) (.cons (.number (1)) .nil)))
+@[expose] def j12 : Codec.Json := .array (.cons (j3) (.cons (j11) .nil))
+@[expose] def j13 : Codec.Json := .array (.cons (j12) .nil)
+@[expose] def j14 : Codec.Json := .array (.cons (.number (1)) .nil)
+@[expose] def j15 : Codec.Json := .array (.cons (j6) (.cons (j14) (.cons (j7) .nil)))
+@[expose] def j16 : Codec.Json := .array (.cons (.number (-1)) .nil)
+@[expose] def j17 : Codec.Json := .array (.cons (j16) (.cons (j6) (.cons (j14) .nil)))
+@[expose] def j18 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (0)) (.cons (.number (1)) .nil)))
+@[expose] def j19 : Codec.Json := .array (.cons (.number (2)) (.cons (.number (0)) (.cons (.number (2)) .nil)))
+@[expose] def j20 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-1)) (.cons (.number (1)) .nil)))
+@[expose] def j21 : Codec.Json := .array (.cons (.number (2)) (.cons (.number (0)) (.cons (.number (-2)) .nil)))
+@[expose] def j22 : Codec.Json := .array (.cons (j20) (.cons (j21) (.cons (j4) .nil)))
+@[expose] def j23 : Codec.Json := .array (.cons (j15) (.cons (j17) (.cons (j18) (.cons (j19) (.cons (j22) (.cons (.number (2)) .nil))))))
+@[expose] def j24 : Codec.Json := .array (.cons (j4) .nil)
+@[expose] def j25 : Codec.Json := .array (.cons (j3) (.cons (j4) .nil))
+@[expose] def j26 : Codec.Json := .array (.cons (j5) (.cons (j25) (.cons (j24) .nil)))
+@[expose] def j27 : Codec.Json := .array (.cons (.number (2)) (.cons (.number (1)) (.cons (.number (0)) .nil)))
+@[expose] def j28 : Codec.Json := .array (.cons (j4) (.cons (j0) (.cons (j11) .nil)))
+@[expose] def j29 : Codec.Json := .array (.cons (j4) (.cons (j25) (.cons (j11) .nil)))
+@[expose] def j30 : Codec.Json := .array (.cons (j29) .nil)
+@[expose] def j31 : Codec.Json := .array (.cons (j4) (.cons (j25) .nil))
+@[expose] def j32 : Codec.Json := .array (.cons (j31) .nil)
+@[expose] def j33 : Codec.Json := .array (.cons (j26) (.cons (j27) (.cons (j28) (.cons (j30) (.cons (j32) .nil)))))
+@[expose] def j34 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (-1)) (.cons (.number (1)) .nil)))
+@[expose] def j35 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (1)) (.cons (.number (1)) .nil)))
+@[expose] def j36 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j24) (.cons (j6) (.cons (j7) (.cons (j33) (.cons (j33) (.cons (j34) (.cons (j35) (.cons (.number (2)) (.cons (.number (0)) (.cons (.number (2)) .nil))))))))))))
+@[expose] def j37 : Codec.Json := .array (.cons (j5) (.cons (j24) .nil))
+@[expose] def j38 : Codec.Json := .array (.cons (.number (2)) (.cons (.number (0)) .nil))
+@[expose] def j39 : Codec.Json := .array (.cons (j11) .nil)
+@[expose] def j40 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (4)) (.cons (.number (1)) .nil)))
+@[expose] def j41 : Codec.Json := .array (.cons (j4) (.cons (j39) (.cons (j40) .nil)))
+@[expose] def j42 : Codec.Json := .array (.cons (j4) (.cons (j5) .nil))
+@[expose] def j43 : Codec.Json := .array (.cons (j42) .nil)
+@[expose] def j44 : Codec.Json := .array (.cons (j37) (.cons (j38) (.cons (j41) (.cons (j0) (.cons (j43) .nil)))))
+@[expose] def j45 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (1)) .nil))
+@[expose] def j46 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j25) (.cons (j6) (.cons (j7) (.cons (j33) (.cons (j44) (.cons (j45) (.cons (j45) (.cons (.number (0)) (.cons (.number (0)) (.cons (.number (0)) .nil))))))))))))
+@[expose] def j47 : Codec.Json := .array (.cons (j36) (.cons (j46) (.cons (j36) .nil)))
+@[expose] def j48 : Codec.Json := .array (.cons (j0) (.cons (j24) .nil))
+@[expose] def j49 : Codec.Json := .array (.cons (j48) .nil)
+@[expose] def j50 : Codec.Json := .array (.cons (j4) (.cons (j0) (.cons (j4) .nil)))
+@[expose] def j51 : Codec.Json := .array (.cons (.number (0)) (.cons (j25) (.cons (j50) .nil)))
+@[expose] def j52 : Codec.Json := .array (.cons (j51) .nil)
+@[expose] def j53 : Codec.Json := .array (.cons (j52) (.cons (j25) .nil))
+@[expose] def j54 : Codec.Json := .array (.cons (j53) .nil)
+@[expose] def j55 : Codec.Json := .array (.cons (j4) (.cons (j24) (.cons (j11) .nil)))
+@[expose] def j56 : Codec.Json := .array (.cons (.number (0)) (.cons (j24) (.cons (j55) .nil)))
+@[expose] def j57 : Codec.Json := .array (.cons (j51) (.cons (j56) .nil))
+@[expose] def j58 : Codec.Json := .array (.cons (j57) (.cons (j24) .nil))
+@[expose] def j59 : Codec.Json := .array (.cons (j58) .nil)
+@[expose] def j60 : Codec.Json := .array (.cons (j49) (.cons (j54) (.cons (j59) .nil)))
+@[expose] def j61 : Codec.Json := .array (.cons (.number (0)) (.cons (j25) (.cons (j28) .nil)))
+@[expose] def j62 : Codec.Json := .array (.cons (j61) .nil)
+@[expose] def j63 : Codec.Json := .array (.cons (j62) .nil)
+@[expose] def j64 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (1)) .nil))
+@[expose] def j65 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (-1)) .nil))
+@[expose] def j66 : Codec.Json := .array (.cons (j65) (.cons (j45) .nil))
+@[expose] def j67 : Codec.Json := .array (.cons (.number (2)) (.cons (j64) (.cons (j64) (.cons (.number (2)) (.cons (j66) .nil)))))
+@[expose] def j68 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j6) (.cons (j7) (.cons (j13) (.cons (.number (3)) (.cons (j23) (.cons (j47) (.cons (j60) (.cons (j63) (.cons (j67) .nil)))))))))))
+@[expose] def j69 : Codec.Json := .array (.cons (j68) (.cons (j0) .nil))
+@[expose] def j70 : Codec.Json := .array (.cons (j39) .nil)
+@[expose] def j71 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (0)) (.cons (.number (2)) .nil)))
+@[expose] def j72 : Codec.Json := .array (.cons (.number (2)) (.cons (.number (2)) (.cons (.number (2)) .nil)))
+@[expose] def j73 : Codec.Json := .array (.cons (j15) (.cons (j17) (.cons (j71) (.cons (j72) (.cons (j22) (.cons (.number (2)) .nil))))))
+@[expose] def j74 : Codec.Json := .array (.cons (j36) (.cons (j36) (.cons (j36) .nil)))
+@[expose] def j75 : Codec.Json := .array (.cons (.number (0)) (.cons (j24) (.cons (j50) .nil)))
+@[expose] def j76 : Codec.Json := .array (.cons (j75) .nil)
+@[expose] def j77 : Codec.Json := .array (.cons (j76) (.cons (j24) .nil))
+@[expose] def j78 : Codec.Json := .array (.cons (j77) .nil)
+@[expose] def j79 : Codec.Json := .array (.cons (j75) (.cons (j75) .nil))
+@[expose] def j80 : Codec.Json := .array (.cons (j79) (.cons (j24) .nil))
+@[expose] def j81 : Codec.Json := .array (.cons (j80) .nil)
+@[expose] def j82 : Codec.Json := .array (.cons (j49) (.cons (j78) (.cons (j81) .nil)))
+@[expose] def j83 : Codec.Json := .array (.cons (.number (0)) (.cons (j24) (.cons (j28) .nil)))
+@[expose] def j84 : Codec.Json := .array (.cons (j83) .nil)
+@[expose] def j85 : Codec.Json := .array (.cons (j84) .nil)
+@[expose] def j86 : Codec.Json := .array (.cons (j14) .nil)
+@[expose] def j87 : Codec.Json := .array (.cons (.number (1)) (.cons (j6) (.cons (j6) (.cons (.number (1)) (.cons (j86) .nil)))))
+@[expose] def j88 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j6) (.cons (j7) (.cons (j70) (.cons (.number (3)) (.cons (j73) (.cons (j74) (.cons (j82) (.cons (j85) (.cons (j87) .nil)))))))))))
+@[expose] def j89 : Codec.Json := .array (.cons (j88) (.cons (j0) .nil))
+@[expose] def j90 : Codec.Json := .array (.cons (j12) (.cons (j39) .nil))
+@[expose] def j91 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (0)) .nil))
+@[expose] def j92 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (0)) .nil))
+@[expose] def j93 : Codec.Json := .array (.cons (j91) (.cons (j92) .nil))
+@[expose] def j94 : Codec.Json := .array (.cons (j9) (.cons (j45) .nil))
+@[expose] def j95 : Codec.Json := .array (.cons (j93) (.cons (j94) (.cons (j45) (.cons (j38) (.cons (j66) (.cons (.number (2)) .nil))))))
+@[expose] def j96 : Codec.Json := .array (.cons (j36) (.cons (j46) .nil))
+@[expose] def j97 : Codec.Json := .array (.cons (j49) (.cons (j54) .nil))
+@[expose] def j98 : Codec.Json := .array (.cons (.number (1)) (.cons (j24) (.cons (j28) .nil)))
+@[expose] def j99 : Codec.Json := .array (.cons (j61) (.cons (j98) .nil))
+@[expose] def j100 : Codec.Json := .array (.cons (j99) .nil)
+@[expose] def j101 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j6) (.cons (j7) (.cons (j90) (.cons (.number (2)) (.cons (j95) (.cons (j96) (.cons (j97) (.cons (j100) (.cons (j67) .nil)))))))))))
+@[expose] def j102 : Codec.Json := .array (.cons (j64) .nil)
+@[expose] def j103 : Codec.Json := .array (.cons (j101) (.cons (j102) .nil))
+@[expose] def j104 : Codec.Json := .array (.cons (j69) (.cons (j89) (.cons (j103) .nil)))
+@[expose] def j105 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (2)) (.cons (j104) .nil)))
+@[expose] def graph : Codec.Json := j105
+@[expose] def equation : Codec.Json := j5
+@[expose] def j106 : Codec.Json := .array (.cons (j0) .nil)
+@[expose] def j107 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (2)) (.cons (.number (0)) .nil)))
+@[expose] def j108 : Codec.Json := .array (.cons (.number (2)) (.cons (.number (0)) (.cons (.number (0)) .nil)))
+@[expose] def j109 : Codec.Json := .array (.cons (j15) (.cons (j17) (.cons (j107) (.cons (j108) (.cons (j22) (.cons (.number (2)) .nil))))))
+@[expose] def j110 : Codec.Json := .array (.cons (j5) .nil)
+@[expose] def j111 : Codec.Json := .array (.cons (j110) (.cons (j7) (.cons (j50) (.cons (j0) (.cons (j0) .nil)))))
+@[expose] def j112 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j0) (.cons (j6) (.cons (j7) (.cons (j33) (.cons (j111) (.cons (j14) (.cons (j14) (.cons (.number (0)) (.cons (.number (0)) (.cons (.number (0)) .nil))))))))))))
+@[expose] def j113 : Codec.Json := .array (.cons (j36) (.cons (j112) (.cons (j112) .nil)))
+@[expose] def j114 : Codec.Json := .array (.cons (.number (0)) (.cons (j0) (.cons (j50) .nil)))
+@[expose] def j115 : Codec.Json := .array (.cons (j114) .nil)
+@[expose] def j116 : Codec.Json := .array (.cons (j115) (.cons (j0) .nil))
+@[expose] def j117 : Codec.Json := .array (.cons (j116) .nil)
+@[expose] def j118 : Codec.Json := .array (.cons (j114) (.cons (j114) .nil))
+@[expose] def j119 : Codec.Json := .array (.cons (j118) (.cons (j0) .nil))
+@[expose] def j120 : Codec.Json := .array (.cons (j119) .nil)
+@[expose] def j121 : Codec.Json := .array (.cons (j49) (.cons (j117) (.cons (j120) .nil)))
+@[expose] def j122 : Codec.Json := .array (.cons (j115) .nil)
+@[expose] def j123 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j6) (.cons (j7) (.cons (j106) (.cons (.number (3)) (.cons (j109) (.cons (j113) (.cons (j121) (.cons (j122) (.cons (j87) .nil)))))))))))
+@[expose] def j124 : Codec.Json := .array (.cons (j123) (.cons (j0) .nil))
+@[expose] def j125 : Codec.Json := .array (.cons (j39) (.cons (j0) .nil))
+@[expose] def j126 : Codec.Json := .array (.cons (j91) .nil)
+@[expose] def j127 : Codec.Json := .array (.cons (j92) .nil)
+@[expose] def j128 : Codec.Json := .array (.cons (j126) (.cons (j127) (.cons (j7) (.cons (j7) (.cons (j86) (.cons (.number (1)) .nil))))))
+@[expose] def j129 : Codec.Json := .array (.cons (j36) .nil)
+@[expose] def j130 : Codec.Json := .array (.cons (j49) .nil)
+@[expose] def j131 : Codec.Json := .array (.cons (.number (1)) (.cons (j0) (.cons (j50) .nil)))
+@[expose] def j132 : Codec.Json := .array (.cons (j83) (.cons (j131) .nil))
+@[expose] def j133 : Codec.Json := .array (.cons (j132) .nil)
+@[expose] def j134 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j6) (.cons (j7) (.cons (j125) (.cons (.number (1)) (.cons (j128) (.cons (j129) (.cons (j130) (.cons (j133) (.cons (j87) .nil)))))))))))
+@[expose] def j135 : Codec.Json := .array (.cons (j8) .nil)
+@[expose] def j136 : Codec.Json := .array (.cons (j134) (.cons (j135) .nil))
+@[expose] def j137 : Codec.Json := .array (.cons (j12) (.cons (j39) (.cons (j0) .nil)))
+@[expose] def j138 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (0)) (.cons (.number (0)) .nil)))
+@[expose] def j139 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (0)) (.cons (.number (0)) .nil)))
+@[expose] def j140 : Codec.Json := .array (.cons (j138) (.cons (j139) .nil))
+@[expose] def j141 : Codec.Json := .array (.cons (.number (-1)) (.cons (.number (1)) (.cons (.number (0)) .nil)))
+@[expose] def j142 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (1)) (.cons (.number (0)) .nil)))
+@[expose] def j143 : Codec.Json := .array (.cons (j141) (.cons (j142) .nil))
+@[expose] def j144 : Codec.Json := .array (.cons (j140) (.cons (j143) (.cons (j45) (.cons (j38) (.cons (j66) (.cons (.number (2)) .nil))))))
+@[expose] def j145 : Codec.Json := .array (.cons (.number (2)) (.cons (j0) (.cons (j50) .nil)))
+@[expose] def j146 : Codec.Json := .array (.cons (j61) (.cons (j98) (.cons (j145) .nil)))
+@[expose] def j147 : Codec.Json := .array (.cons (j146) .nil)
+@[expose] def j148 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j6) (.cons (j7) (.cons (j137) (.cons (.number (2)) (.cons (j144) (.cons (j96) (.cons (j97) (.cons (j147) (.cons (j67) .nil)))))))))))
+@[expose] def j149 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (3)) .nil))
+@[expose] def j150 : Codec.Json := .array (.cons (j149) .nil)
+@[expose] def j151 : Codec.Json := .array (.cons (j148) (.cons (j150) .nil))
+@[expose] def j152 : Codec.Json := .array (.cons (j69) (.cons (j89) (.cons (j124) (.cons (j136) (.cons (j151) .nil)))))
+@[expose] def j153 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (4)) (.cons (j152) .nil)))
+@[expose] def equationGraph : Codec.Json := j153
+@[expose] def j154 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-65521)) (.cons (.number (32768)) .nil)))
+@[expose] def j155 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-181)) (.cons (.number (64)) .nil)))
+@[expose] def j156 : Codec.Json := .array (.cons (j154) (.cons (j155) (.cons (j20) .nil)))
+@[expose] def margin : Codec.Json := j156
+@[expose] def j157 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-131057)) (.cons (.number (32768)) .nil)))
+@[expose] def j158 : Codec.Json := .array (.cons (j157) (.cons (j155) .nil))
+@[expose] def j159 : Codec.Json := .array (.cons (j158) .nil)
+@[expose] def j160 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-131057)) (.cons (.number (92672)) .nil)))
+@[expose] def j161 : Codec.Json := .array (.cons (j160) (.cons (j20) .nil))
+@[expose] def j162 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-185344)) (.cons (.number (131057)) .nil)))
+@[expose] def j163 : Codec.Json := .array (.cons (j162) (.cons (j20) .nil))
+@[expose] def j164 : Codec.Json := .array (.cons (j20) .nil)
+@[expose] def j165 : Codec.Json := .array (.cons (j5) (.cons (j163) (.cons (j164) .nil)))
+@[expose] def j166 : Codec.Json := .array (.cons (j2) .nil)
+@[expose] def j167 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (131057)) (.cons (.number (46336)) .nil)))
+@[expose] def j168 : Codec.Json := .array (.cons (j4) (.cons (j166) (.cons (j167) .nil)))
+@[expose] def j169 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (185344)) (.cons (.number (131057)) .nil)))
+@[expose] def j170 : Codec.Json := .array (.cons (j169) (.cons (j20) .nil))
+@[expose] def j171 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (523838)) (.cons (.number (17175937249)) .nil)))
+@[expose] def j172 : Codec.Json := .array (.cons (j4) (.cons (j170) (.cons (j171) .nil)))
+@[expose] def j173 : Codec.Json := .array (.cons (j172) .nil)
+@[expose] def j174 : Codec.Json := .array (.cons (j169) (.cons (j4) .nil))
+@[expose] def j175 : Codec.Json := .array (.cons (j4) (.cons (j174) .nil))
+@[expose] def j176 : Codec.Json := .array (.cons (j175) .nil)
+@[expose] def j177 : Codec.Json := .array (.cons (j165) (.cons (j27) (.cons (j168) (.cons (j173) (.cons (j176) .nil)))))
+@[expose] def j178 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (1)) (.cons (.number (-1)) .nil)))
+@[expose] def j179 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (-1)) (.cons (.number (-1)) .nil)))
+@[expose] def j180 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j161) (.cons (j6) (.cons (j7) (.cons (j33) (.cons (j177) (.cons (j178) (.cons (j179) (.cons (.number (1)) (.cons (.number (1)) (.cons (.number (0)) .nil))))))))))))
+@[expose] def j181 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (34352136417)) (.cons (.number (24290628608)) .nil)))
+@[expose] def j182 : Codec.Json := .array (.cons (j181) (.cons (j4) .nil))
+@[expose] def j183 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (48581257216)) (.cons (.number (34352136417)) .nil)))
+@[expose] def j184 : Codec.Json := .array (.cons (j183) (.cons (j4) .nil))
+@[expose] def j185 : Codec.Json := .array (.cons (j5) (.cons (j184) (.cons (j24) .nil)))
+@[expose] def j186 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (34352136417)) (.cons (.number (12145314304)) .nil)))
+@[expose] def j187 : Codec.Json := .array (.cons (j4) (.cons (j39) (.cons (j186) .nil)))
+@[expose] def j188 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-48581257216)) (.cons (.number (34352136417)) .nil)))
+@[expose] def j189 : Codec.Json := .array (.cons (j188) (.cons (j4) .nil))
+@[expose] def j190 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (137203125122)) (.cons (.number (1180069276412177597889)) .nil)))
+@[expose] def j191 : Codec.Json := .array (.cons (j4) (.cons (j189) (.cons (j190) .nil)))
+@[expose] def j192 : Codec.Json := .array (.cons (j191) .nil)
+@[expose] def j193 : Codec.Json := .array (.cons (j4) (.cons (j184) .nil))
+@[expose] def j194 : Codec.Json := .array (.cons (j193) .nil)
+@[expose] def j195 : Codec.Json := .array (.cons (j185) (.cons (j27) (.cons (j187) (.cons (j192) (.cons (j194) .nil)))))
+@[expose] def j196 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j182) (.cons (j6) (.cons (j7) (.cons (j33) (.cons (j195) (.cons (j34) (.cons (j35) (.cons (.number (2)) (.cons (.number (0)) (.cons (.number (2)) .nil))))))))))))
+@[expose] def j197 : Codec.Json := .array (.cons (j36) (.cons (j180) (.cons (j196) .nil)))
+@[expose] def j198 : Codec.Json := .array (.cons (.number (0)) (.cons (j161) (.cons (j50) .nil)))
+@[expose] def j199 : Codec.Json := .array (.cons (j198) .nil)
+@[expose] def j200 : Codec.Json := .array (.cons (j199) (.cons (j161) .nil))
+@[expose] def j201 : Codec.Json := .array (.cons (j200) .nil)
+@[expose] def j202 : Codec.Json := .array (.cons (j4) (.cons (j24) (.cons (j167) .nil)))
+@[expose] def j203 : Codec.Json := .array (.cons (.number (0)) (.cons (j182) (.cons (j202) .nil)))
+@[expose] def j204 : Codec.Json := .array (.cons (j198) (.cons (j203) .nil))
+@[expose] def j205 : Codec.Json := .array (.cons (j204) (.cons (j182) .nil))
+@[expose] def j206 : Codec.Json := .array (.cons (j205) .nil)
+@[expose] def j207 : Codec.Json := .array (.cons (j49) (.cons (j201) (.cons (j206) .nil)))
+@[expose] def j208 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (181)) (.cons (.number (64)) .nil)))
+@[expose] def j209 : Codec.Json := .array (.cons (j4) (.cons (j0) (.cons (j208) .nil)))
+@[expose] def j210 : Codec.Json := .array (.cons (.number (0)) (.cons (j161) (.cons (j209) .nil)))
+@[expose] def j211 : Codec.Json := .array (.cons (j210) .nil)
+@[expose] def j212 : Codec.Json := .array (.cons (j211) .nil)
+@[expose] def j213 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j6) (.cons (j7) (.cons (j159) (.cons (.number (3)) (.cons (j23) (.cons (j197) (.cons (j207) (.cons (j212) (.cons (j67) .nil)))))))))))
+@[expose] def j214 : Codec.Json := .array (.cons (j213) (.cons (j0) .nil))
+@[expose] def j215 : Codec.Json := .array (.cons (j39) (.cons (j158) .nil))
+@[expose] def j216 : Codec.Json := .array (.cons (j91) (.cons (j64) .nil))
+@[expose] def j217 : Codec.Json := .array (.cons (j216) (.cons (j66) (.cons (j45) (.cons (j38) (.cons (j66) (.cons (.number (2)) .nil))))))
+@[expose] def j218 : Codec.Json := .array (.cons (j36) (.cons (j180) .nil))
+@[expose] def j219 : Codec.Json := .array (.cons (.number (1)) (.cons (j161) (.cons (j50) .nil)))
+@[expose] def j220 : Codec.Json := .array (.cons (j219) .nil)
+@[expose] def j221 : Codec.Json := .array (.cons (j220) (.cons (j161) .nil))
+@[expose] def j222 : Codec.Json := .array (.cons (j221) .nil)
+@[expose] def j223 : Codec.Json := .array (.cons (j49) (.cons (j222) .nil))
+@[expose] def j224 : Codec.Json := .array (.cons (.number (1)) (.cons (j161) (.cons (j209) .nil)))
+@[expose] def j225 : Codec.Json := .array (.cons (j83) (.cons (j224) .nil))
+@[expose] def j226 : Codec.Json := .array (.cons (j225) .nil)
+@[expose] def j227 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j6) (.cons (j7) (.cons (j215) (.cons (.number (2)) (.cons (j217) (.cons (j218) (.cons (j223) (.cons (j226) (.cons (j67) .nil)))))))))))
+@[expose] def j228 : Codec.Json := .array (.cons (j227) (.cons (j135) .nil))
+@[expose] def j229 : Codec.Json := .array (.cons (j12) (.cons (j39) (.cons (j158) .nil)))
+@[expose] def j230 : Codec.Json := .array (.cons (j138) (.cons (j3) (.cons (j139) (.cons (j18) .nil))))
+@[expose] def j231 : Codec.Json := .array (.cons (.number (-1)) (.cons (.number (1)) (.cons (.number (-1)) .nil)))
+@[expose] def j232 : Codec.Json := .array (.cons (.number (-1)) (.cons (.number (1)) (.cons (.number (1)) .nil)))
+@[expose] def j233 : Codec.Json := .array (.cons (j231) (.cons (j232) (.cons (j178) (.cons (j35) .nil))))
+@[expose] def j234 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (1)) (.cons (.number (1)) (.cons (.number (0)) .nil))))
+end Hex.RCF.RealCoefficients.EnumeratedSource.Negative
diff --git a/reports/data/hexrcf-enumerated-source/source-build-current-inputs/conformance/HexRCF/EnumeratedSource/Positive.lean.txt b/reports/data/hexrcf-enumerated-source/source-build-current-inputs/conformance/HexRCF/EnumeratedSource/Positive.lean.txt
new file mode 100644
index 0000000000..f2dbf4199a
--- /dev/null
+++ b/reports/data/hexrcf-enumerated-source/source-build-current-inputs/conformance/HexRCF/EnumeratedSource/Positive.lean.txt
@@ -0,0 +1,56 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+module
+public import HexSignDet.Codec.Json
+public import HexRCF.EnumeratedSource.PositiveData0
+/-! Shared constructor data from `conformance-fixtures/HexRCF/enumerated-source.json`.
+The descriptor reader checks this supplied replay independently of its producer. -/
+public section
+
+namespace Hex.RCF.RealCoefficients.EnumeratedSource.Positive
+open Hex.SignDet
+@[expose] def j235 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (-1)) (.cons (.number (-1)) (.cons (.number (1)) .nil))))
+@[expose] def j236 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (1)) (.cons (.number (-1)) (.cons (.number (-1)) .nil))))
+@[expose] def j237 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (-1)) (.cons (.number (1)) (.cons (.number (-1)) .nil))))
+@[expose] def j238 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (1)) (.cons (.number (1)) (.cons (.number (1)) .nil))))
+@[expose] def j239 : Codec.Json := .array (.cons (j235) (.cons (j236) (.cons (j237) (.cons (j238) .nil))))
+@[expose] def j240 : Codec.Json := .array (.cons (j229) (.cons (j232) (.cons (j233) (.cons (j234) (.cons (j239) (.cons (.number (4)) .nil))))))
+@[expose] def j241 : Codec.Json := .array (.cons (j5) (.cons (j161) (.cons (j24) .nil)))
+@[expose] def j242 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (370688)) (.cons (.number (131057)) .nil)))
+@[expose] def j243 : Codec.Json := .array (.cons (j4) (.cons (j185) (.cons (j242) .nil)))
+@[expose] def j244 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (131057)) (.cons (.number (92672)) .nil)))
+@[expose] def j245 : Codec.Json := .array (.cons (j244) (.cons (j4) .nil))
+@[expose] def j246 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (261919)) (.cons (.number (8588099584)) .nil)))
+@[expose] def j247 : Codec.Json := .array (.cons (j4) (.cons (j245) (.cons (j246) .nil)))
+@[expose] def j248 : Codec.Json := .array (.cons (j247) .nil)
+@[expose] def j249 : Codec.Json := .array (.cons (j4) (.cons (j161) .nil))
+@[expose] def j250 : Codec.Json := .array (.cons (j249) .nil)
+@[expose] def j251 : Codec.Json := .array (.cons (j241) (.cons (j27) (.cons (j243) (.cons (j248) (.cons (j250) .nil)))))
+@[expose] def j252 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j163) (.cons (j6) (.cons (j7) (.cons (j33) (.cons (j251) (.cons (j34) (.cons (j35) (.cons (.number (2)) (.cons (.number (0)) (.cons (.number (2)) .nil))))))))))))
+@[expose] def j253 : Codec.Json := .array (.cons (j36) (.cons (j179) (.cons (j45) (.cons (j252) .nil))))
+@[expose] def j254 : Codec.Json := .array (.cons (.number (2)) (.cons (j161) (.cons (j49) .nil)))
+@[expose] def j255 : Codec.Json := .array (.cons (j254) .nil)
+@[expose] def j256 : Codec.Json := .array (.cons (j255) (.cons (j161) .nil))
+@[expose] def j257 : Codec.Json := .array (.cons (j256) .nil)
+@[expose] def j258 : Codec.Json := .array (.cons (j4) (.cons (j24) (.cons (j244) .nil)))
+@[expose] def j259 : Codec.Json := .array (.cons (.number (2)) (.cons (j163) (.cons (j258) .nil)))
+@[expose] def j260 : Codec.Json := .array (.cons (j50) (.cons (j259) .nil))
+@[expose] def j261 : Codec.Json := .array (.cons (j260) (.cons (j163) .nil))
+@[expose] def j262 : Codec.Json := .array (.cons (j261) .nil)
+@[expose] def j263 : Codec.Json := .array (.cons (j48) (.cons (j257) (.cons (j53) (.cons (j262) .nil))))
+@[expose] def j264 : Codec.Json := .array (.cons (.number (2)) (.cons (j161) (.cons (j208) .nil)))
+@[expose] def j265 : Codec.Json := .array (.cons (j60) (.cons (j98) (.cons (j264) .nil)))
+@[expose] def j266 : Codec.Json := .array (.cons (j265) .nil)
+@[expose] def j267 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j6) (.cons (j7) (.cons (j228) (.cons (.number (4)) (.cons (j240) (.cons (j253) (.cons (j263) (.cons (j266) (.cons (j66) .nil)))))))))))
+@[expose] def j268 : Codec.Json := .array (.cons (j267) (.cons (j150) .nil))
+@[expose] def j269 : Codec.Json := .array (.cons (j68) (.cons (j88) (.cons (j213) (.cons (j227) (.cons (j268) .nil)))))
+@[expose] def j270 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (4)) (.cons (j269) .nil)))
+@[expose] def marginGraph : Codec.Json := j270
+@[expose] def j271 : Codec.Json := .array (.cons (j5) (.cons (.number (0)) (.cons (j153) .nil)))
+@[expose] def j272 : Codec.Json := .array (.cons (j156) (.cons (.number (1)) (.cons (j270) .nil)))
+@[expose] def j273 : Codec.Json := .array (.cons (j10) (.cons (j105) (.cons (j271) (.cons (j272) .nil))))
+@[expose] def packet : Codec.Json := j273
+end Hex.RCF.RealCoefficients.EnumeratedSource.Positive
diff --git a/reports/data/hexrcf-enumerated-source/source-build-current-inputs/conformance/HexRCF/EnumeratedSource/PositiveData0.lean.txt b/reports/data/hexrcf-enumerated-source/source-build-current-inputs/conformance/HexRCF/EnumeratedSource/PositiveData0.lean.txt
new file mode 100644
index 0000000000..5e40601e1d
--- /dev/null
+++ b/reports/data/hexrcf-enumerated-source/source-build-current-inputs/conformance/HexRCF/EnumeratedSource/PositiveData0.lean.txt
@@ -0,0 +1,254 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+module
+public import HexSignDet.Codec.Json
+/-! Shared constructor data from `conformance-fixtures/HexRCF/enumerated-source.json`.
+The descriptor reader checks this supplied replay independently of its producer. -/
+public section
+
+namespace Hex.RCF.RealCoefficients.EnumeratedSource.Positive
+open Hex.SignDet
+@[expose] def j0 : Codec.Json := .array .nil
+@[expose] def j1 : Codec.Json := .array (.cons (j0) (.cons (.number (0)) (.cons (j0) .nil)))
+@[expose] def j2 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-2)) (.cons (.number (1)) .nil)))
+@[expose] def j3 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (0)) (.cons (.number (1)) .nil)))
+@[expose] def j4 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (1)) (.cons (.number (1)) .nil)))
+@[expose] def j5 : Codec.Json := .array (.cons (j2) (.cons (j3) (.cons (j4) .nil)))
+@[expose] def j6 : Codec.Json := .array (.cons (.number (0)) .nil)
+@[expose] def j7 : Codec.Json := .array (.cons (.number (2)) .nil)
+@[expose] def j8 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (2)) .nil))
+@[expose] def j9 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (1)) .nil))
+@[expose] def j10 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j6) (.cons (j7) (.cons (j8) (.cons (j9) .nil))))))
+@[expose] def subject : Codec.Json := j10
+@[expose] def j11 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (2)) (.cons (.number (1)) .nil)))
+@[expose] def j12 : Codec.Json := .array (.cons (j3) (.cons (j11) .nil))
+@[expose] def j13 : Codec.Json := .array (.cons (j12) .nil)
+@[expose] def j14 : Codec.Json := .array (.cons (.number (1)) .nil)
+@[expose] def j15 : Codec.Json := .array (.cons (j6) (.cons (j14) (.cons (j7) .nil)))
+@[expose] def j16 : Codec.Json := .array (.cons (.number (-1)) .nil)
+@[expose] def j17 : Codec.Json := .array (.cons (j16) (.cons (j6) (.cons (j14) .nil)))
+@[expose] def j18 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (0)) (.cons (.number (1)) .nil)))
+@[expose] def j19 : Codec.Json := .array (.cons (.number (2)) (.cons (.number (0)) (.cons (.number (2)) .nil)))
+@[expose] def j20 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-1)) (.cons (.number (1)) .nil)))
+@[expose] def j21 : Codec.Json := .array (.cons (.number (2)) (.cons (.number (0)) (.cons (.number (-2)) .nil)))
+@[expose] def j22 : Codec.Json := .array (.cons (j20) (.cons (j21) (.cons (j4) .nil)))
+@[expose] def j23 : Codec.Json := .array (.cons (j15) (.cons (j17) (.cons (j18) (.cons (j19) (.cons (j22) (.cons (.number (2)) .nil))))))
+@[expose] def j24 : Codec.Json := .array (.cons (j4) .nil)
+@[expose] def j25 : Codec.Json := .array (.cons (j3) (.cons (j4) .nil))
+@[expose] def j26 : Codec.Json := .array (.cons (j5) (.cons (j25) (.cons (j24) .nil)))
+@[expose] def j27 : Codec.Json := .array (.cons (.number (2)) (.cons (.number (1)) (.cons (.number (0)) .nil)))
+@[expose] def j28 : Codec.Json := .array (.cons (j4) (.cons (j0) (.cons (j11) .nil)))
+@[expose] def j29 : Codec.Json := .array (.cons (j4) (.cons (j25) (.cons (j11) .nil)))
+@[expose] def j30 : Codec.Json := .array (.cons (j29) .nil)
+@[expose] def j31 : Codec.Json := .array (.cons (j4) (.cons (j25) .nil))
+@[expose] def j32 : Codec.Json := .array (.cons (j31) .nil)
+@[expose] def j33 : Codec.Json := .array (.cons (j26) (.cons (j27) (.cons (j28) (.cons (j30) (.cons (j32) .nil)))))
+@[expose] def j34 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (-1)) (.cons (.number (1)) .nil)))
+@[expose] def j35 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (1)) (.cons (.number (1)) .nil)))
+@[expose] def j36 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j24) (.cons (j6) (.cons (j7) (.cons (j33) (.cons (j33) (.cons (j34) (.cons (j35) (.cons (.number (2)) (.cons (.number (0)) (.cons (.number (2)) .nil))))))))))))
+@[expose] def j37 : Codec.Json := .array (.cons (j5) (.cons (j24) .nil))
+@[expose] def j38 : Codec.Json := .array (.cons (.number (2)) (.cons (.number (0)) .nil))
+@[expose] def j39 : Codec.Json := .array (.cons (j11) .nil)
+@[expose] def j40 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (4)) (.cons (.number (1)) .nil)))
+@[expose] def j41 : Codec.Json := .array (.cons (j4) (.cons (j39) (.cons (j40) .nil)))
+@[expose] def j42 : Codec.Json := .array (.cons (j4) (.cons (j5) .nil))
+@[expose] def j43 : Codec.Json := .array (.cons (j42) .nil)
+@[expose] def j44 : Codec.Json := .array (.cons (j37) (.cons (j38) (.cons (j41) (.cons (j0) (.cons (j43) .nil)))))
+@[expose] def j45 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j25) (.cons (j6) (.cons (j7) (.cons (j33) (.cons (j44) (.cons (j9) (.cons (j9) (.cons (.number (0)) (.cons (.number (0)) (.cons (.number (0)) .nil))))))))))))
+@[expose] def j46 : Codec.Json := .array (.cons (j36) (.cons (j45) (.cons (j36) .nil)))
+@[expose] def j47 : Codec.Json := .array (.cons (j0) (.cons (j24) .nil))
+@[expose] def j48 : Codec.Json := .array (.cons (j47) .nil)
+@[expose] def j49 : Codec.Json := .array (.cons (j4) (.cons (j0) (.cons (j4) .nil)))
+@[expose] def j50 : Codec.Json := .array (.cons (.number (0)) (.cons (j25) (.cons (j49) .nil)))
+@[expose] def j51 : Codec.Json := .array (.cons (j50) .nil)
+@[expose] def j52 : Codec.Json := .array (.cons (j51) (.cons (j25) .nil))
+@[expose] def j53 : Codec.Json := .array (.cons (j52) .nil)
+@[expose] def j54 : Codec.Json := .array (.cons (j4) (.cons (j24) (.cons (j11) .nil)))
+@[expose] def j55 : Codec.Json := .array (.cons (.number (0)) (.cons (j24) (.cons (j54) .nil)))
+@[expose] def j56 : Codec.Json := .array (.cons (j50) (.cons (j55) .nil))
+@[expose] def j57 : Codec.Json := .array (.cons (j56) (.cons (j24) .nil))
+@[expose] def j58 : Codec.Json := .array (.cons (j57) .nil)
+@[expose] def j59 : Codec.Json := .array (.cons (j48) (.cons (j53) (.cons (j58) .nil)))
+@[expose] def j60 : Codec.Json := .array (.cons (.number (0)) (.cons (j25) (.cons (j28) .nil)))
+@[expose] def j61 : Codec.Json := .array (.cons (j60) .nil)
+@[expose] def j62 : Codec.Json := .array (.cons (j61) .nil)
+@[expose] def j63 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (1)) .nil))
+@[expose] def j64 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (-1)) .nil))
+@[expose] def j65 : Codec.Json := .array (.cons (j64) (.cons (j9) .nil))
+@[expose] def j66 : Codec.Json := .array (.cons (.number (2)) (.cons (j63) (.cons (j63) (.cons (.number (2)) (.cons (j65) .nil)))))
+@[expose] def j67 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j6) (.cons (j7) (.cons (j13) (.cons (.number (3)) (.cons (j23) (.cons (j46) (.cons (j59) (.cons (j62) (.cons (j66) .nil)))))))))))
+@[expose] def j68 : Codec.Json := .array (.cons (j67) (.cons (j0) .nil))
+@[expose] def j69 : Codec.Json := .array (.cons (j39) .nil)
+@[expose] def j70 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (0)) (.cons (.number (2)) .nil)))
+@[expose] def j71 : Codec.Json := .array (.cons (.number (2)) (.cons (.number (2)) (.cons (.number (2)) .nil)))
+@[expose] def j72 : Codec.Json := .array (.cons (j15) (.cons (j17) (.cons (j70) (.cons (j71) (.cons (j22) (.cons (.number (2)) .nil))))))
+@[expose] def j73 : Codec.Json := .array (.cons (j36) (.cons (j36) (.cons (j36) .nil)))
+@[expose] def j74 : Codec.Json := .array (.cons (.number (0)) (.cons (j24) (.cons (j49) .nil)))
+@[expose] def j75 : Codec.Json := .array (.cons (j74) .nil)
+@[expose] def j76 : Codec.Json := .array (.cons (j75) (.cons (j24) .nil))
+@[expose] def j77 : Codec.Json := .array (.cons (j76) .nil)
+@[expose] def j78 : Codec.Json := .array (.cons (j74) (.cons (j74) .nil))
+@[expose] def j79 : Codec.Json := .array (.cons (j78) (.cons (j24) .nil))
+@[expose] def j80 : Codec.Json := .array (.cons (j79) .nil)
+@[expose] def j81 : Codec.Json := .array (.cons (j48) (.cons (j77) (.cons (j80) .nil)))
+@[expose] def j82 : Codec.Json := .array (.cons (.number (0)) (.cons (j24) (.cons (j28) .nil)))
+@[expose] def j83 : Codec.Json := .array (.cons (j82) .nil)
+@[expose] def j84 : Codec.Json := .array (.cons (j83) .nil)
+@[expose] def j85 : Codec.Json := .array (.cons (j14) .nil)
+@[expose] def j86 : Codec.Json := .array (.cons (.number (1)) (.cons (j6) (.cons (j6) (.cons (.number (1)) (.cons (j85) .nil)))))
+@[expose] def j87 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j6) (.cons (j7) (.cons (j69) (.cons (.number (3)) (.cons (j72) (.cons (j73) (.cons (j81) (.cons (j84) (.cons (j86) .nil)))))))))))
+@[expose] def j88 : Codec.Json := .array (.cons (j87) (.cons (j0) .nil))
+@[expose] def j89 : Codec.Json := .array (.cons (j12) (.cons (j39) .nil))
+@[expose] def j90 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (0)) .nil))
+@[expose] def j91 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (0)) .nil))
+@[expose] def j92 : Codec.Json := .array (.cons (j90) (.cons (j91) .nil))
+@[expose] def j93 : Codec.Json := .array (.cons (.number (-1)) (.cons (.number (1)) .nil))
+@[expose] def j94 : Codec.Json := .array (.cons (j93) (.cons (j9) .nil))
+@[expose] def j95 : Codec.Json := .array (.cons (j92) (.cons (j94) (.cons (j9) (.cons (j38) (.cons (j65) (.cons (.number (2)) .nil))))))
+@[expose] def j96 : Codec.Json := .array (.cons (j36) (.cons (j45) .nil))
+@[expose] def j97 : Codec.Json := .array (.cons (j48) (.cons (j53) .nil))
+@[expose] def j98 : Codec.Json := .array (.cons (.number (1)) (.cons (j24) (.cons (j28) .nil)))
+@[expose] def j99 : Codec.Json := .array (.cons (j60) (.cons (j98) .nil))
+@[expose] def j100 : Codec.Json := .array (.cons (j99) .nil)
+@[expose] def j101 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j6) (.cons (j7) (.cons (j89) (.cons (.number (2)) (.cons (j95) (.cons (j96) (.cons (j97) (.cons (j100) (.cons (j66) .nil)))))))))))
+@[expose] def j102 : Codec.Json := .array (.cons (j63) .nil)
+@[expose] def j103 : Codec.Json := .array (.cons (j101) (.cons (j102) .nil))
+@[expose] def j104 : Codec.Json := .array (.cons (j68) (.cons (j88) (.cons (j103) .nil)))
+@[expose] def j105 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (2)) (.cons (j104) .nil)))
+@[expose] def graph : Codec.Json := j105
+@[expose] def equation : Codec.Json := j5
+@[expose] def j106 : Codec.Json := .array (.cons (j0) .nil)
+@[expose] def j107 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (2)) (.cons (.number (0)) .nil)))
+@[expose] def j108 : Codec.Json := .array (.cons (.number (2)) (.cons (.number (0)) (.cons (.number (0)) .nil)))
+@[expose] def j109 : Codec.Json := .array (.cons (j15) (.cons (j17) (.cons (j107) (.cons (j108) (.cons (j22) (.cons (.number (2)) .nil))))))
+@[expose] def j110 : Codec.Json := .array (.cons (j5) .nil)
+@[expose] def j111 : Codec.Json := .array (.cons (j110) (.cons (j7) (.cons (j49) (.cons (j0) (.cons (j0) .nil)))))
+@[expose] def j112 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j0) (.cons (j6) (.cons (j7) (.cons (j33) (.cons (j111) (.cons (j14) (.cons (j14) (.cons (.number (0)) (.cons (.number (0)) (.cons (.number (0)) .nil))))))))))))
+@[expose] def j113 : Codec.Json := .array (.cons (j36) (.cons (j112) (.cons (j112) .nil)))
+@[expose] def j114 : Codec.Json := .array (.cons (.number (0)) (.cons (j0) (.cons (j49) .nil)))
+@[expose] def j115 : Codec.Json := .array (.cons (j114) .nil)
+@[expose] def j116 : Codec.Json := .array (.cons (j115) (.cons (j0) .nil))
+@[expose] def j117 : Codec.Json := .array (.cons (j116) .nil)
+@[expose] def j118 : Codec.Json := .array (.cons (j114) (.cons (j114) .nil))
+@[expose] def j119 : Codec.Json := .array (.cons (j118) (.cons (j0) .nil))
+@[expose] def j120 : Codec.Json := .array (.cons (j119) .nil)
+@[expose] def j121 : Codec.Json := .array (.cons (j48) (.cons (j117) (.cons (j120) .nil)))
+@[expose] def j122 : Codec.Json := .array (.cons (j115) .nil)
+@[expose] def j123 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j6) (.cons (j7) (.cons (j106) (.cons (.number (3)) (.cons (j109) (.cons (j113) (.cons (j121) (.cons (j122) (.cons (j86) .nil)))))))))))
+@[expose] def j124 : Codec.Json := .array (.cons (j123) (.cons (j0) .nil))
+@[expose] def j125 : Codec.Json := .array (.cons (j39) (.cons (j0) .nil))
+@[expose] def j126 : Codec.Json := .array (.cons (j90) .nil)
+@[expose] def j127 : Codec.Json := .array (.cons (j91) .nil)
+@[expose] def j128 : Codec.Json := .array (.cons (j126) (.cons (j127) (.cons (j7) (.cons (j7) (.cons (j85) (.cons (.number (1)) .nil))))))
+@[expose] def j129 : Codec.Json := .array (.cons (j36) .nil)
+@[expose] def j130 : Codec.Json := .array (.cons (j48) .nil)
+@[expose] def j131 : Codec.Json := .array (.cons (.number (1)) (.cons (j0) (.cons (j49) .nil)))
+@[expose] def j132 : Codec.Json := .array (.cons (j82) (.cons (j131) .nil))
+@[expose] def j133 : Codec.Json := .array (.cons (j132) .nil)
+@[expose] def j134 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j6) (.cons (j7) (.cons (j125) (.cons (.number (1)) (.cons (j128) (.cons (j129) (.cons (j130) (.cons (j133) (.cons (j86) .nil)))))))))))
+@[expose] def j135 : Codec.Json := .array (.cons (j8) .nil)
+@[expose] def j136 : Codec.Json := .array (.cons (j134) (.cons (j135) .nil))
+@[expose] def j137 : Codec.Json := .array (.cons (j12) (.cons (j39) (.cons (j0) .nil)))
+@[expose] def j138 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (0)) (.cons (.number (0)) .nil)))
+@[expose] def j139 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (0)) (.cons (.number (0)) .nil)))
+@[expose] def j140 : Codec.Json := .array (.cons (j138) (.cons (j139) .nil))
+@[expose] def j141 : Codec.Json := .array (.cons (.number (-1)) (.cons (.number (1)) (.cons (.number (0)) .nil)))
+@[expose] def j142 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (1)) (.cons (.number (0)) .nil)))
+@[expose] def j143 : Codec.Json := .array (.cons (j141) (.cons (j142) .nil))
+@[expose] def j144 : Codec.Json := .array (.cons (j140) (.cons (j143) (.cons (j9) (.cons (j38) (.cons (j65) (.cons (.number (2)) .nil))))))
+@[expose] def j145 : Codec.Json := .array (.cons (.number (2)) (.cons (j0) (.cons (j49) .nil)))
+@[expose] def j146 : Codec.Json := .array (.cons (j60) (.cons (j98) (.cons (j145) .nil)))
+@[expose] def j147 : Codec.Json := .array (.cons (j146) .nil)
+@[expose] def j148 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j6) (.cons (j7) (.cons (j137) (.cons (.number (2)) (.cons (j144) (.cons (j96) (.cons (j97) (.cons (j147) (.cons (j66) .nil)))))))))))
+@[expose] def j149 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (3)) .nil))
+@[expose] def j150 : Codec.Json := .array (.cons (j149) .nil)
+@[expose] def j151 : Codec.Json := .array (.cons (j148) (.cons (j150) .nil))
+@[expose] def j152 : Codec.Json := .array (.cons (j68) (.cons (j88) (.cons (j124) (.cons (j136) (.cons (j151) .nil)))))
+@[expose] def j153 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (4)) (.cons (j152) .nil)))
+@[expose] def equationGraph : Codec.Json := j153
+@[expose] def j154 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-65521)) (.cons (.number (32768)) .nil)))
+@[expose] def j155 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (181)) (.cons (.number (64)) .nil)))
+@[expose] def j156 : Codec.Json := .array (.cons (j154) (.cons (j155) (.cons (j20) .nil)))
+@[expose] def margin : Codec.Json := j156
+@[expose] def j157 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-131057)) (.cons (.number (32768)) .nil)))
+@[expose] def j158 : Codec.Json := .array (.cons (j157) (.cons (j155) .nil))
+@[expose] def j159 : Codec.Json := .array (.cons (j158) .nil)
+@[expose] def j160 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-131057)) (.cons (.number (92672)) .nil)))
+@[expose] def j161 : Codec.Json := .array (.cons (j160) (.cons (j4) .nil))
+@[expose] def j162 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (185344)) (.cons (.number (131057)) .nil)))
+@[expose] def j163 : Codec.Json := .array (.cons (j162) (.cons (j20) .nil))
+@[expose] def j164 : Codec.Json := .array (.cons (j20) .nil)
+@[expose] def j165 : Codec.Json := .array (.cons (j5) (.cons (j163) (.cons (j164) .nil)))
+@[expose] def j166 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (131057)) (.cons (.number (46336)) .nil)))
+@[expose] def j167 : Codec.Json := .array (.cons (j4) (.cons (j39) (.cons (j166) .nil)))
+@[expose] def j168 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-185344)) (.cons (.number (131057)) .nil)))
+@[expose] def j169 : Codec.Json := .array (.cons (j168) (.cons (j20) .nil))
+@[expose] def j170 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (523838)) (.cons (.number (17175937249)) .nil)))
+@[expose] def j171 : Codec.Json := .array (.cons (j4) (.cons (j169) (.cons (j170) .nil)))
+@[expose] def j172 : Codec.Json := .array (.cons (j171) .nil)
+@[expose] def j173 : Codec.Json := .array (.cons (j168) (.cons (j4) .nil))
+@[expose] def j174 : Codec.Json := .array (.cons (j4) (.cons (j173) .nil))
+@[expose] def j175 : Codec.Json := .array (.cons (j174) .nil)
+@[expose] def j176 : Codec.Json := .array (.cons (j165) (.cons (j27) (.cons (j167) (.cons (j172) (.cons (j175) .nil)))))
+@[expose] def j177 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (1)) (.cons (.number (-1)) .nil)))
+@[expose] def j178 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (-1)) (.cons (.number (-1)) .nil)))
+@[expose] def j179 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j161) (.cons (j6) (.cons (j7) (.cons (j33) (.cons (j176) (.cons (j177) (.cons (j178) (.cons (.number (1)) (.cons (.number (1)) (.cons (.number (0)) .nil))))))))))))
+@[expose] def j180 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (34352136417)) (.cons (.number (24290628608)) .nil)))
+@[expose] def j181 : Codec.Json := .array (.cons (j180) (.cons (j20) .nil))
+@[expose] def j182 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (-48581257216)) (.cons (.number (34352136417)) .nil)))
+@[expose] def j183 : Codec.Json := .array (.cons (j182) (.cons (j4) .nil))
+@[expose] def j184 : Codec.Json := .array (.cons (j5) (.cons (j183) (.cons (j24) .nil)))
+@[expose] def j185 : Codec.Json := .array (.cons (j2) .nil)
+@[expose] def j186 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (34352136417)) (.cons (.number (12145314304)) .nil)))
+@[expose] def j187 : Codec.Json := .array (.cons (j4) (.cons (j185) (.cons (j186) .nil)))
+@[expose] def j188 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (48581257216)) (.cons (.number (34352136417)) .nil)))
+@[expose] def j189 : Codec.Json := .array (.cons (j188) (.cons (j4) .nil))
+@[expose] def j190 : Codec.Json := .array (.cons (.number (0)) (.cons (.number (137203125122)) (.cons (.number (1180069276412177597889)) .nil)))
+@[expose] def j191 : Codec.Json := .array (.cons (j4) (.cons (j189) (.cons (j190) .nil)))
+@[expose] def j192 : Codec.Json := .array (.cons (j191) .nil)
+@[expose] def j193 : Codec.Json := .array (.cons (j4) (.cons (j183) .nil))
+@[expose] def j194 : Codec.Json := .array (.cons (j193) .nil)
+@[expose] def j195 : Codec.Json := .array (.cons (j184) (.cons (j27) (.cons (j187) (.cons (j192) (.cons (j194) .nil)))))
+@[expose] def j196 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j181) (.cons (j6) (.cons (j7) (.cons (j33) (.cons (j195) (.cons (j34) (.cons (j35) (.cons (.number (2)) (.cons (.number (0)) (.cons (.number (2)) .nil))))))))))))
+@[expose] def j197 : Codec.Json := .array (.cons (j36) (.cons (j179) (.cons (j196) .nil)))
+@[expose] def j198 : Codec.Json := .array (.cons (.number (0)) (.cons (j161) (.cons (j49) .nil)))
+@[expose] def j199 : Codec.Json := .array (.cons (j198) .nil)
+@[expose] def j200 : Codec.Json := .array (.cons (j199) (.cons (j161) .nil))
+@[expose] def j201 : Codec.Json := .array (.cons (j200) .nil)
+@[expose] def j202 : Codec.Json := .array (.cons (j4) (.cons (j24) (.cons (j166) .nil)))
+@[expose] def j203 : Codec.Json := .array (.cons (.number (0)) (.cons (j181) (.cons (j202) .nil)))
+@[expose] def j204 : Codec.Json := .array (.cons (j198) (.cons (j203) .nil))
+@[expose] def j205 : Codec.Json := .array (.cons (j204) (.cons (j181) .nil))
+@[expose] def j206 : Codec.Json := .array (.cons (j205) .nil)
+@[expose] def j207 : Codec.Json := .array (.cons (j48) (.cons (j201) (.cons (j206) .nil)))
+@[expose] def j208 : Codec.Json := .array (.cons (j4) (.cons (j0) (.cons (j155) .nil)))
+@[expose] def j209 : Codec.Json := .array (.cons (.number (0)) (.cons (j161) (.cons (j208) .nil)))
+@[expose] def j210 : Codec.Json := .array (.cons (j209) .nil)
+@[expose] def j211 : Codec.Json := .array (.cons (j210) .nil)
+@[expose] def j212 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j6) (.cons (j7) (.cons (j159) (.cons (.number (3)) (.cons (j23) (.cons (j197) (.cons (j207) (.cons (j211) (.cons (j66) .nil)))))))))))
+@[expose] def j213 : Codec.Json := .array (.cons (j212) (.cons (j0) .nil))
+@[expose] def j214 : Codec.Json := .array (.cons (j39) (.cons (j158) .nil))
+@[expose] def j215 : Codec.Json := .array (.cons (j90) (.cons (j63) .nil))
+@[expose] def j216 : Codec.Json := .array (.cons (j215) (.cons (j65) (.cons (j9) (.cons (j38) (.cons (j65) (.cons (.number (2)) .nil))))))
+@[expose] def j217 : Codec.Json := .array (.cons (j36) (.cons (j179) .nil))
+@[expose] def j218 : Codec.Json := .array (.cons (.number (1)) (.cons (j161) (.cons (j49) .nil)))
+@[expose] def j219 : Codec.Json := .array (.cons (j218) .nil)
+@[expose] def j220 : Codec.Json := .array (.cons (j219) (.cons (j161) .nil))
+@[expose] def j221 : Codec.Json := .array (.cons (j220) .nil)
+@[expose] def j222 : Codec.Json := .array (.cons (j48) (.cons (j221) .nil))
+@[expose] def j223 : Codec.Json := .array (.cons (.number (1)) (.cons (j161) (.cons (j208) .nil)))
+@[expose] def j224 : Codec.Json := .array (.cons (j82) (.cons (j223) .nil))
+@[expose] def j225 : Codec.Json := .array (.cons (j224) .nil)
+@[expose] def j226 : Codec.Json := .array (.cons (j1) (.cons (j5) (.cons (j6) (.cons (j7) (.cons (j214) (.cons (.number (2)) (.cons (j216) (.cons (j217) (.cons (j222) (.cons (j225) (.cons (j66) .nil)))))))))))
+@[expose] def j227 : Codec.Json := .array (.cons (j226) (.cons (j135) .nil))
+@[expose] def j228 : Codec.Json := .array (.cons (j12) (.cons (j39) (.cons (j158) .nil)))
+@[expose] def j229 : Codec.Json := .array (.cons (j138) (.cons (j3) (.cons (j139) (.cons (j18) .nil))))
+@[expose] def j230 : Codec.Json := .array (.cons (.number (-1)) (.cons (.number (1)) (.cons (.number (-1)) .nil)))
+@[expose] def j231 : Codec.Json := .array (.cons (.number (-1)) (.cons (.number (1)) (.cons (.number (1)) .nil)))
+@[expose] def j232 : Codec.Json := .array (.cons (j230) (.cons (j231) (.cons (j177) (.cons (j35) .nil))))
+@[expose] def j233 : Codec.Json := .array (.cons (.number (1)) (.cons (.number (0)) (.cons (.number (0)) (.cons (.number (1)) .nil))))
+@[expose] def j234 : Codec.Json := .array (.cons (.number (2)) (.cons (.number (0)) (.cons (.number (0)) (.cons (.number (2)) .nil))))
+end Hex.RCF.RealCoefficients.EnumeratedSource.Positive
diff --git a/reports/data/hexrcf-enumerated-source/source-build-current-inputs/conformance/HexRCF/EnumeratedSource/Quote.lean.txt b/reports/data/hexrcf-enumerated-source/source-build-current-inputs/conformance/HexRCF/EnumeratedSource/Quote.lean.txt
new file mode 100644
index 0000000000..ccb507d01a
--- /dev/null
+++ b/reports/data/hexrcf-enumerated-source/source-build-current-inputs/conformance/HexRCF/EnumeratedSource/Quote.lean.txt
@@ -0,0 +1,100 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+import HexRCF.EnumeratedSource.Inputs
+import HexRCF.RealCoefficients.SourceIdentityQuote
+import HexRCF.RealCoefficients.RootHeader
+import HexRCF.RealCoefficients.RootPrepare
+import HexRCF.RealCoefficients.RationalQuote
+
+/-! Restore enumerated source proposals from literal descriptors and graphs.
+The native producer and its selected-root value never enter these proofs. The
+rational model, source alias selection and coefficient-map laws remain inputs. -/
+namespace Hex.RCF.EnumeratedSourceQuote
+open Lean Meta Qq Hex Hex.RealClosure Hex.SignDet Hex.RCF.RealCoefficients
+open Hex.RCF.SelectedRootTests Hex.RCF.SourceIdentityCases Hex.RCF.EnumeratedSourceInputs
+set_option maxRecDepth 32768
+set_option maxHeartbeats 60000000
+
+private meta def quote (literal : Name) (anchor : SourceIdentity.Anchor)
+ (equationValue enclosureValue : Expr) : Hex.RealFormula.Reify.ReifyM RootQuote.Result := do
+ let decode : RootQuote.DecoderM := fun expression =>
+ liftM (RationalQuote.decoder (mkConst ``Data.registry) expression)
+ let reader ← mkAppM ``Algebraic.RootReplay.readDescriptor
+ #[q(Data.base.codec),q(Tower.Signature.codec),q(Data.base.sign),q(Data.base.signature),
+ mkConst (literal ++ `subject),mkConst (literal ++ `graph)]
+ let header ← RootHeader.quoteWith reader decode
+ let clean ← mkAppM ``Tower.Context.isClean #[mkConst ``Data.base]
+ let prepared ← RootPrepare.prepareWith header clean
+ let scalar (polynomial sign graph : Expr) : MetaM Expr := do
+ mkAppM ``ScalarPacket.read #[mkConst ``Data.rational,q(Data.base.codec),prepared.source,
+ polynomial,sign,graph]
+ let packets : SourceIdentity.Packets := {
+ equation := ← scalar (mkConst (literal ++ `equation)) (toExpr (0 : Int))
+ (mkConst (literal ++ `equationGraph))
+ enclosure := ← scalar (mkConst (literal ++ `margin)) (toExpr (1 : Int))
+ (mkConst (literal ++ `marginGraph))
+ equationValue, enclosureValue }
+ let result ← SourceIdentity.quoteWith anchor packets prepared.context prepared.same
+ fun expression => do
+ if let some result ← prepared.decoder expression then return some result
+ decode expression
+ return ⟨result.root,result.proof,(← get).budget.consumed⟩
+
+private meta def retain (name : Name) (literal : Name) (anchor : SourceIdentity.Anchor)
+ (equationValue enclosureValue : Expr) : MetaM Unit := do
+ let basic : Hex.RealFormula.Reify.Config := {}
+ -- These all-real derivative descriptors are larger than the old interval
+ -- fixture. Use the existing full-source test envelope explicitly; the
+ -- library default and the original full-source test remain unchanged.
+ let config := {basic with ring := {basic.ring with budget :=
+ {basic.ring.budget with proofNodes := 24000000}}}
+ let result ← RootQuote.runWith (quote literal anchor equationValue enclosureValue) config
+ let result ← match result with
+ | .ok result => pure result
+ | .error error => throwError "enumerated source quotation refused: {Hex.RealFormula.Reify.Error.toMessageData error}"
+ let target ← inferType result.proof
+ let proof ← Hex.RCF.checkProof `enumeratedSource target result.proof
+ addDecl (.thmDecl {name,levelParams := [],type := target,value := proof})
+ let axioms ← collectAxioms name
+ unless axioms.all (fun name => [``propext,``Classical.choice,``Quot.sound].contains name) do
+ throwError "enumerated source quotation has inadmissible dependencies"
+ logInfo m!"enumerated source {name}: proofNodes={result.usage.proofNodes}; axioms={axioms}"
+
+run_meta do
+ withoutExporting do
+ let positive : SourceIdentity.Anchor := {
+ polynomial := mkConst ``SquareTwo.polynomial
+ square := mkConst ``SquareTwo.square
+ witness := mkConst ``positiveWitness
+ precision := mkConst ``positivePrecision
+ value := q(Real.sqrt 2)
+ selected := mkConst ``SquareTwo.square_selected_root }
+ retain `Hex.RCF.EnumeratedSourceQuote.positive
+ `Hex.RCF.RealCoefficients.EnumeratedSource.Positive positive
+ (mkConst ``positiveEquation) (mkConst ``positiveMargin)
+ let negative : SourceIdentity.Anchor := {positive with
+ square := mkConst ``negativeSquare
+ witness := mkConst ``negative_witness
+ precision := mkConst ``negative_precision
+ value := q((Field.literalRep SquareTwo.polynomial negativeSquare
+ negative_witness negative_precision).root.re)
+ selected := ← mkEqRefl q((Field.literalRep SquareTwo.polynomial negativeSquare
+ negative_witness negative_precision).root.re) }
+ retain `Hex.RCF.EnumeratedSourceQuote.negative
+ `Hex.RCF.RealCoefficients.EnumeratedSource.Negative negative
+ (mkConst ``negativeEquation) (mkConst ``negativeMargin)
+ let cubic : SourceIdentity.Anchor := {
+ polynomial := mkConst ``CubeTwo.polynomial
+ square := mkConst ``CubeTwo.square
+ witness := mkConst ``cubicWitness
+ precision := mkConst ``cubicPrecision
+ value := q((2 : ℝ) ^ (1 / 3 : ℝ))
+ selected := mkConst ``cubicSelected }
+ retain `Hex.RCF.EnumeratedSourceQuote.cubic
+ `Hex.RCF.RealCoefficients.EnumeratedSource.Cubic cubic
+ (mkConst ``cubicEquation) (mkConst ``cubicMargin)
+
+end Hex.RCF.EnumeratedSourceQuote
diff --git a/reports/data/hexrcf-enumerated-source/source-build-current-inputs/conformance/HexRCF/SelectedRoot/KernelCheck.lean.txt b/reports/data/hexrcf-enumerated-source/source-build-current-inputs/conformance/HexRCF/SelectedRoot/KernelCheck.lean.txt
new file mode 100644
index 0000000000..fced27de19
--- /dev/null
+++ b/reports/data/hexrcf-enumerated-source/source-build-current-inputs/conformance/HexRCF/SelectedRoot/KernelCheck.lean.txt
@@ -0,0 +1,58 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+
+import HexRCF.SelectedRoot.Read
+import HexRealClosure.RootPolicy
+import HexRCF.RealCoefficients.SourceBuild
+import Lean.Elab.Command
+
+meta section
+namespace Hex.RCF.SelectedRootTests.KernelCheck
+open Hex.RCF.SelectedRootTests
+open Lean Meta Hex.RealClosure Hex.SignDet
+open Hex.RealClosure.Algebraic
+
+/-- Common producer boundary for whole acceptances and their named leaves. -/
+def producers : Array Name := #[``Read.rootRead, ``Hex.RealClosure.Roots.roots?, ``Hex.RealClosure.Roots.roots,
+ ``Hex.RealClosure.Roots.Policy.roots?, ``Hex.RealClosure.Roots.Policy.roots,
+ ``Tower.Sample.roots, ``Tower.Context.roots, ``Tower.Context.roots?, ``NumberField.roots, ``NumberField.roots?,
+ ``NumberField.Presentation.roots, ``NumberField.Presentation.roots?, ``Algebraic.Context.signPoly,
+ ``Algebraic.Context.buildSigns, ``Descriptor.buildSigns, ``Descriptor.buildSignsPrepared,
+ ``Hex.SignDet.buildPrepared, ``Hex.SignDet.buildTree, ``Hex.SignDet.buildTreeFrom,
+ ``Algebraic.Element.ofPoly, ``Descriptor.prepareQueries,
+ ``Hex.RCF.RealCoefficients.SourceBuild.build,
+ ``Hex.RCF.RealCoefficients.SourceBuild.select,
+ ``Hex.RCF.RealCoefficients.ScalarPacket.buildParts]
+
+/-- Return the exact prohibited reduction observed by a checked declaration. -/
+def violation? (diagnostics : Kernel.Diagnostics) (extra : Array Name := #[]) : Option (Name × Nat) :=
+ (producers ++ extra).findSome? fun name =>
+ (diagnostics.unfoldCounter.find? name).map (name, ·)
+
+/-- Check generated replay acceptance with active reduction diagnostics.
+The rational parent construction and separately elaborated source theorems are
+outside this guard; all frozen scalar, parser, root, row and collected refusal
+acceptance proofs pass through it. Shared seed declarations wrap already
+checked scalar acceptances separately. Callers can extend the producer denylist
+with `extra` without adding imports to this shared fixture helper. -/
+def addChecked (name : Name) (type proof : Expr)
+ (extra : Array Name := #[]) (required : Array Name := #[]) : MetaM Unit := do
+ let options := (← getOptions).setBool `debug.skipKernelTC false
+ let environment := Kernel.enableDiag (Kernel.resetDiag (← getEnv)) true
+ let env ← ofExceptKernelException <| environment.addDeclCore
+ (Core.getMaxHeartbeats options).toUSize (maxRecDepth.get options).toUSize
+ (.thmDecl {name, levelParams := [], type, value := proof}) none (doCheck := true)
+ let diagnostics := Kernel.getDiagnostics env
+ unless diagnostics.enabled do throwError "kernel diagnostics disabled"
+ unless !diagnostics.unfoldCounter.isEmpty do throwError "empty kernel diagnostics"
+ if let some (name, count) := violation? diagnostics extra then
+ throwError "native production unfolded {name}: {count}"
+ for name in required do
+ unless diagnostics.unfoldCounter.contains name do
+ throwError "kernel diagnostics did not observe required reader {name}"
+ setEnv (Kernel.enableDiag env false)
+
+end Hex.RCF.SelectedRootTests.KernelCheck
diff --git a/reports/data/hexrcf-enumerated-source/source-build-current-inputs/conformance/HexRCF/SourceBuild.lean.txt b/reports/data/hexrcf-enumerated-source/source-build-current-inputs/conformance/HexRCF/SourceBuild.lean.txt
new file mode 100644
index 0000000000..92f7d9eb6b
--- /dev/null
+++ b/reports/data/hexrcf-enumerated-source/source-build-current-inputs/conformance/HexRCF/SourceBuild.lean.txt
@@ -0,0 +1,99 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+import HexRCF.RealCoefficients.SourceBuild
+import HexRCF.RealCoefficients.SourceIdentity
+import HexRealClosure.NumberFieldTower
+import HexSignDet.Codec.Bytes
+import HexRCF.EnumeratedSource.Positive
+import HexRCF.EnumeratedSource.Negative
+import HexRCF.EnumeratedSource.Cubic
+
+/-! Native source proposals from enumerated roots, without a retained selected
+root fixture. These are producer/serialization controls, not quoted real proofs. -/
+namespace Hex.RCF.SourceBuildTests
+open Hex Hex.RealClosure Hex.SignDet Hex.RCF.RealCoefficients
+
+def registry : BaseContext.Registry := fun _ => none
+abbrev base := Hex.RealClosure.NumberField.base registry
+def poly (values : List Rat) : base.Poly :=
+ DensePoly.ofCoeffs (values.toArray.map fun value => ⟨value⟩)
+
+def margin (square : DyadicSquare) : base.Poly :=
+ DensePoly.ofCoeffs ((SourceIdentity.margin square).coeffs.map fun value => ⟨value⟩)
+
+private def require (polynomial window : base.Poly) : IO (SourceBuild.Result base) := do
+ match SourceBuild.build polynomial window with
+ | .error error => throw (IO.userError s!"source production refused: {repr error}")
+ | .ok result => return result
+
+private def signAt (source : SourceBuild.Result base) (query : base.Poly) : IO Int := do
+ let context := Algebraic.Context.adjoin source.root base.isClean
+ let some result := ScalarPacket.buildParts context base.codec query
+ | throw (IO.userError "source observation production failed")
+ return result.sign
+
+private def rejected (polynomial window : base.Poly) (ambiguous : Bool) : IO Unit := do
+ match SourceBuild.build polynomial window with
+ | .error .ambiguous => unless ambiguous do throw (IO.userError "unexpected ambiguity")
+ | .error .unselected => if ambiguous then throw (IO.userError "lost ambiguous roots")
+ | _ => throw (IO.userError "source selection did not preserve its refusal")
+
+private def packet (source : SourceBuild.Result base) (proposal : ScalarPacket.Proposal) : IO Unit := do
+ let literal := proposal.packet
+ let .ok fields := Codec.tuple 3 literal | throw (IO.userError "invalid scalar packet layout")
+ unless fields[0] == proposal.polynomial && fields[1] == Codec.Json.of proposal.sign &&
+ fields[2] == proposal.evidence do throw (IO.userError "scalar packet fields changed")
+ let .ok graph := Codec.readGraph base.codec Tower.Signature.codec base.signature
+ source.root.raw.head source.root.raw.lower source.root.raw.upper proposal.evidence
+ | throw (IO.userError "source graph did not decode")
+ unless (graph.validate? base.sign base.signature source.root.raw.head
+ source.root.raw.lower source.root.raw.upper).isSome do
+ throw (IO.userError "source graph did not independently validate")
+
+#eval (show IO Unit from do
+ let quadratic := poly [-2,0,1]
+ let square : DyadicSquare := ⟨Dyadic.ofInt 181 >>> (7 : Int),0,8⟩
+ let positive ← require quadratic (margin square)
+ let negative ← require quadratic (margin {square with re := -square.re})
+ unless (← signAt positive (poly [0,1])) == 1 &&
+ (← signAt negative (poly [0,1])) == -1 do
+ throw (IO.userError "source selection confused real conjugates")
+ let cubicSquare : DyadicSquare := ⟨Dyadic.ofInt 1290 >>> (10 : Int),0,12⟩
+ let cubic ← require (poly [-2,0,0,1]) (margin cubicSquare)
+ unless (← signAt cubic (poly [-1,1])) == 1 do
+ throw (IO.userError "nonquadratic root lost its positive embedding")
+ for source in [positive,negative,cubic] do
+ packet source source.equation
+ packet source source.enclosure
+ unless source.equation.sign == 0 && source.enclosure.sign == 1 do
+ throw (IO.userError "source proposal changed selected signs")
+ rejected quadratic (poly [1]) true
+ rejected quadratic (poly [-1]) false
+ rejected quadratic (poly []) false
+ match SourceBuild.select (poly [1]) (poly [1]) [positive.root] with
+ | .error .equation => pure ()
+ | _ => throw (IO.userError "source selection ignored a different equation")
+ match SourceBuild.select quadratic (poly [1]) [positive.root,positive.root] with
+ | .error .ambiguous => pure ()
+ | _ => throw (IO.userError "duplicate proposed roots bypassed ambiguity")
+ match SourceBuild.build (poly []) (poly [1]) with
+ | .error (.roots _) => pure ()
+ | _ => throw (IO.userError "invalid root input bypassed root production failure")
+ let _ : Hashable base.Value := ⟨fun value => hash (base.codec.encode value)⟩
+ let _ : Hashable Tower.Signature := ⟨fun value => hash (Tower.Signature.codec.encode value)⟩
+ let packets := [positive,negative,cubic].toArray.map fun source =>
+ Codec.Json.arr #[Codec.descriptor base.codec Tower.Signature.codec source.root.raw,
+ Codec.graph base.codec Tower.Signature.codec (Dag.encode source.root.evidence),
+ source.equation.packet,source.enclosure.packet]
+ let frozen := Codec.Json.arr #[EnumeratedSource.Positive.packet,
+ EnumeratedSource.Negative.packet,EnumeratedSource.Cubic.packet]
+ unless (Codec.Json.arr packets).writeBytes == frozen.writeBytes do
+ throw (IO.userError "enumerated-source proposals differ from frozen quotation inputs")
+ if let some path ← IO.getEnv "HEX_RCF_ENUMERATED_SOURCE_OUTPUT" then
+ IO.FS.writeBinFile path (Codec.Json.arr packets).writeBytes
+ IO.println "source enumeration: positive/negative quadratic, cubic, six independent graph replays, ambiguous/empty/zero windows, wrong equation and duplicate-root refusals passed")
+
+end Hex.RCF.SourceBuildTests
diff --git a/reports/data/hexrcf-enumerated-source/source-build-current-inputs/lakefile.lean.txt b/reports/data/hexrcf-enumerated-source/source-build-current-inputs/lakefile.lean.txt
new file mode 100644
index 0000000000..4aad6249b3
--- /dev/null
+++ b/reports/data/hexrcf-enumerated-source/source-build-current-inputs/lakefile.lean.txt
@@ -0,0 +1,3428 @@
+module
+
+public import Lake
+
+public section
+
+open System Lake DSL
+
+package Hex where
+ -- Parse docstrings as Verso markup. Suggestions remain opt-in because they
+ -- attempt to elaborate ordinary code spans, including local expressions.
+ leanOptions := #[⟨`doc.verso, true⟩, ⟨`doc.verso.suggestions, false⟩]
+
+require verso from git
+ "https://github.com/leanprover/verso.git" @ "v4.35.0-rc3"
+
+-- Test-only native oracle. Released Hex libraries do not depend on it.
+require NautyFFI from git
+ "https://github.com/leanprover/nauty-ffi.git" @
+ "ec8597014d0ae82490a616b855d59a35e6bfa21f"
+
+require «lean-bench» from git
+ "https://github.com/kim-em/lean-bench.git" @ "master"
+
+-- Abstract Sturm–Tarski semantics for the development query adapters, and
+-- Hasse's theorem for the ECPP companion.
+require TauCeti from git
+ "https://github.com/TauCetiProject/TauCeti.git" @
+ "1c497c347f615b3087cb605f8cf743e591376105"
+
+require mathlib from git
+ "https://github.com/leanprover-community/mathlib4.git" @
+ "6b7abb3c7686292736be2955bd3eb9ebf63b456a"
+
+private def clmulOTarget (pkg : Package) : FetchM (Job FilePath) := do
+ let oFile := pkg.dir / defaultBuildDir / "HexGF2" / "ffi" / "clmul.o"
+ let srcTarget ← inputTextFile <| pkg.dir / "HexGF2" / "ffi" / "clmul.c"
+ buildFileAfterDep oFile srcTarget fun srcFile => do
+ let flags := #["-I", (← getLeanIncludeDir).toString, "-fPIC", "-O3"]
+ compileO oFile srcFile flags
+
+private def zmod64MulOTarget (pkg : Package) : FetchM (Job FilePath) := do
+ let oFile := pkg.dir / defaultBuildDir / "HexModArith" / "ffi" / "zmod64_mul.o"
+ let srcTarget ← inputTextFile <| pkg.dir / "HexModArith" / "ffi" / "zmod64_mul.c"
+ buildFileAfterDep oFile srcTarget fun srcFile => do
+ -- `LEAN_EXPORTING` makes `LEAN_EXPORT` a dllexport on Windows, as Lake
+ -- does for Lean's own C; a carrier DLL otherwise hides these symbols.
+ let flags := #["-I", (← getLeanIncludeDir).toString, "-fPIC", "-O3",
+ "-DLEAN_EXPORTING"]
+ -- Mathlib's sandbox permits writes in the build directory, but not /tmp.
+ -- Set TMPDIR for this compiler process only, including compiler wrappers.
+ createParentDirs oFile
+ proc {
+ cmd := "cc"
+ args := #["-c", "-o", oFile.toString, srcFile.toString] ++ flags
+ env := #[("TMPDIR", some (← IO.FS.realPath (oFile.parent.getD ".")).toString)]
+ }
+
+extern_lib hexgf2ffi (pkg) := do
+ let name := nameToStaticLib "hexgf2ffi"
+ let oTarget ← clmulOTarget pkg
+ buildStaticLib (pkg.staticLibDir / name) #[oTarget]
+
+private def hexArithOTarget (pkg : Package) (src : String) : FetchM (Job FilePath) := do
+ let stem := (src.dropEnd 2).toString
+ let oFile := pkg.dir / defaultBuildDir / "HexArith" / "ffi" / s!"{stem}.o"
+ let srcTarget ← inputTextFile <| pkg.dir / "HexArith" / "ffi" / src
+ buildFileAfterDep oFile srcTarget fun srcFile => do
+ -- `LEAN_EXPORTING` makes `LEAN_EXPORT` a dllexport on Windows, as Lake
+ -- does for Lean's own C; a carrier DLL otherwise hides these symbols.
+ let flags := #["-I", (← getLeanIncludeDir).toString, "-fPIC", "-O3",
+ "-DLEAN_EXPORTING"]
+ -- Mathlib's sandbox permits writes in the build directory, but not /tmp.
+ -- Set TMPDIR for this compiler process only, including compiler wrappers.
+ createParentDirs oFile
+ proc {
+ cmd := "cc"
+ args := #["-c", "-o", oFile.toString, srcFile.toString] ++ flags
+ env := #[("TMPDIR", some (← IO.FS.realPath (oFile.parent.getD ".")).toString)]
+ }
+
+-- Object files rather than an archive: a library's shared form keeps every
+-- object it is given, while an archive contributes only referenced members.
+target hexarithWideO pkg : FilePath := hexArithOTarget pkg "wide_arith.c"
+
+-- TODO(lean4#15160): remove extended_gcd.c after the pinned toolchain provides
+-- Nat.extendedGcd: https://github.com/leanprover/lean4/pull/15160
+target hexarithGcdO pkg : FilePath := hexArithOTarget pkg "extended_gcd.c"
+
+target hexmodarithO pkg : FilePath := zmod64MulOTarget pkg
+
+target hexecpppariio pkg : FilePath := do
+ let oFile := pkg.dir / defaultBuildDir / "HexECPPTheory" / "ffi" / "pari_pipe.o"
+ let srcTarget ← inputTextFile <| pkg.dir / "HexECPPTheory" / "ffi" / "pari_pipe.c"
+ let oTarget ← buildFileAfterDep oFile srcTarget fun srcFile => do
+ createParentDirs oFile
+ proc {
+ cmd := "cc"
+ args := #["-c", "-o", oFile.toString, srcFile.toString,
+ "-I", (← getLeanIncludeDir).toString, "-fPIC", "-O2", "-std=c11"]
+ env := #[("TMPDIR", some (← IO.FS.realPath (oFile.parent.getD ".")).toString)]
+ }
+ buildStaticLib (pkg.staticLibDir / nameToStaticLib "hexecpppariio") #[oTarget]
+
+target hexintfactorpariio pkg : FilePath := do
+ let oFile := pkg.dir / defaultBuildDir / "HexIntFactor" / "ffi" / "pari_pipe.o"
+ let srcTarget ← inputTextFile <| pkg.dir / "HexIntFactor" / "ffi" / "pari_pipe.c"
+ let oTarget ← buildFileAfterDep oFile srcTarget fun srcFile => do
+ createParentDirs oFile
+ proc {
+ cmd := "cc"
+ args := #["-c", "-o", oFile.toString, srcFile.toString,
+ "-I", (← getLeanIncludeDir).toString, "-fPIC", "-O2", "-std=c11"]
+ env := #[("TMPDIR", some (← IO.FS.realPath (oFile.parent.getD ".")).toString)]
+ }
+ buildStaticLib (pkg.staticLibDir / nameToStaticLib "hexintfactorpariio") #[oTarget]
+
+private def hexlllProviderOTarget (pkg : Package) : FetchM (Job FilePath) := do
+ let oFile := pkg.dir / defaultBuildDir / "HexLLL" / "ffi" / "lean_hexlll_provider.o"
+ let srcTarget ← inputTextFile <| pkg.dir / "HexLLL" / "ffi" / "lean_hexlll_provider.c"
+ buildFileAfterDep oFile srcTarget fun srcFile => do
+ let flags := #["-I", (← getLeanIncludeDir).toString, "-fPIC", "-O3"]
+ compileO oFile srcFile flags
+
+extern_lib hexlllffi (pkg) := do
+ let name := nameToStaticLib "hexlllffi"
+ let oTarget ← hexlllProviderOTarget pkg
+ buildStaticLib (pkg.staticLibDir / name) #[oTarget]
+
+private def nautyVendorOTarget (pkg : Package) (src : String) : FetchM (Job FilePath) := do
+ let stem := (src.dropEnd 2).toString
+ let oFile := pkg.dir / defaultBuildDir / "vendor" / "nauty-2.9.3" / s!"{stem}.o"
+ let srcTarget ← inputTextFile <| pkg.dir / "vendor" / "nauty-2.9.3" / src
+ buildFileAfterDep oFile srcTarget fun srcFile => do
+ let flags := #["-I", (pkg.dir / "vendor" / "nauty-2.9.3").toString,
+ "-fPIC", "-O2", "-std=c11", "-DUSE_TLS"]
+ compileO oFile srcFile flags
+
+private def nautyCanonOTarget (pkg : Package) : FetchM (Job FilePath) := do
+ let oFile := pkg.dir / defaultBuildDir / "Hex" / "BenchOracle" / "ffi" /
+ "nauty_canon.o"
+ let srcTarget ← inputTextFile <| pkg.dir / "Hex" / "BenchOracle" / "ffi" /
+ "nauty_canon.c"
+ buildFileAfterDep oFile srcTarget fun srcFile => do
+ let flags := #["-I", (← getLeanIncludeDir).toString,
+ "-I", (pkg.dir / "vendor" / "nauty-2.9.3").toString,
+ "-fPIC", "-O2", "-std=c11", "-DUSE_TLS"]
+ compileO oFile srcFile flags
+
+extern_lib hexnautyffi (pkg) := do
+ let name := nameToStaticLib "hexnautyffi"
+ let vendorTargets ← #["nauty.c", "nautil.c", "naugraph.c", "schreier.c",
+ "naurng.c"].mapM (nautyVendorOTarget pkg)
+ let shimTarget ← nautyCanonOTarget pkg
+ buildStaticLib (pkg.staticLibDir / name) (vendorTargets.push shimTarget)
+
+lean_lib Hex where
+
+-- Mathlib-free dependencies and producers called during elaboration.
+lean_lib HexBasic
+
+lean_lib HexTruncatedSeries where
+
+@[default_target]
+lean_lib HexTruncatedSeriesTheory where
+
+lean_lib HexArith where
+ precompileModules := true
+
+-- The C objects ride on a separate library that owns the modules binding them.
+-- Lake links a module's native library against the whole shared library of any
+-- *other* library it imports, objects included, but never adds its own
+-- library's `moreLinkObjs`; Windows resolves every symbol at link time, so the
+-- objects must sit in a different library from the modules that import them.
+-- Declared after `HexArith`, because Lake gives a module to the last library
+-- that claims it. These modules import nothing from `HexArith`, and
+-- `extended_gcd.c` calls back into `HexArith.Nat.ExtendedGcd`, so both sides
+-- of that callback live in one shared library. The single root named after the
+-- library makes Lake load it as a plugin; Lean loads every plain dynlib before
+-- any plugin, so a carrier that is not a plugin cannot depend on one.
+lean_lib HexArithNative where
+ roots := #[`HexArithNative]
+ globs := #[.one `HexArithNative, .one `HexArith.UInt64.Wide,
+ .one `HexArith.Nat.ExtendedGcd]
+ precompileModules := true
+ moreLinkObjs := #[hexarithWideO, hexarithGcdO]
+ -- TODO(lean4#15160): remove -lgmp with the local extended_gcd.c adapter.
+ moreLinkArgs := #["-lgmp"]
+
+lean_lib HexPoly where
+
+lean_lib HexPolyFast where
+
+@[default_target]
+lean_lib HexOrderedFn where
+
+@[default_target]
+lean_lib HexOrderedFnTheory where
+
+@[default_target]
+lean_lib HexOrderedFnTests where
+ globs := #[.one `HexOrderedFn.Tests, .one `HexOrderedFnTheory.Tests,
+ .one `HexOrderedFn.InfinitesimalTests, .one `HexOrderedFnTheory.InfinitesimalTests,
+ .one `HexOrderedFn.ExtensionTests, .one `HexOrderedFnTheory.LiouvilleTests,
+ .one `HexOrderedFnTheory.LintTests]
+
+lean_lib HexMvPoly where
+
+@[default_target]
+lean_lib HexRealFormula where
+
+@[default_target]
+lean_lib HexRealFormulaTheory where
+
+lean_lib HexMvGcd where
+
+@[default_target]
+lean_lib HexGenericRank where
+
+@[default_target]
+lean_lib HexGenericRankTheory where
+
+lean_lib HexReflect where
+
+@[default_target]
+lean_lib HexReflectTheory where
+
+@[default_target]
+lean_lib HexKronecker where
+
+@[default_target]
+lean_lib HexKroneckerTheory where
+
+@[default_target]
+lean_lib HexKroneckerTests where
+ globs := #[.one `HexKroneckerTheory.Tests]
+
+lean_lib HexSparsePoly where
+
+lean_lib HexModArith where
+ precompileModules := true
+
+-- Carries `zmod64_mul.c` for the modules that bind it; see `HexArithNative`.
+lean_lib HexModArithNative where
+ roots := #[`HexModArithNative]
+ globs := #[.one `HexModArithNative, .one `HexModArith.WordMod,
+ .one `HexModArith.Residue]
+ precompileModules := true
+ moreLinkObjs := #[hexmodarithO]
+
+lean_lib HexModular where
+
+@[default_target]
+lean_lib HexModularMatrix where
+
+@[default_target]
+lean_lib HexModularMatrixTheory where
+
+lean_lib HexGF2 where
+ precompileModules := true
+
+lean_lib HexPolyZ where
+
+lean_lib HexPolyZGcd where
+
+@[default_target]
+lean_lib HexRationalFn where
+
+@[default_target]
+lean_lib HexRationalFnTheory where
+
+lean_lib HexRoots where
+
+lean_lib HexResultant where
+
+lean_lib HexNumberField where
+
+lean_lib HexRealAlgebraic where
+
+@[default_target]
+lean_lib HexRealAlgebraicTheory where
+
+@[default_target]
+lean_lib HexRealAlgebraicTheoryTests where
+ globs := #[.one `HexRealAlgebraicTheory.Tests]
+
+lean_lib HexNumberFieldTower where
+
+lean_lib HexPolyFp where
+ precompileModules := true
+
+lean_lib HexGFqRing where
+
+lean_lib HexGFqField where
+
+lean_lib HexBerlekamp where
+
+lean_lib HexHensel where
+ -- `WordPoly.mul` has a native convolution extern used by downstream
+ -- interpreter-time guards, so its module dynlib must export the stub.
+ precompileModules := true
+
+lean_lib HexMvHensel where
+
+lean_lib HexMvFactor where
+
+lean_lib HexConway where
+
+lean_lib HexGFq where
+
+lean_lib HexPrimality
+
+lean_lib HexECPP
+
+lean_lib HexIntFactor where
+ globs := #[`HexIntFactor, `HexIntFactor.Pari, `HexIntFactor.Export,
+ `HexIntFactor.Replay, `HexIntFactor.Mixed.Replay, `HexIntFactor.Mixed.Import,
+ `HexIntFactor.Mixed.Pari, `HexIntFactor.Mixed.Export,
+ `HexIntFactor.Mixed.Frozen.Small].map Glob.one
+ -- The registered construction provider must also execute natively.
+ precompileModules := true
+
+-- Large frozen ECPP endpoints have measured finite replay allocations.
+lean_lib HexIntFactorMixedFrozen where
+ roots := #[`HexIntFactor.Mixed.Frozen.CaseA, `HexIntFactor.Mixed.Frozen.CaseB,
+ `HexIntFactor.Mixed.Frozen.Partial]
+
+lean_lib HexIntFactorTests where
+ globs := #[`HexIntFactor.ImportTests, `HexIntFactor.PariTests,
+ `HexIntFactor.ExportTests, `HexIntFactor.Mixed.ImportTests,
+ `HexIntFactor.Mixed.ExportTests,
+ `HexIntFactor.Frozen.Case0,
+ `HexIntFactor.Frozen.Case1,
+ `HexIntFactor.Frozen.Case2,
+ `HexIntFactor.Frozen.Case3,
+ `HexIntFactor.Frozen.Case4,
+ `HexIntFactor.Frozen.Case5,
+ `HexIntFactor.Frozen.Case6, `HexIntFactor.Frozen.Partial12
+ ].map Glob.one
+
+lean_lib HexBerlekampZassenhaus where
+
+lean_lib HexRealRoots where
+
+@[default_target]
+lean_lib HexSturm where
+
+@[default_target]
+lean_lib HexSignDet where
+
+@[default_target]
+lean_lib HexSignDetTheory where
+ leanOptions := #[⟨`autoImplicit, false⟩]
+
+lean_lib HexRealClosure where
+ -- The runnable selected-root tests use `#eval` across the library boundary.
+ precompileModules := true
+
+@[default_target]
+lean_lib HexRealClosureTests where
+ globs := #[.one `HexRealClosure.Tests, .one `HexRealClosure.BaseJsonTests, .one `HexRealClosure.BaseHistoryTests, .one `HexRealClosure.PackingTests, .one `HexRealClosure.InversePackingTests, .one `HexRealClosure.ValueSignsTests, .one `HexRealClosure.RootOrderTests,
+ .one `HexRealClosure.RootPolicyTests, .one `HexRealClosure.RootFactorsTests, .one `HexRealClosure.TowerRootsTests,
+ .one `HexRealClosure.RootCollectionTests, .one `HexRealClosure.TowerPresentationTests,
+ .one `HexRealClosure.LocalSampleTests, .one `HexRealClosure.LiveContextTests,
+ .one `HexRealClosure.ReconciledGatherTests, .one `HexRealClosure.ReconciledBaseTests,
+ .one `HexRealClosure.LiveRequestTests,
+ .one `HexRealClosure.SignatureCodecTests,
+ .one `HexRealClosure.TrivialTests, .one `HexRealClosure.TrivialTowerTests,
+ .one `HexRealClosure.TowerEnlargeOrderTests,
+ .one `HexRealClosure.BaseEvaluateTests, .one `HexRealClosure.BasePermutationTests,
+ .one `HexRealClosure.TowerTransportTests, .one `HexRealClosure.BaseInclusionTests,
+ .one `HexRealClosure.SharedBaseTests, .one `HexRealClosure.BaseReconciliationTests]
+
+-- Native CI capacity probes for the actual certificate/context codecs.
+lean_exe hexrealclosure_codec_bytes where
+ srcDir := "conformance"
+ root := `HexRealClosure.CodecBytesDriver
+
+-- The deep fixture is type-checked above; only its execution is outside routine CI.
+lean_exe hexrealclosure_transport_tests where
+ root := `HexRealClosure.TowerTransportTests
+
+@[default_target]
+lean_lib HexRealClosureTheory where
+
+@[default_target]
+lean_lib HexRealClosureTheoryTests where
+ globs := #[.one `HexRealClosureTheory.BaseTests,
+ .one `HexRealClosureTheory.BaseSubsequenceTests,
+ .one `HexRealClosureTheory.BaseStagedReorderTests,
+ .one `HexRealClosureTheory.ReprProviderData,
+ .one `HexRealClosureTheory.ReprProviderTests]
+
+@[default_target]
+lean_lib HexSturmTheory where
+
+@[default_target]
+lean_lib HexSturmTheoryTests where
+ globs := #[.one `HexSturmTheory.Tests,
+ .one `HexSturmTheory.Tests.Replay.Accepted,
+ .one `HexSturmTheory.Tests.Replay.Rejected,
+ .one `HexSturmTheory.Tests.Replay.Baseline,
+ .one `HexSturmTheory.LintTests]
+
+lean_lib HexInterval where
+
+@[default_target]
+lean_lib HexPolyTheory where
+
+@[default_target]
+lean_lib HexMvPolyTheory where
+
+@[default_target]
+lean_lib HexSparsePolyTheory where
+
+@[default_target]
+lean_lib HexModArithTheory where
+
+@[default_target]
+lean_lib HexPolyZTheory where
+
+@[default_target]
+lean_lib HexPolyZGcdTheory where
+
+@[default_target]
+lean_lib HexRootsTheory where
+
+@[default_target]
+lean_lib HexResultantTheory where
+
+@[default_target]
+lean_lib HexNumberFieldTheory where
+
+@[default_target]
+lean_lib HexNumberFieldTowerTheory where
+
+@[default_target]
+lean_lib HexPolyFpTheory where
+
+lean_lib HexBerlekampTheory where
+
+@[default_target]
+lean_lib HexHenselTheory where
+
+@[default_target]
+lean_lib HexGF2Theory where
+
+@[default_target]
+lean_lib HexGFqTheory where
+
+@[default_target]
+lean_lib HexBerlekampZassenhausTheory where
+
+@[default_target]
+lean_lib HexPrimalityTheory where
+
+lean_lib HexECPPTheory where
+ roots := #[`HexECPPTheory, `HexECPPTheory.Native, `HexECPPTheory.Pari]
+
+-- Lake selects the last matching library. Keep the Mathlib-free IO sidecar
+-- after the bridge so only this module needs a shared native library.
+lean_lib HexECPPTheoryPariIO where
+ roots := #[`HexECPPTheory.Pari.IO]
+ globs := #[.one `HexECPPTheory.Pari.IO]
+ precompileModules := true
+ moreLinkObjs := #[hexecpppariio]
+
+-- Only the optional producer's interruptible pipe module needs native IO.
+lean_lib HexIntFactorPariIO where
+ roots := #[`HexIntFactor.Pari.IO]
+ globs := #[.one `HexIntFactor.Pari.IO]
+ precompileModules := true
+ moreLinkObjs := #[hexintfactorpariio]
+
+-- The release aggregate also builds these modules. Its manifest equality
+-- check requires that registration; all owners use the same Lean settings.
+lean_lib HexECPPTheoryTests where
+ globs := #[.one `HexECPPTheory.Tests, .one `HexECPPTheory.LintTests]
+
+@[default_target]
+lean_lib HexIntFactorTheory where
+ roots := #[`HexIntFactorTheory, `HexIntFactorTheory.Mixed]
+
+lean_lib HexMatrix
+
+-- Native compilation accelerates the producer. Consumers whose artifact cache
+-- does not distribute native libraries can set `hexPermGroupNative=false`.
+@[default_target]
+lean_lib HexPermGroup where
+ precompileModules := get_config? hexPermGroupNative != some "false"
+
+@[default_target]
+lean_lib HexPermGroupTheory where
+
+@[default_target]
+lean_lib HexPermGroupTests where
+ globs := #[.one `HexPermGroup.Tests, .one `HexPermGroup.CertificateTests,
+ .one `HexPermGroup.ImportTests,
+ .one `HexPermGroupTheory.Tests, .one `HexPermGroupTheory.CertificateTests,
+ .one `HexPermGroupTheory.TacticTests]
+
+lean_lib HexGraph where
+
+lean_lib HexGraphIso
+
+@[default_target]
+lean_lib HexGraphIsoTheory where
+
+lean_lib HexCharPoly where
+ precompileModules := true
+
+lean_lib HexMinPoly where
+
+lean_lib HexPolySmith where
+
+@[default_target]
+lean_lib HexPolySmithTheory where
+
+lean_lib HexRowReduce
+
+lean_lib HexPosDef
+
+@[default_target]
+lean_lib HexPosDefTheory
+
+@[default_target]
+lean_lib HexPosDefTheoryTests where
+ globs := #[`HexPosDefTheory.Tests].map Glob.one
+
+@[default_target]
+lean_lib HexPosDefTheoryProofProbe where
+ srcDir := "bench"
+ globs := #[`HexPosDefTheory.ProofProbe.E8, `HexPosDefTheory.ProofProbe.Gram8,
+ `HexPosDefTheory.ProofProbe.Gram16, `HexPosDefTheory.ProofProbe.Gram32].map Glob.one
+
+lean_lib HexDeterminant
+
+lean_lib HexBareiss
+
+lean_lib HexDeterminantalIdeal where
+
+lean_lib HexDet where
+
+lean_lib HexRank where
+ precompileModules := true
+
+lean_lib HexHermite where
+ precompileModules := true
+
+lean_lib HexSmith where
+ precompileModules := true
+
+lean_lib HexHermiteTheory where
+
+lean_lib HexSmithTheory where
+
+lean_lib HexGramSchmidt where
+
+lean_lib HexLatticeEnum where
+
+@[default_target]
+lean_lib HexLatticeEnumTheory where
+
+@[default_target]
+lean_lib HexLatticeEnumTests where
+ globs := #[`HexLatticeEnumTheory.Tests, `HexLatticeEnumTheory.LintTests]
+
+lean_lib HexLLL where
+ precompileModules := true
+ extraDepTargets := #[`hexlllffi]
+ -- `dlopen` lives in libdl on Linux, in libc on macOS, and is absent on
+ -- Windows, where the provider uses LoadLibrary instead.
+ moreLinkArgs :=
+ if System.Platform.isOSX || System.Platform.isWindows then
+ #[]
+ else
+ #["-ldl"]
+
+@[default_target]
+lean_lib HexMatrixTheory where
+
+@[default_target]
+lean_lib HexCharPolyTheory where
+
+@[default_target]
+lean_lib HexMinPolyTheory where
+
+@[default_target]
+lean_lib HexRowReduceTheory where
+
+@[default_target]
+lean_lib HexDeterminantTheory where
+
+@[default_target]
+lean_lib HexDeterminantalIdealTheory where
+
+@[default_target]
+lean_lib HexDeterminantalIdealTests where
+ globs := #[`HexDeterminantalIdealTheory.Tests]
+
+@[default_target]
+lean_lib HexPolyDet where
+
+@[default_target]
+lean_lib HexPolyDetTheory where
+
+lean_lib HexPolyDetTheoryProofProbe where
+ srcDir := "bench"
+ globs := #[`HexPolyDetTheory.ProofProbe.Numeric2Hex,
+ `HexPolyDetTheory.ProofProbe.Symbolic2Hex,
+ `HexPolyDetTheory.ProofProbe.Quotient2Hex,
+ `HexPolyDetTheory.ProofProbe.ResultNumeric2Hex,
+ `HexPolyDetTheory.ProofProbe.ResultSymbolic2Hex,
+ `HexPolyDetTheory.ProofProbe.OriginalQuadratic4,
+ `HexPolyDetTheory.ProofProbe.RankOne10].map Glob.one
+
+@[default_target]
+lean_lib HexBareissTheory where
+
+lean_lib HexBareissTheoryProofProbe where
+ srcDir := "bench"
+ globs := #[`HexBareissTheory.ProofProbe.Baseline,
+ `HexBareissTheory.ProofProbe.MathlibBaseline,
+ `HexBareissTheory.ProofProbe.Dense8Hex,
+ `HexBareissTheory.ProofProbe.Dense8Mathlib,
+ `HexBareissTheory.ProofProbe.Dense12Hex,
+ `HexBareissTheory.ProofProbe.Dense12Mathlib,
+ `HexBareissTheory.ProofProbe.Dense16Hex,
+ `HexBareissTheory.ProofProbe.Dense16Mathlib,
+ `HexBareissTheory.ProofProbe.Dense32Hex,
+ `HexBareissTheory.ProofProbe.Tridiagonal16Hex,
+ `HexBareissTheory.ProofProbe.Tridiagonal16Mathlib,
+ `HexBareissTheory.ProofProbe.Vandermonde8Hex,
+ `HexBareissTheory.ProofProbe.Vandermonde8Mathlib,
+ `HexBareissTheory.ProofProbe.Singular16Hex,
+ `HexBareissTheory.ProofProbe.Singular16Mathlib,
+ `HexBareissTheory.ProofProbe.Large8Bits64Hex,
+ `HexBareissTheory.ProofProbe.Large8Bits64Mathlib,
+ `HexBareissTheory.ProofProbe.Large4Bits256Hex,
+ `HexBareissTheory.ProofProbe.Large4Bits256Mathlib,
+ `HexBareissTheory.ProofProbe.Rational8Hex,
+ `HexBareissTheory.ProofProbe.Rational8Mathlib]
+
+@[default_target]
+lean_lib HexDetTheory where
+
+lean_lib HexRankTheory where
+
+@[default_target]
+lean_lib HexRankTests where
+ globs := #[`HexRankTheory.Tests, `HexRankTheory.NumberFieldTests]
+
+@[default_target]
+lean_lib HexGenericRankTests where
+ globs := #[`HexGenericRankTheory.Tests]
+
+lean_lib HexDeterminantalIdealTheoryProofProbe where
+ srcDir := "bench"
+ globs := #[`HexDeterminantalIdealTheory.ProofProbe.Full2R1,
+ `HexDeterminantalIdealTheory.ProofProbe.Full2R2,
+ `HexDeterminantalIdealTheory.ProofProbe.Low2R1].map Glob.one
+
+lean_lib HexGenericRankTheoryProofProbe where
+ srcDir := "bench"
+ globs := #[`HexGenericRankTheory.ProofProbe.VariableGeneric,
+ `HexGenericRankTheory.ProofProbe.VariableHypothesis,
+ `HexGenericRankTheory.ProofProbe.VariableSideGoal,
+ `HexGenericRankTheory.ProofProbe.FiniteGeneric].map Glob.one
+
+lean_lib HexRankTheoryProofProbe where
+ srcDir := "bench"
+ globs := #[`HexRankTheory.ProofProbe.Dense8Hex,
+ `HexRankTheory.ProofProbe.Deficient16Hex,
+ `HexRankTheory.ProofProbe.Rational8Hex,
+ `HexRankTheory.ProofProbe.Quadratic8Hex,
+ `HexRankTheory.ProofProbe.Algebraic8Hex,
+ `HexRankTheory.ProofProbe.NumberFieldSupport].map Glob.one
+
+@[default_target]
+lean_lib HexGramSchmidtTheory where
+
+@[default_target]
+lean_lib HexLLLTheory where
+
+@[default_target]
+lean_lib HexRealRootsTheory where
+
+@[default_target]
+lean_lib HexRCF where
+
+-- Optional development adapter: its shared frontend is not yet published.
+@[default_target]
+lean_lib HexRCFRealFormula where
+ srcDir := "adapters"
+ globs := #[`HexRCF.RealFormula]
+
+@[default_target]
+lean_lib HexRCFRealCoefficients where
+ srcDir := "adapters"
+ globs := #[`HexRCF.RealCoefficients.FieldSelection, `HexRCF.RealCoefficients.SourceSelection, `HexRCF.RealCoefficients.RootQuote, `HexRCF.RealCoefficients.RowQuote, `HexRCF.RealCoefficients.RowPacketQuote, `HexRCF.RealCoefficients.RootHeader, `HexRCF.RealCoefficients.RootPrepare, `HexRCF.RealCoefficients.RootContext, `HexRCF.RealCoefficients.SignatureQuote, `HexRCF.RealCoefficients.RationalQuote, `HexRCF.RealCoefficients.ScalarQuote, `HexRCF.RealCoefficients.ScalarPacketQuote,
+ `HexRCF.RealCoefficients.RowOperations, `HexRCF.RealCoefficients.CellReuse, `HexRCF.RealCoefficients.CellPackets,
+ `HexRCF.RealCoefficients.CellOperations, `HexRCF.RealCoefficients.CompleteReplay, `HexRCF.RealCoefficients.RootTableCodec, `HexRCF.RealCoefficients.RootCodec, `HexRCF.RealCoefficients.CellFootprint, `HexRCF.RealCoefficients.CellEncode, `HexRCF.RealCoefficients.CellCodec, `HexRCF.RealCoefficients.SectorEncode, `HexRCF.RealCoefficients.CellPacketRead, `HexRCF.RealCoefficients.CellPacketConvert,
+ `HexRCF.RealCoefficients.CellPacketTransport, `HexRCF.RealCoefficients.RepresentationCarrier, `HexRCF.RealCoefficients.RootCells, `HexRCF.RealCoefficients.RepresentationCells, `HexRCF.RealCoefficients.BoundarySigns, `HexRCF.RealCoefficients.SectorSamples, `HexRCF.RealCoefficients.PointRows, `HexRCF.RealCoefficients.CellReplay, `HexRCF.RealCoefficients.RowReplay, `HexRCF.RealCoefficients.SectorReplay, `HexRCF.RealCoefficients.CellRead, `HexRCF.RealCoefficients.CellBuild, `HexRCF.RealCoefficients.CellDiscover, `HexRCF.RealCoefficients.CellAlignment, `HexRCF.RealCoefficients.SectorRequest, `HexRCF.RealCoefficients.CellProgress, `HexRCF.RealCoefficients.CellDecision, `HexRCF.RealCoefficients.CellExecution, `HexRCF.RealCoefficients.NumberFieldCells, `HexRCF.RealCoefficients.RowEncode, `HexRCF.RealCoefficients.CellQuote, `HexRCF.RealCoefficients, `HexRCF.RealCoefficients.Reify,
+ `HexRCF.RealCoefficients.Specialize, `HexRCF.RealCoefficients.Coefficients,
+ `HexRCF.RealCoefficients.RootAliases, `HexRCF.RealCoefficients.Conversion,
+ `HexRCF.RealCoefficients.AlgebraicPreparation, `HexRCF.RealCoefficients.RealModel,
+ `HexRCF.RealCoefficients.Interpret,
+ `HexRCF.RealCoefficients.Formula, `HexRCF.RealCoefficients.Field,
+ `HexRCF.RealCoefficients.LiteralSign, `HexRCF.RealCoefficients.SignIndex,
+ `HexRCF.RealCoefficients.FieldIndex,
+ `HexRCF.RealCoefficients.IntervalSign, `HexRCF.RealCoefficients.SquareRoot,
+ `HexRCF.RealCoefficients.CommonTactic,
+ `HexRCF.RealCoefficients.CommonPresentation, `HexRCF.RealCoefficients.SourceIdentity,
+ `HexRCF.RealCoefficients.SourceBuild,
+ `HexRCF.RealCoefficients.SourceIdentityQuote,
+ `HexRCF.RealCoefficients.FieldSpecialize,
+ `HexRCF.RealCoefficients.RepresentationSpecialize,
+ `HexRCF.RealCoefficients.Samples, `HexRCF.RealCoefficients.Gather, `HexRCF.RealCoefficients.GatherCells, `HexRCF.RealCoefficients.AlgebraicCells,
+ `HexRCF.RealCoefficients.RegisteredGather, `HexRCF.RealCoefficients.ReconciledGather,
+ `HexRCF.RealCoefficients.SelectedFormula,
+ `HexRCF.RealCoefficients.InverseReplay,
+ `HexRCF.RealCoefficients.SelectedBytes,
+ `HexRCF.RealCoefficients.Realization, `HexRCF.RealCoefficients.NativeFormula,
+ `HexRCF.RealCoefficients.NativeSpecialize,
+ `HexRCF.RealCoefficients.NativeSamples,
+ `HexRCF.RealCoefficients.NativeSources,
+ `HexRCF.RealCoefficients.NativeSelection,
+ `HexRCF.RealCoefficients.SectionReplay, `HexRCF.RealCoefficients.ScalarPacket,
+ `HexRCF.RealCoefficients.SectionBuild, `HexRCF.RealCoefficients.SectionQuote,
+ `HexRCF.RealCoefficients.PointReplay, `HexRCF.RealCoefficients.PointBuild,
+ `HexRCF.RealCoefficients.PointQuote, `HexRCF.RealCoefficients.Quote,
+ `HexRCF.RealCoefficients.RootReplay, `HexRCF.RealCoefficients.RootBuild, `HexRCF.RealCoefficients.RootTable,
+ `HexRCF.RealCoefficients.RootTransport,
+ `HexRCF.RealCoefficients.NumberField,
+ `HexRCF.RealCoefficients.SignInputs,
+ `HexRCF.RealCoefficients.FieldCarrier, `HexRCF.RealCoefficients.Carrier,
+ `HexRCF.RealCoefficients.IsolationCheck, `HexRCF.RealCoefficients.Isolations,
+ `HexRCF.RealCoefficients.IsolationBuild, `HexRCF.RealCoefficients.IsolationSemantics,
+ `HexRCF.RealCoefficients.IsolationAssembly, `HexRCF.RealCoefficients.IsolationProgress,
+ `HexRCF.RealCoefficients.RadicalCheck, `HexRCF.RealCoefficients.Radical,
+ `HexRCF.RealCoefficients.RadicalBuild, `HexRCF.RealCoefficients.RadicalProgress,
+ `HexRCF.RealCoefficients.FieldDecision, `HexRCF.RealCoefficients.FieldIsolate,
+ `HexRCF.RealCoefficients.FieldBuild, `HexRCF.RealCoefficients.FieldSignProgress,
+ `HexRCF.RealCoefficients.FieldBuildProgress,
+ `HexRCF.RealCoefficients.FieldRoots,
+ `HexRCF.RealCoefficients.FieldDecisionProgress,
+ `HexRCF.RealCoefficients.FieldBuildBudget,
+ `HexRCF.RealCoefficients.FieldRootSigns, `HexRCF.RealCoefficients.FieldRootSignsProgress,
+ `HexRCF.RealCoefficients.FieldReplay,
+ `HexRCF.RealCoefficients.FieldRefinement,
+ `HexRCF.RealCoefficients.FieldLiteral,
+ `HexRCF.RealCoefficients.FieldRuntime,
+ `HexRCF.RealCoefficients.Preparation,
+ `HexRCF.RealCoefficients.FiniteReplay, `HexRCF.RealCoefficients.FiniteSigns,
+ `HexRCF.RealCoefficients.FiniteQuote,
+ `HexRCF.RealCoefficients.Replay, `HexRCF.RealCoefficients.FieldCompile,
+ `HexRCF.RealCoefficients.SquareTwo,
+ `HexRCF.RealCoefficients.CubeTwo,
+ `HexRCF.RealCoefficients.Selected,
+ `HexRCF.RealCoefficients.Tactic,
+ `HexRCF.RealCoefficients.CellFormula,
+ `HexRCF.RealCoefficients.Registration,
+ `HexRCF.RealCoefficients.AlgebraicBounds,
+ `HexRCF.RealCoefficients.RationalRoot,
+ `HexRCF.RealCoefficients.AlgebraicRoot,
+ `HexRCF.RealCoefficients.Finite].map Glob.one
+
+-- Semantic results connecting accepted queries to roots and selected values.
+@[default_target]
+lean_lib HexQuerySemantics where
+ srcDir := "adapters"
+ globs := #[`HexSturmTheory.Tests.Replay.Semantics,
+ `HexSturmTheory.Tests.Replay.SemanticsBaseline,
+ `HexRealClosureTheory.Specialize, `HexRealClosureTheory.SpecializeTests,
+ `HexRealClosureTheory.SignFacts, `HexRealClosureTheory.SignRequests,
+ `HexRealClosureTheory.SignEvidence, `HexRealClosureTheory.FactReplay,
+ `HexRealClosureTheory.KernelReplay, `HexRealClosureTheory.NativePackets,
+ `HexRealClosureTheory.NativeModels, `HexRealClosureTheory.SignReplay, `HexRealClosureTheory.NativeReplay, `HexRealClosureTheory.NativeValues, `HexRealClosureTheory.NativeRecords, `HexRealClosureTheory.NativeFactory, `HexRealClosureTheory.NativeCodecs, `HexRealClosureTheory.NativeReaders, `HexRealClosureTheory.NativeAssembly, `HexRealClosureTheory.NativeAssemblyModels,
+ `HexRealClosureTheory.Packing, `HexRealClosureTheory.InversePacking, `HexRealClosureTheory.InverseEquation, `HexRealClosureTheory.SuppliedInverse, `HexRealClosureTheory.PackingArithmetic, `HexRealClosureTheory.ValueSigns, `HexRealClosureTheory.FinitePoint,
+ `HexRealClosureTheory.PackingQuery, `HexRealClosureTheory.PackingMoment, `HexRealClosureTheory.PackingReduction, `HexRealClosureTheory.PackingReplay, `HexRealClosureTheory.FiniteRead, `HexRealClosureTheory.BaseFinite, `HexRealClosureTheory.PackingInventory, `HexRealClosureTheory.BaseFiniteReplay, `HexRealClosureTheory.FiniteData, `HexRealClosureTheory.FiniteSupport, `HexRealClosureTheory.FiniteBatch, `HexRealClosureTheory.NativeBatch, `HexRealClosureTheory.FiniteOperands, `HexRealClosureTheory.FiniteLift, `HexRealClosureTheory.FiniteScalars, `HexRealClosureTheory.FiniteIndex, `HexRealClosureTheory.FiniteLists, `HexRealClosureTheory.FiniteBase, `HexRealClosureTheory.FiniteDependencies, `HexRealClosureTheory.FiniteConditions, `HexRealClosureTheory.FiniteReconstruction, `HexRealClosureTheory.FiniteChain, `HexRealClosureTheory.PackingNext,
+ `HexRealClosureTheory.TransportPolynomial, `HexRealClosureTheory.TransportProduct,
+ `HexRealClosureTheory.TransportArithmetic, `HexRealClosureTheory.TransportQuery, `HexRealClosureTheory.TransportTests,
+ `HexRealClosureTheory.TransportPower, `HexRealClosureTheory.TransportTarski,
+ `HexRealClosureTheory.TransportRing,
+ `HexRealClosureTheory.TransportClosed, `HexRealClosureTheory.TransportClosedQuery, `HexRealClosureTheory.TransportClosedReduction, `HexRealClosureTheory.TransportRegular,
+ `HexRealClosureTheory.TransportReduction, `HexRealClosureTheory.TransportPreparation, `HexRealClosureTheory.TransportMoment, `HexRealClosureTheory.TransportReplay, `HexRealClosureTheory.TransportSample, `HexRealClosureTheory.TransportDescriptor, `HexRealClosureTheory.TransportInventory, `HexRealClosureTheory.TransportSelected, `HexRealClosureTheory.TransportFiniteTests,
+ `HexRealClosureTheory.AlgebraicTransport, `HexRealClosureTheory.AlgebraicYun,
+ `HexRealClosureTheory.AlgebraicReencode,
+ `HexRealClosureTheory.AlgebraicRoots,
+ `HexRealClosureTheory.SpecializePolynomial, `HexRealClosureTheory.SpecializeRegular, `HexRealClosureTheory.SpecializeQuery, `HexRealClosureTheory.SpecializeTarski,
+ `HexRealClosureTheory.SpecializeReduction,
+ `HexRealClosureTheory.SpecializeMoment,
+ `HexRealClosureTheory.SpecializeReplay,
+ `HexRealClosureTheory.SpecializeNested,
+ `HexRealClosureTheory.SpecializeFractionRing,
+ `HexRealClosureTheory.MonicEvaluation,
+ `HexRealClosureTheory.RegularEvaluation,
+ `HexRealClosureTheory.ModelEvaluation,
+ `HexRealClosureTheory.AlgebraicEvaluation, `HexRealClosureTheory.ModelInventory,
+ `HexRealClosureTheory.SuffixEvaluation,
+ `HexRealClosureTheory.StagedEvaluation,
+ `HexRealClosureTheory.BaseEvaluation,
+ `HexRealClosureTheory.NativeRealization,
+ `HexRealClosureTheory.SharedRealization,
+ `HexRealClosureTheory.SharedRealizationTests,
+ `HexRealClosureTheory.NativeRealizationTests,
+ `HexRealClosureTheory.CoefficientMap, `HexRealClosureTheory.CoefficientComposition,
+ `HexRealClosureTheory.CoefficientQuery,
+ `HexRealClosureTheory.CoefficientTarski,
+ `HexRealClosureTheory.CoefficientEmbeddingTests,
+ `HexRealClosureTheory.CoefficientEmbedding,
+ `HexRealClosureTheory.CoefficientSelected,
+ `HexRealClosureTheory.CoefficientDescriptor,
+ `HexRealClosureTheory.CoefficientReplay,
+ `HexRealClosureTheory.CoefficientMoment,
+ `HexRealClosureTheory.CoefficientReduction,
+ `HexRealClosureTheory.SpecializeSample,
+ `HexRealClosureTheory.SpecializeSelected,
+ `HexRealClosureTheory.SpecializeDescriptor,
+ `HexRealClosureTheory.Algebraic, `HexRealClosureTheory.AlgebraicClean,
+ `HexRealClosureTheory.TowerModel, `HexRealClosureTheory.TowerModelTests,
+ `HexRealClosureTheory.BaseModel,
+ `HexRealClosureTheory.BaseOrder,
+ `HexRealClosureTheory.BaseMapModel,
+ `HexRealClosureTheory.BaseReconciliationModel,
+ `HexRealClosureTheory.BaseReconstruction,
+ `HexRealClosureTheory.BaseReconstructionTests,
+ `HexRealClosureTheory.ReconciledContext,
+ `HexRealClosureTheory.ReconciledGatherModel,
+ `HexRealClosureTheory.ReconciledGatherTests,
+ `HexRealClosureTheory.ReconciledLive,
+ `HexRealClosureTheory.ReconciledEnlargementTests,
+ `HexRealClosureTheory.ReconciledRealization,
+ `HexRealClosureTheory.ReconciledRealizationTests,
+ `HexRealClosureTheory.ReconciledCatalog,
+ `HexRealClosureTheory.ConstructedCatalog,
+ `HexRealClosureTheory.BaseHistoryTests,
+ `HexRealClosureTheory.ReconciledCatalogTests,
+ `HexRealClosureTheory.OwnerReader,
+ `HexRealClosureTheory.BaseFactory,
+ `HexRealClosureTheory.ContextModel,
+ `HexRealClosureTheory.BaseFactoryTests, `HexRealClosureTheory.BaseGatherTests,
+ `HexRealClosureTheory.CacheModels,
+ `HexRealClosureTheory.CacheRebuild,
+ `HexRealClosureTheory.CacheGather,
+ `HexRealClosureTheory.GatherTests,
+ `HexRealClosureTheory.SharedPresentation,
+ `HexRealClosureTheory.SharedPresentationTests,
+ `HexRealClosureTheory.TowerAlgebraic, `HexRealClosureTheory.TowerRefinement,
+ `HexRealClosureTheory.TowerTransport, `HexRealClosureTheory.TowerTransportTests,
+ `HexRealClosureTheory.TowerReuse,
+ `HexRealClosureTheory.TowerInclusion, `HexRealClosureTheory.LiveContext,
+ `HexRealClosureTheory.LiveRequest, `HexRealClosureTheory.LiveRequestTests,
+ `HexRealClosureTheory.TowerYun,
+ `HexRealClosureTheory.AlgebraicValue, `HexRealClosureTheory.BaseClean, `HexRealClosureTheory.AlgebraicTower,
+ `HexRealClosureTheory.SelectedRoot,
+ `HexRealClosureTheory.Canonical, `HexRealClosureTheory.Element, `HexRealClosureTheory.QAdjoin,
+ `HexRealClosureTheory.NumberField, `HexRealClosureTheory.NumberFieldTower,
+ `HexRealClosureTheory.Polynomial, `HexRealClosureTheory.Yun,
+ `HexRealClosureTheory.YunInvariant, `HexRealClosureTheory.Bounds,
+ `HexRealClosureTheory.Deflation, `HexRealClosureTheory.Bisection,
+ `HexRealClosureTheory.BisectionRoots, `HexRealClosureTheory.BisectionFrontier,
+ `HexRealClosureTheory.BisectionCounts, `HexRealClosureTheory.Isolation,
+ `HexRealClosureTheory.BisectionFactor, `HexRealClosureTheory.IsolationFactor,
+ `HexRealClosureTheory.TowerRootPolicy, `HexRealClosureTheory.RootPolicy, `HexRealClosureTheory.IsolationPolicy,
+ `HexRealClosureTheory.ZeroFactor, `HexRealClosureTheory.IsolationRoots,
+ `HexRealClosureTheory.IsolationTotal,
+ `HexRealClosureTheory.RootIntervals, `HexRealClosureTheory.RootOrder,
+ `HexRealClosureTheory.RootFactors,
+ `HexRealClosureTheory.Trivial, `HexRealClosureTheory.TrivialTower, `HexRealClosureTheory.TrivialTowerTests,
+ `HexRealClosureTheory.RootTotal, `HexRealClosureTheory.TowerRoots,
+ `HexRealClosureTheory.RootTransport,
+ `HexRealClosureTheory.RootCollection, `HexRealClosureTheory.RootList,
+ `HexRealClosureTheory.Sample, `HexRealClosureTheory.LocalSample,
+ `HexRealClosureTheory.LocalSampleTests,
+ `HexRealClosureTheory.SampleTests,
+ `HexRealClosureTheory.TowerCoverage, `HexRealClosureTheory.Presentation,
+ `HexRealClosureTheory.PresentationTests,
+ `HexRealClosureTheory.TowerNaturality,
+ `HexRealClosureTheory.Ambient, `HexRealClosureTheory.AmbientTests,
+ `HexRealClosureTheory.BaseAlgebraicity, `HexRealClosureTheory.BaseBound,
+ `HexRealClosureTheory.EnlargementTests,
+ `HexRealClosureTheory.Union, `HexRealClosureTheory.TowerUnion,
+ `HexRealClosureTheory.TowerRestriction, `HexRealClosureTheory.TowerEnlarge,
+ `HexRealClosureTheory.TowerEnlargeOrder, `HexRealClosureTheory.TowerEnlargeOrderTests,
+ `HexRealClosureTheory.UnionTests].map Glob.one
+
+lean_exe hexrealclosure_root_order_tests where
+ root := `HexRealClosure.RootOrderTests
+
+-- Ordinary-import consumers of merged family APIs, also built as an isolated
+-- local downstream project in experiments/RealClosureConsumer.
+@[default_target]
+lean_lib RealClosureConsumer where
+ srcDir := "examples"
+ globs := #[.submodules `RealClosureConsumer]
+
+lean_exe hexlll_external_reduction where
+ root := `HexLLL.ExternalReduction
+
+-- Multi-file bench drivers: their modules live under `bench/` and are owned by
+-- a precompiled lean_lib (mirroring the released bench sub-project), so the bench
+-- exes can root into them. Single-file bench drivers instead carry
+-- `srcDir := "bench"` on their own `lean_exe`.
+lean_lib HexLLLBenchSupport where
+ srcDir := "bench"
+ globs := #[`HexLLLBench, `HexLLLBench.Inputs, `HexLLLBench.Targets]
+
+lean_lib HexRankBenchSupport where
+ srcDir := "bench"
+ globs := #[`HexRank.Bench.Quotient]
+
+lean_lib HexGF2BenchSupport where
+ srcDir := "bench"
+ globs := #[`HexGF2.Bench]
+
+lean_lib HexBerlekampKernelProbe where
+ srcDir := "bench"
+ globs := #[`HexBench.BerlekampKernel]
+
+lean_lib HexPrimalityKernelProbe where
+ srcDir := "bench"
+ globs := #[`HexPrimalityBench.Inputs, `HexBench.PrimalityKernel,
+ `HexPrimality.PMinusOneFixtures, `HexIntFactor.PMinusOneFixtures,
+ `HexPrimality.PMinusOneMeasure, `HexPrimality.PMinusOneParents].map Glob.one ++
+ -- Computational diagnostics emit no proof and observe clocks/counters.
+ #[.submodules `HexPrimality.EcmDiagnostics]
+
+lean_lib HexPrimalityElabProbe where
+ srcDir := "bench"
+ globs := #[`HexPrimalityBench.Inputs, `HexPrimality.ProofProbe.Support,
+ `HexPrimality.ProofProbe.CoreBaseline,
+ `HexPrimality.ProofProbe.Core512,
+ `HexPrimality.ProofProbe.CoreExhausted,
+ `HexPrimality.ProofProbe.CoreOverBudget,
+ `HexIntFactor.ProofProbe.PrimalityExhausted,
+ `HexPrimalityTheory.ProofProbe.MathlibBaseline,
+ `HexPrimalityTheory.ProofProbe.Mathlib512,
+ `HexPrimalityTheory.ProofProbe.MathlibExhausted,
+ `HexPrimalityTheory.ProofProbe.MathlibOverBudget,
+ `HexPrimalityTheory.ProofProbe.Negative25,
+ `HexPrimalityTheory.ProofProbe.Negative32,
+ `HexPrimalityTheory.ProofProbe.Negative64,
+ `HexPrimalityTheory.ProofProbe.Negative64Null,
+ `HexPrimalityTheory.ProofProbe.Negative65,
+ `HexPrimalityTheory.ProofProbe.Negative512,
+ `HexPrimalityTheory.ProofProbe.Negative512Odd,
+ `HexPrimalityTheory.ProofProbe.NegativeExhausted512]
+
+lean_lib HexPrimalityTheoryProofProbe where
+ srcDir := "bench"
+ globs := #[`HexPrimalityTheory.ProofProbe.Support,
+ `HexPrimalityTheory.ProofProbe.FactorExperiment,
+ `HexPrimalityTheory.ProofProbe.Baseline,
+ `HexPrimalityTheory.ProofProbe.Input31,
+ `HexPrimalityTheory.ProofProbe.Literal31,
+ `HexPrimalityTheory.ProofProbe.Reify31,
+ `HexPrimalityTheory.ProofProbe.Replay31,
+ `HexPrimalityTheory.ProofProbe.Primality31,
+ `HexPrimalityTheory.ProofProbe.Input512,
+ `HexPrimalityTheory.ProofProbe.Literal512,
+ `HexPrimalityTheory.ProofProbe.Reify512,
+ `HexPrimalityTheory.ProofProbe.Replay512,
+ `HexPrimalityTheory.ProofProbe.Primality512,
+ `HexPrimalityTheory.ProofProbe.NormNumTrial,
+ `HexPrimalityTheory.ProofProbe.NormNumThreshold,
+ `HexPrimalityTheory.ProofProbe.NormNum512,
+ `HexPrimalityTheory.ProofProbe.MathlibBaseline,
+ `HexPrimalityTheory.ProofProbe.Mathlib512,
+ `HexPrimalityTheory.ProofProbe.MathlibExhausted,
+ `HexPrimalityTheory.ProofProbe.MathlibOverBudget,
+ `HexPrimalityTheory.ProofProbe.Negative25,
+ `HexPrimalityTheory.ProofProbe.Negative32,
+ `HexPrimalityTheory.ProofProbe.Negative64,
+ `HexPrimalityTheory.ProofProbe.Negative64Null,
+ `HexPrimalityTheory.ProofProbe.Negative65,
+ `HexPrimalityTheory.ProofProbe.Negative512,
+ `HexPrimalityTheory.ProofProbe.Negative512Odd,
+ `HexPrimalityTheory.ProofProbe.Adoption,
+ `HexPrimalityTheory.ProofProbe.NegativeExhausted512].map Glob.one ++
+ #[.submodules `HexPrimalityTheory.ProofProbe.FactorCorpus]
+
+lean_lib HexECPPTheoryProofProbe where
+ srcDir := "bench"
+ globs := #[`HexECPPTheory.ProofProbe.NativeGeneration,
+ `HexECPPTheory.ProofProbe.Native512Baseline,
+ `HexECPPTheory.ProofProbe.Native512Reify,
+ `HexECPPTheory.ProofProbe.Native512Direct,
+ `HexECPPTheory.ProofProbe.Native128_0,
+ `HexECPPTheory.ProofProbe.NativeBaseline,
+ `HexECPPTheory.ProofProbe.NativeReify,
+ `HexECPPTheory.ProofProbe.NativeDirect,
+ `HexECPPTheory.ProofProbe.NativeHoldout,
+ `HexECPPTheory.ProofProbe.NativeValidation,
+ `HexECPPTheory.ProofProbe.NativeUpdated,
+ `HexECPPTheory.ProofProbe.Native256_0,
+ `HexECPPTheory.ProofProbe.Native256_1,
+ `HexECPPTheory.ProofProbe.Native256_2,
+ `HexECPPTheory.ProofProbe.Support,
+ `HexECPPTheory.ProofProbe.Support17,
+ `HexECPPTheory.ProofProbe.Ecpp17,
+ `HexECPPTheory.ProofProbe.Pock17,
+ `HexECPPTheory.ProofProbe.Baseline65,
+ `HexECPPTheory.ProofProbe.Reify65,
+ `HexECPPTheory.ProofProbe.Direct65,
+ `HexECPPTheory.ProofProbe.Replay65,
+ `HexECPPTheory.ProofProbe.Replay256,
+ `HexECPPTheory.ProofProbe.Replay512].map Glob.one
+
+lean_lib HexPrimalityConstructionProbe where
+ srcDir := "bench"
+ globs := #[.submodules `HexPrimality.ProofProbe.Curve25519]
+
+lean_lib HexPrimalityElabProbeScientific where
+ srcDir := "bench"
+ globs := #[`HexPrimalityBench.Inputs, `HexPrimality.ProofProbe.Support,
+ `HexPrimality.ProofProbe.CoreBaseline,
+ `HexPrimality.ProofProbe.Bit31.Input,
+ `HexPrimality.ProofProbe.Bit31.Search,
+ `HexPrimality.ProofProbe.Bit31.Literal,
+ `HexPrimality.ProofProbe.Bit31.Replay,
+ `HexPrimality.ProofProbe.Bit31.Tactic,
+ `HexPrimality.ProofProbe.Bit61.Input,
+ `HexPrimality.ProofProbe.Bit61.Search,
+ `HexPrimality.ProofProbe.Bit61.Literal,
+ `HexPrimality.ProofProbe.Bit61.Replay,
+ `HexPrimality.ProofProbe.Bit61.Tactic,
+ `HexPrimality.ProofProbe.Bit123.Input,
+ `HexPrimality.ProofProbe.Bit123.Search,
+ `HexPrimality.ProofProbe.Bit123.Literal,
+ `HexPrimality.ProofProbe.Bit123.Replay,
+ `HexPrimality.ProofProbe.Bit123.Tactic,
+ `HexPrimality.ProofProbe.Bit256.Input,
+ `HexPrimality.ProofProbe.Bit256.Search,
+ `HexPrimality.ProofProbe.Bit256.Literal,
+ `HexPrimality.ProofProbe.Bit256.Replay,
+ `HexPrimality.ProofProbe.Bit256.Tactic,
+ `HexPrimality.ProofProbe.Bit511.Input,
+ `HexPrimality.ProofProbe.Bit511.Search,
+ `HexPrimality.ProofProbe.Bit511.Literal,
+ `HexPrimality.ProofProbe.Bit511.Replay,
+ `HexPrimality.ProofProbe.Bit511.Tactic,
+ `HexPrimality.ProofProbe.Bit512.Input,
+ `HexPrimality.ProofProbe.Bit512.Search,
+ `HexPrimality.ProofProbe.Bit512.Literal,
+ `HexPrimality.ProofProbe.Bit512.Replay,
+ `HexPrimality.ProofProbe.Bit512.Tactic].map Glob.one ++ #[.submodules `HexPrimality.ProofProbe.PMinusOne]
+
+-- Explicit companion probes for large mixed frozen data.
+lean_lib HexIntFactorTheoryProofProbe where
+ srcDir := "bench"
+ globs := #[Glob.one `HexIntFactorTheory.ProofProbe.Mixed]
+
+lean_lib HexIntFactorTheoryTests where
+ globs := #[Glob.one `HexIntFactorTheory.MixedTests]
+
+lean_lib HexIntFactorKernelProbe where
+ srcDir := "bench"
+ globs := #[`HexBench.IntFactorKernel, `HexIntFactor.FieldBench,
+ `HexIntFactor.ProofProbe.Support,
+ `HexIntFactor.ProofProbe.Replay1,
+ `HexIntFactor.ProofProbe.Replay10,
+ `HexIntFactor.ProofProbe.PrimalityExhausted].map Glob.one
+
+lean_lib HexMvGcdKernelProbe where
+ srcDir := "bench"
+ globs := #[`HexMvGcd.Kernel]
+
+lean_lib HexMvGcdBenchSupport where
+ srcDir := "bench"
+ globs := #[`HexMvGcd.Families, `HexMvGcd.Matrix,
+ `HexMvGcd.ComparatorCases, `HexMvGcd.Comparators,
+ `HexMvGcd.Profile, `HexMvGcdFlint, `HexMvGcdSingular]
+
+lean_lib HexMvPolyBenchSupport where
+ srcDir := "bench"
+ globs := #[`HexMvPolyCorpus, `HexMvPoly.Sorted, `HexMvPoly.SortedTests]
+
+lean_lib HexModularBenchSupport where
+ srcDir := "bench"
+ globs := #[`HexModularBench.Comparator]
+
+lean_lib HexMvPolyTheoryProofProbe where
+ srcDir := "bench"
+ globs := #[`HexMvPolyTheory.ProofProbe.Examples].map Glob.one
+
+lean_lib HexIntervalExperiment where
+ globs := #[`HexInterval.Experiment.Representation,
+ `HexInterval.Experiment.Rational, `HexInterval.Experiment.Center,
+ `HexInterval.Experiment.Scale, `HexInterval.Experiment.Propagator,
+ `HexInterval.Experiment.Policy, `HexInterval.Experiment.PolicyFrontier,
+ `HexInterval.Experiment.PolicyDriver,
+ `HexInterval.Experiment.PackageRegistry,
+ `HexInterval.Experiment.DyadicInterval,
+ `HexInterval.Experiment.DyadicRules,
+ `HexInterval.Experiment.StructuralMatcher,
+ `HexInterval.Experiment.PayloadArena,
+ `HexInterval.Experiment.PayloadSession,
+ `HexInterval.Experiment.PolicySession,
+ `HexInterval.Experiment.TargetRun,
+ `HexInterval.Experiment.StagedPolicy,
+ `HexInterval.Experiment.AdaptivePolicy,
+ `HexInterval.Experiment.PolicyFeature,
+ `HexInterval.Experiment.FeaturePolicy,
+ `HexInterval.Experiment.BranchStart,
+ `HexInterval.Experiment.BranchTree,
+ `HexInterval.Experiment.BranchProof,
+ `HexInterval.Experiment.SemanticReplay,
+ `HexInterval.Experiment.ChronologicalReplay,
+ `HexInterval.Experiment.GenericInstanceReconstruction,
+ `HexInterval.Experiment.OperationSemantics,
+ `HexInterval.Experiment.ProofEmitter,
+ `HexInterval.Experiment.ProofRegistry,
+ `HexInterval.Experiment.Frontend,
+ `HexInterval.Experiment.FrontendEncoder,
+ `HexInterval.Experiment.ProofFrontend,
+ `HexInterval.Experiment.GoalFrontend,
+ `HexInterval.Experiment.GoalClosure,
+ `HexInterval.Experiment.TraceReplay,
+ `HexInterval.Experiment.SineSign,
+ `HexInterval.Experiment.ExpSign,
+ `HexInterval.Experiment.PntLogTable,
+ `HexInterval.Experiment.PntNestedLog,
+ `HexInterval.Experiment.PntExpTail,
+ `HexInterval.Experiment.PntTable12,
+ `HexInterval.Experiment.PntTable12Ordinary,
+ `HexInterval.Experiment.PntTable10Shard,
+ `HexInterval.Experiment.PntTable10Convex,
+ `HexInterval.Experiment.PntTable10Pointwise,
+ `HexInterval.Experiment.PntTable10LargePointwise,
+ `HexInterval.Experiment.PntTable10LogCoupled,
+ `HexInterval.Experiment.PntTable10A2,
+ `HexInterval.Experiment.PntTable12Log,
+ `HexInterval.Experiment.PntFks2ShardData,
+ `HexInterval.Experiment.PntFks2Shard,
+ `HexInterval.Experiment.PntFks2FamilyData00,
+ `HexInterval.Experiment.PntFks2FamilyData01,
+ `HexInterval.Experiment.PntFks2FamilyData02,
+ `HexInterval.Experiment.PntFks2FamilyData03,
+ `HexInterval.Experiment.PntFks2FamilyData04,
+ `HexInterval.Experiment.PntFks2FamilyData05,
+ `HexInterval.Experiment.PntFks2FamilyData06,
+ `HexInterval.Experiment.PntFks2FamilyData07,
+ `HexInterval.Experiment.PntFks2FamilyData08,
+ `HexInterval.Experiment.PntFks2FamilyData09,
+ `HexInterval.Experiment.PntFks2FamilyData10,
+ `HexInterval.Experiment.PntFks2FamilyData12,
+ `HexInterval.Experiment.PntFks2FamilyData13,
+ `HexInterval.Experiment.PntFks2FamilyData,
+ `HexInterval.Experiment.PntFks2Family,
+ `HexInterval.Experiment.PntFks2Structure,
+ `HexInterval.Experiment.PntFks2Xpow,
+ `HexInterval.Experiment.CosBillion,
+ `HexInterval.Experiment.LogTablePrecision,
+ `HexInterval.Experiment.PntLogNatural,
+ `HexInterval.Experiment.PntFks2Nested,
+ `HexInterval.Experiment.PntLogRational,
+ `HexInterval.Experiment.PntExpNegative,
+ `HexInterval.Experiment.PntExpPoint,
+ `HexInterval.Experiment.PntNestedLogTwo,
+ `HexInterval.Experiment.PntPiPoint,
+ `HexInterval.Experiment.IntegralCanary,
+ `HexInterval.Experiment.PntBKLNWExp,
+ `HexInterval.Experiment.PntBKLNWPow,
+ `HexInterval.Experiment.PntDusartExp,
+ `HexInterval.Experiment.PntFks2Mu,
+ `HexInterval.Experiment.PntExpUpper,
+ `HexInterval.Experiment.PntRamanujanTheta,
+ `HexInterval.Experiment.SinTen,
+ `HexInterval.Experiment.SinTenInterval,
+ `HexInterval.Experiment.MixedFunctions,
+ `HexInterval.Experiment.MixedInstantiation].map Glob.one
+
+lean_lib HexIntervalTheoryExperiment where
+ globs := #[`HexIntervalTheory.Experiment.Arithmetic,
+ `HexIntervalTheory.Experiment.Center,
+ `HexIntervalTheory.Experiment.Centered,
+ `HexIntervalTheory.Experiment.DyadicInterval,
+ `HexIntervalTheory.Experiment.SineSign,
+ `HexIntervalTheory.Experiment.ExpSign,
+ `HexIntervalTheory.Experiment.PntLogTable,
+ `HexIntervalTheory.Experiment.PntNestedLog,
+ `HexIntervalTheory.Experiment.PntExpTail,
+ `HexIntervalTheory.Experiment.PntTable12,
+ `HexIntervalTheory.Experiment.PntTable12Ordinary,
+ `HexIntervalTheory.Experiment.PntTable10Shard,
+ `HexIntervalTheory.Experiment.PntTable10Convex,
+ `HexIntervalTheory.Experiment.PntTable10Pointwise,
+ `HexIntervalTheory.Experiment.PntTable10LargePointwise,
+ `HexIntervalTheory.Experiment.PntTable10LogCoupled,
+ `HexIntervalTheory.Experiment.PntTable10A2,
+ `HexIntervalTheory.Experiment.PntTable10Exact,
+ `HexIntervalTheory.Experiment.PntTable12Log,
+ `HexIntervalTheory.Experiment.PntFks2Shard,
+ `HexIntervalTheory.Experiment.PntFks2Xpow,
+ `HexIntervalTheory.Experiment.CosBillion,
+ `HexIntervalTheory.Experiment.LogTablePrecision,
+ `HexIntervalTheory.Experiment.PntLogNatural,
+ `HexIntervalTheory.Experiment.PntFks2Nested,
+ `HexIntervalTheory.Experiment.PntLogRational,
+ `HexIntervalTheory.Experiment.PntExpNegative,
+ `HexIntervalTheory.Experiment.PntExpPoint,
+ `HexIntervalTheory.Experiment.PntNestedLogTwo,
+ `HexIntervalTheory.Experiment.PntPiPoint,
+ `HexIntervalTheory.Experiment.IntegralCanary,
+ `HexIntervalTheory.Experiment.PntBKLNWExp,
+ `HexIntervalTheory.Experiment.PntBKLNWPow,
+ `HexIntervalTheory.Experiment.PntDusartExp,
+ `HexIntervalTheory.Experiment.PntFks2Mu,
+ `HexIntervalTheory.Experiment.PntExpUpper,
+ `HexIntervalTheory.Experiment.PntRamanujanTheta,
+ `HexIntervalTheory.Experiment.PntPrimeLogSmall,
+ `HexIntervalTheory.Experiment.PntChebyshev,
+ `HexIntervalAlgebraic.Experiment.PolynomialDispatch,
+ `HexIntervalAlgebraic.Experiment.PolynomialDispatchProof,
+ `HexIntervalTheory.Experiment.SinTen,
+ `HexIntervalTheory.Experiment.SinTenInterval,
+ `HexIntervalTheory.Experiment.MixedFunctions,
+ `HexIntervalTheory.Experiment.MixedInstantiation].map Glob.one
+
+@[default_target]
+lean_lib HexIntervalTheory where
+ globs := #[`HexIntervalTheory, `HexIntervalTheory.Interval,
+ `HexIntervalTheory.Addition, `HexIntervalTheory.Subtraction,
+ `HexIntervalTheory.MinMax, `HexIntervalTheory.Absolute,
+ `HexIntervalTheory.Multiplication,
+ `HexIntervalTheory.Power, `HexIntervalTheory.Split,
+ `HexIntervalTheory.Inverse, `HexIntervalTheory.Division,
+ `HexIntervalTheory.Regularize, `HexIntervalTheory.Program,
+ `HexIntervalTheory.Proof, `HexIntervalTheory.Rule,
+ `HexIntervalTheory.Frontend,
+ `HexIntervalTheory.Tactic].map Glob.one
+
+lean_lib HexIntervalReplayProbe where
+ srcDir := "bench"
+ globs := #[`HexInterval.ReplayBaseline, `HexInterval.ReplayBundled,
+ `HexInterval.ReplayChecked, `HexInterval.ReplayRationalBaseline,
+ `HexInterval.ReplayRationalDirect, `HexInterval.ReplayRationalChecked,
+ `HexInterval.ReplayRational, `HexInterval.ImportBundled,
+ `HexInterval.ImportChecked, `HexInterval.WhnfBundled,
+ `HexInterval.WhnfChecked, `HexInterval.WhnfBaseline,
+ `HexInterval.WhnfRationalDirect, `HexInterval.WhnfRationalChecked,
+ `HexInterval.WhnfRationalBaseline, `HexInterval.ReplayCenterBaseline,
+ `HexInterval.ReplayCenterChecked, `HexInterval.WhnfCenterChecked,
+ `HexInterval.WhnfCenterBaseline, `HexInterval.WhnfScaleChecked,
+ `HexInterval.WhnfScaleBaseline, `HexInterval.ReplayScaleChecked,
+ `HexInterval.ReplayScaleBaseline]
+
+lean_lib HexIntervalTheoryReplayProbe where
+ srcDir := "bench"
+ globs := #[`HexIntervalTheory.CenterDirect,
+ `HexIntervalTheory.CenterReflected].map Glob.one
+
+lean_lib HexRealRootsTheoryReplayProbe where
+ srcDir := "bench"
+ globs := #[`HexRealRootsTheory.ProofProbe.Natural6,
+ `HexRealRootsTheory.ProofProbe.Refined2,
+ `HexRealRootsTheory.ProofProbe.RealClosed].map Glob.one
+
+lean_lib HexBerlekampZassenhausTheoryProofProbe where
+ srcDir := "bench"
+ globs := #[`HexBerlekampZassenhausTheory.ProofProbe.Factor4,
+ `HexBerlekampZassenhausTheory.ProofProbe.Irreducible4,
+ `HexBerlekampZassenhausTheory.ProofProbe.Repeated8,
+ `HexBerlekampZassenhausTheory.ProofProbe.Kernel4].map Glob.one
+
+lean_lib HexBerlekampTheoryProofProbe where
+ srcDir := "bench"
+ globs := #[`HexBerlekampTheory.ProofProbe.Factor4,
+ `HexBerlekampTheory.ProofProbe.Irreducible4,
+ `HexBerlekampTheory.ProofProbe.Repeated8].map Glob.one
+
+lean_lib HexSignDetTheoryProofProbe where
+ srcDir := "bench"
+ globs := #[.submodules `HexSignDetTheory.ProofProbe]
+
+-- Correctness diagnostics remain CI-built outside the benchmark root.
+lean_lib HexSignDetTheoryDiagnostics where
+ srcDir := "conformance"
+ globs := #[.submodules `HexSignDetTheory.Diagnostics]
+
+-- Depth-three kernel reductions retain their separate manual target.
+lean_lib HexSignDetTheoryDepthThree where
+ srcDir := "conformance"
+ globs := #[.submodules `HexSignDetTheory.DepthThree]
+
+lean_lib HexRealFormulaProofProbe where
+ srcDir := "bench"
+ globs := #[`HexRealFormulaTheory.ProofProbe.Support,
+ `HexRealFormulaTheory.ProofProbe.Parameterized,
+ `HexRealFormulaTheory.ProofProbe.Alternation].map Glob.one
+
+lean_lib HexRCFBenchSupport where
+ srcDir := "bench"
+ globs := #[`HexRCF.BenchHash].map Glob.one
+
+lean_lib HexRCFProofProbe where
+ srcDir := "bench"
+ globs := #[`HexRCF.ProofProbe.Examples,
+ `HexRCF.ProofProbe.Registered.Unused,
+ `HexRCF.ProofProbe.Registered.Support,
+ `HexRCF.ProofProbe.Registered.Tactic].map Glob.one
+
+-- Paired proof-construction diagnostics are manual builds, outside CI.
+lean_lib HexRCFProofProbeMeasurements where
+ srcDir := "bench"
+ globs := #[`HexRCF.ProofProbe.Supplied.Reconstruct,
+ `HexRCF.ProofProbe.Supplied.Reuse,
+ `HexRCF.ProofProbe.Points.Section, `HexRCF.ProofProbe.Points.Point].map Glob.one
+
+-- Deliberately explicit: the four-boundary enlarged-tower stress case is
+-- retained without adding its multi-minute producer cost to every CI build.
+-- Explicit original-input stress case: a further algebraic root with an
+-- independent algebraic upper bound. Routine conformance stays separate.
+lean_lib HexRCFAlgebraicCellsStress where
+ srcDir := "conformance"
+ globs := #[.one `HexRCF.AlgebraicCellsStress]
+
+lean_lib HexRCFCellRequestedStress where
+ srcDir := "conformance"
+ globs := #[.one `HexRCF.CellRequestedStress]
+
+-- Conformance #guard drivers live under `conformance/` and are built by this
+-- library (mirroring the released conformance sub-projects). Alongside each
+-- library's `Conformance` core module, the heavier cross-check sweeps and
+-- extern-path fast checks (`CrossCheck` / `FastCheck`) also live here so the
+-- implementation-vs-testing boundary stays legible; they elaborate their
+-- `#guard`s in the same `lake build`. EmitFixtures drivers are the
+-- `*_emit_fixtures` exes below, carrying `srcDir := "conformance"`.
+/-- Libraries whose conformance modules are not built while they are parked.
+HexInterval is parked: none of its libraries, executables or conformance
+modules are built in CI. Remove a prefix here to restore its conformance. -/
+def parkedConformancePrefixes : List String := ["HexInterval"]
+
+def isParkedGlob : Glob → Bool
+ | .one n | .submodules n | .andSubmodules n =>
+ parkedConformancePrefixes.any (n.getRoot.toString.startsWith ·)
+
+lean_lib HexConformance where
+ srcDir := "conformance"
+ globs := Array.filter (fun g => !isParkedGlob g) <| #[
+`HexPosDef.Conformance, `HexArith.Conformance, `HexArith.CrossCheck, `HexBerlekamp.Conformance, `HexBerlekampZassenhaus.Conformance, `HexBerlekampZassenhaus.CrossCheck, `HexBerlekampZassenhausTheory.Conformance, `HexConway.Conformance, `HexGF2.Conformance, `HexGF2.CrossCheck, `HexGF2.FastCheck, `HexGFq.Conformance, `HexGFq.CrossCheck, `HexGFqField.Conformance, `HexGFqRing.Conformance, `HexGramSchmidt.Conformance, `HexGraphIso.Conformance, `HexHensel.Conformance, `HexHensel.CrossCheck, `HexInterval.Conformance, `HexIntervalTheory.IntervalConformance, `HexInterval.CenterConformance, `HexInterval.ScaleConformance, `HexInterval.PropagatorConformance, `HexInterval.ScopeConformance, `HexInterval.StructuralMatcherConformance, `HexInterval.MatcherSchedulerConformance, `HexInterval.NestedBranchConformance, `HexInterval.StructureViewConformance, `HexInterval.PolicyConformance, `HexInterval.PolicyFrontierConformance, `HexInterval.PolicyDriverConformance, `HexInterval.PackageRegistryConformance, `HexInterval.DyadicIntervalConformance, `HexInterval.DyadicRulesConformance, `HexInterval.PayloadArenaConformance, `HexInterval.PayloadSessionConformance, `HexInterval.PolicySessionConformance, `HexInterval.PolicyFunctionConformance, `HexInterval.SemanticReplayConformance, `HexInterval.ChronologicalReplayConformance, `HexInterval.GenericInstanceReconstructionConformance, `HexInterval.ProofEmitterConformance, `HexInterval.TraceReplayConformance, `HexInterval.SinTenIntervalConformance, `HexIntervalTheory.DyadicIntervalConformance, `HexIntervalTheory.CenteredConformance, `HexIntervalTheory.SineSignConformance, `HexIntervalTheory.SineProofConformance, `HexIntervalTheory.SineTacticConformance, `HexIntervalTheory.ProofRegistryConformance, `HexIntervalTheory.ExpSignConformance, `HexIntervalTheory.ReluConformance, `HexIntervalTheory.RefuteConformance, `HexIntervalTheory.PntLogTableConformance, `HexIntervalTheory.PntNestedLogConformance, `HexIntervalTheory.PntExpTailConformance, `HexIntervalTheory.PntTable12Conformance, `HexIntervalTheory.PntTable12OrdinaryConformance, `HexIntervalAlgebraic.PolynomialDispatchConformance, `HexIntervalTheory.PntTable12LogConformance, `HexIntervalTheory.PntFks2ShardConformance, `HexIntervalTheory.LogTablePrecisionConformance, `HexIntervalTheory.IntegralCanaryConformance, `HexIntervalTheory.PntBKLNWExpConformance, `HexIntervalTheory.PntBKLNWPowConformance, `HexIntervalTheory.PntPrimeLogSmallConformance, `HexIntervalTheory.PntDusartExpConformance, `HexIntervalTheory.SinTenConformance, `HexIntervalTheory.SinTenIntervalConformance, `HexIntervalTheory.CosBillionConformance, `HexHermite.Conformance, `HexLLL.Conformance, `HexMatrix.Conformance, `HexRealFormula.Conformance, `HexRealFormulaTheory.Conformance, `HexRealFormulaTheory.Arithmetic, `HexMvPolyFixtures, `HexMvPoly.Conformance, `HexMvPolyTheory.Conformance, `HexSparsePolyFixtures, `HexSparsePoly.Conformance, `HexRowReduce.Conformance, `HexDeterminant.Conformance, `HexDeterminantalIdealFixtures, `HexDeterminantalIdeal.Conformance, `HexDeterminant.Carriers, `HexBareiss.Fixtures, `HexBareiss.Conformance, `HexModularMatrix.Fixtures, `HexModularMatrix.Conformance, `HexDet.Conformance, `HexDet.Carriers, `HexCharPoly.Fixtures, `HexCharPoly.Carriers, `HexCharPoly.Conformance, `HexModArith.Conformance, `HexModArith.FastCheck, `HexModular.Conformance, `HexPolyZGcd.Conformance, `HexMvGcd.Conformance, `HexNumberField.Conformance, `HexNumberFieldTower.Conformance, `HexPoly.Conformance, `HexPrimality.CertificateProducer, `HexPrimality.ConstructionConformance, `HexPrimality.ConstructionRetry, `HexPrimality.ConstructionRegistration, `HexPrimality.Curve25519Replay, `HexPrimality.Curve448Replay, `HexPrimality.SqufofConformance, `HexPrimality.Conformance, `HexECPP.NativeConformance, `HexECPP.Conformance, `HexECPP.Fixture17, `HexECPP.PolicyProbe, `HexECPP.Fixture65, `HexECPP.Fixture256, `HexECPP.Fixture512, `HexECPP.PariFixtures, `HexECPP.ImportConformance, `HexECPPTheory.NativeConformance, `HexECPPTheory.NativeFixtures, `HexECPPTheory.Conformance, `HexECPPTheory.CompactFixtures, `HexECPPTheory.CompactReject, `HexECPPTheory.PariProcess, `HexECPPTheory.Reject, `HexECPPTheory.HasseAudit, `HexECPPTheory.SoundnessAudit, `HexPrimalityTheory.Conformance, `HexPrimalityTheoryConformance.OptIn, `HexPolyFp.Conformance, `HexPolyZ.Conformance, `HexRCF.Conformance, `HexRealRoots.Conformance, `HexRealRootsTheory.Conformance, `HexResultant.Conformance, `HexRoots.Conformance].map Glob.one ++
+ #[`HexRCF.FrozenSignatureConformance, `HexRCF.FrozenSignatureProofs, `HexRCF.RootContextConformance, `HexRCF.RootContextProofs,
+ `HexRCF.RootPreparePacket, `HexRCF.RootPreparePublic,
+ `HexRCF.RootPrepareProofs, `HexRCF.RootPrepareControls,
+ `HexRCF.RootHeaderPacket, `HexRCF.RootHeaderValues, `HexRCF.RootHeaderControls,
+ `HexRCF.RootHeaderProofs, `HexRCF.RootHeaderBudget, `HexRCF.SignatureQuoteConformance,
+ `HexRCF.DependentQuoteData, `HexRCF.DependentQuote, `HexRCF.DependentQuoteProofs,
+ `HexRCF.ProofFunctionPublic,
+ `HexRCF.QuotientQuoteData, `HexRCF.QuotientQuote, `HexRCF.QuotientQuotePublic,
+ `HexRCF.QuotientQuoteProofs,
+ `HexRCF.RowQuoteData, `HexRCF.RowQuoteCases, `HexRCF.RowQuoteDepth, `HexRCF.RowQuoteProofs,
+ `HexRCF.ReplayBoundary, `HexRCF.ReplayBoundaryProofs,
+ `HexRCF.ReplayHelpers, `HexRCF.ReplayHelperProofs,
+ `HexRCF.CellQuoteStages, `HexRCF.CellQuoteStageProofs,
+ `HexRCF.CellFinishCases, `HexRCF.CellFinishProofs,
+ `HexRCF.CellSourceQuote, `HexRCF.CellSourceProofs,
+ `HexRCF.RowPacketControls,
+ `HexRCF.SourceIdentityLiterals, `HexRCF.SourceIdentityPacket,
+ `HexRCF.SourceIdentityControls, `HexRCF.SourceIdentityProofs,
+ `HexRCF.SourceIdentityEmit,
+ `HexRCF.SourceBuild,
+ `HexRCF.EnumeratedSource.PositiveData0, `HexRCF.EnumeratedSource.Positive,
+ `HexRCF.EnumeratedSource.NegativeData0, `HexRCF.EnumeratedSource.Negative,
+ `HexRCF.EnumeratedSource.CubicData0, `HexRCF.EnumeratedSource.Cubic,
+ `HexRCF.EnumeratedSource.Inputs, `HexRCF.EnumeratedSource.Quote,
+ `HexRCF.TreeQuoteData, `HexRCF.TreeQuote, `HexRCF.TreeQuotePublic, `HexRCF.TreeQuoteProofs,
+ `HexRCF.DependentScalarQuote, `HexRCF.DependentScalarProofs,
+ `HexRCF.PublicSignPacket, `HexRCF.PublicSignPacketValues, `HexRCF.PublicSignPacketControls, `HexRCF.PublicSignPacketProofs,
+ `HexRCF.RootQuoteData, `HexRCF.RootQuoteCases,
+ `HexRCF.RootQuoteSource, `HexRCF.RootQuoteConformance, `HexRCF.RationalQuoteData, `HexRCF.RationalQuoteCases, `HexRCF.RationalQuoteConformance, `HexRCF.ScalarQuoteCases, `HexRCF.ScalarQuoteConformance, `HexRCF.ScalarQuotePublic, `HexRCF.SharedQuoteCases, `HexRCF.SharedQuoteConformance, `HexRCF.SharedQuoteCallbacks, `HexRCF.SharedQuoteCallbackProofs, `HexRCF.SignPacketQuote, `HexRCF.SignPacketProofs, `HexRCF.RecursiveScalarQuote, `HexRCF.RecursiveScalarProofs, `HexRCF.RecursiveScalarPublic, `HexRCF.PolynomialQuotePublic,
+ `HexRCF.RootTableQuote.Cases, `HexRCF.RootTableQuote.Input, `HexRCF.RootTableQuote.Table, `HexRCF.RootTableQuote.Semantics, `HexRCF.RootTableQuote.Conformance, `HexRCF.RootTableQuote.Runtime,
+ `HexRCF.SourceIdentityKernel, `HexRCF.SourceIdentityCases, `HexRCF.MaximalCoefficientsKernel, `HexRCF.MaximalCoefficientsConformance, `HexRCF.MaximalCoefficients, `HexRCF.CellReplay.AssembledKernel, `HexRCF.CellReplay.Assembled, `HexRCF.CellReplay.OperationsPublic, `HexRCF.CellReplay.OperationsKernel, `HexRCF.CellReplay.Operations, `HexRCF.CellReplay.Algebraic.Emit, `HexRCF.CellReplay.Algebraic.MutationData0, `HexRCF.CellReplay.Algebraic.Mutations, `HexRCF.CellReplay.Algebraic.Refusals, `HexRCF.CellReplay.Algebraic.Guards, `HexRCF.CellReplay.Algebraic.Meaning, `HexRCF.CellReplay.Algebraic.Boolean, `HexRCF.CellReplay.Algebraic.BooleanSources, `HexRCF.CellReplay.Algebraic.BooleanBinding, `HexRCF.CellReplay.Algebraic.BooleanQuoted, `HexRCF.CellBuildConformance, `HexRCF.CellDiscoverLinear, `HexRCF.CellDiscoverAlgebraic, `HexRCF.CellDiscoverCases, `HexRCF.CellDiscoverProofs, `HexRCF.CellRequestedConformance, `HexRCF.CellDecisionProofs, `HexRCF.CellCodecProofs, `HexRCF.CellExecutionProofs, `HexRCF.NumberFieldCellsConformance, `HexRCF.GatherCellsConformance, `HexRCF.RealModelConformance, `HexRCF.AlgebraicPreparationCases, `HexRCF.AlgebraicPreparationConformance, `HexRCF.SourceAcceptancePublic, `HexRCF.AlgebraicCellsConformance, `HexRCF.CellReplay.Algebraic.Canonical, `HexRCF.CellReplay.Algebraic.Check, `HexRCF.CellReplay.Algebraic.Convert, `HexRCF.CellReplay.Algebraic.Inputs, `HexRCF.CellReplay.Algebraic.LiteralData0, `HexRCF.CellReplay.Algebraic.LiteralData1, `HexRCF.CellReplay.Algebraic.Literals, `HexRCF.CellReplay.Algebraic.Quote, `HexRCF.CellReplay.Algebraic.Quoted, `HexRCF.CellReplay.Algebraic.CompleteQuote, `HexRCF.CellReplay.Algebraic.CompleteQuoted, `HexRCF.CellReplay.Algebraic.Radical, `HexRCF.CellReplay.Algebraic.Read, `HexRCF.CellReplay.Algebraic.Records, `HexRCF.CellReplay.Algebraic.ScalarData0, `HexRCF.CellReplay.Algebraic.ScalarData1, `HexRCF.CellReplay.Algebraic.Scalars, `HexRCF.CellReplay.Algebraic.Schema, `HexRCF.CellReplay.Algebraic.Sections, `HexPolyDet.Conformance, `HexRank.Conformance, `HexGenericRank.Conformance, `HexGenericRank.Fixtures, `HexRowReduce.FieldFixtures, `HexRealFormulaTheory.ReifierConformance, `HexRCF.RealFormulaConformance, `HexRCF.RealCoefficientsConformance, `HexRCF.AlgebraicProgress, `HexRCF.IsolationProgress, `HexRCF.RadicalProgress, `HexRCF.ProductionProgress, `HexRCF.FieldRootsConformance, `HexRCF.CertificationInputs, `HexRCF.RationalSources, `HexRCF.ProofEvidence, `HexRCF.CheckedConversions, `HexRCF.ReplayModes, `HexRCF.CarrierModes, `HexRCF.SignIndex, `HexRCF.PreparedCoefficients, `HexRCF.FiniteReplay, `HexRCF.FiniteSignsConformance, `HexRCF.CellReplay.OutsideLiterals, `HexRCF.CellReplay.Zero, `HexRCF.CellReplay.ZeroLiterals, `HexRCF.CellReplay.Valuation, `HexRCF.CellReplay.ModuleCheck, `HexRCF.CellReplay.Schema, `HexRCF.CellReplay.Check, `HexRCF.CellReplay.Ordinary, `HexRCF.CellReplay.Quote, `HexRCF.CellReplay.Controls, `HexRCF.CellReplay.Quoted, `HexRCF.CellReplay.Refusals, `HexRCF.CellReplay.Emit, `HexRCF.CellReplay.LiteralData0, `HexRCF.CellReplay.Literals, `HexRCF.CellReplay.MutationData0, `HexRCF.CellReplay.Mutations, `HexRCF.FiniteMatrix.Binding, `HexRCF.FiniteMatrix.Guards.Binding, `HexRCF.FiniteMatrix.Guards.Quotient.Binding, `HexRCF.FiniteMatrix.Guards.Quotient.Controls, `HexRCF.FiniteMatrix.Guards.Quotient.Emit, `HexRCF.FiniteMatrix.Guards.Quotient.Literals, `HexRCF.FiniteMatrix.Guards.Quotient.Ordinary, `HexRCF.FiniteMatrix.Guards.Quotient.Quote, `HexRCF.FiniteMatrix.Guards.Quotient.Reader, `HexRCF.FiniteMatrix.Guards.Quotient.Records, `HexRCF.FiniteMatrix.Guards.Quotient.Source, `HexRCF.FiniteMatrix.Guards.Controls, `HexRCF.FiniteMatrix.Guards.Data, `HexRCF.FiniteMatrix.Guards.Domains, `HexRCF.FiniteMatrix.Guards.Emit, `HexRCF.FiniteMatrix.Guards.LiteralData0, `HexRCF.FiniteMatrix.Guards.Literals, `HexRCF.FiniteMatrix.Guards.Meaning, `HexRCF.FiniteMatrix.Guards.MutationData0, `HexRCF.FiniteMatrix.Guards.Mutations, `HexRCF.FiniteMatrix.Guards.Ordinary, `HexRCF.FiniteMatrix.Guards.Quote, `HexRCF.FiniteMatrix.Guards.Read, `HexRCF.FiniteMatrix.Guards.Records, `HexRCF.FiniteMatrix.Guards.Refusals, `HexRCF.FiniteMatrix.Guards.Schema, `HexRCF.FiniteMatrix.Data, `HexRCF.FiniteMatrix.Emit, `HexRCF.FiniteMatrix.Inputs, `HexRCF.FiniteMatrix.KernelControls, `HexRCF.FiniteMatrix.LiteralData0, `HexRCF.FiniteMatrix.LiteralData1, `HexRCF.FiniteMatrix.LiteralData2, `HexRCF.FiniteMatrix.LiteralData3, `HexRCF.FiniteMatrix.LiteralData4, `HexRCF.FiniteMatrix.LiteralData5, `HexRCF.FiniteMatrix.Literals, `HexRCF.FiniteMatrix.ModuleCheck, `HexRCF.FiniteMatrix.Ordinary, `HexRCF.FiniteMatrix.Packings, `HexRCF.FiniteMatrix.Quote, `HexRCF.FiniteMatrix.Controls, `HexRCF.FiniteMatrix.Refusals, `HexRCF.FiniteMatrix.Read, `HexRCF.FiniteMatrix.Restore, `HexRCF.FiniteMatrix.Schema, `HexRCF.FiniteMatrix.Selected, `HexRCF.FiniteMatrix.Semantics, `HexRCF.FiniteMatrix.Signs, `HexRCF.TowerSamples, `HexRCF.Samples, `HexRCF.RealizationData, `HexRCF.Realization, `HexRCF.NumberField, `HexRCF.Gather, `HexRCF.GatherCatalog, `HexRCF.RegisteredGatherConformance, `HexRCF.GeneratorWindowInputs, `HexRCF.GeneratorWindow, `HexRCF.CertificationProofs, `HexRCF.SuppliedIrreducible, `HexRCF.SuppliedIrreducibleProofs, `HexRCF.SuppliedBudget, `HexRCF.NativeFormulaConformance, `HexRCF.NativeSpecializeConformance, `HexRCF.NativeSamplesConformance, `HexRCF.NativeSampleModelConformance, `HexRCF.NativeSampleModelLiterals, `HexRCF.NativeSourcesConformance, `HexRCF.NativeSelectionLiterals, `HexRCF.NativeSelectionConformance, `HexRCF.NativeSelectionOrdinaryConformance, `HexRCF.SourceSelectionCases, `HexRCF.SourceSelectionNegativeLiterals, `HexRCF.SourceSelectionNegative, `HexRCF.SourceSelectionConformance, `HexRCF.SourceSelectionNative, `HexRCF.SourceSelectionProofs, `HexRCF.SourceSelectionKernel, `HexRCF.SourceSelectionPublic, `HexRCF.FieldSelectionConformance, `HexRCF.NativeSelectionOrderedConformance, `HexRCF.SectionReplayConformance, `HexRCF.SectionProduceConformance, `HexRCF.SectionOrdinaryConformance, `HexRCF.PointReplayConformance, `HexRCF.PointProduceConformance, `HexRCF.PointOrdinaryConformance, `HexRCF.RootReplayLiterals, `HexRCF.RootReplayConformance, `HexRCF.RootReplayOrdinaryConformance, `HexRCF.NestedRootLiterals, `HexRCF.NestedRootProduceConformance, `HexRCF.NestedRootOrdinaryConformance, `HexRCF.RootTransportData, `HexRCF.RootTransportLiterals, `HexRCF.RootTransportConformance, `HexRCF.RootTransportOrdinaryConformance, `HexRCF.NestedTransport.Frame, `HexRCF.NestedTransport.Context, `HexRCF.NestedTransport.Map, `HexRCF.NestedTransport.Conversion, `HexRCF.NestedTransport.Fields, `HexRCF.NestedTransport.Restore, `HexRCF.NestedTransport.Predecessor, `HexRCF.NestedTransport.Facts, `HexRCF.NestedTransport.Constants, `HexRCF.NestedTransport.Operations, `HexRCF.NestedTransport.RootRead, `HexRCF.NestedTransport.Read, `HexRCF.NestedTransport.Model, `HexRCF.NestedTransport.Source, `HexRCF.NestedTransport.Ordinary, `HexRCF.NestedTransport.Controls, `HexRCF.NestedTransport.Literals, `HexRCF.NestedTransport.EndpointLiterals, `HexRCF.NestedTransport.SignLiterals, `HexRCF.NestedTransport.SignData, `HexRCF.TotalAlgebraicProofs, `HexRCF.AlgebraicDivision, `HexRCF.NormalizedCoefficients, `HexRCF.NormalizedInputs, `HexRCF.RegisteredConstants, `HexRCF.NamedConstants, `HexRCF.NamedConstantProofs, `HexRCF.MixedConstants, `HexRCF.CoarseConstants, `HexRCF.RealCoefficientTactic, `HexRCF.RealCoefficientCommonField, `HexRCF.CommonFieldPresentation, `HexRCF.RootAliasesConformance, `HexRCF.RationalRoots, `HexRCF.AlgebraicRoots, `HexRCF.FormulaConformance, `HexRCF.LiteralSignConformance, `HexRCF.FieldSpecializeConformance, `HexRCF.SignDetFieldProofs, `HexRCF.AdmissionConformance, `HexRCF.IsolationConformance].map Glob.one
+
+ ++ #[
+ `HexRCF.SelectedRoot.Packing, `HexRCF.SelectedRoot.PackingData,
+ `HexRCF.SelectedRoot.InverseData, `HexRCF.SelectedRoot.InverseReplay,
+ `HexRCF.SelectedRoot.InverseControls, `HexRCF.InverseFixture,
+ `HexRCF.SelectedRoot.PackingReplay, `HexRCF.SelectedRoot.PackingMissing, `HexRCF.SelectedRoot.PackingAudit,
+ `HexRCF.SelectedRoot.CatalogData, `HexRCF.SelectedRoot.CatalogByteData,
+ `HexRCF.SelectedRoot.CatalogSource, `HexRCF.SelectedRoot.Catalog, `HexRCF.SelectedRoot.CatalogBytes,
+ `HexRCF.SelectedRoot.CatalogControls, `HexRCF.SelectedRoot.CatalogAudit,
+ `HexRCF.SelectedRoot.ByteAudit, `HexRCF.SelectedRoot.ByteBounds, `HexRCF.SelectedRoot.ByteChecks,
+ `HexRCF.SelectedRoot.ByteData, `HexRCF.SelectedRoot.ByteProofs,
+ `HexRCF.SelectedRoot.Audit, `HexRCF.SelectedRoot.Checks, `HexRCF.SelectedRoot.Collect,
+ `HexRCF.SelectedRoot.Controls, `HexRCF.SelectedRoot.Data, `HexRCF.SelectedRoot.Frozen,
+ `HexRCF.SelectedRoot.FrozenCollect, `HexRCF.SelectedRoot.KernelCheck, `HexRCF.SelectedRoot.Intermediates, `HexRCF.SelectedRoot.Literals,
+ `HexRCF.SelectedRoot.PacketFields, `HexRCF.SelectedRoot.Packets, `HexRCF.SelectedRoot.Proofs,
+ `HexRCF.SelectedRoot.Read, `HexRCF.SelectedRoot.Refusals, `HexRCF.SelectedRoot.ReplayTools,
+ `HexRCF.SelectedRoot.Row, `HexRCF.SelectedRoot.RowCollect, `HexRCF.SelectedRoot.RowIntermediates,
+ `HexRCF.SelectedRoot.RowTools, `HexRCF.SelectedRoot.Source, `HexRCF.SelectedRoot.Upper].map Glob.one
+
+ ++ #[`HexRealAlgebraic.Conformance, `HexRealAlgebraic.Checks,
+ `HexRealAlgebraic.FieldSignConformance, `HexNumberField.ComplexChecks,
+ `HexRealAlgebraic.ReprChecks, `HexRealClosure.ReprChecks, `HexRealAlgebraicTheory.FieldSignConformance].map Glob.one
+
+ ++ #[`HexReflect.TestProviders, `HexReflect.Conformance, `HexReflect.ScopeConformance, `HexReflect.ResidueConformance].map Glob.one
+
+ -- Kernel reduction of structured readers through ordinary public imports.
+ ++ #[`HexSignDet.PublicCodec, `HexRCF.PublicGraphCodec].map Glob.one
+
+ ++ #[`HexSignDet.CommonField, `HexSignDet.Conformance, `HexSignDet.CrossCheck, `HexSignDet.FastCheck, `HexSignDet.JsonBytes, `HexSignDet.DescriptorCodec, `HexSignDet.Infinitesimal].map Glob.one
+
+ ++ #[`HexRealClosure.BisectionFrontierTests, `HexRealClosure.IsolationTests,
+ `HexRealClosureTheory.CoefficientSignsConformance,
+ `HexRealClosureTheory.DependenciesConformance,
+ `HexRealClosureTheory.PackingConformance,
+ `HexRealClosureTheory.ContextOperationsConformance,
+ `HexRealClosureTheory.ContextOperationsPublic,
+ `HexRealClosureTheory.NestedSignsConformance,
+ `HexRealClosureTheory.SignCodecConformance,
+ `HexRealClosureTheory.SignFactsConformance,
+ `HexRealClosureTheory.SignRequestsConformance,
+ `HexRealClosureTheory.SignEvidenceConformance].map Glob.one
+
+ ++ #[`HexSturm.Fixtures, `HexSturm.Conformance].map Glob.one
+
+ ++ #[`HexKronecker.Conformance].map Glob.one
+
+ ++ #[`HexSmith.Conformance].map Glob.one
+
+ ++ #[`HexMinPoly.Fixtures, `HexMinPoly.Conformance].map Glob.one
+
+ ++ #[`HexTruncatedSeries.Conformance].map Glob.one
+
+ ++ #[`HexPolyFast.Conformance, `HexPolyFast.Lint].map Glob.one
+
+ ++ #[`HexRationalFn.Conformance, `HexRationalFn.Domains, `HexOrderedFn.Conformance].map Glob.one
+
+ ++ #[`HexLatticeEnum.Conformance].map Glob.one
+
+ ++ #[`HexMvHensel.Conformance, `HexMvFactor.Conformance].map Glob.one
+
+ ++ #[`HexIntFactor.Conformance, `HexIntFactor.EcmTables,
+ `HexIntFactor.FieldReplay,
+ `HexIntFactor.PrimalityConformance].map Glob.one
+
+ ++ #[`HexPolySmith.Conformance].map Glob.one
+
+ ++ #[`HexIntervalTheory.PntLogNaturalConformance,
+ `HexIntervalTheory.PntLogRationalConformance,
+ `HexIntervalTheory.PntExpNegativeConformance,
+ `HexIntervalTheory.PntExpPointConformance].map Glob.one
+
+ ++ #[`HexIntervalTheory.PntNestedLogTwoConformance,
+ `HexIntervalTheory.PntPiPointConformance].map Glob.one
+
+ ++ #[`HexIntervalTheory.PntChebyshevConformance].map Glob.one
+
+ ++ #[`HexIntervalTheory.PntFks2MuConformance,
+ `HexIntervalTheory.PntExpUpperConformance,
+ `HexIntervalTheory.PntRamanujanThetaConformance].map Glob.one
+
+ ++ #[`HexIntervalTheory.PntFks2NestedConformance].map Glob.one
+
+ ++ #[`HexIntervalTheory.PntFks2StructureConformance].map Glob.one
+
+ ++ #[`HexIntervalTheory.PntTable10ShardConformance,
+ `HexIntervalTheory.PntTable10ConvexConformance,
+ `HexIntervalTheory.PntTable10PointwiseConformance,
+ `HexIntervalTheory.PntTable10LargePointwiseConformance,
+ `HexIntervalTheory.PntTable10LogCoupledConformance,
+ `HexIntervalTheory.PntTable10A2Conformance,
+ `HexIntervalTheory.PntTable10ExactConformance].map Glob.one
+
+ ++ #[`HexInterval.StagedPolicyConformance].map Glob.one
+
+ ++ #[`HexIntervalTheory.ArithmeticConformance].map Glob.one
+
+ ++ #[`HexInterval.MinMaxConformance,
+ `HexIntervalTheory.MinMaxConformance].map Glob.one
+
+ ++ #[`HexGraphIso.Cases, `HexGraphIso.SparseCases, `HexPermGroup.Conformance,
+ `HexPermGroup.KernelConformance, `HexPermGroup.Limits].map Glob.one
+
+ ++ #[`HexInterval.PolicyFeatureConformance,
+ `HexInterval.FeaturePolicyConformance,
+ `HexInterval.SearchConformance,
+ `HexInterval.ExecutableConformance,
+ `HexInterval.RuntimeConformance,
+ `HexIntervalTheory.RuntimeProofConformance,
+ `HexIntervalTheory.RuntimeTerminalConformance,
+ `HexIntervalTheory.RuntimeRuleConformance,
+ `HexIntervalTheory.RuntimeEmitConformance,
+ `HexIntervalTheory.ProgramProofConformance,
+ `HexIntervalTheory.DriverConformance,
+ `HexIntervalTheory.ControllerConformance,
+ `HexIntervalTheory.ExecutableControllerConformance,
+ `HexIntervalTheory.RuleConformance,
+ `HexIntervalTheory.FrontendConformance,
+ `HexIntervalTheory.TacticConformance,
+ `HexIntervalTheory.MixedFunctionsConformance,
+ `HexIntervalTheory.MixedInstantiationConformance,
+ `HexIntervalTheory.ExactBranchConformance].map Glob.one
+
+ ++ #[`HexECPPTheory.CompositeDivisors, `HexECPPTheory.NodeBudget,
+ `HexECPPTheory.ModuleImports].map Glob.one
+
+-- The expensive complete-family Mathlib proofs are owned only by this
+-- non-default library. They are excluded from both merge-gating
+-- `HexIntervalTheoryExperiment` and `HexConformance`.
+lean_lib HexIntervalPntFks2Local where
+ globs := #[`HexIntervalTheory.Experiment.PntFks2XpowProof00,
+ `HexIntervalTheory.Experiment.PntFks2XpowProof01,
+ `HexIntervalTheory.Experiment.PntFks2XpowProof02,
+ `HexIntervalTheory.Experiment.PntFks2XpowProof03,
+ `HexIntervalTheory.Experiment.PntFks2XpowProof04,
+ `HexIntervalTheory.Experiment.PntFks2XpowProof05,
+ `HexIntervalTheory.Experiment.PntFks2XpowResults,
+ `HexIntervalTheory.Experiment.PntFks2FamilyProof00,
+ `HexIntervalTheory.Experiment.PntFks2FamilyProof01,
+ `HexIntervalTheory.Experiment.PntFks2FamilyProof02,
+ `HexIntervalTheory.Experiment.PntFks2FamilyProof03,
+ `HexIntervalTheory.Experiment.PntFks2FamilyProof04,
+ `HexIntervalTheory.Experiment.PntFks2FamilyProof05,
+ `HexIntervalTheory.Experiment.PntFks2FamilyProof06,
+ `HexIntervalTheory.Experiment.PntFks2FamilyProof07,
+ `HexIntervalTheory.Experiment.PntFks2FamilyProof08,
+ `HexIntervalTheory.Experiment.PntFks2FamilyProof09,
+ `HexIntervalTheory.Experiment.PntFks2FamilyProof10,
+ `HexIntervalTheory.Experiment.PntFks2FamilyProof12,
+ `HexIntervalTheory.Experiment.PntFks2FamilyProof13,
+ `HexIntervalTheory.Experiment.PntFks2Family].map Glob.one
+
+lean_lib HexIntervalPntFks2ConformanceLocal where
+ srcDir := "conformance"
+ globs := #[`HexIntervalTheory.PntFks2XpowConformance].map Glob.one
+
+-- The local executable owns the complete runtime and guarded-axiom driver.
+lean_exe hex_interval_pnt_fks2_local where
+ srcDir := "conformance"
+ root := `HexIntervalTheory.PntFks2FamilyConformance
+
+-- Public umbrellas intentionally contain only the supported API. Executable
+-- examples and regression tests are compiled through this separate target so
+-- removing them from an umbrella cannot silently remove them from CI.
+lean_lib HexReleaseTests where
+ globs := #[`HexArith.ExtendedGcdTests, `HexECPPTheory.Tests, `HexPoly.InterpretTests, `HexPoly.PseudoTests,
+ `HexPolyTheory.InterpretTests, `HexPolyTheory.PseudoTests,
+ `HexMatrixTheory.Tests,
+ `HexPolyTheory.LiteralTests,
+ `HexBareissTheory.Tests,
+ `HexRowReduceTheory.Tests,
+ `HexBerlekamp.FactorTacticTests,
+ `HexBerlekampTheory.FactorPolyTests,
+ `HexBerlekampZassenhaus.FactorTacticTests,
+ `HexBerlekampZassenhausTheory.FactorPolyTests,
+ `HexBerlekampZassenhausTheory.PublicReplayTests,
+ `HexBerlekampZassenhausTheory.QuotationTests,
+ `HexBerlekampZassenhausTheory.IrreducibilityTests,
+ `HexRealRoots.ReplayTest,
+ `HexRealRoots.TarskiTests,
+ `HexRealRootsTheory.IsolateRootsTests,
+ `HexRealRootsTheory.IsolateRootsElabTests,
+ `HexRealRootsTheory.SturmTests,
+ `HexRealRootsTheory.RealRootCountTests,
+ `HexRealRootsTheory.TarskiTests,
+ `HexRootsTheory.Examples,
+ `HexPrimality.Examples.Curve25519,
+ `HexModular.KernelTests, `HexModular.LoopTests,
+ `HexMvPoly.KernelTests,
+ `HexMvPoly.KernelResidueTests,
+ `HexMvPolyTheory.KernelResidueTests,
+ `HexSparsePoly.KernelTests,
+ `HexGraphIso.TestGraphs,
+ `HexGraphIso.SparseTests,
+ `HexGraphIso.TacticTests,
+ `HexGraphIso.ModuleBoundaryTests,
+ `HexBasic.ModuleBoundaryTests,
+ `HexGraphIsoTheory.TacticTests,
+ `HexGraphIsoTheory.SparseTacticTests,
+ `HexPermGroup.Tests,
+ `HexPermGroup.CertificateTests,
+ `HexPermGroup.ImportTests,
+ `HexPermGroupTheory.Tests,
+ `HexPermGroupTheory.CertificateTests,
+ `HexPermGroupTheory.TacticTests,
+ `HexNumberFieldTower.Embed,
+ `HexRCF.LanguageTests,
+ `HexRCF.SturmBuilderTests,
+ `HexRCF.CarrierTests,
+ `HexRCF.IsolationsTests,
+ `HexRCF.SeparationTests,
+ `HexRCF.CellsTests,
+ `HexRCF.CommonRootTests,
+ `HexRCF.SignMatrixTests,
+ `HexRCF.BuilderTests,
+ `HexRCF.CertificateTests,
+ `HexRCF.DecisionTests,
+ `HexRCF.ReifyTests,
+ `HexRCF.HandlerTests.Support, `HexRCF.HandlerTests.Async,
+ `HexRCF.HandlerTests.Admission,
+ `HexRCF.HandlerTests,
+ `HexRCF.LintTests]
+ -- a name array mapped through Glob.one: an array literal this long is
+ -- elaborated in chunks, on which the name-to-glob coercion fails
+ |>.map Glob.one
+
+-- TODO(lean4#15160): after removing the backport, keep the Hex signed API
+-- regression coverage and remove copied upstream primitive cases.
+lean_exe hexarith_extgcd_tests where
+ root := `HexArith.ExtendedGcdTests
+
+-- Build-only regression roots for the structural matrix frontends.
+@[default_target]
+lean_lib HexStructuralTacticTests where
+ globs := #[`HexPolyDetTheory.Tests, `HexMinPolyTheory.Tests, `HexSmithTheory.Tests, `HexHermiteTheory.Tests, `HexRowReduceTheory.Tests]
+
+lean_lib HexStructuralTacticProofProbe where
+ srcDir := "bench"
+ globs := #[.submodules `HexMinPolyTheory.ProofProbe,
+ .submodules `HexSmithTheory.ProofProbe, .submodules `HexHermiteTheory.ProofProbe,
+ .submodules `HexRowReduceTheory.ProofProbe]
+
+-- Verification-only modules for the incubating multivariate factorization
+-- stack. Keep this separate from the released-test target, whose module list
+-- must exactly mirror the repositories already present in the release manifest.
+lean_lib HexMvFactorizationTests where
+ globs := #[`HexPolyZGcd.Kernel,
+ `HexMvGcd.KernelTests,
+ `HexMvGcd.CertTests,
+ `HexMvGcd.Eval,
+ `HexMvGcd.SquarefreeTests,
+ `HexMvHensel.KernelTests,
+ `HexMvHensel.ShiftTests,
+ `HexMvHensel.UniTests,
+ `HexMvHensel.DiophantineTests,
+ `HexMvHensel.SeedTests,
+ `HexMvHensel.CertTests,
+ `HexMvHensel.LiftTests,
+ `HexMvHensel.CompleteTests,
+ `HexMvFactor.KernelTests,
+ `HexMvFactor.KroneckerTests,
+ `HexMvFactor.LeadingTests,
+ `HexMvFactor.PointTests,
+ `HexMvFactor.InputTests,
+ `HexMvFactor.EezTests,
+ `HexMvFactor.FactorTests,
+ `HexMvFactor.CompleteTests]
+
+-- Complete development imports for the two factorization packages. Their
+-- ordinary umbrellas deliberately expose only the supported release API.
+lean_lib HexFactorizationModules where
+ globs := #[`HexECPPTheory.Native, `HexECPPTheory.Pari,
+ `HexBerlekampZassenhaus.All,
+ `HexBerlekampZassenhausTheory.All]
+
+-- Monorepo-only lint regression for the sparse-poly pair; the kernel
+-- probes live in HexReleaseTests alongside the release manifest's
+-- test_modules entry.
+@[default_target]
+lean_lib HexSparsePolyTests where
+ globs := #[`HexSparsePolyTheory.LintTests]
+
+-- Declaration linting runs in monorepo CI. The lint source is copied to the
+-- mirror with its bridge library; mirror CI builds the published API.
+@[default_target]
+lean_lib HexTruncatedSeriesTests where
+ globs := #[`HexTruncatedSeriesTheory.LintTests]
+
+-- Monorepo-only lint regression for the integer Smith pair. It moves into the
+-- release-manifest-backed test target when the pair is published.
+@[default_target]
+lean_lib HexSmithTests where
+ globs := #[`HexSmith.QuickstartTests,
+ `HexSmithTheory.LintTests,
+ `HexSmithTheory.QuickstartTests]
+
+-- HexCharPoly is not yet a published split repository (its released.yml
+-- entries were withdrawn until the phase pipeline completes), so its
+-- verification-only elaborator regressions stay separate from the
+-- release-manifest-backed target above; they rejoin HexReleaseTests (and
+-- the manifest's test_modules) at publication.
+@[default_target]
+lean_lib HexCharPolyTests where
+ globs := #[`HexCharPoly.CharPolyElabTests,
+ `HexCharPolyTheory.CharPolyElabTests]
+
+-- Mirrors the released aggregate's module-system umbrella, so a library that
+-- never adopted the module system fails here instead of after the publish-out
+-- sync. `check_released_manifest.py` keeps the import list equal to the
+-- `leanprover/hex` pins in `scripts/release/released.yml`.
+@[default_target]
+lean_lib HexAggregateCheck where
+
+-- Canonical end-to-end examples are release artifacts rather than public API.
+-- Keep their target separate for the same reason as the regression tests.
+lean_lib HexReleaseExamples where
+ globs := #[`Examples.Release1, `Examples.Release3, `Examples.Release4, `Examples.Release5,
+ `Examples.FiniteFields, `Examples.DeterminantKernelProof, `Examples.RowReduce]
+
+lean_exe hexrowreduce_emit_fixtures where
+ srcDir := "conformance"
+ root := `HexRowReduce.EmitFixtures
+
+lean_exe hexdeterminant_emit_fixtures where
+ srcDir := "conformance"
+ root := `HexDeterminant.EmitFixtures
+
+lean_exe hexdeterminant_emit_carrier_fixtures where
+ srcDir := "conformance"
+ root := `HexDeterminant.EmitCarrierFixtures
+
+lean_exe hexpolydet_emit_fixtures where
+ srcDir := "conformance"
+ root := `HexPolyDet.EmitFixtures
+
+lean_exe hexbareiss_emit_carrier_fixtures where
+ srcDir := "conformance"
+ root := `HexBareiss.EmitCarrierFixtures
+
+lean_exe hexmodularmatrix_emit_fixtures where
+ srcDir := "conformance"
+ root := `HexModularMatrix.EmitFixtures
+
+lean_exe hexbareiss_emit_fixtures where
+ srcDir := "conformance"
+ root := `HexBareiss.EmitFixtures
+
+lean_exe hexdet_emit_fixtures where
+ srcDir := "conformance"
+ root := `HexDet.EmitFixtures
+
+lean_exe hexdet_emit_carrier_fixtures where
+ srcDir := "conformance"
+ root := `HexDet.EmitCarrierFixtures
+
+lean_exe hexgenericrank_emit_fixtures where
+ srcDir := "conformance"
+ root := `HexGenericRank.EmitFixtures
+
+lean_exe hexrank_emit_fixtures where
+ srcDir := "conformance"
+ root := `HexRank.EmitFixtures
+
+lean_exe hexhermite_emit_fixtures where
+ srcDir := "conformance"
+ root := `HexHermite.EmitFixtures
+
+lean_exe hexsmith_emit_fixtures where
+ srcDir := "conformance"
+ root := `HexSmith.EmitFixtures
+
+lean_exe hexcharpoly_emit_carrier_fixtures where
+ srcDir := "conformance"
+ root := `HexCharPoly.EmitCarrierFixtures
+
+lean_exe hexcharpoly_emit_fixtures where
+ srcDir := "conformance"
+ root := `HexCharPoly.EmitFixtures
+
+lean_exe hexminpoly_emit_fixtures where
+ srcDir := "conformance"
+ root := `HexMinPoly.EmitFixtures
+
+lean_exe hexgramschmidt_emit_fixtures where
+ srcDir := "conformance"
+ root := `HexGramSchmidt.EmitFixtures
+
+lean_exe hexlll_emit_fixtures where
+ srcDir := "conformance"
+ root := `HexLLL.EmitFixtures
+
+lean_exe hexlatticeenum_emit_fixtures where
+ srcDir := "conformance"
+ root := `HexLatticeEnum.EmitFixtures
+
+lean_exe hexsturm_emit_fixtures where
+ srcDir := "conformance"
+ root := `HexSturm.EmitFixtures
+
+lean_exe hexrealroots_emit_fixtures where
+ srcDir := "conformance"
+ root := `HexRealRoots.EmitFixtures
+
+lean_exe hexsigndet_emit_fixtures where
+ srcDir := "conformance"
+ root := `HexSignDet.EmitFixtures
+
+lean_exe hexsigndet_emit_field_signs where
+ srcDir := "conformance"
+ root := `HexSignDet.EmitFieldSigns
+
+lean_exe hexsigndet_emit_common_fields where
+ srcDir := "conformance"
+ root := `HexSignDet.EmitCommonFields
+
+lean_exe hexsigndet_json_bytes where
+ srcDir := "conformance"
+ root := `HexSignDet.JsonBytesDriver
+
+lean_exe hexsigndet_emit_nested_fields where
+ srcDir := "conformance"
+ root := `HexSignDet.EmitNestedFields
+
+lean_exe hexsigndet_emit_infinitesimal where
+ srcDir := "conformance"
+ root := `HexSignDet.EmitInfinitesimal
+
+-- Compiled sign-determination checks over genuine number fields. Mathlib-free.
+lean_exe hexsigndet_field_checks where
+ srcDir := "conformance"
+ root := `HexSignDet.FieldChecks
+
+lean_exe hexrealformula_emit_fixtures where
+ srcDir := "conformance"
+ root := `HexRealFormula.EmitFixtures
+
+lean_exe hexrcf_emit_fixtures where
+ srcDir := "conformance"
+ root := `HexRCF.EmitFixtures
+
+lean_exe hexroots_emit_fixtures where
+ srcDir := "conformance"
+ root := `HexRoots.EmitFixtures
+
+lean_exe hexrealalgebraic_emit_fixtures where
+ srcDir := "conformance"
+ root := `HexRealAlgebraic.EmitFixtures
+
+lean_exe hexrealalgebraic_conformance where
+ srcDir := "conformance"
+ root := `HexRealAlgebraic.RunChecks
+
+lean_exe hexnumberfield_emit_fixtures where
+ srcDir := "conformance"
+ root := `HexNumberField.EmitFixtures
+
+lean_exe hexnumberfieldtower_emit_fixtures where
+ srcDir := "conformance"
+ root := `HexNumberFieldTower.EmitFixtures
+
+lean_exe hexresultant_emit_fixtures where
+ srcDir := "conformance"
+ root := `HexResultant.EmitFixtures
+
+lean_exe hexsparsepoly_bench where
+ srcDir := "bench"
+ root := `HexSparsePoly.Bench
+
+lean_exe hexsparsepoly_emit_fixtures where
+ srcDir := "conformance"
+ root := `HexSparsePoly.EmitFixtures
+
+lean_exe hexmvpoly_emit_fixtures where
+ srcDir := "conformance"
+ root := `HexMvPoly.EmitFixtures
+
+lean_exe hexdeterminantalideal_emit_fixtures where
+ srcDir := "conformance"
+ root := `HexDeterminantalIdeal.EmitFixtures
+
+lean_exe hextruncatedseries_emit_fixtures where
+ srcDir := "conformance"
+ root := `HexTruncatedSeries.EmitFixtures
+
+lean_exe hexmodular_emit_fixtures where
+ srcDir := "conformance"
+ root := `HexModular.EmitFixtures
+
+lean_exe hexgraphiso_emit_fixtures where
+ srcDir := "conformance"
+ root := `HexGraphIso.EmitFixtures
+
+lean_exe hexgraphiso_sparse_probe where
+ srcDir := "conformance"
+ root := `HexGraphIso.SparseProbe
+
+lean_exe hexgraphiso_emit_sparse where
+ srcDir := "conformance"
+ root := `HexGraphIso.EmitSparse
+
+lean_exe hexgraphiso_sparse_bench where
+ srcDir := "bench"
+ root := `HexGraphIso.SparseBench
+
+lean_exe hexpermgroup_emit_fixtures where
+ srcDir := "conformance"
+ root := `HexPermGroup.EmitFixtures
+
+lean_exe hexgraphiso_emit_campaign where
+ srcDir := "conformance"
+ root := `HexGraphIso.EmitCampaign
+
+lean_exe hexpolyzgcd_emit_fixtures where
+ srcDir := "conformance"
+ root := `HexPolyZGcd.EmitFixtures
+
+lean_exe hexpolysmith_emit_fixtures where
+ srcDir := "conformance"
+ root := `HexPolySmith.EmitFixtures
+
+lean_exe hexrationalfn_emit_fixtures where
+ srcDir := "conformance"
+ root := `HexRationalFn.EmitFixtures
+
+lean_exe hexmodular_bench where
+ srcDir := "bench"
+ root := `HexModular.Bench
+ extraDepTargets := #[`HexModularBenchSupport]
+
+lean_exe hexmvgcd_emit_fixtures where
+ srcDir := "conformance"
+ root := `HexMvGcd.EmitFixtures
+
+lean_exe hexmvhensel_emit_fixtures where
+ srcDir := "conformance"
+ root := `HexMvHensel.EmitFixtures
+
+lean_exe hexmvfactor_emit_fixtures where
+ srcDir := "conformance"
+ root := `HexMvFactor.EmitFixtures
+
+lean_exe hexroots_bench where
+ srcDir := "bench"
+ root := `HexRoots.Bench
+
+lean_exe hexresultant_bench where
+ srcDir := "bench"
+ root := `HexResultant.Bench
+
+lean_exe hexnumberfield_bench where
+ srcDir := "bench"
+ root := `HexNumberField.Bench
+
+lean_exe hexrealclosure_bench where
+ srcDir := "bench"
+ root := `HexRealClosure.Bench
+
+lean_exe hexrealclosure_phase4 where
+ srcDir := "bench"
+ root := `HexRealClosure.Phase4
+
+lean_exe hexrealclosure_nested_normalization where
+ srcDir := "bench"
+ root := `HexRealClosure.NestedNormalization
+
+lean_exe hexrealclosure_replay_size where
+ srcDir := "conformance"
+ root := `HexRealClosure.ReplaySize
+
+lean_exe hexrealclosure_trivial_tests where
+ root := `HexRealClosure.TrivialTowerTests
+
+lean_exe hexrealclosure_trivial_conformance where
+ srcDir := "conformance"
+ root := `HexRealClosure.TrivialConformance
+
+lean_exe hexrealclosure_number_field_conformance where
+ srcDir := "conformance"
+ root := `HexRealClosure.NumberFieldConformance
+
+lean_exe hexrealclosure_number_field_samples where
+ srcDir := "conformance"
+ root := `HexRealClosure.NumberFieldSamples
+lean_exe hexrealclosure_bytes_conformance where
+ srcDir := "conformance"
+ root := `HexRealClosure.BytesConformance
+
+lean_exe hexrealclosure_bounds_conformance where
+ srcDir := "conformance"
+ root := `HexRealClosure.BoundsConformance
+
+lean_lib HexRealClosureConformanceSupport where
+ srcDir := "conformance"
+ globs := #[.one `HexRealClosure.NestedReplay]
+
+lean_exe hexrealclosure_sample_conformance where
+ srcDir := "conformance"
+ root := `HexRealClosure.SampleConformance
+
+lean_exe hexrealclosure_isolation_conformance where
+ srcDir := "conformance"
+ root := `HexRealClosure.IsolationConformance
+
+lean_exe hexrealclosure_deflation_conformance where
+ srcDir := "conformance"
+ root := `HexRealClosure.DeflationConformance
+
+lean_exe hexnumberfieldtower_bench where
+ srcDir := "bench"
+ root := `HexNumberFieldTower.Bench
+
+lean_exe hexroots_demo where
+ srcDir := "examples"
+ root := `HexRootsDemo
+
+lean_exe hexmatrix_bench where
+ srcDir := "bench"
+ root := `HexMatrix.Bench
+
+-- The graph_iso fresh-module probes (SPEC/hex-graph-iso § Benchmarks and
+-- SPEC/hex-graph-iso-theory § Tests): build-only structural checks of the
+-- four release probe cases on each tactic route. The scheduled-only CFI
+-- pair has its own target so the merge build stays inside its budget.
+lean_lib HexGraphIsoProofProbe where
+ srcDir := "bench"
+ globs := #[`HexGraphIso.ProofProbe.Support,
+ `HexGraphIso.ProofProbe.Positive12,
+ `HexGraphIso.ProofProbe.Negative12,
+ `HexGraphIso.ProofProbe.Coloured10Pos,
+ `HexGraphIso.ProofProbe.Coloured10Neg].map Glob.one
+
+lean_lib HexGraphIsoSparseProofProbe where
+ srcDir := "bench"
+ globs := #[`HexGraphIso.SparseProofProbe.Support,
+ `HexGraphIso.SparseProofProbe.Positive12,
+ `HexGraphIso.SparseProofProbe.Negative12,
+ `HexGraphIso.SparseProofProbe.Coloured10Pos,
+ `HexGraphIso.SparseProofProbe.Coloured10Neg]
+
+lean_lib HexPermGroupTheoryProofProbe where
+ srcDir := "bench"
+ globs := #[`HexPermGroupTheory.ProofProbe.Kernel]
+
+lean_lib HexGraphIsoTheoryProofProbe where
+ srcDir := "bench"
+ globs := #[`HexGraphIsoTheory.ProofProbe.Support,
+ `HexGraphIsoTheory.ProofProbe.MathlibPositive12,
+ `HexGraphIsoTheory.ProofProbe.MathlibNegative12].map Glob.one
+
+lean_exe hexgraphiso_bench where
+ srcDir := "bench"
+ root := `HexGraphIso.Bench
+
+lean_exe hexpermgroup_bench where
+ srcDir := "bench"
+ root := `HexPermGroup.Bench
+
+-- Local/scheduled per-instance sweep for the cactus plots
+-- (scripts/plots/hexgraphiso-cactus.py); not part of merge CI.
+lean_exe hexgraphiso_cactus where
+ srcDir := "bench"
+ root := `HexGraphIso.Cactus
+
+-- Stage-decomposition profiler for the canonicalization pipeline
+-- (local tool; see bench/HexGraphIso/Profile.lean for methodology).
+lean_exe hexgraphiso_profile where
+ srcDir := "bench"
+ root := `HexGraphIso.Profile
+
+lean_exe hexrowreduce_bench where
+ srcDir := "bench"
+ root := `HexRowReduce.Bench
+
+lean_exe hexdeterminant_bench where
+ srcDir := "bench"
+ root := `HexDeterminant.Bench
+
+lean_exe hexdeterminantalideal_bench where
+ srcDir := "bench"
+ root := `HexDeterminantalIdeal.Bench
+
+lean_exe hexmodularmatrix_bench where
+ srcDir := "bench"
+ root := `HexModularMatrix.Bench
+
+lean_exe hexpolydet_bench where
+ srcDir := "bench"
+ root := `HexPolyDet.Bench
+
+lean_exe hexbareiss_bench where
+ srcDir := "bench"
+ root := `HexBareiss.Bench
+
+lean_exe hexposdef_bench where
+ srcDir := "bench"
+ root := `HexPosDef.Bench
+
+lean_exe hexposdef_emit_fixtures where
+ srcDir := "conformance"
+ root := `HexPosDef.EmitFixtures
+
+lean_exe hexdet_bench where
+ srcDir := "bench"
+ root := `HexDet.Bench
+
+lean_exe hexgenericrank_bench where
+ srcDir := "bench"
+ root := `HexGenericRank.Bench
+
+lean_exe hexrank_bench where
+ srcDir := "bench"
+ root := `HexRank.Bench
+
+lean_exe hexhermite_bench where
+ srcDir := "bench"
+ root := `HexHermite.Bench
+
+lean_exe hexsmith_bench where
+ srcDir := "bench"
+ root := `HexSmith.Bench
+
+lean_exe hexcharpoly_bench where
+ srcDir := "bench"
+ root := `HexCharPoly.Bench
+
+lean_exe hexminpoly_bench where
+ srcDir := "bench"
+ root := `HexMinPoly.Bench
+
+lean_exe hexgramschmidt_bench where
+ srcDir := "bench"
+ root := `HexGramSchmidt.Bench
+
+lean_exe hexsigndet_bench where
+ srcDir := "bench"
+ root := `HexSignDet.Bench
+
+lean_exe hexsigndet_arithmetic_trace where
+ srcDir := "bench"
+ root := `HexSignDet.ArithmeticTrace
+
+lean_lib HexSignDetBenchSupport where
+ srcDir := "bench"
+ globs := #[.one `HexSignDet.Input, .one `HexSignDet.Phases, .one `HexSignDet.Small,
+ .one `HexSignDet.Paired, .one `HexSignDet.Maximal, .one `HexSignDet.Joint,
+ .one `HexSignDet.MaximalMatrix, .one `HexSignDet.Height, .one `HexSignDet.NestedSigns,
+ .one `HexSignDet.NestedTables, .one `HexSignDet.SharedRoots, .one `HexSignDet.InteractingTrace]
+
+lean_exe hexrealalgebraic_bench where
+ srcDir := "bench"
+ root := `HexRealAlgebraic.Bench
+
+lean_lib HexSturmBenchSupport where
+ srcDir := "bench"
+ globs := #[.one `HexSturm.Frontend]
+
+lean_exe hexsturm_compare_exports where
+ srcDir := "bench"
+ root := `HexSturm.CompareExports
+
+lean_exe hexsturm_bench where
+ srcDir := "bench"
+ root := `HexSturm.Bench
+
+lean_exe hexrealroots_bench where
+ srcDir := "bench"
+ root := `HexRealRoots.Bench
+
+lean_exe hexrealformula_bench where
+ srcDir := "bench"
+ root := `HexRealFormula.Bench
+
+lean_exe hexrcf_bench where
+ srcDir := "bench"
+ root := `HexRCF.Bench
+
+lean_exe hexlll_bench where
+ srcDir := "bench"
+ supportInterpreter := true
+ root := `HexLLLBench.Main
+
+lean_exe hexlll_gram_bench where
+ srcDir := "bench"
+ root := `HexLLLBench.GramBench
+
+lean_exe hex_arith_floor where
+ srcDir := "bench"
+ root := `HexBench.ArithFloor
+
+lean_exe hex_interval_representation_spike where
+ srcDir := "bench"
+ root := `HexBench.IntervalRepresentationSpike
+
+lean_exe hex_interval_center_spike where
+ srcDir := "bench"
+ root := `HexBench.IntervalCenterSpike
+
+lean_exe hex_interval_scale_spike where
+ srcDir := "bench"
+ root := `HexBench.IntervalScaleSpike
+
+lean_exe hex_interval_scheduler_spike where
+ srcDir := "bench"
+ root := `HexInterval.IntervalSchedulerSpike
+
+lean_exe hex_interval_policy_frontier_spike where
+ srcDir := "bench"
+ root := `HexInterval.IntervalPolicyFrontierSpike
+
+lean_exe hexinterval_decision_bench where
+ srcDir := "bench"
+ root := `HexInterval.DecisionBench
+
+lean_exe hexbz_factor_service where
+ srcDir := "bench"
+ root := `HexBench.FactorService
+
+lean_exe hexbz_root_split_probe where
+ srcDir := "bench"
+ root := `HexBench.RootSplitProbe
+
+lean_exe hexarith_bench where
+ srcDir := "bench"
+ root := `HexArith.Bench
+
+lean_exe hexpoly_bench where
+ srcDir := "bench"
+ root := `HexPoly.Bench
+
+lean_exe hexpolysmith_bench where
+ srcDir := "bench"
+ root := `HexPolySmith.Bench
+
+lean_exe hexmvpoly_bench where
+ srcDir := "bench"
+ root := `HexMvPoly.Bench
+
+lean_exe hexreflect_bench where
+ srcDir := "bench"
+ root := `HexReflect.Bench
+
+lean_exe hexmvgcd_bench where
+ srcDir := "bench"
+ root := `HexMvGcd.Bench
+
+lean_exe hextruncatedseries_bench where
+ srcDir := "bench"
+ root := `HexTruncatedSeries.Bench
+
+lean_exe hexpolyfast_bench where
+ srcDir := "bench"
+ root := `HexPolyFast.Bench
+
+lean_exe hexrationalfn_bench where
+ srcDir := "bench"
+ root := `HexRationalFn.Bench
+
+lean_exe hexorderedfn_liouville_test where
+ root := `HexOrderedFnTheory.LiouvilleRun
+
+lean_exe hexorderedfn_emit_real_fixtures where
+ srcDir := "conformance"
+ root := `HexOrderedFn.EmitRealFixtures
+
+lean_exe hexorderedfn_emit_fixtures where
+ srcDir := "conformance"
+ root := `HexOrderedFn.EmitFixtures
+
+lean_exe hexorderedfn_bench where
+ srcDir := "bench"
+ root := `HexOrderedFn.Bench
+
+lean_lib HexRationalFnBenchSupport where
+ srcDir := "bench"
+ roots := #[`HexRationalFn.Scaling, `HexRationalFn.Families,
+ `HexRationalFn.Workloads, `HexRationalFn.Fixtures, `HexRationalFn.Nested]
+
+lean_lib HexRationalFnKernelProbe where
+ srcDir := "bench"
+ globs := #[`HexRationalFn.ProofProbe.Support,
+ `HexRationalFn.ProofProbe.Replay4,
+ `HexRationalFn.ProofProbe.Reject64].map Glob.one
+
+lean_exe hexpolyfast_emit_fixtures where
+ srcDir := "conformance"
+ root := `HexPolyFast.EmitFixtures
+
+lean_exe hexpoly_emit_fixtures where
+ srcDir := "conformance"
+ root := `HexPoly.EmitFixtures
+
+lean_exe hexkronecker_emit_fixtures where
+ srcDir := "conformance"
+ root := `HexKronecker.EmitFixtures
+
+lean_exe hexkronecker_bench where
+ srcDir := "bench"
+ root := `HexKronecker.Bench
+
+lean_exe hexpolyfp_emit_fixtures where
+ srcDir := "conformance"
+ root := `HexPolyFp.EmitFixtures
+
+lean_exe hexberlekamp_emit_fixtures where
+ srcDir := "conformance"
+ root := `HexBerlekamp.EmitFixtures
+
+lean_exe hexbz_emit_fixtures where
+ srcDir := "conformance"
+ root := `HexBerlekampZassenhaus.EmitFixtures
+
+lean_exe hexbz_bench where
+ srcDir := "bench"
+ root := `HexBerlekampZassenhaus.Bench
+
+lean_exe hexgfq_emit_fixtures where
+ srcDir := "conformance"
+ root := `HexGFq.EmitFixtures
+
+lean_exe hexgf2_emit_fixtures where
+ srcDir := "conformance"
+ root := `HexGF2.EmitFixtures
+
+lean_exe hexhensel_emit_fixtures where
+ srcDir := "conformance"
+ root := `HexHensel.EmitFixtures
+
+lean_exe hexprimality_emit_fixtures where
+ srcDir := "conformance"
+ root := `HexPrimality.EmitFixtures
+
+lean_exe hexecpp_emit_fixtures where
+ srcDir := "conformance"
+ root := `HexECPP.EmitFixtures
+
+lean_exe hexintfactor_emit_fixtures where
+ srcDir := "conformance"
+ root := `HexIntFactor.EmitFixtures
+
+lean_exe hexconway_emit_fixtures where
+ srcDir := "conformance"
+ root := `HexConway.EmitFixtures
+
+lean_exe hexgfqring_emit_fixtures where
+ srcDir := "conformance"
+ root := `HexGFqRing.EmitFixtures
+
+lean_exe hexgfqfield_emit_fixtures where
+ srcDir := "conformance"
+ root := `HexGFqField.EmitFixtures
+
+lean_exe hexpolyz_bench where
+ srcDir := "bench"
+ root := `HexPolyZ.Bench
+
+lean_exe hexpolyzgcd_bench where
+ srcDir := "bench"
+ root := `HexPolyZGcd.Bench
+
+lean_exe hexpolyz_kronecker_crossover where
+ srcDir := "bench"
+ root := `HexPolyZ.KroneckerCrossover
+
+lean_exe hexpolyz_emit_fixtures where
+ srcDir := "conformance"
+ root := `HexPolyZ.EmitFixtures
+
+lean_exe hexmodarith_bench where
+ srcDir := "bench"
+ root := `HexModArith.Bench
+
+lean_exe hexgf2_bench where
+ srcDir := "bench"
+ root := `HexGF2Bench
+
+-- No bench exes for `Hex*Theory` libraries — see
+-- SPEC/benchmarking.md §Mathlib-free benches. The Mathlib-side libraries
+-- are proof-only; there is no computational kernel to benchmark.
+
+lean_exe hexpolyfp_bench where
+ srcDir := "bench"
+ root := `HexPolyFp.Bench
+
+lean_exe hexgfqring_bench where
+ srcDir := "bench"
+ root := `HexGFqRing.Bench
+
+lean_exe hexgfqfield_bench where
+ srcDir := "bench"
+ root := `HexGFqField.Bench
+
+lean_exe hexgfq_bench where
+ srcDir := "bench"
+ root := `HexGFq.Bench
+
+lean_exe hexhensel_bench where
+ srcDir := "bench"
+ root := `HexHensel.Bench
+
+lean_exe hexprimality_bench where
+ srcDir := "bench"
+ root := `HexPrimality.Bench
+
+lean_exe hexprimality_squfof_measure where
+ srcDir := "bench"
+ root := `HexPrimality.SqufofMeasure
+lean_exe hexecpp_bench where
+ srcDir := "bench"
+ root := `HexECPP.Bench
+
+lean_exe hexprimality_policy_probe where
+ srcDir := "bench"
+ root := `HexPrimality.PolicyProbe
+
+lean_exe hexprimality_field_probe where
+ srcDir := "bench"
+ root := `HexPrimality.FieldProbe
+
+lean_exe hexprimality_factor_experiment where
+ srcDir := "bench"
+ root := `HexPrimality.FactorExperiment
+
+lean_exe hexprimality_fuel_probe where
+ srcDir := "bench"
+ root := `HexPrimality.FuelProbe
+
+-- Expensive exact construction guards run only for the owning library in CI.
+lean_lib HexIntFactorFieldConformance where
+ srcDir := "conformance"
+ globs := #[`HexIntFactor.FieldConstruction, `HexIntFactor.FieldMathlib].map Glob.one
+
+lean_exe hexintfactor_field_bench where
+ srcDir := "bench"
+ root := `HexIntFactor.FieldSearchBench
+
+lean_exe hexintfactor_bench where
+ srcDir := "bench"
+ root := `HexIntFactor.Bench
+
+lean_exe hexberlekamp_bench where
+ srcDir := "bench"
+ root := `HexBerlekamp.Bench
+
+-- Local (non-CI, non-LeanBench) comparison driver for the Strassen base-kernel
+-- measurement; emits JSON for `scripts/plots/strassen-base-kernel-comparison.py`.
+lean_exe hexstrassen_compare where
+ srcDir := "bench"
+ root := `HexStrassen.Compare
+
+lean_exe hexconway_replay where
+ srcDir := "bench"
+ root := `HexConway.Replay
+
+lean_exe hexconway_bench where
+ srcDir := "bench"
+ root := `HexConway.Bench
+
+@[default_target]
+lean_lib HexManual where
+
+lean_exe hexlatticeenum_bench where
+ srcDir := "bench"
+ root := `HexLatticeEnum.Bench
+
+lean_exe tower_factor_diff where
+ srcDir := "bench"
+ root := `HexNumberFieldTower.FactorDiff
+
+lean_exe hexgraphiso_emit_trace where
+ srcDir := "conformance"
+ root := `HexGraphIso.EmitTrace
+
+lean_exe hexnumberfield_quadratic where
+ srcDir := "bench"
+ root := `HexNumberField.Quadratic
+
+lean_lib HexCharPolyTheoryProofProbe where
+ srcDir := "bench"
+ globs := #[`HexCharPolyTheory.ProofProbe.Support,
+ `HexCharPolyTheory.ProofProbe.BlockSupport,
+ `HexCharPolyTheory.ProofProbe.ComputedSupport,
+ `HexCharPolyTheory.ProofProbe.Examples].map Glob.one
+
+-- Manual issue-10301 experiments; neither target belongs to the default build or CI.
+lean_lib CadSampleCostsExperiment where
+ srcDir := "experiments"
+ globs := #[.submodules `CadSampleCosts]
+
+lean_exe cad_sample_costs where
+ srcDir := "experiments"
+ root := `CadSampleCosts.Runtime
+
+-- Serial native ECPP campaign driver; no Mathlib dependency.
+lean_exe hexecpp_native where
+ srcDir := "bench"
+ root := `HexECPP.Native
+
+-- Full current construction comparator, including the registered ECM retry.
+lean_exe hexecpp_compare where
+ srcDir := "bench"
+ root := `HexECPP.Compare
+
+-- Larger CFI correctness fixtures are optional manual builds.
+lean_lib HexGraphIsoCfiDiagnostics where
+ srcDir := "conformance"
+ globs := #[`HexGraphIso.Diagnostics.DenseCfi,
+ `HexGraphIso.Diagnostics.SparseCfi].map Glob.one
+
+-- Focused larger symbolic determinant correctness fixtures.
+lean_lib HexPolyDetTheoryDiagnostics where
+ srcDir := "conformance"
+ globs := #[.submodules `HexPolyDetTheory.Diagnostics]
+
+-- Generated paired measurement arms, outside the representative CI target.
+lean_lib HexCharPolyTheoryMeasurements where
+ srcDir := "bench"
+ globs := #[
+ `HexCharPolyTheory.ProofProbe.Dense4Check,
+ `HexCharPolyTheory.ProofProbe.Dense4Block,
+ `HexCharPolyTheory.ProofProbe.Dense4Quoted,
+ `HexCharPolyTheory.ProofProbe.Dense4Computed,
+ `HexCharPolyTheory.ProofProbe.Dense4Rank,
+ `HexCharPolyTheory.ProofProbe.Dense4Original,
+ `HexCharPolyTheory.ProofProbe.Dense4Packed,
+ `HexCharPolyTheory.ProofProbe.Dense8Check,
+ `HexCharPolyTheory.ProofProbe.Dense8Block,
+ `HexCharPolyTheory.ProofProbe.Dense8Quoted,
+ `HexCharPolyTheory.ProofProbe.Dense8Computed,
+ `HexCharPolyTheory.ProofProbe.Dense8Rank,
+ `HexCharPolyTheory.ProofProbe.Dense8Original,
+ `HexCharPolyTheory.ProofProbe.Dense8Packed,
+ `HexCharPolyTheory.ProofProbe.Dense16Check,
+ `HexCharPolyTheory.ProofProbe.Dense16Block,
+ `HexCharPolyTheory.ProofProbe.Dense16Quoted,
+ `HexCharPolyTheory.ProofProbe.Dense16Computed,
+ `HexCharPolyTheory.ProofProbe.Dense16Rank,
+ `HexCharPolyTheory.ProofProbe.Dense16Original,
+ `HexCharPolyTheory.ProofProbe.Dense16Packed,
+ `HexCharPolyTheory.ProofProbe.Dense32Check,
+ `HexCharPolyTheory.ProofProbe.Dense32Block,
+ `HexCharPolyTheory.ProofProbe.Dense32Quoted,
+ `HexCharPolyTheory.ProofProbe.Dense32Computed,
+ `HexCharPolyTheory.ProofProbe.Dense32Rank,
+ `HexCharPolyTheory.ProofProbe.Dense32Original,
+ `HexCharPolyTheory.ProofProbe.Dense32Packed,
+ `HexCharPolyTheory.ProofProbe.Dense16Candidate,
+ `HexCharPolyTheory.ProofProbe.Dense16Reference].map Glob.one
+
+-- Fixed CM data and bounded roots for the independent analytic oracle.
+lean_exe hexecpp_emit_class_polynomials where
+ srcDir := "conformance"
+ root := `HexECPP.EmitClassPolynomials
+
+lean_lib KernelReplayExperiment where
+ srcDir := "experiments"
+ globs := #[.one `KernelReplay.Assemble, .one `KernelReplay.Json, .one `KernelReplay.Generated,
+ .one `KernelReplay.NativePackets,
+ .one `KernelReplay.NativeModels,
+ .one `KernelReplay.NativeReplay,
+ .one `KernelReplay.NativeValues,
+ .one `KernelReplay.NativeFactory,
+ .one `KernelReplay.NativeChildren,
+ .one `KernelReplay.NativeReaders,
+ .one `KernelReplay.NativeAssembly,
+ .one `KernelReplay.NativeAssemblyModels,
+ .one `KernelReplay.NativeAssemblyStaged,
+ .one `KernelReplay.FrameEncode,
+ .one `KernelReplay.FrameData,
+ .one `KernelReplay.FrameDataProbe,
+ .one `KernelReplay.FrameSource,
+ .one `KernelReplay.NativeAssemblyNestedData,
+ .one `KernelReplay.FrameNested,
+ .one `KernelReplay.FrameJoint,
+ .one `KernelReplay.GuardNativeFrontier,
+ .one `KernelReplay.GuardNativeBindings,
+ .one `KernelReplay.GuardNativeAudit,
+ .one `KernelReplay.GuardRecordStore,
+ .one `KernelReplay.GuardRecordReplay,
+ .one `KernelReplay.GuardRecordAudit,
+ .one `KernelReplay.GuardInventoryReplay,
+ .one `KernelReplay.GuardInventoryAudit,
+ .one `KernelReplay.GuardInventoryPublic,
+ .one `KernelReplay.GuardInventoryPublicAudit,
+ .one `KernelReplay.GuardDescriptorInputs,
+ .one `KernelReplay.GuardDescriptorInputsAudit,
+ .one `KernelReplay.GuardCoefficientIndex,
+ .one `KernelReplay.GuardDescriptorReductions,
+ .one `KernelReplay.GuardDescriptorReductionsAudit,
+ .one `KernelReplay.GuardCoefficientControl,
+ .one `KernelReplay.GuardPrimitiveFacts,
+ .one `KernelReplay.GuardPrimitiveAudit,
+ .one `KernelReplay.GuardDescriptorSupplier,
+ .one `KernelReplay.GuardChainStart,
+ .one `KernelReplay.GuardChainEnd,
+ .one `KernelReplay.GuardChainPublic,
+ .one `KernelReplay.GuardChainPublicAudit,
+ .one `KernelReplay.GuardMomentFirst,
+ .one `KernelReplay.GuardMomentPublic,
+ .one `KernelReplay.GuardMomentPublicAudit,
+ .one `KernelReplay.GuardNextChainStart,
+ .one `KernelReplay.GuardNextChainEnd,
+ .one `KernelReplay.GuardNextChainPublic,
+ .one `KernelReplay.GuardNextChainPublicAudit,
+ .one `KernelReplay.GuardRemainderStart,
+ .one `KernelReplay.GuardRemainderEnd,
+ .one `KernelReplay.GuardRemainderPublic,
+ .one `KernelReplay.GuardRemainderPublicAudit,
+ .one `KernelReplay.GuardMomentSecond,
+ .one `KernelReplay.GuardMomentSecondPublic,
+ .one `KernelReplay.GuardMomentSecondPublicAudit,
+ .one `KernelReplay.GuardLastChainStart,
+ .one `KernelReplay.GuardLastChainEnd,
+ .one `KernelReplay.GuardLastChainPublic,
+ .one `KernelReplay.GuardLastChainPublicAudit,
+ .one `KernelReplay.GuardLastRemainderStart,
+ .one `KernelReplay.GuardRecurrenceShape,
+ .one `KernelReplay.GuardRecurrenceInputs,
+ .one `KernelReplay.GuardRecurrenceEnd,
+ .one `KernelReplay.GuardLastRemainderEnd,
+ .one `KernelReplay.GuardLastRemainderPublic,
+ .one `KernelReplay.GuardLastRemainderPublicAudit,
+ .one `KernelReplay.GuardMomentLast,
+ .one `KernelReplay.GuardMomentAll,
+ .one `KernelReplay.GuardMomentAllPublic,
+ .one `KernelReplay.GuardMomentAllPublicAudit,
+ .one `KernelReplay.GuardDescriptorPoint,
+ .one `KernelReplay.GuardDescriptorPublic,
+ .one `KernelReplay.GuardDescriptorPublicAudit,
+ .one `KernelReplay.GuardPackingShape,
+ .one `KernelReplay.GuardPackingNodeInputs,
+ .one `KernelReplay.GuardPackingInputsAudit,
+ .one `KernelReplay.GuardPackingQueries,
+ .one `KernelReplay.GuardPackingRoot,
+ .one `KernelReplay.GuardPackingRootPublic,
+ .one `KernelReplay.GuardPackingRootPublicAudit,
+ .one `KernelReplay.GuardPackingLeaf,
+ .one `KernelReplay.GuardPackingBranchInputs,
+ .one `KernelReplay.GuardPackingBranchQueries,
+ .one `KernelReplay.GuardPackingBranch,
+ .one `KernelReplay.GuardPackingBranchPublic,
+ .one `KernelReplay.GuardPackingBranchPublicAudit,
+ .one `KernelReplay.GuardPackingRightInputs,
+ .one `KernelReplay.GuardPackingRightQueries,
+ .one `KernelReplay.GuardPackingRight,
+ .one `KernelReplay.GuardPackingRightPublic,
+ .one `KernelReplay.GuardPackingRightPublicAudit,
+ .one `KernelReplay.GuardPackingRecord,
+ .one `KernelReplay.GuardPackingRecordPublic,
+ .one `KernelReplay.GuardPackingRecordPublicAudit,
+ .one `KernelReplay.GuardRemainingShape,
+ .one `KernelReplay.GuardRemainingInputs,
+ .one `KernelReplay.GuardCoefficientReduce,
+ .one `KernelReplay.GuardCoefficientReduceControl,
+ .one `KernelReplay.GuardRemainingControlAudit,
+ .one `KernelReplay.GuardRemainingInput00,
+ .one `KernelReplay.GuardRemainingInput01,
+ .one `KernelReplay.GuardRemainingInput02,
+ .one `KernelReplay.GuardRemainingInput03,
+ .one `KernelReplay.GuardRemainingInput04,
+ .one `KernelReplay.GuardRemainingInput05,
+ .one `KernelReplay.GuardRemainingInput06,
+ .one `KernelReplay.GuardRemainingInput07,
+ .one `KernelReplay.GuardRemainingInput08,
+ .one `KernelReplay.GuardRemainingInput09,
+ .one `KernelReplay.GuardRemainingInputsAudit,
+ .one `KernelReplay.GuardRemainingQuery,
+ .one `KernelReplay.GuardRemainingChain00,
+ .one `KernelReplay.GuardRemainingChain01,
+ .one `KernelReplay.GuardRemainingProof00,
+ .one `KernelReplay.GuardRemainingFirstPublic,
+ .one `KernelReplay.GuardRemainingFirstPublicAudit,
+ .one `KernelReplay.GuardRemainingProof01,
+ .one `KernelReplay.GuardRemainingRootQueriesPublic,
+ .one `KernelReplay.GuardRemainingRootQueriesAudit,
+ .one `KernelReplay.GuardRemainingProof02,
+ .one `KernelReplay.GuardRemainingProof03,
+ .one `KernelReplay.GuardRemainingProof04,
+ .one `KernelReplay.GuardRemainingProof05,
+ .one `KernelReplay.GuardRemainingProof06,
+ .one `KernelReplay.GuardRemainingProof07,
+ .one `KernelReplay.GuardRemainingProof08,
+ .one `KernelReplay.GuardRemainingProof09,
+ .one `KernelReplay.GuardRemainingProof10,
+ .one `KernelReplay.GuardRemainingProof11,
+ .one `KernelReplay.GuardRemainingQueriesPublic,
+ .one `KernelReplay.GuardRemainingQueriesAudit,
+ .one `KernelReplay.GuardRemainingProof12,
+ .one `KernelReplay.GuardRemainingProof13,
+ .one `KernelReplay.GuardRemainingProof14,
+ .one `KernelReplay.GuardRemainingProof15,
+ .one `KernelReplay.GuardRemainingProof16,
+ .one `KernelReplay.GuardRemainingProof17,
+ .one `KernelReplay.GuardRemainingProof18,
+ .one `KernelReplay.GuardRemainingProof19,
+ .one `KernelReplay.GuardRemainingProof20,
+ .one `KernelReplay.GuardRemainingProof21,
+ .one `KernelReplay.GuardRemainingProof22,
+ .one `KernelReplay.GuardRemainingProof23,
+ .one `KernelReplay.GuardLastQueriesPublic,
+ .one `KernelReplay.GuardLastQueriesAudit,
+ .one `KernelReplay.GuardRemainingNodes,
+ .one `KernelReplay.GuardRemainingNodesPublic,
+ .one `KernelReplay.GuardRemainingNodesAudit,
+ .one `KernelReplay.GuardRemainingRecords,
+ .one `KernelReplay.GuardRemainingRecord2,
+ .one `KernelReplay.GuardRemainingRecordsPublic,
+ .one `KernelReplay.GuardRemainingRecordsAudit,
+ .one `KernelReplay.GuardSecondData,
+ .one `KernelReplay.GuardSecondPublic,
+ .one `KernelReplay.GuardSecondPublicAudit,
+ .one `KernelReplay.GuardOperand,
+ .one `KernelReplay.GuardFrontierStore,
+ .one `KernelReplay.GuardFrontier,
+ .one `KernelReplay.GuardFrontierBindings,
+ .one `KernelReplay.GuardRecordExt,
+ .one `KernelReplay.GuardReplayBindings,
+ .one `KernelReplay.GuardReplayBindingsAudit,
+ .one `KernelReplay.GuardObligations,
+ .one `KernelReplay.GuardFirstPublic,
+ .one `KernelReplay.GuardFirstPublicAudit,
+ .one `KernelReplay.GuardObligations01,
+ .one `KernelReplay.GuardObligations02,
+ .one `KernelReplay.GuardObligations03,
+ .one `KernelReplay.GuardObligations04,
+ .one `KernelReplay.GuardObligations05,
+ .one `KernelReplay.GuardObligations06,
+ .one `KernelReplay.GuardPrefixAudit,
+ .one `KernelReplay.GuardObligations07,
+ .one `KernelReplay.GuardObligations08,
+ .one `KernelReplay.GuardObligations09,
+ .one `KernelReplay.GuardObligations10,
+ .one `KernelReplay.GuardObligations11,
+ .one `KernelReplay.GuardObligations12,
+ .one `KernelReplay.GuardObligations13,
+ .one `KernelReplay.GuardObligations14,
+ .one `KernelReplay.GuardObligations15,
+ .one `KernelReplay.GuardObligations16,
+ .one `KernelReplay.GuardObligations17,
+ .one `KernelReplay.GuardObligations18,
+ .one `KernelReplay.GuardObligations19,
+ .one `KernelReplay.GuardObligations20,
+ .one `KernelReplay.GuardObligations21,
+ .one `KernelReplay.GuardObligations22,
+ .one `KernelReplay.GuardObligations23,
+ .one `KernelReplay.GuardObligations24,
+ .one `KernelReplay.GuardObligations25,
+ .one `KernelReplay.GuardObligations26,
+ .one `KernelReplay.GuardObligations27,
+ .one `KernelReplay.GuardObligations28,
+ .one `KernelReplay.GuardObligations29,
+ .one `KernelReplay.GuardObligations30,
+ .one `KernelReplay.GuardObligations31,
+ .one `KernelReplay.GuardObligations32,
+ .one `KernelReplay.GuardObligations33,
+ .one `KernelReplay.GuardObligations34,
+ .one `KernelReplay.GuardObligations35,
+ .one `KernelReplay.GuardObligations36,
+ .one `KernelReplay.GuardObligations37,
+ .one `KernelReplay.GuardObligations38,
+ .one `KernelReplay.GuardObligations39,
+ .one `KernelReplay.GuardObligations40,
+ .one `KernelReplay.GuardObligations41,
+ .one `KernelReplay.GuardObligations42,
+ .one `KernelReplay.GuardObligations43,
+ .one `KernelReplay.GuardObligations44,
+ .one `KernelReplay.GuardObligations45,
+ .one `KernelReplay.GuardObligations46,
+ .one `KernelReplay.GuardObligations47,
+ .one `KernelReplay.GuardObligations48,
+ .one `KernelReplay.GuardObligations49,
+ .one `KernelReplay.GuardObligations50,
+ .one `KernelReplay.GuardObligations51,
+ .one `KernelReplay.GuardObligations52,
+ .one `KernelReplay.GuardObligations53,
+ .one `KernelReplay.GuardObligations54,
+ .one `KernelReplay.GuardObligations55,
+ .one `KernelReplay.GuardObligations56,
+ .one `KernelReplay.GuardObligations57,
+ .one `KernelReplay.GuardObligations58,
+ .one `KernelReplay.GuardObligations59,
+ .one `KernelReplay.GuardObligations60,
+ .one `KernelReplay.GuardObligations61,
+ .one `KernelReplay.GuardObligations62,
+ .one `KernelReplay.GuardObligations63,
+ .one `KernelReplay.GuardObligations64,
+ .one `KernelReplay.GuardObligations65,
+ .one `KernelReplay.GuardObligations66,
+ .one `KernelReplay.GuardObligations67,
+ .one `KernelReplay.GuardObligations68,
+ .one `KernelReplay.GuardObligations69,
+ .one `KernelReplay.GuardObligations70,
+ .one `KernelReplay.GuardObligations71,
+ .one `KernelReplay.GuardObligations72,
+ .one `KernelReplay.GuardObligations73,
+ .one `KernelReplay.GuardObligations74,
+ .one `KernelReplay.GuardObligations75,
+ .one `KernelReplay.GuardObligations76,
+ .one `KernelReplay.GuardObligations77,
+ .one `KernelReplay.GuardObligations78,
+ .one `KernelReplay.GuardObligations79,
+ .one `KernelReplay.GuardObligations80,
+ .one `KernelReplay.GuardObligations81,
+ .one `KernelReplay.GuardObligations82,
+ .one `KernelReplay.GuardObligations83,
+ .one `KernelReplay.GuardObligations84,
+ .one `KernelReplay.GuardObligations85,
+ .one `KernelReplay.GuardObligations86,
+ .one `KernelReplay.GuardObligations87,
+ .one `KernelReplay.GuardObligations88,
+ .one `KernelReplay.GuardObligations89,
+ .one `KernelReplay.GuardObligations90,
+ .one `KernelReplay.GuardObligations91,
+ .one `KernelReplay.GuardObligations92,
+ .one `KernelReplay.GuardObligations93,
+ .one `KernelReplay.GuardObligations94,
+ .one `KernelReplay.GuardObligations95,
+ .one `KernelReplay.GuardObligations96,
+ .one `KernelReplay.GuardObligations97,
+ .one `KernelReplay.GuardObligations98,
+ .one `KernelReplay.GuardObligations99,
+ .one `KernelReplay.GuardObligations100,
+ .one `KernelReplay.GuardObligations101,
+ .one `KernelReplay.GuardObligations102,
+ .one `KernelReplay.GuardObligations103,
+ .one `KernelReplay.GuardObligations104,
+ .one `KernelReplay.GuardObligations105,
+ .one `KernelReplay.GuardObligations106,
+ .one `KernelReplay.GuardObligations107,
+ .one `KernelReplay.GuardObligations108,
+ .one `KernelReplay.GuardObligations109,
+ .one `KernelReplay.GuardObligations110,
+ .one `KernelReplay.GuardObligations111,
+ .one `KernelReplay.GuardObligations112,
+ .one `KernelReplay.GuardObligations113,
+ .one `KernelReplay.GuardObligations114,
+ .one `KernelReplay.GuardObligations115,
+ .one `KernelReplay.GuardObligations116,
+ .one `KernelReplay.GuardObligations117,
+ .one `KernelReplay.GuardObligations118,
+ .one `KernelReplay.GuardObligations119,
+ .one `KernelReplay.GuardObligations120,
+ .one `KernelReplay.GuardObligations121,
+ .one `KernelReplay.GuardObligations122,
+ .one `KernelReplay.GuardObligations123,
+ .one `KernelReplay.GuardObligations124,
+ .one `KernelReplay.GuardObligations125,
+ .one `KernelReplay.GuardObligations126,
+ .one `KernelReplay.GuardObligations127,
+ .one `KernelReplay.GuardObligations128,
+ .one `KernelReplay.GuardObligations129,
+ .one `KernelReplay.GuardObligations130,
+ .one `KernelReplay.GuardObligations131,
+ .one `KernelReplay.GuardObligations132,
+ .one `KernelReplay.GuardObligations133,
+ .one `KernelReplay.GuardObligations134,
+ .one `KernelReplay.GuardObligations135,
+ .one `KernelReplay.GuardObligations136,
+ .one `KernelReplay.GuardObligations137,
+ .one `KernelReplay.GuardObligations138,
+ .one `KernelReplay.GuardObligations139,
+ .one `KernelReplay.GuardObligations140,
+ .one `KernelReplay.GuardObligations141,
+ .one `KernelReplay.GuardObligations142,
+ .one `KernelReplay.GuardObligations143,
+ .one `KernelReplay.GuardObligations144,
+ .one `KernelReplay.GuardObligations145,
+ .one `KernelReplay.GuardObligations146,
+ .one `KernelReplay.GuardObligations147,
+ .one `KernelReplay.GuardObligations148,
+ .one `KernelReplay.GuardObligations149,
+ .one `KernelReplay.GuardObligations150,
+ .one `KernelReplay.GuardObligations151,
+ .one `KernelReplay.GuardObligations152,
+ .one `KernelReplay.GuardObligations153,
+ .one `KernelReplay.GuardObligations154,
+ .one `KernelReplay.GuardObligations155,
+ .one `KernelReplay.GuardObligations156,
+ .one `KernelReplay.GuardObligations157,
+ .one `KernelReplay.GuardObligations158,
+ .one `KernelReplay.GuardObligations159,
+ .one `KernelReplay.GuardObligations160,
+ .one `KernelReplay.GuardObligations161,
+ .one `KernelReplay.GuardObligations162,
+ .one `KernelReplay.GuardObligations163,
+ .one `KernelReplay.GuardObligations164,
+ .one `KernelReplay.GuardObligations165,
+ .one `KernelReplay.GuardObligations166,
+ .one `KernelReplay.GuardObligations167,
+ .one `KernelReplay.GuardObligations168,
+ .one `KernelReplay.GuardObligations169,
+ .one `KernelReplay.GuardObligations170,
+ .one `KernelReplay.GuardObligations171,
+ .one `KernelReplay.GuardObligations172,
+ .one `KernelReplay.GuardObligations173,
+ .one `KernelReplay.GuardObligations174,
+ .one `KernelReplay.GuardObligations175,
+ .one `KernelReplay.GuardObligations176,
+ .one `KernelReplay.GuardObligations177,
+ .one `KernelReplay.GuardObligations178,
+ .one `KernelReplay.GuardObligations179,
+ .one `KernelReplay.GuardObligations180,
+ .one `KernelReplay.GuardObligations181,
+ .one `KernelReplay.GuardObligations182,
+ .one `KernelReplay.GuardObligations183,
+ .one `KernelReplay.GuardObligations184,
+ .one `KernelReplay.GuardObligations185,
+ .one `KernelReplay.GuardObligations186,
+ .one `KernelReplay.GuardObligations187,
+ .one `KernelReplay.GuardObligations188,
+ .one `KernelReplay.GuardObligations189,
+ .one `KernelReplay.GuardObligations190,
+ .one `KernelReplay.GuardObligations191,
+ .one `KernelReplay.GuardObligations192,
+ .one `KernelReplay.GuardObligations193,
+ .one `KernelReplay.GuardObligations194,
+ .one `KernelReplay.GuardObligations195,
+ .one `KernelReplay.GuardObligations196,
+ .one `KernelReplay.GuardObligations197,
+ .one `KernelReplay.GuardObligations198,
+ .one `KernelReplay.GuardObligations199,
+ .one `KernelReplay.GuardObligations200,
+ .one `KernelReplay.GuardObligations201,
+ .one `KernelReplay.GuardObligations202,
+ .one `KernelReplay.GuardObligations203,
+ .one `KernelReplay.GuardObligations204,
+ .one `KernelReplay.GuardObligations205,
+ .one `KernelReplay.GuardObligations206,
+ .one `KernelReplay.GuardObligations207,
+ .one `KernelReplay.GuardObligations208,
+ .one `KernelReplay.GuardObligations209,
+ .one `KernelReplay.GuardObligations210,
+ .one `KernelReplay.GuardObligations211,
+ .one `KernelReplay.GuardObligations212,
+ .one `KernelReplay.GuardObligations213,
+ .one `KernelReplay.GuardObligations214,
+ .one `KernelReplay.GuardObligations215,
+ .one `KernelReplay.GuardObligations216,
+ .one `KernelReplay.GuardObligations217,
+ .one `KernelReplay.GuardObligations218,
+ .one `KernelReplay.GuardObligations219,
+ .one `KernelReplay.GuardObligations220,
+ .one `KernelReplay.GuardObligations221,
+ .one `KernelReplay.GuardObligations222,
+ .one `KernelReplay.GuardObligations223,
+ .one `KernelReplay.GuardObligations224,
+ .one `KernelReplay.GuardObligations225,
+ .one `KernelReplay.GuardObligations226,
+ .one `KernelReplay.GuardObligations227,
+ .one `KernelReplay.GuardObligations228,
+ .one `KernelReplay.GuardObligations229,
+ .one `KernelReplay.GuardObligations230,
+ .one `KernelReplay.GuardObligations231,
+ .one `KernelReplay.GuardObligations232,
+ .one `KernelReplay.GuardObligations233,
+ .one `KernelReplay.GuardObligations234,
+ .one `KernelReplay.GuardObligations235,
+ .one `KernelReplay.GuardObligations236,
+ .one `KernelReplay.GuardObligations237,
+ .one `KernelReplay.GuardObligations238,
+ .one `KernelReplay.GuardObligations239,
+ .one `KernelReplay.GuardObligations240,
+ .one `KernelReplay.GuardObligations241,
+ .one `KernelReplay.GuardObligations242,
+ .one `KernelReplay.GuardObligations243,
+ .one `KernelReplay.GuardObligations244,
+ .one `KernelReplay.GuardObligations245,
+ .one `KernelReplay.GuardObligations246,
+ .one `KernelReplay.GuardObligations247,
+ .one `KernelReplay.GuardObligations248,
+ .one `KernelReplay.GuardObligations249,
+ .one `KernelReplay.GuardObligations250,
+ .one `KernelReplay.GuardObligations251,
+ .one `KernelReplay.GuardObligations252,
+ .one `KernelReplay.GuardObligations253,
+ .one `KernelReplay.GuardObligations254,
+ .one `KernelReplay.GuardObligations255,
+ .one `KernelReplay.GuardObligations256,
+ .one `KernelReplay.GuardObligations257,
+ .one `KernelReplay.GuardObligations258,
+ .one `KernelReplay.GuardObligations259,
+ .one `KernelReplay.GuardObligations260,
+ .one `KernelReplay.GuardObligations261,
+ .one `KernelReplay.GuardObligations262,
+ .one `KernelReplay.GuardObligations263,
+ .one `KernelReplay.GuardObligations264,
+ .one `KernelReplay.GuardObligations265,
+ .one `KernelReplay.GuardObligations266,
+ .one `KernelReplay.GuardObligations267,
+ .one `KernelReplay.GuardObligations268,
+ .one `KernelReplay.GuardObligations269,
+ .one `KernelReplay.GuardObligations270,
+ .one `KernelReplay.GuardObligations271,
+ .one `KernelReplay.GuardObligations272,
+ .one `KernelReplay.GuardObligations273,
+ .one `KernelReplay.GuardObligations274,
+ .one `KernelReplay.GuardObligations275,
+ .one `KernelReplay.GuardObligations276,
+ .one `KernelReplay.GuardObligations277,
+ .one `KernelReplay.GuardObligations278,
+ .one `KernelReplay.GuardObligations279,
+ .one `KernelReplay.GuardObligations280,
+ .one `KernelReplay.GuardObligations281,
+ .one `KernelReplay.GuardObligations282,
+ .one `KernelReplay.GuardObligations283,
+ .one `KernelReplay.GuardObligations284,
+ .one `KernelReplay.GuardObligations285,
+ .one `KernelReplay.GuardObligations286,
+ .one `KernelReplay.GuardObligations287,
+ .one `KernelReplay.GuardObligations288,
+ .one `KernelReplay.GuardObligations289,
+ .one `KernelReplay.GuardObligations290,
+ .one `KernelReplay.GuardObligations291,
+ .one `KernelReplay.GuardObligations292,
+ .one `KernelReplay.GuardObligations293,
+ .one `KernelReplay.GuardObligations294,
+ .one `KernelReplay.GuardObligations295,
+ .one `KernelReplay.GuardObligations296,
+ .one `KernelReplay.GuardObligations297,
+ .one `KernelReplay.GuardObligations298,
+ .one `KernelReplay.GuardObligations299,
+ .one `KernelReplay.GuardObligations300,
+ .one `KernelReplay.GuardObligations301,
+ .one `KernelReplay.GuardObligations302,
+ .one `KernelReplay.GuardObligations303,
+ .one `KernelReplay.GuardObligations304,
+ .one `KernelReplay.GuardObligations305,
+ .one `KernelReplay.GuardObligations306,
+ .one `KernelReplay.GuardObligations307,
+ .one `KernelReplay.GuardObligations308,
+ .one `KernelReplay.GuardObligations309,
+ .one `KernelReplay.GuardObligations310,
+ .one `KernelReplay.GuardObligations311,
+ .one `KernelReplay.GuardObligations312,
+ .one `KernelReplay.GuardObligations313,
+ .one `KernelReplay.GuardObligations314,
+ .one `KernelReplay.GuardObligations315,
+ .one `KernelReplay.GuardObligations316,
+ .one `KernelReplay.GuardObligations317,
+ .one `KernelReplay.GuardObligations318,
+ .one `KernelReplay.GuardObligations319,
+ .one `KernelReplay.GuardObligations320,
+ .one `KernelReplay.GuardObligations321,
+ .one `KernelReplay.GuardObligations322,
+ .one `KernelReplay.GuardObligations323,
+ .one `KernelReplay.GuardObligations324,
+ .one `KernelReplay.GuardObligations325,
+ .one `KernelReplay.GuardObligations326,
+ .one `KernelReplay.GuardObligations327,
+ .one `KernelReplay.GuardObligations328,
+ .one `KernelReplay.GuardObligations329,
+ .one `KernelReplay.GuardObligations330,
+ .one `KernelReplay.GuardObligations331,
+ .one `KernelReplay.GuardObligations332,
+ .one `KernelReplay.GuardObligations333,
+ .one `KernelReplay.GuardObligations334,
+ .one `KernelReplay.GuardObligations335,
+ .one `KernelReplay.GuardObligations336,
+ .one `KernelReplay.GuardObligations337,
+ .one `KernelReplay.GuardObligations338,
+ .one `KernelReplay.GuardObligations339,
+ .one `KernelReplay.GuardObligations340,
+ .one `KernelReplay.GuardObligations341,
+ .one `KernelReplay.GuardObligations342,
+ .one `KernelReplay.GuardObligations343,
+ .one `KernelReplay.GuardObligations344,
+ .one `KernelReplay.GuardObligations345,
+ .one `KernelReplay.GuardObligations346,
+ .one `KernelReplay.GuardObligations347,
+ .one `KernelReplay.GuardObligations348,
+ .one `KernelReplay.GuardObligations349,
+ .one `KernelReplay.GuardObligations350,
+ .one `KernelReplay.GuardObligations351,
+ .one `KernelReplay.GuardObligations352,
+ .one `KernelReplay.GuardObligations353,
+ .one `KernelReplay.GuardObligations354,
+ .one `KernelReplay.GuardObligations355,
+ .one `KernelReplay.GuardObligations356,
+ .one `KernelReplay.GuardObligations357,
+ .one `KernelReplay.GuardObligations358,
+ .one `KernelReplay.GuardObligations359,
+ .one `KernelReplay.GuardObligations360,
+ .one `KernelReplay.GuardObligations361,
+ .one `KernelReplay.GuardObligations362,
+ .one `KernelReplay.GuardObligations363,
+ .one `KernelReplay.GuardObligations364,
+ .one `KernelReplay.GuardObligations365,
+ .one `KernelReplay.GuardObligations366,
+ .one `KernelReplay.GuardObligations367,
+ .one `KernelReplay.GuardObligations368,
+ .one `KernelReplay.GuardObligations369,
+ .one `KernelReplay.GuardObligations370,
+ .one `KernelReplay.GuardObligations371,
+ .one `KernelReplay.GuardObligations372,
+ .one `KernelReplay.GuardObligations373,
+ .one `KernelReplay.GuardObligations374,
+ .one `KernelReplay.GuardObligations375,
+ .one `KernelReplay.GuardObligations376,
+ .one `KernelReplay.GuardObligations377,
+ .one `KernelReplay.GuardObligations378,
+ .one `KernelReplay.GuardObligations379,
+ .one `KernelReplay.GuardObligations380,
+ .one `KernelReplay.GuardObligations381,
+ .one `KernelReplay.GuardObligations382,
+ .one `KernelReplay.GuardObligations383,
+ .one `KernelReplay.GuardObligations384,
+ .one `KernelReplay.GuardObligations385,
+ .one `KernelReplay.GuardObligations386,
+ .one `KernelReplay.GuardObligations387,
+ .one `KernelReplay.GuardObligations388,
+ .one `KernelReplay.GuardObligations389,
+ .one `KernelReplay.GuardObligations390,
+ .one `KernelReplay.GuardObligations391,
+ .one `KernelReplay.GuardObligations392,
+ .one `KernelReplay.GuardObligations393,
+ .one `KernelReplay.GuardObligations394,
+ .one `KernelReplay.GuardObligations395,
+ .one `KernelReplay.GuardObligations396,
+ .one `KernelReplay.GuardObligations397,
+ .one `KernelReplay.GuardObligations398,
+ .one `KernelReplay.GuardObligations399,
+ .one `KernelReplay.GuardObligations400,
+ .one `KernelReplay.GuardObligations401,
+ .one `KernelReplay.GuardObligations402,
+ .one `KernelReplay.GuardObligations403,
+ .one `KernelReplay.GuardObligations404,
+ .one `KernelReplay.GuardObligations405,
+ .one `KernelReplay.GuardObligations406,
+ .one `KernelReplay.GuardObligations407,
+ .one `KernelReplay.GuardObligations408,
+ .one `KernelReplay.GuardObligations409,
+ .one `KernelReplay.GuardObligations410,
+ .one `KernelReplay.GuardObligations411,
+ .one `KernelReplay.GuardObligations412,
+ .one `KernelReplay.GuardObligations413,
+ .one `KernelReplay.GuardObligations414,
+ .one `KernelReplay.GuardObligations415,
+ .one `KernelReplay.GuardObligations416,
+ .one `KernelReplay.GuardObligations417,
+ .one `KernelReplay.GuardObligations418,
+ .one `KernelReplay.GuardObligations419,
+ .one `KernelReplay.GuardObligations420,
+ .one `KernelReplay.GuardObligations421,
+ .one `KernelReplay.GuardObligations422,
+ .one `KernelReplay.GuardObligations423,
+ .one `KernelReplay.GuardObligations424,
+ .one `KernelReplay.GuardObligations425,
+ .one `KernelReplay.GuardObligations426,
+ .one `KernelReplay.GuardObligations427,
+ .one `KernelReplay.GuardObligations428,
+ .one `KernelReplay.GuardObligations429,
+ .one `KernelReplay.GuardObligations430,
+ .one `KernelReplay.GuardObligations431,
+ .one `KernelReplay.GuardObligations432,
+ .one `KernelReplay.GuardObligations433,
+ .one `KernelReplay.GuardObligations434,
+ .one `KernelReplay.GuardObligations435,
+ .one `KernelReplay.GuardObligations436,
+ .one `KernelReplay.GuardObligations437,
+ .one `KernelReplay.GuardObligations438,
+ .one `KernelReplay.GuardObligations439,
+ .one `KernelReplay.GuardObligations440,
+ .one `KernelReplay.GuardObligations441,
+ .one `KernelReplay.GuardObligations442,
+ .one `KernelReplay.GuardObligations443,
+ .one `KernelReplay.GuardObligations444,
+ .one `KernelReplay.GuardObligations445,
+ .one `KernelReplay.GuardJoint,
+ .one `KernelReplay.GuardDependencyAudit,
+ .one `KernelReplay.GuardDependencyControls,
+ .one `KernelReplay.GuardJointAudit,
+ .one `KernelReplay.GuardJointPublic,
+ .one `KernelReplay.GuardJointPublicAudit,
+ .one `KernelReplay.GuardJointExport,
+ .one `KernelReplay.GuardJointUse,
+ .one `KernelReplay.GuardSupportInventory,
+ .one `KernelReplay.GuardSupportCandidate01,
+ .one `KernelReplay.GuardSupportCandidate02,
+ .one `KernelReplay.GuardSupportCandidate03,
+ .one `KernelReplay.GuardSupportCandidate04,
+ .one `KernelReplay.GuardSupportCandidate05,
+ .one `KernelReplay.GuardSupportCandidate06,
+ .one `KernelReplay.GuardSupportCandidate07,
+ .one `KernelReplay.GuardSupportCandidate08,
+ .one `KernelReplay.GuardSupportCandidate09,
+ .one `KernelReplay.GuardSupportCandidate10,
+ .one `KernelReplay.GuardSupportCandidate11,
+ .one `KernelReplay.GuardSupportCandidate12,
+ .one `KernelReplay.GuardSupportCandidate13,
+ .one `KernelReplay.GuardSupportCandidate14,
+ .one `KernelReplay.GuardSupportCandidate15,
+ .one `KernelReplay.GuardSupportCandidate16,
+ .one `KernelReplay.GuardSupportCandidate17,
+ .one `KernelReplay.GuardAgreementRules,
+ .one `KernelReplay.GuardBaseAgreement,
+ .one `KernelReplay.GuardBasePrefixAudit,
+ .one `KernelReplay.GuardBaseAgreement01,
+ .one `KernelReplay.GuardBaseAgreement02,
+ .one `KernelReplay.GuardBaseAgreement03,
+ .one `KernelReplay.GuardBaseAgreement04,
+ .one `KernelReplay.GuardBaseAgreement05,
+ .one `KernelReplay.GuardBaseAgreement06,
+ .one `KernelReplay.GuardBaseAgreement07,
+ .one `KernelReplay.GuardBaseAgreement08,
+ .one `KernelReplay.GuardBaseAgreement09,
+ .one `KernelReplay.GuardBaseAgreement10,
+ .one `KernelReplay.GuardBaseAgreement11,
+ .one `KernelReplay.GuardBaseAgreement12,
+ .one `KernelReplay.GuardBaseAgreement13,
+ .one `KernelReplay.GuardBaseAgreement14,
+ .one `KernelReplay.GuardBaseAgreement15,
+ .one `KernelReplay.GuardBaseAgreement16,
+ .one `KernelReplay.GuardBaseAgreement17,
+ .one `KernelReplay.GuardBaseAgreement18,
+ .one `KernelReplay.GuardBaseAgreement19,
+ .one `KernelReplay.GuardBaseAgreement20,
+ .one `KernelReplay.GuardBaseAgreement21,
+ .one `KernelReplay.GuardBaseAgreement22,
+ .one `KernelReplay.GuardBaseAgreement23,
+ .one `KernelReplay.GuardBaseAgreement24,
+ .one `KernelReplay.GuardBaseAgreement25,
+ .one `KernelReplay.GuardBaseAgreement26,
+ .one `KernelReplay.GuardBaseAgreement27,
+ .one `KernelReplay.GuardBaseAgreement28,
+ .one `KernelReplay.GuardBaseAgreement29,
+ .one `KernelReplay.GuardBaseAgreement30,
+ .one `KernelReplay.GuardBaseAgreement31,
+ .one `KernelReplay.GuardBaseAgreement32,
+ .one `KernelReplay.GuardBaseAgreement33,
+ .one `KernelReplay.GuardBaseAgreement34,
+ .one `KernelReplay.GuardBaseAgreement35,
+ .one `KernelReplay.GuardBaseAgreement36,
+ .one `KernelReplay.GuardBaseAgreement37,
+ .one `KernelReplay.GuardBaseAgreement38,
+ .one `KernelReplay.GuardBaseAgreement39,
+ .one `KernelReplay.GuardBaseAgreement40,
+ .one `KernelReplay.GuardBaseAgreement41,
+ .one `KernelReplay.GuardBaseAgreement42,
+ .one `KernelReplay.GuardBaseAgreement43,
+ .one `KernelReplay.GuardBaseAgreement44,
+ .one `KernelReplay.GuardBaseAgreement45,
+ .one `KernelReplay.GuardBaseAgreement46,
+ .one `KernelReplay.GuardBaseAgreement47,
+ .one `KernelReplay.GuardBaseAgreement48,
+ .one `KernelReplay.GuardBaseAgreement49,
+ .one `KernelReplay.GuardBaseAgreement50,
+ .one `KernelReplay.GuardBaseAgreement51,
+ .one `KernelReplay.GuardBaseAgreement52,
+ .one `KernelReplay.GuardBaseAgreement53,
+ .one `KernelReplay.GuardBaseAgreement54,
+ .one `KernelReplay.GuardBaseAgreement55,
+ .one `KernelReplay.GuardBaseAgreement56,
+ .one `KernelReplay.GuardBaseAgreement57,
+ .one `KernelReplay.GuardBaseAgreement58,
+ .one `KernelReplay.GuardBaseAgreement59,
+ .one `KernelReplay.GuardBaseAgreement60,
+ .one `KernelReplay.GuardBaseAgreement61,
+ .one `KernelReplay.GuardBaseAgreement62,
+ .one `KernelReplay.GuardBaseAgreement63,
+ .one `KernelReplay.GuardBaseAgreement64,
+ .one `KernelReplay.GuardBaseAgreement65,
+ .one `KernelReplay.GuardBaseAgreement66,
+ .one `KernelReplay.GuardBaseAgreement67,
+ .one `KernelReplay.GuardBaseAgreement68,
+ .one `KernelReplay.GuardBaseAgreement69,
+ .one `KernelReplay.GuardBaseAgreement70,
+ .one `KernelReplay.GuardBaseAgreement71,
+ .one `KernelReplay.GuardBaseAgreement72,
+ .one `KernelReplay.GuardBaseAgreement73,
+ .one `KernelReplay.GuardBaseAgreement74,
+ .one `KernelReplay.GuardBaseAgreement75,
+ .one `KernelReplay.GuardBaseAgreement76,
+ .one `KernelReplay.GuardBaseAgreement77,
+ .one `KernelReplay.GuardBaseAgreement78,
+ .one `KernelReplay.GuardBaseAgreement79,
+ .one `KernelReplay.GuardBaseAgreement80,
+ .one `KernelReplay.GuardBaseAgreement81,
+ .one `KernelReplay.GuardBaseAgreement82,
+ .one `KernelReplay.GuardBaseAgreement83,
+ .one `KernelReplay.GuardBaseAgreement84,
+ .one `KernelReplay.GuardBaseAgreement85,
+ .one `KernelReplay.GuardBaseAgreement86,
+ .one `KernelReplay.GuardBaseAgreement87,
+ .one `KernelReplay.GuardBaseAgreement88,
+ .one `KernelReplay.GuardBaseAgreement89,
+ .one `KernelReplay.GuardBaseAgreement90,
+ .one `KernelReplay.GuardBaseAgreement91,
+ .one `KernelReplay.GuardBaseAgreement92,
+ .one `KernelReplay.GuardBaseAgreement93,
+ .one `KernelReplay.GuardBaseAgreement94,
+ .one `KernelReplay.GuardBaseAgreement95,
+ .one `KernelReplay.GuardBaseAgreement96,
+ .one `KernelReplay.GuardBaseAgreement97,
+ .one `KernelReplay.GuardBaseAgreement98,
+ .one `KernelReplay.GuardBaseAgreement99,
+ .one `KernelReplay.GuardBaseAgreement100,
+ .one `KernelReplay.GuardBaseAgreement101,
+ .one `KernelReplay.GuardBaseAgreement102,
+ .one `KernelReplay.GuardBaseAgreement103,
+ .one `KernelReplay.GuardBaseAgreement104,
+ .one `KernelReplay.GuardBaseAgreement105,
+ .one `KernelReplay.GuardBaseAgreement106,
+ .one `KernelReplay.GuardBaseAgreement107,
+ .one `KernelReplay.GuardBaseAgreement108,
+ .one `KernelReplay.GuardBaseAgreement109,
+ .one `KernelReplay.GuardBaseAgreement110,
+ .one `KernelReplay.GuardBaseAgreement111,
+ .one `KernelReplay.GuardBaseAgreement112,
+ .one `KernelReplay.GuardBaseAgreement113,
+ .one `KernelReplay.GuardBaseAgreement114,
+ .one `KernelReplay.GuardBaseAgreement115,
+ .one `KernelReplay.GuardBaseAgreement116,
+ .one `KernelReplay.GuardBaseAgreement117,
+ .one `KernelReplay.GuardBaseAgreement118,
+ .one `KernelReplay.GuardBaseAgreement119,
+ .one `KernelReplay.GuardBaseAgreement120,
+ .one `KernelReplay.GuardBaseAgreement121,
+ .one `KernelReplay.GuardBaseAgreement122,
+ .one `KernelReplay.GuardBaseAgreement123,
+ .one `KernelReplay.GuardBaseAgreement124,
+ .one `KernelReplay.GuardBaseAgreement125,
+ .one `KernelReplay.GuardBaseAgreement126,
+ .one `KernelReplay.GuardBaseAgreement127,
+ .one `KernelReplay.GuardBaseAgreement128,
+ .one `KernelReplay.GuardBaseAgreement129,
+ .one `KernelReplay.GuardBaseAllAudit,
+ .one `KernelReplay.GuardJoinPrefixAudit,
+ .one `KernelReplay.GuardLiveFrameAudit,
+ .one `KernelReplay.ConstructedBaseAudit,
+ .one `KernelReplay.FiniteChecks,
+ .one `KernelReplay.GuardAgreementJoin,
+ .one `KernelReplay.GuardAgreementJoin01,
+ .one `KernelReplay.GuardAgreementJoin02,
+ .one `KernelReplay.GuardAgreementJoin03,
+ .one `KernelReplay.GuardAgreementJoin04,
+ .one `KernelReplay.GuardAgreementJoin05,
+ .one `KernelReplay.GuardAgreementJoin06,
+ .one `KernelReplay.GuardAgreementJoin07,
+ .one `KernelReplay.GuardAgreementJoin08,
+ .one `KernelReplay.GuardAgreementJoin09,
+ .one `KernelReplay.GuardAgreementJoin10,
+ .one `KernelReplay.GuardAgreementJoin11,
+ .one `KernelReplay.GuardAgreementJoin12,
+ .one `KernelReplay.GuardAgreementJoin13,
+ .one `KernelReplay.GuardAgreementJoin14,
+ .one `KernelReplay.GuardAgreementJoin15,
+ .one `KernelReplay.GuardAgreementJoin16,
+ .one `KernelReplay.GuardAgreementJoin17,
+ .one `KernelReplay.GuardAgreementJoin18,
+ .one `KernelReplay.GuardAgreementJoin19,
+ .one `KernelReplay.GuardAgreementJoin20,
+ .one `KernelReplay.GuardAgreementJoin21,
+ .one `KernelReplay.GuardAgreementJoin22,
+ .one `KernelReplay.GuardAgreementJoin23,
+ .one `KernelReplay.GuardAgreementJoin24,
+ .one `KernelReplay.GuardAgreementJoin25,
+ .one `KernelReplay.GuardAgreementJoin26,
+ .one `KernelReplay.GuardAgreementJoin27,
+ .one `KernelReplay.GuardAgreementJoin28,
+ .one `KernelReplay.GuardAgreementFinal,
+ .one `KernelReplay.GuardAgreementPublic,
+ .one `KernelReplay.GuardAgreementPublicAudit,
+ .one `KernelReplay.Guard208Audit,
+ .one `KernelReplay.GuardAllAudit,
+ .one `KernelReplay.GuardSupportSource,
+ .one `KernelReplay.GuardProduct,
+ .one `KernelReplay.GuardProductPublic,
+ .one `KernelReplay.GuardProductPublicAudit,
+ .one `KernelReplay.GuardCoefficientFence,
+ .one `KernelReplay.FrameFrontier,
+ .one `KernelReplay.FrameOwners, .one `KernelReplay.FrameOperand,
+ .one `KernelReplay.FrameStorage,
+ .one `KernelReplay.FramePublic,
+ .one `KernelReplay.DecisionTrace,
+ .one `KernelReplay.CoefficientSuffix,
+ .one `KernelReplay.CoefficientMembers,
+ .one `KernelReplay.BaseLookup,
+ .one `KernelReplay.CoefficientLookup, .one `KernelReplay.PackingLookup,
+ .one `KernelReplay.LookupReplay,
+ .one `KernelReplay.ProofAudit,
+ .one `KernelReplay.AxiomClosure, .one `KernelReplay.AxiomClosureNative, .one `KernelReplay.AxiomClosureTest,
+ .one `KernelReplay.AxiomClosureImports, .one `KernelReplay.SupportAudit,
+ .one `KernelReplay.ProviderHistoryAudit,
+ .one `KernelReplay.RationalCodecAudit,
+ .one `KernelReplay.FiniteRange,
+ .one `KernelReplay.CoefficientMembers, .one `KernelReplay.CoefficientEntry,
+ .one `KernelReplay.NativeAssemblyUse,
+ .one `KernelReplay.Packing,
+ .one `KernelReplay.PackingProbe, .one `KernelReplay.Inverse, .one `KernelReplay.ValueSigns, .one `KernelReplay.InverseDemand, .one `KernelReplay.RationalRoot, .one `KernelReplay.FiniteTower, .one `KernelReplay.FiniteTowerPackets, .one `KernelReplay.FiniteTowerProbe, .one `KernelReplay.FiniteTowerThom, .one `KernelReplay.FiniteTowerUse, .one `KernelReplay.FiniteData, .one `KernelReplay.FiniteSupport, .one `KernelReplay.FiniteOperands, .one `KernelReplay.FiniteLift, .one `KernelReplay.FiniteBase, .one `KernelReplay.FiniteDependencies, .one `KernelReplay.FiniteReconstruction, .one `KernelReplay.FiniteChain, .one `KernelReplay.FiniteThomWitness, .one `KernelReplay.FiniteThomJoint, .one `KernelReplay.FiniteWitness, .one `KernelReplay.FiniteJoint,
+ .one `KernelReplay.FiniteTowerReal,
+ .one `KernelReplay.Nested, .one `KernelReplay.NestedProbe,
+ .one `KernelReplay.FactOperations, .one `KernelReplay.FactOperationsProbe,
+ .one `KernelReplay.Root, .one `KernelReplay.RootProbe,
+ .one `KernelReplay.ProofProbe,
+ .one `KernelReplay.InProcessProbe, .one `KernelReplay.LowerProbe, .one `KernelReplay.LowerProof]
+
+lean_exe hexsigndet_kernel_replay_probe where
+ supportInterpreter := true
+ srcDir := "experiments"
+ root := `KernelReplay.Main
+
+lean_exe hexsigndet_inprocess_replay_probe where
+ srcDir := "experiments"
+ root := `KernelReplay.InProcessMain
+
+lean_exe hexrealclosure_policy_conformance where
+ srcDir := "conformance"
+ root := `HexRealClosure.RootPolicyConformance
+
+lean_exe hexrealclosure_normalization_bench where
+ srcDir := "bench"
+ root := `HexRealClosure.Normalization
+
+lean_exe hexrealclosure_basic_conformance where
+ srcDir := "conformance"
+ root := `HexRealClosure.BasicConformance
+
+lean_exe hexrealclosure_rioboo_conformance where
+ srcDir := "conformance"
+ root := `HexRealClosure.RiobooConformance
+
+lean_exe hexrealclosure_strz_conformance where
+ srcDir := "conformance"
+ root := `HexRealClosure.StrzConformance
+
+lean_exe hexrealclosure_root_format_conformance where
+ srcDir := "conformance"
+ root := `HexRealClosure.RootFormatConformance
+
+lean_exe hexrealclosure_repr_conformance where
+ srcDir := "conformance"
+ root := `HexRealClosure.ReprConformance
+
+lean_exe hexsigndet_nested_trace where
+ srcDir := "bench"
+ root := `HexSignDet.NestedTrace
+
+lean_exe hexsigndet_interacting_trace where
+ srcDir := "bench"
+ root := `HexSignDet.InteractingTraceMain
+
+lean_exe hexsigndet_interacting_bench where
+ srcDir := "bench"
+ root := `HexSignDet.InteractingBench
+
+/-- Mathlib-free supplied inverse certificate producer for conformance regeneration. -/
+lean_exe hexrcf_inverse_fixture where
+ srcDir := "conformance"
+ root := `HexRCF.InverseFixture
+
+lean_exe hexrealclosure_samples_bench where
+ srcDir := "bench"
+ root := `HexRealClosure.SampleMeasurements
+
+lean_exe hexrealclosure_trivial_bench where
+ srcDir := "bench"
+ root := `HexRealClosure.TrivialMeasurements
diff --git a/reports/data/hexrcf-enumerated-source/source-build-current-inputs/scripts/rcf/selected_literals.py.txt b/reports/data/hexrcf-enumerated-source/source-build-current-inputs/scripts/rcf/selected_literals.py.txt
new file mode 100644
index 0000000000..6c20b0f563
--- /dev/null
+++ b/reports/data/hexrcf-enumerated-source/source-build-current-inputs/scripts/rcf/selected_literals.py.txt
@@ -0,0 +1,643 @@
+#!/usr/bin/env python3
+"""Render frozen selected-root JSON as shared Lean constructor data.
+
+This converter performs no root or sign production. The conformance readers
+and ordinary-kernel proofs independently check the recorded certificates.
+"""
+import argparse
+import copy
+import json
+from pathlib import Path
+
+ROOT = Path(__file__).resolve().parents[2]
+COPYRIGHT = """/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+"""
+HEADER = COPYRIGHT + """
+import HexSignDet.Codec.Json
+
+/-! Shared constructor literals generated from
+`conformance-fixtures/HexRCF/selected-root.json` by
+`scripts/rcf/selected_literals.py`. No certificate producer is invoked. -/
+
+open Hex.SignDet
+"""
+
+SUBJECT_NAMES = ["lowerSubject", "lowerGraph", "upperSubject", "upperGraph", "rowPacket"]
+
+
+def render(module, records, subjects=False, packing=False, inverse=False, sample_root=False, root_fixture="native-sample-root.json", root_replay=False, root_names=None):
+ namespace = f"Hex.RCF.SelectedRootTests.{module}"
+ header = HEADER if not packing else COPYRIGHT + """
+import HexSignDet.Codec.Json
+
+/-! Constructor literals generated from
+`conformance-fixtures/HexRCF/selected-packing.json` by
+`scripts/rcf/selected_literals.py`. The scalar and joint readers check the
+supplied evidence separately; no certificate producer is invoked. -/
+
+open Hex.SignDet
+"""
+ if inverse:
+ header = COPYRIGHT + """
+import HexSignDet.Codec.Json
+
+/-! Shared constructor literals from `conformance-fixtures/HexRCF/selected-inverse.json`.
+The scalar, packing and supplied-inverse readers check the frozen evidence;
+`scripts/rcf/selected_literals.py` performs no certificate production. -/
+
+open Hex.SignDet
+"""
+ if sample_root or root_replay:
+ namespace = f"Hex.RCF.RealCoefficients.{module}"
+ header = COPYRIGHT + f"""module
+public import HexSignDet.Codec.Json
+/-! Shared constructor data from `conformance-fixtures/HexRCF/{root_fixture}`.
+The descriptor reader checks this supplied replay independently of its producer. -/
+public section
+"""
+ lines = [header, f"namespace {namespace}"]
+ if sample_root or root_replay:
+ lines.append("open Hex.SignDet")
+ seen = {}
+
+ def value(node):
+ if isinstance(node, list):
+ key = json.dumps(node, separators=(",", ":"))
+ if key in seen:
+ return seen[key]
+ items = [value(item) for item in node]
+ name = f"j{len(seen)}"
+ seen[key] = name
+ tail = ".nil"
+ for item in reversed(items):
+ tail = f"(.cons ({item}) {tail})"
+ prefix = "@[expose] " if sample_root or root_replay else ""
+ lines.append(f"{prefix}def {name} : Codec.Json := .array {tail}")
+ return name
+ if node is None:
+ return "Codec.Json.Value.null"
+ if type(node) is int:
+ return f".number ({node})"
+ raise ValueError(f"unsupported literal: {node!r}")
+
+ if root_replay:
+ names = root_names or ["positive", "whole", "constant", "empty"]
+ if len(records) != len(names):
+ raise ValueError("unexpected frozen root-table graph count")
+ for name, record in zip(names, records):
+ lines.append(f"@[expose] def {name} : Codec.Json := {value(record)}")
+ elif sample_root:
+ if len(records) != 7:
+ raise ValueError("expected exactly seven selected-root fields")
+ lines.append(f"@[expose] def subject : Codec.Json := {value(records[:6])}")
+ lines.append(f"@[expose] def graph : Codec.Json := {value(records[6])}")
+ elif inverse:
+ if len(records) != 6:
+ raise ValueError("expected exactly six supplied-inverse fields")
+ lines.append(f"def packet : Codec.Json := {value(records)}")
+ elif subjects:
+ names = SUBJECT_NAMES
+ if len(records) != len(names):
+ raise ValueError("expected exactly five source records")
+ for name, record in zip(names, records):
+ lines.append(f"def {name} : Codec.Json := {value(record)}")
+ elif packing:
+ keys = [json.dumps(record[0], separators=(",", ":"), sort_keys=True) for record in records]
+ if len(set(keys)) != len(keys):
+ raise ValueError("duplicate original packing literal")
+ for index, (original, kept, sign, scalar, joint) in enumerate(records):
+ if type(sign) is not int:
+ raise ValueError(f"unsupported sign literal: {sign!r}")
+ p, q, scalarGraph, jointGraph = map(value, (original, kept, scalar, joint))
+ lines.append(f"def packet{index} : Codec.Json × Codec.Json × Int × Codec.Json × Codec.Json := "
+ f"({p}, {q}, ({sign}), {scalarGraph}, {jointGraph})")
+ lines.append(f"def count : Nat := {len(records)}")
+ else:
+ for index, (key, sign, graph) in enumerate(records):
+ polynomial, evidence = value(key), value(graph)
+ lines.append(f"def packet{index} : Codec.Json × Int × Codec.Json := "
+ f"({polynomial}, ({sign}), {evidence})")
+ if module == "Packets":
+ fields = ", ".join(f"packet{i}" for i in range(len(records)))
+ lines.append(f"def packets : List (Codec.Json × Int × Codec.Json) := [{fields}]")
+ lines.append(f"end {namespace}")
+ return "\n".join(lines) + "\n"
+
+
+def render_guarded_matrix(check):
+ """Render guard acceptance/refusal packets with shared constructor values."""
+ directory = ROOT / "conformance/HexRCF/FiniteMatrix/Guards"
+ packet = json.loads((ROOT / "conformance-fixtures/HexRCF/guarded-matrix.json").read_text())
+ if len(packet) != 5 or [len(group) for group in packet[2:]] != [0, 0, 1]:
+ raise ValueError("unexpected guarded-matrix packet shape")
+ mutations = json.loads((ROOT / "conformance-fixtures/HexRCF/guarded-matrix-mutations.json").read_text())
+ order, context, cycle = [copy.deepcopy(packet[0]) for _ in range(3)]
+ order[2][0], order[2][1] = order[2][1], order[2][0]
+ context[1][0] += 1
+ root = cycle[4][1]
+ cycle[4][2][root][1][0][0] = root
+ if mutations != [order, context, cycle]:
+ raise ValueError("guard mutations must change only query order, context or root dependency")
+ for module, fixture, records, names, stem in [
+ ("Literals", "guarded-matrix.json", packet[:2] + packet[4],
+ ["positive", "zero", "extraSign"], "LiteralData"),
+ ("Mutations", "guarded-matrix-mutations.json", mutations,
+ ["order", "context", "cycle"], "MutationData"),
+ ]:
+ namespace = f"FiniteMatrixTests.Guards.{module}"
+ output = render(namespace, records, root_replay=True,
+ root_fixture=fixture, root_names=names)
+ lines = output.splitlines()
+ first = next(i for i, line in enumerate(lines) if line.startswith("@[expose] def j0 "))
+ header, body = "\n".join(lines[:first]) + "\n", lines[first:-1]
+ chunks = [body[i:i + 250] for i in range(0, len(body), 250)]
+ expected = {f"{stem}{i}.lean" for i in range(len(chunks) - 1)}
+ if {path.name for path in directory.glob(f"{stem}*.lean")} - expected:
+ raise ValueError(f"obsolete guarded-matrix {stem} modules")
+ for i, chunk in enumerate(chunks):
+ name = module if i == len(chunks) - 1 else f"{stem}{i}"
+ prefix = header
+ if i:
+ prefix = prefix.replace("public import HexSignDet.Codec.Json",
+ "public import HexSignDet.Codec.Json\n"
+ f"public import HexRCF.FiniteMatrix.Guards.{stem}{i - 1}")
+ output = prefix + "\n".join(chunk) + f"\nend Hex.RCF.RealCoefficients.{namespace}\n"
+ destination = directory / f"{name}.lean"
+ if len(output.splitlines()) > 300:
+ raise ValueError(f"literal module exceeds 300 lines: {destination}")
+ if check:
+ if destination.read_text() != output:
+ raise SystemExit(f"stale generated literals: {destination.relative_to(ROOT)}")
+ else:
+ destination.write_text(output)
+
+
+
+def render_guarded_quotient(check):
+ """Render supplied inverse evidence and its exact context mutation."""
+ fixture = "guarded-quotient.json"
+ values = json.loads((ROOT / "conformance-fixtures/HexRCF" / fixture).read_text())
+ if len(values) != 4 or len(values[1]) != 5 or values[1][0] != [[-1, 1], [-1, 1]]:
+ raise ValueError("unexpected guarded-quotient packet shape")
+ stale = copy.deepcopy(values[0])
+ stale[2][stale[1]][0][0] += 1
+ if values[3] != stale:
+ raise ValueError("inverse context mutation must change only the root node context")
+ output = render("FiniteMatrixTests.Guards.Quotient.Literals", values, root_replay=True,
+ root_fixture=fixture,
+ root_names=["inverseGraph", "packing", "alternateGraph", "staleGraph"])
+ if len(output.splitlines()) > 300:
+ raise ValueError("quotient literal module exceeds 300 lines")
+ destination = ROOT / "conformance/HexRCF/FiniteMatrix/Guards/Quotient/Literals.lean"
+ if check:
+ if destination.read_text() != output:
+ raise SystemExit(f"stale generated literals: {destination.relative_to(ROOT)}")
+ else:
+ destination.write_text(output)
+
+
+def render_cell_replay(check):
+ directory = ROOT / "conformance/HexRCF/CellReplay"
+ positive = json.loads((ROOT / "conformance-fixtures/HexRCF/cell-replay.json").read_text())
+ mutations = json.loads((ROOT / "conformance-fixtures/HexRCF/cell-replay-mutations.json").read_text())
+ if len(positive) != 2 or len(positive[0]) != 2 or len(positive[1]) != 3:
+ raise ValueError("unexpected complete-cell packet shape")
+ middle = positive[1][1]
+ expected = [copy.deepcopy(middle) for _ in range(5)]
+ if middle[0] != [0, 0, 1]:
+ raise ValueError("unexpected ordinary middle sample")
+ expected[0][0][1] = 1
+ graph = expected[1][5][4]
+ graph[2][graph[1]][1][0][0] = graph[1]
+ graph = expected[2][5][4]
+ if graph[2][graph[1]][0][0] != [[], 0, []]:
+ raise ValueError("unexpected rational context")
+ graph[2][graph[1]][0][0][1] = 1
+ expected[3][3] = copy.deepcopy(positive[1][2][3])
+ expected[3][4] = copy.deepcopy(positive[1][2][4])
+ graph = expected[4][5][4]
+ if graph[2][graph[1]][0][10] != [1, [0], [0], 1, [[1]]]:
+ raise ValueError("unexpected middle-row basis")
+ graph[2][graph[1]][0][10] = [0, [], [], 1, []]
+ if mutations != expected:
+ raise ValueError("complete-cell mutations changed unlisted fields")
+ for stem, fixture, records, names in [
+ ("Literals", "cell-replay.json", positive, ["sections", "sectors"]),
+ ("OutsideLiterals", "cell-outside-right.json", [json.loads((ROOT / "conformance-fixtures/HexRCF/cell-outside-right.json").read_text())], ["right"]),
+ ("ZeroLiterals", "cell-zero.json", json.loads((ROOT / "conformance-fixtures/HexRCF/cell-zero.json").read_text()), ["sections", "sectors"]),
+ ("Mutations", "cell-replay-mutations.json", mutations,
+ ["badPoint", "cycle", "stale", "otherRoot", "missingBasis"]),
+ ]:
+ output = render("CellReplayTests." + stem, records, root_replay=True,
+ root_fixture=fixture, root_names=names)
+ lines = output.splitlines()
+ first = next(i for i, line in enumerate(lines) if line.startswith("@[expose] def j0 "))
+ header, body = "\n".join(lines[:first]) + "\n", lines[first:-1]
+ chunks = [body[i:i + 250] for i in range(0, len(body), 250)]
+ prefix = {"Literals": "LiteralData", "Mutations": "MutationData", "ZeroLiterals": "ZeroData", "OutsideLiterals": "OutsideData"}[stem]
+ expected_files = set()
+ for index, chunk in enumerate(chunks):
+ name = stem if index == len(chunks) - 1 else f"{prefix}{index}"
+ expected_files.add(name + ".lean")
+ imports = header
+ if index:
+ imports = imports.replace("public import HexSignDet.Codec.Json",
+ "public import HexSignDet.Codec.Json\n"
+ f"public import HexRCF.CellReplay.{prefix}{index - 1}")
+ text = imports + "\n".join(chunk) + f"\nend Hex.RCF.RealCoefficients.CellReplayTests.{stem}\n"
+ destination = directory / (name + ".lean")
+ if check:
+ if destination.read_text() != text:
+ raise SystemExit(f"stale generated literals: {destination.relative_to(ROOT)}")
+ else:
+ destination.write_text(text)
+ actual = {p.name for p in directory.glob(prefix + "*.lean")} | {stem + ".lean"}
+ if actual != expected_files:
+ raise ValueError(f"obsolete complete-cell {stem} modules")
+
+
+def render_algebraic_cells(check):
+ directory = ROOT / "conformance/HexRCF/CellReplay/Algebraic"
+ packet = json.loads((ROOT / "conformance-fixtures/HexRCF/cell-algebraic.json").read_text())
+ scalars = json.loads((ROOT / "conformance-fixtures/HexRCF/cell-algebraic-scalars.json").read_text())
+ if len(packet) != 3 or len(packet[1]) != 2 or len(packet[2]) != 3:
+ raise ValueError("unexpected algebraic cell packet shape")
+ if len(scalars) != 21 or any(len(s) != 3 or type(s[1]) is not int or s[1] not in (-1, 1) for s in scalars):
+ raise ValueError("unexpected algebraic scalar packets")
+ if len({json.dumps(s[0]) for s in scalars}) != len(scalars):
+ raise ValueError("duplicate algebraic scalar keys")
+ mutations = json.loads((ROOT / "conformance-fixtures/HexRCF/cell-algebraic-mutations.json").read_text())
+ first = packet[2][0]
+ expected = [copy.deepcopy(first) for _ in range(5)]
+ expected[0][0] = copy.deepcopy(packet[2][1][0])
+ expected[1][1] = copy.deepcopy(first[2])
+ expected[2][2] = None
+ expected[3][3:5] = copy.deepcopy(packet[2][1][3:5])
+ expected[4][3][0] = [[], 0, []]
+ if mutations != expected:
+ raise ValueError("algebraic mutations changed unlisted fields")
+ records = [field for polynomial, _, graph in scalars for field in (polynomial, graph)]
+ names = [name for i in range(len(scalars)) for name in (f"p{i}", f"g{i}")]
+ for stem, fixture, values, labels, prefix in [
+ ("Literals", "cell-algebraic.json", packet, ["roots", "sections", "sectors"], "LiteralData"),
+ ("Scalars", "cell-algebraic-scalars.json", records, names, "ScalarData"),
+ ("Mutations", "cell-algebraic-mutations.json", mutations,
+ ["wrongPoint", "presentLeft", "absentRight", "otherRoot", "staleContext"], "MutationData"),
+ ]:
+ output = render("CellReplayTests.Algebraic." + stem, values, root_replay=True,
+ root_fixture=fixture, root_names=labels)
+ lines = output.splitlines()
+ first = next(i for i, line in enumerate(lines) if line.startswith("@[expose] def j0 "))
+ header, body = "\n".join(lines[:first]) + "\n", lines[first:-1]
+ if stem == "Scalars":
+ body += [f"@[expose] def s{i} : Int := {record[1]}" for i, record in enumerate(scalars)]
+ chunks = [body[i:i + 220] for i in range(0, len(body), 220)]
+ expected_files = set()
+ for index, chunk in enumerate(chunks):
+ name = stem if index == len(chunks) - 1 else f"{prefix}{index}"
+ expected_files.add(name + ".lean")
+ imports = header
+ if index:
+ imports = imports.replace("public import HexSignDet.Codec.Json",
+ "public import HexSignDet.Codec.Json\n"
+ f"public import HexRCF.CellReplay.Algebraic.{prefix}{index - 1}")
+ text = imports + "\n".join(chunk) + f"\nend Hex.RCF.RealCoefficients.CellReplayTests.Algebraic.{stem}\n"
+ destination = directory / (name + ".lean")
+ if check:
+ if destination.read_text() != text:
+ raise SystemExit(f"stale generated literals: {destination.relative_to(ROOT)}")
+ else:
+ destination.write_text(text)
+ actual = {p.name for p in directory.glob(prefix + "*.lean")} | {stem + ".lean"}
+ if actual != expected_files:
+ raise ValueError(f"obsolete algebraic {stem} modules")
+
+
+def byte_tokens(value):
+ if type(value) is int:
+ return [str(value)]
+ if type(value) is not list:
+ raise ValueError(f"unsupported byte literal: {value!r}")
+ result = ["["]
+ for index, child in enumerate(value):
+ if index:
+ result.append(",")
+ result.extend(byte_tokens(child))
+ return result + ["]"]
+
+
+def render_bytes(value):
+ """Propose bytes; ByteData.written independently checks the owner writer."""
+ raw = (" ".join(byte_tokens(value)) + " ").encode("ascii")
+ scalars = {byte: f"b{index}" for index, byte in enumerate(sorted(set(raw)))}
+ lines = [COPYRIGHT.rstrip(), "",
+ "import HexRCF.SelectedRoot.Literals", "import HexSignDet.Codec.Bytes",
+ "/-! Constructor bytes proposed from the retained selected-root JSON fixture.",
+ "The kernel checks their exact binding to the owner writer; no producer is called. -/",
+ "", "namespace Hex.RCF.SelectedRootTests.ByteData",
+ "section", "set_option maxRecDepth 65536"]
+ lines.extend(f"def {name} : UInt8 := {byte}" for byte, name in scalars.items())
+ count = (len(raw) + 255) // 256
+ for index in reversed(range(count)):
+ tail = ".nil" if index == count - 1 else f"t{index + 1}"
+ for byte in reversed(raw[index * 256:(index + 1) * 256]):
+ tail = f".cons {scalars[byte]} ({tail})"
+ lines.append(f"def t{index} : List UInt8 := {tail}")
+ lines.extend(["def literal : ByteArray := ⟨⟨t0⟩⟩", "end",
+ "set_option maxRecDepth 65536 in",
+ "set_option maxHeartbeats 8000000 in",
+ "theorem written : Hex.RCF.SelectedRootTests.Literals.rowPacket.writeBytes = literal := by",
+ " apply ByteArray.ext", " apply Array.toList_inj.mp",
+ " rw [Hex.SignDet.Codec.Json.Value.writeBytes_toList, Hex.SignDet.Codec.Json.Value.tokensLoop_spec]",
+ " decide +kernel",
+ "set_option maxRecDepth 65536 in",
+ "set_option maxHeartbeats 8000000 in",
+ f"theorem size : literal.size = {len(raw)} := by decide +kernel",
+ "end Hex.RCF.SelectedRootTests.ByteData"])
+ return "\n".join(lines) + "\n"
+
+
+def render_catalog(value):
+ """Render the complete supplied root packet as shared constructor values."""
+ namespace = "Hex.RCF.SelectedRootTests.CatalogData"
+ lines = [COPYRIGHT, "import HexSignDet.Codec.Json", "",
+ "/-! Constructor data generated from `conformance-fixtures/HexRCF/selected-catalog.json`.",
+ "The CatalogPacket.written proof checks the exact selected-root binding. -/", "",
+ "open Hex.SignDet", f"namespace {namespace}"]
+ seen = {}
+
+ def emit(node):
+ key = json.dumps(node, separators=(",", ":"))
+ if key in seen:
+ return seen[key]
+ if type(node) is int:
+ term = f".number ({node})"
+ elif isinstance(node, list):
+ children = [emit(child) for child in node]
+ tail = ".nil"
+ for child in reversed(children):
+ tail = f"(.cons ({child}) {tail})"
+ term = ".array " + tail
+ else:
+ raise ValueError(f"unsupported catalog literal: {node!r}")
+ name = f"j{len(seen)}"
+ seen[key] = name
+ lines.append(f"def {name} : Codec.Json := {term}")
+ return name
+
+ packet = emit(value)
+ lines.extend([f"def packet : Codec.Json := {packet}", f"end {namespace}"])
+ return "\n".join(lines) + "\n"
+
+
+def render_catalog_bytes(value):
+ """Propose constructor bytes, checked independently against the owner writer."""
+ namespace = "Hex.RCF.SelectedRootTests.CatalogByteData"
+ raw = (" ".join(byte_tokens(value)) + " ").encode("ascii")
+ names = {byte: f"b{index}" for index, byte in enumerate(sorted(set(raw)))}
+ lines = [COPYRIGHT, "import HexSignDet.Codec.Bytes", "",
+ "/-! Constructor bytes generated from `conformance-fixtures/HexRCF/selected-catalog.json`.",
+ "CatalogBytes.packetWritten checks the exact owner-writer output. -/", "",
+ f"namespace {namespace}", "section", "set_option maxRecDepth 32768"]
+ lines.extend(f"def {name} : UInt8 := {byte}" for byte, name in names.items())
+ chunks = [raw[i:i + 256] for i in range(0, len(raw), 256)]
+ for index in reversed(range(len(chunks))):
+ tail = ".nil" if index == len(chunks) - 1 else f"t{index + 1}"
+ for byte in reversed(chunks[index]):
+ tail = f"(.cons {names[byte]} {tail})"
+ lines.append(f"def t{index} : List UInt8 := {tail}")
+ lines.extend(["def literal : ByteArray := ⟨⟨t0⟩⟩", "end", f"end {namespace}"])
+ return "\n".join(lines) + "\n"
+
+
+def render_enumerated_sources(check):
+ fixture = "enumerated-source.json"
+ records = json.loads((ROOT / "conformance-fixtures/HexRCF" / fixture).read_text())
+ if len(records) != 3:
+ raise ValueError("expected positive/negative quadratic and cubic sources")
+ directory = ROOT / "conformance/HexRCF/EnumeratedSource"
+ directory.mkdir(exist_ok=True)
+ for name, record in zip(["Positive", "Negative", "Cubic"], records):
+ subject, graph, equation, margin = record
+ if len(equation) != 3 or len(margin) != 3 or equation[1] != 0 or margin[1] != 1:
+ raise ValueError("source packets must propose the exact zero/positive signs")
+ values = [subject, graph, equation[0], equation[2], margin[0], margin[2], record]
+ names = ["subject", "graph", "equation", "equationGraph", "margin", "marginGraph", "packet"]
+ output = render("EnumeratedSource." + name, values, root_replay=True,
+ root_fixture=fixture, root_names=names)
+ lines = output.splitlines()
+ first = next(i for i, line in enumerate(lines) if line.startswith("@[expose] def j0 "))
+ header = "\n".join(lines[:first]) + "\n"
+ body = lines[first:-1]
+ chunks = [body[i:i + 240] for i in range(0, len(body), 240)]
+ for i, chunk in enumerate(chunks):
+ module = name if i == len(chunks) - 1 else name + f"Data{i}"
+ prefix = header
+ if i:
+ prefix = prefix.replace("public import HexSignDet.Codec.Json",
+ "public import HexSignDet.Codec.Json\n"
+ f"public import HexRCF.EnumeratedSource.{name}Data{i - 1}")
+ text = prefix + "\n".join(chunk) + f"\nend Hex.RCF.RealCoefficients.EnumeratedSource.{name}\n"
+ destination = directory / f"{module}.lean"
+ if check:
+ if destination.read_text() != text:
+ raise SystemExit(f"stale generated literals: {destination.relative_to(ROOT)}")
+ else:
+ destination.write_text(text)
+
+
+def main():
+ parser = argparse.ArgumentParser(description=__doc__)
+ parser.add_argument("--check", action="store_true")
+ args = parser.parse_args()
+ fixtures = json.loads((ROOT / "conformance-fixtures/HexRCF/selected-root.json").read_text())
+ directory = ROOT / "conformance/HexRCF/SelectedRoot"
+ mappings = [("Literals", "subjects"), ("Packets", "packets"),
+ ("Intermediates", "intermediates"), ("RowIntermediates", "row_intermediates")]
+ for module, key in mappings:
+ destination = directory / f"{module}.lean"
+ output = render(module, fixtures[key], subjects=key == "subjects")
+ if args.check:
+ if destination.read_text() != output:
+ raise SystemExit(f"stale generated literals: {destination.relative_to(ROOT)}")
+ else:
+ destination.write_text(output)
+ destination = directory / "ByteData.lean"
+ output = render_bytes(fixtures["subjects"][SUBJECT_NAMES.index("rowPacket")])
+ if args.check:
+ if destination.read_text() != output:
+ raise SystemExit(f"stale generated literals: {destination.relative_to(ROOT)}")
+ else:
+ destination.write_text(output)
+ destination = directory / "PackingData.lean"
+ records = json.loads((ROOT / "conformance-fixtures/HexRCF/selected-packing.json").read_text())
+ output = render("PackingData", records, packing=True)
+ if args.check:
+ if destination.read_text() != output:
+ raise SystemExit(f"stale generated literals: {destination.relative_to(ROOT)}")
+ else:
+ destination.write_text(output)
+ destination = directory / "InverseData.lean"
+ records = json.loads((ROOT / "conformance-fixtures/HexRCF/selected-inverse.json").read_text())
+ output = render("InverseData", records, inverse=True)
+ if args.check:
+ if destination.read_text() != output:
+ raise SystemExit(f"stale generated literals: {destination.relative_to(ROOT)}")
+ else:
+ destination.write_text(output)
+ value = json.loads((ROOT / "conformance-fixtures/HexRCF/selected-catalog.json").read_text())
+ for module, output in [("CatalogData", render_catalog(value)),
+ ("CatalogByteData", render_catalog_bytes(value))]:
+ destination = directory / f"{module}.lean"
+ if args.check:
+ if destination.read_text() != output:
+ raise SystemExit(f"stale generated literals: {destination.relative_to(ROOT)}")
+ else:
+ destination.write_text(output)
+ value = json.loads((ROOT / "conformance-fixtures/HexRCF/native-sample-root.json").read_text())
+ destination = ROOT / "conformance/HexRCF/NativeSampleModelLiterals.lean"
+ output = render("NativeSampleModelLiterals", value, sample_root=True)
+ if args.check:
+ if destination.read_text() != output:
+ raise SystemExit(f"stale generated literals: {destination.relative_to(ROOT)}")
+ else:
+ destination.write_text(output)
+ for fixture, module in [
+ ("native-selection-root.json", "NativeSelectionLiterals"),
+ ("source-selection-negative.json", "SourceSelectionNegativeLiterals"),
+ ]:
+ value = json.loads((ROOT / "conformance-fixtures/HexRCF" / fixture).read_text())
+ if len(value) != 2 or len(value[0]) != 6:
+ raise ValueError("expected a complete selected-root subject and graph")
+ destination = ROOT / f"conformance/HexRCF/{module}.lean"
+ output = render(module, value[0] + [value[1]],
+ sample_root=True, root_fixture=fixture)
+ if args.check:
+ if destination.read_text() != output:
+ raise SystemExit(f"stale generated literals: {destination.relative_to(ROOT)}")
+ else:
+ destination.write_text(output)
+ fixture = "root-replay.json"
+ value = json.loads((ROOT / "conformance-fixtures/HexRCF" / fixture).read_text())
+ destination = ROOT / "conformance/HexRCF/RootReplayLiterals.lean"
+ output = render("RootReplayLiterals", value, root_replay=True, root_fixture=fixture)
+ if args.check:
+ if destination.read_text() != output:
+ raise SystemExit(f"stale generated literals: {destination.relative_to(ROOT)}")
+ else:
+ destination.write_text(output)
+ fixture = "nested-root-table.json"
+ value = json.loads((ROOT / "conformance-fixtures/HexRCF" / fixture).read_text())
+ destination = ROOT / "conformance/HexRCF/NestedRootLiterals.lean"
+ output = render("NestedRootLiterals", [value], root_replay=True,
+ root_fixture=fixture, root_names=["positive"])
+ if args.check:
+ if destination.read_text() != output:
+ raise SystemExit(f"stale generated literals: {destination.relative_to(ROOT)}")
+ else:
+ destination.write_text(output)
+ fixture = "root-transport.json"
+ value = json.loads((ROOT / "conformance-fixtures/HexRCF" / fixture).read_text())
+ destination = ROOT / "conformance/HexRCF/RootTransportLiterals.lean"
+ output = render("RootTransportLiterals", value, root_replay=True,
+ root_fixture=fixture,
+ root_names=["subject", "graph", "negativeSubject", "negativeGraph",
+ "wordSubject", "wordGraph"])
+ if args.check:
+ if destination.read_text() != output:
+ raise SystemExit(f"stale generated literals: {destination.relative_to(ROOT)}")
+ else:
+ destination.write_text(output)
+ directory = ROOT / "conformance/HexRCF/NestedTransport"
+ fixture = "nested-transport.json"
+ value = json.loads((ROOT / "conformance-fixtures/HexRCF" / fixture).read_text())
+ output = render("Literals", value, root_replay=True, root_fixture=fixture,
+ root_names=["subject", "graph"]).replace(
+ "Hex.RCF.RealCoefficients.Literals",
+ "Hex.RCF.RealCoefficients.NestedTransportTests.Literals")
+ outputs = [(directory / "Literals.lean", output)]
+ fixture = "nested-transport-endpoint.json"
+ value = json.loads((ROOT / "conformance-fixtures/HexRCF" / fixture).read_text())
+ output = render("EndpointLiterals", value, root_replay=True, root_fixture=fixture,
+ root_names=["subject", "graph"]).replace(
+ "Hex.RCF.RealCoefficients.EndpointLiterals",
+ "Hex.RCF.RealCoefficients.NestedTransportTests.EndpointLiterals")
+ outputs.append((directory / "EndpointLiterals.lean", output))
+ fixture = "nested-transport-signs.json"
+ value = json.loads((ROOT / "conformance-fixtures/HexRCF" / fixture).read_text())
+ output = render("SignLiterals", value, root_replay=True, root_fixture=fixture,
+ root_names=["polynomials", "evidence"]).replace(
+ "Hex.RCF.RealCoefficients.SignLiterals",
+ "Hex.RCF.RealCoefficients.NestedTransportTests.SignLiterals")
+ lines = output.splitlines()
+ first = next(i for i, line in enumerate(lines) if line.startswith("@[expose] def j0 "))
+ # Each constructor occupies one dependency-ordered line. Leave header room
+ # below the repository's 300-line new-file limit.
+ split = max(first + 1, 279)
+ prefix = "\n".join(lines[:first]) + "\n"
+ end = "end Hex.RCF.RealCoefficients.NestedTransportTests.SignLiterals\n"
+ outputs.append((directory / "SignData.lean", prefix +
+ "\n".join(lines[first:split]) + "\n" + end))
+ if "public import HexSignDet.Codec.Json" not in prefix:
+ raise ValueError("literal header has no codec import")
+ prefix = prefix.replace("public import HexSignDet.Codec.Json",
+ "public import HexSignDet.Codec.Json\npublic import HexRCF.NestedTransport.SignData")
+ outputs.append((directory / "SignLiterals.lean", prefix +
+ "\n".join(lines[split:]) + "\n"))
+ for destination, output in outputs:
+ if len(output.splitlines()) > 300:
+ raise ValueError(f"literal module exceeds 300 lines: {destination}")
+ if args.check:
+ if destination.read_text() != output:
+ raise SystemExit(f"stale generated literals: {destination.relative_to(ROOT)}")
+ else:
+ destination.write_text(output)
+ fixture = "finite-matrix.json"
+ groups = json.loads((ROOT / "conformance-fixtures/HexRCF" / fixture).read_text())
+ if len(groups) != 5 or [len(group) for group in groups[2:]] != [31, 43, 21]:
+ raise ValueError("unexpected finite-matrix packet shape")
+ values = groups[:2]
+ names = ["canonical", "guarded"]
+ for kind, group in zip(["scalar", "packing", "sign"], groups[2:]):
+ values += group
+ names += [f"{kind}{i}" for i in range(len(group))]
+ output = render("FiniteMatrixTests.Literals", values, root_replay=True,
+ root_fixture=fixture, root_names=names)
+ lines = output.splitlines()
+ first = next(i for i, line in enumerate(lines) if line.startswith("@[expose] def j0 "))
+ body = lines[first:-1]
+ header = "\n".join(lines[:first]) + "\n"
+ chunks = [body[i:i + 260] for i in range(0, len(body), 260)]
+ directory = ROOT / "conformance/HexRCF/FiniteMatrix"
+ expected = {f"LiteralData{i}.lean" for i in range(len(chunks) - 1)}
+ obsolete = {path.name for path in directory.glob("LiteralData*.lean")} - expected
+ if obsolete:
+ raise ValueError(f"obsolete finite-matrix literal modules: {sorted(obsolete)}")
+ for i, chunk in enumerate(chunks):
+ name = "Literals" if i == len(chunks) - 1 else f"LiteralData{i}"
+ prefix = header
+ if i:
+ prefix = prefix.replace("public import HexSignDet.Codec.Json",
+ "public import HexSignDet.Codec.Json\n"
+ f"public import HexRCF.FiniteMatrix.LiteralData{i - 1}")
+ output = prefix + "\n".join(chunk) + "\nend Hex.RCF.RealCoefficients.FiniteMatrixTests.Literals\n"
+ destination = directory / f"{name}.lean"
+ if args.check:
+ if destination.read_text() != output:
+ raise SystemExit(f"stale generated literals: {destination.relative_to(ROOT)}")
+ else:
+ destination.write_text(output)
+ render_guarded_matrix(args.check)
+ render_guarded_quotient(args.check)
+ render_cell_replay(args.check)
+ render_algebraic_cells(args.check)
+ render_enumerated_sources(args.check)
+ print("selected-root literals match" if args.check else "selected-root literals regenerated")
+
+
+if __name__ == "__main__":
+ main()
diff --git a/reports/data/hexrcf-enumerated-source/source-build-current-inputs/snapshot.json.txt b/reports/data/hexrcf-enumerated-source/source-build-current-inputs/snapshot.json.txt
new file mode 100644
index 0000000000..0d1dbf1ec0
--- /dev/null
+++ b/reports/data/hexrcf-enumerated-source/source-build-current-inputs/snapshot.json.txt
@@ -0,0 +1,22 @@
+{
+ "base": "75713cb885d3c3705b06dcce8b19f6a7e8abac9d",
+ "scope": "Current source-build quote attempt3 and native controls. Snapshot after earlier failures; not claimed as exact inputs of those failed attempts.",
+ "sources": {
+ "adapters/HexRCF/RealCoefficients.lean": "6b9f9a7eaa6e98e30a1faae38252d8616a15595f86347abee0aa54c8fb2f2161",
+ "adapters/HexRCF/RealCoefficients/ScalarPacket.lean": "626fd139dafcb4c6f6a62dc5657e6ea0c46fff0f125a743cf67ed66ac5e2a241",
+ "conformance/HexRCF/SelectedRoot/KernelCheck.lean": "37320035a142ffc494f52e6659f0e99cc7be3b284b506295ca4fb024e711fa8b",
+ "lakefile.lean": "1bd072fee1095ad6f5ce2f1d200a9670bc841910d2138d64d7abfe115ea43a9d",
+ "scripts/rcf/selected_literals.py": "31ff385f0949fb1ea709b5ba15d60e83b170117cd81346ffbd797f528c701f0f",
+ "adapters/HexRCF/RealCoefficients/SourceBuild.lean": "c347e21a41fddb3a4d5a00c97ae33e259206650b155b8c314b68992e948504d4",
+ "conformance-fixtures/HexRCF/enumerated-source.json": "82abcd6de9a7e51cc64c0e67c59ed2c6c099c90570cba17eea3459b149b2bb72",
+ "conformance/HexRCF/EnumeratedSource/Cubic.lean": "011464c56dc3ffc5a6bd1e62dc9ff8b35ac6d0e621beceb0336b69d8f626b78f",
+ "conformance/HexRCF/EnumeratedSource/CubicData0.lean": "79b971cb2816d7ee980c595199eedbfddfd7cdb62ea12bc71dfcb24d304f69da",
+ "conformance/HexRCF/EnumeratedSource/Inputs.lean": "23ae13a33e132ee7221c5fa353e71073fc05bd660dfc3ecf6620584b62b40306",
+ "conformance/HexRCF/EnumeratedSource/Negative.lean": "261fcd979ff77c772a28ecc89776b5771cec920fc4e58a0dfe2886aee43a58d7",
+ "conformance/HexRCF/EnumeratedSource/NegativeData0.lean": "c0700606f805664f89dd0106dfb5aebb5ab18949adbb30e5b71ffeb20bb4fdaf",
+ "conformance/HexRCF/EnumeratedSource/Positive.lean": "1382c958e53cdb8a04afd1e6d6f173fe697ba15a3321bf29c3e03059923c7181",
+ "conformance/HexRCF/EnumeratedSource/PositiveData0.lean": "41674140d15cf0136ca29b627f667b952355916b269ff7d2c14247ba2d21b3b1",
+ "conformance/HexRCF/EnumeratedSource/Quote.lean": "8987d21be058f777f0ba875e917fcda77892bced1029616804fabd57f4eb41d8",
+ "conformance/HexRCF/SourceBuild.lean": "2ec7f60f87ae56f4bd5a2c3275be87936ff0c884b3e945906d1a94225d036ebf"
+ }
+}
diff --git a/reports/data/hexrcf-enumerated-source/source-build-dag.log.gz b/reports/data/hexrcf-enumerated-source/source-build-dag.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-enumerated-source/source-build-dag.log.gz differ
diff --git a/reports/data/hexrcf-enumerated-source/source-build-diff-check.log.gz b/reports/data/hexrcf-enumerated-source/source-build-diff-check.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-enumerated-source/source-build-diff-check.log.gz differ
diff --git a/reports/data/hexrcf-enumerated-source/source-build-diff-final.log.gz b/reports/data/hexrcf-enumerated-source/source-build-diff-final.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-enumerated-source/source-build-diff-final.log.gz differ
diff --git a/reports/data/hexrcf-enumerated-source/source-build-final-desktop-api.png b/reports/data/hexrcf-enumerated-source/source-build-final-desktop-api.png
new file mode 100644
index 0000000000..044a806007
Binary files /dev/null and b/reports/data/hexrcf-enumerated-source/source-build-final-desktop-api.png differ
diff --git a/reports/data/hexrcf-enumerated-source/source-build-final-desktop-apicode.png b/reports/data/hexrcf-enumerated-source/source-build-final-desktop-apicode.png
new file mode 100644
index 0000000000..328ce546df
Binary files /dev/null and b/reports/data/hexrcf-enumerated-source/source-build-final-desktop-apicode.png differ
diff --git a/reports/data/hexrcf-enumerated-source/source-build-final-desktop-source.png b/reports/data/hexrcf-enumerated-source/source-build-final-desktop-source.png
new file mode 100644
index 0000000000..7a0c3a3f50
Binary files /dev/null and b/reports/data/hexrcf-enumerated-source/source-build-final-desktop-source.png differ
diff --git a/reports/data/hexrcf-enumerated-source/source-build-final-inspection.json b/reports/data/hexrcf-enumerated-source/source-build-final-inspection.json
new file mode 100644
index 0000000000..49ee6334e5
--- /dev/null
+++ b/reports/data/hexrcf-enumerated-source/source-build-final-inspection.json
@@ -0,0 +1,86 @@
+[
+ {
+ "label": "desktop",
+ "kind": "api",
+ "text": "\n The native producer SourceBuild.build\ncan discover a selected source from its defining polynomial and a window\npolynomial whose sign is positive at exactly one of its real roots. For an\nisolating square, use SourceIdentity.margin as that window. The producer\nenumerates roots with the existing family algorithm, visits every candidate,\nand proposes the equation and window packets for the unique positive match.\nTwo matches produce ambiguous; no match produces unselected. A failed\nequation or enclosure calculation remains an error.",
+ "viewport": 1440,
+ "scrollY": 277472,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "P",
+ "targetWidth": 752,
+ "targetScrollWidth": 752,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "desktop",
+ "kind": "apicode",
+ "text": "\n This direct API example proposes the positive root of X²−2, using its checked\nsource square:",
+ "viewport": 1440,
+ "scrollY": 277862,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "CODE",
+ "targetWidth": 740,
+ "targetScrollWidth": 740,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "desktop",
+ "kind": "source",
+ "text": "\n The enumerated-source controls\nproduce both quadratic conjugates and a positive cubic root from X³−2, compare\ntheir complete bytes with frozen constructor literals, and independently\nvalidate all six scalar graphs. They also reject an ambiguous window, empty\nand zero windows, a wrong source equation and duplicate roots. The separate\nordinary quotation\nidentifies these roots from the frozen descriptors and packets, with the\nrational model, alias selection and coefficient-map laws supplied. Its three\nquotation requests charge 6,371,355, 6,442,217 and 8,127,841 proof nodes\nrespectively; the separate final driver checks and exports are outside those\ncounts. The combined build\ntook 624 seconds and peaked at 2.2 GiB on the shared host. These costs describe\nthree fixed proof constructions. General predecessor-history assembly and\nautomatic source discovery from a tactic goal remain separate work.",
+ "viewport": 1440,
+ "scrollY": 278513,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "P",
+ "targetWidth": 752,
+ "targetScrollWidth": 752,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "api",
+ "text": "\n The native producer SourceBuild.build\ncan discover a selected source from its defining polynomial and a window\npolynomial whose sign is positive at exactly one of its real roots. For an\nisolating square, use SourceIdentity.margin as that window. The producer\nenumerates roots with the existing family algorithm, visits every candidate,\nand proposes the equation and window packets for the unique positive match.\nTwo matches produce ambiguous; no match produces unselected. A failed\nequation or enclosure calculation remains an error.",
+ "viewport": 390,
+ "scrollY": 445080,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "P",
+ "targetWidth": 343,
+ "targetScrollWidth": 343,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "apicode",
+ "text": "\n This direct API example proposes the positive root of X²−2, using its checked\nsource square:",
+ "viewport": 390,
+ "scrollY": 445622,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "CODE",
+ "targetWidth": 331,
+ "targetScrollWidth": 331,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "source",
+ "text": "\n The enumerated-source controls\nproduce both quadratic conjugates and a positive cubic root from X³−2, compare\ntheir complete bytes with frozen constructor literals, and independently\nvalidate all six scalar graphs. They also reject an ambiguous window, empty\nand zero windows, a wrong source equation and duplicate roots. The separate\nordinary quotation\nidentifies these roots from the frozen descriptors and packets, with the\nrational model, alias selection and coefficient-map laws supplied. Its three\nquotation requests charge 6,371,355, 6,442,217 and 8,127,841 proof nodes\nrespectively; the separate final driver checks and exports are outside those\ncounts. The combined build\ntook 624 seconds and peaked at 2.2 GiB on the shared host. These costs describe\nthree fixed proof constructions. General predecessor-history assembly and\nautomatic source discovery from a tactic goal remain separate work.",
+ "viewport": 390,
+ "scrollY": 446654,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "P",
+ "targetWidth": 343,
+ "targetScrollWidth": 343,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ }
+]
\ No newline at end of file
diff --git a/reports/data/hexrcf-enumerated-source/source-build-final-narrow-api.png b/reports/data/hexrcf-enumerated-source/source-build-final-narrow-api.png
new file mode 100644
index 0000000000..444f53d0ee
Binary files /dev/null and b/reports/data/hexrcf-enumerated-source/source-build-final-narrow-api.png differ
diff --git a/reports/data/hexrcf-enumerated-source/source-build-final-narrow-apicode.png b/reports/data/hexrcf-enumerated-source/source-build-final-narrow-apicode.png
new file mode 100644
index 0000000000..3970d31b2a
Binary files /dev/null and b/reports/data/hexrcf-enumerated-source/source-build-final-narrow-apicode.png differ
diff --git a/reports/data/hexrcf-enumerated-source/source-build-final-narrow-source.png b/reports/data/hexrcf-enumerated-source/source-build-final-narrow-source.png
new file mode 100644
index 0000000000..edfce4c2f5
Binary files /dev/null and b/reports/data/hexrcf-enumerated-source/source-build-final-narrow-source.png differ
diff --git a/reports/data/hexrcf-enumerated-source/source-build-final-section-overflow.json b/reports/data/hexrcf-enumerated-source/source-build-final-section-overflow.json
new file mode 100644
index 0000000000..9dba7f5e5b
--- /dev/null
+++ b/reports/data/hexrcf-enumerated-source/source-build-final-section-overflow.json
@@ -0,0 +1,894 @@
+[
+ {
+ "label": "desktop",
+ "width": 1440,
+ "targets": [
+ {
+ "tag": "P",
+ "text": "\n Fix the coefficient field ℚ(√2), with its positive selected embedding in ℝ.\nThe polynomial X²−√2 has two real roots. The supplied complete ta",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n These examples import the monorepo fixture HexRCF.CellReplay.Algebraic.Quoted.\nThe original real source is proved by fresh schema preparation",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RealCoefficients\nopen CellReplayTests\nexample : ∃ x : ℝ,\n x ^ 2 - Real.sqrt 2 ≥ 0 ∧\n x ^ 2 - Real.sqrt 2 ≤ 0 ∧\n (0 : ℝ) = 0 := Algebraic.Q",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The complete-packet interface reads the full root table before its cell rows.\nCompleteReplay.check then checks the radical identities and str",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex Hex.RealClosure Hex.SignDet\nopen Hex.RealFormula\nopen Hex.RCF.RealCoefficients\nexample\n {r : BaseContext.Registry}\n {c : Tower.Context r} {n : Na",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n CellQuote.finishPacket additionally binds this checked shared sentence to a\nfreshly reified original source, its fixed coefficient valuation ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RealCoefficients\nopen CellReplayTests.Algebraic\nexample : ∃ x : ℝ,\n x ^ 2 - Real.sqrt 2 ≥ 0 ∧\n x ^ 2 - Real.sqrt 2 ≤ 0 ∧\n 0 / (-1 : ℝ) = 0",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The source-boundary checks refuse a false verdict, a different original\nformula, missing divisor identities and a cancelled zero divisor. A s",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The table's exact root set and strict order are proved conclusions of the\nsupplied replay. The positive and negative fourth roots of 2 have t",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RealCoefficients\nopen CellReplayTests\nexample (x : ℝ) :\n x ∈\n Algebraic.Canonical.roots.values\n Algebraic.Schema.original ↔\n x ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n All coefficient signs used by these readers come from 21 distinct frozen\nscalar packets. Each packet passes the owner's scalar reader in the ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Original divisors still enter preflight when a zero numerator removes their\nvalue from the normalized matrix. This source retains and authent",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RealCoefficients\nopen CellReplayTests\nexample : ∃ x : ℝ,\n x ^ 2 - Real.sqrt 2 ≥ 0 ∧\n x ^ 2 - Real.sqrt 2 ≤ 0 ∧\n 0 / (-1 : ℝ) = 0 :=\n Alge",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A supplied zero divisor is rejected before decoding, including with a malformed\npacket. The fresh quotation module rechecks both original pro",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The same checked rows can be reused when the entire ordered specialized\npolynomial list is unchanged, including repeated and zero atoms. Chan",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RealCoefficients\nopen CellReplayTests\nexample : ∀ x : ℝ,\n (x ^ 2 - Real.sqrt 2 < 0 ∨\n x ^ 2 - Real.sqrt 2 ≥ 0) ∧\n (0 : ℝ) = 0 :=\n Algeb",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Additional fresh proofs cover equality/non-equality and positive outer\nsectors. All six comparisons, conjunction, disjunction and negation ar",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n This example uses one supplied lawful ordinary-real parent and one fixed\ncomplete packet. It establishes finite replay over a non-rational st",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The native construction API can produce the same complete packet. RootBuild.build\nretains the owner's full derivative table and its extracted",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RealCoefficients\nopen Hex.RealClosure\nopen HexPolyTheory.Interpret\nexample\n {r : BaseContext.Registry}\n {c : Tower.Context r}\n (model : To",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n CellBuild.prepare first checks the original divisors, then specializes the\nshared atoms and constructs their radical carrier and complete roo",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n CellBuild.build constructs every section row and every sector record for that\ncomplete root table and proposed ordinary parent-field points. ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n This explicit-point interface does not discover ordinary sector points in\narbitrary parents, assemble missing scalar/provider histories or pr",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The separate native CellDiscover.run API obtains ordinary points from the\nowner's complete partition. Its actual collection converts all fixe",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RealCoefficients\nopen Hex.RealClosure\nexample\n {r : BaseContext.Registry}\n {c : Tower.Context r}\n {ps : List c.Poly}\n (family : Tower.S",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n CellAlignment.aligned derives exact equality between the partition's ordered\nreal boundaries and the independently checked radical root table",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n This is native production followed by independent cell replay. The returned\ncollection retains native conversion history; it is not a frozen ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n CellDiscover.run uses SectorRequest.points and the owner's proved\nboundary-request API. Cut.adjacent establishes the requested endpoints for ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n CellProgress obtains each selected-sign row and each ordinary-point descriptor\nfrom the owner's actual construction theorems. A checked linea",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex Hex.RealClosure\nopen Hex.RealFormula\nopen Hex.RCF.RealCoefficients\nexample\n {r : BaseContext.Registry}\n {c : Tower.Context r} {n : Nat}\n (mode",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n CellDecision.complete composes the actual collection, source conversion,\nradical/root preparation, requested sector points and complete typed",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n CellBuild.evidence now produces those typed rows before freezing them.\nThe public CellBuild.build serializes that same result in the existing",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The discovery result emits its full rootGraph as well as cells.\nPacket.rootGraph_eq binds the graph to the actual typed root table and native",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RealClosure\nopen Hex.RealFormula\nopen Hex.RCF.RealCoefficients\nexample\n {r : BaseContext.Registry}\n {c : Tower.Context r} {n : Nat}\n (model : ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Original fixed-field inputs can enter this producer through\nNumberField.cells. The existing number-field factory checks the original\nselected",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex\nopen Hex.RealClosure\nopen Hex.RealFormula\nopen Hex.RCF.RealCoefficients\nexample\n {n : Nat} (g : RealAlgebraicNumber)\n (registry : BaseContext.Reg",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The native conformance constructs both selected roots of X²−2 and a computed\ncoordinate in the field generated by the positive root of X³−2. ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Literal-reader acceptance still needs finite coverage of every serialized\ncoefficient and context. Frozen provider/context histories, strict ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Independently constructed coefficient contexts can enter complete packet\nproduction through GatherCells.build. Each input retains its origina",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n buildWith reuses the actual owner's gathering result. A compatible ordinary\nmodel proves complete packet production without assuming a succes",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex Hex.RealClosure\nopen Hex.RealClosure.Tower\nopen Hex.RealFormula\nopen Hex.RCF.RealCoefficients\nexample\n {r : BaseContext.Registry}\n {b : BaseConte",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n build_complete additionally derives successful gathering from the original\nowners' compatible base signatures and an ordinary base interpreta",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The native conformance combines separate positive √2 and √3 owners, repeats\none source coordinate, and checks a leading cancellation and repe",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n AlgebraicCells.build starts from original RealAlgebraicNumber inputs.\nIt constructs their checked selected presentations and gathers the resu",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The automatic constructor needs only the original nonzero guards for its\nprogress theorem. The rational interpretation, owner compatibility a",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex Hex.RealClosure\nopen Hex.RealFormula\nopen Hex.RCF.RealCoefficients\nexample (r : BaseContext.Registry)\n {m n : Nat}\n (vs : Fin m →\n RealAlgeb",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n These native-input theorems preserve both emitted quantifier verdicts at the\noriginal selected real values. build_domains concludes every ori",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The complete literal checker can use checked cached arithmetic through\nCellOperations.check. It takes the owner's existing Replay.Operations\n",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex Hex.RealClosure Hex.SignDet\nopen Hex.RealFormula\nopen Hex.RCF.RealCoefficients\nopen Hex.RealClosure.Replay\nexample {r : BaseContext.Registry}\n {p : ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Original guard preflight, radical identities, complete root/cell coverage and\nthe strict fold retain their existing soundness and domain theo",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n CellQuote.replayWith\nquotes a supplied CellOperations.check expression in three stages. It first\nchecks the complete root table, then each de",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula\nopen Hex.Reflect\nopen Hex.RCF.RealCoefficients\nmeta def quoteCellPacket\n (program : Expr)\n (decode : RootQuote.DecoderM)\n (co",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n set_option trace.Hex.RCF.CellQuote true reports reader and finite-family\nboundaries with cumulative proof-node usage. Lean heartbeats remain ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n CellQuote.finishPacketWith\ncontinues this request through the original source proof. It consumes the\nprepared source and the accepted canonic",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The separate finishing action can also continue already recorded usage:",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula\nopen Hex.Reflect\nopen Hex.RCF.RealCoefficients\nmeta def finishCellPacket\n (source : Reify.Source)\n (target checker accepted : Ex",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n That separate transaction rolls back its own work. Clients needing rollback\nof quotation as well must combine both actions in one transaction",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Within this request, row quotation parses each literal sign packet and checks\nits exact ordered queries. It validates a graph once for each d",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The returned equation retains both Boolean verdicts. CellQuote.finishPacket\nperforms source authentication separately and requires an accepte",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "example : ∀ _x : ℝ, (0 : ℝ) = 0 :=\n Hex.RCF.CellQuoteStages.source\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Its replay quotation uses 441,039 nodes for true and 441,041 for false. These\ncounts cover the three replay stages, separately from source re",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A separate rational quadratic packet checks two root sections and three\nsectors in 5,911,125 proof nodes. Its trace records two graph-memo re",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A fresh importing audit checks 1,247 theorem bodies and 101 definitions, with\n1,298 nonempty kernel traces, the unchanged producer guard and ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The algebraic source regression independently reads the complete frozen packet\nover the retained positive square root of 2. It reifies the fo",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "example : ∃ x : ℝ,\n x ^ 2 - Real.sqrt 2 ≥ 0 ∧\n x ^ 2 - Real.sqrt 2 ≤ 0 ∧\n (0 : ℝ) = 0 :=\n Hex.RCF.CellSourceQuote.source\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The shared reification and quotation budget records 8,644,422 proof nodes\nbefore source finishing and 8,651,669 for the complete original-sou",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Its importing proof audit checks 1,193 theorem bodies, 202 definitions and\n1,353 nonempty kernel traces. It excludes the older complete-packe",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a closed retained base/root context, RealModel.build constructs its\nordinary-real interpretation from a caller-supplied real base model a",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A source equation alone does not distinguish real conjugates.\nSourceIdentity.observe\nreads a checked scalar sign at the native descriptor's s",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n SourceIdentity.quoteWith\nconstructs this identity from two supplied scalar readers. Its Anchor retains\nthe original polynomial, isolating squ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula\nopen Hex.Reflect\nopen Hex.RCF.RealCoefficients\nmeta def quoteSourceIdentity\n (anchor : SourceIdentity.Anchor)\n (packets : Source",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The result proves that the reader's selected real root equals the original\nanchor value. Quotation checks both packets, their keys, signs, su",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The frozen square-root regression quotes its parent descriptor and both\npackets in 673,461 proof nodes. Its coefficient identity supplies the",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The native producer SourceBuild.build\ncan discover a selected source from its defining polynomial and a window\npolynomial whose sign is posit",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n This direct API example proposes the positive root of X²−2, using its checked\nsource square:",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex Hex.RealClosure\nopen Hex.RCF.RealCoefficients\n\ndef proposeSquareRoot\n (registry :\n BaseContext.Registry) :=\n Id.run do\n let parent :=\n ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The output reports proposal production. Independent frozen replay establishes\nthe selected real identity. ScalarPacket.buildParts retains the",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n ScalarPacket.buildParts_success and build_success prove actual packet\nproduction for every query at a validated descriptor with a lawful ordi",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The enumerated-source controls\nproduce both quadratic conjugates and a positive cubic root from X³−2, compare\ntheir complete bytes with froze",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n CellQuote.finishOperations takes the supplied-operation acceptance expression\nand an ordinary proof that its result is some (). It kernel-che",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Meta clients can prepare these native inputs from the original Lean statement\nwith AlgebraicPreparation.prepare. It reuses the shared source ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Meta Qq\nopen Hex.RCF.RealCoefficients\nrun_meta do\n let .ok prepared ←\n AlgebraicPreparation.prepare\n q(∀ x : ℝ,\n x^2 + 1 /\n ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The resulting environment stores coefficient proposals first and every original\ndivisor afterward, with separate ordered indices for each rol",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For the retained algebraic expressions, prepared.acceptanceIff proves an exact\nacceptance equivalence. The left side requires the actual alge",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex Lean Meta Qq\nopen Hex.RCF.RealCoefficients\nopen Hex.RealClosure.BaseContext\nrun_meta do\n let target : Q(Prop) :=\n q(∀ x : ℝ, x^2 + Real.sqrt 2 > 0)",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n This proof uses the checked algebraic expressions and their source identities.\nIt does not identify separately computed proposals with frozen",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The automatic-input conformance uses both selected signs of √2 alongside an\nindependent positive √3. It checks simultaneous conditions and a ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The explicit HexRCFAlgebraicCellsStress target retains the stronger condition\nx² = √2 with 1 < x < √3 and its negative-conjugate control. A r",
+ "overflow": 0
+ }
+ ]
+ },
+ {
+ "label": "narrow",
+ "width": 390,
+ "targets": [
+ {
+ "tag": "P",
+ "text": "\n Fix the coefficient field ℚ(√2), with its positive selected embedding in ℝ.\nThe polynomial X²−√2 has two real roots. The supplied complete ta",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n These examples import the monorepo fixture HexRCF.CellReplay.Algebraic.Quoted.\nThe original real source is proved by fresh schema preparation",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RealCoefficients\nopen CellReplayTests\nexample : ∃ x : ℝ,\n x ^ 2 - Real.sqrt 2 ≥ 0 ∧\n x ^ 2 - Real.sqrt 2 ≤ 0 ∧\n (0 : ℝ) = 0 := Algebraic.Q",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The complete-packet interface reads the full root table before its cell rows.\nCompleteReplay.check then checks the radical identities and str",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex Hex.RealClosure Hex.SignDet\nopen Hex.RealFormula\nopen Hex.RCF.RealCoefficients\nexample\n {r : BaseContext.Registry}\n {c : Tower.Context r} {n : Na",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n CellQuote.finishPacket additionally binds this checked shared sentence to a\nfreshly reified original source, its fixed coefficient valuation ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RealCoefficients\nopen CellReplayTests.Algebraic\nexample : ∃ x : ℝ,\n x ^ 2 - Real.sqrt 2 ≥ 0 ∧\n x ^ 2 - Real.sqrt 2 ≤ 0 ∧\n 0 / (-1 : ℝ) = 0",
+ "overflow": 1
+ },
+ {
+ "tag": "P",
+ "text": "\n The source-boundary checks refuse a false verdict, a different original\nformula, missing divisor identities and a cancelled zero divisor. A s",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The table's exact root set and strict order are proved conclusions of the\nsupplied replay. The positive and negative fourth roots of 2 have t",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RealCoefficients\nopen CellReplayTests\nexample (x : ℝ) :\n x ∈\n Algebraic.Canonical.roots.values\n Algebraic.Schema.original ↔\n x ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n All coefficient signs used by these readers come from 21 distinct frozen\nscalar packets. Each packet passes the owner's scalar reader in the ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Original divisors still enter preflight when a zero numerator removes their\nvalue from the normalized matrix. This source retains and authent",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RealCoefficients\nopen CellReplayTests\nexample : ∃ x : ℝ,\n x ^ 2 - Real.sqrt 2 ≥ 0 ∧\n x ^ 2 - Real.sqrt 2 ≤ 0 ∧\n 0 / (-1 : ℝ) = 0 :=\n Alge",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A supplied zero divisor is rejected before decoding, including with a malformed\npacket. The fresh quotation module rechecks both original pro",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The same checked rows can be reused when the entire ordered specialized\npolynomial list is unchanged, including repeated and zero atoms. Chan",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RealCoefficients\nopen CellReplayTests\nexample : ∀ x : ℝ,\n (x ^ 2 - Real.sqrt 2 < 0 ∨\n x ^ 2 - Real.sqrt 2 ≥ 0) ∧\n (0 : ℝ) = 0 :=\n Algeb",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Additional fresh proofs cover equality/non-equality and positive outer\nsectors. All six comparisons, conjunction, disjunction and negation ar",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n This example uses one supplied lawful ordinary-real parent and one fixed\ncomplete packet. It establishes finite replay over a non-rational st",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The native construction API can produce the same complete packet. RootBuild.build\nretains the owner's full derivative table and its extracted",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RealCoefficients\nopen Hex.RealClosure\nopen HexPolyTheory.Interpret\nexample\n {r : BaseContext.Registry}\n {c : Tower.Context r}\n (model : To",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n CellBuild.prepare first checks the original divisors, then specializes the\nshared atoms and constructs their radical carrier and complete roo",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n CellBuild.build constructs every section row and every sector record for that\ncomplete root table and proposed ordinary parent-field points. ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n This explicit-point interface does not discover ordinary sector points in\narbitrary parents, assemble missing scalar/provider histories or pr",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The separate native CellDiscover.run API obtains ordinary points from the\nowner's complete partition. Its actual collection converts all fixe",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RealCoefficients\nopen Hex.RealClosure\nexample\n {r : BaseContext.Registry}\n {c : Tower.Context r}\n {ps : List c.Poly}\n (family : Tower.S",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n CellAlignment.aligned derives exact equality between the partition's ordered\nreal boundaries and the independently checked radical root table",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n This is native production followed by independent cell replay. The returned\ncollection retains native conversion history; it is not a frozen ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n CellDiscover.run uses SectorRequest.points and the owner's proved\nboundary-request API. Cut.adjacent establishes the requested endpoints for ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n CellProgress obtains each selected-sign row and each ordinary-point descriptor\nfrom the owner's actual construction theorems. A checked linea",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex Hex.RealClosure\nopen Hex.RealFormula\nopen Hex.RCF.RealCoefficients\nexample\n {r : BaseContext.Registry}\n {c : Tower.Context r} {n : Nat}\n (mode",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n CellDecision.complete composes the actual collection, source conversion,\nradical/root preparation, requested sector points and complete typed",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n CellBuild.evidence now produces those typed rows before freezing them.\nThe public CellBuild.build serializes that same result in the existing",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The discovery result emits its full rootGraph as well as cells.\nPacket.rootGraph_eq binds the graph to the actual typed root table and native",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RealClosure\nopen Hex.RealFormula\nopen Hex.RCF.RealCoefficients\nexample\n {r : BaseContext.Registry}\n {c : Tower.Context r} {n : Nat}\n (model : ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Original fixed-field inputs can enter this producer through\nNumberField.cells. The existing number-field factory checks the original\nselected",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex\nopen Hex.RealClosure\nopen Hex.RealFormula\nopen Hex.RCF.RealCoefficients\nexample\n {n : Nat} (g : RealAlgebraicNumber)\n (registry : BaseContext.Reg",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The native conformance constructs both selected roots of X²−2 and a computed\ncoordinate in the field generated by the positive root of X³−2. ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Literal-reader acceptance still needs finite coverage of every serialized\ncoefficient and context. Frozen provider/context histories, strict ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Independently constructed coefficient contexts can enter complete packet\nproduction through GatherCells.build. Each input retains its origina",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n buildWith reuses the actual owner's gathering result. A compatible ordinary\nmodel proves complete packet production without assuming a succes",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex Hex.RealClosure\nopen Hex.RealClosure.Tower\nopen Hex.RealFormula\nopen Hex.RCF.RealCoefficients\nexample\n {r : BaseContext.Registry}\n {b : BaseConte",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n build_complete additionally derives successful gathering from the original\nowners' compatible base signatures and an ordinary base interpreta",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The native conformance combines separate positive √2 and √3 owners, repeats\none source coordinate, and checks a leading cancellation and repe",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n AlgebraicCells.build starts from original RealAlgebraicNumber inputs.\nIt constructs their checked selected presentations and gathers the resu",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The automatic constructor needs only the original nonzero guards for its\nprogress theorem. The rational interpretation, owner compatibility a",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex Hex.RealClosure\nopen Hex.RealFormula\nopen Hex.RCF.RealCoefficients\nexample (r : BaseContext.Registry)\n {m n : Nat}\n (vs : Fin m →\n RealAlgeb",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n These native-input theorems preserve both emitted quantifier verdicts at the\noriginal selected real values. build_domains concludes every ori",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The complete literal checker can use checked cached arithmetic through\nCellOperations.check. It takes the owner's existing Replay.Operations\n",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex Hex.RealClosure Hex.SignDet\nopen Hex.RealFormula\nopen Hex.RCF.RealCoefficients\nopen Hex.RealClosure.Replay\nexample {r : BaseContext.Registry}\n {p : ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Original guard preflight, radical identities, complete root/cell coverage and\nthe strict fold retain their existing soundness and domain theo",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n CellQuote.replayWith\nquotes a supplied CellOperations.check expression in three stages. It first\nchecks the complete root table, then each de",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula\nopen Hex.Reflect\nopen Hex.RCF.RealCoefficients\nmeta def quoteCellPacket\n (program : Expr)\n (decode : RootQuote.DecoderM)\n (co",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n set_option trace.Hex.RCF.CellQuote true reports reader and finite-family\nboundaries with cumulative proof-node usage. Lean heartbeats remain ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n CellQuote.finishPacketWith\ncontinues this request through the original source proof. It consumes the\nprepared source and the accepted canonic",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The separate finishing action can also continue already recorded usage:",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula\nopen Hex.Reflect\nopen Hex.RCF.RealCoefficients\nmeta def finishCellPacket\n (source : Reify.Source)\n (target checker accepted : Ex",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n That separate transaction rolls back its own work. Clients needing rollback\nof quotation as well must combine both actions in one transaction",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Within this request, row quotation parses each literal sign packet and checks\nits exact ordered queries. It validates a graph once for each d",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The returned equation retains both Boolean verdicts. CellQuote.finishPacket\nperforms source authentication separately and requires an accepte",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "example : ∀ _x : ℝ, (0 : ℝ) = 0 :=\n Hex.RCF.CellQuoteStages.source\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Its replay quotation uses 441,039 nodes for true and 441,041 for false. These\ncounts cover the three replay stages, separately from source re",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A separate rational quadratic packet checks two root sections and three\nsectors in 5,911,125 proof nodes. Its trace records two graph-memo re",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A fresh importing audit checks 1,247 theorem bodies and 101 definitions, with\n1,298 nonempty kernel traces, the unchanged producer guard and ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The algebraic source regression independently reads the complete frozen packet\nover the retained positive square root of 2. It reifies the fo",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "example : ∃ x : ℝ,\n x ^ 2 - Real.sqrt 2 ≥ 0 ∧\n x ^ 2 - Real.sqrt 2 ≤ 0 ∧\n (0 : ℝ) = 0 :=\n Hex.RCF.CellSourceQuote.source\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The shared reification and quotation budget records 8,644,422 proof nodes\nbefore source finishing and 8,651,669 for the complete original-sou",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Its importing proof audit checks 1,193 theorem bodies, 202 definitions and\n1,353 nonempty kernel traces. It excludes the older complete-packe",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a closed retained base/root context, RealModel.build constructs its\nordinary-real interpretation from a caller-supplied real base model a",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A source equation alone does not distinguish real conjugates.\nSourceIdentity.observe\nreads a checked scalar sign at the native descriptor's s",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n SourceIdentity.quoteWith\nconstructs this identity from two supplied scalar readers. Its Anchor retains\nthe original polynomial, isolating squ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula\nopen Hex.Reflect\nopen Hex.RCF.RealCoefficients\nmeta def quoteSourceIdentity\n (anchor : SourceIdentity.Anchor)\n (packets : Source",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The result proves that the reader's selected real root equals the original\nanchor value. Quotation checks both packets, their keys, signs, su",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The frozen square-root regression quotes its parent descriptor and both\npackets in 673,461 proof nodes. Its coefficient identity supplies the",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The native producer SourceBuild.build\ncan discover a selected source from its defining polynomial and a window\npolynomial whose sign is posit",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n This direct API example proposes the positive root of X²−2, using its checked\nsource square:",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex Hex.RealClosure\nopen Hex.RCF.RealCoefficients\n\ndef proposeSquareRoot\n (registry :\n BaseContext.Registry) :=\n Id.run do\n let parent :=\n ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The output reports proposal production. Independent frozen replay establishes\nthe selected real identity. ScalarPacket.buildParts retains the",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n ScalarPacket.buildParts_success and build_success prove actual packet\nproduction for every query at a validated descriptor with a lawful ordi",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The enumerated-source controls\nproduce both quadratic conjugates and a positive cubic root from X³−2, compare\ntheir complete bytes with froze",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n CellQuote.finishOperations takes the supplied-operation acceptance expression\nand an ordinary proof that its result is some (). It kernel-che",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Meta clients can prepare these native inputs from the original Lean statement\nwith AlgebraicPreparation.prepare. It reuses the shared source ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Meta Qq\nopen Hex.RCF.RealCoefficients\nrun_meta do\n let .ok prepared ←\n AlgebraicPreparation.prepare\n q(∀ x : ℝ,\n x^2 + 1 /\n ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The resulting environment stores coefficient proposals first and every original\ndivisor afterward, with separate ordered indices for each rol",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For the retained algebraic expressions, prepared.acceptanceIff proves an exact\nacceptance equivalence. The left side requires the actual alge",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex Lean Meta Qq\nopen Hex.RCF.RealCoefficients\nopen Hex.RealClosure.BaseContext\nrun_meta do\n let target : Q(Prop) :=\n q(∀ x : ℝ, x^2 + Real.sqrt 2 > 0)",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n This proof uses the checked algebraic expressions and their source identities.\nIt does not identify separately computed proposals with frozen",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The automatic-input conformance uses both selected signs of √2 alongside an\nindependent positive √3. It checks simultaneous conditions and a ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The explicit HexRCFAlgebraicCellsStress target retains the stronger condition\nx² = √2 with 1 < x < √3 and its negative-conjugate control. A r",
+ "overflow": 0
+ }
+ ]
+ }
+]
\ No newline at end of file
diff --git a/reports/data/hexrcf-enumerated-source/source-build-inputs-1.log.gz b/reports/data/hexrcf-enumerated-source/source-build-inputs-1.log.gz
new file mode 100644
index 0000000000..5b91cceae3
Binary files /dev/null and b/reports/data/hexrcf-enumerated-source/source-build-inputs-1.log.gz differ
diff --git a/reports/data/hexrcf-enumerated-source/source-build-inputs-2.log.gz b/reports/data/hexrcf-enumerated-source/source-build-inputs-2.log.gz
new file mode 100644
index 0000000000..ff790b3a4d
Binary files /dev/null and b/reports/data/hexrcf-enumerated-source/source-build-inputs-2.log.gz differ
diff --git a/reports/data/hexrcf-enumerated-source/source-build-integration-1.log.gz b/reports/data/hexrcf-enumerated-source/source-build-integration-1.log.gz
new file mode 100644
index 0000000000..c6b7da585c
Binary files /dev/null and b/reports/data/hexrcf-enumerated-source/source-build-integration-1.log.gz differ
diff --git a/reports/data/hexrcf-enumerated-source/source-build-integration-2.log.gz b/reports/data/hexrcf-enumerated-source/source-build-integration-2.log.gz
new file mode 100644
index 0000000000..d4991af8f5
Binary files /dev/null and b/reports/data/hexrcf-enumerated-source/source-build-integration-2.log.gz differ
diff --git a/reports/data/hexrcf-enumerated-source/source-build-integration-3.log.gz b/reports/data/hexrcf-enumerated-source/source-build-integration-3.log.gz
new file mode 100644
index 0000000000..c945acace2
Binary files /dev/null and b/reports/data/hexrcf-enumerated-source/source-build-integration-3.log.gz differ
diff --git a/reports/data/hexrcf-enumerated-source/source-build-integration-invocation.json b/reports/data/hexrcf-enumerated-source/source-build-integration-invocation.json
new file mode 100644
index 0000000000..bbba405add
--- /dev/null
+++ b/reports/data/hexrcf-enumerated-source/source-build-integration-invocation.json
@@ -0,0 +1,63 @@
+{
+ "cwd": "/home/kim/worktrees/hex-dev/hex-dev-issue-10358",
+ "argv": [
+ "/home/kim/.codex/tasks/hex-10358/bin/run-bounded",
+ "lake",
+ "build",
+ "HexRCF.TreeQuoteProofs",
+ "HexRCF.RootQuoteConformance",
+ "HexRCF.RationalQuoteConformance",
+ "HexRCF.QuotientQuoteProofs",
+ "HexRCF.DependentQuoteProofs",
+ "HexRCF.DependentScalarProofs",
+ "HexRCF.RootPrepareProofs",
+ "HexRCF.RootPrepareControls",
+ "HexRCF.RootHeaderProofs",
+ "HexRCF.RootHeaderControls",
+ "HexRCF.RootHeaderBudget",
+ "HexRCF.RootHeaderValues",
+ "HexRCF.RootContextProofs",
+ "HexRCF.RootContextConformance",
+ "HexRCF.PublicSignPacketProofs",
+ "HexRCF.PublicSignPacketControls",
+ "HexRCF.SignPacketProofs",
+ "HexRCF.SharedQuoteConformance",
+ "HexRCF.SharedQuoteCallbackProofs",
+ "HexRCF.RecursiveScalarProofs",
+ "HexRCF.ScalarQuoteConformance",
+ "HexRCF.SignatureQuoteConformance",
+ "HexRCF.FrozenSignatureProofs",
+ "HexRCF.FrozenSignatureConformance",
+ "HexRCF.Conformance",
+ "HexRCF.RealCoefficientTactic",
+ "HexRCF.RealCoefficientCommonField",
+ "HexRCF.RootTableQuote.Conformance",
+ "HexManual",
+ "HexRCF.RowQuoteProofs",
+ "HexRCF.ReplayBoundaryProofs",
+ "HexRCFRealCoefficients",
+ "HexRCF.ReplayHelperProofs",
+ "HexRCF.SourceSelectionKernel",
+ "HexRCF.SourceSelectionProofs",
+ "HexRCF.CellQuoteStages",
+ "HexRCF.CellQuoteStageProofs",
+ "HexRCF.CellSourceQuote",
+ "HexRCF.CellSourceProofs",
+ "HexRCF.RowPacketControls",
+ "HexRCF.SourceIdentityLiterals",
+ "HexRCF.SourceIdentityPacket",
+ "HexRCF.SourceIdentityControls",
+ "HexRCF.SourceIdentityProofs",
+ "HexRCF.SourceIdentityEmit",
+ "HexRCF.CellFinishCases",
+ "HexRCF.CellFinishProofs",
+ "HexRCF.HandlerTests.Admission",
+ "HexRCF.HandlerTests",
+ "HexRCF.HandlerTests.Async",
+ "HexRCF.ReifyTests",
+ "HexRCF.SourceBuild",
+ "HexRCF.EnumeratedSource.Quote",
+ "HexRCF.EnumeratedSource.Proofs"
+ ],
+ "targets": 54
+}
diff --git a/reports/data/hexrcf-enumerated-source/source-build-integration-sources.json b/reports/data/hexrcf-enumerated-source/source-build-integration-sources.json
new file mode 100644
index 0000000000..7e8ce7066b
--- /dev/null
+++ b/reports/data/hexrcf-enumerated-source/source-build-integration-sources.json
@@ -0,0 +1,128 @@
+{
+ "scope": "Exact staged sources for successful54targetintegration3 before subsequent manual-only formatting; all these tracked sources matched the working tree during that run.",
+ "sources": {
+ ".github/workflows/ci.yml": "5db61a70eb52d7478994377179c1b35b360a794fcff4b1c257496b5a6394231c",
+ "AGENTS.md": "4e0a48cf49a61e56ed84c8b28e232b5bfad29f2da20571377692be6e1c316f30",
+ "HexManual/Chapters/HexRCF/AlgebraicCells.lean": "e6ba5764fde1a4f8a5f3eff52b27e3b163b37ebe36494adc4118bc783c460076",
+ "HexManual/Chapters/HexRCF/RootQuote.lean": "0fe7ecb8568a5b3492aeea8310a4816797802d0a764093b824673a635ecf628a",
+ "HexManual/Chapters/HexRCF/RootTableQuote.lean": "78d1be637a32593b03f000ab153c7fdf05a1b5332ea3efb9c186aacfd68f0ae5",
+ "HexRCF/HandlerTests/Admission.lean": "770518931dd3f7ab1934e327460b80607338207b17d97363b82c2a5c93669c36",
+ "HexRCF/README.md": "3830d758a8a75d59df1a6dd01f59204a86858b5eda3e43a78f9e9e9c2d769a8a",
+ "HexRCF/SPEC/hex-rcf.md": "df8c6bb2435a2794faa36bc77e41f4c936f06ae149f29c3e68fe0d79f4ebfafb",
+ "HexRCF/Tactic.lean": "26021113d121cfc9ab0d6e7ea7ce8d02eb6c4637c42bbdd2647ecd2d9291f3fb",
+ "HexRealClosure/Algebraic.lean": "d05f9fb72fe9544ae9ddc685dff17080f876aa4c99c70e8992d511e011f6a454",
+ "HexRealClosure/ContextData.lean": "ca29790752b8d25f10d03a9877690a5ff40f1fdf6815c96fe9693941206e662c",
+ "HexRealClosure/SignCodec.lean": "7126323c97b77204386795a0f252f1babfd0ed7f3dba7ee3927a99b9d5c1852a",
+ "HexRealClosure/SignFacts.lean": "9c22837e93e6f50cc96310163e352ac608fbcfbd6275edab33751da2fd84f47c",
+ "HexRealClosure/SignatureCodecTests.lean": "ffc72777523ac0e92b563481804bdfb581fb0173fe7a021009737d57959b4462",
+ "HexRealClosure/TowerContext.lean": "6ef8b87b2d81cb177505a4bbc88befa078b20578cedd49e836d850753c203ee3",
+ "PLAN.md": "e94a60324486913b4a04650edd617c4ff8bef469dc7fd311adea8407c6662ea0",
+ "SPEC/real-closure-execution.md": "bc0948ad7de6969baaed89c0b3052cb0d21d64d634f8a336f9a7dde446b057f5",
+ "adapters/HexRCF/RealCoefficients.lean": "6b9f9a7eaa6e98e30a1faae38252d8616a15595f86347abee0aa54c8fb2f2161",
+ "adapters/HexRCF/RealCoefficients/CellOperations.lean": "3561cc80c7c866141f05a387ce1100ee0cadd98281a03395551cebcde5bd6e2a",
+ "adapters/HexRCF/RealCoefficients/CellQuote.lean": "c572911d7be36001e0f1885c3460f3eb19425d90e78345b1c46878ddf3e6c6ea",
+ "adapters/HexRCF/RealCoefficients/CellRead.lean": "65274f89c940bad74eab8c9075f9256c6ed3d8b90d3294aec4e85883e425fb10",
+ "adapters/HexRCF/RealCoefficients/RationalQuote.lean": "675e2ba065b696f257adefc07fe30ddb0190f321d86005444579ea5a0744bdf5",
+ "adapters/HexRCF/RealCoefficients/RealModel.lean": "712b4fd3edff8eaa6f93e501da5debf04529d1ea8c11a18389820f866d179c43",
+ "adapters/HexRCF/RealCoefficients/Reify.lean": "ea8474b9e253f93a1583064ca99ec0bf376dadf5457fd60b57e9e18460cf449c",
+ "adapters/HexRCF/RealCoefficients/RootContext.lean": "792176eab63e5e62b759a10893569946ef6d019566b8116c85237b3e16fcdb86",
+ "adapters/HexRCF/RealCoefficients/RootHeader.lean": "681f2a964bc30f65a92a0fb1a58b4d4013eb396df37ca813962702065fb46261",
+ "adapters/HexRCF/RealCoefficients/RootPrepare.lean": "de72a8e3ac4adb13365801476467bf691e630d0952b018ccecd88846c3bdb025",
+ "adapters/HexRCF/RealCoefficients/RootQuote.lean": "89f3ad4b0c4a8ae058560201900877035d896427176b944b34acde9f9b23d7e8",
+ "adapters/HexRCF/RealCoefficients/RowPacketQuote.lean": "edbb3d23f72422f5a1dea163c283848ec285418b7bdb9eedba553b83066121af",
+ "adapters/HexRCF/RealCoefficients/RowQuote.lean": "3b7e7d2ebcbd53a6ea893bc8f4c884d767430f8b98a3f1ca770fe7c7b122f3c9",
+ "adapters/HexRCF/RealCoefficients/ScalarPacket.lean": "b9fdaea5098dfa6fcda2f7307cfeae5738d6ca5c55252ff6ba2a440d10c89cc7",
+ "adapters/HexRCF/RealCoefficients/ScalarQuote.lean": "fee2617a998f29d05c8959b484060ac1d719359c6d851a8ff6699fa9cb370acc",
+ "adapters/HexRCF/RealCoefficients/SignatureQuote.lean": "c3bb71b52c2a544b902bc256b3a162e1c3c4e7f94ae6b21808914e67109710eb",
+ "adapters/HexRCF/RealCoefficients/SourceBuild.lean": "c347e21a41fddb3a4d5a00c97ae33e259206650b155b8c314b68992e948504d4",
+ "adapters/HexRCF/RealCoefficients/SourceIdentity.lean": "d98ae0c746003be89edfc969e464383e6a6bda253e0dae8c290605e8b98ce3c3",
+ "adapters/HexRCF/RealCoefficients/SourceIdentityQuote.lean": "37c54a56f48b265d0ddca38ecae2c572871e8b7f1600b54f330ff3da60252fa7",
+ "adapters/HexRealClosureTheory/Algebraic.lean": "2495153acbe4e468521913a2f5d6569831cd05f5ee48d5ddb26fc31a43438c7e",
+ "adapters/HexRealClosureTheory/SignFacts.lean": "c2b8cf96de0cccc2c0c3cbe83f0afd7c40ab9736b75f377ec5bfedc0907f34e3",
+ "adapters/HexRealClosureTheory/TowerModel.lean": "70d0e57e8ecc78eb9b7675d875157462d27cf9494d49d72bba019eaa6dd1d788",
+ "conformance-fixtures/HexRCF/enumerated-source.json": "d1f70734b5c8d5c7f768b4d2c3f5359d8e1cc44105885e7f8af597102c8b5c98",
+ "conformance-fixtures/HexRCF/source-identity.json": "93540b60174e0d8bd85ca80d99c6cbdc427815f341a12a6e38f4b38613073f53",
+ "conformance/HexRCF/CellFinishCases.lean": "619208fd6528c4f12d4e12bc4ee6fd4016ab0948db16a61237a2aefbcd523a7c",
+ "conformance/HexRCF/CellFinishProofs.lean": "fd232e3b4a64f444d834ae244a110ad0910aa35c4773a90b6a3b26a48693e22c",
+ "conformance/HexRCF/CellQuoteStageProofs.lean": "a14f3f20e1add07f569ab222994995c409552aededef738972a70c864b94b919",
+ "conformance/HexRCF/CellQuoteStages.lean": "e4593f2c8169af00398ff608dd53cbbfbe6b8408ddbdd07de6f64f59acf8a25f",
+ "conformance/HexRCF/CellSourceProofs.lean": "cea22d1a532dc4415130ff1c9c20f43707ab9696c7df53c858bdfa41ad76f018",
+ "conformance/HexRCF/CellSourceQuote.lean": "bea057fe5c9470d701e02974fbd6a83e945bbaba1225ca294830f54ef762f504",
+ "conformance/HexRCF/DependentQuote.lean": "0df154544a17857334480e7c577ecbcf1afe04165fa2da1a5a6407bf41e85518",
+ "conformance/HexRCF/DependentQuoteData.lean": "ed254475e78fa6edb27d4e55222a598b07b7357154ea0495d6195f2f1d39ee46",
+ "conformance/HexRCF/DependentQuoteProofs.lean": "5875aa9748f50340668e58aea97b196d3353313352fb8c819ae5ee3542556980",
+ "conformance/HexRCF/DependentScalarProofs.lean": "9fe3f3871f929e28355985c574c0b8c742be062ae5f19033d7d8bf9e67cd88d8",
+ "conformance/HexRCF/DependentScalarQuote.lean": "e20dd7346c337dd17126c394965f268e568706730f475844d7c0907051224933",
+ "conformance/HexRCF/EnumeratedSource/Cubic.lean": "011464c56dc3ffc5a6bd1e62dc9ff8b35ac6d0e621beceb0336b69d8f626b78f",
+ "conformance/HexRCF/EnumeratedSource/CubicData0.lean": "79b971cb2816d7ee980c595199eedbfddfd7cdb62ea12bc71dfcb24d304f69da",
+ "conformance/HexRCF/EnumeratedSource/Inputs.lean": "23ae13a33e132ee7221c5fa353e71073fc05bd660dfc3ecf6620584b62b40306",
+ "conformance/HexRCF/EnumeratedSource/Negative.lean": "261fcd979ff77c772a28ecc89776b5771cec920fc4e58a0dfe2886aee43a58d7",
+ "conformance/HexRCF/EnumeratedSource/NegativeData0.lean": "c0700606f805664f89dd0106dfb5aebb5ab18949adbb30e5b71ffeb20bb4fdaf",
+ "conformance/HexRCF/EnumeratedSource/Positive.lean": "1382c958e53cdb8a04afd1e6d6f173fe697ba15a3321bf29c3e03059923c7181",
+ "conformance/HexRCF/EnumeratedSource/PositiveData0.lean": "41674140d15cf0136ca29b627f667b952355916b269ff7d2c14247ba2d21b3b1",
+ "conformance/HexRCF/EnumeratedSource/Proofs.lean": "3c08b8018b68469d3c6e7940f730d6b8fadbf6175df2e6f5017ed4fc24d50d5b",
+ "conformance/HexRCF/EnumeratedSource/Quote.lean": "8987d21be058f777f0ba875e917fcda77892bced1029616804fabd57f4eb41d8",
+ "conformance/HexRCF/FrozenSignatureConformance.lean": "8e7d432aecb87fb89bb188e4c579e86fb5c3348c5430f1e2b1a00f1f820a940e",
+ "conformance/HexRCF/FrozenSignatureProofs.lean": "55de6da9b0b3dc2d1e384d6c838d13294287c44060afb8e70aa2a0c8e01a81cb",
+ "conformance/HexRCF/ProofFunctionPublic.lean": "f928c9f0dd0a704d34a516b6282cfa6a7a4eb6c112d49689c450647a44370a6b",
+ "conformance/HexRCF/PublicSignPacket.lean": "c32d73c5634376907b965e1ea6cf69352fdda1f1945ce2f34a378cc217778102",
+ "conformance/HexRCF/PublicSignPacketControls.lean": "b4f98bd8ef190a361dd7752d4d5ece0cfbd862ff4face5a06dfabecf87096028",
+ "conformance/HexRCF/PublicSignPacketProofs.lean": "442f6d3e04a36db25611f0396103a1eee5ee411c40e8f3cc93df1acf7898bbbb",
+ "conformance/HexRCF/PublicSignPacketValues.lean": "72705dba30f04f986188903fb49b983c6f0a664895116fca8bd8b6b46b6517e5",
+ "conformance/HexRCF/QuotientQuote.lean": "97b2cbc9abdb46db33a9a91328f331edf8dea055cc244489158121cde8dc1903",
+ "conformance/HexRCF/QuotientQuoteData.lean": "ec26777d655a7898d7f7922fcea8f426a3f8c77a53000b69b6fe1755a0348870",
+ "conformance/HexRCF/QuotientQuoteProofs.lean": "f1d95accf6caed1c7354408b3a1a0b29493a526e82036390e39102ebe80c6752",
+ "conformance/HexRCF/QuotientQuotePublic.lean": "a3bd9a082df14a0ac93ba3798e13c6ebbf9dff98d7613264713aa281a5a18bea",
+ "conformance/HexRCF/RationalQuoteConformance.lean": "f03844d4a44a5c61b702ed0b1697619da9b20f4ac42122b9d1a6d3fa4a2de9ac",
+ "conformance/HexRCF/RecursiveScalarQuote.lean": "83ba1f3ed63afdbb148f171736a0aacebc7eef4ae3bf32dca29811515c3f051b",
+ "conformance/HexRCF/ReplayBoundary.lean": "bbc09553d62198a18e897981d5f443c81f09dba8d371d2cdaeaa846d22cbc2f8",
+ "conformance/HexRCF/ReplayBoundaryProofs.lean": "d755462a7344dc9f5304fba255bcefb42188c1de5a51d92d8567a27f22482dc2",
+ "conformance/HexRCF/ReplayHelperProofs.lean": "6dd68829399ec8908a877a3f7705cc9321e49b9581d0d577d114950242e43a57",
+ "conformance/HexRCF/ReplayHelpers.lean": "4501fa39e52a8a2bb52fdd7b183c16801090dd026304105afb4342a1c441c2a3",
+ "conformance/HexRCF/RootContextConformance.lean": "0c52084609ec3de8afd51330a7d2cc97f7bae1d8b2bbc421138783940fc7db37",
+ "conformance/HexRCF/RootContextProofs.lean": "b4c2e3ce686ce8bc60bfdafe2be2f566c6de46758f4827d307f3d5592b59d2e9",
+ "conformance/HexRCF/RootHeaderBudget.lean": "db30b6b7781fabd238ea2c934477e5ae281cc6cd905f11848ce46eb66ef45fe0",
+ "conformance/HexRCF/RootHeaderControls.lean": "aca063af3bfe475166aef92193f162c25a0e53eea094087cf334406a3d513157",
+ "conformance/HexRCF/RootHeaderPacket.lean": "dcd8e63c1d656fc800690b35554a0f835a1ee0bb96312215f8c12348d8a0e79a",
+ "conformance/HexRCF/RootHeaderProofs.lean": "e6630f0464fd0096b9af74b4640d2abc514a62c0b0fc706b4a2e74c9602eeb8c",
+ "conformance/HexRCF/RootHeaderValues.lean": "de9a8fc7c2e9371cbd3324eb700180411e49865dbc6535a74d2c882f74e38e13",
+ "conformance/HexRCF/RootPrepareControls.lean": "b36af8efd1e12227188b6fb7bde258e80d5c1c874338a324cb53c5ccc6c1330f",
+ "conformance/HexRCF/RootPreparePacket.lean": "86185bcc5fdddb1f700d869a115a91034954714f69a83171fd0e96f601e76fe3",
+ "conformance/HexRCF/RootPrepareProofs.lean": "4a5bc6655576a6592fcd5cd801bcfebd425243b1bb6cb39b0bb46d500a3938be",
+ "conformance/HexRCF/RootPreparePublic.lean": "a9e09cbe8d1287b97dde71ad1c6dbe149cfbacb6f81f41a8493ee802416d0805",
+ "conformance/HexRCF/RootQuoteCases.lean": "602d15ef501e969183bffbda7fb3c0f00a174ba5c2dbc35370ee7fce896944dd",
+ "conformance/HexRCF/RootQuoteConformance.lean": "f6a652a243ba62cffc671d1365c6ab47b6618179acb172019ec5609ea0324d3c",
+ "conformance/HexRCF/RootQuoteData.lean": "faa259d129d5c65a063c7143e45d5d9d19573ed49862aa5ecb3978ff389cb514",
+ "conformance/HexRCF/RootQuoteSource.lean": "aca1654efc1a452aca8ef573bb8ea3a435a4e1e18a4dca854d9bcc8e350d511d",
+ "conformance/HexRCF/RootTableQuote/Conformance.lean": "ec5bd136df58cc24a40ca989e3d33e55923082aed7591b234f55c70c013c74ad",
+ "conformance/HexRCF/RowPacketControls.lean": "ab69c57b66fe8129be5f07e5e5f42b7b35d60a23b305ec224d2d7dca28ac7c82",
+ "conformance/HexRCF/RowQuoteCases.lean": "8d2ebddc05d5f0d08b62b50d3498b34b47ab0b3accc4d0a572e621fd83d606d4",
+ "conformance/HexRCF/RowQuoteData.lean": "ce60cb18f548f55e929d4803c7ed824ad0a7621fd4abda09a191f76393fabf0c",
+ "conformance/HexRCF/RowQuoteDepth.lean": "6ada3c44bea055425d223dc57eafb4f0c88349713d815ded4beec9720f7802ad",
+ "conformance/HexRCF/RowQuoteProofs.lean": "317d4f981f32bb28666fcabc6248f4a57fe67c95a7fe431f7993aeacfa377ed3",
+ "conformance/HexRCF/SelectedRoot/KernelCheck.lean": "026cbaa5d364fc099d2d2236e50346e5373632a74c94c24daa35f23b943120b8",
+ "conformance/HexRCF/SharedQuoteCallbacks.lean": "6132cc3722af3cf251d11c857a572f09128d3614d931724965cbcf488dc4db6d",
+ "conformance/HexRCF/SignPacketProofs.lean": "3980cad31637f5798b2c351e1efc2a29b946de1d90e06fb11acd85e2a5c46321",
+ "conformance/HexRCF/SignPacketQuote.lean": "fcda11e6c75353d4519c4eb0e9c302b84d7e41030316c99fcacb885dabf97545",
+ "conformance/HexRCF/SignatureQuoteConformance.lean": "26f16c37cb9e0d5c09a082787f4a66673437adbf998023fd5e9625db16ff5d3f",
+ "conformance/HexRCF/SourceBuild.lean": "c12b24a04234a45da0f4bf3be83bee517ec9ccff2451e804d258bf9bcab2ba5e",
+ "conformance/HexRCF/SourceIdentityControls.lean": "c655486606139658d73e5b4d394228c3632596fec366e3b410ea9deb5b085553",
+ "conformance/HexRCF/SourceIdentityEmit.lean": "aa12f1517efc675698c0795c5a463a77d7a3466bcc146d4981d82e913059ed99",
+ "conformance/HexRCF/SourceIdentityLiterals.lean": "61ee2ce703d4965b00e1e20cc62288a0bde4e839d68ca09e1b66281f4a3e48d0",
+ "conformance/HexRCF/SourceIdentityPacket.lean": "614b3132274de5bebebeecb09cf479ac68723f1518e1f52912543a812985a4a9",
+ "conformance/HexRCF/SourceIdentityProofs.lean": "c449238d5f915dbe1f337688bc4f7357f3a93e31ad79eaa9e8e159c280749173",
+ "conformance/HexRCF/SourceSelectionCases.lean": "368ded3f07bb4be269f26a2fd2b7044904ea16d1dd1cba41d8bccb373d004005",
+ "conformance/HexRCF/TreeQuote.lean": "049065aa64bb13432b1d7183759979d28eebba98d18b6f54ab849e5953ce92c1",
+ "conformance/HexRCF/TreeQuoteData.lean": "c595c2278d2997483b755aa585da874c27eed40e4e1a8106d7f553e4f574776b",
+ "conformance/HexRCF/TreeQuoteProofs.lean": "f9a40248237480f8972df62dff548ef0599205b76014e070866e72586f161933",
+ "conformance/HexRCF/TreeQuotePublic.lean": "adc6dc6871208f31970cf5ae0c2472fd325a72e1df8114a6e8178ef8b2c71570",
+ "experiments/KernelReplay/AxiomClosure.lean": "f49377265f05f52b633b10a59255a03731e08d022cc54763de9851c5b5325034",
+ "lake-manifest.json": "fd2dc4df30cd44e4d30568489d616e7bcc8a78747500139134be56f35ae746a4",
+ "lakefile.lean": "3b0745b7c0219779bd8f59538df6215a865209b97b4f95096873b07affe7848b",
+ "lean-toolchain": "bc84812c94489d1e3e191baa1dc10d5eb684382d7fe9d2a5ab085e72c1c67e47",
+ "libraries.yml": "14e3dd1c01bb0c369b2216e2733378d61172040fd9f69dd0354d4e1267d9c5c1",
+ "scripts/bench/proof_only_runtime_exemptions/lakefile-rcf-source-build-fea47caa-1ab4e88c.json": "38fcff53934dab8ff78146cc782b039265da3c6684638a5b00ab725d5a2c8e01",
+ "scripts/rcf/selected_literals.py": "31ff385f0949fb1ea709b5ba15d60e83b170117cd81346ffbd797f528c701f0f",
+ "scripts/rcf/source_identity_literals.py": "ea5d7df949871c4975367a759b9632d033f3a240523c2c917c9141220ffdfd78"
+ }
+}
diff --git a/reports/data/hexrcf-enumerated-source/source-build-lines.log.gz b/reports/data/hexrcf-enumerated-source/source-build-lines.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-enumerated-source/source-build-lines.log.gz differ
diff --git a/reports/data/hexrcf-enumerated-source/source-build-literals.log.gz b/reports/data/hexrcf-enumerated-source/source-build-literals.log.gz
new file mode 100644
index 0000000000..58585d0049
Binary files /dev/null and b/reports/data/hexrcf-enumerated-source/source-build-literals.log.gz differ
diff --git a/reports/data/hexrcf-enumerated-source/source-build-manual-layout.patch.gz b/reports/data/hexrcf-enumerated-source/source-build-manual-layout.patch.gz
new file mode 100644
index 0000000000..96716e3952
Binary files /dev/null and b/reports/data/hexrcf-enumerated-source/source-build-manual-layout.patch.gz differ
diff --git a/reports/data/hexrcf-enumerated-source/source-build-metadata-admissions.log.gz b/reports/data/hexrcf-enumerated-source/source-build-metadata-admissions.log.gz
new file mode 100644
index 0000000000..bd2ec29cdf
Binary files /dev/null and b/reports/data/hexrcf-enumerated-source/source-build-metadata-admissions.log.gz differ
diff --git a/reports/data/hexrcf-enumerated-source/source-build-metadata-copyright.log.gz b/reports/data/hexrcf-enumerated-source/source-build-metadata-copyright.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-enumerated-source/source-build-metadata-copyright.log.gz differ
diff --git a/reports/data/hexrcf-enumerated-source/source-build-metadata-dag.log.gz b/reports/data/hexrcf-enumerated-source/source-build-metadata-dag.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-enumerated-source/source-build-metadata-dag.log.gz differ
diff --git a/reports/data/hexrcf-enumerated-source/source-build-metadata-diff.log.gz b/reports/data/hexrcf-enumerated-source/source-build-metadata-diff.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-enumerated-source/source-build-metadata-diff.log.gz differ
diff --git a/reports/data/hexrcf-enumerated-source/source-build-metadata-freshness.log.gz b/reports/data/hexrcf-enumerated-source/source-build-metadata-freshness.log.gz
new file mode 100644
index 0000000000..44c03f6508
Binary files /dev/null and b/reports/data/hexrcf-enumerated-source/source-build-metadata-freshness.log.gz differ
diff --git a/reports/data/hexrcf-enumerated-source/source-build-metadata-lines.log.gz b/reports/data/hexrcf-enumerated-source/source-build-metadata-lines.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-enumerated-source/source-build-metadata-lines.log.gz differ
diff --git a/reports/data/hexrcf-enumerated-source/source-build-metadata-literals.log.gz b/reports/data/hexrcf-enumerated-source/source-build-metadata-literals.log.gz
new file mode 100644
index 0000000000..251ef5b170
Binary files /dev/null and b/reports/data/hexrcf-enumerated-source/source-build-metadata-literals.log.gz differ
diff --git a/reports/data/hexrcf-enumerated-source/source-build-metadata-manifest.log.gz b/reports/data/hexrcf-enumerated-source/source-build-metadata-manifest.log.gz
new file mode 100644
index 0000000000..1e2a3e818a
Binary files /dev/null and b/reports/data/hexrcf-enumerated-source/source-build-metadata-manifest.log.gz differ
diff --git a/reports/data/hexrcf-enumerated-source/source-build-metadata-relative.log.gz b/reports/data/hexrcf-enumerated-source/source-build-metadata-relative.log.gz
new file mode 100644
index 0000000000..23acbf7a1b
Binary files /dev/null and b/reports/data/hexrcf-enumerated-source/source-build-metadata-relative.log.gz differ
diff --git a/reports/data/hexrcf-enumerated-source/source-build-metadata.json b/reports/data/hexrcf-enumerated-source/source-build-metadata.json
new file mode 100644
index 0000000000..a0584417ac
--- /dev/null
+++ b/reports/data/hexrcf-enumerated-source/source-build-metadata.json
@@ -0,0 +1,88 @@
+[
+ {
+ "name": "copyright",
+ "argv": [
+ "python3",
+ "scripts/check_copyright_headers.py"
+ ],
+ "exit_code": 0,
+ "log": "source-build-metadata-copyright.log"
+ },
+ {
+ "name": "lines",
+ "argv": [
+ "python3",
+ "scripts/check_file_line_counts.py",
+ "--base",
+ "origin/main"
+ ],
+ "exit_code": 0,
+ "log": "source-build-metadata-lines.log"
+ },
+ {
+ "name": "dag",
+ "argv": [
+ "python3",
+ "scripts/check_dag.py"
+ ],
+ "exit_code": 0,
+ "log": "source-build-metadata-dag.log"
+ },
+ {
+ "name": "admissions",
+ "argv": [
+ "python3",
+ "scripts/ci/check_named_admissions.py"
+ ],
+ "exit_code": 0,
+ "log": "source-build-metadata-admissions.log"
+ },
+ {
+ "name": "manifest",
+ "argv": [
+ "python3",
+ "scripts/release/check_released_manifest.py"
+ ],
+ "exit_code": 0,
+ "log": "source-build-metadata-manifest.log"
+ },
+ {
+ "name": "freshness",
+ "argv": [
+ "python3",
+ "scripts/bench/check_factor_sweep_freshness.py"
+ ],
+ "exit_code": 0,
+ "log": "source-build-metadata-freshness.log"
+ },
+ {
+ "name": "literals",
+ "argv": [
+ "python3",
+ "scripts/rcf/selected_literals.py",
+ "--check"
+ ],
+ "exit_code": 0,
+ "log": "source-build-metadata-literals.log"
+ },
+ {
+ "name": "diff",
+ "argv": [
+ "git",
+ "diff",
+ "--cached",
+ "--check"
+ ],
+ "exit_code": 0,
+ "log": "source-build-metadata-diff.log"
+ },
+ {
+ "name": "relative",
+ "argv": [
+ "python3",
+ "staged-local-link-check"
+ ],
+ "exit_code": 0,
+ "log": "source-build-metadata-relative.log"
+ }
+]
diff --git a/reports/data/hexrcf-enumerated-source/source-build-progress-1.log.gz b/reports/data/hexrcf-enumerated-source/source-build-progress-1.log.gz
new file mode 100644
index 0000000000..13a643b5da
Binary files /dev/null and b/reports/data/hexrcf-enumerated-source/source-build-progress-1.log.gz differ
diff --git a/reports/data/hexrcf-enumerated-source/source-build-progress-2.log.gz b/reports/data/hexrcf-enumerated-source/source-build-progress-2.log.gz
new file mode 100644
index 0000000000..d155056f5b
Binary files /dev/null and b/reports/data/hexrcf-enumerated-source/source-build-progress-2.log.gz differ
diff --git a/reports/data/hexrcf-enumerated-source/source-build-progress-controls-1.log.gz b/reports/data/hexrcf-enumerated-source/source-build-progress-controls-1.log.gz
new file mode 100644
index 0000000000..82e1059815
Binary files /dev/null and b/reports/data/hexrcf-enumerated-source/source-build-progress-controls-1.log.gz differ
diff --git a/reports/data/hexrcf-enumerated-source/source-build-quote-1.log.gz b/reports/data/hexrcf-enumerated-source/source-build-quote-1.log.gz
new file mode 100644
index 0000000000..3b994d9ec6
Binary files /dev/null and b/reports/data/hexrcf-enumerated-source/source-build-quote-1.log.gz differ
diff --git a/reports/data/hexrcf-enumerated-source/source-build-quote-2.log.gz b/reports/data/hexrcf-enumerated-source/source-build-quote-2.log.gz
new file mode 100644
index 0000000000..58ec1abd69
Binary files /dev/null and b/reports/data/hexrcf-enumerated-source/source-build-quote-2.log.gz differ
diff --git a/reports/data/hexrcf-enumerated-source/source-build-quote-3.log.gz b/reports/data/hexrcf-enumerated-source/source-build-quote-3.log.gz
new file mode 100644
index 0000000000..deafb4cfd9
Binary files /dev/null and b/reports/data/hexrcf-enumerated-source/source-build-quote-3.log.gz differ
diff --git a/reports/data/hexrcf-enumerated-source/source-build-render-1.log.gz b/reports/data/hexrcf-enumerated-source/source-build-render-1.log.gz
new file mode 100644
index 0000000000..28bc69ab3e
Binary files /dev/null and b/reports/data/hexrcf-enumerated-source/source-build-render-1.log.gz differ
diff --git a/reports/data/hexrcf-enumerated-source/source-build-render-2.log.gz b/reports/data/hexrcf-enumerated-source/source-build-render-2.log.gz
new file mode 100644
index 0000000000..6998d5cfad
Binary files /dev/null and b/reports/data/hexrcf-enumerated-source/source-build-render-2.log.gz differ
diff --git a/reports/data/hexrcf-enumerated-source/source-build-viewed.json b/reports/data/hexrcf-enumerated-source/source-build-viewed.json
new file mode 100644
index 0000000000..3d2b938002
--- /dev/null
+++ b/reports/data/hexrcf-enumerated-source/source-build-viewed.json
@@ -0,0 +1,13 @@
+{
+ "viewed": [
+ "source-build-final-desktop-api.png",
+ "source-build-final-desktop-apicode.png",
+ "source-build-final-desktop-source.png",
+ "source-build-final-narrow-api.png",
+ "source-build-final-narrow-apicode.png",
+ "source-build-final-narrow-source.png"
+ ],
+ "all_changed_targets_readable": true,
+ "scope": "All six final captures actually viewed; new API prose, full code example and proof-cost/scope paragraphs readable at1440px/390px. Existing page-wide horizontal scroll is outside these changed targets; local overflow zero.",
+ "failed_capture_viewed": "attempt1 narrow apicode, clippedcode confirmed; failed six captures/metrics retained separately."
+}
diff --git a/reports/data/hexrcf-enumerated-source/verify.py b/reports/data/hexrcf-enumerated-source/verify.py
new file mode 100644
index 0000000000..a2ee5dbbef
--- /dev/null
+++ b/reports/data/hexrcf-enumerated-source/verify.py
@@ -0,0 +1,90 @@
+#!/usr/bin/env python3
+"""Verify source-bound enumerated-source production and independent replay evidence."""
+import argparse
+import gzip
+import hashlib
+import json
+from pathlib import Path
+import subprocess
+import sys
+
+parser = argparse.ArgumentParser(description=__doc__)
+parser.add_argument('--check-head', action='store_true')
+args = parser.parse_args()
+root = Path(__file__).resolve().parent
+repo = root.parents[2]
+git = lambda *a: subprocess.check_output(['git', *a], cwd=repo)
+sha = lambda raw: hashlib.sha256(raw).hexdigest()
+record = json.loads((root / 'context.json').read_text())
+parent = root.parent / 'hexrcf-admission'
+subprocess.run([sys.executable, str(parent / 'verify.py')], check=True)
+assert sha((parent / 'context.json').read_bytes()) == record['parent_context_sha256']
+for name, digest in record['sources'].items():
+ assert sha(git('show', record['source_commit'] + ':' + name)) == digest, name
+ if args.check_head:
+ assert sha((repo / name).read_bytes()) == digest, name
+for item in record['artifacts']:
+ data = (root / item['path']).read_bytes()
+ assert len(data) == item['bytes'] and sha(data) == item['sha256'], item['path']
+
+def log(name):
+ return gzip.decompress((root / (name + '.gz')).read_bytes()).decode()
+
+for name in ['source-build-controls-3.log', 'source-build-inputs-2.log',
+ 'source-build-quote-3.log', 'source-build-audit-2.log',
+ 'source-build-integration-3.log', 'source-build-render-2.log']:
+ assert 'Build completed successfully' in log(name), name
+ assert 'code=exited, status=0/SUCCESS' in log(name), name
+quoted = log('source-build-quote-3.log')
+for name, count in zip(['positive', 'negative', 'cubic'], record['proof_nodes']):
+ assert f'EnumeratedSourceQuote.{name}: proofNodes={count}' in quoted
+assert '1488 theorems/865 definitions; nonempty traces=2323' in log('source-build-audit-2.log')
+assert '1488 theorems/865 definitions; nonempty traces=2323' in log('source-build-integration-3.log')
+assert 'proofNodes=8651669' in log('source-build-integration-3.log')
+assert 'limit 1000000, consumed 1000000, requested 1' in log('source-build-quote-1.log')
+invocation = json.loads((root / 'source-build-integration-invocation.json').read_text())
+assert invocation['targets'] == 54
+for target in ['HexManual', 'HexRCFRealCoefficients', 'HexRCF.SourceBuild',
+ 'HexRCF.EnumeratedSource.Proofs', 'HexRCF.CellSourceProofs',
+ 'HexRCF.HandlerTests.Async', 'HexRCF.SourceIdentityEmit']:
+ assert target in invocation['argv'], target
+source = lambda name: git('show', record['source_commit'] + ':' + name).decode()
+previous = lambda name: git('show', record['base_commit'] + ':' + name).decode()
+guard = source('conformance/HexRCF/SelectedRoot/KernelCheck.lean')
+old = previous('conformance/HexRCF/SelectedRoot/KernelCheck.lean')
+guard = guard.replace('import HexRCF.RealCoefficients.SourceBuild\n', '')
+guard = guard.replace('``Descriptor.prepareQueries,\n'
+ ' -- Literal names keep native adapter production out of proof-only imports.\n'
+ ' `Hex.RCF.RealCoefficients.SourceBuild.build,\n'
+ ' `Hex.RCF.RealCoefficients.SourceBuild.select,\n'
+ ' `Hex.RCF.RealCoefficients.ScalarPacket.buildParts]', '``Descriptor.prepareQueries]')
+assert guard == old, 'The shared producer guard has changes beyond the three additions'
+packet = source('adapters/HexRCF/RealCoefficients/ScalarPacket.lean')
+old = previous('adapters/HexRCF/RealCoefficients/ScalarPacket.lean')
+marker = '/-- Read exactly the supplied polynomial, sign and graph.'
+assert packet[packet.index(marker):] == old[old.index(marker):], 'Scalar replay changed'
+assert source('HexRCF/Tactic.lean') == previous('HexRCF/Tactic.lean')
+metadata = json.loads((root / 'source-build-metadata.json').read_text())
+assert len(metadata) == 9 and all(x['exit_code'] == 0 for x in metadata)
+progress = log('source-build-progress-controls-1.log')
+for name in ['buildParts_success', 'build_success']:
+ assert f'actual scalar production progress Hex.RCF.RealCoefficients.ScalarPacket.{name}' in progress
+integration_sources = json.loads((root / 'source-build-integration-sources.json').read_text())['sources']
+assert integration_sources == record['integration_sources']
+changed = [name for name, digest in integration_sources.items() if record['sources'][name] != digest]
+assert changed == record['manual_changes'] == ['HexManual/Chapters/HexRCF/AlgebraicCells.lean']
+before = (root / 'failed-browser-attempt-1/AlgebraicCells.lean.before-layout.txt').read_bytes()
+assert sha(before) == integration_sources[changed[0]]
+assert 'Id.run do' in source(changed[0]) and 'SourceBuild.build' in source(changed[0])
+inspections = json.loads((root / 'source-build-final-inspection.json').read_text())
+assert {(x['label'], x['kind']) for x in inspections} == {
+ (width, kind) for width in ['desktop', 'narrow'] for kind in ['api', 'apicode', 'source']}
+assert all(x['descendantOverflow'] <= 1 and x['targetScrollWidth'] <= x['targetWidth'] + 1
+ for x in inspections)
+viewed = json.loads((root / 'source-build-viewed.json').read_text())
+assert len(viewed['viewed']) == 6 and viewed['all_changed_targets_readable']
+policy = (root / 'run-bounded.txt').read_text()
+assert all(text in policy for text in ['MemoryMax=32G', 'MemorySwapMax=0', 'LEAN_NUM_THREADS=2'])
+print(f"Verified enumerated-source evidence: {len(record['sources'])} source bindings, "
+ f"{len(record['artifacts'])} artifacts, three independent identities, "
+ "1488/865/2323 fresh audit, 54 targets and six inspected captures; full #10358 incomplete")
diff --git a/reports/data/hexrcf-joint-source-assembly/README.md b/reports/data/hexrcf-joint-source-assembly/README.md
new file mode 100644
index 0000000000..8cf08c6c1b
--- /dev/null
+++ b/reports/data/hexrcf-joint-source-assembly/README.md
@@ -0,0 +1,7 @@
+# Source and complete-goal quotation in one request
+
+See [the report](../../hexrcf-joint-source-assembly.md). Run `python3 reports/data/hexrcf-joint-source-assembly/verify.py --check-head` for the current source binding, or omit the flag for the immutable implementation.
+
+The unchanged original existential now obtains its coefficient identity from descriptor/equation/window replay inside its own cumulative quotation transaction. The fresh importing audit rejects both older imported source identities and all previously forbidden fixtures/producers. No owner proof or native search implementation is copied. The compact source quotation API remains compatible.
+
+Failed elaboration snapshots and logs are retained. The first body audit completed the semantic/producer/body checks but rejected the old final inventory; its actual 1191/202/1351 inventory was then pinned without removing any guard. Final integration and the complete manual build/render, six visually inspected viewport captures and all repository checks are separate retained artifacts. Quote-three input hashes bind the original successful full-goal build; final hashes include the subsequently updated audit inventory and manual. No later source is claimed as that initial quote build. All builds are serial under the hard aggregate 32 GiB/no-swap cap and two Lean threads. These are build observations, not a new compiled timing study or full conformance sweep. Earlier records retain their original pins.
diff --git a/reports/data/hexrcf-joint-source-assembly/browser.mjs.txt b/reports/data/hexrcf-joint-source-assembly/browser.mjs.txt
new file mode 100644
index 0000000000..7f1f9c2224
--- /dev/null
+++ b/reports/data/hexrcf-joint-source-assembly/browser.mjs.txt
@@ -0,0 +1,51 @@
+import fs from 'node:fs';
+import {spawn} from 'node:child_process';
+const root=process.argv[2];
+if(!root) throw new Error('Pass the scratch render directory');
+const profile=root+'/joint-source-assembly-profile';
+fs.mkdirSync(profile,{recursive:true});
+fs.rmSync(profile+'/DevToolsActivePort',{force:true});
+const chrome=spawn(process.env.CHROME_BIN || '/home/kim/.cache/ms-playwright/chromium-1243/chrome-linux64/chrome',[
+ '--headless=new','--no-sandbox','--disable-gpu','--allow-file-access-from-files',
+ '--remote-debugging-port=0','--remote-allow-origins=*','--user-data-dir='+profile,'about:blank'],
+ {env:{...process.env,LD_LIBRARY_PATH:fs.readFileSync(root+'/browser-lib-paths.txt','utf8').trim()},stdio:'ignore'});
+let socket;
+try {
+ const portFile=profile+'/DevToolsActivePort';
+ for(let i=0;!fs.existsSync(portFile);i++) {
+ if(i>200||chrome.exitCode!==null) throw new Error('Chrome did not expose CDP');
+ await new Promise(r=>setTimeout(r,100));
+ }
+ const port=fs.readFileSync(portFile,'utf8').split('\n')[0];
+ const tabs=await (await fetch('http://127.0.0.1:'+port+'/json')).json();
+ socket=new WebSocket(tabs.find(t=>t.type==='page').webSocketDebuggerUrl);
+ await new Promise((r,j)=>{socket.onopen=r;socket.onerror=j});
+ let sequence=0;const pending=new Map();let loaded;
+ socket.onmessage=e=>{
+ const msg=JSON.parse(e.data);
+ if(msg.id){const p=pending.get(msg.id);pending.delete(msg.id);msg.error?p.reject(msg.error):p.resolve(msg.result);}
+ if(msg.method==='Page.loadEventFired'&&loaded){loaded();loaded=undefined;}
+ };
+ const call=(method,params={})=>new Promise((resolve,reject)=>{const id=++sequence;pending.set(id,{resolve,reject});socket.send(JSON.stringify({id,method,params}));});
+ await call('Page.enable');
+ const load=new Promise(r=>loaded=r);
+ await call('Page.navigate',{url:'file:///home/kim/.codex/tasks/hex-10358/manual-render/full-html/html-single/index.html'});
+ await load;
+ const evaluate=async expression=>{const r=await call('Runtime.evaluate',{expression,returnByValue:true});if(r.exceptionDetails)throw new Error(JSON.stringify(r.exceptionDetails));return r.result.value;};
+ const metadata=[];
+ for(const [label,width] of [['desktop',1440],['narrow',390]]) {
+ await call('Emulation.setDeviceMetricsOverride',{width,height:width===390?1800:1000,deviceScaleFactor:1,mobile:false});
+ for(const [kind,phrase] of [["source", "The algebraic source regression independently reads"], ["budget", "The shared reification and quotation budget records 9,330,067"], ["audit", "Its importing proof audit checks 1,191 theorem bodies"]] ) {
+ const exact=await evaluate(`(() => {const p=Array.from(document.querySelectorAll('p')).find(e=>e.textContent.replace(/\\s+/g,' ').includes(${JSON.stringify(phrase)}));if(!p)throw new Error('missing paragraph');const target=['sourcecode','apicode'].includes(${JSON.stringify(kind)})?p.nextElementSibling:p;if(['sourcecode','apicode'].includes(${JSON.stringify(kind)})&&!target.matches('.hl.lean.block, pre, div:has(code)'))throw new Error('target is not a Lean code block');target.scrollIntoView({block:${JSON.stringify('center')}});return {text:p.textContent,viewport:innerWidth,scrollY,paragraphWidth:p.getBoundingClientRect().width,scrollWidth:p.scrollWidth,targetTag:target.tagName,targetWidth:target.getBoundingClientRect().width,targetScrollWidth:target.scrollWidth,descendantOverflow:Math.max(0,...[target,...target.querySelectorAll('*')].map(e=>e.scrollWidth-e.clientWidth)),overflowElements:[target,...target.querySelectorAll('*')].filter(e=>e.scrollWidth-e.clientWidth>1).map(e=>({tag:e.tagName,classes:e.className,width:e.clientWidth,scroll:e.scrollWidth,text:e.textContent.slice(0,100)})).slice(0,8)};})()`);
+ if(!exact)throw new Error('missing visual target '+kind);
+ await evaluate('new Promise(resolve=>requestAnimationFrame(()=>requestAnimationFrame(resolve)))');
+ const shot=await call('Page.captureScreenshot',{format:'png'});
+ fs.writeFileSync(root+'/'+'joint-source-assembly-final-'+label+'-'+kind+'.png',Buffer.from(shot.data,'base64'));
+ metadata.push({label,kind,...exact});
+ }
+
+ }
+ fs.writeFileSync(root+'/joint-source-assembly-final-inspection.json',JSON.stringify(metadata,null,2));
+ if(metadata.some(e=>e.targetScrollWidth>e.targetWidth+1 || e.descendantOverflow>1)) throw new Error('Changed content overflows; retained captures and metrics identify the affected block.');
+ process.stdout.write('Saved joint-source-assembly desktop/narrow screenshots\n');
+} finally {if(socket)socket.close();chrome.kill('SIGTERM');}
diff --git a/reports/data/hexrcf-joint-source-assembly/context.json b/reports/data/hexrcf-joint-source-assembly/context.json
new file mode 100644
index 0000000000..3151994792
--- /dev/null
+++ b/reports/data/hexrcf-joint-source-assembly/context.json
@@ -0,0 +1,160 @@
+{
+ "source_commit": "edd8c096424c6da1ee4f1ca02f7ea82cad32c3cc",
+ "base_commit": "9f0de975fa704d3569f2321044230263b020cd26",
+ "parent_context_sha256": "696cbac6c1bfbf44e1ac2178e7ec278e1ad2bf65a03dc1e3adb53f82596da3c6",
+ "sources": {
+ ".github/workflows/ci.yml": "5db61a70eb52d7478994377179c1b35b360a794fcff4b1c257496b5a6394231c",
+ "AGENTS.md": "4e0a48cf49a61e56ed84c8b28e232b5bfad29f2da20571377692be6e1c316f30",
+ "HexManual/Chapters/HexRCF/AlgebraicCells.lean": "44bca34cb72a18124a48d33658007d0802f1400235fd5da4555ec7d488c7151d",
+ "HexManual/Chapters/HexRCF/RootQuote.lean": "2e0746d1a35c192d1127a0c9768470e6e36b14d9d96b5eebbb29c26a03c91e78",
+ "HexManual/Chapters/HexRCF/RootTableQuote.lean": "78d1be637a32593b03f000ab153c7fdf05a1b5332ea3efb9c186aacfd68f0ae5",
+ "HexRCF/HandlerTests/Admission.lean": "770518931dd3f7ab1934e327460b80607338207b17d97363b82c2a5c93669c36",
+ "HexRCF/README.md": "3830d758a8a75d59df1a6dd01f59204a86858b5eda3e43a78f9e9e9c2d769a8a",
+ "HexRCF/SPEC/hex-rcf.md": "df8c6bb2435a2794faa36bc77e41f4c936f06ae149f29c3e68fe0d79f4ebfafb",
+ "HexRCF/Tactic.lean": "26021113d121cfc9ab0d6e7ea7ce8d02eb6c4637c42bbdd2647ecd2d9291f3fb",
+ "HexRealClosure/Algebraic.lean": "d05f9fb72fe9544ae9ddc685dff17080f876aa4c99c70e8992d511e011f6a454",
+ "HexRealClosure/ContextData.lean": "ca29790752b8d25f10d03a9877690a5ff40f1fdf6815c96fe9693941206e662c",
+ "HexRealClosure/SignCodec.lean": "7126323c97b77204386795a0f252f1babfd0ed7f3dba7ee3927a99b9d5c1852a",
+ "HexRealClosure/SignFacts.lean": "9c22837e93e6f50cc96310163e352ac608fbcfbd6275edab33751da2fd84f47c",
+ "HexRealClosure/SignatureCodecTests.lean": "ffc72777523ac0e92b563481804bdfb581fb0173fe7a021009737d57959b4462",
+ "HexRealClosure/TowerContext.lean": "6ef8b87b2d81cb177505a4bbc88befa078b20578cedd49e836d850753c203ee3",
+ "HexSignDet/Codec/Coefficients.lean": "0fef85cb8c11fe614705ca230f437785c9c7c6b76d9362449f834bb25e82d3aa",
+ "HexSignDet/Codec/FiniteGraph.lean": "bb1e0611aa74d7c7b4a74f83f05e481ccd4584523e0aaeca7beba53c70a6895c",
+ "HexSignDet/Codec/FiniteLaws.lean": "a30dbc456d8613e247bfc691376206a7da405b8a3e08ef7a550c0b857a234ab8",
+ "HexSignDet/Codec/GraphLaws.lean": "292cebb2c9ea1131ddd0458de3997aac95cfc1422e99dbd8fb5e7f6d08fcdaa5",
+ "HexSignDet/Codec/Laws.lean": "7b7293bcd80b89c887e1227f7ac27f2f7a2ce936adca3b14818ec5c228c36740",
+ "HexSignDet/Codec/NodeLaws.lean": "77621bd2ab5c1d7c99d1a7355dd7418ed43a06c4ca5eb885bd37cc1ba6e394f2",
+ "HexSignDet/DagBounds.lean": "1ff482fbcb51846b61348d1708062647fb0f61bf2eb04184b86fa17d7bac33a7",
+ "HexSignDet/DagReplay.lean": "be3317f306194a18a314e9f8fca021eefda76ea17704c5ec89daeff9a2867f42",
+ "HexSignDet/DagSelectedSigns.lean": "3ffbfbe2cebf6ad7b5db0cf8b0a3c5a26142a46465d2577a08ddb292594eed26",
+ "HexSignDetTheory/RootList.lean": "aead98f0d004fb1407a437c0eacec5235287a8669e56a6856bad4e3d7ec3d088",
+ "HexSignDetTheory/ThomRoots.lean": "b37b36fec150e23165101ecf05b4105ba429c52050efb3452df496cecc0a456e",
+ "PLAN.md": "e94a60324486913b4a04650edd617c4ff8bef469dc7fd311adea8407c6662ea0",
+ "SPEC/real-closure-execution.md": "bc0948ad7de6969baaed89c0b3052cb0d21d64d634f8a336f9a7dde446b057f5",
+ "adapters/HexRCF/RealCoefficients.lean": "6b9f9a7eaa6e98e30a1faae38252d8616a15595f86347abee0aa54c8fb2f2161",
+ "adapters/HexRCF/RealCoefficients/CellOperations.lean": "3561cc80c7c866141f05a387ce1100ee0cadd98281a03395551cebcde5bd6e2a",
+ "adapters/HexRCF/RealCoefficients/CellQuote.lean": "c572911d7be36001e0f1885c3460f3eb19425d90e78345b1c46878ddf3e6c6ea",
+ "adapters/HexRCF/RealCoefficients/CellRead.lean": "65274f89c940bad74eab8c9075f9256c6ed3d8b90d3294aec4e85883e425fb10",
+ "adapters/HexRCF/RealCoefficients/RationalQuote.lean": "675e2ba065b696f257adefc07fe30ddb0190f321d86005444579ea5a0744bdf5",
+ "adapters/HexRCF/RealCoefficients/RealModel.lean": "712b4fd3edff8eaa6f93e501da5debf04529d1ea8c11a18389820f866d179c43",
+ "adapters/HexRCF/RealCoefficients/Reify.lean": "ea8474b9e253f93a1583064ca99ec0bf376dadf5457fd60b57e9e18460cf449c",
+ "adapters/HexRCF/RealCoefficients/RootBuild.lean": "be8e2b24aad8e67946afbe70d48a83ff2ca6db75cb62cca0185ec309f596994a",
+ "adapters/HexRCF/RealCoefficients/RootContext.lean": "792176eab63e5e62b759a10893569946ef6d019566b8116c85237b3e16fcdb86",
+ "adapters/HexRCF/RealCoefficients/RootHeader.lean": "681f2a964bc30f65a92a0fb1a58b4d4013eb396df37ca813962702065fb46261",
+ "adapters/HexRCF/RealCoefficients/RootPrepare.lean": "de72a8e3ac4adb13365801476467bf691e630d0952b018ccecd88846c3bdb025",
+ "adapters/HexRCF/RealCoefficients/RootQuote.lean": "89f3ad4b0c4a8ae058560201900877035d896427176b944b34acde9f9b23d7e8",
+ "adapters/HexRCF/RealCoefficients/RootReplay.lean": "35e5c09926534d79082443ffbaf1ccaa9bca6095f0250da4f0b45d23e185c023",
+ "adapters/HexRCF/RealCoefficients/RowPacketQuote.lean": "edbb3d23f72422f5a1dea163c283848ec285418b7bdb9eedba553b83066121af",
+ "adapters/HexRCF/RealCoefficients/RowQuote.lean": "3b7e7d2ebcbd53a6ea893bc8f4c884d767430f8b98a3f1ca770fe7c7b122f3c9",
+ "adapters/HexRCF/RealCoefficients/ScalarPacket.lean": "6b8353895cff48df759bb4fc8cb5cda767313974e0a57f1e59973249b6eefdca",
+ "adapters/HexRCF/RealCoefficients/ScalarQuote.lean": "fee2617a998f29d05c8959b484060ac1d719359c6d851a8ff6699fa9cb370acc",
+ "adapters/HexRCF/RealCoefficients/SignatureQuote.lean": "c3bb71b52c2a544b902bc256b3a162e1c3c4e7f94ae6b21808914e67109710eb",
+ "adapters/HexRCF/RealCoefficients/SourceBuild.lean": "eb66b3f56832e3fd6644a980fe3f13f62242dda88e84c6bf99dfc717c74290fe",
+ "adapters/HexRCF/RealCoefficients/SourceIdentity.lean": "d98ae0c746003be89edfc969e464383e6a6bda253e0dae8c290605e8b98ce3c3",
+ "adapters/HexRCF/RealCoefficients/SourceIdentityQuote.lean": "cdaf7b830ad50d9849a7f102641eb03313f84959c56c3ea4cd66a663894ca385",
+ "adapters/HexRealClosureTheory/Algebraic.lean": "2495153acbe4e468521913a2f5d6569831cd05f5ee48d5ddb26fc31a43438c7e",
+ "adapters/HexRealClosureTheory/SignFacts.lean": "c2b8cf96de0cccc2c0c3cbe83f0afd7c40ab9736b75f377ec5bfedc0907f34e3",
+ "adapters/HexRealClosureTheory/TowerModel.lean": "70d0e57e8ecc78eb9b7675d875157462d27cf9494d49d72bba019eaa6dd1d788",
+ "conformance-fixtures/HexRCF/bounded-source.json": "566c5f1f092abab73312bb630a02e24873e6723942d450320dae2b52aaa30a75",
+ "conformance-fixtures/HexRCF/enumerated-source.json": "d1f70734b5c8d5c7f768b4d2c3f5359d8e1cc44105885e7f8af597102c8b5c98",
+ "conformance-fixtures/HexRCF/source-identity.json": "93540b60174e0d8bd85ca80d99c6cbdc427815f341a12a6e38f4b38613073f53",
+ "conformance/HexRCF/BoundedSource.lean": "5c2166dd0977d3e27d3fefa89f9c0382e9dd7226bff629112cfd0e0faad1127b",
+ "conformance/HexRCF/BoundedSource/Cubic.lean": "da1c0e1b549fce22cb1f7ea7bb6888dff1d7b59c1219c5b580376bbb4a25ecde",
+ "conformance/HexRCF/BoundedSource/Inputs.lean": "7ffcd6d62f175f3027e2327fd4a86885e933e0715a85ab7afb9b112d76d49a39",
+ "conformance/HexRCF/BoundedSource/Negative.lean": "abb7ef67395b2b90f9e12f551bcc0d16146cca067bf3567707e924c2ecd2fb77",
+ "conformance/HexRCF/BoundedSource/Positive.lean": "d83184a9d54264ba7e1c138eb674db1d67df39681575fa91d96a4681af774321",
+ "conformance/HexRCF/BoundedSource/Proofs.lean": "7f9d47d59dd47aafa90a09d23a966efc0d2ca7fbfa3cdce5ae4771ae1da01a9f",
+ "conformance/HexRCF/BoundedSource/Quote.lean": "fa7ee7f5c8c8dcdd98bc8d56eaa697f1c9f5b443ebaab6de119f1d3c5cb887c9",
+ "conformance/HexRCF/CellFinishCases.lean": "619208fd6528c4f12d4e12bc4ee6fd4016ab0948db16a61237a2aefbcd523a7c",
+ "conformance/HexRCF/CellFinishProofs.lean": "fd232e3b4a64f444d834ae244a110ad0910aa35c4773a90b6a3b26a48693e22c",
+ "conformance/HexRCF/CellQuoteStageProofs.lean": "a14f3f20e1add07f569ab222994995c409552aededef738972a70c864b94b919",
+ "conformance/HexRCF/CellQuoteStages.lean": "e4593f2c8169af00398ff608dd53cbbfbe6b8408ddbdd07de6f64f59acf8a25f",
+ "conformance/HexRCF/CellSourceProofs.lean": "aa946fc87cf8ed336427ef644d6d0889750710d5331535d71f27a3270f539953",
+ "conformance/HexRCF/CellSourceQuote.lean": "bf26980ea3286785872338cba5f97413c31590053dc4445ad00d78c3e6fe1104",
+ "conformance/HexRCF/DependentQuote.lean": "0df154544a17857334480e7c577ecbcf1afe04165fa2da1a5a6407bf41e85518",
+ "conformance/HexRCF/DependentQuoteData.lean": "ed254475e78fa6edb27d4e55222a598b07b7357154ea0495d6195f2f1d39ee46",
+ "conformance/HexRCF/DependentQuoteProofs.lean": "5875aa9748f50340668e58aea97b196d3353313352fb8c819ae5ee3542556980",
+ "conformance/HexRCF/DependentScalarProofs.lean": "9fe3f3871f929e28355985c574c0b8c742be062ae5f19033d7d8bf9e67cd88d8",
+ "conformance/HexRCF/DependentScalarQuote.lean": "e20dd7346c337dd17126c394965f268e568706730f475844d7c0907051224933",
+ "conformance/HexRCF/EnumeratedSource/Cubic.lean": "011464c56dc3ffc5a6bd1e62dc9ff8b35ac6d0e621beceb0336b69d8f626b78f",
+ "conformance/HexRCF/EnumeratedSource/CubicData0.lean": "79b971cb2816d7ee980c595199eedbfddfd7cdb62ea12bc71dfcb24d304f69da",
+ "conformance/HexRCF/EnumeratedSource/Inputs.lean": "23ae13a33e132ee7221c5fa353e71073fc05bd660dfc3ecf6620584b62b40306",
+ "conformance/HexRCF/EnumeratedSource/Negative.lean": "261fcd979ff77c772a28ecc89776b5771cec920fc4e58a0dfe2886aee43a58d7",
+ "conformance/HexRCF/EnumeratedSource/NegativeData0.lean": "c0700606f805664f89dd0106dfb5aebb5ab18949adbb30e5b71ffeb20bb4fdaf",
+ "conformance/HexRCF/EnumeratedSource/Positive.lean": "1382c958e53cdb8a04afd1e6d6f173fe697ba15a3321bf29c3e03059923c7181",
+ "conformance/HexRCF/EnumeratedSource/PositiveData0.lean": "41674140d15cf0136ca29b627f667b952355916b269ff7d2c14247ba2d21b3b1",
+ "conformance/HexRCF/EnumeratedSource/Proofs.lean": "3c08b8018b68469d3c6e7940f730d6b8fadbf6175df2e6f5017ed4fc24d50d5b",
+ "conformance/HexRCF/EnumeratedSource/Quote.lean": "8987d21be058f777f0ba875e917fcda77892bced1029616804fabd57f4eb41d8",
+ "conformance/HexRCF/FrozenSignatureConformance.lean": "8e7d432aecb87fb89bb188e4c579e86fb5c3348c5430f1e2b1a00f1f820a940e",
+ "conformance/HexRCF/FrozenSignatureProofs.lean": "55de6da9b0b3dc2d1e384d6c838d13294287c44060afb8e70aa2a0c8e01a81cb",
+ "conformance/HexRCF/ProofFunctionPublic.lean": "f928c9f0dd0a704d34a516b6282cfa6a7a4eb6c112d49689c450647a44370a6b",
+ "conformance/HexRCF/PublicSignPacket.lean": "c32d73c5634376907b965e1ea6cf69352fdda1f1945ce2f34a378cc217778102",
+ "conformance/HexRCF/PublicSignPacketControls.lean": "b4f98bd8ef190a361dd7752d4d5ece0cfbd862ff4face5a06dfabecf87096028",
+ "conformance/HexRCF/PublicSignPacketProofs.lean": "442f6d3e04a36db25611f0396103a1eee5ee411c40e8f3cc93df1acf7898bbbb",
+ "conformance/HexRCF/PublicSignPacketValues.lean": "72705dba30f04f986188903fb49b983c6f0a664895116fca8bd8b6b46b6517e5",
+ "conformance/HexRCF/QuotientQuote.lean": "97b2cbc9abdb46db33a9a91328f331edf8dea055cc244489158121cde8dc1903",
+ "conformance/HexRCF/QuotientQuoteData.lean": "ec26777d655a7898d7f7922fcea8f426a3f8c77a53000b69b6fe1755a0348870",
+ "conformance/HexRCF/QuotientQuoteProofs.lean": "f1d95accf6caed1c7354408b3a1a0b29493a526e82036390e39102ebe80c6752",
+ "conformance/HexRCF/QuotientQuotePublic.lean": "a3bd9a082df14a0ac93ba3798e13c6ebbf9dff98d7613264713aa281a5a18bea",
+ "conformance/HexRCF/RationalQuoteConformance.lean": "f03844d4a44a5c61b702ed0b1697619da9b20f4ac42122b9d1a6d3fa4a2de9ac",
+ "conformance/HexRCF/RecursiveScalarQuote.lean": "83ba1f3ed63afdbb148f171736a0aacebc7eef4ae3bf32dca29811515c3f051b",
+ "conformance/HexRCF/ReplayBoundary.lean": "bbc09553d62198a18e897981d5f443c81f09dba8d371d2cdaeaa846d22cbc2f8",
+ "conformance/HexRCF/ReplayBoundaryProofs.lean": "d755462a7344dc9f5304fba255bcefb42188c1de5a51d92d8567a27f22482dc2",
+ "conformance/HexRCF/ReplayHelperProofs.lean": "6dd68829399ec8908a877a3f7705cc9321e49b9581d0d577d114950242e43a57",
+ "conformance/HexRCF/ReplayHelpers.lean": "4501fa39e52a8a2bb52fdd7b183c16801090dd026304105afb4342a1c441c2a3",
+ "conformance/HexRCF/RootContextConformance.lean": "0c52084609ec3de8afd51330a7d2cc97f7bae1d8b2bbc421138783940fc7db37",
+ "conformance/HexRCF/RootContextProofs.lean": "b4c2e3ce686ce8bc60bfdafe2be2f566c6de46758f4827d307f3d5592b59d2e9",
+ "conformance/HexRCF/RootHeaderBudget.lean": "db30b6b7781fabd238ea2c934477e5ae281cc6cd905f11848ce46eb66ef45fe0",
+ "conformance/HexRCF/RootHeaderControls.lean": "aca063af3bfe475166aef92193f162c25a0e53eea094087cf334406a3d513157",
+ "conformance/HexRCF/RootHeaderPacket.lean": "dcd8e63c1d656fc800690b35554a0f835a1ee0bb96312215f8c12348d8a0e79a",
+ "conformance/HexRCF/RootHeaderProofs.lean": "e6630f0464fd0096b9af74b4640d2abc514a62c0b0fc706b4a2e74c9602eeb8c",
+ "conformance/HexRCF/RootHeaderValues.lean": "de9a8fc7c2e9371cbd3324eb700180411e49865dbc6535a74d2c882f74e38e13",
+ "conformance/HexRCF/RootPrepareControls.lean": "b36af8efd1e12227188b6fb7bde258e80d5c1c874338a324cb53c5ccc6c1330f",
+ "conformance/HexRCF/RootPreparePacket.lean": "86185bcc5fdddb1f700d869a115a91034954714f69a83171fd0e96f601e76fe3",
+ "conformance/HexRCF/RootPrepareProofs.lean": "4a5bc6655576a6592fcd5cd801bcfebd425243b1bb6cb39b0bb46d500a3938be",
+ "conformance/HexRCF/RootPreparePublic.lean": "a9e09cbe8d1287b97dde71ad1c6dbe149cfbacb6f81f41a8493ee802416d0805",
+ "conformance/HexRCF/RootQuoteCases.lean": "602d15ef501e969183bffbda7fb3c0f00a174ba5c2dbc35370ee7fce896944dd",
+ "conformance/HexRCF/RootQuoteConformance.lean": "f6a652a243ba62cffc671d1365c6ab47b6618179acb172019ec5609ea0324d3c",
+ "conformance/HexRCF/RootQuoteData.lean": "faa259d129d5c65a063c7143e45d5d9d19573ed49862aa5ecb3978ff389cb514",
+ "conformance/HexRCF/RootQuoteSource.lean": "aca1654efc1a452aca8ef573bb8ea3a435a4e1e18a4dca854d9bcc8e350d511d",
+ "conformance/HexRCF/RootTableQuote/Conformance.lean": "ec5bd136df58cc24a40ca989e3d33e55923082aed7591b234f55c70c013c74ad",
+ "conformance/HexRCF/RowPacketControls.lean": "ab69c57b66fe8129be5f07e5e5f42b7b35d60a23b305ec224d2d7dca28ac7c82",
+ "conformance/HexRCF/RowQuoteCases.lean": "8d2ebddc05d5f0d08b62b50d3498b34b47ab0b3accc4d0a572e621fd83d606d4",
+ "conformance/HexRCF/RowQuoteData.lean": "ce60cb18f548f55e929d4803c7ed824ad0a7621fd4abda09a191f76393fabf0c",
+ "conformance/HexRCF/RowQuoteDepth.lean": "6ada3c44bea055425d223dc57eafb4f0c88349713d815ded4beec9720f7802ad",
+ "conformance/HexRCF/RowQuoteProofs.lean": "317d4f981f32bb28666fcabc6248f4a57fe67c95a7fe431f7993aeacfa377ed3",
+ "conformance/HexRCF/SelectedRoot/KernelCheck.lean": "499299274a75c6e2a70630c8ae442f21ab7d0514c7d23cffdde3f09fd17421cb",
+ "conformance/HexRCF/SharedQuoteCallbacks.lean": "6132cc3722af3cf251d11c857a572f09128d3614d931724965cbcf488dc4db6d",
+ "conformance/HexRCF/SignPacketProofs.lean": "3980cad31637f5798b2c351e1efc2a29b946de1d90e06fb11acd85e2a5c46321",
+ "conformance/HexRCF/SignPacketQuote.lean": "fcda11e6c75353d4519c4eb0e9c302b84d7e41030316c99fcacb885dabf97545",
+ "conformance/HexRCF/SignatureQuoteConformance.lean": "26f16c37cb9e0d5c09a082787f4a66673437adbf998023fd5e9625db16ff5d3f",
+ "conformance/HexRCF/SourceBuild.lean": "f70e66af4041dffdc43ed12145c5ff07a097d3c1a180caac629df6c0a15f8eeb",
+ "conformance/HexRCF/SourceIdentityControls.lean": "c655486606139658d73e5b4d394228c3632596fec366e3b410ea9deb5b085553",
+ "conformance/HexRCF/SourceIdentityEmit.lean": "aa12f1517efc675698c0795c5a463a77d7a3466bcc146d4981d82e913059ed99",
+ "conformance/HexRCF/SourceIdentityLiterals.lean": "61ee2ce703d4965b00e1e20cc62288a0bde4e839d68ca09e1b66281f4a3e48d0",
+ "conformance/HexRCF/SourceIdentityPacket.lean": "614b3132274de5bebebeecb09cf479ac68723f1518e1f52912543a812985a4a9",
+ "conformance/HexRCF/SourceIdentityProofs.lean": "c449238d5f915dbe1f337688bc4f7357f3a93e31ad79eaa9e8e159c280749173",
+ "conformance/HexRCF/SourceSelectionCases.lean": "368ded3f07bb4be269f26a2fd2b7044904ea16d1dd1cba41d8bccb373d004005",
+ "conformance/HexRCF/TreeQuote.lean": "049065aa64bb13432b1d7183759979d28eebba98d18b6f54ab849e5953ce92c1",
+ "conformance/HexRCF/TreeQuoteData.lean": "c595c2278d2997483b755aa585da874c27eed40e4e1a8106d7f553e4f574776b",
+ "conformance/HexRCF/TreeQuoteProofs.lean": "f9a40248237480f8972df62dff548ef0599205b76014e070866e72586f161933",
+ "conformance/HexRCF/TreeQuotePublic.lean": "adc6dc6871208f31970cf5ae0c2472fd325a72e1df8114a6e8178ef8b2c71570",
+ "experiments/KernelReplay/AxiomClosure.lean": "f49377265f05f52b633b10a59255a03731e08d022cc54763de9851c5b5325034",
+ "lake-manifest.json": "fd2dc4df30cd44e4d30568489d616e7bcc8a78747500139134be56f35ae746a4",
+ "lakefile.lean": "0b45717104644561ca7415d4c9f43bae6b318cf75eb00e0757a44c9f7db700bc",
+ "lean-toolchain": "bc84812c94489d1e3e191baa1dc10d5eb684382d7fe9d2a5ab085e72c1c67e47",
+ "libraries.yml": "14e3dd1c01bb0c369b2216e2733378d61172040fd9f69dd0354d4e1267d9c5c1",
+ "scripts/bench/proof_only_runtime_exemptions/lakefile-rcf-bounded-source-fea47caa-baeeaf73.json": "eaea20ebc9579f4c50ff88344d8c9be3da9fc7c7d0981e9e0d5251dd04a6ab3f",
+ "scripts/bench/proof_only_runtime_exemptions/lakefile-rcf-source-build-fea47caa-1ab4e88c.json": "38fcff53934dab8ff78146cc782b039265da3c6684638a5b00ab725d5a2c8e01",
+ "scripts/rcf/selected_literals.py": "03e02fa50575882c0784894b76746ff8e594b9a1eb0a285811bc76ee87265e72",
+ "scripts/rcf/source_identity_literals.py": "ea5d7df949871c4975367a759b9632d033f3a240523c2c917c9141220ffdfd78"
+ },
+ "changed": [
+ "adapters/HexRCF/RealCoefficients/SourceIdentityQuote.lean",
+ "conformance/HexRCF/CellSourceQuote.lean",
+ "conformance/HexRCF/CellSourceProofs.lean",
+ "HexManual/Chapters/HexRCF/AlgebraicCells.lean"
+ ],
+ "rendered_html_sha256": "e609eb813e38249612681eb5a261003433f21cdbeaae05e65417f96b5770f28f",
+ "scope": "One full original-goal example now authenticates its coefficient and replays the cells in the same cumulative request. Retained parent/model, alias/coefficient-map laws and seed facts remain inputs; no generic source/history discovery, strict all-depth record coverage or full #10358 completion."
+}
diff --git a/reports/data/hexrcf-joint-source-assembly/desktop-audit.png b/reports/data/hexrcf-joint-source-assembly/desktop-audit.png
new file mode 100644
index 0000000000..d37e4064a1
Binary files /dev/null and b/reports/data/hexrcf-joint-source-assembly/desktop-audit.png differ
diff --git a/reports/data/hexrcf-joint-source-assembly/desktop-budget.png b/reports/data/hexrcf-joint-source-assembly/desktop-budget.png
new file mode 100644
index 0000000000..ab4f974f3e
Binary files /dev/null and b/reports/data/hexrcf-joint-source-assembly/desktop-budget.png differ
diff --git a/reports/data/hexrcf-joint-source-assembly/desktop-source.png b/reports/data/hexrcf-joint-source-assembly/desktop-source.png
new file mode 100644
index 0000000000..c03d8b0c3e
Binary files /dev/null and b/reports/data/hexrcf-joint-source-assembly/desktop-source.png differ
diff --git a/reports/data/hexrcf-joint-source-assembly/inspection.json b/reports/data/hexrcf-joint-source-assembly/inspection.json
new file mode 100644
index 0000000000..2435618dd9
--- /dev/null
+++ b/reports/data/hexrcf-joint-source-assembly/inspection.json
@@ -0,0 +1,86 @@
+[
+ {
+ "label": "desktop",
+ "kind": "source",
+ "text": "\n The algebraic source regression independently reads the complete frozen packet\nover the retained positive square root of 2. It reifies the following original\nsentence, authenticates its fixed coefficient from the descriptor and two\nscalar packets inside the same request, reconstructs the coefficient polynomial\nand composes the checked cell verdict with the original source:",
+ "viewport": 1440,
+ "scrollY": 275680,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "P",
+ "targetWidth": 752,
+ "targetScrollWidth": 752,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "desktop",
+ "kind": "budget",
+ "text": "\n The shared reification and quotation budget records 9,330,067 proof nodes\nbefore source finishing and 9,337,314 for the complete original-source attempt.\nSource authentication, cell replay and finishing run in one transaction. The test supplies 24M proof nodes and\n60M heartbeats. Its trace records two memo reuses and seven validations.\nLake reports 821 seconds for this source module on the recorded shared host;\nthis remains an expensive fixed-input proof build. These observations do not\nmeasure compiled replay or establish a general tactic running time.",
+ "viewport": 1440,
+ "scrollY": 275947,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "P",
+ "targetWidth": 752,
+ "targetScrollWidth": 752,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "desktop",
+ "kind": "audit",
+ "text": "\n Its importing proof audit checks 1,191 theorem bodies, 202 definitions and\n1,351 nonempty kernel traces. It excludes the older complete-packet acceptance\nand source proofs, the handwritten coefficient identity and the separately\nproved source-selection/coefficient identities. It checks transitive\naxiom dependencies, and rejects native\nproducer and canonical-codec reduction. The fixed\nselected parent, original alias/coefficient-map laws and checked arithmetic\nseed facts are supplied inputs. This example does not construct arbitrary\npredecessor histories or install a\ngeneral source-to-certificate tactic backend.",
+ "viewport": 1440,
+ "scrollY": 276125,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "P",
+ "targetWidth": 752,
+ "targetScrollWidth": 752,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "source",
+ "text": "\n The algebraic source regression independently reads the complete frozen packet\nover the retained positive square root of 2. It reifies the following original\nsentence, authenticates its fixed coefficient from the descriptor and two\nscalar packets inside the same request, reconstructs the coefficient polynomial\nand composes the checked cell verdict with the original source:",
+ "viewport": 390,
+ "scrollY": 441874,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "P",
+ "targetWidth": 343,
+ "targetScrollWidth": 343,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "budget",
+ "text": "\n The shared reification and quotation budget records 9,330,067 proof nodes\nbefore source finishing and 9,337,314 for the complete original-source attempt.\nSource authentication, cell replay and finishing run in one transaction. The test supplies 24M proof nodes and\n60M heartbeats. Its trace records two memo reuses and seven validations.\nLake reports 821 seconds for this source module on the recorded shared host;\nthis remains an expensive fixed-input proof build. These observations do not\nmeasure compiled replay or establish a general tactic running time.",
+ "viewport": 390,
+ "scrollY": 442291,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "P",
+ "targetWidth": 343,
+ "targetScrollWidth": 343,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "audit",
+ "text": "\n Its importing proof audit checks 1,191 theorem bodies, 202 definitions and\n1,351 nonempty kernel traces. It excludes the older complete-packet acceptance\nand source proofs, the handwritten coefficient identity and the separately\nproved source-selection/coefficient identities. It checks transitive\naxiom dependencies, and rejects native\nproducer and canonical-codec reduction. The fixed\nselected parent, original alias/coefficient-map laws and checked arithmetic\nseed facts are supplied inputs. This example does not construct arbitrary\npredecessor histories or install a\ngeneral source-to-certificate tactic backend.",
+ "viewport": 390,
+ "scrollY": 442667,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "P",
+ "targetWidth": 343,
+ "targetScrollWidth": 343,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ }
+]
\ No newline at end of file
diff --git a/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-audit-1.lean.txt b/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-audit-1.lean.txt
new file mode 100644
index 0000000000..770a52ab2d
--- /dev/null
+++ b/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-audit-1.lean.txt
@@ -0,0 +1,79 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+import HexRCF.CellSourceQuote
+import HexRCF.RealCoefficients.CellBuild
+import HexRCF.ProofEvidence
+import HexRCF.SelectedRoot.KernelCheck
+import KernelReplay.AxiomClosure
+meta section
+open Lean Meta Hex.RealClosure Hex.RCF.RealCoefficients
+set_option maxRecDepth 32768
+set_option maxHeartbeats 12000000
+run_meta do
+ let roots := #[``Hex.RCF.CellSourceQuote.checked,``Hex.RCF.CellSourceQuote.source]
+ let axioms ← Algebraic.KernelReplay.AxiomClosure.collect roots
+ unless axioms.all (fun name => [``propext,``Classical.choice,``Quot.sound].contains name) do
+ throwError "fresh complete source has inadmissible dependencies"
+ let dependencies ← Hex.RCF.ProofEvidence.projectDependencies roots
+ for required in #[``SourceIdentity.identify,``SourceIdentity.observe,``SourceIdentity.select,
+ ``ScalarPacket.restore,``Tower.Model.root_generator,
+ ``RowQuote.read_eq,``Hex.SignDet.Dag.selectedSigns_memo,
+ ``CompleteReplay.check_sound,``CellOperations.check_of_parts,
+ ``CellOperations.readCells_of_parts,``CellRead.collectWith_eq,``CellOperations.check_eq,
+ ``RootQuote.read_eq,``Hex.SignDet.Replay.check.eq_1,``Hex.MvPoly.termsList,
+ ``RowQuote.values_cast,``RowQuote.values_restore,
+ ``RowQuote.values_retarget,``RowQuote.value_eq] do
+ unless dependencies.contains required do throwError "fresh complete source omitted {required}"
+ for forbidden in #[``CellReplayTests.Algebraic.Schema.coefficient,
+ ``Hex.RCF.SourceIdentityPacket.coefficient,``Hex.RCF.SourceIdentityPacket.selected,
+ ``Hex.RCF.SelectedRootTests.Data.alpha_value,``Hex.RCF.SelectedRootTests.Data.selectedSqrt,
+ ``Hex.RCF.SourceIdentityCases.source_selected,``Hex.RCF.SourceIdentityCases.coefficient,
+ ``Hex.RCF.SourceIdentityCases.equationFact,``Hex.RCF.SourceIdentityCases.marginFact,
+ ``CellReplayTests.Operations.accepted,``CellReplayTests.Operations.checked,
+ ``CellReplayTests.Operations.source,``CellReplayTests.Algebraic.CompleteQuote.checked,
+ ``CellReplayTests.Algebraic.CompleteQuote.source,``CellReplayTests.Algebraic.Read.accepted,
+ ``CellReplayTests.Algebraic.Canonical.evidence,``CellReplayTests.Algebraic.Canonical.cert,
+ ``CellBuild.build,``ScalarPacket.build,``ScalarPacket.buildLiteral] do
+ if dependencies.contains forbidden then throwError "fresh complete source reused {forbidden}"
+ let names := (← (← getEnv).getLocalConstantInfos).map (·.name)
+ let modules := (← getEnv).header.moduleNames
+ let allowed := #[`HexRCF.SourceIdentityPacket,`HexRCF.SourceIdentityLiterals,
+ `HexRCF.RealCoefficients.SourceIdentity,`HexRCF.RealCoefficients.ScalarPacket,
+ `HexRCF.RealCoefficients.RowPacketQuote,`HexRCF.CellSourceQuote,`HexRCF.RealCoefficients.RootQuote,
+ `HexRCF.RealCoefficients.ScalarQuote,`HexRCF.RealCoefficients.CellQuote,
+ `HexRCF.RealCoefficients.RowQuote,`HexRCF.RealCoefficients.CellRead,
+ `HexRCF.RealCoefficients.CellOperations]
+ let mut theorems : Nat := 0
+ let mut definitions : Nat := 0
+ let mut traces : Nat := 0
+ for name in dependencies.toArray do
+ let some index := (← getEnv).getModuleIdxFor? name | continue
+ unless allowed.contains modules[index]! do continue
+ let declaration ← match ← getConstInfo name with
+ | .thmInfo info =>
+ theorems := theorems+1
+ pure (Declaration.thmDecl {info with name := ← mkFreshUserName `__completeBody})
+ | .defnInfo info =>
+ definitions := definitions+1
+ pure (Declaration.defnDecl {info with name := ← mkFreshUserName `__completeData})
+ | _ => continue
+ let options := (← getOptions).setBool `debug.skipKernelTC false
+ let environment := Kernel.enableDiag (Kernel.resetDiag (← getEnv)) true
+ let checked ← ofExceptKernelException <| environment.addDeclCore
+ (Core.getMaxHeartbeats options).toUSize (maxRecDepth.get options).toUSize
+ declaration none (doCheck := true)
+ let diagnostics := Kernel.getDiagnostics checked
+ unless diagnostics.enabled do throwError "complete source diagnostics disabled"
+ if let some (producer,count) := Hex.RCF.SelectedRootTests.KernelCheck.violation? diagnostics
+ #[``ScalarPacket.build,``ScalarPacket.buildLiteral,``Algebraic.Element.codec,
+ ``Hex.SignDet.Descriptor.ofReplay?] then
+ throwError "complete source reduced producer {producer}: {count}; body={name}"
+ if !diagnostics.unfoldCounter.isEmpty then traces := traces+1
+ unless theorems == 1193 && definitions == 202 && traces == 1353 do
+ throwError "complete source inventory changed: {theorems}/{definitions}/{traces}"
+ unless (← (← getEnv).getLocalConstantInfos).map (·.name) == names do
+ throwError "complete source audit retained copied declarations"
+ logInfo m!"complete original source actual bodies: {theorems} theorems/{definitions} definitions; nonempty traces={traces}; full axioms={axioms}"
diff --git a/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-audit-1.log.gz b/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-audit-1.log.gz
new file mode 100644
index 0000000000..4d5f53d026
Binary files /dev/null and b/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-audit-1.log.gz differ
diff --git a/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-browser-1.log.gz b/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-browser-1.log.gz
new file mode 100644
index 0000000000..289b259203
Binary files /dev/null and b/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-browser-1.log.gz differ
diff --git a/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-core-1.log.gz b/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-core-1.log.gz
new file mode 100644
index 0000000000..19ebf4d65c
Binary files /dev/null and b/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-core-1.log.gz differ
diff --git a/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-final-admissions.log.gz b/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-final-admissions.log.gz
new file mode 100644
index 0000000000..bd2ec29cdf
Binary files /dev/null and b/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-final-admissions.log.gz differ
diff --git a/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-final-copyright.log.gz b/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-final-copyright.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-final-copyright.log.gz differ
diff --git a/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-final-dag.log.gz b/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-final-dag.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-final-dag.log.gz differ
diff --git a/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-final-diff.log.gz b/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-final-diff.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-final-diff.log.gz differ
diff --git a/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-final-freshness.log.gz b/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-final-freshness.log.gz
new file mode 100644
index 0000000000..44c03f6508
Binary files /dev/null and b/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-final-freshness.log.gz differ
diff --git a/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-final-inputs.json b/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-final-inputs.json
new file mode 100644
index 0000000000..8ac47536ac
--- /dev/null
+++ b/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-final-inputs.json
@@ -0,0 +1,6 @@
+{
+ "adapters/HexRCF/RealCoefficients/SourceIdentityQuote.lean": "cdaf7b830ad50d9849a7f102641eb03313f84959c56c3ea4cd66a663894ca385",
+ "conformance/HexRCF/CellSourceQuote.lean": "bf26980ea3286785872338cba5f97413c31590053dc4445ad00d78c3e6fe1104",
+ "conformance/HexRCF/CellSourceProofs.lean": "aa946fc87cf8ed336427ef644d6d0889750710d5331535d71f27a3270f539953",
+ "HexManual/Chapters/HexRCF/AlgebraicCells.lean": "44bca34cb72a18124a48d33658007d0802f1400235fd5da4555ec7d488c7151d"
+}
diff --git a/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-final-inspection.json b/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-final-inspection.json
new file mode 100644
index 0000000000..2435618dd9
--- /dev/null
+++ b/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-final-inspection.json
@@ -0,0 +1,86 @@
+[
+ {
+ "label": "desktop",
+ "kind": "source",
+ "text": "\n The algebraic source regression independently reads the complete frozen packet\nover the retained positive square root of 2. It reifies the following original\nsentence, authenticates its fixed coefficient from the descriptor and two\nscalar packets inside the same request, reconstructs the coefficient polynomial\nand composes the checked cell verdict with the original source:",
+ "viewport": 1440,
+ "scrollY": 275680,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "P",
+ "targetWidth": 752,
+ "targetScrollWidth": 752,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "desktop",
+ "kind": "budget",
+ "text": "\n The shared reification and quotation budget records 9,330,067 proof nodes\nbefore source finishing and 9,337,314 for the complete original-source attempt.\nSource authentication, cell replay and finishing run in one transaction. The test supplies 24M proof nodes and\n60M heartbeats. Its trace records two memo reuses and seven validations.\nLake reports 821 seconds for this source module on the recorded shared host;\nthis remains an expensive fixed-input proof build. These observations do not\nmeasure compiled replay or establish a general tactic running time.",
+ "viewport": 1440,
+ "scrollY": 275947,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "P",
+ "targetWidth": 752,
+ "targetScrollWidth": 752,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "desktop",
+ "kind": "audit",
+ "text": "\n Its importing proof audit checks 1,191 theorem bodies, 202 definitions and\n1,351 nonempty kernel traces. It excludes the older complete-packet acceptance\nand source proofs, the handwritten coefficient identity and the separately\nproved source-selection/coefficient identities. It checks transitive\naxiom dependencies, and rejects native\nproducer and canonical-codec reduction. The fixed\nselected parent, original alias/coefficient-map laws and checked arithmetic\nseed facts are supplied inputs. This example does not construct arbitrary\npredecessor histories or install a\ngeneral source-to-certificate tactic backend.",
+ "viewport": 1440,
+ "scrollY": 276125,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "P",
+ "targetWidth": 752,
+ "targetScrollWidth": 752,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "source",
+ "text": "\n The algebraic source regression independently reads the complete frozen packet\nover the retained positive square root of 2. It reifies the following original\nsentence, authenticates its fixed coefficient from the descriptor and two\nscalar packets inside the same request, reconstructs the coefficient polynomial\nand composes the checked cell verdict with the original source:",
+ "viewport": 390,
+ "scrollY": 441874,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "P",
+ "targetWidth": 343,
+ "targetScrollWidth": 343,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "budget",
+ "text": "\n The shared reification and quotation budget records 9,330,067 proof nodes\nbefore source finishing and 9,337,314 for the complete original-source attempt.\nSource authentication, cell replay and finishing run in one transaction. The test supplies 24M proof nodes and\n60M heartbeats. Its trace records two memo reuses and seven validations.\nLake reports 821 seconds for this source module on the recorded shared host;\nthis remains an expensive fixed-input proof build. These observations do not\nmeasure compiled replay or establish a general tactic running time.",
+ "viewport": 390,
+ "scrollY": 442291,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "P",
+ "targetWidth": 343,
+ "targetScrollWidth": 343,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "audit",
+ "text": "\n Its importing proof audit checks 1,191 theorem bodies, 202 definitions and\n1,351 nonempty kernel traces. It excludes the older complete-packet acceptance\nand source proofs, the handwritten coefficient identity and the separately\nproved source-selection/coefficient identities. It checks transitive\naxiom dependencies, and rejects native\nproducer and canonical-codec reduction. The fixed\nselected parent, original alias/coefficient-map laws and checked arithmetic\nseed facts are supplied inputs. This example does not construct arbitrary\npredecessor histories or install a\ngeneral source-to-certificate tactic backend.",
+ "viewport": 390,
+ "scrollY": 442667,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "P",
+ "targetWidth": 343,
+ "targetScrollWidth": 343,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ }
+]
\ No newline at end of file
diff --git a/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-final-integration.log.gz b/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-final-integration.log.gz
new file mode 100644
index 0000000000..a290af2ff4
Binary files /dev/null and b/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-final-integration.log.gz differ
diff --git a/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-final-invocation.json b/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-final-invocation.json
new file mode 100644
index 0000000000..ebcc2a3f75
--- /dev/null
+++ b/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-final-invocation.json
@@ -0,0 +1,16 @@
+{
+ "argv": [
+ "/home/kim/.codex/tasks/hex-10358/bin/run-bounded",
+ "lake",
+ "build",
+ "HexRCFRealCoefficients",
+ "+HexRCF.CellSourceProofs",
+ "+HexRCF.BoundedSource.Proofs",
+ "+HexRCF.SourceIdentityProofs",
+ "+HexRCF.SourceBuild",
+ "+HexRCF.BoundedSource",
+ "HexManual"
+ ],
+ "cwd": "/home/kim/worktrees/hex-dev/hex-dev-issue-10358",
+ "scope": "Same-request source authentication and complete goal proof, actual fresh audit forbidding prior imported source identities, compact source API and native compatibility plus full current manual; not entire default conformance or scientific timing study"
+}
diff --git a/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-final-lines.log.gz b/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-final-lines.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-final-lines.log.gz differ
diff --git a/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-final-literals.log.gz b/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-final-literals.log.gz
new file mode 100644
index 0000000000..251ef5b170
Binary files /dev/null and b/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-final-literals.log.gz differ
diff --git a/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-final-manifest.log.gz b/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-final-manifest.log.gz
new file mode 100644
index 0000000000..1e2a3e818a
Binary files /dev/null and b/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-final-manifest.log.gz differ
diff --git a/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-final-metadata-driver.log.gz b/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-final-metadata-driver.log.gz
new file mode 100644
index 0000000000..539291d855
Binary files /dev/null and b/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-final-metadata-driver.log.gz differ
diff --git a/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-final-metadata.json b/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-final-metadata.json
new file mode 100644
index 0000000000..a151aec9de
--- /dev/null
+++ b/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-final-metadata.json
@@ -0,0 +1,88 @@
+[
+ {
+ "name": "copyright",
+ "argv": [
+ "python3",
+ "scripts/check_copyright_headers.py"
+ ],
+ "exit_code": 0,
+ "log": "joint-source-assembly-final-copyright.log"
+ },
+ {
+ "name": "lines",
+ "argv": [
+ "python3",
+ "scripts/check_file_line_counts.py",
+ "--base",
+ "origin/main"
+ ],
+ "exit_code": 0,
+ "log": "joint-source-assembly-final-lines.log"
+ },
+ {
+ "name": "dag",
+ "argv": [
+ "python3",
+ "scripts/check_dag.py"
+ ],
+ "exit_code": 0,
+ "log": "joint-source-assembly-final-dag.log"
+ },
+ {
+ "name": "admissions",
+ "argv": [
+ "python3",
+ "scripts/ci/check_named_admissions.py"
+ ],
+ "exit_code": 0,
+ "log": "joint-source-assembly-final-admissions.log"
+ },
+ {
+ "name": "manifest",
+ "argv": [
+ "python3",
+ "scripts/release/check_released_manifest.py"
+ ],
+ "exit_code": 0,
+ "log": "joint-source-assembly-final-manifest.log"
+ },
+ {
+ "name": "freshness",
+ "argv": [
+ "python3",
+ "scripts/bench/check_factor_sweep_freshness.py"
+ ],
+ "exit_code": 0,
+ "log": "joint-source-assembly-final-freshness.log"
+ },
+ {
+ "name": "literals",
+ "argv": [
+ "python3",
+ "scripts/rcf/selected_literals.py",
+ "--check"
+ ],
+ "exit_code": 0,
+ "log": "joint-source-assembly-final-literals.log"
+ },
+ {
+ "name": "source_literals",
+ "argv": [
+ "python3",
+ "scripts/rcf/source_identity_literals.py",
+ "--check"
+ ],
+ "exit_code": 0,
+ "log": "joint-source-assembly-final-source_literals.log"
+ },
+ {
+ "name": "diff",
+ "argv": [
+ "git",
+ "diff",
+ "--check"
+ ],
+ "exit_code": 0,
+ "log": "joint-source-assembly-final-diff.log"
+ }
+]
diff --git a/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-final-source_literals.log.gz b/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-final-source_literals.log.gz
new file mode 100644
index 0000000000..ddc79da867
Binary files /dev/null and b/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-final-source_literals.log.gz differ
diff --git a/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-final.patch.gz b/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-final.patch.gz
new file mode 100644
index 0000000000..f5297e4316
Binary files /dev/null and b/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-final.patch.gz differ
diff --git a/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-implementation-commit.log.gz b/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-implementation-commit.log.gz
new file mode 100644
index 0000000000..af5b7038be
Binary files /dev/null and b/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-implementation-commit.log.gz differ
diff --git a/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-implementation-staged-check.log.gz b/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-implementation-staged-check.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-implementation-staged-check.log.gz differ
diff --git a/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-quote-1.lean.txt b/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-quote-1.lean.txt
new file mode 100644
index 0000000000..5e78e4ef5d
--- /dev/null
+++ b/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-quote-1.lean.txt
@@ -0,0 +1,219 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+import HexRCF.RealCoefficients.RowQuote
+import HexRCF.CellReplay.Operations
+import HexRCF.RealCoefficients.RootQuote
+import HexRCF.RealCoefficients.RationalQuote
+import HexRCF.RealCoefficients.ScalarQuote
+import HexRCF.RootTableQuote.Input
+import HexRCF.RealCoefficients.CellQuote
+import HexRCF.SourceIdentityPacket
+open Lean Meta Qq Hex Hex.RealClosure Hex.SignDet Hex.RCF.RealCoefficients
+open Hex.RCF.RealCoefficients.CellReplayTests
+open Hex.RCF.RealCoefficients.CellReplayTests.Algebraic
+/-! Quote the original source through independently restored literal cells over
+one retained selected algebraic parent. Older complete-packet acceptance proofs
+are excluded by the importing audit; coefficient seed facts remain checked inputs. This fixed-parent case does not reconstruct arbitrary source histories. -/
+namespace Hex.RCF.CellSourceQuote
+set_option maxHeartbeats 60000000
+set_option maxRecDepth 32768
+set_option smartUnfolding false
+set_option trace.Hex.RCF.RowQuote true
+def rational (value : Int) : Codec.Json := .arr #[.number 0,.number value,.number 1]
+def scalar (polynomial : Array Codec.Json) (sign : Int) : Codec.Json :=
+ .arr #[.arr polynomial,.number sign]
+def polynomial : Codec.Json := .arr #[
+ scalar #[rational 0,rational (-1)] (-1),.arr #[],scalar #[rational 1] 1]
+
+/-- Replay the original coefficient source in this same request instead of
+importing an already proved coefficient identity. The retained parent and its
+generator equation remain explicit; no native source producer is evaluated. -/
+private meta def sourceCoefficient : Hex.RealFormula.Reify.ReifyM Expr := do
+ let (anchor,_) ← liftM Hex.RCF.SourceIdentityPacket.inputs
+ let key (name : Name) := mkAppM ``Prod.fst #[mkConst name]
+ let graph (name : Name) := do mkAppM ``Prod.snd #[← mkAppM ``Prod.snd #[mkConst name]]
+ let packet : SourceIdentity.Packet := {
+ subject := mkConst ``Hex.RCF.SelectedRootTests.Literals.lowerSubject
+ graph := mkConst ``Hex.RCF.SelectedRootTests.Literals.lowerGraph
+ equation := ← key ``Hex.RCF.SelectedRootTests.SourceIdentityPackets.packet0
+ equationGraph := ← graph ``Hex.RCF.SelectedRootTests.SourceIdentityPackets.packet0
+ enclosure := ← key ``Hex.RCF.SelectedRootTests.SourceIdentityPackets.packet1
+ enclosureGraph := ← graph ``Hex.RCF.SelectedRootTests.SourceIdentityPackets.packet1
+ equationValue := mkConst ``Hex.RCF.SourceIdentityPacket.equation_value
+ enclosureValue := mkConst ``Hex.RCF.SourceIdentityPacket.enclosure_value }
+ let restored ← SourceIdentity.restorePacketWith anchor packet
+ (mkConst ``Hex.RCF.SelectedRootTests.Data.base) (mkConst ``Hex.RCF.SelectedRootTests.Data.rational)
+ fun expression => liftM (RationalQuote.decoder (mkConst ``Hex.RCF.SelectedRootTests.Data.registry) expression)
+ let same ← mkAppM ``Option.get_of_eq_some
+ #[mkConst ``Hex.RCF.SelectedRootTests.Data.lowerAccepted,restored.header.root.proof]
+ let model := mkConst ``Hex.RCF.SelectedRootTests.Data.rational
+ let fields ← #[``Tower.Model.value,``Tower.Model.zero_iff,``Tower.Model.one,
+ ``Tower.Model.add,``Tower.Model.sub,``Tower.Model.mul,``Tower.Model.nat,
+ ``Tower.Model.sign].mapM fun name => mkAppM name #[model]
+ let rootValue ← withLocalDeclD `root (← inferType restored.header.root.value) fun root =>
+ mkLambdaFVars #[root] (← mkAppM ``Descriptor.root (fields.push root))
+ let selected ← mkEqTrans (← mkAppM ``congrArg #[rootValue,same]) restored.identity.proof
+ let parentValue ← mkAppM ``Tower.Model.value #[mkConst ``Schema.original]
+ let generator ← mkAppM ``congrArg
+ #[parentValue,← mkEqSymm (mkConst ``Hex.RCF.SelectedRootTests.Data.generator_eq)]
+ let chain ← mkAppM ``Tower.Chain.base
+ #[← mkAppM ``BaseContext.rational #[mkConst ``Hex.RCF.SelectedRootTests.Data.registry]]
+ let interpreted ← mkAppM ``Tower.Model.root_generator
+ #[model,chain,mkConst ``Hex.RCF.SelectedRootTests.Data.lower,
+ mkConst ``Hex.RCF.SelectedRootTests.Data.frozenFrame,mkConst ``Hex.RCF.SelectedRootTests.Data.frameEncoded]
+ let proof ← mkEqTrans generator (← mkEqTrans interpreted selected)
+ let target : Q(Prop) := q(Schema.original.value Hex.RCF.SelectedRootTests.Data.alpha = Real.sqrt 2)
+ Hex.RealFormula.Reify.accountProof target
+ Hex.RealFormula.Reify.accountProof proof
+ let proof ← Hex.RCF.checkProof `jointSourceCoefficient target (mkExpectedPropHint proof target)
+ logInfo m!"original coefficient authenticated in request; proofNodes={(← get).budget.consumed.proofNodes}"
+ return proof
+
+run_meta do
+ withoutExporting do
+ let target : Q(Prop) := q(∃ x : ℝ, x ^ 2 - Real.sqrt 2 ≥ 0 ∧
+ x ^ 2 - Real.sqrt 2 ≤ 0 ∧ (0 : ℝ) = 0)
+ let basic : Hex.RealFormula.Reify.Config := {}
+ let config := {basic with ring := {basic.ring with budget :=
+ {basic.ring.budget with proofNodes := 24000000}}}
+ let .ok source ← Reify.prepare target config
+ | throwError "original complete-cell source was not recognized"
+ unless source.coefficients.size == 1 && source.divisors.isEmpty do
+ throwError "original complete-cell source changed its coefficient/guard inventory"
+ let quantified ← whnf source.formula
+ unless quantified.getAppFn.isConstOf ``Hex.RealFormula.Prenex.quant do
+ throwError "original complete-cell source is not quantified"
+ let matrix ← whnf quantified.appArg!
+ unless matrix.getAppFn.isConstOf ``Hex.RealFormula.Prenex.matrix do
+ throwError "original complete-cell source has no shared matrix"
+ let formula := matrix.appArg!
+ let codec : Q(ValueCodec (Algebraic.Element Hex.RCF.SelectedRootTests.Data.native)) :=
+ q(Algebraic.Element.codec (context := Hex.RCF.SelectedRootTests.Data.native)
+ Hex.RCF.SelectedRootTests.Data.base.codec)
+ let reader ← mkAppM ``Codec.readPoly #[codec,mkConst ``polynomial]
+ let result ← match ← RootQuote.runWith (do
+ let coefficient ← sourceCoefficient
+ let p ← ScalarQuote.quotePolyWith reader (mkConst ``Records.facts) fun expression =>
+ liftM (RationalQuote.decoder (mkConst ``Hex.RCF.SelectedRootTests.Data.registry) expression)
+ logInfo m!"literal polynomial reconstructed; proofNodes={p.usage.proofNodes}"
+ let polynomialType ← inferType p.value
+ Hex.RealFormula.Reify.accountProof polynomialType
+ Hex.RealFormula.Reify.accountProof p.value
+ let polynomialName := mkPrivateName (← getEnv) (← mkFreshUserName `FrozenPolynomial)
+ let polynomial ← mkAuxDefinition polynomialName polynomialType p.value (compile := false)
+ let signature ← mkAppM ``Tower.Context.signature #[mkConst ``Schema.parent]
+ let cert ← mkAppM ``RadicalCert.mk #[signature,polynomial,polynomial,polynomial,mkNatLit 1]
+ let certificateType ← inferType cert
+ Hex.RealFormula.Reify.accountProof certificateType
+ Hex.RealFormula.Reify.accountProof cert
+ let certificateName := mkPrivateName (← getEnv) (← mkFreshUserName `FrozenRadical)
+ let cert ← mkAuxDefinition certificateName certificateType cert (compile := false)
+ let cells := mkApp (mkConst ``Codec.Json.Value.array)
+ (mkApp2 (mkConst ``Codec.Json.Values.cons) (mkConst ``Literals.sections)
+ (mkApp2 (mkConst ``Codec.Json.Values.cons) (mkConst ``Literals.sectors)
+ (mkConst ``Codec.Json.Values.nil)))
+ let empty ← mkListLit (← mkAppM ``Tower.Context.Value #[mkConst ``Schema.parent]) []
+ let some operations ← unfoldDefinition? (mkConst ``Operations.operations)
+ | throwError "supplied operations have no accessible definition"
+ let operations := operations.replace fun expression =>
+ if expression.isConstOf ``Hex.RCF.SelectedRootTests.Data.reduction then
+ some (mkConst ``Hex.RCF.RootTableQuoteTests.reduction)
+ else if expression.isConstOf ``Hex.RCF.SelectedRootTests.Data.reduction_eq then
+ some (mkConst ``Hex.RCF.RootTableQuoteTests.reduction_eq)
+ else none
+ Meta.check operations
+ let operationsType ← inferType operations
+ Hex.RealFormula.Reify.accountProof operationsType
+ Hex.RealFormula.Reify.accountProof operations
+ let name := mkPrivateName (← getEnv) (← mkFreshUserName `FrozenOperations)
+ let operations ← mkAuxDefinition name operationsType operations (compile := false)
+ let program ← mkAppM ``CellOperations.check
+ #[operations,mkConst ``Operations.codec,mkConst ``Schema.values,
+ formula,empty,cert,
+ mkConst ``Hex.RealFormula.Quantifier.existsReal,mkConst ``Literals.roots,cells]
+ let quoted ← CellQuote.replayWith program fun expression => do
+ if let some proof ← RowQuote.decoder expression then return some proof
+ if expression.getAppFn.isConstOf ``RootTable.read then
+ let table ← RootQuote.quoteWith expression fun expression =>
+ liftM (RationalQuote.decoder (mkConst ``Hex.RCF.SelectedRootTests.Data.registry) expression)
+ let kind ← inferType table.value
+ Hex.RealFormula.Reify.accountProof kind
+ Hex.RealFormula.Reify.accountProof table.value
+ let name := mkPrivateName (← getEnv) (← mkFreshUserName `FrozenRootTable)
+ let value ← mkAuxDefinition name kind table.value (compile := false)
+ let strict ← mkAppM ``RootQuote.read_eq #[expression,table.value,table.proof]
+ let readerType ← whnf (← inferType expression)
+ unless readerType.isAppOfArity ``Except 2 do
+ throwError "nested root-table result changed its exception type"
+ let accepted ← mkAppOptM ``Except.ok
+ #[some readerType.getAppArgs[0]!,some readerType.getAppArgs[1]!,some value]
+ let target ← mkEq expression accepted
+ Hex.RealFormula.Reify.accountProof target
+ Hex.RealFormula.Reify.accountProof strict
+ return some (← Hex.RCF.checkProof `frozenTable target (mkExpectedPropHint strict target))
+ return none
+ let result := quoted
+ let kind ← inferType result.proof
+ unless kind.isAppOfArity ``Eq 3 do throwError "complete quotation did not return an equation"
+ let optional := kind.getAppArgs[1]!
+ unless optional.getAppFn.isConstOf ``Except.toOption do
+ throwError "staged quotation omitted the optional reader boundary"
+ let program := optional.getAppArgs.back!
+ unless program.getAppFn.isConstOf ``CellOperations.check do
+ throwError "complete quotation changed its original checker"
+ let readerType ← whnf (← inferType program)
+ let accepted ← mkAppOptM ``Except.ok
+ #[some readerType.getAppArgs[0]!,some readerType.getAppArgs[1]!,some (mkConst ``Bool.true)]
+ let target ← mkEq program accepted
+ let checked ← mkAppM ``RootQuote.read_eq #[program,result.value,result.proof]
+ Hex.RealFormula.Reify.accountProof target
+ Hex.RealFormula.Reify.accountProof checked
+ let proof ← Hex.RCF.checkProof `freshCompleteLiteral target (mkExpectedPropHint checked target)
+ let axioms ← collectAxioms proof.getAppFn.constName!
+ unless axioms.all (fun name => [``propext,``Classical.choice,``Quot.sound].contains name) do
+ throwError "fresh complete literal quote has inadmissible dependencies"
+ addDecl (.thmDecl {
+ name := `Hex.RCF.CellSourceQuote.checked,levelParams := [],type := target,value := proof})
+ let valuation ← withLocalDeclD `i (← mkAppM ``Fin #[mkNatLit 1]) fun i => do
+ let value ← mkAppM ``Tower.Model.value
+ #[mkConst ``Schema.original,mkApp (mkConst ``Schema.values) i]
+ mkLambdaFVars #[i] value
+ let identityType ← mkEq valuation source.valuation
+ let identity ← mkFreshExprMVar identityType
+ let remaining ← Lean.Elab.runTactic' identity.mvarId!
+ (← `(tactic| funext i; fin_cases i; exact $(← Lean.Elab.Term.exprToSyntax coefficient)))
+ unless remaining.isEmpty do throwError "original coefficient identity left goals"
+ let identity ← instantiateMVars identity
+ Hex.RealFormula.Reify.accountProof identityType
+ Hex.RealFormula.Reify.accountProof identity
+ let identity ← Hex.RCF.checkProof `completeSourceIdentity identityType identity
+ let realTarget := source.original
+ let arguments := program.getAppArgs
+ let info ← getFunInfoNArgs program.getAppFn arguments.size
+ let inputs := arguments.zipIdx |>.filterMap fun (argument,index) =>
+ if info.paramInfo[index]!.binderInfo.isExplicit then some argument else none
+ let checker ← mkAppM ``CompleteReplay.check (inputs.extract 1 inputs.size)
+ let law ← mkAppM ``CellOperations.check_eq inputs
+ let accepted ← mkAppM ``Eq.trans #[← mkEqSymm law,mkConst `Hex.RCF.CellSourceQuote.checked]
+ let completed ← CellQuote.finishPacketWith source realTarget checker accepted
+ (mkConst ``Schema.original) identity
+ let sourceProof := completed.proof
+ Hex.RealFormula.Reify.accountProof realTarget
+ Hex.RealFormula.Reify.accountProof sourceProof
+ let sourceProof ← Hex.RCF.checkProof `freshCompleteSource realTarget sourceProof
+ addDecl (.thmDecl {
+ name := `Hex.RCF.CellSourceQuote.source,levelParams := [],type := realTarget,value := sourceProof})
+ let sourceAxioms ← collectAxioms `Hex.RCF.CellSourceQuote.source
+ unless sourceAxioms.all (fun name => [``propext,``Classical.choice,``Quot.sound].contains name) do
+ throwError "complete original source quotation has inadmissible dependencies"
+ logInfo m!"original algebraic source quotation proofNodes={result.usage.proofNodes}; axioms={axioms}"
+ logInfo m!"original algebraic source complete proofNodes={completed.usage.proofNodes}"
+ return {completed with usage := (← get).budget.consumed}
+ ) config source.usage with
+ | .ok result => pure result
+ | .error error => throwError "fresh complete literal quote refused: {Hex.RealFormula.Reify.Error.toMessageData error}"
+ logInfo m!"complete original-source attempt consumed proofNodes={result.usage.proofNodes}"
+end Hex.RCF.CellSourceQuote
diff --git a/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-quote-1.log.gz b/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-quote-1.log.gz
new file mode 100644
index 0000000000..3ea06634af
Binary files /dev/null and b/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-quote-1.log.gz differ
diff --git a/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-quote-2.lean.txt b/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-quote-2.lean.txt
new file mode 100644
index 0000000000..554ee0d7ea
--- /dev/null
+++ b/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-quote-2.lean.txt
@@ -0,0 +1,220 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+import HexRCF.RealCoefficients.RowQuote
+import HexRCF.CellReplay.Operations
+import HexRCF.RealCoefficients.RootQuote
+import HexRCF.RealCoefficients.RationalQuote
+import HexRCF.RealCoefficients.ScalarQuote
+import HexRCF.RootTableQuote.Input
+import HexRCF.RealCoefficients.CellQuote
+import HexRCF.SourceIdentityPacket
+open Lean Meta Qq Hex Hex.RealClosure Hex.SignDet Hex.RCF.RealCoefficients
+open Hex.RCF.RealCoefficients.CellReplayTests
+open Hex.RCF.RealCoefficients.CellReplayTests.Algebraic
+/-! Quote the original source through independently restored literal cells over
+one retained selected algebraic parent. Older complete-packet acceptance proofs
+are excluded by the importing audit; coefficient seed facts remain checked inputs. This fixed-parent case does not reconstruct arbitrary source histories. -/
+namespace Hex.RCF.CellSourceQuote
+set_option maxHeartbeats 60000000
+set_option maxRecDepth 32768
+set_option smartUnfolding false
+set_option trace.Hex.RCF.RowQuote true
+def rational (value : Int) : Codec.Json := .arr #[.number 0,.number value,.number 1]
+def scalar (polynomial : Array Codec.Json) (sign : Int) : Codec.Json :=
+ .arr #[.arr polynomial,.number sign]
+def polynomial : Codec.Json := .arr #[
+ scalar #[rational 0,rational (-1)] (-1),.arr #[],scalar #[rational 1] 1]
+
+/-- Replay the original coefficient source in this same request instead of
+importing an already proved coefficient identity. The retained parent and its
+generator equation remain explicit; no native source producer is evaluated. -/
+private meta def sourceCoefficient : Hex.RealFormula.Reify.ReifyM Expr := do
+ let (anchor,_) ← liftM Hex.RCF.SourceIdentityPacket.inputs
+ let key (name : Name) := mkAppM ``Prod.fst #[mkConst name]
+ let graph (name : Name) := do mkAppM ``Prod.snd #[← mkAppM ``Prod.snd #[mkConst name]]
+ let packet : SourceIdentity.Packet := {
+ subject := mkConst ``Hex.RCF.SelectedRootTests.Literals.lowerSubject
+ graph := mkConst ``Hex.RCF.SelectedRootTests.Literals.lowerGraph
+ equation := ← key ``Hex.RCF.SelectedRootTests.SourceIdentityPackets.packet0
+ equationGraph := ← graph ``Hex.RCF.SelectedRootTests.SourceIdentityPackets.packet0
+ enclosure := ← key ``Hex.RCF.SelectedRootTests.SourceIdentityPackets.packet1
+ enclosureGraph := ← graph ``Hex.RCF.SelectedRootTests.SourceIdentityPackets.packet1
+ equationValue := mkConst ``Hex.RCF.SourceIdentityPacket.equation_value
+ enclosureValue := mkConst ``Hex.RCF.SourceIdentityPacket.enclosure_value }
+ let restored ← SourceIdentity.restorePacketWith anchor packet
+ (mkConst ``Hex.RCF.SelectedRootTests.Data.base) (mkConst ``Hex.RCF.SelectedRootTests.Data.rational)
+ fun expression => liftM (RationalQuote.decoder (mkConst ``Hex.RCF.SelectedRootTests.Data.registry) expression)
+ let same ← mkAppM ``Option.get_of_eq_some
+ #[mkConst ``Hex.RCF.SelectedRootTests.Data.lowerAccepted,restored.header.root.proof]
+ let model := mkConst ``Hex.RCF.SelectedRootTests.Data.rational
+ let fields ← #[``Tower.Model.value,``Tower.Model.zero_iff,``Tower.Model.one,
+ ``Tower.Model.add,``Tower.Model.sub,``Tower.Model.mul,``Tower.Model.nat,
+ ``Tower.Model.sign].mapM fun name => mkAppM name #[model]
+ let rootValue ← withLocalDeclD `root (← inferType restored.header.root.value) fun root => do
+ mkLambdaFVars #[root] (← mkAppM ``Descriptor.root (fields.push root))
+ let selected ← mkEqTrans (← mkAppM ``congrArg #[rootValue,same]) restored.identity.proof
+ let parentValue ← mkAppM ``Tower.Model.value #[mkConst ``Schema.original]
+ let generator ← mkAppM ``congrArg
+ #[parentValue,← mkEqSymm (mkConst ``Hex.RCF.SelectedRootTests.Data.generator_eq)]
+ let chain ← mkAppM ``Tower.Chain.base
+ #[← mkAppM ``BaseContext.rational #[mkConst ``Hex.RCF.SelectedRootTests.Data.registry]]
+ let interpreted ← mkAppM ``Tower.Model.root_generator
+ #[model,chain,mkConst ``Hex.RCF.SelectedRootTests.Data.lower,
+ mkConst ``Hex.RCF.SelectedRootTests.Data.frozenFrame,mkConst ``Hex.RCF.SelectedRootTests.Data.frameEncoded]
+ let proof ← mkEqTrans generator (← mkEqTrans interpreted selected)
+ let target : Q(Prop) := q(Schema.original.value Hex.RCF.SelectedRootTests.Data.alpha = Real.sqrt 2)
+ Hex.RealFormula.Reify.accountProof target
+ Hex.RealFormula.Reify.accountProof proof
+ let proof ← Hex.RCF.checkProof `jointSourceCoefficient target (mkExpectedPropHint proof target)
+ logInfo m!"original coefficient authenticated in request; proofNodes={(← get).budget.consumed.proofNodes}"
+ return proof
+
+run_meta do
+ withoutExporting do
+ let target : Q(Prop) := q(∃ x : ℝ, x ^ 2 - Real.sqrt 2 ≥ 0 ∧
+ x ^ 2 - Real.sqrt 2 ≤ 0 ∧ (0 : ℝ) = 0)
+ let basic : Hex.RealFormula.Reify.Config := {}
+ let config := {basic with ring := {basic.ring with budget :=
+ {basic.ring.budget with proofNodes := 24000000}}}
+ let .ok source ← Reify.prepare target config
+ | throwError "original complete-cell source was not recognized"
+ unless source.coefficients.size == 1 && source.divisors.isEmpty do
+ throwError "original complete-cell source changed its coefficient/guard inventory"
+ let quantified ← whnf source.formula
+ unless quantified.getAppFn.isConstOf ``Hex.RealFormula.Prenex.quant do
+ throwError "original complete-cell source is not quantified"
+ let matrix ← whnf quantified.appArg!
+ unless matrix.getAppFn.isConstOf ``Hex.RealFormula.Prenex.matrix do
+ throwError "original complete-cell source has no shared matrix"
+ let formula := matrix.appArg!
+ let codec : Q(ValueCodec (Algebraic.Element Hex.RCF.SelectedRootTests.Data.native)) :=
+ q(Algebraic.Element.codec (context := Hex.RCF.SelectedRootTests.Data.native)
+ Hex.RCF.SelectedRootTests.Data.base.codec)
+ let reader ← mkAppM ``Codec.readPoly #[codec,mkConst ``polynomial]
+ let result ← match ← RootQuote.runWith (do
+ let coefficient ← sourceCoefficient
+ let p ← ScalarQuote.quotePolyWith reader (mkConst ``Records.facts) fun expression =>
+ liftM (RationalQuote.decoder (mkConst ``Hex.RCF.SelectedRootTests.Data.registry) expression)
+ logInfo m!"literal polynomial reconstructed; proofNodes={p.usage.proofNodes}"
+ let polynomialType ← inferType p.value
+ Hex.RealFormula.Reify.accountProof polynomialType
+ Hex.RealFormula.Reify.accountProof p.value
+ let polynomialName := mkPrivateName (← getEnv) (← mkFreshUserName `FrozenPolynomial)
+ let polynomial ← mkAuxDefinition polynomialName polynomialType p.value (compile := false)
+ let signature ← mkAppM ``Tower.Context.signature #[mkConst ``Schema.parent]
+ let cert ← mkAppM ``RadicalCert.mk #[signature,polynomial,polynomial,polynomial,mkNatLit 1]
+ let certificateType ← inferType cert
+ Hex.RealFormula.Reify.accountProof certificateType
+ Hex.RealFormula.Reify.accountProof cert
+ let certificateName := mkPrivateName (← getEnv) (← mkFreshUserName `FrozenRadical)
+ let cert ← mkAuxDefinition certificateName certificateType cert (compile := false)
+ let cells := mkApp (mkConst ``Codec.Json.Value.array)
+ (mkApp2 (mkConst ``Codec.Json.Values.cons) (mkConst ``Literals.sections)
+ (mkApp2 (mkConst ``Codec.Json.Values.cons) (mkConst ``Literals.sectors)
+ (mkConst ``Codec.Json.Values.nil)))
+ let empty ← mkListLit (← mkAppM ``Tower.Context.Value #[mkConst ``Schema.parent]) []
+ let some operations ← unfoldDefinition? (mkConst ``Operations.operations)
+ | throwError "supplied operations have no accessible definition"
+ let operations := operations.replace fun expression =>
+ if expression.isConstOf ``Hex.RCF.SelectedRootTests.Data.reduction then
+ some (mkConst ``Hex.RCF.RootTableQuoteTests.reduction)
+ else if expression.isConstOf ``Hex.RCF.SelectedRootTests.Data.reduction_eq then
+ some (mkConst ``Hex.RCF.RootTableQuoteTests.reduction_eq)
+ else none
+ Meta.check operations
+ let operationsType ← inferType operations
+ Hex.RealFormula.Reify.accountProof operationsType
+ Hex.RealFormula.Reify.accountProof operations
+ let name := mkPrivateName (← getEnv) (← mkFreshUserName `FrozenOperations)
+ let operations ← mkAuxDefinition name operationsType operations (compile := false)
+ let program ← mkAppM ``CellOperations.check
+ #[operations,mkConst ``Operations.codec,mkConst ``Schema.values,
+ formula,empty,cert,
+ mkConst ``Hex.RealFormula.Quantifier.existsReal,mkConst ``Literals.roots,cells]
+ let quoted ← CellQuote.replayWith program fun expression => do
+ if let some proof ← RowQuote.decoder expression then return some proof
+ if expression.getAppFn.isConstOf ``RootTable.read then
+ let table ← RootQuote.quoteWith expression fun expression =>
+ liftM (RationalQuote.decoder (mkConst ``Hex.RCF.SelectedRootTests.Data.registry) expression)
+ let kind ← inferType table.value
+ Hex.RealFormula.Reify.accountProof kind
+ Hex.RealFormula.Reify.accountProof table.value
+ let name := mkPrivateName (← getEnv) (← mkFreshUserName `FrozenRootTable)
+ let value ← mkAuxDefinition name kind table.value (compile := false)
+ let strict ← mkAppM ``RootQuote.read_eq #[expression,table.value,table.proof]
+ let readerType ← whnf (← inferType expression)
+ unless readerType.isAppOfArity ``Except 2 do
+ throwError "nested root-table result changed its exception type"
+ let accepted ← mkAppOptM ``Except.ok
+ #[some readerType.getAppArgs[0]!,some readerType.getAppArgs[1]!,some value]
+ let target ← mkEq expression accepted
+ Hex.RealFormula.Reify.accountProof target
+ Hex.RealFormula.Reify.accountProof strict
+ return some (← Hex.RCF.checkProof `frozenTable target (mkExpectedPropHint strict target))
+ return none
+ let result := quoted
+ let kind ← inferType result.proof
+ unless kind.isAppOfArity ``Eq 3 do throwError "complete quotation did not return an equation"
+ let optional := kind.getAppArgs[1]!
+ unless optional.getAppFn.isConstOf ``Except.toOption do
+ throwError "staged quotation omitted the optional reader boundary"
+ let program := optional.getAppArgs.back!
+ unless program.getAppFn.isConstOf ``CellOperations.check do
+ throwError "complete quotation changed its original checker"
+ let readerType ← whnf (← inferType program)
+ let accepted ← mkAppOptM ``Except.ok
+ #[some readerType.getAppArgs[0]!,some readerType.getAppArgs[1]!,some (mkConst ``Bool.true)]
+ let target ← mkEq program accepted
+ let checked ← mkAppM ``RootQuote.read_eq #[program,result.value,result.proof]
+ Hex.RealFormula.Reify.accountProof target
+ Hex.RealFormula.Reify.accountProof checked
+ let proof ← Hex.RCF.checkProof `freshCompleteLiteral target (mkExpectedPropHint checked target)
+ let axioms ← collectAxioms proof.getAppFn.constName!
+ unless axioms.all (fun name => [``propext,``Classical.choice,``Quot.sound].contains name) do
+ throwError "fresh complete literal quote has inadmissible dependencies"
+ addDecl (.thmDecl {
+ name := `Hex.RCF.CellSourceQuote.checked,levelParams := [],type := target,value := proof})
+ let valuation ← withLocalDeclD `i (← mkAppM ``Fin #[mkNatLit 1]) fun i => do
+ let value ← mkAppM ``Tower.Model.value
+ #[mkConst ``Schema.original,mkApp (mkConst ``Schema.values) i]
+ mkLambdaFVars #[i] value
+ let identityType ← mkEq valuation source.valuation
+ let identity ← mkFreshExprMVar identityType
+ let coefficientTerm := mkIdent coefficient.getAppFn.constName!
+ let remaining ← Lean.Elab.runTactic' identity.mvarId!
+ (← `(tactic| funext i; fin_cases i; exact $coefficientTerm))
+ unless remaining.isEmpty do throwError "original coefficient identity left goals"
+ let identity ← instantiateMVars identity
+ Hex.RealFormula.Reify.accountProof identityType
+ Hex.RealFormula.Reify.accountProof identity
+ let identity ← Hex.RCF.checkProof `completeSourceIdentity identityType identity
+ let realTarget := source.original
+ let arguments := program.getAppArgs
+ let info ← getFunInfoNArgs program.getAppFn arguments.size
+ let inputs := arguments.zipIdx |>.filterMap fun (argument,index) =>
+ if info.paramInfo[index]!.binderInfo.isExplicit then some argument else none
+ let checker ← mkAppM ``CompleteReplay.check (inputs.extract 1 inputs.size)
+ let law ← mkAppM ``CellOperations.check_eq inputs
+ let accepted ← mkAppM ``Eq.trans #[← mkEqSymm law,mkConst `Hex.RCF.CellSourceQuote.checked]
+ let completed ← CellQuote.finishPacketWith source realTarget checker accepted
+ (mkConst ``Schema.original) identity
+ let sourceProof := completed.proof
+ Hex.RealFormula.Reify.accountProof realTarget
+ Hex.RealFormula.Reify.accountProof sourceProof
+ let sourceProof ← Hex.RCF.checkProof `freshCompleteSource realTarget sourceProof
+ addDecl (.thmDecl {
+ name := `Hex.RCF.CellSourceQuote.source,levelParams := [],type := realTarget,value := sourceProof})
+ let sourceAxioms ← collectAxioms `Hex.RCF.CellSourceQuote.source
+ unless sourceAxioms.all (fun name => [``propext,``Classical.choice,``Quot.sound].contains name) do
+ throwError "complete original source quotation has inadmissible dependencies"
+ logInfo m!"original algebraic source quotation proofNodes={result.usage.proofNodes}; axioms={axioms}"
+ logInfo m!"original algebraic source complete proofNodes={completed.usage.proofNodes}"
+ return {completed with usage := (← get).budget.consumed}
+ ) config source.usage with
+ | .ok result => pure result
+ | .error error => throwError "fresh complete literal quote refused: {Hex.RealFormula.Reify.Error.toMessageData error}"
+ logInfo m!"complete original-source attempt consumed proofNodes={result.usage.proofNodes}"
+end Hex.RCF.CellSourceQuote
diff --git a/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-quote-2.log.gz b/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-quote-2.log.gz
new file mode 100644
index 0000000000..2fcf55ab17
Binary files /dev/null and b/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-quote-2.log.gz differ
diff --git a/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-quote-3-inputs.json b/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-quote-3-inputs.json
new file mode 100644
index 0000000000..235177fba1
--- /dev/null
+++ b/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-quote-3-inputs.json
@@ -0,0 +1,4 @@
+{
+ "adapters/HexRCF/RealCoefficients/SourceIdentityQuote.lean": "cdaf7b830ad50d9849a7f102641eb03313f84959c56c3ea4cd66a663894ca385",
+ "conformance/HexRCF/CellSourceQuote.lean": "bf26980ea3286785872338cba5f97413c31590053dc4445ad00d78c3e6fe1104"
+}
diff --git a/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-quote-3.log.gz b/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-quote-3.log.gz
new file mode 100644
index 0000000000..1342f7304e
Binary files /dev/null and b/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-quote-3.log.gz differ
diff --git a/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-quote-3.patch.gz b/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-quote-3.patch.gz
new file mode 100644
index 0000000000..ac251c88c2
Binary files /dev/null and b/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-quote-3.patch.gz differ
diff --git a/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-render-1.log.gz b/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-render-1.log.gz
new file mode 100644
index 0000000000..37c4d154ad
Binary files /dev/null and b/reports/data/hexrcf-joint-source-assembly/joint-source-assembly-render-1.log.gz differ
diff --git a/reports/data/hexrcf-joint-source-assembly/manifest.json b/reports/data/hexrcf-joint-source-assembly/manifest.json
new file mode 100644
index 0000000000..792b74df4b
--- /dev/null
+++ b/reports/data/hexrcf-joint-source-assembly/manifest.json
@@ -0,0 +1,44 @@
+{
+ "README.md": "74cbea3c8ffbb9045e899e33af0adfb41a96148eb390b94bd7a01902d7720d02",
+ "browser.mjs.txt": "1faf7de6252a97442f4a55b8d2bf5f72bbbae0cd0617e8cd2c9a5ff9a099b86c",
+ "context.json": "542125a3d7fd5eaa20dd785549a46a946bc627d82f0be2b72e7b492b3671d94e",
+ "desktop-audit.png": "f2730b230d7280be8aa8b1ccb6e0d6f2bf2041a1d034f43a273d0cdee574de25",
+ "desktop-budget.png": "1264ee5f788f13e120d093f82d4ae8b778b58072402c679690408f1d8a1f2a0a",
+ "desktop-source.png": "10417ca3228e5e93faaeba2319baf81e6d99fb999b51d0ed8542338236debab1",
+ "inspection.json": "b72571653722793495e66f7f5452a42bc3327969c0eec0a25c13948a0b5eb489",
+ "joint-source-assembly-audit-1.lean.txt": "a1307ed498b5c584ca142d3b43c0aa3d80509776e0366428d5e1e013b96c3f59",
+ "joint-source-assembly-audit-1.log.gz": "11194a27bfba9fad23763af292de26560faf0ba590f6ed32e21b339784cb6f79",
+ "joint-source-assembly-browser-1.log.gz": "8d8d355c5a1438e2306ad79ac6d3ea04af9ab6205a4038e2e351c0cc320c5278",
+ "joint-source-assembly-core-1.log.gz": "a1eb40c7f82f96af0d73d5303bb798164667c02c671af9ef9f5d929df362df66",
+ "joint-source-assembly-final-admissions.log.gz": "69a21bde72fd2d28ac505ea4f1e28c3b0a4e96998cb90674e584133f1fa72701",
+ "joint-source-assembly-final-copyright.log.gz": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "joint-source-assembly-final-dag.log.gz": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "joint-source-assembly-final-diff.log.gz": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "joint-source-assembly-final-freshness.log.gz": "2deda7e9f1dd38e7a3fd37966a9bdf33c905c76164d13133571f675b1ab75b13",
+ "joint-source-assembly-final-inputs.json": "95b1fa780bf456bcae494a9da0fe44c6ad4e8770db7cdbf7adc76abcaf4a5deb",
+ "joint-source-assembly-final-inspection.json": "b72571653722793495e66f7f5452a42bc3327969c0eec0a25c13948a0b5eb489",
+ "joint-source-assembly-final-integration.log.gz": "0674b0c694ebeddaa68aad7a44638a8885eaefee1a04cc883529a76ded839a9a",
+ "joint-source-assembly-final-invocation.json": "f931117fdfb126dc70b3f7fea45f5dfdf9e3d16ea454c18fc29fde2568fe4dd4",
+ "joint-source-assembly-final-lines.log.gz": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "joint-source-assembly-final-literals.log.gz": "d363c41d04cc71aaa8b2bb97d1faf6ff4b311e5874c10d339f87aba4d4b97158",
+ "joint-source-assembly-final-manifest.log.gz": "87c23c0a8f1159f2320fb2015c285ee9167c8c51ef9f6df2f69fc217f4b11029",
+ "joint-source-assembly-final-metadata-driver.log.gz": "af9843ca1dd4611513f530d0ed84f780f7c78fbaed5772bd6f244a8e1fb3c92b",
+ "joint-source-assembly-final-metadata.json": "791aeadea11255bef686a9e36e11d8b1d2c17d82aeda7a12f06bcdd95a747263",
+ "joint-source-assembly-final-source_literals.log.gz": "167f5ed8596142f3f1d3fdc40daa83c40dd6f4c31c76c0268645b4a297e47a56",
+ "joint-source-assembly-final.patch.gz": "53de469118f5f5ed1626d705f05eac16357ecfe35c101b0361905542e7a85226",
+ "joint-source-assembly-implementation-commit.log.gz": "3108b8bd57b7d854d2a0ecdb9292abcf381f95b117f45cd33d8909f28a88026b",
+ "joint-source-assembly-implementation-staged-check.log.gz": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "joint-source-assembly-quote-1.lean.txt": "8ec0e9cc0a5cac802cfafdf3f3412a72927ae94c5d0c663ff5268576b676147f",
+ "joint-source-assembly-quote-1.log.gz": "ba729e64017e04b6dfca909571dd79e9dc4435f09fad9ecd8a875f65b8ad06c3",
+ "joint-source-assembly-quote-2.lean.txt": "7cc35fcd9069ac72d3c567b30fdbaa33a4290350208cf93d3c0986d70252f8b4",
+ "joint-source-assembly-quote-2.log.gz": "56c681811ec967ff2cea93416913436f6a541efe4397681244ae59d51cb411b6",
+ "joint-source-assembly-quote-3-inputs.json": "f9b17f579d212319f6b1d3f4d4a45ca294364ab20ccf55d095da2daa419227e8",
+ "joint-source-assembly-quote-3.log.gz": "aec1014ed3598bf1b06841b865af403dcdd6b652cb4288affda628ad43387c64",
+ "joint-source-assembly-quote-3.patch.gz": "146c2d19302de894673f4ea51a2b2bd3ccc88f689b6f2150247daa9e5b457ed4",
+ "joint-source-assembly-render-1.log.gz": "65583bc7f3aaf581e37fa74ccecc997c860e91e7cce4dd5c6ef3c4e1f00e43dd",
+ "narrow-audit.png": "cbd717d35b652b04afb9a233d3e77eb5fec8b13f248d5762df5252d81118e66a",
+ "narrow-budget.png": "53ff39f33ed1516d4cbac099ee3430ae22f657008ec6b7b065b6d5a4adff96fa",
+ "narrow-source.png": "deb968e8e7ab581bcf7317f418445bae41f4d68a1c20997a0ac4de5f2f24e6b1",
+ "render.lean.txt": "cc970381459bc4ac2c7df721b4376d69000a28ed21ba53d2a58d4fdb13639e42",
+ "verify.py": "814de17d2cc8fbd53a1bb1fdfdda423d56eaa78f5588faed0cf979deb0a33cae"
+}
diff --git a/reports/data/hexrcf-joint-source-assembly/narrow-audit.png b/reports/data/hexrcf-joint-source-assembly/narrow-audit.png
new file mode 100644
index 0000000000..59f4932a8f
Binary files /dev/null and b/reports/data/hexrcf-joint-source-assembly/narrow-audit.png differ
diff --git a/reports/data/hexrcf-joint-source-assembly/narrow-budget.png b/reports/data/hexrcf-joint-source-assembly/narrow-budget.png
new file mode 100644
index 0000000000..c587d9ec30
Binary files /dev/null and b/reports/data/hexrcf-joint-source-assembly/narrow-budget.png differ
diff --git a/reports/data/hexrcf-joint-source-assembly/narrow-source.png b/reports/data/hexrcf-joint-source-assembly/narrow-source.png
new file mode 100644
index 0000000000..4aa8d69716
Binary files /dev/null and b/reports/data/hexrcf-joint-source-assembly/narrow-source.png differ
diff --git a/reports/data/hexrcf-joint-source-assembly/render.lean.txt b/reports/data/hexrcf-joint-source-assembly/render.lean.txt
new file mode 100644
index 0000000000..434bd76028
--- /dev/null
+++ b/reports/data/hexrcf-joint-source-assembly/render.lean.txt
@@ -0,0 +1,6 @@
+-- Render the complete manual for browser inspection.
+import HexManual
+import VersoManual
+#eval Verso.Genre.Manual.manualMain (%doc HexManual)
+ (options := ["--output", "full-html",
+ "--without-tex", "--with-html-single", "--without-html-multi"])
diff --git a/reports/data/hexrcf-joint-source-assembly/verify.py b/reports/data/hexrcf-joint-source-assembly/verify.py
new file mode 100644
index 0000000000..228d57e267
--- /dev/null
+++ b/reports/data/hexrcf-joint-source-assembly/verify.py
@@ -0,0 +1,53 @@
+#!/usr/bin/env python3
+"""Verify same-request source and goal quotation evidence, retaining scope."""
+from pathlib import Path
+import argparse,gzip,hashlib,json,subprocess,re
+p=Path(__file__).resolve().parent;root=next(x for x in p.parents if (x/'.git').exists())
+a=argparse.ArgumentParser();a.add_argument('--check-head',action='store_true');args=a.parse_args()
+sha=lambda b:hashlib.sha256(b).hexdigest()
+c=json.loads((p/'context.json').read_text())
+assert sha((root/'reports/data/hexrcf-source-packet-assembly/context.json').read_bytes())==c['parent_context_sha256']
+for name,digest in c['sources'].items():
+ raw=subprocess.check_output(['git','show',c['source_commit']+':'+name],cwd=root);assert sha(raw)==digest,name
+ if args.check_head:assert sha((root/name).read_bytes())==digest,name
+ if name not in c['changed']:assert raw==subprocess.check_output(['git','show',c['base_commit']+':'+name],cwd=root),name
+for name,digest in json.loads((p/'manifest.json').read_text()).items():assert sha((p/name).read_bytes())==digest,name
+read=lambda name:gzip.decompress((p/(name+'.gz')).read_bytes()).decode()
+for name in ['joint-source-assembly-quote-3.log','joint-source-assembly-final-integration.log','joint-source-assembly-render-1.log','joint-source-assembly-browser-1.log']:
+ assert 'code=exited, status=0/SUCCESS' in read(name),name
+quote=read('joint-source-assembly-quote-3.log')
+for count in [705636,707529,9330067,9337220,9337314]:assert f'proofNodes={count}' in quote,count
+assert 'reused=2; validated=7' in quote
+final=read('joint-source-assembly-final-integration.log')
+assert '1191 theorems/202 definitions; nonempty traces=1351' in final
+assert '392 theorems/449 definitions; nonempty traces=811' in final
+assert '218 theorems/179 definitions; nonempty traces=385' in final
+for count in [687783,690202,731072,673461]:assert f'proofNodes={count}' in final,count
+assert 'limit=687782' in final and '25477 frozen bytes; six scalar graphs;' in final
+assert '7 actual theorem bodies rechecked' in final
+for r in json.loads((p/'joint-source-assembly-final-metadata.json').read_text()):assert r['exit_code']==0,r
+for name,digest in json.loads((p/'joint-source-assembly-final-inputs.json').read_text()).items():assert c['sources'][name]==digest,name
+for name,digest in json.loads((p/'joint-source-assembly-quote-3-inputs.json').read_text()).items():assert c['sources'][name]==digest,name
+get=lambda revision,name:subprocess.check_output(['git','show',revision+':'+name],cwd=root).decode()
+source=get(c['source_commit'],'conformance/HexRCF/CellSourceQuote.lean');old=get(c['base_commit'],'conformance/HexRCF/CellSourceQuote.lean')
+start=' let target : Q(Prop) := q(∃ x : ℝ';end=' let basic : Hex.RealFormula.Reify.Config'
+assert source[source.index(start):source.index(end)]==old[old.index(start):old.index(end)]
+for name in ['SourceIdentityPacket.coefficient','SourceIdentityPacket.selected']:assert name not in source,name
+for name in ['SourceIdentity.restorePacketWith','Tower.Model.root_generator','let coefficient ← sourceCoefficient']:assert name in source,name
+assert source.index('let coefficient ← sourceCoefficient') < source.index('let p ← ScalarQuote.quotePolyWith')
+audit=get(c['source_commit'],'conformance/HexRCF/CellSourceProofs.lean');prior=get(c['base_commit'],'conformance/HexRCF/CellSourceProofs.lean')
+def names(text,first,last):
+ return set(re.findall(r'``([A-Za-z0-9_.]+)',text[text.index(first):text.index(last,text.index(first))]))
+assert names(prior,' for forbidden in #[',' let names :=') <= names(audit,' for forbidden in #[',' let names :=')
+for name in ['Hex.RCF.SourceIdentityPacket.coefficient','Hex.RCF.SourceIdentityPacket.selected']:assert name in names(audit,' for forbidden in #[',' let names :='),name
+assert '``Tower.Model.root_generator' in audit and '``ScalarPacket.restore' in audit
+assert 'theorems == 1191 && definitions == 202 && traces == 1351' in audit
+assert 'complete source inventory changed: 1191/202/1351' in read('joint-source-assembly-audit-1.log')
+helper=get(c['source_commit'],'adapters/HexRCF/RealCoefficients/SourceIdentityQuote.lean');before=get(c['base_commit'],'adapters/HexRCF/RealCoefficients/SourceIdentityQuote.lean')
+marker='/-- Literal inputs for one source-selection request.'
+assert helper[:helper.index(marker)]==before[:before.index(marker)]
+assert 'def restorePacketWith' in helper and 'return (← restorePacketWith anchor packet parent model decode).identity' in helper
+ins=json.loads((p/'inspection.json').read_text());assert len(ins)==6
+assert {(x['viewport'],x['kind']) for x in ins}=={(width,kind) for width in [1440,390] for kind in ['source','budget','audit']}
+assert all(x['descendantOverflow']==0 and x['targetScrollWidth']<=x['targetWidth']+1 for x in ins)
+print(f'Verified joint source/goal quotation: {len(c["sources"])} sources, unchanged original target, prior source identities forbidden, 1191/202/1351 actual body audit, scoped compatibility and six manual captures. Full #10358 remains incomplete.')
diff --git a/reports/data/hexrcf-proof-functions/README.md b/reports/data/hexrcf-proof-functions/README.md
new file mode 100644
index 0000000000..f69e1fbd5d
--- /dev/null
+++ b/reports/data/hexrcf-proof-functions/README.md
@@ -0,0 +1,25 @@
+This record binds quotation of functions with proof inputs, its public
+consumers and the root-table inventory correction to the source revision in
+`context.json`. Run `python3 reports/data/hexrcf-proof-functions/verify.py
+--check-head` from the repository root. Earlier records retain their own
+source revisions and inventories.
+
+The supported function returns data in a fixed type. Dependent data and
+functions returning data indexed by the changed subject remain refusal cases.
+Controls retain exact/below budgets, wrong-proof refusal and caller-state
+restoration. Fresh importing body checks keep the native-producer guard and
+transitive axiom restrictions unchanged.
+
+Validation includes affected rational/quotation compatibility, complete manual,
+the exact conformance target that failed CI's obsolete inventory assertion,
+HTML and six inspected desktop/narrow captures of the changed paragraph and
+example. Build observations reuse dependencies and cover different workloads;
+they are not matched performance comparisons or scaling evidence.
+
+The complete-cell experiments remain unaccepted. Their literal polynomial
+reconstruction succeeds, but full quotation exhausts. The interrupted run and
+stack observations are retained as incomplete diagnostics. No old fixture's
+acceptance theorem is presented as a new literal acceptance proof. General
+source/provider/predecessor and frozen histories, complete-cell tactic
+quotation, accepted algebraic completeness and the remaining #10358 scope
+remain open.
diff --git a/reports/data/hexrcf-proof-functions/captures/browser.mjs b/reports/data/hexrcf-proof-functions/captures/browser.mjs
new file mode 100644
index 0000000000..53a7e27c74
--- /dev/null
+++ b/reports/data/hexrcf-proof-functions/captures/browser.mjs
@@ -0,0 +1,61 @@
+import fs from 'node:fs';
+import {spawn} from 'node:child_process';
+const root=process.argv[2];
+if(!root) throw new Error('Pass the scratch render directory');
+const profile=root+'/proof-function-profile';
+fs.mkdirSync(profile,{recursive:true});
+fs.rmSync(profile+'/DevToolsActivePort',{force:true});
+const chrome=spawn(process.env.CHROME_BIN || '/home/kim/.cache/ms-playwright/chromium-1243/chrome-linux64/chrome',[
+ '--headless=new','--no-sandbox','--disable-gpu','--allow-file-access-from-files',
+ '--remote-debugging-port=0','--remote-allow-origins=*','--user-data-dir='+profile,'about:blank'],
+ {env:{...process.env,LD_LIBRARY_PATH:fs.readFileSync(root+'/browser-lib-paths.txt','utf8').trim()},stdio:'ignore'});
+let socket;
+try {
+ const portFile=profile+'/DevToolsActivePort';
+ for(let i=0;!fs.existsSync(portFile);i++) {
+ if(i>200||chrome.exitCode!==null) throw new Error('Chrome did not expose CDP');
+ await new Promise(r=>setTimeout(r,100));
+ }
+ const port=fs.readFileSync(portFile,'utf8').split('\n')[0];
+ const tabs=await (await fetch('http://127.0.0.1:'+port+'/json')).json();
+ socket=new WebSocket(tabs.find(t=>t.type==='page').webSocketDebuggerUrl);
+ await new Promise((r,j)=>{socket.onopen=r;socket.onerror=j});
+ let sequence=0;const pending=new Map();let loaded;
+ socket.onmessage=e=>{
+ const msg=JSON.parse(e.data);
+ if(msg.id){const p=pending.get(msg.id);pending.delete(msg.id);msg.error?p.reject(msg.error):p.resolve(msg.result);}
+ if(msg.method==='Page.loadEventFired'&&loaded){loaded();loaded=undefined;}
+ };
+ const call=(method,params={})=>new Promise((resolve,reject)=>{const id=++sequence;pending.set(id,{resolve,reject});socket.send(JSON.stringify({id,method,params}));});
+ await call('Page.enable');
+ const load=new Promise(r=>loaded=r);
+ await call('Page.navigate',{url:'file:///home/kim/.codex/tasks/hex-10358/scalar-review-render/scalar-review-html/html-single/index.html'});
+ await load;
+ const evaluate=async expression=>{const r=await call('Runtime.evaluate',{expression,returnByValue:true});if(r.exceptionDetails)throw new Error(JSON.stringify(r.exceptionDetails));return r.result.value;};
+ const metadata=[]; const sectionMetadata=[];
+ for(const [label,width] of [['desktop',1440],['narrow',390]]) {
+ await call('Emulation.setDeviceMetricsOverride',{width,height:1000,deviceScaleFactor:1,mobile:false});
+ for(const [kind,phrase] of [['introduction','A function with one proof argument can also move'],['example','A function with one proof argument can also move'],['budget','The original function is retained and only its proof input is transported.']] ) {
+ const exact=await evaluate(`(() => {const p=Array.from(document.querySelectorAll('p')).find(e=>e.textContent.replace(/\\s+/g,' ').includes(${JSON.stringify(phrase)}));if(!p)throw new Error('missing paragraph');const target=${JSON.stringify(kind)}==='example'?(()=>{let next=p.nextElementSibling;while(next&&!next.matches('.hl.lean.block, pre, div:has(code)'))next=next.nextElementSibling;if(!next)throw new Error('missing following code block');return next;})():p;if(${JSON.stringify(kind)}==='example'&&!target.matches('.hl.lean.block, pre, div:has(code)'))throw new Error('target is not a Lean code block');target.scrollIntoView({block:${JSON.stringify('center')}});return {text:p.textContent,viewport:innerWidth,scrollY,paragraphWidth:p.getBoundingClientRect().width,scrollWidth:p.scrollWidth,targetTag:target.tagName,targetWidth:target.getBoundingClientRect().width,targetScrollWidth:target.scrollWidth,descendantOverflow:Math.max(0,...[target,...target.querySelectorAll('*')].map(e=>e.scrollWidth-e.clientWidth)),overflowElements:[target,...target.querySelectorAll('*')].filter(e=>e.scrollWidth-e.clientWidth>1).map(e=>({tag:e.tagName,classes:e.className,width:e.clientWidth,scroll:e.scrollWidth,text:e.textContent.slice(0,100)})).slice(0,8)};})()`);
+ if(!exact)throw new Error('missing visual target '+kind);
+ await evaluate('new Promise(resolve=>requestAnimationFrame(()=>requestAnimationFrame(resolve)))');
+ const shot=await call('Page.captureScreenshot',{format:'png'});
+ fs.writeFileSync(root+'/'+'proof-function-'+label+'-'+kind+'.png',Buffer.from(shot.data,'base64'));
+ metadata.push({label,kind,...exact});
+ }
+ sectionMetadata.push(await evaluate(`(() => {
+ const headings=Array.from(document.querySelectorAll('h1,h2,h3,h4,h5,h6'));
+ const heading=headings.find(e=>e.textContent.includes('Quoting a supplied root replay'));
+ if(!heading)throw new Error('missing quotation heading');
+ const following=headings.find(e=>e!==heading && Number(e.tagName[1])<=Number(heading.tagName[1]) && (heading.compareDocumentPosition(e)&4));
+ if(!following)throw new Error('missing following section');
+ const targets=Array.from(document.querySelectorAll('p,.hl.lean.block')).filter(e=>(heading.compareDocumentPosition(e)&4) && (e.compareDocumentPosition(following)&4));
+ if(targets.length<8)throw new Error('incomplete quotation section');
+ return {label:${JSON.stringify(label)},width:innerWidth,targets:targets.map(e=>({tag:e.tagName,text:e.textContent.slice(0,160),overflow:Math.max(0,...[e,...e.querySelectorAll('*')].map(n=>n.scrollWidth-n.clientWidth))}))};
+ })()`));
+ }
+ fs.writeFileSync(root+'/proof-function-section-overflow.json',JSON.stringify(sectionMetadata,null,2));
+ fs.writeFileSync(root+'/proof-function-inspection.json',JSON.stringify(metadata,null,2));
+ if(metadata.some(e=>e.targetScrollWidth>e.targetWidth+1 || e.descendantOverflow>1)) throw new Error('Changed content overflows; retained captures and metrics identify the affected block.');
+ process.stdout.write('Saved root preparation desktop/narrow screenshots\n');
+} finally {if(socket)socket.close();chrome.kill('SIGTERM');}
diff --git a/reports/data/hexrcf-proof-functions/captures/inspection.json b/reports/data/hexrcf-proof-functions/captures/inspection.json
new file mode 100644
index 0000000000..d27a5e90d8
--- /dev/null
+++ b/reports/data/hexrcf-proof-functions/captures/inspection.json
@@ -0,0 +1,86 @@
+[
+ {
+ "label": "desktop",
+ "kind": "introduction",
+ "text": "\n For a dependent match, quotation moves trailing branch-equality proofs along\nthe checked equation for the match's subject. This uses ordinary equality\nelimination with an abstract subject, then instantiates the checked equation.\nMoved proofs are checked separately before later replay steps. The result type\nmust stay fixed. Independent trailing data is retained. A function with one\nproof argument can also move when its result type reduces to a fixed type.\nThe original function is retained and only its proof input is transported.\nOther data indexed by the changed subject or its branch proofs is still refused,\nincluding functions returning such data.\nThe public consumer checks the preserved result:",
+ "viewport": 1440,
+ "scrollY": 287342,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "P",
+ "targetWidth": 752,
+ "targetScrollWidth": 752,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "desktop",
+ "kind": "example",
+ "text": "\n For a dependent match, quotation moves trailing branch-equality proofs along\nthe checked equation for the match's subject. This uses ordinary equality\nelimination with an abstract subject, then instantiates the checked equation.\nMoved proofs are checked separately before later replay steps. The result type\nmust stay fixed. Independent trailing data is retained. A function with one\nproof argument can also move when its result type reduces to a fixed type.\nThe original function is retained and only its proof input is transported.\nOther data indexed by the changed subject or its branch proofs is still refused,\nincluding functions returning such data.\nThe public consumer checks the preserved result:",
+ "viewport": 1440,
+ "scrollY": 287499,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "CODE",
+ "targetWidth": 740,
+ "targetScrollWidth": 740,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "desktop",
+ "kind": "budget",
+ "text": "\n For a dependent match, quotation moves trailing branch-equality proofs along\nthe checked equation for the match's subject. This uses ordinary equality\nelimination with an abstract subject, then instantiates the checked equation.\nMoved proofs are checked separately before later replay steps. The result type\nmust stay fixed. Independent trailing data is retained. A function with one\nproof argument can also move when its result type reduces to a fixed type.\nThe original function is retained and only its proof input is transported.\nOther data indexed by the changed subject or its branch proofs is still refused,\nincluding functions returning such data.\nThe public consumer checks the preserved result:",
+ "viewport": 1440,
+ "scrollY": 287342,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "P",
+ "targetWidth": 752,
+ "targetScrollWidth": 752,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "introduction",
+ "text": "\n For a dependent match, quotation moves trailing branch-equality proofs along\nthe checked equation for the match's subject. This uses ordinary equality\nelimination with an abstract subject, then instantiates the checked equation.\nMoved proofs are checked separately before later replay steps. The result type\nmust stay fixed. Independent trailing data is retained. A function with one\nproof argument can also move when its result type reduces to a fixed type.\nThe original function is retained and only its proof input is transported.\nOther data indexed by the changed subject or its branch proofs is still refused,\nincluding functions returning such data.\nThe public consumer checks the preserved result:",
+ "viewport": 390,
+ "scrollY": 463562,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "P",
+ "targetWidth": 343,
+ "targetScrollWidth": 343,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "example",
+ "text": "\n For a dependent match, quotation moves trailing branch-equality proofs along\nthe checked equation for the match's subject. This uses ordinary equality\nelimination with an abstract subject, then instantiates the checked equation.\nMoved proofs are checked separately before later replay steps. The result type\nmust stay fixed. Independent trailing data is retained. A function with one\nproof argument can also move when its result type reduces to a fixed type.\nThe original function is retained and only its proof input is transported.\nOther data indexed by the changed subject or its branch proofs is still refused,\nincluding functions returning such data.\nThe public consumer checks the preserved result:",
+ "viewport": 390,
+ "scrollY": 463835,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "CODE",
+ "targetWidth": 331,
+ "targetScrollWidth": 331,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "budget",
+ "text": "\n For a dependent match, quotation moves trailing branch-equality proofs along\nthe checked equation for the match's subject. This uses ordinary equality\nelimination with an abstract subject, then instantiates the checked equation.\nMoved proofs are checked separately before later replay steps. The result type\nmust stay fixed. Independent trailing data is retained. A function with one\nproof argument can also move when its result type reduces to a fixed type.\nThe original function is retained and only its proof input is transported.\nOther data indexed by the changed subject or its branch proofs is still refused,\nincluding functions returning such data.\nThe public consumer checks the preserved result:",
+ "viewport": 390,
+ "scrollY": 463562,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "P",
+ "targetWidth": 343,
+ "targetScrollWidth": 343,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ }
+]
\ No newline at end of file
diff --git a/reports/data/hexrcf-proof-functions/captures/proof-function-desktop-budget.png b/reports/data/hexrcf-proof-functions/captures/proof-function-desktop-budget.png
new file mode 100644
index 0000000000..1c3cb13339
Binary files /dev/null and b/reports/data/hexrcf-proof-functions/captures/proof-function-desktop-budget.png differ
diff --git a/reports/data/hexrcf-proof-functions/captures/proof-function-desktop-example.png b/reports/data/hexrcf-proof-functions/captures/proof-function-desktop-example.png
new file mode 100644
index 0000000000..7cdb778610
Binary files /dev/null and b/reports/data/hexrcf-proof-functions/captures/proof-function-desktop-example.png differ
diff --git a/reports/data/hexrcf-proof-functions/captures/proof-function-desktop-introduction.png b/reports/data/hexrcf-proof-functions/captures/proof-function-desktop-introduction.png
new file mode 100644
index 0000000000..1c3cb13339
Binary files /dev/null and b/reports/data/hexrcf-proof-functions/captures/proof-function-desktop-introduction.png differ
diff --git a/reports/data/hexrcf-proof-functions/captures/proof-function-narrow-budget.png b/reports/data/hexrcf-proof-functions/captures/proof-function-narrow-budget.png
new file mode 100644
index 0000000000..bf38efec61
Binary files /dev/null and b/reports/data/hexrcf-proof-functions/captures/proof-function-narrow-budget.png differ
diff --git a/reports/data/hexrcf-proof-functions/captures/proof-function-narrow-example.png b/reports/data/hexrcf-proof-functions/captures/proof-function-narrow-example.png
new file mode 100644
index 0000000000..6eee7dd88c
Binary files /dev/null and b/reports/data/hexrcf-proof-functions/captures/proof-function-narrow-example.png differ
diff --git a/reports/data/hexrcf-proof-functions/captures/proof-function-narrow-introduction.png b/reports/data/hexrcf-proof-functions/captures/proof-function-narrow-introduction.png
new file mode 100644
index 0000000000..bf38efec61
Binary files /dev/null and b/reports/data/hexrcf-proof-functions/captures/proof-function-narrow-introduction.png differ
diff --git a/reports/data/hexrcf-proof-functions/captures/section-overflow.json b/reports/data/hexrcf-proof-functions/captures/section-overflow.json
new file mode 100644
index 0000000000..dcc0b60503
--- /dev/null
+++ b/reports/data/hexrcf-proof-functions/captures/section-overflow.json
@@ -0,0 +1,584 @@
+[
+ {
+ "label": "desktop",
+ "width": 1440,
+ "targets": [
+ {
+ "tag": "P",
+ "text": "\n RootQuote.quote accepts a Lean\nexpression for an Except ε α replay reader, including structured errors. It returns the reconstructed\ndata and",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A scalar decoder may propose an equality for the exact demanded decode. The\nhelper checks its type, dependencies and kernel proof before usin",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For example, this helper continues a request's existing budget and returns the\nupdated usage together with the checked equation:",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSuppliedRoot\n (reader : Expr)\n (scalar : RootQuote.Decoder",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a rational predecessor, RationalQuote.decoder supplies these proposals\nwithout a fixed list of permitted numerators. It recognizes canoni",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteRationalRoot\n (reader registry : Expr)\n (config : Reify.Co",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The registry argument is a Lean expression of type\nHex.RealClosure.BaseContext.Registry. This helper supplies scalar equations;\nit does not r",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The cubic regression reads a\nsupplied replay for X³−3 on the open interval (−8,8). A fresh public consumer\nproves that the accepted descripto",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A reader that rejects its input or replay returns structured invalid-provider\nevidence. Non-readers and unsupported shapes raise terminal exc",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Canonical Element.codec decodes remain protected throughout quotation,\nincluding predecessor decodes with an explicit Element.codec head. Exp",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n All quotation regressions use maxHeartbeats := 12000000. The original root and rational\ncases use maxRecDepth := 8192; scalar, sign-packet, s",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n This API does not register a tactic handler or establish complete root coverage.\nThe acceptance equation alone does not authenticate original",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a coefficient in a selected algebraic extension,\nScalarQuote.quote uses the owner's Element.signCodec with supplied checked\nsign facts, t",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Pass the original, fully applied Element.codec expression, retaining its\nimplicit arguments. Reinferring definitionally equal context aliases",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSuppliedScalar\n (codec facts literal : Expr)\n (predecessor",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The monorepo regression imports HexRCF.ScalarQuoteCases. It decodes the\nnonrational coefficient −2√2 in the existing selected positive √2 con",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.SelectedRootTests in\nopen Hex.RCF.ScalarQuoteTests in\nexample :\n Data.original.value restored =\n -2 * Real.sqrt 2 :=\n restored_value\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The fresh audit rechecks 13 reachable quotation-case theorem bodies, including this value\nidentity, with only the standard three axioms and n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Regressions cover continued/exact/exhausted proof budgets, rollback after the\nstrict stage succeeds, missing or mismatched facts, zero withou",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a polynomial over the same selected extension,\nScalarQuote.quotePolyWith\nquotes the coefficient array through its finite sign reader and ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSuppliedPolynomial\n (reader facts : Expr)\n (predecessor : ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The regression polynomial contains two copies of −2√2. The checked original\nreader restores both positions. Its first coefficient has this or",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.SelectedRootTests in\nopen Hex.RCF.SharedQuoteTests in\nexample :\n Data.original.value\n (restored.coeff 0) =\n -2 * Real.sqrt 2 :=\n valu",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The fresh importing audit pins seven reachable theorem bodies and three data\ndefinitions, their actual owner refinement and supplied sign evi",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RootQuote.runWith supplies the transaction for a sequence of quoteWith\nactions. RootQuote.run supplies it for a reader with DecoderM callback",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n This scalar API does not reconstruct provider or predecessor histories,\nproduce missing signs, or install a general source-goal solver. The s",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n ScalarQuote.decoderWith composes checked scalar decoding through several\nselected-field predecessors. Its lookup receives each exact canonica",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSelectedReader\n (reader registry : Expr)\n (factsFor :\n Expr → Reify.Reify",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The two-level regression checks one visit to its selected context followed by\none visit to its selected predecessor. Its lookup adds 19 sourc",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n An ordinary module consumer also runs the callback factory and exports the\nchecked scalar reader equation. Its sign follows from the owner's ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RecursiveScalarPublic in\nexample : restored.sign = 1 := sign\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A fresh importing audit checks the two-level fixture and this public consumer,\nincluding accepted annotated decodes and a charged decline fol",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n ScalarPacket.quoteWith checks a supplied optional sign-packet reader. Its\nprepared context has a checked equality to the original context; a ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSuppliedSignPacket\n (reader prepared same : Expr)\n (predecessor :\n RootQuote.DecoderM) :=",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The regression quotes the parent descriptor and one packet for the polynomial\n−2X at the selected positive square root of 2. The resulting fa",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RealClosure in\nopen Hex.RCF.SelectedRootTests in\nopen Hex.RCF.SignPacketQuote in\nexample :\n Option.map Data.original.value\n (Except.toOption\n ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Quoting the parent and packet in one request consumes 105,037 proof nodes.\nWith the frozen parent and its equality already available, the pac",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The caller still supplies and authenticates the parent history and packet.\nPredecessor arithmetic retains its supplied implementation; this h",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A separate public-module example quotes a packet for X at the selected real\nroot of X³−3. Its context slots retain closed applications of the",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.PublicSignPacket in\nexample :\n coefficientReal =\n Hex.RCF.RootQuoteTests.realRoot :=\n coefficient_value\n\nopen Hex.RCF.PublicSignPacket in\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a dependent match, quotation moves trailing branch-equality proofs along\nthe checked equation for the match's subject. This uses ordinary",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF in\nexample :\n DependentQuote.continuedFunction =\n some 29 :=\n ProofFunctionPublic.continued\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n During replay-law\nconversion, an explicit checked function boundary is first kept abstract, then instantiated\nwith the actual function and it",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RootHeader.quoteWith\naccepts the complete original RootReplay.readDescriptor application. It quotes\nthat reader, obtains the independently pa",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The public regression constructs a new root and context from that result,\nquotes the sign packet for X with fully numerical graph fields, and",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RootHeaderPacket in\nexample : coefficientReal = realRoot :=\n coefficient_value\n\nopen Hex.RCF.RootHeaderPacket in\nexample : 0 < coefficientReal :=\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The fresh importing audit includes the generated binding, packet reader,\ncoefficient decoding and real-value proofs. It rejects dependencies ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The default quotation rules recognize Signature.codec.decode applied to the\ncanonical encoding of its actual signature argument, using the ex",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.FrozenSignature in\nexample : readFirst.toOption =\n some first :=\n readFirst_checked\n\nopen Hex.RCF.FrozenSignature in\nexample : readSecond.toOpt",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The cubic packet retains frozen numerical node and nested-moment signatures\nfor its rational predecessor. A signature's serialization identit",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RootContext.packWith\nthen assembles an actual native root context from a closed retained parent and\nits checked descriptor. It keeps the exis",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The same decoded coefficient can be interpreted through the owner's ordinary\nreal model of the packed context, retaining its selected value a",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF in\nopen RootContextCases in\nopen RootHeaderPacket in\nexample : model.value coefficient =\n realRoot :=\n value_checked\n\nopen Hex.RCF in\nopen Root",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The packing budget covers context and signature proof construction. Model\nconstruction is checked separately; its cost is not included in tha",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RootPrepare.prepareWith\nprepares the native context of a reconstructed descriptor for subsequent\nquotation. It checks closed inputs and the e",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.RCF.RealCoefficients in\nmeta def prepareRootContext\n (reader clean : Expr)\n (scalar : RootQuote.DecoderM) :\n Reif",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Run this action and subsequent quotation in one RootQuote.runWith request.\nCombine its decoder with the exact predecessor's scalar and signat",
+ "overflow": 0
+ }
+ ]
+ },
+ {
+ "label": "narrow",
+ "width": 390,
+ "targets": [
+ {
+ "tag": "P",
+ "text": "\n RootQuote.quote accepts a Lean\nexpression for an Except ε α replay reader, including structured errors. It returns the reconstructed\ndata and",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A scalar decoder may propose an equality for the exact demanded decode. The\nhelper checks its type, dependencies and kernel proof before usin",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For example, this helper continues a request's existing budget and returns the\nupdated usage together with the checked equation:",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSuppliedRoot\n (reader : Expr)\n (scalar : RootQuote.Decoder",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a rational predecessor, RationalQuote.decoder supplies these proposals\nwithout a fixed list of permitted numerators. It recognizes canoni",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteRationalRoot\n (reader registry : Expr)\n (config : Reify.Co",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The registry argument is a Lean expression of type\nHex.RealClosure.BaseContext.Registry. This helper supplies scalar equations;\nit does not r",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The cubic regression reads a\nsupplied replay for X³−3 on the open interval (−8,8). A fresh public consumer\nproves that the accepted descripto",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A reader that rejects its input or replay returns structured invalid-provider\nevidence. Non-readers and unsupported shapes raise terminal exc",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Canonical Element.codec decodes remain protected throughout quotation,\nincluding predecessor decodes with an explicit Element.codec head. Exp",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n All quotation regressions use maxHeartbeats := 12000000. The original root and rational\ncases use maxRecDepth := 8192; scalar, sign-packet, s",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n This API does not register a tactic handler or establish complete root coverage.\nThe acceptance equation alone does not authenticate original",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a coefficient in a selected algebraic extension,\nScalarQuote.quote uses the owner's Element.signCodec with supplied checked\nsign facts, t",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Pass the original, fully applied Element.codec expression, retaining its\nimplicit arguments. Reinferring definitionally equal context aliases",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSuppliedScalar\n (codec facts literal : Expr)\n (predecessor",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The monorepo regression imports HexRCF.ScalarQuoteCases. It decodes the\nnonrational coefficient −2√2 in the existing selected positive √2 con",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.SelectedRootTests in\nopen Hex.RCF.ScalarQuoteTests in\nexample :\n Data.original.value restored =\n -2 * Real.sqrt 2 :=\n restored_value\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The fresh audit rechecks 13 reachable quotation-case theorem bodies, including this value\nidentity, with only the standard three axioms and n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Regressions cover continued/exact/exhausted proof budgets, rollback after the\nstrict stage succeeds, missing or mismatched facts, zero withou",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a polynomial over the same selected extension,\nScalarQuote.quotePolyWith\nquotes the coefficient array through its finite sign reader and ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSuppliedPolynomial\n (reader facts : Expr)\n (predecessor : ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The regression polynomial contains two copies of −2√2. The checked original\nreader restores both positions. Its first coefficient has this or",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.SelectedRootTests in\nopen Hex.RCF.SharedQuoteTests in\nexample :\n Data.original.value\n (restored.coeff 0) =\n -2 * Real.sqrt 2 :=\n valu",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The fresh importing audit pins seven reachable theorem bodies and three data\ndefinitions, their actual owner refinement and supplied sign evi",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RootQuote.runWith supplies the transaction for a sequence of quoteWith\nactions. RootQuote.run supplies it for a reader with DecoderM callback",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n This scalar API does not reconstruct provider or predecessor histories,\nproduce missing signs, or install a general source-goal solver. The s",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n ScalarQuote.decoderWith composes checked scalar decoding through several\nselected-field predecessors. Its lookup receives each exact canonica",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSelectedReader\n (reader registry : Expr)\n (factsFor :\n Expr → Reify.Reify",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The two-level regression checks one visit to its selected context followed by\none visit to its selected predecessor. Its lookup adds 19 sourc",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n An ordinary module consumer also runs the callback factory and exports the\nchecked scalar reader equation. Its sign follows from the owner's ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RecursiveScalarPublic in\nexample : restored.sign = 1 := sign\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A fresh importing audit checks the two-level fixture and this public consumer,\nincluding accepted annotated decodes and a charged decline fol",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n ScalarPacket.quoteWith checks a supplied optional sign-packet reader. Its\nprepared context has a checked equality to the original context; a ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSuppliedSignPacket\n (reader prepared same : Expr)\n (predecessor :\n RootQuote.DecoderM) :=",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The regression quotes the parent descriptor and one packet for the polynomial\n−2X at the selected positive square root of 2. The resulting fa",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RealClosure in\nopen Hex.RCF.SelectedRootTests in\nopen Hex.RCF.SignPacketQuote in\nexample :\n Option.map Data.original.value\n (Except.toOption\n ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Quoting the parent and packet in one request consumes 105,037 proof nodes.\nWith the frozen parent and its equality already available, the pac",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The caller still supplies and authenticates the parent history and packet.\nPredecessor arithmetic retains its supplied implementation; this h",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A separate public-module example quotes a packet for X at the selected real\nroot of X³−3. Its context slots retain closed applications of the",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.PublicSignPacket in\nexample :\n coefficientReal =\n Hex.RCF.RootQuoteTests.realRoot :=\n coefficient_value\n\nopen Hex.RCF.PublicSignPacket in\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a dependent match, quotation moves trailing branch-equality proofs along\nthe checked equation for the match's subject. This uses ordinary",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF in\nexample :\n DependentQuote.continuedFunction =\n some 29 :=\n ProofFunctionPublic.continued\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n During replay-law\nconversion, an explicit checked function boundary is first kept abstract, then instantiated\nwith the actual function and it",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RootHeader.quoteWith\naccepts the complete original RootReplay.readDescriptor application. It quotes\nthat reader, obtains the independently pa",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The public regression constructs a new root and context from that result,\nquotes the sign packet for X with fully numerical graph fields, and",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RootHeaderPacket in\nexample : coefficientReal = realRoot :=\n coefficient_value\n\nopen Hex.RCF.RootHeaderPacket in\nexample : 0 < coefficientReal :=\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The fresh importing audit includes the generated binding, packet reader,\ncoefficient decoding and real-value proofs. It rejects dependencies ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The default quotation rules recognize Signature.codec.decode applied to the\ncanonical encoding of its actual signature argument, using the ex",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.FrozenSignature in\nexample : readFirst.toOption =\n some first :=\n readFirst_checked\n\nopen Hex.RCF.FrozenSignature in\nexample : readSecond.toOpt",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The cubic packet retains frozen numerical node and nested-moment signatures\nfor its rational predecessor. A signature's serialization identit",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RootContext.packWith\nthen assembles an actual native root context from a closed retained parent and\nits checked descriptor. It keeps the exis",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The same decoded coefficient can be interpreted through the owner's ordinary\nreal model of the packed context, retaining its selected value a",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF in\nopen RootContextCases in\nopen RootHeaderPacket in\nexample : model.value coefficient =\n realRoot :=\n value_checked\n\nopen Hex.RCF in\nopen Root",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The packing budget covers context and signature proof construction. Model\nconstruction is checked separately; its cost is not included in tha",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RootPrepare.prepareWith\nprepares the native context of a reconstructed descriptor for subsequent\nquotation. It checks closed inputs and the e",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.RCF.RealCoefficients in\nmeta def prepareRootContext\n (reader clean : Expr)\n (scalar : RootQuote.DecoderM) :\n Reif",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Run this action and subsequent quotation in one RootQuote.runWith request.\nCombine its decoder with the exact predecessor's scalar and signat",
+ "overflow": 0
+ }
+ ]
+ }
+]
\ No newline at end of file
diff --git a/reports/data/hexrcf-proof-functions/context.json b/reports/data/hexrcf-proof-functions/context.json
new file mode 100644
index 0000000000..13c8c0e020
--- /dev/null
+++ b/reports/data/hexrcf-proof-functions/context.json
@@ -0,0 +1,498 @@
+{
+ "source_commit": "08d2995bb5c1758eb3f6152fecf5f113770e8577",
+ "source_tree": "efdf6d5fc522ec548ef4003a1923a5a8751dd6eb",
+ "baseline_commit": "1b0f2458263a6e015f66a5c6c07a843a072f2a81",
+ "sources": {
+ ".github/workflows/ci.yml": "bf3ef0c4e00ef2397ef5857a629a391e24252b864c093198b08775b6977c563d",
+ "AGENTS.md": "4e0a48cf49a61e56ed84c8b28e232b5bfad29f2da20571377692be6e1c316f30",
+ "HexManual/Chapters/HexRCF/RootQuote.lean": "c8336449aa893bc7cf0faa08330094aa3665250fdb1c7ef3c2be30a919871022",
+ "HexManual/Chapters/HexRCF/RootTableQuote.lean": "aa5d2852783c831240dd41b35cb2373c02581ecf59b1ddb081ad889603492c08",
+ "HexRCF/README.md": "3830d758a8a75d59df1a6dd01f59204a86858b5eda3e43a78f9e9e9c2d769a8a",
+ "HexRCF/SPEC/hex-rcf.md": "df8c6bb2435a2794faa36bc77e41f4c936f06ae149f29c3e68fe0d79f4ebfafb",
+ "HexRCF/Tactic.lean": "09d895ba1dd2c1af0bfffca197494f2614380ded268ff13e4e0b02fea22b9224",
+ "HexRealClosure/Algebraic.lean": "d05f9fb72fe9544ae9ddc685dff17080f876aa4c99c70e8992d511e011f6a454",
+ "HexRealClosure/ContextData.lean": "ca29790752b8d25f10d03a9877690a5ff40f1fdf6815c96fe9693941206e662c",
+ "HexRealClosure/SignCodec.lean": "7126323c97b77204386795a0f252f1babfd0ed7f3dba7ee3927a99b9d5c1852a",
+ "HexRealClosure/SignFacts.lean": "9c22837e93e6f50cc96310163e352ac608fbcfbd6275edab33751da2fd84f47c",
+ "HexRealClosure/SignatureCodecTests.lean": "ffc72777523ac0e92b563481804bdfb581fb0173fe7a021009737d57959b4462",
+ "HexRealClosure/TowerContext.lean": "6ef8b87b2d81cb177505a4bbc88befa078b20578cedd49e836d850753c203ee3",
+ "PLAN.md": "e94a60324486913b4a04650edd617c4ff8bef469dc7fd311adea8407c6662ea0",
+ "SPEC/real-closure-execution.md": "bc0948ad7de6969baaed89c0b3052cb0d21d64d634f8a336f9a7dde446b057f5",
+ "adapters/HexRCF/RealCoefficients.lean": "f16eff0302ef0296fc034f59619d232be1921c2f06247dca69db4c53c06c68de",
+ "adapters/HexRCF/RealCoefficients/RationalQuote.lean": "675e2ba065b696f257adefc07fe30ddb0190f321d86005444579ea5a0744bdf5",
+ "adapters/HexRCF/RealCoefficients/RealModel.lean": "712b4fd3edff8eaa6f93e501da5debf04529d1ea8c11a18389820f866d179c43",
+ "adapters/HexRCF/RealCoefficients/Reify.lean": "ea8474b9e253f93a1583064ca99ec0bf376dadf5457fd60b57e9e18460cf449c",
+ "adapters/HexRCF/RealCoefficients/RootContext.lean": "792176eab63e5e62b759a10893569946ef6d019566b8116c85237b3e16fcdb86",
+ "adapters/HexRCF/RealCoefficients/RootHeader.lean": "681f2a964bc30f65a92a0fb1a58b4d4013eb396df37ca813962702065fb46261",
+ "adapters/HexRCF/RealCoefficients/RootPrepare.lean": "de72a8e3ac4adb13365801476467bf691e630d0952b018ccecd88846c3bdb025",
+ "adapters/HexRCF/RealCoefficients/RootQuote.lean": "05697fa71e0733b235068b36cd13019c598132cf26dd44a3f5d380f118843e94",
+ "adapters/HexRCF/RealCoefficients/ScalarPacket.lean": "9ae62bea85dab43ec01329defa9f788af4843e74b24f40f6c6f1b28adaadc6bf",
+ "adapters/HexRCF/RealCoefficients/ScalarQuote.lean": "fee2617a998f29d05c8959b484060ac1d719359c6d851a8ff6699fa9cb370acc",
+ "adapters/HexRCF/RealCoefficients/SignatureQuote.lean": "c3bb71b52c2a544b902bc256b3a162e1c3c4e7f94ae6b21808914e67109710eb",
+ "adapters/HexRealClosureTheory/Algebraic.lean": "2495153acbe4e468521913a2f5d6569831cd05f5ee48d5ddb26fc31a43438c7e",
+ "adapters/HexRealClosureTheory/SignFacts.lean": "c2b8cf96de0cccc2c0c3cbe83f0afd7c40ab9736b75f377ec5bfedc0907f34e3",
+ "adapters/HexRealClosureTheory/TowerModel.lean": "70d0e57e8ecc78eb9b7675d875157462d27cf9494d49d72bba019eaa6dd1d788",
+ "conformance/HexRCF/DependentQuote.lean": "0df154544a17857334480e7c577ecbcf1afe04165fa2da1a5a6407bf41e85518",
+ "conformance/HexRCF/DependentQuoteData.lean": "ed254475e78fa6edb27d4e55222a598b07b7357154ea0495d6195f2f1d39ee46",
+ "conformance/HexRCF/DependentQuoteProofs.lean": "c822398c16486df21f20d1680246171f53ff859c0dcb7278a86b8d8f3cf2938f",
+ "conformance/HexRCF/DependentScalarProofs.lean": "9e8da19d71e1496babd31ecb13430d74abb5f383738d47cbc1bc066b27902cfe",
+ "conformance/HexRCF/DependentScalarQuote.lean": "e20dd7346c337dd17126c394965f268e568706730f475844d7c0907051224933",
+ "conformance/HexRCF/FrozenSignatureConformance.lean": "8e7d432aecb87fb89bb188e4c579e86fb5c3348c5430f1e2b1a00f1f820a940e",
+ "conformance/HexRCF/FrozenSignatureProofs.lean": "55de6da9b0b3dc2d1e384d6c838d13294287c44060afb8e70aa2a0c8e01a81cb",
+ "conformance/HexRCF/ProofFunctionPublic.lean": "f928c9f0dd0a704d34a516b6282cfa6a7a4eb6c112d49689c450647a44370a6b",
+ "conformance/HexRCF/PublicSignPacket.lean": "c32d73c5634376907b965e1ea6cf69352fdda1f1945ce2f34a378cc217778102",
+ "conformance/HexRCF/PublicSignPacketControls.lean": "b4f98bd8ef190a361dd7752d4d5ece0cfbd862ff4face5a06dfabecf87096028",
+ "conformance/HexRCF/PublicSignPacketProofs.lean": "1889c6da5afae5ab2324e88aa06d7148a3f305af347e0b86507a8d5f3801a92d",
+ "conformance/HexRCF/PublicSignPacketValues.lean": "72705dba30f04f986188903fb49b983c6f0a664895116fca8bd8b6b46b6517e5",
+ "conformance/HexRCF/RationalQuoteConformance.lean": "947d8da0a708a95cca5334682e3084c505c9c16e645c3763bfbda0adb53a36b6",
+ "conformance/HexRCF/RootContextConformance.lean": "0c52084609ec3de8afd51330a7d2cc97f7bae1d8b2bbc421138783940fc7db37",
+ "conformance/HexRCF/RootContextProofs.lean": "5c4d52f98b5cd720e7f7cc6822da91b6bc80b3213fa6ba87b3b3acd19d5e274a",
+ "conformance/HexRCF/RootHeaderBudget.lean": "db30b6b7781fabd238ea2c934477e5ae281cc6cd905f11848ce46eb66ef45fe0",
+ "conformance/HexRCF/RootHeaderControls.lean": "aca063af3bfe475166aef92193f162c25a0e53eea094087cf334406a3d513157",
+ "conformance/HexRCF/RootHeaderPacket.lean": "e924a3b799cfff2573e2861e3533be94147a6505aa11837a99dc8985ba0ae7dc",
+ "conformance/HexRCF/RootHeaderProofs.lean": "92eb1c4e4fd785543286fc1d3ad8fad11dccac57e5267893a12a87ba37d77410",
+ "conformance/HexRCF/RootHeaderValues.lean": "de9a8fc7c2e9371cbd3324eb700180411e49865dbc6535a74d2c882f74e38e13",
+ "conformance/HexRCF/RootPrepareControls.lean": "5a6e3731eac813867b34e9f902a2f7d5f090b2fae6af9c2b859a3be76b68ae85",
+ "conformance/HexRCF/RootPreparePacket.lean": "e33b5b2921ec13559eb4d6b1d8a3f3cc5ccfd4dd7deb66753806c3f3b39e7a8b",
+ "conformance/HexRCF/RootPrepareProofs.lean": "0acb47e3bb5175f6cb4af362bdc53a5e995b8534850c88298b7230b07cc02988",
+ "conformance/HexRCF/RootPreparePublic.lean": "a9e09cbe8d1287b97dde71ad1c6dbe149cfbacb6f81f41a8493ee802416d0805",
+ "conformance/HexRCF/RootQuoteCases.lean": "602d15ef501e969183bffbda7fb3c0f00a174ba5c2dbc35370ee7fce896944dd",
+ "conformance/HexRCF/RootQuoteConformance.lean": "e329ff2abf7d26cdccdaa63c8c25154c4af50493cd288b35b731efb586957b5f",
+ "conformance/HexRCF/RootQuoteData.lean": "faa259d129d5c65a063c7143e45d5d9d19573ed49862aa5ecb3978ff389cb514",
+ "conformance/HexRCF/RootQuoteSource.lean": "aca1654efc1a452aca8ef573bb8ea3a435a4e1e18a4dca854d9bcc8e350d511d",
+ "conformance/HexRCF/RootTableQuote/Conformance.lean": "b81a7a36691d81c8c29d312b4522f04330d857db1bbee17e819d671bbba1a3a9",
+ "conformance/HexRCF/SelectedRoot/KernelCheck.lean": "12e7e2e3f4667a76dc89c4b36796bff177f3c187b81adc5eb5e049ff1ce6669d",
+ "conformance/HexRCF/SignPacketProofs.lean": "86f2e8740de57e74fae8029059a1607818105d3bf4028bb4f902145ef328cd18",
+ "conformance/HexRCF/SignPacketQuote.lean": "f75edcf7edc30beb0bc5e401b3b23f7d5275bf26bdaa96f8b0bb36b51964abfb",
+ "conformance/HexRCF/SignatureQuoteConformance.lean": "26f16c37cb9e0d5c09a082787f4a66673437adbf998023fd5e9625db16ff5d3f",
+ "experiments/KernelReplay/AxiomClosure.lean": "f49377265f05f52b633b10a59255a03731e08d022cc54763de9851c5b5325034",
+ "lake-manifest.json": "fd2dc4df30cd44e4d30568489d616e7bcc8a78747500139134be56f35ae746a4",
+ "lakefile.lean": "6f8d87a3e67eadb0620aa5ce1136189cfabf8c4c0468953a08b56ba4320e9733",
+ "lean-toolchain": "bc84812c94489d1e3e191baa1dc10d5eb684382d7fe9d2a5ab085e72c1c67e47",
+ "libraries.yml": "14e3dd1c01bb0c369b2216e2733378d61172040fd9f69dd0354d4e1267d9c5c1",
+ "reports/hexrcf-packet-quotation.md": "2b0f0b40a29fe3232ee588ec06b3bdfefb2facced7327049c8ad1cd70b6ca35e",
+ "reports/hexrcf-proof-functions.md": "ff410e9c4714476913d5651dd04d61a7ec55289b6143a6b1d29ccda331cd8989",
+ "reports/hexrcf-public-packet-quotation.md": "019ff6fe31e6699ec10e126a1d477a6a4b4f78b67893b5ce447cfe2aa637b316",
+ "reports/hexrcf-root-context.md": "fa967a71370454f5d1fcdb757ebf6ab6fa669538f253c3cc6cb6b6f826361c8a",
+ "reports/hexrcf-root-header-quotation.md": "62ecb8f293a9144b8a8a0bdc4910c473bd87063162bb656b94f1be53eb2e4617",
+ "reports/hexrcf-root-preparation.md": "23b6fc84e7b54447e224a166228f275f9ad239c90b2c6c8e4ea38d2f93e55cef",
+ "reports/hexrcf-sign-packet-quotation.md": "64adc6438ad1593d1018e14f2757cb6193614db26141af9c0c76d359084d9d99"
+ },
+ "unchanged_guards": [
+ "conformance/HexRCF/SelectedRoot/KernelCheck.lean",
+ "experiments/KernelReplay/AxiomClosure.lean",
+ "AGENTS.md",
+ "PLAN.md",
+ ".github/workflows/ci.yml"
+ ],
+ "artifacts": [
+ {
+ "path": "validation/proof-function-integration-1.log.gz",
+ "bytes": 22170,
+ "sha256": "673b3bb9f7316331e82c4636c8985454aa4ca63cec435053c17cd7e8685509ba",
+ "uncompressed_sha256": "52b576831bd6eb12cc6c48906b1ce8ee7a143145bfc687c211ac6599693ceb1b"
+ },
+ {
+ "path": "validation/proof-function-ci-fix-1.log.gz",
+ "bytes": 16473,
+ "sha256": "bab08c1cba17a6b0b5bc03b2c2d7f806de5d618467bfc8bd22f6cf6d21f58a1b",
+ "uncompressed_sha256": "732c336e6e940bd40d12e7c3628075f4a2d204260a785031ebd3f7ede6be27ac"
+ },
+ {
+ "path": "validation/proof-function-render-1.log.gz",
+ "bytes": 15512,
+ "sha256": "b3ca825b2af4d92c54c45986580614cd99914a415d96247629c950aea26209e3",
+ "uncompressed_sha256": "3fc2d77c12a21d2fd6ee722d3543575f3d32cc2b5b2c024073002dc46754a75d"
+ },
+ {
+ "path": "validation/proof-function-browser-1.log.gz",
+ "bytes": 240,
+ "sha256": "5c8bbb02468cc1e485d8920e57426526b379b7c4a4794caf54675c4dc01b3f94",
+ "uncompressed_sha256": "2957fc5e5cab3ca0c3cba9c5606caa581621966166750d792679fb0a9c50d6c4"
+ },
+ {
+ "path": "validation/metadata.json",
+ "bytes": 1169,
+ "sha256": "f7bdf6cd0ed95646565025db0c417f526bbe0ead6e4a31c907aaf11457ff325a"
+ },
+ {
+ "path": "validation/root-preparation-metadata-copyright.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "validation/root-preparation-metadata-lines.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "validation/root-preparation-metadata-dag.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "validation/root-preparation-metadata-admissions.log.gz",
+ "bytes": 100,
+ "sha256": "86c87a2ada5a49d30e4cd149bf8df52d3fb00b84114c38699923e6ac6e77bb5a",
+ "uncompressed_sha256": "8bf794423604b32f2d2d8a505029ff9a7cf277c93c236dccff21af2e2aeaefb1"
+ },
+ {
+ "path": "validation/root-preparation-metadata-diff.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "validation/root-preparation-metadata-selected-admissions.log.gz",
+ "bytes": 133,
+ "sha256": "1405cc2b2156018bf49c50518e8faccc0240f2e5b43bf48d5bceea648365b74a",
+ "uncompressed_sha256": "7f3d330bbdf59b88d2146c4317bbcc6c71b980747b55379b17857d002820a541"
+ },
+ {
+ "path": "validation/root-preparation-metadata-relative.log.gz",
+ "bytes": 105,
+ "sha256": "062b52219d29d18306b47fdf7ad2e5f614ce51c51932b3b9ba5acd34d2cb18d1",
+ "uncompressed_sha256": "41f5de6b16d6fd3bef7c9c9b05e501770404bca9d3b8166ba2463c2e09e6ceda"
+ },
+ {
+ "path": "validation/memory-policy.txt.gz",
+ "bytes": 242,
+ "sha256": "be57345ae3b27a8145cfa645e9bab52c9cec6135fbeb86816b83c71e6ac98405",
+ "uncompressed_sha256": "bcd60928bece986758499f7160c443b9a722ebe3ab645c2038a0968c19ed3b55"
+ },
+ {
+ "path": "validation/run-bounded.sh",
+ "bytes": 302,
+ "sha256": "63bc5f97337e6b039bb3a9b1ba2a500be96fd1c2a2f73b43dae284aa9b18dda8"
+ },
+ {
+ "path": "validation/metadata-driver.py.txt",
+ "bytes": 3289,
+ "sha256": "2fd7de57f5635663232a04e6b4f61d5451879e10bf71030f62a7c0183abc3737"
+ },
+ {
+ "path": "captures/browser.mjs",
+ "bytes": 5736,
+ "sha256": "32153fe9811d4cf82eaa3ce47107619ae9245f5aa013ad9127fb59c718a68eeb"
+ },
+ {
+ "path": "captures/inspection.json",
+ "bytes": 6208,
+ "sha256": "090cfaf70fe8738f3788b0ba05712bbaebe0e85954aee31b0f8103ba0c9bdfce"
+ },
+ {
+ "path": "captures/section-overflow.json",
+ "bytes": 27594,
+ "sha256": "51d9084076fef33683314dfa51d1acec3b38db2919771348248722f7061557fd"
+ },
+ {
+ "path": "validation/render.lean.txt",
+ "bytes": 206,
+ "sha256": "664d37e07421cd5f5ee5df6e4fdb3f18fb67b1e58e3688267ff6ca6909180ef3"
+ },
+ {
+ "path": "validation/render-lakefile.lean.txt",
+ "bytes": 1941,
+ "sha256": "12900a1c277823f6d427e03b02494685a22e6bcb6491e2d1c1ba771f353c1f60"
+ },
+ {
+ "path": "validation/render-lake-manifest.json",
+ "bytes": 6334,
+ "sha256": "6ee53eeef0c9336cd671e6bc4605ca7e097b73af8541fc2bdb92a941dc3974d2"
+ },
+ {
+ "path": "captures/proof-function-desktop-introduction.png",
+ "bytes": 271812,
+ "sha256": "3f7dccf5e94fb62b50c16b5488eba7c40877d704517cb7649f48a412f262ff69"
+ },
+ {
+ "path": "captures/proof-function-desktop-example.png",
+ "bytes": 274955,
+ "sha256": "85cc63b662232da1ed859a22622ce48583249d81dd081848e49338763b31e737"
+ },
+ {
+ "path": "captures/proof-function-desktop-budget.png",
+ "bytes": 271812,
+ "sha256": "3f7dccf5e94fb62b50c16b5488eba7c40877d704517cb7649f48a412f262ff69"
+ },
+ {
+ "path": "captures/proof-function-narrow-introduction.png",
+ "bytes": 91857,
+ "sha256": "127c6fa6392275c08567ca6d37c3985fbadc0616359a096cfad411a5455ebe74"
+ },
+ {
+ "path": "captures/proof-function-narrow-example.png",
+ "bytes": 95022,
+ "sha256": "ef7275344b2c6c6ed8f68a0fbf63a3d763a0904c7515bea81d66041b28a34b31"
+ },
+ {
+ "path": "captures/proof-function-narrow-budget.png",
+ "bytes": 91857,
+ "sha256": "127c6fa6392275c08567ca6d37c3985fbadc0616359a096cfad411a5455ebe74"
+ },
+ {
+ "path": "diagnostics/fresh-complete-quote-1.log.gz",
+ "bytes": 7695,
+ "sha256": "c4da8615873e7373395e699514d46276c2e12292b955869a62ac1eccef5fcdf5",
+ "uncompressed_sha256": "d447999e51ecf17d8a56ddb71fceb0949bdfca02718af6e8c977b1e40583e40f"
+ },
+ {
+ "path": "diagnostics/fresh-complete-quote-10.log.gz",
+ "bytes": 7646,
+ "sha256": "a9436d39014551642424efef530c955bf5af5da4cf4cf0153d75d702efa071eb",
+ "uncompressed_sha256": "db920bf2eb6ddac1aca7d3d17c1b807e4e759280aecfbe2109fb1fc284ba2cc7"
+ },
+ {
+ "path": "diagnostics/fresh-complete-quote-11.log.gz",
+ "bytes": 8829,
+ "sha256": "9fd9720edea818dcdfd46d545f57b035cf10bd7cd62ae3a6d47aad323000d45f",
+ "uncompressed_sha256": "f6c4223c929fbbe185dc5f10942513dfc15df02adb84aa1a74e14ee4b8e8ea70"
+ },
+ {
+ "path": "diagnostics/fresh-complete-quote-2.log.gz",
+ "bytes": 7599,
+ "sha256": "b9c5b5f6fafe8acef5a02b1438484a06406f2415b2cd7d97fa96b3682addc733",
+ "uncompressed_sha256": "fa7c016fc0e0a6b826e69a1ca4f562598fc747234d9c656dcabd8c2e0c2e092d"
+ },
+ {
+ "path": "diagnostics/fresh-complete-quote-3.log.gz",
+ "bytes": 7576,
+ "sha256": "54567c484d96f9af99422f93232cced4a9e6e12a5756e051f04abfd152e5073d",
+ "uncompressed_sha256": "49c165f3746e89e6024ca0f3c8f44f27315811d480ab64b766ec343b22d6a062"
+ },
+ {
+ "path": "diagnostics/fresh-complete-quote-4.log.gz",
+ "bytes": 7677,
+ "sha256": "4be13fb6647b83fcb2a6144501307f4dbe9dcf01b68dacb2a69c460df43e481d",
+ "uncompressed_sha256": "fe3996f661d1e6cc668f9cd923f7eab6f9121687d57935e51fd376557faea918"
+ },
+ {
+ "path": "diagnostics/fresh-complete-quote-5.log.gz",
+ "bytes": 7708,
+ "sha256": "5c68b6f460434e4319b7fe668b27b0f92153571fc074886f51f6d5bc553f34c5",
+ "uncompressed_sha256": "b3b68cfbce81a80bc36df72ac0d9deea78c45e9ff21ae37ebe2d65d772a6718a"
+ },
+ {
+ "path": "diagnostics/fresh-complete-quote-6.log.gz",
+ "bytes": 7720,
+ "sha256": "d1e2aa3d0529c98d5c093e1175f3928174d18baa1f28c24926c5d56821388c8d",
+ "uncompressed_sha256": "dd108ee66b9506aee088364508a483cb1b5e322d0b57b47e12573b603dcca39c"
+ },
+ {
+ "path": "diagnostics/fresh-complete-quote-7.log.gz",
+ "bytes": 7676,
+ "sha256": "38c77b32cb8f259956aa4f25eb0201c25f25d31b4e174a78de6193d6649a6e98",
+ "uncompressed_sha256": "95782b45785507f72a671c736d81ef0a2fb9491241c1742a17b881d2bdb53d62"
+ },
+ {
+ "path": "diagnostics/fresh-complete-quote-8.log.gz",
+ "bytes": 7712,
+ "sha256": "c92d65d2f56027f2c27e9a5d0b19ba623d3fd11c03e1152e55e17ddde420e104",
+ "uncompressed_sha256": "ea68045dab53480545f811e71ecb5e13ccf3875dbb7c1742f676a07ba79bdc1c"
+ },
+ {
+ "path": "diagnostics/fresh-complete-quote-9.log.gz",
+ "bytes": 7610,
+ "sha256": "07f70ebf6fe17652210a4dc816d37f9b944020c39a0436aeb15534be9b02ec41",
+ "uncompressed_sha256": "ec4f27d2b1b37ca143984ece7f986b2d6d0b9bf4ad5f79b5434c7554aa0aa660"
+ },
+ {
+ "path": "diagnostics/fresh-complete-frozen-1.log.gz",
+ "bytes": 8724,
+ "sha256": "2b725b93e0acfaf4c7da042b5d97924f577d1895f5f6e9346e73381606520128",
+ "uncompressed_sha256": "ba4dc90a125a042300bbbf90c433599a98517992db7cfbaeae6060f141104835"
+ },
+ {
+ "path": "diagnostics/fresh-complete-frozen-2-stack.log.gz",
+ "bytes": 1697,
+ "sha256": "cbb4dd04fc91a992c5ade3d665536e6fc81c8cd53e0e765473794d72a9387fc6",
+ "uncompressed_sha256": "4a3fb20fdb47aa8d8a6cf2889e7c42bb24119271d471ffa2efd5f2d6cb86836c"
+ },
+ {
+ "path": "diagnostics/fresh-complete-frozen-2.log.gz",
+ "bytes": 7570,
+ "sha256": "63dafea1e0cba86e4449871f9e0a09fef6ae29d61c57ab2652aa2a42b33c21ab",
+ "uncompressed_sha256": "c9abcd2994623404604abcaee16304fde4885ff93582dc8b0d740c48a135c188"
+ },
+ {
+ "path": "diagnostics/fresh-complete-frozen-3-progress.log.gz",
+ "bytes": 116,
+ "sha256": "fe66bb18c3c59aceaf74f7b19524c2d5064c957da5a58250daf4824a0dde3a60",
+ "uncompressed_sha256": "59bd15808abcdfe81e09936f28a3e0c1088c76fb6454e046d135f202412efff0"
+ },
+ {
+ "path": "diagnostics/fresh-complete-frozen-3-stack.log.gz",
+ "bytes": 2310,
+ "sha256": "99710a98b319ef4b58a1fc703a9f86fcf61c5b088281214cb5e7463a3f1aa4b1",
+ "uncompressed_sha256": "5db83441d9bf7963de713ac2417a29b9838db95459d672d7352786e684df092b"
+ },
+ {
+ "path": "diagnostics/fresh-complete-frozen-3.log.gz",
+ "bytes": 7660,
+ "sha256": "122c92662cca47135f72d013b2cc6743b748ef847dab5cbe9e2e1269d50b161e",
+ "uncompressed_sha256": "2cee46b57f85ae19305f358cc37c4c5215b07df60758fcce92436d031f64905b"
+ },
+ {
+ "path": "diagnostics/fresh-complete-frozen-4-progress.log.gz",
+ "bytes": 116,
+ "sha256": "fe66bb18c3c59aceaf74f7b19524c2d5064c957da5a58250daf4824a0dde3a60",
+ "uncompressed_sha256": "59bd15808abcdfe81e09936f28a3e0c1088c76fb6454e046d135f202412efff0"
+ },
+ {
+ "path": "diagnostics/fresh-complete-frozen-4.log.gz",
+ "bytes": 7687,
+ "sha256": "7cde3946329cae03b0dbf3c53736e06f60bb3deba83e4afcdd40cfd915677916",
+ "uncompressed_sha256": "3123f45efd92409c2537e94243a677f8683b3eeb1cf66d019d6c6346f87c229e"
+ },
+ {
+ "path": "diagnostics/fresh-complete-frozen-5-progress.log.gz",
+ "bytes": 747,
+ "sha256": "8faea8d5dc4a677773fa2c2ded5b19ab0f76cd13eda5d9ea810146daa992e009",
+ "uncompressed_sha256": "7c359695f43a2a4bc24bd1a87af171cec053b0402d9ba8eab90667b3612d3bdc"
+ },
+ {
+ "path": "diagnostics/fresh-complete-frozen-5.log.gz",
+ "bytes": 7633,
+ "sha256": "34d01b17a9de48ea561c963d4b450ec3ffcd9311a1814c1ac34b7c688f04b1ed",
+ "uncompressed_sha256": "8a7573439a0b3dd675a4aad615ec4ebcac19e5aa4b4110e3fcfa01034cc386c1"
+ },
+ {
+ "path": "diagnostics/fresh-complete-frozen-2.lean.txt.gz",
+ "bytes": 1320,
+ "sha256": "b1dbc3aabd11f1be8c871697f4f5f94388186ca0fdb08b2a5f363e4df67c778b",
+ "uncompressed_sha256": "17936e9950254707024c0e6bb2ab267cd6aaf2f27faea64e543550b25a80d671"
+ },
+ {
+ "path": "diagnostics/fresh-complete-frozen-4.lean.txt.gz",
+ "bytes": 1667,
+ "sha256": "0b5aa67436b1224261e67f479f07c87d22372dffb80327cf17209bccbfc2c65a",
+ "uncompressed_sha256": "893e390cfcfc1fb185f5f4628e0f8604a99225d6e17fc497d4e385cd419addf9"
+ },
+ {
+ "path": "diagnostics/fresh-complete-frozen-5.lean.txt.gz",
+ "bytes": 1816,
+ "sha256": "3a8c9455401c367e918a80e950b99db1b542cf5ab5cfe12f5a397a98f69268f1",
+ "uncompressed_sha256": "af0f60ea175e5b6f66baf57650e3ecd8de1ce16f4a9fd7c032627dc9cb7ecea5"
+ },
+ {
+ "path": "diagnostics/fresh-complete-quote-1.lean.txt.gz",
+ "bytes": 845,
+ "sha256": "c6cf17c4de118eb87fb2bc3b426399a27c1173cd161aa6729265a78d63b84a92",
+ "uncompressed_sha256": "c55c3da21e7fa16bc670644b37c3cfaa06d706f963a0b1b2066e35399088da53"
+ },
+ {
+ "path": "diagnostics/fresh-complete-quote-2.lean.txt.gz",
+ "bytes": 874,
+ "sha256": "d48921f6971654bf9470ba64979983229c7de564798566a931a4503864a98976",
+ "uncompressed_sha256": "afb8b027293b3aad7c8a3fd86d926403bac796dd59f623ce105f804e5d981be4"
+ },
+ {
+ "path": "diagnostics/proof-function-quote-1.log.gz",
+ "bytes": 5581,
+ "sha256": "43126233b8c7ab1932ae1fff8efe4bdbd979915e8087780fa6d49d107e0bfe27",
+ "uncompressed_sha256": "158b2b914cdebb53e2214844fb9ffd7b7943cdb70cd401c71f01d8ff02273a6d"
+ },
+ {
+ "path": "diagnostics/proof-function-quote-2.log.gz",
+ "bytes": 5193,
+ "sha256": "805b6e62cdd75d66a3b0075ff4171475814b424fe72029adfbe7ca004833cbc3",
+ "uncompressed_sha256": "37499acf744bd62b865bb25e88fdb0ce07c4ec28ccddc932ffdc162d63921ef5"
+ },
+ {
+ "path": "diagnostics/proof-function-conformance-1.log.gz",
+ "bytes": 7547,
+ "sha256": "a74d142053c8caa44ef5d88a5ba8261c8f1a4b2531cd3aa1f33d009164bdae89",
+ "uncompressed_sha256": "4b087b6a97197eed3cc60a797ad393417a12ca2cef907c53e2866cda625b5131"
+ },
+ {
+ "path": "diagnostics/proof-function-conformance-2.log.gz",
+ "bytes": 7790,
+ "sha256": "e149e069966c6712af23af36d0720238aa7693701512a41485a786d21bfd0f2e",
+ "uncompressed_sha256": "c163240b3df5c11920f962213ea7bd23e5306ba8dd43c50ae56df767e260958f"
+ },
+ {
+ "path": "diagnostics/FreshCompleteQuote.lean.txt",
+ "bytes": 2047,
+ "sha256": "15ad4655a2dc8619e517f9b9767658b123338fad3bb9d5692953af3dfd7a09c3"
+ },
+ {
+ "path": "diagnostics/FreshCompleteFrozen.lean.txt",
+ "bytes": 6075,
+ "sha256": "3c0e7c6762b6b261155500e4b812ad1aa96fbf0dcc8e910b65fee83f1edb07ed"
+ },
+ {
+ "path": "diagnostics/ProofFunctionData.lean.txt",
+ "bytes": 377,
+ "sha256": "198b8efdec514724603a82658f87e415c008d8f8da0d2b7391255c1c0b336c34"
+ },
+ {
+ "path": "diagnostics/ProofFunctionQuote.lean.txt",
+ "bytes": 991,
+ "sha256": "953c52468d2bf821968b3310b9ddaf6ade15aabd42201cfe1cf21b4fbf86e0c1"
+ },
+ {
+ "path": "diagnostics/root-preparation-ci39068067605-final-jobs.json.gz",
+ "bytes": 1974,
+ "sha256": "d7a1560e4c6aa180acb36dfac74407c3c7b26bb5bc2bb5f0bc6556656af80906",
+ "uncompressed_sha256": "e1e2628e0a0209b7149beb2b7057841ce32c7458db8b4879896a860f70f8ec64"
+ },
+ {
+ "path": "diagnostics/root-preparation-ci39068067605-failed.log.gz",
+ "bytes": 131534,
+ "sha256": "d3cecf01a40fcfb280f39c76e36819106c093c343ad9fde2b88cad4f884e0f22",
+ "uncompressed_sha256": "6437c0f3f46867c99c03f25404d47e52381e853c1bab8024e5f424ee267a7a0b"
+ }
+ ],
+ "validation": {
+ "integration": "validation/proof-function-integration-1.log.gz",
+ "ci_fix": "validation/proof-function-ci-fix-1.log.gz",
+ "render": "validation/proof-function-render-1.log.gz",
+ "browser": "validation/proof-function-browser-1.log.gz"
+ },
+ "diagnostics": [
+ "diagnostics/fresh-complete-quote-1.log.gz",
+ "diagnostics/fresh-complete-quote-10.log.gz",
+ "diagnostics/fresh-complete-quote-11.log.gz",
+ "diagnostics/fresh-complete-quote-2.log.gz",
+ "diagnostics/fresh-complete-quote-3.log.gz",
+ "diagnostics/fresh-complete-quote-4.log.gz",
+ "diagnostics/fresh-complete-quote-5.log.gz",
+ "diagnostics/fresh-complete-quote-6.log.gz",
+ "diagnostics/fresh-complete-quote-7.log.gz",
+ "diagnostics/fresh-complete-quote-8.log.gz",
+ "diagnostics/fresh-complete-quote-9.log.gz",
+ "diagnostics/fresh-complete-frozen-1.log.gz",
+ "diagnostics/fresh-complete-frozen-2-stack.log.gz",
+ "diagnostics/fresh-complete-frozen-2.log.gz",
+ "diagnostics/fresh-complete-frozen-3-progress.log.gz",
+ "diagnostics/fresh-complete-frozen-3-stack.log.gz",
+ "diagnostics/fresh-complete-frozen-3.log.gz",
+ "diagnostics/fresh-complete-frozen-4-progress.log.gz",
+ "diagnostics/fresh-complete-frozen-4.log.gz",
+ "diagnostics/fresh-complete-frozen-5-progress.log.gz",
+ "diagnostics/fresh-complete-frozen-5.log.gz",
+ "diagnostics/fresh-complete-frozen-2.lean.txt.gz",
+ "diagnostics/fresh-complete-frozen-4.lean.txt.gz",
+ "diagnostics/fresh-complete-frozen-5.lean.txt.gz",
+ "diagnostics/fresh-complete-quote-1.lean.txt.gz",
+ "diagnostics/fresh-complete-quote-2.lean.txt.gz",
+ "diagnostics/proof-function-quote-1.log.gz",
+ "diagnostics/proof-function-quote-2.log.gz",
+ "diagnostics/proof-function-conformance-1.log.gz",
+ "diagnostics/proof-function-conformance-2.log.gz"
+ ],
+ "visually_inspected_captures": [
+ "captures/proof-function-desktop-introduction.png",
+ "captures/proof-function-desktop-example.png",
+ "captures/proof-function-desktop-budget.png",
+ "captures/proof-function-narrow-introduction.png",
+ "captures/proof-function-narrow-example.png",
+ "captures/proof-function-narrow-budget.png"
+ ],
+ "complete_packet_accepted": false,
+ "diagnostic_limits": "Full-packet attempts are not accepted. Initial harness errors were fixed; the actual dependent proof-function gap was isolated and corrected. Complete replay subsequently required a literal polynomial and exhausted both 100k and 5M budgets. Frozen2 was operator-interrupted with SIGINT; its smart-unfolding stack is not a completed sample. Frozen3/4/5 are terminal budget exhaustions. The frozen3 stack shows ordinary kernel reduction and is a single observation, not a cumulative profile. The current scratch file additionally substitutes the existing proved frozen reduction but has not yet been built. Historical CI failure belongs to remote1b0f and is retained for its obsolete86/14 inventory; local targeted correction checks94/14 with unchanged guard.",
+ "scope": "Ordinary-kernel transport for a function of one proof returning data in a fixed type; two ordinary public consumers, exact/below budgets, full rollback, dependent-data refusals, 145/16/88 body audit with unchanged guard, existing compatibility and full manual. No new general complete-cell, source/provider/history or completeness claim."
+}
diff --git a/reports/data/hexrcf-proof-functions/diagnostics/FreshCompleteFrozen.lean.txt b/reports/data/hexrcf-proof-functions/diagnostics/FreshCompleteFrozen.lean.txt
new file mode 100644
index 0000000000..b0c1edecb0
--- /dev/null
+++ b/reports/data/hexrcf-proof-functions/diagnostics/FreshCompleteFrozen.lean.txt
@@ -0,0 +1,96 @@
+import HexRCF.CellReplay.Operations
+import HexRCF.RealCoefficients.RootQuote
+import HexRCF.RealCoefficients.RationalQuote
+import HexRCF.RealCoefficients.ScalarQuote
+import HexRCF.RootTableQuote.Input
+open Lean Meta Qq Hex Hex.RealClosure Hex.SignDet Hex.RCF.RealCoefficients
+open Hex.RCF.RealCoefficients.CellReplayTests
+open Hex.RCF.RealCoefficients.CellReplayTests.Algebraic
+namespace FreshCompleteFrozen
+set_option maxHeartbeats 12000000
+set_option maxRecDepth 32768
+set_option smartUnfolding false
+private meta def note (message : String) : MetaM Unit := do
+ if let some path ← IO.getEnv "HEX_RCF_FRESH_TRACE" then
+ IO.FS.withFile path .append fun handle => do
+ handle.putStrLn message
+ handle.flush
+def rational (value : Int) : Codec.Json := .arr #[.number 0,.number value,.number 1]
+def scalar (polynomial : Array Codec.Json) (sign : Int) : Codec.Json :=
+ .arr #[.arr polynomial,.number sign]
+def polynomial : Codec.Json := .arr #[
+ scalar #[rational 0,rational (-1)] (-1),.arr #[],scalar #[rational 1] 1]
+run_meta do
+ withoutExporting do
+ let codec : Q(ValueCodec (Algebraic.Element Hex.RCF.SelectedRootTests.Data.native)) :=
+ q(Algebraic.Element.codec (context := Hex.RCF.SelectedRootTests.Data.native)
+ Hex.RCF.SelectedRootTests.Data.base.codec)
+ let reader ← mkAppM ``Codec.readPoly #[codec,mkConst ``polynomial]
+ let basic : Hex.RealFormula.Reify.Config := {}
+ let config := {basic with ring := {basic.ring with budget :=
+ {basic.ring.budget with proofNodes := 100000}}}
+ let result ← match ← RootQuote.runWith (do
+ note "starting literal polynomial reconstruction"
+ let p ← ScalarQuote.quotePolyWith reader (mkConst ``Records.facts) fun expression =>
+ liftM (RationalQuote.decoder (mkConst ``Hex.RCF.SelectedRootTests.Data.registry) expression)
+ note s!"literal polynomial reconstructed; nodes={p.usage.proofNodes}"
+ logInfo m!"literal polynomial reconstructed; proofNodes={p.usage.proofNodes}"
+ let polynomialType ← inferType p.value
+ Hex.RealFormula.Reify.accountProof polynomialType
+ Hex.RealFormula.Reify.accountProof p.value
+ let polynomialName := mkPrivateName (← getEnv) (← mkFreshUserName `FrozenPolynomial)
+ let polynomial ← mkAuxDefinition polynomialName polynomialType p.value (compile := false)
+ let signature ← mkAppM ``Tower.Context.signature #[mkConst ``Schema.parent]
+ let cert ← mkAppM ``RadicalCert.mk #[signature,polynomial,polynomial,polynomial,mkNatLit 1]
+ let certificateType ← inferType cert
+ Hex.RealFormula.Reify.accountProof certificateType
+ Hex.RealFormula.Reify.accountProof cert
+ let certificateName := mkPrivateName (← getEnv) (← mkFreshUserName `FrozenRadical)
+ let cert ← mkAuxDefinition certificateName certificateType cert (compile := false)
+ let cells := mkApp (mkConst ``Codec.Json.Value.array)
+ (mkApp2 (mkConst ``Codec.Json.Values.cons) (mkConst ``Literals.sections)
+ (mkApp2 (mkConst ``Codec.Json.Values.cons) (mkConst ``Literals.sectors)
+ (mkConst ``Codec.Json.Values.nil)))
+ let empty ← mkListLit (← mkAppM ``Tower.Context.Value #[mkConst ``Schema.parent]) []
+ let some operations ← unfoldDefinition? (mkConst ``Operations.operations)
+ | throwError "supplied operations have no accessible definition"
+ let operations := operations.replace fun expression =>
+ if expression.isConstOf ``Hex.RCF.SelectedRootTests.Data.reduction then
+ some (mkConst ``Hex.RCF.RootTableQuoteTests.reduction)
+ else if expression.isConstOf ``Hex.RCF.SelectedRootTests.Data.reduction_eq then
+ some (mkConst ``Hex.RCF.RootTableQuoteTests.reduction_eq)
+ else none
+ Meta.check operations
+ let operationsType ← inferType operations
+ Hex.RealFormula.Reify.accountProof operationsType
+ Hex.RealFormula.Reify.accountProof operations
+ let name := mkPrivateName (← getEnv) (← mkFreshUserName `FrozenOperations)
+ let operations ← mkAuxDefinition name operationsType operations (compile := false)
+ let program ← mkAppM ``CellOperations.accept?
+ #[operations,mkConst ``Operations.codec,mkConst ``Schema.values,
+ mkConst ``Schema.formula,empty,cert,
+ mkConst ``Hex.RealFormula.Quantifier.existsReal,mkConst ``Literals.roots,cells]
+ note "complete packet reader constructed; literal quotation begins"
+ let calls ← IO.mkRef (0 : Nat)
+ let quoted ← RootQuote.quoteOptionWith program fun expression => do
+ let count ← calls.get
+ calls.set (count+1)
+ if count < 12 || count % 100 == 0 then
+ note s!"boundary {count}: head={expression.getAppFn.constName?}; usage={(← get).budget.consumed.proofNodes}; constants={expression.getUsedConstants.extract 0 8}"
+ return none
+ note s!"complete literal quotation returned; nodes={quoted.usage.proofNodes}"
+ return quoted) config with
+ | .ok result => pure result
+ | .error error => throwError "fresh complete literal quote refused: {Hex.RealFormula.Reify.Error.toMessageData error}"
+ let kind ← inferType result.proof
+ unless kind.isAppOfArity ``Eq 3 do throwError "complete quotation did not return an equation"
+ let program := kind.getAppArgs[1]!
+ unless program.getAppFn.isConstOf ``CellOperations.accept? do
+ throwError "complete quotation changed its original checker"
+ let target ← mkEq program (← mkAppM ``Option.some #[mkConst ``Unit.unit])
+ let proof ← Hex.RCF.checkProof `freshCompleteLiteral target result.proof
+ let axioms ← collectAxioms proof.getAppFn.constName!
+ unless axioms.all (fun name => [``propext,``Classical.choice,``Quot.sound].contains name) do
+ throwError "fresh complete literal quote has inadmissible dependencies"
+ logInfo m!"fresh complete literal quote proofNodes={result.usage.proofNodes}; axioms={axioms}"
+end FreshCompleteFrozen
diff --git a/reports/data/hexrcf-proof-functions/diagnostics/FreshCompleteQuote.lean.txt b/reports/data/hexrcf-proof-functions/diagnostics/FreshCompleteQuote.lean.txt
new file mode 100644
index 0000000000..668900cfe4
--- /dev/null
+++ b/reports/data/hexrcf-proof-functions/diagnostics/FreshCompleteQuote.lean.txt
@@ -0,0 +1,34 @@
+import HexRCF.CellReplay.Operations
+import HexRCF.RealCoefficients.RootQuote
+import HexRCF.RealCoefficients.RationalQuote
+open Lean Meta Hex Hex.RealClosure Hex.SignDet Hex.RCF.RealCoefficients
+open Hex.RCF.RealCoefficients.CellReplayTests
+open Hex.RCF.RealCoefficients.CellReplayTests.Algebraic
+namespace FreshCompleteQuote
+set_option maxHeartbeats 12000000
+set_option maxRecDepth 32768
+run_meta do
+ withoutExporting do
+ let cells := mkApp (mkConst ``Codec.Json.Value.array)
+ (mkApp2 (mkConst ``Codec.Json.Values.cons) (mkConst ``Literals.sections)
+ (mkApp2 (mkConst ``Codec.Json.Values.cons) (mkConst ``Literals.sectors)
+ (mkConst ``Codec.Json.Values.nil)))
+ let program ← mkAppM ``CellOperations.accept?
+ #[mkConst ``Operations.operations,mkConst ``Operations.codec,mkConst ``Schema.values,
+ mkConst ``Schema.formula,← mkAppOptM ``List.nil #[some (← mkAppM ``Tower.Context.Value
+ #[mkConst ``Schema.parent])],mkConst ``Canonical.cert,
+ mkConst ``Hex.RealFormula.Quantifier.existsReal,mkConst ``Literals.roots,cells]
+ let basic : Hex.RealFormula.Reify.Config := {}
+ let config := {basic with ring := {basic.ring with budget :=
+ {basic.ring.budget with proofNodes := 5000000}}}
+ let outcome ← RootQuote.runWith (RootQuote.quoteOptionWith program) config
+ let result ← match outcome with
+ | .ok result => pure result
+ | .error error => throwError "fresh complete literal quote refused: {Hex.RealFormula.Reify.Error.toMessageData error}"
+ let target ← mkEq program (← mkAppM ``Option.some #[mkConst ``Unit.unit])
+ let proof ← Hex.RCF.checkProof `freshCompleteLiteral target result.proof
+ let axioms ← collectAxioms proof.getAppFn.constName!
+ unless axioms.all (fun name => [``propext,``Classical.choice,``Quot.sound].contains name) do
+ throwError "fresh complete literal quote has inadmissible dependencies"
+ logInfo m!"fresh complete literal quote proofNodes={result.usage.proofNodes}; axioms={axioms}"
+end FreshCompleteQuote
diff --git a/reports/data/hexrcf-proof-functions/diagnostics/ProofFunctionData.lean.txt b/reports/data/hexrcf-proof-functions/diagnostics/ProofFunctionData.lean.txt
new file mode 100644
index 0000000000..593a7cbab0
--- /dev/null
+++ b/reports/data/hexrcf-proof-functions/diagnostics/ProofFunctionData.lean.txt
@@ -0,0 +1,12 @@
+module
+public import HexRCF.DependentQuoteData
+public section
+namespace ProofFunctionData
+open Hex.RCF.DependentQuote
+@[expose] noncomputable def reader : Option Nat :=
+ @Option.rec Nat
+ (fun result => ((query = result) → Nat) → (query = result) → Option Nat)
+ (fun f h => some (f h))
+ (fun _ f h => some (f h))
+ query (fun _ => 7) rfl
+end ProofFunctionData
diff --git a/reports/data/hexrcf-proof-functions/diagnostics/ProofFunctionQuote.lean.txt b/reports/data/hexrcf-proof-functions/diagnostics/ProofFunctionQuote.lean.txt
new file mode 100644
index 0000000000..7c7d35a61c
--- /dev/null
+++ b/reports/data/hexrcf-proof-functions/diagnostics/ProofFunctionQuote.lean.txt
@@ -0,0 +1,18 @@
+module
+public import ProofFunctionData
+public meta import HexRCF.RealCoefficients.RootQuote
+open Lean Meta Hex.RCF.RealCoefficients
+run_meta do
+ let .ok result ← RootQuote.runWith
+ (RootQuote.quoteOptionWith (mkConst ``ProofFunctionData.reader) fun expression => do
+ if expression.isConstOf ``Hex.RCF.DependentQuote.query then
+ return some (mkConst ``Hex.RCF.DependentQuote.query_eq)
+ return none)
+ | throwError "proof-indexed function quotation declined"
+ let target ← mkEq (mkConst ``ProofFunctionData.reader)
+ (← mkAppM ``Option.some #[mkNatLit 7])
+ let proof ← Hex.RCF.checkProof `proofFunctionReader target result.proof
+ let axioms ← collectAxioms proof.getAppFn.constName!
+ unless axioms.all (fun name => [``propext,``Classical.choice,``Quot.sound].contains name) do
+ throwError "proof-indexed function quotation has an inadmissible dependency"
+ logInfo m!"proof-indexed function quotation checked; nodes={result.usage.proofNodes}"
diff --git a/reports/data/hexrcf-proof-functions/diagnostics/fresh-complete-frozen-1.log.gz b/reports/data/hexrcf-proof-functions/diagnostics/fresh-complete-frozen-1.log.gz
new file mode 100644
index 0000000000..d6184e30e4
Binary files /dev/null and b/reports/data/hexrcf-proof-functions/diagnostics/fresh-complete-frozen-1.log.gz differ
diff --git a/reports/data/hexrcf-proof-functions/diagnostics/fresh-complete-frozen-2-stack.log.gz b/reports/data/hexrcf-proof-functions/diagnostics/fresh-complete-frozen-2-stack.log.gz
new file mode 100644
index 0000000000..e875cb358f
Binary files /dev/null and b/reports/data/hexrcf-proof-functions/diagnostics/fresh-complete-frozen-2-stack.log.gz differ
diff --git a/reports/data/hexrcf-proof-functions/diagnostics/fresh-complete-frozen-2.lean.txt.gz b/reports/data/hexrcf-proof-functions/diagnostics/fresh-complete-frozen-2.lean.txt.gz
new file mode 100644
index 0000000000..5237782aaa
Binary files /dev/null and b/reports/data/hexrcf-proof-functions/diagnostics/fresh-complete-frozen-2.lean.txt.gz differ
diff --git a/reports/data/hexrcf-proof-functions/diagnostics/fresh-complete-frozen-2.log.gz b/reports/data/hexrcf-proof-functions/diagnostics/fresh-complete-frozen-2.log.gz
new file mode 100644
index 0000000000..bdc092c783
Binary files /dev/null and b/reports/data/hexrcf-proof-functions/diagnostics/fresh-complete-frozen-2.log.gz differ
diff --git a/reports/data/hexrcf-proof-functions/diagnostics/fresh-complete-frozen-3-progress.log.gz b/reports/data/hexrcf-proof-functions/diagnostics/fresh-complete-frozen-3-progress.log.gz
new file mode 100644
index 0000000000..a0a34ba757
Binary files /dev/null and b/reports/data/hexrcf-proof-functions/diagnostics/fresh-complete-frozen-3-progress.log.gz differ
diff --git a/reports/data/hexrcf-proof-functions/diagnostics/fresh-complete-frozen-3-stack.log.gz b/reports/data/hexrcf-proof-functions/diagnostics/fresh-complete-frozen-3-stack.log.gz
new file mode 100644
index 0000000000..5272556d6c
Binary files /dev/null and b/reports/data/hexrcf-proof-functions/diagnostics/fresh-complete-frozen-3-stack.log.gz differ
diff --git a/reports/data/hexrcf-proof-functions/diagnostics/fresh-complete-frozen-3.log.gz b/reports/data/hexrcf-proof-functions/diagnostics/fresh-complete-frozen-3.log.gz
new file mode 100644
index 0000000000..9f77ace75f
Binary files /dev/null and b/reports/data/hexrcf-proof-functions/diagnostics/fresh-complete-frozen-3.log.gz differ
diff --git a/reports/data/hexrcf-proof-functions/diagnostics/fresh-complete-frozen-4-progress.log.gz b/reports/data/hexrcf-proof-functions/diagnostics/fresh-complete-frozen-4-progress.log.gz
new file mode 100644
index 0000000000..a0a34ba757
Binary files /dev/null and b/reports/data/hexrcf-proof-functions/diagnostics/fresh-complete-frozen-4-progress.log.gz differ
diff --git a/reports/data/hexrcf-proof-functions/diagnostics/fresh-complete-frozen-4.lean.txt.gz b/reports/data/hexrcf-proof-functions/diagnostics/fresh-complete-frozen-4.lean.txt.gz
new file mode 100644
index 0000000000..d15f7068da
Binary files /dev/null and b/reports/data/hexrcf-proof-functions/diagnostics/fresh-complete-frozen-4.lean.txt.gz differ
diff --git a/reports/data/hexrcf-proof-functions/diagnostics/fresh-complete-frozen-4.log.gz b/reports/data/hexrcf-proof-functions/diagnostics/fresh-complete-frozen-4.log.gz
new file mode 100644
index 0000000000..cd51f3d2ee
Binary files /dev/null and b/reports/data/hexrcf-proof-functions/diagnostics/fresh-complete-frozen-4.log.gz differ
diff --git a/reports/data/hexrcf-proof-functions/diagnostics/fresh-complete-frozen-5-progress.log.gz b/reports/data/hexrcf-proof-functions/diagnostics/fresh-complete-frozen-5-progress.log.gz
new file mode 100644
index 0000000000..3cdd6fe1d8
Binary files /dev/null and b/reports/data/hexrcf-proof-functions/diagnostics/fresh-complete-frozen-5-progress.log.gz differ
diff --git a/reports/data/hexrcf-proof-functions/diagnostics/fresh-complete-frozen-5.lean.txt.gz b/reports/data/hexrcf-proof-functions/diagnostics/fresh-complete-frozen-5.lean.txt.gz
new file mode 100644
index 0000000000..cf6993eecb
Binary files /dev/null and b/reports/data/hexrcf-proof-functions/diagnostics/fresh-complete-frozen-5.lean.txt.gz differ
diff --git a/reports/data/hexrcf-proof-functions/diagnostics/fresh-complete-frozen-5.log.gz b/reports/data/hexrcf-proof-functions/diagnostics/fresh-complete-frozen-5.log.gz
new file mode 100644
index 0000000000..1120e94733
Binary files /dev/null and b/reports/data/hexrcf-proof-functions/diagnostics/fresh-complete-frozen-5.log.gz differ
diff --git a/reports/data/hexrcf-proof-functions/diagnostics/fresh-complete-quote-1.lean.txt.gz b/reports/data/hexrcf-proof-functions/diagnostics/fresh-complete-quote-1.lean.txt.gz
new file mode 100644
index 0000000000..28f0e0dcd0
Binary files /dev/null and b/reports/data/hexrcf-proof-functions/diagnostics/fresh-complete-quote-1.lean.txt.gz differ
diff --git a/reports/data/hexrcf-proof-functions/diagnostics/fresh-complete-quote-1.log.gz b/reports/data/hexrcf-proof-functions/diagnostics/fresh-complete-quote-1.log.gz
new file mode 100644
index 0000000000..242e3cf0ad
Binary files /dev/null and b/reports/data/hexrcf-proof-functions/diagnostics/fresh-complete-quote-1.log.gz differ
diff --git a/reports/data/hexrcf-proof-functions/diagnostics/fresh-complete-quote-10.log.gz b/reports/data/hexrcf-proof-functions/diagnostics/fresh-complete-quote-10.log.gz
new file mode 100644
index 0000000000..cbd6db329d
Binary files /dev/null and b/reports/data/hexrcf-proof-functions/diagnostics/fresh-complete-quote-10.log.gz differ
diff --git a/reports/data/hexrcf-proof-functions/diagnostics/fresh-complete-quote-11.log.gz b/reports/data/hexrcf-proof-functions/diagnostics/fresh-complete-quote-11.log.gz
new file mode 100644
index 0000000000..ccee09779a
Binary files /dev/null and b/reports/data/hexrcf-proof-functions/diagnostics/fresh-complete-quote-11.log.gz differ
diff --git a/reports/data/hexrcf-proof-functions/diagnostics/fresh-complete-quote-2.lean.txt.gz b/reports/data/hexrcf-proof-functions/diagnostics/fresh-complete-quote-2.lean.txt.gz
new file mode 100644
index 0000000000..07e4aac9fd
Binary files /dev/null and b/reports/data/hexrcf-proof-functions/diagnostics/fresh-complete-quote-2.lean.txt.gz differ
diff --git a/reports/data/hexrcf-proof-functions/diagnostics/fresh-complete-quote-2.log.gz b/reports/data/hexrcf-proof-functions/diagnostics/fresh-complete-quote-2.log.gz
new file mode 100644
index 0000000000..96aae7d437
Binary files /dev/null and b/reports/data/hexrcf-proof-functions/diagnostics/fresh-complete-quote-2.log.gz differ
diff --git a/reports/data/hexrcf-proof-functions/diagnostics/fresh-complete-quote-3.log.gz b/reports/data/hexrcf-proof-functions/diagnostics/fresh-complete-quote-3.log.gz
new file mode 100644
index 0000000000..0f70db1ee3
Binary files /dev/null and b/reports/data/hexrcf-proof-functions/diagnostics/fresh-complete-quote-3.log.gz differ
diff --git a/reports/data/hexrcf-proof-functions/diagnostics/fresh-complete-quote-4.log.gz b/reports/data/hexrcf-proof-functions/diagnostics/fresh-complete-quote-4.log.gz
new file mode 100644
index 0000000000..05c58d3af3
Binary files /dev/null and b/reports/data/hexrcf-proof-functions/diagnostics/fresh-complete-quote-4.log.gz differ
diff --git a/reports/data/hexrcf-proof-functions/diagnostics/fresh-complete-quote-5.log.gz b/reports/data/hexrcf-proof-functions/diagnostics/fresh-complete-quote-5.log.gz
new file mode 100644
index 0000000000..f07e05d21d
Binary files /dev/null and b/reports/data/hexrcf-proof-functions/diagnostics/fresh-complete-quote-5.log.gz differ
diff --git a/reports/data/hexrcf-proof-functions/diagnostics/fresh-complete-quote-6.log.gz b/reports/data/hexrcf-proof-functions/diagnostics/fresh-complete-quote-6.log.gz
new file mode 100644
index 0000000000..f8eb67c4bc
Binary files /dev/null and b/reports/data/hexrcf-proof-functions/diagnostics/fresh-complete-quote-6.log.gz differ
diff --git a/reports/data/hexrcf-proof-functions/diagnostics/fresh-complete-quote-7.log.gz b/reports/data/hexrcf-proof-functions/diagnostics/fresh-complete-quote-7.log.gz
new file mode 100644
index 0000000000..b680f2958c
Binary files /dev/null and b/reports/data/hexrcf-proof-functions/diagnostics/fresh-complete-quote-7.log.gz differ
diff --git a/reports/data/hexrcf-proof-functions/diagnostics/fresh-complete-quote-8.log.gz b/reports/data/hexrcf-proof-functions/diagnostics/fresh-complete-quote-8.log.gz
new file mode 100644
index 0000000000..99a1af3415
Binary files /dev/null and b/reports/data/hexrcf-proof-functions/diagnostics/fresh-complete-quote-8.log.gz differ
diff --git a/reports/data/hexrcf-proof-functions/diagnostics/fresh-complete-quote-9.log.gz b/reports/data/hexrcf-proof-functions/diagnostics/fresh-complete-quote-9.log.gz
new file mode 100644
index 0000000000..17f1b95d2c
Binary files /dev/null and b/reports/data/hexrcf-proof-functions/diagnostics/fresh-complete-quote-9.log.gz differ
diff --git a/reports/data/hexrcf-proof-functions/diagnostics/proof-function-conformance-1.log.gz b/reports/data/hexrcf-proof-functions/diagnostics/proof-function-conformance-1.log.gz
new file mode 100644
index 0000000000..d37191f5e2
Binary files /dev/null and b/reports/data/hexrcf-proof-functions/diagnostics/proof-function-conformance-1.log.gz differ
diff --git a/reports/data/hexrcf-proof-functions/diagnostics/proof-function-conformance-2.log.gz b/reports/data/hexrcf-proof-functions/diagnostics/proof-function-conformance-2.log.gz
new file mode 100644
index 0000000000..f2b24c0196
Binary files /dev/null and b/reports/data/hexrcf-proof-functions/diagnostics/proof-function-conformance-2.log.gz differ
diff --git a/reports/data/hexrcf-proof-functions/diagnostics/proof-function-quote-1.log.gz b/reports/data/hexrcf-proof-functions/diagnostics/proof-function-quote-1.log.gz
new file mode 100644
index 0000000000..91515e7a61
Binary files /dev/null and b/reports/data/hexrcf-proof-functions/diagnostics/proof-function-quote-1.log.gz differ
diff --git a/reports/data/hexrcf-proof-functions/diagnostics/proof-function-quote-2.log.gz b/reports/data/hexrcf-proof-functions/diagnostics/proof-function-quote-2.log.gz
new file mode 100644
index 0000000000..9897dc841a
Binary files /dev/null and b/reports/data/hexrcf-proof-functions/diagnostics/proof-function-quote-2.log.gz differ
diff --git a/reports/data/hexrcf-proof-functions/diagnostics/root-preparation-ci39068067605-failed.log.gz b/reports/data/hexrcf-proof-functions/diagnostics/root-preparation-ci39068067605-failed.log.gz
new file mode 100644
index 0000000000..101e1baa10
Binary files /dev/null and b/reports/data/hexrcf-proof-functions/diagnostics/root-preparation-ci39068067605-failed.log.gz differ
diff --git a/reports/data/hexrcf-proof-functions/diagnostics/root-preparation-ci39068067605-final-jobs.json.gz b/reports/data/hexrcf-proof-functions/diagnostics/root-preparation-ci39068067605-final-jobs.json.gz
new file mode 100644
index 0000000000..7426ac4147
Binary files /dev/null and b/reports/data/hexrcf-proof-functions/diagnostics/root-preparation-ci39068067605-final-jobs.json.gz differ
diff --git a/reports/data/hexrcf-proof-functions/validation/memory-policy.txt.gz b/reports/data/hexrcf-proof-functions/validation/memory-policy.txt.gz
new file mode 100644
index 0000000000..42e4629e9f
Binary files /dev/null and b/reports/data/hexrcf-proof-functions/validation/memory-policy.txt.gz differ
diff --git a/reports/data/hexrcf-proof-functions/validation/metadata-driver.py.txt b/reports/data/hexrcf-proof-functions/validation/metadata-driver.py.txt
new file mode 100644
index 0000000000..0f9a034e10
--- /dev/null
+++ b/reports/data/hexrcf-proof-functions/validation/metadata-driver.py.txt
@@ -0,0 +1,57 @@
+from pathlib import Path
+import importlib.util
+import json
+import re
+import subprocess
+
+repo = Path.cwd()
+task = Path('/home/kim/.codex/tasks/hex-10358')
+results = []
+
+def run(name, command):
+ log = task / f'root-preparation-metadata-{name}.log'
+ with log.open('w') as output:
+ result = subprocess.run(command, stdout=output, stderr=subprocess.STDOUT)
+ results.append(dict(name=name, command=command, log=log.name, exit_code=result.returncode))
+
+run('copyright', ['python3', 'scripts/check_copyright_headers.py'])
+run('lines', ['python3', 'scripts/check_file_line_counts.py', '--base', 'origin/main'])
+run('dag', ['python3', 'scripts/check_dag.py'])
+run('admissions', ['python3', 'scripts/ci/check_named_admissions.py'])
+run('diff', ['git', 'diff', '--check'])
+spec = importlib.util.spec_from_file_location('admissions', repo / 'scripts/ci/check_named_admissions.py')
+admissions = importlib.util.module_from_spec(spec)
+spec.loader.exec_module(admissions)
+paths = subprocess.check_output(['git', 'diff', '--name-only'], text=True).splitlines()
+paths += subprocess.check_output(['git', 'ls-files', '--others', '--exclude-standard'], text=True).splitlines()
+# Verso prose is not Lean code for this source scanner. Its checked examples
+# remain covered by the complete HexManual build and ordinary axiom audits.
+lean = [path for path in paths if path.endswith('.lean') and not path.startswith('HexManual/')]
+for path in lean:
+ tracked = subprocess.run(['git', 'ls-files', '--error-unmatch', path], capture_output=True).returncode == 0
+ if tracked:
+ # Existing audit diagnostics can contain words such as "axiom" in
+ # interpolated text. Check the additions; new modules are checked whole.
+ diff = subprocess.check_output(['git', 'diff', '--unified=0', '--', path], text=True)
+ source = '\n'.join(line[1:] for line in diff.splitlines() if line.startswith('+') and not line.startswith('+++'))
+ else:
+ source = (repo / path).read_text()
+ assert not admissions.find_admissions(admissions.code_only(source)), path
+(task / 'root-preparation-metadata-selected-admissions.log').write_text(f'{len(lean)} changed/new Lean files: added code and complete new modules contain no admissions; complete adapter import cones scanned separately; Verso prose excluded\n')
+results.append(dict(name='selected-admissions', log='root-preparation-metadata-selected-admissions.log', exit_code=0))
+links = 0
+for path in paths:
+ if not path.endswith(('.lean', '.md')):
+ continue
+ for match in re.finditer(r'\]\(([^)]+)\)', (repo / path).read_text()):
+ target = match.group(1).split('#')[0]
+ if not target or '://' in target:
+ continue
+ assert (repo / path).parent.joinpath(target).exists(), (path, target)
+ links += 1
+(task / 'root-preparation-metadata-relative.log').write_text(f'{links} relative filesystem links exist in changed/new Lean and Markdown files; external URLs excluded\n')
+results.append(dict(name='relative', log='root-preparation-metadata-relative.log', exit_code=0))
+(task / 'root-preparation-metadata.json').write_text(json.dumps(results, indent=2) + '\n')
+for result in results:
+ print(result['name'], result['exit_code'])
+assert all(result['exit_code'] == 0 for result in results)
diff --git a/reports/data/hexrcf-proof-functions/validation/metadata.json b/reports/data/hexrcf-proof-functions/validation/metadata.json
new file mode 100644
index 0000000000..04ce4a2bff
--- /dev/null
+++ b/reports/data/hexrcf-proof-functions/validation/metadata.json
@@ -0,0 +1,60 @@
+[
+ {
+ "name": "copyright",
+ "command": [
+ "python3",
+ "scripts/check_copyright_headers.py"
+ ],
+ "log": "root-preparation-metadata-copyright.log",
+ "exit_code": 0
+ },
+ {
+ "name": "lines",
+ "command": [
+ "python3",
+ "scripts/check_file_line_counts.py",
+ "--base",
+ "origin/main"
+ ],
+ "log": "root-preparation-metadata-lines.log",
+ "exit_code": 0
+ },
+ {
+ "name": "dag",
+ "command": [
+ "python3",
+ "scripts/check_dag.py"
+ ],
+ "log": "root-preparation-metadata-dag.log",
+ "exit_code": 0
+ },
+ {
+ "name": "admissions",
+ "command": [
+ "python3",
+ "scripts/ci/check_named_admissions.py"
+ ],
+ "log": "root-preparation-metadata-admissions.log",
+ "exit_code": 0
+ },
+ {
+ "name": "diff",
+ "command": [
+ "git",
+ "diff",
+ "--check"
+ ],
+ "log": "root-preparation-metadata-diff.log",
+ "exit_code": 0
+ },
+ {
+ "name": "selected-admissions",
+ "log": "root-preparation-metadata-selected-admissions.log",
+ "exit_code": 0
+ },
+ {
+ "name": "relative",
+ "log": "root-preparation-metadata-relative.log",
+ "exit_code": 0
+ }
+]
diff --git a/reports/data/hexrcf-proof-functions/validation/proof-function-browser-1.log.gz b/reports/data/hexrcf-proof-functions/validation/proof-function-browser-1.log.gz
new file mode 100644
index 0000000000..738a214a33
Binary files /dev/null and b/reports/data/hexrcf-proof-functions/validation/proof-function-browser-1.log.gz differ
diff --git a/reports/data/hexrcf-proof-functions/validation/proof-function-ci-fix-1.log.gz b/reports/data/hexrcf-proof-functions/validation/proof-function-ci-fix-1.log.gz
new file mode 100644
index 0000000000..72d9df66fb
Binary files /dev/null and b/reports/data/hexrcf-proof-functions/validation/proof-function-ci-fix-1.log.gz differ
diff --git a/reports/data/hexrcf-proof-functions/validation/proof-function-integration-1.log.gz b/reports/data/hexrcf-proof-functions/validation/proof-function-integration-1.log.gz
new file mode 100644
index 0000000000..94d328f11d
Binary files /dev/null and b/reports/data/hexrcf-proof-functions/validation/proof-function-integration-1.log.gz differ
diff --git a/reports/data/hexrcf-proof-functions/validation/proof-function-render-1.log.gz b/reports/data/hexrcf-proof-functions/validation/proof-function-render-1.log.gz
new file mode 100644
index 0000000000..219b80f85a
Binary files /dev/null and b/reports/data/hexrcf-proof-functions/validation/proof-function-render-1.log.gz differ
diff --git a/reports/data/hexrcf-proof-functions/validation/render-lake-manifest.json b/reports/data/hexrcf-proof-functions/validation/render-lake-manifest.json
new file mode 100644
index 0000000000..3d143ddfad
--- /dev/null
+++ b/reports/data/hexrcf-proof-functions/validation/render-lake-manifest.json
@@ -0,0 +1,211 @@
+{
+ "version": "1.3.0",
+ "packagesDir": ".lake/packages",
+ "packages": [
+ {
+ "type": "path",
+ "scope": "",
+ "name": "Hex",
+ "manifestFile": "lake-manifest.json",
+ "inherited": false,
+ "dir": "/home/kim/worktrees/hex-dev/hex-dev-issue-10358",
+ "copy": false,
+ "configFile": "lakefile.lean"
+ },
+ {
+ "url": "https://github.com/leanprover-community/mathlib4.git",
+ "type": "git",
+ "subDir": null,
+ "scope": "",
+ "rev": "6b7abb3c7686292736be2955bd3eb9ebf63b456a",
+ "name": "mathlib",
+ "manifestFile": "lake-manifest.json",
+ "inputRev": "6b7abb3c7686292736be2955bd3eb9ebf63b456a",
+ "inherited": true,
+ "configFile": "lakefile.lean"
+ },
+ {
+ "url": "https://github.com/TauCetiProject/TauCeti.git",
+ "type": "git",
+ "subDir": null,
+ "scope": "",
+ "rev": "1c497c347f615b3087cb605f8cf743e591376105",
+ "name": "TauCeti",
+ "manifestFile": "lake-manifest.json",
+ "inputRev": "1c497c347f615b3087cb605f8cf743e591376105",
+ "inherited": true,
+ "configFile": "lakefile.toml"
+ },
+ {
+ "url": "https://github.com/kim-em/lean-bench.git",
+ "type": "git",
+ "subDir": null,
+ "scope": "",
+ "rev": "8a37daf1074c3bdbd0da479b55538bad4a0022db",
+ "name": "\u00ablean-bench\u00bb",
+ "manifestFile": "lake-manifest.json",
+ "inputRev": "master",
+ "inherited": true,
+ "configFile": "lakefile.toml"
+ },
+ {
+ "url": "https://github.com/leanprover/nauty-ffi.git",
+ "type": "git",
+ "subDir": null,
+ "scope": "",
+ "rev": "ec8597014d0ae82490a616b855d59a35e6bfa21f",
+ "name": "NautyFFI",
+ "manifestFile": "lake-manifest.json",
+ "inputRev": "ec8597014d0ae82490a616b855d59a35e6bfa21f",
+ "inherited": true,
+ "configFile": "lakefile.lean"
+ },
+ {
+ "url": "https://github.com/leanprover/verso.git",
+ "type": "git",
+ "subDir": null,
+ "scope": "",
+ "rev": "8fc7a297f14d5adc1a551b5b4ecf283c08bd691f",
+ "name": "verso",
+ "manifestFile": "lake-manifest.json",
+ "inputRev": "v4.35.0-rc3",
+ "inherited": true,
+ "configFile": "lakefile.lean"
+ },
+ {
+ "url": "https://github.com/leanprover-community/plausible",
+ "type": "git",
+ "subDir": null,
+ "scope": "leanprover-community",
+ "rev": "fb13df72ecefd8ddbf9291021d7f33a8673eb57b",
+ "name": "plausible",
+ "manifestFile": "lake-manifest.json",
+ "inputRev": "main",
+ "inherited": true,
+ "configFile": "lakefile.toml"
+ },
+ {
+ "url": "https://github.com/leanprover-community/LeanSearchClient",
+ "type": "git",
+ "subDir": null,
+ "scope": "leanprover-community",
+ "rev": "29ff470276c725ae01505d55b17148c18fc7dfd3",
+ "name": "LeanSearchClient",
+ "manifestFile": "lake-manifest.json",
+ "inputRev": "main",
+ "inherited": true,
+ "configFile": "lakefile.toml"
+ },
+ {
+ "url": "https://github.com/leanprover-community/import-graph",
+ "type": "git",
+ "subDir": null,
+ "scope": "leanprover-community",
+ "rev": "10a2cfff285e1c7c2ebc49c0ba22cab0f3c58ee5",
+ "name": "importGraph",
+ "manifestFile": "lake-manifest.json",
+ "inputRev": "main",
+ "inherited": true,
+ "configFile": "lakefile.toml"
+ },
+ {
+ "url": "https://github.com/leanprover-community/ProofWidgets4",
+ "type": "git",
+ "subDir": null,
+ "scope": "leanprover-community",
+ "rev": "c643bbb3c24f8a25f9c14e3a6b1ceb13d01f3de1",
+ "name": "proofwidgets",
+ "manifestFile": "lake-manifest.json",
+ "inputRev": "main",
+ "inherited": true,
+ "configFile": "lakefile.lean"
+ },
+ {
+ "url": "https://github.com/leanprover-community/aesop",
+ "type": "git",
+ "subDir": null,
+ "scope": "leanprover-community",
+ "rev": "a90fbf7b02ff06a0deebf74088dff9e5fe02c9ea",
+ "name": "aesop",
+ "manifestFile": "lake-manifest.json",
+ "inputRev": "master",
+ "inherited": true,
+ "configFile": "lakefile.toml"
+ },
+ {
+ "url": "https://github.com/leanprover-community/quote4",
+ "type": "git",
+ "subDir": null,
+ "scope": "leanprover-community",
+ "rev": "37b0ba0b26109cf9f9c541f0f9557e50cfa1a3b9",
+ "name": "Qq",
+ "manifestFile": "lake-manifest.json",
+ "inputRev": "master",
+ "inherited": true,
+ "configFile": "lakefile.toml"
+ },
+ {
+ "url": "https://github.com/leanprover-community/batteries",
+ "type": "git",
+ "subDir": null,
+ "scope": "leanprover-community",
+ "rev": "33131f4fb10067cb3009bf4db615d9680c1ccd6b",
+ "name": "batteries",
+ "manifestFile": "lake-manifest.json",
+ "inputRev": "main",
+ "inherited": true,
+ "configFile": "lakefile.toml"
+ },
+ {
+ "url": "https://github.com/leanprover/lean4-cli",
+ "type": "git",
+ "subDir": null,
+ "scope": "leanprover",
+ "rev": "843844fa601dd56767b1eb22b7ada5b64d5e567a",
+ "name": "Cli",
+ "manifestFile": "lake-manifest.json",
+ "inputRev": "v4.35.0-rc3",
+ "inherited": true,
+ "configFile": "lakefile.toml"
+ },
+ {
+ "url": "https://github.com/leanprover/illuminate",
+ "type": "git",
+ "subDir": null,
+ "scope": "",
+ "rev": "af451aaa73d8f8025189f228642b6e4fe047ce4f",
+ "name": "illuminate",
+ "manifestFile": "lake-manifest.json",
+ "inputRev": "main",
+ "inherited": true,
+ "configFile": "lakefile.lean"
+ },
+ {
+ "url": "https://github.com/acmepjz/md4lean",
+ "type": "git",
+ "subDir": null,
+ "scope": "",
+ "rev": "31907cc18f48a95384f99cee5582c00fb39e0f67",
+ "name": "MD4Lean",
+ "manifestFile": "lake-manifest.json",
+ "inputRev": "main",
+ "inherited": true,
+ "configFile": "lakefile.lean"
+ },
+ {
+ "url": "https://github.com/leanprover/subverso",
+ "type": "git",
+ "subDir": null,
+ "scope": "",
+ "rev": "d047cb484b2f3598187450935dbcc84d078cb581",
+ "name": "subverso",
+ "manifestFile": "lake-manifest.json",
+ "inputRev": "main",
+ "inherited": true,
+ "configFile": "lakefile.lean"
+ }
+ ],
+ "name": "scalarReviewRender",
+ "lakeDir": ".lake",
+ "fixedToolchain": false
+}
diff --git a/reports/data/hexrcf-proof-functions/validation/render-lakefile.lean.txt b/reports/data/hexrcf-proof-functions/validation/render-lakefile.lean.txt
new file mode 100644
index 0000000000..e6344504f2
--- /dev/null
+++ b/reports/data/hexrcf-proof-functions/validation/render-lakefile.lean.txt
@@ -0,0 +1,119 @@
+import Lake
+open Lake DSL
+package scalarReviewRender
+require Hex from "/home/kim/worktrees/hex-dev/hex-dev-issue-10358"
+lean_lib ScalarReviewRender
+lean_lib SourceSelectionProbe
+
+lean_lib SourceSelectionEmitter
+
+lean_lib SignPacketEncodedProbe
+
+lean_lib PublicFrameProbe
+
+lean_lib RelativeScalarProbe
+
+lean_lib ScratchRootQuote
+
+lean_lib MajorSource
+lean_lib MajorProbe
+
+lean_lib SignPacketEncodedAudit
+
+lean_lib PacketBodyProbe
+
+lean_lib PacketBodyCheck
+
+lean_lib PacketConversions
+
+lean_lib MomentHeadProof
+
+lean_lib SignatureQuote
+lean_lib SignatureProbe
+
+lean_lib SignatureControls
+lean_lib SignatureAudit
+
+lean_lib SignatureRoundtrip
+
+lean_lib HeaderQuote
+lean_lib HeaderProbe
+
+lean_lib TransportCases
+lean_lib TransportProbe
+
+lean_lib TransportAudit
+
+lean_lib TransportQuote
+lean_lib TransportFixedProbe
+lean_lib TransportFixedAudit
+
+lean_lib OldRootQuote
+lean_lib MixedHeadData
+lean_lib MixedHeadProbe
+
+lean_lib CodecTransportCases
+lean_lib CodecTransportProbe
+lean_lib CodecTransportAudit
+
+lean_lib LiteralCallbackProbe
+lean_lib TransportPacket
+lean_lib TransportPacketValues
+lean_lib TransportPacketAudit
+
+lean_lib ContextQuote
+
+lean_lib MultiCodecQuote
+lean_lib MultiCodecAudit
+
+lean_lib HeaderPacket
+
+lean_lib HeaderPacketAudit
+
+lean_lib HeaderPacketValues
+
+lean_lib HeaderPacketControls
+
+lean_lib HeaderControls
+
+lean_lib HelperOrderData
+lean_lib HelperOrderProbe
+
+lean_lib PackedHeader
+
+lean_lib PackedHeaderAudit
+
+lean_lib RootDecode
+
+lean_lib RootDecodeProbe
+
+lean_lib RootDecodeAudit
+
+lean_lib FrameBindingProbe
+
+lean_lib GraphEncodingProbe
+
+lean_lib RootDecodeInlineProbe
+
+lean_lib PreparedRootDecode
+
+lean_lib PreparedInlineProbe
+
+lean_lib ReflexiveDecode
+
+lean_lib RetainedInlineProbe
+
+lean_lib RetainedInlineAudit
+
+lean_lib RootPrepareImport
+lean_lib RootPreparePrivateImport
+
+lean_lib RootPrepareInspect
+
+lean_lib FreshCompleteQuote
+
+lean_lib ProofFunctionData
+
+lean_lib ProofFunctionQuote
+
+lean_lib FreshCompleteFrozen
diff --git a/reports/data/hexrcf-proof-functions/validation/render.lean.txt b/reports/data/hexrcf-proof-functions/validation/render.lean.txt
new file mode 100644
index 0000000000..cdcf13e5d6
--- /dev/null
+++ b/reports/data/hexrcf-proof-functions/validation/render.lean.txt
@@ -0,0 +1,5 @@
+import HexManual
+import VersoManual
+#eval Verso.Genre.Manual.manualMain (%doc HexManual)
+ (options := ["--output", "scalar-review-html",
+ "--without-tex", "--with-html-single", "--without-html-multi"])
diff --git a/reports/data/hexrcf-proof-functions/validation/root-preparation-metadata-admissions.log.gz b/reports/data/hexrcf-proof-functions/validation/root-preparation-metadata-admissions.log.gz
new file mode 100644
index 0000000000..0ce703cc29
Binary files /dev/null and b/reports/data/hexrcf-proof-functions/validation/root-preparation-metadata-admissions.log.gz differ
diff --git a/reports/data/hexrcf-proof-functions/validation/root-preparation-metadata-copyright.log.gz b/reports/data/hexrcf-proof-functions/validation/root-preparation-metadata-copyright.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-proof-functions/validation/root-preparation-metadata-copyright.log.gz differ
diff --git a/reports/data/hexrcf-proof-functions/validation/root-preparation-metadata-dag.log.gz b/reports/data/hexrcf-proof-functions/validation/root-preparation-metadata-dag.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-proof-functions/validation/root-preparation-metadata-dag.log.gz differ
diff --git a/reports/data/hexrcf-proof-functions/validation/root-preparation-metadata-diff.log.gz b/reports/data/hexrcf-proof-functions/validation/root-preparation-metadata-diff.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-proof-functions/validation/root-preparation-metadata-diff.log.gz differ
diff --git a/reports/data/hexrcf-proof-functions/validation/root-preparation-metadata-lines.log.gz b/reports/data/hexrcf-proof-functions/validation/root-preparation-metadata-lines.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-proof-functions/validation/root-preparation-metadata-lines.log.gz differ
diff --git a/reports/data/hexrcf-proof-functions/validation/root-preparation-metadata-relative.log.gz b/reports/data/hexrcf-proof-functions/validation/root-preparation-metadata-relative.log.gz
new file mode 100644
index 0000000000..ce37b90f68
Binary files /dev/null and b/reports/data/hexrcf-proof-functions/validation/root-preparation-metadata-relative.log.gz differ
diff --git a/reports/data/hexrcf-proof-functions/validation/root-preparation-metadata-selected-admissions.log.gz b/reports/data/hexrcf-proof-functions/validation/root-preparation-metadata-selected-admissions.log.gz
new file mode 100644
index 0000000000..4a34d5298a
Binary files /dev/null and b/reports/data/hexrcf-proof-functions/validation/root-preparation-metadata-selected-admissions.log.gz differ
diff --git a/reports/data/hexrcf-proof-functions/validation/run-bounded.sh b/reports/data/hexrcf-proof-functions/validation/run-bounded.sh
new file mode 100644
index 0000000000..2cc8636e8a
--- /dev/null
+++ b/reports/data/hexrcf-proof-functions/validation/run-bounded.sh
@@ -0,0 +1,10 @@
+#!/usr/bin/env bash
+set -euo pipefail
+exec systemd-run --user --wait --pipe --collect \
+ --unit=hex-10358-lean-build \
+ --property=MemoryMax=32G \
+ --property=MemorySwapMax=0 \
+ --property=OOMPolicy=kill \
+ --working-directory="$PWD" \
+ --setenv="PATH=$PATH" --setenv=LEAN_NUM_THREADS=2 \
+ "$@"
diff --git a/reports/data/hexrcf-proof-functions/verify.py b/reports/data/hexrcf-proof-functions/verify.py
new file mode 100644
index 0000000000..63f15ebfa2
--- /dev/null
+++ b/reports/data/hexrcf-proof-functions/verify.py
@@ -0,0 +1,97 @@
+#!/usr/bin/env python3
+"""Verify proof-input function transport and source-bound validation."""
+import argparse
+import gzip
+import hashlib
+import json
+from pathlib import Path
+import subprocess
+
+parser = argparse.ArgumentParser(description=__doc__)
+parser.add_argument('--check-head', action='store_true')
+args = parser.parse_args()
+root = Path(__file__).resolve().parent
+repo = root.parents[2]
+record = json.loads((root / 'context.json').read_text())
+git = lambda *arguments: subprocess.check_output(['git', *arguments], cwd=repo)
+sha = lambda raw: hashlib.sha256(raw).hexdigest()
+
+def source(path):
+ return git('show', record['source_commit'] + ':' + path).decode()
+
+def log(key):
+ return gzip.decompress((root / record['validation'][key]).read_bytes()).decode()
+
+assert git('rev-parse', record['source_commit'] + '^{tree}').decode().strip() == record['source_tree']
+for path, digest in record['sources'].items():
+ assert sha(git('show', record['source_commit'] + ':' + path)) == digest, path
+ if args.check_head:
+ assert sha((repo / path).read_bytes()) == digest, path
+if args.check_head:
+ paths = git('diff', '--name-only', record['source_commit']).decode().splitlines()
+ paths += git('ls-files', '--others', '--exclude-standard').decode().splitlines()
+ assert all(path.startswith('reports/') for path in paths), paths
+for path in record['unchanged_guards']:
+ assert git('show', record['baseline_commit'] + ':' + path) == git(
+ 'show', record['source_commit'] + ':' + path), path
+for item in record['artifacts']:
+ raw = (root / item['path']).read_bytes()
+ assert len(raw) == item['bytes'] and sha(raw) == item['sha256'], item['path']
+ if 'uncompressed_sha256' in item:
+ assert sha(gzip.decompress(raw)) == item['uncompressed_sha256'], item['path']
+for key in ['integration', 'ci_fix', 'render', 'browser']:
+ text = log(key)
+ assert 'code=exited, status=0/SUCCESS' in text, key
+ assert ('Saved root preparation desktop/narrow screenshots' if key == 'browser'
+ else 'Build completed successfully') in text, key
+integration = log('integration')
+assert 'Built HexManual' in integration
+for message in [
+ 'proofFunction; nodes=1079; axioms=[]',
+ 'continuedFunction; nodes=1099; axioms=[]',
+ 'dependent quotation actual bodies: 145 theorems/16 definitions; nonempty traces=88',
+ 'retained root/context actual bodies: 807 theorems/63 definitions; nonempty traces=855',
+ 'dependent scalar actual bodies: 61 theorems/4 definitions; nonempty traces=56',
+ 'public packet actual bodies: 692 theorems/67 definitions; nonempty traces=749',
+ 'root/header packet actual bodies: 710 theorems/66 definitions; nonempty traces=761',
+ 'root context actual bodies: 718 theorems/68 definitions; nonempty traces=771']:
+ assert message in integration, message
+assert 'root-table quotation: 94 theorem bodies, 14 data definitions' in log('ci_fix')
+assert 'complete standard-three axiom closure; no native producer reductions' in log('ci_fix')
+core = source('adapters/HexRCF/RealCoefficients/RootQuote.lean')
+assert 'private def proofFunction?' in core
+assert 'unless ← isProp proofType do return none' in core
+assert 'body.hasLooseBVars' in core
+assert 'mkAppM ``Eq.mpr #[equality,proof]' in core
+assert 'Hex.RCF.checkProof `RootQuote.majorTransport kind value' in core
+controls = source('conformance/HexRCF/DependentQuote.lean')
+assert '``Hex.RCF.DependentQuote.dependentData,``Hex.RCF.DependentQuote.dependentFunction' in controls
+assert 'result.usage.proofNodes-1' in controls and 'refused "non-proof argument"' in controls
+public = source('conformance/HexRCF/ProofFunctionPublic.lean')
+assert 'public import HexRCF.DependentQuote' in public and 'import all' not in public
+assert 'continuedFunction = some 29' in public
+audit = source('conformance/HexRCF/DependentQuoteProofs.lean')
+assert '``Hex.RCF.ProofFunctionPublic.first,``Hex.RCF.ProofFunctionPublic.continued' in audit
+assert 'theorems == 145 && definitions == 16 && traces == 88' in audit
+assert 'KernelCheck.violation?' in audit and 'AxiomClosure.collect roots' in audit
+metadata = json.loads((root / 'validation/metadata.json').read_text())
+assert {item['name'] for item in metadata} == {
+ 'copyright', 'lines', 'dag', 'admissions', 'selected-admissions', 'relative', 'diff'}
+assert all(item['exit_code'] == 0 for item in metadata)
+memory = gzip.decompress((root / 'validation/memory-policy.txt.gz').read_bytes()).decode()
+assert all(value in memory for value in ['ActiveState=active', 'MemoryMax=34359738368',
+ 'MemorySwapMax=0', 'OOMPolicy=kill', 'LEAN_NUM_THREADS=2'])
+inspection = json.loads((root / 'captures/inspection.json').read_text())
+assert {(item['label'], item['kind']) for item in inspection} == {
+ (label, kind) for label in ['desktop', 'narrow'] for kind in ['introduction', 'example', 'budget']}
+assert all(item['descendantOverflow'] <= 1 and item['targetScrollWidth'] <= item['targetWidth']+1
+ for item in inspection)
+assert len(record['visually_inspected_captures']) == 6
+assert record['complete_packet_accepted'] is False
+for key in ['diagnostics/fresh-complete-frozen-3.log.gz',
+ 'diagnostics/fresh-complete-frozen-4.log.gz',
+ 'diagnostics/fresh-complete-frozen-5.log.gz']:
+ text = gzip.decompress((root / key).read_bytes()).decode()
+ assert 'budget exhausted in dimension proof nodes' in text
+print(f"Verified {len(record['artifacts'])} artifacts/{len(record['sources'])} sources; "
+ '145/16/88 function bodies, 94/14 root-table bodies, compatibility, manual and six captures')
diff --git a/reports/data/hexrcf-public-model/README.md b/reports/data/hexrcf-public-model/README.md
new file mode 100644
index 0000000000..7a953f17a5
--- /dev/null
+++ b/reports/data/hexrcf-public-model/README.md
@@ -0,0 +1,7 @@
+# Public presentation-model integration
+
+See [the report](../../hexrcf-public-model.md). Run `python3 reports/data/hexrcf-public-model/verify.py --check-head` for current source binding, or omit the flag to check the immutable consumer source commit.
+
+The record binds actual owner PR #10967's exact green head, recorded review comments, squash artifact and all six landed file contents. The continuing branch consumes those files unchanged and validates the actual ordinary-import adapter and native/source acceptance. Its manual documents current retained-header source quotation and corrects the old statement about importing a coefficient identity. Fresh full-goal proof compatibility and the complete current manual are checked separately from the targeted owner/consumer build.
+
+All build, metadata, render and browser logs, six visually inspected desktop/narrow captures and exact source inputs are retained. Skipped conditional CI steps are not treated as failures; the retained exact-head CI has no failed or cancelled steps. The owner review is reported by its existing public comments, not performed anew in this record. Every own build/render/browser invocation is serial under a hard aggregate 32 GiB cap, zero swap and two Lean threads. Prior proof/measurement records retain their own pins; this is not a new scientific timing study, entire default conformance run or completion of #10358.
diff --git a/reports/data/hexrcf-public-model/browser.mjs.txt b/reports/data/hexrcf-public-model/browser.mjs.txt
new file mode 100644
index 0000000000..e1d15f3b34
--- /dev/null
+++ b/reports/data/hexrcf-public-model/browser.mjs.txt
@@ -0,0 +1,51 @@
+import fs from 'node:fs';
+import {spawn} from 'node:child_process';
+const root=process.argv[2];
+if(!root) throw new Error('Pass the scratch render directory');
+const profile=root+'/public-model-profile';
+fs.mkdirSync(profile,{recursive:true});
+fs.rmSync(profile+'/DevToolsActivePort',{force:true});
+const chrome=spawn(process.env.CHROME_BIN || '/home/kim/.cache/ms-playwright/chromium-1243/chrome-linux64/chrome',[
+ '--headless=new','--no-sandbox','--disable-gpu','--allow-file-access-from-files',
+ '--remote-debugging-port=0','--remote-allow-origins=*','--user-data-dir='+profile,'about:blank'],
+ {env:{...process.env,LD_LIBRARY_PATH:fs.readFileSync(root+'/browser-lib-paths.txt','utf8').trim()},stdio:'ignore'});
+let socket;
+try {
+ const portFile=profile+'/DevToolsActivePort';
+ for(let i=0;!fs.existsSync(portFile);i++) {
+ if(i>200||chrome.exitCode!==null) throw new Error('Chrome did not expose CDP');
+ await new Promise(r=>setTimeout(r,100));
+ }
+ const port=fs.readFileSync(portFile,'utf8').split('\n')[0];
+ const tabs=await (await fetch('http://127.0.0.1:'+port+'/json')).json();
+ socket=new WebSocket(tabs.find(t=>t.type==='page').webSocketDebuggerUrl);
+ await new Promise((r,j)=>{socket.onopen=r;socket.onerror=j});
+ let sequence=0;const pending=new Map();let loaded;
+ socket.onmessage=e=>{
+ const msg=JSON.parse(e.data);
+ if(msg.id){const p=pending.get(msg.id);pending.delete(msg.id);msg.error?p.reject(msg.error):p.resolve(msg.result);}
+ if(msg.method==='Page.loadEventFired'&&loaded){loaded();loaded=undefined;}
+ };
+ const call=(method,params={})=>new Promise((resolve,reject)=>{const id=++sequence;pending.set(id,{resolve,reject});socket.send(JSON.stringify({id,method,params}));});
+ await call('Page.enable');
+ const load=new Promise(r=>loaded=r);
+ await call('Page.navigate',{url:'file:///home/kim/.codex/tasks/hex-10358/manual-render/full-html/html-single/index.html'});
+ await load;
+ const evaluate=async expression=>{const r=await call('Runtime.evaluate',{expression,returnByValue:true});if(r.exceptionDetails)throw new Error(JSON.stringify(r.exceptionDetails));return r.result.value;};
+ const metadata=[];
+ for(const [label,width] of [['desktop',1440],['narrow',390]]) {
+ await call('Emulation.setDeviceMetricsOverride',{width,height:width===390?1800:1000,deviceScaleFactor:1,mobile:false});
+ for(const [kind,phrase] of [["api", "also performs descriptor/header quotation and context preparation"], ["code", "also performs descriptor/header quotation and context preparation"], ["provenance", "This is a separate identity check"]] ) {
+ const exact=await evaluate(`(() => {const p=Array.from(document.querySelectorAll('p')).find(e=>e.textContent.replace(/\\s+/g,' ').includes(${JSON.stringify(phrase)}));if(!p)throw new Error('missing paragraph');const target=['code'].includes(${JSON.stringify(kind)})?p.nextElementSibling:p;if(['code'].includes(${JSON.stringify(kind)})&&!target.matches('.hl.lean.block, pre, div:has(code)'))throw new Error('target is not a Lean code block');target.scrollIntoView({block:${JSON.stringify('center')}});return {text:p.textContent,viewport:innerWidth,scrollY,paragraphWidth:p.getBoundingClientRect().width,scrollWidth:p.scrollWidth,targetTag:target.tagName,targetWidth:target.getBoundingClientRect().width,targetScrollWidth:target.scrollWidth,descendantOverflow:Math.max(0,...[target,...target.querySelectorAll('*')].map(e=>e.scrollWidth-e.clientWidth)),overflowElements:[target,...target.querySelectorAll('*')].filter(e=>e.scrollWidth-e.clientWidth>1).map(e=>({tag:e.tagName,classes:e.className,width:e.clientWidth,scroll:e.scrollWidth,text:e.textContent.slice(0,100)})).slice(0,8)};})()`);
+ if(!exact)throw new Error('missing visual target '+kind);
+ await evaluate('new Promise(resolve=>requestAnimationFrame(()=>requestAnimationFrame(resolve)))');
+ const shot=await call('Page.captureScreenshot',{format:'png'});
+ fs.writeFileSync(root+'/'+'public-model-final-'+label+'-'+kind+'.png',Buffer.from(shot.data,'base64'));
+ metadata.push({label,kind,...exact});
+ }
+
+ }
+ fs.writeFileSync(root+'/public-model-final-inspection.json',JSON.stringify(metadata,null,2));
+ if(metadata.some(e=>e.targetScrollWidth>e.targetWidth+1 || e.descendantOverflow>1)) throw new Error('Changed content overflows; retained captures and metrics identify the affected block.');
+ process.stdout.write('Saved public-model desktop/narrow screenshots\n');
+} finally {if(socket)socket.close();chrome.kill('SIGTERM');}
diff --git a/reports/data/hexrcf-public-model/completion-audit-pr10967-ci.json b/reports/data/hexrcf-public-model/completion-audit-pr10967-ci.json
new file mode 100644
index 0000000000..f52a6efb01
--- /dev/null
+++ b/reports/data/hexrcf-public-model/completion-audit-pr10967-ci.json
@@ -0,0 +1 @@
+{"conclusion":"success","headSha":"d8fdc8fb0349a3c174c33ddb80a27322fed5aafc","jobs":[{"completedAt":"2026-10-19T00:32:03Z","conclusion":"success","databaseId":117815973821,"name":"build","startedAt":"2026-10-18T23:06:15Z","status":"completed","steps":[{"completedAt":"2026-10-18T23:06:17Z","conclusion":"success","name":"Set up job","number":1,"startedAt":"2026-10-18T23:06:15Z","status":"completed"},{"completedAt":"2026-10-18T23:06:37Z","conclusion":"success","name":"Run actions/checkout@v4","number":2,"startedAt":"2026-10-18T23:06:17Z","status":"completed"},{"completedAt":"2026-10-18T23:06:37Z","conclusion":"success","name":"Classify the change (docs-only fast path)","number":3,"startedAt":"2026-10-18T23:06:37Z","status":"completed"},{"completedAt":"2026-10-18T23:06:37Z","conclusion":"success","name":"Run python3 scripts/check_copyright_headers.py","number":4,"startedAt":"2026-10-18T23:06:37Z","status":"completed"},{"completedAt":"2026-10-18T23:06:38Z","conclusion":"success","name":"Lint Lean file line counts (SPEC/CI.md §Source-file lints)","number":5,"startedAt":"2026-10-18T23:06:37Z","status":"completed"},{"completedAt":"2026-10-18T23:07:20Z","conclusion":"success","name":"Check dependency DAG and trusted-internals imports","number":6,"startedAt":"2026-10-18T23:06:38Z","status":"completed"},{"completedAt":"2026-10-18T23:07:33Z","conclusion":"success","name":"Check the released manifest and Phase-7 admission state","number":7,"startedAt":"2026-10-18T23:07:20Z","status":"completed"},{"completedAt":"2026-10-18T23:07:33Z","conclusion":"success","name":"Check the manual's released/unreleased split matches released.yml","number":8,"startedAt":"2026-10-18T23:07:33Z","status":"completed"},{"completedAt":"2026-10-18T23:07:56Z","conclusion":"success","name":"Run python3 -m unittest scripts/release/test_sync_released.py","number":9,"startedAt":"2026-10-18T23:07:33Z","status":"completed"},{"completedAt":"2026-10-18T23:08:00Z","conclusion":"success","name":"Run python3 scripts/release/check_trust_surface.py","number":10,"startedAt":"2026-10-18T23:07:56Z","status":"completed"},{"completedAt":"2026-10-18T23:08:00Z","conclusion":"success","name":"Cross-check every compiled clmul path (HexGF2/SPEC/hex-gf2.md)","number":11,"startedAt":"2026-10-18T23:08:00Z","status":"completed"},{"completedAt":"2026-10-18T23:08:00Z","conclusion":"success","name":"Run python3 scripts/check_phase4.py","number":12,"startedAt":"2026-10-18T23:08:00Z","status":"completed"},{"completedAt":"2026-10-18T23:08:01Z","conclusion":"success","name":"Check Phase 7 chapters and anchored tutorials (PLAN/Phase7.md)","number":13,"startedAt":"2026-10-18T23:08:00Z","status":"completed"},{"completedAt":"2026-10-18T23:08:52Z","conclusion":"success","name":"Run bench source lints (SPEC/benchmarking.md)","number":14,"startedAt":"2026-10-18T23:08:01Z","status":"completed"},{"completedAt":"2026-10-18T23:09:10Z","conclusion":"success","name":"Check benches are Mathlib-free (SPEC/benchmarking.md)","number":15,"startedAt":"2026-10-18T23:08:52Z","status":"completed"},{"completedAt":"2026-10-18T23:09:10Z","conclusion":"success","name":"Verify conformance matrix invariant","number":16,"startedAt":"2026-10-18T23:09:10Z","status":"completed"},{"completedAt":"2026-10-18T23:09:11Z","conclusion":"success","name":"Validate committed PNT+ inventory (offline)","number":17,"startedAt":"2026-10-18T23:09:10Z","status":"completed"},{"completedAt":"2026-10-18T23:09:11Z","conclusion":"success","name":"Validate committed CADE-24 inventory (offline)","number":18,"startedAt":"2026-10-18T23:09:11Z","status":"completed"},{"completedAt":"2026-10-18T23:09:21Z","conclusion":"success","name":"Install system dependencies","number":19,"startedAt":"2026-10-18T23:09:11Z","status":"completed"},{"completedAt":"2026-10-18T23:10:01Z","conclusion":"success","name":"Install Python dependencies (bench comparator + oracles)","number":20,"startedAt":"2026-10-18T23:09:21Z","status":"completed"},{"completedAt":"2026-10-18T23:10:25Z","conclusion":"success","name":"Verify performance measurements and figures are current","number":21,"startedAt":"2026-10-18T23:10:01Z","status":"completed"},{"completedAt":"2026-10-18T23:10:37Z","conclusion":"success","name":"Set up pinned Lean toolchain (no build)","number":22,"startedAt":"2026-10-18T23:10:25Z","status":"completed"},{"completedAt":"2026-10-18T23:12:20Z","conclusion":"success","name":"Fetch Mathlib cache","number":23,"startedAt":"2026-10-18T23:10:37Z","status":"completed"},{"completedAt":"2026-10-18T23:12:20Z","conclusion":"success","name":"Verify Mathlib cache populated (hard fail on miss)","number":24,"startedAt":"2026-10-18T23:12:20Z","status":"completed"},{"completedAt":"2026-10-18T23:12:20Z","conclusion":"success","name":"Configure Lean shared library path","number":25,"startedAt":"2026-10-18T23:12:20Z","status":"completed"},{"completedAt":"2026-10-18T23:13:56Z","conclusion":"success","name":"Restore .lake/build (project and TauCeti modules)","number":26,"startedAt":"2026-10-18T23:12:20Z","status":"completed"},{"completedAt":"2026-10-18T23:13:56Z","conclusion":"success","name":"Configure Lake artifact cache (no-op unless endpoints set)","number":27,"startedAt":"2026-10-18T23:13:56Z","status":"completed"},{"completedAt":"2026-10-18T23:13:56Z","conclusion":"skipped","name":"Restore hex-dev oleans from the Lake cache (anonymous; non-fatal)","number":28,"startedAt":"2026-10-18T23:13:56Z","status":"completed"},{"completedAt":"2026-10-18T23:13:56Z","conclusion":"success","name":"Disable implicit Lake cache restores during build","number":29,"startedAt":"2026-10-18T23:13:56Z","status":"completed"},{"completedAt":"2026-10-18T23:14:27Z","conclusion":"success","name":"Assert Mathlib will not rebuild (lake build --no-build)","number":30,"startedAt":"2026-10-18T23:13:56Z","status":"completed"},{"completedAt":"2026-10-18T23:14:27Z","conclusion":"success","name":"Define the hex-dev cache + build target sets","number":31,"startedAt":"2026-10-18T23:14:27Z","status":"completed"},{"completedAt":"2026-10-18T23:14:27Z","conclusion":"success","name":"Decide whether to collect Conway rebuild evidence","number":32,"startedAt":"2026-10-18T23:14:27Z","status":"completed"},{"completedAt":"2026-10-18T23:14:27Z","conclusion":"skipped","name":"Collect Conway rebuild evidence","number":33,"startedAt":"2026-10-18T23:14:27Z","status":"completed"},{"completedAt":"2026-10-18T23:17:20Z","conclusion":"success","name":"Build hex libraries + bench exes","number":34,"startedAt":"2026-10-18T23:14:27Z","status":"completed"},{"completedAt":"2026-10-18T23:17:21Z","conclusion":"success","name":"Verify Conway generation and compiled certificates","number":35,"startedAt":"2026-10-18T23:17:20Z","status":"completed"},{"completedAt":"2026-10-18T23:17:21Z","conclusion":"skipped","name":"Verify Conway rebuild provenance","number":36,"startedAt":"2026-10-18T23:17:21Z","status":"completed"},{"completedAt":"2026-10-18T23:17:21Z","conclusion":"skipped","name":"Upload Conway rebuild evidence","number":37,"startedAt":"2026-10-18T23:17:21Z","status":"completed"},{"completedAt":"2026-10-18T23:17:27Z","conclusion":"success","name":"Verify deterministic HexPrimality table regeneration","number":38,"startedAt":"2026-10-18T23:17:21Z","status":"completed"},{"completedAt":"2026-10-19T00:00:19Z","conclusion":"success","name":"Build conformance + emit-fixture targets","number":39,"startedAt":"2026-10-18T23:17:27Z","status":"completed"},{"completedAt":"2026-10-19T00:06:11Z","conclusion":"success","name":"Check real-closure architecture experiments","number":40,"startedAt":"2026-10-19T00:00:19Z","status":"completed"},{"completedAt":"2026-10-19T00:12:30Z","conclusion":"success","name":"Build HexManual","number":41,"startedAt":"2026-10-19T00:06:11Z","status":"completed"},{"completedAt":"2026-10-19T00:12:30Z","conclusion":"skipped","name":"Save .lake/build (project and TauCeti modules; main only)","number":42,"startedAt":"2026-10-19T00:12:30Z","status":"completed"},{"completedAt":"2026-10-19T00:19:28Z","conclusion":"success","name":"Bench verify (smoke gate per SPEC/benchmarking.md §CI integration)","number":43,"startedAt":"2026-10-19T00:12:30Z","status":"completed"},{"completedAt":"2026-10-19T00:31:59Z","conclusion":"success","name":"Conformance oracles + BZ gates","number":44,"startedAt":"2026-10-19T00:12:30Z","status":"completed"},{"completedAt":"2026-10-19T00:31:59Z","conclusion":"success","name":"Wait for all","number":45,"startedAt":"2026-10-19T00:12:30Z","status":"completed"},{"completedAt":"2026-10-19T00:31:59Z","conclusion":"success","name":"Gate on parallel verification results (fail-closed)","number":46,"startedAt":"2026-10-19T00:31:59Z","status":"completed"},{"completedAt":"2026-10-19T00:31:59Z","conclusion":"skipped","name":"Publish hex-dev oleans to the Lake cache (main only)","number":47,"startedAt":"2026-10-19T00:31:59Z","status":"completed"},{"completedAt":"2026-10-19T00:31:59Z","conclusion":"skipped","name":"Upload failure records","number":48,"startedAt":"2026-10-19T00:31:59Z","status":"completed"},{"completedAt":"2026-10-19T00:31:59Z","conclusion":"success","name":"Post Run actions/checkout@v4","number":96,"startedAt":"2026-10-19T00:31:59Z","status":"completed"},{"completedAt":"2026-10-19T00:31:59Z","conclusion":"success","name":"Complete job","number":97,"startedAt":"2026-10-19T00:31:59Z","status":"completed"}],"url":"https://github.com/kim-em/hex-dev/actions/runs/39175085494/job/117815973821"}],"status":"completed"}
diff --git a/reports/data/hexrcf-public-model/completion-audit-pr10967-review.json b/reports/data/hexrcf-public-model/completion-audit-pr10967-review.json
new file mode 100644
index 0000000000..f546c1f36c
--- /dev/null
+++ b/reports/data/hexrcf-public-model/completion-audit-pr10967-review.json
@@ -0,0 +1 @@
+{"baseRefName":"main","body":"The real-coefficient number-field adapter uses a private import solely to unfold Presentation.model while identifying the original factory model. Export Presentation.model_eq and rewrite that existing consumer proof with the public equation, removing import all HexRealClosureTheory.NumberFieldTower.\n\nThe model definition remains abstract through ordinary imports; the parenthesized rfl proof intentionally suppresses Lean's automatic defeq attribute. Extend the existing number-field conformance axiom audit to the equation and model_read, and document the development API. No model, arithmetic/search, factory or source-certification algorithm, package requirement or phase counter changes.\n\nValidation: full monorepo build14,744; owner module10,824 and actual ordinary-import adapter/number-field conformance10,919; final consumer refresh passes after documentation polish. Import DAG,669 scanned adapter/conformance cones and Mathlib-free benchmark/proof boundaries pass. The existing sealed-import guard now rejects import all of this owner module, with all12 DAG regression tests passing. Fresh Opus review began immediately after opening and found no blockers; the documentation and import-boundary findings are addressed. Exact updated-head CI remains required.\n\nRefs #10575, #10378, #10358.\n","comments":[{"id":"IC_kwDOSKC1W88AAAABcjA60w","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Fresh Opus review found no blockers and confirmed the exact factory-model identity, need for the public rewrite and deliberate parenthesized rfl. Fixed terminology in the README, documented why the implicit defeq attribute is suppressed, and sealed import all of NumberFieldTower using the existing DAG mechanism. All12 DAG tests pass, including the real adapter path allowed through public import and refused through import all. Full monorepo14,744 and final NumberField consumer10,919 builds pass; new equation and model_read have ordinary-kernel axiom checks. The optional private-wrapper cleanup is left outside this small boundary change. Exact updated-head CI remains required.","createdAt":"2026-10-16T07:49:35Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/pull/10967#issuecomment-6210730707","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABdOfsJg","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Rebased onto current main `c1a871fda3140e81cb40421db4fb1f01b2ff20df`, retaining both the newly merged KernelReplay fixture exceptions and this PR's sealed NumberFieldTower boundary. All five other changed files are byte-identical to the reviewed `8c1a092bfc` head; the only conflict was the checker allowlist. All twelve checker tests, current DAG and whitespace checks pass. The actual owner module, ordinary-import adapter and NumberField conformance build pass together (10,922 jobs). No new measurements or contract changes. New exact head `d8fdc8fb0349a3c174c33ddb80a27322fed5aafc` has CI run39175085494; its existing single native watcher is running.\n","createdAt":"2026-10-18T23:08:58Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/pull/10967#issuecomment-6256323622","viewerDidAuthor":true}],"headRefOid":"d8fdc8fb0349a3c174c33ddb80a27322fed5aafc","isDraft":false,"mergeStateStatus":"CLEAN","reviews":[]}
diff --git a/reports/data/hexrcf-public-model/completion-audit-pr10967-state.json b/reports/data/hexrcf-public-model/completion-audit-pr10967-state.json
new file mode 100644
index 0000000000..a75480c981
--- /dev/null
+++ b/reports/data/hexrcf-public-model/completion-audit-pr10967-state.json
@@ -0,0 +1 @@
+{"autoMergeRequest":null,"mergeable":"MERGEABLE","reviewDecision":"","state":"OPEN","statusCheckRollup":[{"__typename":"CheckRun","completedAt":"2026-10-19T00:32:03Z","conclusion":"SUCCESS","detailsUrl":"https://github.com/kim-em/hex-dev/actions/runs/39175085494/job/117815973821","name":"build","startedAt":"2026-10-18T23:06:15Z","status":"COMPLETED","workflowName":"CI"}]}
diff --git a/reports/data/hexrcf-public-model/completion-audit-pr10967.json b/reports/data/hexrcf-public-model/completion-audit-pr10967.json
new file mode 100644
index 0000000000..48a27f397f
--- /dev/null
+++ b/reports/data/hexrcf-public-model/completion-audit-pr10967.json
@@ -0,0 +1 @@
+{"body":"The real-coefficient number-field adapter uses a private import solely to unfold Presentation.model while identifying the original factory model. Export Presentation.model_eq and rewrite that existing consumer proof with the public equation, removing import all HexRealClosureTheory.NumberFieldTower.\n\nThe model definition remains abstract through ordinary imports; the parenthesized rfl proof intentionally suppresses Lean's automatic defeq attribute. Extend the existing number-field conformance axiom audit to the equation and model_read, and document the development API. No model, arithmetic/search, factory or source-certification algorithm, package requirement or phase counter changes.\n\nValidation: full monorepo build14,744; owner module10,824 and actual ordinary-import adapter/number-field conformance10,919; final consumer refresh passes after documentation polish. Import DAG,669 scanned adapter/conformance cones and Mathlib-free benchmark/proof boundaries pass. The existing sealed-import guard now rejects import all of this owner module, with all12 DAG regression tests passing. Fresh Opus review began immediately after opening and found no blockers; the documentation and import-boundary findings are addressed. Exact updated-head CI remains required.\n\nRefs #10575, #10378, #10358.\n","files":[{"path":"HexRealClosureTheory/README.md","additions":3,"deletions":0,"changeType":"MODIFIED"},{"path":"adapters/HexRCF/RealCoefficients/NumberField.lean","additions":1,"deletions":4,"changeType":"MODIFIED"},{"path":"adapters/HexRealClosureTheory/NumberFieldTower.lean","additions":6,"deletions":0,"changeType":"MODIFIED"},{"path":"conformance/HexRCF/NumberField.lean","additions":3,"deletions":1,"changeType":"MODIFIED"},{"path":"scripts/check_dag.py","additions":3,"deletions":1,"changeType":"MODIFIED"},{"path":"scripts/test_check_dag.py","additions":15,"deletions":0,"changeType":"MODIFIED"}],"title":"Expose the number-field presentation model equation"}
diff --git a/reports/data/hexrcf-public-model/context.json b/reports/data/hexrcf-public-model/context.json
new file mode 100644
index 0000000000..1b124605f2
--- /dev/null
+++ b/reports/data/hexrcf-public-model/context.json
@@ -0,0 +1,170 @@
+{
+ "source_commit": "94f094d2607511127aa91bfb7e6a399356558c1b",
+ "owner_merge": "0738244bdda275a1273fc28a444cabc424dcf71e",
+ "owner_head": "d8fdc8fb0349a3c174c33ddb80a27322fed5aafc",
+ "owner_paths": [
+ "HexRealClosureTheory/README.md",
+ "adapters/HexRCF/RealCoefficients/NumberField.lean",
+ "adapters/HexRealClosureTheory/NumberFieldTower.lean",
+ "conformance/HexRCF/NumberField.lean",
+ "scripts/check_dag.py",
+ "scripts/test_check_dag.py"
+ ],
+ "parent_context_sha256": "542125a3d7fd5eaa20dd785549a46a946bc627d82f0be2b72e7b492b3671d94e",
+ "sources": {
+ ".github/workflows/ci.yml": "5db61a70eb52d7478994377179c1b35b360a794fcff4b1c257496b5a6394231c",
+ "AGENTS.md": "4e0a48cf49a61e56ed84c8b28e232b5bfad29f2da20571377692be6e1c316f30",
+ "HexManual/Chapters/HexRCF/AlgebraicCells.lean": "43136964c0642c57131f8a60ccf1a45157181abf8942e300c6d2d360a00675d3",
+ "HexManual/Chapters/HexRCF/RootQuote.lean": "2e0746d1a35c192d1127a0c9768470e6e36b14d9d96b5eebbb29c26a03c91e78",
+ "HexManual/Chapters/HexRCF/RootTableQuote.lean": "78d1be637a32593b03f000ab153c7fdf05a1b5332ea3efb9c186aacfd68f0ae5",
+ "HexRCF/HandlerTests/Admission.lean": "770518931dd3f7ab1934e327460b80607338207b17d97363b82c2a5c93669c36",
+ "HexRCF/README.md": "3830d758a8a75d59df1a6dd01f59204a86858b5eda3e43a78f9e9e9c2d769a8a",
+ "HexRCF/SPEC/hex-rcf.md": "df8c6bb2435a2794faa36bc77e41f4c936f06ae149f29c3e68fe0d79f4ebfafb",
+ "HexRCF/Tactic.lean": "26021113d121cfc9ab0d6e7ea7ce8d02eb6c4637c42bbdd2647ecd2d9291f3fb",
+ "HexRealClosure/Algebraic.lean": "d05f9fb72fe9544ae9ddc685dff17080f876aa4c99c70e8992d511e011f6a454",
+ "HexRealClosure/ContextData.lean": "ca29790752b8d25f10d03a9877690a5ff40f1fdf6815c96fe9693941206e662c",
+ "HexRealClosure/SignCodec.lean": "7126323c97b77204386795a0f252f1babfd0ed7f3dba7ee3927a99b9d5c1852a",
+ "HexRealClosure/SignFacts.lean": "9c22837e93e6f50cc96310163e352ac608fbcfbd6275edab33751da2fd84f47c",
+ "HexRealClosure/SignatureCodecTests.lean": "ffc72777523ac0e92b563481804bdfb581fb0173fe7a021009737d57959b4462",
+ "HexRealClosure/TowerContext.lean": "6ef8b87b2d81cb177505a4bbc88befa078b20578cedd49e836d850753c203ee3",
+ "HexRealClosureTheory/README.md": "12d876eae9d0b6dd8c82839e31d98e2aec9bcd454914382f2d65d0f4bc4bb914",
+ "HexSignDet/Codec/Coefficients.lean": "0fef85cb8c11fe614705ca230f437785c9c7c6b76d9362449f834bb25e82d3aa",
+ "HexSignDet/Codec/FiniteGraph.lean": "bb1e0611aa74d7c7b4a74f83f05e481ccd4584523e0aaeca7beba53c70a6895c",
+ "HexSignDet/Codec/FiniteLaws.lean": "a30dbc456d8613e247bfc691376206a7da405b8a3e08ef7a550c0b857a234ab8",
+ "HexSignDet/Codec/GraphLaws.lean": "292cebb2c9ea1131ddd0458de3997aac95cfc1422e99dbd8fb5e7f6d08fcdaa5",
+ "HexSignDet/Codec/Laws.lean": "7b7293bcd80b89c887e1227f7ac27f2f7a2ce936adca3b14818ec5c228c36740",
+ "HexSignDet/Codec/NodeLaws.lean": "77621bd2ab5c1d7c99d1a7355dd7418ed43a06c4ca5eb885bd37cc1ba6e394f2",
+ "HexSignDet/DagBounds.lean": "1ff482fbcb51846b61348d1708062647fb0f61bf2eb04184b86fa17d7bac33a7",
+ "HexSignDet/DagReplay.lean": "be3317f306194a18a314e9f8fca021eefda76ea17704c5ec89daeff9a2867f42",
+ "HexSignDet/DagSelectedSigns.lean": "3ffbfbe2cebf6ad7b5db0cf8b0a3c5a26142a46465d2577a08ddb292594eed26",
+ "HexSignDetTheory/RootList.lean": "aead98f0d004fb1407a437c0eacec5235287a8669e56a6856bad4e3d7ec3d088",
+ "HexSignDetTheory/ThomRoots.lean": "b37b36fec150e23165101ecf05b4105ba429c52050efb3452df496cecc0a456e",
+ "PLAN.md": "e94a60324486913b4a04650edd617c4ff8bef469dc7fd311adea8407c6662ea0",
+ "SPEC/real-closure-execution.md": "bc0948ad7de6969baaed89c0b3052cb0d21d64d634f8a336f9a7dde446b057f5",
+ "adapters/HexRCF/RealCoefficients.lean": "6b9f9a7eaa6e98e30a1faae38252d8616a15595f86347abee0aa54c8fb2f2161",
+ "adapters/HexRCF/RealCoefficients/CellOperations.lean": "3561cc80c7c866141f05a387ce1100ee0cadd98281a03395551cebcde5bd6e2a",
+ "adapters/HexRCF/RealCoefficients/CellQuote.lean": "c572911d7be36001e0f1885c3460f3eb19425d90e78345b1c46878ddf3e6c6ea",
+ "adapters/HexRCF/RealCoefficients/CellRead.lean": "65274f89c940bad74eab8c9075f9256c6ed3d8b90d3294aec4e85883e425fb10",
+ "adapters/HexRCF/RealCoefficients/NumberField.lean": "0d6564d664f1a782f9be52dee2ec0d8982e01344768c43d6783df20eb5aec0d6",
+ "adapters/HexRCF/RealCoefficients/RationalQuote.lean": "675e2ba065b696f257adefc07fe30ddb0190f321d86005444579ea5a0744bdf5",
+ "adapters/HexRCF/RealCoefficients/RealModel.lean": "712b4fd3edff8eaa6f93e501da5debf04529d1ea8c11a18389820f866d179c43",
+ "adapters/HexRCF/RealCoefficients/Reify.lean": "ea8474b9e253f93a1583064ca99ec0bf376dadf5457fd60b57e9e18460cf449c",
+ "adapters/HexRCF/RealCoefficients/RootBuild.lean": "be8e2b24aad8e67946afbe70d48a83ff2ca6db75cb62cca0185ec309f596994a",
+ "adapters/HexRCF/RealCoefficients/RootContext.lean": "792176eab63e5e62b759a10893569946ef6d019566b8116c85237b3e16fcdb86",
+ "adapters/HexRCF/RealCoefficients/RootHeader.lean": "681f2a964bc30f65a92a0fb1a58b4d4013eb396df37ca813962702065fb46261",
+ "adapters/HexRCF/RealCoefficients/RootPrepare.lean": "de72a8e3ac4adb13365801476467bf691e630d0952b018ccecd88846c3bdb025",
+ "adapters/HexRCF/RealCoefficients/RootQuote.lean": "89f3ad4b0c4a8ae058560201900877035d896427176b944b34acde9f9b23d7e8",
+ "adapters/HexRCF/RealCoefficients/RootReplay.lean": "35e5c09926534d79082443ffbaf1ccaa9bca6095f0250da4f0b45d23e185c023",
+ "adapters/HexRCF/RealCoefficients/RowPacketQuote.lean": "edbb3d23f72422f5a1dea163c283848ec285418b7bdb9eedba553b83066121af",
+ "adapters/HexRCF/RealCoefficients/RowQuote.lean": "3b7e7d2ebcbd53a6ea893bc8f4c884d767430f8b98a3f1ca770fe7c7b122f3c9",
+ "adapters/HexRCF/RealCoefficients/ScalarPacket.lean": "6b8353895cff48df759bb4fc8cb5cda767313974e0a57f1e59973249b6eefdca",
+ "adapters/HexRCF/RealCoefficients/ScalarQuote.lean": "fee2617a998f29d05c8959b484060ac1d719359c6d851a8ff6699fa9cb370acc",
+ "adapters/HexRCF/RealCoefficients/SignatureQuote.lean": "c3bb71b52c2a544b902bc256b3a162e1c3c4e7f94ae6b21808914e67109710eb",
+ "adapters/HexRCF/RealCoefficients/SourceBuild.lean": "eb66b3f56832e3fd6644a980fe3f13f62242dda88e84c6bf99dfc717c74290fe",
+ "adapters/HexRCF/RealCoefficients/SourceIdentity.lean": "d98ae0c746003be89edfc969e464383e6a6bda253e0dae8c290605e8b98ce3c3",
+ "adapters/HexRCF/RealCoefficients/SourceIdentityQuote.lean": "cdaf7b830ad50d9849a7f102641eb03313f84959c56c3ea4cd66a663894ca385",
+ "adapters/HexRealClosureTheory/Algebraic.lean": "2495153acbe4e468521913a2f5d6569831cd05f5ee48d5ddb26fc31a43438c7e",
+ "adapters/HexRealClosureTheory/NumberFieldTower.lean": "6e08723eff34d7a18059ff54f4f65df58296f4161638878027a7f07d95fd64d5",
+ "adapters/HexRealClosureTheory/SignFacts.lean": "c2b8cf96de0cccc2c0c3cbe83f0afd7c40ab9736b75f377ec5bfedc0907f34e3",
+ "adapters/HexRealClosureTheory/TowerModel.lean": "70d0e57e8ecc78eb9b7675d875157462d27cf9494d49d72bba019eaa6dd1d788",
+ "conformance-fixtures/HexRCF/bounded-source.json": "566c5f1f092abab73312bb630a02e24873e6723942d450320dae2b52aaa30a75",
+ "conformance-fixtures/HexRCF/enumerated-source.json": "d1f70734b5c8d5c7f768b4d2c3f5359d8e1cc44105885e7f8af597102c8b5c98",
+ "conformance-fixtures/HexRCF/source-identity.json": "93540b60174e0d8bd85ca80d99c6cbdc427815f341a12a6e38f4b38613073f53",
+ "conformance/HexRCF/BoundedSource.lean": "5c2166dd0977d3e27d3fefa89f9c0382e9dd7226bff629112cfd0e0faad1127b",
+ "conformance/HexRCF/BoundedSource/Cubic.lean": "da1c0e1b549fce22cb1f7ea7bb6888dff1d7b59c1219c5b580376bbb4a25ecde",
+ "conformance/HexRCF/BoundedSource/Inputs.lean": "7ffcd6d62f175f3027e2327fd4a86885e933e0715a85ab7afb9b112d76d49a39",
+ "conformance/HexRCF/BoundedSource/Negative.lean": "abb7ef67395b2b90f9e12f551bcc0d16146cca067bf3567707e924c2ecd2fb77",
+ "conformance/HexRCF/BoundedSource/Positive.lean": "d83184a9d54264ba7e1c138eb674db1d67df39681575fa91d96a4681af774321",
+ "conformance/HexRCF/BoundedSource/Proofs.lean": "7f9d47d59dd47aafa90a09d23a966efc0d2ca7fbfa3cdce5ae4771ae1da01a9f",
+ "conformance/HexRCF/BoundedSource/Quote.lean": "fa7ee7f5c8c8dcdd98bc8d56eaa697f1c9f5b443ebaab6de119f1d3c5cb887c9",
+ "conformance/HexRCF/CellFinishCases.lean": "619208fd6528c4f12d4e12bc4ee6fd4016ab0948db16a61237a2aefbcd523a7c",
+ "conformance/HexRCF/CellFinishProofs.lean": "fd232e3b4a64f444d834ae244a110ad0910aa35c4773a90b6a3b26a48693e22c",
+ "conformance/HexRCF/CellQuoteStageProofs.lean": "a14f3f20e1add07f569ab222994995c409552aededef738972a70c864b94b919",
+ "conformance/HexRCF/CellQuoteStages.lean": "e4593f2c8169af00398ff608dd53cbbfbe6b8408ddbdd07de6f64f59acf8a25f",
+ "conformance/HexRCF/CellSourceProofs.lean": "aa946fc87cf8ed336427ef644d6d0889750710d5331535d71f27a3270f539953",
+ "conformance/HexRCF/CellSourceQuote.lean": "bf26980ea3286785872338cba5f97413c31590053dc4445ad00d78c3e6fe1104",
+ "conformance/HexRCF/DependentQuote.lean": "0df154544a17857334480e7c577ecbcf1afe04165fa2da1a5a6407bf41e85518",
+ "conformance/HexRCF/DependentQuoteData.lean": "ed254475e78fa6edb27d4e55222a598b07b7357154ea0495d6195f2f1d39ee46",
+ "conformance/HexRCF/DependentQuoteProofs.lean": "5875aa9748f50340668e58aea97b196d3353313352fb8c819ae5ee3542556980",
+ "conformance/HexRCF/DependentScalarProofs.lean": "9fe3f3871f929e28355985c574c0b8c742be062ae5f19033d7d8bf9e67cd88d8",
+ "conformance/HexRCF/DependentScalarQuote.lean": "e20dd7346c337dd17126c394965f268e568706730f475844d7c0907051224933",
+ "conformance/HexRCF/EnumeratedSource/Cubic.lean": "011464c56dc3ffc5a6bd1e62dc9ff8b35ac6d0e621beceb0336b69d8f626b78f",
+ "conformance/HexRCF/EnumeratedSource/CubicData0.lean": "79b971cb2816d7ee980c595199eedbfddfd7cdb62ea12bc71dfcb24d304f69da",
+ "conformance/HexRCF/EnumeratedSource/Inputs.lean": "23ae13a33e132ee7221c5fa353e71073fc05bd660dfc3ecf6620584b62b40306",
+ "conformance/HexRCF/EnumeratedSource/Negative.lean": "261fcd979ff77c772a28ecc89776b5771cec920fc4e58a0dfe2886aee43a58d7",
+ "conformance/HexRCF/EnumeratedSource/NegativeData0.lean": "c0700606f805664f89dd0106dfb5aebb5ab18949adbb30e5b71ffeb20bb4fdaf",
+ "conformance/HexRCF/EnumeratedSource/Positive.lean": "1382c958e53cdb8a04afd1e6d6f173fe697ba15a3321bf29c3e03059923c7181",
+ "conformance/HexRCF/EnumeratedSource/PositiveData0.lean": "41674140d15cf0136ca29b627f667b952355916b269ff7d2c14247ba2d21b3b1",
+ "conformance/HexRCF/EnumeratedSource/Proofs.lean": "3c08b8018b68469d3c6e7940f730d6b8fadbf6175df2e6f5017ed4fc24d50d5b",
+ "conformance/HexRCF/EnumeratedSource/Quote.lean": "8987d21be058f777f0ba875e917fcda77892bced1029616804fabd57f4eb41d8",
+ "conformance/HexRCF/FrozenSignatureConformance.lean": "8e7d432aecb87fb89bb188e4c579e86fb5c3348c5430f1e2b1a00f1f820a940e",
+ "conformance/HexRCF/FrozenSignatureProofs.lean": "55de6da9b0b3dc2d1e384d6c838d13294287c44060afb8e70aa2a0c8e01a81cb",
+ "conformance/HexRCF/NumberField.lean": "13358e31529302b48cde358029f3a2d443e44286462801b12cf19a6b25ac4dae",
+ "conformance/HexRCF/ProofFunctionPublic.lean": "f928c9f0dd0a704d34a516b6282cfa6a7a4eb6c112d49689c450647a44370a6b",
+ "conformance/HexRCF/PublicSignPacket.lean": "c32d73c5634376907b965e1ea6cf69352fdda1f1945ce2f34a378cc217778102",
+ "conformance/HexRCF/PublicSignPacketControls.lean": "b4f98bd8ef190a361dd7752d4d5ece0cfbd862ff4face5a06dfabecf87096028",
+ "conformance/HexRCF/PublicSignPacketProofs.lean": "442f6d3e04a36db25611f0396103a1eee5ee411c40e8f3cc93df1acf7898bbbb",
+ "conformance/HexRCF/PublicSignPacketValues.lean": "72705dba30f04f986188903fb49b983c6f0a664895116fca8bd8b6b46b6517e5",
+ "conformance/HexRCF/QuotientQuote.lean": "97b2cbc9abdb46db33a9a91328f331edf8dea055cc244489158121cde8dc1903",
+ "conformance/HexRCF/QuotientQuoteData.lean": "ec26777d655a7898d7f7922fcea8f426a3f8c77a53000b69b6fe1755a0348870",
+ "conformance/HexRCF/QuotientQuoteProofs.lean": "f1d95accf6caed1c7354408b3a1a0b29493a526e82036390e39102ebe80c6752",
+ "conformance/HexRCF/QuotientQuotePublic.lean": "a3bd9a082df14a0ac93ba3798e13c6ebbf9dff98d7613264713aa281a5a18bea",
+ "conformance/HexRCF/RationalQuoteConformance.lean": "f03844d4a44a5c61b702ed0b1697619da9b20f4ac42122b9d1a6d3fa4a2de9ac",
+ "conformance/HexRCF/RecursiveScalarQuote.lean": "83ba1f3ed63afdbb148f171736a0aacebc7eef4ae3bf32dca29811515c3f051b",
+ "conformance/HexRCF/ReplayBoundary.lean": "bbc09553d62198a18e897981d5f443c81f09dba8d371d2cdaeaa846d22cbc2f8",
+ "conformance/HexRCF/ReplayBoundaryProofs.lean": "d755462a7344dc9f5304fba255bcefb42188c1de5a51d92d8567a27f22482dc2",
+ "conformance/HexRCF/ReplayHelperProofs.lean": "6dd68829399ec8908a877a3f7705cc9321e49b9581d0d577d114950242e43a57",
+ "conformance/HexRCF/ReplayHelpers.lean": "4501fa39e52a8a2bb52fdd7b183c16801090dd026304105afb4342a1c441c2a3",
+ "conformance/HexRCF/RootContextConformance.lean": "0c52084609ec3de8afd51330a7d2cc97f7bae1d8b2bbc421138783940fc7db37",
+ "conformance/HexRCF/RootContextProofs.lean": "b4c2e3ce686ce8bc60bfdafe2be2f566c6de46758f4827d307f3d5592b59d2e9",
+ "conformance/HexRCF/RootHeaderBudget.lean": "db30b6b7781fabd238ea2c934477e5ae281cc6cd905f11848ce46eb66ef45fe0",
+ "conformance/HexRCF/RootHeaderControls.lean": "aca063af3bfe475166aef92193f162c25a0e53eea094087cf334406a3d513157",
+ "conformance/HexRCF/RootHeaderPacket.lean": "dcd8e63c1d656fc800690b35554a0f835a1ee0bb96312215f8c12348d8a0e79a",
+ "conformance/HexRCF/RootHeaderProofs.lean": "e6630f0464fd0096b9af74b4640d2abc514a62c0b0fc706b4a2e74c9602eeb8c",
+ "conformance/HexRCF/RootHeaderValues.lean": "de9a8fc7c2e9371cbd3324eb700180411e49865dbc6535a74d2c882f74e38e13",
+ "conformance/HexRCF/RootPrepareControls.lean": "b36af8efd1e12227188b6fb7bde258e80d5c1c874338a324cb53c5ccc6c1330f",
+ "conformance/HexRCF/RootPreparePacket.lean": "86185bcc5fdddb1f700d869a115a91034954714f69a83171fd0e96f601e76fe3",
+ "conformance/HexRCF/RootPrepareProofs.lean": "4a5bc6655576a6592fcd5cd801bcfebd425243b1bb6cb39b0bb46d500a3938be",
+ "conformance/HexRCF/RootPreparePublic.lean": "a9e09cbe8d1287b97dde71ad1c6dbe149cfbacb6f81f41a8493ee802416d0805",
+ "conformance/HexRCF/RootQuoteCases.lean": "602d15ef501e969183bffbda7fb3c0f00a174ba5c2dbc35370ee7fce896944dd",
+ "conformance/HexRCF/RootQuoteConformance.lean": "f6a652a243ba62cffc671d1365c6ab47b6618179acb172019ec5609ea0324d3c",
+ "conformance/HexRCF/RootQuoteData.lean": "faa259d129d5c65a063c7143e45d5d9d19573ed49862aa5ecb3978ff389cb514",
+ "conformance/HexRCF/RootQuoteSource.lean": "aca1654efc1a452aca8ef573bb8ea3a435a4e1e18a4dca854d9bcc8e350d511d",
+ "conformance/HexRCF/RootTableQuote/Conformance.lean": "ec5bd136df58cc24a40ca989e3d33e55923082aed7591b234f55c70c013c74ad",
+ "conformance/HexRCF/RowPacketControls.lean": "ab69c57b66fe8129be5f07e5e5f42b7b35d60a23b305ec224d2d7dca28ac7c82",
+ "conformance/HexRCF/RowQuoteCases.lean": "8d2ebddc05d5f0d08b62b50d3498b34b47ab0b3accc4d0a572e621fd83d606d4",
+ "conformance/HexRCF/RowQuoteData.lean": "ce60cb18f548f55e929d4803c7ed824ad0a7621fd4abda09a191f76393fabf0c",
+ "conformance/HexRCF/RowQuoteDepth.lean": "6ada3c44bea055425d223dc57eafb4f0c88349713d815ded4beec9720f7802ad",
+ "conformance/HexRCF/RowQuoteProofs.lean": "317d4f981f32bb28666fcabc6248f4a57fe67c95a7fe431f7993aeacfa377ed3",
+ "conformance/HexRCF/SelectedRoot/KernelCheck.lean": "499299274a75c6e2a70630c8ae442f21ab7d0514c7d23cffdde3f09fd17421cb",
+ "conformance/HexRCF/SharedQuoteCallbacks.lean": "6132cc3722af3cf251d11c857a572f09128d3614d931724965cbcf488dc4db6d",
+ "conformance/HexRCF/SignPacketProofs.lean": "3980cad31637f5798b2c351e1efc2a29b946de1d90e06fb11acd85e2a5c46321",
+ "conformance/HexRCF/SignPacketQuote.lean": "fcda11e6c75353d4519c4eb0e9c302b84d7e41030316c99fcacb885dabf97545",
+ "conformance/HexRCF/SignatureQuoteConformance.lean": "26f16c37cb9e0d5c09a082787f4a66673437adbf998023fd5e9625db16ff5d3f",
+ "conformance/HexRCF/SourceBuild.lean": "f70e66af4041dffdc43ed12145c5ff07a097d3c1a180caac629df6c0a15f8eeb",
+ "conformance/HexRCF/SourceIdentityControls.lean": "c655486606139658d73e5b4d394228c3632596fec366e3b410ea9deb5b085553",
+ "conformance/HexRCF/SourceIdentityEmit.lean": "aa12f1517efc675698c0795c5a463a77d7a3466bcc146d4981d82e913059ed99",
+ "conformance/HexRCF/SourceIdentityLiterals.lean": "61ee2ce703d4965b00e1e20cc62288a0bde4e839d68ca09e1b66281f4a3e48d0",
+ "conformance/HexRCF/SourceIdentityPacket.lean": "614b3132274de5bebebeecb09cf479ac68723f1518e1f52912543a812985a4a9",
+ "conformance/HexRCF/SourceIdentityProofs.lean": "c449238d5f915dbe1f337688bc4f7357f3a93e31ad79eaa9e8e159c280749173",
+ "conformance/HexRCF/SourceSelectionCases.lean": "368ded3f07bb4be269f26a2fd2b7044904ea16d1dd1cba41d8bccb373d004005",
+ "conformance/HexRCF/TreeQuote.lean": "049065aa64bb13432b1d7183759979d28eebba98d18b6f54ab849e5953ce92c1",
+ "conformance/HexRCF/TreeQuoteData.lean": "c595c2278d2997483b755aa585da874c27eed40e4e1a8106d7f553e4f574776b",
+ "conformance/HexRCF/TreeQuoteProofs.lean": "f9a40248237480f8972df62dff548ef0599205b76014e070866e72586f161933",
+ "conformance/HexRCF/TreeQuotePublic.lean": "adc6dc6871208f31970cf5ae0c2472fd325a72e1df8114a6e8178ef8b2c71570",
+ "experiments/KernelReplay/AxiomClosure.lean": "f49377265f05f52b633b10a59255a03731e08d022cc54763de9851c5b5325034",
+ "lake-manifest.json": "fd2dc4df30cd44e4d30568489d616e7bcc8a78747500139134be56f35ae746a4",
+ "lakefile.lean": "0b45717104644561ca7415d4c9f43bae6b318cf75eb00e0757a44c9f7db700bc",
+ "lean-toolchain": "bc84812c94489d1e3e191baa1dc10d5eb684382d7fe9d2a5ab085e72c1c67e47",
+ "libraries.yml": "14e3dd1c01bb0c369b2216e2733378d61172040fd9f69dd0354d4e1267d9c5c1",
+ "reports/hexrcf-adapter-evidence.md": "d7f7df7ccffe76c7f370ece81c9e7688f15babe6a1777ed7a1cf865c54aecf0e",
+ "scripts/bench/proof_only_runtime_exemptions/lakefile-rcf-bounded-source-fea47caa-baeeaf73.json": "eaea20ebc9579f4c50ff88344d8c9be3da9fc7c7d0981e9e0d5251dd04a6ab3f",
+ "scripts/bench/proof_only_runtime_exemptions/lakefile-rcf-source-build-fea47caa-1ab4e88c.json": "38fcff53934dab8ff78146cc782b039265da3c6684638a5b00ab725d5a2c8e01",
+ "scripts/check_dag.py": "fa5cf7929ccc381be7b6bb0c114561c05729e054dfe86dd754bf16d3636348db",
+ "scripts/rcf/selected_literals.py": "03e02fa50575882c0784894b76746ff8e594b9a1eb0a285811bc76ee87265e72",
+ "scripts/rcf/source_identity_literals.py": "ea5d7df949871c4975367a759b9632d033f3a240523c2c917c9141220ffdfd78",
+ "scripts/test_check_dag.py": "a0cd5aaaf1f3e1a6e27c93782bb6aade3b121349588f3846a059a1af04ec21d8"
+ },
+ "rendered_html_sha256": "c0718887cda112a96f16af9ccfdda32171fcb5da59c189b92f3efcdbf3f729e9",
+ "scope": "Consume merged public presentation-model equation through ordinary adapter imports, validate source/native/fresh-proof compatibility and finish documentation for current source-quotation APIs; no new generic history/backend/strict-record completeness claim."
+}
diff --git a/reports/data/hexrcf-public-model/desktop-api.png b/reports/data/hexrcf-public-model/desktop-api.png
new file mode 100644
index 0000000000..92070fdb14
Binary files /dev/null and b/reports/data/hexrcf-public-model/desktop-api.png differ
diff --git a/reports/data/hexrcf-public-model/desktop-code.png b/reports/data/hexrcf-public-model/desktop-code.png
new file mode 100644
index 0000000000..8aec5d2f2d
Binary files /dev/null and b/reports/data/hexrcf-public-model/desktop-code.png differ
diff --git a/reports/data/hexrcf-public-model/desktop-provenance.png b/reports/data/hexrcf-public-model/desktop-provenance.png
new file mode 100644
index 0000000000..0fdace6a86
Binary files /dev/null and b/reports/data/hexrcf-public-model/desktop-provenance.png differ
diff --git a/reports/data/hexrcf-public-model/inspection.json b/reports/data/hexrcf-public-model/inspection.json
new file mode 100644
index 0000000000..658cb6acac
--- /dev/null
+++ b/reports/data/hexrcf-public-model/inspection.json
@@ -0,0 +1,86 @@
+[
+ {
+ "label": "desktop",
+ "kind": "api",
+ "text": "\n restorePacketWith\nalso performs descriptor/header quotation and context preparation from the\nliteral Packet and exact parent/model. It returns the checked header, prepared\ncontext and source identity together. The header's reader equation can bind an\nexisting stored coefficient to this same root. The compact\nquotePacketWith\nreturns only the source identity. Both share the enclosing request's budget;\nneither discovers a predecessor history or supplies an original alias proof.",
+ "viewport": 1440,
+ "scrollY": 277340,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "P",
+ "targetWidth": 752,
+ "targetScrollWidth": 752,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "desktop",
+ "kind": "code",
+ "text": "\n restorePacketWith\nalso performs descriptor/header quotation and context preparation from the\nliteral Packet and exact parent/model. It returns the checked header, prepared\ncontext and source identity together. The header's reader equation can bind an\nexisting stored coefficient to this same root. The compact\nquotePacketWith\nreturns only the source identity. Both share the enclosing request's budget;\nneither discovers a predecessor history or supplies an original alias proof.",
+ "viewport": 1440,
+ "scrollY": 277596,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "CODE",
+ "targetWidth": 740,
+ "targetScrollWidth": 740,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "desktop",
+ "kind": "provenance",
+ "text": "\n The frozen square-root regression quotes its parent descriptor and both\npackets in 673,461 proof nodes. This is a separate identity check; the complete\nalgebraic source example above authenticates its coefficient within its own\nrequest. A separate negative-window packet has an\naccepted literal reader and sign −1; it cannot identify the positive native\nroot with the negative selected conjugate. Wrong coefficient proofs and\none-node-below exhaustion also restore the complete caller state. The dedicated\nfresh audit checks 218 theorem bodies, 179 definitions and 385 nonempty kernel\ntraces, excludes the handwritten source identities and native fact fixtures,\nand retains the producer guard and complete standard-three axiom closure.",
+ "viewport": 1440,
+ "scrollY": 277888,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "P",
+ "targetWidth": 752,
+ "targetScrollWidth": 752,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "api",
+ "text": "\n restorePacketWith\nalso performs descriptor/header quotation and context preparation from the\nliteral Packet and exact parent/model. It returns the checked header, prepared\ncontext and source identity together. The header's reader equation can bind an\nexisting stored coefficient to this same root. The compact\nquotePacketWith\nreturns only the source identity. Both share the enclosing request's budget;\nneither discovers a predecessor history or supplies an original alias proof.",
+ "viewport": 390,
+ "scrollY": 444763,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "P",
+ "targetWidth": 343,
+ "targetScrollWidth": 343,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "code",
+ "text": "\n restorePacketWith\nalso performs descriptor/header quotation and context preparation from the\nliteral Packet and exact parent/model. It returns the checked header, prepared\ncontext and source identity together. The header's reader equation can bind an\nexisting stored coefficient to this same root. The compact\nquotePacketWith\nreturns only the source identity. Both share the enclosing request's budget;\nneither discovers a predecessor history or supplies an original alias proof.",
+ "viewport": 390,
+ "scrollY": 445100,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "CODE",
+ "targetWidth": 331,
+ "targetScrollWidth": 331,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "provenance",
+ "text": "\n The frozen square-root regression quotes its parent descriptor and both\npackets in 673,461 proof nodes. This is a separate identity check; the complete\nalgebraic source example above authenticates its coefficient within its own\nrequest. A separate negative-window packet has an\naccepted literal reader and sign −1; it cannot identify the positive native\nroot with the negative selected conjugate. Wrong coefficient proofs and\none-node-below exhaustion also restore the complete caller state. The dedicated\nfresh audit checks 218 theorem bodies, 179 definitions and 385 nonempty kernel\ntraces, excludes the handwritten source identities and native fact fixtures,\nand retains the producer guard and complete standard-three axiom closure.",
+ "viewport": 390,
+ "scrollY": 445508,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "P",
+ "targetWidth": 343,
+ "targetScrollWidth": 343,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ }
+]
\ No newline at end of file
diff --git a/reports/data/hexrcf-public-model/manifest.json b/reports/data/hexrcf-public-model/manifest.json
new file mode 100644
index 0000000000..1a70ab957e
--- /dev/null
+++ b/reports/data/hexrcf-public-model/manifest.json
@@ -0,0 +1,44 @@
+{
+ "README.md": "93e2498982b700b1ddcfcd2554fb510e53fa91cc3074b4fec5a9b6d292ca5188",
+ "browser.mjs.txt": "b421bd6510965e1f5728c4bc48aa1f4cf198bfa6debc8df23ce8a90473a267fd",
+ "completion-audit-pr10967-ci.json": "cc47e8a045f4e6e9f78e6c8b58a40836c7034cabb7c87b16a7ed37da7c7ccce6",
+ "completion-audit-pr10967-review.json": "a9fa7071e7264c86337c315ce4e36bea8f5d6e633f6b41df6396a41f164bf3f2",
+ "completion-audit-pr10967-state.json": "096b2538653358bd94d32f5712b7896af6b8acf0146ddfb8a3c4152d5b61f044",
+ "completion-audit-pr10967.json": "33bec1c06397839a4ef8b8d573badad60a7d2f0534bae0ad67f4bda80168fafb",
+ "context.json": "4241c9df70a3a5e96118f62beff3d42ce0054351cb44eaae2aa9c72a6fe7c7ad",
+ "desktop-api.png": "cade3aa8d510e4d43b2ed6d0ac4622edb9275cf09e5e392ab33e4b66d4da9908",
+ "desktop-code.png": "8fe30a590889d5eeea9094de76fe8cfd71a0d4f70440518d13d56b2ba689d3bc",
+ "desktop-provenance.png": "77411f47e570ed14a6ddd41a83968c84acf53e2472a5b7ecb8b7f5e770113ba0",
+ "inspection.json": "d497742410da641756d9b83274255877ea9d41fe960756e47753b244956f8001",
+ "narrow-api.png": "0e8da5544b9c670f4a70fcde56700ade3ffaf1cdf93558e36fe4268fa6f87a42",
+ "narrow-code.png": "0295107d0a37b11726a8570e7f900c4c42bbaa211791097737fa76ed304e20c5",
+ "narrow-provenance.png": "c5b8e3d52712f9cb2176a74ab5d96d82fae08d925dc01fa3a9fcf896991358a4",
+ "pr10967-fetch.log.gz": "4ab804ad9dae285a1569306b7671e58cb9af08e86bbed8359e2ce6fda1730fba",
+ "pr10967-integrate.log.gz": "2397aaf83bf64a7d464d7cf9e3e57c62f94b1814c127e52817d1b416056fb074",
+ "pr10967-merge.log.gz": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "pr10967-merged-state.json": "d60c9f07bff07a08361eb4148f74356008a392daaaac21537723449e791ddedf",
+ "public-model-browser-1.log.gz": "d8735fd28255f6a6f357bec807f4f4984a78d784b8f3b09cbfa5506dad1f05c1",
+ "public-model-final-admissions.log.gz": "69a21bde72fd2d28ac505ea4f1e28c3b0a4e96998cb90674e584133f1fa72701",
+ "public-model-final-copyright.log.gz": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "public-model-final-dag.log.gz": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "public-model-final-dag_tests.log.gz": "382b7e1814eb6e2c425f089205942f2883c32edaa64630b2f38a2a69018ca4da",
+ "public-model-final-diff.log.gz": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "public-model-final-freshness.log.gz": "2deda7e9f1dd38e7a3fd37966a9bdf33c905c76164d13133571f675b1ab75b13",
+ "public-model-final-inputs.json": "c8350465ff1fe63b848270ff294b6e56dc9ba29d88b47364d9302b0181ed9e2c",
+ "public-model-final-inspection.json": "d497742410da641756d9b83274255877ea9d41fe960756e47753b244956f8001",
+ "public-model-final-lines.log.gz": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "public-model-final-literals.log.gz": "d363c41d04cc71aaa8b2bb97d1faf6ff4b311e5874c10d339f87aba4d4b97158",
+ "public-model-final-manifest.log.gz": "87c23c0a8f1159f2320fb2015c285ee9167c8c51ef9f6df2f69fc217f4b11029",
+ "public-model-final-metadata-driver.log.gz": "74484d276836874b36665cbad21f7e6503fa4508970f1d7dc68be37393bbffb9",
+ "public-model-final-metadata.json": "197f756cf5b2117557ad027bfb492b7c70ace7c25ea3f06a9b76465bd9d62843",
+ "public-model-final-source_literals.log.gz": "167f5ed8596142f3f1d3fdc40daa83c40dd6f4c31c76c0268645b4a297e47a56",
+ "public-model-integration-1.log.gz": "290cacbc873c96db7db37e3cc3bd940ef15f221646cc08dfd7f83c5b78de3815",
+ "public-model-integration-invocation.json": "98ad194eb95180e633be2b6ef08ddfee9707a7c57661782e7f18f1f2d3622316",
+ "public-model-landed-comment.json": "c3e66e00fcb3438e7a025b83af45aa25edd9b153f064a2102865442969ec74b6",
+ "public-model-manual-integration-1.log.gz": "23612007ec2ea49f81e69842ea0df567c421549340b04efd72490ae8f1a592c5",
+ "public-model-pr-before.json": "ee050d355acd8f56205eb5039194d6157963c788b3f8057e696f94e106b5d180",
+ "public-model-render-1.log.gz": "1f89c93eec3267bef96c070a8d779cb23d7f80dc6cfa3bc5608bb5b257340900",
+ "render.lean.txt": "cc970381459bc4ac2c7df721b4376d69000a28ed21ba53d2a58d4fdb13639e42",
+ "verify.py": "bc33879d2a5bc38e2a0fc2201523d20fba293a1222421733ed238f564fb34b6b",
+ "relative-links.log": "226165a4b9ed8dc5be8bcc4535da02e296281a702a459735e70b7c522d539973"
+}
diff --git a/reports/data/hexrcf-public-model/narrow-api.png b/reports/data/hexrcf-public-model/narrow-api.png
new file mode 100644
index 0000000000..76202e0e8b
Binary files /dev/null and b/reports/data/hexrcf-public-model/narrow-api.png differ
diff --git a/reports/data/hexrcf-public-model/narrow-code.png b/reports/data/hexrcf-public-model/narrow-code.png
new file mode 100644
index 0000000000..1965af6fb9
Binary files /dev/null and b/reports/data/hexrcf-public-model/narrow-code.png differ
diff --git a/reports/data/hexrcf-public-model/narrow-provenance.png b/reports/data/hexrcf-public-model/narrow-provenance.png
new file mode 100644
index 0000000000..c4b29a9127
Binary files /dev/null and b/reports/data/hexrcf-public-model/narrow-provenance.png differ
diff --git a/reports/data/hexrcf-public-model/pr10967-fetch.log.gz b/reports/data/hexrcf-public-model/pr10967-fetch.log.gz
new file mode 100644
index 0000000000..06c0a795cc
Binary files /dev/null and b/reports/data/hexrcf-public-model/pr10967-fetch.log.gz differ
diff --git a/reports/data/hexrcf-public-model/pr10967-integrate.log.gz b/reports/data/hexrcf-public-model/pr10967-integrate.log.gz
new file mode 100644
index 0000000000..b70e1da77c
Binary files /dev/null and b/reports/data/hexrcf-public-model/pr10967-integrate.log.gz differ
diff --git a/reports/data/hexrcf-public-model/pr10967-merge.log.gz b/reports/data/hexrcf-public-model/pr10967-merge.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-public-model/pr10967-merge.log.gz differ
diff --git a/reports/data/hexrcf-public-model/pr10967-merged-state.json b/reports/data/hexrcf-public-model/pr10967-merged-state.json
new file mode 100644
index 0000000000..d8a3ef1af7
--- /dev/null
+++ b/reports/data/hexrcf-public-model/pr10967-merged-state.json
@@ -0,0 +1 @@
+{"mergeCommit":{"oid":"0738244bdda275a1273fc28a444cabc424dcf71e"},"mergedAt":"2026-10-19T06:21:16Z","state":"MERGED","url":"https://github.com/kim-em/hex-dev/pull/10967"}
diff --git a/reports/data/hexrcf-public-model/public-model-browser-1.log.gz b/reports/data/hexrcf-public-model/public-model-browser-1.log.gz
new file mode 100644
index 0000000000..34899dbd4b
Binary files /dev/null and b/reports/data/hexrcf-public-model/public-model-browser-1.log.gz differ
diff --git a/reports/data/hexrcf-public-model/public-model-final-admissions.log.gz b/reports/data/hexrcf-public-model/public-model-final-admissions.log.gz
new file mode 100644
index 0000000000..bd2ec29cdf
Binary files /dev/null and b/reports/data/hexrcf-public-model/public-model-final-admissions.log.gz differ
diff --git a/reports/data/hexrcf-public-model/public-model-final-copyright.log.gz b/reports/data/hexrcf-public-model/public-model-final-copyright.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-public-model/public-model-final-copyright.log.gz differ
diff --git a/reports/data/hexrcf-public-model/public-model-final-dag.log.gz b/reports/data/hexrcf-public-model/public-model-final-dag.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-public-model/public-model-final-dag.log.gz differ
diff --git a/reports/data/hexrcf-public-model/public-model-final-dag_tests.log.gz b/reports/data/hexrcf-public-model/public-model-final-dag_tests.log.gz
new file mode 100644
index 0000000000..cce5360c5e
Binary files /dev/null and b/reports/data/hexrcf-public-model/public-model-final-dag_tests.log.gz differ
diff --git a/reports/data/hexrcf-public-model/public-model-final-diff.log.gz b/reports/data/hexrcf-public-model/public-model-final-diff.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-public-model/public-model-final-diff.log.gz differ
diff --git a/reports/data/hexrcf-public-model/public-model-final-freshness.log.gz b/reports/data/hexrcf-public-model/public-model-final-freshness.log.gz
new file mode 100644
index 0000000000..44c03f6508
Binary files /dev/null and b/reports/data/hexrcf-public-model/public-model-final-freshness.log.gz differ
diff --git a/reports/data/hexrcf-public-model/public-model-final-inputs.json b/reports/data/hexrcf-public-model/public-model-final-inputs.json
new file mode 100644
index 0000000000..36ca5be646
--- /dev/null
+++ b/reports/data/hexrcf-public-model/public-model-final-inputs.json
@@ -0,0 +1,10 @@
+{
+ "adapters/HexRealClosureTheory/NumberFieldTower.lean": "6e08723eff34d7a18059ff54f4f65df58296f4161638878027a7f07d95fd64d5",
+ "adapters/HexRCF/RealCoefficients/NumberField.lean": "0d6564d664f1a782f9be52dee2ec0d8982e01344768c43d6783df20eb5aec0d6",
+ "conformance/HexRCF/NumberField.lean": "13358e31529302b48cde358029f3a2d443e44286462801b12cf19a6b25ac4dae",
+ "scripts/check_dag.py": "fa5cf7929ccc381be7b6bb0c114561c05729e054dfe86dd754bf16d3636348db",
+ "scripts/test_check_dag.py": "a0cd5aaaf1f3e1a6e27c93782bb6aade3b121349588f3846a059a1af04ec21d8",
+ "HexRealClosureTheory/README.md": "12d876eae9d0b6dd8c82839e31d98e2aec9bcd454914382f2d65d0f4bc4bb914",
+ "HexManual/Chapters/HexRCF/AlgebraicCells.lean": "43136964c0642c57131f8a60ccf1a45157181abf8942e300c6d2d360a00675d3",
+ "reports/hexrcf-adapter-evidence.md": "d7f7df7ccffe76c7f370ece81c9e7688f15babe6a1777ed7a1cf865c54aecf0e"
+}
diff --git a/reports/data/hexrcf-public-model/public-model-final-inspection.json b/reports/data/hexrcf-public-model/public-model-final-inspection.json
new file mode 100644
index 0000000000..658cb6acac
--- /dev/null
+++ b/reports/data/hexrcf-public-model/public-model-final-inspection.json
@@ -0,0 +1,86 @@
+[
+ {
+ "label": "desktop",
+ "kind": "api",
+ "text": "\n restorePacketWith\nalso performs descriptor/header quotation and context preparation from the\nliteral Packet and exact parent/model. It returns the checked header, prepared\ncontext and source identity together. The header's reader equation can bind an\nexisting stored coefficient to this same root. The compact\nquotePacketWith\nreturns only the source identity. Both share the enclosing request's budget;\nneither discovers a predecessor history or supplies an original alias proof.",
+ "viewport": 1440,
+ "scrollY": 277340,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "P",
+ "targetWidth": 752,
+ "targetScrollWidth": 752,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "desktop",
+ "kind": "code",
+ "text": "\n restorePacketWith\nalso performs descriptor/header quotation and context preparation from the\nliteral Packet and exact parent/model. It returns the checked header, prepared\ncontext and source identity together. The header's reader equation can bind an\nexisting stored coefficient to this same root. The compact\nquotePacketWith\nreturns only the source identity. Both share the enclosing request's budget;\nneither discovers a predecessor history or supplies an original alias proof.",
+ "viewport": 1440,
+ "scrollY": 277596,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "CODE",
+ "targetWidth": 740,
+ "targetScrollWidth": 740,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "desktop",
+ "kind": "provenance",
+ "text": "\n The frozen square-root regression quotes its parent descriptor and both\npackets in 673,461 proof nodes. This is a separate identity check; the complete\nalgebraic source example above authenticates its coefficient within its own\nrequest. A separate negative-window packet has an\naccepted literal reader and sign −1; it cannot identify the positive native\nroot with the negative selected conjugate. Wrong coefficient proofs and\none-node-below exhaustion also restore the complete caller state. The dedicated\nfresh audit checks 218 theorem bodies, 179 definitions and 385 nonempty kernel\ntraces, excludes the handwritten source identities and native fact fixtures,\nand retains the producer guard and complete standard-three axiom closure.",
+ "viewport": 1440,
+ "scrollY": 277888,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "P",
+ "targetWidth": 752,
+ "targetScrollWidth": 752,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "api",
+ "text": "\n restorePacketWith\nalso performs descriptor/header quotation and context preparation from the\nliteral Packet and exact parent/model. It returns the checked header, prepared\ncontext and source identity together. The header's reader equation can bind an\nexisting stored coefficient to this same root. The compact\nquotePacketWith\nreturns only the source identity. Both share the enclosing request's budget;\nneither discovers a predecessor history or supplies an original alias proof.",
+ "viewport": 390,
+ "scrollY": 444763,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "P",
+ "targetWidth": 343,
+ "targetScrollWidth": 343,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "code",
+ "text": "\n restorePacketWith\nalso performs descriptor/header quotation and context preparation from the\nliteral Packet and exact parent/model. It returns the checked header, prepared\ncontext and source identity together. The header's reader equation can bind an\nexisting stored coefficient to this same root. The compact\nquotePacketWith\nreturns only the source identity. Both share the enclosing request's budget;\nneither discovers a predecessor history or supplies an original alias proof.",
+ "viewport": 390,
+ "scrollY": 445100,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "CODE",
+ "targetWidth": 331,
+ "targetScrollWidth": 331,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "provenance",
+ "text": "\n The frozen square-root regression quotes its parent descriptor and both\npackets in 673,461 proof nodes. This is a separate identity check; the complete\nalgebraic source example above authenticates its coefficient within its own\nrequest. A separate negative-window packet has an\naccepted literal reader and sign −1; it cannot identify the positive native\nroot with the negative selected conjugate. Wrong coefficient proofs and\none-node-below exhaustion also restore the complete caller state. The dedicated\nfresh audit checks 218 theorem bodies, 179 definitions and 385 nonempty kernel\ntraces, excludes the handwritten source identities and native fact fixtures,\nand retains the producer guard and complete standard-three axiom closure.",
+ "viewport": 390,
+ "scrollY": 445508,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "P",
+ "targetWidth": 343,
+ "targetScrollWidth": 343,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ }
+]
\ No newline at end of file
diff --git a/reports/data/hexrcf-public-model/public-model-final-lines.log.gz b/reports/data/hexrcf-public-model/public-model-final-lines.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-public-model/public-model-final-lines.log.gz differ
diff --git a/reports/data/hexrcf-public-model/public-model-final-literals.log.gz b/reports/data/hexrcf-public-model/public-model-final-literals.log.gz
new file mode 100644
index 0000000000..251ef5b170
Binary files /dev/null and b/reports/data/hexrcf-public-model/public-model-final-literals.log.gz differ
diff --git a/reports/data/hexrcf-public-model/public-model-final-manifest.log.gz b/reports/data/hexrcf-public-model/public-model-final-manifest.log.gz
new file mode 100644
index 0000000000..1e2a3e818a
Binary files /dev/null and b/reports/data/hexrcf-public-model/public-model-final-manifest.log.gz differ
diff --git a/reports/data/hexrcf-public-model/public-model-final-metadata-driver.log.gz b/reports/data/hexrcf-public-model/public-model-final-metadata-driver.log.gz
new file mode 100644
index 0000000000..4a74d7e56b
Binary files /dev/null and b/reports/data/hexrcf-public-model/public-model-final-metadata-driver.log.gz differ
diff --git a/reports/data/hexrcf-public-model/public-model-final-metadata.json b/reports/data/hexrcf-public-model/public-model-final-metadata.json
new file mode 100644
index 0000000000..050dd1ff97
--- /dev/null
+++ b/reports/data/hexrcf-public-model/public-model-final-metadata.json
@@ -0,0 +1,97 @@
+[
+ {
+ "name": "dag_tests",
+ "argv": [
+ "python3",
+ "scripts/test_check_dag.py"
+ ],
+ "exit_code": 0,
+ "log": "public-model-final-dag_tests.log"
+ },
+ {
+ "name": "copyright",
+ "argv": [
+ "python3",
+ "scripts/check_copyright_headers.py"
+ ],
+ "exit_code": 0,
+ "log": "public-model-final-copyright.log"
+ },
+ {
+ "name": "lines",
+ "argv": [
+ "python3",
+ "scripts/check_file_line_counts.py",
+ "--base",
+ "origin/main"
+ ],
+ "exit_code": 0,
+ "log": "public-model-final-lines.log"
+ },
+ {
+ "name": "dag",
+ "argv": [
+ "python3",
+ "scripts/check_dag.py"
+ ],
+ "exit_code": 0,
+ "log": "public-model-final-dag.log"
+ },
+ {
+ "name": "admissions",
+ "argv": [
+ "python3",
+ "scripts/ci/check_named_admissions.py"
+ ],
+ "exit_code": 0,
+ "log": "public-model-final-admissions.log"
+ },
+ {
+ "name": "manifest",
+ "argv": [
+ "python3",
+ "scripts/release/check_released_manifest.py"
+ ],
+ "exit_code": 0,
+ "log": "public-model-final-manifest.log"
+ },
+ {
+ "name": "freshness",
+ "argv": [
+ "python3",
+ "scripts/bench/check_factor_sweep_freshness.py"
+ ],
+ "exit_code": 0,
+ "log": "public-model-final-freshness.log"
+ },
+ {
+ "name": "literals",
+ "argv": [
+ "python3",
+ "scripts/rcf/selected_literals.py",
+ "--check"
+ ],
+ "exit_code": 0,
+ "log": "public-model-final-literals.log"
+ },
+ {
+ "name": "source_literals",
+ "argv": [
+ "python3",
+ "scripts/rcf/source_identity_literals.py",
+ "--check"
+ ],
+ "exit_code": 0,
+ "log": "public-model-final-source_literals.log"
+ },
+ {
+ "name": "diff",
+ "argv": [
+ "git",
+ "diff",
+ "--check"
+ ],
+ "exit_code": 0,
+ "log": "public-model-final-diff.log"
+ }
+]
diff --git a/reports/data/hexrcf-public-model/public-model-final-source_literals.log.gz b/reports/data/hexrcf-public-model/public-model-final-source_literals.log.gz
new file mode 100644
index 0000000000..ddc79da867
Binary files /dev/null and b/reports/data/hexrcf-public-model/public-model-final-source_literals.log.gz differ
diff --git a/reports/data/hexrcf-public-model/public-model-integration-1.log.gz b/reports/data/hexrcf-public-model/public-model-integration-1.log.gz
new file mode 100644
index 0000000000..eaec346b5a
Binary files /dev/null and b/reports/data/hexrcf-public-model/public-model-integration-1.log.gz differ
diff --git a/reports/data/hexrcf-public-model/public-model-integration-invocation.json b/reports/data/hexrcf-public-model/public-model-integration-invocation.json
new file mode 100644
index 0000000000..6126f3485e
--- /dev/null
+++ b/reports/data/hexrcf-public-model/public-model-integration-invocation.json
@@ -0,0 +1,15 @@
+{
+ "source_commit": "e928d26d22ba0468004056542084eb7158778a9a",
+ "owner_merge": "0738244bdda275a1273fc28a444cabc424dcf71e",
+ "argv": [
+ "/home/kim/.codex/tasks/hex-10358/bin/run-bounded",
+ "lake",
+ "build",
+ "HexRealClosureTheory.NumberFieldTower",
+ "HexRCF.NumberField",
+ "HexRCF.AlgebraicCellsConformance",
+ "HexRCF.AlgebraicPreparationConformance",
+ "HexRCFRealCoefficients"
+ ],
+ "scope": "Merged public model equation and actual ordinary-import adapter, native source/cell/preparation compatibility, optional umbrella. No new full source quotation/manual/scientific rerun."
+}
diff --git a/reports/data/hexrcf-public-model/public-model-landed-comment.json b/reports/data/hexrcf-public-model/public-model-landed-comment.json
new file mode 100644
index 0000000000..baadbd191e
--- /dev/null
+++ b/reports/data/hexrcf-public-model/public-model-landed-comment.json
@@ -0,0 +1 @@
+{"body": "Merged prerequisite update for #10358 / #10331: [PR #10967](https://github.com/kim-em/hex-dev/pull/10967) landed at `0738244bdda275a1273fc28a444cabc424dcf71e`, using `gh pr merge --squash --auto --match-head-commit d8fdc8fb0349a3c174c33ddb80a27322fed5aafc` without branch deletion. The recorded fresh Opus review found no blockers; the rebased head preserved the reviewed code except the documented checker-allowlist reconciliation. Exact-head CI run 39175085494 is confirmed completed/success, with its build job successful and no failed or cancelled steps. This was an existing reviewed prerequisite PR, not a new issue or dispatch.\n\nThe artifact exposes `NumberField.Presentation.model_eq`; the actual adapter's `NumberField.model_read` consumes it through ordinary imports. `import all HexRealClosureTheory.NumberFieldTower` is removed and the existing DAG checker seals that owner boundary. The equation, consumer proof and native interpretation remain ordinary-kernel checked; no model/arithmetic/search algorithm is changed.\n\nThe continuing worker integrated current main without conflicts at local merge `e928d26d22ba0468004056542084eb7158778a9a`. The actual owner module, NumberField consumer, native algebraic-cell regressions, original-source preparation/acceptance conformance and optional umbrella pass together: 11,169 Lake jobs with cached dependencies reused, 5min9.528s, peak 5.2 GiB/no swap, under the serial hard 32 GiB/two-thread cap. The preparation checks include original zero guards, false/empty-domain sources, ordered irrational/guard-only inputs, aggregate budgets, forged inventories and transactional refusal. A full current manual/fresh source-goal audit is still running; it is not yet claimed complete.\n\nThis removes the private presentation-model boundary from the remaining gates. It does not supply numerical canonical-frame encoding, arbitrary frozen history/operation-record discovery, general joint finite replay realization or full automatic tactic integration. #10984 is still unmerged and its mandatory Opus review remains pending; general #10378 exporter obligations remain. #10358 stays OPEN. Existing draft #10981's source/goal work remains unmerged pending its actual fresh Opus review and final-head green. No owner proof copy, new issue/PR/worker or downstream dispatch; #10331 retains coordination.\n"}
\ No newline at end of file
diff --git a/reports/data/hexrcf-public-model/public-model-manual-integration-1.log.gz b/reports/data/hexrcf-public-model/public-model-manual-integration-1.log.gz
new file mode 100644
index 0000000000..4bf9d197c2
Binary files /dev/null and b/reports/data/hexrcf-public-model/public-model-manual-integration-1.log.gz differ
diff --git a/reports/data/hexrcf-public-model/public-model-pr-before.json b/reports/data/hexrcf-public-model/public-model-pr-before.json
new file mode 100644
index 0000000000..a5731fd461
--- /dev/null
+++ b/reports/data/hexrcf-public-model/public-model-pr-before.json
@@ -0,0 +1 @@
+{"baseRefName":"main","body":"Reconstruct authenticated real coefficient sources and complete root/cell packets, then prove the original real sentence under one cumulative reflection budget and transaction.\n\nThe full algebraic example proves `∃ x : ℝ, x² − √2 ≥ 0 ∧ x² − √2 ≤ 0 ∧ 0 = 0`. Its coefficient identity now comes from descriptor/equation/window replay inside that same request, followed by polynomial reconstruction, complete cell replay and original-goal finishing. A fresh importing audit rejects the older imported source-selection and coefficient identities. The retained parent/model, original alias/coefficient-map laws and seed arithmetic facts remain explicit inputs.\n\nThe implementation provides:\n\n- `SourceBuild.build`/`buildOn` propose selected source packets through existing owner enumeration or checked count-one open domains. They retain distinct production/descriptor failures, original equation/window keys and terminal refusal. Generic progress/acceptance laws use actual root coverage, no duplicate interpreted roots and codec/DAG laws; successful producer outputs are not progress hypotheses.\n- `SourceIdentity.restorePacketWith`/`quotePacketWith` assemble the exact parent's codec/sign/signature, descriptor/header, prepared context and independent scalar readers. The retained checked header binds subsequent stored-coefficient interpretation to that same root. The original `quoteWith` interface remains compatible.\n- `RowQuote`, `CellQuote.replayWith` and `finishPacketWith` preserve exact ordered roots/queries/cells, strict folds, the original target/divisor inventory and ordinary-kernel source equivalence. Preparation, authentication, replay and finishing share aggregate accounting and caller-state restoration.\n- Proof admission shares a visited set within each check and discards it afterward. Raw/closed admission, unsafe rejection, exact targets, imported hidden-body inspection and fresh uncached kernel checking remain. Producer guards retain proof-only import boundaries.\n\nValidation:\n\n- [Joint source/goal record](https://github.com/kim-em/hex-dev/blob/76847445ff0c119cd8922beeb75ab1d7cae550e6/reports/data/hexrcf-joint-source-assembly/README.md): implementation `edd8c096424c6da1ee4f1ca02f7ea82cad32c3cc`, 145 bound sources/42 artifacts. Full request: 9,337,314 charged nodes, two graph-memo reuses/seven validations, complete standard-three axiom closure. Actual fresh audit: 1,191 theorem bodies/202 definitions/1,351 nonempty traces; prior source identities and all earlier fixtures/producers are forbidden. The unchanged original target is source-checked by the verifier.\n- Seven-target integration passes 14,425 jobs with cached dependencies reused: optional umbrella, current source/bounded native controls, prior identity audits and complete manual. Runtime 8min8.376s, peak 5.5 GiB/no swap. The initial full source quote build passes in 13min45.873s, peak 2.3 GiB. The first fresh audit completed semantic/producer/body checks but rejected the old final inventory; its log/source are retained, and the new exact inventory passes without removing a guard.\n- Compact source quotations retain positive/negative quadratic and cubic embeddings at 687,783/690,202/731,072 nodes, within default limits. Exact-budget success, 687,782-node refusal and four malformed descriptor/equation/coefficient-law/model cases check rollback. Actual fresh audit remains 392/449/811. Independent source identity remains 673,461 nodes with 218/179/385 fresh bodies/definitions/traces. Native controls retain all 25,477 bounded bytes, six graphs and previous conjugate/domain/ambiguity/refusal cases.\n- Updated manual build/render pass; render 19.575s/2.2 GiB, browser 11.760s/3 GiB, no swap. All six 1440px/390px changed-paragraph captures were inspected with zero local overflow. Nine repository checks, source hashes, source-bound verifier, relative links and staged whitespace pass. This is the stated target selection, not the whole default conformance set or a new performance comparison.\n- [Compiled numerical packet study](https://github.com/kim-em/hex-dev/blob/b842ec5cc39b32e8a68cd1754b06222d29b9eb05/reports/data/hexrcf-source-replay-dimensions/README.md): all 440 observations over 22 adapter-produced packets, five independent degree/query/bit/precision/depth axes and repeated/common-root cases. Four cumulative stages have 449 compiler imports/no Mathlib and 423 local source bindings. Exact hashes, operand/row/byte inventories, controls and memory scopes verify. Preparation/proofs are excluded; default native predecessor arithmetic remains. It establishes no strict all-depth replay or asymptotic timing law. Earlier proof and measurement records retain their original pins.\n\nEvery own Lean/Lake/benchmark/browser call is serial under a hard aggregate 32 GiB cap, zero swap and `LEAN_NUM_THREADS=2`. No AGENTS.md/PLAN.md edit, new axiom/admission, CI job, duplicate issue/PR, owner proof copy or downstream worker.\n\nThis remains partial implementation. Generic original-syntax/provider/predecessor/history discovery, complete automatic frontend/backend integration, overall accepted algebraic completeness, general joint realization, strict compiled missing/reached-record coverage and remaining API/manual/proof evidence are unfinished. Owner public-frame/general-export and presentation-model gates remain; #10377 root coverage/order exports already exist and are consumed. #10358 stays open, #10331 owns dispatch, and delivered #10633/#10634 work is preserved.\n\nRequired fresh Opus review hit the weekly quota at PR opening; this is not a completed review. Reported availability is October 19, 16:00 UTC. Keep draft pending actual review, addressed findings and final-head green. Merge with `gh pr merge --squash --auto` without `--delete-branch` when those gates pass.\n\nRefs #10358, #10331\n","headRefOid":"76847445ff0c119cd8922beeb75ab1d7cae550e6","isDraft":true,"number":10981,"state":"OPEN","url":"https://github.com/kim-em/hex-dev/pull/10981"}
diff --git a/reports/data/hexrcf-public-model/public-model-render-1.log.gz b/reports/data/hexrcf-public-model/public-model-render-1.log.gz
new file mode 100644
index 0000000000..e5b6cd4206
Binary files /dev/null and b/reports/data/hexrcf-public-model/public-model-render-1.log.gz differ
diff --git a/reports/data/hexrcf-public-model/relative-links.log b/reports/data/hexrcf-public-model/relative-links.log
new file mode 100644
index 0000000000..cd534b5a22
--- /dev/null
+++ b/reports/data/hexrcf-public-model/relative-links.log
@@ -0,0 +1 @@
+113 relative links resolve across report, inventory and record README.
diff --git a/reports/data/hexrcf-public-model/render.lean.txt b/reports/data/hexrcf-public-model/render.lean.txt
new file mode 100644
index 0000000000..434bd76028
--- /dev/null
+++ b/reports/data/hexrcf-public-model/render.lean.txt
@@ -0,0 +1,6 @@
+-- Render the complete manual for browser inspection.
+import HexManual
+import VersoManual
+#eval Verso.Genre.Manual.manualMain (%doc HexManual)
+ (options := ["--output", "full-html",
+ "--without-tex", "--with-html-single", "--without-html-multi"])
diff --git a/reports/data/hexrcf-public-model/verify.py b/reports/data/hexrcf-public-model/verify.py
new file mode 100644
index 0000000000..a0195bfdcc
--- /dev/null
+++ b/reports/data/hexrcf-public-model/verify.py
@@ -0,0 +1,41 @@
+#!/usr/bin/env python3
+"""Check consumption of the landed public presentation-model equation."""
+from pathlib import Path
+import argparse,gzip,hashlib,json,subprocess
+p=Path(__file__).resolve().parent;root=next(x for x in p.parents if (x/'.git').exists())
+a=argparse.ArgumentParser();a.add_argument('--check-head',action='store_true');args=a.parse_args()
+sha=lambda b:hashlib.sha256(b).hexdigest();c=json.loads((p/'context.json').read_text())
+subprocess.run(['git','merge-base','--is-ancestor',c['owner_merge'],c['source_commit']],cwd=root,check=True)
+assert sha((root/'reports/data/hexrcf-joint-source-assembly/context.json').read_bytes())==c['parent_context_sha256']
+for name,digest in c['sources'].items():
+ raw=subprocess.check_output(['git','show',c['source_commit']+':'+name],cwd=root);assert sha(raw)==digest,name
+ if args.check_head:assert sha((root/name).read_bytes())==digest,name
+ if name in c['owner_paths']:assert raw==subprocess.check_output(['git','show',c['owner_merge']+':'+name],cwd=root),name
+for name,digest in json.loads((p/'manifest.json').read_text()).items():assert sha((p/name).read_bytes())==digest,name
+ci=json.loads((p/'completion-audit-pr10967-ci.json').read_text());assert ci['headSha']==c['owner_head'] and ci['status']=='completed' and ci['conclusion']=='success'
+assert ci['jobs'] and all(j['status']=='completed' and j['conclusion']=='success' for j in ci['jobs'])
+assert not [(s['name'],s['conclusion']) for j in ci['jobs'] for s in j['steps'] if s['conclusion'] in ['failure','cancelled']]
+state=json.loads((p/'pr10967-merged-state.json').read_text());assert state['state']=='MERGED' and state['mergeCommit']['oid']==c['owner_merge']
+read=lambda name:gzip.decompress((p/(name+'.gz')).read_bytes()).decode()
+for name in ['public-model-integration-1.log','public-model-manual-integration-1.log','public-model-render-1.log','public-model-browser-1.log']:
+ assert 'code=exited, status=0/SUCCESS' in read(name),name
+native=read('public-model-integration-1.log')
+assert 'fresh source acceptance bodies retain original domains and actual complete production laws with the standard three axioms' in native
+assert 'thirteen automatic algebraic-input proof bodies and actual owner dependencies checked' in native
+full=read('public-model-manual-integration-1.log');assert '1191 theorems/202 definitions; nonempty traces=1351' in full
+assert 'proofNodes=9337314' in full
+metadata=json.loads((p/'public-model-final-metadata.json').read_text())
+assert [r['name'] for r in metadata]==['dag_tests','copyright','lines','dag','admissions','manifest','freshness','literals','source_literals','diff']
+for r in metadata:assert r['exit_code']==0,r
+assert 'Ran 12 tests' in read('public-model-final-dag_tests.log')
+for name,digest in json.loads((p/'public-model-final-inputs.json').read_text()).items():assert c['sources'][name]==digest,name
+adapter=subprocess.check_output(['git','show',c['source_commit']+':adapters/HexRCF/RealCoefficients/NumberField.lean'],cwd=root).decode()
+assert 'import all HexRealClosureTheory.NumberFieldTower' not in adapter
+assert 'rw [Hex.RealClosure.NumberField.Presentation.model_eq]' in adapter
+manual=subprocess.check_output(['git','show',c['source_commit']+':HexManual/Chapters/HexRCF/AlgebraicCells.lean'],cwd=root).decode()
+assert 'meta def quoteSourcePacket' in manual and 'SourceIdentity.restorePacketWith' in manual
+assert 'authenticates its coefficient within its own' in manual
+ins=json.loads((p/'inspection.json').read_text());assert len(ins)==6
+assert {(x['viewport'],x['kind']) for x in ins}=={(w,k) for w in [1440,390] for k in ['api','code','provenance']}
+assert all(x['descendantOverflow']==0 and x['targetScrollWidth']<=x['targetWidth']+1 for x in ins)
+print(f'Verified landed public model: {len(c["sources"])} source bindings, exact-head prerequisite CI, ordinary adapter import, native/source/fresh proof compatibility and six manual captures; full #10358 incomplete.')
diff --git a/reports/data/hexrcf-quotient-branches/README.md b/reports/data/hexrcf-quotient-branches/README.md
new file mode 100644
index 0000000000..1386988db7
--- /dev/null
+++ b/reports/data/hexrcf-quotient-branches/README.md
@@ -0,0 +1,32 @@
+This record binds quotient-reader and Boolean-branch quotation to the exact
+source commit and tree in `context.json`. Run:
+
+```sh
+python3 reports/data/hexrcf-quotient-branches/verify.py --check-head
+```
+
+The public polynomial reader checks its original term list, exact/below
+budgets, rejection and caller rollback. Its importing audit checks actual
+bodies with the unchanged producer guard. The combined adapter/rational
+validation passes all 27 selected targets, including the complete manual.
+It reuses unchanged dependencies and the complete manual artifact from the
+preceding build. That build's remaining strict audit-count failure and all
+other failed validation attempts are retained separately.
+
+Six inspected desktop/narrow captures cover the added paragraph, ordinary
+public importing example and budget paragraph. The inspected targets have
+no overflow; section-level measurements also retain existing overflow.
+The recorded compiler-file sizes are module sizes, not serialized
+certificates or complete proof DAGs.
+
+The complete-cell experiment is **not accepted**. Its separately checked
+branch proofs pass the earlier kernel failure point, but the retained run
+exhausts its explicit two-million-node budget. Original-source finishing
+and the prepared importing audit were not reached. The scratch source and
+exact core used for that run are retained. These diagnostics establish no
+speedup, scaling result or algebraic completeness. Later row-factoring
+experiments are outside this snapshot.
+
+All own builds use an aggregate 32 GiB cap, no swap and two Lean threads.
+The live limit receipt and exact wrapper are retained. Older evidence
+directories retain their own revisions and inventories.
diff --git a/reports/data/hexrcf-quotient-branches/captures/browser.mjs b/reports/data/hexrcf-quotient-branches/captures/browser.mjs
new file mode 100644
index 0000000000..0ff14f355a
--- /dev/null
+++ b/reports/data/hexrcf-quotient-branches/captures/browser.mjs
@@ -0,0 +1,61 @@
+import fs from 'node:fs';
+import {spawn} from 'node:child_process';
+const root=process.argv[2];
+if(!root) throw new Error('Pass the scratch render directory');
+const profile=root+'/quotient-quotation-profile';
+fs.mkdirSync(profile,{recursive:true});
+fs.rmSync(profile+'/DevToolsActivePort',{force:true});
+const chrome=spawn(process.env.CHROME_BIN || '/home/kim/.cache/ms-playwright/chromium-1243/chrome-linux64/chrome',[
+ '--headless=new','--no-sandbox','--disable-gpu','--allow-file-access-from-files',
+ '--remote-debugging-port=0','--remote-allow-origins=*','--user-data-dir='+profile,'about:blank'],
+ {env:{...process.env,LD_LIBRARY_PATH:fs.readFileSync(root+'/browser-lib-paths.txt','utf8').trim()},stdio:'ignore'});
+let socket;
+try {
+ const portFile=profile+'/DevToolsActivePort';
+ for(let i=0;!fs.existsSync(portFile);i++) {
+ if(i>200||chrome.exitCode!==null) throw new Error('Chrome did not expose CDP');
+ await new Promise(r=>setTimeout(r,100));
+ }
+ const port=fs.readFileSync(portFile,'utf8').split('\n')[0];
+ const tabs=await (await fetch('http://127.0.0.1:'+port+'/json')).json();
+ socket=new WebSocket(tabs.find(t=>t.type==='page').webSocketDebuggerUrl);
+ await new Promise((r,j)=>{socket.onopen=r;socket.onerror=j});
+ let sequence=0;const pending=new Map();let loaded;
+ socket.onmessage=e=>{
+ const msg=JSON.parse(e.data);
+ if(msg.id){const p=pending.get(msg.id);pending.delete(msg.id);msg.error?p.reject(msg.error):p.resolve(msg.result);}
+ if(msg.method==='Page.loadEventFired'&&loaded){loaded();loaded=undefined;}
+ };
+ const call=(method,params={})=>new Promise((resolve,reject)=>{const id=++sequence;pending.set(id,{resolve,reject});socket.send(JSON.stringify({id,method,params}));});
+ await call('Page.enable');
+ const load=new Promise(r=>loaded=r);
+ await call('Page.navigate',{url:'file:///home/kim/.codex/tasks/hex-10358/scalar-review-render/scalar-review-html/html-single/index.html'});
+ await load;
+ const evaluate=async expression=>{const r=await call('Runtime.evaluate',{expression,returnByValue:true});if(r.exceptionDetails)throw new Error(JSON.stringify(r.exceptionDetails));return r.result.value;};
+ const metadata=[]; const sectionMetadata=[];
+ for(const [label,width] of [['desktop',1440],['narrow',390]]) {
+ await call('Emulation.setDeviceMetricsOverride',{width,height:1000,deviceScaleFactor:1,mobile:false});
+ for(const [kind,phrase] of [['introduction','Quotation follows the representative of a closed quotient'],['example','Quotation follows the representative of a closed quotient'],['budget','Its exact 92-node budget succeeds']] ) {
+ const exact=await evaluate(`(() => {const p=Array.from(document.querySelectorAll('p')).find(e=>e.textContent.replace(/\\s+/g,' ').includes(${JSON.stringify(phrase)}));if(!p)throw new Error('missing paragraph');const target=${JSON.stringify(kind)}==='example'?p.nextElementSibling:p;if(${JSON.stringify(kind)}==='example'&&!target.matches('.hl.lean.block, pre, div:has(code)'))throw new Error('target is not a Lean code block');target.scrollIntoView({block:${JSON.stringify('center')}});return {text:p.textContent,viewport:innerWidth,scrollY,paragraphWidth:p.getBoundingClientRect().width,scrollWidth:p.scrollWidth,targetTag:target.tagName,targetWidth:target.getBoundingClientRect().width,targetScrollWidth:target.scrollWidth,descendantOverflow:Math.max(0,...[target,...target.querySelectorAll('*')].map(e=>e.scrollWidth-e.clientWidth)),overflowElements:[target,...target.querySelectorAll('*')].filter(e=>e.scrollWidth-e.clientWidth>1).map(e=>({tag:e.tagName,classes:e.className,width:e.clientWidth,scroll:e.scrollWidth,text:e.textContent.slice(0,100)})).slice(0,8)};})()`);
+ if(!exact)throw new Error('missing visual target '+kind);
+ await evaluate('new Promise(resolve=>requestAnimationFrame(()=>requestAnimationFrame(resolve)))');
+ const shot=await call('Page.captureScreenshot',{format:'png'});
+ fs.writeFileSync(root+'/'+'quotient-quotation-'+label+'-'+kind+'.png',Buffer.from(shot.data,'base64'));
+ metadata.push({label,kind,...exact});
+ }
+ sectionMetadata.push(await evaluate(`(() => {
+ const headings=Array.from(document.querySelectorAll('h1,h2,h3,h4,h5,h6'));
+ const heading=headings.find(e=>e.textContent.includes('Quoting a supplied root replay'));
+ if(!heading)throw new Error('missing quotation heading');
+ const following=headings.find(e=>e!==heading && Number(e.tagName[1])<=Number(heading.tagName[1]) && (heading.compareDocumentPosition(e)&4));
+ if(!following)throw new Error('missing following section');
+ const targets=Array.from(document.querySelectorAll('p,.hl.lean.block')).filter(e=>(heading.compareDocumentPosition(e)&4) && (e.compareDocumentPosition(following)&4));
+ if(targets.length<8)throw new Error('incomplete quotation section');
+ return {label:${JSON.stringify(label)},width:innerWidth,targets:targets.map(e=>({tag:e.tagName,text:e.textContent.slice(0,160),overflow:Math.max(0,...[e,...e.querySelectorAll('*')].map(n=>n.scrollWidth-n.clientWidth))}))};
+ })()`));
+ }
+ fs.writeFileSync(root+'/quotient-quotation-section-overflow.json',JSON.stringify(sectionMetadata,null,2));
+ fs.writeFileSync(root+'/quotient-quotation-inspection.json',JSON.stringify(metadata,null,2));
+ if(metadata.some(e=>e.targetScrollWidth>e.targetWidth+1 || e.descendantOverflow>1)) throw new Error('Changed content overflows; retained captures and metrics identify the affected block.');
+ process.stdout.write('Saved quotient quotation desktop/narrow screenshots\n');
+} finally {if(socket)socket.close();chrome.kill('SIGTERM');}
diff --git a/reports/data/hexrcf-quotient-branches/captures/inspection.json b/reports/data/hexrcf-quotient-branches/captures/inspection.json
new file mode 100644
index 0000000000..a2376217a3
--- /dev/null
+++ b/reports/data/hexrcf-quotient-branches/captures/inspection.json
@@ -0,0 +1,86 @@
+[
+ {
+ "label": "desktop",
+ "kind": "introduction",
+ "text": "\n Quotation follows the representative of a closed quotient when selecting\nreducibility boundaries. This lets a formula polynomial stored in a tree map\nexpose its term list. Protected replay functions and canonical coefficient\ndecoders retain their existing boundaries. The public regression checks the\noriginal reader for a two-term polynomial:",
+ "viewport": 1440,
+ "scrollY": 280670,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "P",
+ "targetWidth": 752,
+ "targetScrollWidth": 752,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "desktop",
+ "kind": "example",
+ "text": "\n Quotation follows the representative of a closed quotient when selecting\nreducibility boundaries. This lets a formula polynomial stored in a tree map\nexpose its term list. Protected replay functions and canonical coefficient\ndecoders retain their existing boundaries. The public regression checks the\noriginal reader for a two-term polynomial:",
+ "viewport": 1440,
+ "scrollY": 280770,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "CODE",
+ "targetWidth": 740,
+ "targetScrollWidth": 740,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "desktop",
+ "kind": "budget",
+ "text": "\n Its exact 92-node budget succeeds, one node less exhausts, and a wrong term\ncount rejects. The controls check caller-state restoration; a fresh importing\naudit checks nine theorem bodies and four definitions with the unchanged\nproducer guard and complete standard-three axiom closure.",
+ "viewport": 1440,
+ "scrollY": 280870,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "P",
+ "targetWidth": 752,
+ "targetScrollWidth": 752,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "introduction",
+ "text": "\n Quotation follows the representative of a closed quotient when selecting\nreducibility boundaries. This lets a formula polynomial stored in a tree map\nexpose its term list. Protected replay functions and canonical coefficient\ndecoders retain their existing boundaries. The public regression checks the\noriginal reader for a two-term polynomial:",
+ "viewport": 390,
+ "scrollY": 451522,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "P",
+ "targetWidth": 343,
+ "targetScrollWidth": 343,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "example",
+ "text": "\n Quotation follows the representative of a closed quotient when selecting\nreducibility boundaries. This lets a formula polynomial stored in a tree map\nexpose its term list. Protected replay functions and canonical coefficient\ndecoders retain their existing boundaries. The public regression checks the\noriginal reader for a two-term polynomial:",
+ "viewport": 390,
+ "scrollY": 451680,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "CODE",
+ "targetWidth": 331,
+ "targetScrollWidth": 331,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "budget",
+ "text": "\n Its exact 92-node budget succeeds, one node less exhausts, and a wrong term\ncount rejects. The controls check caller-state restoration; a fresh importing\naudit checks nine theorem bodies and four definitions with the unchanged\nproducer guard and complete standard-three axiom closure.",
+ "viewport": 390,
+ "scrollY": 451827,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "P",
+ "targetWidth": 343,
+ "targetScrollWidth": 343,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ }
+]
\ No newline at end of file
diff --git a/reports/data/hexrcf-quotient-branches/captures/quotient-quotation-desktop-budget.png b/reports/data/hexrcf-quotient-branches/captures/quotient-quotation-desktop-budget.png
new file mode 100644
index 0000000000..96fda6f270
Binary files /dev/null and b/reports/data/hexrcf-quotient-branches/captures/quotient-quotation-desktop-budget.png differ
diff --git a/reports/data/hexrcf-quotient-branches/captures/quotient-quotation-desktop-example.png b/reports/data/hexrcf-quotient-branches/captures/quotient-quotation-desktop-example.png
new file mode 100644
index 0000000000..f7a954c12c
Binary files /dev/null and b/reports/data/hexrcf-quotient-branches/captures/quotient-quotation-desktop-example.png differ
diff --git a/reports/data/hexrcf-quotient-branches/captures/quotient-quotation-desktop-introduction.png b/reports/data/hexrcf-quotient-branches/captures/quotient-quotation-desktop-introduction.png
new file mode 100644
index 0000000000..76741f8ec5
Binary files /dev/null and b/reports/data/hexrcf-quotient-branches/captures/quotient-quotation-desktop-introduction.png differ
diff --git a/reports/data/hexrcf-quotient-branches/captures/quotient-quotation-narrow-budget.png b/reports/data/hexrcf-quotient-branches/captures/quotient-quotation-narrow-budget.png
new file mode 100644
index 0000000000..6b652e97d7
Binary files /dev/null and b/reports/data/hexrcf-quotient-branches/captures/quotient-quotation-narrow-budget.png differ
diff --git a/reports/data/hexrcf-quotient-branches/captures/quotient-quotation-narrow-example.png b/reports/data/hexrcf-quotient-branches/captures/quotient-quotation-narrow-example.png
new file mode 100644
index 0000000000..a2d55b5360
Binary files /dev/null and b/reports/data/hexrcf-quotient-branches/captures/quotient-quotation-narrow-example.png differ
diff --git a/reports/data/hexrcf-quotient-branches/captures/quotient-quotation-narrow-introduction.png b/reports/data/hexrcf-quotient-branches/captures/quotient-quotation-narrow-introduction.png
new file mode 100644
index 0000000000..c004890d40
Binary files /dev/null and b/reports/data/hexrcf-quotient-branches/captures/quotient-quotation-narrow-introduction.png differ
diff --git a/reports/data/hexrcf-quotient-branches/captures/section-overflow.json b/reports/data/hexrcf-quotient-branches/captures/section-overflow.json
new file mode 100644
index 0000000000..ca7061a102
--- /dev/null
+++ b/reports/data/hexrcf-quotient-branches/captures/section-overflow.json
@@ -0,0 +1,614 @@
+[
+ {
+ "label": "desktop",
+ "width": 1440,
+ "targets": [
+ {
+ "tag": "P",
+ "text": "\n RootQuote.quote accepts a Lean\nexpression for an Except ε α replay reader, including structured errors. It returns the reconstructed\ndata and",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A scalar decoder may propose an equality for the exact demanded decode. The\nhelper checks its type, dependencies and kernel proof before usin",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For example, this helper continues a request's existing budget and returns the\nupdated usage together with the checked equation:",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSuppliedRoot\n (reader : Expr)\n (scalar : RootQuote.Decoder",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Quotation follows the representative of a closed quotient when selecting\nreducibility boundaries. This lets a formula polynomial stored in a ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF in\nexample :\n QuotientQuote.reader = some 7 :=\n QuotientQuotePublic.accepted\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Its exact 92-node budget succeeds, one node less exhausts, and a wrong term\ncount rejects. The controls check caller-state restoration; a fre",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a rational predecessor, RationalQuote.decoder supplies these proposals\nwithout a fixed list of permitted numerators. It recognizes canoni",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteRationalRoot\n (reader registry : Expr)\n (config : Reify.Co",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The registry argument is a Lean expression of type\nHex.RealClosure.BaseContext.Registry. This helper supplies scalar equations;\nit does not r",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The cubic regression reads a\nsupplied replay for X³−3 on the open interval (−8,8). A fresh public consumer\nproves that the accepted descripto",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A reader that rejects its input or replay returns structured invalid-provider\nevidence. Non-readers and unsupported shapes raise terminal exc",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Canonical Element.codec decodes remain protected throughout quotation,\nincluding predecessor decodes with an explicit Element.codec head. Exp",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n All quotation regressions use maxHeartbeats := 12000000. The original root and rational\ncases use maxRecDepth := 8192; scalar, sign-packet, s",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n This API does not register a tactic handler or establish complete root coverage.\nThe acceptance equation alone does not authenticate original",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a coefficient in a selected algebraic extension,\nScalarQuote.quote uses the owner's Element.signCodec with supplied checked\nsign facts, t",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Pass the original, fully applied Element.codec expression, retaining its\nimplicit arguments. Reinferring definitionally equal context aliases",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSuppliedScalar\n (codec facts literal : Expr)\n (predecessor",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The monorepo regression imports HexRCF.ScalarQuoteCases. It decodes the\nnonrational coefficient −2√2 in the existing selected positive √2 con",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.SelectedRootTests in\nopen Hex.RCF.ScalarQuoteTests in\nexample :\n Data.original.value restored =\n -2 * Real.sqrt 2 :=\n restored_value\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The fresh audit rechecks 13 reachable quotation-case theorem bodies, including this value\nidentity, with only the standard three axioms and n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Regressions cover continued/exact/exhausted proof budgets, rollback after the\nstrict stage succeeds, missing or mismatched facts, zero withou",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a polynomial over the same selected extension,\nScalarQuote.quotePolyWith\nquotes the coefficient array through its finite sign reader and ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSuppliedPolynomial\n (reader facts : Expr)\n (predecessor : ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The regression polynomial contains two copies of −2√2. The checked original\nreader restores both positions. Its first coefficient has this or",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.SelectedRootTests in\nopen Hex.RCF.SharedQuoteTests in\nexample :\n Data.original.value\n (restored.coeff 0) =\n -2 * Real.sqrt 2 :=\n valu",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The fresh importing audit pins seven reachable theorem bodies and three data\ndefinitions, their actual owner refinement and supplied sign evi",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RootQuote.runWith supplies the transaction for a sequence of quoteWith\nactions. RootQuote.run supplies it for a reader with DecoderM callback",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n This scalar API does not reconstruct provider or predecessor histories,\nproduce missing signs, or install a general source-goal solver. The s",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n ScalarQuote.decoderWith composes checked scalar decoding through several\nselected-field predecessors. Its lookup receives each exact canonica",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSelectedReader\n (reader registry : Expr)\n (factsFor :\n Expr → Reify.Reify",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The two-level regression checks one visit to its selected context followed by\none visit to its selected predecessor. Its lookup adds 19 sourc",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n An ordinary module consumer also runs the callback factory and exports the\nchecked scalar reader equation. Its sign follows from the owner's ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RecursiveScalarPublic in\nexample : restored.sign = 1 := sign\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A fresh importing audit checks the two-level fixture and this public consumer,\nincluding accepted annotated decodes and a charged decline fol",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n ScalarPacket.quoteWith checks a supplied optional sign-packet reader. Its\nprepared context has a checked equality to the original context; a ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSuppliedSignPacket\n (reader prepared same : Expr)\n (predecessor :\n RootQuote.DecoderM) :=",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The regression quotes the parent descriptor and one packet for the polynomial\n−2X at the selected positive square root of 2. The resulting fa",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RealClosure in\nopen Hex.RCF.SelectedRootTests in\nopen Hex.RCF.SignPacketQuote in\nexample :\n Option.map Data.original.value\n (Except.toOption\n ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Quoting the parent and packet in one request consumes 108,096 proof nodes.\nWith the frozen parent and its equality already available, the pac",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The caller still supplies and authenticates the parent history and packet.\nPredecessor arithmetic retains its supplied implementation; this h",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A separate public-module example quotes a packet for X at the selected real\nroot of X³−3. Its context slots retain closed applications of the",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.PublicSignPacket in\nexample :\n coefficientReal =\n Hex.RCF.RootQuoteTests.realRoot :=\n coefficient_value\n\nopen Hex.RCF.PublicSignPacket in\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a dependent match, quotation moves trailing branch-equality proofs along\nthe checked equation for the match's subject. This uses ordinary",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF in\nexample :\n DependentQuote.continuedFunction =\n some 29 :=\n ProofFunctionPublic.continued\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n During replay-law\nconversion, an explicit checked function boundary is first kept abstract, then instantiated\nwith the actual function and it",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RootHeader.quoteWith\naccepts the complete original RootReplay.readDescriptor application. It quotes\nthat reader, obtains the independently pa",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The public regression constructs a new root and context from that result,\nquotes the sign packet for X with fully numerical graph fields, and",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RootHeaderPacket in\nexample : coefficientReal = realRoot :=\n coefficient_value\n\nopen Hex.RCF.RootHeaderPacket in\nexample : 0 < coefficientReal :=\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The fresh importing audit includes the generated binding, packet reader,\ncoefficient decoding and real-value proofs. It rejects dependencies ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The default quotation rules recognize Signature.codec.decode applied to the\ncanonical encoding of its actual signature argument, using the ex",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.FrozenSignature in\nexample : readFirst.toOption =\n some first :=\n readFirst_checked\n\nopen Hex.RCF.FrozenSignature in\nexample : readSecond.toOpt",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The cubic packet retains frozen numerical node and nested-moment signatures\nfor its rational predecessor. A signature's serialization identit",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RootContext.packWith\nthen assembles an actual native root context from a closed retained parent and\nits checked descriptor. It keeps the exis",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The same decoded coefficient can be interpreted through the owner's ordinary\nreal model of the packed context, retaining its selected value a",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF in\nopen RootContextCases in\nopen RootHeaderPacket in\nexample : model.value coefficient =\n realRoot :=\n value_checked\n\nopen Hex.RCF in\nopen Root",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The packing budget covers context and signature proof construction. Model\nconstruction is checked separately; its cost is not included in tha",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RootPrepare.prepareWith\nprepares the native context of a reconstructed descriptor for subsequent\nquotation. It checks closed inputs and the e",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.RCF.RealCoefficients in\nmeta def prepareRootContext\n (reader clean : Expr)\n (scalar : RootQuote.DecoderM) :\n Reif",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Run this action and subsequent quotation in one RootQuote.runWith request.\nCombine its decoder with the exact predecessor's scalar and signat",
+ "overflow": 0
+ }
+ ]
+ },
+ {
+ "label": "narrow",
+ "width": 390,
+ "targets": [
+ {
+ "tag": "P",
+ "text": "\n RootQuote.quote accepts a Lean\nexpression for an Except ε α replay reader, including structured errors. It returns the reconstructed\ndata and",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A scalar decoder may propose an equality for the exact demanded decode. The\nhelper checks its type, dependencies and kernel proof before usin",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For example, this helper continues a request's existing budget and returns the\nupdated usage together with the checked equation:",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSuppliedRoot\n (reader : Expr)\n (scalar : RootQuote.Decoder",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Quotation follows the representative of a closed quotient when selecting\nreducibility boundaries. This lets a formula polynomial stored in a ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF in\nexample :\n QuotientQuote.reader = some 7 :=\n QuotientQuotePublic.accepted\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Its exact 92-node budget succeeds, one node less exhausts, and a wrong term\ncount rejects. The controls check caller-state restoration; a fre",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a rational predecessor, RationalQuote.decoder supplies these proposals\nwithout a fixed list of permitted numerators. It recognizes canoni",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteRationalRoot\n (reader registry : Expr)\n (config : Reify.Co",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The registry argument is a Lean expression of type\nHex.RealClosure.BaseContext.Registry. This helper supplies scalar equations;\nit does not r",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The cubic regression reads a\nsupplied replay for X³−3 on the open interval (−8,8). A fresh public consumer\nproves that the accepted descripto",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A reader that rejects its input or replay returns structured invalid-provider\nevidence. Non-readers and unsupported shapes raise terminal exc",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Canonical Element.codec decodes remain protected throughout quotation,\nincluding predecessor decodes with an explicit Element.codec head. Exp",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n All quotation regressions use maxHeartbeats := 12000000. The original root and rational\ncases use maxRecDepth := 8192; scalar, sign-packet, s",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n This API does not register a tactic handler or establish complete root coverage.\nThe acceptance equation alone does not authenticate original",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a coefficient in a selected algebraic extension,\nScalarQuote.quote uses the owner's Element.signCodec with supplied checked\nsign facts, t",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Pass the original, fully applied Element.codec expression, retaining its\nimplicit arguments. Reinferring definitionally equal context aliases",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSuppliedScalar\n (codec facts literal : Expr)\n (predecessor",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The monorepo regression imports HexRCF.ScalarQuoteCases. It decodes the\nnonrational coefficient −2√2 in the existing selected positive √2 con",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.SelectedRootTests in\nopen Hex.RCF.ScalarQuoteTests in\nexample :\n Data.original.value restored =\n -2 * Real.sqrt 2 :=\n restored_value\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The fresh audit rechecks 13 reachable quotation-case theorem bodies, including this value\nidentity, with only the standard three axioms and n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Regressions cover continued/exact/exhausted proof budgets, rollback after the\nstrict stage succeeds, missing or mismatched facts, zero withou",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a polynomial over the same selected extension,\nScalarQuote.quotePolyWith\nquotes the coefficient array through its finite sign reader and ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSuppliedPolynomial\n (reader facts : Expr)\n (predecessor : ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The regression polynomial contains two copies of −2√2. The checked original\nreader restores both positions. Its first coefficient has this or",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.SelectedRootTests in\nopen Hex.RCF.SharedQuoteTests in\nexample :\n Data.original.value\n (restored.coeff 0) =\n -2 * Real.sqrt 2 :=\n valu",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The fresh importing audit pins seven reachable theorem bodies and three data\ndefinitions, their actual owner refinement and supplied sign evi",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RootQuote.runWith supplies the transaction for a sequence of quoteWith\nactions. RootQuote.run supplies it for a reader with DecoderM callback",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n This scalar API does not reconstruct provider or predecessor histories,\nproduce missing signs, or install a general source-goal solver. The s",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n ScalarQuote.decoderWith composes checked scalar decoding through several\nselected-field predecessors. Its lookup receives each exact canonica",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSelectedReader\n (reader registry : Expr)\n (factsFor :\n Expr → Reify.Reify",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The two-level regression checks one visit to its selected context followed by\none visit to its selected predecessor. Its lookup adds 19 sourc",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n An ordinary module consumer also runs the callback factory and exports the\nchecked scalar reader equation. Its sign follows from the owner's ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RecursiveScalarPublic in\nexample : restored.sign = 1 := sign\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A fresh importing audit checks the two-level fixture and this public consumer,\nincluding accepted annotated decodes and a charged decline fol",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n ScalarPacket.quoteWith checks a supplied optional sign-packet reader. Its\nprepared context has a checked equality to the original context; a ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSuppliedSignPacket\n (reader prepared same : Expr)\n (predecessor :\n RootQuote.DecoderM) :=",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The regression quotes the parent descriptor and one packet for the polynomial\n−2X at the selected positive square root of 2. The resulting fa",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RealClosure in\nopen Hex.RCF.SelectedRootTests in\nopen Hex.RCF.SignPacketQuote in\nexample :\n Option.map Data.original.value\n (Except.toOption\n ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Quoting the parent and packet in one request consumes 108,096 proof nodes.\nWith the frozen parent and its equality already available, the pac",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The caller still supplies and authenticates the parent history and packet.\nPredecessor arithmetic retains its supplied implementation; this h",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A separate public-module example quotes a packet for X at the selected real\nroot of X³−3. Its context slots retain closed applications of the",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.PublicSignPacket in\nexample :\n coefficientReal =\n Hex.RCF.RootQuoteTests.realRoot :=\n coefficient_value\n\nopen Hex.RCF.PublicSignPacket in\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a dependent match, quotation moves trailing branch-equality proofs along\nthe checked equation for the match's subject. This uses ordinary",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF in\nexample :\n DependentQuote.continuedFunction =\n some 29 :=\n ProofFunctionPublic.continued\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n During replay-law\nconversion, an explicit checked function boundary is first kept abstract, then instantiated\nwith the actual function and it",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RootHeader.quoteWith\naccepts the complete original RootReplay.readDescriptor application. It quotes\nthat reader, obtains the independently pa",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The public regression constructs a new root and context from that result,\nquotes the sign packet for X with fully numerical graph fields, and",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RootHeaderPacket in\nexample : coefficientReal = realRoot :=\n coefficient_value\n\nopen Hex.RCF.RootHeaderPacket in\nexample : 0 < coefficientReal :=\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The fresh importing audit includes the generated binding, packet reader,\ncoefficient decoding and real-value proofs. It rejects dependencies ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The default quotation rules recognize Signature.codec.decode applied to the\ncanonical encoding of its actual signature argument, using the ex",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.FrozenSignature in\nexample : readFirst.toOption =\n some first :=\n readFirst_checked\n\nopen Hex.RCF.FrozenSignature in\nexample : readSecond.toOpt",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The cubic packet retains frozen numerical node and nested-moment signatures\nfor its rational predecessor. A signature's serialization identit",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RootContext.packWith\nthen assembles an actual native root context from a closed retained parent and\nits checked descriptor. It keeps the exis",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The same decoded coefficient can be interpreted through the owner's ordinary\nreal model of the packed context, retaining its selected value a",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF in\nopen RootContextCases in\nopen RootHeaderPacket in\nexample : model.value coefficient =\n realRoot :=\n value_checked\n\nopen Hex.RCF in\nopen Root",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The packing budget covers context and signature proof construction. Model\nconstruction is checked separately; its cost is not included in tha",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RootPrepare.prepareWith\nprepares the native context of a reconstructed descriptor for subsequent\nquotation. It checks closed inputs and the e",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.RCF.RealCoefficients in\nmeta def prepareRootContext\n (reader clean : Expr)\n (scalar : RootQuote.DecoderM) :\n Reif",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Run this action and subsequent quotation in one RootQuote.runWith request.\nCombine its decoder with the exact predecessor's scalar and signat",
+ "overflow": 0
+ }
+ ]
+ }
+]
\ No newline at end of file
diff --git a/reports/data/hexrcf-quotient-branches/context.json b/reports/data/hexrcf-quotient-branches/context.json
new file mode 100644
index 0000000000..284ee57dda
--- /dev/null
+++ b/reports/data/hexrcf-quotient-branches/context.json
@@ -0,0 +1,336 @@
+{
+ "source_commit": "c2869b45acb31cb6aa4975916cdfaf21a0440220",
+ "source_tree": "3148fc3826a2ad4e1f2c6eac1cb8f142aa351910",
+ "baseline_commit": "e2a43c3597e7439916f54e0aa2ea41ff7d30675f",
+ "sources": {
+ ".github/workflows/ci.yml": "bf3ef0c4e00ef2397ef5857a629a391e24252b864c093198b08775b6977c563d",
+ "AGENTS.md": "4e0a48cf49a61e56ed84c8b28e232b5bfad29f2da20571377692be6e1c316f30",
+ "HexManual/Chapters/HexRCF/RootQuote.lean": "1e7ae6741abb543bef7115703737a2df5d33ff040f372024b9233cef534d7676",
+ "HexManual/Chapters/HexRCF/RootTableQuote.lean": "c96054f7024d60f1d5b654a8bded87959e2642e07c82d580557b72399deeafc3",
+ "HexRCF/README.md": "3830d758a8a75d59df1a6dd01f59204a86858b5eda3e43a78f9e9e9c2d769a8a",
+ "HexRCF/SPEC/hex-rcf.md": "df8c6bb2435a2794faa36bc77e41f4c936f06ae149f29c3e68fe0d79f4ebfafb",
+ "HexRCF/Tactic.lean": "09d895ba1dd2c1af0bfffca197494f2614380ded268ff13e4e0b02fea22b9224",
+ "HexRealClosure/Algebraic.lean": "d05f9fb72fe9544ae9ddc685dff17080f876aa4c99c70e8992d511e011f6a454",
+ "HexRealClosure/ContextData.lean": "ca29790752b8d25f10d03a9877690a5ff40f1fdf6815c96fe9693941206e662c",
+ "HexRealClosure/SignCodec.lean": "7126323c97b77204386795a0f252f1babfd0ed7f3dba7ee3927a99b9d5c1852a",
+ "HexRealClosure/SignFacts.lean": "9c22837e93e6f50cc96310163e352ac608fbcfbd6275edab33751da2fd84f47c",
+ "HexRealClosure/SignatureCodecTests.lean": "ffc72777523ac0e92b563481804bdfb581fb0173fe7a021009737d57959b4462",
+ "HexRealClosure/TowerContext.lean": "6ef8b87b2d81cb177505a4bbc88befa078b20578cedd49e836d850753c203ee3",
+ "PLAN.md": "e94a60324486913b4a04650edd617c4ff8bef469dc7fd311adea8407c6662ea0",
+ "SPEC/real-closure-execution.md": "bc0948ad7de6969baaed89c0b3052cb0d21d64d634f8a336f9a7dde446b057f5",
+ "adapters/HexRCF/RealCoefficients.lean": "f16eff0302ef0296fc034f59619d232be1921c2f06247dca69db4c53c06c68de",
+ "adapters/HexRCF/RealCoefficients/RationalQuote.lean": "675e2ba065b696f257adefc07fe30ddb0190f321d86005444579ea5a0744bdf5",
+ "adapters/HexRCF/RealCoefficients/RealModel.lean": "712b4fd3edff8eaa6f93e501da5debf04529d1ea8c11a18389820f866d179c43",
+ "adapters/HexRCF/RealCoefficients/Reify.lean": "ea8474b9e253f93a1583064ca99ec0bf376dadf5457fd60b57e9e18460cf449c",
+ "adapters/HexRCF/RealCoefficients/RootContext.lean": "792176eab63e5e62b759a10893569946ef6d019566b8116c85237b3e16fcdb86",
+ "adapters/HexRCF/RealCoefficients/RootHeader.lean": "681f2a964bc30f65a92a0fb1a58b4d4013eb396df37ca813962702065fb46261",
+ "adapters/HexRCF/RealCoefficients/RootPrepare.lean": "de72a8e3ac4adb13365801476467bf691e630d0952b018ccecd88846c3bdb025",
+ "adapters/HexRCF/RealCoefficients/RootQuote.lean": "669045d99b1dd188099ff85732faa5c1925b2297b69fd0ba531005b5151b0735",
+ "adapters/HexRCF/RealCoefficients/ScalarPacket.lean": "9ae62bea85dab43ec01329defa9f788af4843e74b24f40f6c6f1b28adaadc6bf",
+ "adapters/HexRCF/RealCoefficients/ScalarQuote.lean": "fee2617a998f29d05c8959b484060ac1d719359c6d851a8ff6699fa9cb370acc",
+ "adapters/HexRCF/RealCoefficients/SignatureQuote.lean": "c3bb71b52c2a544b902bc256b3a162e1c3c4e7f94ae6b21808914e67109710eb",
+ "adapters/HexRealClosureTheory/Algebraic.lean": "2495153acbe4e468521913a2f5d6569831cd05f5ee48d5ddb26fc31a43438c7e",
+ "adapters/HexRealClosureTheory/SignFacts.lean": "c2b8cf96de0cccc2c0c3cbe83f0afd7c40ab9736b75f377ec5bfedc0907f34e3",
+ "adapters/HexRealClosureTheory/TowerModel.lean": "70d0e57e8ecc78eb9b7675d875157462d27cf9494d49d72bba019eaa6dd1d788",
+ "conformance/HexRCF/DependentQuote.lean": "0df154544a17857334480e7c577ecbcf1afe04165fa2da1a5a6407bf41e85518",
+ "conformance/HexRCF/DependentQuoteData.lean": "ed254475e78fa6edb27d4e55222a598b07b7357154ea0495d6195f2f1d39ee46",
+ "conformance/HexRCF/DependentQuoteProofs.lean": "5875aa9748f50340668e58aea97b196d3353313352fb8c819ae5ee3542556980",
+ "conformance/HexRCF/DependentScalarProofs.lean": "9e8da19d71e1496babd31ecb13430d74abb5f383738d47cbc1bc066b27902cfe",
+ "conformance/HexRCF/DependentScalarQuote.lean": "e20dd7346c337dd17126c394965f268e568706730f475844d7c0907051224933",
+ "conformance/HexRCF/FrozenSignatureConformance.lean": "8e7d432aecb87fb89bb188e4c579e86fb5c3348c5430f1e2b1a00f1f820a940e",
+ "conformance/HexRCF/FrozenSignatureProofs.lean": "55de6da9b0b3dc2d1e384d6c838d13294287c44060afb8e70aa2a0c8e01a81cb",
+ "conformance/HexRCF/ProofFunctionPublic.lean": "f928c9f0dd0a704d34a516b6282cfa6a7a4eb6c112d49689c450647a44370a6b",
+ "conformance/HexRCF/PublicSignPacket.lean": "c32d73c5634376907b965e1ea6cf69352fdda1f1945ce2f34a378cc217778102",
+ "conformance/HexRCF/PublicSignPacketControls.lean": "b4f98bd8ef190a361dd7752d4d5ece0cfbd862ff4face5a06dfabecf87096028",
+ "conformance/HexRCF/PublicSignPacketProofs.lean": "8c230e45826eee079662a91506a16be1b772788636377eb9e442ade195f1cddb",
+ "conformance/HexRCF/PublicSignPacketValues.lean": "72705dba30f04f986188903fb49b983c6f0a664895116fca8bd8b6b46b6517e5",
+ "conformance/HexRCF/QuotientQuote.lean": "97b2cbc9abdb46db33a9a91328f331edf8dea055cc244489158121cde8dc1903",
+ "conformance/HexRCF/QuotientQuoteData.lean": "ec26777d655a7898d7f7922fcea8f426a3f8c77a53000b69b6fe1755a0348870",
+ "conformance/HexRCF/QuotientQuoteProofs.lean": "f1d95accf6caed1c7354408b3a1a0b29493a526e82036390e39102ebe80c6752",
+ "conformance/HexRCF/QuotientQuotePublic.lean": "a3bd9a082df14a0ac93ba3798e13c6ebbf9dff98d7613264713aa281a5a18bea",
+ "conformance/HexRCF/RationalQuoteConformance.lean": "1d6eba51bca64783cf96435d771f230064eeace592ea9cf133e9cb09fcae6a4f",
+ "conformance/HexRCF/RootContextConformance.lean": "0c52084609ec3de8afd51330a7d2cc97f7bae1d8b2bbc421138783940fc7db37",
+ "conformance/HexRCF/RootContextProofs.lean": "13cf69a5712dd4055c5f594640c26d88e3af6d73280fb24b76c6d561b155a0c4",
+ "conformance/HexRCF/RootHeaderBudget.lean": "db30b6b7781fabd238ea2c934477e5ae281cc6cd905f11848ce46eb66ef45fe0",
+ "conformance/HexRCF/RootHeaderControls.lean": "aca063af3bfe475166aef92193f162c25a0e53eea094087cf334406a3d513157",
+ "conformance/HexRCF/RootHeaderPacket.lean": "e924a3b799cfff2573e2861e3533be94147a6505aa11837a99dc8985ba0ae7dc",
+ "conformance/HexRCF/RootHeaderProofs.lean": "e9dd89bb62a096cbc485a4e490db1fc80cb7ae5e11626ea582ff771f450598f0",
+ "conformance/HexRCF/RootHeaderValues.lean": "de9a8fc7c2e9371cbd3324eb700180411e49865dbc6535a74d2c882f74e38e13",
+ "conformance/HexRCF/RootPrepareControls.lean": "5a6e3731eac813867b34e9f902a2f7d5f090b2fae6af9c2b859a3be76b68ae85",
+ "conformance/HexRCF/RootPreparePacket.lean": "e33b5b2921ec13559eb4d6b1d8a3f3cc5ccfd4dd7deb66753806c3f3b39e7a8b",
+ "conformance/HexRCF/RootPrepareProofs.lean": "71ce391d038c5dba043b882e26191d01800dcc36fc9399c222fb0346ea9a16e6",
+ "conformance/HexRCF/RootPreparePublic.lean": "a9e09cbe8d1287b97dde71ad1c6dbe149cfbacb6f81f41a8493ee802416d0805",
+ "conformance/HexRCF/RootQuoteCases.lean": "602d15ef501e969183bffbda7fb3c0f00a174ba5c2dbc35370ee7fce896944dd",
+ "conformance/HexRCF/RootQuoteConformance.lean": "7b3c16bd944470a29bb3f5ecbc52e2d61a50c413caa918df47e489eda76e2ef7",
+ "conformance/HexRCF/RootQuoteData.lean": "faa259d129d5c65a063c7143e45d5d9d19573ed49862aa5ecb3978ff389cb514",
+ "conformance/HexRCF/RootQuoteSource.lean": "aca1654efc1a452aca8ef573bb8ea3a435a4e1e18a4dca854d9bcc8e350d511d",
+ "conformance/HexRCF/RootTableQuote/Conformance.lean": "81756914e039e467e16f9de0fb6a742cd25c5c5706a60ed988bd23f942b9875b",
+ "conformance/HexRCF/SelectedRoot/KernelCheck.lean": "12e7e2e3f4667a76dc89c4b36796bff177f3c187b81adc5eb5e049ff1ce6669d",
+ "conformance/HexRCF/SignPacketProofs.lean": "744b4f9e7a3e6135bc2d3bf456f0a44ba396d87fe008fec2f95382ab7ecc89f9",
+ "conformance/HexRCF/SignPacketQuote.lean": "d16c28d44fd9acb3b829a9817463364bd642b29bc72b2cff02c65250af0dd76f",
+ "conformance/HexRCF/SignatureQuoteConformance.lean": "26f16c37cb9e0d5c09a082787f4a66673437adbf998023fd5e9625db16ff5d3f",
+ "experiments/KernelReplay/AxiomClosure.lean": "f49377265f05f52b633b10a59255a03731e08d022cc54763de9851c5b5325034",
+ "lake-manifest.json": "fd2dc4df30cd44e4d30568489d616e7bcc8a78747500139134be56f35ae746a4",
+ "lakefile.lean": "f654e824794d6a4b727a90d6d9d6904aacc41754478235df3c2c1cb700c151ca",
+ "lean-toolchain": "bc84812c94489d1e3e191baa1dc10d5eb684382d7fe9d2a5ab085e72c1c67e47",
+ "libraries.yml": "14e3dd1c01bb0c369b2216e2733378d61172040fd9f69dd0354d4e1267d9c5c1",
+ "reports/hexrcf-packet-quotation.md": "2b0f0b40a29fe3232ee588ec06b3bdfefb2facced7327049c8ad1cd70b6ca35e",
+ "reports/hexrcf-proof-functions.md": "ff410e9c4714476913d5651dd04d61a7ec55289b6143a6b1d29ccda331cd8989",
+ "reports/hexrcf-public-packet-quotation.md": "019ff6fe31e6699ec10e126a1d477a6a4b4f78b67893b5ce447cfe2aa637b316",
+ "reports/hexrcf-root-context.md": "fa967a71370454f5d1fcdb757ebf6ab6fa669538f253c3cc6cb6b6f826361c8a",
+ "reports/hexrcf-root-header-quotation.md": "62ecb8f293a9144b8a8a0bdc4910c473bd87063162bb656b94f1be53eb2e4617",
+ "reports/hexrcf-root-preparation.md": "23b6fc84e7b54447e224a166228f275f9ad239c90b2c6c8e4ea38d2f93e55cef",
+ "reports/hexrcf-sign-packet-quotation.md": "64adc6438ad1593d1018e14f2757cb6193614db26141af9c0c76d359084d9d99"
+ },
+ "unchanged_guards": [
+ "conformance/HexRCF/SelectedRoot/KernelCheck.lean",
+ "experiments/KernelReplay/AxiomClosure.lean",
+ "AGENTS.md",
+ "PLAN.md",
+ ".github/workflows/ci.yml"
+ ],
+ "artifacts": [
+ {
+ "path": "validation/branch-seal-integration-4.log.gz",
+ "bytes": 23425,
+ "sha256": "12f618da022dbde67e1eadf2c3ebf1826a87e74d21e2ac4a9b8afd6b016d838f",
+ "uncompressed_sha256": "9a07e173cd3584b6ee5ea84d4c383d6ff4fc0c9d45d7a3e46db66acc1599834d"
+ },
+ {
+ "path": "validation/quotient-quotation-render-1.log.gz",
+ "bytes": 15571,
+ "sha256": "638803ccd947ab893283bc79ccefcf7866ee88ce4c62a843653b9370671ec626",
+ "uncompressed_sha256": "db52b52cde3feb801ea6cfe09f6110d85ed5a2d5590d212a4abb309c3a6bb3d0"
+ },
+ {
+ "path": "validation/quotient-quotation-browser-1.log.gz",
+ "bytes": 242,
+ "sha256": "64ec93b76f5101781e01eb10c0acd6eccb9a11758ac3f9d6b96030aab958032a",
+ "uncompressed_sha256": "68fd796a18ce4c0404d8e93208c1d317395c36217b0d9794a2b6569efd8bd936"
+ },
+ {
+ "path": "validation/branch-seal-small-1.log.gz",
+ "bytes": 9031,
+ "sha256": "e378a718e2d6dad5c0b18f664767069683e203b00a44265032e6e13e20afc849",
+ "uncompressed_sha256": "99ae14d8491ee9f53c1629d2788eac92d41905c6a0701115413bcf357d90e244"
+ },
+ {
+ "path": "validation/branch-seal-compatibility-2.log.gz",
+ "bytes": 7026,
+ "sha256": "61e028b0b90e36e40ee9cbab750b38d9a31f94107e0908beba0eca5ab7ebf987",
+ "uncompressed_sha256": "3dcb5062bb9994240647cb62f315b24c152d7e4e707a8b5fc468fcb40e0b35e2"
+ },
+ {
+ "path": "validation/metadata.json",
+ "bytes": 1183,
+ "sha256": "78244646a9a07ad5fa61f096cb71793c0314fd8ad67773824aed0ba2adc0aac0"
+ },
+ {
+ "path": "validation/quotient-quotation-metadata-copyright.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "validation/quotient-quotation-metadata-lines.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "validation/quotient-quotation-metadata-dag.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "validation/quotient-quotation-metadata-admissions.log.gz",
+ "bytes": 100,
+ "sha256": "86c87a2ada5a49d30e4cd149bf8df52d3fb00b84114c38699923e6ac6e77bb5a",
+ "uncompressed_sha256": "8bf794423604b32f2d2d8a505029ff9a7cf277c93c236dccff21af2e2aeaefb1"
+ },
+ {
+ "path": "validation/quotient-quotation-metadata-diff.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "validation/quotient-quotation-metadata-selected-admissions.log.gz",
+ "bytes": 135,
+ "sha256": "c4881afb71ab03cfda3bf476ffcb3fb9af6595f0aa3517009b15d6265b2745b9",
+ "uncompressed_sha256": "f410d5e90bc47b4f9f541b17141b2974b46c5a372e8a2e42d010aef9c6515c52"
+ },
+ {
+ "path": "validation/quotient-quotation-metadata-relative.log.gz",
+ "bytes": 105,
+ "sha256": "c43d1ba9fa5a6ea3d05919ed8b5f63ae6d92bdbc66b09a9c0e2db03229da84e9",
+ "uncompressed_sha256": "5b6d65aeb6cb570bc5e9b14d70d6222627b455a17e51016ce5d0bf8c9d5cd4c3"
+ },
+ {
+ "path": "validation/metadata-driver.py.txt",
+ "bytes": 3301,
+ "sha256": "327cd55402b788e0dabd834879345576ae40415243f2e18204eaae7dd7ece819"
+ },
+ {
+ "path": "validation/run-bounded.sh",
+ "bytes": 302,
+ "sha256": "63bc5f97337e6b039bb3a9b1ba2a500be96fd1c2a2f73b43dae284aa9b18dda8"
+ },
+ {
+ "path": "validation/collect.py.txt",
+ "bytes": 4684,
+ "sha256": "a5380fe26e7cb7e6b38889196f10e94b662c075421b4f33fe39eae56479411d4"
+ },
+ {
+ "path": "validation/memory-policy.txt.gz",
+ "bytes": 115,
+ "sha256": "3e6fac7cd523fa0b62215d32298b7d0c8e9d64cec845f747a5933b89ac8bbe4c",
+ "uncompressed_sha256": "0edf6756b5d05dbaf9548ca67dab3016e60179882745fdb10086fc4dca416297"
+ },
+ {
+ "path": "captures/browser.mjs",
+ "bytes": 5549,
+ "sha256": "629d64ad670b76aede5ad10ff614ceb052bc78afb1d05b44a3bf1b9dd9a3a530"
+ },
+ {
+ "path": "captures/inspection.json",
+ "bytes": 3892,
+ "sha256": "29f6f5f95a3895bc93615e3a26aa6ca7d58d1e7fe91d9e822847c9230b133484"
+ },
+ {
+ "path": "captures/section-overflow.json",
+ "bytes": 28918,
+ "sha256": "25db43ef941a9fb81f6f2fa4f236dd824c6f3472d4f79fefdc2d7b0b1ab16dda"
+ },
+ {
+ "path": "validation/render.lean.txt",
+ "bytes": 206,
+ "sha256": "664d37e07421cd5f5ee5df6e4fdb3f18fb67b1e58e3688267ff6ca6909180ef3"
+ },
+ {
+ "path": "captures/quotient-quotation-desktop-introduction.png",
+ "bytes": 270028,
+ "sha256": "49826c2a588a0ec816b1bdb5b7ad4d3a497676dcdc7cc0fa5deead8a32f0f9d4"
+ },
+ {
+ "path": "captures/quotient-quotation-desktop-example.png",
+ "bytes": 263700,
+ "sha256": "3cd92fa313a947f46390ea1b3c97873f006ce63230daa7761f794d58ccb39d4e"
+ },
+ {
+ "path": "captures/quotient-quotation-desktop-budget.png",
+ "bytes": 262992,
+ "sha256": "6b56b51028fb1360101697dbba2283008cf15630ac2d098d5880e8fb85f767e1"
+ },
+ {
+ "path": "captures/quotient-quotation-narrow-introduction.png",
+ "bytes": 91788,
+ "sha256": "6aac2ac3e65b01425945cbfe253bc5bd29358910e1010bdaef0a18f9ba4217b0"
+ },
+ {
+ "path": "captures/quotient-quotation-narrow-example.png",
+ "bytes": 96822,
+ "sha256": "5aa75c36ffb316c8c22a5e653791c2d7544c4fb86ad412890e863a5f6d817628"
+ },
+ {
+ "path": "captures/quotient-quotation-narrow-budget.png",
+ "bytes": 92112,
+ "sha256": "cb88a632ca2325dd17a050b7aa3dd4d92a3dbf9a7c517d825ef549a1f76a4616"
+ },
+ {
+ "path": "diagnostics/fresh-complete-frozen-13.log.gz",
+ "bytes": 23606,
+ "sha256": "8f546bbc8999f16af82add1eee96cb6497ff35ac7f7b9232470833acc5140b13",
+ "uncompressed_sha256": "354b4af6ee30560cfb77e3a41043a4abda8b701856156fea347b54a3426dd832"
+ },
+ {
+ "path": "diagnostics/fresh-complete-frozen-14.log.gz",
+ "bytes": 7740,
+ "sha256": "a682de61b122d2308f642af017891b95398680d4dac44e32090a80ac97e315ca",
+ "uncompressed_sha256": "81b915744c7fe0a28adaac29c42946d9edf02b7d51cf460b87380b2efaf26c46"
+ },
+ {
+ "path": "diagnostics/fresh-complete-frozen-14-progress.log.gz",
+ "bytes": 1883,
+ "sha256": "6dc31472b2b618c31190657391d6afe0de0d362eea4bb86088fdab41b97c4225",
+ "uncompressed_sha256": "47b483424d94c85f0bfb160be573d1e104597c6dce8062aafa1dffd1699d3dda"
+ },
+ {
+ "path": "diagnostics/fresh-complete-frozen-14.lean.txt.gz",
+ "bytes": 3275,
+ "sha256": "12e5e7e86d3602ade1ff0a226cc7307e6b9a49c0a92942067553a6ad9ffe2ddc",
+ "uncompressed_sha256": "5c1de1b65b251b5ca5c187a69ea1fa48552f62c2c8a9499678c121b08300c1af"
+ },
+ {
+ "path": "diagnostics/frozen-14-RootQuote.lean.txt.gz",
+ "bytes": 9168,
+ "sha256": "e81865392c308a1f689a40de87189190c76150d9980fae8a5e77d52cac420aae",
+ "uncompressed_sha256": "669045d99b1dd188099ff85732faa5c1925b2297b69fd0ba531005b5151b0735"
+ },
+ {
+ "path": "diagnostics/branch-seal-integration-1.log.gz",
+ "bytes": 18176,
+ "sha256": "bad5196eeefc675fa589a339d12a3253d5302edc3da8fd50526cef504576e0bb",
+ "uncompressed_sha256": "90c7f22e7a93831111ef44af7890b4216968596ba44f79155a2913fc46ba2e90"
+ },
+ {
+ "path": "diagnostics/branch-seal-integration-2.log.gz",
+ "bytes": 22601,
+ "sha256": "e55db1e0536f38f794db2c6b8f6298215f7f48f3e595b4373de847de555d920a",
+ "uncompressed_sha256": "065af21d7d7922c4eb8919e1c77864e330b78182a068323947bf1f6352bc36ef"
+ },
+ {
+ "path": "diagnostics/branch-seal-integration-3.log.gz",
+ "bytes": 23453,
+ "sha256": "8b84107f3f3e1892ee5c4a271330b1f254db997e2e329feb3f8a7b1d60255b26",
+ "uncompressed_sha256": "744eb0cdcf309b4f1b8be2705263683af8c0802a3343f01a6fa269d86e10e1c4"
+ },
+ {
+ "path": "diagnostics/branch-seal-compatibility-1.log.gz",
+ "bytes": 9324,
+ "sha256": "414d37c7e1fe93b9d7b89056436c22f818f60ece33673dc933319e0adc11ff41",
+ "uncompressed_sha256": "c14566fee4e306dc211af2bb2ff5958e4f2a1971b9d85f064f4f5117b3d1b866"
+ }
+ ],
+ "validation": {
+ "integration": "validation/branch-seal-integration-4.log.gz",
+ "render": "validation/quotient-quotation-render-1.log.gz",
+ "browser": "validation/quotient-quotation-browser-1.log.gz",
+ "quotient": "validation/branch-seal-small-1.log.gz",
+ "root": "validation/branch-seal-compatibility-2.log.gz"
+ },
+ "visually_inspected_captures": [
+ "captures/quotient-quotation-desktop-introduction.png",
+ "captures/quotient-quotation-desktop-example.png",
+ "captures/quotient-quotation-desktop-budget.png",
+ "captures/quotient-quotation-narrow-introduction.png",
+ "captures/quotient-quotation-narrow-example.png",
+ "captures/quotient-quotation-narrow-budget.png"
+ ],
+ "complete_packet_accepted": false,
+ "compiled_files": [
+ {
+ "path": ".lake/build/lib/lean/HexRCF/QuotientQuoteData.olean",
+ "bytes": 29920,
+ "sha256": "1eb8b8c5d91d02edf1bd4b8f6bd9752ba0ef283546ffd70a433924ba3832ff39"
+ },
+ {
+ "path": ".lake/build/lib/lean/HexRCF/QuotientQuote.olean",
+ "bytes": 61648,
+ "sha256": "c1cbd340f8a4a0b6ef20b3cb6acfe7d348484abd2bdc59b2ca41113bf7d8ccfd"
+ },
+ {
+ "path": ".lake/build/lib/lean/HexRCF/QuotientQuotePublic.olean",
+ "bytes": 4408,
+ "sha256": "bc7001e03effa43a9b29a768dda87ae069a3559c38b996c805af7d926b9b8761"
+ },
+ {
+ "path": ".lake/build/lib/lean/HexRCF/QuotientQuoteProofs.olean",
+ "bytes": 3160,
+ "sha256": "c65a711e5a078c6746b114d9904dafe410db67cec07a7ef18cab419f4db0a864"
+ }
+ ],
+ "scope": "Closed quotient representative traversal and independently checked Boolean branch proofs; actual public-module polynomial reader, strict budgets, rollback, guarded fresh-body compatibility, complete manual and six inspected targets. No new generic complete-cell acceptance, source/provider/history authentication or algebraic completeness claim.",
+ "limits": "Frozen13 is a historical kernel failure. Frozen14 passes that failure point but exhausts 2M proof nodes; original-source finishing and its prepared audit were not reached. These completed diagnostic runs are not an AB/BA speed comparison. Compiled file sizes are module sizes, not serialized certificates or proof DAGs. Browser targets have no local overflow; pre-existing section/global overflow is retained separately. Future row-factoring experiments are not covered by this snapshot."
+}
diff --git a/reports/data/hexrcf-quotient-branches/diagnostics/branch-seal-compatibility-1.log.gz b/reports/data/hexrcf-quotient-branches/diagnostics/branch-seal-compatibility-1.log.gz
new file mode 100644
index 0000000000..b6229be9be
Binary files /dev/null and b/reports/data/hexrcf-quotient-branches/diagnostics/branch-seal-compatibility-1.log.gz differ
diff --git a/reports/data/hexrcf-quotient-branches/diagnostics/branch-seal-integration-1.log.gz b/reports/data/hexrcf-quotient-branches/diagnostics/branch-seal-integration-1.log.gz
new file mode 100644
index 0000000000..a04c226f09
Binary files /dev/null and b/reports/data/hexrcf-quotient-branches/diagnostics/branch-seal-integration-1.log.gz differ
diff --git a/reports/data/hexrcf-quotient-branches/diagnostics/branch-seal-integration-2.log.gz b/reports/data/hexrcf-quotient-branches/diagnostics/branch-seal-integration-2.log.gz
new file mode 100644
index 0000000000..87bb193724
Binary files /dev/null and b/reports/data/hexrcf-quotient-branches/diagnostics/branch-seal-integration-2.log.gz differ
diff --git a/reports/data/hexrcf-quotient-branches/diagnostics/branch-seal-integration-3.log.gz b/reports/data/hexrcf-quotient-branches/diagnostics/branch-seal-integration-3.log.gz
new file mode 100644
index 0000000000..07e4b96f10
Binary files /dev/null and b/reports/data/hexrcf-quotient-branches/diagnostics/branch-seal-integration-3.log.gz differ
diff --git a/reports/data/hexrcf-quotient-branches/diagnostics/fresh-complete-frozen-13.log.gz b/reports/data/hexrcf-quotient-branches/diagnostics/fresh-complete-frozen-13.log.gz
new file mode 100644
index 0000000000..50e967c3c4
Binary files /dev/null and b/reports/data/hexrcf-quotient-branches/diagnostics/fresh-complete-frozen-13.log.gz differ
diff --git a/reports/data/hexrcf-quotient-branches/diagnostics/fresh-complete-frozen-14-progress.log.gz b/reports/data/hexrcf-quotient-branches/diagnostics/fresh-complete-frozen-14-progress.log.gz
new file mode 100644
index 0000000000..3453e3d383
Binary files /dev/null and b/reports/data/hexrcf-quotient-branches/diagnostics/fresh-complete-frozen-14-progress.log.gz differ
diff --git a/reports/data/hexrcf-quotient-branches/diagnostics/fresh-complete-frozen-14.lean.txt.gz b/reports/data/hexrcf-quotient-branches/diagnostics/fresh-complete-frozen-14.lean.txt.gz
new file mode 100644
index 0000000000..8c5520315e
Binary files /dev/null and b/reports/data/hexrcf-quotient-branches/diagnostics/fresh-complete-frozen-14.lean.txt.gz differ
diff --git a/reports/data/hexrcf-quotient-branches/diagnostics/fresh-complete-frozen-14.log.gz b/reports/data/hexrcf-quotient-branches/diagnostics/fresh-complete-frozen-14.log.gz
new file mode 100644
index 0000000000..3161d4b10c
Binary files /dev/null and b/reports/data/hexrcf-quotient-branches/diagnostics/fresh-complete-frozen-14.log.gz differ
diff --git a/reports/data/hexrcf-quotient-branches/diagnostics/frozen-14-RootQuote.lean.txt.gz b/reports/data/hexrcf-quotient-branches/diagnostics/frozen-14-RootQuote.lean.txt.gz
new file mode 100644
index 0000000000..3996ef514a
Binary files /dev/null and b/reports/data/hexrcf-quotient-branches/diagnostics/frozen-14-RootQuote.lean.txt.gz differ
diff --git a/reports/data/hexrcf-quotient-branches/validation/branch-seal-compatibility-2.log.gz b/reports/data/hexrcf-quotient-branches/validation/branch-seal-compatibility-2.log.gz
new file mode 100644
index 0000000000..8c2c77c785
Binary files /dev/null and b/reports/data/hexrcf-quotient-branches/validation/branch-seal-compatibility-2.log.gz differ
diff --git a/reports/data/hexrcf-quotient-branches/validation/branch-seal-integration-4.log.gz b/reports/data/hexrcf-quotient-branches/validation/branch-seal-integration-4.log.gz
new file mode 100644
index 0000000000..7f94a33b0f
Binary files /dev/null and b/reports/data/hexrcf-quotient-branches/validation/branch-seal-integration-4.log.gz differ
diff --git a/reports/data/hexrcf-quotient-branches/validation/branch-seal-small-1.log.gz b/reports/data/hexrcf-quotient-branches/validation/branch-seal-small-1.log.gz
new file mode 100644
index 0000000000..a79ce00706
Binary files /dev/null and b/reports/data/hexrcf-quotient-branches/validation/branch-seal-small-1.log.gz differ
diff --git a/reports/data/hexrcf-quotient-branches/validation/collect.py.txt b/reports/data/hexrcf-quotient-branches/validation/collect.py.txt
new file mode 100644
index 0000000000..cdc391f154
--- /dev/null
+++ b/reports/data/hexrcf-quotient-branches/validation/collect.py.txt
@@ -0,0 +1,49 @@
+from pathlib import Path
+import gzip, hashlib, json, subprocess
+repo=Path.cwd(); task=Path('/home/kim/.codex/tasks/hex-10358')
+out=repo/'reports/data/hexrcf-quotient-branches'; out.mkdir(parents=True,exist_ok=True)
+git=lambda *args: subprocess.check_output(['git',*args],cwd=repo)
+sha=lambda raw: hashlib.sha256(raw).hexdigest()
+source=git('rev-parse','HEAD').decode().strip()
+baseline='e2a43c3597e7439916f54e0aa2ea41ff7d30675f'
+old=json.loads((repo/'reports/data/hexrcf-proof-functions/context.json').read_text())
+paths=set(old['sources'])|set(git('diff','--name-only',baseline,source).decode().splitlines())
+record=dict(source_commit=source,source_tree=git('rev-parse',source+'^{tree}').decode().strip(),baseline_commit=baseline,sources={},unchanged_guards=old['unchanged_guards'],artifacts=[],validation={},visually_inspected_captures=[],complete_packet_accepted=False)
+for path in sorted(paths):
+ raw=git('show',source+':'+path); assert (repo/path).read_bytes()==raw,path
+ record['sources'][path]=sha(raw)
+def retain(file,path,compress=False):
+ raw=file.read_bytes(); dest=out/path;dest.parent.mkdir(parents=True,exist_ok=True)
+ dest.write_bytes(gzip.compress(raw,mtime=0) if compress else raw); data=dest.read_bytes()
+ item=dict(path=path,bytes=len(data),sha256=sha(data))
+ if compress:item['uncompressed_sha256']=sha(raw)
+ record['artifacts'].append(item); return path
+for key,name in dict(integration='branch-seal-integration-4.log',render='quotient-quotation-render-1.log',browser='quotient-quotation-browser-1.log',quotient='branch-seal-small-1.log',root='branch-seal-compatibility-2.log').items():
+ assert 'code=exited, status=0/SUCCESS' in (task/name).read_text(),name
+ record['validation'][key]=retain(task/name,'validation/'+name+'.gz',True)
+metadata=json.loads((task/'quotient-quotation-metadata.json').read_text());assert all(row['exit_code']==0 for row in metadata)
+retain(task/'quotient-quotation-metadata.json','validation/metadata.json')
+for row in metadata:retain(task/row['log'],'validation/'+row['log']+'.gz',True)
+retain(task/'quotient-quotation-metadata.py','validation/metadata-driver.py.txt')
+retain(task/'bin/run-bounded','validation/run-bounded.sh')
+retain(task/'collect-quotient-branches.py','validation/collect.py.txt')
+retain(task/'quotient-memory-policy.txt','validation/memory-policy.txt.gz',True)
+retain(task/'quotient-quotation-browser.mjs','captures/browser.mjs')
+retain(task/'quotient-quotation-inspection.json','captures/inspection.json')
+retain(task/'quotient-quotation-section-overflow.json','captures/section-overflow.json')
+retain(task/'scalar-review-render/ScalarReviewRender.lean','validation/render.lean.txt')
+for label in ['desktop','narrow']:
+ for kind in ['introduction','example','budget']:
+ name=f'quotient-quotation-{label}-{kind}.png'
+ record['visually_inspected_captures'].append(retain(task/name,'captures/'+name))
+for name in ['fresh-complete-frozen-13.log','fresh-complete-frozen-14.log','fresh-complete-frozen-14-progress.log','fresh-complete-frozen-14.lean.txt','frozen-14-RootQuote.lean.txt','branch-seal-integration-1.log','branch-seal-integration-2.log','branch-seal-integration-3.log','branch-seal-compatibility-1.log']:
+ retain(task/name,'diagnostics/'+name+'.gz',True)
+assert (task/'frozen-14-RootQuote.lean.txt').read_bytes()==git('show',source+':adapters/HexRCF/RealCoefficients/RootQuote.lean')
+record['compiled_files']=[]
+for name in ['QuotientQuoteData','QuotientQuote','QuotientQuotePublic','QuotientQuoteProofs']:
+ path='.lake/build/lib/lean/HexRCF/'+name+'.olean';raw=(repo/path).read_bytes()
+ record['compiled_files'].append(dict(path=path,bytes=len(raw),sha256=sha(raw)))
+record['scope']='Closed quotient representative traversal and independently checked Boolean branch proofs; actual public-module polynomial reader, strict budgets, rollback, guarded fresh-body compatibility, complete manual and six inspected targets. No new generic complete-cell acceptance, source/provider/history authentication or algebraic completeness claim.'
+record['limits']='Frozen13 is a historical kernel failure. Frozen14 passes that failure point but exhausts 2M proof nodes; original-source finishing and its prepared audit were not reached. These completed diagnostic runs are not an AB/BA speed comparison. Compiled file sizes are module sizes, not serialized certificates or proof DAGs. Browser targets have no local overflow; pre-existing section/global overflow is retained separately. Future row-factoring experiments are not covered by this snapshot.'
+(out/'context.json').write_text(json.dumps(record,indent=2)+'\n')
+print('Retained',len(record['artifacts']),'artifacts/',len(record['sources']),'sources at',source)
diff --git a/reports/data/hexrcf-quotient-branches/validation/memory-policy.txt.gz b/reports/data/hexrcf-quotient-branches/validation/memory-policy.txt.gz
new file mode 100644
index 0000000000..e5a7432568
Binary files /dev/null and b/reports/data/hexrcf-quotient-branches/validation/memory-policy.txt.gz differ
diff --git a/reports/data/hexrcf-quotient-branches/validation/metadata-driver.py.txt b/reports/data/hexrcf-quotient-branches/validation/metadata-driver.py.txt
new file mode 100644
index 0000000000..9978677019
--- /dev/null
+++ b/reports/data/hexrcf-quotient-branches/validation/metadata-driver.py.txt
@@ -0,0 +1,57 @@
+from pathlib import Path
+import importlib.util
+import json
+import re
+import subprocess
+
+repo = Path.cwd()
+task = Path('/home/kim/.codex/tasks/hex-10358')
+results = []
+
+def run(name, command):
+ log = task / f'quotient-quotation-metadata-{name}.log'
+ with log.open('w') as output:
+ result = subprocess.run(command, stdout=output, stderr=subprocess.STDOUT)
+ results.append(dict(name=name, command=command, log=log.name, exit_code=result.returncode))
+
+run('copyright', ['python3', 'scripts/check_copyright_headers.py'])
+run('lines', ['python3', 'scripts/check_file_line_counts.py', '--base', 'origin/main'])
+run('dag', ['python3', 'scripts/check_dag.py'])
+run('admissions', ['python3', 'scripts/ci/check_named_admissions.py'])
+run('diff', ['git', 'diff', '--check'])
+spec = importlib.util.spec_from_file_location('admissions', repo / 'scripts/ci/check_named_admissions.py')
+admissions = importlib.util.module_from_spec(spec)
+spec.loader.exec_module(admissions)
+paths = subprocess.check_output(['git', 'diff', '--name-only'], text=True).splitlines()
+paths += subprocess.check_output(['git', 'ls-files', '--others', '--exclude-standard'], text=True).splitlines()
+# Verso prose is not Lean code for this source scanner. Its checked examples
+# remain covered by the complete HexManual build and ordinary axiom audits.
+lean = [path for path in paths if path.endswith('.lean') and not path.startswith('HexManual/')]
+for path in lean:
+ tracked = subprocess.run(['git', 'ls-files', '--error-unmatch', path], capture_output=True).returncode == 0
+ if tracked:
+ # Existing audit diagnostics can contain words such as "axiom" in
+ # interpolated text. Check the additions; new modules are checked whole.
+ diff = subprocess.check_output(['git', 'diff', '--unified=0', '--', path], text=True)
+ source = '\n'.join(line[1:] for line in diff.splitlines() if line.startswith('+') and not line.startswith('+++'))
+ else:
+ source = (repo / path).read_text()
+ assert not admissions.find_admissions(admissions.code_only(source)), path
+(task / 'quotient-quotation-metadata-selected-admissions.log').write_text(f'{len(lean)} changed/new Lean files: added code and complete new modules contain no admissions; complete adapter import cones scanned separately; Verso prose excluded\n')
+results.append(dict(name='selected-admissions', log='quotient-quotation-metadata-selected-admissions.log', exit_code=0))
+links = 0
+for path in paths:
+ if not path.endswith(('.lean', '.md')):
+ continue
+ for match in re.finditer(r'\]\(([^)]+)\)', (repo / path).read_text()):
+ target = match.group(1).split('#')[0]
+ if not target or '://' in target:
+ continue
+ assert (repo / path).parent.joinpath(target).exists(), (path, target)
+ links += 1
+(task / 'quotient-quotation-metadata-relative.log').write_text(f'{links} relative filesystem links exist in changed/new Lean and Markdown files; external URLs excluded\n')
+results.append(dict(name='relative', log='quotient-quotation-metadata-relative.log', exit_code=0))
+(task / 'quotient-quotation-metadata.json').write_text(json.dumps(results, indent=2) + '\n')
+for result in results:
+ print(result['name'], result['exit_code'])
+assert all(result['exit_code'] == 0 for result in results)
diff --git a/reports/data/hexrcf-quotient-branches/validation/metadata.json b/reports/data/hexrcf-quotient-branches/validation/metadata.json
new file mode 100644
index 0000000000..62cdc9f1ab
--- /dev/null
+++ b/reports/data/hexrcf-quotient-branches/validation/metadata.json
@@ -0,0 +1,60 @@
+[
+ {
+ "name": "copyright",
+ "command": [
+ "python3",
+ "scripts/check_copyright_headers.py"
+ ],
+ "log": "quotient-quotation-metadata-copyright.log",
+ "exit_code": 0
+ },
+ {
+ "name": "lines",
+ "command": [
+ "python3",
+ "scripts/check_file_line_counts.py",
+ "--base",
+ "origin/main"
+ ],
+ "log": "quotient-quotation-metadata-lines.log",
+ "exit_code": 0
+ },
+ {
+ "name": "dag",
+ "command": [
+ "python3",
+ "scripts/check_dag.py"
+ ],
+ "log": "quotient-quotation-metadata-dag.log",
+ "exit_code": 0
+ },
+ {
+ "name": "admissions",
+ "command": [
+ "python3",
+ "scripts/ci/check_named_admissions.py"
+ ],
+ "log": "quotient-quotation-metadata-admissions.log",
+ "exit_code": 0
+ },
+ {
+ "name": "diff",
+ "command": [
+ "git",
+ "diff",
+ "--check"
+ ],
+ "log": "quotient-quotation-metadata-diff.log",
+ "exit_code": 0
+ },
+ {
+ "name": "selected-admissions",
+ "log": "quotient-quotation-metadata-selected-admissions.log",
+ "exit_code": 0
+ },
+ {
+ "name": "relative",
+ "log": "quotient-quotation-metadata-relative.log",
+ "exit_code": 0
+ }
+]
diff --git a/reports/data/hexrcf-quotient-branches/validation/quotient-quotation-browser-1.log.gz b/reports/data/hexrcf-quotient-branches/validation/quotient-quotation-browser-1.log.gz
new file mode 100644
index 0000000000..c236052bc1
Binary files /dev/null and b/reports/data/hexrcf-quotient-branches/validation/quotient-quotation-browser-1.log.gz differ
diff --git a/reports/data/hexrcf-quotient-branches/validation/quotient-quotation-metadata-admissions.log.gz b/reports/data/hexrcf-quotient-branches/validation/quotient-quotation-metadata-admissions.log.gz
new file mode 100644
index 0000000000..0ce703cc29
Binary files /dev/null and b/reports/data/hexrcf-quotient-branches/validation/quotient-quotation-metadata-admissions.log.gz differ
diff --git a/reports/data/hexrcf-quotient-branches/validation/quotient-quotation-metadata-copyright.log.gz b/reports/data/hexrcf-quotient-branches/validation/quotient-quotation-metadata-copyright.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-quotient-branches/validation/quotient-quotation-metadata-copyright.log.gz differ
diff --git a/reports/data/hexrcf-quotient-branches/validation/quotient-quotation-metadata-dag.log.gz b/reports/data/hexrcf-quotient-branches/validation/quotient-quotation-metadata-dag.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-quotient-branches/validation/quotient-quotation-metadata-dag.log.gz differ
diff --git a/reports/data/hexrcf-quotient-branches/validation/quotient-quotation-metadata-diff.log.gz b/reports/data/hexrcf-quotient-branches/validation/quotient-quotation-metadata-diff.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-quotient-branches/validation/quotient-quotation-metadata-diff.log.gz differ
diff --git a/reports/data/hexrcf-quotient-branches/validation/quotient-quotation-metadata-lines.log.gz b/reports/data/hexrcf-quotient-branches/validation/quotient-quotation-metadata-lines.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-quotient-branches/validation/quotient-quotation-metadata-lines.log.gz differ
diff --git a/reports/data/hexrcf-quotient-branches/validation/quotient-quotation-metadata-relative.log.gz b/reports/data/hexrcf-quotient-branches/validation/quotient-quotation-metadata-relative.log.gz
new file mode 100644
index 0000000000..154780e0b7
Binary files /dev/null and b/reports/data/hexrcf-quotient-branches/validation/quotient-quotation-metadata-relative.log.gz differ
diff --git a/reports/data/hexrcf-quotient-branches/validation/quotient-quotation-metadata-selected-admissions.log.gz b/reports/data/hexrcf-quotient-branches/validation/quotient-quotation-metadata-selected-admissions.log.gz
new file mode 100644
index 0000000000..027516d719
Binary files /dev/null and b/reports/data/hexrcf-quotient-branches/validation/quotient-quotation-metadata-selected-admissions.log.gz differ
diff --git a/reports/data/hexrcf-quotient-branches/validation/quotient-quotation-render-1.log.gz b/reports/data/hexrcf-quotient-branches/validation/quotient-quotation-render-1.log.gz
new file mode 100644
index 0000000000..6149afdf58
Binary files /dev/null and b/reports/data/hexrcf-quotient-branches/validation/quotient-quotation-render-1.log.gz differ
diff --git a/reports/data/hexrcf-quotient-branches/validation/render.lean.txt b/reports/data/hexrcf-quotient-branches/validation/render.lean.txt
new file mode 100644
index 0000000000..cdcf13e5d6
--- /dev/null
+++ b/reports/data/hexrcf-quotient-branches/validation/render.lean.txt
@@ -0,0 +1,5 @@
+import HexManual
+import VersoManual
+#eval Verso.Genre.Manual.manualMain (%doc HexManual)
+ (options := ["--output", "scalar-review-html",
+ "--without-tex", "--with-html-single", "--without-html-multi"])
diff --git a/reports/data/hexrcf-quotient-branches/validation/run-bounded.sh b/reports/data/hexrcf-quotient-branches/validation/run-bounded.sh
new file mode 100644
index 0000000000..2cc8636e8a
--- /dev/null
+++ b/reports/data/hexrcf-quotient-branches/validation/run-bounded.sh
@@ -0,0 +1,10 @@
+#!/usr/bin/env bash
+set -euo pipefail
+exec systemd-run --user --wait --pipe --collect \
+ --unit=hex-10358-lean-build \
+ --property=MemoryMax=32G \
+ --property=MemorySwapMax=0 \
+ --property=OOMPolicy=kill \
+ --working-directory="$PWD" \
+ --setenv="PATH=$PATH" --setenv=LEAN_NUM_THREADS=2 \
+ "$@"
diff --git a/reports/data/hexrcf-quotient-branches/verify.py b/reports/data/hexrcf-quotient-branches/verify.py
new file mode 100644
index 0000000000..7b7adb04c8
--- /dev/null
+++ b/reports/data/hexrcf-quotient-branches/verify.py
@@ -0,0 +1,87 @@
+#!/usr/bin/env python3
+"""Verify quotient-reader and Boolean-branch quotation evidence."""
+import argparse
+import gzip
+import hashlib
+import json
+from pathlib import Path
+import subprocess
+
+parser = argparse.ArgumentParser(description=__doc__)
+parser.add_argument('--check-head', action='store_true')
+args = parser.parse_args()
+root = Path(__file__).resolve().parent
+repo = root.parents[2]
+record = json.loads((root / 'context.json').read_text())
+git = lambda *arguments: subprocess.check_output(['git', *arguments], cwd=repo)
+sha = lambda raw: hashlib.sha256(raw).hexdigest()
+
+def artifact(path):
+ return gzip.decompress((root / path).read_bytes()).decode()
+
+def log(key):
+ return artifact(record['validation'][key])
+
+assert git('rev-parse', record['source_commit'] + '^{tree}').decode().strip() == record['source_tree']
+for path, digest in record['sources'].items():
+ assert sha(git('show', record['source_commit'] + ':' + path)) == digest, path
+ if args.check_head:
+ assert sha((repo / path).read_bytes()) == digest, path
+if args.check_head:
+ paths = git('diff', '--name-only', record['source_commit']).decode().splitlines()
+ paths += git('ls-files', '--others', '--exclude-standard').decode().splitlines()
+ assert all(path.startswith('reports/') for path in paths), paths
+for path in record['unchanged_guards']:
+ assert git('show', record['baseline_commit'] + ':' + path) == git(
+ 'show', record['source_commit'] + ':' + path), path
+for item in record['artifacts']:
+ raw = (root / item['path']).read_bytes()
+ assert len(raw) == item['bytes'] and sha(raw) == item['sha256'], item['path']
+ if 'uncompressed_sha256' in item:
+ assert sha(gzip.decompress(raw)) == item['uncompressed_sha256'], item['path']
+for key in record['validation']:
+ assert 'code=exited, status=0/SUCCESS' in log(key), key
+assert 'Build completed successfully (14383 jobs)' in log('integration')
+manual = artifact('diagnostics/branch-seal-integration-3.log.gz')
+assert 'Built HexManual (' in manual
+assert 'sign packet audit inventory changed: 100 theorem bodies/11 definitions; traces=101' in manual
+for message in [
+ 'quotient-backed formula reader: exact/below budget=92; rejection and caller rollback checked',
+ 'quotient quotation actual bodies: 9 theorems/4 definitions; nonempty traces=4',
+ 'generic rational quotation: 205 actual theorem bodies',
+ 'dependent quotation actual bodies: 153 theorems/16 definitions; nonempty traces=78',
+ 'retained root/context actual bodies: 821 theorems/63 definitions; nonempty traces=869',
+ 'public packet actual bodies: 706 theorems/67 definitions; nonempty traces=763',
+ 'root/header packet actual bodies: 724 theorems/66 definitions; nonempty traces=775',
+ 'root context actual bodies: 732 theorems/68 definitions; nonempty traces=785',
+ 'root-table quotation: 97 theorem bodies, 14 data definitions',
+ 'sign packet quotation: 100 theorem bodies, 11 definitions',
+ 'sign packet nonempty diagnostic traces: 101',
+ 'sign packet final exhaustion: 71309+23']:
+ assert message in log('integration'), message
+core = git('show', record['source_commit'] + ':adapters/HexRCF/RealCoefficients/RootQuote.lean')
+assert artifact('diagnostics/frozen-14-RootQuote.lean.txt.gz').encode() == core
+assert 'application type mismatch' in artifact('diagnostics/fresh-complete-frozen-13.log.gz')
+failure = artifact('diagnostics/fresh-complete-frozen-14.log.gz')
+assert 'limit 2000000, consumed 1998337, requested 1664' in failure
+assert 'status=1/FAILURE' in failure and '14min 42.791s' in failure
+assert 'boundary 800:' in artifact('diagnostics/fresh-complete-frozen-14-progress.log.gz')
+assert record['complete_packet_accepted'] is False
+metadata = json.loads((root / 'validation/metadata.json').read_text())
+assert {item['name'] for item in metadata} == {
+ 'copyright', 'lines', 'dag', 'admissions', 'selected-admissions', 'relative', 'diff'}
+assert all(item['exit_code'] == 0 for item in metadata)
+memory = artifact('validation/memory-policy.txt.gz')
+assert all(value in memory for value in ['ActiveState=active', 'MemoryMax=34359738368',
+ 'MemorySwapMax=0', 'OOMPolicy=kill', 'LEAN_NUM_THREADS=2'])
+inspection = json.loads((root / 'captures/inspection.json').read_text())
+assert {(item['label'], item['kind']) for item in inspection} == {
+ (label, kind) for label in ['desktop', 'narrow'] for kind in ['introduction', 'example', 'budget']}
+assert all(item['descendantOverflow'] <= 1 and item['targetScrollWidth'] <= item['targetWidth'] + 1
+ for item in inspection)
+assert len(record['visually_inspected_captures']) == 6
+assert 'Saved quotient quotation desktop/narrow screenshots' in log('browser')
+assert len(record['compiled_files']) == 4 and all(item['bytes'] > 0 for item in record['compiled_files'])
+print(f"Verified {len(record['artifacts'])} artifacts/{len(record['sources'])} sources; "
+ '9/4/4 quotient bodies, strict compatibility inventories, manual and six captures; '
+ 'complete-cell acceptance remains unproved')
diff --git a/reports/data/hexrcf-replay-helpers/README.md b/reports/data/hexrcf-replay-helpers/README.md
new file mode 100644
index 0000000000..7b54f3378f
--- /dev/null
+++ b/reports/data/hexrcf-replay-helpers/README.md
@@ -0,0 +1,16 @@
+# Replay helper quotation evidence
+
+Run `python3 reports/data/hexrcf-replay-helpers/verify.py` from the repository.
+Use `--check-head` to also compare the pinned source files with the working
+tree. `context.json` records implementation and source hashes, artifacts,
+validation logs and compiled-file sizes. Earlier records retain their pins.
+
+The record covers helper type dependencies, data type preservation,
+function-valued conditional compatibility, exact/below budgets, wrong-goal
+rejection, complete caller restoration and fresh ordinary-kernel audits.
+All 33 selected targets and the manual pass. All ten final captures were
+actually viewed. Failed full-source, compatibility and resource runs remain
+in `diagnostics/`; they are not accepted certificates or speed comparisons.
+
+The subsequent complete-source retry remains outside this focused record.
+See the [report](../../hexrcf-replay-helpers.md) for scope and remaining work.
diff --git a/reports/data/hexrcf-replay-helpers/captures/browser.mjs b/reports/data/hexrcf-replay-helpers/captures/browser.mjs
new file mode 100644
index 0000000000..320a541535
--- /dev/null
+++ b/reports/data/hexrcf-replay-helpers/captures/browser.mjs
@@ -0,0 +1,61 @@
+import fs from 'node:fs';
+import {spawn} from 'node:child_process';
+const root=process.argv[2];
+if(!root) throw new Error('Pass the scratch render directory');
+const profile=root+'/replay-helper-quotation-profile';
+fs.mkdirSync(profile,{recursive:true});
+fs.rmSync(profile+'/DevToolsActivePort',{force:true});
+const chrome=spawn(process.env.CHROME_BIN || '/home/kim/.cache/ms-playwright/chromium-1243/chrome-linux64/chrome',[
+ '--headless=new','--no-sandbox','--disable-gpu','--allow-file-access-from-files',
+ '--remote-debugging-port=0','--remote-allow-origins=*','--user-data-dir='+profile,'about:blank'],
+ {env:{...process.env,LD_LIBRARY_PATH:fs.readFileSync(root+'/browser-lib-paths.txt','utf8').trim()},stdio:'ignore'});
+let socket;
+try {
+ const portFile=profile+'/DevToolsActivePort';
+ for(let i=0;!fs.existsSync(portFile);i++) {
+ if(i>200||chrome.exitCode!==null) throw new Error('Chrome did not expose CDP');
+ await new Promise(r=>setTimeout(r,100));
+ }
+ const port=fs.readFileSync(portFile,'utf8').split('\n')[0];
+ const tabs=await (await fetch('http://127.0.0.1:'+port+'/json')).json();
+ socket=new WebSocket(tabs.find(t=>t.type==='page').webSocketDebuggerUrl);
+ await new Promise((r,j)=>{socket.onopen=r;socket.onerror=j});
+ let sequence=0;const pending=new Map();let loaded;
+ socket.onmessage=e=>{
+ const msg=JSON.parse(e.data);
+ if(msg.id){const p=pending.get(msg.id);pending.delete(msg.id);msg.error?p.reject(msg.error):p.resolve(msg.result);}
+ if(msg.method==='Page.loadEventFired'&&loaded){loaded();loaded=undefined;}
+ };
+ const call=(method,params={})=>new Promise((resolve,reject)=>{const id=++sequence;pending.set(id,{resolve,reject});socket.send(JSON.stringify({id,method,params}));});
+ await call('Page.enable');
+ const load=new Promise(r=>loaded=r);
+ await call('Page.navigate',{url:'file:///home/kim/.codex/tasks/hex-10358/scalar-review-render/replay-helper-review-html/html-single/index.html'});
+ await load;
+ const evaluate=async expression=>{const r=await call('Runtime.evaluate',{expression,returnByValue:true});if(r.exceptionDetails)throw new Error(JSON.stringify(r.exceptionDetails));return r.result.value;};
+ const metadata=[]; const sectionMetadata=[];
+ for(const [label,width] of [['desktop',1440],['narrow',390]]) {
+ await call('Emulation.setDeviceMetricsOverride',{width,height:1000,deviceScaleFactor:1,mobile:false});
+ for(const [kind,phrase] of [['types','Conversion preserves data type arguments while rewriting their Boolean'],['controls',"The helper controls cover stored arrays with table-dependent element types"],['budgets','The original root and rational cases use'],['recursive','The two-level regression checks one visit'],['packet','Quoting the parent and packet in one request consumes']] ) {
+ const exact=await evaluate(`(() => {const p=Array.from(document.querySelectorAll('p')).find(e=>e.textContent.replace(/\\s+/g,' ').includes(${JSON.stringify(phrase)}));if(!p)throw new Error('missing paragraph');const target=${JSON.stringify(kind)}==='example'?p.nextElementSibling:p;if(${JSON.stringify(kind)}==='example'&&!target.matches('.hl.lean.block, pre, div:has(code)'))throw new Error('target is not a Lean code block');target.scrollIntoView({block:${JSON.stringify('center')}});return {text:p.textContent,viewport:innerWidth,scrollY,paragraphWidth:p.getBoundingClientRect().width,scrollWidth:p.scrollWidth,targetTag:target.tagName,targetWidth:target.getBoundingClientRect().width,targetScrollWidth:target.scrollWidth,descendantOverflow:Math.max(0,...[target,...target.querySelectorAll('*')].map(e=>e.scrollWidth-e.clientWidth)),overflowElements:[target,...target.querySelectorAll('*')].filter(e=>e.scrollWidth-e.clientWidth>1).map(e=>({tag:e.tagName,classes:e.className,width:e.clientWidth,scroll:e.scrollWidth,text:e.textContent.slice(0,100)})).slice(0,8)};})()`);
+ if(!exact)throw new Error('missing visual target '+kind);
+ await evaluate('new Promise(resolve=>requestAnimationFrame(()=>requestAnimationFrame(resolve)))');
+ const shot=await call('Page.captureScreenshot',{format:'png'});
+ fs.writeFileSync(root+'/'+'replay-helper-quotation-'+label+'-'+kind+'.png',Buffer.from(shot.data,'base64'));
+ metadata.push({label,kind,...exact});
+ }
+ sectionMetadata.push(await evaluate(`(() => {
+ const headings=Array.from(document.querySelectorAll('h1,h2,h3,h4,h5,h6'));
+ const heading=headings.find(e=>e.textContent.includes('Quoting a supplied root replay'));
+ if(!heading)throw new Error('missing quotation heading');
+ const following=headings.find(e=>e!==heading && Number(e.tagName[1])<=Number(heading.tagName[1]) && (heading.compareDocumentPosition(e)&4));
+ if(!following)throw new Error('missing following section');
+ const targets=Array.from(document.querySelectorAll('p,.hl.lean.block')).filter(e=>(heading.compareDocumentPosition(e)&4) && (e.compareDocumentPosition(following)&4));
+ if(targets.length<8)throw new Error('incomplete quotation section');
+ return {label:${JSON.stringify(label)},width:innerWidth,targets:targets.map(e=>({tag:e.tagName,text:e.textContent.slice(0,160),overflow:Math.max(0,...[e,...e.querySelectorAll('*')].map(n=>n.scrollWidth-n.clientWidth))}))};
+ })()`));
+ }
+ fs.writeFileSync(root+'/replay-helper-quotation-section-overflow.json',JSON.stringify(sectionMetadata,null,2));
+ fs.writeFileSync(root+'/replay-helper-quotation-inspection.json',JSON.stringify(metadata,null,2));
+ if(metadata.some(e=>e.targetScrollWidth>e.targetWidth+1 || e.descendantOverflow>1)) throw new Error('Changed content overflows; retained captures and metrics identify the affected block.');
+ process.stdout.write('Saved row quotation desktop/narrow screenshots\n');
+} finally {if(socket)socket.close();chrome.kill('SIGTERM');}
diff --git a/reports/data/hexrcf-replay-helpers/captures/inspection.json b/reports/data/hexrcf-replay-helpers/captures/inspection.json
new file mode 100644
index 0000000000..4f4e0ea277
--- /dev/null
+++ b/reports/data/hexrcf-replay-helpers/captures/inspection.json
@@ -0,0 +1,142 @@
+[
+ {
+ "label": "desktop",
+ "kind": "types",
+ "text": "\n Conversion preserves data type arguments while rewriting their Boolean\ncomputations. A helper's type can itself mention another checked replay helper;\nquotation retains those dependencies in order. Exposed function definitions\nremain available for the reductions used by the reader. Opaque proof helpers\nremain parameters. Function-valued conditionals retain their applied arguments.",
+ "viewport": 1440,
+ "scrollY": 281588,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "P",
+ "targetWidth": 752,
+ "targetScrollWidth": 752,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "desktop",
+ "kind": "controls",
+ "text": "\n The helper controls cover stored arrays with table-dependent element types and\nfunctions with fixed replay-dependent proof types. Matching and changed contexts,\nexact and one-node-below budgets, wrong-goal proposals and complete caller\nrestoration are checked. Their fresh importing audit checks 96 theorem bodies\nand three definitions with the same producer and axiom restrictions.",
+ "viewport": 1440,
+ "scrollY": 281720,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "P",
+ "targetWidth": 752,
+ "targetScrollWidth": 752,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "desktop",
+ "kind": "budgets",
+ "text": "\n The original root and rational cases use maxHeartbeats := 12000000 and\nmaxRecDepth := 8192. Scalar, sign-packet, shared, callback/module examples and\nfresh body audits use depth 32768 with their declared heartbeat limits. The\nrow and replay-helper controls use two million heartbeats; the deeper query\ntransport controls use four million. Preparation budget repetition and\nwrong-sign rejection run as separate commands, each with twelve million\nheartbeats. Success under Lean's default limits has not been established. Each rewrite motive contains the current reader, so\nproof storage and charged work can grow with the number of steps times the\nreader size. Larger packets can exhaust the default reflection budget.",
+ "viewport": 1440,
+ "scrollY": 284137,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "P",
+ "targetWidth": 752,
+ "targetScrollWidth": 752,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "desktop",
+ "kind": "recursive",
+ "text": "\n The two-level regression checks one visit to its selected context followed by\none visit to its selected predecessor. Its lookup adds 19 source nodes per visit;\nthe two charges retain 38 source nodes. It uses 25,469 proof nodes; one node less\nexhausts\nat the final 925-node charge after 24,544 consumed nodes. Missing facts decline\nwithout proposing another decode to the base callback after refusal.\nWrong-context facts and exhaustion remain terminal and restore the enclosing state.\nGeneric kernel-error restoration is covered by the root-quotation regressions.",
+ "viewport": 1440,
+ "scrollY": 287219,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "P",
+ "targetWidth": 752,
+ "targetScrollWidth": 752,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "desktop",
+ "kind": "packet",
+ "text": "\n Quoting the parent and packet in one request consumes 207,558 proof nodes.\nWith the frozen parent and its equality already available, the packet consumes\n133,703; a limit one node lower exhausts at the final 23-node charge. Decoding the\ncoefficient from that fact consumes 966 more nodes in its separate request.\nThe controls check caller metavariable restoration after successful decoding\nand final exhaustion, reject an empty graph, and reject a forged context equality\nbefore decoding. A valid graph paired with the wrong claimed sign or polynomial\nis also rejected after decoding, restoring the mutated caller. The importing\naudit excludes the old fixture fact list. Accounting sums the syntax checked at\neach stage, including repeated occurrences; these are not unique DAG-node counts,\ntiming or scaling comparisons.",
+ "viewport": 1440,
+ "scrollY": 288445,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "P",
+ "targetWidth": 752,
+ "targetScrollWidth": 752,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "types",
+ "text": "\n Conversion preserves data type arguments while rewriting their Boolean\ncomputations. A helper's type can itself mention another checked replay helper;\nquotation retains those dependencies in order. Exposed function definitions\nremain available for the reductions used by the reader. Opaque proof helpers\nremain parameters. Function-valued conditionals retain their applied arguments.",
+ "viewport": 390,
+ "scrollY": 452997,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "P",
+ "targetWidth": 343,
+ "targetScrollWidth": 343,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "controls",
+ "text": "\n The helper controls cover stored arrays with table-dependent element types and\nfunctions with fixed replay-dependent proof types. Matching and changed contexts,\nexact and one-node-below budgets, wrong-goal proposals and complete caller\nrestoration are checked. Their fresh importing audit checks 96 theorem bodies\nand three definitions with the same producer and axiom restrictions.",
+ "viewport": 390,
+ "scrollY": 453245,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "P",
+ "targetWidth": 343,
+ "targetScrollWidth": 343,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "budgets",
+ "text": "\n The original root and rational cases use maxHeartbeats := 12000000 and\nmaxRecDepth := 8192. Scalar, sign-packet, shared, callback/module examples and\nfresh body audits use depth 32768 with their declared heartbeat limits. The\nrow and replay-helper controls use two million heartbeats; the deeper query\ntransport controls use four million. Preparation budget repetition and\nwrong-sign rejection run as separate commands, each with twelve million\nheartbeats. Success under Lean's default limits has not been established. Each rewrite motive contains the current reader, so\nproof storage and charged work can grow with the number of steps times the\nreader size. Larger packets can exhaust the default reflection budget.",
+ "viewport": 390,
+ "scrollY": 457922,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "P",
+ "targetWidth": 343,
+ "targetScrollWidth": 343,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "recursive",
+ "text": "\n The two-level regression checks one visit to its selected context followed by\none visit to its selected predecessor. Its lookup adds 19 source nodes per visit;\nthe two charges retain 38 source nodes. It uses 25,469 proof nodes; one node less\nexhausts\nat the final 925-node charge after 24,544 consumed nodes. Missing facts decline\nwithout proposing another decode to the base callback after refusal.\nWrong-context facts and exhaustion remain terminal and restore the enclosing state.\nGeneric kernel-error restoration is covered by the root-quotation regressions.",
+ "viewport": 390,
+ "scrollY": 463288,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "P",
+ "targetWidth": 343,
+ "targetScrollWidth": 343,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "packet",
+ "text": "\n Quoting the parent and packet in one request consumes 207,558 proof nodes.\nWith the frozen parent and its equality already available, the packet consumes\n133,703; a limit one node lower exhausts at the final 23-node charge. Decoding the\ncoefficient from that fact consumes 966 more nodes in its separate request.\nThe controls check caller metavariable restoration after successful decoding\nand final exhaustion, reject an empty graph, and reject a forged context equality\nbefore decoding. A valid graph paired with the wrong claimed sign or polynomial\nis also rejected after decoding, restoring the mutated caller. The importing\naudit excludes the old fixture fact list. Accounting sums the syntax checked at\neach stage, including repeated occurrences; these are not unique DAG-node counts,\ntiming or scaling comparisons.",
+ "viewport": 390,
+ "scrollY": 465245,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "P",
+ "targetWidth": 343,
+ "targetScrollWidth": 343,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ }
+]
\ No newline at end of file
diff --git a/reports/data/hexrcf-replay-helpers/captures/replay-helper-quotation-desktop-budgets.png b/reports/data/hexrcf-replay-helpers/captures/replay-helper-quotation-desktop-budgets.png
new file mode 100644
index 0000000000..6f8858c9d9
Binary files /dev/null and b/reports/data/hexrcf-replay-helpers/captures/replay-helper-quotation-desktop-budgets.png differ
diff --git a/reports/data/hexrcf-replay-helpers/captures/replay-helper-quotation-desktop-controls.png b/reports/data/hexrcf-replay-helpers/captures/replay-helper-quotation-desktop-controls.png
new file mode 100644
index 0000000000..1879c67e08
Binary files /dev/null and b/reports/data/hexrcf-replay-helpers/captures/replay-helper-quotation-desktop-controls.png differ
diff --git a/reports/data/hexrcf-replay-helpers/captures/replay-helper-quotation-desktop-packet.png b/reports/data/hexrcf-replay-helpers/captures/replay-helper-quotation-desktop-packet.png
new file mode 100644
index 0000000000..09289dfe14
Binary files /dev/null and b/reports/data/hexrcf-replay-helpers/captures/replay-helper-quotation-desktop-packet.png differ
diff --git a/reports/data/hexrcf-replay-helpers/captures/replay-helper-quotation-desktop-recursive.png b/reports/data/hexrcf-replay-helpers/captures/replay-helper-quotation-desktop-recursive.png
new file mode 100644
index 0000000000..4ec1af2e42
Binary files /dev/null and b/reports/data/hexrcf-replay-helpers/captures/replay-helper-quotation-desktop-recursive.png differ
diff --git a/reports/data/hexrcf-replay-helpers/captures/replay-helper-quotation-desktop-types.png b/reports/data/hexrcf-replay-helpers/captures/replay-helper-quotation-desktop-types.png
new file mode 100644
index 0000000000..a194d8c44d
Binary files /dev/null and b/reports/data/hexrcf-replay-helpers/captures/replay-helper-quotation-desktop-types.png differ
diff --git a/reports/data/hexrcf-replay-helpers/captures/replay-helper-quotation-narrow-budgets.png b/reports/data/hexrcf-replay-helpers/captures/replay-helper-quotation-narrow-budgets.png
new file mode 100644
index 0000000000..65d87f2f6a
Binary files /dev/null and b/reports/data/hexrcf-replay-helpers/captures/replay-helper-quotation-narrow-budgets.png differ
diff --git a/reports/data/hexrcf-replay-helpers/captures/replay-helper-quotation-narrow-controls.png b/reports/data/hexrcf-replay-helpers/captures/replay-helper-quotation-narrow-controls.png
new file mode 100644
index 0000000000..cb7ac10a42
Binary files /dev/null and b/reports/data/hexrcf-replay-helpers/captures/replay-helper-quotation-narrow-controls.png differ
diff --git a/reports/data/hexrcf-replay-helpers/captures/replay-helper-quotation-narrow-packet.png b/reports/data/hexrcf-replay-helpers/captures/replay-helper-quotation-narrow-packet.png
new file mode 100644
index 0000000000..e31922a648
Binary files /dev/null and b/reports/data/hexrcf-replay-helpers/captures/replay-helper-quotation-narrow-packet.png differ
diff --git a/reports/data/hexrcf-replay-helpers/captures/replay-helper-quotation-narrow-recursive.png b/reports/data/hexrcf-replay-helpers/captures/replay-helper-quotation-narrow-recursive.png
new file mode 100644
index 0000000000..bcbe9fb4f5
Binary files /dev/null and b/reports/data/hexrcf-replay-helpers/captures/replay-helper-quotation-narrow-recursive.png differ
diff --git a/reports/data/hexrcf-replay-helpers/captures/replay-helper-quotation-narrow-types.png b/reports/data/hexrcf-replay-helpers/captures/replay-helper-quotation-narrow-types.png
new file mode 100644
index 0000000000..3374983c99
Binary files /dev/null and b/reports/data/hexrcf-replay-helpers/captures/replay-helper-quotation-narrow-types.png differ
diff --git a/reports/data/hexrcf-replay-helpers/captures/section-overflow.json b/reports/data/hexrcf-replay-helpers/captures/section-overflow.json
new file mode 100644
index 0000000000..ffaaa27b0b
--- /dev/null
+++ b/reports/data/hexrcf-replay-helpers/captures/section-overflow.json
@@ -0,0 +1,704 @@
+[
+ {
+ "label": "desktop",
+ "width": 1440,
+ "targets": [
+ {
+ "tag": "P",
+ "text": "\n RootQuote.quote accepts a Lean\nexpression for an Except ε α replay reader, including structured errors. It returns the reconstructed\ndata and",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A scalar decoder may propose an equality for the exact demanded decode. The\nhelper checks its type, dependencies and kernel proof before usin",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For example, this helper continues a request's existing budget and returns the\nupdated usage together with the checked equation:",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSuppliedRoot\n (reader : Expr)\n (scalar : RootQuote.Decoder",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Quotation follows the representative of a closed quotient when selecting\nreducibility boundaries. This lets a formula polynomial stored in a ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF in\nexample :\n QuotientQuote.reader = some 7 :=\n QuotientQuotePublic.accepted\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Its exact 92-node budget succeeds, one node less exhausts, and a wrong term\ncount rejects. The controls check caller-state restoration; a fre",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Tree replay uses its public leaf and split equations before opening the local\nnode checks. Keeping that boundary explicit avoids kernel conve",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF in\nexample :\n TreeQuote.splitTrue.toOption =\n some 31 :=\n TreeQuotePublic.split_true\n\nopen Hex.RCF in\nexample :\n TreeQuote.splitFalse.t",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The second reader selects its diagnostic branch; it does not accept the\nchanged certificate. Readers returning an error abort quotation and r",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Checked replay data may occur inside a Boolean condition. Quotation keeps\nclosed helpers whose types mention a protected replay function atta",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Conversion preserves data type arguments while rewriting their Boolean\ncomputations. A helper's type can itself mention another checked repla",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The helper controls cover stored arrays with table-dependent element types and\nfunctions with fixed replay-dependent proof types. Matching an",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RowQuote.decoder reads the\nliteral value of a checked selected-sign row through query, root and operation\ntransports. It uses the row's recor",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteRootRows\n (reader : Expr)\n (scalar : RootQuote.DecoderM)\n ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The row controls check positive, zero, negative and false comparisons, exact\nand one-node-below budgets, wrong-goal proposals and caller rest",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a rational predecessor, RationalQuote.decoder supplies these proposals\nwithout a fixed list of permitted numerators. It recognizes canoni",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteRationalRoot\n (reader registry : Expr)\n (config : Reify.Co",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The registry argument is a Lean expression of type\nHex.RealClosure.BaseContext.Registry. This helper supplies scalar equations;\nit does not r",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The cubic regression reads a\nsupplied replay for X³−3 on the open interval (−8,8). A fresh public consumer\nproves that the accepted descripto",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A reader that rejects its input or replay returns structured invalid-provider\nevidence. Non-readers and unsupported shapes raise terminal exc",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Canonical Element.codec decodes remain protected throughout quotation,\nincluding predecessor decodes with an explicit Element.codec head. Exp",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The original root and rational cases use maxHeartbeats := 12000000 and\nmaxRecDepth := 8192. Scalar, sign-packet, shared, callback/module exam",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n This API does not register a tactic handler or establish complete root coverage.\nThe acceptance equation alone does not authenticate original",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a coefficient in a selected algebraic extension,\nScalarQuote.quote uses the owner's Element.signCodec with supplied checked\nsign facts, t",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Pass the original, fully applied Element.codec expression, retaining its\nimplicit arguments. Reinferring definitionally equal context aliases",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSuppliedScalar\n (codec facts literal : Expr)\n (predecessor",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The monorepo regression imports HexRCF.ScalarQuoteCases. It decodes the\nnonrational coefficient −2√2 in the existing selected positive √2 con",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.SelectedRootTests in\nopen Hex.RCF.ScalarQuoteTests in\nexample :\n Data.original.value restored =\n -2 * Real.sqrt 2 :=\n restored_value\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The fresh audit rechecks 13 reachable quotation-case theorem bodies, including this value\nidentity, with only the standard three axioms and n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Regressions cover continued/exact/exhausted proof budgets, rollback after the\nstrict stage succeeds, missing or mismatched facts, zero withou",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a polynomial over the same selected extension,\nScalarQuote.quotePolyWith\nquotes the coefficient array through its finite sign reader and ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSuppliedPolynomial\n (reader facts : Expr)\n (predecessor : ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The regression polynomial contains two copies of −2√2. The checked original\nreader restores both positions. Its first coefficient has this or",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.SelectedRootTests in\nopen Hex.RCF.SharedQuoteTests in\nexample :\n Data.original.value\n (restored.coeff 0) =\n -2 * Real.sqrt 2 :=\n valu",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The fresh importing audit pins seven reachable theorem bodies and three data\ndefinitions, their actual owner refinement and supplied sign evi",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RootQuote.runWith supplies the transaction for a sequence of quoteWith\nactions. RootQuote.run supplies it for a reader with DecoderM callback",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n This scalar API does not reconstruct provider or predecessor histories,\nproduce missing signs, or install a general source-goal solver. The s",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n ScalarQuote.decoderWith composes checked scalar decoding through several\nselected-field predecessors. Its lookup receives each exact canonica",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSelectedReader\n (reader registry : Expr)\n (factsFor :\n Expr → Reify.Reify",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The two-level regression checks one visit to its selected context followed by\none visit to its selected predecessor. Its lookup adds 19 sourc",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n An ordinary module consumer also runs the callback factory and exports the\nchecked scalar reader equation. Its sign follows from the owner's ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RecursiveScalarPublic in\nexample : restored.sign = 1 := sign\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A fresh importing audit checks the two-level fixture and this public consumer,\nincluding accepted annotated decodes and a charged decline fol",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n ScalarPacket.quoteWith checks a supplied optional sign-packet reader. Its\nprepared context has a checked equality to the original context; a ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSuppliedSignPacket\n (reader prepared same : Expr)\n (predecessor :\n RootQuote.DecoderM) :=",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The regression quotes the parent descriptor and one packet for the polynomial\n−2X at the selected positive square root of 2. The resulting fa",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RealClosure in\nopen Hex.RCF.SelectedRootTests in\nopen Hex.RCF.SignPacketQuote in\nexample :\n Option.map Data.original.value\n (Except.toOption\n ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Quoting the parent and packet in one request consumes 207,558 proof nodes.\nWith the frozen parent and its equality already available, the pac",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The caller still supplies and authenticates the parent history and packet.\nPredecessor arithmetic retains its supplied implementation; this h",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A separate public-module example quotes a packet for X at the selected real\nroot of X³−3. Its context slots retain closed applications of the",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.PublicSignPacket in\nexample :\n coefficientReal =\n Hex.RCF.RootQuoteTests.realRoot :=\n coefficient_value\n\nopen Hex.RCF.PublicSignPacket in\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a dependent match, quotation moves trailing branch-equality proofs along\nthe checked equation for the match's subject. This uses ordinary",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF in\nexample :\n DependentQuote.continuedFunction =\n some 29 :=\n ProofFunctionPublic.continued\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n During replay-law\nconversion, an explicit checked function boundary is first kept abstract, then instantiated\nwith the actual function and it",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RootHeader.quoteWith\naccepts the complete original RootReplay.readDescriptor application. It quotes\nthat reader, obtains the independently pa",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The public regression constructs a new root and context from that result,\nquotes the sign packet for X with fully numerical graph fields, and",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RootHeaderPacket in\nexample : coefficientReal = realRoot :=\n coefficient_value\n\nopen Hex.RCF.RootHeaderPacket in\nexample : 0 < coefficientReal :=\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The fresh importing audit includes the generated binding, packet reader,\ncoefficient decoding and real-value proofs. It rejects dependencies ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The default quotation rules recognize Signature.codec.decode applied to the\ncanonical encoding of its actual signature argument, using the ex",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.FrozenSignature in\nexample : readFirst.toOption =\n some first :=\n readFirst_checked\n\nopen Hex.RCF.FrozenSignature in\nexample : readSecond.toOpt",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The cubic packet retains frozen numerical node and nested-moment signatures\nfor its rational predecessor. A signature's serialization identit",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RootContext.packWith\nthen assembles an actual native root context from a closed retained parent and\nits checked descriptor. It keeps the exis",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The same decoded coefficient can be interpreted through the owner's ordinary\nreal model of the packed context, retaining its selected value a",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF in\nopen RootContextCases in\nopen RootHeaderPacket in\nexample : model.value coefficient =\n realRoot :=\n value_checked\n\nopen Hex.RCF in\nopen Root",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The packing budget covers context and signature proof construction. Model\nconstruction is checked separately; its cost is not included in tha",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RootPrepare.prepareWith\nprepares the native context of a reconstructed descriptor for subsequent\nquotation. It checks closed inputs and the e",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.RCF.RealCoefficients in\nmeta def prepareRootContext\n (reader clean : Expr)\n (scalar : RootQuote.DecoderM) :\n Reif",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Run this action and subsequent quotation in one RootQuote.runWith request.\nCombine its decoder with the exact predecessor's scalar and signat",
+ "overflow": 0
+ }
+ ]
+ },
+ {
+ "label": "narrow",
+ "width": 390,
+ "targets": [
+ {
+ "tag": "P",
+ "text": "\n RootQuote.quote accepts a Lean\nexpression for an Except ε α replay reader, including structured errors. It returns the reconstructed\ndata and",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A scalar decoder may propose an equality for the exact demanded decode. The\nhelper checks its type, dependencies and kernel proof before usin",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For example, this helper continues a request's existing budget and returns the\nupdated usage together with the checked equation:",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSuppliedRoot\n (reader : Expr)\n (scalar : RootQuote.Decoder",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Quotation follows the representative of a closed quotient when selecting\nreducibility boundaries. This lets a formula polynomial stored in a ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF in\nexample :\n QuotientQuote.reader = some 7 :=\n QuotientQuotePublic.accepted\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Its exact 92-node budget succeeds, one node less exhausts, and a wrong term\ncount rejects. The controls check caller-state restoration; a fre",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Tree replay uses its public leaf and split equations before opening the local\nnode checks. Keeping that boundary explicit avoids kernel conve",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF in\nexample :\n TreeQuote.splitTrue.toOption =\n some 31 :=\n TreeQuotePublic.split_true\n\nopen Hex.RCF in\nexample :\n TreeQuote.splitFalse.t",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The second reader selects its diagnostic branch; it does not accept the\nchanged certificate. Readers returning an error abort quotation and r",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Checked replay data may occur inside a Boolean condition. Quotation keeps\nclosed helpers whose types mention a protected replay function atta",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Conversion preserves data type arguments while rewriting their Boolean\ncomputations. A helper's type can itself mention another checked repla",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The helper controls cover stored arrays with table-dependent element types and\nfunctions with fixed replay-dependent proof types. Matching an",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RowQuote.decoder reads the\nliteral value of a checked selected-sign row through query, root and operation\ntransports. It uses the row's recor",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteRootRows\n (reader : Expr)\n (scalar : RootQuote.DecoderM)\n ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The row controls check positive, zero, negative and false comparisons, exact\nand one-node-below budgets, wrong-goal proposals and caller rest",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a rational predecessor, RationalQuote.decoder supplies these proposals\nwithout a fixed list of permitted numerators. It recognizes canoni",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteRationalRoot\n (reader registry : Expr)\n (config : Reify.Co",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The registry argument is a Lean expression of type\nHex.RealClosure.BaseContext.Registry. This helper supplies scalar equations;\nit does not r",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The cubic regression reads a\nsupplied replay for X³−3 on the open interval (−8,8). A fresh public consumer\nproves that the accepted descripto",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A reader that rejects its input or replay returns structured invalid-provider\nevidence. Non-readers and unsupported shapes raise terminal exc",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Canonical Element.codec decodes remain protected throughout quotation,\nincluding predecessor decodes with an explicit Element.codec head. Exp",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The original root and rational cases use maxHeartbeats := 12000000 and\nmaxRecDepth := 8192. Scalar, sign-packet, shared, callback/module exam",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n This API does not register a tactic handler or establish complete root coverage.\nThe acceptance equation alone does not authenticate original",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a coefficient in a selected algebraic extension,\nScalarQuote.quote uses the owner's Element.signCodec with supplied checked\nsign facts, t",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Pass the original, fully applied Element.codec expression, retaining its\nimplicit arguments. Reinferring definitionally equal context aliases",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSuppliedScalar\n (codec facts literal : Expr)\n (predecessor",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The monorepo regression imports HexRCF.ScalarQuoteCases. It decodes the\nnonrational coefficient −2√2 in the existing selected positive √2 con",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.SelectedRootTests in\nopen Hex.RCF.ScalarQuoteTests in\nexample :\n Data.original.value restored =\n -2 * Real.sqrt 2 :=\n restored_value\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The fresh audit rechecks 13 reachable quotation-case theorem bodies, including this value\nidentity, with only the standard three axioms and n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Regressions cover continued/exact/exhausted proof budgets, rollback after the\nstrict stage succeeds, missing or mismatched facts, zero withou",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a polynomial over the same selected extension,\nScalarQuote.quotePolyWith\nquotes the coefficient array through its finite sign reader and ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSuppliedPolynomial\n (reader facts : Expr)\n (predecessor : ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The regression polynomial contains two copies of −2√2. The checked original\nreader restores both positions. Its first coefficient has this or",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.SelectedRootTests in\nopen Hex.RCF.SharedQuoteTests in\nexample :\n Data.original.value\n (restored.coeff 0) =\n -2 * Real.sqrt 2 :=\n valu",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The fresh importing audit pins seven reachable theorem bodies and three data\ndefinitions, their actual owner refinement and supplied sign evi",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RootQuote.runWith supplies the transaction for a sequence of quoteWith\nactions. RootQuote.run supplies it for a reader with DecoderM callback",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n This scalar API does not reconstruct provider or predecessor histories,\nproduce missing signs, or install a general source-goal solver. The s",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n ScalarQuote.decoderWith composes checked scalar decoding through several\nselected-field predecessors. Its lookup receives each exact canonica",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSelectedReader\n (reader registry : Expr)\n (factsFor :\n Expr → Reify.Reify",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The two-level regression checks one visit to its selected context followed by\none visit to its selected predecessor. Its lookup adds 19 sourc",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n An ordinary module consumer also runs the callback factory and exports the\nchecked scalar reader equation. Its sign follows from the owner's ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RecursiveScalarPublic in\nexample : restored.sign = 1 := sign\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A fresh importing audit checks the two-level fixture and this public consumer,\nincluding accepted annotated decodes and a charged decline fol",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n ScalarPacket.quoteWith checks a supplied optional sign-packet reader. Its\nprepared context has a checked equality to the original context; a ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSuppliedSignPacket\n (reader prepared same : Expr)\n (predecessor :\n RootQuote.DecoderM) :=",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The regression quotes the parent descriptor and one packet for the polynomial\n−2X at the selected positive square root of 2. The resulting fa",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RealClosure in\nopen Hex.RCF.SelectedRootTests in\nopen Hex.RCF.SignPacketQuote in\nexample :\n Option.map Data.original.value\n (Except.toOption\n ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Quoting the parent and packet in one request consumes 207,558 proof nodes.\nWith the frozen parent and its equality already available, the pac",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The caller still supplies and authenticates the parent history and packet.\nPredecessor arithmetic retains its supplied implementation; this h",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A separate public-module example quotes a packet for X at the selected real\nroot of X³−3. Its context slots retain closed applications of the",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.PublicSignPacket in\nexample :\n coefficientReal =\n Hex.RCF.RootQuoteTests.realRoot :=\n coefficient_value\n\nopen Hex.RCF.PublicSignPacket in\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a dependent match, quotation moves trailing branch-equality proofs along\nthe checked equation for the match's subject. This uses ordinary",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF in\nexample :\n DependentQuote.continuedFunction =\n some 29 :=\n ProofFunctionPublic.continued\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n During replay-law\nconversion, an explicit checked function boundary is first kept abstract, then instantiated\nwith the actual function and it",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RootHeader.quoteWith\naccepts the complete original RootReplay.readDescriptor application. It quotes\nthat reader, obtains the independently pa",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The public regression constructs a new root and context from that result,\nquotes the sign packet for X with fully numerical graph fields, and",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RootHeaderPacket in\nexample : coefficientReal = realRoot :=\n coefficient_value\n\nopen Hex.RCF.RootHeaderPacket in\nexample : 0 < coefficientReal :=\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The fresh importing audit includes the generated binding, packet reader,\ncoefficient decoding and real-value proofs. It rejects dependencies ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The default quotation rules recognize Signature.codec.decode applied to the\ncanonical encoding of its actual signature argument, using the ex",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.FrozenSignature in\nexample : readFirst.toOption =\n some first :=\n readFirst_checked\n\nopen Hex.RCF.FrozenSignature in\nexample : readSecond.toOpt",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The cubic packet retains frozen numerical node and nested-moment signatures\nfor its rational predecessor. A signature's serialization identit",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RootContext.packWith\nthen assembles an actual native root context from a closed retained parent and\nits checked descriptor. It keeps the exis",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The same decoded coefficient can be interpreted through the owner's ordinary\nreal model of the packed context, retaining its selected value a",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF in\nopen RootContextCases in\nopen RootHeaderPacket in\nexample : model.value coefficient =\n realRoot :=\n value_checked\n\nopen Hex.RCF in\nopen Root",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The packing budget covers context and signature proof construction. Model\nconstruction is checked separately; its cost is not included in tha",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RootPrepare.prepareWith\nprepares the native context of a reconstructed descriptor for subsequent\nquotation. It checks closed inputs and the e",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.RCF.RealCoefficients in\nmeta def prepareRootContext\n (reader clean : Expr)\n (scalar : RootQuote.DecoderM) :\n Reif",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Run this action and subsequent quotation in one RootQuote.runWith request.\nCombine its decoder with the exact predecessor's scalar and signat",
+ "overflow": 0
+ }
+ ]
+ }
+]
\ No newline at end of file
diff --git a/reports/data/hexrcf-replay-helpers/captures/visual-review.json b/reports/data/hexrcf-replay-helpers/captures/visual-review.json
new file mode 100644
index 0000000000..7046a1bc45
--- /dev/null
+++ b/reports/data/hexrcf-replay-helpers/captures/visual-review.json
@@ -0,0 +1,67 @@
+{
+ "reviewed_at": "2026-10-18T10:35:47.056061+00:00",
+ "scope": "Five changed paragraphs at1440/390px; whole section overflow recorded separately",
+ "finding": "All ten actually viewed; changed text legible and no target overflow. Existing page overflow is separate.",
+ "captures": [
+ {
+ "path": "captures/replay-helper-quotation-desktop-types.png",
+ "sha256": "ffa6a7a78f3919af21ed36f3f655aa4d47b4e6fbe06fce47ee405b7c261ff78b",
+ "viewed": true,
+ "local_overflow": 0
+ },
+ {
+ "path": "captures/replay-helper-quotation-desktop-controls.png",
+ "sha256": "aa72d6b48ff84c92466d48062f75e2fefe46c387164ec516660f82097743ca40",
+ "viewed": true,
+ "local_overflow": 0
+ },
+ {
+ "path": "captures/replay-helper-quotation-desktop-budgets.png",
+ "sha256": "32207b88167c41c6461854e15a80ede4a22e40c48d210a75385a67c3a4ba9131",
+ "viewed": true,
+ "local_overflow": 0
+ },
+ {
+ "path": "captures/replay-helper-quotation-desktop-recursive.png",
+ "sha256": "ecf9aba19d99c2c693a4508f1121a2b6f4a8a91908ea2d719da013587df4fc5a",
+ "viewed": true,
+ "local_overflow": 0
+ },
+ {
+ "path": "captures/replay-helper-quotation-desktop-packet.png",
+ "sha256": "610cecfcb8e84bfe0648544819fd626497040ce0573543cf8f8f9e2a03dad8be",
+ "viewed": true,
+ "local_overflow": 0
+ },
+ {
+ "path": "captures/replay-helper-quotation-narrow-types.png",
+ "sha256": "e3682b54109d925ee53d86838128d0251c997fc2ee02b777ae3673e4837888d7",
+ "viewed": true,
+ "local_overflow": 0
+ },
+ {
+ "path": "captures/replay-helper-quotation-narrow-controls.png",
+ "sha256": "6caa0b1919e7a438a55b34bc46c9cbea6756bb8d38a78586f524fb958615e06b",
+ "viewed": true,
+ "local_overflow": 0
+ },
+ {
+ "path": "captures/replay-helper-quotation-narrow-budgets.png",
+ "sha256": "75ea4b8d1c1c9dd74dc695b205d81993302927e3ac84a3f71ebc8c600daf6645",
+ "viewed": true,
+ "local_overflow": 0
+ },
+ {
+ "path": "captures/replay-helper-quotation-narrow-recursive.png",
+ "sha256": "34b21a67f07dddcbfbd1490f86b1fa504519f4098700e8f8256a72c9afaf3539",
+ "viewed": true,
+ "local_overflow": 0
+ },
+ {
+ "path": "captures/replay-helper-quotation-narrow-packet.png",
+ "sha256": "321a805ffab264558648bef62e434641bf4219f4040eeb6a0bc8ca44be932dde",
+ "viewed": true,
+ "local_overflow": 0
+ }
+ ]
+}
diff --git a/reports/data/hexrcf-replay-helpers/context.json b/reports/data/hexrcf-replay-helpers/context.json
new file mode 100644
index 0000000000..0e978076bb
--- /dev/null
+++ b/reports/data/hexrcf-replay-helpers/context.json
@@ -0,0 +1,590 @@
+{
+ "source_commit": "223c7118d944d28a457a2eb59a5d5b9de8f1a4ef",
+ "source_tree": "719d960df2ba1b94fb422288d0e29108bc34bfc1",
+ "baseline_commit": "0e931b9a8c5d25a132b7f800ec8a3e00c551b327",
+ "sources": {
+ ".github/workflows/ci.yml": "bf3ef0c4e00ef2397ef5857a629a391e24252b864c093198b08775b6977c563d",
+ "AGENTS.md": "4e0a48cf49a61e56ed84c8b28e232b5bfad29f2da20571377692be6e1c316f30",
+ "HexManual/Chapters/HexRCF/RootQuote.lean": "b5a9a0dd23fdce4cf3ee7c8e7e0fd99e2282c0e8595458bb0fbfe8cc1e493870",
+ "HexManual/Chapters/HexRCF/RootTableQuote.lean": "78d1be637a32593b03f000ab153c7fdf05a1b5332ea3efb9c186aacfd68f0ae5",
+ "HexRCF/README.md": "3830d758a8a75d59df1a6dd01f59204a86858b5eda3e43a78f9e9e9c2d769a8a",
+ "HexRCF/SPEC/hex-rcf.md": "df8c6bb2435a2794faa36bc77e41f4c936f06ae149f29c3e68fe0d79f4ebfafb",
+ "HexRCF/Tactic.lean": "09d895ba1dd2c1af0bfffca197494f2614380ded268ff13e4e0b02fea22b9224",
+ "HexRealClosure/Algebraic.lean": "d05f9fb72fe9544ae9ddc685dff17080f876aa4c99c70e8992d511e011f6a454",
+ "HexRealClosure/ContextData.lean": "ca29790752b8d25f10d03a9877690a5ff40f1fdf6815c96fe9693941206e662c",
+ "HexRealClosure/SignCodec.lean": "7126323c97b77204386795a0f252f1babfd0ed7f3dba7ee3927a99b9d5c1852a",
+ "HexRealClosure/SignFacts.lean": "9c22837e93e6f50cc96310163e352ac608fbcfbd6275edab33751da2fd84f47c",
+ "HexRealClosure/SignatureCodecTests.lean": "ffc72777523ac0e92b563481804bdfb581fb0173fe7a021009737d57959b4462",
+ "HexRealClosure/TowerContext.lean": "6ef8b87b2d81cb177505a4bbc88befa078b20578cedd49e836d850753c203ee3",
+ "PLAN.md": "e94a60324486913b4a04650edd617c4ff8bef469dc7fd311adea8407c6662ea0",
+ "SPEC/real-closure-execution.md": "bc0948ad7de6969baaed89c0b3052cb0d21d64d634f8a336f9a7dde446b057f5",
+ "adapters/HexRCF/RealCoefficients.lean": "6a80cc920997d149d4098220453f357cd9ac12476d4cb6d0642d0d10d9579650",
+ "adapters/HexRCF/RealCoefficients/RationalQuote.lean": "675e2ba065b696f257adefc07fe30ddb0190f321d86005444579ea5a0744bdf5",
+ "adapters/HexRCF/RealCoefficients/RealModel.lean": "712b4fd3edff8eaa6f93e501da5debf04529d1ea8c11a18389820f866d179c43",
+ "adapters/HexRCF/RealCoefficients/Reify.lean": "ea8474b9e253f93a1583064ca99ec0bf376dadf5457fd60b57e9e18460cf449c",
+ "adapters/HexRCF/RealCoefficients/RootContext.lean": "792176eab63e5e62b759a10893569946ef6d019566b8116c85237b3e16fcdb86",
+ "adapters/HexRCF/RealCoefficients/RootHeader.lean": "681f2a964bc30f65a92a0fb1a58b4d4013eb396df37ca813962702065fb46261",
+ "adapters/HexRCF/RealCoefficients/RootPrepare.lean": "de72a8e3ac4adb13365801476467bf691e630d0952b018ccecd88846c3bdb025",
+ "adapters/HexRCF/RealCoefficients/RootQuote.lean": "4573d8ebb3feeb9d2d91bc5923403c206edb7ac35c2a1895aafb89e72d4e3aab",
+ "adapters/HexRCF/RealCoefficients/RowQuote.lean": "3b7e7d2ebcbd53a6ea893bc8f4c884d767430f8b98a3f1ca770fe7c7b122f3c9",
+ "adapters/HexRCF/RealCoefficients/ScalarPacket.lean": "9ae62bea85dab43ec01329defa9f788af4843e74b24f40f6c6f1b28adaadc6bf",
+ "adapters/HexRCF/RealCoefficients/ScalarQuote.lean": "fee2617a998f29d05c8959b484060ac1d719359c6d851a8ff6699fa9cb370acc",
+ "adapters/HexRCF/RealCoefficients/SignatureQuote.lean": "c3bb71b52c2a544b902bc256b3a162e1c3c4e7f94ae6b21808914e67109710eb",
+ "adapters/HexRealClosureTheory/Algebraic.lean": "2495153acbe4e468521913a2f5d6569831cd05f5ee48d5ddb26fc31a43438c7e",
+ "adapters/HexRealClosureTheory/SignFacts.lean": "c2b8cf96de0cccc2c0c3cbe83f0afd7c40ab9736b75f377ec5bfedc0907f34e3",
+ "adapters/HexRealClosureTheory/TowerModel.lean": "70d0e57e8ecc78eb9b7675d875157462d27cf9494d49d72bba019eaa6dd1d788",
+ "conformance/HexRCF/DependentQuote.lean": "0df154544a17857334480e7c577ecbcf1afe04165fa2da1a5a6407bf41e85518",
+ "conformance/HexRCF/DependentQuoteData.lean": "ed254475e78fa6edb27d4e55222a598b07b7357154ea0495d6195f2f1d39ee46",
+ "conformance/HexRCF/DependentQuoteProofs.lean": "5875aa9748f50340668e58aea97b196d3353313352fb8c819ae5ee3542556980",
+ "conformance/HexRCF/DependentScalarProofs.lean": "9fe3f3871f929e28355985c574c0b8c742be062ae5f19033d7d8bf9e67cd88d8",
+ "conformance/HexRCF/DependentScalarQuote.lean": "e20dd7346c337dd17126c394965f268e568706730f475844d7c0907051224933",
+ "conformance/HexRCF/FrozenSignatureConformance.lean": "8e7d432aecb87fb89bb188e4c579e86fb5c3348c5430f1e2b1a00f1f820a940e",
+ "conformance/HexRCF/FrozenSignatureProofs.lean": "55de6da9b0b3dc2d1e384d6c838d13294287c44060afb8e70aa2a0c8e01a81cb",
+ "conformance/HexRCF/ProofFunctionPublic.lean": "f928c9f0dd0a704d34a516b6282cfa6a7a4eb6c112d49689c450647a44370a6b",
+ "conformance/HexRCF/PublicSignPacket.lean": "c32d73c5634376907b965e1ea6cf69352fdda1f1945ce2f34a378cc217778102",
+ "conformance/HexRCF/PublicSignPacketControls.lean": "b4f98bd8ef190a361dd7752d4d5ece0cfbd862ff4face5a06dfabecf87096028",
+ "conformance/HexRCF/PublicSignPacketProofs.lean": "442f6d3e04a36db25611f0396103a1eee5ee411c40e8f3cc93df1acf7898bbbb",
+ "conformance/HexRCF/PublicSignPacketValues.lean": "72705dba30f04f986188903fb49b983c6f0a664895116fca8bd8b6b46b6517e5",
+ "conformance/HexRCF/QuotientQuote.lean": "97b2cbc9abdb46db33a9a91328f331edf8dea055cc244489158121cde8dc1903",
+ "conformance/HexRCF/QuotientQuoteData.lean": "ec26777d655a7898d7f7922fcea8f426a3f8c77a53000b69b6fe1755a0348870",
+ "conformance/HexRCF/QuotientQuoteProofs.lean": "f1d95accf6caed1c7354408b3a1a0b29493a526e82036390e39102ebe80c6752",
+ "conformance/HexRCF/QuotientQuotePublic.lean": "a3bd9a082df14a0ac93ba3798e13c6ebbf9dff98d7613264713aa281a5a18bea",
+ "conformance/HexRCF/RationalQuoteConformance.lean": "f03844d4a44a5c61b702ed0b1697619da9b20f4ac42122b9d1a6d3fa4a2de9ac",
+ "conformance/HexRCF/RecursiveScalarQuote.lean": "1dc5f0f2ccfe2b72c985422ef714fcd6ee15278daf32991ba7ca74ebb1366f10",
+ "conformance/HexRCF/ReplayBoundary.lean": "ab35f68ae5dc4affe6653a171e68ab1a404d90db3d9043c0d947f17fb9f5e164",
+ "conformance/HexRCF/ReplayBoundaryProofs.lean": "d755462a7344dc9f5304fba255bcefb42188c1de5a51d92d8567a27f22482dc2",
+ "conformance/HexRCF/ReplayHelperProofs.lean": "6dd68829399ec8908a877a3f7705cc9321e49b9581d0d577d114950242e43a57",
+ "conformance/HexRCF/ReplayHelpers.lean": "4472fcc41217f558db18dc40cbfeda795b32e8e456c98559097fc20a732233f6",
+ "conformance/HexRCF/RootContextConformance.lean": "0c52084609ec3de8afd51330a7d2cc97f7bae1d8b2bbc421138783940fc7db37",
+ "conformance/HexRCF/RootContextProofs.lean": "b4c2e3ce686ce8bc60bfdafe2be2f566c6de46758f4827d307f3d5592b59d2e9",
+ "conformance/HexRCF/RootHeaderBudget.lean": "db30b6b7781fabd238ea2c934477e5ae281cc6cd905f11848ce46eb66ef45fe0",
+ "conformance/HexRCF/RootHeaderControls.lean": "aca063af3bfe475166aef92193f162c25a0e53eea094087cf334406a3d513157",
+ "conformance/HexRCF/RootHeaderPacket.lean": "e924a3b799cfff2573e2861e3533be94147a6505aa11837a99dc8985ba0ae7dc",
+ "conformance/HexRCF/RootHeaderProofs.lean": "e6630f0464fd0096b9af74b4640d2abc514a62c0b0fc706b4a2e74c9602eeb8c",
+ "conformance/HexRCF/RootHeaderValues.lean": "de9a8fc7c2e9371cbd3324eb700180411e49865dbc6535a74d2c882f74e38e13",
+ "conformance/HexRCF/RootPrepareControls.lean": "b36af8efd1e12227188b6fb7bde258e80d5c1c874338a324cb53c5ccc6c1330f",
+ "conformance/HexRCF/RootPreparePacket.lean": "86185bcc5fdddb1f700d869a115a91034954714f69a83171fd0e96f601e76fe3",
+ "conformance/HexRCF/RootPrepareProofs.lean": "4a5bc6655576a6592fcd5cd801bcfebd425243b1bb6cb39b0bb46d500a3938be",
+ "conformance/HexRCF/RootPreparePublic.lean": "a9e09cbe8d1287b97dde71ad1c6dbe149cfbacb6f81f41a8493ee802416d0805",
+ "conformance/HexRCF/RootQuoteCases.lean": "602d15ef501e969183bffbda7fb3c0f00a174ba5c2dbc35370ee7fce896944dd",
+ "conformance/HexRCF/RootQuoteConformance.lean": "f6a652a243ba62cffc671d1365c6ab47b6618179acb172019ec5609ea0324d3c",
+ "conformance/HexRCF/RootQuoteData.lean": "faa259d129d5c65a063c7143e45d5d9d19573ed49862aa5ecb3978ff389cb514",
+ "conformance/HexRCF/RootQuoteSource.lean": "aca1654efc1a452aca8ef573bb8ea3a435a4e1e18a4dca854d9bcc8e350d511d",
+ "conformance/HexRCF/RootTableQuote/Conformance.lean": "ec5bd136df58cc24a40ca989e3d33e55923082aed7591b234f55c70c013c74ad",
+ "conformance/HexRCF/RowQuoteCases.lean": "8d2ebddc05d5f0d08b62b50d3498b34b47ab0b3accc4d0a572e621fd83d606d4",
+ "conformance/HexRCF/RowQuoteData.lean": "ce60cb18f548f55e929d4803c7ed824ad0a7621fd4abda09a191f76393fabf0c",
+ "conformance/HexRCF/RowQuoteDepth.lean": "6ada3c44bea055425d223dc57eafb4f0c88349713d815ded4beec9720f7802ad",
+ "conformance/HexRCF/RowQuoteProofs.lean": "317d4f981f32bb28666fcabc6248f4a57fe67c95a7fe431f7993aeacfa377ed3",
+ "conformance/HexRCF/SelectedRoot/KernelCheck.lean": "12e7e2e3f4667a76dc89c4b36796bff177f3c187b81adc5eb5e049ff1ce6669d",
+ "conformance/HexRCF/SharedQuoteCallbacks.lean": "623e63e5f4d5664e6873bde702fcac44ea426aff4ef8b87efa7f62cf2ac2a0b7",
+ "conformance/HexRCF/SignPacketProofs.lean": "3980cad31637f5798b2c351e1efc2a29b946de1d90e06fb11acd85e2a5c46321",
+ "conformance/HexRCF/SignPacketQuote.lean": "f88fc608772871b12570c2bf37f8ea93799ded0c0a033af21454c27a13522f1a",
+ "conformance/HexRCF/SignatureQuoteConformance.lean": "26f16c37cb9e0d5c09a082787f4a66673437adbf998023fd5e9625db16ff5d3f",
+ "conformance/HexRCF/TreeQuote.lean": "1d931b1ec3a8cef997b5cb50f151b9acfd73303ca013bb0a90f63550315eaa12",
+ "conformance/HexRCF/TreeQuoteData.lean": "c595c2278d2997483b755aa585da874c27eed40e4e1a8106d7f553e4f574776b",
+ "conformance/HexRCF/TreeQuoteProofs.lean": "f9a40248237480f8972df62dff548ef0599205b76014e070866e72586f161933",
+ "conformance/HexRCF/TreeQuotePublic.lean": "adc6dc6871208f31970cf5ae0c2472fd325a72e1df8114a6e8178ef8b2c71570",
+ "experiments/KernelReplay/AxiomClosure.lean": "f49377265f05f52b633b10a59255a03731e08d022cc54763de9851c5b5325034",
+ "lake-manifest.json": "fd2dc4df30cd44e4d30568489d616e7bcc8a78747500139134be56f35ae746a4",
+ "lakefile.lean": "f8af33c1c29476d57980f3f60953a13c779ad800697449f7b1378a490f87a720",
+ "lean-toolchain": "bc84812c94489d1e3e191baa1dc10d5eb684382d7fe9d2a5ab085e72c1c67e47",
+ "libraries.yml": "14e3dd1c01bb0c369b2216e2733378d61172040fd9f69dd0354d4e1267d9c5c1",
+ "reports/hexrcf-packet-quotation.md": "2b0f0b40a29fe3232ee588ec06b3bdfefb2facced7327049c8ad1cd70b6ca35e",
+ "reports/hexrcf-proof-functions.md": "ff410e9c4714476913d5651dd04d61a7ec55289b6143a6b1d29ccda331cd8989",
+ "reports/hexrcf-public-packet-quotation.md": "019ff6fe31e6699ec10e126a1d477a6a4b4f78b67893b5ce447cfe2aa637b316",
+ "reports/hexrcf-root-context.md": "fa967a71370454f5d1fcdb757ebf6ab6fa669538f253c3cc6cb6b6f826361c8a",
+ "reports/hexrcf-root-header-quotation.md": "62ecb8f293a9144b8a8a0bdc4910c473bd87063162bb656b94f1be53eb2e4617",
+ "reports/hexrcf-root-preparation.md": "23b6fc84e7b54447e224a166228f275f9ad239c90b2c6c8e4ea38d2f93e55cef",
+ "reports/hexrcf-row-quotation.md": "8b249f3f3add4995e4d6483431d77e210400e949319e18e160b88c72157b03f6",
+ "reports/hexrcf-sign-packet-quotation.md": "64adc6438ad1593d1018e14f2757cb6193614db26141af9c0c76d359084d9d99",
+ "reports/hexrcf-tree-quotation.md": "256ea13a022a3b92fecb3ef0875a3e01f9efd67776c104081ccb81e8ca463f2b"
+ },
+ "unchanged_guards": [
+ "conformance/HexRCF/SelectedRoot/KernelCheck.lean",
+ "experiments/KernelReplay/AxiomClosure.lean",
+ "AGENTS.md",
+ "PLAN.md",
+ ".github/workflows/ci.yml"
+ ],
+ "artifacts": [
+ {
+ "path": "validation/replay-helper-integration-3.log.gz",
+ "bytes": 24664,
+ "sha256": "cfb60af10c10e78a5ecaf356932794f942c5462f087902dac72454054b5fceaa",
+ "uncompressed_sha256": "07037e0df38303aa1cc5d015e94e404d82cde3e7d8ba73a5981b1849af62f3e4"
+ },
+ {
+ "path": "validation/replay-helpers-controls-1.log.gz",
+ "bytes": 5256,
+ "sha256": "2eaaec6dffd2a20e81ffc139e91c9ca32ac50f2167789bed3600e015ce97a10d",
+ "uncompressed_sha256": "c3264a0b7bd101541f1647ba470f838b94d53ab5d6273958f369f151a240d6f1"
+ },
+ {
+ "path": "validation/replay-helpers-audit-1.log.gz",
+ "bytes": 6943,
+ "sha256": "8541d8fc7c11f3691c7223f76947ff89111abf44f9021417af797a10ab41baa3",
+ "uncompressed_sha256": "ec910af69565016c46f4464ce4f6b4133c79fb90b3374bd4150eaea98e87fdba"
+ },
+ {
+ "path": "validation/replay-helper-recursive-5.log.gz",
+ "bytes": 11729,
+ "sha256": "e52bc64d42130d4c88f5e35acbac30d7fd476f38659b7fa8623411b37ff15c07",
+ "uncompressed_sha256": "f91dda47fa311cafe06cc562424134b790bbcb6db38cf7ecbdb3a634167b41b1"
+ },
+ {
+ "path": "validation/replay-helper-prefix-production-1.log.gz",
+ "bytes": 7013,
+ "sha256": "148397a41973b525118e1bdf8aaed85f233bca385c90180801f4e2b6295fdcea",
+ "uncompressed_sha256": "5d547791fb95f3c3258005f48b45c3088f1bd639e176a7b8be97181cf15ffd18"
+ },
+ {
+ "path": "validation/replay-helper-quotation-render-1.log.gz",
+ "bytes": 15680,
+ "sha256": "30ff8d02a9e2c5e5907f7d027999fd255efe7e2ee5980e882dbe238c1457d881",
+ "uncompressed_sha256": "b64ca681f0d9b123561c7a782522c87926cdaa3263b7c6c3cb53639c490f499d"
+ },
+ {
+ "path": "validation/replay-helper-quotation-browser-1.log.gz",
+ "bytes": 238,
+ "sha256": "b097026c2888dbc79576a1e83d1f947a1a1214ef750b96534a0067ac839631eb",
+ "uncompressed_sha256": "a00c747350e4ab5dfd8b1d519a32a9e55c0228615948ef5a7b17e88ed7fd9d82"
+ },
+ {
+ "path": "validation/metadata.json",
+ "bytes": 1204,
+ "sha256": "cde8565dc735112dafa791b725f0ed0eb57e1704dc4afa4d9237cf61bd16c575"
+ },
+ {
+ "path": "validation/replay-helper-final-metadata-copyright.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "validation/replay-helper-final-metadata-lines.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "validation/replay-helper-final-metadata-dag.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "validation/replay-helper-final-metadata-admissions.log.gz",
+ "bytes": 100,
+ "sha256": "d3756d45b035561a8b730b971f446d08da1977b542f6ba4571609462989a4d25",
+ "uncompressed_sha256": "b09374d3404da13ef190fe222aee3e78790c6366070f0fc2505665080d0c4ce5"
+ },
+ {
+ "path": "validation/replay-helper-final-metadata-diff.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "validation/replay-helper-final-metadata-selected-admissions.log.gz",
+ "bytes": 135,
+ "sha256": "9e9dfadb19b9db96d12788c491adecbbf90752b33d7d55dec87c4a5c1c2d255b",
+ "uncompressed_sha256": "2547201b56f86cc698de055300c62afcdad912d03e91041b56f9547d59d56288"
+ },
+ {
+ "path": "validation/replay-helper-final-metadata-relative.log.gz",
+ "bytes": 105,
+ "sha256": "c43d1ba9fa5a6ea3d05919ed8b5f63ae6d92bdbc66b09a9c0e2db03229da84e9",
+ "uncompressed_sha256": "5b6d65aeb6cb570bc5e9b14d70d6222627b455a17e51016ce5d0bf8c9d5cd4c3"
+ },
+ {
+ "path": "validation/replay-helper-final-metadata.py.gz",
+ "bytes": 1334,
+ "sha256": "477193547742884d9c3d6d44b4915a2f2ebdf8ad205d9ea7e39e61ef3008984a",
+ "uncompressed_sha256": "977e46591bf4be2007109ca0d2c54bcfec62f98522ce1fa5c361fc7070356794"
+ },
+ {
+ "path": "validation/replay-helper-integration-targets.txt.gz",
+ "bytes": 272,
+ "sha256": "df6259490d3d9899ef54205cd517c2288e24f1f51040db229773548dc85be207",
+ "uncompressed_sha256": "50218c423a6e9ab8c02f9932e6b2ac2b6d8799920de4dfe4a46c10b25bc70150"
+ },
+ {
+ "path": "validation/replay-helper-memory-policy.txt.gz",
+ "bytes": 242,
+ "sha256": "be57345ae3b27a8145cfa645e9bab52c9cec6135fbeb86816b83c71e6ac98405",
+ "uncompressed_sha256": "bcd60928bece986758499f7160c443b9a722ebe3ab645c2038a0968c19ed3b55"
+ },
+ {
+ "path": "validation/run-bounded.sh",
+ "bytes": 302,
+ "sha256": "63bc5f97337e6b039bb3a9b1ba2a500be96fd1c2a2f73b43dae284aa9b18dda8"
+ },
+ {
+ "path": "validation/collect.py.txt",
+ "bytes": 5310,
+ "sha256": "c37df6d2ba2f1f684be4e36306c15abb67a3b66f3748d355de39ea928f1e3cb0"
+ },
+ {
+ "path": "validation/render.lean.txt",
+ "bytes": 213,
+ "sha256": "f264cbb8dace30e313a37103bccd61e498b98487dd395e7d1a44c664865bff77"
+ },
+ {
+ "path": "captures/browser.mjs",
+ "bytes": 5728,
+ "sha256": "f05103e27e75f2079759519021c9534a69756d2207dddc0eb502c67a1be53571"
+ },
+ {
+ "path": "captures/inspection.json",
+ "bytes": 8986,
+ "sha256": "94b9ee00d7e0043e1ac23deb1c3120730ddf21a5c278f339529b259b7ba0aaf7"
+ },
+ {
+ "path": "captures/section-overflow.json",
+ "bytes": 33290,
+ "sha256": "b4af6c552bc970ed926f5cf23a193781259e7600f2c79ad77d8cce511184829e"
+ },
+ {
+ "path": "captures/replay-helper-quotation-desktop-types.png",
+ "bytes": 261945,
+ "sha256": "ffa6a7a78f3919af21ed36f3f655aa4d47b4e6fbe06fce47ee405b7c261ff78b"
+ },
+ {
+ "path": "captures/replay-helper-quotation-desktop-controls.png",
+ "bytes": 270375,
+ "sha256": "aa72d6b48ff84c92466d48062f75e2fefe46c387164ec516660f82097743ca40"
+ },
+ {
+ "path": "captures/replay-helper-quotation-desktop-budgets.png",
+ "bytes": 301602,
+ "sha256": "32207b88167c41c6461854e15a80ede4a22e40c48d210a75385a67c3a4ba9131"
+ },
+ {
+ "path": "captures/replay-helper-quotation-desktop-recursive.png",
+ "bytes": 279358,
+ "sha256": "ecf9aba19d99c2c693a4508f1121a2b6f4a8a91908ea2d719da013587df4fc5a"
+ },
+ {
+ "path": "captures/replay-helper-quotation-desktop-packet.png",
+ "bytes": 274544,
+ "sha256": "610cecfcb8e84bfe0648544819fd626497040ce0573543cf8f8f9e2a03dad8be"
+ },
+ {
+ "path": "captures/replay-helper-quotation-narrow-types.png",
+ "bytes": 91749,
+ "sha256": "e3682b54109d925ee53d86838128d0251c997fc2ee02b777ae3673e4837888d7"
+ },
+ {
+ "path": "captures/replay-helper-quotation-narrow-controls.png",
+ "bytes": 94816,
+ "sha256": "6caa0b1919e7a438a55b34bc46c9cbea6756bb8d38a78586f524fb958615e06b"
+ },
+ {
+ "path": "captures/replay-helper-quotation-narrow-budgets.png",
+ "bytes": 98257,
+ "sha256": "75ea4b8d1c1c9dd74dc695b205d81993302927e3ac84a3f71ebc8c600daf6645"
+ },
+ {
+ "path": "captures/replay-helper-quotation-narrow-recursive.png",
+ "bytes": 99230,
+ "sha256": "34b21a67f07dddcbfbd1490f86b1fa504519f4098700e8f8256a72c9afaf3539"
+ },
+ {
+ "path": "captures/replay-helper-quotation-narrow-packet.png",
+ "bytes": 97396,
+ "sha256": "321a805ffab264558648bef62e434641bf4219f4040eeb6a0bc8ca44be932dde"
+ },
+ {
+ "path": "captures/visual-review.json",
+ "bytes": 2438,
+ "sha256": "f05260fc8beac1e2a10a9e9dc841890aa7988cefd18782de890f1563b9d643db"
+ },
+ {
+ "path": "diagnostics/replay-helper-integration-1.log.gz",
+ "bytes": 19926,
+ "sha256": "6c11bd85e9ea8b2772c28db273cacb1b37ef9eccbcc010e182a58674f950d222",
+ "uncompressed_sha256": "679cfd65cbac6fa6b616f8a8944f7df092f7e2290e9e5724065cb19525de771f"
+ },
+ {
+ "path": "diagnostics/replay-helper-integration-2.log.gz",
+ "bytes": 23595,
+ "sha256": "033a03bbe245bc2bea7c34dafa38ae3580a177a44206a498b82fa3fe69beba9b",
+ "uncompressed_sha256": "321e6921e35f10c4737a856e97af9caaff24c26b7f9a16611a0a9a025f8ddaf7"
+ },
+ {
+ "path": "diagnostics/replay-helper-focused-1.log.gz",
+ "bytes": 8545,
+ "sha256": "b005fd99a71946350a4a5f8a80259691466515246ca6cc7f78aef1e3ce6f419d",
+ "uncompressed_sha256": "14c8efc540d4d6664e283cb4c53138a0345d8ee93ce97dc8395213472da4259b"
+ },
+ {
+ "path": "diagnostics/replay-helper-focused-2.log.gz",
+ "bytes": 11360,
+ "sha256": "5d4ba00ed050f0e9ba4bd58ae955a792d11b3dc49bdc089c88357eedfd15ad57",
+ "uncompressed_sha256": "dda8a559580048e125257404af029c066921429e00b94d622014eb99d3276c91"
+ },
+ {
+ "path": "diagnostics/replay-helper-recursive-1.log.gz",
+ "bytes": 7645,
+ "sha256": "1efb7b1fe2c61f1914b643b6267e73574fd7d016ac6727ab942862af27606ea6",
+ "uncompressed_sha256": "ab52370865eaae3a42ce94e975c1181d853e40dc420c0fd6d9307dc8aa3eefc8"
+ },
+ {
+ "path": "diagnostics/replay-helper-recursive-2.log.gz",
+ "bytes": 7676,
+ "sha256": "17524810c5c301a847332bda5ab512599cf6994ee79a4f27ef013b83a3c0e3b2",
+ "uncompressed_sha256": "6854bce25c515a2b1b73a0379172e18f18439555f5dd93f09d2b7d49a1db54e8"
+ },
+ {
+ "path": "diagnostics/replay-helper-recursive-3.log.gz",
+ "bytes": 7671,
+ "sha256": "1e38ba16c638a06791df40d4b91dc7a9b46e1d28ab2498bff8669637dc7f5ce8",
+ "uncompressed_sha256": "a91b4aa4a507bc97632cd6ce70dfc79f6da6896fc5fcd6df0d58b6e812b1c5e9"
+ },
+ {
+ "path": "diagnostics/replay-helper-recursive-4.log.gz",
+ "bytes": 7666,
+ "sha256": "08d0604e174aea0fdf01efd5ebf86f4128a5801d14bcebca00575616de4ff5c2",
+ "uncompressed_sha256": "311b42f5945ec91b22a056a21f8c133668c690d4af7cb034016927202099d923"
+ },
+ {
+ "path": "diagnostics/replay-helper-prefix-1.log.gz",
+ "bytes": 5224,
+ "sha256": "b69380a0627710ea0b8e33cfe9de4c52fdeefefead05b29f820c6af6dbe7b958",
+ "uncompressed_sha256": "2b19eeb990dd40f07d56750710ac476f640a964d54977289cddcada14f973326"
+ },
+ {
+ "path": "diagnostics/fresh-complete-projected-2-progress.log.gz",
+ "bytes": 2132,
+ "sha256": "4f97b3100360646de03e7314d58f901e17a15f568c4b90d81854af9ee8d22322",
+ "uncompressed_sha256": "cdfb757f12c1cc9968975c38e3cdafb749d944bb244a9ceeac5c64561a15a9c4"
+ },
+ {
+ "path": "diagnostics/fresh-complete-projected-2.log.gz",
+ "bytes": 7778,
+ "sha256": "3777864a7e2a3d4b40ef386aab7cc645125fe6f88117b11ce247d51efd6633a7",
+ "uncompressed_sha256": "24ca62a4bd6ba0def187ad8991bf40af369e7460871be0143cf14930afc8a65f"
+ },
+ {
+ "path": "diagnostics/fresh-complete-projected-2-FreshCompleteProjected.lean.txt.gz",
+ "bytes": 3304,
+ "sha256": "2f1a7dbe3926046fd869e537f28c75d39fff4f9fba5c34306803f2cd2845147c",
+ "uncompressed_sha256": "78088b7de2cee49a87361284787ec17adb345803f851ff1f8360f660eeb50978"
+ },
+ {
+ "path": "diagnostics/fresh-complete-projected-2-FreshProjectedAudit.lean.txt.gz",
+ "bytes": 1407,
+ "sha256": "1cd985c5f0c159b207a01eeae3805bf40050870cc63c711f149f9393739b4790",
+ "uncompressed_sha256": "7ea0898ba4b7aad91affb6636429de3e7b26c54e5fc26f89bc4703e1ffa56467"
+ },
+ {
+ "path": "diagnostics/boundary-table-1.log.gz",
+ "bytes": 5479,
+ "sha256": "1976c3823682d680385c30d88ccad74cd913d074ffa7cffc052ca5e9e572be22",
+ "uncompressed_sha256": "0d062ddc1485a9926af6ac829421ec8f78b5056acdda0117d0860eab5224a6a3"
+ },
+ {
+ "path": "diagnostics/boundary-table-2.log.gz",
+ "bytes": 5610,
+ "sha256": "589b97f8071353faec4fb3b4053267cf39ca7936f34a7e440439eff3b2c99566",
+ "uncompressed_sha256": "fd9b20533e5861d67571423215e46ab26de4a98ec248058d5a8c7c991ae408f3"
+ },
+ {
+ "path": "diagnostics/boundary-table-probe-1.log.gz",
+ "bytes": 5628,
+ "sha256": "0a4dfff3b4659836dfb5103bdf39e9546cce87d5510ea06efa17ff68aa4cdbdc",
+ "uncompressed_sha256": "85ec7345d70da6174e34131b8fe9a466b4651df8906588037cc2ca1f09827d75"
+ },
+ {
+ "path": "diagnostics/boundary-table-probe-2.log.gz",
+ "bytes": 5624,
+ "sha256": "d8d5840fb607c4222f297fd874187c4a97acb7a1ed602dc04e1dd7008924f462",
+ "uncompressed_sha256": "28dc8cacc33d0151bf8e3a08c358e0608d40a91f41d6d918c06a6d99a8da111b"
+ },
+ {
+ "path": "diagnostics/boundary-table-probe-3.log.gz",
+ "bytes": 5218,
+ "sha256": "6c8b5aced49987d808e255b4524a3bb9f73545105b479044746e5e95b1815726",
+ "uncompressed_sha256": "7f7b64a00b8969d251875dc2873ad2a2c6c39786be426388fcbe83943a083640"
+ },
+ {
+ "path": "diagnostics/boundary-table-probe-4.log.gz",
+ "bytes": 5802,
+ "sha256": "d8545a5d6ab08dfe104be1aad46bebbf415e169495d30510d8120283805848eb",
+ "uncompressed_sha256": "f7e325510968d30b80268078888ed4ae008efaf29a1373868e3775471f02ed5c"
+ },
+ {
+ "path": "diagnostics/boundary-table-probe-5.log.gz",
+ "bytes": 5287,
+ "sha256": "61999b1d4b5eead36d93e47dabce5206d75b4554c6b4cf2770e39adfacb91c6b",
+ "uncompressed_sha256": "d5a7ab0ab5062c0a2618641b33f5fb9eb1856718cec6b87f8c86cf7b2840b957"
+ },
+ {
+ "path": "diagnostics/boundary-table-production-audit-1.log.gz",
+ "bytes": 7183,
+ "sha256": "2625812acc7127aaf9f2ffe2e84d4acea42e964c4510c16d18c66eb4d67308a3",
+ "uncompressed_sha256": "199f74ddf0d6563aad7b3144367210268014109529cb68cc6001cdad07e8b04c"
+ },
+ {
+ "path": "diagnostics/boundary-table-production-audit-2.log.gz",
+ "bytes": 7182,
+ "sha256": "0810cf787186e7f687fdd96cd0f9cdd3c83208bb5b8414a5b4ff5eb929100aeb",
+ "uncompressed_sha256": "1f22495c86786b88161c43d8a9d9b04b98ff2ed47729f470b02237c094109710"
+ },
+ {
+ "path": "diagnostics/boundary-table-production-controls-1.log.gz",
+ "bytes": 7248,
+ "sha256": "dbfe30d9783e0ff838fe5e9d89e201546430ac151df636e33e84d7a3454cdbbb",
+ "uncompressed_sha256": "aa1d885f4dae3cb4844be88532effa4e485edcd802a898fc45ee1a64d432a1d4"
+ },
+ {
+ "path": "diagnostics/boundary-table-production-core-1.log.gz",
+ "bytes": 5141,
+ "sha256": "97f92177b5dc7cbcea67a179dce906bccc2c9fe158e05e899ec5d5ec9adbfb66",
+ "uncompressed_sha256": "15d5724e59c3569e35499d14d2cb5f3d0da67590265be38b9769da2929195db9"
+ },
+ {
+ "path": "diagnostics/boundary-type-audit-1.log.gz",
+ "bytes": 7177,
+ "sha256": "d175a349f7245471867c36d80d941c4b2c663958c7b033daea3b1a6e2603547f",
+ "uncompressed_sha256": "c3d1af6a8ca91642948b276e220453d33fa63a292d468b87b60fe1e8fea14585"
+ },
+ {
+ "path": "diagnostics/boundary-type-hidden-base-1.log.gz",
+ "bytes": 5624,
+ "sha256": "6f8f1a651f406e5107430967e671d5133a5bf95e71b6fc3f5d44a566a1337432",
+ "uncompressed_sha256": "75f7f0dbd7e742a9ed0414c3ade53695d8d58b62a9f17a25ba784587cb78e8de"
+ },
+ {
+ "path": "diagnostics/boundary-type-hidden-probe-1.log.gz",
+ "bytes": 5625,
+ "sha256": "5218ec2e10fefb0142047ffec637dc843ace0fe38872657008d64fb5b11bcc46",
+ "uncompressed_sha256": "8d9d48a0e83a993af63ea721e2ac0c42eeebaa15183422f4ba9f07811eef1a79"
+ },
+ {
+ "path": "diagnostics/boundary-type-order-1.log.gz",
+ "bytes": 5479,
+ "sha256": "c46585067309ec1b3bf3faa7f42707a8a28a7e2a53da78814ada2e658f758e98",
+ "uncompressed_sha256": "791d6ef6cd94f8e778057f5b2457cfc9d65a4dbd93f94681bb18d00e62004c42"
+ },
+ {
+ "path": "diagnostics/boundary-type-order-2.log.gz",
+ "bytes": 5169,
+ "sha256": "d24b54d5971e13ad44fd9c78bec8c0d18c11eff267d5c3f667e9ed44e1989fa8",
+ "uncompressed_sha256": "5b58030e11d5ccdf0c6f091d55345a9c2127a44e6917cf22359ccb1ac3b42893"
+ },
+ {
+ "path": "diagnostics/boundary-type-order-base-1.log.gz",
+ "bytes": 5163,
+ "sha256": "b93d1e45794b4f857175ffa9db28a52b278fc784e945c960c7cb3ade1e648566",
+ "uncompressed_sha256": "220448256cd81f7cf32580163c6a6a1362f88a82e5ab76d480ff1ae5830eebc4"
+ },
+ {
+ "path": "diagnostics/boundary-table-repair-3-BoundaryQuoteProbe.lean.txt.gz",
+ "bytes": 9310,
+ "sha256": "d636053f242abae7c8038726165d93560328949f12a2b692afae7b05f7f9ae89",
+ "uncompressed_sha256": "b3c629c9374863018cf45af9de6f3170abdad62ebca29e04eac58a0a4f643cb0"
+ },
+ {
+ "path": "diagnostics/boundary-table-repair-3-BoundaryTableProbe.lean.txt.gz",
+ "bytes": 1138,
+ "sha256": "cf179e195bd6f1cf55a39ef0612012299eab9a984fc3fd45e75487f339908eec",
+ "uncompressed_sha256": "576f063c2f8b8bd0d2091cbc9583bc4d6bef4cbfbedfb778c9eb2f68e89e5e37"
+ },
+ {
+ "path": "diagnostics/boundary-table-repair-3-BoundaryTypeOrder.lean.txt.gz",
+ "bytes": 846,
+ "sha256": "31a9e39046f1afabc4d1a03bb5661149268a113fbe57db59fb4a3c271f2ca542",
+ "uncompressed_sha256": "268a79aa041b2fca7526aad4326f5b4a5ca5a73692768a48363dcba6d2a92e6a"
+ },
+ {
+ "path": "diagnostics/boundary-table-repair-5-BoundaryQuoteProbe.lean.txt.gz",
+ "bytes": 9656,
+ "sha256": "36412a231064b014ffaa147775a8dfffd3e5a71139ce2bc15813e5d441698433",
+ "uncompressed_sha256": "dfb7b14ba02a547e7f2df25af89e9df049a3cfd590f9e52ea000637fef06a5ba"
+ },
+ {
+ "path": "diagnostics/boundary-table-repair-5-BoundaryTableProbe.lean.txt.gz",
+ "bytes": 1138,
+ "sha256": "cf179e195bd6f1cf55a39ef0612012299eab9a984fc3fd45e75487f339908eec",
+ "uncompressed_sha256": "576f063c2f8b8bd0d2091cbc9583bc4d6bef4cbfbedfb778c9eb2f68e89e5e37"
+ },
+ {
+ "path": "diagnostics/boundary-table-repair-5-BoundaryTypeHidden.lean.txt.gz",
+ "bytes": 987,
+ "sha256": "1c19e48bfd289c422aa10906dd7e5b1b42a801ed24577e161097ed966ea3dbc7",
+ "uncompressed_sha256": "677482900edc546901f0ea8c9f2d42d109030d4063f28d0c70c55566adedc4bb"
+ },
+ {
+ "path": "diagnostics/boundary-table-repair-5-BoundaryTypeHiddenBase.lean.txt.gz",
+ "bytes": 989,
+ "sha256": "7fd6161484155e4339c6458ec11848fd432c00fc32c93921c7304ab800462edf",
+ "uncompressed_sha256": "60a66cf22f9750d887f2e3f74541f7bc681b88e12682fc1524ce00d5de244e6d"
+ },
+ {
+ "path": "diagnostics/boundary-table-repair-5-BoundaryTypeOrder.lean.txt.gz",
+ "bytes": 846,
+ "sha256": "31a9e39046f1afabc4d1a03bb5661149268a113fbe57db59fb4a3c271f2ca542",
+ "uncompressed_sha256": "268a79aa041b2fca7526aad4326f5b4a5ca5a73692768a48363dcba6d2a92e6a"
+ },
+ {
+ "path": "diagnostics/replay-helper-integration-1-inputs.json.gz",
+ "bytes": 588,
+ "sha256": "d4f8f7bf3a83a9fcb7bf9236602757483083e1315af5ae54dffa1ce029e34c96",
+ "uncompressed_sha256": "213f00164dcabf21321c1b03a123cf4c2f9410e969da3857f9d26ba40e8c225a"
+ },
+ {
+ "path": "diagnostics/replay-helper-integration-2-inputs.json.gz",
+ "bytes": 582,
+ "sha256": "3a5477227b12d3382d43ee4bcf9136a3c795306a22e7f546cc5b31180af47d27",
+ "uncompressed_sha256": "00191881326fc24600d43b04bdaa3acefcfe352b6b481ad82c091b08784a6858"
+ },
+ {
+ "path": "diagnostics/replay-helper-integration-3-inputs.json.gz",
+ "bytes": 787,
+ "sha256": "573f2ce0508752d105f3fb3ca9606e2b15774678c921b2ae566e88f7164c5dd5",
+ "uncompressed_sha256": "445b53fafae50db797c04c38cab83f60f6f311a2808ad440b03b6279c1000b88"
+ },
+ {
+ "path": "diagnostics/replay-helper-focused-1-inputs.json.gz",
+ "bytes": 632,
+ "sha256": "ab022db5e2c4b2eff9f474675cc16e86fe0160e8faf30a627708eaccc19acb0c",
+ "uncompressed_sha256": "347a13b9cda6776b3915a9a768141d05217a6025b642c30517f627aff48f42c6"
+ }
+ ],
+ "validation": {
+ "integration": "validation/replay-helper-integration-3.log.gz",
+ "controls": "validation/replay-helpers-controls-1.log.gz",
+ "audit": "validation/replay-helpers-audit-1.log.gz",
+ "recursive": "validation/replay-helper-recursive-5.log.gz",
+ "prefix": "validation/replay-helper-prefix-production-1.log.gz",
+ "render": "validation/replay-helper-quotation-render-1.log.gz",
+ "browser": "validation/replay-helper-quotation-browser-1.log.gz"
+ },
+ "complete_packet_accepted": false,
+ "scope": "Replay helper type dependency closure, retained exposed function definitions, data-type-preserving Boolean rewrite and partial-application compatibility; exact/below, wrong-goal and complete caller restoration; fresh96/3/99 body audit, all33selected targets and fullmanual; ten actually inspected captures.",
+ "limits": "The second full original-source attempt failed with Replay.table/helper type mismatch after45m55.490s. Focused repairs are ordinary-kernel checked but do not establish complete source acceptance. The subsequent run3 remains outside this immutable record until actual terminal success or failure. No matched speedup, scaling or physical-sharing claim.",
+ "diagnostic_source_note": "Retained failed logs and selected exact inputs refer to their own attempts; they do not purport to run final production bytes. No snapshot or T-only probe is imported by production proofs. Original100/92record remains unchanged.",
+ "compiled_files": [
+ {
+ "path": ".lake/build/lib/lean/HexRCF/ReplayHelpers.olean",
+ "bytes": 83752,
+ "sha256": "98c0ed9da86186abbe6c73d0bc0240075e638fe0a9b10f59d6642f8f5cc10283"
+ },
+ {
+ "path": ".lake/build/lib/lean/HexRCF/ReplayHelperProofs.olean",
+ "bytes": 3352,
+ "sha256": "bc7eac74acff328f37c6897470b950fe91a99cba4886b03e99789c96dfeea280"
+ },
+ {
+ "path": ".lake/build/lib/lean/HexRCF/RecursiveScalarQuote.olean",
+ "bytes": 355168,
+ "sha256": "3c2c62590f82aff9b72e3daa680bc7eae6c3ec2949d5ad97cb31324289ac51b8"
+ },
+ {
+ "path": ".lake/build/lib/lean/HexRCF/RootPrepareControls.olean",
+ "bytes": 87712,
+ "sha256": "bd46335894b8045f6fd8a70ff4c4ed7d0262dd0eb82887d465f91c411d6187e4"
+ }
+ ]
+}
diff --git a/reports/data/hexrcf-replay-helpers/diagnostics/boundary-table-1.log.gz b/reports/data/hexrcf-replay-helpers/diagnostics/boundary-table-1.log.gz
new file mode 100644
index 0000000000..7cf62dc1db
Binary files /dev/null and b/reports/data/hexrcf-replay-helpers/diagnostics/boundary-table-1.log.gz differ
diff --git a/reports/data/hexrcf-replay-helpers/diagnostics/boundary-table-2.log.gz b/reports/data/hexrcf-replay-helpers/diagnostics/boundary-table-2.log.gz
new file mode 100644
index 0000000000..68dde44007
Binary files /dev/null and b/reports/data/hexrcf-replay-helpers/diagnostics/boundary-table-2.log.gz differ
diff --git a/reports/data/hexrcf-replay-helpers/diagnostics/boundary-table-probe-1.log.gz b/reports/data/hexrcf-replay-helpers/diagnostics/boundary-table-probe-1.log.gz
new file mode 100644
index 0000000000..7656eec412
Binary files /dev/null and b/reports/data/hexrcf-replay-helpers/diagnostics/boundary-table-probe-1.log.gz differ
diff --git a/reports/data/hexrcf-replay-helpers/diagnostics/boundary-table-probe-2.log.gz b/reports/data/hexrcf-replay-helpers/diagnostics/boundary-table-probe-2.log.gz
new file mode 100644
index 0000000000..b86ef65581
Binary files /dev/null and b/reports/data/hexrcf-replay-helpers/diagnostics/boundary-table-probe-2.log.gz differ
diff --git a/reports/data/hexrcf-replay-helpers/diagnostics/boundary-table-probe-3.log.gz b/reports/data/hexrcf-replay-helpers/diagnostics/boundary-table-probe-3.log.gz
new file mode 100644
index 0000000000..ce66294754
Binary files /dev/null and b/reports/data/hexrcf-replay-helpers/diagnostics/boundary-table-probe-3.log.gz differ
diff --git a/reports/data/hexrcf-replay-helpers/diagnostics/boundary-table-probe-4.log.gz b/reports/data/hexrcf-replay-helpers/diagnostics/boundary-table-probe-4.log.gz
new file mode 100644
index 0000000000..1b14f114c0
Binary files /dev/null and b/reports/data/hexrcf-replay-helpers/diagnostics/boundary-table-probe-4.log.gz differ
diff --git a/reports/data/hexrcf-replay-helpers/diagnostics/boundary-table-probe-5.log.gz b/reports/data/hexrcf-replay-helpers/diagnostics/boundary-table-probe-5.log.gz
new file mode 100644
index 0000000000..be66f7d8ce
Binary files /dev/null and b/reports/data/hexrcf-replay-helpers/diagnostics/boundary-table-probe-5.log.gz differ
diff --git a/reports/data/hexrcf-replay-helpers/diagnostics/boundary-table-production-audit-1.log.gz b/reports/data/hexrcf-replay-helpers/diagnostics/boundary-table-production-audit-1.log.gz
new file mode 100644
index 0000000000..2fa610ccdf
Binary files /dev/null and b/reports/data/hexrcf-replay-helpers/diagnostics/boundary-table-production-audit-1.log.gz differ
diff --git a/reports/data/hexrcf-replay-helpers/diagnostics/boundary-table-production-audit-2.log.gz b/reports/data/hexrcf-replay-helpers/diagnostics/boundary-table-production-audit-2.log.gz
new file mode 100644
index 0000000000..e22a08ee46
Binary files /dev/null and b/reports/data/hexrcf-replay-helpers/diagnostics/boundary-table-production-audit-2.log.gz differ
diff --git a/reports/data/hexrcf-replay-helpers/diagnostics/boundary-table-production-controls-1.log.gz b/reports/data/hexrcf-replay-helpers/diagnostics/boundary-table-production-controls-1.log.gz
new file mode 100644
index 0000000000..18d8e7ca10
Binary files /dev/null and b/reports/data/hexrcf-replay-helpers/diagnostics/boundary-table-production-controls-1.log.gz differ
diff --git a/reports/data/hexrcf-replay-helpers/diagnostics/boundary-table-production-core-1.log.gz b/reports/data/hexrcf-replay-helpers/diagnostics/boundary-table-production-core-1.log.gz
new file mode 100644
index 0000000000..fa6ae138e1
Binary files /dev/null and b/reports/data/hexrcf-replay-helpers/diagnostics/boundary-table-production-core-1.log.gz differ
diff --git a/reports/data/hexrcf-replay-helpers/diagnostics/boundary-table-repair-3-BoundaryQuoteProbe.lean.txt.gz b/reports/data/hexrcf-replay-helpers/diagnostics/boundary-table-repair-3-BoundaryQuoteProbe.lean.txt.gz
new file mode 100644
index 0000000000..540dfa1fa3
Binary files /dev/null and b/reports/data/hexrcf-replay-helpers/diagnostics/boundary-table-repair-3-BoundaryQuoteProbe.lean.txt.gz differ
diff --git a/reports/data/hexrcf-replay-helpers/diagnostics/boundary-table-repair-3-BoundaryTableProbe.lean.txt.gz b/reports/data/hexrcf-replay-helpers/diagnostics/boundary-table-repair-3-BoundaryTableProbe.lean.txt.gz
new file mode 100644
index 0000000000..2a16a7b6b9
Binary files /dev/null and b/reports/data/hexrcf-replay-helpers/diagnostics/boundary-table-repair-3-BoundaryTableProbe.lean.txt.gz differ
diff --git a/reports/data/hexrcf-replay-helpers/diagnostics/boundary-table-repair-3-BoundaryTypeOrder.lean.txt.gz b/reports/data/hexrcf-replay-helpers/diagnostics/boundary-table-repair-3-BoundaryTypeOrder.lean.txt.gz
new file mode 100644
index 0000000000..257c785759
Binary files /dev/null and b/reports/data/hexrcf-replay-helpers/diagnostics/boundary-table-repair-3-BoundaryTypeOrder.lean.txt.gz differ
diff --git a/reports/data/hexrcf-replay-helpers/diagnostics/boundary-table-repair-5-BoundaryQuoteProbe.lean.txt.gz b/reports/data/hexrcf-replay-helpers/diagnostics/boundary-table-repair-5-BoundaryQuoteProbe.lean.txt.gz
new file mode 100644
index 0000000000..34057fae4d
Binary files /dev/null and b/reports/data/hexrcf-replay-helpers/diagnostics/boundary-table-repair-5-BoundaryQuoteProbe.lean.txt.gz differ
diff --git a/reports/data/hexrcf-replay-helpers/diagnostics/boundary-table-repair-5-BoundaryTableProbe.lean.txt.gz b/reports/data/hexrcf-replay-helpers/diagnostics/boundary-table-repair-5-BoundaryTableProbe.lean.txt.gz
new file mode 100644
index 0000000000..2a16a7b6b9
Binary files /dev/null and b/reports/data/hexrcf-replay-helpers/diagnostics/boundary-table-repair-5-BoundaryTableProbe.lean.txt.gz differ
diff --git a/reports/data/hexrcf-replay-helpers/diagnostics/boundary-table-repair-5-BoundaryTypeHidden.lean.txt.gz b/reports/data/hexrcf-replay-helpers/diagnostics/boundary-table-repair-5-BoundaryTypeHidden.lean.txt.gz
new file mode 100644
index 0000000000..95fadf18f5
Binary files /dev/null and b/reports/data/hexrcf-replay-helpers/diagnostics/boundary-table-repair-5-BoundaryTypeHidden.lean.txt.gz differ
diff --git a/reports/data/hexrcf-replay-helpers/diagnostics/boundary-table-repair-5-BoundaryTypeHiddenBase.lean.txt.gz b/reports/data/hexrcf-replay-helpers/diagnostics/boundary-table-repair-5-BoundaryTypeHiddenBase.lean.txt.gz
new file mode 100644
index 0000000000..a6c371d7f9
Binary files /dev/null and b/reports/data/hexrcf-replay-helpers/diagnostics/boundary-table-repair-5-BoundaryTypeHiddenBase.lean.txt.gz differ
diff --git a/reports/data/hexrcf-replay-helpers/diagnostics/boundary-table-repair-5-BoundaryTypeOrder.lean.txt.gz b/reports/data/hexrcf-replay-helpers/diagnostics/boundary-table-repair-5-BoundaryTypeOrder.lean.txt.gz
new file mode 100644
index 0000000000..257c785759
Binary files /dev/null and b/reports/data/hexrcf-replay-helpers/diagnostics/boundary-table-repair-5-BoundaryTypeOrder.lean.txt.gz differ
diff --git a/reports/data/hexrcf-replay-helpers/diagnostics/boundary-type-audit-1.log.gz b/reports/data/hexrcf-replay-helpers/diagnostics/boundary-type-audit-1.log.gz
new file mode 100644
index 0000000000..2c3510f05e
Binary files /dev/null and b/reports/data/hexrcf-replay-helpers/diagnostics/boundary-type-audit-1.log.gz differ
diff --git a/reports/data/hexrcf-replay-helpers/diagnostics/boundary-type-hidden-base-1.log.gz b/reports/data/hexrcf-replay-helpers/diagnostics/boundary-type-hidden-base-1.log.gz
new file mode 100644
index 0000000000..f4a4c2b3d2
Binary files /dev/null and b/reports/data/hexrcf-replay-helpers/diagnostics/boundary-type-hidden-base-1.log.gz differ
diff --git a/reports/data/hexrcf-replay-helpers/diagnostics/boundary-type-hidden-probe-1.log.gz b/reports/data/hexrcf-replay-helpers/diagnostics/boundary-type-hidden-probe-1.log.gz
new file mode 100644
index 0000000000..f19051f8c0
Binary files /dev/null and b/reports/data/hexrcf-replay-helpers/diagnostics/boundary-type-hidden-probe-1.log.gz differ
diff --git a/reports/data/hexrcf-replay-helpers/diagnostics/boundary-type-order-1.log.gz b/reports/data/hexrcf-replay-helpers/diagnostics/boundary-type-order-1.log.gz
new file mode 100644
index 0000000000..37c58b9259
Binary files /dev/null and b/reports/data/hexrcf-replay-helpers/diagnostics/boundary-type-order-1.log.gz differ
diff --git a/reports/data/hexrcf-replay-helpers/diagnostics/boundary-type-order-2.log.gz b/reports/data/hexrcf-replay-helpers/diagnostics/boundary-type-order-2.log.gz
new file mode 100644
index 0000000000..a5a4d188ce
Binary files /dev/null and b/reports/data/hexrcf-replay-helpers/diagnostics/boundary-type-order-2.log.gz differ
diff --git a/reports/data/hexrcf-replay-helpers/diagnostics/boundary-type-order-base-1.log.gz b/reports/data/hexrcf-replay-helpers/diagnostics/boundary-type-order-base-1.log.gz
new file mode 100644
index 0000000000..8a081567af
Binary files /dev/null and b/reports/data/hexrcf-replay-helpers/diagnostics/boundary-type-order-base-1.log.gz differ
diff --git a/reports/data/hexrcf-replay-helpers/diagnostics/fresh-complete-projected-2-FreshCompleteProjected.lean.txt.gz b/reports/data/hexrcf-replay-helpers/diagnostics/fresh-complete-projected-2-FreshCompleteProjected.lean.txt.gz
new file mode 100644
index 0000000000..6d6a20fc2c
Binary files /dev/null and b/reports/data/hexrcf-replay-helpers/diagnostics/fresh-complete-projected-2-FreshCompleteProjected.lean.txt.gz differ
diff --git a/reports/data/hexrcf-replay-helpers/diagnostics/fresh-complete-projected-2-FreshProjectedAudit.lean.txt.gz b/reports/data/hexrcf-replay-helpers/diagnostics/fresh-complete-projected-2-FreshProjectedAudit.lean.txt.gz
new file mode 100644
index 0000000000..ed6c44311a
Binary files /dev/null and b/reports/data/hexrcf-replay-helpers/diagnostics/fresh-complete-projected-2-FreshProjectedAudit.lean.txt.gz differ
diff --git a/reports/data/hexrcf-replay-helpers/diagnostics/fresh-complete-projected-2-progress.log.gz b/reports/data/hexrcf-replay-helpers/diagnostics/fresh-complete-projected-2-progress.log.gz
new file mode 100644
index 0000000000..086b26a5f2
Binary files /dev/null and b/reports/data/hexrcf-replay-helpers/diagnostics/fresh-complete-projected-2-progress.log.gz differ
diff --git a/reports/data/hexrcf-replay-helpers/diagnostics/fresh-complete-projected-2.log.gz b/reports/data/hexrcf-replay-helpers/diagnostics/fresh-complete-projected-2.log.gz
new file mode 100644
index 0000000000..0909c77016
Binary files /dev/null and b/reports/data/hexrcf-replay-helpers/diagnostics/fresh-complete-projected-2.log.gz differ
diff --git a/reports/data/hexrcf-replay-helpers/diagnostics/replay-helper-focused-1-inputs.json.gz b/reports/data/hexrcf-replay-helpers/diagnostics/replay-helper-focused-1-inputs.json.gz
new file mode 100644
index 0000000000..1e4873678d
Binary files /dev/null and b/reports/data/hexrcf-replay-helpers/diagnostics/replay-helper-focused-1-inputs.json.gz differ
diff --git a/reports/data/hexrcf-replay-helpers/diagnostics/replay-helper-focused-1.log.gz b/reports/data/hexrcf-replay-helpers/diagnostics/replay-helper-focused-1.log.gz
new file mode 100644
index 0000000000..d8b27c7aa0
Binary files /dev/null and b/reports/data/hexrcf-replay-helpers/diagnostics/replay-helper-focused-1.log.gz differ
diff --git a/reports/data/hexrcf-replay-helpers/diagnostics/replay-helper-focused-2.log.gz b/reports/data/hexrcf-replay-helpers/diagnostics/replay-helper-focused-2.log.gz
new file mode 100644
index 0000000000..7b8a6310a0
Binary files /dev/null and b/reports/data/hexrcf-replay-helpers/diagnostics/replay-helper-focused-2.log.gz differ
diff --git a/reports/data/hexrcf-replay-helpers/diagnostics/replay-helper-integration-1-inputs.json.gz b/reports/data/hexrcf-replay-helpers/diagnostics/replay-helper-integration-1-inputs.json.gz
new file mode 100644
index 0000000000..2df9d1a0e6
Binary files /dev/null and b/reports/data/hexrcf-replay-helpers/diagnostics/replay-helper-integration-1-inputs.json.gz differ
diff --git a/reports/data/hexrcf-replay-helpers/diagnostics/replay-helper-integration-1.log.gz b/reports/data/hexrcf-replay-helpers/diagnostics/replay-helper-integration-1.log.gz
new file mode 100644
index 0000000000..677b3d168a
Binary files /dev/null and b/reports/data/hexrcf-replay-helpers/diagnostics/replay-helper-integration-1.log.gz differ
diff --git a/reports/data/hexrcf-replay-helpers/diagnostics/replay-helper-integration-2-inputs.json.gz b/reports/data/hexrcf-replay-helpers/diagnostics/replay-helper-integration-2-inputs.json.gz
new file mode 100644
index 0000000000..8e3f947c55
Binary files /dev/null and b/reports/data/hexrcf-replay-helpers/diagnostics/replay-helper-integration-2-inputs.json.gz differ
diff --git a/reports/data/hexrcf-replay-helpers/diagnostics/replay-helper-integration-2.log.gz b/reports/data/hexrcf-replay-helpers/diagnostics/replay-helper-integration-2.log.gz
new file mode 100644
index 0000000000..14fa56cf22
Binary files /dev/null and b/reports/data/hexrcf-replay-helpers/diagnostics/replay-helper-integration-2.log.gz differ
diff --git a/reports/data/hexrcf-replay-helpers/diagnostics/replay-helper-integration-3-inputs.json.gz b/reports/data/hexrcf-replay-helpers/diagnostics/replay-helper-integration-3-inputs.json.gz
new file mode 100644
index 0000000000..8ca381708c
Binary files /dev/null and b/reports/data/hexrcf-replay-helpers/diagnostics/replay-helper-integration-3-inputs.json.gz differ
diff --git a/reports/data/hexrcf-replay-helpers/diagnostics/replay-helper-prefix-1.log.gz b/reports/data/hexrcf-replay-helpers/diagnostics/replay-helper-prefix-1.log.gz
new file mode 100644
index 0000000000..fb9c49d90f
Binary files /dev/null and b/reports/data/hexrcf-replay-helpers/diagnostics/replay-helper-prefix-1.log.gz differ
diff --git a/reports/data/hexrcf-replay-helpers/diagnostics/replay-helper-recursive-1.log.gz b/reports/data/hexrcf-replay-helpers/diagnostics/replay-helper-recursive-1.log.gz
new file mode 100644
index 0000000000..ebf790395b
Binary files /dev/null and b/reports/data/hexrcf-replay-helpers/diagnostics/replay-helper-recursive-1.log.gz differ
diff --git a/reports/data/hexrcf-replay-helpers/diagnostics/replay-helper-recursive-2.log.gz b/reports/data/hexrcf-replay-helpers/diagnostics/replay-helper-recursive-2.log.gz
new file mode 100644
index 0000000000..039ae89178
Binary files /dev/null and b/reports/data/hexrcf-replay-helpers/diagnostics/replay-helper-recursive-2.log.gz differ
diff --git a/reports/data/hexrcf-replay-helpers/diagnostics/replay-helper-recursive-3.log.gz b/reports/data/hexrcf-replay-helpers/diagnostics/replay-helper-recursive-3.log.gz
new file mode 100644
index 0000000000..a0fb593b53
Binary files /dev/null and b/reports/data/hexrcf-replay-helpers/diagnostics/replay-helper-recursive-3.log.gz differ
diff --git a/reports/data/hexrcf-replay-helpers/diagnostics/replay-helper-recursive-4.log.gz b/reports/data/hexrcf-replay-helpers/diagnostics/replay-helper-recursive-4.log.gz
new file mode 100644
index 0000000000..b91dcefd10
Binary files /dev/null and b/reports/data/hexrcf-replay-helpers/diagnostics/replay-helper-recursive-4.log.gz differ
diff --git a/reports/data/hexrcf-replay-helpers/validation/collect.py.txt b/reports/data/hexrcf-replay-helpers/validation/collect.py.txt
new file mode 100644
index 0000000000..c26a9dd9e9
--- /dev/null
+++ b/reports/data/hexrcf-replay-helpers/validation/collect.py.txt
@@ -0,0 +1,56 @@
+from pathlib import Path
+import gzip,hashlib,json,subprocess
+repo=Path.cwd(); task=Path('/home/kim/.codex/tasks/hex-10358'); out=repo/'reports/data/hexrcf-replay-helpers'
+out.mkdir(parents=True,exist_ok=True)
+git=lambda *a:subprocess.check_output(['git',*a],cwd=repo)
+sha=lambda raw:hashlib.sha256(raw).hexdigest()
+source='223c7118d9';source=git('rev-parse',source).decode().strip()
+old=json.loads((repo/'reports/data/hexrcf-row-quotation/context.json').read_text())
+paths=set(old['sources'])|{path for path in git('diff','--name-only',old['source_commit'],source).decode().splitlines() if not path.startswith('reports/data/')}
+record=dict(source_commit=source,source_tree=git('rev-parse',source+'^{tree}').decode().strip(),baseline_commit=old['source_commit'],sources={},unchanged_guards=old['unchanged_guards'],artifacts=[],validation={},complete_packet_accepted=False)
+for path in sorted(paths):
+ raw=git('show',source+':'+path);assert (repo/path).read_bytes()==raw,path;record['sources'][path]=sha(raw)
+def retain(file,path,compress=False):
+ raw=file.read_bytes(); dest=out/path;dest.parent.mkdir(parents=True,exist_ok=True);dest.write_bytes(gzip.compress(raw,mtime=0) if compress else raw);data=dest.read_bytes();item=dict(path=path,bytes=len(data),sha256=sha(data))
+ if compress:item['uncompressed_sha256']=sha(raw)
+ record['artifacts'].append(item);return path
+for key,name in dict(integration='replay-helper-integration-3.log',
+ controls='replay-helpers-controls-1.log',audit='replay-helpers-audit-1.log',
+ recursive='replay-helper-recursive-5.log',prefix='replay-helper-prefix-production-1.log',
+ render='replay-helper-quotation-render-1.log',browser='replay-helper-quotation-browser-1.log').items():
+ assert 'code=exited, status=0/SUCCESS' in (task/name).read_text(),name
+ record['validation'][key]=retain(task/name,'validation/'+name+'.gz',True)
+metadata=json.loads((task/'replay-helper-final-metadata.json').read_text());assert all(x['exit_code']==0 for x in metadata)
+retain(task/'replay-helper-final-metadata.json','validation/metadata.json')
+for row in metadata:retain(task/row['log'],'validation/'+row['log']+'.gz',True)
+for name in ['replay-helper-final-metadata.py','replay-helper-integration-targets.txt','replay-helper-memory-policy.txt']:
+ retain(task/name,'validation/'+name+'.gz',True)
+retain(task/'bin/run-bounded','validation/run-bounded.sh')
+retain(task/'collect-replay-helpers.py','validation/collect.py.txt')
+retain(task/'scalar-review-render/ReplayHelperReviewRender.lean','validation/render.lean.txt')
+retain(task/'replay-helper-quotation-browser.mjs','captures/browser.mjs')
+for sourceName,dest in [('replay-helper-quotation-inspection.json','inspection.json'),('replay-helper-quotation-section-overflow.json','section-overflow.json')]:
+ retain(task/'scalar-review-render'/sourceName,'captures/'+dest)
+review=json.loads((task/'replay-helper-quotation-visual-review.json').read_text());assert len(review['captures'])==10 and all(x['viewed'] for x in review['captures'])
+for item in review['captures']:
+ file=Path(item['path']);assert sha(file.read_bytes())==item['sha256']
+ item['path']=retain(file,'captures/'+file.name);item['viewed']=True
+(out/'captures/visual-review.json').write_text(json.dumps(review,indent=2)+'\n')
+retain(out/'captures/visual-review.json','captures/visual-review.json')
+patterns=['replay-helper-integration-[12].log','replay-helper-focused-[12].log',
+ 'replay-helper-recursive-[1234].log','replay-helper-prefix-1.log',
+ 'fresh-complete-projected-2*.log','fresh-complete-projected-2*.lean.txt',
+ 'boundary-table-*.log','boundary-type-*.log','boundary-table-repair-*.lean.txt',
+ 'replay-helper-integration-*-inputs.json','replay-helper-focused-1-inputs.json']
+for pattern in patterns:
+ for file in sorted(task.glob(pattern)):
+ dest='diagnostics/'+file.name+'.gz'
+ if not any(x['path']==dest for x in record['artifacts']):retain(file,dest,True)
+record['scope']='Replay helper type dependency closure, retained exposed function definitions, data-type-preserving Boolean rewrite and partial-application compatibility; exact/below, wrong-goal and complete caller restoration; fresh96/3/99 body audit, all33selected targets and fullmanual; ten actually inspected captures.'
+record['limits']='The second full original-source attempt failed with Replay.table/helper type mismatch after45m55.490s. Focused repairs are ordinary-kernel checked but do not establish complete source acceptance. The subsequent run3 remains outside this immutable record until actual terminal success or failure. No matched speedup, scaling or physical-sharing claim.'
+record['diagnostic_source_note']='Retained failed logs and selected exact inputs refer to their own attempts; they do not purport to run final production bytes. No snapshot or T-only probe is imported by production proofs. Original100/92record remains unchanged.'
+record['compiled_files']=[]
+for name in ['ReplayHelpers','ReplayHelperProofs','RecursiveScalarQuote','RootPrepareControls']:
+ path='.lake/build/lib/lean/HexRCF/'+name+'.olean';raw=(repo/path).read_bytes();record['compiled_files'].append(dict(path=path,bytes=len(raw),sha256=sha(raw)))
+(out/'context.json').write_text(json.dumps(record,indent=2)+'\n')
+print(f'Retained {len(record["artifacts"])} artifacts/{len(record["sources"])} sources at {source}')
diff --git a/reports/data/hexrcf-replay-helpers/validation/metadata.json b/reports/data/hexrcf-replay-helpers/validation/metadata.json
new file mode 100644
index 0000000000..bf3a7f0fb6
--- /dev/null
+++ b/reports/data/hexrcf-replay-helpers/validation/metadata.json
@@ -0,0 +1,61 @@
+[
+ {
+ "name": "copyright",
+ "command": [
+ "python3",
+ "scripts/check_copyright_headers.py"
+ ],
+ "log": "replay-helper-final-metadata-copyright.log",
+ "exit_code": 0
+ },
+ {
+ "name": "lines",
+ "command": [
+ "python3",
+ "scripts/check_file_line_counts.py",
+ "--base",
+ "origin/main"
+ ],
+ "log": "replay-helper-final-metadata-lines.log",
+ "exit_code": 0
+ },
+ {
+ "name": "dag",
+ "command": [
+ "python3",
+ "scripts/check_dag.py"
+ ],
+ "log": "replay-helper-final-metadata-dag.log",
+ "exit_code": 0
+ },
+ {
+ "name": "admissions",
+ "command": [
+ "python3",
+ "scripts/ci/check_named_admissions.py"
+ ],
+ "log": "replay-helper-final-metadata-admissions.log",
+ "exit_code": 0
+ },
+ {
+ "name": "diff",
+ "command": [
+ "git",
+ "diff",
+ "HEAD",
+ "--check"
+ ],
+ "log": "replay-helper-final-metadata-diff.log",
+ "exit_code": 0
+ },
+ {
+ "name": "selected-admissions",
+ "log": "replay-helper-final-metadata-selected-admissions.log",
+ "exit_code": 0
+ },
+ {
+ "name": "relative",
+ "log": "replay-helper-final-metadata-relative.log",
+ "exit_code": 0
+ }
+]
diff --git a/reports/data/hexrcf-replay-helpers/validation/render.lean.txt b/reports/data/hexrcf-replay-helpers/validation/render.lean.txt
new file mode 100644
index 0000000000..cbb29e21a7
--- /dev/null
+++ b/reports/data/hexrcf-replay-helpers/validation/render.lean.txt
@@ -0,0 +1,5 @@
+import HexManual
+import VersoManual
+#eval Verso.Genre.Manual.manualMain (%doc HexManual)
+ (options := ["--output", "replay-helper-review-html",
+ "--without-tex", "--with-html-single", "--without-html-multi"])
diff --git a/reports/data/hexrcf-replay-helpers/validation/replay-helper-final-metadata-admissions.log.gz b/reports/data/hexrcf-replay-helpers/validation/replay-helper-final-metadata-admissions.log.gz
new file mode 100644
index 0000000000..df90d604db
Binary files /dev/null and b/reports/data/hexrcf-replay-helpers/validation/replay-helper-final-metadata-admissions.log.gz differ
diff --git a/reports/data/hexrcf-replay-helpers/validation/replay-helper-final-metadata-copyright.log.gz b/reports/data/hexrcf-replay-helpers/validation/replay-helper-final-metadata-copyright.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-replay-helpers/validation/replay-helper-final-metadata-copyright.log.gz differ
diff --git a/reports/data/hexrcf-replay-helpers/validation/replay-helper-final-metadata-dag.log.gz b/reports/data/hexrcf-replay-helpers/validation/replay-helper-final-metadata-dag.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-replay-helpers/validation/replay-helper-final-metadata-dag.log.gz differ
diff --git a/reports/data/hexrcf-replay-helpers/validation/replay-helper-final-metadata-diff.log.gz b/reports/data/hexrcf-replay-helpers/validation/replay-helper-final-metadata-diff.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-replay-helpers/validation/replay-helper-final-metadata-diff.log.gz differ
diff --git a/reports/data/hexrcf-replay-helpers/validation/replay-helper-final-metadata-lines.log.gz b/reports/data/hexrcf-replay-helpers/validation/replay-helper-final-metadata-lines.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-replay-helpers/validation/replay-helper-final-metadata-lines.log.gz differ
diff --git a/reports/data/hexrcf-replay-helpers/validation/replay-helper-final-metadata-relative.log.gz b/reports/data/hexrcf-replay-helpers/validation/replay-helper-final-metadata-relative.log.gz
new file mode 100644
index 0000000000..154780e0b7
Binary files /dev/null and b/reports/data/hexrcf-replay-helpers/validation/replay-helper-final-metadata-relative.log.gz differ
diff --git a/reports/data/hexrcf-replay-helpers/validation/replay-helper-final-metadata-selected-admissions.log.gz b/reports/data/hexrcf-replay-helpers/validation/replay-helper-final-metadata-selected-admissions.log.gz
new file mode 100644
index 0000000000..2502c12367
Binary files /dev/null and b/reports/data/hexrcf-replay-helpers/validation/replay-helper-final-metadata-selected-admissions.log.gz differ
diff --git a/reports/data/hexrcf-replay-helpers/validation/replay-helper-final-metadata.py.gz b/reports/data/hexrcf-replay-helpers/validation/replay-helper-final-metadata.py.gz
new file mode 100644
index 0000000000..d88e7cd87c
Binary files /dev/null and b/reports/data/hexrcf-replay-helpers/validation/replay-helper-final-metadata.py.gz differ
diff --git a/reports/data/hexrcf-replay-helpers/validation/replay-helper-integration-3.log.gz b/reports/data/hexrcf-replay-helpers/validation/replay-helper-integration-3.log.gz
new file mode 100644
index 0000000000..6266a6a29b
Binary files /dev/null and b/reports/data/hexrcf-replay-helpers/validation/replay-helper-integration-3.log.gz differ
diff --git a/reports/data/hexrcf-replay-helpers/validation/replay-helper-integration-targets.txt.gz b/reports/data/hexrcf-replay-helpers/validation/replay-helper-integration-targets.txt.gz
new file mode 100644
index 0000000000..f18da29bb2
Binary files /dev/null and b/reports/data/hexrcf-replay-helpers/validation/replay-helper-integration-targets.txt.gz differ
diff --git a/reports/data/hexrcf-replay-helpers/validation/replay-helper-memory-policy.txt.gz b/reports/data/hexrcf-replay-helpers/validation/replay-helper-memory-policy.txt.gz
new file mode 100644
index 0000000000..42e4629e9f
Binary files /dev/null and b/reports/data/hexrcf-replay-helpers/validation/replay-helper-memory-policy.txt.gz differ
diff --git a/reports/data/hexrcf-replay-helpers/validation/replay-helper-prefix-production-1.log.gz b/reports/data/hexrcf-replay-helpers/validation/replay-helper-prefix-production-1.log.gz
new file mode 100644
index 0000000000..e5894e4a98
Binary files /dev/null and b/reports/data/hexrcf-replay-helpers/validation/replay-helper-prefix-production-1.log.gz differ
diff --git a/reports/data/hexrcf-replay-helpers/validation/replay-helper-quotation-browser-1.log.gz b/reports/data/hexrcf-replay-helpers/validation/replay-helper-quotation-browser-1.log.gz
new file mode 100644
index 0000000000..6edb102baa
Binary files /dev/null and b/reports/data/hexrcf-replay-helpers/validation/replay-helper-quotation-browser-1.log.gz differ
diff --git a/reports/data/hexrcf-replay-helpers/validation/replay-helper-quotation-render-1.log.gz b/reports/data/hexrcf-replay-helpers/validation/replay-helper-quotation-render-1.log.gz
new file mode 100644
index 0000000000..d3e751930a
Binary files /dev/null and b/reports/data/hexrcf-replay-helpers/validation/replay-helper-quotation-render-1.log.gz differ
diff --git a/reports/data/hexrcf-replay-helpers/validation/replay-helper-recursive-5.log.gz b/reports/data/hexrcf-replay-helpers/validation/replay-helper-recursive-5.log.gz
new file mode 100644
index 0000000000..faf9c225f9
Binary files /dev/null and b/reports/data/hexrcf-replay-helpers/validation/replay-helper-recursive-5.log.gz differ
diff --git a/reports/data/hexrcf-replay-helpers/validation/replay-helpers-audit-1.log.gz b/reports/data/hexrcf-replay-helpers/validation/replay-helpers-audit-1.log.gz
new file mode 100644
index 0000000000..3768b96b7d
Binary files /dev/null and b/reports/data/hexrcf-replay-helpers/validation/replay-helpers-audit-1.log.gz differ
diff --git a/reports/data/hexrcf-replay-helpers/validation/replay-helpers-controls-1.log.gz b/reports/data/hexrcf-replay-helpers/validation/replay-helpers-controls-1.log.gz
new file mode 100644
index 0000000000..b29c0ca27f
Binary files /dev/null and b/reports/data/hexrcf-replay-helpers/validation/replay-helpers-controls-1.log.gz differ
diff --git a/reports/data/hexrcf-replay-helpers/validation/run-bounded.sh b/reports/data/hexrcf-replay-helpers/validation/run-bounded.sh
new file mode 100644
index 0000000000..2cc8636e8a
--- /dev/null
+++ b/reports/data/hexrcf-replay-helpers/validation/run-bounded.sh
@@ -0,0 +1,10 @@
+#!/usr/bin/env bash
+set -euo pipefail
+exec systemd-run --user --wait --pipe --collect \
+ --unit=hex-10358-lean-build \
+ --property=MemoryMax=32G \
+ --property=MemorySwapMax=0 \
+ --property=OOMPolicy=kill \
+ --working-directory="$PWD" \
+ --setenv="PATH=$PATH" --setenv=LEAN_NUM_THREADS=2 \
+ "$@"
diff --git a/reports/data/hexrcf-replay-helpers/verify.py b/reports/data/hexrcf-replay-helpers/verify.py
new file mode 100644
index 0000000000..366e6b10a5
--- /dev/null
+++ b/reports/data/hexrcf-replay-helpers/verify.py
@@ -0,0 +1,85 @@
+#!/usr/bin/env python3
+"""Verify replay helper type quotation evidence."""
+import argparse
+import gzip
+import hashlib
+import json
+from pathlib import Path
+import subprocess
+
+parser = argparse.ArgumentParser(description=__doc__)
+parser.add_argument('--check-head', action='store_true')
+args = parser.parse_args()
+root = Path(__file__).resolve().parent
+repo = root.parents[2]
+record = json.loads((root / 'context.json').read_text())
+git = lambda *arguments: subprocess.check_output(['git', *arguments], cwd=repo)
+sha = lambda raw: hashlib.sha256(raw).hexdigest()
+
+def artifact(path):
+ return gzip.decompress((root / path).read_bytes()).decode()
+
+def log(key):
+ return artifact(record['validation'][key])
+
+assert git('rev-parse', record['source_commit'] + '^{tree}').decode().strip() == record['source_tree']
+for path, digest in record['sources'].items():
+ assert sha(git('show', record['source_commit'] + ':' + path)) == digest, path
+ if args.check_head:
+ assert sha((repo / path).read_bytes()) == digest, path
+if args.check_head:
+ paths = git('diff', '--name-only', record['source_commit']).decode().splitlines()
+ paths += git('ls-files', '--others', '--exclude-standard').decode().splitlines()
+ assert all(path.startswith('reports/') for path in paths), paths
+for path in record['unchanged_guards']:
+ assert git('show', record['baseline_commit'] + ':' + path) == git(
+ 'show', record['source_commit'] + ':' + path), path
+for item in record['artifacts']:
+ raw = (root / item['path']).read_bytes()
+ assert len(raw) == item['bytes'] and sha(raw) == item['sha256'], item['path']
+ if 'uncompressed_sha256' in item:
+ assert sha(gzip.decompress(raw)) == item['uncompressed_sha256'], item['path']
+for key in record['validation']:
+ assert 'code=exited, status=0/SUCCESS' in log(key), key
+assert 'Build completed successfully (14398 jobs)' in log('integration')
+for message in [
+ 'typed replay helper actual bodies: 96 theorems/3 definitions; nonempty traces=99',
+ 'typed replay helper array/7: proofNodes=95378',
+ 'typed replay helper array/8: proofNodes=8388',
+ 'typed replay helper helper/7: proofNodes=81812',
+ 'typed replay helper helper/8: proofNodes=7272',
+ 'typed helper exact/below/wrong-goal and caller rollback: array; exact=95378',
+ 'typed helper exact/below/wrong-goal and caller rollback: helper; exact=81812',
+ 'retained packet exact/one-below request budget=3029330; caller state restored',
+ 'retained packet wrong-sign rejection restored caller declarations and metavariables',
+ 'malformed retained input refused with caller rollback: variant=2',
+ 'selected projection quotation actual bodies: 70 theorems/8 definitions; nonempty traces=72',
+ 'dependent replay boundary actual bodies: 132 theorems/3 definitions; nonempty traces=135']:
+ assert message in log('integration'), message
+assert 'recursive scalar quotation: 87 theorem bodies, 5 definitions' in log('recursive')
+assert 'recursive variants: constant=23526; tagged=23537; retry=26175' in log('recursive')
+assert 'recursive exhausted: consumed=24544, requested=925' in log('recursive')
+assert 'Built HexRCF.RootQuoteCases' in log('prefix')
+failure=artifact('diagnostics/fresh-complete-projected-2.log.gz')
+assert '45min 55.490s' in failure and 'status=1/FAILURE' in failure
+assert 'evidence.table hc' in failure and 'application type mismatch' in failure
+assert record['complete_packet_accepted'] is False
+assert 'consumed 2998466, requested 1535' in artifact('diagnostics/replay-helper-integration-2.log.gz')
+assert 'maximum number of heartbeats (12000000)' in artifact('diagnostics/replay-helper-focused-1.log.gz')
+metadata=json.loads((root/'validation/metadata.json').read_text())
+assert {x['name'] for x in metadata}=={'copyright','lines','dag','admissions','selected-admissions','relative','diff'}
+assert all(x['exit_code']==0 for x in metadata)
+memory=artifact('validation/replay-helper-memory-policy.txt.gz')
+assert all(x in memory for x in ['ActiveState=active','MemoryMax=34359738368','MemorySwapMax=0','OOMPolicy=kill','LEAN_NUM_THREADS=2'])
+inspection=json.loads((root/'captures/inspection.json').read_text())
+assert {(x['label'],x['kind']) for x in inspection}=={(a,b) for a in ['desktop','narrow'] for b in ['types','controls','budgets','recursive','packet']}
+assert all(x['descendantOverflow']==0 and x['targetScrollWidth']<=x['targetWidth']+1 for x in inspection)
+review=json.loads((root/'captures/visual-review.json').read_text())
+assert len(review['captures'])==10
+for item in review['captures']:
+ assert item['viewed'] is True and item['local_overflow']==0
+ assert sha((root/item['path']).read_bytes())==item['sha256']
+assert len(record['compiled_files'])==4 and all(x['bytes']>0 for x in record['compiled_files'])
+print(f"Verified {len(record['artifacts'])} artifacts/{len(record['sources'])} sources; "
+ '96/3/99 helper audit, all33 selected targets, complete manual and ten inspected captures; '
+ 'complete original-source acceptance remains unproved by this record')
diff --git a/reports/data/hexrcf-root-context/README.md b/reports/data/hexrcf-root-context/README.md
new file mode 100644
index 0000000000..dceb69923c
--- /dev/null
+++ b/reports/data/hexrcf-root-context/README.md
@@ -0,0 +1,14 @@
+This record binds native context assembly, its selected-real interpretation
+and the fresh importing proof audit to the source commit in `context.json`.
+Run `python3 reports/data/hexrcf-root-context/verify.py --check-head` from the
+repository root. Earlier quotation records retain their own source revisions.
+
+Final validation includes the affected adapter and rational compatibility
+build, complete manual, corrected narrow code layout, HTML rendering, six
+inspected 1440/390px captures, metadata and admission scans. Preliminary and
+failed attempts are retained separately, including the browser harness's
+whitespace escape errors and the first narrow-layout overflow. These are local
+validation observations with reused dependencies, without scaling, speedup
+or physical-sharing claims. The signature audit additionally checks the
+projected-constructor case. The 2,653-node count covers the packing request;
+the subsequent ordinary-model construction is checked separately.
diff --git a/reports/data/hexrcf-root-context/captures/root-context-desktop-boundary.png b/reports/data/hexrcf-root-context/captures/root-context-desktop-boundary.png
new file mode 100644
index 0000000000..c9b8473e76
Binary files /dev/null and b/reports/data/hexrcf-root-context/captures/root-context-desktop-boundary.png differ
diff --git a/reports/data/hexrcf-root-context/captures/root-context-desktop-signature.png b/reports/data/hexrcf-root-context/captures/root-context-desktop-signature.png
new file mode 100644
index 0000000000..5100d68455
Binary files /dev/null and b/reports/data/hexrcf-root-context/captures/root-context-desktop-signature.png differ
diff --git a/reports/data/hexrcf-root-context/captures/root-context-desktop-value.png b/reports/data/hexrcf-root-context/captures/root-context-desktop-value.png
new file mode 100644
index 0000000000..d1615b348f
Binary files /dev/null and b/reports/data/hexrcf-root-context/captures/root-context-desktop-value.png differ
diff --git a/reports/data/hexrcf-root-context/captures/root-context-document.json b/reports/data/hexrcf-root-context/captures/root-context-document.json
new file mode 100644
index 0000000000..d89e74bcfd
--- /dev/null
+++ b/reports/data/hexrcf-root-context/captures/root-context-document.json
@@ -0,0 +1,6 @@
+{
+ "currentPacket": true,
+ "currentTransport": true,
+ "currentFrozen": true,
+ "cubicSource": "https://github.com/kim-em/hex-dev/blob/main/conformance/HexRCF/RootQuoteSource.lean"
+}
\ No newline at end of file
diff --git a/reports/data/hexrcf-root-context/captures/root-context-inspection.json b/reports/data/hexrcf-root-context/captures/root-context-inspection.json
new file mode 100644
index 0000000000..3bbdc7bad6
--- /dev/null
+++ b/reports/data/hexrcf-root-context/captures/root-context-inspection.json
@@ -0,0 +1,86 @@
+[
+ {
+ "label": "desktop",
+ "kind": "signature",
+ "text": "\n The default quotation rules recognize Signature.codec.decode applied to the\ncanonical encoding of its actual signature argument, using the existing public\nroundtrip law. This handles distinct signature subjects without a fixture\ncallback. It does not connect a separately frozen numerical signature to that\nencoding. SignatureQuote.decoder\nuses the owner's public literal equation and a checked binding of the supplied\nJSON to its exact signature. It handles signature payloads selected from frozen\ngraph fields without running the signature parser during proof construction.\nDistinct signature subjects, wrong bindings, exact budgets and one-node-below\nbudgets are checked in a fresh importing regression:",
+ "viewport": 1440,
+ "scrollY": 288376,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "CODE",
+ "targetWidth": 740,
+ "targetScrollWidth": 740,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "desktop",
+ "kind": "value",
+ "text": "\n The same decoded coefficient can be interpreted through the owner's ordinary\nreal model of the packed context, retaining its selected value and sign:",
+ "viewport": 1440,
+ "scrollY": 288917,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "CODE",
+ "targetWidth": 740,
+ "targetScrollWidth": 740,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "desktop",
+ "kind": "boundary",
+ "text": "\n The packing budget covers context and signature proof construction. Model\nconstruction is checked separately; its cost is not included in that packing\ncount. Exact and one-node-below budgets are tested. A descriptor for the parent\ncarrier cannot be packed into its child carrier, and the failing call restores\ncaller assignments and declarations. Fresh importing checks audit the actual\nmetadata, model and value proofs. The new packing bodies must not evaluate\nroot-data serialization or graph encoding, in addition to the existing native\nproducer exclusions. Fully numerical frame/history reconstruction and the\ngeneral source-goal tactic remain separate obligations.\n",
+ "viewport": 1440,
+ "scrollY": 289140,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "P",
+ "targetWidth": 752,
+ "targetScrollWidth": 752,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "signature",
+ "text": "\n The default quotation rules recognize Signature.codec.decode applied to the\ncanonical encoding of its actual signature argument, using the existing public\nroundtrip law. This handles distinct signature subjects without a fixture\ncallback. It does not connect a separately frozen numerical signature to that\nencoding. SignatureQuote.decoder\nuses the owner's public literal equation and a checked binding of the supplied\nJSON to its exact signature. It handles signature payloads selected from frozen\ngraph fields without running the signature parser during proof construction.\nDistinct signature subjects, wrong bindings, exact budgets and one-node-below\nbudgets are checked in a fresh importing regression:",
+ "viewport": 390,
+ "scrollY": 465477,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "CODE",
+ "targetWidth": 331,
+ "targetScrollWidth": 331,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "value",
+ "text": "\n The same decoded coefficient can be interpreted through the owner's ordinary\nreal model of the packed context, retaining its selected value and sign:",
+ "viewport": 390,
+ "scrollY": 466343,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "CODE",
+ "targetWidth": 331,
+ "targetScrollWidth": 331,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "boundary",
+ "text": "\n The packing budget covers context and signature proof construction. Model\nconstruction is checked separately; its cost is not included in that packing\ncount. Exact and one-node-below budgets are tested. A descriptor for the parent\ncarrier cannot be packed into its child carrier, and the failing call restores\ncaller assignments and declarations. Fresh importing checks audit the actual\nmetadata, model and value proofs. The new packing bodies must not evaluate\nroot-data serialization or graph encoding, in addition to the existing native\nproducer exclusions. Fully numerical frame/history reconstruction and the\ngeneral source-goal tactic remain separate obligations.\n",
+ "viewport": 390,
+ "scrollY": 466670,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "P",
+ "targetWidth": 343,
+ "targetScrollWidth": 343,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ }
+]
\ No newline at end of file
diff --git a/reports/data/hexrcf-root-context/captures/root-context-narrow-boundary.png b/reports/data/hexrcf-root-context/captures/root-context-narrow-boundary.png
new file mode 100644
index 0000000000..cd5183dc6f
Binary files /dev/null and b/reports/data/hexrcf-root-context/captures/root-context-narrow-boundary.png differ
diff --git a/reports/data/hexrcf-root-context/captures/root-context-narrow-signature.png b/reports/data/hexrcf-root-context/captures/root-context-narrow-signature.png
new file mode 100644
index 0000000000..2bd6b00883
Binary files /dev/null and b/reports/data/hexrcf-root-context/captures/root-context-narrow-signature.png differ
diff --git a/reports/data/hexrcf-root-context/captures/root-context-narrow-value.png b/reports/data/hexrcf-root-context/captures/root-context-narrow-value.png
new file mode 100644
index 0000000000..401b23a787
Binary files /dev/null and b/reports/data/hexrcf-root-context/captures/root-context-narrow-value.png differ
diff --git a/reports/data/hexrcf-root-context/captures/root-context-section-overflow.json b/reports/data/hexrcf-root-context/captures/root-context-section-overflow.json
new file mode 100644
index 0000000000..4fd2948681
--- /dev/null
+++ b/reports/data/hexrcf-root-context/captures/root-context-section-overflow.json
@@ -0,0 +1,54 @@
+[
+ {
+ "label": "desktop",
+ "width": 1440,
+ "targets": [
+ {
+ "tag": "P",
+ "text": "\n RootContext.packWith\nthen assembles an actual native root context from a closed retained parent and\nits checked descriptor. It keeps the exis",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The same decoded coefficient can be interpreted through the owner's ordinary\nreal model of the packed context, retaining its selected value a",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF in\nopen RootContextCases in\nopen RootHeaderPacket in\nexample : model.value coefficient =\n realRoot :=\n value_checked\n\nopen Hex.RCF in\nopen Root",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The packing budget covers context and signature proof construction. Model\nconstruction is checked separately; its cost is not included in tha",
+ "overflow": 0
+ }
+ ]
+ },
+ {
+ "label": "narrow",
+ "width": 390,
+ "targets": [
+ {
+ "tag": "P",
+ "text": "\n RootContext.packWith\nthen assembles an actual native root context from a closed retained parent and\nits checked descriptor. It keeps the exis",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The same decoded coefficient can be interpreted through the owner's ordinary\nreal model of the packed context, retaining its selected value a",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF in\nopen RootContextCases in\nopen RootHeaderPacket in\nexample : model.value coefficient =\n realRoot :=\n value_checked\n\nopen Hex.RCF in\nopen Root",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The packing budget covers context and signature proof construction. Model\nconstruction is checked separately; its cost is not included in tha",
+ "overflow": 0
+ }
+ ]
+ }
+]
\ No newline at end of file
diff --git a/reports/data/hexrcf-root-context/context.json b/reports/data/hexrcf-root-context/context.json
new file mode 100644
index 0000000000..c04157b5f5
--- /dev/null
+++ b/reports/data/hexrcf-root-context/context.json
@@ -0,0 +1,606 @@
+{
+ "source_commit": "8219d982eb5e6fc0a522e1e078ab4f377eb5f544",
+ "source_tree": "45a5a5200dd46222c9e4eebf126e99ddd993f4f5",
+ "baseline_commit": "e92beebc18c626ad94d0e64791b23239cdfdb9bb",
+ "sources": {
+ ".github/workflows/ci.yml": "bf3ef0c4e00ef2397ef5857a629a391e24252b864c093198b08775b6977c563d",
+ "AGENTS.md": "4e0a48cf49a61e56ed84c8b28e232b5bfad29f2da20571377692be6e1c316f30",
+ "HexManual/Chapters/HexRCF/RootQuote.lean": "235865da8a289c4e8f8ebfa4e3f5be1687ac734c7abd0ff9c692f8e37ee71da0",
+ "HexManual/Chapters/HexRCF/RootTableQuote.lean": "88c50284803d69ccdceee1f0c7d892f19143b1dca60a6f7f502303da07d079cc",
+ "HexRCF/README.md": "84b1155f6db594cfa9c3d5504fc54f66f356c61b2a39143a1fefcbc9e49cc86f",
+ "HexRCF/SPEC/hex-rcf.md": "df8c6bb2435a2794faa36bc77e41f4c936f06ae149f29c3e68fe0d79f4ebfafb",
+ "HexRCF/Tactic.lean": "09d895ba1dd2c1af0bfffca197494f2614380ded268ff13e4e0b02fea22b9224",
+ "HexRealClosure/Algebraic.lean": "d05f9fb72fe9544ae9ddc685dff17080f876aa4c99c70e8992d511e011f6a454",
+ "HexRealClosure/ContextData.lean": "ca29790752b8d25f10d03a9877690a5ff40f1fdf6815c96fe9693941206e662c",
+ "HexRealClosure/SignCodec.lean": "7126323c97b77204386795a0f252f1babfd0ed7f3dba7ee3927a99b9d5c1852a",
+ "HexRealClosure/SignFacts.lean": "9c22837e93e6f50cc96310163e352ac608fbcfbd6275edab33751da2fd84f47c",
+ "HexRealClosure/SignatureCodecTests.lean": "ffc72777523ac0e92b563481804bdfb581fb0173fe7a021009737d57959b4462",
+ "HexRealClosure/TowerContext.lean": "6ef8b87b2d81cb177505a4bbc88befa078b20578cedd49e836d850753c203ee3",
+ "PLAN.md": "e94a60324486913b4a04650edd617c4ff8bef469dc7fd311adea8407c6662ea0",
+ "SPEC/real-closure-execution.md": "bc0948ad7de6969baaed89c0b3052cb0d21d64d634f8a336f9a7dde446b057f5",
+ "adapters/HexRCF/RealCoefficients.lean": "16801824bc269fc59dc5c1574f8987445416860b2b3ed8a5e32d6d6954dad36e",
+ "adapters/HexRCF/RealCoefficients/RationalQuote.lean": "675e2ba065b696f257adefc07fe30ddb0190f321d86005444579ea5a0744bdf5",
+ "adapters/HexRCF/RealCoefficients/RealModel.lean": "712b4fd3edff8eaa6f93e501da5debf04529d1ea8c11a18389820f866d179c43",
+ "adapters/HexRCF/RealCoefficients/Reify.lean": "ea8474b9e253f93a1583064ca99ec0bf376dadf5457fd60b57e9e18460cf449c",
+ "adapters/HexRCF/RealCoefficients/RootContext.lean": "792176eab63e5e62b759a10893569946ef6d019566b8116c85237b3e16fcdb86",
+ "adapters/HexRCF/RealCoefficients/RootHeader.lean": "681f2a964bc30f65a92a0fb1a58b4d4013eb396df37ca813962702065fb46261",
+ "adapters/HexRCF/RealCoefficients/RootQuote.lean": "5ae6502bf1ef3c0569328757667d10d00c95522f6cf888d8f2909704694502d5",
+ "adapters/HexRCF/RealCoefficients/ScalarPacket.lean": "9ae62bea85dab43ec01329defa9f788af4843e74b24f40f6c6f1b28adaadc6bf",
+ "adapters/HexRCF/RealCoefficients/ScalarQuote.lean": "fee2617a998f29d05c8959b484060ac1d719359c6d851a8ff6699fa9cb370acc",
+ "adapters/HexRCF/RealCoefficients/SignatureQuote.lean": "c3bb71b52c2a544b902bc256b3a162e1c3c4e7f94ae6b21808914e67109710eb",
+ "adapters/HexRealClosureTheory/Algebraic.lean": "2495153acbe4e468521913a2f5d6569831cd05f5ee48d5ddb26fc31a43438c7e",
+ "adapters/HexRealClosureTheory/SignFacts.lean": "c2b8cf96de0cccc2c0c3cbe83f0afd7c40ab9736b75f377ec5bfedc0907f34e3",
+ "adapters/HexRealClosureTheory/TowerModel.lean": "70d0e57e8ecc78eb9b7675d875157462d27cf9494d49d72bba019eaa6dd1d788",
+ "conformance/HexRCF/DependentQuote.lean": "519876284605f5077abd4dbeddd5ca9aa0921460ba8f2c7dbf237e4b184c92c4",
+ "conformance/HexRCF/DependentQuoteData.lean": "48bfdfa8e62d87233a96c525d5157b57f831964a521674dc33ea094ceb51be0a",
+ "conformance/HexRCF/DependentQuoteProofs.lean": "b0d510908b8f64e31236f5d06812e89121b48a3d5375ad3d63915a9b5853c297",
+ "conformance/HexRCF/DependentScalarProofs.lean": "9e8da19d71e1496babd31ecb13430d74abb5f383738d47cbc1bc066b27902cfe",
+ "conformance/HexRCF/DependentScalarQuote.lean": "e20dd7346c337dd17126c394965f268e568706730f475844d7c0907051224933",
+ "conformance/HexRCF/FrozenSignatureConformance.lean": "8e7d432aecb87fb89bb188e4c579e86fb5c3348c5430f1e2b1a00f1f820a940e",
+ "conformance/HexRCF/FrozenSignatureProofs.lean": "55de6da9b0b3dc2d1e384d6c838d13294287c44060afb8e70aa2a0c8e01a81cb",
+ "conformance/HexRCF/PublicSignPacket.lean": "e4363bd8f3d28617540381e4d1a828c8b00a1937f892ddff39a14985c4143d33",
+ "conformance/HexRCF/PublicSignPacketControls.lean": "1f074d9ff3120aacda5b9d2c35697dfeb6495097e7e127b14ae710583aeee9a5",
+ "conformance/HexRCF/PublicSignPacketProofs.lean": "383f03af3b1d46580f218002118c0d8f4137e8f44ac86bb4e4914fe543362fea",
+ "conformance/HexRCF/PublicSignPacketValues.lean": "72705dba30f04f986188903fb49b983c6f0a664895116fca8bd8b6b46b6517e5",
+ "conformance/HexRCF/RationalQuoteConformance.lean": "3114038aa7989ad9335749008e80c3512e44960abdb7b4795a7604c5fd1b7a0d",
+ "conformance/HexRCF/RootContextConformance.lean": "0c52084609ec3de8afd51330a7d2cc97f7bae1d8b2bbc421138783940fc7db37",
+ "conformance/HexRCF/RootContextProofs.lean": "7aa34a551224fd64a724f5f1120afebb6921efb6539c11d2d9f45c4a359351c7",
+ "conformance/HexRCF/RootHeaderBudget.lean": "db30b6b7781fabd238ea2c934477e5ae281cc6cd905f11848ce46eb66ef45fe0",
+ "conformance/HexRCF/RootHeaderControls.lean": "488ef2e0d22670589e8d1a3d18ac04dfd4ee284657d143f46bb18e91fb07663a",
+ "conformance/HexRCF/RootHeaderPacket.lean": "21e6fe1d55193fc069b7af85ad3b169c43215455956dc66c33a7d04238645bf0",
+ "conformance/HexRCF/RootHeaderProofs.lean": "9dcf02ed5e05bd08afd064993de4decfe64a54779dd2848e8bc7e4ae7981fdcc",
+ "conformance/HexRCF/RootHeaderValues.lean": "de9a8fc7c2e9371cbd3324eb700180411e49865dbc6535a74d2c882f74e38e13",
+ "conformance/HexRCF/RootQuoteCases.lean": "602d15ef501e969183bffbda7fb3c0f00a174ba5c2dbc35370ee7fce896944dd",
+ "conformance/HexRCF/RootQuoteConformance.lean": "9924a4dcd57e617cda6c028ec800fb8e2c1591f31a8f80054231d04f6bfb6d68",
+ "conformance/HexRCF/RootQuoteData.lean": "faa259d129d5c65a063c7143e45d5d9d19573ed49862aa5ecb3978ff389cb514",
+ "conformance/HexRCF/RootQuoteSource.lean": "aca1654efc1a452aca8ef573bb8ea3a435a4e1e18a4dca854d9bcc8e350d511d",
+ "conformance/HexRCF/RootTableQuote/Conformance.lean": "c19a69b2c5bb9238ae0322e9df9f48fcad3856bb2e2e5f43ef8bf28cc049b81f",
+ "conformance/HexRCF/SelectedRoot/KernelCheck.lean": "12e7e2e3f4667a76dc89c4b36796bff177f3c187b81adc5eb5e049ff1ce6669d",
+ "conformance/HexRCF/SignPacketProofs.lean": "1eecbb48e9fb4a1582378699361f8c704f5a76c084a5ac6b37881cffb20678b5",
+ "conformance/HexRCF/SignPacketQuote.lean": "726aee0639abee0735c84bc1fe73dab5a4fe4058869f70b23c2ce7c4facd0772",
+ "conformance/HexRCF/SignatureQuoteConformance.lean": "26f16c37cb9e0d5c09a082787f4a66673437adbf998023fd5e9625db16ff5d3f",
+ "experiments/KernelReplay/AxiomClosure.lean": "f49377265f05f52b633b10a59255a03731e08d022cc54763de9851c5b5325034",
+ "lake-manifest.json": "fd2dc4df30cd44e4d30568489d616e7bcc8a78747500139134be56f35ae746a4",
+ "lakefile.lean": "7e58932cbfa5f675ede692ea37e2f7d842262a068922f4dc41a559da7d585db9",
+ "lean-toolchain": "bc84812c94489d1e3e191baa1dc10d5eb684382d7fe9d2a5ab085e72c1c67e47",
+ "libraries.yml": "14e3dd1c01bb0c369b2216e2733378d61172040fd9f69dd0354d4e1267d9c5c1"
+ },
+ "unchanged_guards": [
+ "conformance/HexRCF/SelectedRoot/KernelCheck.lean",
+ "experiments/KernelReplay/AxiomClosure.lean",
+ "AGENTS.md",
+ "PLAN.md",
+ ".github/workflows/ci.yml"
+ ],
+ "validation": {
+ "integration": "validation/root-context-final-integration-4.log.gz",
+ "manual": "validation/root-context-final-integration-4.log.gz",
+ "controls": "validation/root-context-final-integration-4.log.gz",
+ "render": "validation/root-context-render-3.log.gz",
+ "browser": "validation/root-context-browser-8.log.gz"
+ },
+ "body_scope": [
+ "HexRCF.RootContextConformance",
+ "HexRCF.RealCoefficients.RootContext",
+ "HexRCF.RealCoefficients.RealModel",
+ "HexRCF.RootHeaderPacket",
+ "HexRCF.RootHeaderValues",
+ "HexRCF.RealCoefficients.RootHeader",
+ "HexRCF.RealCoefficients.RootQuote",
+ "HexRCF.RootQuoteCases",
+ "HexRCF.RootQuoteSource",
+ "HexRCF.RootQuoteData",
+ "HexRCF.RealCoefficients.ScalarPacket"
+ ],
+ "audit_counts": [
+ 682,
+ 68,
+ 735
+ ],
+ "header_counts": [
+ 674,
+ 66,
+ 725
+ ],
+ "signature_counts": [
+ 23,
+ 7,
+ 16
+ ],
+ "report_sha256": "2f602735f17728efef47ef240ddc815de821bbccfe002e4db01b8c391bb0a68f",
+ "reports": {
+ "reports/hexrcf-root-context.md": "2f602735f17728efef47ef240ddc815de821bbccfe002e4db01b8c391bb0a68f",
+ "reports/hexrcf-root-header-quotation.md": "3c127f321305748e46b5141f872058fd23fa342c833406c4b0b1dc48e24c41d5"
+ },
+ "diagnostics": {
+ "root-context-final-integration-1.log": "passed earlier context integration before full literal codec adoption",
+ "root-context-final-integration-3.log": "passed functional full build at8092a1eec0 before module docstrings and narrow example wrapping",
+ "root-context-final-integration-2.log": "operator-stopped superseded manual pass; completed conformance/audits retained; signal15/TERM and no completed full build, not a passing sample",
+ "frozen-signature-packet-1.log": "failed direct rational signature literal rfl; public signature/keys laws required",
+ "frozen-signature-packet-2.log": "failed rewrite through rational context alias; fixed by explicit public definition unfolding",
+ "frozen-signature-packet-3.log": "failed isolated fixture meta-only import and Option.none pattern; full packet projection still unrecognized",
+ "frozen-signature-packet-4.log": "isolated signatures passed; full packet projection unrecognized; diagnostic messages restored by transaction",
+ "frozen-signature-packet-5.log": "full packet projection unrecognized; diagnostic messages restored by transaction",
+ "frozen-signature-packet-6.log": "retained IO diagnostic identified Vector-index payload; failed exact payload match before projection reduction",
+ "frozen-signature-packet-7.log": "passed full frozen packet before constructor-only source assertion",
+ "frozen-signature-audit-1.log": "isolated audit passed; literal syntax guard rejected numeral wrappers",
+ "frozen-signature-literal-constructors-1.log": "isolated pinned audit passed; source guard identified OfNat/Neg wrappers",
+ "frozen-signature-projected-1.log": "projected integer-constructor comparison failed; source guard also found Nat numeral wrappers",
+ "frozen-signature-projected-2.log": "projected case passed with instance transparency; source guard found Nat numeral wrappers",
+ "frozen-signature-audit-2.log": "all producer guards and five packet controls passed; inventory pins required 23/7/16,674/66/725,682/68/735",
+ "root-context-production-cases-1.log": "failed: missing mkOfNat quotation API",
+ "root-context-production-cases-2.log": "failed: public export inferred private proof type in exporting scope",
+ "root-context-production-cases-3.log": "passed preliminary controls before unresolved-input regression",
+ "root-context-production-audit-1.log": "preliminary audit before exported public model",
+ "root-context-browser-1.log": "failed harness whitespace match",
+ "root-context-browser-2.log": "failed harness escaped whitespace match",
+ "root-context-browser-3.log": "failed harness escaped whitespace match; retained document diagnostics",
+ "root-context-browser-4.log": "failed harness escaped whitespace match; diagnostic snippet",
+ "root-context-browser-5.log": "failed harness escaped whitespace match; captured normalized body revealed literal-s substitution",
+ "root-context-browser-6.log": "failed: narrow code block overflow, fixed by local namespace opens"
+ },
+ "artifacts": [
+ {
+ "path": "README.md",
+ "bytes": 977,
+ "sha256": "bf533f7c963b938be61e4ceda446ab1073c558c54be781f2238a4591f2d69f02"
+ },
+ {
+ "path": "captures/root-context-desktop-boundary.png",
+ "bytes": 256850,
+ "sha256": "4191a57490d6fe16bdbd20b7a81d39709f096d5f94bbfb7ad6bcaaf28e92445e"
+ },
+ {
+ "path": "captures/root-context-desktop-signature.png",
+ "bytes": 271480,
+ "sha256": "3423806ab6cd368e0ca010b05e39e756cd98680af0613d5772a304485339d5fb"
+ },
+ {
+ "path": "captures/root-context-desktop-value.png",
+ "bytes": 269381,
+ "sha256": "3b766037458eab183813c5c889f5800f8fc6e905db073c2b9ec9aceb95bf4cef"
+ },
+ {
+ "path": "captures/root-context-document.json",
+ "bytes": 184,
+ "sha256": "0bf6bb305cd41185e61f32f0ec5f524c96274af63b9d1563f26d03bbda2c02b9"
+ },
+ {
+ "path": "captures/root-context-inspection.json",
+ "bytes": 5018,
+ "sha256": "d0bb1732814a1f428ba6336cf5763bca847fb0896e608bda7ba28f88cf4349e1"
+ },
+ {
+ "path": "captures/root-context-narrow-boundary.png",
+ "bytes": 95328,
+ "sha256": "b9504f476974e60ac516320f2062d5cea3ab614d0cca89dd05632c300fa4dbba"
+ },
+ {
+ "path": "captures/root-context-narrow-signature.png",
+ "bytes": 94903,
+ "sha256": "a0025e4caa406da808f18bc75c58065654d9262119ee11af42999101c051c4bd"
+ },
+ {
+ "path": "captures/root-context-narrow-value.png",
+ "bytes": 93875,
+ "sha256": "94f69e972d978507a1481326fa4450a0f62d119342159efe17c2c48db502a8cf"
+ },
+ {
+ "path": "captures/root-context-section-overflow.json",
+ "bytes": 2096,
+ "sha256": "4211fa634e938a66eeeef11cecffa7760d1d249f7941fabdbe36da69b68baebd"
+ },
+ {
+ "path": "diagnostics/first-narrow-layout/root-context-desktop-boundary.png",
+ "bytes": 265555,
+ "sha256": "c2873963f2a17470c7fed0a1a4c779e89e3404ed9ca045c9ff3c134e62185abf"
+ },
+ {
+ "path": "diagnostics/first-narrow-layout/root-context-desktop-value.png",
+ "bytes": 275715,
+ "sha256": "5ce0e544fa21cc6740b19c5b18cb8b8318390e05a0e15f0a5e8964cd9f6579ce"
+ },
+ {
+ "path": "diagnostics/first-narrow-layout/root-context-document.json",
+ "bytes": 159,
+ "sha256": "043e3425ad70a22a5a14e9d6239081b4272a4bffbacb57351653cd0f9080d789"
+ },
+ {
+ "path": "diagnostics/first-narrow-layout/root-context-narrow-boundary.png",
+ "bytes": 95710,
+ "sha256": "84cdb17d3e4e2a9118adeaaac7bb0a3c8e279c34b573a7092a4674cc9cbc2c9d"
+ },
+ {
+ "path": "diagnostics/first-narrow-layout/root-context-narrow-value.png",
+ "bytes": 94188,
+ "sha256": "f02733169c84083927c0b4df7d6fae921b0b9957e024bed19c93d884756fbba6"
+ },
+ {
+ "path": "diagnostics/first-narrow-layout/root-context-section-overflow.json",
+ "bytes": 2093,
+ "sha256": "73c60af37847e62eb3f4065e0c23718888c1b0d1afae62e65c159dc7cd03270a"
+ },
+ {
+ "path": "diagnostics/frozen-signature-audit-1.log.gz",
+ "bytes": 7610,
+ "sha256": "40c3f64c3b76ec2962fd7c0795a1e77a9dc2fa58d30b5ce992efa194ff417268",
+ "uncompressed_sha256": "7f3d43c85c6715b73b0f067bb2b8ace32fa2b99671360b1053f6a1e7b2102fa9"
+ },
+ {
+ "path": "diagnostics/frozen-signature-audit-2.log.gz",
+ "bytes": 8063,
+ "sha256": "cdcb3cfb88fe0fee9e0549d338a278afd20e86ce2bda44e6296fe4ee6f0b0342",
+ "uncompressed_sha256": "426dd664c582db3768ae51b880522cd69d3de88be4824050ad30150f6a859a80"
+ },
+ {
+ "path": "diagnostics/frozen-signature-core-1.log.gz",
+ "bytes": 5145,
+ "sha256": "fe21fa42ed324da84869cce0467f74e5cacbe1b753a6c550944d0a2cf0cb949a",
+ "uncompressed_sha256": "a8b8b0ea9e3606b29ff8e914083165c7d2a0680be34fe24e3c8d1b6e4a41b6b5"
+ },
+ {
+ "path": "diagnostics/frozen-signature-literal-constructors-1.log.gz",
+ "bytes": 7752,
+ "sha256": "fdde8689c63578406fc243e4100fc79463be57c81197ea40c97799cad6f2d94e",
+ "uncompressed_sha256": "b82e76171fe9b28f968c8e54b44962b03405f03cec1928edac38c96b8a1169ef"
+ },
+ {
+ "path": "diagnostics/frozen-signature-packet-1.log.gz",
+ "bytes": 7097,
+ "sha256": "c1bdc9143d59b4dd8aea1af074b6fa51c0ccbd60cc4db74256dbf421ef96d7a2",
+ "uncompressed_sha256": "9083f231de1f139e86894406656cf2a4ca3d1040d4e76939cb346d364c14ccfa"
+ },
+ {
+ "path": "diagnostics/frozen-signature-packet-2.log.gz",
+ "bytes": 7156,
+ "sha256": "a886a89c89bb134ec84a57b4619eab89350003d84abcf053030b9d7aeb4a506d",
+ "uncompressed_sha256": "7e5b658bc82488d8dd068cbeee6aab368591987008c4dc3adf8dc678cfcbabf6"
+ },
+ {
+ "path": "diagnostics/frozen-signature-packet-3.log.gz",
+ "bytes": 7793,
+ "sha256": "fbaef9a57f4a56ffc38b3ba1b30815ba4ec590648a06c88257e16d3c4f3c09c9",
+ "uncompressed_sha256": "c29850e2b1e5f4ed2b46a74686e0ecad84e38a0c79dd1f0bda3fc4e90ba2e6ba"
+ },
+ {
+ "path": "diagnostics/frozen-signature-packet-4.log.gz",
+ "bytes": 7286,
+ "sha256": "b6f79b77125e05f2c45d8e59f772bcf3f481aadb5d27dcae0205767e1203a09f",
+ "uncompressed_sha256": "aafdf1ec72d0182dfe1347d0bc42b4b4cead9cae01a8028bd3f46165e13edaad"
+ },
+ {
+ "path": "diagnostics/frozen-signature-packet-5.log.gz",
+ "bytes": 7013,
+ "sha256": "08959111ef3be61d334fb831c4941aabca42bd74727f1a55a8f4994094a2bf86",
+ "uncompressed_sha256": "167ca6901d05ccf86e8fa25a4941a035c68675f91ea118ded2e359bffb9c914e"
+ },
+ {
+ "path": "diagnostics/frozen-signature-packet-6.log.gz",
+ "bytes": 12766,
+ "sha256": "05cbd9a9dfe80f01a1caa422649a0a9d328a8627bd53c828c88cc1d9e0f7de23",
+ "uncompressed_sha256": "02a3139d1613a38978db0cbf5df5efe0414acd736ce70c8f577610f22813c370"
+ },
+ {
+ "path": "diagnostics/frozen-signature-packet-7.log.gz",
+ "bytes": 6714,
+ "sha256": "ef5ba5d00825add12c1a89419c12fd1d332263c1a799f5bddb225d37bca09907",
+ "uncompressed_sha256": "2913d1f3c5c9ae1e72e6bc7d3fa872aa0cc9a5ddf568d34074503c41ad53b82c"
+ },
+ {
+ "path": "diagnostics/frozen-signature-projected-1.log.gz",
+ "bytes": 7268,
+ "sha256": "a8ae4befc31b08388e84300c9c8fb4f4689780d878f57eda0c182eafd11f91ff",
+ "uncompressed_sha256": "7edccb575c47fca52aa869f9774647f345b8d7f53f5048720451db44a49724e9"
+ },
+ {
+ "path": "diagnostics/frozen-signature-projected-2.log.gz",
+ "bytes": 7229,
+ "sha256": "bba716e941d20004b546e42549fc2d035bbbfc50c585ad69aebfcdef4865d00c",
+ "uncompressed_sha256": "660e592277ec3312ac862fa78e836520b5b5afa89e2c4684616049e4837a9ccb"
+ },
+ {
+ "path": "diagnostics/root-context-browser-1.log.gz",
+ "bytes": 470,
+ "sha256": "7be4d57c03359b4aced3f8cf97692c1d7a3b87b4730647b55c10b36b46dcf2b7",
+ "uncompressed_sha256": "23f07957250335574008a42cd9f2e61cd85e246720054946dcfedf4ad2525c83"
+ },
+ {
+ "path": "diagnostics/root-context-browser-2.log.gz",
+ "bytes": 473,
+ "sha256": "d9fcbf38350b7624d8aad4be794fb9d909fde1b8742c3241774bd24bac7b010a",
+ "uncompressed_sha256": "bf424853b0a59340805669af8fbad9b5db5b8ac4a19f60d97c47e795c8f1c52d"
+ },
+ {
+ "path": "diagnostics/root-context-browser-3.log.gz",
+ "bytes": 520,
+ "sha256": "65616195e878e582c3b15fb4483c8f287bc66fe7e6c1c9806b0f124c0f55c689",
+ "uncompressed_sha256": "628a22055be41d22df328f0a796938537b6ed8fc9aea97b346c4cf9069105e1a"
+ },
+ {
+ "path": "diagnostics/root-context-browser-4.log.gz",
+ "bytes": 530,
+ "sha256": "5a0577312c4f29c219e53f249d5fdee2fa104750ccfad945d1dedb5e6bd6815c",
+ "uncompressed_sha256": "9373c3793a6124fa7bd3c1b97dd222d63b84024be12e5dd4f271f02b309b40a4"
+ },
+ {
+ "path": "diagnostics/root-context-browser-5.log.gz",
+ "bytes": 3624,
+ "sha256": "55a2e58c0281691b81665951311682f5f88b66e323a80274d9770ac2e6956d82",
+ "uncompressed_sha256": "24c9b034996d088241407bd67b1bf949647ad7b47d006e1ea1985fd0f662bd27"
+ },
+ {
+ "path": "diagnostics/root-context-browser-6.log.gz",
+ "bytes": 387,
+ "sha256": "4cd464e137b1a4eb335dea873c698d640fa23f13c48ea19c5ecb2fa04f8a8ff9",
+ "uncompressed_sha256": "42592093f96d916848e6b5a1a127c7c237135d904ee1f9d60968adf94158120b"
+ },
+ {
+ "path": "diagnostics/root-context-browser-7.log.gz",
+ "bytes": 239,
+ "sha256": "b4a2834fb170bc14bc1bf65b679d6e15799ae682b115fd679c85f54f041cabc9",
+ "uncompressed_sha256": "e0bd86ce17d4aa3d09633e8cf6968d94508d55f82115d914542c3f490abc6829"
+ },
+ {
+ "path": "diagnostics/root-context-final-integration-1.log.gz",
+ "bytes": 15403,
+ "sha256": "57ee62f36eb17ed2f3e27859ac63f3a0372c7dec5c1ebd3905ffddbefe14ea7c",
+ "uncompressed_sha256": "a47da2c81da5dfd9d050ac07dc5cfb6ada18995e03b64a8b8757b91436fa5abd"
+ },
+ {
+ "path": "diagnostics/root-context-final-integration-2.log.gz",
+ "bytes": 17760,
+ "sha256": "764df72fe66989348a34bdf45ceac62055d8a508c849b4225ea4d651ceaf8049",
+ "uncompressed_sha256": "102e14beb0dff079ec85060536470390442e14e581eee47a6896b6396abe02d1"
+ },
+ {
+ "path": "diagnostics/root-context-final-integration-3.log.gz",
+ "bytes": 15651,
+ "sha256": "4d36b9bff7021bf8250aa55fc6d5c22336a696dd82ed09805a0e12b4fc68cdce",
+ "uncompressed_sha256": "be9d0054c0a5cf0e5774140e9b6ef063ab4a4b02f1a12754a4d1b6a527f2255a"
+ },
+ {
+ "path": "diagnostics/root-context-integration-1.log.gz",
+ "bytes": 9854,
+ "sha256": "1751d1585ffa12119b998895701f4e617b0e3c949e24da15f49b31fbf8aaaac9",
+ "uncompressed_sha256": "0f1bd8f5a54bb0ef8dbfcee2b5dd72c2e8b46b565948072137c408cfb56abeb2"
+ },
+ {
+ "path": "diagnostics/root-context-manual-width-1.log.gz",
+ "bytes": 15063,
+ "sha256": "9e1df2492a27b08a5c4512ccaae28cf2b65dcc5c83e1fdc1ccdf74593fa77455",
+ "uncompressed_sha256": "f1c37b411498ce63b4def22bb94bfd08875e7038e08b2fbf99db2820f4e99ae8"
+ },
+ {
+ "path": "diagnostics/root-context-production-audit-1.log.gz",
+ "bytes": 7259,
+ "sha256": "778e5513323a09ec80be5ccff5b9c69fdd7316b924b85ed8305c93a38ff56c1d",
+ "uncompressed_sha256": "0c80a7d668ffa70f4660062304e499f49abe33326580f1d944a24e718af463d4"
+ },
+ {
+ "path": "diagnostics/root-context-production-audit-2.log.gz",
+ "bytes": 7267,
+ "sha256": "0a3e081e19919574d67a8d34e6b4dcb6e1ac41576b1a9a646143f8d7af7ebd85",
+ "uncompressed_sha256": "2e3d8cb4618604ff09554114d38e608f94c96c03b68f0370f4a06ec710571349"
+ },
+ {
+ "path": "diagnostics/root-context-production-cases-1.log.gz",
+ "bytes": 7415,
+ "sha256": "ce8b8c480f8e355024a8f862b92130122f652a73d914d904afc193c136ab1fe8",
+ "uncompressed_sha256": "ee8a481836a07fc0249c5a0eaf4446ca1953daad6d3bea0c973aecf54622658d"
+ },
+ {
+ "path": "diagnostics/root-context-production-cases-2.log.gz",
+ "bytes": 7506,
+ "sha256": "8937feacdd324a57b120cff1e23cc98fe0e927c5d61f89558c07c18dcf6ab5bb",
+ "uncompressed_sha256": "731158b472266f66e0963b549ef837b5aff1da3fad9c78ec774d93a46334e8a7"
+ },
+ {
+ "path": "diagnostics/root-context-production-cases-3.log.gz",
+ "bytes": 7160,
+ "sha256": "aa1a87a87c4a91d3365c1ec275e932a7786a600378454fcabbe1e9dc0541f631",
+ "uncompressed_sha256": "0a0d1895b54de378aa18c2e8b26885e6d53d3ec0c8d277aa55db310d68a27b25"
+ },
+ {
+ "path": "diagnostics/root-context-production-cases-4.log.gz",
+ "bytes": 7206,
+ "sha256": "1596653ec274fcd2228f87e0d99729fba50480115d489a5c337270da80bd831f",
+ "uncompressed_sha256": "0bd1fafa342ddf437cb8e3046c7dd7dad019132dde055f14c12a10c1f457d804"
+ },
+ {
+ "path": "diagnostics/root-context-production-core-1.log.gz",
+ "bytes": 5130,
+ "sha256": "dc26a265f4f9f637e5ca46d02d3d2881b7920b91d752380a3824fdc20256973c",
+ "uncompressed_sha256": "73ae48f54ebdd9db98359c4956308c0f91e028870ec85dacb142c9764069acb8"
+ },
+ {
+ "path": "diagnostics/root-context-render-1.log.gz",
+ "bytes": 15037,
+ "sha256": "08475946b2c48b1fe21d5302270a84309e06bc17768276d1230e6149adaea324",
+ "uncompressed_sha256": "bacee81b2eb729cf63b00534472d53816a1b1bb526d97365e10d06ce04577656"
+ },
+ {
+ "path": "diagnostics/root-context-render-2.log.gz",
+ "bytes": 15023,
+ "sha256": "05d2d40959a391753faddc52e8b5af39ec8424ce44e6ff21da15222e3eeeb8bb",
+ "uncompressed_sha256": "cc7a335d08d9497eee3ef8717c1700213d92ef3c77943f02d06dab69a29f3649"
+ },
+ {
+ "path": "scripts/browser.mjs",
+ "bytes": 6870,
+ "sha256": "32a6ffd419734761720a07927089b3269d74ddb9977a0d8c66238f965063eb01"
+ },
+ {
+ "path": "scripts/collect.py",
+ "bytes": 7967,
+ "sha256": "f8bc01af50e6dce5af0794d4f9fb558dd705bcd100e779e86c1ab97386a80375"
+ },
+ {
+ "path": "scripts/relative-links.py",
+ "bytes": 902,
+ "sha256": "f16d2fd6616259eff6da3f254e8161345a3dd6c9805c58e77bc214f74eaabf1c"
+ },
+ {
+ "path": "scripts/render-main.lean.txt",
+ "bytes": 206,
+ "sha256": "664d37e07421cd5f5ee5df6e4fdb3f18fb67b1e58e3688267ff6ca6909180ef3"
+ },
+ {
+ "path": "scripts/run-bounded",
+ "bytes": 302,
+ "sha256": "63bc5f97337e6b039bb3a9b1ba2a500be96fd1c2a2f73b43dae284aa9b18dda8"
+ },
+ {
+ "path": "scripts/selected-admissions.py",
+ "bytes": 799,
+ "sha256": "74c9d33006bdef9c16c55bb2a2c33bb6634d973821a70d473ab21b1671e9fa03"
+ },
+ {
+ "path": "validation/memory-policy.txt.gz",
+ "bytes": 81,
+ "sha256": "326b0d6e697c40159fe0d52c95635ddde379aaf216166e88ffd432243b833771",
+ "uncompressed_sha256": "8c30beb8a3d4252b2297005700c7e60f4e97033ffdb9d72237fee646d57eff03"
+ },
+ {
+ "path": "validation/metadata.json",
+ "bytes": 770,
+ "sha256": "5c10ca419a4ab6cb7957f14488cec276aee2c9b21e9f62017f000e7c9f60bf5a"
+ },
+ {
+ "path": "validation/root-context-browser-7.log.gz",
+ "bytes": 239,
+ "sha256": "b4a2834fb170bc14bc1bf65b679d6e15799ae682b115fd679c85f54f041cabc9",
+ "uncompressed_sha256": "e0bd86ce17d4aa3d09633e8cf6968d94508d55f82115d914542c3f490abc6829"
+ },
+ {
+ "path": "validation/root-context-browser-8.log.gz",
+ "bytes": 239,
+ "sha256": "f9a00a3923a00086970e03302772625df2bbdd86819f7d009d99ed291d9bcd2b",
+ "uncompressed_sha256": "8ba14ab7d7eefde2a305d3290e7ca17b6e5abb2a72798365fbd1eb3698d0e515"
+ },
+ {
+ "path": "validation/root-context-final-integration-1.log.gz",
+ "bytes": 15403,
+ "sha256": "57ee62f36eb17ed2f3e27859ac63f3a0372c7dec5c1ebd3905ffddbefe14ea7c",
+ "uncompressed_sha256": "a47da2c81da5dfd9d050ac07dc5cfb6ada18995e03b64a8b8757b91436fa5abd"
+ },
+ {
+ "path": "validation/root-context-final-integration-4.log.gz",
+ "bytes": 15745,
+ "sha256": "6af536b3de6a552ac6ef9bff3ba4cb8ae93c4fc65100ea7e1079e4d3e17db4a3",
+ "uncompressed_sha256": "9d0e8a8b236bbeadaf1290535332613b55902f74e03c57f1685791b7ddfc58d6"
+ },
+ {
+ "path": "validation/root-context-final-metadata-admissions-2.log.gz",
+ "bytes": 100,
+ "sha256": "657a4b2f207f993c8f3f315a33ae89300d7024acdcc56d70644f50dee961636e",
+ "uncompressed_sha256": "beb8512dcef16a456352002f5c97aa2bf8e0d45de02cc8926200ee8948ad331d"
+ },
+ {
+ "path": "validation/root-context-final-metadata-admissions-3.log.gz",
+ "bytes": 99,
+ "sha256": "f5730b72e041c791d2e1576fc2e1a5e6bfc65933c61e37644490fa96b0e46d8c",
+ "uncompressed_sha256": "b36482a3742ddf949b76b130c5d23ab9737aef4b132a0cf50c156c813e275a7d"
+ },
+ {
+ "path": "validation/root-context-final-metadata-copyright-2.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "validation/root-context-final-metadata-copyright-3.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "validation/root-context-final-metadata-dag-2.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "validation/root-context-final-metadata-dag-3.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "validation/root-context-final-metadata-diff-2.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "validation/root-context-final-metadata-diff-3.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "validation/root-context-final-metadata-lines-2.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "validation/root-context-final-metadata-lines-3.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "validation/root-context-final-metadata-relative-2.log.gz",
+ "bytes": 99,
+ "sha256": "3db66f0c3404f43fd0db5f35fe6c4521ebb0f00ae908653d0ef52d4d29803568",
+ "uncompressed_sha256": "9f5e81ca4bbe5819978cb48727472770954d6cc53103a27da4cfda00dddcbb36"
+ },
+ {
+ "path": "validation/root-context-final-metadata-relative-3.log.gz",
+ "bytes": 99,
+ "sha256": "cc955d29ec8eef5c257e07382688871909a0cd2ed664b1ad57389bf9301bba0e",
+ "uncompressed_sha256": "8a3c0782365a47d3e54bba3233787472f1ebda132dd5e7b2c4e99228d42699e2"
+ },
+ {
+ "path": "validation/root-context-final-metadata-selected-admissions-2.log.gz",
+ "bytes": 76,
+ "sha256": "07ad05425467441af004cd2631bcba4b4810c03601809303b3015583c44cc860",
+ "uncompressed_sha256": "5a32322f8c35846adf9e55cdb7b5c7c499dc3428cc919a8a9adae6feac92b6b8"
+ },
+ {
+ "path": "validation/root-context-final-metadata-selected-admissions-3.log.gz",
+ "bytes": 76,
+ "sha256": "34c11635cf86defc330af4fd1b2460cabe534052b45f0cab17360fa7d5e539c7",
+ "uncompressed_sha256": "81d59fdde2083be543a3c65d5f76548c1726d6b4881ed12fa45494d320073f18"
+ },
+ {
+ "path": "validation/root-context-manual-width-1.log.gz",
+ "bytes": 15063,
+ "sha256": "9e1df2492a27b08a5c4512ccaae28cf2b65dcc5c83e1fdc1ccdf74593fa77455",
+ "uncompressed_sha256": "f1c37b411498ce63b4def22bb94bfd08875e7038e08b2fbf99db2820f4e99ae8"
+ },
+ {
+ "path": "validation/root-context-production-cases-4.log.gz",
+ "bytes": 7206,
+ "sha256": "1596653ec274fcd2228f87e0d99729fba50480115d489a5c337270da80bd831f",
+ "uncompressed_sha256": "0bd1fafa342ddf437cb8e3046c7dd7dad019132dde055f14c12a10c1f457d804"
+ },
+ {
+ "path": "validation/root-context-render-2.log.gz",
+ "bytes": 15023,
+ "sha256": "05d2d40959a391753faddc52e8b5af39ec8424ce44e6ff21da15222e3eeeb8bb",
+ "uncompressed_sha256": "cc7a335d08d9497eee3ef8717c1700213d92ef3c77943f02d06dab69a29f3649"
+ },
+ {
+ "path": "validation/root-context-render-3.log.gz",
+ "bytes": 15292,
+ "sha256": "39bc18fb04b154ced6d7b3675d1a8f0c64b3136674b2951a758ea098f39f216e",
+ "uncompressed_sha256": "db454e907ffdec2f27d35dd27b16921f596d1589148dc21234e694b081c07ea8"
+ },
+ {
+ "path": "verify.py",
+ "bytes": 7367,
+ "sha256": "d53b9bfee195d3037394d89d8d4a85a40cd5c8667e43b3509f12890ece6f5857"
+ }
+ ]
+}
diff --git a/reports/data/hexrcf-root-context/diagnostics/first-narrow-layout/root-context-desktop-boundary.png b/reports/data/hexrcf-root-context/diagnostics/first-narrow-layout/root-context-desktop-boundary.png
new file mode 100644
index 0000000000..02d0b37ec4
Binary files /dev/null and b/reports/data/hexrcf-root-context/diagnostics/first-narrow-layout/root-context-desktop-boundary.png differ
diff --git a/reports/data/hexrcf-root-context/diagnostics/first-narrow-layout/root-context-desktop-value.png b/reports/data/hexrcf-root-context/diagnostics/first-narrow-layout/root-context-desktop-value.png
new file mode 100644
index 0000000000..9924a1d425
Binary files /dev/null and b/reports/data/hexrcf-root-context/diagnostics/first-narrow-layout/root-context-desktop-value.png differ
diff --git a/reports/data/hexrcf-root-context/diagnostics/first-narrow-layout/root-context-document.json b/reports/data/hexrcf-root-context/diagnostics/first-narrow-layout/root-context-document.json
new file mode 100644
index 0000000000..d81a1d10cc
--- /dev/null
+++ b/reports/data/hexrcf-root-context/diagnostics/first-narrow-layout/root-context-document.json
@@ -0,0 +1,5 @@
+{
+ "currentPacket": true,
+ "currentTransport": true,
+ "cubicSource": "https://github.com/kim-em/hex-dev/blob/main/conformance/HexRCF/RootQuoteSource.lean"
+}
\ No newline at end of file
diff --git a/reports/data/hexrcf-root-context/diagnostics/first-narrow-layout/root-context-narrow-boundary.png b/reports/data/hexrcf-root-context/diagnostics/first-narrow-layout/root-context-narrow-boundary.png
new file mode 100644
index 0000000000..dc94b11268
Binary files /dev/null and b/reports/data/hexrcf-root-context/diagnostics/first-narrow-layout/root-context-narrow-boundary.png differ
diff --git a/reports/data/hexrcf-root-context/diagnostics/first-narrow-layout/root-context-narrow-value.png b/reports/data/hexrcf-root-context/diagnostics/first-narrow-layout/root-context-narrow-value.png
new file mode 100644
index 0000000000..c0677b5bda
Binary files /dev/null and b/reports/data/hexrcf-root-context/diagnostics/first-narrow-layout/root-context-narrow-value.png differ
diff --git a/reports/data/hexrcf-root-context/diagnostics/first-narrow-layout/root-context-section-overflow.json b/reports/data/hexrcf-root-context/diagnostics/first-narrow-layout/root-context-section-overflow.json
new file mode 100644
index 0000000000..ac2ef6a1f4
--- /dev/null
+++ b/reports/data/hexrcf-root-context/diagnostics/first-narrow-layout/root-context-section-overflow.json
@@ -0,0 +1,54 @@
+[
+ {
+ "label": "desktop",
+ "width": 1440,
+ "targets": [
+ {
+ "tag": "P",
+ "text": "\n RootContext.packWith\nthen assembles an actual native root context from a closed retained parent and\nits checked descriptor. It keeps the exis",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The same decoded coefficient can be interpreted through the owner's ordinary\nreal model of the packed context, retaining its selected value a",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RootContextCases in\nexample : model.value\n Hex.RCF.RootHeaderPacket.coefficient =\n Hex.RCF.RootHeaderPacket.realRoot :=\n value_checked\n\nopen",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The packing budget covers context and signature proof construction. Model\nconstruction is checked separately; its cost is not included in tha",
+ "overflow": 0
+ }
+ ]
+ },
+ {
+ "label": "narrow",
+ "width": 390,
+ "targets": [
+ {
+ "tag": "P",
+ "text": "\n RootContext.packWith\nthen assembles an actual native root context from a closed retained parent and\nits checked descriptor. It keeps the exis",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The same decoded coefficient can be interpreted through the owner's ordinary\nreal model of the packed context, retaining its selected value a",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RootContextCases in\nexample : model.value\n Hex.RCF.RootHeaderPacket.coefficient =\n Hex.RCF.RootHeaderPacket.realRoot :=\n value_checked\n\nopen",
+ "overflow": 18
+ },
+ {
+ "tag": "P",
+ "text": "\n The packing budget covers context and signature proof construction. Model\nconstruction is checked separately; its cost is not included in tha",
+ "overflow": 0
+ }
+ ]
+ }
+]
\ No newline at end of file
diff --git a/reports/data/hexrcf-root-context/diagnostics/frozen-signature-audit-1.log.gz b/reports/data/hexrcf-root-context/diagnostics/frozen-signature-audit-1.log.gz
new file mode 100644
index 0000000000..4cc2203d41
Binary files /dev/null and b/reports/data/hexrcf-root-context/diagnostics/frozen-signature-audit-1.log.gz differ
diff --git a/reports/data/hexrcf-root-context/diagnostics/frozen-signature-audit-2.log.gz b/reports/data/hexrcf-root-context/diagnostics/frozen-signature-audit-2.log.gz
new file mode 100644
index 0000000000..3693760d28
Binary files /dev/null and b/reports/data/hexrcf-root-context/diagnostics/frozen-signature-audit-2.log.gz differ
diff --git a/reports/data/hexrcf-root-context/diagnostics/frozen-signature-core-1.log.gz b/reports/data/hexrcf-root-context/diagnostics/frozen-signature-core-1.log.gz
new file mode 100644
index 0000000000..796c29946b
Binary files /dev/null and b/reports/data/hexrcf-root-context/diagnostics/frozen-signature-core-1.log.gz differ
diff --git a/reports/data/hexrcf-root-context/diagnostics/frozen-signature-literal-constructors-1.log.gz b/reports/data/hexrcf-root-context/diagnostics/frozen-signature-literal-constructors-1.log.gz
new file mode 100644
index 0000000000..3aea0874ce
Binary files /dev/null and b/reports/data/hexrcf-root-context/diagnostics/frozen-signature-literal-constructors-1.log.gz differ
diff --git a/reports/data/hexrcf-root-context/diagnostics/frozen-signature-packet-1.log.gz b/reports/data/hexrcf-root-context/diagnostics/frozen-signature-packet-1.log.gz
new file mode 100644
index 0000000000..f7eecc4cd4
Binary files /dev/null and b/reports/data/hexrcf-root-context/diagnostics/frozen-signature-packet-1.log.gz differ
diff --git a/reports/data/hexrcf-root-context/diagnostics/frozen-signature-packet-2.log.gz b/reports/data/hexrcf-root-context/diagnostics/frozen-signature-packet-2.log.gz
new file mode 100644
index 0000000000..000c4b9247
Binary files /dev/null and b/reports/data/hexrcf-root-context/diagnostics/frozen-signature-packet-2.log.gz differ
diff --git a/reports/data/hexrcf-root-context/diagnostics/frozen-signature-packet-3.log.gz b/reports/data/hexrcf-root-context/diagnostics/frozen-signature-packet-3.log.gz
new file mode 100644
index 0000000000..ec9306fe83
Binary files /dev/null and b/reports/data/hexrcf-root-context/diagnostics/frozen-signature-packet-3.log.gz differ
diff --git a/reports/data/hexrcf-root-context/diagnostics/frozen-signature-packet-4.log.gz b/reports/data/hexrcf-root-context/diagnostics/frozen-signature-packet-4.log.gz
new file mode 100644
index 0000000000..f392505ef9
Binary files /dev/null and b/reports/data/hexrcf-root-context/diagnostics/frozen-signature-packet-4.log.gz differ
diff --git a/reports/data/hexrcf-root-context/diagnostics/frozen-signature-packet-5.log.gz b/reports/data/hexrcf-root-context/diagnostics/frozen-signature-packet-5.log.gz
new file mode 100644
index 0000000000..2d57aa3deb
Binary files /dev/null and b/reports/data/hexrcf-root-context/diagnostics/frozen-signature-packet-5.log.gz differ
diff --git a/reports/data/hexrcf-root-context/diagnostics/frozen-signature-packet-6.log.gz b/reports/data/hexrcf-root-context/diagnostics/frozen-signature-packet-6.log.gz
new file mode 100644
index 0000000000..8fcd0233d7
Binary files /dev/null and b/reports/data/hexrcf-root-context/diagnostics/frozen-signature-packet-6.log.gz differ
diff --git a/reports/data/hexrcf-root-context/diagnostics/frozen-signature-packet-7.log.gz b/reports/data/hexrcf-root-context/diagnostics/frozen-signature-packet-7.log.gz
new file mode 100644
index 0000000000..9b1a8e7566
Binary files /dev/null and b/reports/data/hexrcf-root-context/diagnostics/frozen-signature-packet-7.log.gz differ
diff --git a/reports/data/hexrcf-root-context/diagnostics/frozen-signature-projected-1.log.gz b/reports/data/hexrcf-root-context/diagnostics/frozen-signature-projected-1.log.gz
new file mode 100644
index 0000000000..2ca351514f
Binary files /dev/null and b/reports/data/hexrcf-root-context/diagnostics/frozen-signature-projected-1.log.gz differ
diff --git a/reports/data/hexrcf-root-context/diagnostics/frozen-signature-projected-2.log.gz b/reports/data/hexrcf-root-context/diagnostics/frozen-signature-projected-2.log.gz
new file mode 100644
index 0000000000..e63588c693
Binary files /dev/null and b/reports/data/hexrcf-root-context/diagnostics/frozen-signature-projected-2.log.gz differ
diff --git a/reports/data/hexrcf-root-context/diagnostics/root-context-browser-1.log.gz b/reports/data/hexrcf-root-context/diagnostics/root-context-browser-1.log.gz
new file mode 100644
index 0000000000..a65328662f
Binary files /dev/null and b/reports/data/hexrcf-root-context/diagnostics/root-context-browser-1.log.gz differ
diff --git a/reports/data/hexrcf-root-context/diagnostics/root-context-browser-2.log.gz b/reports/data/hexrcf-root-context/diagnostics/root-context-browser-2.log.gz
new file mode 100644
index 0000000000..cd393f0b67
Binary files /dev/null and b/reports/data/hexrcf-root-context/diagnostics/root-context-browser-2.log.gz differ
diff --git a/reports/data/hexrcf-root-context/diagnostics/root-context-browser-3.log.gz b/reports/data/hexrcf-root-context/diagnostics/root-context-browser-3.log.gz
new file mode 100644
index 0000000000..53eed4886e
Binary files /dev/null and b/reports/data/hexrcf-root-context/diagnostics/root-context-browser-3.log.gz differ
diff --git a/reports/data/hexrcf-root-context/diagnostics/root-context-browser-4.log.gz b/reports/data/hexrcf-root-context/diagnostics/root-context-browser-4.log.gz
new file mode 100644
index 0000000000..a098aadfe3
Binary files /dev/null and b/reports/data/hexrcf-root-context/diagnostics/root-context-browser-4.log.gz differ
diff --git a/reports/data/hexrcf-root-context/diagnostics/root-context-browser-5.log.gz b/reports/data/hexrcf-root-context/diagnostics/root-context-browser-5.log.gz
new file mode 100644
index 0000000000..b301d6713b
Binary files /dev/null and b/reports/data/hexrcf-root-context/diagnostics/root-context-browser-5.log.gz differ
diff --git a/reports/data/hexrcf-root-context/diagnostics/root-context-browser-6.log.gz b/reports/data/hexrcf-root-context/diagnostics/root-context-browser-6.log.gz
new file mode 100644
index 0000000000..315a1a2e0b
Binary files /dev/null and b/reports/data/hexrcf-root-context/diagnostics/root-context-browser-6.log.gz differ
diff --git a/reports/data/hexrcf-root-context/diagnostics/root-context-browser-7.log.gz b/reports/data/hexrcf-root-context/diagnostics/root-context-browser-7.log.gz
new file mode 100644
index 0000000000..fffbaacaa1
Binary files /dev/null and b/reports/data/hexrcf-root-context/diagnostics/root-context-browser-7.log.gz differ
diff --git a/reports/data/hexrcf-root-context/diagnostics/root-context-final-integration-1.log.gz b/reports/data/hexrcf-root-context/diagnostics/root-context-final-integration-1.log.gz
new file mode 100644
index 0000000000..87a5515621
Binary files /dev/null and b/reports/data/hexrcf-root-context/diagnostics/root-context-final-integration-1.log.gz differ
diff --git a/reports/data/hexrcf-root-context/diagnostics/root-context-final-integration-2.log.gz b/reports/data/hexrcf-root-context/diagnostics/root-context-final-integration-2.log.gz
new file mode 100644
index 0000000000..28d9e2eda1
Binary files /dev/null and b/reports/data/hexrcf-root-context/diagnostics/root-context-final-integration-2.log.gz differ
diff --git a/reports/data/hexrcf-root-context/diagnostics/root-context-final-integration-3.log.gz b/reports/data/hexrcf-root-context/diagnostics/root-context-final-integration-3.log.gz
new file mode 100644
index 0000000000..cae42497c6
Binary files /dev/null and b/reports/data/hexrcf-root-context/diagnostics/root-context-final-integration-3.log.gz differ
diff --git a/reports/data/hexrcf-root-context/diagnostics/root-context-integration-1.log.gz b/reports/data/hexrcf-root-context/diagnostics/root-context-integration-1.log.gz
new file mode 100644
index 0000000000..f4c5fbce01
Binary files /dev/null and b/reports/data/hexrcf-root-context/diagnostics/root-context-integration-1.log.gz differ
diff --git a/reports/data/hexrcf-root-context/diagnostics/root-context-manual-width-1.log.gz b/reports/data/hexrcf-root-context/diagnostics/root-context-manual-width-1.log.gz
new file mode 100644
index 0000000000..d05acbba09
Binary files /dev/null and b/reports/data/hexrcf-root-context/diagnostics/root-context-manual-width-1.log.gz differ
diff --git a/reports/data/hexrcf-root-context/diagnostics/root-context-production-audit-1.log.gz b/reports/data/hexrcf-root-context/diagnostics/root-context-production-audit-1.log.gz
new file mode 100644
index 0000000000..92ed6414c3
Binary files /dev/null and b/reports/data/hexrcf-root-context/diagnostics/root-context-production-audit-1.log.gz differ
diff --git a/reports/data/hexrcf-root-context/diagnostics/root-context-production-audit-2.log.gz b/reports/data/hexrcf-root-context/diagnostics/root-context-production-audit-2.log.gz
new file mode 100644
index 0000000000..bd51ed6efb
Binary files /dev/null and b/reports/data/hexrcf-root-context/diagnostics/root-context-production-audit-2.log.gz differ
diff --git a/reports/data/hexrcf-root-context/diagnostics/root-context-production-cases-1.log.gz b/reports/data/hexrcf-root-context/diagnostics/root-context-production-cases-1.log.gz
new file mode 100644
index 0000000000..b0812f7674
Binary files /dev/null and b/reports/data/hexrcf-root-context/diagnostics/root-context-production-cases-1.log.gz differ
diff --git a/reports/data/hexrcf-root-context/diagnostics/root-context-production-cases-2.log.gz b/reports/data/hexrcf-root-context/diagnostics/root-context-production-cases-2.log.gz
new file mode 100644
index 0000000000..c9d1d92e8a
Binary files /dev/null and b/reports/data/hexrcf-root-context/diagnostics/root-context-production-cases-2.log.gz differ
diff --git a/reports/data/hexrcf-root-context/diagnostics/root-context-production-cases-3.log.gz b/reports/data/hexrcf-root-context/diagnostics/root-context-production-cases-3.log.gz
new file mode 100644
index 0000000000..0897e56304
Binary files /dev/null and b/reports/data/hexrcf-root-context/diagnostics/root-context-production-cases-3.log.gz differ
diff --git a/reports/data/hexrcf-root-context/diagnostics/root-context-production-cases-4.log.gz b/reports/data/hexrcf-root-context/diagnostics/root-context-production-cases-4.log.gz
new file mode 100644
index 0000000000..34230fd619
Binary files /dev/null and b/reports/data/hexrcf-root-context/diagnostics/root-context-production-cases-4.log.gz differ
diff --git a/reports/data/hexrcf-root-context/diagnostics/root-context-production-core-1.log.gz b/reports/data/hexrcf-root-context/diagnostics/root-context-production-core-1.log.gz
new file mode 100644
index 0000000000..9f9f0bc75f
Binary files /dev/null and b/reports/data/hexrcf-root-context/diagnostics/root-context-production-core-1.log.gz differ
diff --git a/reports/data/hexrcf-root-context/diagnostics/root-context-render-1.log.gz b/reports/data/hexrcf-root-context/diagnostics/root-context-render-1.log.gz
new file mode 100644
index 0000000000..96812eb0fc
Binary files /dev/null and b/reports/data/hexrcf-root-context/diagnostics/root-context-render-1.log.gz differ
diff --git a/reports/data/hexrcf-root-context/diagnostics/root-context-render-2.log.gz b/reports/data/hexrcf-root-context/diagnostics/root-context-render-2.log.gz
new file mode 100644
index 0000000000..bacf0c24c6
Binary files /dev/null and b/reports/data/hexrcf-root-context/diagnostics/root-context-render-2.log.gz differ
diff --git a/reports/data/hexrcf-root-context/scripts/browser.mjs b/reports/data/hexrcf-root-context/scripts/browser.mjs
new file mode 100644
index 0000000000..93889f5832
--- /dev/null
+++ b/reports/data/hexrcf-root-context/scripts/browser.mjs
@@ -0,0 +1,72 @@
+import fs from 'node:fs';
+import {spawn} from 'node:child_process';
+const root=process.argv[2];
+if(!root) throw new Error('Pass the scratch render directory');
+const profile=root+'/root-context-profile';
+fs.mkdirSync(profile,{recursive:true});
+fs.rmSync(profile+'/DevToolsActivePort',{force:true});
+const chrome=spawn(process.env.CHROME_BIN || '/home/kim/.cache/ms-playwright/chromium-1243/chrome-linux64/chrome',[
+ '--headless=new','--no-sandbox','--disable-gpu','--allow-file-access-from-files',
+ '--remote-debugging-port=0','--remote-allow-origins=*','--user-data-dir='+profile,'about:blank'],
+ {env:{...process.env,LD_LIBRARY_PATH:fs.readFileSync(root+'/browser-lib-paths.txt','utf8').trim()},stdio:'ignore'});
+let socket;
+try {
+ const portFile=profile+'/DevToolsActivePort';
+ for(let i=0;!fs.existsSync(portFile);i++) {
+ if(i>200||chrome.exitCode!==null) throw new Error('Chrome did not expose CDP');
+ await new Promise(r=>setTimeout(r,100));
+ }
+ const port=fs.readFileSync(portFile,'utf8').split('\n')[0];
+ const tabs=await (await fetch('http://127.0.0.1:'+port+'/json')).json();
+ socket=new WebSocket(tabs.find(t=>t.type==='page').webSocketDebuggerUrl);
+ await new Promise((r,j)=>{socket.onopen=r;socket.onerror=j});
+ let sequence=0;const pending=new Map();let loaded;
+ socket.onmessage=e=>{
+ const msg=JSON.parse(e.data);
+ if(msg.id){const p=pending.get(msg.id);pending.delete(msg.id);msg.error?p.reject(msg.error):p.resolve(msg.result);}
+ if(msg.method==='Page.loadEventFired'&&loaded){loaded();loaded=undefined;}
+ };
+ const call=(method,params={})=>new Promise((resolve,reject)=>{const id=++sequence;pending.set(id,{resolve,reject});socket.send(JSON.stringify({id,method,params}));});
+ await call('Page.enable');
+ const load=new Promise(r=>loaded=r);
+ await call('Page.navigate',{url:'file://'+root+'/scalar-review-html/html-single/index.html'});
+ await load;
+ const evaluate=async expression=>{const r=await call('Runtime.evaluate',{expression,returnByValue:true});if(r.exceptionDetails)throw new Error(JSON.stringify(r.exceptionDetails));return r.result.value;};
+ const documentCheck=await evaluate(`(() => {
+ const link=Array.from(document.querySelectorAll('a')).find(a=>a.textContent==='cubic regression');
+ const normalized=document.body.textContent.replace(/\\s+/g,' ');
+ const currentPacket=normalized.includes('The same decoded coefficient can be interpreted') && normalized.includes('then assembles an actual native root context');
+ const currentTransport=normalized.includes('Model construction is checked separately');
+ const currentFrozen=normalized.includes('a checked binding of the supplied JSON to its exact signature') && normalized.includes('retains frozen numerical node and nested-moment signatures');
+ return {currentPacket,currentTransport,currentFrozen,cubicSource:link?.getAttribute('href')};
+ })()`);
+ fs.writeFileSync(root+'/root-context-document.json',JSON.stringify(documentCheck,null,2));
+ if(!documentCheck.currentPacket || !documentCheck.currentTransport || !documentCheck.currentFrozen || documentCheck.cubicSource!=='https://github.com/kim-em/hex-dev/blob/main/conformance/HexRCF/RootQuoteSource.lean')throw new Error('Rendered document has stale audit text or broken cubic source link: '+JSON.stringify(documentCheck));
+ const metadata=[]; const sectionMetadata=[];
+ for(const [label,width] of [['desktop',1440],['narrow',390]]) {
+ await call('Emulation.setDeviceMetricsOverride',{width,height:1000,deviceScaleFactor:1,mobile:false});
+ for(const [kind,phrase] of [['signature','Distinct signature subjects, wrong bindings'],['value','The same decoded coefficient can be interpreted'],['boundary','The packing budget covers context and signature proof construction']] ) {
+ const exact=await evaluate(`(() => {const p=Array.from(document.querySelectorAll('p')).find(e=>e.textContent.replace(/\\s+/g,' ').includes(${JSON.stringify(phrase)}));if(!p)throw new Error('missing paragraph');const target=['example','value','solutions','signature'].includes(${JSON.stringify(kind)})?p.nextElementSibling:p;if(['example','value','solutions','signature'].includes(${JSON.stringify(kind)})&&!target.matches('.hl.lean.block, pre, div:has(code)'))throw new Error('target is not a Lean code block');target.scrollIntoView({block:${JSON.stringify('center')}});return {text:p.textContent,viewport:innerWidth,scrollY,paragraphWidth:p.getBoundingClientRect().width,scrollWidth:p.scrollWidth,targetTag:target.tagName,targetWidth:target.getBoundingClientRect().width,targetScrollWidth:target.scrollWidth,descendantOverflow:Math.max(0,...[target,...target.querySelectorAll('*')].map(e=>e.scrollWidth-e.clientWidth)),overflowElements:[target,...target.querySelectorAll('*')].filter(e=>e.scrollWidth-e.clientWidth>1).map(e=>({tag:e.tagName,classes:e.className,width:e.clientWidth,scroll:e.scrollWidth,text:e.textContent.slice(0,100)})).slice(0,8)};})()`);
+ if(!exact)throw new Error('missing visual target '+kind);
+ await evaluate('new Promise(resolve=>requestAnimationFrame(()=>requestAnimationFrame(resolve)))');
+ const shot=await call('Page.captureScreenshot',{format:'png'});
+ fs.writeFileSync(root+'/'+'root-context-'+label+'-'+kind+'.png',Buffer.from(shot.data,'base64'));
+ metadata.push({label,kind,...exact});
+ }
+ sectionMetadata.push(await evaluate(`(() => {
+ const headings=Array.from(document.querySelectorAll('h1,h2,h3,h4,h5,h6'));
+ const start=Array.from(document.querySelectorAll('p')).find(e=>e.textContent.includes('then assembles an actual native root context'));
+ if(!start)throw new Error('missing root-context paragraph');
+ const following=headings.find(e=>start.compareDocumentPosition(e)&4);
+ if(!following)throw new Error('missing following section');
+ const targets=Array.from(document.querySelectorAll('p,.hl.lean.block')).filter(e=>(e===start || (start.compareDocumentPosition(e)&4)) && (e.compareDocumentPosition(following)&4));
+ if(targets.length<3)throw new Error('incomplete root-context section');
+ return {label:${JSON.stringify(label)},width:innerWidth,targets:targets.map(e=>({tag:e.tagName,text:e.textContent.slice(0,160),overflow:Math.max(0,...[e,...e.querySelectorAll('*')].map(n=>n.scrollWidth-n.clientWidth))}))};
+ })()`));
+ }
+ fs.writeFileSync(root+'/root-context-section-overflow.json',JSON.stringify(sectionMetadata,null,2));
+ if(sectionMetadata.some(v=>v.targets.some(e=>e.overflow>1)))throw new Error('Root/header content overflows');
+ fs.writeFileSync(root+'/root-context-inspection.json',JSON.stringify(metadata,null,2));
+ if(metadata.some(e=>e.targetScrollWidth>e.targetWidth+1 || e.descendantOverflow>1)) throw new Error('Changed content overflows; retained captures and metrics identify the affected block.');
+ process.stdout.write('Saved root-context desktop/narrow screenshots\n');
+} finally {if(socket)socket.close();chrome.kill('SIGTERM');}
diff --git a/reports/data/hexrcf-root-context/scripts/collect.py b/reports/data/hexrcf-root-context/scripts/collect.py
new file mode 100644
index 0000000000..b1e5d57ceb
--- /dev/null
+++ b/reports/data/hexrcf-root-context/scripts/collect.py
@@ -0,0 +1,119 @@
+"""Retain completed native context validation and bind it to committed sources."""
+import argparse
+import gzip
+import hashlib
+import json
+from pathlib import Path
+import re
+import subprocess
+
+parser = argparse.ArgumentParser(description=__doc__)
+parser.add_argument('--task-root', type=Path, required=True)
+parser.add_argument('--render-root', type=Path, required=True)
+parser.add_argument('--source', required=True)
+args = parser.parse_args()
+root = Path(__file__).resolve().parents[1]
+repo = root.parents[2]
+
+def git(*arguments):
+ return subprocess.check_output(['git', *arguments], cwd=repo)
+
+def sha(raw):
+ return hashlib.sha256(raw).hexdigest()
+
+def keep(source, destination):
+ raw = source.read_bytes()
+ target = root / destination
+ target.parent.mkdir(parents=True, exist_ok=True)
+ target.write_bytes(gzip.compress(raw, mtime=0) if target.suffix == '.gz' else raw)
+
+validation = {'integration': 'root-context-final-integration-4.log',
+ 'manual': 'root-context-final-integration-4.log',
+ 'controls': 'root-context-final-integration-4.log',
+ 'render': 'root-context-render-3.log', 'browser': 'root-context-browser-8.log'}
+for key, name in validation.items():
+ text = (args.task_root / name).read_text()
+ assert 'status=0/SUCCESS' in text, name
+ assert ('Saved root-context desktop/narrow screenshots' if key == 'browser'
+ else 'Build completed successfully') in text, name
+ keep(args.task_root / name, 'validation/' + name + '.gz')
+metadata_path = args.task_root / 'root-context-final-metadata-results-3.json'
+metadata = json.loads(metadata_path.read_text())
+assert all(item['exit_code'] == 0 for item in metadata)
+keep(metadata_path, 'validation/metadata.json')
+for item in metadata:
+ keep(args.task_root / item['log'], 'validation/' + item['log'] + '.gz')
+keep(args.task_root / 'root-context-memory-policy.txt', 'validation/memory-policy.txt.gz')
+keep(args.task_root / 'bin' / 'run-bounded', 'scripts/run-bounded')
+for pattern in ['root-context-production-*.log', 'root-context-integration-1.log',
+ 'root-context-browser-[1-7].log', 'root-context-render-[12].log',
+ 'root-context-final-integration-[1-3].log', 'root-context-manual-width-1.log',
+ 'frozen-signature-*.log']:
+ for source in sorted(args.task_root.glob(pattern)):
+ keep(source, 'diagnostics/' + source.name + '.gz')
+keep(args.render_root / 'ScalarReviewRender.lean', 'scripts/render-main.lean.txt')
+for source in sorted(args.render_root.glob('root-context-*.png')):
+ keep(source, 'captures/' + source.name)
+for source in sorted(args.render_root.glob('root-context-*.json')):
+ keep(source, 'captures/' + source.name)
+prior = json.loads((root.parent / 'hexrcf-root-header' / 'context.json').read_text())
+baseline = 'e92beebc18c626ad94d0e64791b23239cdfdb9bb'
+changed = git('diff', '--name-only', baseline, args.source).decode().splitlines()
+paths = set(prior['sources']) | {p for p in changed if not p.startswith('reports/')} | {
+ 'HexRCF/SPEC/hex-rcf.md', 'SPEC/real-closure-execution.md', 'libraries.yml',
+ 'adapters/HexRCF/RealCoefficients/RealModel.lean',
+ 'adapters/HexRealClosureTheory/TowerModel.lean', 'HexRealClosure/ContextData.lean'}
+source = git('show', args.source + ':conformance/HexRCF/RootContextProofs.lean').decode()
+scope = re.search(r'let allowed := #\[(.*?)\]', source, re.S)
+assert scope
+record = {
+ 'source_commit': args.source,
+ 'source_tree': git('rev-parse', args.source + '^{tree}').decode().strip(),
+ 'baseline_commit': baseline,
+ 'sources': {path: sha(git('show', args.source + ':' + path)) for path in sorted(paths)},
+ 'unchanged_guards': prior['unchanged_guards'],
+ 'validation': {key: 'validation/' + name + '.gz' for key, name in validation.items()},
+ 'body_scope': re.findall(r'`([A-Za-z0-9_.]+)', scope.group(1)),
+ 'audit_counts': [682, 68, 735],
+ 'header_counts': [674, 66, 725],
+ 'signature_counts': [23, 7, 16],
+ 'report_sha256': sha((repo / 'reports/hexrcf-root-context.md').read_bytes()),
+ 'reports': {name: sha((repo / name).read_bytes()) for name in [
+ 'reports/hexrcf-root-context.md', 'reports/hexrcf-root-header-quotation.md']},
+ 'diagnostics': {
+ 'root-context-final-integration-1.log': 'passed earlier context integration before full literal codec adoption',
+ 'root-context-final-integration-3.log': 'passed functional full build at8092a1eec0 before module docstrings and narrow example wrapping',
+ 'root-context-final-integration-2.log': 'operator-stopped superseded manual pass; completed conformance/audits retained; signal15/TERM and no completed full build, not a passing sample',
+ 'frozen-signature-packet-1.log': 'failed direct rational signature literal rfl; public signature/keys laws required',
+ 'frozen-signature-packet-2.log': 'failed rewrite through rational context alias; fixed by explicit public definition unfolding',
+ 'frozen-signature-packet-3.log': 'failed isolated fixture meta-only import and Option.none pattern; full packet projection still unrecognized',
+ 'frozen-signature-packet-4.log': 'isolated signatures passed; full packet projection unrecognized; diagnostic messages restored by transaction',
+ 'frozen-signature-packet-5.log': 'full packet projection unrecognized; diagnostic messages restored by transaction',
+ 'frozen-signature-packet-6.log': 'retained IO diagnostic identified Vector-index payload; failed exact payload match before projection reduction',
+ 'frozen-signature-packet-7.log': 'passed full frozen packet before constructor-only source assertion',
+ 'frozen-signature-audit-1.log': 'isolated audit passed; literal syntax guard rejected numeral wrappers',
+ 'frozen-signature-literal-constructors-1.log': 'isolated pinned audit passed; source guard identified OfNat/Neg wrappers',
+ 'frozen-signature-projected-1.log': 'projected integer-constructor comparison failed; source guard also found Nat numeral wrappers',
+ 'frozen-signature-projected-2.log': 'projected case passed with instance transparency; source guard found Nat numeral wrappers',
+ 'frozen-signature-audit-2.log': 'all producer guards and five packet controls passed; inventory pins required 23/7/16,674/66/725,682/68/735',
+ 'root-context-production-cases-1.log': 'failed: missing mkOfNat quotation API',
+ 'root-context-production-cases-2.log': 'failed: public export inferred private proof type in exporting scope',
+ 'root-context-production-cases-3.log': 'passed preliminary controls before unresolved-input regression',
+ 'root-context-production-audit-1.log': 'preliminary audit before exported public model',
+ 'root-context-browser-1.log': 'failed harness whitespace match',
+ 'root-context-browser-2.log': 'failed harness escaped whitespace match',
+ 'root-context-browser-3.log': 'failed harness escaped whitespace match; retained document diagnostics',
+ 'root-context-browser-4.log': 'failed harness escaped whitespace match; diagnostic snippet',
+ 'root-context-browser-5.log': 'failed harness escaped whitespace match; captured normalized body revealed literal-s substitution',
+ 'root-context-browser-6.log': 'failed: narrow code block overflow, fixed by local namespace opens'},
+ 'artifacts': []}
+for path in sorted(root.rglob('*')):
+ if not path.is_file() or path.name == 'context.json' or '__pycache__' in path.parts:
+ continue
+ raw = path.read_bytes()
+ item = {'path': path.relative_to(root).as_posix(), 'bytes': len(raw), 'sha256': sha(raw)}
+ if path.suffix == '.gz':
+ item['uncompressed_sha256'] = sha(gzip.decompress(raw))
+ record['artifacts'].append(item)
+(root / 'context.json').write_text(json.dumps(record, indent=2) + '\n')
+print(f"Retained {len(record['artifacts'])} artifacts against {len(record['sources'])} sources")
diff --git a/reports/data/hexrcf-root-context/scripts/relative-links.py b/reports/data/hexrcf-root-context/scripts/relative-links.py
new file mode 100644
index 0000000000..595f0554ed
--- /dev/null
+++ b/reports/data/hexrcf-root-context/scripts/relative-links.py
@@ -0,0 +1,20 @@
+"""Check relative filesystem destinations in the changed documentation."""
+from pathlib import Path
+import re
+
+repo = Path(__file__).resolve().parents[4]
+count = 0
+for name in ['reports/hexrcf-root-context.md',
+ 'reports/hexrcf-root-header-quotation.md',
+ 'reports/hexrcf-public-packet-quotation.md',
+ 'reports/hexrcf-sign-packet-quotation.md', 'HexRCF/README.md',
+ 'HexManual/Chapters/HexRCF/RootQuote.lean',
+ 'HexManual/Chapters/HexRCF/RootTableQuote.lean']:
+ path = repo / name
+ for match in re.finditer(r'\]\(([^)]+)\)', path.read_text()):
+ target = match.group(1).split('#')[0]
+ if not target or '://' in target:
+ continue
+ assert (path.parent / target).exists(), (name, target)
+ count += 1
+print(f'{count} relative filesystem destinations exist; URL/anchor validity is outside this check.')
diff --git a/reports/data/hexrcf-root-context/scripts/render-main.lean.txt b/reports/data/hexrcf-root-context/scripts/render-main.lean.txt
new file mode 100644
index 0000000000..cdcf13e5d6
--- /dev/null
+++ b/reports/data/hexrcf-root-context/scripts/render-main.lean.txt
@@ -0,0 +1,5 @@
+import HexManual
+import VersoManual
+#eval Verso.Genre.Manual.manualMain (%doc HexManual)
+ (options := ["--output", "scalar-review-html",
+ "--without-tex", "--with-html-single", "--without-html-multi"])
diff --git a/reports/data/hexrcf-root-context/scripts/run-bounded b/reports/data/hexrcf-root-context/scripts/run-bounded
new file mode 100644
index 0000000000..2cc8636e8a
--- /dev/null
+++ b/reports/data/hexrcf-root-context/scripts/run-bounded
@@ -0,0 +1,10 @@
+#!/usr/bin/env bash
+set -euo pipefail
+exec systemd-run --user --wait --pipe --collect \
+ --unit=hex-10358-lean-build \
+ --property=MemoryMax=32G \
+ --property=MemorySwapMax=0 \
+ --property=OOMPolicy=kill \
+ --working-directory="$PWD" \
+ --setenv="PATH=$PATH" --setenv=LEAN_NUM_THREADS=2 \
+ "$@"
diff --git a/reports/data/hexrcf-root-context/scripts/selected-admissions.py b/reports/data/hexrcf-root-context/scripts/selected-admissions.py
new file mode 100644
index 0000000000..1c0365d631
--- /dev/null
+++ b/reports/data/hexrcf-root-context/scripts/selected-admissions.py
@@ -0,0 +1,16 @@
+"""Scan the native context assembly sources using the repository admission lexer."""
+from pathlib import Path
+import sys
+
+repo = Path(__file__).resolve().parents[4]
+sys.path.insert(0, str(repo / 'scripts' / 'ci'))
+import check_named_admissions as admissions
+
+paths = ['adapters/HexRCF/RealCoefficients/RootContext.lean',
+ 'adapters/HexRCF/RealCoefficients/SignatureQuote.lean'] + [
+ f'conformance/HexRCF/{name}.lean' for name in [
+ 'RootContextConformance', 'RootContextProofs', 'FrozenSignatureConformance',
+ 'FrozenSignatureProofs', 'RootHeaderPacket', 'RootHeaderProofs']]
+for path in paths:
+ assert not admissions.find_admissions(admissions.code_only((repo / path).read_text())), path
+print(f'{len(paths)} native context assembly source files contain no admissions')
diff --git a/reports/data/hexrcf-root-context/validation/memory-policy.txt.gz b/reports/data/hexrcf-root-context/validation/memory-policy.txt.gz
new file mode 100644
index 0000000000..85fe5505af
Binary files /dev/null and b/reports/data/hexrcf-root-context/validation/memory-policy.txt.gz differ
diff --git a/reports/data/hexrcf-root-context/validation/metadata.json b/reports/data/hexrcf-root-context/validation/metadata.json
new file mode 100644
index 0000000000..2bcd17a0be
--- /dev/null
+++ b/reports/data/hexrcf-root-context/validation/metadata.json
@@ -0,0 +1,37 @@
+[
+ {
+ "name": "copyright",
+ "log": "root-context-final-metadata-copyright-3.log",
+ "exit_code": 0
+ },
+ {
+ "name": "lines",
+ "log": "root-context-final-metadata-lines-3.log",
+ "exit_code": 0
+ },
+ {
+ "name": "dag",
+ "log": "root-context-final-metadata-dag-3.log",
+ "exit_code": 0
+ },
+ {
+ "name": "admissions",
+ "log": "root-context-final-metadata-admissions-3.log",
+ "exit_code": 0
+ },
+ {
+ "name": "selected-admissions",
+ "log": "root-context-final-metadata-selected-admissions-3.log",
+ "exit_code": 0
+ },
+ {
+ "name": "relative",
+ "log": "root-context-final-metadata-relative-3.log",
+ "exit_code": 0
+ },
+ {
+ "name": "diff",
+ "log": "root-context-final-metadata-diff-3.log",
+ "exit_code": 0
+ }
+]
diff --git a/reports/data/hexrcf-root-context/validation/root-context-browser-7.log.gz b/reports/data/hexrcf-root-context/validation/root-context-browser-7.log.gz
new file mode 100644
index 0000000000..fffbaacaa1
Binary files /dev/null and b/reports/data/hexrcf-root-context/validation/root-context-browser-7.log.gz differ
diff --git a/reports/data/hexrcf-root-context/validation/root-context-browser-8.log.gz b/reports/data/hexrcf-root-context/validation/root-context-browser-8.log.gz
new file mode 100644
index 0000000000..62ee4a2107
Binary files /dev/null and b/reports/data/hexrcf-root-context/validation/root-context-browser-8.log.gz differ
diff --git a/reports/data/hexrcf-root-context/validation/root-context-final-integration-1.log.gz b/reports/data/hexrcf-root-context/validation/root-context-final-integration-1.log.gz
new file mode 100644
index 0000000000..87a5515621
Binary files /dev/null and b/reports/data/hexrcf-root-context/validation/root-context-final-integration-1.log.gz differ
diff --git a/reports/data/hexrcf-root-context/validation/root-context-final-integration-4.log.gz b/reports/data/hexrcf-root-context/validation/root-context-final-integration-4.log.gz
new file mode 100644
index 0000000000..699896a0bf
Binary files /dev/null and b/reports/data/hexrcf-root-context/validation/root-context-final-integration-4.log.gz differ
diff --git a/reports/data/hexrcf-root-context/validation/root-context-final-metadata-admissions-2.log.gz b/reports/data/hexrcf-root-context/validation/root-context-final-metadata-admissions-2.log.gz
new file mode 100644
index 0000000000..dcb3782673
Binary files /dev/null and b/reports/data/hexrcf-root-context/validation/root-context-final-metadata-admissions-2.log.gz differ
diff --git a/reports/data/hexrcf-root-context/validation/root-context-final-metadata-admissions-3.log.gz b/reports/data/hexrcf-root-context/validation/root-context-final-metadata-admissions-3.log.gz
new file mode 100644
index 0000000000..ed8526f0ea
Binary files /dev/null and b/reports/data/hexrcf-root-context/validation/root-context-final-metadata-admissions-3.log.gz differ
diff --git a/reports/data/hexrcf-root-context/validation/root-context-final-metadata-copyright-2.log.gz b/reports/data/hexrcf-root-context/validation/root-context-final-metadata-copyright-2.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-root-context/validation/root-context-final-metadata-copyright-2.log.gz differ
diff --git a/reports/data/hexrcf-root-context/validation/root-context-final-metadata-copyright-3.log.gz b/reports/data/hexrcf-root-context/validation/root-context-final-metadata-copyright-3.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-root-context/validation/root-context-final-metadata-copyright-3.log.gz differ
diff --git a/reports/data/hexrcf-root-context/validation/root-context-final-metadata-dag-2.log.gz b/reports/data/hexrcf-root-context/validation/root-context-final-metadata-dag-2.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-root-context/validation/root-context-final-metadata-dag-2.log.gz differ
diff --git a/reports/data/hexrcf-root-context/validation/root-context-final-metadata-dag-3.log.gz b/reports/data/hexrcf-root-context/validation/root-context-final-metadata-dag-3.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-root-context/validation/root-context-final-metadata-dag-3.log.gz differ
diff --git a/reports/data/hexrcf-root-context/validation/root-context-final-metadata-diff-2.log.gz b/reports/data/hexrcf-root-context/validation/root-context-final-metadata-diff-2.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-root-context/validation/root-context-final-metadata-diff-2.log.gz differ
diff --git a/reports/data/hexrcf-root-context/validation/root-context-final-metadata-diff-3.log.gz b/reports/data/hexrcf-root-context/validation/root-context-final-metadata-diff-3.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-root-context/validation/root-context-final-metadata-diff-3.log.gz differ
diff --git a/reports/data/hexrcf-root-context/validation/root-context-final-metadata-lines-2.log.gz b/reports/data/hexrcf-root-context/validation/root-context-final-metadata-lines-2.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-root-context/validation/root-context-final-metadata-lines-2.log.gz differ
diff --git a/reports/data/hexrcf-root-context/validation/root-context-final-metadata-lines-3.log.gz b/reports/data/hexrcf-root-context/validation/root-context-final-metadata-lines-3.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-root-context/validation/root-context-final-metadata-lines-3.log.gz differ
diff --git a/reports/data/hexrcf-root-context/validation/root-context-final-metadata-relative-2.log.gz b/reports/data/hexrcf-root-context/validation/root-context-final-metadata-relative-2.log.gz
new file mode 100644
index 0000000000..845030238b
Binary files /dev/null and b/reports/data/hexrcf-root-context/validation/root-context-final-metadata-relative-2.log.gz differ
diff --git a/reports/data/hexrcf-root-context/validation/root-context-final-metadata-relative-3.log.gz b/reports/data/hexrcf-root-context/validation/root-context-final-metadata-relative-3.log.gz
new file mode 100644
index 0000000000..5a7afb5576
Binary files /dev/null and b/reports/data/hexrcf-root-context/validation/root-context-final-metadata-relative-3.log.gz differ
diff --git a/reports/data/hexrcf-root-context/validation/root-context-final-metadata-selected-admissions-2.log.gz b/reports/data/hexrcf-root-context/validation/root-context-final-metadata-selected-admissions-2.log.gz
new file mode 100644
index 0000000000..62c27911a5
Binary files /dev/null and b/reports/data/hexrcf-root-context/validation/root-context-final-metadata-selected-admissions-2.log.gz differ
diff --git a/reports/data/hexrcf-root-context/validation/root-context-final-metadata-selected-admissions-3.log.gz b/reports/data/hexrcf-root-context/validation/root-context-final-metadata-selected-admissions-3.log.gz
new file mode 100644
index 0000000000..b5b117144b
Binary files /dev/null and b/reports/data/hexrcf-root-context/validation/root-context-final-metadata-selected-admissions-3.log.gz differ
diff --git a/reports/data/hexrcf-root-context/validation/root-context-manual-width-1.log.gz b/reports/data/hexrcf-root-context/validation/root-context-manual-width-1.log.gz
new file mode 100644
index 0000000000..d05acbba09
Binary files /dev/null and b/reports/data/hexrcf-root-context/validation/root-context-manual-width-1.log.gz differ
diff --git a/reports/data/hexrcf-root-context/validation/root-context-production-cases-4.log.gz b/reports/data/hexrcf-root-context/validation/root-context-production-cases-4.log.gz
new file mode 100644
index 0000000000..34230fd619
Binary files /dev/null and b/reports/data/hexrcf-root-context/validation/root-context-production-cases-4.log.gz differ
diff --git a/reports/data/hexrcf-root-context/validation/root-context-render-2.log.gz b/reports/data/hexrcf-root-context/validation/root-context-render-2.log.gz
new file mode 100644
index 0000000000..bacf0c24c6
Binary files /dev/null and b/reports/data/hexrcf-root-context/validation/root-context-render-2.log.gz differ
diff --git a/reports/data/hexrcf-root-context/validation/root-context-render-3.log.gz b/reports/data/hexrcf-root-context/validation/root-context-render-3.log.gz
new file mode 100644
index 0000000000..09e1ec5554
Binary files /dev/null and b/reports/data/hexrcf-root-context/validation/root-context-render-3.log.gz differ
diff --git a/reports/data/hexrcf-root-context/verify.py b/reports/data/hexrcf-root-context/verify.py
new file mode 100644
index 0000000000..858e876b40
--- /dev/null
+++ b/reports/data/hexrcf-root-context/verify.py
@@ -0,0 +1,115 @@
+#!/usr/bin/env python3
+"""Verify native context sources, validation, controls and body scope."""
+import argparse
+import gzip
+import hashlib
+import json
+from pathlib import Path
+import re
+import subprocess
+
+parser = argparse.ArgumentParser(description=__doc__)
+parser.add_argument('--check-head', action='store_true')
+args = parser.parse_args()
+root = Path(__file__).resolve().parent
+repo = root.parents[2]
+record = json.loads((root / 'context.json').read_text())
+
+def git(*arguments):
+ return subprocess.check_output(['git', *arguments], cwd=repo)
+
+def sha(raw):
+ return hashlib.sha256(raw).hexdigest()
+
+def log(key):
+ return gzip.decompress((root / record['validation'][key]).read_bytes()).decode()
+
+assert git('rev-parse', record['source_commit'] + '^{tree}').decode().strip() == record['source_tree']
+for path, expected in record['sources'].items():
+ assert sha(git('show', record['source_commit'] + ':' + path)) == expected, path
+ if args.check_head:
+ assert sha((repo / path).read_bytes()) == expected, path
+if args.check_head:
+ changed = git('diff', '--name-only', record['source_commit']).decode().splitlines()
+ untracked = git('ls-files', '--others', '--exclude-standard').decode().splitlines()
+ assert all(path.startswith('reports/') for path in changed + untracked), changed + untracked
+ assert sha((repo / 'reports/hexrcf-root-context.md').read_bytes()) == record['report_sha256']
+ for path, expected in record['reports'].items():
+ assert sha((repo / path).read_bytes()) == expected, path
+for path in record['unchanged_guards']:
+ assert git('show', record['baseline_commit'] + ':' + path) == git(
+ 'show', record['source_commit'] + ':' + path), path
+for item in record['artifacts']:
+ raw = (root / item['path']).read_bytes()
+ assert len(raw) == item['bytes'] and sha(raw) == item['sha256'], item['path']
+ if 'uncompressed_sha256' in item:
+ assert sha(gzip.decompress(raw)) == item['uncompressed_sha256'], item['path']
+for key in ['integration', 'manual', 'controls', 'render', 'browser']:
+ text = log(key)
+ assert 'status=0/SUCCESS' in text, key
+ assert ('Saved root-context desktop/narrow screenshots' if key == 'browser'
+ else 'Build completed successfully') in text, key
+text = log('integration')
+match = re.search(r'root context actual bodies: (\d+) theorems/(\d+) definitions; '
+ r'nonempty traces=(\d+)', text)
+assert match and list(map(int, match.groups())) == record['audit_counts']
+for prefix, key in [('root/header packet', 'header_counts'), ('frozen signature', 'signature_counts')]:
+ match = re.search(re.escape(prefix) + r' actual bodies: (\d+) theorems/(\d+) definitions; '
+ r'nonempty traces=(\d+)', text)
+ assert match and list(map(int, match.groups())) == record[key]
+assert 'public scalar graph retains frozen numerical node and nested-moment signatures' in text
+assert 'ordinary module sign packet proofNodes=904273' in text
+for name, nodes in [('readFirst', 254), ('readSecond', 254), ('readProjected', 427)]:
+ assert f'frozen signature exact subject and exact/one-below budgets: Hex.RCF.FrozenSignature.{name}; nodes={nodes}' in text
+for name, binding in [('first', 'second_literal'), ('second', 'first_literal')]:
+ assert f'wrong frozen signature binding/subject rejected and caller restored: Hex.RCF.FrozenSignature.{name}/Hex.RCF.FrozenSignature.{binding}' in text
+assert 'different frozen signature payload declines; a later exact quotation succeeds' in text
+packet = git('show', record['source_commit'] + ':conformance/HexRCF/RootHeaderPacket.lean').decode()
+assert 'evidence.getUsedConstants.all constructors.contains' in packet
+assert 'mkRawNatLit' in packet and 'graphExpr' not in packet
+signature = git('show', record['source_commit'] + ':conformance/HexRCF/FrozenSignatureProofs.lean').decode()
+assert 'theorems == 23 && definitions == 7 && traces == 16' in signature
+assert '#[``Tower.rootData,``Dag.encode]' in signature
+assert 'dependencies.contains ``Tower.Signature.codec_literal' in signature
+for label in ['sign', 'polynomial', 'empty graph', 'node context', 'moment context']:
+ assert 'public packet compiled rejection/quotation refusal/caller restoration: ' + label in text
+for message in [
+ 'native context packing exact/one-below budget checked; proofNodes=2653',
+ 'packed ordinary-real model retains the exact selected coefficient value and positive sign',
+ 'wrong native parent rejects and restores caller assignments and declarations',
+ 'unresolved native root rejects without assigning caller metavariables']:
+ assert message in text and message in log('controls'), message
+assert 'Built HexManual' in log('manual')
+source = git('show', record['source_commit'] + ':conformance/HexRCF/RootContextProofs.lean').decode()
+scope = re.search(r'let allowed := #\[(.*?)\]', source, re.S)
+assert scope and re.findall(r'`([A-Za-z0-9_.]+)', scope.group(1)) == record['body_scope']
+assert '#[``Tower.rootData,``Dag.encode]' in source
+for legacy in ['root_raw', 'subject_read', 'nativeRoot_read']:
+ assert '``Hex.RCF.RootQuoteTests.' + legacy in source
+cases = git('show', record['source_commit'] + ':conformance/HexRCF/RootContextConformance.lean').decode()
+assert 'result.usage == (← get).budget.consumed' in cases
+assert 'RealModel.build' in cases and 'Tower.Model.root_value' in cases
+assert 'addNoncomputable' in cases and 'compileDecl declaration' in cases
+assert '2653' not in cases, 'Budget must be derived, not hard-coded'
+manual = git('show', record['source_commit'] + ':HexManual/Chapters/HexRCF/RootQuote.lean').decode()
+assert 'Model\nconstruction is checked separately' in manual
+metadata = json.loads((root / 'validation/metadata.json').read_text())
+assert {item['name'] for item in metadata} == {
+ 'copyright', 'lines', 'dag', 'admissions', 'selected-admissions', 'relative', 'diff'}
+assert all(item['exit_code'] == 0 for item in metadata)
+memory = gzip.decompress((root / 'validation/memory-policy.txt.gz').read_bytes()).decode()
+assert all(value in memory for value in ['ActiveState=active', 'MemoryMax=34359738368',
+ 'MemorySwapMax=0', 'OOMPolicy=kill'])
+inspection = json.loads((root / 'captures/root-context-inspection.json').read_text())
+assert {(item['label'], item['kind']) for item in inspection} == {
+ ('desktop', 'signature'), ('desktop', 'value'), ('desktop', 'boundary'),
+ ('narrow', 'signature'), ('narrow', 'value'), ('narrow', 'boundary')}
+assert all(item['descendantOverflow'] <= 1 for item in inspection)
+section = json.loads((root / 'captures/root-context-section-overflow.json').read_text())
+assert {row['width'] for row in section} == {1440, 390}
+assert all(target['overflow'] <= 1 for row in section for target in row['targets'])
+document = json.loads((root / 'captures/root-context-document.json').read_text())
+assert document['currentPacket'] and document['currentTransport'] and document['currentFrozen']
+assert document['cubicSource'] == 'https://github.com/kim-em/hex-dev/blob/main/conformance/HexRCF/RootQuoteSource.lean'
+print(f"Verified {len(record['artifacts'])} artifacts/{len(record['sources'])} sources, "
+ f"682/68/735 fresh bodies, 674/66/725 header bodies and 23/7/16 signature bodies, packing budgets/restoration, five packet controls and six captures")
diff --git a/reports/data/hexrcf-root-header/README.md b/reports/data/hexrcf-root-header/README.md
new file mode 100644
index 0000000000..468fda62a1
--- /dev/null
+++ b/reports/data/hexrcf-root-header/README.md
@@ -0,0 +1,12 @@
+This record binds the root/header implementation to source commit
+`956cd622c7e67fac0de51aea73cbe1b14604d757`. Run
+`python3 reports/data/hexrcf-root-header/verify.py --check-head` from the
+repository root. Previous quotation records retain their own source revisions.
+
+Final validation includes the affected compatibility and complete manual build,
+a direct full-budget result assertion, HTML rendering, four inspected 1440/390px
+captures, metadata and admission scans. The scoped fresh audit checks actual
+imported private bodies and their complete transitive axiom closure with the
+unchanged producer guard. Failed and preliminary attempts remain separately
+classified. Timing and memory are local validation observations with reused
+dependencies, without scaling, speedup or physical-sharing claims.
diff --git a/reports/data/hexrcf-root-header/captures/root-header-desktop-boundary.png b/reports/data/hexrcf-root-header/captures/root-header-desktop-boundary.png
new file mode 100644
index 0000000000..14fec4fade
Binary files /dev/null and b/reports/data/hexrcf-root-header/captures/root-header-desktop-boundary.png differ
diff --git a/reports/data/hexrcf-root-header/captures/root-header-desktop-value.png b/reports/data/hexrcf-root-header/captures/root-header-desktop-value.png
new file mode 100644
index 0000000000..6c1eb6615a
Binary files /dev/null and b/reports/data/hexrcf-root-header/captures/root-header-desktop-value.png differ
diff --git a/reports/data/hexrcf-root-header/captures/root-header-document.json b/reports/data/hexrcf-root-header/captures/root-header-document.json
new file mode 100644
index 0000000000..d81a1d10cc
--- /dev/null
+++ b/reports/data/hexrcf-root-header/captures/root-header-document.json
@@ -0,0 +1,5 @@
+{
+ "currentPacket": true,
+ "currentTransport": true,
+ "cubicSource": "https://github.com/kim-em/hex-dev/blob/main/conformance/HexRCF/RootQuoteSource.lean"
+}
\ No newline at end of file
diff --git a/reports/data/hexrcf-root-header/captures/root-header-inspection.json b/reports/data/hexrcf-root-header/captures/root-header-inspection.json
new file mode 100644
index 0000000000..295dce60e9
--- /dev/null
+++ b/reports/data/hexrcf-root-header/captures/root-header-inspection.json
@@ -0,0 +1,58 @@
+[
+ {
+ "label": "desktop",
+ "kind": "value",
+ "text": "\n The public regression constructs a new root and context from that result,\nquotes the sign packet for X, and decodes a coefficient using its fact. The\ncoefficient denotes the newly reconstructed root and is positive:",
+ "viewport": 1440,
+ "scrollY": 287897,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "CODE",
+ "targetWidth": 740,
+ "targetScrollWidth": 740,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "desktop",
+ "kind": "boundary",
+ "text": "\n The default quotation rules recognize Signature.codec.decode applied to the\ncanonical encoding of its actual signature argument, using the existing public\nroundtrip law. This handles distinct signature subjects without a fixture\ncallback. It does not connect a separately frozen numerical signature to that\nencoding. The latter still requires the owner's public literal bridge. These\nhelpers consume supplied readers and histories; they do not discover an\narbitrary real source's selected embedding or install the general tactic.\n",
+ "viewport": 1440,
+ "scrollY": 288158,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "P",
+ "targetWidth": 752,
+ "targetScrollWidth": 752,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "value",
+ "text": "\n The public regression constructs a new root and context from that result,\nquotes the sign packet for X, and decodes a coefficient using its fact. The\ncoefficient denotes the newly reconstructed root and is positive:",
+ "viewport": 390,
+ "scrollY": 464651,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "CODE",
+ "targetWidth": 331,
+ "targetScrollWidth": 331,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "boundary",
+ "text": "\n The default quotation rules recognize Signature.codec.decode applied to the\ncanonical encoding of its actual signature argument, using the existing public\nroundtrip law. This handles distinct signature subjects without a fixture\ncallback. It does not connect a separately frozen numerical signature to that\nencoding. The latter still requires the owner's public literal bridge. These\nhelpers consume supplied readers and histories; they do not discover an\narbitrary real source's selected embedding or install the general tactic.\n",
+ "viewport": 390,
+ "scrollY": 465120,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "P",
+ "targetWidth": 343,
+ "targetScrollWidth": 343,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ }
+]
\ No newline at end of file
diff --git a/reports/data/hexrcf-root-header/captures/root-header-narrow-boundary.png b/reports/data/hexrcf-root-header/captures/root-header-narrow-boundary.png
new file mode 100644
index 0000000000..2b286039c6
Binary files /dev/null and b/reports/data/hexrcf-root-header/captures/root-header-narrow-boundary.png differ
diff --git a/reports/data/hexrcf-root-header/captures/root-header-narrow-value.png b/reports/data/hexrcf-root-header/captures/root-header-narrow-value.png
new file mode 100644
index 0000000000..6ea4e717a3
Binary files /dev/null and b/reports/data/hexrcf-root-header/captures/root-header-narrow-value.png differ
diff --git a/reports/data/hexrcf-root-header/captures/root-header-section-overflow.json b/reports/data/hexrcf-root-header/captures/root-header-section-overflow.json
new file mode 100644
index 0000000000..676d0989c8
--- /dev/null
+++ b/reports/data/hexrcf-root-header/captures/root-header-section-overflow.json
@@ -0,0 +1,64 @@
+[
+ {
+ "label": "desktop",
+ "width": 1440,
+ "targets": [
+ {
+ "tag": "P",
+ "text": "\n RootHeader.quoteWith\naccepts the complete original RootReplay.readDescriptor application. It quotes\nthat reader, obtains the independently pa",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The public regression constructs a new root and context from that result,\nquotes the sign packet for X, and decodes a coefficient using its f",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RootHeaderPacket in\nexample : coefficientReal = realRoot :=\n coefficient_value\n\nopen Hex.RCF.RootHeaderPacket in\nexample : 0 < coefficientReal :=\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The fresh importing audit includes the generated binding, packet reader,\ncoefficient decoding and real-value proofs. It rejects dependencies ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The default quotation rules recognize Signature.codec.decode applied to the\ncanonical encoding of its actual signature argument, using the ex",
+ "overflow": 0
+ }
+ ]
+ },
+ {
+ "label": "narrow",
+ "width": 390,
+ "targets": [
+ {
+ "tag": "P",
+ "text": "\n RootHeader.quoteWith\naccepts the complete original RootReplay.readDescriptor application. It quotes\nthat reader, obtains the independently pa",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The public regression constructs a new root and context from that result,\nquotes the sign packet for X, and decodes a coefficient using its f",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RootHeaderPacket in\nexample : coefficientReal = realRoot :=\n coefficient_value\n\nopen Hex.RCF.RootHeaderPacket in\nexample : 0 < coefficientReal :=\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The fresh importing audit includes the generated binding, packet reader,\ncoefficient decoding and real-value proofs. It rejects dependencies ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The default quotation rules recognize Signature.codec.decode applied to the\ncanonical encoding of its actual signature argument, using the ex",
+ "overflow": 0
+ }
+ ]
+ }
+]
\ No newline at end of file
diff --git a/reports/data/hexrcf-root-header/context.json b/reports/data/hexrcf-root-header/context.json
new file mode 100644
index 0000000000..4b7cdd097d
--- /dev/null
+++ b/reports/data/hexrcf-root-header/context.json
@@ -0,0 +1,358 @@
+{
+ "source_commit": "956cd622c7e67fac0de51aea73cbe1b14604d757",
+ "source_tree": "ea9794a1d734973313fd52a21038eab9ad8d1f23",
+ "baseline_commit": "3b65efefa81e76a9f14db586db244b1c42d66fec",
+ "sources": {
+ ".github/workflows/ci.yml": "bf3ef0c4e00ef2397ef5857a629a391e24252b864c093198b08775b6977c563d",
+ "AGENTS.md": "4e0a48cf49a61e56ed84c8b28e232b5bfad29f2da20571377692be6e1c316f30",
+ "HexManual/Chapters/HexRCF/RootQuote.lean": "57b740d504334ae2343ae6b8cc8f94f0f4b7af50e3a7dcba9ff12abdfd04bf5b",
+ "HexManual/Chapters/HexRCF/RootTableQuote.lean": "88c50284803d69ccdceee1f0c7d892f19143b1dca60a6f7f502303da07d079cc",
+ "HexRCF/README.md": "57a2a3df051d085064599f589594c530876ac1b4a870d71d04d3614947dddb7f",
+ "HexRCF/SPEC/hex-rcf.md": "df8c6bb2435a2794faa36bc77e41f4c936f06ae149f29c3e68fe0d79f4ebfafb",
+ "HexRCF/Tactic.lean": "09d895ba1dd2c1af0bfffca197494f2614380ded268ff13e4e0b02fea22b9224",
+ "HexRealClosure/Algebraic.lean": "d05f9fb72fe9544ae9ddc685dff17080f876aa4c99c70e8992d511e011f6a454",
+ "HexRealClosure/SignCodec.lean": "7126323c97b77204386795a0f252f1babfd0ed7f3dba7ee3927a99b9d5c1852a",
+ "HexRealClosure/SignFacts.lean": "9c22837e93e6f50cc96310163e352ac608fbcfbd6275edab33751da2fd84f47c",
+ "HexRealClosure/TowerContext.lean": "6ecb83b344c783d2a85ad1c253aeba6167e42a5475950ab8a88cbb0cbb16892f",
+ "PLAN.md": "e94a60324486913b4a04650edd617c4ff8bef469dc7fd311adea8407c6662ea0",
+ "SPEC/real-closure-execution.md": "bc0948ad7de6969baaed89c0b3052cb0d21d64d634f8a336f9a7dde446b057f5",
+ "adapters/HexRCF/RealCoefficients.lean": "b328fb53400915ba67eaf3c5c0c0c8001f9e0634348bba15f042c3505e48d9d7",
+ "adapters/HexRCF/RealCoefficients/RationalQuote.lean": "675e2ba065b696f257adefc07fe30ddb0190f321d86005444579ea5a0744bdf5",
+ "adapters/HexRCF/RealCoefficients/Reify.lean": "ea8474b9e253f93a1583064ca99ec0bf376dadf5457fd60b57e9e18460cf449c",
+ "adapters/HexRCF/RealCoefficients/RootHeader.lean": "5be7db71db01bc467c1ae7bd4caa09a92f0f9359ca06af1d1085d4d72fd888a6",
+ "adapters/HexRCF/RealCoefficients/RootQuote.lean": "5ae6502bf1ef3c0569328757667d10d00c95522f6cf888d8f2909704694502d5",
+ "adapters/HexRCF/RealCoefficients/ScalarPacket.lean": "9ae62bea85dab43ec01329defa9f788af4843e74b24f40f6c6f1b28adaadc6bf",
+ "adapters/HexRCF/RealCoefficients/ScalarQuote.lean": "fee2617a998f29d05c8959b484060ac1d719359c6d851a8ff6699fa9cb370acc",
+ "adapters/HexRealClosureTheory/Algebraic.lean": "2495153acbe4e468521913a2f5d6569831cd05f5ee48d5ddb26fc31a43438c7e",
+ "adapters/HexRealClosureTheory/SignFacts.lean": "c2b8cf96de0cccc2c0c3cbe83f0afd7c40ab9736b75f377ec5bfedc0907f34e3",
+ "conformance/HexRCF/DependentQuote.lean": "519876284605f5077abd4dbeddd5ca9aa0921460ba8f2c7dbf237e4b184c92c4",
+ "conformance/HexRCF/DependentQuoteData.lean": "48bfdfa8e62d87233a96c525d5157b57f831964a521674dc33ea094ceb51be0a",
+ "conformance/HexRCF/DependentQuoteProofs.lean": "b0d510908b8f64e31236f5d06812e89121b48a3d5375ad3d63915a9b5853c297",
+ "conformance/HexRCF/DependentScalarProofs.lean": "9e8da19d71e1496babd31ecb13430d74abb5f383738d47cbc1bc066b27902cfe",
+ "conformance/HexRCF/DependentScalarQuote.lean": "e20dd7346c337dd17126c394965f268e568706730f475844d7c0907051224933",
+ "conformance/HexRCF/PublicSignPacket.lean": "e4363bd8f3d28617540381e4d1a828c8b00a1937f892ddff39a14985c4143d33",
+ "conformance/HexRCF/PublicSignPacketControls.lean": "1f074d9ff3120aacda5b9d2c35697dfeb6495097e7e127b14ae710583aeee9a5",
+ "conformance/HexRCF/PublicSignPacketProofs.lean": "383f03af3b1d46580f218002118c0d8f4137e8f44ac86bb4e4914fe543362fea",
+ "conformance/HexRCF/PublicSignPacketValues.lean": "72705dba30f04f986188903fb49b983c6f0a664895116fca8bd8b6b46b6517e5",
+ "conformance/HexRCF/RationalQuoteConformance.lean": "3114038aa7989ad9335749008e80c3512e44960abdb7b4795a7604c5fd1b7a0d",
+ "conformance/HexRCF/RootHeaderBudget.lean": "b9ba61eec9db5ee0698867a05f1129bf826afb60da3b8d90318b86dc0d9a2711",
+ "conformance/HexRCF/RootHeaderControls.lean": "488ef2e0d22670589e8d1a3d18ac04dfd4ee284657d143f46bb18e91fb07663a",
+ "conformance/HexRCF/RootHeaderPacket.lean": "8bb5b666f3b5e0dd93744c34276ad2c80cac2f3051077ac119c4071b3fd0bffa",
+ "conformance/HexRCF/RootHeaderProofs.lean": "271c26c7da9645194273f76cba13aa39d1f733b84e1450d48fe340c2bd07f178",
+ "conformance/HexRCF/RootHeaderValues.lean": "de9a8fc7c2e9371cbd3324eb700180411e49865dbc6535a74d2c882f74e38e13",
+ "conformance/HexRCF/RootQuoteCases.lean": "602d15ef501e969183bffbda7fb3c0f00a174ba5c2dbc35370ee7fce896944dd",
+ "conformance/HexRCF/RootQuoteConformance.lean": "9924a4dcd57e617cda6c028ec800fb8e2c1591f31a8f80054231d04f6bfb6d68",
+ "conformance/HexRCF/RootQuoteData.lean": "faa259d129d5c65a063c7143e45d5d9d19573ed49862aa5ecb3978ff389cb514",
+ "conformance/HexRCF/RootQuoteSource.lean": "aca1654efc1a452aca8ef573bb8ea3a435a4e1e18a4dca854d9bcc8e350d511d",
+ "conformance/HexRCF/RootTableQuote/Conformance.lean": "c19a69b2c5bb9238ae0322e9df9f48fcad3856bb2e2e5f43ef8bf28cc049b81f",
+ "conformance/HexRCF/SelectedRoot/KernelCheck.lean": "12e7e2e3f4667a76dc89c4b36796bff177f3c187b81adc5eb5e049ff1ce6669d",
+ "conformance/HexRCF/SignPacketProofs.lean": "1eecbb48e9fb4a1582378699361f8c704f5a76c084a5ac6b37881cffb20678b5",
+ "conformance/HexRCF/SignPacketQuote.lean": "726aee0639abee0735c84bc1fe73dab5a4fe4058869f70b23c2ce7c4facd0772",
+ "conformance/HexRCF/SignatureQuoteConformance.lean": "5d32a4cbf783e0d43dff27b2e519624ef6d9381ac177daa16ffc78930de37f6b",
+ "experiments/KernelReplay/AxiomClosure.lean": "f49377265f05f52b633b10a59255a03731e08d022cc54763de9851c5b5325034",
+ "lake-manifest.json": "fd2dc4df30cd44e4d30568489d616e7bcc8a78747500139134be56f35ae746a4",
+ "lakefile.lean": "7edf3bee4bdcaf2035e32c1cd9abf7b32d40ea213245b5c562f5f7bc94c577d7",
+ "lean-toolchain": "bc84812c94489d1e3e191baa1dc10d5eb684382d7fe9d2a5ab085e72c1c67e47",
+ "libraries.yml": "14e3dd1c01bb0c369b2216e2733378d61172040fd9f69dd0354d4e1267d9c5c1"
+ },
+ "unchanged_guards": [
+ "conformance/HexRCF/SelectedRoot/KernelCheck.lean",
+ "experiments/KernelReplay/AxiomClosure.lean",
+ "AGENTS.md",
+ "PLAN.md",
+ ".github/workflows/ci.yml"
+ ],
+ "validation": {
+ "integration": "validation/root-header-integration-3.log.gz",
+ "budget": "validation/root-header-budget-usage-1.log.gz",
+ "render": "validation/root-header-render-1.log.gz",
+ "browser": "validation/root-header-browser-1.log.gz"
+ },
+ "body_scope": [
+ "HexRCF.RootHeaderPacket",
+ "HexRCF.RootHeaderValues",
+ "HexRCF.RealCoefficients.RootHeader",
+ "HexRCF.RealCoefficients.RootQuote",
+ "HexRCF.RootQuoteCases",
+ "HexRCF.RootQuoteSource",
+ "HexRCF.RootQuoteData",
+ "HexRCF.RealCoefficients.ScalarPacket"
+ ],
+ "audit_counts": [
+ 665,
+ 65,
+ 720
+ ],
+ "report_sha256": "1605718bd96f8668ac2bbca7878018b1cf4fc798160b26c6911e982d29d27f14",
+ "diagnostics": {
+ "root-header-production-core-1.log": "failed: targets not registered in Lake yet",
+ "root-header-production-public-1.log": "passed preliminary source before final inventory and budget assertions",
+ "root-header-integration-1.log": "passed preliminary compatibility before final budget result fix",
+ "root-header-integration-2.log": "passed with pinned inventory; superseded by full final validation",
+ "header-packet-assembly-1.log": "failed prototype: doc comment attached to run_meta",
+ "header-packet-assembly-2.log": "failed prototype: audit syntax error",
+ "header-packet-controls-1.log": "packet controls passed, but enclosing build failed header-control namespace lookup"
+ },
+ "artifacts": [
+ {
+ "path": "README.md",
+ "bytes": 802,
+ "sha256": "57ec8c12601f96701cf78e1cffaf7e955d551e5845179c2b48b2f6674e185570"
+ },
+ {
+ "path": "captures/root-header-desktop-boundary.png",
+ "bytes": 268616,
+ "sha256": "91483ea2b008e1bc46ae59ee6f58107a4edc82285156f20ad2c69dfd605592c2"
+ },
+ {
+ "path": "captures/root-header-desktop-value.png",
+ "bytes": 279601,
+ "sha256": "770940298526e7f03098c806f7fa56d4ede4cad8fdb9a216111715efac5ab278"
+ },
+ {
+ "path": "captures/root-header-document.json",
+ "bytes": 159,
+ "sha256": "043e3425ad70a22a5a14e9d6239081b4272a4bffbacb57351653cd0f9080d789"
+ },
+ {
+ "path": "captures/root-header-inspection.json",
+ "bytes": 2790,
+ "sha256": "e937505c6e212e640ce23bfe6219bd3c3e94d48302e308aaf60608cf332ed64f"
+ },
+ {
+ "path": "captures/root-header-narrow-boundary.png",
+ "bytes": 89233,
+ "sha256": "a669c881ff0cd33a16101a38d1fd16ba0ecd28f443fee90cb2314f9e5965c898"
+ },
+ {
+ "path": "captures/root-header-narrow-value.png",
+ "bytes": 93308,
+ "sha256": "cf4a4ff8ecc62152842578fe36a1a0d7cee76539b0f66c79506c02df8064fe77"
+ },
+ {
+ "path": "captures/root-header-section-overflow.json",
+ "bytes": 2574,
+ "sha256": "c5483f4e06a2f536d5e6f04aeceb7a8b33fc6bf98864a08aeb95f61195be2dd0"
+ },
+ {
+ "path": "diagnostics/HeaderControls.lean.txt.gz",
+ "bytes": 1261,
+ "sha256": "fde78e73d29156f17175aced90e77ae03a9f49b79feec8621de647edb3833712",
+ "uncompressed_sha256": "bb937d3ff2767f9cec9909c348663ce9021e3b2fae5c6e074cc680d930de3c18"
+ },
+ {
+ "path": "diagnostics/HeaderPacket.lean.txt.gz",
+ "bytes": 2810,
+ "sha256": "3b2cd7fad93f163713338043bbe7fccfc1967b5b83ead9469167baed49a6bf4f",
+ "uncompressed_sha256": "dd32478e25a433df2a9ab12e15fd7bc48fb3bc540923a2c4e0bddc45e1812bd3"
+ },
+ {
+ "path": "diagnostics/HeaderPacketAudit.lean.txt.gz",
+ "bytes": 1422,
+ "sha256": "b8719684b4ee22f4a79d1ea3df6a0a9382abecebbeac1e69f542ae82334878a6",
+ "uncompressed_sha256": "b8582acf66af25551acfc3599cb98ddd4fc431901b4289bdd80682283d0f2d77"
+ },
+ {
+ "path": "diagnostics/HeaderPacketValues.lean.txt.gz",
+ "bytes": 1672,
+ "sha256": "7affc1d9fc0bd5535d339c7f341a28f579cd7ab72470507fda9ec842f0eae301",
+ "uncompressed_sha256": "aac30edb98dd5c0c7b1f43883ee56adba4972e266da5bc6a7f0f8bc8d036e556"
+ },
+ {
+ "path": "diagnostics/HeaderQuote.lean.txt.gz",
+ "bytes": 935,
+ "sha256": "443ca50a7b94d3c4f992794595e7c7c4f58300f0198b1b4143d90b9f605559e7",
+ "uncompressed_sha256": "c436b7a955be53699a4c3fee9b2ce09a0230ba390541df4037e4c534ce9d0cbb"
+ },
+ {
+ "path": "diagnostics/SignatureRoundtrip.lean.txt.gz",
+ "bytes": 1201,
+ "sha256": "b81f9a4ba7f0420158d710cb51aa8f2dc716106e659fcdd0b52f85399a3a0988",
+ "uncompressed_sha256": "c3ffc3ce59cfddd1ab18e95afdd36381415211c5b1b227db4835d94766c8d299"
+ },
+ {
+ "path": "diagnostics/header-controls-helper-order-1.log.gz",
+ "bytes": 6752,
+ "sha256": "424dbaddb23cc3e12f48bf36ddb77a38ef23f2476fdacd02d6b520638db32ce6",
+ "uncompressed_sha256": "eadb42c9f1335d1e19877413503a07ea844c42b890576e94e5376cfea71fc239"
+ },
+ {
+ "path": "diagnostics/header-current-core-1.log.gz",
+ "bytes": 5352,
+ "sha256": "9a6620f8ca817dd9e7a9a0bf88758a3d71379c2edf83f5d56357dcee2e6951a0",
+ "uncompressed_sha256": "0607557d5141e699296fe705a4d93d5542f6978e9116ddcd76483ed7d9880eb2"
+ },
+ {
+ "path": "diagnostics/header-packet-assembly-1.log.gz",
+ "bytes": 6954,
+ "sha256": "bf16b0f318865d7befff503ef55c81be79e7d7e16560f31a2d5ede1129f7086d",
+ "uncompressed_sha256": "208b1b6e1fac60af89f91e4d829fb38b5a28c4a969cd0bcdef35103c89e30c2f"
+ },
+ {
+ "path": "diagnostics/header-packet-assembly-2.log.gz",
+ "bytes": 7401,
+ "sha256": "c930b837f091ac2e6863d2714b9a23b04fd0f6ddeeca0f35d50edf778ab09f78",
+ "uncompressed_sha256": "98cd2f67441b07b8b83d5bc70b1900c626c7b7a80758e7fc2809423268586a74"
+ },
+ {
+ "path": "diagnostics/header-packet-assembly-3.log.gz",
+ "bytes": 7086,
+ "sha256": "c2536bc8d10873c054b8853731f0ca6f6bb1a7c54ba1368ad63eca559a94a753",
+ "uncompressed_sha256": "65944fdea7e4c4e16675edcdde64ce1f796fd4f725fb1319c060afd26accf389"
+ },
+ {
+ "path": "diagnostics/header-packet-controls-1.log.gz",
+ "bytes": 7768,
+ "sha256": "6ab5fda3d3a9a97c29db42df89cfd5ff58e8183a3f1396bae183be172415d10a",
+ "uncompressed_sha256": "60b1b7ad7942d23f8ec8a09e912d476fc0007f2dd984be8ca9055fcb77184744"
+ },
+ {
+ "path": "diagnostics/header-packet-values-1.log.gz",
+ "bytes": 7131,
+ "sha256": "beca10b4670c8c6b13cbd5ae43ce4d7b54f180fcb0c304142dbb75308b05df3d",
+ "uncompressed_sha256": "ca9827514417a65164e807419f0205db5671a10d6cbac984c16a7041329e10f2"
+ },
+ {
+ "path": "diagnostics/root-header-integration-1.log.gz",
+ "bytes": 17587,
+ "sha256": "06e5b9fffee86fca72383efd8901ac61987bbce91b6cfd16fc8df86bc168d407",
+ "uncompressed_sha256": "ad2ebc66f4a9a367b54ad46c14559938ceb020ad0769b8a264e2628a72983162"
+ },
+ {
+ "path": "diagnostics/root-header-integration-2.log.gz",
+ "bytes": 17470,
+ "sha256": "e36f04f8f431814e8697f28adbe16f955cdacabd4b6af534e9f1c402149169e8",
+ "uncompressed_sha256": "9350a25ee68fefe66b59acb49633b0ff80532ce05a956548b5b4878509285ff1"
+ },
+ {
+ "path": "diagnostics/root-header-production-core-1.log.gz",
+ "bytes": 400,
+ "sha256": "c9f9dc84ba39ebfebb96fb2326ed573d75ffa9287c8f64f78def747872a6888c",
+ "uncompressed_sha256": "b81de30ff53665507008adc25cf8cef66dbd2e76ee1ed791a23db3ba1203180e"
+ },
+ {
+ "path": "diagnostics/root-header-production-core-2.log.gz",
+ "bytes": 5269,
+ "sha256": "5826e57ab2d71da37553c956e4cf79a0b9b56bf8f80357eff199f14e50393ca9",
+ "uncompressed_sha256": "3cdfbc17f98bf71e42989ed2234b707eeae5b1cc7be6c287b3508e4c65f74a07"
+ },
+ {
+ "path": "diagnostics/root-header-production-public-1.log.gz",
+ "bytes": 7380,
+ "sha256": "f77a3d7ea261d06ec495c6c2be6912da82a42f334aeda6492808fdfb5b29bbff",
+ "uncompressed_sha256": "23a3cb6fbdc6cee7cd0a8be630015a8f149a4c9e28c36b5eaa5433a3fb9b3e41"
+ },
+ {
+ "path": "scripts/browser.mjs",
+ "bytes": 6504,
+ "sha256": "c7e07b4d7d85545267cc7237c22e94925ccd3fe76fff24927362f1cb329d4d45"
+ },
+ {
+ "path": "scripts/collect.py",
+ "bytes": 5233,
+ "sha256": "0431ef831c0ad0485179b383db552c3c6b98c33f8e4d7faaf162f597c4962845"
+ },
+ {
+ "path": "scripts/relative-links.py",
+ "bytes": 855,
+ "sha256": "8ec3a73f36c4545070d8082de9aa33b9c9f178b1c848d9e93646cb73a3454402"
+ },
+ {
+ "path": "scripts/render-main.lean.txt",
+ "bytes": 206,
+ "sha256": "664d37e07421cd5f5ee5df6e4fdb3f18fb67b1e58e3688267ff6ca6909180ef3"
+ },
+ {
+ "path": "scripts/run-bounded",
+ "bytes": 302,
+ "sha256": "63bc5f97337e6b039bb3a9b1ba2a500be96fd1c2a2f73b43dae284aa9b18dda8"
+ },
+ {
+ "path": "scripts/selected-admissions.py",
+ "bytes": 778,
+ "sha256": "1747753721adaea90981fe38da2cb76e8effdc16aed3a35d349ce6f5ee8fb7b1"
+ },
+ {
+ "path": "validation/memory-policy.txt.gz",
+ "bytes": 81,
+ "sha256": "326b0d6e697c40159fe0d52c95635ddde379aaf216166e88ffd432243b833771",
+ "uncompressed_sha256": "8c30beb8a3d4252b2297005700c7e60f4e97033ffdb9d72237fee646d57eff03"
+ },
+ {
+ "path": "validation/metadata.json",
+ "bytes": 763,
+ "sha256": "fa408dfc5045ad3a84afb08291d9634e028e0e5e359ddef4fb07863baed5ec2c"
+ },
+ {
+ "path": "validation/root-header-browser-1.log.gz",
+ "bytes": 239,
+ "sha256": "92e3d88bb5d68e074774708f806df3ab31baac208cec8e2102ca6f01bd39356c",
+ "uncompressed_sha256": "3a3b855b4f0cc1b44cdab3d46adcd03aba99d9605b1cc34026130fa0504a2073"
+ },
+ {
+ "path": "validation/root-header-budget-usage-1.log.gz",
+ "bytes": 5273,
+ "sha256": "87c940d743b739995cc512661c0e26469516c2155b3390672dc9f6d809cf1078",
+ "uncompressed_sha256": "7d54c064973da3351d1a4392204962813a92e355d1440ac0adf71e39c50d20a1"
+ },
+ {
+ "path": "validation/root-header-final-metadata-admissions-1.log.gz",
+ "bytes": 100,
+ "sha256": "4c63bc80eb35b9c22317102887a3d59a52f904bfb0a3bfc508cc9303e28c124f",
+ "uncompressed_sha256": "0acaaef0481721eb3ab937f80ea28612f0109329d049bebfcf35f136a62c69e3"
+ },
+ {
+ "path": "validation/root-header-final-metadata-copyright-1.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "validation/root-header-final-metadata-dag-1.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "validation/root-header-final-metadata-diff-1.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "validation/root-header-final-metadata-lines-1.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "validation/root-header-final-metadata-relative-1.log.gz",
+ "bytes": 99,
+ "sha256": "cf7a501e44fe6c33115af054f7153d3343b742d829667a43e3a39d453c6e0b88",
+ "uncompressed_sha256": "eb7e8cd00328536d58b6ed63d3285bef8e5707c1ab63a8dc284f1cb9fb255aa5"
+ },
+ {
+ "path": "validation/root-header-final-metadata-selected-admissions-1.log.gz",
+ "bytes": 75,
+ "sha256": "844d5927b4578fb319c1fff528d16c945462aa1949732858b8a6a370d74a43e8",
+ "uncompressed_sha256": "d81dee7e4157b1c134e834956336aee04db62a3a0337075629e369e9d95492d6"
+ },
+ {
+ "path": "validation/root-header-integration-3.log.gz",
+ "bytes": 23061,
+ "sha256": "e4d3e6010a823e9b64c677768a54426afc4e500bfb39ac2321d6189b263c3683",
+ "uncompressed_sha256": "272784d213a2513967999efbae1d79ecf2142128139c57dfa6c5378d449b384a"
+ },
+ {
+ "path": "validation/root-header-render-1.log.gz",
+ "bytes": 14828,
+ "sha256": "547a2408e982ebaf863b87c7989a249ca93b52249eb5dfa808b3ec79eb59a6da",
+ "uncompressed_sha256": "fa71032866f31ee60b186f672554927330ec2e1782c3b8502f4c7a7b58d8655a"
+ },
+ {
+ "path": "verify.py",
+ "bytes": 4939,
+ "sha256": "43aea8e550b487714e44015588f07a73ea1b88fff1581d40ad2109e1d45c3e7e"
+ }
+ ]
+}
diff --git a/reports/data/hexrcf-root-header/diagnostics/HeaderControls.lean.txt.gz b/reports/data/hexrcf-root-header/diagnostics/HeaderControls.lean.txt.gz
new file mode 100644
index 0000000000..ce361c20a1
Binary files /dev/null and b/reports/data/hexrcf-root-header/diagnostics/HeaderControls.lean.txt.gz differ
diff --git a/reports/data/hexrcf-root-header/diagnostics/HeaderPacket.lean.txt.gz b/reports/data/hexrcf-root-header/diagnostics/HeaderPacket.lean.txt.gz
new file mode 100644
index 0000000000..0a4ed3ddb8
Binary files /dev/null and b/reports/data/hexrcf-root-header/diagnostics/HeaderPacket.lean.txt.gz differ
diff --git a/reports/data/hexrcf-root-header/diagnostics/HeaderPacketAudit.lean.txt.gz b/reports/data/hexrcf-root-header/diagnostics/HeaderPacketAudit.lean.txt.gz
new file mode 100644
index 0000000000..9ff525dd96
Binary files /dev/null and b/reports/data/hexrcf-root-header/diagnostics/HeaderPacketAudit.lean.txt.gz differ
diff --git a/reports/data/hexrcf-root-header/diagnostics/HeaderPacketValues.lean.txt.gz b/reports/data/hexrcf-root-header/diagnostics/HeaderPacketValues.lean.txt.gz
new file mode 100644
index 0000000000..60c32914a0
Binary files /dev/null and b/reports/data/hexrcf-root-header/diagnostics/HeaderPacketValues.lean.txt.gz differ
diff --git a/reports/data/hexrcf-root-header/diagnostics/HeaderQuote.lean.txt.gz b/reports/data/hexrcf-root-header/diagnostics/HeaderQuote.lean.txt.gz
new file mode 100644
index 0000000000..901c938344
Binary files /dev/null and b/reports/data/hexrcf-root-header/diagnostics/HeaderQuote.lean.txt.gz differ
diff --git a/reports/data/hexrcf-root-header/diagnostics/SignatureRoundtrip.lean.txt.gz b/reports/data/hexrcf-root-header/diagnostics/SignatureRoundtrip.lean.txt.gz
new file mode 100644
index 0000000000..c02ffd0f2f
Binary files /dev/null and b/reports/data/hexrcf-root-header/diagnostics/SignatureRoundtrip.lean.txt.gz differ
diff --git a/reports/data/hexrcf-root-header/diagnostics/header-controls-helper-order-1.log.gz b/reports/data/hexrcf-root-header/diagnostics/header-controls-helper-order-1.log.gz
new file mode 100644
index 0000000000..c2596c0306
Binary files /dev/null and b/reports/data/hexrcf-root-header/diagnostics/header-controls-helper-order-1.log.gz differ
diff --git a/reports/data/hexrcf-root-header/diagnostics/header-current-core-1.log.gz b/reports/data/hexrcf-root-header/diagnostics/header-current-core-1.log.gz
new file mode 100644
index 0000000000..89b21ec27e
Binary files /dev/null and b/reports/data/hexrcf-root-header/diagnostics/header-current-core-1.log.gz differ
diff --git a/reports/data/hexrcf-root-header/diagnostics/header-packet-assembly-1.log.gz b/reports/data/hexrcf-root-header/diagnostics/header-packet-assembly-1.log.gz
new file mode 100644
index 0000000000..f2223b6064
Binary files /dev/null and b/reports/data/hexrcf-root-header/diagnostics/header-packet-assembly-1.log.gz differ
diff --git a/reports/data/hexrcf-root-header/diagnostics/header-packet-assembly-2.log.gz b/reports/data/hexrcf-root-header/diagnostics/header-packet-assembly-2.log.gz
new file mode 100644
index 0000000000..324b586dab
Binary files /dev/null and b/reports/data/hexrcf-root-header/diagnostics/header-packet-assembly-2.log.gz differ
diff --git a/reports/data/hexrcf-root-header/diagnostics/header-packet-assembly-3.log.gz b/reports/data/hexrcf-root-header/diagnostics/header-packet-assembly-3.log.gz
new file mode 100644
index 0000000000..333606aacb
Binary files /dev/null and b/reports/data/hexrcf-root-header/diagnostics/header-packet-assembly-3.log.gz differ
diff --git a/reports/data/hexrcf-root-header/diagnostics/header-packet-controls-1.log.gz b/reports/data/hexrcf-root-header/diagnostics/header-packet-controls-1.log.gz
new file mode 100644
index 0000000000..f5a0d217e9
Binary files /dev/null and b/reports/data/hexrcf-root-header/diagnostics/header-packet-controls-1.log.gz differ
diff --git a/reports/data/hexrcf-root-header/diagnostics/header-packet-values-1.log.gz b/reports/data/hexrcf-root-header/diagnostics/header-packet-values-1.log.gz
new file mode 100644
index 0000000000..cdbecce004
Binary files /dev/null and b/reports/data/hexrcf-root-header/diagnostics/header-packet-values-1.log.gz differ
diff --git a/reports/data/hexrcf-root-header/diagnostics/root-header-integration-1.log.gz b/reports/data/hexrcf-root-header/diagnostics/root-header-integration-1.log.gz
new file mode 100644
index 0000000000..3987f211b6
Binary files /dev/null and b/reports/data/hexrcf-root-header/diagnostics/root-header-integration-1.log.gz differ
diff --git a/reports/data/hexrcf-root-header/diagnostics/root-header-integration-2.log.gz b/reports/data/hexrcf-root-header/diagnostics/root-header-integration-2.log.gz
new file mode 100644
index 0000000000..1898880ae0
Binary files /dev/null and b/reports/data/hexrcf-root-header/diagnostics/root-header-integration-2.log.gz differ
diff --git a/reports/data/hexrcf-root-header/diagnostics/root-header-production-core-1.log.gz b/reports/data/hexrcf-root-header/diagnostics/root-header-production-core-1.log.gz
new file mode 100644
index 0000000000..430f6293eb
Binary files /dev/null and b/reports/data/hexrcf-root-header/diagnostics/root-header-production-core-1.log.gz differ
diff --git a/reports/data/hexrcf-root-header/diagnostics/root-header-production-core-2.log.gz b/reports/data/hexrcf-root-header/diagnostics/root-header-production-core-2.log.gz
new file mode 100644
index 0000000000..56c7f8eff7
Binary files /dev/null and b/reports/data/hexrcf-root-header/diagnostics/root-header-production-core-2.log.gz differ
diff --git a/reports/data/hexrcf-root-header/diagnostics/root-header-production-public-1.log.gz b/reports/data/hexrcf-root-header/diagnostics/root-header-production-public-1.log.gz
new file mode 100644
index 0000000000..0af8386f10
Binary files /dev/null and b/reports/data/hexrcf-root-header/diagnostics/root-header-production-public-1.log.gz differ
diff --git a/reports/data/hexrcf-root-header/scripts/browser.mjs b/reports/data/hexrcf-root-header/scripts/browser.mjs
new file mode 100644
index 0000000000..cf3fcb920a
--- /dev/null
+++ b/reports/data/hexrcf-root-header/scripts/browser.mjs
@@ -0,0 +1,70 @@
+import fs from 'node:fs';
+import {spawn} from 'node:child_process';
+const root=process.argv[2];
+if(!root) throw new Error('Pass the scratch render directory');
+const profile=root+'/root-header-profile';
+fs.mkdirSync(profile,{recursive:true});
+fs.rmSync(profile+'/DevToolsActivePort',{force:true});
+const chrome=spawn(process.env.CHROME_BIN || '/home/kim/.cache/ms-playwright/chromium-1243/chrome-linux64/chrome',[
+ '--headless=new','--no-sandbox','--disable-gpu','--allow-file-access-from-files',
+ '--remote-debugging-port=0','--remote-allow-origins=*','--user-data-dir='+profile,'about:blank'],
+ {env:{...process.env,LD_LIBRARY_PATH:fs.readFileSync(root+'/browser-lib-paths.txt','utf8').trim()},stdio:'ignore'});
+let socket;
+try {
+ const portFile=profile+'/DevToolsActivePort';
+ for(let i=0;!fs.existsSync(portFile);i++) {
+ if(i>200||chrome.exitCode!==null) throw new Error('Chrome did not expose CDP');
+ await new Promise(r=>setTimeout(r,100));
+ }
+ const port=fs.readFileSync(portFile,'utf8').split('\n')[0];
+ const tabs=await (await fetch('http://127.0.0.1:'+port+'/json')).json();
+ socket=new WebSocket(tabs.find(t=>t.type==='page').webSocketDebuggerUrl);
+ await new Promise((r,j)=>{socket.onopen=r;socket.onerror=j});
+ let sequence=0;const pending=new Map();let loaded;
+ socket.onmessage=e=>{
+ const msg=JSON.parse(e.data);
+ if(msg.id){const p=pending.get(msg.id);pending.delete(msg.id);msg.error?p.reject(msg.error):p.resolve(msg.result);}
+ if(msg.method==='Page.loadEventFired'&&loaded){loaded();loaded=undefined;}
+ };
+ const call=(method,params={})=>new Promise((resolve,reject)=>{const id=++sequence;pending.set(id,{resolve,reject});socket.send(JSON.stringify({id,method,params}));});
+ await call('Page.enable');
+ const load=new Promise(r=>loaded=r);
+ await call('Page.navigate',{url:'file://'+root+'/scalar-review-html/html-single/index.html'});
+ await load;
+ const evaluate=async expression=>{const r=await call('Runtime.evaluate',{expression,returnByValue:true});if(r.exceptionDetails)throw new Error(JSON.stringify(r.exceptionDetails));return r.result.value;};
+ const documentCheck=await evaluate(`(() => {
+ const link=Array.from(document.querySelectorAll('a')).find(a=>a.textContent==='cubic regression');
+ const currentPacket=document.body.textContent.includes('The public regression constructs a new root and context') && document.body.textContent.includes('coefficientReal');
+ const currentTransport=document.body.textContent.includes('Both original instance arguments') || document.body.textContent.includes('All original instance arguments are retained');
+ return {currentPacket,currentTransport,cubicSource:link?.getAttribute('href')};
+ })()`);
+ if(!documentCheck.currentPacket || !documentCheck.currentTransport || documentCheck.cubicSource!=='https://github.com/kim-em/hex-dev/blob/main/conformance/HexRCF/RootQuoteSource.lean')throw new Error('Rendered document has stale audit text or broken cubic source link');
+ fs.writeFileSync(root+'/root-header-document.json',JSON.stringify(documentCheck,null,2));
+ const metadata=[]; const sectionMetadata=[];
+ for(const [label,width] of [['desktop',1440],['narrow',390]]) {
+ await call('Emulation.setDeviceMetricsOverride',{width,height:1000,deviceScaleFactor:1,mobile:false});
+ for(const [kind,phrase] of [['value','The public regression constructs a new root and context'],['boundary','The default quotation rules recognize']] ) {
+ const exact=await evaluate(`(() => {const p=Array.from(document.querySelectorAll('p')).find(e=>e.textContent.replace(/\\s+/g,' ').includes(${JSON.stringify(phrase)}));if(!p)throw new Error('missing paragraph');const target=['example','value','solutions'].includes(${JSON.stringify(kind)})?p.nextElementSibling:p;if(['example','value','solutions'].includes(${JSON.stringify(kind)})&&!target.matches('.hl.lean.block, pre, div:has(code)'))throw new Error('target is not a Lean code block');target.scrollIntoView({block:${JSON.stringify('center')}});return {text:p.textContent,viewport:innerWidth,scrollY,paragraphWidth:p.getBoundingClientRect().width,scrollWidth:p.scrollWidth,targetTag:target.tagName,targetWidth:target.getBoundingClientRect().width,targetScrollWidth:target.scrollWidth,descendantOverflow:Math.max(0,...[target,...target.querySelectorAll('*')].map(e=>e.scrollWidth-e.clientWidth)),overflowElements:[target,...target.querySelectorAll('*')].filter(e=>e.scrollWidth-e.clientWidth>1).map(e=>({tag:e.tagName,classes:e.className,width:e.clientWidth,scroll:e.scrollWidth,text:e.textContent.slice(0,100)})).slice(0,8)};})()`);
+ if(!exact)throw new Error('missing visual target '+kind);
+ await evaluate('new Promise(resolve=>requestAnimationFrame(()=>requestAnimationFrame(resolve)))');
+ const shot=await call('Page.captureScreenshot',{format:'png'});
+ fs.writeFileSync(root+'/'+'root-header-'+label+'-'+kind+'.png',Buffer.from(shot.data,'base64'));
+ metadata.push({label,kind,...exact});
+ }
+ sectionMetadata.push(await evaluate(`(() => {
+ const headings=Array.from(document.querySelectorAll('h1,h2,h3,h4,h5,h6'));
+ const start=Array.from(document.querySelectorAll('p')).find(e=>e.textContent.includes('accepts the complete original'));
+ if(!start)throw new Error('missing root-header paragraph');
+ const following=headings.find(e=>start.compareDocumentPosition(e)&4);
+ if(!following)throw new Error('missing following section');
+ const targets=Array.from(document.querySelectorAll('p,.hl.lean.block')).filter(e=>(e===start || (start.compareDocumentPosition(e)&4)) && (e.compareDocumentPosition(following)&4));
+ if(targets.length<3)throw new Error('incomplete root-header section');
+ return {label:${JSON.stringify(label)},width:innerWidth,targets:targets.map(e=>({tag:e.tagName,text:e.textContent.slice(0,160),overflow:Math.max(0,...[e,...e.querySelectorAll('*')].map(n=>n.scrollWidth-n.clientWidth))}))};
+ })()`));
+ }
+ fs.writeFileSync(root+'/root-header-section-overflow.json',JSON.stringify(sectionMetadata,null,2));
+ if(sectionMetadata.some(v=>v.targets.some(e=>e.overflow>1)))throw new Error('Root/header content overflows');
+ fs.writeFileSync(root+'/root-header-inspection.json',JSON.stringify(metadata,null,2));
+ if(metadata.some(e=>e.targetScrollWidth>e.targetWidth+1 || e.descendantOverflow>1)) throw new Error('Changed content overflows; retained captures and metrics identify the affected block.');
+ process.stdout.write('Saved root-header desktop/narrow screenshots\n');
+} finally {if(socket)socket.close();chrome.kill('SIGTERM');}
diff --git a/reports/data/hexrcf-root-header/scripts/collect.py b/reports/data/hexrcf-root-header/scripts/collect.py
new file mode 100644
index 0000000000..5ccbd6a102
--- /dev/null
+++ b/reports/data/hexrcf-root-header/scripts/collect.py
@@ -0,0 +1,96 @@
+"""Retain completed root/header validation and bind it to committed sources."""
+import argparse
+import gzip
+import hashlib
+import json
+from pathlib import Path
+import re
+import subprocess
+
+parser = argparse.ArgumentParser(description=__doc__)
+parser.add_argument('--task-root', type=Path, required=True)
+parser.add_argument('--render-root', type=Path, required=True)
+parser.add_argument('--source', required=True)
+args = parser.parse_args()
+root = Path(__file__).resolve().parents[1]
+repo = root.parents[2]
+
+def git(*arguments):
+ return subprocess.check_output(['git', *arguments], cwd=repo)
+
+def sha(raw):
+ return hashlib.sha256(raw).hexdigest()
+
+def keep(source, destination):
+ raw = source.read_bytes()
+ target = root / destination
+ target.parent.mkdir(parents=True, exist_ok=True)
+ target.write_bytes(gzip.compress(raw, mtime=0) if target.suffix == '.gz' else raw)
+
+validation = {'integration': 'root-header-integration-3.log',
+ 'budget': 'root-header-budget-usage-1.log',
+ 'render': 'root-header-render-1.log', 'browser': 'root-header-browser-1.log'}
+for key, name in validation.items():
+ text = (args.task_root / name).read_text()
+ assert 'status=0/SUCCESS' in text, name
+ assert ('Saved root-header desktop/narrow screenshots' if key == 'browser'
+ else 'Build completed successfully') in text, name
+ keep(args.task_root / name, 'validation/' + name + '.gz')
+metadata_path = args.task_root / 'root-header-final-metadata-results-1.json'
+metadata = json.loads(metadata_path.read_text())
+assert all(item['exit_code'] == 0 for item in metadata)
+keep(metadata_path, 'validation/metadata.json')
+for item in metadata:
+ keep(args.task_root / item['log'], 'validation/' + item['log'] + '.gz')
+keep(args.task_root / 'root-header-memory-policy.txt', 'validation/memory-policy.txt.gz')
+keep(args.task_root / 'bin' / 'run-bounded', 'scripts/run-bounded')
+for pattern in ['root-header-production-*.log', 'root-header-integration-[12].log',
+ 'header-current-core-1.log', 'header-packet-assembly-*.log',
+ 'header-packet-values-1.log', 'header-packet-controls-1.log',
+ 'header-controls-helper-order-1.log']:
+ for source in sorted(args.task_root.glob(pattern)):
+ keep(source, 'diagnostics/' + source.name + '.gz')
+for name in ['HeaderQuote.lean', 'HeaderPacket.lean', 'HeaderPacketValues.lean',
+ 'HeaderPacketAudit.lean', 'HeaderControls.lean', 'SignatureRoundtrip.lean']:
+ keep(args.task_root / 'header-assembly-validated' / name, 'diagnostics/' + name + '.txt.gz')
+for source in sorted(args.render_root.glob('root-header-*.png')):
+ keep(source, 'captures/' + source.name)
+for source in sorted(args.render_root.glob('root-header-*.json')):
+ keep(source, 'captures/' + source.name)
+prior = json.loads((root.parent / 'hexrcf-dependent-quotation' / 'context.json').read_text())
+baseline = '3b65efefa81e76a9f14db586db244b1c42d66fec'
+changed = git('diff', '--name-only', baseline, args.source).decode().splitlines()
+paths = set(prior['sources']) | set(changed) | {
+ 'HexRCF/SPEC/hex-rcf.md', 'SPEC/real-closure-execution.md', 'libraries.yml'}
+source = git('show', args.source + ':conformance/HexRCF/RootHeaderProofs.lean').decode()
+scope = re.search(r'let allowed := #\[(.*?)\]', source, re.S)
+assert scope
+record = {
+ 'source_commit': args.source,
+ 'source_tree': git('rev-parse', args.source + '^{tree}').decode().strip(),
+ 'baseline_commit': baseline,
+ 'sources': {path: sha(git('show', args.source + ':' + path)) for path in sorted(paths)},
+ 'unchanged_guards': prior['unchanged_guards'],
+ 'validation': {key: 'validation/' + name + '.gz' for key, name in validation.items()},
+ 'body_scope': re.findall(r'`([A-Za-z0-9_.]+)', scope.group(1)),
+ 'audit_counts': [665, 65, 720],
+ 'report_sha256': sha((repo / 'reports/hexrcf-root-header-quotation.md').read_bytes()),
+ 'diagnostics': {
+ 'root-header-production-core-1.log': 'failed: targets not registered in Lake yet',
+ 'root-header-production-public-1.log': 'passed preliminary source before final inventory and budget assertions',
+ 'root-header-integration-1.log': 'passed preliminary compatibility before final budget result fix',
+ 'root-header-integration-2.log': 'passed with pinned inventory; superseded by full final validation',
+ 'header-packet-assembly-1.log': 'failed prototype: doc comment attached to run_meta',
+ 'header-packet-assembly-2.log': 'failed prototype: audit syntax error',
+ 'header-packet-controls-1.log': 'packet controls passed, but enclosing build failed header-control namespace lookup'},
+ 'artifacts': []}
+for path in sorted(root.rglob('*')):
+ if not path.is_file() or path.name == 'context.json':
+ continue
+ raw = path.read_bytes()
+ item = {'path': path.relative_to(root).as_posix(), 'bytes': len(raw), 'sha256': sha(raw)}
+ if path.suffix == '.gz':
+ item['uncompressed_sha256'] = sha(gzip.decompress(raw))
+ record['artifacts'].append(item)
+(root / 'context.json').write_text(json.dumps(record, indent=2) + '\n')
+print(f"Retained {len(record['artifacts'])} artifacts against {len(record['sources'])} sources")
diff --git a/reports/data/hexrcf-root-header/scripts/relative-links.py b/reports/data/hexrcf-root-header/scripts/relative-links.py
new file mode 100644
index 0000000000..86f4a60091
--- /dev/null
+++ b/reports/data/hexrcf-root-header/scripts/relative-links.py
@@ -0,0 +1,19 @@
+"""Check relative filesystem destinations in the changed documentation."""
+from pathlib import Path
+import re
+
+repo = Path(__file__).resolve().parents[4]
+count = 0
+for name in ['reports/hexrcf-root-header-quotation.md',
+ 'reports/hexrcf-public-packet-quotation.md',
+ 'reports/hexrcf-sign-packet-quotation.md', 'HexRCF/README.md',
+ 'HexManual/Chapters/HexRCF/RootQuote.lean',
+ 'HexManual/Chapters/HexRCF/RootTableQuote.lean']:
+ path = repo / name
+ for match in re.finditer(r'\]\(([^)]+)\)', path.read_text()):
+ target = match.group(1).split('#')[0]
+ if not target or '://' in target:
+ continue
+ assert (path.parent / target).exists(), (name, target)
+ count += 1
+print(f'{count} relative filesystem destinations exist; URL/anchor validity is outside this check.')
diff --git a/reports/data/hexrcf-root-header/scripts/render-main.lean.txt b/reports/data/hexrcf-root-header/scripts/render-main.lean.txt
new file mode 100644
index 0000000000..cdcf13e5d6
--- /dev/null
+++ b/reports/data/hexrcf-root-header/scripts/render-main.lean.txt
@@ -0,0 +1,5 @@
+import HexManual
+import VersoManual
+#eval Verso.Genre.Manual.manualMain (%doc HexManual)
+ (options := ["--output", "scalar-review-html",
+ "--without-tex", "--with-html-single", "--without-html-multi"])
diff --git a/reports/data/hexrcf-root-header/scripts/run-bounded b/reports/data/hexrcf-root-header/scripts/run-bounded
new file mode 100644
index 0000000000..2cc8636e8a
--- /dev/null
+++ b/reports/data/hexrcf-root-header/scripts/run-bounded
@@ -0,0 +1,10 @@
+#!/usr/bin/env bash
+set -euo pipefail
+exec systemd-run --user --wait --pipe --collect \
+ --unit=hex-10358-lean-build \
+ --property=MemoryMax=32G \
+ --property=MemorySwapMax=0 \
+ --property=OOMPolicy=kill \
+ --working-directory="$PWD" \
+ --setenv="PATH=$PATH" --setenv=LEAN_NUM_THREADS=2 \
+ "$@"
diff --git a/reports/data/hexrcf-root-header/scripts/selected-admissions.py b/reports/data/hexrcf-root-header/scripts/selected-admissions.py
new file mode 100644
index 0000000000..bcb9f6a80b
--- /dev/null
+++ b/reports/data/hexrcf-root-header/scripts/selected-admissions.py
@@ -0,0 +1,16 @@
+"""Scan the root/header quotation sources using the repository admission lexer."""
+from pathlib import Path
+import sys
+
+repo = Path(__file__).resolve().parents[4]
+sys.path.insert(0, str(repo / 'scripts' / 'ci'))
+import check_named_admissions as admissions
+
+paths = ['adapters/HexRCF/RealCoefficients/RootQuote.lean',
+ 'adapters/HexRCF/RealCoefficients/RootHeader.lean'] + [
+ f'conformance/HexRCF/{name}.lean' for name in [
+ 'RootHeaderBudget', 'RootHeaderControls', 'RootHeaderPacket', 'RootHeaderProofs',
+ 'RootHeaderValues', 'SignatureQuoteConformance']]
+for path in paths:
+ assert not admissions.find_admissions(admissions.code_only((repo / path).read_text())), path
+print(f'{len(paths)} root/header quotation source files contain no admissions')
diff --git a/reports/data/hexrcf-root-header/validation/memory-policy.txt.gz b/reports/data/hexrcf-root-header/validation/memory-policy.txt.gz
new file mode 100644
index 0000000000..85fe5505af
Binary files /dev/null and b/reports/data/hexrcf-root-header/validation/memory-policy.txt.gz differ
diff --git a/reports/data/hexrcf-root-header/validation/metadata.json b/reports/data/hexrcf-root-header/validation/metadata.json
new file mode 100644
index 0000000000..41ec29d31f
--- /dev/null
+++ b/reports/data/hexrcf-root-header/validation/metadata.json
@@ -0,0 +1,37 @@
+[
+ {
+ "name": "copyright",
+ "exit_code": 0,
+ "log": "root-header-final-metadata-copyright-1.log"
+ },
+ {
+ "name": "lines",
+ "exit_code": 0,
+ "log": "root-header-final-metadata-lines-1.log"
+ },
+ {
+ "name": "dag",
+ "exit_code": 0,
+ "log": "root-header-final-metadata-dag-1.log"
+ },
+ {
+ "name": "admissions",
+ "exit_code": 0,
+ "log": "root-header-final-metadata-admissions-1.log"
+ },
+ {
+ "name": "selected-admissions",
+ "exit_code": 0,
+ "log": "root-header-final-metadata-selected-admissions-1.log"
+ },
+ {
+ "name": "relative",
+ "exit_code": 0,
+ "log": "root-header-final-metadata-relative-1.log"
+ },
+ {
+ "name": "diff",
+ "exit_code": 0,
+ "log": "root-header-final-metadata-diff-1.log"
+ }
+]
diff --git a/reports/data/hexrcf-root-header/validation/root-header-browser-1.log.gz b/reports/data/hexrcf-root-header/validation/root-header-browser-1.log.gz
new file mode 100644
index 0000000000..891c407591
Binary files /dev/null and b/reports/data/hexrcf-root-header/validation/root-header-browser-1.log.gz differ
diff --git a/reports/data/hexrcf-root-header/validation/root-header-budget-usage-1.log.gz b/reports/data/hexrcf-root-header/validation/root-header-budget-usage-1.log.gz
new file mode 100644
index 0000000000..8ec9111d54
Binary files /dev/null and b/reports/data/hexrcf-root-header/validation/root-header-budget-usage-1.log.gz differ
diff --git a/reports/data/hexrcf-root-header/validation/root-header-final-metadata-admissions-1.log.gz b/reports/data/hexrcf-root-header/validation/root-header-final-metadata-admissions-1.log.gz
new file mode 100644
index 0000000000..fd967eb18d
Binary files /dev/null and b/reports/data/hexrcf-root-header/validation/root-header-final-metadata-admissions-1.log.gz differ
diff --git a/reports/data/hexrcf-root-header/validation/root-header-final-metadata-copyright-1.log.gz b/reports/data/hexrcf-root-header/validation/root-header-final-metadata-copyright-1.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-root-header/validation/root-header-final-metadata-copyright-1.log.gz differ
diff --git a/reports/data/hexrcf-root-header/validation/root-header-final-metadata-dag-1.log.gz b/reports/data/hexrcf-root-header/validation/root-header-final-metadata-dag-1.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-root-header/validation/root-header-final-metadata-dag-1.log.gz differ
diff --git a/reports/data/hexrcf-root-header/validation/root-header-final-metadata-diff-1.log.gz b/reports/data/hexrcf-root-header/validation/root-header-final-metadata-diff-1.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-root-header/validation/root-header-final-metadata-diff-1.log.gz differ
diff --git a/reports/data/hexrcf-root-header/validation/root-header-final-metadata-lines-1.log.gz b/reports/data/hexrcf-root-header/validation/root-header-final-metadata-lines-1.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-root-header/validation/root-header-final-metadata-lines-1.log.gz differ
diff --git a/reports/data/hexrcf-root-header/validation/root-header-final-metadata-relative-1.log.gz b/reports/data/hexrcf-root-header/validation/root-header-final-metadata-relative-1.log.gz
new file mode 100644
index 0000000000..9a8cf15ac1
Binary files /dev/null and b/reports/data/hexrcf-root-header/validation/root-header-final-metadata-relative-1.log.gz differ
diff --git a/reports/data/hexrcf-root-header/validation/root-header-final-metadata-selected-admissions-1.log.gz b/reports/data/hexrcf-root-header/validation/root-header-final-metadata-selected-admissions-1.log.gz
new file mode 100644
index 0000000000..d387bc7838
Binary files /dev/null and b/reports/data/hexrcf-root-header/validation/root-header-final-metadata-selected-admissions-1.log.gz differ
diff --git a/reports/data/hexrcf-root-header/validation/root-header-integration-3.log.gz b/reports/data/hexrcf-root-header/validation/root-header-integration-3.log.gz
new file mode 100644
index 0000000000..65e3474b4c
Binary files /dev/null and b/reports/data/hexrcf-root-header/validation/root-header-integration-3.log.gz differ
diff --git a/reports/data/hexrcf-root-header/validation/root-header-render-1.log.gz b/reports/data/hexrcf-root-header/validation/root-header-render-1.log.gz
new file mode 100644
index 0000000000..8bd314ae45
Binary files /dev/null and b/reports/data/hexrcf-root-header/validation/root-header-render-1.log.gz differ
diff --git a/reports/data/hexrcf-root-header/verify.py b/reports/data/hexrcf-root-header/verify.py
new file mode 100644
index 0000000000..1ebb49199f
--- /dev/null
+++ b/reports/data/hexrcf-root-header/verify.py
@@ -0,0 +1,86 @@
+#!/usr/bin/env python3
+"""Verify retained root/header sources, validation, controls and body scope."""
+import argparse
+import gzip
+import hashlib
+import json
+from pathlib import Path
+import re
+import subprocess
+
+parser = argparse.ArgumentParser(description=__doc__)
+parser.add_argument('--check-head', action='store_true')
+args = parser.parse_args()
+root = Path(__file__).resolve().parent
+repo = root.parents[2]
+record = json.loads((root / 'context.json').read_text())
+
+def git(*arguments):
+ return subprocess.check_output(['git', *arguments], cwd=repo)
+
+def sha(raw):
+ return hashlib.sha256(raw).hexdigest()
+
+def log(key):
+ return gzip.decompress((root / record['validation'][key]).read_bytes()).decode()
+
+assert git('rev-parse', record['source_commit'] + '^{tree}').decode().strip() == record['source_tree']
+for path, expected in record['sources'].items():
+ assert sha(git('show', record['source_commit'] + ':' + path)) == expected, path
+ if args.check_head:
+ assert sha((repo / path).read_bytes()) == expected, path
+if args.check_head:
+ changed = git('diff', '--name-only', record['source_commit']).decode().splitlines()
+ untracked = git('ls-files', '--others', '--exclude-standard').decode().splitlines()
+ assert all(path.startswith('reports/') for path in changed + untracked), changed + untracked
+ assert sha((repo / 'reports/hexrcf-root-header-quotation.md').read_bytes()) == record['report_sha256']
+for path in record['unchanged_guards']:
+ assert git('show', record['baseline_commit'] + ':' + path) == git(
+ 'show', record['source_commit'] + ':' + path), path
+for item in record['artifacts']:
+ raw = (root / item['path']).read_bytes()
+ assert len(raw) == item['bytes'] and sha(raw) == item['sha256'], item['path']
+ if 'uncompressed_sha256' in item:
+ assert sha(gzip.decompress(raw)) == item['uncompressed_sha256'], item['path']
+for key in ['integration', 'budget', 'render', 'browser']:
+ text = log(key)
+ assert 'status=0/SUCCESS' in text, key
+ assert ('Saved root-header desktop/narrow screenshots' if key == 'browser'
+ else 'Build completed successfully') in text, key
+text = log('integration')
+match = re.search(r'root/header packet actual bodies: (\d+) theorems/(\d+) definitions; '
+ r'nonempty traces=(\d+)', text)
+assert match and list(map(int, match.groups())) == record['audit_counts']
+for label in ['sign', 'polynomial', 'empty graph', 'node context', 'moment context']:
+ assert 'public packet compiled rejection/quotation refusal/caller restoration: ' + label in text
+for name in ['wrongVersion', 'wrongCount']:
+ assert 'generic header rejection and caller restoration checked: Hex.RCF.RootQuoteTests.' + name in text
+for name in ['readFirst', 'readSecond']:
+ assert f'default signature exact subject: Hex.RCF.SignatureRoundtrip.{name}; nodes=160;' in text
+assert 'generic header exact/one-below budgets checked; nodes=215671' in text
+assert 'original root/header assembled; nodes=215734' in text
+assert 'ordinary module sign packet proofNodes=860309' in text
+assert 'coefficient from public packet; proofNodes=3249' in text
+assert 'Built HexManual' in text
+source = git('show', record['source_commit'] + ':conformance/HexRCF/RootHeaderProofs.lean').decode()
+scope = re.search(r'let allowed := #\[(.*?)\]', source, re.S)
+assert scope and re.findall(r'`([A-Za-z0-9_.]+)', scope.group(1)) == record['body_scope']
+for legacy in ['root_raw', 'subject_read', 'nativeRoot_read']:
+ assert '``Hex.RCF.RootQuoteTests.' + legacy in source
+budget_source = git('show', record['source_commit'] + ':conformance/HexRCF/RootHeaderBudget.lean').decode()
+assert 'result.root.usage == (← get).budget.consumed' in budget_source
+assert 'source == ``RootQuoteTests.wrongCount && (← visits.get) == 0' in budget_source
+assert 'generic header exact/one-below budgets checked; nodes=215671' in log('budget')
+metadata = json.loads((root / 'validation/metadata.json').read_text())
+assert {item['name'] for item in metadata} == {
+ 'copyright', 'lines', 'dag', 'admissions', 'selected-admissions', 'relative', 'diff'}
+assert all(item['exit_code'] == 0 for item in metadata)
+memory = gzip.decompress((root / 'validation/memory-policy.txt.gz').read_bytes()).decode()
+assert all(value in memory for value in ['ActiveState=active', 'MemoryMax=34359738368',
+ 'MemorySwapMax=0', 'OOMPolicy=kill'])
+inspection = json.loads((root / 'captures/root-header-inspection.json').read_text())
+assert {(item['label'], item['kind']) for item in inspection} == {
+ ('desktop', 'value'), ('desktop', 'boundary'), ('narrow', 'value'), ('narrow', 'boundary')}
+assert all(item['descendantOverflow'] <= 1 for item in inspection)
+print(f"Verified {len(record['artifacts'])} artifacts/{len(record['sources'])} sources, "
+ f"665/65/720 fresh bodies, header/signature budgets, five packet controls and four captures")
diff --git a/reports/data/hexrcf-root-preparation/README.md b/reports/data/hexrcf-root-preparation/README.md
new file mode 100644
index 0000000000..26ab834128
--- /dev/null
+++ b/reports/data/hexrcf-root-preparation/README.md
@@ -0,0 +1,24 @@
+This record binds reconstructed-context preparation, original anonymous packet
+quotation and its ordinary public consumer to the source revision in
+`context.json`. Run `python3 reports/data/hexrcf-root-preparation/verify.py
+--check-head` from the repository root. Previous records retain their original
+source revisions and inventories.
+
+Validation includes a fresh ordinary public import, actual generated proof-body
+checks with the unchanged native-producer guard, complete standard-three axiom
+closure, exact/below budgets and state restoration, rational and dependent
+reader compatibility, the complete manual, HTML rendering and six visually
+inspected desktop/narrow captures. Existing whole-document horizontal overflow
+is recorded separately; the changed paragraphs and example have no overflow.
+
+Retained development logs include failed and explicitly interrupted attempts.
+They are diagnostic artifacts, not successful measurements. Final build
+observations reuse dependencies, have different scopes and are not an AB/BA
+performance experiment, a scaling result or evidence of physical proof sharing.
+Compiled artifact sizes describe the recorded files only. All local Lean,
+Lake and browser processes run serially under an aggregate 32 GiB limit with
+swap disabled and two Lean threads.
+
+This is partial quotation infrastructure. It does not establish generic source
+or provider authentication, frozen frame/history assembly, complete-cell tactic
+quotation, accepted algebraic completeness or completion of #10358.
diff --git a/reports/data/hexrcf-root-preparation/captures/browser.mjs b/reports/data/hexrcf-root-preparation/captures/browser.mjs
new file mode 100644
index 0000000000..51b82ab650
--- /dev/null
+++ b/reports/data/hexrcf-root-preparation/captures/browser.mjs
@@ -0,0 +1,61 @@
+import fs from 'node:fs';
+import {spawn} from 'node:child_process';
+const root=process.argv[2];
+if(!root) throw new Error('Pass the scratch render directory');
+const profile=root+'/root-preparation-profile';
+fs.mkdirSync(profile,{recursive:true});
+fs.rmSync(profile+'/DevToolsActivePort',{force:true});
+const chrome=spawn(process.env.CHROME_BIN || '/home/kim/.cache/ms-playwright/chromium-1243/chrome-linux64/chrome',[
+ '--headless=new','--no-sandbox','--disable-gpu','--allow-file-access-from-files',
+ '--remote-debugging-port=0','--remote-allow-origins=*','--user-data-dir='+profile,'about:blank'],
+ {env:{...process.env,LD_LIBRARY_PATH:fs.readFileSync(root+'/browser-lib-paths.txt','utf8').trim()},stdio:'ignore'});
+let socket;
+try {
+ const portFile=profile+'/DevToolsActivePort';
+ for(let i=0;!fs.existsSync(portFile);i++) {
+ if(i>200||chrome.exitCode!==null) throw new Error('Chrome did not expose CDP');
+ await new Promise(r=>setTimeout(r,100));
+ }
+ const port=fs.readFileSync(portFile,'utf8').split('\n')[0];
+ const tabs=await (await fetch('http://127.0.0.1:'+port+'/json')).json();
+ socket=new WebSocket(tabs.find(t=>t.type==='page').webSocketDebuggerUrl);
+ await new Promise((r,j)=>{socket.onopen=r;socket.onerror=j});
+ let sequence=0;const pending=new Map();let loaded;
+ socket.onmessage=e=>{
+ const msg=JSON.parse(e.data);
+ if(msg.id){const p=pending.get(msg.id);pending.delete(msg.id);msg.error?p.reject(msg.error):p.resolve(msg.result);}
+ if(msg.method==='Page.loadEventFired'&&loaded){loaded();loaded=undefined;}
+ };
+ const call=(method,params={})=>new Promise((resolve,reject)=>{const id=++sequence;pending.set(id,{resolve,reject});socket.send(JSON.stringify({id,method,params}));});
+ await call('Page.enable');
+ const load=new Promise(r=>loaded=r);
+ await call('Page.navigate',{url:'file:///home/kim/.codex/tasks/hex-10358/scalar-review-render/scalar-review-html/html-single/index.html'});
+ await load;
+ const evaluate=async expression=>{const r=await call('Runtime.evaluate',{expression,returnByValue:true});if(r.exceptionDetails)throw new Error(JSON.stringify(r.exceptionDetails));return r.result.value;};
+ const metadata=[]; const sectionMetadata=[];
+ for(const [label,width] of [['desktop',1440],['narrow',390]]) {
+ await call('Emulation.setDeviceMetricsOverride',{width,height:1000,deviceScaleFactor:1,mobile:false});
+ for(const [kind,phrase] of [['introduction','prepares the native context of a reconstructed descriptor for subsequent quotation.'],['example','prepares the native context of a reconstructed descriptor for subsequent quotation.'],['budget','Run this action and subsequent quotation in one']] ) {
+ const exact=await evaluate(`(() => {const p=Array.from(document.querySelectorAll('p')).find(e=>e.textContent.replace(/\\s+/g,' ').includes(${JSON.stringify(phrase)}));if(!p)throw new Error('missing paragraph');const target=${JSON.stringify(kind)}==='example'?p.nextElementSibling:p;if(${JSON.stringify(kind)}==='example'&&!target.matches('.hl.lean.block, pre, div:has(code)'))throw new Error('target is not a Lean code block');target.scrollIntoView({block:${JSON.stringify('center')}});return {text:p.textContent,viewport:innerWidth,scrollY,paragraphWidth:p.getBoundingClientRect().width,scrollWidth:p.scrollWidth,targetTag:target.tagName,targetWidth:target.getBoundingClientRect().width,targetScrollWidth:target.scrollWidth,descendantOverflow:Math.max(0,...[target,...target.querySelectorAll('*')].map(e=>e.scrollWidth-e.clientWidth)),overflowElements:[target,...target.querySelectorAll('*')].filter(e=>e.scrollWidth-e.clientWidth>1).map(e=>({tag:e.tagName,classes:e.className,width:e.clientWidth,scroll:e.scrollWidth,text:e.textContent.slice(0,100)})).slice(0,8)};})()`);
+ if(!exact)throw new Error('missing visual target '+kind);
+ await evaluate('new Promise(resolve=>requestAnimationFrame(()=>requestAnimationFrame(resolve)))');
+ const shot=await call('Page.captureScreenshot',{format:'png'});
+ fs.writeFileSync(root+'/'+'root-preparation-'+label+'-'+kind+'.png',Buffer.from(shot.data,'base64'));
+ metadata.push({label,kind,...exact});
+ }
+ sectionMetadata.push(await evaluate(`(() => {
+ const headings=Array.from(document.querySelectorAll('h1,h2,h3,h4,h5,h6'));
+ const heading=headings.find(e=>e.textContent.includes('Quoting a supplied root replay'));
+ if(!heading)throw new Error('missing quotation heading');
+ const following=headings.find(e=>e!==heading && Number(e.tagName[1])<=Number(heading.tagName[1]) && (heading.compareDocumentPosition(e)&4));
+ if(!following)throw new Error('missing following section');
+ const targets=Array.from(document.querySelectorAll('p,.hl.lean.block')).filter(e=>(heading.compareDocumentPosition(e)&4) && (e.compareDocumentPosition(following)&4));
+ if(targets.length<8)throw new Error('incomplete quotation section');
+ return {label:${JSON.stringify(label)},width:innerWidth,targets:targets.map(e=>({tag:e.tagName,text:e.textContent.slice(0,160),overflow:Math.max(0,...[e,...e.querySelectorAll('*')].map(n=>n.scrollWidth-n.clientWidth))}))};
+ })()`));
+ }
+ fs.writeFileSync(root+'/root-preparation-section-overflow.json',JSON.stringify(sectionMetadata,null,2));
+ fs.writeFileSync(root+'/root-preparation-inspection.json',JSON.stringify(metadata,null,2));
+ if(metadata.some(e=>e.targetScrollWidth>e.targetWidth+1 || e.descendantOverflow>1)) throw new Error('Changed content overflows; retained captures and metrics identify the affected block.');
+ process.stdout.write('Saved root preparation desktop/narrow screenshots\n');
+} finally {if(socket)socket.close();chrome.kill('SIGTERM');}
diff --git a/reports/data/hexrcf-root-preparation/captures/inspection.json b/reports/data/hexrcf-root-preparation/captures/inspection.json
new file mode 100644
index 0000000000..e3b73b3373
--- /dev/null
+++ b/reports/data/hexrcf-root-preparation/captures/inspection.json
@@ -0,0 +1,86 @@
+[
+ {
+ "label": "desktop",
+ "kind": "introduction",
+ "text": "\n RootPrepare.prepareWith\nprepares the native context of a reconstructed descriptor for subsequent\nquotation. It checks closed inputs and the exact raw-header binding, then\nretains the descriptor and context behind checked private definitions. Its\nsource is the original constructed context; context is the retained one,\nand same proves their equality. rootEq also retains the descriptor identity.\nThe supplied cleanliness function is preserved.",
+ "viewport": 1440,
+ "scrollY": 289307,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "P",
+ "targetWidth": 752,
+ "targetScrollWidth": 752,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "desktop",
+ "kind": "example",
+ "text": "\n RootPrepare.prepareWith\nprepares the native context of a reconstructed descriptor for subsequent\nquotation. It checks closed inputs and the exact raw-header binding, then\nretains the descriptor and context behind checked private definitions. Its\nsource is the original constructed context; context is the retained one,\nand same proves their equality. rootEq also retains the descriptor identity.\nThe supplied cleanliness function is preserved.",
+ "viewport": 1440,
+ "scrollY": 289466,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "CODE",
+ "targetWidth": 740,
+ "targetScrollWidth": 740,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "desktop",
+ "kind": "budget",
+ "text": "\n Run this action and subsequent quotation in one RootQuote.runWith request.\nCombine its decoder with the exact predecessor's scalar and signature\ndecoders, and use ScalarPacket.quoteWith with context and same to restore\nthe original reader's equation. The shared proof budget includes retained\ndata, equations, simplifier visits and generated proof expressions. The\nsimplifier's step limit is separately configurable; its exceptions remain\nterminal. Retention does not freeze root frames, authenticate a real source,\nor construct an ordinary-real model. Those conclusions require their existing\nseparate bridges.\n",
+ "viewport": 1440,
+ "scrollY": 289649,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "P",
+ "targetWidth": 752,
+ "targetScrollWidth": 752,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "introduction",
+ "text": "\n RootPrepare.prepareWith\nprepares the native context of a reconstructed descriptor for subsequent\nquotation. It checks closed inputs and the exact raw-header binding, then\nretains the descriptor and context behind checked private definitions. Its\nsource is the original constructed context; context is the retained one,\nand same proves their equality. rootEq also retains the descriptor identity.\nThe supplied cleanliness function is preserved.",
+ "viewport": 390,
+ "scrollY": 467023,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "P",
+ "targetWidth": 343,
+ "targetScrollWidth": 343,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "example",
+ "text": "\n RootPrepare.prepareWith\nprepares the native context of a reconstructed descriptor for subsequent\nquotation. It checks closed inputs and the exact raw-header binding, then\nretains the descriptor and context behind checked private definitions. Its\nsource is the original constructed context; context is the retained one,\nand same proves their equality. rootEq also retains the descriptor identity.\nThe supplied cleanliness function is preserved.",
+ "viewport": 390,
+ "scrollY": 467263,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "CODE",
+ "targetWidth": 331,
+ "targetScrollWidth": 331,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "budget",
+ "text": "\n Run this action and subsequent quotation in one RootQuote.runWith request.\nCombine its decoder with the exact predecessor's scalar and signature\ndecoders, and use ScalarPacket.quoteWith with context and same to restore\nthe original reader's equation. The shared proof budget includes retained\ndata, equations, simplifier visits and generated proof expressions. The\nsimplifier's step limit is separately configurable; its exceptions remain\nterminal. Retention does not freeze root frames, authenticate a real source,\nor construct an ordinary-real model. Those conclusions require their existing\nseparate bridges.\n",
+ "viewport": 390,
+ "scrollY": 467550,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "P",
+ "targetWidth": 343,
+ "targetScrollWidth": 343,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ }
+]
\ No newline at end of file
diff --git a/reports/data/hexrcf-root-preparation/captures/root-preparation-desktop-budget.png b/reports/data/hexrcf-root-preparation/captures/root-preparation-desktop-budget.png
new file mode 100644
index 0000000000..e999ec735a
Binary files /dev/null and b/reports/data/hexrcf-root-preparation/captures/root-preparation-desktop-budget.png differ
diff --git a/reports/data/hexrcf-root-preparation/captures/root-preparation-desktop-example.png b/reports/data/hexrcf-root-preparation/captures/root-preparation-desktop-example.png
new file mode 100644
index 0000000000..3d020be6ef
Binary files /dev/null and b/reports/data/hexrcf-root-preparation/captures/root-preparation-desktop-example.png differ
diff --git a/reports/data/hexrcf-root-preparation/captures/root-preparation-desktop-introduction.png b/reports/data/hexrcf-root-preparation/captures/root-preparation-desktop-introduction.png
new file mode 100644
index 0000000000..0eedfe0b21
Binary files /dev/null and b/reports/data/hexrcf-root-preparation/captures/root-preparation-desktop-introduction.png differ
diff --git a/reports/data/hexrcf-root-preparation/captures/root-preparation-narrow-budget.png b/reports/data/hexrcf-root-preparation/captures/root-preparation-narrow-budget.png
new file mode 100644
index 0000000000..ba0c8ab7d2
Binary files /dev/null and b/reports/data/hexrcf-root-preparation/captures/root-preparation-narrow-budget.png differ
diff --git a/reports/data/hexrcf-root-preparation/captures/root-preparation-narrow-example.png b/reports/data/hexrcf-root-preparation/captures/root-preparation-narrow-example.png
new file mode 100644
index 0000000000..b8b4c32e7b
Binary files /dev/null and b/reports/data/hexrcf-root-preparation/captures/root-preparation-narrow-example.png differ
diff --git a/reports/data/hexrcf-root-preparation/captures/root-preparation-narrow-introduction.png b/reports/data/hexrcf-root-preparation/captures/root-preparation-narrow-introduction.png
new file mode 100644
index 0000000000..cb93a8172b
Binary files /dev/null and b/reports/data/hexrcf-root-preparation/captures/root-preparation-narrow-introduction.png differ
diff --git a/reports/data/hexrcf-root-preparation/captures/section-overflow.json b/reports/data/hexrcf-root-preparation/captures/section-overflow.json
new file mode 100644
index 0000000000..57a2dd7b0b
--- /dev/null
+++ b/reports/data/hexrcf-root-preparation/captures/section-overflow.json
@@ -0,0 +1,564 @@
+[
+ {
+ "label": "desktop",
+ "width": 1440,
+ "targets": [
+ {
+ "tag": "P",
+ "text": "\n RootQuote.quote accepts a Lean\nexpression for an Except ε α replay reader, including structured errors. It returns the reconstructed\ndata and",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A scalar decoder may propose an equality for the exact demanded decode. The\nhelper checks its type, dependencies and kernel proof before usin",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For example, this helper continues a request's existing budget and returns the\nupdated usage together with the checked equation:",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSuppliedRoot\n (reader : Expr)\n (scalar : RootQuote.Decoder",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a rational predecessor, RationalQuote.decoder supplies these proposals\nwithout a fixed list of permitted numerators. It recognizes canoni",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteRationalRoot\n (reader registry : Expr)\n (config : Reify.Co",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The registry argument is a Lean expression of type\nHex.RealClosure.BaseContext.Registry. This helper supplies scalar equations;\nit does not r",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The cubic regression reads a\nsupplied replay for X³−3 on the open interval (−8,8). A fresh public consumer\nproves that the accepted descripto",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A reader that rejects its input or replay returns structured invalid-provider\nevidence. Non-readers and unsupported shapes raise terminal exc",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Canonical Element.codec decodes remain protected throughout quotation,\nincluding predecessor decodes with an explicit Element.codec head. Exp",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n All quotation regressions use maxHeartbeats := 12000000. The original root and rational\ncases use maxRecDepth := 8192; scalar, sign-packet, s",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n This API does not register a tactic handler or establish complete root coverage.\nThe acceptance equation alone does not authenticate original",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a coefficient in a selected algebraic extension,\nScalarQuote.quote uses the owner's Element.signCodec with supplied checked\nsign facts, t",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Pass the original, fully applied Element.codec expression, retaining its\nimplicit arguments. Reinferring definitionally equal context aliases",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSuppliedScalar\n (codec facts literal : Expr)\n (predecessor",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The monorepo regression imports HexRCF.ScalarQuoteCases. It decodes the\nnonrational coefficient −2√2 in the existing selected positive √2 con",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.SelectedRootTests in\nopen Hex.RCF.ScalarQuoteTests in\nexample :\n Data.original.value restored =\n -2 * Real.sqrt 2 :=\n restored_value\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The fresh audit rechecks 13 reachable quotation-case theorem bodies, including this value\nidentity, with only the standard three axioms and n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Regressions cover continued/exact/exhausted proof budgets, rollback after the\nstrict stage succeeds, missing or mismatched facts, zero withou",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a polynomial over the same selected extension,\nScalarQuote.quotePolyWith\nquotes the coefficient array through its finite sign reader and ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSuppliedPolynomial\n (reader facts : Expr)\n (predecessor : ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The regression polynomial contains two copies of −2√2. The checked original\nreader restores both positions. Its first coefficient has this or",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.SelectedRootTests in\nopen Hex.RCF.SharedQuoteTests in\nexample :\n Data.original.value\n (restored.coeff 0) =\n -2 * Real.sqrt 2 :=\n valu",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The fresh importing audit pins seven reachable theorem bodies and three data\ndefinitions, their actual owner refinement and supplied sign evi",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RootQuote.runWith supplies the transaction for a sequence of quoteWith\nactions. RootQuote.run supplies it for a reader with DecoderM callback",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n This scalar API does not reconstruct provider or predecessor histories,\nproduce missing signs, or install a general source-goal solver. The s",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n ScalarQuote.decoderWith composes checked scalar decoding through several\nselected-field predecessors. Its lookup receives each exact canonica",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSelectedReader\n (reader registry : Expr)\n (factsFor :\n Expr → Reify.Reify",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The two-level regression checks one visit to its selected context followed by\none visit to its selected predecessor. Its lookup adds 19 sourc",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n An ordinary module consumer also runs the callback factory and exports the\nchecked scalar reader equation. Its sign follows from the owner's ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RecursiveScalarPublic in\nexample : restored.sign = 1 := sign\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A fresh importing audit checks the two-level fixture and this public consumer,\nincluding accepted annotated decodes and a charged decline fol",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n ScalarPacket.quoteWith checks a supplied optional sign-packet reader. Its\nprepared context has a checked equality to the original context; a ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSuppliedSignPacket\n (reader prepared same : Expr)\n (predecessor :\n RootQuote.DecoderM) :=",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The regression quotes the parent descriptor and one packet for the polynomial\n−2X at the selected positive square root of 2. The resulting fa",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RealClosure in\nopen Hex.RCF.SelectedRootTests in\nopen Hex.RCF.SignPacketQuote in\nexample :\n Option.map Data.original.value\n (Except.toOption\n ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Quoting the parent and packet in one request consumes 105,037 proof nodes.\nWith the frozen parent and its equality already available, the pac",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The caller still supplies and authenticates the parent history and packet.\nPredecessor arithmetic retains its supplied implementation; this h",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A separate public-module example quotes a packet for X at the selected real\nroot of X³−3. Its context slots retain closed applications of the",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.PublicSignPacket in\nexample :\n coefficientReal =\n Hex.RCF.RootQuoteTests.realRoot :=\n coefficient_value\n\nopen Hex.RCF.PublicSignPacket in\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a dependent match, quotation moves trailing branch-equality proofs along\nthe checked equation for the match's subject. This uses ordinary",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RootHeader.quoteWith\naccepts the complete original RootReplay.readDescriptor application. It quotes\nthat reader, obtains the independently pa",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The public regression constructs a new root and context from that result,\nquotes the sign packet for X with fully numerical graph fields, and",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RootHeaderPacket in\nexample : coefficientReal = realRoot :=\n coefficient_value\n\nopen Hex.RCF.RootHeaderPacket in\nexample : 0 < coefficientReal :=\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The fresh importing audit includes the generated binding, packet reader,\ncoefficient decoding and real-value proofs. It rejects dependencies ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The default quotation rules recognize Signature.codec.decode applied to the\ncanonical encoding of its actual signature argument, using the ex",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.FrozenSignature in\nexample : readFirst.toOption =\n some first :=\n readFirst_checked\n\nopen Hex.RCF.FrozenSignature in\nexample : readSecond.toOpt",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The cubic packet retains frozen numerical node and nested-moment signatures\nfor its rational predecessor. A signature's serialization identit",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RootContext.packWith\nthen assembles an actual native root context from a closed retained parent and\nits checked descriptor. It keeps the exis",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The same decoded coefficient can be interpreted through the owner's ordinary\nreal model of the packed context, retaining its selected value a",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF in\nopen RootContextCases in\nopen RootHeaderPacket in\nexample : model.value coefficient =\n realRoot :=\n value_checked\n\nopen Hex.RCF in\nopen Root",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The packing budget covers context and signature proof construction. Model\nconstruction is checked separately; its cost is not included in tha",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RootPrepare.prepareWith\nprepares the native context of a reconstructed descriptor for subsequent\nquotation. It checks closed inputs and the e",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.RCF.RealCoefficients in\nmeta def prepareRootContext\n (reader clean : Expr)\n (scalar : RootQuote.DecoderM) :\n Reif",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Run this action and subsequent quotation in one RootQuote.runWith request.\nCombine its decoder with the exact predecessor's scalar and signat",
+ "overflow": 0
+ }
+ ]
+ },
+ {
+ "label": "narrow",
+ "width": 390,
+ "targets": [
+ {
+ "tag": "P",
+ "text": "\n RootQuote.quote accepts a Lean\nexpression for an Except ε α replay reader, including structured errors. It returns the reconstructed\ndata and",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A scalar decoder may propose an equality for the exact demanded decode. The\nhelper checks its type, dependencies and kernel proof before usin",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For example, this helper continues a request's existing budget and returns the\nupdated usage together with the checked equation:",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSuppliedRoot\n (reader : Expr)\n (scalar : RootQuote.Decoder",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a rational predecessor, RationalQuote.decoder supplies these proposals\nwithout a fixed list of permitted numerators. It recognizes canoni",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteRationalRoot\n (reader registry : Expr)\n (config : Reify.Co",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The registry argument is a Lean expression of type\nHex.RealClosure.BaseContext.Registry. This helper supplies scalar equations;\nit does not r",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The cubic regression reads a\nsupplied replay for X³−3 on the open interval (−8,8). A fresh public consumer\nproves that the accepted descripto",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A reader that rejects its input or replay returns structured invalid-provider\nevidence. Non-readers and unsupported shapes raise terminal exc",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Canonical Element.codec decodes remain protected throughout quotation,\nincluding predecessor decodes with an explicit Element.codec head. Exp",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n All quotation regressions use maxHeartbeats := 12000000. The original root and rational\ncases use maxRecDepth := 8192; scalar, sign-packet, s",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n This API does not register a tactic handler or establish complete root coverage.\nThe acceptance equation alone does not authenticate original",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a coefficient in a selected algebraic extension,\nScalarQuote.quote uses the owner's Element.signCodec with supplied checked\nsign facts, t",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Pass the original, fully applied Element.codec expression, retaining its\nimplicit arguments. Reinferring definitionally equal context aliases",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSuppliedScalar\n (codec facts literal : Expr)\n (predecessor",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The monorepo regression imports HexRCF.ScalarQuoteCases. It decodes the\nnonrational coefficient −2√2 in the existing selected positive √2 con",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.SelectedRootTests in\nopen Hex.RCF.ScalarQuoteTests in\nexample :\n Data.original.value restored =\n -2 * Real.sqrt 2 :=\n restored_value\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The fresh audit rechecks 13 reachable quotation-case theorem bodies, including this value\nidentity, with only the standard three axioms and n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Regressions cover continued/exact/exhausted proof budgets, rollback after the\nstrict stage succeeds, missing or mismatched facts, zero withou",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a polynomial over the same selected extension,\nScalarQuote.quotePolyWith\nquotes the coefficient array through its finite sign reader and ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSuppliedPolynomial\n (reader facts : Expr)\n (predecessor : ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The regression polynomial contains two copies of −2√2. The checked original\nreader restores both positions. Its first coefficient has this or",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.SelectedRootTests in\nopen Hex.RCF.SharedQuoteTests in\nexample :\n Data.original.value\n (restored.coeff 0) =\n -2 * Real.sqrt 2 :=\n valu",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The fresh importing audit pins seven reachable theorem bodies and three data\ndefinitions, their actual owner refinement and supplied sign evi",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RootQuote.runWith supplies the transaction for a sequence of quoteWith\nactions. RootQuote.run supplies it for a reader with DecoderM callback",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n This scalar API does not reconstruct provider or predecessor histories,\nproduce missing signs, or install a general source-goal solver. The s",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n ScalarQuote.decoderWith composes checked scalar decoding through several\nselected-field predecessors. Its lookup receives each exact canonica",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSelectedReader\n (reader registry : Expr)\n (factsFor :\n Expr → Reify.Reify",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The two-level regression checks one visit to its selected context followed by\none visit to its selected predecessor. Its lookup adds 19 sourc",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n An ordinary module consumer also runs the callback factory and exports the\nchecked scalar reader equation. Its sign follows from the owner's ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RecursiveScalarPublic in\nexample : restored.sign = 1 := sign\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A fresh importing audit checks the two-level fixture and this public consumer,\nincluding accepted annotated decodes and a charged decline fol",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n ScalarPacket.quoteWith checks a supplied optional sign-packet reader. Its\nprepared context has a checked equality to the original context; a ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSuppliedSignPacket\n (reader prepared same : Expr)\n (predecessor :\n RootQuote.DecoderM) :=",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The regression quotes the parent descriptor and one packet for the polynomial\n−2X at the selected positive square root of 2. The resulting fa",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RealClosure in\nopen Hex.RCF.SelectedRootTests in\nopen Hex.RCF.SignPacketQuote in\nexample :\n Option.map Data.original.value\n (Except.toOption\n ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Quoting the parent and packet in one request consumes 105,037 proof nodes.\nWith the frozen parent and its equality already available, the pac",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The caller still supplies and authenticates the parent history and packet.\nPredecessor arithmetic retains its supplied implementation; this h",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A separate public-module example quotes a packet for X at the selected real\nroot of X³−3. Its context slots retain closed applications of the",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.PublicSignPacket in\nexample :\n coefficientReal =\n Hex.RCF.RootQuoteTests.realRoot :=\n coefficient_value\n\nopen Hex.RCF.PublicSignPacket in\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a dependent match, quotation moves trailing branch-equality proofs along\nthe checked equation for the match's subject. This uses ordinary",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RootHeader.quoteWith\naccepts the complete original RootReplay.readDescriptor application. It quotes\nthat reader, obtains the independently pa",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The public regression constructs a new root and context from that result,\nquotes the sign packet for X with fully numerical graph fields, and",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RootHeaderPacket in\nexample : coefficientReal = realRoot :=\n coefficient_value\n\nopen Hex.RCF.RootHeaderPacket in\nexample : 0 < coefficientReal :=\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The fresh importing audit includes the generated binding, packet reader,\ncoefficient decoding and real-value proofs. It rejects dependencies ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The default quotation rules recognize Signature.codec.decode applied to the\ncanonical encoding of its actual signature argument, using the ex",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.FrozenSignature in\nexample : readFirst.toOption =\n some first :=\n readFirst_checked\n\nopen Hex.RCF.FrozenSignature in\nexample : readSecond.toOpt",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The cubic packet retains frozen numerical node and nested-moment signatures\nfor its rational predecessor. A signature's serialization identit",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RootContext.packWith\nthen assembles an actual native root context from a closed retained parent and\nits checked descriptor. It keeps the exis",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The same decoded coefficient can be interpreted through the owner's ordinary\nreal model of the packed context, retaining its selected value a",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF in\nopen RootContextCases in\nopen RootHeaderPacket in\nexample : model.value coefficient =\n realRoot :=\n value_checked\n\nopen Hex.RCF in\nopen Root",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The packing budget covers context and signature proof construction. Model\nconstruction is checked separately; its cost is not included in tha",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RootPrepare.prepareWith\nprepares the native context of a reconstructed descriptor for subsequent\nquotation. It checks closed inputs and the e",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.RCF.RealCoefficients in\nmeta def prepareRootContext\n (reader clean : Expr)\n (scalar : RootQuote.DecoderM) :\n Reif",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Run this action and subsequent quotation in one RootQuote.runWith request.\nCombine its decoder with the exact predecessor's scalar and signat",
+ "overflow": 0
+ }
+ ]
+ }
+]
\ No newline at end of file
diff --git a/reports/data/hexrcf-root-preparation/context.json b/reports/data/hexrcf-root-preparation/context.json
new file mode 100644
index 0000000000..323e31d381
--- /dev/null
+++ b/reports/data/hexrcf-root-preparation/context.json
@@ -0,0 +1,559 @@
+{
+ "source_commit": "1875bff14eff22279fcffb1d58b498784ab5f17a",
+ "source_tree": "f6f9ca0b7b2c60da0496b4d454e5e66793d3c15d",
+ "baseline_commit": "e92beebc18c626ad94d0e64791b23239cdfdb9bb",
+ "sources": {
+ ".github/workflows/ci.yml": "bf3ef0c4e00ef2397ef5857a629a391e24252b864c093198b08775b6977c563d",
+ "AGENTS.md": "4e0a48cf49a61e56ed84c8b28e232b5bfad29f2da20571377692be6e1c316f30",
+ "HexManual/Chapters/HexRCF/RootQuote.lean": "347d0587879e4c95c8dbbb81503b8d36a635de73e06451a2167571321301f649",
+ "HexManual/Chapters/HexRCF/RootTableQuote.lean": "88c50284803d69ccdceee1f0c7d892f19143b1dca60a6f7f502303da07d079cc",
+ "HexRCF/README.md": "3830d758a8a75d59df1a6dd01f59204a86858b5eda3e43a78f9e9e9c2d769a8a",
+ "HexRCF/SPEC/hex-rcf.md": "df8c6bb2435a2794faa36bc77e41f4c936f06ae149f29c3e68fe0d79f4ebfafb",
+ "HexRCF/Tactic.lean": "09d895ba1dd2c1af0bfffca197494f2614380ded268ff13e4e0b02fea22b9224",
+ "HexRealClosure/Algebraic.lean": "d05f9fb72fe9544ae9ddc685dff17080f876aa4c99c70e8992d511e011f6a454",
+ "HexRealClosure/ContextData.lean": "ca29790752b8d25f10d03a9877690a5ff40f1fdf6815c96fe9693941206e662c",
+ "HexRealClosure/SignCodec.lean": "7126323c97b77204386795a0f252f1babfd0ed7f3dba7ee3927a99b9d5c1852a",
+ "HexRealClosure/SignFacts.lean": "9c22837e93e6f50cc96310163e352ac608fbcfbd6275edab33751da2fd84f47c",
+ "HexRealClosure/SignatureCodecTests.lean": "ffc72777523ac0e92b563481804bdfb581fb0173fe7a021009737d57959b4462",
+ "HexRealClosure/TowerContext.lean": "6ef8b87b2d81cb177505a4bbc88befa078b20578cedd49e836d850753c203ee3",
+ "PLAN.md": "e94a60324486913b4a04650edd617c4ff8bef469dc7fd311adea8407c6662ea0",
+ "SPEC/real-closure-execution.md": "bc0948ad7de6969baaed89c0b3052cb0d21d64d634f8a336f9a7dde446b057f5",
+ "adapters/HexRCF/RealCoefficients.lean": "f16eff0302ef0296fc034f59619d232be1921c2f06247dca69db4c53c06c68de",
+ "adapters/HexRCF/RealCoefficients/RationalQuote.lean": "675e2ba065b696f257adefc07fe30ddb0190f321d86005444579ea5a0744bdf5",
+ "adapters/HexRCF/RealCoefficients/RealModel.lean": "712b4fd3edff8eaa6f93e501da5debf04529d1ea8c11a18389820f866d179c43",
+ "adapters/HexRCF/RealCoefficients/Reify.lean": "ea8474b9e253f93a1583064ca99ec0bf376dadf5457fd60b57e9e18460cf449c",
+ "adapters/HexRCF/RealCoefficients/RootContext.lean": "792176eab63e5e62b759a10893569946ef6d019566b8116c85237b3e16fcdb86",
+ "adapters/HexRCF/RealCoefficients/RootHeader.lean": "681f2a964bc30f65a92a0fb1a58b4d4013eb396df37ca813962702065fb46261",
+ "adapters/HexRCF/RealCoefficients/RootPrepare.lean": "de72a8e3ac4adb13365801476467bf691e630d0952b018ccecd88846c3bdb025",
+ "adapters/HexRCF/RealCoefficients/RootQuote.lean": "849643cacfe40a89c6f23a7da0be063ff2cd780cdbbd2f1f36e890c19902af3b",
+ "adapters/HexRCF/RealCoefficients/ScalarPacket.lean": "9ae62bea85dab43ec01329defa9f788af4843e74b24f40f6c6f1b28adaadc6bf",
+ "adapters/HexRCF/RealCoefficients/ScalarQuote.lean": "fee2617a998f29d05c8959b484060ac1d719359c6d851a8ff6699fa9cb370acc",
+ "adapters/HexRCF/RealCoefficients/SignatureQuote.lean": "c3bb71b52c2a544b902bc256b3a162e1c3c4e7f94ae6b21808914e67109710eb",
+ "adapters/HexRealClosureTheory/Algebraic.lean": "2495153acbe4e468521913a2f5d6569831cd05f5ee48d5ddb26fc31a43438c7e",
+ "adapters/HexRealClosureTheory/SignFacts.lean": "c2b8cf96de0cccc2c0c3cbe83f0afd7c40ab9736b75f377ec5bfedc0907f34e3",
+ "adapters/HexRealClosureTheory/TowerModel.lean": "70d0e57e8ecc78eb9b7675d875157462d27cf9494d49d72bba019eaa6dd1d788",
+ "conformance/HexRCF/DependentQuote.lean": "519876284605f5077abd4dbeddd5ca9aa0921460ba8f2c7dbf237e4b184c92c4",
+ "conformance/HexRCF/DependentQuoteData.lean": "48bfdfa8e62d87233a96c525d5157b57f831964a521674dc33ea094ceb51be0a",
+ "conformance/HexRCF/DependentQuoteProofs.lean": "b0d510908b8f64e31236f5d06812e89121b48a3d5375ad3d63915a9b5853c297",
+ "conformance/HexRCF/DependentScalarProofs.lean": "9e8da19d71e1496babd31ecb13430d74abb5f383738d47cbc1bc066b27902cfe",
+ "conformance/HexRCF/DependentScalarQuote.lean": "e20dd7346c337dd17126c394965f268e568706730f475844d7c0907051224933",
+ "conformance/HexRCF/FrozenSignatureConformance.lean": "8e7d432aecb87fb89bb188e4c579e86fb5c3348c5430f1e2b1a00f1f820a940e",
+ "conformance/HexRCF/FrozenSignatureProofs.lean": "55de6da9b0b3dc2d1e384d6c838d13294287c44060afb8e70aa2a0c8e01a81cb",
+ "conformance/HexRCF/PublicSignPacket.lean": "c32d73c5634376907b965e1ea6cf69352fdda1f1945ce2f34a378cc217778102",
+ "conformance/HexRCF/PublicSignPacketControls.lean": "b4f98bd8ef190a361dd7752d4d5ece0cfbd862ff4face5a06dfabecf87096028",
+ "conformance/HexRCF/PublicSignPacketProofs.lean": "1889c6da5afae5ab2324e88aa06d7148a3f305af347e0b86507a8d5f3801a92d",
+ "conformance/HexRCF/PublicSignPacketValues.lean": "72705dba30f04f986188903fb49b983c6f0a664895116fca8bd8b6b46b6517e5",
+ "conformance/HexRCF/RationalQuoteConformance.lean": "947d8da0a708a95cca5334682e3084c505c9c16e645c3763bfbda0adb53a36b6",
+ "conformance/HexRCF/RootContextConformance.lean": "0c52084609ec3de8afd51330a7d2cc97f7bae1d8b2bbc421138783940fc7db37",
+ "conformance/HexRCF/RootContextProofs.lean": "5c4d52f98b5cd720e7f7cc6822da91b6bc80b3213fa6ba87b3b3acd19d5e274a",
+ "conformance/HexRCF/RootHeaderBudget.lean": "db30b6b7781fabd238ea2c934477e5ae281cc6cd905f11848ce46eb66ef45fe0",
+ "conformance/HexRCF/RootHeaderControls.lean": "aca063af3bfe475166aef92193f162c25a0e53eea094087cf334406a3d513157",
+ "conformance/HexRCF/RootHeaderPacket.lean": "e924a3b799cfff2573e2861e3533be94147a6505aa11837a99dc8985ba0ae7dc",
+ "conformance/HexRCF/RootHeaderProofs.lean": "92eb1c4e4fd785543286fc1d3ad8fad11dccac57e5267893a12a87ba37d77410",
+ "conformance/HexRCF/RootHeaderValues.lean": "de9a8fc7c2e9371cbd3324eb700180411e49865dbc6535a74d2c882f74e38e13",
+ "conformance/HexRCF/RootPrepareControls.lean": "5a6e3731eac813867b34e9f902a2f7d5f090b2fae6af9c2b859a3be76b68ae85",
+ "conformance/HexRCF/RootPreparePacket.lean": "e33b5b2921ec13559eb4d6b1d8a3f3cc5ccfd4dd7deb66753806c3f3b39e7a8b",
+ "conformance/HexRCF/RootPrepareProofs.lean": "0acb47e3bb5175f6cb4af362bdc53a5e995b8534850c88298b7230b07cc02988",
+ "conformance/HexRCF/RootPreparePublic.lean": "a9e09cbe8d1287b97dde71ad1c6dbe149cfbacb6f81f41a8493ee802416d0805",
+ "conformance/HexRCF/RootQuoteCases.lean": "602d15ef501e969183bffbda7fb3c0f00a174ba5c2dbc35370ee7fce896944dd",
+ "conformance/HexRCF/RootQuoteConformance.lean": "e329ff2abf7d26cdccdaa63c8c25154c4af50493cd288b35b731efb586957b5f",
+ "conformance/HexRCF/RootQuoteData.lean": "faa259d129d5c65a063c7143e45d5d9d19573ed49862aa5ecb3978ff389cb514",
+ "conformance/HexRCF/RootQuoteSource.lean": "aca1654efc1a452aca8ef573bb8ea3a435a4e1e18a4dca854d9bcc8e350d511d",
+ "conformance/HexRCF/RootTableQuote/Conformance.lean": "c19a69b2c5bb9238ae0322e9df9f48fcad3856bb2e2e5f43ef8bf28cc049b81f",
+ "conformance/HexRCF/SelectedRoot/KernelCheck.lean": "12e7e2e3f4667a76dc89c4b36796bff177f3c187b81adc5eb5e049ff1ce6669d",
+ "conformance/HexRCF/SignPacketProofs.lean": "86f2e8740de57e74fae8029059a1607818105d3bf4028bb4f902145ef328cd18",
+ "conformance/HexRCF/SignPacketQuote.lean": "f75edcf7edc30beb0bc5e401b3b23f7d5275bf26bdaa96f8b0bb36b51964abfb",
+ "conformance/HexRCF/SignatureQuoteConformance.lean": "26f16c37cb9e0d5c09a082787f4a66673437adbf998023fd5e9625db16ff5d3f",
+ "experiments/KernelReplay/AxiomClosure.lean": "f49377265f05f52b633b10a59255a03731e08d022cc54763de9851c5b5325034",
+ "lake-manifest.json": "fd2dc4df30cd44e4d30568489d616e7bcc8a78747500139134be56f35ae746a4",
+ "lakefile.lean": "8d24ad957a60f49f23125b5619cf3750579c7a066210b6c4dfd467bed04312fc",
+ "lean-toolchain": "bc84812c94489d1e3e191baa1dc10d5eb684382d7fe9d2a5ab085e72c1c67e47",
+ "libraries.yml": "14e3dd1c01bb0c369b2216e2733378d61172040fd9f69dd0354d4e1267d9c5c1",
+ "reports/hexrcf-public-packet-quotation.md": "97f61b615ab41c9ea085e9ec6c3ea873bc46e611c09c5a179f29efd4309dfc09",
+ "reports/hexrcf-root-context.md": "fa967a71370454f5d1fcdb757ebf6ab6fa669538f253c3cc6cb6b6f826361c8a",
+ "reports/hexrcf-root-header-quotation.md": "62ecb8f293a9144b8a8a0bdc4910c473bd87063162bb656b94f1be53eb2e4617",
+ "reports/hexrcf-root-preparation.md": "23b6fc84e7b54447e224a166228f275f9ad239c90b2c6c8e4ea38d2f93e55cef",
+ "reports/hexrcf-sign-packet-quotation.md": "64adc6438ad1593d1018e14f2757cb6193614db26141af9c0c76d359084d9d99"
+ },
+ "unchanged_guards": [
+ "conformance/HexRCF/SelectedRoot/KernelCheck.lean",
+ "experiments/KernelReplay/AxiomClosure.lean",
+ "AGENTS.md",
+ "PLAN.md",
+ ".github/workflows/ci.yml"
+ ],
+ "artifacts": [
+ {
+ "path": "validation/root-prepare-final-integration-1.log.gz",
+ "bytes": 21698,
+ "sha256": "b07ca2c34690b678a6dbd9d0cf0f6ec684872a02fe8dd7daac752c4dae09bdb7",
+ "uncompressed_sha256": "018ed71cff071ed126604f4947b0a38078314a7a4f8b770c3a64551c8a15423c"
+ },
+ {
+ "path": "validation/root-prepare-controls-1.log.gz",
+ "bytes": 6819,
+ "sha256": "b9fe6b76f3ce5ec30ae303a40e83087ddab0e60abb5c0553eddbba27dc67842d",
+ "uncompressed_sha256": "083fdad1e079c74a59d947e049b757eb38b358e036a2431f1534c2e37ad1e060"
+ },
+ {
+ "path": "validation/root-preparation-render-1.log.gz",
+ "bytes": 15291,
+ "sha256": "cb4a378e874447285ccf34541f4a69a3734213c2b498b8bfae06aff36a1bfb04",
+ "uncompressed_sha256": "a90dfb20bb7ba1cf4dde6cecaf1c31f8b26bfc60b74963373af0daeb51dc95a2"
+ },
+ {
+ "path": "validation/root-preparation-browser-1.log.gz",
+ "bytes": 241,
+ "sha256": "f3ea6c061c78d3b1aaec26154b1f040fb1fd3614b8d69c51b615998a92fb6586",
+ "uncompressed_sha256": "8ee80254b034252fd93288e859cb90084dbdd250181c9ab11f6598fccf6a6531"
+ },
+ {
+ "path": "validation/metadata.json",
+ "bytes": 1169,
+ "sha256": "f7bdf6cd0ed95646565025db0c417f526bbe0ead6e4a31c907aaf11457ff325a"
+ },
+ {
+ "path": "validation/root-preparation-metadata-copyright.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "validation/root-preparation-metadata-lines.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "validation/root-preparation-metadata-dag.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "validation/root-preparation-metadata-admissions.log.gz",
+ "bytes": 100,
+ "sha256": "86c87a2ada5a49d30e4cd149bf8df52d3fb00b84114c38699923e6ac6e77bb5a",
+ "uncompressed_sha256": "8bf794423604b32f2d2d8a505029ff9a7cf277c93c236dccff21af2e2aeaefb1"
+ },
+ {
+ "path": "validation/root-preparation-metadata-diff.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "validation/root-preparation-metadata-selected-admissions.log.gz",
+ "bytes": 134,
+ "sha256": "d55221e0ffeb29a3ec10e0d9e5b5b33cb73ee6b07257374713f37e32c30e2d01",
+ "uncompressed_sha256": "a1811b8166a1759d3b63598254853433e541a984dfd7e2cd00ddd78745709090"
+ },
+ {
+ "path": "validation/root-preparation-metadata-relative.log.gz",
+ "bytes": 107,
+ "sha256": "2fbbc46ff305eb8a378fb5c4f90619def7b965f57d985c5d9903523e40e4597c",
+ "uncompressed_sha256": "1f32fbcb8bc06ce3201ba26b1b3f1b550ace2ab7c34610b7effe41d98e26e193"
+ },
+ {
+ "path": "validation/memory-policy.txt.gz",
+ "bytes": 242,
+ "sha256": "be57345ae3b27a8145cfa645e9bab52c9cec6135fbeb86816b83c71e6ac98405",
+ "uncompressed_sha256": "bcd60928bece986758499f7160c443b9a722ebe3ab645c2038a0968c19ed3b55"
+ },
+ {
+ "path": "validation/run-bounded.sh",
+ "bytes": 302,
+ "sha256": "63bc5f97337e6b039bb3a9b1ba2a500be96fd1c2a2f73b43dae284aa9b18dda8"
+ },
+ {
+ "path": "validation/metadata-driver.py.txt",
+ "bytes": 3289,
+ "sha256": "2fd7de57f5635663232a04e6b4f61d5451879e10bf71030f62a7c0183abc3737"
+ },
+ {
+ "path": "validation/integration-targets.txt",
+ "bytes": 496,
+ "sha256": "0845fd1e0ce18dbcdce9e8d2fad6bf24e33884bc8e4fcc16c018a5785e1fea76"
+ },
+ {
+ "path": "validation/compiled-sizes.json",
+ "bytes": 2498,
+ "sha256": "b463346e62e70488b585f7bb43249c5058959f81b39ac60c027813c9ae721957"
+ },
+ {
+ "path": "captures/browser.mjs",
+ "bytes": 5605,
+ "sha256": "e9d40a5b517a419e8863c0bb663fa71bf4baad31605852b66c6d38d652c2d651"
+ },
+ {
+ "path": "captures/inspection.json",
+ "bytes": 4968,
+ "sha256": "d8e3b1a0e4daaa3194a581c0f4fd7a6a9c5a1c8fabbc94833f19ac93ce2d599c"
+ },
+ {
+ "path": "captures/section-overflow.json",
+ "bytes": 26708,
+ "sha256": "8e5ce7bdf00cc9e758bea062f75c7ce8a3bb9f4f50306df85a1a3e32e55d3fb6"
+ },
+ {
+ "path": "validation/render.lean.txt",
+ "bytes": 206,
+ "sha256": "664d37e07421cd5f5ee5df6e4fdb3f18fb67b1e58e3688267ff6ca6909180ef3"
+ },
+ {
+ "path": "validation/render-lakefile.lean.txt",
+ "bytes": 1825,
+ "sha256": "c0930bd3e5680bd8b52d15bd2fb4e5e43dbfd5c0b85d80e4c3244faf65f384aa"
+ },
+ {
+ "path": "validation/render-lake-manifest.json",
+ "bytes": 6334,
+ "sha256": "6ee53eeef0c9336cd671e6bc4605ca7e097b73af8541fc2bdb92a941dc3974d2"
+ },
+ {
+ "path": "captures/root-preparation-desktop-introduction.png",
+ "bytes": 269185,
+ "sha256": "daa449407164b23be9e6260988c51f196659a31b8f3bc62e452206be068b3098"
+ },
+ {
+ "path": "captures/root-preparation-desktop-example.png",
+ "bytes": 280172,
+ "sha256": "4847868d998543a9863838fb87fc02d3aafe681513f4bda6143c33c6ca5b5c1b"
+ },
+ {
+ "path": "captures/root-preparation-desktop-budget.png",
+ "bytes": 272829,
+ "sha256": "6bb6f8e53cd5d313afc56779ecd5e5dbb95ccc5e70ca9a327f2f01c9d217efbb"
+ },
+ {
+ "path": "captures/root-preparation-narrow-introduction.png",
+ "bytes": 100759,
+ "sha256": "cd1846954f4a9b98aacdd395e6a7806074b7a1f9aa4de6c61a1c7743294932b1"
+ },
+ {
+ "path": "captures/root-preparation-narrow-example.png",
+ "bytes": 96963,
+ "sha256": "1cfdf74abd46befd8abb3faf9f807012210665cdab32d8d1be75bee8c02f1ee1"
+ },
+ {
+ "path": "captures/root-preparation-narrow-budget.png",
+ "bytes": 99363,
+ "sha256": "6c89fa23861eafd5848303b24f68fbbaaa3e2aec6a2d283b4094c877c1f0494e"
+ },
+ {
+ "path": "diagnostics/root-prepare-audit-1.log.gz",
+ "bytes": 7475,
+ "sha256": "f15ba51a9999d5cd61619d7ea240b062f361439e9d416689748b3977f592770b",
+ "uncompressed_sha256": "52b59aa8f4118fb2e0bb4baeb9afa8109bfa9e0e9c46fb8a23a4f94cd7f57fea"
+ },
+ {
+ "path": "diagnostics/root-prepare-audit-2-progress.log.gz",
+ "bytes": 1328,
+ "sha256": "99226a2210ff834e05782214e3083054cc8a3c5caae9690f71ae2a56b3c212dc",
+ "uncompressed_sha256": "e1ffdcd6f2bef879efd59a0daa9f02f4a619dd8005a79bbe06d7004bc613f132"
+ },
+ {
+ "path": "diagnostics/root-prepare-audit-2.log.gz",
+ "bytes": 7467,
+ "sha256": "197a0b7ca733c7102f57bcd3d0814555c91e752c9fb78fa2472f925a9f87d2d4",
+ "uncompressed_sha256": "5c98e573c607c309f0b98b71bfe9b26a8610a9abe845086f21157031fa82183d"
+ },
+ {
+ "path": "diagnostics/root-prepare-core-1.log.gz",
+ "bytes": 5468,
+ "sha256": "cffdc7edc008583b2127800f896fce1ffde785f72cd049c79dc873e21f1d2005",
+ "uncompressed_sha256": "1d9c19ce2082fd176264dc4216dbf049650b1d5e007b31ef923636824b022b11"
+ },
+ {
+ "path": "diagnostics/root-prepare-core-2.log.gz",
+ "bytes": 5143,
+ "sha256": "57f45d8b3381cdb9aaa09d5bf12e0aaa0083f733d61839db9f609c11384202c4",
+ "uncompressed_sha256": "257b6a5708420b6ea539b77e858aef9b6c242cb7fec9a47359be2aaf2c0584ab"
+ },
+ {
+ "path": "diagnostics/root-prepare-core-3.log.gz",
+ "bytes": 5139,
+ "sha256": "803033a3a1c7127c249c91d44b3cbf8bf4ce21b01250e43f19af5aee5558cd25",
+ "uncompressed_sha256": "fc361e24265d0f347b9e64567f6e8e49518a325d2cc8c209f169eedc7bc70373"
+ },
+ {
+ "path": "diagnostics/root-prepare-dag-1.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "diagnostics/root-prepare-dag-2.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "diagnostics/root-prepare-import-1.log.gz",
+ "bytes": 7114,
+ "sha256": "62c16dd900203e5f6264f4433ad91a3f7eeaa1c15bd79ad89ec6f558b2a102f6",
+ "uncompressed_sha256": "ea448ee87438ca841b3dd785d8c1c6b12371c75b6461f62c5a9e44f68e2c59f0"
+ },
+ {
+ "path": "diagnostics/root-prepare-import-2.log.gz",
+ "bytes": 6711,
+ "sha256": "ade1831f321bc986cb91a666ed88ff7e7906d6104b4d5f056b58ea0093243b7e",
+ "uncompressed_sha256": "1a57d1891a51c664f59a8c31605acd6eaa005d10701d5939b89081d214057fef"
+ },
+ {
+ "path": "diagnostics/root-prepare-inspect-1.log.gz",
+ "bytes": 7500,
+ "sha256": "7f72ab80bf7720228757c9fcac108bdff05b3b678f8bb500056421b9556bcdae",
+ "uncompressed_sha256": "a6e7257825e6f36bdad61be86b6faf0cea6757feb37c84a9caf0644551c09e4b"
+ },
+ {
+ "path": "diagnostics/root-prepare-inspect-2.log.gz",
+ "bytes": 8131,
+ "sha256": "84aa12b5194f2a85c78a4244fba84f1a6e84f68adf3f608884f2b64296987463",
+ "uncompressed_sha256": "e8d38c1cad51f82c19f25b641103085d1998ba50f2ab1b503d9cb0327d2e9650"
+ },
+ {
+ "path": "diagnostics/root-prepare-legacy-1.log.gz",
+ "bytes": 12803,
+ "sha256": "e06734436fb34440319d7bf450f98216448aecce4a8533dac2b5eaddfc0077be",
+ "uncompressed_sha256": "6609447788b6e6e7c4da03ed7fcf0198b203e6c6db6b0874fce2cb5d22505910"
+ },
+ {
+ "path": "diagnostics/root-prepare-legacy-2.log.gz",
+ "bytes": 8392,
+ "sha256": "0ed1377918b26e023d4a394c019ecdd5a0bd205bd86dda2be972188d1cee9464",
+ "uncompressed_sha256": "a72d9a98131282e85812ae8581ec8e0edcdffbb15ed5af2b33851f013ab5ea3c"
+ },
+ {
+ "path": "diagnostics/root-prepare-legacy-3.log.gz",
+ "bytes": 10455,
+ "sha256": "1a7e77ea6cd1147f772ed9670e98fca0ad6e5bab2b0bc399d95d6a24ca00eb3c",
+ "uncompressed_sha256": "f0f7b99a76814326cacd8ca2082c0d30150017a3551e01a97af628f51e16485d"
+ },
+ {
+ "path": "diagnostics/root-prepare-packet-1.log.gz",
+ "bytes": 6692,
+ "sha256": "4581f8f92eda013e45401709914bf6f95bd5f8c2ee3a6e9f88d49e206623fba8",
+ "uncompressed_sha256": "14d19e454f2d83b730e490700d2d5cd7a1add43ae3548b246061491bd47c49c1"
+ },
+ {
+ "path": "diagnostics/root-prepare-packet-2.log.gz",
+ "bytes": 6688,
+ "sha256": "900c7b138b417901fc5d04ee058325385542bf0fb0827da422ff44772c0495c0",
+ "uncompressed_sha256": "27c684f207fddf8521c90d1daab52fcc159aee5b6820c45358d49964fadc1dc9"
+ },
+ {
+ "path": "diagnostics/root-prepare-public-1.log.gz",
+ "bytes": 6693,
+ "sha256": "763165b33f34b7c9665e69a78151f7666849e8dddafe361df9bdef7c666455e0",
+ "uncompressed_sha256": "aaa03e7ff2b7adf34e9ca654236cb6554ba15e1c0ef2b0a5bc2c21c75635178e"
+ },
+ {
+ "path": "diagnostics/root-quote-enclosing-audit-1-progress.log.gz",
+ "bytes": 3255,
+ "sha256": "160d6055469a0c5fee22657f003e805e48f73359546d72301854bed912787bf7",
+ "uncompressed_sha256": "7c2d62152e4a069e77f2839b274dca5a2c4cd5144d8f918cce80e4064869a6bb"
+ },
+ {
+ "path": "diagnostics/root-quote-enclosing-audit-1.log.gz",
+ "bytes": 10703,
+ "sha256": "8024b586d32c62c9b0ecc15a3ae6dfc1146d002fc23cdbb22789a721bbee9421",
+ "uncompressed_sha256": "6ecf176329dded8e5d6b5fd604e39b8c925f2e5f5a14a8b8ba3b0a71dcd8ec17"
+ },
+ {
+ "path": "diagnostics/root-quote-enclosing-core-1.log.gz",
+ "bytes": 5161,
+ "sha256": "4d0976d590c9ccae2263668289bf6d7ec6e9c3536cce22cfeb4f16f804cfd064",
+ "uncompressed_sha256": "8f3cb09ff08a7c33bbeac767d708edb391766d2a3d40a43e4d8156e126dcb201"
+ },
+ {
+ "path": "diagnostics/root-quote-enclosing-packet-1.log.gz",
+ "bytes": 7182,
+ "sha256": "94b28aee6718a15bb59018e8b8bcfc65b5a8219debeab0ca2748d04d020544fe",
+ "uncompressed_sha256": "72eccdf64c861c5e38dfbe1449f1d48b2a82a23abfcdbb8d7ece5654d6252e4e"
+ },
+ {
+ "path": "diagnostics/root-quote-enclosing-packet-2.log.gz",
+ "bytes": 7133,
+ "sha256": "df8e23c89013f94d8468905b5471219bf37361c417db0aaf424ab8066e49449c",
+ "uncompressed_sha256": "7365833d06f9e20de9e155669418e3e5131ded2c612306eedf07d7b4ee36a76d"
+ },
+ {
+ "path": "diagnostics/root-quote-enclosing-packet-3.log.gz",
+ "bytes": 6693,
+ "sha256": "2cb1caf256de10d1a9e7cafb32a41846f31fdf78dc70960f7dca59ddc2d50319",
+ "uncompressed_sha256": "338ad175846b17cf916223f89b610d4e3ffd95758e9ccf4f9427da239a598883"
+ },
+ {
+ "path": "diagnostics/root-decode-inline-1.log.gz",
+ "bytes": 7075,
+ "sha256": "264edf374d1c72da57cea522e056196a7bc1c205558adfb612556bf4c9193f5b",
+ "uncompressed_sha256": "f822190f35554c8c107b852eaad8dca1fdfe8013f6e226187818d80a42d801d0"
+ },
+ {
+ "path": "diagnostics/root-decode-inline-2.log.gz",
+ "bytes": 7043,
+ "sha256": "9d9b5985c5c3a41c6fcee7340bbfc19173071bf82e3f974addeb75c4ce03d37e",
+ "uncompressed_sha256": "63906684aee1654705fea8679947f8440b0442a885c76557b3710c53c56e5025"
+ },
+ {
+ "path": "diagnostics/root-decode-inline-3.log.gz",
+ "bytes": 7203,
+ "sha256": "4de61456bbed5e0c09eb16475217a92af1aec748a62af378c895dadc18bbb564",
+ "uncompressed_sha256": "31099ecea05210d5c47958e378397f37f52ec0fee00f3fde5485976132e07de9"
+ },
+ {
+ "path": "diagnostics/root-decode-inline-4.log.gz",
+ "bytes": 7075,
+ "sha256": "459b3a9993071afc1a559a4fe95d95c129949c4e34c43eecd35f8bb4f2734b03",
+ "uncompressed_sha256": "21e0ca7149db34be85d50f104ef45cefec16b2a96c573c4ce0b8e0029191c513"
+ },
+ {
+ "path": "diagnostics/root-decode-inline-5.log.gz",
+ "bytes": 8244,
+ "sha256": "362d6e6f753771f73e8614a73f427cdc50594e86333d5f368c5b92e442997a4b",
+ "uncompressed_sha256": "c2618bc956cbf763d0b288cfc17a990cea35b4951301d79fd5fe10171fde5fc7"
+ },
+ {
+ "path": "diagnostics/root-decode-inline-6.log.gz",
+ "bytes": 7102,
+ "sha256": "b770c46318bbf50d011d0e7b6b499cb7832042babd576a25c959b9cc9fe9aa2d",
+ "uncompressed_sha256": "97756e66341546f69e7fe97463d2e3e13b9ec3f4fc5b8558084e76a72f463c7b"
+ },
+ {
+ "path": "diagnostics/root-decode-inline-7.log.gz",
+ "bytes": 6644,
+ "sha256": "e8e198f1b41544375dfcdced82eac7a834c983924ed3997ce4876caca12a6028",
+ "uncompressed_sha256": "11e460a49cba45e933627bd6512df002ef76b64c1b98796c77d1f5df4c39a724"
+ },
+ {
+ "path": "diagnostics/retained-inline-1.log.gz",
+ "bytes": 7101,
+ "sha256": "610c5cafe80271058b8444c11d2a2ad841994ebb18a609fb196103e2592bc7a4",
+ "uncompressed_sha256": "ed7d3a7224178cf6528056965d5e124db9d78ba4354fa5c34418dc327ece52f2"
+ },
+ {
+ "path": "diagnostics/retained-inline-2.log.gz",
+ "bytes": 6745,
+ "sha256": "d9668a18c1c9b46597b375c76a101caae2e5a56de8280fa085b669e341042d2c",
+ "uncompressed_sha256": "b9f320f624cfeeb4159bb74000fce485e5d30f99014f9c0a159b7bcbd1a5bee7"
+ },
+ {
+ "path": "diagnostics/retained-inline-audit-1.log.gz",
+ "bytes": 7116,
+ "sha256": "e0ae5ceede3912ba6eb5614015afd3e3f94971af2148a65211c5f4e24634d5c2",
+ "uncompressed_sha256": "3b2fb243a847b2f9f4e857f07c363675249663f67120d952b9b84430da4a2738"
+ },
+ {
+ "path": "diagnostics/root-preparation-metadata-diagnostic-2.log.gz",
+ "bytes": 291,
+ "sha256": "53d7be0c84cf19ba2da7208cb97f2f8c7bab10cb8690e110e5cd77b16318c169",
+ "uncompressed_sha256": "f7065688e869cfb1ef8055a4b89c349fd179e2281631866f7f5249cea5b4a965"
+ }
+ ],
+ "validation": {
+ "integration": "validation/root-prepare-final-integration-1.log.gz",
+ "controls": "validation/root-prepare-controls-1.log.gz",
+ "audit": "validation/root-prepare-final-integration-1.log.gz",
+ "render": "validation/root-preparation-render-1.log.gz",
+ "browser": "validation/root-preparation-browser-1.log.gz"
+ },
+ "diagnostics": {
+ "diagnostics/root-prepare-audit-1.log.gz": "Development artifact; not final acceptance or a matched performance sample. The recorded exit/signal is authoritative.",
+ "diagnostics/root-prepare-audit-2-progress.log.gz": "Development artifact; not final acceptance or a matched performance sample. The recorded exit/signal is authoritative.",
+ "diagnostics/root-prepare-audit-2.log.gz": "Development artifact; not final acceptance or a matched performance sample. The recorded exit/signal is authoritative.",
+ "diagnostics/root-prepare-core-1.log.gz": "Development artifact; not final acceptance or a matched performance sample. The recorded exit/signal is authoritative.",
+ "diagnostics/root-prepare-core-2.log.gz": "Development artifact; not final acceptance or a matched performance sample. The recorded exit/signal is authoritative.",
+ "diagnostics/root-prepare-core-3.log.gz": "Development artifact; not final acceptance or a matched performance sample. The recorded exit/signal is authoritative.",
+ "diagnostics/root-prepare-dag-1.log.gz": "Development artifact; not final acceptance or a matched performance sample. The recorded exit/signal is authoritative.",
+ "diagnostics/root-prepare-dag-2.log.gz": "Development artifact; not final acceptance or a matched performance sample. The recorded exit/signal is authoritative.",
+ "diagnostics/root-prepare-import-1.log.gz": "Development artifact; not final acceptance or a matched performance sample. The recorded exit/signal is authoritative.",
+ "diagnostics/root-prepare-import-2.log.gz": "Development artifact; not final acceptance or a matched performance sample. The recorded exit/signal is authoritative.",
+ "diagnostics/root-prepare-inspect-1.log.gz": "Development artifact; not final acceptance or a matched performance sample. The recorded exit/signal is authoritative.",
+ "diagnostics/root-prepare-inspect-2.log.gz": "Development artifact; not final acceptance or a matched performance sample. The recorded exit/signal is authoritative.",
+ "diagnostics/root-prepare-legacy-1.log.gz": "Development artifact; not final acceptance or a matched performance sample. The recorded exit/signal is authoritative.",
+ "diagnostics/root-prepare-legacy-2.log.gz": "Development artifact; not final acceptance or a matched performance sample. The recorded exit/signal is authoritative.",
+ "diagnostics/root-prepare-legacy-3.log.gz": "Development artifact; not final acceptance or a matched performance sample. The recorded exit/signal is authoritative.",
+ "diagnostics/root-prepare-packet-1.log.gz": "Development artifact; not final acceptance or a matched performance sample. The recorded exit/signal is authoritative.",
+ "diagnostics/root-prepare-packet-2.log.gz": "Development artifact; not final acceptance or a matched performance sample. The recorded exit/signal is authoritative.",
+ "diagnostics/root-prepare-public-1.log.gz": "Development artifact; not final acceptance or a matched performance sample. The recorded exit/signal is authoritative.",
+ "diagnostics/root-quote-enclosing-audit-1-progress.log.gz": "Development artifact; not final acceptance or a matched performance sample. The recorded exit/signal is authoritative.",
+ "diagnostics/root-quote-enclosing-audit-1.log.gz": "Development artifact; not final acceptance or a matched performance sample. The recorded exit/signal is authoritative.",
+ "diagnostics/root-quote-enclosing-core-1.log.gz": "Development artifact; not final acceptance or a matched performance sample. The recorded exit/signal is authoritative.",
+ "diagnostics/root-quote-enclosing-packet-1.log.gz": "Development artifact; not final acceptance or a matched performance sample. The recorded exit/signal is authoritative.",
+ "diagnostics/root-quote-enclosing-packet-2.log.gz": "Development artifact; not final acceptance or a matched performance sample. The recorded exit/signal is authoritative.",
+ "diagnostics/root-quote-enclosing-packet-3.log.gz": "Development artifact; not final acceptance or a matched performance sample. The recorded exit/signal is authoritative.",
+ "diagnostics/root-decode-inline-1.log.gz": "Development artifact; not final acceptance or a matched performance sample. The recorded exit/signal is authoritative.",
+ "diagnostics/root-decode-inline-2.log.gz": "Development artifact; not final acceptance or a matched performance sample. The recorded exit/signal is authoritative.",
+ "diagnostics/root-decode-inline-3.log.gz": "Development artifact; not final acceptance or a matched performance sample. The recorded exit/signal is authoritative.",
+ "diagnostics/root-decode-inline-4.log.gz": "Development artifact; not final acceptance or a matched performance sample. The recorded exit/signal is authoritative.",
+ "diagnostics/root-decode-inline-5.log.gz": "Development artifact; not final acceptance or a matched performance sample. The recorded exit/signal is authoritative.",
+ "diagnostics/root-decode-inline-6.log.gz": "Development artifact; not final acceptance or a matched performance sample. The recorded exit/signal is authoritative.",
+ "diagnostics/root-decode-inline-7.log.gz": "Development artifact; not final acceptance or a matched performance sample. The recorded exit/signal is authoritative.",
+ "diagnostics/retained-inline-1.log.gz": "Development artifact; not final acceptance or a matched performance sample. The recorded exit/signal is authoritative.",
+ "diagnostics/retained-inline-2.log.gz": "Development artifact; not final acceptance or a matched performance sample. The recorded exit/signal is authoritative.",
+ "diagnostics/retained-inline-audit-1.log.gz": "Development artifact; not final acceptance or a matched performance sample. The recorded exit/signal is authoritative.",
+ "diagnostics/root-preparation-metadata-diagnostic-2.log.gz": "Development artifact; not final acceptance or a matched performance sample. The recorded exit/signal is authoritative."
+ },
+ "visually_inspected_captures": [
+ "captures/root-preparation-desktop-introduction.png",
+ "captures/root-preparation-desktop-example.png",
+ "captures/root-preparation-desktop-budget.png",
+ "captures/root-preparation-narrow-introduction.png",
+ "captures/root-preparation-narrow-example.png",
+ "captures/root-preparation-narrow-budget.png"
+ ],
+ "audit_counts": {
+ "retained root/context": [
+ 807,
+ 63,
+ 855
+ ],
+ "root/header packet": [
+ 710,
+ 66,
+ 761
+ ],
+ "root context": [
+ 718,
+ 68,
+ 771
+ ],
+ "public packet": [
+ 692,
+ 67,
+ 749
+ ],
+ "frozen signature": [
+ 23,
+ 7,
+ 16
+ ],
+ "dependent quotation": [
+ 114,
+ 14,
+ 64
+ ],
+ "dependent scalar": [
+ 61,
+ 4,
+ 56
+ ]
+ },
+ "body_scope": [
+ "HexRCF.RootPreparePacket",
+ "HexRCF.RootPreparePublic",
+ "HexRCF.RealCoefficients.RootPrepare",
+ "HexRCF.RealCoefficients.RootQuote",
+ "HexRCF.RealCoefficients.RootHeader",
+ "HexRCF.RootHeaderPacket",
+ "HexRCF.RootQuoteCases",
+ "HexRCF.RootQuoteSource",
+ "HexRCF.RootQuoteData",
+ "HexRCF.RealCoefficients.ScalarPacket",
+ "HexRCF.RealCoefficients.ScalarPacketQuote"
+ ],
+ "diagnostic_limits": "Interrupted retained-inline and root-prepare audits and the verbose root-decode-inline-7 trace are incomplete, not passes. Compatibility attempts retain obsolete count/budget failures before observed inventories were updated. Initial public export failed because private helpers leaked into a theorem type; the final ordinary public consumer fixes it. The initial general context abstraction failed the non-Boolean dependent-reader kernel check; the final fallback is restricted to Boolean conversions. Metadata diagnostics record prose/interpolated diagnostic false positives before the scan scope was made explicit.",
+ "scope": "Checked reconstructed-context retention and exact original anonymous cubic packet quotation, ordinary public acceptance/sign consumers, scoped actual-body producer diagnostics and full transitive standard-three axiom closure. No source/provider authentication, frozen history, complete-cell tactic or algebraic-completeness claim.",
+ "measurement_limits": "Dependency-reusing build observations and compiled file bytes/hashes only; no matched comparison, scaling, unique-DAG, expanded-work, physical-sharing or speedup claim."
+}
diff --git a/reports/data/hexrcf-root-preparation/diagnostics/retained-inline-1.log.gz b/reports/data/hexrcf-root-preparation/diagnostics/retained-inline-1.log.gz
new file mode 100644
index 0000000000..c1bd755409
Binary files /dev/null and b/reports/data/hexrcf-root-preparation/diagnostics/retained-inline-1.log.gz differ
diff --git a/reports/data/hexrcf-root-preparation/diagnostics/retained-inline-2.log.gz b/reports/data/hexrcf-root-preparation/diagnostics/retained-inline-2.log.gz
new file mode 100644
index 0000000000..84e4f8c4d1
Binary files /dev/null and b/reports/data/hexrcf-root-preparation/diagnostics/retained-inline-2.log.gz differ
diff --git a/reports/data/hexrcf-root-preparation/diagnostics/retained-inline-audit-1.log.gz b/reports/data/hexrcf-root-preparation/diagnostics/retained-inline-audit-1.log.gz
new file mode 100644
index 0000000000..840a5ddd46
Binary files /dev/null and b/reports/data/hexrcf-root-preparation/diagnostics/retained-inline-audit-1.log.gz differ
diff --git a/reports/data/hexrcf-root-preparation/diagnostics/root-decode-inline-1.log.gz b/reports/data/hexrcf-root-preparation/diagnostics/root-decode-inline-1.log.gz
new file mode 100644
index 0000000000..1d462f234a
Binary files /dev/null and b/reports/data/hexrcf-root-preparation/diagnostics/root-decode-inline-1.log.gz differ
diff --git a/reports/data/hexrcf-root-preparation/diagnostics/root-decode-inline-2.log.gz b/reports/data/hexrcf-root-preparation/diagnostics/root-decode-inline-2.log.gz
new file mode 100644
index 0000000000..f843df9920
Binary files /dev/null and b/reports/data/hexrcf-root-preparation/diagnostics/root-decode-inline-2.log.gz differ
diff --git a/reports/data/hexrcf-root-preparation/diagnostics/root-decode-inline-3.log.gz b/reports/data/hexrcf-root-preparation/diagnostics/root-decode-inline-3.log.gz
new file mode 100644
index 0000000000..ea8f3c2a75
Binary files /dev/null and b/reports/data/hexrcf-root-preparation/diagnostics/root-decode-inline-3.log.gz differ
diff --git a/reports/data/hexrcf-root-preparation/diagnostics/root-decode-inline-4.log.gz b/reports/data/hexrcf-root-preparation/diagnostics/root-decode-inline-4.log.gz
new file mode 100644
index 0000000000..207b0daebf
Binary files /dev/null and b/reports/data/hexrcf-root-preparation/diagnostics/root-decode-inline-4.log.gz differ
diff --git a/reports/data/hexrcf-root-preparation/diagnostics/root-decode-inline-5.log.gz b/reports/data/hexrcf-root-preparation/diagnostics/root-decode-inline-5.log.gz
new file mode 100644
index 0000000000..62fc5e420c
Binary files /dev/null and b/reports/data/hexrcf-root-preparation/diagnostics/root-decode-inline-5.log.gz differ
diff --git a/reports/data/hexrcf-root-preparation/diagnostics/root-decode-inline-6.log.gz b/reports/data/hexrcf-root-preparation/diagnostics/root-decode-inline-6.log.gz
new file mode 100644
index 0000000000..ca352e355d
Binary files /dev/null and b/reports/data/hexrcf-root-preparation/diagnostics/root-decode-inline-6.log.gz differ
diff --git a/reports/data/hexrcf-root-preparation/diagnostics/root-decode-inline-7.log.gz b/reports/data/hexrcf-root-preparation/diagnostics/root-decode-inline-7.log.gz
new file mode 100644
index 0000000000..88e215bd98
Binary files /dev/null and b/reports/data/hexrcf-root-preparation/diagnostics/root-decode-inline-7.log.gz differ
diff --git a/reports/data/hexrcf-root-preparation/diagnostics/root-preparation-metadata-diagnostic-2.log.gz b/reports/data/hexrcf-root-preparation/diagnostics/root-preparation-metadata-diagnostic-2.log.gz
new file mode 100644
index 0000000000..cb099a7885
Binary files /dev/null and b/reports/data/hexrcf-root-preparation/diagnostics/root-preparation-metadata-diagnostic-2.log.gz differ
diff --git a/reports/data/hexrcf-root-preparation/diagnostics/root-prepare-audit-1.log.gz b/reports/data/hexrcf-root-preparation/diagnostics/root-prepare-audit-1.log.gz
new file mode 100644
index 0000000000..c3b863dbb4
Binary files /dev/null and b/reports/data/hexrcf-root-preparation/diagnostics/root-prepare-audit-1.log.gz differ
diff --git a/reports/data/hexrcf-root-preparation/diagnostics/root-prepare-audit-2-progress.log.gz b/reports/data/hexrcf-root-preparation/diagnostics/root-prepare-audit-2-progress.log.gz
new file mode 100644
index 0000000000..a309b71aae
Binary files /dev/null and b/reports/data/hexrcf-root-preparation/diagnostics/root-prepare-audit-2-progress.log.gz differ
diff --git a/reports/data/hexrcf-root-preparation/diagnostics/root-prepare-audit-2.log.gz b/reports/data/hexrcf-root-preparation/diagnostics/root-prepare-audit-2.log.gz
new file mode 100644
index 0000000000..3ca7acb976
Binary files /dev/null and b/reports/data/hexrcf-root-preparation/diagnostics/root-prepare-audit-2.log.gz differ
diff --git a/reports/data/hexrcf-root-preparation/diagnostics/root-prepare-core-1.log.gz b/reports/data/hexrcf-root-preparation/diagnostics/root-prepare-core-1.log.gz
new file mode 100644
index 0000000000..c91f1cfe18
Binary files /dev/null and b/reports/data/hexrcf-root-preparation/diagnostics/root-prepare-core-1.log.gz differ
diff --git a/reports/data/hexrcf-root-preparation/diagnostics/root-prepare-core-2.log.gz b/reports/data/hexrcf-root-preparation/diagnostics/root-prepare-core-2.log.gz
new file mode 100644
index 0000000000..8b5d962d60
Binary files /dev/null and b/reports/data/hexrcf-root-preparation/diagnostics/root-prepare-core-2.log.gz differ
diff --git a/reports/data/hexrcf-root-preparation/diagnostics/root-prepare-core-3.log.gz b/reports/data/hexrcf-root-preparation/diagnostics/root-prepare-core-3.log.gz
new file mode 100644
index 0000000000..c7641ef0fa
Binary files /dev/null and b/reports/data/hexrcf-root-preparation/diagnostics/root-prepare-core-3.log.gz differ
diff --git a/reports/data/hexrcf-root-preparation/diagnostics/root-prepare-dag-1.log.gz b/reports/data/hexrcf-root-preparation/diagnostics/root-prepare-dag-1.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-root-preparation/diagnostics/root-prepare-dag-1.log.gz differ
diff --git a/reports/data/hexrcf-root-preparation/diagnostics/root-prepare-dag-2.log.gz b/reports/data/hexrcf-root-preparation/diagnostics/root-prepare-dag-2.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-root-preparation/diagnostics/root-prepare-dag-2.log.gz differ
diff --git a/reports/data/hexrcf-root-preparation/diagnostics/root-prepare-import-1.log.gz b/reports/data/hexrcf-root-preparation/diagnostics/root-prepare-import-1.log.gz
new file mode 100644
index 0000000000..c2cb1ba724
Binary files /dev/null and b/reports/data/hexrcf-root-preparation/diagnostics/root-prepare-import-1.log.gz differ
diff --git a/reports/data/hexrcf-root-preparation/diagnostics/root-prepare-import-2.log.gz b/reports/data/hexrcf-root-preparation/diagnostics/root-prepare-import-2.log.gz
new file mode 100644
index 0000000000..9a6becc54b
Binary files /dev/null and b/reports/data/hexrcf-root-preparation/diagnostics/root-prepare-import-2.log.gz differ
diff --git a/reports/data/hexrcf-root-preparation/diagnostics/root-prepare-inspect-1.log.gz b/reports/data/hexrcf-root-preparation/diagnostics/root-prepare-inspect-1.log.gz
new file mode 100644
index 0000000000..b15417fe13
Binary files /dev/null and b/reports/data/hexrcf-root-preparation/diagnostics/root-prepare-inspect-1.log.gz differ
diff --git a/reports/data/hexrcf-root-preparation/diagnostics/root-prepare-inspect-2.log.gz b/reports/data/hexrcf-root-preparation/diagnostics/root-prepare-inspect-2.log.gz
new file mode 100644
index 0000000000..66b8850c8d
Binary files /dev/null and b/reports/data/hexrcf-root-preparation/diagnostics/root-prepare-inspect-2.log.gz differ
diff --git a/reports/data/hexrcf-root-preparation/diagnostics/root-prepare-legacy-1.log.gz b/reports/data/hexrcf-root-preparation/diagnostics/root-prepare-legacy-1.log.gz
new file mode 100644
index 0000000000..e6c1c4757b
Binary files /dev/null and b/reports/data/hexrcf-root-preparation/diagnostics/root-prepare-legacy-1.log.gz differ
diff --git a/reports/data/hexrcf-root-preparation/diagnostics/root-prepare-legacy-2.log.gz b/reports/data/hexrcf-root-preparation/diagnostics/root-prepare-legacy-2.log.gz
new file mode 100644
index 0000000000..713288c46c
Binary files /dev/null and b/reports/data/hexrcf-root-preparation/diagnostics/root-prepare-legacy-2.log.gz differ
diff --git a/reports/data/hexrcf-root-preparation/diagnostics/root-prepare-legacy-3.log.gz b/reports/data/hexrcf-root-preparation/diagnostics/root-prepare-legacy-3.log.gz
new file mode 100644
index 0000000000..73027ab9f2
Binary files /dev/null and b/reports/data/hexrcf-root-preparation/diagnostics/root-prepare-legacy-3.log.gz differ
diff --git a/reports/data/hexrcf-root-preparation/diagnostics/root-prepare-packet-1.log.gz b/reports/data/hexrcf-root-preparation/diagnostics/root-prepare-packet-1.log.gz
new file mode 100644
index 0000000000..ee520cf81d
Binary files /dev/null and b/reports/data/hexrcf-root-preparation/diagnostics/root-prepare-packet-1.log.gz differ
diff --git a/reports/data/hexrcf-root-preparation/diagnostics/root-prepare-packet-2.log.gz b/reports/data/hexrcf-root-preparation/diagnostics/root-prepare-packet-2.log.gz
new file mode 100644
index 0000000000..9adefcfe48
Binary files /dev/null and b/reports/data/hexrcf-root-preparation/diagnostics/root-prepare-packet-2.log.gz differ
diff --git a/reports/data/hexrcf-root-preparation/diagnostics/root-prepare-public-1.log.gz b/reports/data/hexrcf-root-preparation/diagnostics/root-prepare-public-1.log.gz
new file mode 100644
index 0000000000..068b0d94e9
Binary files /dev/null and b/reports/data/hexrcf-root-preparation/diagnostics/root-prepare-public-1.log.gz differ
diff --git a/reports/data/hexrcf-root-preparation/diagnostics/root-quote-enclosing-audit-1-progress.log.gz b/reports/data/hexrcf-root-preparation/diagnostics/root-quote-enclosing-audit-1-progress.log.gz
new file mode 100644
index 0000000000..7a9991c5ab
Binary files /dev/null and b/reports/data/hexrcf-root-preparation/diagnostics/root-quote-enclosing-audit-1-progress.log.gz differ
diff --git a/reports/data/hexrcf-root-preparation/diagnostics/root-quote-enclosing-audit-1.log.gz b/reports/data/hexrcf-root-preparation/diagnostics/root-quote-enclosing-audit-1.log.gz
new file mode 100644
index 0000000000..96c6ab7fc9
Binary files /dev/null and b/reports/data/hexrcf-root-preparation/diagnostics/root-quote-enclosing-audit-1.log.gz differ
diff --git a/reports/data/hexrcf-root-preparation/diagnostics/root-quote-enclosing-core-1.log.gz b/reports/data/hexrcf-root-preparation/diagnostics/root-quote-enclosing-core-1.log.gz
new file mode 100644
index 0000000000..89cc0fa17e
Binary files /dev/null and b/reports/data/hexrcf-root-preparation/diagnostics/root-quote-enclosing-core-1.log.gz differ
diff --git a/reports/data/hexrcf-root-preparation/diagnostics/root-quote-enclosing-packet-1.log.gz b/reports/data/hexrcf-root-preparation/diagnostics/root-quote-enclosing-packet-1.log.gz
new file mode 100644
index 0000000000..062926abfd
Binary files /dev/null and b/reports/data/hexrcf-root-preparation/diagnostics/root-quote-enclosing-packet-1.log.gz differ
diff --git a/reports/data/hexrcf-root-preparation/diagnostics/root-quote-enclosing-packet-2.log.gz b/reports/data/hexrcf-root-preparation/diagnostics/root-quote-enclosing-packet-2.log.gz
new file mode 100644
index 0000000000..d9d666dfb8
Binary files /dev/null and b/reports/data/hexrcf-root-preparation/diagnostics/root-quote-enclosing-packet-2.log.gz differ
diff --git a/reports/data/hexrcf-root-preparation/diagnostics/root-quote-enclosing-packet-3.log.gz b/reports/data/hexrcf-root-preparation/diagnostics/root-quote-enclosing-packet-3.log.gz
new file mode 100644
index 0000000000..a55d1fb249
Binary files /dev/null and b/reports/data/hexrcf-root-preparation/diagnostics/root-quote-enclosing-packet-3.log.gz differ
diff --git a/reports/data/hexrcf-root-preparation/validation/compiled-sizes.json b/reports/data/hexrcf-root-preparation/validation/compiled-sizes.json
new file mode 100644
index 0000000000..6298aa89f3
--- /dev/null
+++ b/reports/data/hexrcf-root-preparation/validation/compiled-sizes.json
@@ -0,0 +1,65 @@
+{
+ "scope": "Built artifact sizes only; no unique DAG, expanded-work, scaling or speedup claim. Final source-bound record still required.",
+ "artifacts": [
+ {
+ "path": ".lake/build/lib/lean/HexRCF/RealCoefficients/RootQuote.olean",
+ "bytes": 1210864,
+ "sha256": "db4506f5fdece6a5f4260c24d89a434b49fedf50ca09255a40861308166dbed1"
+ },
+ {
+ "path": ".lake/build/lib/lean/HexRCF/RealCoefficients/RootQuote.olean.private",
+ "bytes": 2686536,
+ "sha256": "6a91448f533816e282b133426b65c0309a968de09a39ba1954916b42936e4161"
+ },
+ {
+ "path": ".lake/build/lib/lean/HexRCF/RealCoefficients/RootQuote.ir",
+ "bytes": 1175592,
+ "sha256": "eb49c314b21d9c63f4713c60084de1d7e41f072d55d264a44beed6268d51cc7f"
+ },
+ {
+ "path": ".lake/build/lib/lean/HexRCF/RealCoefficients/RootPrepare.olean",
+ "bytes": 256624,
+ "sha256": "8bf43072fa3facad42ff80f6dceae9c205df1a9aedd9266975fd67ed51288ab9"
+ },
+ {
+ "path": ".lake/build/lib/lean/HexRCF/RealCoefficients/RootPrepare.olean.private",
+ "bytes": 397456,
+ "sha256": "fb2926ea7e9a2248f88445c0db600b096f273e770583f6357791fc19f4df3c99"
+ },
+ {
+ "path": ".lake/build/lib/lean/HexRCF/RealCoefficients/RootPrepare.ir",
+ "bytes": 211320,
+ "sha256": "b7fae9dcb90ffbd575e87595bb6cd3f73e089d9b02bbf5c7f34f4756418a9519"
+ },
+ {
+ "path": ".lake/build/lib/lean/HexRCF/RootPreparePacket.olean",
+ "bytes": 388832,
+ "sha256": "958ba6edf6ffcaf8805ddc781b240d6a0b34e5c75b12c11b4d52d249b03fb31c"
+ },
+ {
+ "path": ".lake/build/lib/lean/HexRCF/RootPreparePacket.olean.private",
+ "bytes": 3450432,
+ "sha256": "39987ec16032451a7b1a22e2fc3c9b5e381ac00ea1758f7fca899ce307100243"
+ },
+ {
+ "path": ".lake/build/lib/lean/HexRCF/RootPreparePacket.ir",
+ "bytes": 845168,
+ "sha256": "3fcf11b6968e977be5a468d94e6e71a924a50067705a637b1a048ff7ca5942b3"
+ },
+ {
+ "path": ".lake/build/lib/lean/HexRCF/RootPreparePublic.olean",
+ "bytes": 10440,
+ "sha256": "b334b5c1be037b8f5f650e6f34f60647485aff5c4d408d7932307ebc3e9521d8"
+ },
+ {
+ "path": ".lake/build/lib/lean/HexRCF/RootPreparePublic.olean.private",
+ "bytes": 4840,
+ "sha256": "a9ede16def77dd958889cdda3d4392df3008db0c325930859952b692134d1be8"
+ },
+ {
+ "path": ".lake/build/lib/lean/HexRCF/RootPreparePublic.ir",
+ "bytes": 1432,
+ "sha256": "96ecd92467c261ebb21e27bc899baa6a8ea268fda3d25708336d52e76c217767"
+ }
+ ]
+}
diff --git a/reports/data/hexrcf-root-preparation/validation/integration-targets.txt b/reports/data/hexrcf-root-preparation/validation/integration-targets.txt
new file mode 100644
index 0000000000..692b581501
--- /dev/null
+++ b/reports/data/hexrcf-root-preparation/validation/integration-targets.txt
@@ -0,0 +1,19 @@
+HexRCF
+HexRCF.Conformance
+HexRCF.RealCoefficientTactic
+HexRCF.RootPrepareProofs
+HexRCF.RootPreparePublic
+HexRCF.RootQuoteConformance
+HexRCF.RationalQuoteConformance
+HexRCF.ScalarQuoteConformance
+HexRCF.DependentQuoteProofs
+HexRCF.DependentScalarProofs
+HexRCF.PublicSignPacketControls
+HexRCF.PublicSignPacketProofs
+HexRCF.SignPacketProofs
+HexRCF.RootHeaderBudget
+HexRCF.RootHeaderControls
+HexRCF.RootHeaderProofs
+HexRCF.RootContextConformance
+HexRCF.RootContextProofs
+HexRCF.FrozenSignatureProofs
diff --git a/reports/data/hexrcf-root-preparation/validation/memory-policy.txt.gz b/reports/data/hexrcf-root-preparation/validation/memory-policy.txt.gz
new file mode 100644
index 0000000000..42e4629e9f
Binary files /dev/null and b/reports/data/hexrcf-root-preparation/validation/memory-policy.txt.gz differ
diff --git a/reports/data/hexrcf-root-preparation/validation/metadata-driver.py.txt b/reports/data/hexrcf-root-preparation/validation/metadata-driver.py.txt
new file mode 100644
index 0000000000..0f9a034e10
--- /dev/null
+++ b/reports/data/hexrcf-root-preparation/validation/metadata-driver.py.txt
@@ -0,0 +1,57 @@
+from pathlib import Path
+import importlib.util
+import json
+import re
+import subprocess
+
+repo = Path.cwd()
+task = Path('/home/kim/.codex/tasks/hex-10358')
+results = []
+
+def run(name, command):
+ log = task / f'root-preparation-metadata-{name}.log'
+ with log.open('w') as output:
+ result = subprocess.run(command, stdout=output, stderr=subprocess.STDOUT)
+ results.append(dict(name=name, command=command, log=log.name, exit_code=result.returncode))
+
+run('copyright', ['python3', 'scripts/check_copyright_headers.py'])
+run('lines', ['python3', 'scripts/check_file_line_counts.py', '--base', 'origin/main'])
+run('dag', ['python3', 'scripts/check_dag.py'])
+run('admissions', ['python3', 'scripts/ci/check_named_admissions.py'])
+run('diff', ['git', 'diff', '--check'])
+spec = importlib.util.spec_from_file_location('admissions', repo / 'scripts/ci/check_named_admissions.py')
+admissions = importlib.util.module_from_spec(spec)
+spec.loader.exec_module(admissions)
+paths = subprocess.check_output(['git', 'diff', '--name-only'], text=True).splitlines()
+paths += subprocess.check_output(['git', 'ls-files', '--others', '--exclude-standard'], text=True).splitlines()
+# Verso prose is not Lean code for this source scanner. Its checked examples
+# remain covered by the complete HexManual build and ordinary axiom audits.
+lean = [path for path in paths if path.endswith('.lean') and not path.startswith('HexManual/')]
+for path in lean:
+ tracked = subprocess.run(['git', 'ls-files', '--error-unmatch', path], capture_output=True).returncode == 0
+ if tracked:
+ # Existing audit diagnostics can contain words such as "axiom" in
+ # interpolated text. Check the additions; new modules are checked whole.
+ diff = subprocess.check_output(['git', 'diff', '--unified=0', '--', path], text=True)
+ source = '\n'.join(line[1:] for line in diff.splitlines() if line.startswith('+') and not line.startswith('+++'))
+ else:
+ source = (repo / path).read_text()
+ assert not admissions.find_admissions(admissions.code_only(source)), path
+(task / 'root-preparation-metadata-selected-admissions.log').write_text(f'{len(lean)} changed/new Lean files: added code and complete new modules contain no admissions; complete adapter import cones scanned separately; Verso prose excluded\n')
+results.append(dict(name='selected-admissions', log='root-preparation-metadata-selected-admissions.log', exit_code=0))
+links = 0
+for path in paths:
+ if not path.endswith(('.lean', '.md')):
+ continue
+ for match in re.finditer(r'\]\(([^)]+)\)', (repo / path).read_text()):
+ target = match.group(1).split('#')[0]
+ if not target or '://' in target:
+ continue
+ assert (repo / path).parent.joinpath(target).exists(), (path, target)
+ links += 1
+(task / 'root-preparation-metadata-relative.log').write_text(f'{links} relative filesystem links exist in changed/new Lean and Markdown files; external URLs excluded\n')
+results.append(dict(name='relative', log='root-preparation-metadata-relative.log', exit_code=0))
+(task / 'root-preparation-metadata.json').write_text(json.dumps(results, indent=2) + '\n')
+for result in results:
+ print(result['name'], result['exit_code'])
+assert all(result['exit_code'] == 0 for result in results)
diff --git a/reports/data/hexrcf-root-preparation/validation/metadata.json b/reports/data/hexrcf-root-preparation/validation/metadata.json
new file mode 100644
index 0000000000..04ce4a2bff
--- /dev/null
+++ b/reports/data/hexrcf-root-preparation/validation/metadata.json
@@ -0,0 +1,60 @@
+[
+ {
+ "name": "copyright",
+ "command": [
+ "python3",
+ "scripts/check_copyright_headers.py"
+ ],
+ "log": "root-preparation-metadata-copyright.log",
+ "exit_code": 0
+ },
+ {
+ "name": "lines",
+ "command": [
+ "python3",
+ "scripts/check_file_line_counts.py",
+ "--base",
+ "origin/main"
+ ],
+ "log": "root-preparation-metadata-lines.log",
+ "exit_code": 0
+ },
+ {
+ "name": "dag",
+ "command": [
+ "python3",
+ "scripts/check_dag.py"
+ ],
+ "log": "root-preparation-metadata-dag.log",
+ "exit_code": 0
+ },
+ {
+ "name": "admissions",
+ "command": [
+ "python3",
+ "scripts/ci/check_named_admissions.py"
+ ],
+ "log": "root-preparation-metadata-admissions.log",
+ "exit_code": 0
+ },
+ {
+ "name": "diff",
+ "command": [
+ "git",
+ "diff",
+ "--check"
+ ],
+ "log": "root-preparation-metadata-diff.log",
+ "exit_code": 0
+ },
+ {
+ "name": "selected-admissions",
+ "log": "root-preparation-metadata-selected-admissions.log",
+ "exit_code": 0
+ },
+ {
+ "name": "relative",
+ "log": "root-preparation-metadata-relative.log",
+ "exit_code": 0
+ }
+]
diff --git a/reports/data/hexrcf-root-preparation/validation/render-lake-manifest.json b/reports/data/hexrcf-root-preparation/validation/render-lake-manifest.json
new file mode 100644
index 0000000000..3d143ddfad
--- /dev/null
+++ b/reports/data/hexrcf-root-preparation/validation/render-lake-manifest.json
@@ -0,0 +1,211 @@
+{
+ "version": "1.3.0",
+ "packagesDir": ".lake/packages",
+ "packages": [
+ {
+ "type": "path",
+ "scope": "",
+ "name": "Hex",
+ "manifestFile": "lake-manifest.json",
+ "inherited": false,
+ "dir": "/home/kim/worktrees/hex-dev/hex-dev-issue-10358",
+ "copy": false,
+ "configFile": "lakefile.lean"
+ },
+ {
+ "url": "https://github.com/leanprover-community/mathlib4.git",
+ "type": "git",
+ "subDir": null,
+ "scope": "",
+ "rev": "6b7abb3c7686292736be2955bd3eb9ebf63b456a",
+ "name": "mathlib",
+ "manifestFile": "lake-manifest.json",
+ "inputRev": "6b7abb3c7686292736be2955bd3eb9ebf63b456a",
+ "inherited": true,
+ "configFile": "lakefile.lean"
+ },
+ {
+ "url": "https://github.com/TauCetiProject/TauCeti.git",
+ "type": "git",
+ "subDir": null,
+ "scope": "",
+ "rev": "1c497c347f615b3087cb605f8cf743e591376105",
+ "name": "TauCeti",
+ "manifestFile": "lake-manifest.json",
+ "inputRev": "1c497c347f615b3087cb605f8cf743e591376105",
+ "inherited": true,
+ "configFile": "lakefile.toml"
+ },
+ {
+ "url": "https://github.com/kim-em/lean-bench.git",
+ "type": "git",
+ "subDir": null,
+ "scope": "",
+ "rev": "8a37daf1074c3bdbd0da479b55538bad4a0022db",
+ "name": "\u00ablean-bench\u00bb",
+ "manifestFile": "lake-manifest.json",
+ "inputRev": "master",
+ "inherited": true,
+ "configFile": "lakefile.toml"
+ },
+ {
+ "url": "https://github.com/leanprover/nauty-ffi.git",
+ "type": "git",
+ "subDir": null,
+ "scope": "",
+ "rev": "ec8597014d0ae82490a616b855d59a35e6bfa21f",
+ "name": "NautyFFI",
+ "manifestFile": "lake-manifest.json",
+ "inputRev": "ec8597014d0ae82490a616b855d59a35e6bfa21f",
+ "inherited": true,
+ "configFile": "lakefile.lean"
+ },
+ {
+ "url": "https://github.com/leanprover/verso.git",
+ "type": "git",
+ "subDir": null,
+ "scope": "",
+ "rev": "8fc7a297f14d5adc1a551b5b4ecf283c08bd691f",
+ "name": "verso",
+ "manifestFile": "lake-manifest.json",
+ "inputRev": "v4.35.0-rc3",
+ "inherited": true,
+ "configFile": "lakefile.lean"
+ },
+ {
+ "url": "https://github.com/leanprover-community/plausible",
+ "type": "git",
+ "subDir": null,
+ "scope": "leanprover-community",
+ "rev": "fb13df72ecefd8ddbf9291021d7f33a8673eb57b",
+ "name": "plausible",
+ "manifestFile": "lake-manifest.json",
+ "inputRev": "main",
+ "inherited": true,
+ "configFile": "lakefile.toml"
+ },
+ {
+ "url": "https://github.com/leanprover-community/LeanSearchClient",
+ "type": "git",
+ "subDir": null,
+ "scope": "leanprover-community",
+ "rev": "29ff470276c725ae01505d55b17148c18fc7dfd3",
+ "name": "LeanSearchClient",
+ "manifestFile": "lake-manifest.json",
+ "inputRev": "main",
+ "inherited": true,
+ "configFile": "lakefile.toml"
+ },
+ {
+ "url": "https://github.com/leanprover-community/import-graph",
+ "type": "git",
+ "subDir": null,
+ "scope": "leanprover-community",
+ "rev": "10a2cfff285e1c7c2ebc49c0ba22cab0f3c58ee5",
+ "name": "importGraph",
+ "manifestFile": "lake-manifest.json",
+ "inputRev": "main",
+ "inherited": true,
+ "configFile": "lakefile.toml"
+ },
+ {
+ "url": "https://github.com/leanprover-community/ProofWidgets4",
+ "type": "git",
+ "subDir": null,
+ "scope": "leanprover-community",
+ "rev": "c643bbb3c24f8a25f9c14e3a6b1ceb13d01f3de1",
+ "name": "proofwidgets",
+ "manifestFile": "lake-manifest.json",
+ "inputRev": "main",
+ "inherited": true,
+ "configFile": "lakefile.lean"
+ },
+ {
+ "url": "https://github.com/leanprover-community/aesop",
+ "type": "git",
+ "subDir": null,
+ "scope": "leanprover-community",
+ "rev": "a90fbf7b02ff06a0deebf74088dff9e5fe02c9ea",
+ "name": "aesop",
+ "manifestFile": "lake-manifest.json",
+ "inputRev": "master",
+ "inherited": true,
+ "configFile": "lakefile.toml"
+ },
+ {
+ "url": "https://github.com/leanprover-community/quote4",
+ "type": "git",
+ "subDir": null,
+ "scope": "leanprover-community",
+ "rev": "37b0ba0b26109cf9f9c541f0f9557e50cfa1a3b9",
+ "name": "Qq",
+ "manifestFile": "lake-manifest.json",
+ "inputRev": "master",
+ "inherited": true,
+ "configFile": "lakefile.toml"
+ },
+ {
+ "url": "https://github.com/leanprover-community/batteries",
+ "type": "git",
+ "subDir": null,
+ "scope": "leanprover-community",
+ "rev": "33131f4fb10067cb3009bf4db615d9680c1ccd6b",
+ "name": "batteries",
+ "manifestFile": "lake-manifest.json",
+ "inputRev": "main",
+ "inherited": true,
+ "configFile": "lakefile.toml"
+ },
+ {
+ "url": "https://github.com/leanprover/lean4-cli",
+ "type": "git",
+ "subDir": null,
+ "scope": "leanprover",
+ "rev": "843844fa601dd56767b1eb22b7ada5b64d5e567a",
+ "name": "Cli",
+ "manifestFile": "lake-manifest.json",
+ "inputRev": "v4.35.0-rc3",
+ "inherited": true,
+ "configFile": "lakefile.toml"
+ },
+ {
+ "url": "https://github.com/leanprover/illuminate",
+ "type": "git",
+ "subDir": null,
+ "scope": "",
+ "rev": "af451aaa73d8f8025189f228642b6e4fe047ce4f",
+ "name": "illuminate",
+ "manifestFile": "lake-manifest.json",
+ "inputRev": "main",
+ "inherited": true,
+ "configFile": "lakefile.lean"
+ },
+ {
+ "url": "https://github.com/acmepjz/md4lean",
+ "type": "git",
+ "subDir": null,
+ "scope": "",
+ "rev": "31907cc18f48a95384f99cee5582c00fb39e0f67",
+ "name": "MD4Lean",
+ "manifestFile": "lake-manifest.json",
+ "inputRev": "main",
+ "inherited": true,
+ "configFile": "lakefile.lean"
+ },
+ {
+ "url": "https://github.com/leanprover/subverso",
+ "type": "git",
+ "subDir": null,
+ "scope": "",
+ "rev": "d047cb484b2f3598187450935dbcc84d078cb581",
+ "name": "subverso",
+ "manifestFile": "lake-manifest.json",
+ "inputRev": "main",
+ "inherited": true,
+ "configFile": "lakefile.lean"
+ }
+ ],
+ "name": "scalarReviewRender",
+ "lakeDir": ".lake",
+ "fixedToolchain": false
+}
diff --git a/reports/data/hexrcf-root-preparation/validation/render-lakefile.lean.txt b/reports/data/hexrcf-root-preparation/validation/render-lakefile.lean.txt
new file mode 100644
index 0000000000..482f10ddb3
--- /dev/null
+++ b/reports/data/hexrcf-root-preparation/validation/render-lakefile.lean.txt
@@ -0,0 +1,111 @@
+import Lake
+open Lake DSL
+package scalarReviewRender
+require Hex from "/home/kim/worktrees/hex-dev/hex-dev-issue-10358"
+lean_lib ScalarReviewRender
+lean_lib SourceSelectionProbe
+
+lean_lib SourceSelectionEmitter
+
+lean_lib SignPacketEncodedProbe
+
+lean_lib PublicFrameProbe
+
+lean_lib RelativeScalarProbe
+
+lean_lib ScratchRootQuote
+
+lean_lib MajorSource
+lean_lib MajorProbe
+
+lean_lib SignPacketEncodedAudit
+
+lean_lib PacketBodyProbe
+
+lean_lib PacketBodyCheck
+
+lean_lib PacketConversions
+
+lean_lib MomentHeadProof
+
+lean_lib SignatureQuote
+lean_lib SignatureProbe
+
+lean_lib SignatureControls
+lean_lib SignatureAudit
+
+lean_lib SignatureRoundtrip
+
+lean_lib HeaderQuote
+lean_lib HeaderProbe
+
+lean_lib TransportCases
+lean_lib TransportProbe
+
+lean_lib TransportAudit
+
+lean_lib TransportQuote
+lean_lib TransportFixedProbe
+lean_lib TransportFixedAudit
+
+lean_lib OldRootQuote
+lean_lib MixedHeadData
+lean_lib MixedHeadProbe
+
+lean_lib CodecTransportCases
+lean_lib CodecTransportProbe
+lean_lib CodecTransportAudit
+
+lean_lib LiteralCallbackProbe
+lean_lib TransportPacket
+lean_lib TransportPacketValues
+lean_lib TransportPacketAudit
+
+lean_lib ContextQuote
+
+lean_lib MultiCodecQuote
+lean_lib MultiCodecAudit
+
+lean_lib HeaderPacket
+
+lean_lib HeaderPacketAudit
+
+lean_lib HeaderPacketValues
+
+lean_lib HeaderPacketControls
+
+lean_lib HeaderControls
+
+lean_lib HelperOrderData
+lean_lib HelperOrderProbe
+
+lean_lib PackedHeader
+
+lean_lib PackedHeaderAudit
+
+lean_lib RootDecode
+
+lean_lib RootDecodeProbe
+
+lean_lib RootDecodeAudit
+
+lean_lib FrameBindingProbe
+
+lean_lib GraphEncodingProbe
+
+lean_lib RootDecodeInlineProbe
+
+lean_lib PreparedRootDecode
+
+lean_lib PreparedInlineProbe
+
+lean_lib ReflexiveDecode
+
+lean_lib RetainedInlineProbe
+
+lean_lib RetainedInlineAudit
+
+lean_lib RootPrepareImport
+lean_lib RootPreparePrivateImport
+
+lean_lib RootPrepareInspect
diff --git a/reports/data/hexrcf-root-preparation/validation/render.lean.txt b/reports/data/hexrcf-root-preparation/validation/render.lean.txt
new file mode 100644
index 0000000000..cdcf13e5d6
--- /dev/null
+++ b/reports/data/hexrcf-root-preparation/validation/render.lean.txt
@@ -0,0 +1,5 @@
+import HexManual
+import VersoManual
+#eval Verso.Genre.Manual.manualMain (%doc HexManual)
+ (options := ["--output", "scalar-review-html",
+ "--without-tex", "--with-html-single", "--without-html-multi"])
diff --git a/reports/data/hexrcf-root-preparation/validation/root-preparation-browser-1.log.gz b/reports/data/hexrcf-root-preparation/validation/root-preparation-browser-1.log.gz
new file mode 100644
index 0000000000..1473147b5d
Binary files /dev/null and b/reports/data/hexrcf-root-preparation/validation/root-preparation-browser-1.log.gz differ
diff --git a/reports/data/hexrcf-root-preparation/validation/root-preparation-metadata-admissions.log.gz b/reports/data/hexrcf-root-preparation/validation/root-preparation-metadata-admissions.log.gz
new file mode 100644
index 0000000000..0ce703cc29
Binary files /dev/null and b/reports/data/hexrcf-root-preparation/validation/root-preparation-metadata-admissions.log.gz differ
diff --git a/reports/data/hexrcf-root-preparation/validation/root-preparation-metadata-copyright.log.gz b/reports/data/hexrcf-root-preparation/validation/root-preparation-metadata-copyright.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-root-preparation/validation/root-preparation-metadata-copyright.log.gz differ
diff --git a/reports/data/hexrcf-root-preparation/validation/root-preparation-metadata-dag.log.gz b/reports/data/hexrcf-root-preparation/validation/root-preparation-metadata-dag.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-root-preparation/validation/root-preparation-metadata-dag.log.gz differ
diff --git a/reports/data/hexrcf-root-preparation/validation/root-preparation-metadata-diff.log.gz b/reports/data/hexrcf-root-preparation/validation/root-preparation-metadata-diff.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-root-preparation/validation/root-preparation-metadata-diff.log.gz differ
diff --git a/reports/data/hexrcf-root-preparation/validation/root-preparation-metadata-lines.log.gz b/reports/data/hexrcf-root-preparation/validation/root-preparation-metadata-lines.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-root-preparation/validation/root-preparation-metadata-lines.log.gz differ
diff --git a/reports/data/hexrcf-root-preparation/validation/root-preparation-metadata-relative.log.gz b/reports/data/hexrcf-root-preparation/validation/root-preparation-metadata-relative.log.gz
new file mode 100644
index 0000000000..edc7c21869
Binary files /dev/null and b/reports/data/hexrcf-root-preparation/validation/root-preparation-metadata-relative.log.gz differ
diff --git a/reports/data/hexrcf-root-preparation/validation/root-preparation-metadata-selected-admissions.log.gz b/reports/data/hexrcf-root-preparation/validation/root-preparation-metadata-selected-admissions.log.gz
new file mode 100644
index 0000000000..132b8af8bf
Binary files /dev/null and b/reports/data/hexrcf-root-preparation/validation/root-preparation-metadata-selected-admissions.log.gz differ
diff --git a/reports/data/hexrcf-root-preparation/validation/root-preparation-render-1.log.gz b/reports/data/hexrcf-root-preparation/validation/root-preparation-render-1.log.gz
new file mode 100644
index 0000000000..1706d6d666
Binary files /dev/null and b/reports/data/hexrcf-root-preparation/validation/root-preparation-render-1.log.gz differ
diff --git a/reports/data/hexrcf-root-preparation/validation/root-prepare-controls-1.log.gz b/reports/data/hexrcf-root-preparation/validation/root-prepare-controls-1.log.gz
new file mode 100644
index 0000000000..51f4ae6752
Binary files /dev/null and b/reports/data/hexrcf-root-preparation/validation/root-prepare-controls-1.log.gz differ
diff --git a/reports/data/hexrcf-root-preparation/validation/root-prepare-final-integration-1.log.gz b/reports/data/hexrcf-root-preparation/validation/root-prepare-final-integration-1.log.gz
new file mode 100644
index 0000000000..c491554807
Binary files /dev/null and b/reports/data/hexrcf-root-preparation/validation/root-prepare-final-integration-1.log.gz differ
diff --git a/reports/data/hexrcf-root-preparation/validation/run-bounded.sh b/reports/data/hexrcf-root-preparation/validation/run-bounded.sh
new file mode 100644
index 0000000000..2cc8636e8a
--- /dev/null
+++ b/reports/data/hexrcf-root-preparation/validation/run-bounded.sh
@@ -0,0 +1,10 @@
+#!/usr/bin/env bash
+set -euo pipefail
+exec systemd-run --user --wait --pipe --collect \
+ --unit=hex-10358-lean-build \
+ --property=MemoryMax=32G \
+ --property=MemorySwapMax=0 \
+ --property=OOMPolicy=kill \
+ --working-directory="$PWD" \
+ --setenv="PATH=$PATH" --setenv=LEAN_NUM_THREADS=2 \
+ "$@"
diff --git a/reports/data/hexrcf-root-preparation/verify.py b/reports/data/hexrcf-root-preparation/verify.py
new file mode 100644
index 0000000000..ce3008792c
--- /dev/null
+++ b/reports/data/hexrcf-root-preparation/verify.py
@@ -0,0 +1,98 @@
+#!/usr/bin/env python3
+"""Verify source-bound preparation proofs, controls and rendered examples."""
+import argparse
+import gzip
+import hashlib
+import json
+from pathlib import Path
+import re
+import subprocess
+
+parser = argparse.ArgumentParser(description=__doc__)
+parser.add_argument('--check-head', action='store_true')
+args = parser.parse_args()
+root = Path(__file__).resolve().parent
+repo = root.parents[2]
+record = json.loads((root / 'context.json').read_text())
+
+def git(*arguments):
+ return subprocess.check_output(['git', *arguments], cwd=repo)
+
+def sha(raw):
+ return hashlib.sha256(raw).hexdigest()
+
+def source(path):
+ return git('show', record['source_commit'] + ':' + path).decode()
+
+def log(key):
+ return gzip.decompress((root / record['validation'][key]).read_bytes()).decode()
+
+assert git('rev-parse', record['source_commit'] + '^{tree}').decode().strip() == record['source_tree']
+for path, digest in record['sources'].items():
+ assert sha(git('show', record['source_commit'] + ':' + path)) == digest, path
+ if args.check_head:
+ assert sha((repo / path).read_bytes()) == digest, path
+if args.check_head:
+ paths = git('diff', '--name-only', record['source_commit']).decode().splitlines()
+ paths += git('ls-files', '--others', '--exclude-standard').decode().splitlines()
+ assert all(path.startswith('reports/') for path in paths), paths
+for path in record['unchanged_guards']:
+ assert git('show', record['baseline_commit'] + ':' + path) == git(
+ 'show', record['source_commit'] + ':' + path), path
+for item in record['artifacts']:
+ raw = (root / item['path']).read_bytes()
+ assert len(raw) == item['bytes'] and sha(raw) == item['sha256'], item['path']
+ if 'uncompressed_sha256' in item:
+ assert sha(gzip.decompress(raw)) == item['uncompressed_sha256'], item['path']
+for key in ['integration', 'controls', 'audit', 'render', 'browser']:
+ text = log(key)
+ assert 'code=exited, status=0/SUCCESS' in text, key
+ assert ('Saved root preparation desktop/narrow screenshots' if key == 'browser'
+ else 'Build completed successfully') in text, key
+integration = log('integration')
+assert 'Built HexManual' in integration
+assert 'full request proof budget=2383805' in integration
+for prefix, expected in record['audit_counts'].items():
+ pattern = re.escape(prefix) + r' actual bodies: (\d+) theorems/(\d+) definitions; nonempty traces=(\d+)'
+ match = re.search(pattern, integration)
+ assert match and list(map(int, match.groups())) == expected, prefix
+assert '96 theorem bodies, 11 definitions' in integration
+assert 'sign packet nonempty diagnostic traces: 97' in integration
+assert 'actual cubic and conditional quotation bodies under kernel producer diagnostics: 256' in integration
+assert 'generic rational quotation: 201 actual theorem bodies' in integration
+assert 'standalone sign packet proofNodes=69973' in integration
+assert 'ordinary module sign packet proofNodes=1168494' in integration
+controls = log('controls')
+assert 'exact/one-below request budget=2381262; caller state restored' in controls
+assert 'wrong-sign rejection restored caller declarations and metavariables' in controls
+for variant in range(3):
+ assert f'malformed retained input refused with caller rollback: variant={variant}' in controls
+audit = source('conformance/HexRCF/RootPrepareProofs.lean')
+scope = re.search(r'let allowed := #\[(.*?)\]', audit, re.S)
+assert scope and re.findall(r'`([A-Za-z0-9_.]+)', scope.group(1)) == record['body_scope']
+assert '#[``Tower.rootData,``Dag.encode]' in audit
+for legacy in ['root_raw', 'subject_read', 'nativeRoot_read']:
+ assert '``Hex.RCF.RootQuoteTests.' + legacy in audit
+core = source('adapters/HexRCF/RealCoefficients/RootPrepare.lean')
+assert 'mkAuxDefinition declaration kind expression (compile := false)' in core
+assert 'charge .proofNodes work.numSteps' in core
+assert 'Meta.simpCore expression simpContext' in core and 'catch' not in core
+public = source('conformance/HexRCF/RootPreparePublic.lean')
+assert 'public import HexRCF.RootPreparePacket' in public and 'import all' not in public
+assert 'RootPreparePacket.read_checked' in public
+metadata = json.loads((root / 'validation/metadata.json').read_text())
+assert {item['name'] for item in metadata} == {
+ 'copyright', 'lines', 'dag', 'admissions', 'selected-admissions', 'relative', 'diff'}
+assert all(item['exit_code'] == 0 for item in metadata)
+memory = gzip.decompress((root / 'validation/memory-policy.txt.gz').read_bytes()).decode()
+assert all(value in memory for value in ['ActiveState=active', 'MemoryMax=34359738368',
+ 'MemorySwapMax=0', 'OOMPolicy=kill', 'LEAN_NUM_THREADS=2'])
+inspection = json.loads((root / 'captures/inspection.json').read_text())
+expected_captures = {(label, kind) for label in ['desktop', 'narrow']
+ for kind in ['introduction', 'example', 'budget']}
+assert {(item['label'], item['kind']) for item in inspection} == expected_captures
+assert all(item['descendantOverflow'] <= 1 and item['targetScrollWidth'] <= item['targetWidth'] + 1
+ for item in inspection)
+assert len(record['visually_inspected_captures']) == 6
+print(f"Verified {len(record['artifacts'])} artifacts/{len(record['sources'])} sources; "
+ '807/63/855 preparation bodies, exact/below budgets and rollback, compatibility, manual and six captures')
diff --git a/reports/data/hexrcf-row-quotation/README.md b/reports/data/hexrcf-row-quotation/README.md
new file mode 100644
index 0000000000..26a8d595f2
--- /dev/null
+++ b/reports/data/hexrcf-row-quotation/README.md
@@ -0,0 +1,20 @@
+# Stored-row quotation evidence
+
+Run `python3 reports/data/hexrcf-row-quotation/verify.py` from the repository.
+Add `--check-head` to require the pinned source files to match the working
+tree. `context.json` records the implementation commit, source hashes,
+artifact hashes, validation logs and compiled-file sizes. The prior
+[tree quotation record](../hexrcf-tree-quotation/README.md) keeps its original
+source pins and is not rewritten.
+
+The retained controls cover stored-row transport, dependent helpers in
+Boolean conditions, exact/below budgets, wrong-goal rejection, caller
+restoration, fresh ordinary-kernel body audits, rational compatibility and
+the complete manual. All eight final captures were actually viewed. The
+initial narrow overflow and intermediate failed runs remain under
+`diagnostics/`.
+
+The previous full-source failure is diagnostic evidence, not an accepted
+certificate. The subsequent production run is outside this focused record.
+There is no complete original-source proof or performance-comparison claim.
+See the [report](../../hexrcf-row-quotation.md) for exact scope and limits.
diff --git a/reports/data/hexrcf-row-quotation/captures/browser.mjs b/reports/data/hexrcf-row-quotation/captures/browser.mjs
new file mode 100644
index 0000000000..b3f6c0d2df
--- /dev/null
+++ b/reports/data/hexrcf-row-quotation/captures/browser.mjs
@@ -0,0 +1,61 @@
+import fs from 'node:fs';
+import {spawn} from 'node:child_process';
+const root=process.argv[2];
+if(!root) throw new Error('Pass the scratch render directory');
+const profile=root+'/row-quotation-profile';
+fs.mkdirSync(profile,{recursive:true});
+fs.rmSync(profile+'/DevToolsActivePort',{force:true});
+const chrome=spawn(process.env.CHROME_BIN || '/home/kim/.cache/ms-playwright/chromium-1243/chrome-linux64/chrome',[
+ '--headless=new','--no-sandbox','--disable-gpu','--allow-file-access-from-files',
+ '--remote-debugging-port=0','--remote-allow-origins=*','--user-data-dir='+profile,'about:blank'],
+ {env:{...process.env,LD_LIBRARY_PATH:fs.readFileSync(root+'/browser-lib-paths.txt','utf8').trim()},stdio:'ignore'});
+let socket;
+try {
+ const portFile=profile+'/DevToolsActivePort';
+ for(let i=0;!fs.existsSync(portFile);i++) {
+ if(i>200||chrome.exitCode!==null) throw new Error('Chrome did not expose CDP');
+ await new Promise(r=>setTimeout(r,100));
+ }
+ const port=fs.readFileSync(portFile,'utf8').split('\n')[0];
+ const tabs=await (await fetch('http://127.0.0.1:'+port+'/json')).json();
+ socket=new WebSocket(tabs.find(t=>t.type==='page').webSocketDebuggerUrl);
+ await new Promise((r,j)=>{socket.onopen=r;socket.onerror=j});
+ let sequence=0;const pending=new Map();let loaded;
+ socket.onmessage=e=>{
+ const msg=JSON.parse(e.data);
+ if(msg.id){const p=pending.get(msg.id);pending.delete(msg.id);msg.error?p.reject(msg.error):p.resolve(msg.result);}
+ if(msg.method==='Page.loadEventFired'&&loaded){loaded();loaded=undefined;}
+ };
+ const call=(method,params={})=>new Promise((resolve,reject)=>{const id=++sequence;pending.set(id,{resolve,reject});socket.send(JSON.stringify({id,method,params}));});
+ await call('Page.enable');
+ const load=new Promise(r=>loaded=r);
+ await call('Page.navigate',{url:'file:///home/kim/.codex/tasks/hex-10358/scalar-review-render/row-review-html/html-single/index.html'});
+ await load;
+ const evaluate=async expression=>{const r=await call('Runtime.evaluate',{expression,returnByValue:true});if(r.exceptionDetails)throw new Error(JSON.stringify(r.exceptionDetails));return r.result.value;};
+ const metadata=[]; const sectionMetadata=[];
+ for(const [label,width] of [['desktop',1440],['narrow',390]]) {
+ await call('Emulation.setDeviceMetricsOverride',{width,height:1000,deviceScaleFactor:1,mobile:false});
+ for(const [kind,phrase] of [['introduction','Checked replay data may occur inside a Boolean condition'],['api','A backend can combine it with its existing scalar decoder'],['example','A backend can combine it with its existing scalar decoder'],['budget','The row controls check positive, zero, negative and false comparisons']] ) {
+ const exact=await evaluate(`(() => {const p=Array.from(document.querySelectorAll('p')).find(e=>e.textContent.replace(/\\s+/g,' ').includes(${JSON.stringify(phrase)}));if(!p)throw new Error('missing paragraph');const target=${JSON.stringify(kind)}==='example'?p.nextElementSibling:p;if(${JSON.stringify(kind)}==='example'&&!target.matches('.hl.lean.block, pre, div:has(code)'))throw new Error('target is not a Lean code block');target.scrollIntoView({block:${JSON.stringify('center')}});return {text:p.textContent,viewport:innerWidth,scrollY,paragraphWidth:p.getBoundingClientRect().width,scrollWidth:p.scrollWidth,targetTag:target.tagName,targetWidth:target.getBoundingClientRect().width,targetScrollWidth:target.scrollWidth,descendantOverflow:Math.max(0,...[target,...target.querySelectorAll('*')].map(e=>e.scrollWidth-e.clientWidth)),overflowElements:[target,...target.querySelectorAll('*')].filter(e=>e.scrollWidth-e.clientWidth>1).map(e=>({tag:e.tagName,classes:e.className,width:e.clientWidth,scroll:e.scrollWidth,text:e.textContent.slice(0,100)})).slice(0,8)};})()`);
+ if(!exact)throw new Error('missing visual target '+kind);
+ await evaluate('new Promise(resolve=>requestAnimationFrame(()=>requestAnimationFrame(resolve)))');
+ const shot=await call('Page.captureScreenshot',{format:'png'});
+ fs.writeFileSync(root+'/'+'row-quotation-'+label+'-'+kind+'.png',Buffer.from(shot.data,'base64'));
+ metadata.push({label,kind,...exact});
+ }
+ sectionMetadata.push(await evaluate(`(() => {
+ const headings=Array.from(document.querySelectorAll('h1,h2,h3,h4,h5,h6'));
+ const heading=headings.find(e=>e.textContent.includes('Quoting a supplied root replay'));
+ if(!heading)throw new Error('missing quotation heading');
+ const following=headings.find(e=>e!==heading && Number(e.tagName[1])<=Number(heading.tagName[1]) && (heading.compareDocumentPosition(e)&4));
+ if(!following)throw new Error('missing following section');
+ const targets=Array.from(document.querySelectorAll('p,.hl.lean.block')).filter(e=>(heading.compareDocumentPosition(e)&4) && (e.compareDocumentPosition(following)&4));
+ if(targets.length<8)throw new Error('incomplete quotation section');
+ return {label:${JSON.stringify(label)},width:innerWidth,targets:targets.map(e=>({tag:e.tagName,text:e.textContent.slice(0,160),overflow:Math.max(0,...[e,...e.querySelectorAll('*')].map(n=>n.scrollWidth-n.clientWidth))}))};
+ })()`));
+ }
+ fs.writeFileSync(root+'/row-quotation-section-overflow.json',JSON.stringify(sectionMetadata,null,2));
+ fs.writeFileSync(root+'/row-quotation-inspection.json',JSON.stringify(metadata,null,2));
+ if(metadata.some(e=>e.targetScrollWidth>e.targetWidth+1 || e.descendantOverflow>1)) throw new Error('Changed content overflows; retained captures and metrics identify the affected block.');
+ process.stdout.write('Saved row quotation desktop/narrow screenshots\n');
+} finally {if(socket)socket.close();chrome.kill('SIGTERM');}
diff --git a/reports/data/hexrcf-row-quotation/captures/inspection.json b/reports/data/hexrcf-row-quotation/captures/inspection.json
new file mode 100644
index 0000000000..46044f0696
--- /dev/null
+++ b/reports/data/hexrcf-row-quotation/captures/inspection.json
@@ -0,0 +1,114 @@
+[
+ {
+ "label": "desktop",
+ "kind": "introduction",
+ "text": "\n Checked replay data may occur inside a Boolean condition. Quotation keeps\nclosed helpers whose types mention a protected replay function attached to\nthat function during conversion. The conformance examples cover inline proof\nterms and separately retained checked arrays, including false results and\ncaller-state restoration. The original reader must expose the protected\nboundary; an opaque hiding definition still returns a structured rejection.",
+ "viewport": 1440,
+ "scrollY": 281445,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "P",
+ "targetWidth": 752,
+ "targetScrollWidth": 752,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "desktop",
+ "kind": "api",
+ "text": "\n RowQuote.decoder reads the\nliteral value of a checked selected-sign row through query, root and operation\ntransports. It uses the row's recorded values and checked public equations.\nA backend can combine it with its existing scalar decoder in the same request:",
+ "viewport": 1440,
+ "scrollY": 281565,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "P",
+ "targetWidth": 752,
+ "targetScrollWidth": 752,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "desktop",
+ "kind": "example",
+ "text": "\n RowQuote.decoder reads the\nliteral value of a checked selected-sign row through query, root and operation\ntransports. It uses the row's recorded values and checked public equations.\nA backend can combine it with its existing scalar decoder in the same request:",
+ "viewport": 1440,
+ "scrollY": 281768,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "CODE",
+ "targetWidth": 740,
+ "targetScrollWidth": 740,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "desktop",
+ "kind": "budget",
+ "text": "\n The row controls check positive, zero, negative and false comparisons, exact\nand one-node-below budgets, wrong-goal proposals and caller restoration.\nOpaque query transports at depths 1, 16 and 24 consume the same reflection\nbudget; the recursion limit remains the caller's Lean limit. A fresh importing\naudit checks 70 theorem bodies and eight definitions, including the stored-value\nlaw for restoring supplied operations. These are reader and data-access proofs;\nsource binding and real interpretation remain separate obligations.",
+ "viewport": 1440,
+ "scrollY": 282006,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "P",
+ "targetWidth": 752,
+ "targetScrollWidth": 752,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "introduction",
+ "text": "\n Checked replay data may occur inside a Boolean condition. Quotation keeps\nclosed helpers whose types mention a protected replay function attached to\nthat function during conversion. The conformance examples cover inline proof\nterms and separately retained checked arrays, including false results and\ncaller-state restoration. The original reader must expose the protected\nboundary; an opaque hiding definition still returns a structured rejection.",
+ "viewport": 390,
+ "scrollY": 452726,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "P",
+ "targetWidth": 343,
+ "targetScrollWidth": 343,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "api",
+ "text": "\n RowQuote.decoder reads the\nliteral value of a checked selected-sign row through query, root and operation\ntransports. It uses the row's recorded values and checked public equations.\nA backend can combine it with its existing scalar decoder in the same request:",
+ "viewport": 390,
+ "scrollY": 452962,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "P",
+ "targetWidth": 343,
+ "targetScrollWidth": 343,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "example",
+ "text": "\n RowQuote.decoder reads the\nliteral value of a checked selected-sign row through query, root and operation\ntransports. It uses the row's recorded values and checked public equations.\nA backend can combine it with its existing scalar decoder in the same request:",
+ "viewport": 390,
+ "scrollY": 453211,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "CODE",
+ "targetWidth": 331,
+ "targetScrollWidth": 331,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "budget",
+ "text": "\n The row controls check positive, zero, negative and false comparisons, exact\nand one-node-below budgets, wrong-goal proposals and caller restoration.\nOpaque query transports at depths 1, 16 and 24 consume the same reflection\nbudget; the recursion limit remains the caller's Lean limit. A fresh importing\naudit checks 70 theorem bodies and eight definitions, including the stored-value\nlaw for restoring supplied operations. These are reader and data-access proofs;\nsource binding and real interpretation remain separate obligations.",
+ "viewport": 390,
+ "scrollY": 453542,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "P",
+ "targetWidth": 343,
+ "targetScrollWidth": 343,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ }
+]
\ No newline at end of file
diff --git a/reports/data/hexrcf-row-quotation/captures/row-quotation-desktop-api.png b/reports/data/hexrcf-row-quotation/captures/row-quotation-desktop-api.png
new file mode 100644
index 0000000000..3873087128
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/captures/row-quotation-desktop-api.png differ
diff --git a/reports/data/hexrcf-row-quotation/captures/row-quotation-desktop-budget.png b/reports/data/hexrcf-row-quotation/captures/row-quotation-desktop-budget.png
new file mode 100644
index 0000000000..dce3c379e7
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/captures/row-quotation-desktop-budget.png differ
diff --git a/reports/data/hexrcf-row-quotation/captures/row-quotation-desktop-example.png b/reports/data/hexrcf-row-quotation/captures/row-quotation-desktop-example.png
new file mode 100644
index 0000000000..0fcbc846aa
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/captures/row-quotation-desktop-example.png differ
diff --git a/reports/data/hexrcf-row-quotation/captures/row-quotation-desktop-introduction.png b/reports/data/hexrcf-row-quotation/captures/row-quotation-desktop-introduction.png
new file mode 100644
index 0000000000..6bdb6d7740
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/captures/row-quotation-desktop-introduction.png differ
diff --git a/reports/data/hexrcf-row-quotation/captures/row-quotation-narrow-api.png b/reports/data/hexrcf-row-quotation/captures/row-quotation-narrow-api.png
new file mode 100644
index 0000000000..478f86be7b
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/captures/row-quotation-narrow-api.png differ
diff --git a/reports/data/hexrcf-row-quotation/captures/row-quotation-narrow-budget.png b/reports/data/hexrcf-row-quotation/captures/row-quotation-narrow-budget.png
new file mode 100644
index 0000000000..4f95747f92
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/captures/row-quotation-narrow-budget.png differ
diff --git a/reports/data/hexrcf-row-quotation/captures/row-quotation-narrow-example.png b/reports/data/hexrcf-row-quotation/captures/row-quotation-narrow-example.png
new file mode 100644
index 0000000000..d011aa71bc
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/captures/row-quotation-narrow-example.png differ
diff --git a/reports/data/hexrcf-row-quotation/captures/row-quotation-narrow-introduction.png b/reports/data/hexrcf-row-quotation/captures/row-quotation-narrow-introduction.png
new file mode 100644
index 0000000000..bc3044c902
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/captures/row-quotation-narrow-introduction.png differ
diff --git a/reports/data/hexrcf-row-quotation/captures/section-overflow.json b/reports/data/hexrcf-row-quotation/captures/section-overflow.json
new file mode 100644
index 0000000000..155f8b1993
--- /dev/null
+++ b/reports/data/hexrcf-row-quotation/captures/section-overflow.json
@@ -0,0 +1,684 @@
+[
+ {
+ "label": "desktop",
+ "width": 1440,
+ "targets": [
+ {
+ "tag": "P",
+ "text": "\n RootQuote.quote accepts a Lean\nexpression for an Except ε α replay reader, including structured errors. It returns the reconstructed\ndata and",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A scalar decoder may propose an equality for the exact demanded decode. The\nhelper checks its type, dependencies and kernel proof before usin",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For example, this helper continues a request's existing budget and returns the\nupdated usage together with the checked equation:",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSuppliedRoot\n (reader : Expr)\n (scalar : RootQuote.Decoder",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Quotation follows the representative of a closed quotient when selecting\nreducibility boundaries. This lets a formula polynomial stored in a ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF in\nexample :\n QuotientQuote.reader = some 7 :=\n QuotientQuotePublic.accepted\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Its exact 92-node budget succeeds, one node less exhausts, and a wrong term\ncount rejects. The controls check caller-state restoration; a fre",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Tree replay uses its public leaf and split equations before opening the local\nnode checks. Keeping that boundary explicit avoids kernel conve",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF in\nexample :\n TreeQuote.splitTrue.toOption =\n some 31 :=\n TreeQuotePublic.split_true\n\nopen Hex.RCF in\nexample :\n TreeQuote.splitFalse.t",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The second reader selects its diagnostic branch; it does not accept the\nchanged certificate. Readers returning an error abort quotation and r",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Checked replay data may occur inside a Boolean condition. Quotation keeps\nclosed helpers whose types mention a protected replay function atta",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RowQuote.decoder reads the\nliteral value of a checked selected-sign row through query, root and operation\ntransports. It uses the row's recor",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteRootRows\n (reader : Expr)\n (scalar : RootQuote.DecoderM)\n ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The row controls check positive, zero, negative and false comparisons, exact\nand one-node-below budgets, wrong-goal proposals and caller rest",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a rational predecessor, RationalQuote.decoder supplies these proposals\nwithout a fixed list of permitted numerators. It recognizes canoni",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteRationalRoot\n (reader registry : Expr)\n (config : Reify.Co",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The registry argument is a Lean expression of type\nHex.RealClosure.BaseContext.Registry. This helper supplies scalar equations;\nit does not r",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The cubic regression reads a\nsupplied replay for X³−3 on the open interval (−8,8). A fresh public consumer\nproves that the accepted descripto",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A reader that rejects its input or replay returns structured invalid-provider\nevidence. Non-readers and unsupported shapes raise terminal exc",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Canonical Element.codec decodes remain protected throughout quotation,\nincluding predecessor decodes with an explicit Element.codec head. Exp",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n All quotation regressions use maxHeartbeats := 12000000. The original root and rational\ncases use maxRecDepth := 8192; scalar, sign-packet, s",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n This API does not register a tactic handler or establish complete root coverage.\nThe acceptance equation alone does not authenticate original",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a coefficient in a selected algebraic extension,\nScalarQuote.quote uses the owner's Element.signCodec with supplied checked\nsign facts, t",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Pass the original, fully applied Element.codec expression, retaining its\nimplicit arguments. Reinferring definitionally equal context aliases",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSuppliedScalar\n (codec facts literal : Expr)\n (predecessor",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The monorepo regression imports HexRCF.ScalarQuoteCases. It decodes the\nnonrational coefficient −2√2 in the existing selected positive √2 con",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.SelectedRootTests in\nopen Hex.RCF.ScalarQuoteTests in\nexample :\n Data.original.value restored =\n -2 * Real.sqrt 2 :=\n restored_value\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The fresh audit rechecks 13 reachable quotation-case theorem bodies, including this value\nidentity, with only the standard three axioms and n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Regressions cover continued/exact/exhausted proof budgets, rollback after the\nstrict stage succeeds, missing or mismatched facts, zero withou",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a polynomial over the same selected extension,\nScalarQuote.quotePolyWith\nquotes the coefficient array through its finite sign reader and ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSuppliedPolynomial\n (reader facts : Expr)\n (predecessor : ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The regression polynomial contains two copies of −2√2. The checked original\nreader restores both positions. Its first coefficient has this or",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.SelectedRootTests in\nopen Hex.RCF.SharedQuoteTests in\nexample :\n Data.original.value\n (restored.coeff 0) =\n -2 * Real.sqrt 2 :=\n valu",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The fresh importing audit pins seven reachable theorem bodies and three data\ndefinitions, their actual owner refinement and supplied sign evi",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RootQuote.runWith supplies the transaction for a sequence of quoteWith\nactions. RootQuote.run supplies it for a reader with DecoderM callback",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n This scalar API does not reconstruct provider or predecessor histories,\nproduce missing signs, or install a general source-goal solver. The s",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n ScalarQuote.decoderWith composes checked scalar decoding through several\nselected-field predecessors. Its lookup receives each exact canonica",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSelectedReader\n (reader registry : Expr)\n (factsFor :\n Expr → Reify.Reify",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The two-level regression checks one visit to its selected context followed by\none visit to its selected predecessor. Its lookup adds 19 sourc",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n An ordinary module consumer also runs the callback factory and exports the\nchecked scalar reader equation. Its sign follows from the owner's ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RecursiveScalarPublic in\nexample : restored.sign = 1 := sign\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A fresh importing audit checks the two-level fixture and this public consumer,\nincluding accepted annotated decodes and a charged decline fol",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n ScalarPacket.quoteWith checks a supplied optional sign-packet reader. Its\nprepared context has a checked equality to the original context; a ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSuppliedSignPacket\n (reader prepared same : Expr)\n (predecessor :\n RootQuote.DecoderM) :=",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The regression quotes the parent descriptor and one packet for the polynomial\n−2X at the selected positive square root of 2. The resulting fa",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RealClosure in\nopen Hex.RCF.SelectedRootTests in\nopen Hex.RCF.SignPacketQuote in\nexample :\n Option.map Data.original.value\n (Except.toOption\n ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Quoting the parent and packet in one request consumes 154,369 proof nodes.\nWith the frozen parent and its equality already available, the pac",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The caller still supplies and authenticates the parent history and packet.\nPredecessor arithmetic retains its supplied implementation; this h",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A separate public-module example quotes a packet for X at the selected real\nroot of X³−3. Its context slots retain closed applications of the",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.PublicSignPacket in\nexample :\n coefficientReal =\n Hex.RCF.RootQuoteTests.realRoot :=\n coefficient_value\n\nopen Hex.RCF.PublicSignPacket in\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a dependent match, quotation moves trailing branch-equality proofs along\nthe checked equation for the match's subject. This uses ordinary",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF in\nexample :\n DependentQuote.continuedFunction =\n some 29 :=\n ProofFunctionPublic.continued\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n During replay-law\nconversion, an explicit checked function boundary is first kept abstract, then instantiated\nwith the actual function and it",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RootHeader.quoteWith\naccepts the complete original RootReplay.readDescriptor application. It quotes\nthat reader, obtains the independently pa",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The public regression constructs a new root and context from that result,\nquotes the sign packet for X with fully numerical graph fields, and",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RootHeaderPacket in\nexample : coefficientReal = realRoot :=\n coefficient_value\n\nopen Hex.RCF.RootHeaderPacket in\nexample : 0 < coefficientReal :=\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The fresh importing audit includes the generated binding, packet reader,\ncoefficient decoding and real-value proofs. It rejects dependencies ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The default quotation rules recognize Signature.codec.decode applied to the\ncanonical encoding of its actual signature argument, using the ex",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.FrozenSignature in\nexample : readFirst.toOption =\n some first :=\n readFirst_checked\n\nopen Hex.RCF.FrozenSignature in\nexample : readSecond.toOpt",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The cubic packet retains frozen numerical node and nested-moment signatures\nfor its rational predecessor. A signature's serialization identit",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RootContext.packWith\nthen assembles an actual native root context from a closed retained parent and\nits checked descriptor. It keeps the exis",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The same decoded coefficient can be interpreted through the owner's ordinary\nreal model of the packed context, retaining its selected value a",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF in\nopen RootContextCases in\nopen RootHeaderPacket in\nexample : model.value coefficient =\n realRoot :=\n value_checked\n\nopen Hex.RCF in\nopen Root",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The packing budget covers context and signature proof construction. Model\nconstruction is checked separately; its cost is not included in tha",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RootPrepare.prepareWith\nprepares the native context of a reconstructed descriptor for subsequent\nquotation. It checks closed inputs and the e",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.RCF.RealCoefficients in\nmeta def prepareRootContext\n (reader clean : Expr)\n (scalar : RootQuote.DecoderM) :\n Reif",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Run this action and subsequent quotation in one RootQuote.runWith request.\nCombine its decoder with the exact predecessor's scalar and signat",
+ "overflow": 0
+ }
+ ]
+ },
+ {
+ "label": "narrow",
+ "width": 390,
+ "targets": [
+ {
+ "tag": "P",
+ "text": "\n RootQuote.quote accepts a Lean\nexpression for an Except ε α replay reader, including structured errors. It returns the reconstructed\ndata and",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A scalar decoder may propose an equality for the exact demanded decode. The\nhelper checks its type, dependencies and kernel proof before usin",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For example, this helper continues a request's existing budget and returns the\nupdated usage together with the checked equation:",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSuppliedRoot\n (reader : Expr)\n (scalar : RootQuote.Decoder",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Quotation follows the representative of a closed quotient when selecting\nreducibility boundaries. This lets a formula polynomial stored in a ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF in\nexample :\n QuotientQuote.reader = some 7 :=\n QuotientQuotePublic.accepted\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Its exact 92-node budget succeeds, one node less exhausts, and a wrong term\ncount rejects. The controls check caller-state restoration; a fre",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Tree replay uses its public leaf and split equations before opening the local\nnode checks. Keeping that boundary explicit avoids kernel conve",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF in\nexample :\n TreeQuote.splitTrue.toOption =\n some 31 :=\n TreeQuotePublic.split_true\n\nopen Hex.RCF in\nexample :\n TreeQuote.splitFalse.t",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The second reader selects its diagnostic branch; it does not accept the\nchanged certificate. Readers returning an error abort quotation and r",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Checked replay data may occur inside a Boolean condition. Quotation keeps\nclosed helpers whose types mention a protected replay function atta",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RowQuote.decoder reads the\nliteral value of a checked selected-sign row through query, root and operation\ntransports. It uses the row's recor",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteRootRows\n (reader : Expr)\n (scalar : RootQuote.DecoderM)\n ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The row controls check positive, zero, negative and false comparisons, exact\nand one-node-below budgets, wrong-goal proposals and caller rest",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a rational predecessor, RationalQuote.decoder supplies these proposals\nwithout a fixed list of permitted numerators. It recognizes canoni",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteRationalRoot\n (reader registry : Expr)\n (config : Reify.Co",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The registry argument is a Lean expression of type\nHex.RealClosure.BaseContext.Registry. This helper supplies scalar equations;\nit does not r",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The cubic regression reads a\nsupplied replay for X³−3 on the open interval (−8,8). A fresh public consumer\nproves that the accepted descripto",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A reader that rejects its input or replay returns structured invalid-provider\nevidence. Non-readers and unsupported shapes raise terminal exc",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Canonical Element.codec decodes remain protected throughout quotation,\nincluding predecessor decodes with an explicit Element.codec head. Exp",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n All quotation regressions use maxHeartbeats := 12000000. The original root and rational\ncases use maxRecDepth := 8192; scalar, sign-packet, s",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n This API does not register a tactic handler or establish complete root coverage.\nThe acceptance equation alone does not authenticate original",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a coefficient in a selected algebraic extension,\nScalarQuote.quote uses the owner's Element.signCodec with supplied checked\nsign facts, t",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Pass the original, fully applied Element.codec expression, retaining its\nimplicit arguments. Reinferring definitionally equal context aliases",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSuppliedScalar\n (codec facts literal : Expr)\n (predecessor",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The monorepo regression imports HexRCF.ScalarQuoteCases. It decodes the\nnonrational coefficient −2√2 in the existing selected positive √2 con",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.SelectedRootTests in\nopen Hex.RCF.ScalarQuoteTests in\nexample :\n Data.original.value restored =\n -2 * Real.sqrt 2 :=\n restored_value\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The fresh audit rechecks 13 reachable quotation-case theorem bodies, including this value\nidentity, with only the standard three axioms and n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Regressions cover continued/exact/exhausted proof budgets, rollback after the\nstrict stage succeeds, missing or mismatched facts, zero withou",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a polynomial over the same selected extension,\nScalarQuote.quotePolyWith\nquotes the coefficient array through its finite sign reader and ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSuppliedPolynomial\n (reader facts : Expr)\n (predecessor : ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The regression polynomial contains two copies of −2√2. The checked original\nreader restores both positions. Its first coefficient has this or",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.SelectedRootTests in\nopen Hex.RCF.SharedQuoteTests in\nexample :\n Data.original.value\n (restored.coeff 0) =\n -2 * Real.sqrt 2 :=\n valu",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The fresh importing audit pins seven reachable theorem bodies and three data\ndefinitions, their actual owner refinement and supplied sign evi",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RootQuote.runWith supplies the transaction for a sequence of quoteWith\nactions. RootQuote.run supplies it for a reader with DecoderM callback",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n This scalar API does not reconstruct provider or predecessor histories,\nproduce missing signs, or install a general source-goal solver. The s",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n ScalarQuote.decoderWith composes checked scalar decoding through several\nselected-field predecessors. Its lookup receives each exact canonica",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSelectedReader\n (reader registry : Expr)\n (factsFor :\n Expr → Reify.Reify",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The two-level regression checks one visit to its selected context followed by\none visit to its selected predecessor. Its lookup adds 19 sourc",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n An ordinary module consumer also runs the callback factory and exports the\nchecked scalar reader equation. Its sign follows from the owner's ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RecursiveScalarPublic in\nexample : restored.sign = 1 := sign\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A fresh importing audit checks the two-level fixture and this public consumer,\nincluding accepted annotated decodes and a charged decline fol",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n ScalarPacket.quoteWith checks a supplied optional sign-packet reader. Its\nprepared context has a checked equality to the original context; a ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSuppliedSignPacket\n (reader prepared same : Expr)\n (predecessor :\n RootQuote.DecoderM) :=",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The regression quotes the parent descriptor and one packet for the polynomial\n−2X at the selected positive square root of 2. The resulting fa",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RealClosure in\nopen Hex.RCF.SelectedRootTests in\nopen Hex.RCF.SignPacketQuote in\nexample :\n Option.map Data.original.value\n (Except.toOption\n ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Quoting the parent and packet in one request consumes 154,369 proof nodes.\nWith the frozen parent and its equality already available, the pac",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The caller still supplies and authenticates the parent history and packet.\nPredecessor arithmetic retains its supplied implementation; this h",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A separate public-module example quotes a packet for X at the selected real\nroot of X³−3. Its context slots retain closed applications of the",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.PublicSignPacket in\nexample :\n coefficientReal =\n Hex.RCF.RootQuoteTests.realRoot :=\n coefficient_value\n\nopen Hex.RCF.PublicSignPacket in\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a dependent match, quotation moves trailing branch-equality proofs along\nthe checked equation for the match's subject. This uses ordinary",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF in\nexample :\n DependentQuote.continuedFunction =\n some 29 :=\n ProofFunctionPublic.continued\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n During replay-law\nconversion, an explicit checked function boundary is first kept abstract, then instantiated\nwith the actual function and it",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RootHeader.quoteWith\naccepts the complete original RootReplay.readDescriptor application. It quotes\nthat reader, obtains the independently pa",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The public regression constructs a new root and context from that result,\nquotes the sign packet for X with fully numerical graph fields, and",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RootHeaderPacket in\nexample : coefficientReal = realRoot :=\n coefficient_value\n\nopen Hex.RCF.RootHeaderPacket in\nexample : 0 < coefficientReal :=\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The fresh importing audit includes the generated binding, packet reader,\ncoefficient decoding and real-value proofs. It rejects dependencies ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The default quotation rules recognize Signature.codec.decode applied to the\ncanonical encoding of its actual signature argument, using the ex",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.FrozenSignature in\nexample : readFirst.toOption =\n some first :=\n readFirst_checked\n\nopen Hex.RCF.FrozenSignature in\nexample : readSecond.toOpt",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The cubic packet retains frozen numerical node and nested-moment signatures\nfor its rational predecessor. A signature's serialization identit",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RootContext.packWith\nthen assembles an actual native root context from a closed retained parent and\nits checked descriptor. It keeps the exis",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The same decoded coefficient can be interpreted through the owner's ordinary\nreal model of the packed context, retaining its selected value a",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF in\nopen RootContextCases in\nopen RootHeaderPacket in\nexample : model.value coefficient =\n realRoot :=\n value_checked\n\nopen Hex.RCF in\nopen Root",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The packing budget covers context and signature proof construction. Model\nconstruction is checked separately; its cost is not included in tha",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RootPrepare.prepareWith\nprepares the native context of a reconstructed descriptor for subsequent\nquotation. It checks closed inputs and the e",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.RCF.RealCoefficients in\nmeta def prepareRootContext\n (reader clean : Expr)\n (scalar : RootQuote.DecoderM) :\n Reif",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Run this action and subsequent quotation in one RootQuote.runWith request.\nCombine its decoder with the exact predecessor's scalar and signat",
+ "overflow": 0
+ }
+ ]
+ }
+]
\ No newline at end of file
diff --git a/reports/data/hexrcf-row-quotation/captures/visual-review.json b/reports/data/hexrcf-row-quotation/captures/visual-review.json
new file mode 100644
index 0000000000..eeda384c6a
--- /dev/null
+++ b/reports/data/hexrcf-row-quotation/captures/visual-review.json
@@ -0,0 +1,48 @@
+{
+ "reviewed_at": "2026-10-18T08:17:26.885315+00:00",
+ "viewed_all_eight": true,
+ "scope": "New row quotation paragraphs and checked callback example at 1440px and 390px; global pre-existing section overflow recorded separately.",
+ "finding": "All new target text and complete code example legible with no target overflow after line wrapping. Prior failed capture retained.",
+ "captures": [
+ {
+ "path": "captures/row-quotation-desktop-introduction.png",
+ "sha256": "0546e0726e55efbd8ff9d85f998379dd1cf18073c27432452c48e3e4e7e7932b",
+ "viewed": true
+ },
+ {
+ "path": "captures/row-quotation-desktop-api.png",
+ "sha256": "ae8aa3be4b4db9a2737019fe64b03bbf3af9f857c20e9c491304837725a18d8e",
+ "viewed": true
+ },
+ {
+ "path": "captures/row-quotation-desktop-example.png",
+ "sha256": "28a19205870fa2a50fa3f32e2dd50d260127b4cd910d319a17a94a0adec109d0",
+ "viewed": true
+ },
+ {
+ "path": "captures/row-quotation-desktop-budget.png",
+ "sha256": "0447da4524b158d64448f6afb0c253a658491f2834c2a191dd0cd193f5260c1b",
+ "viewed": true
+ },
+ {
+ "path": "captures/row-quotation-narrow-introduction.png",
+ "sha256": "83ea36690c9334fab3cbcb6d0fb717f9ab3bd9713846d0f994d9b73dd89ac3af",
+ "viewed": true
+ },
+ {
+ "path": "captures/row-quotation-narrow-api.png",
+ "sha256": "9de7eddf70db0c13c5520295e9f09827d941d9a665c02225dfdc59f21b4a409a",
+ "viewed": true
+ },
+ {
+ "path": "captures/row-quotation-narrow-example.png",
+ "sha256": "a222fe8be179718516593df6f84ab73e23c6b299e068a2588276eaca3f58407d",
+ "viewed": true
+ },
+ {
+ "path": "captures/row-quotation-narrow-budget.png",
+ "sha256": "5ac2b830f40046fa61da56591ad58b781a512c64a7b9e02e9ffbe29afe2b246b",
+ "viewed": true
+ }
+ ]
+}
diff --git a/reports/data/hexrcf-row-quotation/context.json b/reports/data/hexrcf-row-quotation/context.json
new file mode 100644
index 0000000000..f6767cb868
--- /dev/null
+++ b/reports/data/hexrcf-row-quotation/context.json
@@ -0,0 +1,732 @@
+{
+ "source_commit": "0e931b9a8c5d25a132b7f800ec8a3e00c551b327",
+ "source_tree": "e503d1658ddcb6934660f4f99ce530057934a204",
+ "baseline_commit": "e1c37242b659592b1a2c16c836cd844194c1f642",
+ "sources": {
+ ".github/workflows/ci.yml": "bf3ef0c4e00ef2397ef5857a629a391e24252b864c093198b08775b6977c563d",
+ "AGENTS.md": "4e0a48cf49a61e56ed84c8b28e232b5bfad29f2da20571377692be6e1c316f30",
+ "HexManual/Chapters/HexRCF/RootQuote.lean": "8e454a07332eea1e92ed01eae9ac5ef3f0a5cf02962ad33446519546b971f4f3",
+ "HexManual/Chapters/HexRCF/RootTableQuote.lean": "78d1be637a32593b03f000ab153c7fdf05a1b5332ea3efb9c186aacfd68f0ae5",
+ "HexRCF/README.md": "3830d758a8a75d59df1a6dd01f59204a86858b5eda3e43a78f9e9e9c2d769a8a",
+ "HexRCF/SPEC/hex-rcf.md": "df8c6bb2435a2794faa36bc77e41f4c936f06ae149f29c3e68fe0d79f4ebfafb",
+ "HexRCF/Tactic.lean": "09d895ba1dd2c1af0bfffca197494f2614380ded268ff13e4e0b02fea22b9224",
+ "HexRealClosure/Algebraic.lean": "d05f9fb72fe9544ae9ddc685dff17080f876aa4c99c70e8992d511e011f6a454",
+ "HexRealClosure/ContextData.lean": "ca29790752b8d25f10d03a9877690a5ff40f1fdf6815c96fe9693941206e662c",
+ "HexRealClosure/SignCodec.lean": "7126323c97b77204386795a0f252f1babfd0ed7f3dba7ee3927a99b9d5c1852a",
+ "HexRealClosure/SignFacts.lean": "9c22837e93e6f50cc96310163e352ac608fbcfbd6275edab33751da2fd84f47c",
+ "HexRealClosure/SignatureCodecTests.lean": "ffc72777523ac0e92b563481804bdfb581fb0173fe7a021009737d57959b4462",
+ "HexRealClosure/TowerContext.lean": "6ef8b87b2d81cb177505a4bbc88befa078b20578cedd49e836d850753c203ee3",
+ "PLAN.md": "e94a60324486913b4a04650edd617c4ff8bef469dc7fd311adea8407c6662ea0",
+ "SPEC/real-closure-execution.md": "bc0948ad7de6969baaed89c0b3052cb0d21d64d634f8a336f9a7dde446b057f5",
+ "adapters/HexRCF/RealCoefficients.lean": "6a80cc920997d149d4098220453f357cd9ac12476d4cb6d0642d0d10d9579650",
+ "adapters/HexRCF/RealCoefficients/RationalQuote.lean": "675e2ba065b696f257adefc07fe30ddb0190f321d86005444579ea5a0744bdf5",
+ "adapters/HexRCF/RealCoefficients/RealModel.lean": "712b4fd3edff8eaa6f93e501da5debf04529d1ea8c11a18389820f866d179c43",
+ "adapters/HexRCF/RealCoefficients/Reify.lean": "ea8474b9e253f93a1583064ca99ec0bf376dadf5457fd60b57e9e18460cf449c",
+ "adapters/HexRCF/RealCoefficients/RootContext.lean": "792176eab63e5e62b759a10893569946ef6d019566b8116c85237b3e16fcdb86",
+ "adapters/HexRCF/RealCoefficients/RootHeader.lean": "681f2a964bc30f65a92a0fb1a58b4d4013eb396df37ca813962702065fb46261",
+ "adapters/HexRCF/RealCoefficients/RootPrepare.lean": "de72a8e3ac4adb13365801476467bf691e630d0952b018ccecd88846c3bdb025",
+ "adapters/HexRCF/RealCoefficients/RootQuote.lean": "7a0fc55b1edab2ce06d17b99325108438c5b2858062d506d0b587ba36241dc0a",
+ "adapters/HexRCF/RealCoefficients/RowQuote.lean": "3b7e7d2ebcbd53a6ea893bc8f4c884d767430f8b98a3f1ca770fe7c7b122f3c9",
+ "adapters/HexRCF/RealCoefficients/ScalarPacket.lean": "9ae62bea85dab43ec01329defa9f788af4843e74b24f40f6c6f1b28adaadc6bf",
+ "adapters/HexRCF/RealCoefficients/ScalarQuote.lean": "fee2617a998f29d05c8959b484060ac1d719359c6d851a8ff6699fa9cb370acc",
+ "adapters/HexRCF/RealCoefficients/SignatureQuote.lean": "c3bb71b52c2a544b902bc256b3a162e1c3c4e7f94ae6b21808914e67109710eb",
+ "adapters/HexRealClosureTheory/Algebraic.lean": "2495153acbe4e468521913a2f5d6569831cd05f5ee48d5ddb26fc31a43438c7e",
+ "adapters/HexRealClosureTheory/SignFacts.lean": "c2b8cf96de0cccc2c0c3cbe83f0afd7c40ab9736b75f377ec5bfedc0907f34e3",
+ "adapters/HexRealClosureTheory/TowerModel.lean": "70d0e57e8ecc78eb9b7675d875157462d27cf9494d49d72bba019eaa6dd1d788",
+ "conformance/HexRCF/DependentQuote.lean": "0df154544a17857334480e7c577ecbcf1afe04165fa2da1a5a6407bf41e85518",
+ "conformance/HexRCF/DependentQuoteData.lean": "ed254475e78fa6edb27d4e55222a598b07b7357154ea0495d6195f2f1d39ee46",
+ "conformance/HexRCF/DependentQuoteProofs.lean": "5875aa9748f50340668e58aea97b196d3353313352fb8c819ae5ee3542556980",
+ "conformance/HexRCF/DependentScalarProofs.lean": "9fe3f3871f929e28355985c574c0b8c742be062ae5f19033d7d8bf9e67cd88d8",
+ "conformance/HexRCF/DependentScalarQuote.lean": "e20dd7346c337dd17126c394965f268e568706730f475844d7c0907051224933",
+ "conformance/HexRCF/FrozenSignatureConformance.lean": "8e7d432aecb87fb89bb188e4c579e86fb5c3348c5430f1e2b1a00f1f820a940e",
+ "conformance/HexRCF/FrozenSignatureProofs.lean": "55de6da9b0b3dc2d1e384d6c838d13294287c44060afb8e70aa2a0c8e01a81cb",
+ "conformance/HexRCF/ProofFunctionPublic.lean": "f928c9f0dd0a704d34a516b6282cfa6a7a4eb6c112d49689c450647a44370a6b",
+ "conformance/HexRCF/PublicSignPacket.lean": "c32d73c5634376907b965e1ea6cf69352fdda1f1945ce2f34a378cc217778102",
+ "conformance/HexRCF/PublicSignPacketControls.lean": "b4f98bd8ef190a361dd7752d4d5ece0cfbd862ff4face5a06dfabecf87096028",
+ "conformance/HexRCF/PublicSignPacketProofs.lean": "442f6d3e04a36db25611f0396103a1eee5ee411c40e8f3cc93df1acf7898bbbb",
+ "conformance/HexRCF/PublicSignPacketValues.lean": "72705dba30f04f986188903fb49b983c6f0a664895116fca8bd8b6b46b6517e5",
+ "conformance/HexRCF/QuotientQuote.lean": "97b2cbc9abdb46db33a9a91328f331edf8dea055cc244489158121cde8dc1903",
+ "conformance/HexRCF/QuotientQuoteData.lean": "ec26777d655a7898d7f7922fcea8f426a3f8c77a53000b69b6fe1755a0348870",
+ "conformance/HexRCF/QuotientQuoteProofs.lean": "f1d95accf6caed1c7354408b3a1a0b29493a526e82036390e39102ebe80c6752",
+ "conformance/HexRCF/QuotientQuotePublic.lean": "a3bd9a082df14a0ac93ba3798e13c6ebbf9dff98d7613264713aa281a5a18bea",
+ "conformance/HexRCF/RationalQuoteConformance.lean": "f03844d4a44a5c61b702ed0b1697619da9b20f4ac42122b9d1a6d3fa4a2de9ac",
+ "conformance/HexRCF/RecursiveScalarQuote.lean": "d9e54d4fc3214b1e98989a48085174eb9cf3a62eee9abdcc8f73c713dd2615ff",
+ "conformance/HexRCF/ReplayBoundary.lean": "0438599f5606f54c0a47e7a00eec3eccecf29d3d61b4526a9086d734d2d4ae84",
+ "conformance/HexRCF/ReplayBoundaryProofs.lean": "d755462a7344dc9f5304fba255bcefb42188c1de5a51d92d8567a27f22482dc2",
+ "conformance/HexRCF/RootContextConformance.lean": "0c52084609ec3de8afd51330a7d2cc97f7bae1d8b2bbc421138783940fc7db37",
+ "conformance/HexRCF/RootContextProofs.lean": "b4c2e3ce686ce8bc60bfdafe2be2f566c6de46758f4827d307f3d5592b59d2e9",
+ "conformance/HexRCF/RootHeaderBudget.lean": "db30b6b7781fabd238ea2c934477e5ae281cc6cd905f11848ce46eb66ef45fe0",
+ "conformance/HexRCF/RootHeaderControls.lean": "aca063af3bfe475166aef92193f162c25a0e53eea094087cf334406a3d513157",
+ "conformance/HexRCF/RootHeaderPacket.lean": "e924a3b799cfff2573e2861e3533be94147a6505aa11837a99dc8985ba0ae7dc",
+ "conformance/HexRCF/RootHeaderProofs.lean": "e6630f0464fd0096b9af74b4640d2abc514a62c0b0fc706b4a2e74c9602eeb8c",
+ "conformance/HexRCF/RootHeaderValues.lean": "de9a8fc7c2e9371cbd3324eb700180411e49865dbc6535a74d2c882f74e38e13",
+ "conformance/HexRCF/RootPrepareControls.lean": "5a6e3731eac813867b34e9f902a2f7d5f090b2fae6af9c2b859a3be76b68ae85",
+ "conformance/HexRCF/RootPreparePacket.lean": "e33b5b2921ec13559eb4d6b1d8a3f3cc5ccfd4dd7deb66753806c3f3b39e7a8b",
+ "conformance/HexRCF/RootPrepareProofs.lean": "4a5bc6655576a6592fcd5cd801bcfebd425243b1bb6cb39b0bb46d500a3938be",
+ "conformance/HexRCF/RootPreparePublic.lean": "a9e09cbe8d1287b97dde71ad1c6dbe149cfbacb6f81f41a8493ee802416d0805",
+ "conformance/HexRCF/RootQuoteCases.lean": "602d15ef501e969183bffbda7fb3c0f00a174ba5c2dbc35370ee7fce896944dd",
+ "conformance/HexRCF/RootQuoteConformance.lean": "f6a652a243ba62cffc671d1365c6ab47b6618179acb172019ec5609ea0324d3c",
+ "conformance/HexRCF/RootQuoteData.lean": "faa259d129d5c65a063c7143e45d5d9d19573ed49862aa5ecb3978ff389cb514",
+ "conformance/HexRCF/RootQuoteSource.lean": "aca1654efc1a452aca8ef573bb8ea3a435a4e1e18a4dca854d9bcc8e350d511d",
+ "conformance/HexRCF/RootTableQuote/Conformance.lean": "ec5bd136df58cc24a40ca989e3d33e55923082aed7591b234f55c70c013c74ad",
+ "conformance/HexRCF/RowQuoteCases.lean": "8a2a7bea9830abbe7b730926e2fbb2952af7d5a3ce57f0d672d35a1b229631c3",
+ "conformance/HexRCF/RowQuoteData.lean": "ce60cb18f548f55e929d4803c7ed824ad0a7621fd4abda09a191f76393fabf0c",
+ "conformance/HexRCF/RowQuoteDepth.lean": "74fb7ef67dae87653e548b8314b970656dee8a3575648f1f929dc59265003264",
+ "conformance/HexRCF/RowQuoteProofs.lean": "317d4f981f32bb28666fcabc6248f4a57fe67c95a7fe431f7993aeacfa377ed3",
+ "conformance/HexRCF/SelectedRoot/KernelCheck.lean": "12e7e2e3f4667a76dc89c4b36796bff177f3c187b81adc5eb5e049ff1ce6669d",
+ "conformance/HexRCF/SharedQuoteCallbacks.lean": "8546f9e909f1f7157f26869cc64f81d8389f34a8713ce92cfb8085f9dceab249",
+ "conformance/HexRCF/SignPacketProofs.lean": "3980cad31637f5798b2c351e1efc2a29b946de1d90e06fb11acd85e2a5c46321",
+ "conformance/HexRCF/SignPacketQuote.lean": "739b142d1120bf19401386f62760fad8763affb18973ce70019e68733b85ba6d",
+ "conformance/HexRCF/SignatureQuoteConformance.lean": "26f16c37cb9e0d5c09a082787f4a66673437adbf998023fd5e9625db16ff5d3f",
+ "conformance/HexRCF/TreeQuote.lean": "16904bfae6591e990173c99572f6e2e7a06624b99083cc5f8d041ac28d02139b",
+ "conformance/HexRCF/TreeQuoteData.lean": "c595c2278d2997483b755aa585da874c27eed40e4e1a8106d7f553e4f574776b",
+ "conformance/HexRCF/TreeQuoteProofs.lean": "f9a40248237480f8972df62dff548ef0599205b76014e070866e72586f161933",
+ "conformance/HexRCF/TreeQuotePublic.lean": "adc6dc6871208f31970cf5ae0c2472fd325a72e1df8114a6e8178ef8b2c71570",
+ "experiments/KernelReplay/AxiomClosure.lean": "f49377265f05f52b633b10a59255a03731e08d022cc54763de9851c5b5325034",
+ "lake-manifest.json": "fd2dc4df30cd44e4d30568489d616e7bcc8a78747500139134be56f35ae746a4",
+ "lakefile.lean": "83d29490a6dbf274944a3ef14337b951b8fca8727f36d120889f4e232305ef19",
+ "lean-toolchain": "bc84812c94489d1e3e191baa1dc10d5eb684382d7fe9d2a5ab085e72c1c67e47",
+ "libraries.yml": "14e3dd1c01bb0c369b2216e2733378d61172040fd9f69dd0354d4e1267d9c5c1",
+ "reports/hexrcf-packet-quotation.md": "2b0f0b40a29fe3232ee588ec06b3bdfefb2facced7327049c8ad1cd70b6ca35e",
+ "reports/hexrcf-proof-functions.md": "ff410e9c4714476913d5651dd04d61a7ec55289b6143a6b1d29ccda331cd8989",
+ "reports/hexrcf-public-packet-quotation.md": "019ff6fe31e6699ec10e126a1d477a6a4b4f78b67893b5ce447cfe2aa637b316",
+ "reports/hexrcf-root-context.md": "fa967a71370454f5d1fcdb757ebf6ab6fa669538f253c3cc6cb6b6f826361c8a",
+ "reports/hexrcf-root-header-quotation.md": "62ecb8f293a9144b8a8a0bdc4910c473bd87063162bb656b94f1be53eb2e4617",
+ "reports/hexrcf-root-preparation.md": "23b6fc84e7b54447e224a166228f275f9ad239c90b2c6c8e4ea38d2f93e55cef",
+ "reports/hexrcf-sign-packet-quotation.md": "64adc6438ad1593d1018e14f2757cb6193614db26141af9c0c76d359084d9d99",
+ "reports/hexrcf-tree-quotation.md": "256ea13a022a3b92fecb3ef0875a3e01f9efd67776c104081ccb81e8ca463f2b"
+ },
+ "unchanged_guards": [
+ "conformance/HexRCF/SelectedRoot/KernelCheck.lean",
+ "experiments/KernelReplay/AxiomClosure.lean",
+ "AGENTS.md",
+ "PLAN.md",
+ ".github/workflows/ci.yml"
+ ],
+ "artifacts": [
+ {
+ "path": "validation/row-quote-integration-5.log.gz",
+ "bytes": 24700,
+ "sha256": "7109991643d5a1b25ae318a6360017c768816ab38570faf7d5b50ecd5375035c",
+ "uncompressed_sha256": "c0876d36a56adadf6f9deb31edcd074d9597e14a64676428e22ced8ee71e8f99"
+ },
+ {
+ "path": "validation/row-quote-production-core-1.log.gz",
+ "bytes": 6324,
+ "sha256": "a832ed2ef227650ed9f4ea17cb97bf987faa880068c4f424772cd2dc45e32b49",
+ "uncompressed_sha256": "8fc73c86983b10927f117ea706dc50825b1b97b4cdb0895071be32b6457e346b"
+ },
+ {
+ "path": "validation/row-quote-production-controls-1.log.gz",
+ "bytes": 7181,
+ "sha256": "09f6357785fed3a1ad537ff0d026780f3f1e92043c193c9976cb6e10ef4d3bd5",
+ "uncompressed_sha256": "5e3d890ef173facead1e744450f4bbee54cbbe7675879ff0cec3b0ed0f3842e6"
+ },
+ {
+ "path": "validation/row-quote-hidden-boundary-1.log.gz",
+ "bytes": 7297,
+ "sha256": "2cc6e8b247cff99c927b9f11ffd812a17dd77a2e9246f10512400db93dfddf8c",
+ "uncompressed_sha256": "9e12880d1c45bd07bc835263bb761e8be07e8d3876f95be57c34445a99dcc3e5"
+ },
+ {
+ "path": "validation/row-quote-recursive-5.log.gz",
+ "bytes": 7371,
+ "sha256": "8bd27e492b1c1504520549bcd8e4c4f882a080cab0b7400f77a9cef0fc796909",
+ "uncompressed_sha256": "8c5cb6111d0a07b6abf4bd8f69c37144d40425e216a75999e892865762f77e87"
+ },
+ {
+ "path": "validation/row-quotation-render-2.log.gz",
+ "bytes": 15732,
+ "sha256": "7b9fb3520cd48e4a23697651530a9e6428e5ae7dd742ed1d559a0e60b381be9c",
+ "uncompressed_sha256": "787cd9f90445bc87ec59f06627fb9d9d664ee43845ef34b4daafead58fb343fe"
+ },
+ {
+ "path": "validation/row-quotation-browser-2.log.gz",
+ "bytes": 239,
+ "sha256": "a9b07edc4da73cdae91e3ee22339b9bb7ca1a41e968880bc16d11d5302b67ae8",
+ "uncompressed_sha256": "57da41c1dc0c7cb256e3d2e7fbec1ba8093c1996daf323019ad6cef56f723762"
+ },
+ {
+ "path": "validation/metadata.json",
+ "bytes": 1176,
+ "sha256": "7a9e70bce2482d8102556a543ad3702a093e14c8e1716889f2060772014ebfc9"
+ },
+ {
+ "path": "validation/row-quote-final-metadata-copyright.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "validation/row-quote-final-metadata-lines.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "validation/row-quote-final-metadata-dag.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "validation/row-quote-final-metadata-admissions.log.gz",
+ "bytes": 100,
+ "sha256": "d3756d45b035561a8b730b971f446d08da1977b542f6ba4571609462989a4d25",
+ "uncompressed_sha256": "b09374d3404da13ef190fe222aee3e78790c6366070f0fc2505665080d0c4ce5"
+ },
+ {
+ "path": "validation/row-quote-final-metadata-diff.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "validation/row-quote-final-metadata-selected-admissions.log.gz",
+ "bytes": 135,
+ "sha256": "51fa7ddeb00fc208c48db9e7a857d29980f55d08c5ef2d1d3cfad3acb55f1d54",
+ "uncompressed_sha256": "d765b797bff3cb7434c36adf790b7bce7f50b192a65770a0a9a366c97389c957"
+ },
+ {
+ "path": "validation/row-quote-final-metadata-relative.log.gz",
+ "bytes": 105,
+ "sha256": "c43d1ba9fa5a6ea3d05919ed8b5f63ae6d92bdbc66b09a9c0e2db03229da84e9",
+ "uncompressed_sha256": "5b6d65aeb6cb570bc5e9b14d70d6222627b455a17e51016ce5d0bf8c9d5cd4c3"
+ },
+ {
+ "path": "validation/row-quote-final-metadata.py.gz",
+ "bytes": 1332,
+ "sha256": "8bd0b746df599bb7b4de80fbe4d02ee70b7a8c0c680c45fc97d52e53b5d0e997",
+ "uncompressed_sha256": "50ded795e0a4ba773760fbc2da10c1e2f5036473fcec7ddd4be114d19ae33334"
+ },
+ {
+ "path": "validation/row-quote-integration-targets.txt.gz",
+ "bytes": 267,
+ "sha256": "ccef7004eefcd607cc279830203604693dd8600ed667495dfd73fb1caf39b0cf",
+ "uncompressed_sha256": "7ec2ca2053b006b4dd4ac386cffa500f24fbf06bdf5bdbd7f48d9549b0b675a9"
+ },
+ {
+ "path": "validation/row-memory-policy.txt.gz",
+ "bytes": 242,
+ "sha256": "be57345ae3b27a8145cfa645e9bab52c9cec6135fbeb86816b83c71e6ac98405",
+ "uncompressed_sha256": "bcd60928bece986758499f7160c443b9a722ebe3ab645c2038a0968c19ed3b55"
+ },
+ {
+ "path": "validation/run-bounded.sh",
+ "bytes": 302,
+ "sha256": "63bc5f97337e6b039bb3a9b1ba2a500be96fd1c2a2f73b43dae284aa9b18dda8"
+ },
+ {
+ "path": "validation/collect.py.txt",
+ "bytes": 5344,
+ "sha256": "bea27510a668e53fa7515982de8097729200bb697cf6a8e9867107b06a0e7023"
+ },
+ {
+ "path": "validation/render.lean.txt",
+ "bytes": 203,
+ "sha256": "db43d3f064defd7bfa716e475960155c8dc6b8094faf79998a163a4b66786a61"
+ },
+ {
+ "path": "captures/browser.mjs",
+ "bytes": 5624,
+ "sha256": "0300e765aca337008d2808fd0bdd7a523fc2d3477375660d2e8f3b5c212b0d2f"
+ },
+ {
+ "path": "captures/inspection.json",
+ "bytes": 5592,
+ "sha256": "3bbbdf2b729c7aaf569c3b44d7079656bb804fd7f83123adbf7d9ef75d588e1a"
+ },
+ {
+ "path": "captures/section-overflow.json",
+ "bytes": 32326,
+ "sha256": "2a12e3155fb7e623b694017347f69854f820636478e4c78fbc5437f28a393388"
+ },
+ {
+ "path": "captures/row-quotation-desktop-introduction.png",
+ "bytes": 239610,
+ "sha256": "0546e0726e55efbd8ff9d85f998379dd1cf18073c27432452c48e3e4e7e7932b"
+ },
+ {
+ "path": "captures/row-quotation-desktop-api.png",
+ "bytes": 258052,
+ "sha256": "ae8aa3be4b4db9a2737019fe64b03bbf3af9f857c20e9c491304837725a18d8e"
+ },
+ {
+ "path": "captures/row-quotation-desktop-example.png",
+ "bytes": 277024,
+ "sha256": "28a19205870fa2a50fa3f32e2dd50d260127b4cd910d319a17a94a0adec109d0"
+ },
+ {
+ "path": "captures/row-quotation-desktop-budget.png",
+ "bytes": 271801,
+ "sha256": "0447da4524b158d64448f6afb0c253a658491f2834c2a191dd0cd193f5260c1b"
+ },
+ {
+ "path": "captures/row-quotation-narrow-introduction.png",
+ "bytes": 93215,
+ "sha256": "83ea36690c9334fab3cbcb6d0fb717f9ab3bd9713846d0f994d9b73dd89ac3af"
+ },
+ {
+ "path": "captures/row-quotation-narrow-api.png",
+ "bytes": 95446,
+ "sha256": "9de7eddf70db0c13c5520295e9f09827d941d9a665c02225dfdc59f21b4a409a"
+ },
+ {
+ "path": "captures/row-quotation-narrow-example.png",
+ "bytes": 96939,
+ "sha256": "a222fe8be179718516593df6f84ab73e23c6b299e068a2588276eaca3f58407d"
+ },
+ {
+ "path": "captures/row-quotation-narrow-budget.png",
+ "bytes": 100374,
+ "sha256": "5ac2b830f40046fa61da56591ad58b781a512c64a7b9e02e9ffbe29afe2b246b"
+ },
+ {
+ "path": "captures/visual-review.json",
+ "bytes": 1821,
+ "sha256": "f1fe9cc65404bc294343bcd79f171c421a8d486310fa04a0a430891c43dc91bd"
+ },
+ {
+ "path": "diagnostics/narrow-overflow/RootQuote.lean.txt.gz",
+ "bytes": 10283,
+ "sha256": "0fde823f910586b61286fc3c5e35e972bd360d119b4a8b8eb561f8ff18dccf09",
+ "uncompressed_sha256": "28fb53820c3a85d02ea8b2dbb8210d3f4b0c5c0b508b584f02cd286c6be1066b"
+ },
+ {
+ "path": "diagnostics/narrow-overflow/browser.log.gz",
+ "bytes": 417,
+ "sha256": "7643c9426e38ff88c59fc3d8bdb22dd1d986afb38f920a0a0a7b1a24147c36b4",
+ "uncompressed_sha256": "f39962cda2779f4f29656f1b76825dca2b6f795e2e66c56a8dc9c7c2bfca4132"
+ },
+ {
+ "path": "diagnostics/narrow-overflow/review.json.gz",
+ "bytes": 150,
+ "sha256": "2804f5259a2e788289eb26b0ecf8ec94b777a960e676fa6f31b237dfde8536c5",
+ "uncompressed_sha256": "1537874d3f124c63531c9fc418ff52133473867c41cdcd12e520734d807124c0"
+ },
+ {
+ "path": "diagnostics/narrow-overflow/row-quotation-desktop-api.png.gz",
+ "bytes": 245451,
+ "sha256": "91a18a79c7cecb8b5346e15e6266cb0c14f7affc922bb6cf08d3019b2c72a201",
+ "uncompressed_sha256": "77d1cf04f64cc9917ff295a61ffd09411c42b47c8399ab40d4fd6183616e1052"
+ },
+ {
+ "path": "diagnostics/narrow-overflow/row-quotation-desktop-budget.png.gz",
+ "bytes": 257589,
+ "sha256": "e85e9618d5300e8203331af0c18764e805ee0923bb4d973e8ed1a923d8c26e25",
+ "uncompressed_sha256": "43c708c75579aed38bf2faaf1abd637904ecb556ae5784eecde139852c56379a"
+ },
+ {
+ "path": "diagnostics/narrow-overflow/row-quotation-desktop-example.png.gz",
+ "bytes": 263975,
+ "sha256": "d5d2109ea068506b261a0359bcfc2aefcab909cac7ebb3e512482e176a63feb2",
+ "uncompressed_sha256": "201fd494d330c87fb7e86394a47eeccdd0a1ad59b7311b5dbf7ea1baba68aa6b"
+ },
+ {
+ "path": "diagnostics/narrow-overflow/row-quotation-desktop-introduction.png.gz",
+ "bytes": 228425,
+ "sha256": "0e0526fa98461733e068769e4943427bd564f0a9d7866145cb423b55ac2c9a76",
+ "uncompressed_sha256": "e2157fd59d68c3868dabffc8ae3235abad55def6276334cffa942cb435c73659"
+ },
+ {
+ "path": "diagnostics/narrow-overflow/row-quotation-inspection.json.gz",
+ "bytes": 1135,
+ "sha256": "94e58a41d74496a3cfd84776cf99b1ad6bb77e7bfdc237c87ccaed9ed8235cd8",
+ "uncompressed_sha256": "2a49dd60b5e8395f8b487636d7e38b4e53a49b321544a0f680e1fdac2abab129"
+ },
+ {
+ "path": "diagnostics/narrow-overflow/row-quotation-narrow-api.png.gz",
+ "bytes": 91129,
+ "sha256": "eaf04fa81de1c9e769f475e4c46869d22abe36e17be817af83514c47e19fb9f6",
+ "uncompressed_sha256": "f2d5b8c0df4c7111a3bb0df4950d9f790558f4257ca2cef2f2d63d2c6bb287c4"
+ },
+ {
+ "path": "diagnostics/narrow-overflow/row-quotation-narrow-budget.png.gz",
+ "bytes": 95619,
+ "sha256": "ab5192e1b26a2386b3475a01a0cd25cf095d79db61ecf8d97c7c5209e156ac42",
+ "uncompressed_sha256": "19a9868291c372cb0b43ec250da4ee20d3838ef67967830a678fb6103f577118"
+ },
+ {
+ "path": "diagnostics/narrow-overflow/row-quotation-narrow-example.png.gz",
+ "bytes": 92999,
+ "sha256": "0d60051406855b9e7b2d7633c49c3582d0f7a88c1513300e97ac05349674556b",
+ "uncompressed_sha256": "f2e875e56b28a396c91aa16d646033ed102b182695727a39f7b77ec4b97d2134"
+ },
+ {
+ "path": "diagnostics/narrow-overflow/row-quotation-narrow-introduction.png.gz",
+ "bytes": 89699,
+ "sha256": "7faaba4f244f41bcbfc1ad2521e15e036b413bf238a731eae5384460caec6dc8",
+ "uncompressed_sha256": "5c0f102e6762aa5a7bce3e2e7550d9b7b08b2d91cdd3ded53f504588dd6e2082"
+ },
+ {
+ "path": "diagnostics/narrow-overflow/row-quotation-section-overflow.json.gz",
+ "bytes": 4063,
+ "sha256": "471b0d3534a50960ccc0fbffcd9e23151063a699afaf61e4f440e21d02e66f86",
+ "uncompressed_sha256": "fa1ec9d37cd3626d8fb9eed2706f2b802bb40a79e55f31a518090d51f5e8135a"
+ },
+ {
+ "path": "diagnostics/row-quote-integration-1.log.gz",
+ "bytes": 24094,
+ "sha256": "04ad3e5b8f9ae6789cd75230f494a02389bee294dfefae549ff98b254f6e7cb3",
+ "uncompressed_sha256": "8f3a8f30bc893af71c16f56f84dc47d76858c90e7750ecc72e074767cfc72fde"
+ },
+ {
+ "path": "diagnostics/row-quote-integration-2.log.gz",
+ "bytes": 22720,
+ "sha256": "dbc946e163223602ce06105001a92712365547c587a08f6e9a1688524c3eab53",
+ "uncompressed_sha256": "701c9d9fab4d70b53bc46858a67e8fd6ba0ed1e86c45f3b72c4932de8fd2758a"
+ },
+ {
+ "path": "diagnostics/row-quote-integration-3.log.gz",
+ "bytes": 26666,
+ "sha256": "491b1577bf03ec2a51b74f8a1e395f836987696b68a14318d0633be165885b1e",
+ "uncompressed_sha256": "55e6ecb94392fd108d0d7df86d258a4a07d7074199512888193115ef38deae8b"
+ },
+ {
+ "path": "diagnostics/row-quote-integration-4.log.gz",
+ "bytes": 25270,
+ "sha256": "818205d58a51486a22bd275c260b8d6e7386e648054ac6be5d0e2f85fee5b8fc",
+ "uncompressed_sha256": "dd704affef0d246c35d88bb3156be6a86dd8d8d9ac8a7d366afa58597dc6c93e"
+ },
+ {
+ "path": "diagnostics/row-quote-recursive-1.log.gz",
+ "bytes": 7656,
+ "sha256": "1ca1c06f6901d0c6541bb09457a8c3061a2cb8507bd800ccc3f4b071154a115f",
+ "uncompressed_sha256": "6276e14bed02edb373858ffd29252c77a716f608ced19fb9f6883c72f6e7dd6d"
+ },
+ {
+ "path": "diagnostics/row-quote-recursive-2.log.gz",
+ "bytes": 7676,
+ "sha256": "e4a9fd7b9e06713a95c89f7237125785360c7ce0839537f24e7c1ba60de1a137",
+ "uncompressed_sha256": "c7b322683969aaa6ce7c13d3f32a28387173e500e33487181541bc80bdf03b62"
+ },
+ {
+ "path": "diagnostics/row-quote-recursive-3.log.gz",
+ "bytes": 7670,
+ "sha256": "19e037b5d4208101662cb30ce4c472ce9ed600cd7fea9a04260f527081bc5197",
+ "uncompressed_sha256": "ffa034011020ae44ff3ef58696559fca0e9c3b9f63e4a6953ebb5b9e7c37919b"
+ },
+ {
+ "path": "diagnostics/row-quote-recursive-4.log.gz",
+ "bytes": 7675,
+ "sha256": "6ca74391229d1f564d041c53ac60812c8736043a111e80e413f5f2d2c8d4ee11",
+ "uncompressed_sha256": "52bc90a0e42b5d0dda0f208d707ab73d85e4d4b4c731a89398d5d83697c2e724"
+ },
+ {
+ "path": "diagnostics/row-quotation-render-1.log.gz",
+ "bytes": 15685,
+ "sha256": "4c0451965654b53cae1025ee70301f2cdb15e915ef8a3f0abc827af7573bbfcb",
+ "uncompressed_sha256": "c4e6e2707541073ac60757ff150cea6d916048090775e581e633a2be9718ce3d"
+ },
+ {
+ "path": "diagnostics/row-quotation-browser-1.log.gz",
+ "bytes": 417,
+ "sha256": "7643c9426e38ff88c59fc3d8bdb22dd1d986afb38f920a0a0a7b1a24147c36b4",
+ "uncompressed_sha256": "f39962cda2779f4f29656f1b76825dca2b6f795e2e66c56a8dc9c7c2bfca4132"
+ },
+ {
+ "path": "diagnostics/projection-depth-1.log.gz",
+ "bytes": 6756,
+ "sha256": "0892432bdee7d1b849b06e7cc55de4a7fa3af0509e129f4da2e4a6762a1c7542",
+ "uncompressed_sha256": "5cea98a8e2d0e2812d063725459c92eb07ce1cc2a1dd54ff759d69ac1eaf12c3"
+ },
+ {
+ "path": "diagnostics/projection-depth-2.log.gz",
+ "bytes": 7041,
+ "sha256": "746db45befae9f42886f427f7fa09f09597ca06bd947289a15207454b2e8ee1a",
+ "uncompressed_sha256": "b7fddaa4e48fceccb9d39cdf62c8708909694ff8e3e738f5b607b7983abe421a"
+ },
+ {
+ "path": "diagnostics/fresh-complete-projected-1-progress.log.gz",
+ "bytes": 2120,
+ "sha256": "209cc5fb1e81ab90118568ad730d2dae8ce81933142039abea15d5f7d33dedeb",
+ "uncompressed_sha256": "8811d29dc7db2a721010cb3bb9d9bd24472cf0f168a85ebd515c575c6f0b00c2"
+ },
+ {
+ "path": "diagnostics/fresh-complete-projected-1.log.gz",
+ "bytes": 14310,
+ "sha256": "681c215fb0a2cd7953f9c2e6bfa88852c3103e0f268300a2cddbd0391a7fcecb",
+ "uncompressed_sha256": "ee0a5fbf781ebc53a744ce6e9a1cb1a9420fc58caf63c2640187693ff896a7d2"
+ },
+ {
+ "path": "diagnostics/fresh-complete-projected-1-FreshCompleteProjected.lean.txt.gz",
+ "bytes": 3308,
+ "sha256": "d667006d5029ec4611f2fc21acbbbe31f2df76ce9bccf7c59fe1934718950b64",
+ "uncompressed_sha256": "c23797c5d7f6b049826ba7c617c05281e6e3e5fc7543065fc23d8359fc251481"
+ },
+ {
+ "path": "diagnostics/fresh-complete-projected-1-FreshProjectedAudit.lean.txt.gz",
+ "bytes": 1430,
+ "sha256": "77ef3be142a062035d1bd0ca8c178987b6e9fa3f76b73cc398da793d0819120c",
+ "uncompressed_sha256": "b526a31e427f9f3c757a4313de0175ea0e3438165e71fa0c825e182c746990f0"
+ },
+ {
+ "path": "diagnostics/fresh-complete-projected-1-ProjectionAudit.lean.txt.gz",
+ "bytes": 1461,
+ "sha256": "e0639e768cc74d7f73537516379e097ecc4cf1d771fb18509efee0411c5dfb18",
+ "uncompressed_sha256": "864e2a2ff65a6876858a274fde34e321a0d7a810aa2299165d3291bd5a4c52ed"
+ },
+ {
+ "path": "diagnostics/fresh-complete-projected-1-ProjectionCaseData.lean.txt.gz",
+ "bytes": 436,
+ "sha256": "8752cce6c68632942df11eaba86fb8a5b1e61244ed8b475dcf34e3e26c225549",
+ "uncompressed_sha256": "c0a2c15d30990c51a0126f0f2ae77f142b9f1ecd8350f83a16df135cbee04d90"
+ },
+ {
+ "path": "diagnostics/fresh-complete-projected-1-ProjectionCases.lean.txt.gz",
+ "bytes": 1834,
+ "sha256": "8a61f8d866959e6980495fa11786f05961633d231e1d273122b1dc3e258eb152",
+ "uncompressed_sha256": "2d8596032125419bdb35d83bf0ff6b971fc03bc29900a2a84031507faa0aece6"
+ },
+ {
+ "path": "diagnostics/fresh-complete-projected-1-SelectedProjectionCallback.lean.txt.gz",
+ "bytes": 1336,
+ "sha256": "598f66b0bac43cbc2240e18f955e7aaf34324a74fdfbbace0349c125c3dbd009",
+ "uncompressed_sha256": "a00dc3017cedec0a7fadb236851c69e10720da3b006dcaabf374b2881da9f24c"
+ },
+ {
+ "path": "diagnostics/fresh-complete-projected-1-SelectedProjectionProbe.lean.txt.gz",
+ "bytes": 787,
+ "sha256": "cf55f621dced7ef3d4e91e30c592980856312a12e96a5664c968bf305cfffd6f",
+ "uncompressed_sha256": "8d4ba01b592006dcd3a63f077c354d79b55e632a28de8f6a9e0e43b88a69fb21"
+ },
+ {
+ "path": "diagnostics/fresh-complete-projected-1-SelectedProjectionQuote.lean.txt.gz",
+ "bytes": 2170,
+ "sha256": "7347ad0c430498e2d6427e836e8e888391365c381081907bb23faa71c255abdd",
+ "uncompressed_sha256": "1db144a9b1d1ad3c792e6f0584e2b6a6d3dd18b3f5af32f6cf9b0bc96be64dae"
+ },
+ {
+ "path": "diagnostics/selected-projection-repair-1.log.gz",
+ "bytes": 6622,
+ "sha256": "4f96e62a40e173fec3c351ed5056b1b59de47321b93b19a375c477865c28e913",
+ "uncompressed_sha256": "b12c0293b46516a79d39a0c8c2080cb0516bc73ab35d68a7552c5f3c7ceaf082"
+ },
+ {
+ "path": "diagnostics/selected-projection-repair-10.log.gz",
+ "bytes": 6619,
+ "sha256": "6367e5fd98885522864b18a251441ab628dec5e215c3d0b1a9e54788754f1e5e",
+ "uncompressed_sha256": "23eda74995860d127dd2f5ef84b07698d2d763302cc44e6d92f9c6955708cfbd"
+ },
+ {
+ "path": "diagnostics/selected-projection-repair-11.log.gz",
+ "bytes": 6990,
+ "sha256": "5b35e26656ded447a9f08e144d3b046f07f670ec77f6e38a1cf9bd050cac6247",
+ "uncompressed_sha256": "2fa5ae2333a23fd864968b91c3e066dad49ae2f87e6eff1d6d8243b12fe743d9"
+ },
+ {
+ "path": "diagnostics/selected-projection-repair-12.log.gz",
+ "bytes": 6990,
+ "sha256": "2598b4d7bf1010cf103033dd6c29cd169d25f643d8e180619c79154d781f5ed2",
+ "uncompressed_sha256": "1a741cfde3df8aa23c4dc74a7ff7e74afd33013ed014842a93d9f85b0d86c029"
+ },
+ {
+ "path": "diagnostics/selected-projection-repair-13.log.gz",
+ "bytes": 6882,
+ "sha256": "27c22f31698ce748a1dbdd93e03c188de2fb9135f3e98e942bf38c9242aaf7e0",
+ "uncompressed_sha256": "47f46e3dff373cbc6eb26b28a78ba2c8609b511ca7af5182c36a3e1a71a6f239"
+ },
+ {
+ "path": "diagnostics/selected-projection-repair-14.log.gz",
+ "bytes": 6621,
+ "sha256": "3075bcc7fb8cc61b8782b3ac800a89a6e1d290f1d4ec316c15928d7b536ecaa2",
+ "uncompressed_sha256": "aa94493e3f13c648333b6bdfc265960517f960485a7a8afb1606fa8f369b592c"
+ },
+ {
+ "path": "diagnostics/selected-projection-repair-15.log.gz",
+ "bytes": 6723,
+ "sha256": "8f4c77f7c5e15ba89772504b359ff9a98fbeb240e4489f86c388872f2d842176",
+ "uncompressed_sha256": "d09471b6482daed8aa5bd7a9a8f86a8765563ea149f649d111f465340c7135bd"
+ },
+ {
+ "path": "diagnostics/selected-projection-repair-16.log.gz",
+ "bytes": 6725,
+ "sha256": "416f8ba2052837abb74c87493a1433606af10babd99f8de16a927c87a5058e2c",
+ "uncompressed_sha256": "6a6aa632e217e791007dea51abe411050eef7368a95b2a50b6c999b5b95cca00"
+ },
+ {
+ "path": "diagnostics/selected-projection-repair-17.log.gz",
+ "bytes": 6726,
+ "sha256": "4b55b0e8e5e4246a09091e7eae3b3bd037ca788e5864a5d6ac8c1b08ad9e7718",
+ "uncompressed_sha256": "086b08cdf5bcd1327e7f80f319b674b03a25cddff2f9360b735a276545c0d003"
+ },
+ {
+ "path": "diagnostics/selected-projection-repair-18.log.gz",
+ "bytes": 6698,
+ "sha256": "317d2d1062c0c538ee1ffcddf9f005da3ae913335f12595baa1186a64e86a2c1",
+ "uncompressed_sha256": "cf7e26ec14366721e04560c6922908a4bce30aed1b33072a219de4ba90ad9a3e"
+ },
+ {
+ "path": "diagnostics/selected-projection-repair-19.log.gz",
+ "bytes": 6733,
+ "sha256": "fb305a70d05bbb49afe12904bfafd60ed02c001e8937f517373201f461c3cf17",
+ "uncompressed_sha256": "fa617dd7a446bdc2a9c4ba034507e903bab7715c05b7d141710d6aab51e208e7"
+ },
+ {
+ "path": "diagnostics/selected-projection-repair-2.log.gz",
+ "bytes": 6631,
+ "sha256": "d8e1d69417670c83d41ff818cb665b478e830fd9ade2c564c78bb4fc4962a3af",
+ "uncompressed_sha256": "ebad6d6a73072ee456ed202a2d88c722f057e90e757be572a763777d6a363a25"
+ },
+ {
+ "path": "diagnostics/selected-projection-repair-20.log.gz",
+ "bytes": 6338,
+ "sha256": "b3b337e4cfe60cedf0ef59e67faac960f1c9740e388bb94ea859e2ae75adaed1",
+ "uncompressed_sha256": "0bc0f1b6ed78b8b6d623705f101ae1519a562818136e1e0134e6269c32e4d33d"
+ },
+ {
+ "path": "diagnostics/selected-projection-repair-3.log.gz",
+ "bytes": 6642,
+ "sha256": "6ffb45bab668efb4874855b348cdc4f7caeb4e17f70a31b89417c8e30a2c164c",
+ "uncompressed_sha256": "f383e02554f87305da1e0f9b1b02812f8fb47d9d360919f07b4485f2c1288ad1"
+ },
+ {
+ "path": "diagnostics/selected-projection-repair-4.log.gz",
+ "bytes": 6689,
+ "sha256": "e8499699c2dfa914fcadc621cbdd90ef72b91c4df69346d0b9cc037e24503165",
+ "uncompressed_sha256": "476d44a6e5296f9b5431d1284ba0d5940f32990c9d6f45e828951d9618acd944"
+ },
+ {
+ "path": "diagnostics/selected-projection-repair-5.log.gz",
+ "bytes": 6732,
+ "sha256": "f897665848d1142dc13032172019a03afb653216c1ae340009436a5487176cb1",
+ "uncompressed_sha256": "ee941a3e176f9d25b072cbf39a372cf43ab81acc9c9eaf34a1ad42b256088704"
+ },
+ {
+ "path": "diagnostics/selected-projection-repair-6.log.gz",
+ "bytes": 37166,
+ "sha256": "5a0932619da28fed6bba259276e18c60ab36832f9a6116b2e241ebf65fef2da6",
+ "uncompressed_sha256": "7567b4430976d97bb038da64faf0a5ceff17f2decc5b16f2bc03788609fee538"
+ },
+ {
+ "path": "diagnostics/selected-projection-repair-7.log.gz",
+ "bytes": 29219,
+ "sha256": "c9b80300b6e8f9a034e9647889673dc2b2ea1fda26974524a6042ebd16c8cc1c",
+ "uncompressed_sha256": "d2c155f3aab20109d0b5cd489b9e046a5c23bf9852808e7d62099dd09daed0c7"
+ },
+ {
+ "path": "diagnostics/selected-projection-repair-8.log.gz",
+ "bytes": 6623,
+ "sha256": "59ebc2fb40709e30d2e8fbe42fd27c5fc66c5fa389f4fb1601ab8ccc75bd61d2",
+ "uncompressed_sha256": "1879b560491f272bc28ab0c5fa47a2dbdf6ffc87af9f2f47e39915ee74a52f0f"
+ },
+ {
+ "path": "diagnostics/selected-projection-repair-9.log.gz",
+ "bytes": 6627,
+ "sha256": "1bd366208dd01ad9d79d4e626eaca664eeefeac8b53e685b4319a79dc5f53b00",
+ "uncompressed_sha256": "479cbd3eb8b258ffbab561d87331c01ed962fdf30d47f36cbd6d009218c8ebc3"
+ },
+ {
+ "path": "diagnostics/selected-projection-repair-11-SelectedProjectionProbe.lean.txt.gz",
+ "bytes": 746,
+ "sha256": "c7634056a995b1e53cb977d185daf57e26e07850c31743e9b45cc955ff16892a",
+ "uncompressed_sha256": "9d13c740fc6b3c97b5328aa0eb456d24f6f04e204f687e3906ff46df05c0dceb"
+ },
+ {
+ "path": "diagnostics/selected-projection-repair-11-SelectedProjectionRepair.lean.txt.gz",
+ "bytes": 2540,
+ "sha256": "ccb77e3c83a2f4d440a09fea6a8cee6e0c6bd4f3bc2bc3817846cdfb70040bca",
+ "uncompressed_sha256": "61cf0912acc9cb266bf0f3204f91b8efe45468f7261ef8dc133261db6a2b98ed"
+ },
+ {
+ "path": "diagnostics/selected-projection-repair-16-SelectedProjectionProbe.lean.txt.gz",
+ "bytes": 746,
+ "sha256": "c7634056a995b1e53cb977d185daf57e26e07850c31743e9b45cc955ff16892a",
+ "uncompressed_sha256": "9d13c740fc6b3c97b5328aa0eb456d24f6f04e204f687e3906ff46df05c0dceb"
+ },
+ {
+ "path": "diagnostics/selected-projection-repair-16-SelectedProjectionRepair.lean.txt.gz",
+ "bytes": 2953,
+ "sha256": "48b3f5848f35d9aa9f7f94437596872b83fb77149b6f9d71228628a5d37352d8",
+ "uncompressed_sha256": "04574b73d27ed1f0e1b90eaaea97b7f558c609c7616036d148ceaad17fd008f3"
+ },
+ {
+ "path": "diagnostics/selected-projection-callback-1.log.gz",
+ "bytes": 6835,
+ "sha256": "06299d3ce6723676cdbe80b564c81544443ff0d61fb9f28cedf5b67cbdda0632",
+ "uncompressed_sha256": "d1f7f99b756253c0d8394e0128d0f07fa1349a8bfb639d9116dcfd55e9705e75"
+ },
+ {
+ "path": "diagnostics/selected-projection-callback-2.log.gz",
+ "bytes": 6745,
+ "sha256": "5f0e6b3e9c77a795df322df0ee1b078ebac42f59d38884db4f88c60d72694348",
+ "uncompressed_sha256": "76714a962004710c7efd827c78e220eda232dabd0bef1cb3bda2f84fc79440a6"
+ },
+ {
+ "path": "diagnostics/selected-projection-callback-3.log.gz",
+ "bytes": 6470,
+ "sha256": "dec944b8ab9d73e8bcfa99a21b57d7c0a049174fce85f2662187c9ac998ad407",
+ "uncompressed_sha256": "05378dc223f347136f57b5b56a77c6ba2c9c278a309afbec0c25098228b72426"
+ },
+ {
+ "path": "diagnostics/selected-projection-cases-1.log.gz",
+ "bytes": 7046,
+ "sha256": "2409cb2a977afc6889b983d9cbf2f02b9eaf860db1d2501f289b1b69612bde3f",
+ "uncompressed_sha256": "f1b6acee7d1e2ad450a39b47f1acf62fc6dc67dc9a2053988ed57567977d5989"
+ },
+ {
+ "path": "diagnostics/selected-projection-cases-2.log.gz",
+ "bytes": 6840,
+ "sha256": "74f7b9f778d67bb94986bc6f7cfd17b6c7e1d4e19799d09066b50158750be490",
+ "uncompressed_sha256": "5949383bc1b607b6b8060e79dbf0e62c0659e598efe5f1596c5e506863e77528"
+ },
+ {
+ "path": "diagnostics/selected-projection-cases-3.log.gz",
+ "bytes": 6777,
+ "sha256": "bcdef6c223fff2a6155e7a17e6279eeb8f7ec746e265bfd3b7b0f530e582ed19",
+ "uncompressed_sha256": "03ab1bfcbfb30e8cc431f920ab881acf6629077d4522d3eb0c3765f2c77e0263"
+ },
+ {
+ "path": "diagnostics/selected-projection-cases-4.log.gz",
+ "bytes": 6821,
+ "sha256": "ad817b8ddd5ccaa1e0d708d80c3974d52d6d04912164cb24c002b019501c0529",
+ "uncompressed_sha256": "f73867bc3f2bddab45ddb7f003d7844207faa1a2f02fcd7a6f5dd098794f8be3"
+ },
+ {
+ "path": "diagnostics/selected-projection-cases-5.log.gz",
+ "bytes": 6550,
+ "sha256": "1e99d00773d9d1b73658c50daadce6d349455ca71ab11d340d054edc27409b44",
+ "uncompressed_sha256": "bd1aaa6da9c86f8d0ebd50082e08cca0fe24031d27f30626822d1015de4eda7c"
+ }
+ ],
+ "validation": {
+ "integration": "validation/row-quote-integration-5.log.gz",
+ "core": "validation/row-quote-production-core-1.log.gz",
+ "controls": "validation/row-quote-production-controls-1.log.gz",
+ "hidden": "validation/row-quote-hidden-boundary-1.log.gz",
+ "recursive": "validation/row-quote-recursive-5.log.gz",
+ "render": "validation/row-quotation-render-2.log.gz",
+ "browser": "validation/row-quotation-browser-2.log.gz"
+ },
+ "complete_packet_accepted": false,
+ "scope": "Checked stored-row projection through root/query/operation transports; dependent replay helpers inside Boolean conditions; exact/below budgets, wrong-goal rejection and caller restoration; all32 selected targets and complete manual; eight actually viewed final captures.",
+ "limits": "Reader/data-access evidence, not a complete original-source decision procedure. The prior full-source experiment failed with a dependent replay-helper kernel mismatch. Its full log and exact inputs are retained. The subsequent production run is outside this immutable focused record until it actually terminates. No full-source proof or speedup claim follows from these controls.",
+ "diagnostic_source_note": "Earlier failed tool attempts retain their original logs and selected exact source copies. Final production code is pinned by source_commit; intermediate logs do not purport to run those final bytes. Snapshot-debug inputs never become production proof dependencies.",
+ "compiled_files": [
+ {
+ "path": ".lake/build/lib/lean/HexRCF/RowQuoteCases.olean",
+ "bytes": 103088,
+ "sha256": "2ac2ec2f8291984a7542534b70e17c64f8a286ac2403acd23a58f7abe525c669"
+ },
+ {
+ "path": ".lake/build/lib/lean/HexRCF/RowQuoteDepth.olean",
+ "bytes": 72304,
+ "sha256": "6d89a2b68d2604ed7c575ca4058799ea3fa4f19059323eb0d5663ff2dec6f513"
+ },
+ {
+ "path": ".lake/build/lib/lean/HexRCF/RowQuoteProofs.olean",
+ "bytes": 3464,
+ "sha256": "643b31b6bcf5bf00409601def139a99122a6876e9ba79038d863cfed9ca6db58"
+ },
+ {
+ "path": ".lake/build/lib/lean/HexRCF/ReplayBoundary.olean",
+ "bytes": 80736,
+ "sha256": "9fdee04d6c7cc384865b35a0f86a29332eb1bab1b68138749617ed37dfab4385"
+ },
+ {
+ "path": ".lake/build/lib/lean/HexRCF/ReplayBoundaryProofs.olean",
+ "bytes": 3352,
+ "sha256": "f0b83822bde323da2cc9935273a23c4710f3e5b86e566c14e5d4e9669cd1033d"
+ }
+ ]
+}
diff --git a/reports/data/hexrcf-row-quotation/diagnostics/fresh-complete-projected-1-FreshCompleteProjected.lean.txt.gz b/reports/data/hexrcf-row-quotation/diagnostics/fresh-complete-projected-1-FreshCompleteProjected.lean.txt.gz
new file mode 100644
index 0000000000..8b8b330b8c
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/diagnostics/fresh-complete-projected-1-FreshCompleteProjected.lean.txt.gz differ
diff --git a/reports/data/hexrcf-row-quotation/diagnostics/fresh-complete-projected-1-FreshProjectedAudit.lean.txt.gz b/reports/data/hexrcf-row-quotation/diagnostics/fresh-complete-projected-1-FreshProjectedAudit.lean.txt.gz
new file mode 100644
index 0000000000..76e117e730
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/diagnostics/fresh-complete-projected-1-FreshProjectedAudit.lean.txt.gz differ
diff --git a/reports/data/hexrcf-row-quotation/diagnostics/fresh-complete-projected-1-ProjectionAudit.lean.txt.gz b/reports/data/hexrcf-row-quotation/diagnostics/fresh-complete-projected-1-ProjectionAudit.lean.txt.gz
new file mode 100644
index 0000000000..4e17f1b4ce
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/diagnostics/fresh-complete-projected-1-ProjectionAudit.lean.txt.gz differ
diff --git a/reports/data/hexrcf-row-quotation/diagnostics/fresh-complete-projected-1-ProjectionCaseData.lean.txt.gz b/reports/data/hexrcf-row-quotation/diagnostics/fresh-complete-projected-1-ProjectionCaseData.lean.txt.gz
new file mode 100644
index 0000000000..1c7f89af20
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/diagnostics/fresh-complete-projected-1-ProjectionCaseData.lean.txt.gz differ
diff --git a/reports/data/hexrcf-row-quotation/diagnostics/fresh-complete-projected-1-ProjectionCases.lean.txt.gz b/reports/data/hexrcf-row-quotation/diagnostics/fresh-complete-projected-1-ProjectionCases.lean.txt.gz
new file mode 100644
index 0000000000..cd7bd297c1
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/diagnostics/fresh-complete-projected-1-ProjectionCases.lean.txt.gz differ
diff --git a/reports/data/hexrcf-row-quotation/diagnostics/fresh-complete-projected-1-SelectedProjectionCallback.lean.txt.gz b/reports/data/hexrcf-row-quotation/diagnostics/fresh-complete-projected-1-SelectedProjectionCallback.lean.txt.gz
new file mode 100644
index 0000000000..da16282845
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/diagnostics/fresh-complete-projected-1-SelectedProjectionCallback.lean.txt.gz differ
diff --git a/reports/data/hexrcf-row-quotation/diagnostics/fresh-complete-projected-1-SelectedProjectionProbe.lean.txt.gz b/reports/data/hexrcf-row-quotation/diagnostics/fresh-complete-projected-1-SelectedProjectionProbe.lean.txt.gz
new file mode 100644
index 0000000000..486cb08a67
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/diagnostics/fresh-complete-projected-1-SelectedProjectionProbe.lean.txt.gz differ
diff --git a/reports/data/hexrcf-row-quotation/diagnostics/fresh-complete-projected-1-SelectedProjectionQuote.lean.txt.gz b/reports/data/hexrcf-row-quotation/diagnostics/fresh-complete-projected-1-SelectedProjectionQuote.lean.txt.gz
new file mode 100644
index 0000000000..cc08217ddb
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/diagnostics/fresh-complete-projected-1-SelectedProjectionQuote.lean.txt.gz differ
diff --git a/reports/data/hexrcf-row-quotation/diagnostics/fresh-complete-projected-1-progress.log.gz b/reports/data/hexrcf-row-quotation/diagnostics/fresh-complete-projected-1-progress.log.gz
new file mode 100644
index 0000000000..0e1be9e069
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/diagnostics/fresh-complete-projected-1-progress.log.gz differ
diff --git a/reports/data/hexrcf-row-quotation/diagnostics/fresh-complete-projected-1.log.gz b/reports/data/hexrcf-row-quotation/diagnostics/fresh-complete-projected-1.log.gz
new file mode 100644
index 0000000000..cd1817e24a
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/diagnostics/fresh-complete-projected-1.log.gz differ
diff --git a/reports/data/hexrcf-row-quotation/diagnostics/narrow-overflow/RootQuote.lean.txt.gz b/reports/data/hexrcf-row-quotation/diagnostics/narrow-overflow/RootQuote.lean.txt.gz
new file mode 100644
index 0000000000..724ce4ade5
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/diagnostics/narrow-overflow/RootQuote.lean.txt.gz differ
diff --git a/reports/data/hexrcf-row-quotation/diagnostics/narrow-overflow/browser.log.gz b/reports/data/hexrcf-row-quotation/diagnostics/narrow-overflow/browser.log.gz
new file mode 100644
index 0000000000..816431ba58
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/diagnostics/narrow-overflow/browser.log.gz differ
diff --git a/reports/data/hexrcf-row-quotation/diagnostics/narrow-overflow/review.json.gz b/reports/data/hexrcf-row-quotation/diagnostics/narrow-overflow/review.json.gz
new file mode 100644
index 0000000000..3419b0c578
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/diagnostics/narrow-overflow/review.json.gz differ
diff --git a/reports/data/hexrcf-row-quotation/diagnostics/narrow-overflow/row-quotation-desktop-api.png.gz b/reports/data/hexrcf-row-quotation/diagnostics/narrow-overflow/row-quotation-desktop-api.png.gz
new file mode 100644
index 0000000000..118d5a3509
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/diagnostics/narrow-overflow/row-quotation-desktop-api.png.gz differ
diff --git a/reports/data/hexrcf-row-quotation/diagnostics/narrow-overflow/row-quotation-desktop-budget.png.gz b/reports/data/hexrcf-row-quotation/diagnostics/narrow-overflow/row-quotation-desktop-budget.png.gz
new file mode 100644
index 0000000000..bcfffc7c6f
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/diagnostics/narrow-overflow/row-quotation-desktop-budget.png.gz differ
diff --git a/reports/data/hexrcf-row-quotation/diagnostics/narrow-overflow/row-quotation-desktop-example.png.gz b/reports/data/hexrcf-row-quotation/diagnostics/narrow-overflow/row-quotation-desktop-example.png.gz
new file mode 100644
index 0000000000..631d24a453
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/diagnostics/narrow-overflow/row-quotation-desktop-example.png.gz differ
diff --git a/reports/data/hexrcf-row-quotation/diagnostics/narrow-overflow/row-quotation-desktop-introduction.png.gz b/reports/data/hexrcf-row-quotation/diagnostics/narrow-overflow/row-quotation-desktop-introduction.png.gz
new file mode 100644
index 0000000000..72ef4fd2ca
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/diagnostics/narrow-overflow/row-quotation-desktop-introduction.png.gz differ
diff --git a/reports/data/hexrcf-row-quotation/diagnostics/narrow-overflow/row-quotation-inspection.json.gz b/reports/data/hexrcf-row-quotation/diagnostics/narrow-overflow/row-quotation-inspection.json.gz
new file mode 100644
index 0000000000..0f7f17ecbf
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/diagnostics/narrow-overflow/row-quotation-inspection.json.gz differ
diff --git a/reports/data/hexrcf-row-quotation/diagnostics/narrow-overflow/row-quotation-narrow-api.png.gz b/reports/data/hexrcf-row-quotation/diagnostics/narrow-overflow/row-quotation-narrow-api.png.gz
new file mode 100644
index 0000000000..a1e0358322
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/diagnostics/narrow-overflow/row-quotation-narrow-api.png.gz differ
diff --git a/reports/data/hexrcf-row-quotation/diagnostics/narrow-overflow/row-quotation-narrow-budget.png.gz b/reports/data/hexrcf-row-quotation/diagnostics/narrow-overflow/row-quotation-narrow-budget.png.gz
new file mode 100644
index 0000000000..e3c492f365
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/diagnostics/narrow-overflow/row-quotation-narrow-budget.png.gz differ
diff --git a/reports/data/hexrcf-row-quotation/diagnostics/narrow-overflow/row-quotation-narrow-example.png.gz b/reports/data/hexrcf-row-quotation/diagnostics/narrow-overflow/row-quotation-narrow-example.png.gz
new file mode 100644
index 0000000000..b91d0a13de
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/diagnostics/narrow-overflow/row-quotation-narrow-example.png.gz differ
diff --git a/reports/data/hexrcf-row-quotation/diagnostics/narrow-overflow/row-quotation-narrow-introduction.png.gz b/reports/data/hexrcf-row-quotation/diagnostics/narrow-overflow/row-quotation-narrow-introduction.png.gz
new file mode 100644
index 0000000000..4f04a39bd5
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/diagnostics/narrow-overflow/row-quotation-narrow-introduction.png.gz differ
diff --git a/reports/data/hexrcf-row-quotation/diagnostics/narrow-overflow/row-quotation-section-overflow.json.gz b/reports/data/hexrcf-row-quotation/diagnostics/narrow-overflow/row-quotation-section-overflow.json.gz
new file mode 100644
index 0000000000..25c18e9fcf
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/diagnostics/narrow-overflow/row-quotation-section-overflow.json.gz differ
diff --git a/reports/data/hexrcf-row-quotation/diagnostics/projection-depth-1.log.gz b/reports/data/hexrcf-row-quotation/diagnostics/projection-depth-1.log.gz
new file mode 100644
index 0000000000..004e09e67a
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/diagnostics/projection-depth-1.log.gz differ
diff --git a/reports/data/hexrcf-row-quotation/diagnostics/projection-depth-2.log.gz b/reports/data/hexrcf-row-quotation/diagnostics/projection-depth-2.log.gz
new file mode 100644
index 0000000000..3dc1c84c8a
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/diagnostics/projection-depth-2.log.gz differ
diff --git a/reports/data/hexrcf-row-quotation/diagnostics/row-quotation-browser-1.log.gz b/reports/data/hexrcf-row-quotation/diagnostics/row-quotation-browser-1.log.gz
new file mode 100644
index 0000000000..816431ba58
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/diagnostics/row-quotation-browser-1.log.gz differ
diff --git a/reports/data/hexrcf-row-quotation/diagnostics/row-quotation-render-1.log.gz b/reports/data/hexrcf-row-quotation/diagnostics/row-quotation-render-1.log.gz
new file mode 100644
index 0000000000..c2a040530f
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/diagnostics/row-quotation-render-1.log.gz differ
diff --git a/reports/data/hexrcf-row-quotation/diagnostics/row-quote-integration-1.log.gz b/reports/data/hexrcf-row-quotation/diagnostics/row-quote-integration-1.log.gz
new file mode 100644
index 0000000000..c47a158835
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/diagnostics/row-quote-integration-1.log.gz differ
diff --git a/reports/data/hexrcf-row-quotation/diagnostics/row-quote-integration-2.log.gz b/reports/data/hexrcf-row-quotation/diagnostics/row-quote-integration-2.log.gz
new file mode 100644
index 0000000000..da034dc688
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/diagnostics/row-quote-integration-2.log.gz differ
diff --git a/reports/data/hexrcf-row-quotation/diagnostics/row-quote-integration-3.log.gz b/reports/data/hexrcf-row-quotation/diagnostics/row-quote-integration-3.log.gz
new file mode 100644
index 0000000000..71820396e4
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/diagnostics/row-quote-integration-3.log.gz differ
diff --git a/reports/data/hexrcf-row-quotation/diagnostics/row-quote-integration-4.log.gz b/reports/data/hexrcf-row-quotation/diagnostics/row-quote-integration-4.log.gz
new file mode 100644
index 0000000000..82c45290b4
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/diagnostics/row-quote-integration-4.log.gz differ
diff --git a/reports/data/hexrcf-row-quotation/diagnostics/row-quote-recursive-1.log.gz b/reports/data/hexrcf-row-quotation/diagnostics/row-quote-recursive-1.log.gz
new file mode 100644
index 0000000000..12f020a12d
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/diagnostics/row-quote-recursive-1.log.gz differ
diff --git a/reports/data/hexrcf-row-quotation/diagnostics/row-quote-recursive-2.log.gz b/reports/data/hexrcf-row-quotation/diagnostics/row-quote-recursive-2.log.gz
new file mode 100644
index 0000000000..86ffbd6c64
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/diagnostics/row-quote-recursive-2.log.gz differ
diff --git a/reports/data/hexrcf-row-quotation/diagnostics/row-quote-recursive-3.log.gz b/reports/data/hexrcf-row-quotation/diagnostics/row-quote-recursive-3.log.gz
new file mode 100644
index 0000000000..2224742fd8
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/diagnostics/row-quote-recursive-3.log.gz differ
diff --git a/reports/data/hexrcf-row-quotation/diagnostics/row-quote-recursive-4.log.gz b/reports/data/hexrcf-row-quotation/diagnostics/row-quote-recursive-4.log.gz
new file mode 100644
index 0000000000..5386fb8d24
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/diagnostics/row-quote-recursive-4.log.gz differ
diff --git a/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-callback-1.log.gz b/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-callback-1.log.gz
new file mode 100644
index 0000000000..b2dc0543cb
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-callback-1.log.gz differ
diff --git a/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-callback-2.log.gz b/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-callback-2.log.gz
new file mode 100644
index 0000000000..a90a5f02b7
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-callback-2.log.gz differ
diff --git a/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-callback-3.log.gz b/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-callback-3.log.gz
new file mode 100644
index 0000000000..cbfadf77af
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-callback-3.log.gz differ
diff --git a/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-cases-1.log.gz b/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-cases-1.log.gz
new file mode 100644
index 0000000000..be141e6bca
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-cases-1.log.gz differ
diff --git a/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-cases-2.log.gz b/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-cases-2.log.gz
new file mode 100644
index 0000000000..662a0673d8
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-cases-2.log.gz differ
diff --git a/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-cases-3.log.gz b/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-cases-3.log.gz
new file mode 100644
index 0000000000..b1f52d8022
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-cases-3.log.gz differ
diff --git a/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-cases-4.log.gz b/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-cases-4.log.gz
new file mode 100644
index 0000000000..dfcb622908
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-cases-4.log.gz differ
diff --git a/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-cases-5.log.gz b/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-cases-5.log.gz
new file mode 100644
index 0000000000..61891aa3d2
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-cases-5.log.gz differ
diff --git a/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-repair-1.log.gz b/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-repair-1.log.gz
new file mode 100644
index 0000000000..75cb3ead94
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-repair-1.log.gz differ
diff --git a/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-repair-10.log.gz b/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-repair-10.log.gz
new file mode 100644
index 0000000000..4cf63bce5c
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-repair-10.log.gz differ
diff --git a/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-repair-11-SelectedProjectionProbe.lean.txt.gz b/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-repair-11-SelectedProjectionProbe.lean.txt.gz
new file mode 100644
index 0000000000..45d4515d92
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-repair-11-SelectedProjectionProbe.lean.txt.gz differ
diff --git a/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-repair-11-SelectedProjectionRepair.lean.txt.gz b/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-repair-11-SelectedProjectionRepair.lean.txt.gz
new file mode 100644
index 0000000000..a79925aeba
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-repair-11-SelectedProjectionRepair.lean.txt.gz differ
diff --git a/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-repair-11.log.gz b/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-repair-11.log.gz
new file mode 100644
index 0000000000..08df9079c6
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-repair-11.log.gz differ
diff --git a/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-repair-12.log.gz b/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-repair-12.log.gz
new file mode 100644
index 0000000000..476c0b3e49
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-repair-12.log.gz differ
diff --git a/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-repair-13.log.gz b/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-repair-13.log.gz
new file mode 100644
index 0000000000..38895ffcd6
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-repair-13.log.gz differ
diff --git a/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-repair-14.log.gz b/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-repair-14.log.gz
new file mode 100644
index 0000000000..4cc33c34c3
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-repair-14.log.gz differ
diff --git a/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-repair-15.log.gz b/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-repair-15.log.gz
new file mode 100644
index 0000000000..d511879407
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-repair-15.log.gz differ
diff --git a/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-repair-16-SelectedProjectionProbe.lean.txt.gz b/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-repair-16-SelectedProjectionProbe.lean.txt.gz
new file mode 100644
index 0000000000..45d4515d92
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-repair-16-SelectedProjectionProbe.lean.txt.gz differ
diff --git a/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-repair-16-SelectedProjectionRepair.lean.txt.gz b/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-repair-16-SelectedProjectionRepair.lean.txt.gz
new file mode 100644
index 0000000000..5934489aac
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-repair-16-SelectedProjectionRepair.lean.txt.gz differ
diff --git a/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-repair-16.log.gz b/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-repair-16.log.gz
new file mode 100644
index 0000000000..ececc9e4b3
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-repair-16.log.gz differ
diff --git a/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-repair-17.log.gz b/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-repair-17.log.gz
new file mode 100644
index 0000000000..d8a5f227c5
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-repair-17.log.gz differ
diff --git a/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-repair-18.log.gz b/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-repair-18.log.gz
new file mode 100644
index 0000000000..6357a667a8
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-repair-18.log.gz differ
diff --git a/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-repair-19.log.gz b/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-repair-19.log.gz
new file mode 100644
index 0000000000..16b2951fe1
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-repair-19.log.gz differ
diff --git a/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-repair-2.log.gz b/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-repair-2.log.gz
new file mode 100644
index 0000000000..2e7dd15b4c
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-repair-2.log.gz differ
diff --git a/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-repair-20.log.gz b/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-repair-20.log.gz
new file mode 100644
index 0000000000..18908bf86e
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-repair-20.log.gz differ
diff --git a/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-repair-3.log.gz b/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-repair-3.log.gz
new file mode 100644
index 0000000000..754fa2e617
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-repair-3.log.gz differ
diff --git a/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-repair-4.log.gz b/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-repair-4.log.gz
new file mode 100644
index 0000000000..84062fe5fb
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-repair-4.log.gz differ
diff --git a/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-repair-5.log.gz b/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-repair-5.log.gz
new file mode 100644
index 0000000000..fe378f217a
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-repair-5.log.gz differ
diff --git a/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-repair-6.log.gz b/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-repair-6.log.gz
new file mode 100644
index 0000000000..7e73bdc70a
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-repair-6.log.gz differ
diff --git a/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-repair-7.log.gz b/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-repair-7.log.gz
new file mode 100644
index 0000000000..a826528b25
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-repair-7.log.gz differ
diff --git a/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-repair-8.log.gz b/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-repair-8.log.gz
new file mode 100644
index 0000000000..e4315e3571
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-repair-8.log.gz differ
diff --git a/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-repair-9.log.gz b/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-repair-9.log.gz
new file mode 100644
index 0000000000..90af6bddd0
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/diagnostics/selected-projection-repair-9.log.gz differ
diff --git a/reports/data/hexrcf-row-quotation/validation/collect.py.txt b/reports/data/hexrcf-row-quotation/validation/collect.py.txt
new file mode 100644
index 0000000000..1daee09d68
--- /dev/null
+++ b/reports/data/hexrcf-row-quotation/validation/collect.py.txt
@@ -0,0 +1,55 @@
+from pathlib import Path
+import gzip,hashlib,json,subprocess
+repo=Path.cwd(); task=Path('/home/kim/.codex/tasks/hex-10358'); out=repo/'reports/data/hexrcf-row-quotation'
+out.mkdir(parents=True,exist_ok=True)
+git=lambda *a:subprocess.check_output(['git',*a],cwd=repo)
+sha=lambda raw:hashlib.sha256(raw).hexdigest()
+source='0e931b9a8c';source=git('rev-parse',source).decode().strip()
+old=json.loads((repo/'reports/data/hexrcf-tree-quotation/context.json').read_text())
+paths=set(old['sources'])|{path for path in git('diff','--name-only',old['source_commit'],source).decode().splitlines() if not path.startswith('reports/data/')}
+record=dict(source_commit=source,source_tree=git('rev-parse',source+'^{tree}').decode().strip(),baseline_commit=old['source_commit'],sources={},unchanged_guards=old['unchanged_guards'],artifacts=[],validation={},complete_packet_accepted=False)
+for path in sorted(paths):
+ raw=git('show',source+':'+path);assert (repo/path).read_bytes()==raw,path;record['sources'][path]=sha(raw)
+def retain(file,path,compress=False):
+ raw=file.read_bytes(); dest=out/path;dest.parent.mkdir(parents=True,exist_ok=True);dest.write_bytes(gzip.compress(raw,mtime=0) if compress else raw);data=dest.read_bytes();item=dict(path=path,bytes=len(data),sha256=sha(data))
+ if compress:item['uncompressed_sha256']=sha(raw)
+ record['artifacts'].append(item);return path
+for key,name in dict(integration='row-quote-integration-5.log',core='row-quote-production-core-1.log',controls='row-quote-production-controls-1.log',hidden='row-quote-hidden-boundary-1.log',recursive='row-quote-recursive-5.log',render='row-quotation-render-2.log',browser='row-quotation-browser-2.log').items():
+ assert 'code=exited, status=0/SUCCESS' in (task/name).read_text(),name
+ record['validation'][key]=retain(task/name,'validation/'+name+'.gz',True)
+metadata=json.loads((task/'row-quote-final-metadata.json').read_text());assert all(x['exit_code']==0 for x in metadata)
+retain(task/'row-quote-final-metadata.json','validation/metadata.json')
+for row in metadata:retain(task/row['log'],'validation/'+row['log']+'.gz',True)
+for name in ['row-quote-final-metadata.py','row-quote-integration-targets.txt','row-memory-policy.txt']:
+ retain(task/name,'validation/'+name+'.gz',True)
+retain(task/'bin/run-bounded','validation/run-bounded.sh')
+retain(task/'collect-row-quotation.py','validation/collect.py.txt')
+retain(task/'scalar-review-render/RowReviewRender.lean','validation/render.lean.txt')
+retain(task/'row-quotation-browser.mjs','captures/browser.mjs')
+for sourceName,dest in [('row-quotation-inspection.json','inspection.json'),('row-quotation-section-overflow.json','section-overflow.json')]:
+ retain(task/'scalar-review-render'/sourceName,'captures/'+dest)
+review=json.loads((task/'row-quotation-visual-review-2.json').read_text());assert review['viewed_all_eight'] is True
+for item in review['captures']:
+ file=Path(item['path']);assert sha(file.read_bytes())==item['sha256']
+ item['path']=retain(file,'captures/'+file.name);item['viewed']=True
+(out/'captures/visual-review.json').write_text(json.dumps(review,indent=2)+'\n')
+retain(out/'captures/visual-review.json','captures/visual-review.json')
+for file in sorted((task/'row-quotation-overflow-attempt-1').iterdir()):
+ retain(file,'diagnostics/narrow-overflow/'+file.name+'.gz',True)
+patterns=['row-quote-integration-[1234].log','row-quote-recursive-[1234].log',
+ 'row-quotation-render-1.log','row-quotation-browser-1.log','projection-depth-[12].log',
+ 'fresh-complete-projected-1*.log','fresh-complete-projected-1*.lean.txt',
+ 'selected-projection-repair-*.log','selected-projection-repair-*.lean.txt',
+ 'selected-projection-callback-*.log','selected-projection-cases-*.log']
+for pattern in patterns:
+ for file in sorted(task.glob(pattern)):
+ dest='diagnostics/'+file.name+'.gz'
+ if not any(x['path']==dest for x in record['artifacts']):retain(file,dest,True)
+record['scope']='Checked stored-row projection through root/query/operation transports; dependent replay helpers inside Boolean conditions; exact/below budgets, wrong-goal rejection and caller restoration; all32 selected targets and complete manual; eight actually viewed final captures.'
+record['limits']='Reader/data-access evidence, not a complete original-source decision procedure. The prior full-source experiment failed with a dependent replay-helper kernel mismatch. Its full log and exact inputs are retained. The subsequent production run is outside this immutable focused record until it actually terminates. No full-source proof or speedup claim follows from these controls.'
+record['diagnostic_source_note']='Earlier failed tool attempts retain their original logs and selected exact source copies. Final production code is pinned by source_commit; intermediate logs do not purport to run those final bytes. Snapshot-debug inputs never become production proof dependencies.'
+record['compiled_files']=[]
+for name in ['RowQuoteCases','RowQuoteDepth','RowQuoteProofs','ReplayBoundary','ReplayBoundaryProofs']:
+ path='.lake/build/lib/lean/HexRCF/'+name+'.olean';raw=(repo/path).read_bytes();record['compiled_files'].append(dict(path=path,bytes=len(raw),sha256=sha(raw)))
+(out/'context.json').write_text(json.dumps(record,indent=2)+'\n')
+print(f'Retained {len(record["artifacts"])} artifacts/{len(record["sources"])} sources at {source}')
diff --git a/reports/data/hexrcf-row-quotation/validation/metadata.json b/reports/data/hexrcf-row-quotation/validation/metadata.json
new file mode 100644
index 0000000000..cab746994a
--- /dev/null
+++ b/reports/data/hexrcf-row-quotation/validation/metadata.json
@@ -0,0 +1,61 @@
+[
+ {
+ "name": "copyright",
+ "command": [
+ "python3",
+ "scripts/check_copyright_headers.py"
+ ],
+ "log": "row-quote-final-metadata-copyright.log",
+ "exit_code": 0
+ },
+ {
+ "name": "lines",
+ "command": [
+ "python3",
+ "scripts/check_file_line_counts.py",
+ "--base",
+ "origin/main"
+ ],
+ "log": "row-quote-final-metadata-lines.log",
+ "exit_code": 0
+ },
+ {
+ "name": "dag",
+ "command": [
+ "python3",
+ "scripts/check_dag.py"
+ ],
+ "log": "row-quote-final-metadata-dag.log",
+ "exit_code": 0
+ },
+ {
+ "name": "admissions",
+ "command": [
+ "python3",
+ "scripts/ci/check_named_admissions.py"
+ ],
+ "log": "row-quote-final-metadata-admissions.log",
+ "exit_code": 0
+ },
+ {
+ "name": "diff",
+ "command": [
+ "git",
+ "diff",
+ "HEAD",
+ "--check"
+ ],
+ "log": "row-quote-final-metadata-diff.log",
+ "exit_code": 0
+ },
+ {
+ "name": "selected-admissions",
+ "log": "row-quote-final-metadata-selected-admissions.log",
+ "exit_code": 0
+ },
+ {
+ "name": "relative",
+ "log": "row-quote-final-metadata-relative.log",
+ "exit_code": 0
+ }
+]
diff --git a/reports/data/hexrcf-row-quotation/validation/render.lean.txt b/reports/data/hexrcf-row-quotation/validation/render.lean.txt
new file mode 100644
index 0000000000..75cae7acc6
--- /dev/null
+++ b/reports/data/hexrcf-row-quotation/validation/render.lean.txt
@@ -0,0 +1,5 @@
+import HexManual
+import VersoManual
+#eval Verso.Genre.Manual.manualMain (%doc HexManual)
+ (options := ["--output", "row-review-html",
+ "--without-tex", "--with-html-single", "--without-html-multi"])
diff --git a/reports/data/hexrcf-row-quotation/validation/row-memory-policy.txt.gz b/reports/data/hexrcf-row-quotation/validation/row-memory-policy.txt.gz
new file mode 100644
index 0000000000..42e4629e9f
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/validation/row-memory-policy.txt.gz differ
diff --git a/reports/data/hexrcf-row-quotation/validation/row-quotation-browser-2.log.gz b/reports/data/hexrcf-row-quotation/validation/row-quotation-browser-2.log.gz
new file mode 100644
index 0000000000..4852ee7f36
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/validation/row-quotation-browser-2.log.gz differ
diff --git a/reports/data/hexrcf-row-quotation/validation/row-quotation-render-2.log.gz b/reports/data/hexrcf-row-quotation/validation/row-quotation-render-2.log.gz
new file mode 100644
index 0000000000..e5c2665bae
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/validation/row-quotation-render-2.log.gz differ
diff --git a/reports/data/hexrcf-row-quotation/validation/row-quote-final-metadata-admissions.log.gz b/reports/data/hexrcf-row-quotation/validation/row-quote-final-metadata-admissions.log.gz
new file mode 100644
index 0000000000..df90d604db
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/validation/row-quote-final-metadata-admissions.log.gz differ
diff --git a/reports/data/hexrcf-row-quotation/validation/row-quote-final-metadata-copyright.log.gz b/reports/data/hexrcf-row-quotation/validation/row-quote-final-metadata-copyright.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/validation/row-quote-final-metadata-copyright.log.gz differ
diff --git a/reports/data/hexrcf-row-quotation/validation/row-quote-final-metadata-dag.log.gz b/reports/data/hexrcf-row-quotation/validation/row-quote-final-metadata-dag.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/validation/row-quote-final-metadata-dag.log.gz differ
diff --git a/reports/data/hexrcf-row-quotation/validation/row-quote-final-metadata-diff.log.gz b/reports/data/hexrcf-row-quotation/validation/row-quote-final-metadata-diff.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/validation/row-quote-final-metadata-diff.log.gz differ
diff --git a/reports/data/hexrcf-row-quotation/validation/row-quote-final-metadata-lines.log.gz b/reports/data/hexrcf-row-quotation/validation/row-quote-final-metadata-lines.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/validation/row-quote-final-metadata-lines.log.gz differ
diff --git a/reports/data/hexrcf-row-quotation/validation/row-quote-final-metadata-relative.log.gz b/reports/data/hexrcf-row-quotation/validation/row-quote-final-metadata-relative.log.gz
new file mode 100644
index 0000000000..154780e0b7
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/validation/row-quote-final-metadata-relative.log.gz differ
diff --git a/reports/data/hexrcf-row-quotation/validation/row-quote-final-metadata-selected-admissions.log.gz b/reports/data/hexrcf-row-quotation/validation/row-quote-final-metadata-selected-admissions.log.gz
new file mode 100644
index 0000000000..119d1a3e81
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/validation/row-quote-final-metadata-selected-admissions.log.gz differ
diff --git a/reports/data/hexrcf-row-quotation/validation/row-quote-final-metadata.py.gz b/reports/data/hexrcf-row-quotation/validation/row-quote-final-metadata.py.gz
new file mode 100644
index 0000000000..45efa5b3f5
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/validation/row-quote-final-metadata.py.gz differ
diff --git a/reports/data/hexrcf-row-quotation/validation/row-quote-hidden-boundary-1.log.gz b/reports/data/hexrcf-row-quotation/validation/row-quote-hidden-boundary-1.log.gz
new file mode 100644
index 0000000000..4944da94ae
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/validation/row-quote-hidden-boundary-1.log.gz differ
diff --git a/reports/data/hexrcf-row-quotation/validation/row-quote-integration-5.log.gz b/reports/data/hexrcf-row-quotation/validation/row-quote-integration-5.log.gz
new file mode 100644
index 0000000000..14a666a297
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/validation/row-quote-integration-5.log.gz differ
diff --git a/reports/data/hexrcf-row-quotation/validation/row-quote-integration-targets.txt.gz b/reports/data/hexrcf-row-quotation/validation/row-quote-integration-targets.txt.gz
new file mode 100644
index 0000000000..fe2121a27c
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/validation/row-quote-integration-targets.txt.gz differ
diff --git a/reports/data/hexrcf-row-quotation/validation/row-quote-production-controls-1.log.gz b/reports/data/hexrcf-row-quotation/validation/row-quote-production-controls-1.log.gz
new file mode 100644
index 0000000000..a8097936b3
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/validation/row-quote-production-controls-1.log.gz differ
diff --git a/reports/data/hexrcf-row-quotation/validation/row-quote-production-core-1.log.gz b/reports/data/hexrcf-row-quotation/validation/row-quote-production-core-1.log.gz
new file mode 100644
index 0000000000..89e7d2b55d
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/validation/row-quote-production-core-1.log.gz differ
diff --git a/reports/data/hexrcf-row-quotation/validation/row-quote-recursive-5.log.gz b/reports/data/hexrcf-row-quotation/validation/row-quote-recursive-5.log.gz
new file mode 100644
index 0000000000..9d5d21675f
Binary files /dev/null and b/reports/data/hexrcf-row-quotation/validation/row-quote-recursive-5.log.gz differ
diff --git a/reports/data/hexrcf-row-quotation/validation/run-bounded.sh b/reports/data/hexrcf-row-quotation/validation/run-bounded.sh
new file mode 100644
index 0000000000..2cc8636e8a
--- /dev/null
+++ b/reports/data/hexrcf-row-quotation/validation/run-bounded.sh
@@ -0,0 +1,10 @@
+#!/usr/bin/env bash
+set -euo pipefail
+exec systemd-run --user --wait --pipe --collect \
+ --unit=hex-10358-lean-build \
+ --property=MemoryMax=32G \
+ --property=MemorySwapMax=0 \
+ --property=OOMPolicy=kill \
+ --working-directory="$PWD" \
+ --setenv="PATH=$PATH" --setenv=LEAN_NUM_THREADS=2 \
+ "$@"
diff --git a/reports/data/hexrcf-row-quotation/verify.py b/reports/data/hexrcf-row-quotation/verify.py
new file mode 100644
index 0000000000..295e36a587
--- /dev/null
+++ b/reports/data/hexrcf-row-quotation/verify.py
@@ -0,0 +1,89 @@
+#!/usr/bin/env python3
+"""Verify stored-row and dependent replay quotation evidence."""
+import argparse
+import gzip
+import hashlib
+import json
+from pathlib import Path
+import subprocess
+
+parser = argparse.ArgumentParser(description=__doc__)
+parser.add_argument('--check-head', action='store_true')
+args = parser.parse_args()
+root = Path(__file__).resolve().parent
+repo = root.parents[2]
+record = json.loads((root / 'context.json').read_text())
+git = lambda *arguments: subprocess.check_output(['git', *arguments], cwd=repo)
+sha = lambda raw: hashlib.sha256(raw).hexdigest()
+
+def artifact(path):
+ return gzip.decompress((root / path).read_bytes()).decode()
+
+def log(key):
+ return artifact(record['validation'][key])
+
+assert git('rev-parse', record['source_commit'] + '^{tree}').decode().strip() == record['source_tree']
+for path, digest in record['sources'].items():
+ assert sha(git('show', record['source_commit'] + ':' + path)) == digest, path
+ if args.check_head:
+ assert sha((repo / path).read_bytes()) == digest, path
+if args.check_head:
+ paths = git('diff', '--name-only', record['source_commit']).decode().splitlines()
+ paths += git('ls-files', '--others', '--exclude-standard').decode().splitlines()
+ assert all(path.startswith('reports/') for path in paths), paths
+for path in record['unchanged_guards']:
+ assert git('show', record['baseline_commit'] + ':' + path) == git(
+ 'show', record['source_commit'] + ':' + path), path
+for item in record['artifacts']:
+ raw = (root / item['path']).read_bytes()
+ assert len(raw) == item['bytes'] and sha(raw) == item['sha256'], item['path']
+ if 'uncompressed_sha256' in item:
+ assert sha(gzip.decompress(raw)) == item['uncompressed_sha256'], item['path']
+for key in record['validation']:
+ assert 'code=exited, status=0/SUCCESS' in log(key), key
+assert 'Build completed successfully (14396 jobs)' in log('integration')
+assert 'Built HexManual (' in log('render')
+controls = log('controls')
+for message in [
+ 'selected projection quotation actual bodies: 70 theorems/8 definitions; nonempty traces=72',
+ 'dependent replay boundary actual bodies: 132 theorems/3 definitions; nonempty traces=135',
+ 'projection exact/below budget and caller rollback checked; exact=2479',
+ 'projection depth=1; proofNodes=2001; below refused',
+ 'projection depth=16; proofNodes=4962; below refused',
+ 'projection depth=24; proofNodes=6758; below refused',
+ 'dependent replay helper inline/7: proofNodes=58360',
+ 'dependent replay helper inline/8: proofNodes=5376',
+ 'dependent replay helper stored/7: proofNodes=57166',
+ 'dependent replay helper stored/8: proofNodes=5108',
+ 'boundary exact/below/wrong-goal and caller rollback checked; exact=57166']:
+ assert message in controls, message
+assert 'recursive variants: constant=15002; tagged=15013; retry=17268' in log('recursive')
+assert 'recursive exhausted: consumed=15637, requested=925' in log('recursive')
+assert 'protected codec, wrong second sign, trailing zero and malformed heads checked with rollback' in log('hidden')
+failure = artifact('diagnostics/fresh-complete-projected-1.log.gz')
+assert 'status=1/FAILURE' in failure and '46min 13.203s' in failure
+assert 'replayBoundary' in failure and 'application type mismatch' in failure.lower()
+assert record['complete_packet_accepted'] is False
+metadata = json.loads((root / 'validation/metadata.json').read_text())
+assert {x['name'] for x in metadata} == {
+ 'copyright', 'lines', 'dag', 'admissions', 'selected-admissions', 'relative', 'diff'}
+assert all(x['exit_code'] == 0 for x in metadata)
+memory = artifact('validation/row-memory-policy.txt.gz')
+assert all(x in memory for x in [
+ 'ActiveState=active', 'MemoryMax=34359738368', 'MemorySwapMax=0',
+ 'OOMPolicy=kill', 'LEAN_NUM_THREADS=2'])
+inspection = json.loads((root / 'captures/inspection.json').read_text())
+assert {(x['label'], x['kind']) for x in inspection} == {
+ (a, b) for a in ['desktop', 'narrow'] for b in ['introduction', 'api', 'example', 'budget']}
+assert all(x['descendantOverflow'] == 0 and
+ x['targetScrollWidth'] <= x['targetWidth'] + 1 for x in inspection)
+review = json.loads((root / 'captures/visual-review.json').read_text())
+assert review['viewed_all_eight'] is True and len(review['captures']) == 8
+for item in review['captures']:
+ assert item['viewed'] is True
+ assert sha((root / item['path']).read_bytes()) == item['sha256']
+assert 'Changed content overflows' in artifact('diagnostics/row-quotation-browser-1.log.gz')
+assert len(record['compiled_files']) == 5 and all(x['bytes'] > 0 for x in record['compiled_files'])
+print(f"Verified {len(record['artifacts'])} artifacts/{len(record['sources'])} sources; "
+ '70/8/72 row and 132/3/135 boundary audits, 32 targets, manual and eight inspected captures; '
+ 'complete original-source acceptance remains unproved by this record')
diff --git a/reports/data/hexrcf-scalar-acceptance/README.md b/reports/data/hexrcf-scalar-acceptance/README.md
new file mode 100644
index 0000000000..e410696875
--- /dev/null
+++ b/reports/data/hexrcf-scalar-acceptance/README.md
@@ -0,0 +1,5 @@
+# Scalar acceptance and source identity evidence
+
+See [the report](../../hexrcf-scalar-acceptance.md). Run `python3 reports/data/hexrcf-scalar-acceptance/verify.py --check-head` to verify the current sources; without the flag the verifier checks the immutable source commit.
+
+The record binds the consumed codec/DAG laws, finite-coverage scalar acceptance, exact raw/key/same-root bindings, accepted bounded production and source-identity soundness. It retains all completed elaboration/core/control/integration attempts and final metadata checks. Failed-source snapshots are not claimed. The first six-target run checked the new codec-law imports and literal proofs; the final run added the source-alias composition and fresh eleven-body audit while reusing unchanged quotation dependencies. Both import/body guards pass. This is not a new full 57-target/manual/browser run, strict compiled missing-record closure or completion of #10358. Earlier records retain their source/checker pins.
diff --git a/reports/data/hexrcf-scalar-acceptance/context.json b/reports/data/hexrcf-scalar-acceptance/context.json
new file mode 100644
index 0000000000..9f3ef63dec
--- /dev/null
+++ b/reports/data/hexrcf-scalar-acceptance/context.json
@@ -0,0 +1,208 @@
+{
+ "source_commit": "3fe93a4b0c1ef2d22aa03b2e747e225b57da60d1",
+ "base_commit": "48644cb18d42e2f70bc39de850a5409c018c5640",
+ "parent_context_sha256": "0c8b927622e0e78bad00782935e7169928629b4f5756493ab653a6c76eb0ad82",
+ "sources": {
+ ".github/workflows/ci.yml": "5db61a70eb52d7478994377179c1b35b360a794fcff4b1c257496b5a6394231c",
+ "AGENTS.md": "4e0a48cf49a61e56ed84c8b28e232b5bfad29f2da20571377692be6e1c316f30",
+ "HexManual/Chapters/HexRCF/AlgebraicCells.lean": "c4dd5ca465697595f02c06d87e30bdd218ce9632b05b696f31f932f99d1fb8d4",
+ "HexManual/Chapters/HexRCF/RootQuote.lean": "0fe7ecb8568a5b3492aeea8310a4816797802d0a764093b824673a635ecf628a",
+ "HexManual/Chapters/HexRCF/RootTableQuote.lean": "78d1be637a32593b03f000ab153c7fdf05a1b5332ea3efb9c186aacfd68f0ae5",
+ "HexRCF/HandlerTests/Admission.lean": "770518931dd3f7ab1934e327460b80607338207b17d97363b82c2a5c93669c36",
+ "HexRCF/README.md": "3830d758a8a75d59df1a6dd01f59204a86858b5eda3e43a78f9e9e9c2d769a8a",
+ "HexRCF/SPEC/hex-rcf.md": "df8c6bb2435a2794faa36bc77e41f4c936f06ae149f29c3e68fe0d79f4ebfafb",
+ "HexRCF/Tactic.lean": "26021113d121cfc9ab0d6e7ea7ce8d02eb6c4637c42bbdd2647ecd2d9291f3fb",
+ "HexRealClosure/Algebraic.lean": "d05f9fb72fe9544ae9ddc685dff17080f876aa4c99c70e8992d511e011f6a454",
+ "HexRealClosure/ContextData.lean": "ca29790752b8d25f10d03a9877690a5ff40f1fdf6815c96fe9693941206e662c",
+ "HexRealClosure/SignCodec.lean": "7126323c97b77204386795a0f252f1babfd0ed7f3dba7ee3927a99b9d5c1852a",
+ "HexRealClosure/SignFacts.lean": "9c22837e93e6f50cc96310163e352ac608fbcfbd6275edab33751da2fd84f47c",
+ "HexRealClosure/SignatureCodecTests.lean": "ffc72777523ac0e92b563481804bdfb581fb0173fe7a021009737d57959b4462",
+ "HexRealClosure/TowerContext.lean": "6ef8b87b2d81cb177505a4bbc88befa078b20578cedd49e836d850753c203ee3",
+ "HexSignDet/Codec/Coefficients.lean": "0fef85cb8c11fe614705ca230f437785c9c7c6b76d9362449f834bb25e82d3aa",
+ "HexSignDet/Codec/FiniteGraph.lean": "bb1e0611aa74d7c7b4a74f83f05e481ccd4584523e0aaeca7beba53c70a6895c",
+ "HexSignDet/Codec/FiniteLaws.lean": "a30dbc456d8613e247bfc691376206a7da405b8a3e08ef7a550c0b857a234ab8",
+ "HexSignDet/Codec/GraphLaws.lean": "292cebb2c9ea1131ddd0458de3997aac95cfc1422e99dbd8fb5e7f6d08fcdaa5",
+ "HexSignDet/Codec/Laws.lean": "7b7293bcd80b89c887e1227f7ac27f2f7a2ce936adca3b14818ec5c228c36740",
+ "HexSignDet/Codec/NodeLaws.lean": "77621bd2ab5c1d7c99d1a7355dd7418ed43a06c4ca5eb885bd37cc1ba6e394f2",
+ "HexSignDet/DagBounds.lean": "1ff482fbcb51846b61348d1708062647fb0f61bf2eb04184b86fa17d7bac33a7",
+ "HexSignDet/DagReplay.lean": "be3317f306194a18a314e9f8fca021eefda76ea17704c5ec89daeff9a2867f42",
+ "HexSignDet/DagSelectedSigns.lean": "3ffbfbe2cebf6ad7b5db0cf8b0a3c5a26142a46465d2577a08ddb292594eed26",
+ "PLAN.md": "e94a60324486913b4a04650edd617c4ff8bef469dc7fd311adea8407c6662ea0",
+ "SPEC/real-closure-execution.md": "bc0948ad7de6969baaed89c0b3052cb0d21d64d634f8a336f9a7dde446b057f5",
+ "adapters/HexRCF/RealCoefficients.lean": "6b9f9a7eaa6e98e30a1faae38252d8616a15595f86347abee0aa54c8fb2f2161",
+ "adapters/HexRCF/RealCoefficients/CellOperations.lean": "3561cc80c7c866141f05a387ce1100ee0cadd98281a03395551cebcde5bd6e2a",
+ "adapters/HexRCF/RealCoefficients/CellQuote.lean": "c572911d7be36001e0f1885c3460f3eb19425d90e78345b1c46878ddf3e6c6ea",
+ "adapters/HexRCF/RealCoefficients/CellRead.lean": "65274f89c940bad74eab8c9075f9256c6ed3d8b90d3294aec4e85883e425fb10",
+ "adapters/HexRCF/RealCoefficients/RationalQuote.lean": "675e2ba065b696f257adefc07fe30ddb0190f321d86005444579ea5a0744bdf5",
+ "adapters/HexRCF/RealCoefficients/RealModel.lean": "712b4fd3edff8eaa6f93e501da5debf04529d1ea8c11a18389820f866d179c43",
+ "adapters/HexRCF/RealCoefficients/Reify.lean": "ea8474b9e253f93a1583064ca99ec0bf376dadf5457fd60b57e9e18460cf449c",
+ "adapters/HexRCF/RealCoefficients/RootContext.lean": "792176eab63e5e62b759a10893569946ef6d019566b8116c85237b3e16fcdb86",
+ "adapters/HexRCF/RealCoefficients/RootHeader.lean": "681f2a964bc30f65a92a0fb1a58b4d4013eb396df37ca813962702065fb46261",
+ "adapters/HexRCF/RealCoefficients/RootPrepare.lean": "de72a8e3ac4adb13365801476467bf691e630d0952b018ccecd88846c3bdb025",
+ "adapters/HexRCF/RealCoefficients/RootQuote.lean": "89f3ad4b0c4a8ae058560201900877035d896427176b944b34acde9f9b23d7e8",
+ "adapters/HexRCF/RealCoefficients/RowPacketQuote.lean": "edbb3d23f72422f5a1dea163c283848ec285418b7bdb9eedba553b83066121af",
+ "adapters/HexRCF/RealCoefficients/RowQuote.lean": "3b7e7d2ebcbd53a6ea893bc8f4c884d767430f8b98a3f1ca770fe7c7b122f3c9",
+ "adapters/HexRCF/RealCoefficients/ScalarPacket.lean": "6b8353895cff48df759bb4fc8cb5cda767313974e0a57f1e59973249b6eefdca",
+ "adapters/HexRCF/RealCoefficients/ScalarQuote.lean": "fee2617a998f29d05c8959b484060ac1d719359c6d851a8ff6699fa9cb370acc",
+ "adapters/HexRCF/RealCoefficients/SignatureQuote.lean": "c3bb71b52c2a544b902bc256b3a162e1c3c4e7f94ae6b21808914e67109710eb",
+ "adapters/HexRCF/RealCoefficients/SourceBuild.lean": "e4e6d8fd707f32e78091e42f5996a0dfd703b82973ed993b0a7795efc15388ca",
+ "adapters/HexRCF/RealCoefficients/SourceIdentity.lean": "d98ae0c746003be89edfc969e464383e6a6bda253e0dae8c290605e8b98ce3c3",
+ "adapters/HexRCF/RealCoefficients/SourceIdentityQuote.lean": "37c54a56f48b265d0ddca38ecae2c572871e8b7f1600b54f330ff3da60252fa7",
+ "adapters/HexRealClosureTheory/Algebraic.lean": "2495153acbe4e468521913a2f5d6569831cd05f5ee48d5ddb26fc31a43438c7e",
+ "adapters/HexRealClosureTheory/SignFacts.lean": "c2b8cf96de0cccc2c0c3cbe83f0afd7c40ab9736b75f377ec5bfedc0907f34e3",
+ "adapters/HexRealClosureTheory/TowerModel.lean": "70d0e57e8ecc78eb9b7675d875157462d27cf9494d49d72bba019eaa6dd1d788",
+ "conformance-fixtures/HexRCF/bounded-source.json": "566c5f1f092abab73312bb630a02e24873e6723942d450320dae2b52aaa30a75",
+ "conformance-fixtures/HexRCF/enumerated-source.json": "d1f70734b5c8d5c7f768b4d2c3f5359d8e1cc44105885e7f8af597102c8b5c98",
+ "conformance-fixtures/HexRCF/source-identity.json": "93540b60174e0d8bd85ca80d99c6cbdc427815f341a12a6e38f4b38613073f53",
+ "conformance/HexRCF/BoundedSource.lean": "5c2166dd0977d3e27d3fefa89f9c0382e9dd7226bff629112cfd0e0faad1127b",
+ "conformance/HexRCF/BoundedSource/Cubic.lean": "da1c0e1b549fce22cb1f7ea7bb6888dff1d7b59c1219c5b580376bbb4a25ecde",
+ "conformance/HexRCF/BoundedSource/Inputs.lean": "7ffcd6d62f175f3027e2327fd4a86885e933e0715a85ab7afb9b112d76d49a39",
+ "conformance/HexRCF/BoundedSource/Negative.lean": "abb7ef67395b2b90f9e12f551bcc0d16146cca067bf3567707e924c2ecd2fb77",
+ "conformance/HexRCF/BoundedSource/Positive.lean": "d83184a9d54264ba7e1c138eb674db1d67df39681575fa91d96a4681af774321",
+ "conformance/HexRCF/BoundedSource/Proofs.lean": "7f9d47d59dd47aafa90a09d23a966efc0d2ca7fbfa3cdce5ae4771ae1da01a9f",
+ "conformance/HexRCF/BoundedSource/Quote.lean": "70da87d5868d0c3d725e9ed2a531a4b22221e42d794cfd259359f6524be1eaef",
+ "conformance/HexRCF/CellFinishCases.lean": "619208fd6528c4f12d4e12bc4ee6fd4016ab0948db16a61237a2aefbcd523a7c",
+ "conformance/HexRCF/CellFinishProofs.lean": "fd232e3b4a64f444d834ae244a110ad0910aa35c4773a90b6a3b26a48693e22c",
+ "conformance/HexRCF/CellQuoteStageProofs.lean": "a14f3f20e1add07f569ab222994995c409552aededef738972a70c864b94b919",
+ "conformance/HexRCF/CellQuoteStages.lean": "e4593f2c8169af00398ff608dd53cbbfbe6b8408ddbdd07de6f64f59acf8a25f",
+ "conformance/HexRCF/CellSourceProofs.lean": "cea22d1a532dc4415130ff1c9c20f43707ab9696c7df53c858bdfa41ad76f018",
+ "conformance/HexRCF/CellSourceQuote.lean": "bea057fe5c9470d701e02974fbd6a83e945bbaba1225ca294830f54ef762f504",
+ "conformance/HexRCF/DependentQuote.lean": "0df154544a17857334480e7c577ecbcf1afe04165fa2da1a5a6407bf41e85518",
+ "conformance/HexRCF/DependentQuoteData.lean": "ed254475e78fa6edb27d4e55222a598b07b7357154ea0495d6195f2f1d39ee46",
+ "conformance/HexRCF/DependentQuoteProofs.lean": "5875aa9748f50340668e58aea97b196d3353313352fb8c819ae5ee3542556980",
+ "conformance/HexRCF/DependentScalarProofs.lean": "9fe3f3871f929e28355985c574c0b8c742be062ae5f19033d7d8bf9e67cd88d8",
+ "conformance/HexRCF/DependentScalarQuote.lean": "e20dd7346c337dd17126c394965f268e568706730f475844d7c0907051224933",
+ "conformance/HexRCF/EnumeratedSource/Cubic.lean": "011464c56dc3ffc5a6bd1e62dc9ff8b35ac6d0e621beceb0336b69d8f626b78f",
+ "conformance/HexRCF/EnumeratedSource/CubicData0.lean": "79b971cb2816d7ee980c595199eedbfddfd7cdb62ea12bc71dfcb24d304f69da",
+ "conformance/HexRCF/EnumeratedSource/Inputs.lean": "23ae13a33e132ee7221c5fa353e71073fc05bd660dfc3ecf6620584b62b40306",
+ "conformance/HexRCF/EnumeratedSource/Negative.lean": "261fcd979ff77c772a28ecc89776b5771cec920fc4e58a0dfe2886aee43a58d7",
+ "conformance/HexRCF/EnumeratedSource/NegativeData0.lean": "c0700606f805664f89dd0106dfb5aebb5ab18949adbb30e5b71ffeb20bb4fdaf",
+ "conformance/HexRCF/EnumeratedSource/Positive.lean": "1382c958e53cdb8a04afd1e6d6f173fe697ba15a3321bf29c3e03059923c7181",
+ "conformance/HexRCF/EnumeratedSource/PositiveData0.lean": "41674140d15cf0136ca29b627f667b952355916b269ff7d2c14247ba2d21b3b1",
+ "conformance/HexRCF/EnumeratedSource/Proofs.lean": "3c08b8018b68469d3c6e7940f730d6b8fadbf6175df2e6f5017ed4fc24d50d5b",
+ "conformance/HexRCF/EnumeratedSource/Quote.lean": "8987d21be058f777f0ba875e917fcda77892bced1029616804fabd57f4eb41d8",
+ "conformance/HexRCF/FrozenSignatureConformance.lean": "8e7d432aecb87fb89bb188e4c579e86fb5c3348c5430f1e2b1a00f1f820a940e",
+ "conformance/HexRCF/FrozenSignatureProofs.lean": "55de6da9b0b3dc2d1e384d6c838d13294287c44060afb8e70aa2a0c8e01a81cb",
+ "conformance/HexRCF/ProofFunctionPublic.lean": "f928c9f0dd0a704d34a516b6282cfa6a7a4eb6c112d49689c450647a44370a6b",
+ "conformance/HexRCF/PublicSignPacket.lean": "c32d73c5634376907b965e1ea6cf69352fdda1f1945ce2f34a378cc217778102",
+ "conformance/HexRCF/PublicSignPacketControls.lean": "b4f98bd8ef190a361dd7752d4d5ece0cfbd862ff4face5a06dfabecf87096028",
+ "conformance/HexRCF/PublicSignPacketProofs.lean": "442f6d3e04a36db25611f0396103a1eee5ee411c40e8f3cc93df1acf7898bbbb",
+ "conformance/HexRCF/PublicSignPacketValues.lean": "72705dba30f04f986188903fb49b983c6f0a664895116fca8bd8b6b46b6517e5",
+ "conformance/HexRCF/QuotientQuote.lean": "97b2cbc9abdb46db33a9a91328f331edf8dea055cc244489158121cde8dc1903",
+ "conformance/HexRCF/QuotientQuoteData.lean": "ec26777d655a7898d7f7922fcea8f426a3f8c77a53000b69b6fe1755a0348870",
+ "conformance/HexRCF/QuotientQuoteProofs.lean": "f1d95accf6caed1c7354408b3a1a0b29493a526e82036390e39102ebe80c6752",
+ "conformance/HexRCF/QuotientQuotePublic.lean": "a3bd9a082df14a0ac93ba3798e13c6ebbf9dff98d7613264713aa281a5a18bea",
+ "conformance/HexRCF/RationalQuoteConformance.lean": "f03844d4a44a5c61b702ed0b1697619da9b20f4ac42122b9d1a6d3fa4a2de9ac",
+ "conformance/HexRCF/RecursiveScalarQuote.lean": "83ba1f3ed63afdbb148f171736a0aacebc7eef4ae3bf32dca29811515c3f051b",
+ "conformance/HexRCF/ReplayBoundary.lean": "bbc09553d62198a18e897981d5f443c81f09dba8d371d2cdaeaa846d22cbc2f8",
+ "conformance/HexRCF/ReplayBoundaryProofs.lean": "d755462a7344dc9f5304fba255bcefb42188c1de5a51d92d8567a27f22482dc2",
+ "conformance/HexRCF/ReplayHelperProofs.lean": "6dd68829399ec8908a877a3f7705cc9321e49b9581d0d577d114950242e43a57",
+ "conformance/HexRCF/ReplayHelpers.lean": "4501fa39e52a8a2bb52fdd7b183c16801090dd026304105afb4342a1c441c2a3",
+ "conformance/HexRCF/RootContextConformance.lean": "0c52084609ec3de8afd51330a7d2cc97f7bae1d8b2bbc421138783940fc7db37",
+ "conformance/HexRCF/RootContextProofs.lean": "b4c2e3ce686ce8bc60bfdafe2be2f566c6de46758f4827d307f3d5592b59d2e9",
+ "conformance/HexRCF/RootHeaderBudget.lean": "db30b6b7781fabd238ea2c934477e5ae281cc6cd905f11848ce46eb66ef45fe0",
+ "conformance/HexRCF/RootHeaderControls.lean": "aca063af3bfe475166aef92193f162c25a0e53eea094087cf334406a3d513157",
+ "conformance/HexRCF/RootHeaderPacket.lean": "dcd8e63c1d656fc800690b35554a0f835a1ee0bb96312215f8c12348d8a0e79a",
+ "conformance/HexRCF/RootHeaderProofs.lean": "e6630f0464fd0096b9af74b4640d2abc514a62c0b0fc706b4a2e74c9602eeb8c",
+ "conformance/HexRCF/RootHeaderValues.lean": "de9a8fc7c2e9371cbd3324eb700180411e49865dbc6535a74d2c882f74e38e13",
+ "conformance/HexRCF/RootPrepareControls.lean": "b36af8efd1e12227188b6fb7bde258e80d5c1c874338a324cb53c5ccc6c1330f",
+ "conformance/HexRCF/RootPreparePacket.lean": "86185bcc5fdddb1f700d869a115a91034954714f69a83171fd0e96f601e76fe3",
+ "conformance/HexRCF/RootPrepareProofs.lean": "4a5bc6655576a6592fcd5cd801bcfebd425243b1bb6cb39b0bb46d500a3938be",
+ "conformance/HexRCF/RootPreparePublic.lean": "a9e09cbe8d1287b97dde71ad1c6dbe149cfbacb6f81f41a8493ee802416d0805",
+ "conformance/HexRCF/RootQuoteCases.lean": "602d15ef501e969183bffbda7fb3c0f00a174ba5c2dbc35370ee7fce896944dd",
+ "conformance/HexRCF/RootQuoteConformance.lean": "f6a652a243ba62cffc671d1365c6ab47b6618179acb172019ec5609ea0324d3c",
+ "conformance/HexRCF/RootQuoteData.lean": "faa259d129d5c65a063c7143e45d5d9d19573ed49862aa5ecb3978ff389cb514",
+ "conformance/HexRCF/RootQuoteSource.lean": "aca1654efc1a452aca8ef573bb8ea3a435a4e1e18a4dca854d9bcc8e350d511d",
+ "conformance/HexRCF/RootTableQuote/Conformance.lean": "ec5bd136df58cc24a40ca989e3d33e55923082aed7591b234f55c70c013c74ad",
+ "conformance/HexRCF/RowPacketControls.lean": "ab69c57b66fe8129be5f07e5e5f42b7b35d60a23b305ec224d2d7dca28ac7c82",
+ "conformance/HexRCF/RowQuoteCases.lean": "8d2ebddc05d5f0d08b62b50d3498b34b47ab0b3accc4d0a572e621fd83d606d4",
+ "conformance/HexRCF/RowQuoteData.lean": "ce60cb18f548f55e929d4803c7ed824ad0a7621fd4abda09a191f76393fabf0c",
+ "conformance/HexRCF/RowQuoteDepth.lean": "6ada3c44bea055425d223dc57eafb4f0c88349713d815ded4beec9720f7802ad",
+ "conformance/HexRCF/RowQuoteProofs.lean": "317d4f981f32bb28666fcabc6248f4a57fe67c95a7fe431f7993aeacfa377ed3",
+ "conformance/HexRCF/SelectedRoot/KernelCheck.lean": "499299274a75c6e2a70630c8ae442f21ab7d0514c7d23cffdde3f09fd17421cb",
+ "conformance/HexRCF/SharedQuoteCallbacks.lean": "6132cc3722af3cf251d11c857a572f09128d3614d931724965cbcf488dc4db6d",
+ "conformance/HexRCF/SignPacketProofs.lean": "3980cad31637f5798b2c351e1efc2a29b946de1d90e06fb11acd85e2a5c46321",
+ "conformance/HexRCF/SignPacketQuote.lean": "fcda11e6c75353d4519c4eb0e9c302b84d7e41030316c99fcacb885dabf97545",
+ "conformance/HexRCF/SignatureQuoteConformance.lean": "26f16c37cb9e0d5c09a082787f4a66673437adbf998023fd5e9625db16ff5d3f",
+ "conformance/HexRCF/SourceBuild.lean": "c12b24a04234a45da0f4bf3be83bee517ec9ccff2451e804d258bf9bcab2ba5e",
+ "conformance/HexRCF/SourceIdentityControls.lean": "c655486606139658d73e5b4d394228c3632596fec366e3b410ea9deb5b085553",
+ "conformance/HexRCF/SourceIdentityEmit.lean": "aa12f1517efc675698c0795c5a463a77d7a3466bcc146d4981d82e913059ed99",
+ "conformance/HexRCF/SourceIdentityLiterals.lean": "61ee2ce703d4965b00e1e20cc62288a0bde4e839d68ca09e1b66281f4a3e48d0",
+ "conformance/HexRCF/SourceIdentityPacket.lean": "614b3132274de5bebebeecb09cf479ac68723f1518e1f52912543a812985a4a9",
+ "conformance/HexRCF/SourceIdentityProofs.lean": "c449238d5f915dbe1f337688bc4f7357f3a93e31ad79eaa9e8e159c280749173",
+ "conformance/HexRCF/SourceSelectionCases.lean": "368ded3f07bb4be269f26a2fd2b7044904ea16d1dd1cba41d8bccb373d004005",
+ "conformance/HexRCF/TreeQuote.lean": "049065aa64bb13432b1d7183759979d28eebba98d18b6f54ab849e5953ce92c1",
+ "conformance/HexRCF/TreeQuoteData.lean": "c595c2278d2997483b755aa585da874c27eed40e4e1a8106d7f553e4f574776b",
+ "conformance/HexRCF/TreeQuoteProofs.lean": "f9a40248237480f8972df62dff548ef0599205b76014e070866e72586f161933",
+ "conformance/HexRCF/TreeQuotePublic.lean": "adc6dc6871208f31970cf5ae0c2472fd325a72e1df8114a6e8178ef8b2c71570",
+ "experiments/KernelReplay/AxiomClosure.lean": "f49377265f05f52b633b10a59255a03731e08d022cc54763de9851c5b5325034",
+ "lake-manifest.json": "fd2dc4df30cd44e4d30568489d616e7bcc8a78747500139134be56f35ae746a4",
+ "lakefile.lean": "0b45717104644561ca7415d4c9f43bae6b318cf75eb00e0757a44c9f7db700bc",
+ "lean-toolchain": "bc84812c94489d1e3e191baa1dc10d5eb684382d7fe9d2a5ab085e72c1c67e47",
+ "libraries.yml": "14e3dd1c01bb0c369b2216e2733378d61172040fd9f69dd0354d4e1267d9c5c1",
+ "scripts/bench/proof_only_runtime_exemptions/lakefile-rcf-bounded-source-fea47caa-baeeaf73.json": "eaea20ebc9579f4c50ff88344d8c9be3da9fc7c7d0981e9e0d5251dd04a6ab3f",
+ "scripts/bench/proof_only_runtime_exemptions/lakefile-rcf-source-build-fea47caa-1ab4e88c.json": "38fcff53934dab8ff78146cc782b039265da3c6684638a5b00ab725d5a2c8e01",
+ "scripts/rcf/selected_literals.py": "03e02fa50575882c0784894b76746ff8e594b9a1eb0a285811bc76ee87265e72",
+ "scripts/rcf/source_identity_literals.py": "ea5d7df949871c4975367a759b9632d033f3a240523c2c917c9141220ffdfd78"
+ },
+ "changed": [
+ "adapters/HexRCF/RealCoefficients/ScalarPacket.lean",
+ "adapters/HexRCF/RealCoefficients/SourceBuild.lean",
+ "conformance/HexRCF/BoundedSource.lean"
+ ],
+ "artifacts": {
+ "README.md": "fbd1e9db01e7eaaa97aa6cc38b2af5fdd86fcead8fc97d6c20901f6216adb8ee",
+ "scalar-acceptance-complete-metadata-admissions.log.gz": "69a21bde72fd2d28ac505ea4f1e28c3b0a4e96998cb90674e584133f1fa72701",
+ "scalar-acceptance-complete-metadata-copyright.log.gz": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "scalar-acceptance-complete-metadata-dag.log.gz": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "scalar-acceptance-complete-metadata-diff.log.gz": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "scalar-acceptance-complete-metadata-freshness.log.gz": "2deda7e9f1dd38e7a3fd37966a9bdf33c905c76164d13133571f675b1ab75b13",
+ "scalar-acceptance-complete-metadata-lines.log.gz": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "scalar-acceptance-complete-metadata-literals.log.gz": "d363c41d04cc71aaa8b2bb97d1faf6ff4b311e5874c10d339f87aba4d4b97158",
+ "scalar-acceptance-complete-metadata-manifest.log.gz": "87c23c0a8f1159f2320fb2015c285ee9167c8c51ef9f6df2f69fc217f4b11029",
+ "scalar-acceptance-controls-1.log.gz": "ca32f087c054c8d341d85b390d7396fc7c4e9911cb10a0a1167a9eb876c8a636",
+ "scalar-acceptance-core-1.log.gz": "ce011d2f29619251ac886f2ff8a39721e0bb4e8572d56b1d3b038de3044da3ba",
+ "scalar-acceptance-core-2.log.gz": "27d0b5f61f30c76e2d091234ce43d3db51d16711962e311f92741a430cee9359",
+ "scalar-acceptance-core-3.log.gz": "7d1d807bbcf726438f040112a52899faefd4077bddc4d8a41f525cfbf5edde55",
+ "scalar-acceptance-core-4.log.gz": "562720b3c20aab881cb3f225d2aa65a58d2608aeadaf77fd435479b9cdb8a625",
+ "scalar-acceptance-core-5.log.gz": "f77d1e8413301ccd309cfc139f58d5e0367ea769365cb4b63f870f0826b1041f",
+ "scalar-acceptance-core-6.log.gz": "748400a9f2dff259a5b3791d0e621556116476e049df2263a5e4412f5c5203a8",
+ "scalar-acceptance-core-7.log.gz": "ad8b053f8f2be4b5e5076ea7eadc66799d4dd9dbb97f2681e89354934db58315",
+ "scalar-acceptance-core-8.log.gz": "6f3bbc3807b4bb3afc9c63262ee0bd62c80bcb96a3f14be4b63b36fc9e580c6c",
+ "scalar-acceptance-final-inputs.json": "29f4ab301aa5e707b66063b9e02ee2157e3e873454919cd83f2f9411a3166240",
+ "scalar-acceptance-final-invocation.json": "10fe44d3c89ad4b886f515623a546fd60afc68fef494a81242066573bb8297ef",
+ "scalar-acceptance-final-metadata-admissions.log.gz": "69a21bde72fd2d28ac505ea4f1e28c3b0a4e96998cb90674e584133f1fa72701",
+ "scalar-acceptance-final-metadata-copyright.log.gz": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "scalar-acceptance-final-metadata-dag.log.gz": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "scalar-acceptance-final-metadata-diff.log.gz": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "scalar-acceptance-final-metadata-freshness.log.gz": "2deda7e9f1dd38e7a3fd37966a9bdf33c905c76164d13133571f675b1ab75b13",
+ "scalar-acceptance-final-metadata-lines.log.gz": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "scalar-acceptance-final-metadata-literals.log.gz": "d363c41d04cc71aaa8b2bb97d1faf6ff4b311e5874c10d339f87aba4d4b97158",
+ "scalar-acceptance-final-metadata-manifest.log.gz": "87c23c0a8f1159f2320fb2015c285ee9167c8c51ef9f6df2f69fc217f4b11029",
+ "scalar-acceptance-final-metadata.json": "be7aaa5072bc19c566b97877495a3171bd7299f9bbc977f4d3821a29c2e8b886",
+ "scalar-acceptance-final-projection.json": "b3f43d685a4ce9f9d3f5dfeca4560c5c9740ab6350f280b1fdcc98ba2b826eeb",
+ "scalar-acceptance-inputs.json": "25039c0161a87a8cdbf450f7bf22c92c5065f49b83da0bfcea37eb50083e923d",
+ "scalar-acceptance-integration-1.log.gz": "5c1211448f49687f7800e30e014dd89462d1af47f6d3eda8286787c7fc84bba7",
+ "scalar-acceptance-integration-2.log.gz": "3f3597ba0ed4986f139867d550625e0b0a015d2537cfeecbc52cf482df42e41f",
+ "scalar-acceptance-invocation.json": "10fe44d3c89ad4b886f515623a546fd60afc68fef494a81242066573bb8297ef",
+ "scalar-acceptance-metadata-admissions.log.gz": "69a21bde72fd2d28ac505ea4f1e28c3b0a4e96998cb90674e584133f1fa72701",
+ "scalar-acceptance-metadata-copyright.log.gz": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "scalar-acceptance-metadata-dag.log.gz": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "scalar-acceptance-metadata-diff.log.gz": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "scalar-acceptance-metadata-freshness.log.gz": "2deda7e9f1dd38e7a3fd37966a9bdf33c905c76164d13133571f675b1ab75b13",
+ "scalar-acceptance-metadata-lines.log.gz": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "scalar-acceptance-metadata-literals.log.gz": "d363c41d04cc71aaa8b2bb97d1faf6ff4b311e5874c10d339f87aba4d4b97158",
+ "scalar-acceptance-metadata-manifest.log.gz": "87c23c0a8f1159f2320fb2015c285ee9167c8c51ef9f6df2f69fc217f4b11029",
+ "source-acceptance-source.patch.gz": "725e91f139ddb7a7a03b5f2db28039eea084515fce328fb74757a52132d45d64",
+ "verify.py": "bca6d3efcdb2d377e2555b85da3c735f0a6efb37dde2266101a49dfac90cda61"
+ },
+ "audit_bodies": 11,
+ "targets": 6,
+ "limits": {
+ "memory_max": 34359738368,
+ "memory_swap_max": 0,
+ "lean_threads": 2,
+ "serial": true
+ },
+ "scope": "Accepted scalar and bounded-source packet progress/identity with unchanged native/quotation logic. Canonical predecessor arithmetic, all reached operation records, generic histories/frontends and overall completeness remain separate."
+}
diff --git a/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-complete-metadata-admissions.log.gz b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-complete-metadata-admissions.log.gz
new file mode 100644
index 0000000000..bd2ec29cdf
Binary files /dev/null and b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-complete-metadata-admissions.log.gz differ
diff --git a/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-complete-metadata-copyright.log.gz b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-complete-metadata-copyright.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-complete-metadata-copyright.log.gz differ
diff --git a/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-complete-metadata-dag.log.gz b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-complete-metadata-dag.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-complete-metadata-dag.log.gz differ
diff --git a/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-complete-metadata-diff.log.gz b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-complete-metadata-diff.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-complete-metadata-diff.log.gz differ
diff --git a/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-complete-metadata-freshness.log.gz b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-complete-metadata-freshness.log.gz
new file mode 100644
index 0000000000..44c03f6508
Binary files /dev/null and b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-complete-metadata-freshness.log.gz differ
diff --git a/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-complete-metadata-lines.log.gz b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-complete-metadata-lines.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-complete-metadata-lines.log.gz differ
diff --git a/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-complete-metadata-literals.log.gz b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-complete-metadata-literals.log.gz
new file mode 100644
index 0000000000..251ef5b170
Binary files /dev/null and b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-complete-metadata-literals.log.gz differ
diff --git a/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-complete-metadata-manifest.log.gz b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-complete-metadata-manifest.log.gz
new file mode 100644
index 0000000000..1e2a3e818a
Binary files /dev/null and b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-complete-metadata-manifest.log.gz differ
diff --git a/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-controls-1.log.gz b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-controls-1.log.gz
new file mode 100644
index 0000000000..3bb40b5663
Binary files /dev/null and b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-controls-1.log.gz differ
diff --git a/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-core-1.log.gz b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-core-1.log.gz
new file mode 100644
index 0000000000..9ded2ae254
Binary files /dev/null and b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-core-1.log.gz differ
diff --git a/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-core-2.log.gz b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-core-2.log.gz
new file mode 100644
index 0000000000..8a97a23c7d
Binary files /dev/null and b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-core-2.log.gz differ
diff --git a/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-core-3.log.gz b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-core-3.log.gz
new file mode 100644
index 0000000000..3e9936fdfb
Binary files /dev/null and b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-core-3.log.gz differ
diff --git a/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-core-4.log.gz b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-core-4.log.gz
new file mode 100644
index 0000000000..a15927ac53
Binary files /dev/null and b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-core-4.log.gz differ
diff --git a/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-core-5.log.gz b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-core-5.log.gz
new file mode 100644
index 0000000000..9d1253e0c9
Binary files /dev/null and b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-core-5.log.gz differ
diff --git a/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-core-6.log.gz b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-core-6.log.gz
new file mode 100644
index 0000000000..f735763e87
Binary files /dev/null and b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-core-6.log.gz differ
diff --git a/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-core-7.log.gz b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-core-7.log.gz
new file mode 100644
index 0000000000..adccc20ff3
Binary files /dev/null and b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-core-7.log.gz differ
diff --git a/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-core-8.log.gz b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-core-8.log.gz
new file mode 100644
index 0000000000..a36489938f
Binary files /dev/null and b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-core-8.log.gz differ
diff --git a/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-final-inputs.json b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-final-inputs.json
new file mode 100644
index 0000000000..8477362fb0
--- /dev/null
+++ b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-final-inputs.json
@@ -0,0 +1,5 @@
+{
+ "adapters/HexRCF/RealCoefficients/ScalarPacket.lean": "6b8353895cff48df759bb4fc8cb5cda767313974e0a57f1e59973249b6eefdca",
+ "adapters/HexRCF/RealCoefficients/SourceBuild.lean": "e4e6d8fd707f32e78091e42f5996a0dfd703b82973ed993b0a7795efc15388ca",
+ "conformance/HexRCF/BoundedSource.lean": "5c2166dd0977d3e27d3fefa89f9c0382e9dd7226bff629112cfd0e0faad1127b"
+}
diff --git a/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-final-invocation.json b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-final-invocation.json
new file mode 100644
index 0000000000..bcfb5fd50a
--- /dev/null
+++ b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-final-invocation.json
@@ -0,0 +1,15 @@
+{
+ "cwd": "/home/kim/worktrees/hex-dev/hex-dev-issue-10358",
+ "argv": [
+ "/home/kim/.codex/tasks/hex-10358/bin/run-bounded",
+ "lake",
+ "build",
+ "HexRCFRealCoefficients",
+ "HexRCF.BoundedSource",
+ "HexRCF.BoundedSource.Proofs",
+ "HexRCF.SourceIdentityProofs",
+ "HexRCF.CellReplay.Algebraic.Quoted",
+ "HexRCF.CellReplay.Algebraic.CompleteQuoted"
+ ],
+ "targets": 6
+}
diff --git a/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-final-metadata-admissions.log.gz b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-final-metadata-admissions.log.gz
new file mode 100644
index 0000000000..bd2ec29cdf
Binary files /dev/null and b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-final-metadata-admissions.log.gz differ
diff --git a/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-final-metadata-copyright.log.gz b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-final-metadata-copyright.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-final-metadata-copyright.log.gz differ
diff --git a/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-final-metadata-dag.log.gz b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-final-metadata-dag.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-final-metadata-dag.log.gz differ
diff --git a/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-final-metadata-diff.log.gz b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-final-metadata-diff.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-final-metadata-diff.log.gz differ
diff --git a/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-final-metadata-freshness.log.gz b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-final-metadata-freshness.log.gz
new file mode 100644
index 0000000000..44c03f6508
Binary files /dev/null and b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-final-metadata-freshness.log.gz differ
diff --git a/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-final-metadata-lines.log.gz b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-final-metadata-lines.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-final-metadata-lines.log.gz differ
diff --git a/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-final-metadata-literals.log.gz b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-final-metadata-literals.log.gz
new file mode 100644
index 0000000000..251ef5b170
Binary files /dev/null and b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-final-metadata-literals.log.gz differ
diff --git a/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-final-metadata-manifest.log.gz b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-final-metadata-manifest.log.gz
new file mode 100644
index 0000000000..1e2a3e818a
Binary files /dev/null and b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-final-metadata-manifest.log.gz differ
diff --git a/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-final-metadata.json b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-final-metadata.json
new file mode 100644
index 0000000000..0bfe774469
--- /dev/null
+++ b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-final-metadata.json
@@ -0,0 +1,79 @@
+[
+ {
+ "name": "copyright",
+ "argv": [
+ "python3",
+ "scripts/check_copyright_headers.py"
+ ],
+ "exit_code": 0,
+ "log": "scalar-acceptance-complete-metadata-copyright.log"
+ },
+ {
+ "name": "lines",
+ "argv": [
+ "python3",
+ "scripts/check_file_line_counts.py",
+ "--base",
+ "origin/main"
+ ],
+ "exit_code": 0,
+ "log": "scalar-acceptance-complete-metadata-lines.log"
+ },
+ {
+ "name": "dag",
+ "argv": [
+ "python3",
+ "scripts/check_dag.py"
+ ],
+ "exit_code": 0,
+ "log": "scalar-acceptance-complete-metadata-dag.log"
+ },
+ {
+ "name": "admissions",
+ "argv": [
+ "python3",
+ "scripts/ci/check_named_admissions.py"
+ ],
+ "exit_code": 0,
+ "log": "scalar-acceptance-complete-metadata-admissions.log"
+ },
+ {
+ "name": "manifest",
+ "argv": [
+ "python3",
+ "scripts/release/check_released_manifest.py"
+ ],
+ "exit_code": 0,
+ "log": "scalar-acceptance-complete-metadata-manifest.log"
+ },
+ {
+ "name": "freshness",
+ "argv": [
+ "python3",
+ "scripts/bench/check_factor_sweep_freshness.py"
+ ],
+ "exit_code": 0,
+ "log": "scalar-acceptance-complete-metadata-freshness.log"
+ },
+ {
+ "name": "literals",
+ "argv": [
+ "python3",
+ "scripts/rcf/selected_literals.py",
+ "--check"
+ ],
+ "exit_code": 0,
+ "log": "scalar-acceptance-complete-metadata-literals.log"
+ },
+ {
+ "name": "diff",
+ "argv": [
+ "git",
+ "diff",
+ "--cached",
+ "--check"
+ ],
+ "exit_code": 0,
+ "log": "scalar-acceptance-complete-metadata-diff.log"
+ }
+]
diff --git a/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-final-projection.json b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-final-projection.json
new file mode 100644
index 0000000000..fc63d3c30b
--- /dev/null
+++ b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-final-projection.json
@@ -0,0 +1,9 @@
+{
+ "base": "48644cb18d42e2f70bc39de850a5409c018c5640",
+ "changed": [
+ "adapters/HexRCF/RealCoefficients/ScalarPacket.lean",
+ "adapters/HexRCF/RealCoefficients/SourceBuild.lean",
+ "conformance/HexRCF/BoundedSource.lean"
+ ],
+ "result": "PASS final projection; newtheorems/fresh11-bodyaudit/fourowner-or-adapterproofimports only; all originalruntimebytes retained"
+}
diff --git a/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-inputs.json b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-inputs.json
new file mode 100644
index 0000000000..060403ca5b
--- /dev/null
+++ b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-inputs.json
@@ -0,0 +1,5 @@
+{
+ "adapters/HexRCF/RealCoefficients/ScalarPacket.lean": "6b8353895cff48df759bb4fc8cb5cda767313974e0a57f1e59973249b6eefdca",
+ "adapters/HexRCF/RealCoefficients/SourceBuild.lean": "00d72d574e264ba6c3ee0a09c78c38649314cfbc231f79b6a2cea9c3e2087aa8",
+ "conformance/HexRCF/BoundedSource.lean": "25a39e270b5110dded03d1f5d2ac5b97511ae1a69c5a9041932c1db5fbc56c84"
+}
diff --git a/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-integration-1.log.gz b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-integration-1.log.gz
new file mode 100644
index 0000000000..17d1409d2f
Binary files /dev/null and b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-integration-1.log.gz differ
diff --git a/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-integration-2.log.gz b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-integration-2.log.gz
new file mode 100644
index 0000000000..ca0dd6942d
Binary files /dev/null and b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-integration-2.log.gz differ
diff --git a/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-invocation.json b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-invocation.json
new file mode 100644
index 0000000000..bcfb5fd50a
--- /dev/null
+++ b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-invocation.json
@@ -0,0 +1,15 @@
+{
+ "cwd": "/home/kim/worktrees/hex-dev/hex-dev-issue-10358",
+ "argv": [
+ "/home/kim/.codex/tasks/hex-10358/bin/run-bounded",
+ "lake",
+ "build",
+ "HexRCFRealCoefficients",
+ "HexRCF.BoundedSource",
+ "HexRCF.BoundedSource.Proofs",
+ "HexRCF.SourceIdentityProofs",
+ "HexRCF.CellReplay.Algebraic.Quoted",
+ "HexRCF.CellReplay.Algebraic.CompleteQuoted"
+ ],
+ "targets": 6
+}
diff --git a/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-metadata-admissions.log.gz b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-metadata-admissions.log.gz
new file mode 100644
index 0000000000..bd2ec29cdf
Binary files /dev/null and b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-metadata-admissions.log.gz differ
diff --git a/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-metadata-copyright.log.gz b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-metadata-copyright.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-metadata-copyright.log.gz differ
diff --git a/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-metadata-dag.log.gz b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-metadata-dag.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-metadata-dag.log.gz differ
diff --git a/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-metadata-diff.log.gz b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-metadata-diff.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-metadata-diff.log.gz differ
diff --git a/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-metadata-freshness.log.gz b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-metadata-freshness.log.gz
new file mode 100644
index 0000000000..44c03f6508
Binary files /dev/null and b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-metadata-freshness.log.gz differ
diff --git a/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-metadata-lines.log.gz b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-metadata-lines.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-metadata-lines.log.gz differ
diff --git a/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-metadata-literals.log.gz b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-metadata-literals.log.gz
new file mode 100644
index 0000000000..251ef5b170
Binary files /dev/null and b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-metadata-literals.log.gz differ
diff --git a/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-metadata-manifest.log.gz b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-metadata-manifest.log.gz
new file mode 100644
index 0000000000..1e2a3e818a
Binary files /dev/null and b/reports/data/hexrcf-scalar-acceptance/scalar-acceptance-metadata-manifest.log.gz differ
diff --git a/reports/data/hexrcf-scalar-acceptance/source-acceptance-source.patch.gz b/reports/data/hexrcf-scalar-acceptance/source-acceptance-source.patch.gz
new file mode 100644
index 0000000000..0f07dfa69a
Binary files /dev/null and b/reports/data/hexrcf-scalar-acceptance/source-acceptance-source.patch.gz differ
diff --git a/reports/data/hexrcf-scalar-acceptance/verify.py b/reports/data/hexrcf-scalar-acceptance/verify.py
new file mode 100644
index 0000000000..cfa6ce4431
--- /dev/null
+++ b/reports/data/hexrcf-scalar-acceptance/verify.py
@@ -0,0 +1,55 @@
+#!/usr/bin/env python3
+"""Verify immutable accepted-source proof composition and scoped validation."""
+from pathlib import Path
+import argparse,gzip,hashlib,json,subprocess
+here=Path(__file__).resolve().parent;root=next(p for p in here.parents if (p/'.git').exists())
+parser=argparse.ArgumentParser();parser.add_argument('--check-head',action='store_true');args=parser.parse_args()
+sha=lambda b:hashlib.sha256(b).hexdigest()
+c=json.loads((here/'context.json').read_text());parent=root/'reports/data/hexrcf-bounded-source/progress'
+assert sha((parent/'context.json').read_bytes())==c['parent_context_sha256']
+subprocess.run(['python3',str(parent/'verify.py')],cwd=root,check=True,stdout=subprocess.DEVNULL)
+previous=json.loads((parent/'context.json').read_text())
+for path,digest in c['sources'].items():
+ raw=subprocess.check_output(['git','show',c['source_commit']+':'+path],cwd=root)
+ assert sha(raw)==digest,path
+ if args.check_head:assert sha((root/path).read_bytes())==digest,path
+ if path not in c['changed']:
+ if path in previous['sources']:assert digest==previous['sources'][path],path
+ continue
+ s=raw.decode();before=subprocess.check_output(['git','show',c['base_commit']+':'+path],cwd=root).decode()
+ if path.endswith('ScalarPacket.lean'):
+ for line in ['public import HexSignDet.DagBounds\n','public import HexSignDet.Codec.GraphLaws\n','public import HexSignDet.Codec.FiniteGraph\n']:s=s.replace(line,'')
+ a=s.index('/-- The wire key retains');b=s.index('/-- A produced scalar proposal retains the sign',a);s=s[:a]+s[b:]
+ a=s.index('/-- Checked selected-sign evidence passes literal scalar replay');b=s.index('/-- The fallback is unobservable',a);s=s[:a]+s[b:]
+ elif path.endswith('SourceBuild.lean'):
+ s=s.replace('public import HexRCF.RealCoefficients.SourceIdentity\n','')
+ for first,last in [('/-- Successful singleton selection retains','/-- Enumerate with'),('/-- Actual bounded production implies','/-- An ordinary-real count-one domain'),('/-- Valid count-one real inputs yield','end Hex.RCF.RealCoefficients.SourceBuild')]:
+ a=s.index(first);b=s.index(last,a);s=s[:a]+s[b:]
+ else:
+ a=s.index(' let roots := #[');b=s.index(' let axioms ←',a);olda=before.index(' let roots := #[');oldb=before.index(' let axioms ←',olda);s=s[:a]+before[olda:oldb]+s[b:]
+ s=s.replace('bounded source progress: {roots.size} actual theorem bodies','bounded source progress: three actual theorem bodies')
+ assert s==before,path
+for path,digest in c['artifacts'].items():assert sha((here/path).read_bytes())==digest,path
+read=lambda name:gzip.decompress((here/(name+'.gz')).read_bytes()).decode()
+for name in ['scalar-acceptance-integration-1.log','scalar-acceptance-integration-2.log']:
+ assert 'code=exited, status=0/SUCCESS' in read(name),name
+log=read('scalar-acceptance-integration-2.log')
+assert '11 actual theorem bodies rechecked; full axioms=[propext, Classical.choice, Quot.sound]' in log
+assert '25477 frozen bytes; six scalar graphs;' in log
+for nodes in [687781,690200,731070,673461]:assert f'proofNodes={nodes}' in log
+assert 'limit=687780' in log
+assert '392 theorems/449 definitions; nonempty traces=811' in log
+assert '218 theorems/179 definitions; nonempty traces=385' in log
+assert 'fresh complete-packet source body rechecked' in log
+assert 'fresh algebraic source body rechecked' in log
+for result in json.loads((here/'scalar-acceptance-final-metadata.json').read_text()):assert result['exit_code']==0,result
+inv=json.loads((here/'scalar-acceptance-final-invocation.json').read_text());assert len(inv['argv'][3:])==6
+for path,digest in json.loads((here/'scalar-acceptance-final-inputs.json').read_text()).items():assert c['sources'][path]==digest,path
+scalar=subprocess.check_output(['git','show',c['source_commit']+':adapters/HexRCF/RealCoefficients/ScalarPacket.lean'],cwd=root).decode()
+section=scalar[scalar.index('theorem read_checked'):scalar.index('/-- A produced packet passes independent literal replay')]
+assert 'value.Lawful' not in section and 'value.Covers' in section
+assert 'Codec.read_graph_covered' in section and 'Codec.Shape.of_validate validated' in section
+build=subprocess.check_output(['git','show',c['source_commit']+':adapters/HexRCF/RealCoefficients/SourceBuild.lean'],cwd=root).decode()
+assert 'theorem buildOn_identify' in build and 'apply SourceIdentity.identify' in build
+assert 'result.root.raw = ⟨parent.signature,polynomial,lower,upper,[],[]⟩' in build
+print(f'Verified accepted sources: {len(c["sources"])} source bindings/{len(c["artifacts"])} artifacts; finite codec coverage, exact subjects, eleven fresh bodies/standard-three axioms, six-target compatibility; full #10358 incomplete')
diff --git a/reports/data/hexrcf-source-identity/README.md b/reports/data/hexrcf-source-identity/README.md
new file mode 100644
index 0000000000..c874c5c656
--- /dev/null
+++ b/reports/data/hexrcf-source-identity/README.md
@@ -0,0 +1,28 @@
+# Selected-source authentication evidence
+
+Run `python3 reports/data/hexrcf-source-identity/verify.py --check-head`.
+The optional flag compares the pinned implementation with current sources.
+`context.json` binds 106 sources and 198 artifacts to implementation
+`a4b44be2efdba00c6b40f7b932db40d1c44beb27`.
+
+For current sources use `python3 reports/data/hexrcf-source-identity/verify_header_repair.py`.
+CI caught missing copyright prefixes in two newly tracked conformance files;
+the original local checker had excluded untracked files. The repair at
+`2475e17ee6ef365a7a317bb12e84ef78ec56125f` changes only those comments.
+The repair verifier checks every pinned source and the exact two added prefixes;
+the original `--check-head` deliberately detects this source difference.
+Failed CI logs are retained under `header-repair/`. The original record keeps
+its source pin and is not republished as validation of the later commit.
+
+The record covers independently quoted equation/margin packets, selected-source
+authentication, its use in the full original algebraic source proof, exact/below
+budgets, wrong-conjugate and wrong-value-law refusal, full caller restoration,
+fresh actual-body/axiom audits, 45 affected targets and the complete manual.
+All twelve final desktop/narrow captures were actually inspected. Active
+resource limits, invocation arguments, constructor checks and failed diagnostic
+attempts with available exact inputs are retained.
+
+The original anchor selection, coefficient value laws, fixed parent and seed
+facts remain supplied. General history assembly and the full tactic remain
+incomplete. Earlier evidence keeps its original pins. See the
+[report](../../hexrcf-source-identity.md) for timings, failures and limits.
diff --git a/reports/data/hexrcf-source-identity/captures/browser.mjs b/reports/data/hexrcf-source-identity/captures/browser.mjs
new file mode 100644
index 0000000000..2c100dbe84
--- /dev/null
+++ b/reports/data/hexrcf-source-identity/captures/browser.mjs
@@ -0,0 +1,61 @@
+import fs from 'node:fs';
+import {spawn} from 'node:child_process';
+const root=process.argv[2];
+if(!root) throw new Error('Pass the scratch render directory');
+const profile=root+'/source-identity-profile';
+fs.mkdirSync(profile,{recursive:true});
+fs.rmSync(profile+'/DevToolsActivePort',{force:true});
+const chrome=spawn(process.env.CHROME_BIN || '/home/kim/.cache/ms-playwright/chromium-1243/chrome-linux64/chrome',[
+ '--headless=new','--no-sandbox','--disable-gpu','--allow-file-access-from-files',
+ '--remote-debugging-port=0','--remote-allow-origins=*','--user-data-dir='+profile,'about:blank'],
+ {env:{...process.env,LD_LIBRARY_PATH:fs.readFileSync(root+'/browser-lib-paths.txt','utf8').trim()},stdio:'ignore'});
+let socket;
+try {
+ const portFile=profile+'/DevToolsActivePort';
+ for(let i=0;!fs.existsSync(portFile);i++) {
+ if(i>200||chrome.exitCode!==null) throw new Error('Chrome did not expose CDP');
+ await new Promise(r=>setTimeout(r,100));
+ }
+ const port=fs.readFileSync(portFile,'utf8').split('\n')[0];
+ const tabs=await (await fetch('http://127.0.0.1:'+port+'/json')).json();
+ socket=new WebSocket(tabs.find(t=>t.type==='page').webSocketDebuggerUrl);
+ await new Promise((r,j)=>{socket.onopen=r;socket.onerror=j});
+ let sequence=0;const pending=new Map();let loaded;
+ socket.onmessage=e=>{
+ const msg=JSON.parse(e.data);
+ if(msg.id){const p=pending.get(msg.id);pending.delete(msg.id);msg.error?p.reject(msg.error):p.resolve(msg.result);}
+ if(msg.method==='Page.loadEventFired'&&loaded){loaded();loaded=undefined;}
+ };
+ const call=(method,params={})=>new Promise((resolve,reject)=>{const id=++sequence;pending.set(id,{resolve,reject});socket.send(JSON.stringify({id,method,params}));});
+ await call('Page.enable');
+ const load=new Promise(r=>loaded=r);
+ await call('Page.navigate',{url:'file:///home/kim/.codex/tasks/hex-10358/scalar-review-render/source-identity-review-html/html-single/index.html'});
+ await load;
+ const evaluate=async expression=>{const r=await call('Runtime.evaluate',{expression,returnByValue:true});if(r.exceptionDetails)throw new Error(JSON.stringify(r.exceptionDetails));return r.result.value;};
+ const metadata=[]; const sectionMetadata=[];
+ for(const [label,width] of [['desktop',1440],['narrow',390]]) {
+ await call('Emulation.setDeviceMetricsOverride',{width,height:width===390?1800:1000,deviceScaleFactor:1,mobile:false});
+ for(const [kind,phrase] of [["source", "The algebraic source regression independently reads the complete frozen packet"], ["sourcecode", "The algebraic source regression independently reads the complete frozen packet"], ["api", "constructs this identity from two supplied scalar readers"], ["apicode", "constructs this identity from two supplied scalar readers"], ["limits", "The result proves that the reader's selected real root equals the original"], ["controls", "The frozen square-root regression quotes its parent descriptor and both"]] ) {
+ const exact=await evaluate(`(() => {const p=Array.from(document.querySelectorAll('p')).find(e=>e.textContent.replace(/\\s+/g,' ').includes(${JSON.stringify(phrase)}));if(!p)throw new Error('missing paragraph');const target=['sourcecode','apicode'].includes(${JSON.stringify(kind)})?p.nextElementSibling:p;if(['sourcecode','apicode'].includes(${JSON.stringify(kind)})&&!target.matches('.hl.lean.block, pre, div:has(code)'))throw new Error('target is not a Lean code block');target.scrollIntoView({block:${JSON.stringify('center')}});return {text:p.textContent,viewport:innerWidth,scrollY,paragraphWidth:p.getBoundingClientRect().width,scrollWidth:p.scrollWidth,targetTag:target.tagName,targetWidth:target.getBoundingClientRect().width,targetScrollWidth:target.scrollWidth,descendantOverflow:Math.max(0,...[target,...target.querySelectorAll('*')].map(e=>e.scrollWidth-e.clientWidth)),overflowElements:[target,...target.querySelectorAll('*')].filter(e=>e.scrollWidth-e.clientWidth>1).map(e=>({tag:e.tagName,classes:e.className,width:e.clientWidth,scroll:e.scrollWidth,text:e.textContent.slice(0,100)})).slice(0,8)};})()`);
+ if(!exact)throw new Error('missing visual target '+kind);
+ await evaluate('new Promise(resolve=>requestAnimationFrame(()=>requestAnimationFrame(resolve)))');
+ const shot=await call('Page.captureScreenshot',{format:'png'});
+ fs.writeFileSync(root+'/'+'source-identity-final-'+label+'-'+kind+'.png',Buffer.from(shot.data,'base64'));
+ metadata.push({label,kind,...exact});
+ }
+ sectionMetadata.push(await evaluate(`(() => {
+ const headings=Array.from(document.querySelectorAll('h1,h2,h3,h4,h5,h6'));
+ const heading=headings.find(e=>e.textContent.includes('Quoting a supplied root replay'));
+ if(!heading)throw new Error('missing quotation heading');
+ const following=headings.find(e=>e!==heading && Number(e.tagName[1])<=Number(heading.tagName[1]) && (heading.compareDocumentPosition(e)&4));
+ if(!following)throw new Error('missing following section');
+ const targets=Array.from(document.querySelectorAll('p,.hl.lean.block')).filter(e=>(heading.compareDocumentPosition(e)&4) && (e.compareDocumentPosition(following)&4));
+ if(targets.length<8)throw new Error('incomplete quotation section');
+ return {label:${JSON.stringify(label)},width:innerWidth,targets:targets.map(e=>({tag:e.tagName,text:e.textContent.slice(0,160),overflow:Math.max(0,...[e,...e.querySelectorAll('*')].map(n=>n.scrollWidth-n.clientWidth))}))};
+ })()`));
+ }
+ fs.writeFileSync(root+'/source-identity-final-section-overflow.json',JSON.stringify(sectionMetadata,null,2));
+ fs.writeFileSync(root+'/source-identity-final-inspection.json',JSON.stringify(metadata,null,2));
+ if(metadata.some(e=>e.targetScrollWidth>e.targetWidth+1 || e.descendantOverflow>1)) throw new Error('Changed content overflows; retained captures and metrics identify the affected block.');
+ process.stdout.write('Saved cell quotation desktop/narrow screenshots\n');
+} finally {if(socket)socket.close();chrome.kill('SIGTERM');}
diff --git a/reports/data/hexrcf-source-identity/captures/inspection.json b/reports/data/hexrcf-source-identity/captures/inspection.json
new file mode 100644
index 0000000000..8dc068c62d
--- /dev/null
+++ b/reports/data/hexrcf-source-identity/captures/inspection.json
@@ -0,0 +1,170 @@
+[
+ {
+ "label": "desktop",
+ "kind": "source",
+ "text": "\n The algebraic source regression independently reads the complete frozen packet\nover the retained positive square root of 2. It reifies the following original\nsentence, reconstructs the coefficient polynomial, authenticates its fixed\ncoefficient and composes the checked cell verdict with the original source:",
+ "viewport": 1440,
+ "scrollY": 275018,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "P",
+ "targetWidth": 752,
+ "targetScrollWidth": 752,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "desktop",
+ "kind": "sourcecode",
+ "text": "\n The algebraic source regression independently reads the complete frozen packet\nover the retained positive square root of 2. It reifies the following original\nsentence, reconstructs the coefficient polynomial, authenticates its fixed\ncoefficient and composes the checked cell verdict with the original source:",
+ "viewport": 1440,
+ "scrollY": 275128,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "CODE",
+ "targetWidth": 740,
+ "targetScrollWidth": 740,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "desktop",
+ "kind": "api",
+ "text": "\n SourceIdentity.quoteWith\nconstructs this identity from two supplied scalar readers. Its Anchor retains\nthe original polynomial, isolating square, witness, precision and selected-value\nproof. Its Packets supplies the equation and enclosure readers and proofs\nbinding their polynomial keys to the intended real polynomials. The readers\ncarry the ordinary-real model. Both facts must belong to the same selected\ncontext: one sign is zero and the square margin is strictly positive.",
+ "viewport": 1440,
+ "scrollY": 275951,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "P",
+ "targetWidth": 752,
+ "targetScrollWidth": 752,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "desktop",
+ "kind": "apicode",
+ "text": "\n SourceIdentity.quoteWith\nconstructs this identity from two supplied scalar readers. Its Anchor retains\nthe original polynomial, isolating square, witness, precision and selected-value\nproof. Its Packets supplies the equation and enclosure readers and proofs\nbinding their polynomial keys to the intended real polynomials. The readers\ncarry the ordinary-real model. Both facts must belong to the same selected\ncontext: one sign is zero and the square margin is strictly positive.",
+ "viewport": 1440,
+ "scrollY": 276208,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "CODE",
+ "targetWidth": 740,
+ "targetScrollWidth": 740,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "desktop",
+ "kind": "limits",
+ "text": "\n The result proves that the reader's selected real root equals the original\nanchor value. Quotation checks both packets, their keys, signs, supplied value\nlaws and the final original-source equality. The caller supplies the prepared\ncontext and its checked equality. All work shares the enclosing reflection\nbudget and transaction. This authenticates a supplied selected source; it does\nnot construct an arbitrary predecessor history or run missing root/sign searches.",
+ "viewport": 1440,
+ "scrollY": 276464,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "P",
+ "targetWidth": 752,
+ "targetScrollWidth": 752,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "desktop",
+ "kind": "controls",
+ "text": "\n The frozen square-root regression quotes its parent descriptor and both\npackets in 673,461 proof nodes. Its coefficient identity supplies the complete\nalgebraic source example above. A separate negative-window packet has an\naccepted literal reader and sign −1; it cannot identify the positive native\nroot with the negative selected conjugate. Wrong coefficient proofs and\none-node-below exhaustion also restore the complete caller state. The dedicated\nfresh audit checks 218 theorem bodies, 179 definitions and 385 nonempty kernel\ntraces, excludes the handwritten source identities and native fact fixtures,\nand retains the producer guard and complete standard-three axiom closure.",
+ "viewport": 1440,
+ "scrollY": 276643,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "P",
+ "targetWidth": 752,
+ "targetScrollWidth": 752,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "source",
+ "text": "\n The algebraic source regression independently reads the complete frozen packet\nover the retained positive square root of 2. It reifies the following original\nsentence, reconstructs the coefficient polynomial, authenticates its fixed\ncoefficient and composes the checked cell verdict with the original source:",
+ "viewport": 390,
+ "scrollY": 440876,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "P",
+ "targetWidth": 343,
+ "targetScrollWidth": 343,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "sourcecode",
+ "text": "\n The algebraic source regression independently reads the complete frozen packet\nover the retained positive square root of 2. It reifies the following original\nsentence, reconstructs the coefficient polynomial, authenticates its fixed\ncoefficient and composes the checked cell verdict with the original source:",
+ "viewport": 390,
+ "scrollY": 441032,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "CODE",
+ "targetWidth": 331,
+ "targetScrollWidth": 331,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "api",
+ "text": "\n SourceIdentity.quoteWith\nconstructs this identity from two supplied scalar readers. Its Anchor retains\nthe original polynomial, isolating square, witness, precision and selected-value\nproof. Its Packets supplies the equation and enclosure readers and proofs\nbinding their polynomial keys to the intended real polynomials. The readers\ncarry the ordinary-real model. Both facts must belong to the same selected\ncontext: one sign is zero and the square margin is strictly positive.",
+ "viewport": 390,
+ "scrollY": 442644,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "P",
+ "targetWidth": 343,
+ "targetScrollWidth": 343,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "apicode",
+ "text": "\n SourceIdentity.quoteWith\nconstructs this identity from two supplied scalar readers. Its Anchor retains\nthe original polynomial, isolating square, witness, precision and selected-value\nproof. Its Packets supplies the equation and enclosure readers and proofs\nbinding their polynomial keys to the intended real polynomials. The readers\ncarry the ordinary-real model. Both facts must belong to the same selected\ncontext: one sign is zero and the square margin is strictly positive.",
+ "viewport": 390,
+ "scrollY": 442970,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "CODE",
+ "targetWidth": 331,
+ "targetScrollWidth": 331,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "limits",
+ "text": "\n The result proves that the reader's selected real root equals the original\nanchor value. Quotation checks both packets, their keys, signs, supplied value\nlaws and the final original-source equality. The caller supplies the prepared\ncontext and its checked equality. All work shares the enclosing reflection\nbudget and transaction. This authenticates a supplied selected source; it does\nnot construct an arbitrary predecessor history or run missing root/sign searches.",
+ "viewport": 390,
+ "scrollY": 443296,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "P",
+ "targetWidth": 343,
+ "targetScrollWidth": 343,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "controls",
+ "text": "\n The frozen square-root regression quotes its parent descriptor and both\npackets in 673,461 proof nodes. Its coefficient identity supplies the complete\nalgebraic source example above. A separate negative-window packet has an\naccepted literal reader and sign −1; it cannot identify the positive native\nroot with the negative selected conjugate. Wrong coefficient proofs and\none-node-below exhaustion also restore the complete caller state. The dedicated\nfresh audit checks 218 theorem bodies, 179 definitions and 385 nonempty kernel\ntraces, excludes the handwritten source identities and native fact fixtures,\nand retains the producer guard and complete standard-three axiom closure.",
+ "viewport": 390,
+ "scrollY": 443660,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "P",
+ "targetWidth": 343,
+ "targetScrollWidth": 343,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ }
+]
\ No newline at end of file
diff --git a/reports/data/hexrcf-source-identity/captures/render.lean.txt b/reports/data/hexrcf-source-identity/captures/render.lean.txt
new file mode 100644
index 0000000000..6b8ce4789d
--- /dev/null
+++ b/reports/data/hexrcf-source-identity/captures/render.lean.txt
@@ -0,0 +1,5 @@
+import HexManual
+import VersoManual
+#eval Verso.Genre.Manual.manualMain (%doc HexManual)
+ (options := ["--output", "source-identity-review-html",
+ "--without-tex", "--with-html-single", "--without-html-multi"])
diff --git a/reports/data/hexrcf-source-identity/captures/section-overflow.json b/reports/data/hexrcf-source-identity/captures/section-overflow.json
new file mode 100644
index 0000000000..47d2b2608b
--- /dev/null
+++ b/reports/data/hexrcf-source-identity/captures/section-overflow.json
@@ -0,0 +1,704 @@
+[
+ {
+ "label": "desktop",
+ "width": 1440,
+ "targets": [
+ {
+ "tag": "P",
+ "text": "\n RootQuote.quote accepts a Lean\nexpression for an Except ε α replay reader, including structured errors. It returns the reconstructed\ndata and",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A scalar decoder may propose an equality for the exact demanded decode. The\nhelper checks its type, dependencies and kernel proof before usin",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For example, this helper continues a request's existing budget and returns the\nupdated usage together with the checked equation:",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSuppliedRoot\n (reader : Expr)\n (scalar : RootQuote.Decoder",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Quotation follows the representative of a closed quotient when selecting\nreducibility boundaries. This lets a formula polynomial stored in a ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF in\nexample :\n QuotientQuote.reader = some 7 :=\n QuotientQuotePublic.accepted\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Its exact 92-node budget succeeds, one node less exhausts, and a wrong term\ncount rejects. The controls check caller-state restoration; a fre",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Tree replay uses its public leaf and split equations before opening the local\nnode checks. Keeping that boundary explicit avoids kernel conve",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF in\nexample :\n TreeQuote.splitTrue.toOption =\n some 31 :=\n TreeQuotePublic.split_true\n\nopen Hex.RCF in\nexample :\n TreeQuote.splitFalse.t",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The second reader selects its diagnostic branch; it does not accept the\nchanged certificate. Readers returning an error abort quotation and r",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Checked replay data may occur inside a Boolean condition. Quotation keeps\nclosed helpers whose types mention a protected replay function atta",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Conversion preserves data type arguments while rewriting their Boolean\ncomputations. A helper's type can itself mention another checked repla",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The helper controls cover stored arrays with table-dependent element types and\nfunctions with fixed replay-dependent proof types. Matching an",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RowQuote.decoder reads the\nliteral value of a checked selected-sign row through query, root and operation\ntransports. It uses the row's recor",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteRootRows\n (reader : Expr)\n (scalar : RootQuote.DecoderM)\n ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The row controls check positive, zero, negative and false comparisons, exact\nand one-node-below budgets, wrong-goal proposals and caller rest",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a rational predecessor, RationalQuote.decoder supplies these proposals\nwithout a fixed list of permitted numerators. It recognizes canoni",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteRationalRoot\n (reader registry : Expr)\n (config : Reify.Co",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The registry argument is a Lean expression of type\nHex.RealClosure.BaseContext.Registry. This helper supplies scalar equations;\nit does not r",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The cubic regression reads a\nsupplied replay for X³−3 on the open interval (−8,8). A fresh public consumer\nproves that the accepted descripto",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A reader that rejects its input or replay returns structured invalid-provider\nevidence. Non-readers and unsupported shapes raise terminal exc",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Canonical Element.codec decodes remain protected throughout quotation,\nincluding predecessor decodes with an explicit Element.codec head. Exp",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The original root and rational cases use maxHeartbeats := 12000000 and\nmaxRecDepth := 8192. Scalar, sign-packet, shared, callback/module exam",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n This API does not register a tactic handler or establish complete root coverage.\nThe acceptance equation alone does not authenticate original",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a coefficient in a selected algebraic extension,\nScalarQuote.quote uses the owner's Element.signCodec with supplied checked\nsign facts, t",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Pass the original, fully applied Element.codec expression, retaining its\nimplicit arguments. Reinferring definitionally equal context aliases",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSuppliedScalar\n (codec facts literal : Expr)\n (predecessor",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The monorepo regression imports HexRCF.ScalarQuoteCases. It decodes the\nnonrational coefficient −2√2 in the existing selected positive √2 con",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.SelectedRootTests in\nopen Hex.RCF.ScalarQuoteTests in\nexample :\n Data.original.value restored =\n -2 * Real.sqrt 2 :=\n restored_value\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The fresh audit rechecks 13 reachable quotation-case theorem bodies, including this value\nidentity, with only the standard three axioms and n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Regressions cover continued/exact/exhausted proof budgets, rollback after the\nstrict stage succeeds, missing or mismatched facts, zero withou",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a polynomial over the same selected extension,\nScalarQuote.quotePolyWith\nquotes the coefficient array through its finite sign reader and ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSuppliedPolynomial\n (reader facts : Expr)\n (predecessor : ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The regression polynomial contains two copies of −2√2. The checked original\nreader restores both positions. Its first coefficient has this or",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.SelectedRootTests in\nopen Hex.RCF.SharedQuoteTests in\nexample :\n Data.original.value\n (restored.coeff 0) =\n -2 * Real.sqrt 2 :=\n valu",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The fresh importing audit pins seven reachable theorem bodies and three data\ndefinitions, their actual owner refinement and supplied sign evi",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RootQuote.runWith supplies the transaction for a sequence of quoteWith\nactions. RootQuote.run supplies it for a reader with DecoderM callback",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n This scalar API does not reconstruct provider or predecessor histories,\nproduce missing signs, or install a general source-goal solver. The s",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n ScalarQuote.decoderWith composes checked scalar decoding through several\nselected-field predecessors. Its lookup receives each exact canonica",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSelectedReader\n (reader registry : Expr)\n (factsFor :\n Expr → Reify.Reify",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The two-level regression checks one visit to its selected context followed by\none visit to its selected predecessor. Its lookup adds 19 sourc",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n An ordinary module consumer also runs the callback factory and exports the\nchecked scalar reader equation. Its sign follows from the owner's ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RecursiveScalarPublic in\nexample : restored.sign = 1 := sign\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A fresh importing audit checks the two-level fixture and this public consumer,\nincluding accepted annotated decodes and a charged decline fol",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n ScalarPacket.quoteWith checks a supplied optional sign-packet reader. Its\nprepared context has a checked equality to the original context; a ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSuppliedSignPacket\n (reader prepared same : Expr)\n (predecessor :\n RootQuote.DecoderM) :=",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The regression quotes the parent descriptor and one packet for the polynomial\n−2X at the selected positive square root of 2. The resulting fa",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RealClosure in\nopen Hex.RCF.SelectedRootTests in\nopen Hex.RCF.SignPacketQuote in\nexample :\n Option.map Data.original.value\n (Except.toOption\n ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Quoting the parent and packet in one request consumes 268,798 proof nodes.\nWith the frozen parent and its equality already available, the pac",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The caller still supplies and authenticates the parent history and packet.\nPredecessor arithmetic retains its supplied implementation; this h",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A separate public-module example quotes a packet for X at the selected real\nroot of X³−3. Its context slots retain closed applications of the",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.PublicSignPacket in\nexample :\n coefficientReal =\n Hex.RCF.RootQuoteTests.realRoot :=\n coefficient_value\n\nopen Hex.RCF.PublicSignPacket in\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a dependent match, quotation moves trailing branch-equality proofs along\nthe checked equation for the match's subject. This uses ordinary",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF in\nexample :\n DependentQuote.continuedFunction =\n some 29 :=\n ProofFunctionPublic.continued\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n During replay-law\nconversion, an explicit checked function boundary is first kept abstract, then instantiated\nwith the actual function and it",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RootHeader.quoteWith\naccepts the complete original RootReplay.readDescriptor application. It quotes\nthat reader, obtains the independently pa",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The public regression constructs a new root and context from that result,\nquotes the sign packet for X with fully numerical graph fields, and",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RootHeaderPacket in\nexample : coefficientReal = realRoot :=\n coefficient_value\n\nopen Hex.RCF.RootHeaderPacket in\nexample : 0 < coefficientReal :=\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The fresh importing audit includes the generated binding, packet reader,\ncoefficient decoding and real-value proofs. It rejects dependencies ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The default quotation rules recognize Signature.codec.decode applied to the\ncanonical encoding of its actual signature argument, using the ex",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.FrozenSignature in\nexample : readFirst.toOption =\n some first :=\n readFirst_checked\n\nopen Hex.RCF.FrozenSignature in\nexample : readSecond.toOpt",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The cubic packet retains frozen numerical node and nested-moment signatures\nfor its rational predecessor. A signature's serialization identit",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RootContext.packWith\nthen assembles an actual native root context from a closed retained parent and\nits checked descriptor. It keeps the exis",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The same decoded coefficient can be interpreted through the owner's ordinary\nreal model of the packed context, retaining its selected value a",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF in\nopen RootContextCases in\nopen RootHeaderPacket in\nexample : model.value coefficient =\n realRoot :=\n value_checked\n\nopen Hex.RCF in\nopen Root",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The packing budget covers context and signature proof construction. Model\nconstruction is checked separately; its cost is not included in tha",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RootPrepare.prepareWith\nprepares the native context of a reconstructed descriptor for subsequent\nquotation. It checks closed inputs and the e",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.RCF.RealCoefficients in\nmeta def prepareRootContext\n (reader clean : Expr)\n (scalar : RootQuote.DecoderM) :\n Reif",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Run this action and subsequent quotation in one RootQuote.runWith request.\nCombine its decoder with the exact predecessor's scalar and signat",
+ "overflow": 0
+ }
+ ]
+ },
+ {
+ "label": "narrow",
+ "width": 390,
+ "targets": [
+ {
+ "tag": "P",
+ "text": "\n RootQuote.quote accepts a Lean\nexpression for an Except ε α replay reader, including structured errors. It returns the reconstructed\ndata and",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A scalar decoder may propose an equality for the exact demanded decode. The\nhelper checks its type, dependencies and kernel proof before usin",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For example, this helper continues a request's existing budget and returns the\nupdated usage together with the checked equation:",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSuppliedRoot\n (reader : Expr)\n (scalar : RootQuote.Decoder",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Quotation follows the representative of a closed quotient when selecting\nreducibility boundaries. This lets a formula polynomial stored in a ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF in\nexample :\n QuotientQuote.reader = some 7 :=\n QuotientQuotePublic.accepted\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Its exact 92-node budget succeeds, one node less exhausts, and a wrong term\ncount rejects. The controls check caller-state restoration; a fre",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Tree replay uses its public leaf and split equations before opening the local\nnode checks. Keeping that boundary explicit avoids kernel conve",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF in\nexample :\n TreeQuote.splitTrue.toOption =\n some 31 :=\n TreeQuotePublic.split_true\n\nopen Hex.RCF in\nexample :\n TreeQuote.splitFalse.t",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The second reader selects its diagnostic branch; it does not accept the\nchanged certificate. Readers returning an error abort quotation and r",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Checked replay data may occur inside a Boolean condition. Quotation keeps\nclosed helpers whose types mention a protected replay function atta",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Conversion preserves data type arguments while rewriting their Boolean\ncomputations. A helper's type can itself mention another checked repla",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The helper controls cover stored arrays with table-dependent element types and\nfunctions with fixed replay-dependent proof types. Matching an",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RowQuote.decoder reads the\nliteral value of a checked selected-sign row through query, root and operation\ntransports. It uses the row's recor",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteRootRows\n (reader : Expr)\n (scalar : RootQuote.DecoderM)\n ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The row controls check positive, zero, negative and false comparisons, exact\nand one-node-below budgets, wrong-goal proposals and caller rest",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a rational predecessor, RationalQuote.decoder supplies these proposals\nwithout a fixed list of permitted numerators. It recognizes canoni",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteRationalRoot\n (reader registry : Expr)\n (config : Reify.Co",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The registry argument is a Lean expression of type\nHex.RealClosure.BaseContext.Registry. This helper supplies scalar equations;\nit does not r",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The cubic regression reads a\nsupplied replay for X³−3 on the open interval (−8,8). A fresh public consumer\nproves that the accepted descripto",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A reader that rejects its input or replay returns structured invalid-provider\nevidence. Non-readers and unsupported shapes raise terminal exc",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Canonical Element.codec decodes remain protected throughout quotation,\nincluding predecessor decodes with an explicit Element.codec head. Exp",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The original root and rational cases use maxHeartbeats := 12000000 and\nmaxRecDepth := 8192. Scalar, sign-packet, shared, callback/module exam",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n This API does not register a tactic handler or establish complete root coverage.\nThe acceptance equation alone does not authenticate original",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a coefficient in a selected algebraic extension,\nScalarQuote.quote uses the owner's Element.signCodec with supplied checked\nsign facts, t",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Pass the original, fully applied Element.codec expression, retaining its\nimplicit arguments. Reinferring definitionally equal context aliases",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSuppliedScalar\n (codec facts literal : Expr)\n (predecessor",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The monorepo regression imports HexRCF.ScalarQuoteCases. It decodes the\nnonrational coefficient −2√2 in the existing selected positive √2 con",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.SelectedRootTests in\nopen Hex.RCF.ScalarQuoteTests in\nexample :\n Data.original.value restored =\n -2 * Real.sqrt 2 :=\n restored_value\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The fresh audit rechecks 13 reachable quotation-case theorem bodies, including this value\nidentity, with only the standard three axioms and n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Regressions cover continued/exact/exhausted proof budgets, rollback after the\nstrict stage succeeds, missing or mismatched facts, zero withou",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a polynomial over the same selected extension,\nScalarQuote.quotePolyWith\nquotes the coefficient array through its finite sign reader and ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSuppliedPolynomial\n (reader facts : Expr)\n (predecessor : ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The regression polynomial contains two copies of −2√2. The checked original\nreader restores both positions. Its first coefficient has this or",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.SelectedRootTests in\nopen Hex.RCF.SharedQuoteTests in\nexample :\n Data.original.value\n (restored.coeff 0) =\n -2 * Real.sqrt 2 :=\n valu",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The fresh importing audit pins seven reachable theorem bodies and three data\ndefinitions, their actual owner refinement and supplied sign evi",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RootQuote.runWith supplies the transaction for a sequence of quoteWith\nactions. RootQuote.run supplies it for a reader with DecoderM callback",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n This scalar API does not reconstruct provider or predecessor histories,\nproduce missing signs, or install a general source-goal solver. The s",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n ScalarQuote.decoderWith composes checked scalar decoding through several\nselected-field predecessors. Its lookup receives each exact canonica",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSelectedReader\n (reader registry : Expr)\n (factsFor :\n Expr → Reify.Reify",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The two-level regression checks one visit to its selected context followed by\none visit to its selected predecessor. Its lookup adds 19 sourc",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n An ordinary module consumer also runs the callback factory and exports the\nchecked scalar reader equation. Its sign follows from the owner's ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RecursiveScalarPublic in\nexample : restored.sign = 1 := sign\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A fresh importing audit checks the two-level fixture and this public consumer,\nincluding accepted annotated decodes and a charged decline fol",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n ScalarPacket.quoteWith checks a supplied optional sign-packet reader. Its\nprepared context has a checked equality to the original context; a ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSuppliedSignPacket\n (reader prepared same : Expr)\n (predecessor :\n RootQuote.DecoderM) :=",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The regression quotes the parent descriptor and one packet for the polynomial\n−2X at the selected positive square root of 2. The resulting fa",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RealClosure in\nopen Hex.RCF.SelectedRootTests in\nopen Hex.RCF.SignPacketQuote in\nexample :\n Option.map Data.original.value\n (Except.toOption\n ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Quoting the parent and packet in one request consumes 268,798 proof nodes.\nWith the frozen parent and its equality already available, the pac",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The caller still supplies and authenticates the parent history and packet.\nPredecessor arithmetic retains its supplied implementation; this h",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A separate public-module example quotes a packet for X at the selected real\nroot of X³−3. Its context slots retain closed applications of the",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.PublicSignPacket in\nexample :\n coefficientReal =\n Hex.RCF.RootQuoteTests.realRoot :=\n coefficient_value\n\nopen Hex.RCF.PublicSignPacket in\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a dependent match, quotation moves trailing branch-equality proofs along\nthe checked equation for the match's subject. This uses ordinary",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF in\nexample :\n DependentQuote.continuedFunction =\n some 29 :=\n ProofFunctionPublic.continued\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n During replay-law\nconversion, an explicit checked function boundary is first kept abstract, then instantiated\nwith the actual function and it",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RootHeader.quoteWith\naccepts the complete original RootReplay.readDescriptor application. It quotes\nthat reader, obtains the independently pa",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The public regression constructs a new root and context from that result,\nquotes the sign packet for X with fully numerical graph fields, and",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RootHeaderPacket in\nexample : coefficientReal = realRoot :=\n coefficient_value\n\nopen Hex.RCF.RootHeaderPacket in\nexample : 0 < coefficientReal :=\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The fresh importing audit includes the generated binding, packet reader,\ncoefficient decoding and real-value proofs. It rejects dependencies ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The default quotation rules recognize Signature.codec.decode applied to the\ncanonical encoding of its actual signature argument, using the ex",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.FrozenSignature in\nexample : readFirst.toOption =\n some first :=\n readFirst_checked\n\nopen Hex.RCF.FrozenSignature in\nexample : readSecond.toOpt",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The cubic packet retains frozen numerical node and nested-moment signatures\nfor its rational predecessor. A signature's serialization identit",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RootContext.packWith\nthen assembles an actual native root context from a closed retained parent and\nits checked descriptor. It keeps the exis",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The same decoded coefficient can be interpreted through the owner's ordinary\nreal model of the packed context, retaining its selected value a",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF in\nopen RootContextCases in\nopen RootHeaderPacket in\nexample : model.value coefficient =\n realRoot :=\n value_checked\n\nopen Hex.RCF in\nopen Root",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The packing budget covers context and signature proof construction. Model\nconstruction is checked separately; its cost is not included in tha",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RootPrepare.prepareWith\nprepares the native context of a reconstructed descriptor for subsequent\nquotation. It checks closed inputs and the e",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.RCF.RealCoefficients in\nmeta def prepareRootContext\n (reader clean : Expr)\n (scalar : RootQuote.DecoderM) :\n Reif",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Run this action and subsequent quotation in one RootQuote.runWith request.\nCombine its decoder with the exact predecessor's scalar and signat",
+ "overflow": 0
+ }
+ ]
+ }
+]
\ No newline at end of file
diff --git a/reports/data/hexrcf-source-identity/captures/source-identity-final-desktop-api.png b/reports/data/hexrcf-source-identity/captures/source-identity-final-desktop-api.png
new file mode 100644
index 0000000000..98072e5dff
Binary files /dev/null and b/reports/data/hexrcf-source-identity/captures/source-identity-final-desktop-api.png differ
diff --git a/reports/data/hexrcf-source-identity/captures/source-identity-final-desktop-apicode.png b/reports/data/hexrcf-source-identity/captures/source-identity-final-desktop-apicode.png
new file mode 100644
index 0000000000..a9b337b92d
Binary files /dev/null and b/reports/data/hexrcf-source-identity/captures/source-identity-final-desktop-apicode.png differ
diff --git a/reports/data/hexrcf-source-identity/captures/source-identity-final-desktop-controls.png b/reports/data/hexrcf-source-identity/captures/source-identity-final-desktop-controls.png
new file mode 100644
index 0000000000..4d8f067cce
Binary files /dev/null and b/reports/data/hexrcf-source-identity/captures/source-identity-final-desktop-controls.png differ
diff --git a/reports/data/hexrcf-source-identity/captures/source-identity-final-desktop-limits.png b/reports/data/hexrcf-source-identity/captures/source-identity-final-desktop-limits.png
new file mode 100644
index 0000000000..f0ee5884db
Binary files /dev/null and b/reports/data/hexrcf-source-identity/captures/source-identity-final-desktop-limits.png differ
diff --git a/reports/data/hexrcf-source-identity/captures/source-identity-final-desktop-source.png b/reports/data/hexrcf-source-identity/captures/source-identity-final-desktop-source.png
new file mode 100644
index 0000000000..a3e6188573
Binary files /dev/null and b/reports/data/hexrcf-source-identity/captures/source-identity-final-desktop-source.png differ
diff --git a/reports/data/hexrcf-source-identity/captures/source-identity-final-desktop-sourcecode.png b/reports/data/hexrcf-source-identity/captures/source-identity-final-desktop-sourcecode.png
new file mode 100644
index 0000000000..68e227b754
Binary files /dev/null and b/reports/data/hexrcf-source-identity/captures/source-identity-final-desktop-sourcecode.png differ
diff --git a/reports/data/hexrcf-source-identity/captures/source-identity-final-narrow-api.png b/reports/data/hexrcf-source-identity/captures/source-identity-final-narrow-api.png
new file mode 100644
index 0000000000..7ff1d1a3a9
Binary files /dev/null and b/reports/data/hexrcf-source-identity/captures/source-identity-final-narrow-api.png differ
diff --git a/reports/data/hexrcf-source-identity/captures/source-identity-final-narrow-apicode.png b/reports/data/hexrcf-source-identity/captures/source-identity-final-narrow-apicode.png
new file mode 100644
index 0000000000..4fb260240f
Binary files /dev/null and b/reports/data/hexrcf-source-identity/captures/source-identity-final-narrow-apicode.png differ
diff --git a/reports/data/hexrcf-source-identity/captures/source-identity-final-narrow-controls.png b/reports/data/hexrcf-source-identity/captures/source-identity-final-narrow-controls.png
new file mode 100644
index 0000000000..8d5811d1b6
Binary files /dev/null and b/reports/data/hexrcf-source-identity/captures/source-identity-final-narrow-controls.png differ
diff --git a/reports/data/hexrcf-source-identity/captures/source-identity-final-narrow-limits.png b/reports/data/hexrcf-source-identity/captures/source-identity-final-narrow-limits.png
new file mode 100644
index 0000000000..40cb980274
Binary files /dev/null and b/reports/data/hexrcf-source-identity/captures/source-identity-final-narrow-limits.png differ
diff --git a/reports/data/hexrcf-source-identity/captures/source-identity-final-narrow-source.png b/reports/data/hexrcf-source-identity/captures/source-identity-final-narrow-source.png
new file mode 100644
index 0000000000..9cd9952a5e
Binary files /dev/null and b/reports/data/hexrcf-source-identity/captures/source-identity-final-narrow-source.png differ
diff --git a/reports/data/hexrcf-source-identity/captures/source-identity-final-narrow-sourcecode.png b/reports/data/hexrcf-source-identity/captures/source-identity-final-narrow-sourcecode.png
new file mode 100644
index 0000000000..33b1d194cf
Binary files /dev/null and b/reports/data/hexrcf-source-identity/captures/source-identity-final-narrow-sourcecode.png differ
diff --git a/reports/data/hexrcf-source-identity/captures/visual-review.json b/reports/data/hexrcf-source-identity/captures/visual-review.json
new file mode 100644
index 0000000000..742622a764
--- /dev/null
+++ b/reports/data/hexrcf-source-identity/captures/visual-review.json
@@ -0,0 +1,65 @@
+{
+ "captures": [
+ {
+ "path": "captures/source-identity-final-desktop-api.png",
+ "sha256": "67a5d3da3538750787d651c78df10310982ace4eacdeebe1a7cfe76c73b8353d",
+ "viewed": true
+ },
+ {
+ "path": "captures/source-identity-final-desktop-apicode.png",
+ "sha256": "9c3c0a0e73cd5ef069311570fdde3cb98cbcf9ee8e2da472856845bca1ba9d4f",
+ "viewed": true
+ },
+ {
+ "path": "captures/source-identity-final-desktop-controls.png",
+ "sha256": "fd266150763bb493d43f94832078528c31a2f2d3ee42ca58782601d61bd600e1",
+ "viewed": true
+ },
+ {
+ "path": "captures/source-identity-final-desktop-limits.png",
+ "sha256": "80a62b895459a0cb058c4393cce0a681104a08cd2ed0ac477a0e2531e3ce53bd",
+ "viewed": true
+ },
+ {
+ "path": "captures/source-identity-final-desktop-source.png",
+ "sha256": "1f057a94992b478650fc0cad404174bdfd12966568bdfa83072b5f3ea3a7644a",
+ "viewed": true
+ },
+ {
+ "path": "captures/source-identity-final-desktop-sourcecode.png",
+ "sha256": "a038519ad765bd5f7b49b292c34e339002ac9d44e83fb11dd268488ab48595e6",
+ "viewed": true
+ },
+ {
+ "path": "captures/source-identity-final-narrow-api.png",
+ "sha256": "910cdf5010e8f280a25ebcaeaaf8a72d221e0982657464b51ff24b789de26a4c",
+ "viewed": true
+ },
+ {
+ "path": "captures/source-identity-final-narrow-apicode.png",
+ "sha256": "2568a1e72107df10419035e47b74376e78895f45b39c13a4053a89269736eb76",
+ "viewed": true
+ },
+ {
+ "path": "captures/source-identity-final-narrow-controls.png",
+ "sha256": "3616f0390c227d0cbb379f7a95ae0608927b645a29c29ba361a4b524b03094f5",
+ "viewed": true
+ },
+ {
+ "path": "captures/source-identity-final-narrow-limits.png",
+ "sha256": "41d13aa41a3acfe555445d5ac00f0c53a9a329b53df476a7065ede80f3e5d360",
+ "viewed": true
+ },
+ {
+ "path": "captures/source-identity-final-narrow-source.png",
+ "sha256": "f40303dec607306f52293b015fcd2b1ec843cc82c7b211108bf4b20f10592be2",
+ "viewed": true
+ },
+ {
+ "path": "captures/source-identity-final-narrow-sourcecode.png",
+ "sha256": "50e2fd082b930d377d21b3e32023c50fbda2e9a0febc4e921441470ae82f46ad",
+ "viewed": true
+ }
+ ],
+ "finding": "All twelve final desktop/narrow captures actually inspected. Changed prose and code are readable and locally contained. Existing unrelated page overflow remains outside this change."
+}
diff --git a/reports/data/hexrcf-source-identity/context.json b/reports/data/hexrcf-source-identity/context.json
new file mode 100644
index 0000000000..9cac465cd9
--- /dev/null
+++ b/reports/data/hexrcf-source-identity/context.json
@@ -0,0 +1,1331 @@
+{
+ "source_commit": "a4b44be2efdba00c6b40f7b932db40d1c44beb27",
+ "source_tree": "2bfd2c0edfa1481b03d0558aeec7a4415dbb3fb2",
+ "baseline_commit": "372368f8a52882855dbefc7cc1df5b0b1feca062",
+ "unchanged_guards": [
+ "conformance/HexRCF/SelectedRoot/KernelCheck.lean",
+ "experiments/KernelReplay/AxiomClosure.lean",
+ "AGENTS.md",
+ "PLAN.md",
+ ".github/workflows/ci.yml"
+ ],
+ "sources": {
+ ".github/workflows/ci.yml": "5db61a70eb52d7478994377179c1b35b360a794fcff4b1c257496b5a6394231c",
+ "AGENTS.md": "4e0a48cf49a61e56ed84c8b28e232b5bfad29f2da20571377692be6e1c316f30",
+ "HexManual/Chapters/HexRCF/AlgebraicCells.lean": "565a7c8674784d789700f9b355925cc8d13d635b04186f26816f692a78daa586",
+ "HexManual/Chapters/HexRCF/RootQuote.lean": "0fe7ecb8568a5b3492aeea8310a4816797802d0a764093b824673a635ecf628a",
+ "HexManual/Chapters/HexRCF/RootTableQuote.lean": "78d1be637a32593b03f000ab153c7fdf05a1b5332ea3efb9c186aacfd68f0ae5",
+ "HexRCF/README.md": "3830d758a8a75d59df1a6dd01f59204a86858b5eda3e43a78f9e9e9c2d769a8a",
+ "HexRCF/SPEC/hex-rcf.md": "df8c6bb2435a2794faa36bc77e41f4c936f06ae149f29c3e68fe0d79f4ebfafb",
+ "HexRCF/Tactic.lean": "09d895ba1dd2c1af0bfffca197494f2614380ded268ff13e4e0b02fea22b9224",
+ "HexRealClosure/Algebraic.lean": "d05f9fb72fe9544ae9ddc685dff17080f876aa4c99c70e8992d511e011f6a454",
+ "HexRealClosure/ContextData.lean": "ca29790752b8d25f10d03a9877690a5ff40f1fdf6815c96fe9693941206e662c",
+ "HexRealClosure/SignCodec.lean": "7126323c97b77204386795a0f252f1babfd0ed7f3dba7ee3927a99b9d5c1852a",
+ "HexRealClosure/SignFacts.lean": "9c22837e93e6f50cc96310163e352ac608fbcfbd6275edab33751da2fd84f47c",
+ "HexRealClosure/SignatureCodecTests.lean": "ffc72777523ac0e92b563481804bdfb581fb0173fe7a021009737d57959b4462",
+ "HexRealClosure/TowerContext.lean": "6ef8b87b2d81cb177505a4bbc88befa078b20578cedd49e836d850753c203ee3",
+ "PLAN.md": "e94a60324486913b4a04650edd617c4ff8bef469dc7fd311adea8407c6662ea0",
+ "SPEC/real-closure-execution.md": "bc0948ad7de6969baaed89c0b3052cb0d21d64d634f8a336f9a7dde446b057f5",
+ "adapters/HexRCF/RealCoefficients.lean": "0056d497cd09f465ce44102b6a80b42fa3be35f46e60208179a5473447e7e1b5",
+ "adapters/HexRCF/RealCoefficients/CellOperations.lean": "3561cc80c7c866141f05a387ce1100ee0cadd98281a03395551cebcde5bd6e2a",
+ "adapters/HexRCF/RealCoefficients/CellQuote.lean": "618edb72b0f175cdb9d528919f46c3a7613d0b1ab69fc9640c29a9a4669baf3e",
+ "adapters/HexRCF/RealCoefficients/CellRead.lean": "65274f89c940bad74eab8c9075f9256c6ed3d8b90d3294aec4e85883e425fb10",
+ "adapters/HexRCF/RealCoefficients/RationalQuote.lean": "675e2ba065b696f257adefc07fe30ddb0190f321d86005444579ea5a0744bdf5",
+ "adapters/HexRCF/RealCoefficients/RealModel.lean": "712b4fd3edff8eaa6f93e501da5debf04529d1ea8c11a18389820f866d179c43",
+ "adapters/HexRCF/RealCoefficients/Reify.lean": "ea8474b9e253f93a1583064ca99ec0bf376dadf5457fd60b57e9e18460cf449c",
+ "adapters/HexRCF/RealCoefficients/RootContext.lean": "792176eab63e5e62b759a10893569946ef6d019566b8116c85237b3e16fcdb86",
+ "adapters/HexRCF/RealCoefficients/RootHeader.lean": "681f2a964bc30f65a92a0fb1a58b4d4013eb396df37ca813962702065fb46261",
+ "adapters/HexRCF/RealCoefficients/RootPrepare.lean": "de72a8e3ac4adb13365801476467bf691e630d0952b018ccecd88846c3bdb025",
+ "adapters/HexRCF/RealCoefficients/RootQuote.lean": "89f3ad4b0c4a8ae058560201900877035d896427176b944b34acde9f9b23d7e8",
+ "adapters/HexRCF/RealCoefficients/RowPacketQuote.lean": "edbb3d23f72422f5a1dea163c283848ec285418b7bdb9eedba553b83066121af",
+ "adapters/HexRCF/RealCoefficients/RowQuote.lean": "3b7e7d2ebcbd53a6ea893bc8f4c884d767430f8b98a3f1ca770fe7c7b122f3c9",
+ "adapters/HexRCF/RealCoefficients/ScalarPacket.lean": "9ae62bea85dab43ec01329defa9f788af4843e74b24f40f6c6f1b28adaadc6bf",
+ "adapters/HexRCF/RealCoefficients/ScalarQuote.lean": "fee2617a998f29d05c8959b484060ac1d719359c6d851a8ff6699fa9cb370acc",
+ "adapters/HexRCF/RealCoefficients/SignatureQuote.lean": "c3bb71b52c2a544b902bc256b3a162e1c3c4e7f94ae6b21808914e67109710eb",
+ "adapters/HexRCF/RealCoefficients/SourceIdentity.lean": "d98ae0c746003be89edfc969e464383e6a6bda253e0dae8c290605e8b98ce3c3",
+ "adapters/HexRCF/RealCoefficients/SourceIdentityQuote.lean": "37c54a56f48b265d0ddca38ecae2c572871e8b7f1600b54f330ff3da60252fa7",
+ "adapters/HexRealClosureTheory/Algebraic.lean": "2495153acbe4e468521913a2f5d6569831cd05f5ee48d5ddb26fc31a43438c7e",
+ "adapters/HexRealClosureTheory/SignFacts.lean": "c2b8cf96de0cccc2c0c3cbe83f0afd7c40ab9736b75f377ec5bfedc0907f34e3",
+ "adapters/HexRealClosureTheory/TowerModel.lean": "70d0e57e8ecc78eb9b7675d875157462d27cf9494d49d72bba019eaa6dd1d788",
+ "conformance-fixtures/HexRCF/source-identity.json": "93540b60174e0d8bd85ca80d99c6cbdc427815f341a12a6e38f4b38613073f53",
+ "conformance/HexRCF/CellQuoteStageProofs.lean": "e4b52419e3409001df535a9ed4bae1f66d977fb33d507ff6c79f787a9f1f7f11",
+ "conformance/HexRCF/CellQuoteStages.lean": "e4593f2c8169af00398ff608dd53cbbfbe6b8408ddbdd07de6f64f59acf8a25f",
+ "conformance/HexRCF/CellSourceProofs.lean": "35e49b8a3fa75a12953653eadf40fc5613279979f584f1a8bffc2c0f1010d9e2",
+ "conformance/HexRCF/CellSourceQuote.lean": "95e880baefca653d66f4ea0f9cf7a80f0dcda643a1aa8c06a944472f805d5dca",
+ "conformance/HexRCF/DependentQuote.lean": "0df154544a17857334480e7c577ecbcf1afe04165fa2da1a5a6407bf41e85518",
+ "conformance/HexRCF/DependentQuoteData.lean": "ed254475e78fa6edb27d4e55222a598b07b7357154ea0495d6195f2f1d39ee46",
+ "conformance/HexRCF/DependentQuoteProofs.lean": "5875aa9748f50340668e58aea97b196d3353313352fb8c819ae5ee3542556980",
+ "conformance/HexRCF/DependentScalarProofs.lean": "9fe3f3871f929e28355985c574c0b8c742be062ae5f19033d7d8bf9e67cd88d8",
+ "conformance/HexRCF/DependentScalarQuote.lean": "e20dd7346c337dd17126c394965f268e568706730f475844d7c0907051224933",
+ "conformance/HexRCF/FrozenSignatureConformance.lean": "8e7d432aecb87fb89bb188e4c579e86fb5c3348c5430f1e2b1a00f1f820a940e",
+ "conformance/HexRCF/FrozenSignatureProofs.lean": "55de6da9b0b3dc2d1e384d6c838d13294287c44060afb8e70aa2a0c8e01a81cb",
+ "conformance/HexRCF/ProofFunctionPublic.lean": "f928c9f0dd0a704d34a516b6282cfa6a7a4eb6c112d49689c450647a44370a6b",
+ "conformance/HexRCF/PublicSignPacket.lean": "c32d73c5634376907b965e1ea6cf69352fdda1f1945ce2f34a378cc217778102",
+ "conformance/HexRCF/PublicSignPacketControls.lean": "b4f98bd8ef190a361dd7752d4d5ece0cfbd862ff4face5a06dfabecf87096028",
+ "conformance/HexRCF/PublicSignPacketProofs.lean": "442f6d3e04a36db25611f0396103a1eee5ee411c40e8f3cc93df1acf7898bbbb",
+ "conformance/HexRCF/PublicSignPacketValues.lean": "72705dba30f04f986188903fb49b983c6f0a664895116fca8bd8b6b46b6517e5",
+ "conformance/HexRCF/QuotientQuote.lean": "97b2cbc9abdb46db33a9a91328f331edf8dea055cc244489158121cde8dc1903",
+ "conformance/HexRCF/QuotientQuoteData.lean": "ec26777d655a7898d7f7922fcea8f426a3f8c77a53000b69b6fe1755a0348870",
+ "conformance/HexRCF/QuotientQuoteProofs.lean": "f1d95accf6caed1c7354408b3a1a0b29493a526e82036390e39102ebe80c6752",
+ "conformance/HexRCF/QuotientQuotePublic.lean": "a3bd9a082df14a0ac93ba3798e13c6ebbf9dff98d7613264713aa281a5a18bea",
+ "conformance/HexRCF/RationalQuoteConformance.lean": "f03844d4a44a5c61b702ed0b1697619da9b20f4ac42122b9d1a6d3fa4a2de9ac",
+ "conformance/HexRCF/RecursiveScalarQuote.lean": "83ba1f3ed63afdbb148f171736a0aacebc7eef4ae3bf32dca29811515c3f051b",
+ "conformance/HexRCF/ReplayBoundary.lean": "bbc09553d62198a18e897981d5f443c81f09dba8d371d2cdaeaa846d22cbc2f8",
+ "conformance/HexRCF/ReplayBoundaryProofs.lean": "d755462a7344dc9f5304fba255bcefb42188c1de5a51d92d8567a27f22482dc2",
+ "conformance/HexRCF/ReplayHelperProofs.lean": "6dd68829399ec8908a877a3f7705cc9321e49b9581d0d577d114950242e43a57",
+ "conformance/HexRCF/ReplayHelpers.lean": "4501fa39e52a8a2bb52fdd7b183c16801090dd026304105afb4342a1c441c2a3",
+ "conformance/HexRCF/RootContextConformance.lean": "0c52084609ec3de8afd51330a7d2cc97f7bae1d8b2bbc421138783940fc7db37",
+ "conformance/HexRCF/RootContextProofs.lean": "b4c2e3ce686ce8bc60bfdafe2be2f566c6de46758f4827d307f3d5592b59d2e9",
+ "conformance/HexRCF/RootHeaderBudget.lean": "db30b6b7781fabd238ea2c934477e5ae281cc6cd905f11848ce46eb66ef45fe0",
+ "conformance/HexRCF/RootHeaderControls.lean": "aca063af3bfe475166aef92193f162c25a0e53eea094087cf334406a3d513157",
+ "conformance/HexRCF/RootHeaderPacket.lean": "dcd8e63c1d656fc800690b35554a0f835a1ee0bb96312215f8c12348d8a0e79a",
+ "conformance/HexRCF/RootHeaderProofs.lean": "e6630f0464fd0096b9af74b4640d2abc514a62c0b0fc706b4a2e74c9602eeb8c",
+ "conformance/HexRCF/RootHeaderValues.lean": "de9a8fc7c2e9371cbd3324eb700180411e49865dbc6535a74d2c882f74e38e13",
+ "conformance/HexRCF/RootPrepareControls.lean": "b36af8efd1e12227188b6fb7bde258e80d5c1c874338a324cb53c5ccc6c1330f",
+ "conformance/HexRCF/RootPreparePacket.lean": "86185bcc5fdddb1f700d869a115a91034954714f69a83171fd0e96f601e76fe3",
+ "conformance/HexRCF/RootPrepareProofs.lean": "4a5bc6655576a6592fcd5cd801bcfebd425243b1bb6cb39b0bb46d500a3938be",
+ "conformance/HexRCF/RootPreparePublic.lean": "a9e09cbe8d1287b97dde71ad1c6dbe149cfbacb6f81f41a8493ee802416d0805",
+ "conformance/HexRCF/RootQuoteCases.lean": "602d15ef501e969183bffbda7fb3c0f00a174ba5c2dbc35370ee7fce896944dd",
+ "conformance/HexRCF/RootQuoteConformance.lean": "f6a652a243ba62cffc671d1365c6ab47b6618179acb172019ec5609ea0324d3c",
+ "conformance/HexRCF/RootQuoteData.lean": "faa259d129d5c65a063c7143e45d5d9d19573ed49862aa5ecb3978ff389cb514",
+ "conformance/HexRCF/RootQuoteSource.lean": "aca1654efc1a452aca8ef573bb8ea3a435a4e1e18a4dca854d9bcc8e350d511d",
+ "conformance/HexRCF/RootTableQuote/Conformance.lean": "ec5bd136df58cc24a40ca989e3d33e55923082aed7591b234f55c70c013c74ad",
+ "conformance/HexRCF/RowPacketControls.lean": "ab69c57b66fe8129be5f07e5e5f42b7b35d60a23b305ec224d2d7dca28ac7c82",
+ "conformance/HexRCF/RowQuoteCases.lean": "8d2ebddc05d5f0d08b62b50d3498b34b47ab0b3accc4d0a572e621fd83d606d4",
+ "conformance/HexRCF/RowQuoteData.lean": "ce60cb18f548f55e929d4803c7ed824ad0a7621fd4abda09a191f76393fabf0c",
+ "conformance/HexRCF/RowQuoteDepth.lean": "6ada3c44bea055425d223dc57eafb4f0c88349713d815ded4beec9720f7802ad",
+ "conformance/HexRCF/RowQuoteProofs.lean": "317d4f981f32bb28666fcabc6248f4a57fe67c95a7fe431f7993aeacfa377ed3",
+ "conformance/HexRCF/SelectedRoot/KernelCheck.lean": "12e7e2e3f4667a76dc89c4b36796bff177f3c187b81adc5eb5e049ff1ce6669d",
+ "conformance/HexRCF/SharedQuoteCallbacks.lean": "6132cc3722af3cf251d11c857a572f09128d3614d931724965cbcf488dc4db6d",
+ "conformance/HexRCF/SignPacketProofs.lean": "3980cad31637f5798b2c351e1efc2a29b946de1d90e06fb11acd85e2a5c46321",
+ "conformance/HexRCF/SignPacketQuote.lean": "fcda11e6c75353d4519c4eb0e9c302b84d7e41030316c99fcacb885dabf97545",
+ "conformance/HexRCF/SignatureQuoteConformance.lean": "26f16c37cb9e0d5c09a082787f4a66673437adbf998023fd5e9625db16ff5d3f",
+ "conformance/HexRCF/SourceIdentityControls.lean": "2307f11955b8459156d8171ded5f74b1102d281963354609895203b001cec3a8",
+ "conformance/HexRCF/SourceIdentityEmit.lean": "aa12f1517efc675698c0795c5a463a77d7a3466bcc146d4981d82e913059ed99",
+ "conformance/HexRCF/SourceIdentityLiterals.lean": "61ee2ce703d4965b00e1e20cc62288a0bde4e839d68ca09e1b66281f4a3e48d0",
+ "conformance/HexRCF/SourceIdentityPacket.lean": "11fe3cc66c57300e3ead6b0446b509075fd9ef0190207d479408f9194c10e1a4",
+ "conformance/HexRCF/SourceIdentityProofs.lean": "c449238d5f915dbe1f337688bc4f7357f3a93e31ad79eaa9e8e159c280749173",
+ "conformance/HexRCF/SourceSelectionCases.lean": "368ded3f07bb4be269f26a2fd2b7044904ea16d1dd1cba41d8bccb373d004005",
+ "conformance/HexRCF/TreeQuote.lean": "049065aa64bb13432b1d7183759979d28eebba98d18b6f54ab849e5953ce92c1",
+ "conformance/HexRCF/TreeQuoteData.lean": "c595c2278d2997483b755aa585da874c27eed40e4e1a8106d7f553e4f574776b",
+ "conformance/HexRCF/TreeQuoteProofs.lean": "f9a40248237480f8972df62dff548ef0599205b76014e070866e72586f161933",
+ "conformance/HexRCF/TreeQuotePublic.lean": "adc6dc6871208f31970cf5ae0c2472fd325a72e1df8114a6e8178ef8b2c71570",
+ "experiments/KernelReplay/AxiomClosure.lean": "f49377265f05f52b633b10a59255a03731e08d022cc54763de9851c5b5325034",
+ "lake-manifest.json": "fd2dc4df30cd44e4d30568489d616e7bcc8a78747500139134be56f35ae746a4",
+ "lakefile.lean": "d6b1ad41605ada0e0b06f3a2425a1fca2a2f7267775f8f5bc188ebaaeb91c22f",
+ "lean-toolchain": "bc84812c94489d1e3e191baa1dc10d5eb684382d7fe9d2a5ab085e72c1c67e47",
+ "libraries.yml": "14e3dd1c01bb0c369b2216e2733378d61172040fd9f69dd0354d4e1267d9c5c1",
+ "scripts/rcf/source_identity_literals.py": "ea5d7df949871c4975367a759b9632d033f3a240523c2c917c9141220ffdfd78"
+ },
+ "artifacts": [
+ {
+ "path": "validation/source-identity-expanded-1.log.gz",
+ "bytes": 29059,
+ "sha256": "26bc89dc2cd53cf0f73bffc106d51584a2bcf7db7ccff06eb1befab4ee781e8d",
+ "uncompressed_sha256": "06a73325e85134a67908aa9faacd6ba97c7961b53aa89448d63bdab67f7e9f57"
+ },
+ {
+ "path": "validation/source-identity-production-1.log.gz",
+ "bytes": 8674,
+ "sha256": "2c5df2dd43525833e42cb5c6f6179e8406e746d5651032e2f8d6727d42e7fb8f",
+ "uncompressed_sha256": "ac0c0f173783983c6f88a8ee9ef4634da8723081115bf653f41e132f0e7774ce"
+ },
+ {
+ "path": "validation/source-identity-render-3.log.gz",
+ "bytes": 16470,
+ "sha256": "53d645fef016591a67c9ffb19f98bcb2ff93833bed5a6f8d8e7ee85d84db2ba1",
+ "uncompressed_sha256": "3461a2c18780a258a2b95dcee46ca4b478fb6900c01a3340bcbfe6d5289df981"
+ },
+ {
+ "path": "validation/source-identity-browser-3.log.gz",
+ "bytes": 241,
+ "sha256": "667699bc2f20fc3363c814a576d1ea35cc4c2675b55fee101fe5dd1e83831050",
+ "uncompressed_sha256": "44f572d156b194f03772a4d6f6d8aae4dece2cae7acaba50cca929bdd0560c66"
+ },
+ {
+ "path": "validation/constructor-check.log.gz",
+ "bytes": 68,
+ "sha256": "167f5ed8596142f3f1d3fdc40daa83c40dd6f4c31c76c0268645b4a297e47a56",
+ "uncompressed_sha256": "1cb7edf63af60166951d629a09a5bbb4f83dbd0c96b0fb9cae237cb1a893a1b1"
+ },
+ {
+ "path": "validation/metadata.json",
+ "bytes": 1218,
+ "sha256": "ef73a28e9177cfd37d80f02cca81ed67b6a64a6cefcf02a169c034a762c6c511"
+ },
+ {
+ "path": "validation/source-identity-final-metadata-copyright.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "validation/source-identity-final-metadata-lines.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "validation/source-identity-final-metadata-dag.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "validation/source-identity-final-metadata-admissions.log.gz",
+ "bytes": 100,
+ "sha256": "a03bc6497f7874bd347cf6ba4b9b9ab91996c92cd706008e36105c28964247c3",
+ "uncompressed_sha256": "11c18f0e4a60afd9aad75ab5d0794a9ff28799aac4c708a482d683f962e9e14f"
+ },
+ {
+ "path": "validation/source-identity-final-metadata-diff.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "validation/source-identity-final-metadata-selected-admissions.log.gz",
+ "bytes": 134,
+ "sha256": "692f71b17cb76d2c5ec5b272fe1c5928ada3ebc7cf0035ae1b14da5227461b83",
+ "uncompressed_sha256": "31db5a22824574355dba74d4441d2e01edf5e3b535b65120fa905c3ebfd0f81e"
+ },
+ {
+ "path": "validation/source-identity-final-metadata-relative.log.gz",
+ "bytes": 105,
+ "sha256": "c43d1ba9fa5a6ea3d05919ed8b5f63ae6d92bdbc66b09a9c0e2db03229da84e9",
+ "uncompressed_sha256": "5b6d65aeb6cb570bc5e9b14d70d6222627b455a17e51016ce5d0bf8c9d5cd4c3"
+ },
+ {
+ "path": "validation/collect-source-identity.py.gz",
+ "bytes": 1861,
+ "sha256": "1b5c2dbb1433d4e09493410cafe73e76511a7a312b424b216c6ce61a105385e6",
+ "uncompressed_sha256": "0b5f95c7cec90727bbefeddeaee9abe0802814c966bfe0f5f574cf65ba6d069a"
+ },
+ {
+ "path": "validation/source-identity-final-metadata.py.gz",
+ "bytes": 1333,
+ "sha256": "feec094c76a8d0f20788f443545358459a54854b1adec864dfe379813c5aab23",
+ "uncompressed_sha256": "20da01074f433d540d61b1e16d7fba0a7ffd5dd2a90cde2b4a45eaa263da6f83"
+ },
+ {
+ "path": "validation/source-identity-expanded-targets.txt.gz",
+ "bytes": 335,
+ "sha256": "356b367965cb5805e5d3fd2d3d36f1ee9a4849378c2bf5c09942eef9e6828477",
+ "uncompressed_sha256": "3b590833b26e529e51f56a204b15fff5676da1e08dad27dd5ece8b6d93bb8883"
+ },
+ {
+ "path": "validation/source-identity-memory-policy.txt.gz",
+ "bytes": 132,
+ "sha256": "baa5ffc0f07830043e97ca4e4503469c894fcedcfda3dfec6a99fa4c791776cd",
+ "uncompressed_sha256": "7d4ccd2bea72975d7bf0b1c9cf944d8c32366ff2ea11af5373003cb2890cbca8"
+ },
+ {
+ "path": "validation/source-identity-expanded-invocation.json.gz",
+ "bytes": 477,
+ "sha256": "93f3cf58155a80ecd725f5c3cefea095f8ff387f86d49129e68d8fa701509906",
+ "uncompressed_sha256": "beb14faf985c9008b4769c9fb88e21c03d67df191b66493089142c932360734a"
+ },
+ {
+ "path": "validation/run-bounded.sh",
+ "bytes": 302,
+ "sha256": "63bc5f97337e6b039bb3a9b1ba2a500be96fd1c2a2f73b43dae284aa9b18dda8"
+ },
+ {
+ "path": "captures/render.lean.txt",
+ "bytes": 215,
+ "sha256": "2b08ffde769c3469be036a2aafbfc65b1a5d5e8d560ccc2a98d907a0c5c54f81"
+ },
+ {
+ "path": "captures/browser.mjs",
+ "bytes": 5941,
+ "sha256": "e34773a3eb8cfad0a2116d48de570a94cc2df41eda3cfd0c9e99ad12fc828bfa"
+ },
+ {
+ "path": "captures/inspection.json",
+ "bytes": 9344,
+ "sha256": "8fa2c62647cffd719a51787023b6c4546e77a9cb3c801f5d2df4ccc27af06f71"
+ },
+ {
+ "path": "captures/section-overflow.json",
+ "bytes": 33290,
+ "sha256": "460d7d18f6abf49cea53de4ca49cee19fe70e1a715c67b010f3e16f49dc27c49"
+ },
+ {
+ "path": "captures/source-identity-final-desktop-api.png",
+ "bytes": 279744,
+ "sha256": "67a5d3da3538750787d651c78df10310982ace4eacdeebe1a7cfe76c73b8353d"
+ },
+ {
+ "path": "captures/source-identity-final-desktop-apicode.png",
+ "bytes": 282216,
+ "sha256": "9c3c0a0e73cd5ef069311570fdde3cb98cbcf9ee8e2da472856845bca1ba9d4f"
+ },
+ {
+ "path": "captures/source-identity-final-desktop-controls.png",
+ "bytes": 283768,
+ "sha256": "fd266150763bb493d43f94832078528c31a2f2d3ee42ca58782601d61bd600e1"
+ },
+ {
+ "path": "captures/source-identity-final-desktop-limits.png",
+ "bytes": 276818,
+ "sha256": "80a62b895459a0cb058c4393cce0a681104a08cd2ed0ac477a0e2531e3ce53bd"
+ },
+ {
+ "path": "captures/source-identity-final-desktop-source.png",
+ "bytes": 281250,
+ "sha256": "1f057a94992b478650fc0cad404174bdfd12966568bdfa83072b5f3ea3a7644a"
+ },
+ {
+ "path": "captures/source-identity-final-desktop-sourcecode.png",
+ "bytes": 285494,
+ "sha256": "a038519ad765bd5f7b49b292c34e339002ac9d44e83fb11dd268488ab48595e6"
+ },
+ {
+ "path": "captures/source-identity-final-narrow-api.png",
+ "bytes": 180088,
+ "sha256": "910cdf5010e8f280a25ebcaeaaf8a72d221e0982657464b51ff24b789de26a4c"
+ },
+ {
+ "path": "captures/source-identity-final-narrow-apicode.png",
+ "bytes": 184112,
+ "sha256": "2568a1e72107df10419035e47b74376e78895f45b39c13a4053a89269736eb76"
+ },
+ {
+ "path": "captures/source-identity-final-narrow-controls.png",
+ "bytes": 178279,
+ "sha256": "3616f0390c227d0cbb379f7a95ae0608927b645a29c29ba361a4b524b03094f5"
+ },
+ {
+ "path": "captures/source-identity-final-narrow-limits.png",
+ "bytes": 178170,
+ "sha256": "41d13aa41a3acfe555445d5ac00f0c53a9a329b53df476a7065ede80f3e5d360"
+ },
+ {
+ "path": "captures/source-identity-final-narrow-source.png",
+ "bytes": 171814,
+ "sha256": "f40303dec607306f52293b015fcd2b1ec843cc82c7b211108bf4b20f10592be2"
+ },
+ {
+ "path": "captures/source-identity-final-narrow-sourcecode.png",
+ "bytes": 171349,
+ "sha256": "50e2fd082b930d377d21b3e32023c50fbda2e9a0febc4e921441470ae82f46ad"
+ },
+ {
+ "path": "captures/visual-review.json",
+ "bytes": 2443,
+ "sha256": "6284c15199b3dfb4345051fa160f037f71c8a69d3f961ebd6e1047a84ba60f51"
+ },
+ {
+ "path": "diagnostics/source-identity-admissions-1.log.gz",
+ "bytes": 99,
+ "sha256": "a62722a7fa08bcef4eca7c61880682c52aa250ded8e515efb8ee16151d53ecac",
+ "uncompressed_sha256": "ba399721de994583f9332696daf4dfe0ccc77e3fe181bf50ee158a4c4239e2d1"
+ },
+ {
+ "path": "diagnostics/source-identity-admissions-2.log.gz",
+ "bytes": 99,
+ "sha256": "a62722a7fa08bcef4eca7c61880682c52aa250ded8e515efb8ee16151d53ecac",
+ "uncompressed_sha256": "ba399721de994583f9332696daf4dfe0ccc77e3fe181bf50ee158a4c4239e2d1"
+ },
+ {
+ "path": "diagnostics/source-identity-admissions-3.log.gz",
+ "bytes": 99,
+ "sha256": "a62722a7fa08bcef4eca7c61880682c52aa250ded8e515efb8ee16151d53ecac",
+ "uncompressed_sha256": "ba399721de994583f9332696daf4dfe0ccc77e3fe181bf50ee158a4c4239e2d1"
+ },
+ {
+ "path": "diagnostics/source-identity-assembled-1.log.gz",
+ "bytes": 10377,
+ "sha256": "684b5bbfdcfe989954c2273cb702851e682ef279b70b9578f6dcd54133e8c375",
+ "uncompressed_sha256": "0c689183e9b68996a994aea8429bc5be6e184ab5e01a87e1d2735c6600e4fa30"
+ },
+ {
+ "path": "diagnostics/source-identity-assembled-1.sources.json.gz",
+ "bytes": 656,
+ "sha256": "ab4d608b762ca72dd3fafc7424d99c67bf19424a70da3b178b0d7de5c8e54ac0",
+ "uncompressed_sha256": "1a259542018ab26158cbba34cc03ab3d51a4212e19f8a7f26a5b6ecee460bd19"
+ },
+ {
+ "path": "diagnostics/source-identity-audit-1.log.gz",
+ "bytes": 236,
+ "sha256": "de682c1325dbcf1d9af126d377531ec47e5ea86081fe913b4f7eea92ab0ec916",
+ "uncompressed_sha256": "c85b9c2f257d3aa557586b4f5d91687662286f1b97bc79b1af4e5447b139d97c"
+ },
+ {
+ "path": "diagnostics/source-identity-audit-2.log.gz",
+ "bytes": 8496,
+ "sha256": "e26afee082990d7be72baca60a12dd8a76eea3ddaa8fb7a41e873dcde09aebda",
+ "uncompressed_sha256": "bbf93ada9fb903bd70f6328abaaaf1f66d80468c56437e5e48cb269e2aedf030"
+ },
+ {
+ "path": "diagnostics/source-identity-audit-3.log.gz",
+ "bytes": 8592,
+ "sha256": "11f915a5947715a889d6ff16e20923dd4088a498089ecd0e46f1c0ce658c1e0a",
+ "uncompressed_sha256": "111881077d339b97a0decb787278786d4eff48683308da57c03b4b43955e1c65"
+ },
+ {
+ "path": "diagnostics/source-identity-browser-1-inputs/AlgebraicCells.lean.gz",
+ "bytes": 12594,
+ "sha256": "dce89eef9222f9ee400b91874cbee4b5d4b598266073bb7589b09aeda5f71122",
+ "uncompressed_sha256": "82b08b885af67cb5f58009028473a13e13cc7a85082cff7f0c543cb663d21a49"
+ },
+ {
+ "path": "diagnostics/source-identity-browser-1-inputs/source-identity-final-desktop-api.png.gz",
+ "bytes": 273983,
+ "sha256": "7ae2993c9d6840d4902711751581cd25593afe4111064839ed28036a26f20111",
+ "uncompressed_sha256": "b597843796249741f6e58ac48124c62d55dfd8f560ec413e6e65ef23b41cbb90"
+ },
+ {
+ "path": "diagnostics/source-identity-browser-1-inputs/source-identity-final-desktop-apicode.png.gz",
+ "bytes": 273597,
+ "sha256": "757fa6782c29bf54a9baa5261fc471815bee5802c977884b801faba44d74bc0f",
+ "uncompressed_sha256": "c9b1f61d19688500ca440b4685c0f8e3363ba1cdd414beec169f4e444a326036"
+ },
+ {
+ "path": "diagnostics/source-identity-browser-1-inputs/source-identity-final-desktop-controls.png.gz",
+ "bytes": 274730,
+ "sha256": "8037a86a98666ea6450b7c574de6390db2a50bcf89136580449954154e466732",
+ "uncompressed_sha256": "99572580d02c44fbb2e522f7397872d541342ce0a1781705a5175b77ac655462"
+ },
+ {
+ "path": "diagnostics/source-identity-browser-1-inputs/source-identity-final-desktop-limits.png.gz",
+ "bytes": 268582,
+ "sha256": "d8750e3855e69f78529adf196a561ac366443fdd3b06b6f39e3f2a197b2c1279",
+ "uncompressed_sha256": "ef90ff9d66d1a03d77c131d4775cac0a628e1449fa59c5be57e7c3581d82d5cd"
+ },
+ {
+ "path": "diagnostics/source-identity-browser-1-inputs/source-identity-final-desktop-source.png.gz",
+ "bytes": 267642,
+ "sha256": "4f3d7535f6d590d1a40a5ed58f73de6e2f64d3d08a27a10a7e301d5141fac622",
+ "uncompressed_sha256": "1f057a94992b478650fc0cad404174bdfd12966568bdfa83072b5f3ea3a7644a"
+ },
+ {
+ "path": "diagnostics/source-identity-browser-1-inputs/source-identity-final-desktop-sourcecode.png.gz",
+ "bytes": 271565,
+ "sha256": "342cd1428b60240dde6e3701c0334702d2d4fb46d1730b740d7f5ea610de0c19",
+ "uncompressed_sha256": "a038519ad765bd5f7b49b292c34e339002ac9d44e83fb11dd268488ab48595e6"
+ },
+ {
+ "path": "diagnostics/source-identity-browser-1-inputs/source-identity-final-inspection.json.gz",
+ "bytes": 1479,
+ "sha256": "cc8b9d97495dff0071751dc1a2d835ef31576e9d42a143f2fed5257e3c866f15",
+ "uncompressed_sha256": "0bd537d8d2c58e27a135056f776212af96c5b9add38c00967190d1a4d0613202"
+ },
+ {
+ "path": "diagnostics/source-identity-browser-1-inputs/source-identity-final-narrow-api.png.gz",
+ "bytes": 174117,
+ "sha256": "34858777b3f465b201e70337bea9bdcda71e58b5dfc31c4ef5ba12b5d0af4ba4",
+ "uncompressed_sha256": "5957e1c02b2d6181f7989b25044498037c23345676dc62adfcf6c226ef38ee51"
+ },
+ {
+ "path": "diagnostics/source-identity-browser-1-inputs/source-identity-final-narrow-apicode.png.gz",
+ "bytes": 175521,
+ "sha256": "61055232d26e642f0371ef28c360570b4ae25f36fa2dc397f1109fd9c481b28e",
+ "uncompressed_sha256": "81ce3c504d8f198fb0fcb039118f1baeaa2f156091c76cf130720890c808d6c6"
+ },
+ {
+ "path": "diagnostics/source-identity-browser-1-inputs/source-identity-final-narrow-controls.png.gz",
+ "bytes": 171656,
+ "sha256": "e479ac2dca0932710ef64ad32f33585d950309c091eee58cd14c8d0d81450f45",
+ "uncompressed_sha256": "f77930c92195bc5a0211b8e5bfd30a50c7c431e877502ef34adf52ffd432c468"
+ },
+ {
+ "path": "diagnostics/source-identity-browser-1-inputs/source-identity-final-narrow-limits.png.gz",
+ "bytes": 172147,
+ "sha256": "e953ac3c424c5f6b7f02ebd7dd0a46474183d34ec290ee1267f161f975fdd299",
+ "uncompressed_sha256": "45b9a766ffaea6031f63280c9e8cd4cef1d985b428c790fd0252756131ca0ffb"
+ },
+ {
+ "path": "diagnostics/source-identity-browser-1-inputs/source-identity-final-narrow-source.png.gz",
+ "bytes": 164817,
+ "sha256": "5cb3a8bd82643e3ac8281b992e6409e9dc1967f35c70b19bf0eb46ba7dccfe68",
+ "uncompressed_sha256": "f40303dec607306f52293b015fcd2b1ec843cc82c7b211108bf4b20f10592be2"
+ },
+ {
+ "path": "diagnostics/source-identity-browser-1-inputs/source-identity-final-narrow-sourcecode.png.gz",
+ "bytes": 164630,
+ "sha256": "0f78d192f2fa9cdbfbd08f2d8a2e115a9b0f7c2fbdcffc83ad3baf78738d09a9",
+ "uncompressed_sha256": "50e2fd082b930d377d21b3e32023c50fbda2e9a0febc4e921441470ae82f46ad"
+ },
+ {
+ "path": "diagnostics/source-identity-browser-1-inputs/source-identity-final-section-overflow.json.gz",
+ "bytes": 4193,
+ "sha256": "997dd7062659e613ed9d8fc4c04d074c11c56e0f147bd44a8da07f2e0c15619a",
+ "uncompressed_sha256": "460d7d18f6abf49cea53de4ca49cee19fe70e1a715c67b010f3e16f49dc27c49"
+ },
+ {
+ "path": "diagnostics/source-identity-browser-1.log.gz",
+ "bytes": 416,
+ "sha256": "b085edf088eea0467e0f597beadc945bf9c4bc52f66bb3ba804e14423ddb3b67",
+ "uncompressed_sha256": "594a6a7ed0f18d867f4d5a49cbe83c52a1c6ad1f2f099dd0ac5acffebb4a5b6d"
+ },
+ {
+ "path": "diagnostics/source-identity-browser-2-inputs/AlgebraicCells.lean.gz",
+ "bytes": 12594,
+ "sha256": "2889d830cf26a1cf2523ab99ac75ecd5e384593e07cfccb2fd05e7ba240eb734",
+ "uncompressed_sha256": "29f22aca5885162cfefc66c432acec8a52d0c2e4a63e7f38cd6380055613688a"
+ },
+ {
+ "path": "diagnostics/source-identity-browser-2-inputs/source-identity-final-desktop-api.png.gz",
+ "bytes": 270021,
+ "sha256": "af94feaabe3c36f0a8b303848c0fbac977dc3b72184429d845444cd68e311198",
+ "uncompressed_sha256": "d4dd2e5ff16fd80cc6dfe894d8ab29350d88dc6e557628e964d424ac87e6566a"
+ },
+ {
+ "path": "diagnostics/source-identity-browser-2-inputs/source-identity-final-desktop-apicode.png.gz",
+ "bytes": 270699,
+ "sha256": "e353906ad3352e745e11de5d2736d5e494d7151854340423fa3750ffbaf0e92d",
+ "uncompressed_sha256": "d75234c435cad0c9b4e677aab62f3179c0d1e7b27140565472045a05f0617333"
+ },
+ {
+ "path": "diagnostics/source-identity-browser-2-inputs/source-identity-final-desktop-controls.png.gz",
+ "bytes": 272278,
+ "sha256": "0d7f31d57ec31a8ded9242c538ffad1555a36572493d51391b64dfc0afbdcc44",
+ "uncompressed_sha256": "9acc3c7c80f72ae9a6b9e18753e7fd4f4b5e44398b8a514213703953a009f244"
+ },
+ {
+ "path": "diagnostics/source-identity-browser-2-inputs/source-identity-final-desktop-limits.png.gz",
+ "bytes": 262685,
+ "sha256": "f51346fc48931b5fad7fe67bf7b14588051386e5282822a0bbacd92e05c4710e",
+ "uncompressed_sha256": "ea1212339b4e6c472dbb9b0731ec12dad1d840b2ea0a2172b1b6d7ebc19827ab"
+ },
+ {
+ "path": "diagnostics/source-identity-browser-2-inputs/source-identity-final-desktop-source.png.gz",
+ "bytes": 267642,
+ "sha256": "4f3d7535f6d590d1a40a5ed58f73de6e2f64d3d08a27a10a7e301d5141fac622",
+ "uncompressed_sha256": "1f057a94992b478650fc0cad404174bdfd12966568bdfa83072b5f3ea3a7644a"
+ },
+ {
+ "path": "diagnostics/source-identity-browser-2-inputs/source-identity-final-desktop-sourcecode.png.gz",
+ "bytes": 271565,
+ "sha256": "342cd1428b60240dde6e3701c0334702d2d4fb46d1730b740d7f5ea610de0c19",
+ "uncompressed_sha256": "a038519ad765bd5f7b49b292c34e339002ac9d44e83fb11dd268488ab48595e6"
+ },
+ {
+ "path": "diagnostics/source-identity-browser-2-inputs/source-identity-final-inspection.json.gz",
+ "bytes": 1478,
+ "sha256": "31b0eaa4e70a4a8142f2371ad2b98492af49fd55fdd6086a8606f502aa72cd47",
+ "uncompressed_sha256": "a35c94ef00bb3707e8b642e77a0c070f5ddf102084825e150fdc3d32c134c7dc"
+ },
+ {
+ "path": "diagnostics/source-identity-browser-2-inputs/source-identity-final-narrow-api.png.gz",
+ "bytes": 173978,
+ "sha256": "175e5a2a1114a712a0094a1d2d757155080b03ddb610af521468b7bb2918d179",
+ "uncompressed_sha256": "75ccf0eae487e352c3fbe4afdebbbbc614a0450c1997d169bee72be61fe1feb5"
+ },
+ {
+ "path": "diagnostics/source-identity-browser-2-inputs/source-identity-final-narrow-apicode.png.gz",
+ "bytes": 177507,
+ "sha256": "32ed9c2cccabd9c0741c04fa2c453e064aa3b25855c99b2ee3d1e9aee33d6389",
+ "uncompressed_sha256": "fbf70baeba0dcd1c37ddddd92caeb4e1af9f2ca1a68b71118ace74b075ddcfef"
+ },
+ {
+ "path": "diagnostics/source-identity-browser-2-inputs/source-identity-final-narrow-controls.png.gz",
+ "bytes": 172570,
+ "sha256": "1010f4a5cfa8849a7ab643de3f5a48dbe3edee2bbae8e389be0e6888fef440cd",
+ "uncompressed_sha256": "61274d14f72269a81ee549facfdfd20132387040d8431f3a0af97efbd823d9f7"
+ },
+ {
+ "path": "diagnostics/source-identity-browser-2-inputs/source-identity-final-narrow-limits.png.gz",
+ "bytes": 171495,
+ "sha256": "5686d2cbed934c3ad12706f1226c0bbcf66e279794c90b91bf0041ce86dacf23",
+ "uncompressed_sha256": "8e48ca35bab30cf78d7f966b993009261ed09b80dd7d88010b49f056917870ef"
+ },
+ {
+ "path": "diagnostics/source-identity-browser-2-inputs/source-identity-final-narrow-source.png.gz",
+ "bytes": 164817,
+ "sha256": "5cb3a8bd82643e3ac8281b992e6409e9dc1967f35c70b19bf0eb46ba7dccfe68",
+ "uncompressed_sha256": "f40303dec607306f52293b015fcd2b1ec843cc82c7b211108bf4b20f10592be2"
+ },
+ {
+ "path": "diagnostics/source-identity-browser-2-inputs/source-identity-final-narrow-sourcecode.png.gz",
+ "bytes": 164630,
+ "sha256": "0f78d192f2fa9cdbfbd08f2d8a2e115a9b0f7c2fbdcffc83ad3baf78738d09a9",
+ "uncompressed_sha256": "50e2fd082b930d377d21b3e32023c50fbda2e9a0febc4e921441470ae82f46ad"
+ },
+ {
+ "path": "diagnostics/source-identity-browser-2-inputs/source-identity-final-section-overflow.json.gz",
+ "bytes": 4193,
+ "sha256": "997dd7062659e613ed9d8fc4c04d074c11c56e0f147bd44a8da07f2e0c15619a",
+ "uncompressed_sha256": "460d7d18f6abf49cea53de4ca49cee19fe70e1a715c67b010f3e16f49dc27c49"
+ },
+ {
+ "path": "diagnostics/source-identity-browser-2.log.gz",
+ "bytes": 418,
+ "sha256": "e7655c339807ac3bc96bc79e1c2de7f0e6282c154ff9a4d7e33ab2b36b22fc43",
+ "uncompressed_sha256": "5fd30d603067e06620cca610b4ffafbe57932f2136501784b4c5f81f3ed95cea"
+ },
+ {
+ "path": "diagnostics/source-identity-browser-3.log.gz",
+ "bytes": 241,
+ "sha256": "667699bc2f20fc3363c814a576d1ea35cc4c2675b55fee101fe5dd1e83831050",
+ "uncompressed_sha256": "44f572d156b194f03772a4d6f6d8aae4dece2cae7acaba50cca929bdd0560c66"
+ },
+ {
+ "path": "diagnostics/source-identity-cases-1.log.gz",
+ "bytes": 10122,
+ "sha256": "c196fdf834d842559b54a364fcde7c13757d21ffcdf36896ba15c4b43e24fe42",
+ "uncompressed_sha256": "f1a7205384b49e615e30e1616b2dd0250794660ccf6599107d6d80c6a99ade15"
+ },
+ {
+ "path": "diagnostics/source-identity-cases-2.log.gz",
+ "bytes": 8675,
+ "sha256": "679142a8b24f11c424f9527bd960568145b70f0168aba96517182f152565a0ca",
+ "uncompressed_sha256": "1142e42b223178c64088cf59e51819fe3391f2b3b7e4ef547125e4d705e82e9c"
+ },
+ {
+ "path": "diagnostics/source-identity-cases-3.log.gz",
+ "bytes": 8677,
+ "sha256": "85e2ae10b33256ecbb85a97bf62c065ecc278784539c08ebac849e715b442b34",
+ "uncompressed_sha256": "04a5a557ba86a8029b57ab5cf44584bfab76689ea9b6749785f2f9f3edbb6dc2"
+ },
+ {
+ "path": "diagnostics/source-identity-cases-4.log.gz",
+ "bytes": 8236,
+ "sha256": "58e901a96c66170f7f4b10a8ff322df9fd2157ac17c05c74514b388979891ef6",
+ "uncompressed_sha256": "47c34e4a603c09cab24c5f23a88e11f29d08c1b91b562f7cd72436f11c007191"
+ },
+ {
+ "path": "diagnostics/source-identity-cases-5.log.gz",
+ "bytes": 8060,
+ "sha256": "25ed970b648893e3e070e9d1679a9824041e1d40e2554a9c3208ae4f840aa4c6",
+ "uncompressed_sha256": "356078841a6b46fbc2d5903f271cf80819a579c183c011b4b2937edcb67823cf"
+ },
+ {
+ "path": "diagnostics/source-identity-compatibility-1.log.gz",
+ "bytes": 15912,
+ "sha256": "08bf22b896b65a8c8b83cb3b8f5de0d0a70ed4e199d090c3b05f348bd0eaf584",
+ "uncompressed_sha256": "0c74f27fd1e5a19f5bf73400bbcca02c0f873d25ada83d896e9295bfac144168"
+ },
+ {
+ "path": "diagnostics/source-identity-controls-1.log.gz",
+ "bytes": 8915,
+ "sha256": "760ea80ef94dd3269df0120e118ffc0c4de11692c02481e186ba851bb77bbf97",
+ "uncompressed_sha256": "3881d14003135c9760765d3ca8ccb0165db97f853b5b142bf4ed367557e82e31"
+ },
+ {
+ "path": "diagnostics/source-identity-controls-2.log.gz",
+ "bytes": 8517,
+ "sha256": "dd167bd34da13e2293fa67af242f56c1f20078ca0bd3b5cd3831b822f480cdb4",
+ "uncompressed_sha256": "a71fb4927ea90316c1c22c1a4233e3ec052abfdd440cedf5f26bbe25d5baaedb"
+ },
+ {
+ "path": "diagnostics/source-identity-copyright-1.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "diagnostics/source-identity-copyright-2.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "diagnostics/source-identity-copyright-3.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "diagnostics/source-identity-dag-1.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "diagnostics/source-identity-dag-2.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "diagnostics/source-identity-dag-3.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "diagnostics/source-identity-embed-core-1.log.gz",
+ "bytes": 8781,
+ "sha256": "adc9b472be13879baaf5048a3f9aa71c9c2b6ccff01481aab22974b4437fe48d",
+ "uncompressed_sha256": "02bccf6ed0e9885dabca314c5dab06efbccb8be3f97487da68fa74054686ae0c"
+ },
+ {
+ "path": "diagnostics/source-identity-emitter-1.log.gz",
+ "bytes": 8619,
+ "sha256": "d8ebf7a1581886662313802df93facc4f1cfab15d1a98ee7c99b64f56fdf6395",
+ "uncompressed_sha256": "fbc58440649e69b16a228c7814aa4cc751fadbcba44e9589d3c880598fd25421"
+ },
+ {
+ "path": "diagnostics/source-identity-expanded-1-inputs/HexManual/Chapters/HexRCF/AlgebraicCells.lean.gz",
+ "bytes": 12594,
+ "sha256": "dce89eef9222f9ee400b91874cbee4b5d4b598266073bb7589b09aeda5f71122",
+ "uncompressed_sha256": "82b08b885af67cb5f58009028473a13e13cc7a85082cff7f0c543cb663d21a49"
+ },
+ {
+ "path": "diagnostics/source-identity-expanded-1-inputs/adapters/HexRCF/RealCoefficients/SourceIdentity.lean.gz",
+ "bytes": 1880,
+ "sha256": "5982a802077d7a05f49b09b4ae042d6c6e216aba783aafa9e4e09269f98d3e1a",
+ "uncompressed_sha256": "d98ae0c746003be89edfc969e464383e6a6bda253e0dae8c290605e8b98ce3c3"
+ },
+ {
+ "path": "diagnostics/source-identity-expanded-1-inputs/adapters/HexRCF/RealCoefficients/SourceIdentityQuote.lean.gz",
+ "bytes": 1949,
+ "sha256": "5f2a19e623fcc8441f6fa458c53e744b08dad14b83baec21f3d3ca3fe7333c4d",
+ "uncompressed_sha256": "37c54a56f48b265d0ddca38ecae2c572871e8b7f1600b54f330ff3da60252fa7"
+ },
+ {
+ "path": "diagnostics/source-identity-expanded-1-inputs/adapters/HexRCF/RealCoefficients.lean.gz",
+ "bytes": 1078,
+ "sha256": "4ab86001406e5832940768a39c7f8fe960f134a926ea41dc05e380cfae83bb47",
+ "uncompressed_sha256": "0056d497cd09f465ce44102b6a80b42fa3be35f46e60208179a5473447e7e1b5"
+ },
+ {
+ "path": "diagnostics/source-identity-expanded-1-inputs/conformance/HexRCF/CellSourceProofs.lean.gz",
+ "bytes": 1727,
+ "sha256": "558d662d89c152a4861d975e56c9e6547a3fce8af9b0b08e0bf5b26718d7efbb",
+ "uncompressed_sha256": "35e49b8a3fa75a12953653eadf40fc5613279979f584f1a8bffc2c0f1010d9e2"
+ },
+ {
+ "path": "diagnostics/source-identity-expanded-1-inputs/conformance/HexRCF/CellSourceQuote.lean.gz",
+ "bytes": 3152,
+ "sha256": "1613be9d4c2b754dafe6f6bc0d96f8a47ae9b120d5e456e5901bff4c62525817",
+ "uncompressed_sha256": "95e880baefca653d66f4ea0f9cf7a80f0dcda643a1aa8c06a944472f805d5dca"
+ },
+ {
+ "path": "diagnostics/source-identity-expanded-1-inputs/conformance/HexRCF/SourceIdentityControls.lean.gz",
+ "bytes": 1780,
+ "sha256": "c58276f7771fc30c577a53d6e321319dcbaf80446fc98b692d87bbd5351cf55a",
+ "uncompressed_sha256": "2307f11955b8459156d8171ded5f74b1102d281963354609895203b001cec3a8"
+ },
+ {
+ "path": "diagnostics/source-identity-expanded-1-inputs/conformance/HexRCF/SourceIdentityEmit.lean.gz",
+ "bytes": 833,
+ "sha256": "ea01077bc00dc449aefe44f843e055caeffb64ab8ee110d7378d6d2d577fd718",
+ "uncompressed_sha256": "aa12f1517efc675698c0795c5a463a77d7a3466bcc146d4981d82e913059ed99"
+ },
+ {
+ "path": "diagnostics/source-identity-expanded-1-inputs/conformance/HexRCF/SourceIdentityLiterals.lean.gz",
+ "bytes": 2022,
+ "sha256": "ed3a88248170d7364b1462147035a5d156b5adea30c7ba19dda03ee8abf88551",
+ "uncompressed_sha256": "61ee2ce703d4965b00e1e20cc62288a0bde4e839d68ca09e1b66281f4a3e48d0"
+ },
+ {
+ "path": "diagnostics/source-identity-expanded-1-inputs/conformance/HexRCF/SourceIdentityPacket.lean.gz",
+ "bytes": 1834,
+ "sha256": "4befa952ef16d8b535ba763b57b4d36e870426bf47534719b5e46808c7ccaaa5",
+ "uncompressed_sha256": "11fe3cc66c57300e3ead6b0446b509075fd9ef0190207d479408f9194c10e1a4"
+ },
+ {
+ "path": "diagnostics/source-identity-expanded-1-inputs/conformance/HexRCF/SourceIdentityProofs.lean.gz",
+ "bytes": 1623,
+ "sha256": "c3079382ebde9fd71eaaa7c47eedf2042531535c1116b0b2cd2e51d20c025f8e",
+ "uncompressed_sha256": "c449238d5f915dbe1f337688bc4f7357f3a93e31ad79eaa9e8e159c280749173"
+ },
+ {
+ "path": "diagnostics/source-identity-expanded-1-inputs/conformance-fixtures/HexRCF/source-identity.json.gz",
+ "bytes": 566,
+ "sha256": "21319c133346cacb397f9f6f91fa2704d9fbe61f5f1e42967bb517c494d0b790",
+ "uncompressed_sha256": "93540b60174e0d8bd85ca80d99c6cbdc427815f341a12a6e38f4b38613073f53"
+ },
+ {
+ "path": "diagnostics/source-identity-expanded-1-inputs/lakefile.lean.gz",
+ "bytes": 22726,
+ "sha256": "721308268e4aaa8679549c4346ca851c7089b970ea634372799e0729b84fbc81",
+ "uncompressed_sha256": "d6b1ad41605ada0e0b06f3a2425a1fca2a2f7267775f8f5bc188ebaaeb91c22f"
+ },
+ {
+ "path": "diagnostics/source-identity-expanded-1-inputs/scripts/rcf/source_identity_literals.py.gz",
+ "bytes": 615,
+ "sha256": "6c60725c83d8d93ce2938438d9db5a0c57842c2c57b90fdcdc3ae2c3cef08d11",
+ "uncompressed_sha256": "ea5d7df949871c4975367a759b9632d033f3a240523c2c917c9141220ffdfd78"
+ },
+ {
+ "path": "diagnostics/source-identity-expanded-1-inputs.json.gz",
+ "bytes": 805,
+ "sha256": "6b1a304fea2d625005de01c929659315788c482dddd6168b1d02ab6365a25fd7",
+ "uncompressed_sha256": "e98965d99ed66f5f8166b9d5d1d9af3944bedb8d1fdf8c4cf5ee48d03e2a9b75"
+ },
+ {
+ "path": "diagnostics/source-identity-expanded-1.log.gz",
+ "bytes": 29059,
+ "sha256": "26bc89dc2cd53cf0f73bffc106d51584a2bcf7db7ccff06eb1befab4ee781e8d",
+ "uncompressed_sha256": "06a73325e85134a67908aa9faacd6ba97c7961b53aa89448d63bdab67f7e9f57"
+ },
+ {
+ "path": "diagnostics/source-identity-expanded-invocation.json.gz",
+ "bytes": 477,
+ "sha256": "93f3cf58155a80ecd725f5c3cefea095f8ff387f86d49129e68d8fa701509906",
+ "uncompressed_sha256": "beb14faf985c9008b4769c9fb88e21c03d67df191b66493089142c932360734a"
+ },
+ {
+ "path": "diagnostics/source-identity-facts-core-1.log.gz",
+ "bytes": 5200,
+ "sha256": "abed6c1e4b68a06f3c728d8885f514a57b58de36d56078250598d0c550b55b3f",
+ "uncompressed_sha256": "c44476f9fb1e70f9df38c5cf66cf4d2e782fcfdd30e7d14c4467383ad5c3c5b1"
+ },
+ {
+ "path": "diagnostics/source-identity-final-admissions.log.gz",
+ "bytes": 114,
+ "sha256": "9d26155bbcc137c42c7008345786b7400762debae77805df417f5c091300d52b",
+ "uncompressed_sha256": "3fe7d18bc2fec1fa4763469209fc52e0d41eb6821e5db1bc5081c27d8f9c9eff"
+ },
+ {
+ "path": "diagnostics/source-identity-final-copyright.log.gz",
+ "bytes": 35,
+ "sha256": "89b12fa0be4a440fd82e7e15dfb79ec5acf5eb2b4b42d7ceab0bc8393408a788",
+ "uncompressed_sha256": "a4bca921b577964339a0bb1003d40b0e13e9006fc28274733a8188e126ddad15"
+ },
+ {
+ "path": "diagnostics/source-identity-final-dag.log.gz",
+ "bytes": 35,
+ "sha256": "89b12fa0be4a440fd82e7e15dfb79ec5acf5eb2b4b42d7ceab0bc8393408a788",
+ "uncompressed_sha256": "a4bca921b577964339a0bb1003d40b0e13e9006fc28274733a8188e126ddad15"
+ },
+ {
+ "path": "diagnostics/source-identity-final-lines.log.gz",
+ "bytes": 35,
+ "sha256": "89b12fa0be4a440fd82e7e15dfb79ec5acf5eb2b4b42d7ceab0bc8393408a788",
+ "uncompressed_sha256": "a4bca921b577964339a0bb1003d40b0e13e9006fc28274733a8188e126ddad15"
+ },
+ {
+ "path": "diagnostics/source-identity-final-metadata-admissions.log.gz",
+ "bytes": 100,
+ "sha256": "a03bc6497f7874bd347cf6ba4b9b9ab91996c92cd706008e36105c28964247c3",
+ "uncompressed_sha256": "11c18f0e4a60afd9aad75ab5d0794a9ff28799aac4c708a482d683f962e9e14f"
+ },
+ {
+ "path": "diagnostics/source-identity-final-metadata-copyright.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "diagnostics/source-identity-final-metadata-dag.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "diagnostics/source-identity-final-metadata-diff.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "diagnostics/source-identity-final-metadata-driver.log.gz",
+ "bytes": 62,
+ "sha256": "68d54e9be69a3d4acea0f1e708794b0d2268dc632de6467674e07a79c7ed56e2",
+ "uncompressed_sha256": "d22e56a1283e1715f26bd55137a9d5e3833f1e07b5f0eadde16d69137ed49990"
+ },
+ {
+ "path": "diagnostics/source-identity-final-metadata-lines.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "diagnostics/source-identity-final-metadata-relative.log.gz",
+ "bytes": 105,
+ "sha256": "c43d1ba9fa5a6ea3d05919ed8b5f63ae6d92bdbc66b09a9c0e2db03229da84e9",
+ "uncompressed_sha256": "5b6d65aeb6cb570bc5e9b14d70d6222627b455a17e51016ce5d0bf8c9d5cd4c3"
+ },
+ {
+ "path": "diagnostics/source-identity-final-metadata-selected-admissions.log.gz",
+ "bytes": 134,
+ "sha256": "692f71b17cb76d2c5ec5b272fe1c5928ada3ebc7cf0035ae1b14da5227461b83",
+ "uncompressed_sha256": "31db5a22824574355dba74d4441d2e01edf5e3b535b65120fa905c3ebfd0f81e"
+ },
+ {
+ "path": "diagnostics/source-identity-final-metadata-summary.log.gz",
+ "bytes": 79,
+ "sha256": "3956b87a47b24f981cca11f7704b8421254b1df0ae1f7d3f1e180cbfcc9ad50e",
+ "uncompressed_sha256": "14b64de8d82592f8227746917408c7571dd8ef67acd7faf0c511b0baf07cc9ec"
+ },
+ {
+ "path": "diagnostics/source-identity-final-metadata.json.gz",
+ "bytes": 296,
+ "sha256": "18ef80d457da7c4d8736bbd21b256fd563adf749a35db54567b0001205f0b8f0",
+ "uncompressed_sha256": "ef73a28e9177cfd37d80f02cca81ed67b6a64a6cefcf02a169c034a762c6c511"
+ },
+ {
+ "path": "diagnostics/source-identity-full-source-1-inputs/adapters/HexRCF/RealCoefficients/SourceIdentity.lean.gz",
+ "bytes": 1880,
+ "sha256": "5982a802077d7a05f49b09b4ae042d6c6e216aba783aafa9e4e09269f98d3e1a",
+ "uncompressed_sha256": "d98ae0c746003be89edfc969e464383e6a6bda253e0dae8c290605e8b98ce3c3"
+ },
+ {
+ "path": "diagnostics/source-identity-full-source-1-inputs/adapters/HexRCF/RealCoefficients/SourceIdentityQuote.lean.gz",
+ "bytes": 1949,
+ "sha256": "5f2a19e623fcc8441f6fa458c53e744b08dad14b83baec21f3d3ca3fe7333c4d",
+ "uncompressed_sha256": "37c54a56f48b265d0ddca38ecae2c572871e8b7f1600b54f330ff3da60252fa7"
+ },
+ {
+ "path": "diagnostics/source-identity-full-source-1-inputs/adapters/HexRCF/RealCoefficients.lean.gz",
+ "bytes": 1078,
+ "sha256": "4ab86001406e5832940768a39c7f8fe960f134a926ea41dc05e380cfae83bb47",
+ "uncompressed_sha256": "0056d497cd09f465ce44102b6a80b42fa3be35f46e60208179a5473447e7e1b5"
+ },
+ {
+ "path": "diagnostics/source-identity-full-source-1-inputs/conformance/HexRCF/CellSourceProofs.lean.gz",
+ "bytes": 1727,
+ "sha256": "df679a3aa42f42d0af83c797d0b1ed5be5b4f4d6ee817660d2f6242cdcdd80d4",
+ "uncompressed_sha256": "d63558b52d6496f63fb808bd12684d0391b6937ce4dcd812dae7df68c31159c7"
+ },
+ {
+ "path": "diagnostics/source-identity-full-source-1-inputs/conformance/HexRCF/CellSourceQuote.lean.gz",
+ "bytes": 3152,
+ "sha256": "1613be9d4c2b754dafe6f6bc0d96f8a47ae9b120d5e456e5901bff4c62525817",
+ "uncompressed_sha256": "95e880baefca653d66f4ea0f9cf7a80f0dcda643a1aa8c06a944472f805d5dca"
+ },
+ {
+ "path": "diagnostics/source-identity-full-source-1-inputs/conformance/HexRCF/SourceIdentityControls.lean.gz",
+ "bytes": 1780,
+ "sha256": "c58276f7771fc30c577a53d6e321319dcbaf80446fc98b692d87bbd5351cf55a",
+ "uncompressed_sha256": "2307f11955b8459156d8171ded5f74b1102d281963354609895203b001cec3a8"
+ },
+ {
+ "path": "diagnostics/source-identity-full-source-1-inputs/conformance/HexRCF/SourceIdentityLiterals.lean.gz",
+ "bytes": 2022,
+ "sha256": "ed3a88248170d7364b1462147035a5d156b5adea30c7ba19dda03ee8abf88551",
+ "uncompressed_sha256": "61ee2ce703d4965b00e1e20cc62288a0bde4e839d68ca09e1b66281f4a3e48d0"
+ },
+ {
+ "path": "diagnostics/source-identity-full-source-1-inputs/conformance/HexRCF/SourceIdentityPacket.lean.gz",
+ "bytes": 1834,
+ "sha256": "4befa952ef16d8b535ba763b57b4d36e870426bf47534719b5e46808c7ccaaa5",
+ "uncompressed_sha256": "11fe3cc66c57300e3ead6b0446b509075fd9ef0190207d479408f9194c10e1a4"
+ },
+ {
+ "path": "diagnostics/source-identity-full-source-1-inputs/conformance/HexRCF/SourceIdentityProofs.lean.gz",
+ "bytes": 1623,
+ "sha256": "c3079382ebde9fd71eaaa7c47eedf2042531535c1116b0b2cd2e51d20c025f8e",
+ "uncompressed_sha256": "c449238d5f915dbe1f337688bc4f7357f3a93e31ad79eaa9e8e159c280749173"
+ },
+ {
+ "path": "diagnostics/source-identity-full-source-1-inputs/conformance-fixtures/HexRCF/source-identity.json.gz",
+ "bytes": 566,
+ "sha256": "21319c133346cacb397f9f6f91fa2704d9fbe61f5f1e42967bb517c494d0b790",
+ "uncompressed_sha256": "93540b60174e0d8bd85ca80d99c6cbdc427815f341a12a6e38f4b38613073f53"
+ },
+ {
+ "path": "diagnostics/source-identity-full-source-1-inputs/lakefile.lean.gz",
+ "bytes": 22722,
+ "sha256": "701b78d33410b42e0a268301b0456e4215f78b2992d627ad198e93a02ca7b210",
+ "uncompressed_sha256": "8a997b0e72027ff54cb1a6b4831b4b14ea3e4932b72b6b538692f7ee5cfdbba0"
+ },
+ {
+ "path": "diagnostics/source-identity-full-source-1-inputs/scripts/rcf/source_identity_literals.py.gz",
+ "bytes": 615,
+ "sha256": "6c60725c83d8d93ce2938438d9db5a0c57842c2c57b90fdcdc3ae2c3cef08d11",
+ "uncompressed_sha256": "ea5d7df949871c4975367a759b9632d033f3a240523c2c917c9141220ffdfd78"
+ },
+ {
+ "path": "diagnostics/source-identity-full-source-1-inputs.json.gz",
+ "bytes": 740,
+ "sha256": "cdc03ec76ea8483a89d9f89facf43b97e31ec5703a665f22b29fb70bb79cfb6f",
+ "uncompressed_sha256": "ae9d5e0cc8d3635b1481a90ed2f5ab854285af2cc2bac9aa0e86517423ebe052"
+ },
+ {
+ "path": "diagnostics/source-identity-full-source-1.log.gz",
+ "bytes": 9174,
+ "sha256": "7a528ac243db7fd42f47e1c67aa0beae94a3c6942e98059e042c14b676584c4d",
+ "uncompressed_sha256": "8ff12c1b3e1ee3c69b3a70475ca07dc48127a056ac2df373981d3a2960f0eac4"
+ },
+ {
+ "path": "diagnostics/source-identity-lines-1.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "diagnostics/source-identity-lines-2.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "diagnostics/source-identity-lines-3.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "diagnostics/source-identity-links-3.json.gz",
+ "bytes": 98,
+ "sha256": "70d51eaa42be49a0545951f98e99be25df39876334cc1e9bc81aabe8c2fdac4c",
+ "uncompressed_sha256": "a469189e53be9d9cc8ee4a43d16f998900d071ba0ab9ef1e09881febaf6aa56c"
+ },
+ {
+ "path": "diagnostics/source-identity-literals-check.log.gz",
+ "bytes": 68,
+ "sha256": "167f5ed8596142f3f1d3fdc40daa83c40dd6f4c31c76c0268645b4a297e47a56",
+ "uncompressed_sha256": "1cb7edf63af60166951d629a09a5bbb4f83dbd0c96b0fb9cae237cb1a893a1b1"
+ },
+ {
+ "path": "diagnostics/source-identity-main-refresh-1.log.gz",
+ "bytes": 82,
+ "sha256": "12f226f0fe736550a0708d7507c958301d5e1a7dfd6dac06da9205b740c20912",
+ "uncompressed_sha256": "39c6d66625dfbb2efd5093e8c015fde91b93495cbb533ad328b45f7faab19ecb"
+ },
+ {
+ "path": "diagnostics/source-identity-margin-1.log.gz",
+ "bytes": 5321,
+ "sha256": "9a69fe9d1a4cc26e442e095f16472e6a617a81dd384698247c70698a47955fcb",
+ "uncompressed_sha256": "c680b5476dacc4b1799442b2c27132676a080fc6b3809f8740864ea5a35b7233"
+ },
+ {
+ "path": "diagnostics/source-identity-margin-2.log.gz",
+ "bytes": 5314,
+ "sha256": "5222e3dde515b2b58ec44042795709151d0108c11d633fc490c8bd3cce0ed86d",
+ "uncompressed_sha256": "877f380755e9bd5b2993514fa95ffc463405366730d154af162d12305b959de5"
+ },
+ {
+ "path": "diagnostics/source-identity-margin-3.log.gz",
+ "bytes": 5016,
+ "sha256": "40f479e02fcc484454da7b9af7bf49818a8e41a7c6fd8119b2ea6318f8c5a715",
+ "uncompressed_sha256": "939e900e6135748344f1b4d54c813207b029dfc88da89bd5efeb1204e0c9c116"
+ },
+ {
+ "path": "diagnostics/source-identity-module-1.log.gz",
+ "bytes": 5780,
+ "sha256": "d8307c6c34cfb103d6e99d32aa59d584b797e5501f1bf3bf2dfcb9e37ad4aa03",
+ "uncompressed_sha256": "5c479c12054cd24e23bfce705188f00fedad5769bfc0d7b14996f1b5c882d547"
+ },
+ {
+ "path": "diagnostics/source-identity-observe-1.log.gz",
+ "bytes": 8714,
+ "sha256": "0d2f9c90807280986491edee5b187a671cf7ac48bfd1253a82a9a6bd35801a5f",
+ "uncompressed_sha256": "1e55adce1bdb6eee3aef233fcbfc710f4b34bcb4177de51a17b1d2fe50fec4f7"
+ },
+ {
+ "path": "diagnostics/source-identity-observe-2.log.gz",
+ "bytes": 8395,
+ "sha256": "a2f553c761fd42a9b61025545708f8e51635ea844faaecafaa2ea82107558fe3",
+ "uncompressed_sha256": "228e19ac46a7ac36fcdb48b3d1df99d653c13464068be5b7f5f11b3b05fd2453"
+ },
+ {
+ "path": "diagnostics/source-identity-observe-3.log.gz",
+ "bytes": 8111,
+ "sha256": "8d1f99ad4954d62384438fd1ee1a380c0c539ea7a8298ac6758b116da0388278",
+ "uncompressed_sha256": "6f77ca5b8e487c5330cfff6bfc0c4e105c14cd6c717a7da98ad7aaedc032772b"
+ },
+ {
+ "path": "diagnostics/source-identity-packets.json.gz",
+ "bytes": 566,
+ "sha256": "21319c133346cacb397f9f6f91fa2704d9fbe61f5f1e42967bb517c494d0b790",
+ "uncompressed_sha256": "93540b60174e0d8bd85ca80d99c6cbdc427815f341a12a6e38f4b38613073f53"
+ },
+ {
+ "path": "diagnostics/source-identity-pr-opus-5.log.gz",
+ "bytes": 3573,
+ "sha256": "2f0cc059175a746d9576354c6c7dd4586df197f21ca115b70b4d743a91afadd0",
+ "uncompressed_sha256": "f39b3795fadbc45ae966272a8177669fb6075769ac8695fb8d4be37247003c25"
+ },
+ {
+ "path": "diagnostics/source-identity-pr-opus-6.log.gz",
+ "bytes": 3915,
+ "sha256": "837469a67768b24bf1dfeb9908f1a9ea22ff70496ec2c17c61719dcd57bdbec9",
+ "uncompressed_sha256": "18e13bd9b93fe29feca0d12c01f434675c8453ce37f37dfdab9fa7cbb0fa8f7e"
+ },
+ {
+ "path": "diagnostics/source-identity-pr-opus-7.log.gz",
+ "bytes": 3587,
+ "sha256": "70716bc858ed83f94ba2feede6e6ed09d2073d61a618e4009664b63b39a04f93",
+ "uncompressed_sha256": "50b70ff2880546bdbc29ea8ca0d7896943533c2e1bd7d7aad98ef36e1f9c3dd3"
+ },
+ {
+ "path": "diagnostics/source-identity-pr-opus-8.log.gz",
+ "bytes": 4156,
+ "sha256": "7af61c9f2d32c4829b310251467e1bf8e8d1e850edc3652348158907ea03805e",
+ "uncompressed_sha256": "718ba063f14974c452db7f88106109a8c9d48434cbb014b283aceffd56d25ff0"
+ },
+ {
+ "path": "diagnostics/source-identity-pr-opus-9.log.gz",
+ "bytes": 3465,
+ "sha256": "151a5c5fac5d5e1f4f5fe6efbb5b2596b7b2faa61347b51d758c6c2d462f1913",
+ "uncompressed_sha256": "03b262d0cba30131f4ea92a8ed1f4b5d52d44190ac0a54eff8c17cfa890e8eb6"
+ },
+ {
+ "path": "diagnostics/source-identity-probe-1.log.gz",
+ "bytes": 237,
+ "sha256": "4b11862cc94990b7d799069d57f3e85192d380115cd54c4ac00bd04ebe342c17",
+ "uncompressed_sha256": "29c1ed9eb1a514db377b39b689401f7a3aa837bf72e21439574756721a6a1837"
+ },
+ {
+ "path": "diagnostics/source-identity-probe-2.log.gz",
+ "bytes": 8887,
+ "sha256": "df7eae79b73b0ef3dac5c3750d860609770000fa64bf679d76dd4958488ca1b1",
+ "uncompressed_sha256": "22102d39b10b72183db62b8cc3c47703d07e99c5ce47aec7a72d792fbbb1be9c"
+ },
+ {
+ "path": "diagnostics/source-identity-probe-3.log.gz",
+ "bytes": 8432,
+ "sha256": "8dfb4dd0dff887be68993258ce7ee4b380ff3cec9f1e5179bffcfd683919005c",
+ "uncompressed_sha256": "af7810197672ef1044d746a1fead17ee414e431df8a3bf32da098f4236c5a937"
+ },
+ {
+ "path": "diagnostics/source-identity-production-1.log.gz",
+ "bytes": 8674,
+ "sha256": "2c5df2dd43525833e42cb5c6f6179e8406e746d5651032e2f8d6727d42e7fb8f",
+ "uncompressed_sha256": "ac0c0f173783983c6f88a8ee9ef4634da8723081115bf653f41e132f0e7774ce"
+ },
+ {
+ "path": "diagnostics/source-identity-quote-core-1.log.gz",
+ "bytes": 6405,
+ "sha256": "c5dac077a6dae07f8ca29badbda51f6411a977719dffb84687f71e5d36dcce84",
+ "uncompressed_sha256": "66901fbde21de8fb3ca3b1b372c84e5cb589f446bfa5aa7712fe066da6cc7be4"
+ },
+ {
+ "path": "diagnostics/source-identity-render-1.log.gz",
+ "bytes": 16378,
+ "sha256": "38460d69f8085cb95175281b164e85bb127d29e219db688f27f7b6dc8a0be172",
+ "uncompressed_sha256": "cf67c3351709cc05a8eae78ddde4980576f8c00f9d5de8456833973568b1914d"
+ },
+ {
+ "path": "diagnostics/source-identity-render-2.log.gz",
+ "bytes": 16462,
+ "sha256": "79d387cacb57b2a7251f6ca216a6765f037f32eca75f925b98ffd3beff63aa8b",
+ "uncompressed_sha256": "21bdecc9587a1c5a89898e9aec277df8a881770c37c8352650a278d9be6b5693"
+ },
+ {
+ "path": "diagnostics/source-identity-render-3.log.gz",
+ "bytes": 16470,
+ "sha256": "53d645fef016591a67c9ffb19f98bcb2ff93833bed5a6f8d8e7ee85d84db2ba1",
+ "uncompressed_sha256": "3461a2c18780a258a2b95dcee46ca4b478fb6900c01a3340bcbfe6d5289df981"
+ },
+ {
+ "path": "diagnostics/source-identity-retained-core-1.log.gz",
+ "bytes": 8226,
+ "sha256": "3b91a88ea1a4b015ae8d6f1307f39e04bff68d5f8e4a5964e9514ec875bfd1cc",
+ "uncompressed_sha256": "af1708977f7d4699f47425be5814fd2128c7ae6ebd3415c23518ca720978a3b1"
+ },
+ {
+ "path": "diagnostics/source-identity-review-admissions-2.log.gz",
+ "bytes": 321,
+ "sha256": "10d93d191314387ff0027027083513210cfcd52ad6806fdb818a4140128d5319",
+ "uncompressed_sha256": "4e1d91d796fb119971b37574eb362a6f3306ba2c3832c8af4226516ba3ed445a"
+ },
+ {
+ "path": "diagnostics/source-identity-review-admissions-3.log.gz",
+ "bytes": 309,
+ "sha256": "b4da19a3f5d8ce7edbc2448c88005710d52f4ac2a07e78aee47c98eccb053cf6",
+ "uncompressed_sha256": "ae950b0a01adee2dd4b4523305e7d0c017320919d199876a8ace3d0e2b67b5f2"
+ },
+ {
+ "path": "diagnostics/source-identity-review-admissions-4.log.gz",
+ "bytes": 307,
+ "sha256": "efa128ecdb8e218aa541be8bc49b115d453086933f39d96db01929d309b61201",
+ "uncompressed_sha256": "94e6ad345c651652d28c519414d3aefadefd540e755c41fa67efa87c670b0371"
+ },
+ {
+ "path": "diagnostics/source-identity-review-admissions-5.log.gz",
+ "bytes": 307,
+ "sha256": "57e233e792596d3d0505b89e2d5df59f2949b885e016835d9dfc23c03645ff07",
+ "uncompressed_sha256": "a10f8c30f1549eea5b66907b909d478bd22daa6cc6d7c331f2eb9a1048aab37b"
+ },
+ {
+ "path": "diagnostics/source-identity-review-copyright-2.log.gz",
+ "bytes": 260,
+ "sha256": "bb00a2ec5ad8885ff01109bc6156eaa25312df8bf288aa7f9aaff895f12e3ddf",
+ "uncompressed_sha256": "5c8daa005aff022b695d6ef1bbb5b88a4cab9d50727ce401a4bae5ec8aef3ba0"
+ },
+ {
+ "path": "diagnostics/source-identity-review-copyright-3.log.gz",
+ "bytes": 251,
+ "sha256": "b6b864b6ea30974d7b92784de66457216c9abf4bd051fd0d6302bad36aff85cb",
+ "uncompressed_sha256": "e9264b8737b64dcdee6639acc4b08df94004ce7ba3834404862c0b87c93bc028"
+ },
+ {
+ "path": "diagnostics/source-identity-review-copyright-4.log.gz",
+ "bytes": 248,
+ "sha256": "3a4bcc6b58d1458ba2f7cec11a62b24e89323805a0d484f8b6ae97db7ce73fef",
+ "uncompressed_sha256": "d8b7c7322cb775fcaf7bdf27d321a48fab0f0b4e6ae75ce7adc9c04a344d6d58"
+ },
+ {
+ "path": "diagnostics/source-identity-review-copyright-5.log.gz",
+ "bytes": 248,
+ "sha256": "96991fc5b9335583de53776018e6f24fdbb254a13cb61ad6949f1918eff878c0",
+ "uncompressed_sha256": "561b963e212ce74f379f4e2371a2cea81af9e3c8b80d3abdb8f74a7ba00c1c4e"
+ },
+ {
+ "path": "diagnostics/source-identity-review-dag-2.log.gz",
+ "bytes": 252,
+ "sha256": "03233d0f4c81faa655f49a4044ad091e3956a3ece93e80efd808e86bb7899eca",
+ "uncompressed_sha256": "13af277460de3ca330f96040f493efe0daa401ac7a723ab5af0e22862a7c512d"
+ },
+ {
+ "path": "diagnostics/source-identity-review-dag-3.log.gz",
+ "bytes": 242,
+ "sha256": "6038678bb98a559fa7fddc603495d26f3526b3f52576fc987a71922fbd0af442",
+ "uncompressed_sha256": "1652317bf81622236ebf3db1107486151c182c9c54f66d9ce6ec5fdf3e6952b3"
+ },
+ {
+ "path": "diagnostics/source-identity-review-dag-4.log.gz",
+ "bytes": 238,
+ "sha256": "2b5ec8ceca0039c097135325379138332231403783538574c78fa0591ec0737d",
+ "uncompressed_sha256": "a5701e1d18f8b6941af6bcfb888d36fb1dc16532811c8caeeccd742396cb44c3"
+ },
+ {
+ "path": "diagnostics/source-identity-review-dag-5.log.gz",
+ "bytes": 241,
+ "sha256": "824a3ecac997e0847884eaa5813e39e5a90abbf6def1754f56bafc2a3ad3b3ea",
+ "uncompressed_sha256": "aaff8609d6c182adbd0dcf947089d2ad3520d49bb48cfe7e40ee30c429486293"
+ },
+ {
+ "path": "diagnostics/source-identity-review-fixes-1.log.gz",
+ "bytes": 8283,
+ "sha256": "8ad1ef32ae1427cb93771e5534d5e87b28eee0c021a0848b3773e530dadc5744",
+ "uncompressed_sha256": "af8893b9dc6890aecea5453625b73672a34110871482da98aef8694032817d54"
+ },
+ {
+ "path": "diagnostics/source-identity-review-fixes-2.log.gz",
+ "bytes": 7962,
+ "sha256": "09ff0a940e1a26aed3656bc11ee5e4feffe3108179c18facbe5b9f0bc935c5f8",
+ "uncompressed_sha256": "81189e8c4f2eb1334d85d792c1fe20eaf45d53f321994a41e326ee442912e862"
+ },
+ {
+ "path": "diagnostics/source-identity-review-lines-2.log.gz",
+ "bytes": 262,
+ "sha256": "71f17c952a6058d87cdc7aa21539fafe396e6ce939644763c2a6eee592c72eb7",
+ "uncompressed_sha256": "b45cc43afe943b07da29a13ba3fbb962649ec4e3120c75e329e0848b64dfd469"
+ },
+ {
+ "path": "diagnostics/source-identity-review-lines-3.log.gz",
+ "bytes": 250,
+ "sha256": "e6be59807174152e902657f38622eadf8eaf38513ce31e9d43f8c2b748b1a64b",
+ "uncompressed_sha256": "e616db1da9fc3a35128d4062c521028786031606e05c085f6486bcfb3d122f25"
+ },
+ {
+ "path": "diagnostics/source-identity-review-lines-4.log.gz",
+ "bytes": 249,
+ "sha256": "7557e8f370b35c434f8f57c2a5621c85c20e6bba4967d1f46a2e08dcc528bde6",
+ "uncompressed_sha256": "050e5ddf41b75f476a36f69c123ee5021ed9c9eaf51f096d7ff1cc3353cf2d18"
+ },
+ {
+ "path": "diagnostics/source-identity-review-lines-5.log.gz",
+ "bytes": 249,
+ "sha256": "7b3442c64fbfc59da30c07c531f5c8524fdf472fa5b66fbaa6ece0fc38875182",
+ "uncompressed_sha256": "72ea72d11e8ff7e692adb1e42acaa40e580e0ff727d099846d4eca0c6360dc83"
+ },
+ {
+ "path": "diagnostics/source-identity-review-metadata-2.json.gz",
+ "bytes": 706,
+ "sha256": "6f3794535285fb42d1bde295aec3bbe6032b25c622af444611eaa801c8b5a8a8",
+ "uncompressed_sha256": "e4161b2e2373b283c28740c11ba10f36c60aa3edb0a726e4bae6801e9911b9d4"
+ },
+ {
+ "path": "diagnostics/source-identity-review-metadata-3.json.gz",
+ "bytes": 709,
+ "sha256": "4d0acc231f663d7942bb9d3d624a072effa0c8f5735e862a35e06a37748e075d",
+ "uncompressed_sha256": "2bfee3b9182cfc5c97f8f9f2ecc155c75ebae6c0a5e478602c2de2a967b75b29"
+ },
+ {
+ "path": "diagnostics/source-identity-review-metadata-4.json.gz",
+ "bytes": 708,
+ "sha256": "86d9a5d8336c90166803bcc2ad4e024a7000513eadbb53e96162250285a8612f",
+ "uncompressed_sha256": "3e48ebf4f4fede605f740c7747f4e55e3de9837daea690742e59edeed238292e"
+ },
+ {
+ "path": "diagnostics/source-identity-review-metadata-5.json.gz",
+ "bytes": 707,
+ "sha256": "450d0b9ddb62952b68bdadf108c24a0338712cc77b83247ee701563b62102866",
+ "uncompressed_sha256": "3af5a60f9beed50ba29288551b08b36f6dd637b9a41b26a8d6ba1d28bee88299"
+ },
+ {
+ "path": "diagnostics/source-identity-review-metadata-driver-2.log.gz",
+ "bytes": 62,
+ "sha256": "68d54e9be69a3d4acea0f1e708794b0d2268dc632de6467674e07a79c7ed56e2",
+ "uncompressed_sha256": "d22e56a1283e1715f26bd55137a9d5e3833f1e07b5f0eadde16d69137ed49990"
+ },
+ {
+ "path": "diagnostics/source-identity-side-sync-1.log.gz",
+ "bytes": 3321,
+ "sha256": "7e69ce118442f28dd0dbb503127d04339e1c8be7b44a4af792e92b61849e9841",
+ "uncompressed_sha256": "253ca3fca0ee3489c85dd88a63488f717255f096baccc784403c5f552046f8e4"
+ },
+ {
+ "path": "diagnostics/source-identity-viewed.json.gz",
+ "bytes": 96,
+ "sha256": "e3334fbfe94b9936ae04be453e9790bd83f15127bac70012e3031073b8d9a5f6",
+ "uncompressed_sha256": "dd5b7ef70d3a66c4144bf4f4db5b6651f1d2702522068fc08e0fe64594b2f1ee"
+ },
+ {
+ "path": "diagnostics/source-identity-visual-review.json.gz",
+ "bytes": 850,
+ "sha256": "dd37686278292471c0e6e0b00e87c4536a923e8903dc87bfb77ab5470d42d4b0",
+ "uncompressed_sha256": "7f39277e43ac0d13963d595168d51eab80cf2b4c1dde29e94bca7d122e761667"
+ },
+ {
+ "path": "diagnostics/task-final/SourceIdentityEmitter.lean.gz",
+ "bytes": 469,
+ "sha256": "7df20759837f184e86f79280dec94ff998d6ade73d3b09dc2b3a65764c2ca3cf",
+ "uncompressed_sha256": "01b6855c12855e4c01fc7bdde1468060c21cdb0b0e319dec72c168c0a4479f70"
+ },
+ {
+ "path": "diagnostics/task-final/SourceIdentityProbe.lean.gz",
+ "bytes": 1838,
+ "sha256": "a57716c62b5a5ce3dc6974e487b393341b0f449bf0e41e39dd07f515140309e9",
+ "uncompressed_sha256": "cc14f2bfc36b9ce726e3bf6050b25d3e390ea16621ca99eb9c3f366d1edb7fb1"
+ },
+ {
+ "path": "diagnostics/task-final/SourceIdentityLiterals.lean.gz",
+ "bytes": 2024,
+ "sha256": "88e5183537edf52fd44cf93a3fa9f3bf8c84e02e895a5ff4f73bb94ce029c391",
+ "uncompressed_sha256": "c030fe1b10d8b1de6e97ca1cf7357cbec23a1ef087805d0b754e240380818fb0"
+ },
+ {
+ "path": "diagnostics/task-final/SourceIdentityControls.lean.gz",
+ "bytes": 1776,
+ "sha256": "a5a7a2d40c6434be79bed604a826cf9bc81c58ac99a871678143a237a69b8a4f",
+ "uncompressed_sha256": "502cedf46cf3d24f3fce615e1406d7fea277ba57069555158216a08fff4af32e"
+ },
+ {
+ "path": "diagnostics/task-final/SourceIdentityAudit.lean.gz",
+ "bytes": 1611,
+ "sha256": "c6048fc3abee79526a0d5877e9a95c11653b93ba37496193ddaf8c8a5eb3b117",
+ "uncompressed_sha256": "34d55c32ac53b37e03657ddf212dbb131b86d09502ce038b03c059a09219cd8a"
+ }
+ ],
+ "validation": {
+ "integration": "validation/source-identity-expanded-1.log.gz",
+ "component": "validation/source-identity-production-1.log.gz",
+ "render": "validation/source-identity-render-3.log.gz",
+ "browser": "validation/source-identity-browser-3.log.gz"
+ },
+ "compiled_files": [
+ {
+ "path": ".lake/build/lib/lean/HexRCF/SourceIdentityPacket.olean",
+ "bytes": 894640,
+ "sha256": "6430132a602984d01781a02db6a468bc5425029d6850c8f571afe9e3a398d372"
+ },
+ {
+ "path": ".lake/build/lib/lean/HexRCF/SourceIdentityLiterals.olean",
+ "bytes": 685784,
+ "sha256": "a49ebe88db7a24d23d706bba8bf44af98493c9fdc3743c0bf82eaf2dc1acdbdd"
+ },
+ {
+ "path": ".lake/build/lib/lean/HexRCF/SourceIdentityControls.olean",
+ "bytes": 829728,
+ "sha256": "2240be31c042e3e136be4082bfcb47145291125b7ca257d6edcde45fec059153"
+ },
+ {
+ "path": ".lake/build/lib/lean/HexRCF/SourceIdentityProofs.olean",
+ "bytes": 3480,
+ "sha256": "8d6024bb0f81432d384508fbc43dd1a28e171b9562526f95b2d413b1bc5c7f7b"
+ },
+ {
+ "path": ".lake/build/lib/lean/HexRCF/CellSourceQuote.olean",
+ "bytes": 3481808,
+ "sha256": "7c43697195ea425895e7a8587fb79f96274b39d8f46794692e99d74db549c6f5"
+ },
+ {
+ "path": ".lake/build/lib/lean/HexRCF/CellSourceProofs.olean",
+ "bytes": 3352,
+ "sha256": "b7707d1986295d43c2a76fe6f4c4f7a6682ff3dcd8eb2c5b7b84a35c0237b947"
+ }
+ ],
+ "scope": "Packet-derived selected-source authentication, full algebraic source proof without handwritten coefficient identity, forty-five affected targets/manual and twelve inspected captures.",
+ "limits": "The original anchor selection, coefficient value laws, fixed parent and seed facts remain supplied. Generic source/history assembly, total tactic/backend closure and strict arbitrary compiled misses remain incomplete. No matched timing/scaling or physical-sharing claim. Older records remain immutable."
+}
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-admissions-1.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-admissions-1.log.gz
new file mode 100644
index 0000000000..7043329609
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-admissions-1.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-admissions-2.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-admissions-2.log.gz
new file mode 100644
index 0000000000..7043329609
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-admissions-2.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-admissions-3.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-admissions-3.log.gz
new file mode 100644
index 0000000000..7043329609
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-admissions-3.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-assembled-1.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-assembled-1.log.gz
new file mode 100644
index 0000000000..ea44b1218e
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-assembled-1.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-assembled-1.sources.json.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-assembled-1.sources.json.gz
new file mode 100644
index 0000000000..2e0fe3cb21
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-assembled-1.sources.json.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-audit-1.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-audit-1.log.gz
new file mode 100644
index 0000000000..e09226e352
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-audit-1.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-audit-2.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-audit-2.log.gz
new file mode 100644
index 0000000000..2f811497f2
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-audit-2.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-audit-3.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-audit-3.log.gz
new file mode 100644
index 0000000000..33527686e5
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-audit-3.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-1-inputs/AlgebraicCells.lean.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-1-inputs/AlgebraicCells.lean.gz
new file mode 100644
index 0000000000..6e28365c95
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-1-inputs/AlgebraicCells.lean.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-1-inputs/source-identity-final-desktop-api.png.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-1-inputs/source-identity-final-desktop-api.png.gz
new file mode 100644
index 0000000000..87590b4a15
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-1-inputs/source-identity-final-desktop-api.png.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-1-inputs/source-identity-final-desktop-apicode.png.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-1-inputs/source-identity-final-desktop-apicode.png.gz
new file mode 100644
index 0000000000..205b7478b7
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-1-inputs/source-identity-final-desktop-apicode.png.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-1-inputs/source-identity-final-desktop-controls.png.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-1-inputs/source-identity-final-desktop-controls.png.gz
new file mode 100644
index 0000000000..cbab966cb3
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-1-inputs/source-identity-final-desktop-controls.png.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-1-inputs/source-identity-final-desktop-limits.png.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-1-inputs/source-identity-final-desktop-limits.png.gz
new file mode 100644
index 0000000000..9e8da76ecf
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-1-inputs/source-identity-final-desktop-limits.png.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-1-inputs/source-identity-final-desktop-source.png.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-1-inputs/source-identity-final-desktop-source.png.gz
new file mode 100644
index 0000000000..d0660b3061
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-1-inputs/source-identity-final-desktop-source.png.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-1-inputs/source-identity-final-desktop-sourcecode.png.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-1-inputs/source-identity-final-desktop-sourcecode.png.gz
new file mode 100644
index 0000000000..cc244f2b36
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-1-inputs/source-identity-final-desktop-sourcecode.png.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-1-inputs/source-identity-final-inspection.json.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-1-inputs/source-identity-final-inspection.json.gz
new file mode 100644
index 0000000000..af1ec81bea
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-1-inputs/source-identity-final-inspection.json.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-1-inputs/source-identity-final-narrow-api.png.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-1-inputs/source-identity-final-narrow-api.png.gz
new file mode 100644
index 0000000000..20cdba48c8
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-1-inputs/source-identity-final-narrow-api.png.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-1-inputs/source-identity-final-narrow-apicode.png.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-1-inputs/source-identity-final-narrow-apicode.png.gz
new file mode 100644
index 0000000000..92bcaa2fe7
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-1-inputs/source-identity-final-narrow-apicode.png.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-1-inputs/source-identity-final-narrow-controls.png.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-1-inputs/source-identity-final-narrow-controls.png.gz
new file mode 100644
index 0000000000..39d1d49beb
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-1-inputs/source-identity-final-narrow-controls.png.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-1-inputs/source-identity-final-narrow-limits.png.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-1-inputs/source-identity-final-narrow-limits.png.gz
new file mode 100644
index 0000000000..92461ddd72
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-1-inputs/source-identity-final-narrow-limits.png.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-1-inputs/source-identity-final-narrow-source.png.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-1-inputs/source-identity-final-narrow-source.png.gz
new file mode 100644
index 0000000000..f8dc47617b
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-1-inputs/source-identity-final-narrow-source.png.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-1-inputs/source-identity-final-narrow-sourcecode.png.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-1-inputs/source-identity-final-narrow-sourcecode.png.gz
new file mode 100644
index 0000000000..a33d149795
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-1-inputs/source-identity-final-narrow-sourcecode.png.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-1-inputs/source-identity-final-section-overflow.json.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-1-inputs/source-identity-final-section-overflow.json.gz
new file mode 100644
index 0000000000..5ac98c2c50
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-1-inputs/source-identity-final-section-overflow.json.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-1.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-1.log.gz
new file mode 100644
index 0000000000..a4839596b3
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-1.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-2-inputs/AlgebraicCells.lean.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-2-inputs/AlgebraicCells.lean.gz
new file mode 100644
index 0000000000..2a86683d4c
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-2-inputs/AlgebraicCells.lean.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-2-inputs/source-identity-final-desktop-api.png.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-2-inputs/source-identity-final-desktop-api.png.gz
new file mode 100644
index 0000000000..677f61aa41
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-2-inputs/source-identity-final-desktop-api.png.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-2-inputs/source-identity-final-desktop-apicode.png.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-2-inputs/source-identity-final-desktop-apicode.png.gz
new file mode 100644
index 0000000000..c216be5403
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-2-inputs/source-identity-final-desktop-apicode.png.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-2-inputs/source-identity-final-desktop-controls.png.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-2-inputs/source-identity-final-desktop-controls.png.gz
new file mode 100644
index 0000000000..d8e0c35d2c
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-2-inputs/source-identity-final-desktop-controls.png.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-2-inputs/source-identity-final-desktop-limits.png.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-2-inputs/source-identity-final-desktop-limits.png.gz
new file mode 100644
index 0000000000..f70a4d5376
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-2-inputs/source-identity-final-desktop-limits.png.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-2-inputs/source-identity-final-desktop-source.png.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-2-inputs/source-identity-final-desktop-source.png.gz
new file mode 100644
index 0000000000..d0660b3061
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-2-inputs/source-identity-final-desktop-source.png.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-2-inputs/source-identity-final-desktop-sourcecode.png.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-2-inputs/source-identity-final-desktop-sourcecode.png.gz
new file mode 100644
index 0000000000..cc244f2b36
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-2-inputs/source-identity-final-desktop-sourcecode.png.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-2-inputs/source-identity-final-inspection.json.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-2-inputs/source-identity-final-inspection.json.gz
new file mode 100644
index 0000000000..f3a3fb5da0
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-2-inputs/source-identity-final-inspection.json.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-2-inputs/source-identity-final-narrow-api.png.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-2-inputs/source-identity-final-narrow-api.png.gz
new file mode 100644
index 0000000000..764b1dd339
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-2-inputs/source-identity-final-narrow-api.png.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-2-inputs/source-identity-final-narrow-apicode.png.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-2-inputs/source-identity-final-narrow-apicode.png.gz
new file mode 100644
index 0000000000..412e82850c
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-2-inputs/source-identity-final-narrow-apicode.png.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-2-inputs/source-identity-final-narrow-controls.png.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-2-inputs/source-identity-final-narrow-controls.png.gz
new file mode 100644
index 0000000000..cb5070f4ef
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-2-inputs/source-identity-final-narrow-controls.png.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-2-inputs/source-identity-final-narrow-limits.png.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-2-inputs/source-identity-final-narrow-limits.png.gz
new file mode 100644
index 0000000000..a07724e461
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-2-inputs/source-identity-final-narrow-limits.png.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-2-inputs/source-identity-final-narrow-source.png.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-2-inputs/source-identity-final-narrow-source.png.gz
new file mode 100644
index 0000000000..f8dc47617b
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-2-inputs/source-identity-final-narrow-source.png.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-2-inputs/source-identity-final-narrow-sourcecode.png.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-2-inputs/source-identity-final-narrow-sourcecode.png.gz
new file mode 100644
index 0000000000..a33d149795
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-2-inputs/source-identity-final-narrow-sourcecode.png.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-2-inputs/source-identity-final-section-overflow.json.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-2-inputs/source-identity-final-section-overflow.json.gz
new file mode 100644
index 0000000000..5ac98c2c50
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-2-inputs/source-identity-final-section-overflow.json.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-2.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-2.log.gz
new file mode 100644
index 0000000000..905c8556e7
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-2.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-3.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-3.log.gz
new file mode 100644
index 0000000000..3b8e2c5489
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-browser-3.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-cases-1.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-cases-1.log.gz
new file mode 100644
index 0000000000..4f6e94d2fc
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-cases-1.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-cases-2.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-cases-2.log.gz
new file mode 100644
index 0000000000..cd595d29c2
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-cases-2.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-cases-3.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-cases-3.log.gz
new file mode 100644
index 0000000000..612ba21127
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-cases-3.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-cases-4.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-cases-4.log.gz
new file mode 100644
index 0000000000..546b370fe9
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-cases-4.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-cases-5.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-cases-5.log.gz
new file mode 100644
index 0000000000..48aeef4c22
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-cases-5.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-compatibility-1.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-compatibility-1.log.gz
new file mode 100644
index 0000000000..130a2459b8
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-compatibility-1.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-controls-1.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-controls-1.log.gz
new file mode 100644
index 0000000000..6daf49d498
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-controls-1.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-controls-2.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-controls-2.log.gz
new file mode 100644
index 0000000000..a8791c6cf1
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-controls-2.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-copyright-1.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-copyright-1.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-copyright-1.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-copyright-2.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-copyright-2.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-copyright-2.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-copyright-3.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-copyright-3.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-copyright-3.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-dag-1.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-dag-1.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-dag-1.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-dag-2.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-dag-2.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-dag-2.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-dag-3.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-dag-3.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-dag-3.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-embed-core-1.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-embed-core-1.log.gz
new file mode 100644
index 0000000000..5f2749a25f
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-embed-core-1.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-emitter-1.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-emitter-1.log.gz
new file mode 100644
index 0000000000..25e6bd3f45
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-emitter-1.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-expanded-1-inputs.json.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-expanded-1-inputs.json.gz
new file mode 100644
index 0000000000..d10c219820
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-expanded-1-inputs.json.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-expanded-1-inputs/HexManual/Chapters/HexRCF/AlgebraicCells.lean.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-expanded-1-inputs/HexManual/Chapters/HexRCF/AlgebraicCells.lean.gz
new file mode 100644
index 0000000000..6e28365c95
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-expanded-1-inputs/HexManual/Chapters/HexRCF/AlgebraicCells.lean.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-expanded-1-inputs/adapters/HexRCF/RealCoefficients.lean.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-expanded-1-inputs/adapters/HexRCF/RealCoefficients.lean.gz
new file mode 100644
index 0000000000..301a33886e
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-expanded-1-inputs/adapters/HexRCF/RealCoefficients.lean.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-expanded-1-inputs/adapters/HexRCF/RealCoefficients/SourceIdentity.lean.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-expanded-1-inputs/adapters/HexRCF/RealCoefficients/SourceIdentity.lean.gz
new file mode 100644
index 0000000000..38665bb709
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-expanded-1-inputs/adapters/HexRCF/RealCoefficients/SourceIdentity.lean.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-expanded-1-inputs/adapters/HexRCF/RealCoefficients/SourceIdentityQuote.lean.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-expanded-1-inputs/adapters/HexRCF/RealCoefficients/SourceIdentityQuote.lean.gz
new file mode 100644
index 0000000000..97a83599c4
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-expanded-1-inputs/adapters/HexRCF/RealCoefficients/SourceIdentityQuote.lean.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-expanded-1-inputs/conformance-fixtures/HexRCF/source-identity.json.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-expanded-1-inputs/conformance-fixtures/HexRCF/source-identity.json.gz
new file mode 100644
index 0000000000..6b595168e4
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-expanded-1-inputs/conformance-fixtures/HexRCF/source-identity.json.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-expanded-1-inputs/conformance/HexRCF/CellSourceProofs.lean.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-expanded-1-inputs/conformance/HexRCF/CellSourceProofs.lean.gz
new file mode 100644
index 0000000000..469a3712d8
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-expanded-1-inputs/conformance/HexRCF/CellSourceProofs.lean.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-expanded-1-inputs/conformance/HexRCF/CellSourceQuote.lean.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-expanded-1-inputs/conformance/HexRCF/CellSourceQuote.lean.gz
new file mode 100644
index 0000000000..d073437ec0
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-expanded-1-inputs/conformance/HexRCF/CellSourceQuote.lean.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-expanded-1-inputs/conformance/HexRCF/SourceIdentityControls.lean.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-expanded-1-inputs/conformance/HexRCF/SourceIdentityControls.lean.gz
new file mode 100644
index 0000000000..16b1a20110
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-expanded-1-inputs/conformance/HexRCF/SourceIdentityControls.lean.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-expanded-1-inputs/conformance/HexRCF/SourceIdentityEmit.lean.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-expanded-1-inputs/conformance/HexRCF/SourceIdentityEmit.lean.gz
new file mode 100644
index 0000000000..0f21900845
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-expanded-1-inputs/conformance/HexRCF/SourceIdentityEmit.lean.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-expanded-1-inputs/conformance/HexRCF/SourceIdentityLiterals.lean.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-expanded-1-inputs/conformance/HexRCF/SourceIdentityLiterals.lean.gz
new file mode 100644
index 0000000000..a3bf0788be
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-expanded-1-inputs/conformance/HexRCF/SourceIdentityLiterals.lean.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-expanded-1-inputs/conformance/HexRCF/SourceIdentityPacket.lean.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-expanded-1-inputs/conformance/HexRCF/SourceIdentityPacket.lean.gz
new file mode 100644
index 0000000000..3b93d82549
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-expanded-1-inputs/conformance/HexRCF/SourceIdentityPacket.lean.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-expanded-1-inputs/conformance/HexRCF/SourceIdentityProofs.lean.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-expanded-1-inputs/conformance/HexRCF/SourceIdentityProofs.lean.gz
new file mode 100644
index 0000000000..1c6cc279ae
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-expanded-1-inputs/conformance/HexRCF/SourceIdentityProofs.lean.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-expanded-1-inputs/lakefile.lean.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-expanded-1-inputs/lakefile.lean.gz
new file mode 100644
index 0000000000..6a5cf9980f
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-expanded-1-inputs/lakefile.lean.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-expanded-1-inputs/scripts/rcf/source_identity_literals.py.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-expanded-1-inputs/scripts/rcf/source_identity_literals.py.gz
new file mode 100644
index 0000000000..914a021515
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-expanded-1-inputs/scripts/rcf/source_identity_literals.py.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-expanded-1.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-expanded-1.log.gz
new file mode 100644
index 0000000000..51bce7027b
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-expanded-1.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-expanded-invocation.json.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-expanded-invocation.json.gz
new file mode 100644
index 0000000000..e6abbabc74
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-expanded-invocation.json.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-facts-core-1.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-facts-core-1.log.gz
new file mode 100644
index 0000000000..7d175b7cd6
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-facts-core-1.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-final-admissions.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-final-admissions.log.gz
new file mode 100644
index 0000000000..a3ebdb61f5
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-final-admissions.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-final-copyright.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-final-copyright.log.gz
new file mode 100644
index 0000000000..5ae0aeb8d9
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-final-copyright.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-final-dag.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-final-dag.log.gz
new file mode 100644
index 0000000000..5ae0aeb8d9
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-final-dag.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-final-lines.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-final-lines.log.gz
new file mode 100644
index 0000000000..5ae0aeb8d9
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-final-lines.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-final-metadata-admissions.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-final-metadata-admissions.log.gz
new file mode 100644
index 0000000000..deb0599e89
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-final-metadata-admissions.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-final-metadata-copyright.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-final-metadata-copyright.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-final-metadata-copyright.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-final-metadata-dag.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-final-metadata-dag.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-final-metadata-dag.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-final-metadata-diff.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-final-metadata-diff.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-final-metadata-diff.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-final-metadata-driver.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-final-metadata-driver.log.gz
new file mode 100644
index 0000000000..6b1f5d1820
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-final-metadata-driver.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-final-metadata-lines.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-final-metadata-lines.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-final-metadata-lines.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-final-metadata-relative.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-final-metadata-relative.log.gz
new file mode 100644
index 0000000000..154780e0b7
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-final-metadata-relative.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-final-metadata-selected-admissions.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-final-metadata-selected-admissions.log.gz
new file mode 100644
index 0000000000..9e3c3ae60a
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-final-metadata-selected-admissions.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-final-metadata-summary.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-final-metadata-summary.log.gz
new file mode 100644
index 0000000000..609e099a96
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-final-metadata-summary.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-final-metadata.json.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-final-metadata.json.gz
new file mode 100644
index 0000000000..815c19ddf2
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-final-metadata.json.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-full-source-1-inputs.json.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-full-source-1-inputs.json.gz
new file mode 100644
index 0000000000..d5d3076dbf
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-full-source-1-inputs.json.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-full-source-1-inputs/adapters/HexRCF/RealCoefficients.lean.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-full-source-1-inputs/adapters/HexRCF/RealCoefficients.lean.gz
new file mode 100644
index 0000000000..301a33886e
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-full-source-1-inputs/adapters/HexRCF/RealCoefficients.lean.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-full-source-1-inputs/adapters/HexRCF/RealCoefficients/SourceIdentity.lean.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-full-source-1-inputs/adapters/HexRCF/RealCoefficients/SourceIdentity.lean.gz
new file mode 100644
index 0000000000..38665bb709
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-full-source-1-inputs/adapters/HexRCF/RealCoefficients/SourceIdentity.lean.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-full-source-1-inputs/adapters/HexRCF/RealCoefficients/SourceIdentityQuote.lean.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-full-source-1-inputs/adapters/HexRCF/RealCoefficients/SourceIdentityQuote.lean.gz
new file mode 100644
index 0000000000..97a83599c4
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-full-source-1-inputs/adapters/HexRCF/RealCoefficients/SourceIdentityQuote.lean.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-full-source-1-inputs/conformance-fixtures/HexRCF/source-identity.json.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-full-source-1-inputs/conformance-fixtures/HexRCF/source-identity.json.gz
new file mode 100644
index 0000000000..6b595168e4
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-full-source-1-inputs/conformance-fixtures/HexRCF/source-identity.json.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-full-source-1-inputs/conformance/HexRCF/CellSourceProofs.lean.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-full-source-1-inputs/conformance/HexRCF/CellSourceProofs.lean.gz
new file mode 100644
index 0000000000..4c0e58cf69
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-full-source-1-inputs/conformance/HexRCF/CellSourceProofs.lean.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-full-source-1-inputs/conformance/HexRCF/CellSourceQuote.lean.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-full-source-1-inputs/conformance/HexRCF/CellSourceQuote.lean.gz
new file mode 100644
index 0000000000..d073437ec0
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-full-source-1-inputs/conformance/HexRCF/CellSourceQuote.lean.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-full-source-1-inputs/conformance/HexRCF/SourceIdentityControls.lean.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-full-source-1-inputs/conformance/HexRCF/SourceIdentityControls.lean.gz
new file mode 100644
index 0000000000..16b1a20110
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-full-source-1-inputs/conformance/HexRCF/SourceIdentityControls.lean.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-full-source-1-inputs/conformance/HexRCF/SourceIdentityLiterals.lean.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-full-source-1-inputs/conformance/HexRCF/SourceIdentityLiterals.lean.gz
new file mode 100644
index 0000000000..a3bf0788be
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-full-source-1-inputs/conformance/HexRCF/SourceIdentityLiterals.lean.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-full-source-1-inputs/conformance/HexRCF/SourceIdentityPacket.lean.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-full-source-1-inputs/conformance/HexRCF/SourceIdentityPacket.lean.gz
new file mode 100644
index 0000000000..3b93d82549
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-full-source-1-inputs/conformance/HexRCF/SourceIdentityPacket.lean.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-full-source-1-inputs/conformance/HexRCF/SourceIdentityProofs.lean.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-full-source-1-inputs/conformance/HexRCF/SourceIdentityProofs.lean.gz
new file mode 100644
index 0000000000..1c6cc279ae
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-full-source-1-inputs/conformance/HexRCF/SourceIdentityProofs.lean.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-full-source-1-inputs/lakefile.lean.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-full-source-1-inputs/lakefile.lean.gz
new file mode 100644
index 0000000000..8e06341aea
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-full-source-1-inputs/lakefile.lean.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-full-source-1-inputs/scripts/rcf/source_identity_literals.py.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-full-source-1-inputs/scripts/rcf/source_identity_literals.py.gz
new file mode 100644
index 0000000000..914a021515
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-full-source-1-inputs/scripts/rcf/source_identity_literals.py.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-full-source-1.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-full-source-1.log.gz
new file mode 100644
index 0000000000..a09245bd5f
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-full-source-1.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-lines-1.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-lines-1.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-lines-1.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-lines-2.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-lines-2.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-lines-2.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-lines-3.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-lines-3.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-lines-3.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-links-3.json.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-links-3.json.gz
new file mode 100644
index 0000000000..906f35ad78
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-links-3.json.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-literals-check.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-literals-check.log.gz
new file mode 100644
index 0000000000..ddc79da867
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-literals-check.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-main-refresh-1.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-main-refresh-1.log.gz
new file mode 100644
index 0000000000..6d062b2e2c
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-main-refresh-1.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-margin-1.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-margin-1.log.gz
new file mode 100644
index 0000000000..835538309a
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-margin-1.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-margin-2.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-margin-2.log.gz
new file mode 100644
index 0000000000..948f085637
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-margin-2.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-margin-3.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-margin-3.log.gz
new file mode 100644
index 0000000000..92f1fa61e3
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-margin-3.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-module-1.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-module-1.log.gz
new file mode 100644
index 0000000000..87f434803d
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-module-1.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-observe-1.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-observe-1.log.gz
new file mode 100644
index 0000000000..5d48c13913
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-observe-1.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-observe-2.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-observe-2.log.gz
new file mode 100644
index 0000000000..2cff2d4c94
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-observe-2.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-observe-3.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-observe-3.log.gz
new file mode 100644
index 0000000000..3745ccd857
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-observe-3.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-packets.json.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-packets.json.gz
new file mode 100644
index 0000000000..6b595168e4
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-packets.json.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-pr-opus-5.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-pr-opus-5.log.gz
new file mode 100644
index 0000000000..6e313a49c2
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-pr-opus-5.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-pr-opus-6.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-pr-opus-6.log.gz
new file mode 100644
index 0000000000..ef9947921e
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-pr-opus-6.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-pr-opus-7.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-pr-opus-7.log.gz
new file mode 100644
index 0000000000..77a1ffa790
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-pr-opus-7.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-pr-opus-8.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-pr-opus-8.log.gz
new file mode 100644
index 0000000000..4e28c87929
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-pr-opus-8.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-pr-opus-9.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-pr-opus-9.log.gz
new file mode 100644
index 0000000000..9231510866
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-pr-opus-9.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-probe-1.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-probe-1.log.gz
new file mode 100644
index 0000000000..aabfd81db9
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-probe-1.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-probe-2.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-probe-2.log.gz
new file mode 100644
index 0000000000..3fe6c8696c
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-probe-2.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-probe-3.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-probe-3.log.gz
new file mode 100644
index 0000000000..133aaeb90f
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-probe-3.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-production-1.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-production-1.log.gz
new file mode 100644
index 0000000000..395a0fa354
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-production-1.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-quote-core-1.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-quote-core-1.log.gz
new file mode 100644
index 0000000000..747da71b82
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-quote-core-1.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-render-1.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-render-1.log.gz
new file mode 100644
index 0000000000..d777b53d5a
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-render-1.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-render-2.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-render-2.log.gz
new file mode 100644
index 0000000000..a7df8766dc
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-render-2.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-render-3.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-render-3.log.gz
new file mode 100644
index 0000000000..fdd5228ae1
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-render-3.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-retained-core-1.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-retained-core-1.log.gz
new file mode 100644
index 0000000000..87f4d876f1
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-retained-core-1.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-review-admissions-2.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-review-admissions-2.log.gz
new file mode 100644
index 0000000000..149e0da05c
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-review-admissions-2.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-review-admissions-3.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-review-admissions-3.log.gz
new file mode 100644
index 0000000000..ac1fb5bc2f
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-review-admissions-3.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-review-admissions-4.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-review-admissions-4.log.gz
new file mode 100644
index 0000000000..0c0e233431
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-review-admissions-4.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-review-admissions-5.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-review-admissions-5.log.gz
new file mode 100644
index 0000000000..98ab677b3a
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-review-admissions-5.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-review-copyright-2.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-review-copyright-2.log.gz
new file mode 100644
index 0000000000..4645b2a03d
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-review-copyright-2.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-review-copyright-3.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-review-copyright-3.log.gz
new file mode 100644
index 0000000000..435b41ef34
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-review-copyright-3.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-review-copyright-4.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-review-copyright-4.log.gz
new file mode 100644
index 0000000000..6431695344
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-review-copyright-4.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-review-copyright-5.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-review-copyright-5.log.gz
new file mode 100644
index 0000000000..d9d8c4e3b6
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-review-copyright-5.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-review-dag-2.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-review-dag-2.log.gz
new file mode 100644
index 0000000000..f03dd8b029
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-review-dag-2.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-review-dag-3.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-review-dag-3.log.gz
new file mode 100644
index 0000000000..440bf92d2e
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-review-dag-3.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-review-dag-4.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-review-dag-4.log.gz
new file mode 100644
index 0000000000..73b4352600
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-review-dag-4.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-review-dag-5.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-review-dag-5.log.gz
new file mode 100644
index 0000000000..138e5297fe
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-review-dag-5.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-review-fixes-1.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-review-fixes-1.log.gz
new file mode 100644
index 0000000000..103b4df583
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-review-fixes-1.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-review-fixes-2.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-review-fixes-2.log.gz
new file mode 100644
index 0000000000..5c84bf61f8
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-review-fixes-2.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-review-lines-2.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-review-lines-2.log.gz
new file mode 100644
index 0000000000..1725fdfdf7
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-review-lines-2.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-review-lines-3.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-review-lines-3.log.gz
new file mode 100644
index 0000000000..bba9f13644
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-review-lines-3.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-review-lines-4.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-review-lines-4.log.gz
new file mode 100644
index 0000000000..b123383711
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-review-lines-4.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-review-lines-5.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-review-lines-5.log.gz
new file mode 100644
index 0000000000..fc2471db63
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-review-lines-5.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-review-metadata-2.json.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-review-metadata-2.json.gz
new file mode 100644
index 0000000000..5c5adf8b8b
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-review-metadata-2.json.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-review-metadata-3.json.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-review-metadata-3.json.gz
new file mode 100644
index 0000000000..34fe4d9a9f
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-review-metadata-3.json.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-review-metadata-4.json.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-review-metadata-4.json.gz
new file mode 100644
index 0000000000..de541a7341
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-review-metadata-4.json.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-review-metadata-5.json.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-review-metadata-5.json.gz
new file mode 100644
index 0000000000..684815ad39
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-review-metadata-5.json.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-review-metadata-driver-2.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-review-metadata-driver-2.log.gz
new file mode 100644
index 0000000000..6b1f5d1820
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-review-metadata-driver-2.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-side-sync-1.log.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-side-sync-1.log.gz
new file mode 100644
index 0000000000..e779fb09bc
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-side-sync-1.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-viewed.json.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-viewed.json.gz
new file mode 100644
index 0000000000..c391a4734d
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-viewed.json.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/source-identity-visual-review.json.gz b/reports/data/hexrcf-source-identity/diagnostics/source-identity-visual-review.json.gz
new file mode 100644
index 0000000000..76ffc350a3
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/source-identity-visual-review.json.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/task-final/SourceIdentityAudit.lean.gz b/reports/data/hexrcf-source-identity/diagnostics/task-final/SourceIdentityAudit.lean.gz
new file mode 100644
index 0000000000..7055d03553
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/task-final/SourceIdentityAudit.lean.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/task-final/SourceIdentityControls.lean.gz b/reports/data/hexrcf-source-identity/diagnostics/task-final/SourceIdentityControls.lean.gz
new file mode 100644
index 0000000000..6cc9d302fd
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/task-final/SourceIdentityControls.lean.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/task-final/SourceIdentityEmitter.lean.gz b/reports/data/hexrcf-source-identity/diagnostics/task-final/SourceIdentityEmitter.lean.gz
new file mode 100644
index 0000000000..753f3bdc5f
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/task-final/SourceIdentityEmitter.lean.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/task-final/SourceIdentityLiterals.lean.gz b/reports/data/hexrcf-source-identity/diagnostics/task-final/SourceIdentityLiterals.lean.gz
new file mode 100644
index 0000000000..67437f3d88
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/task-final/SourceIdentityLiterals.lean.gz differ
diff --git a/reports/data/hexrcf-source-identity/diagnostics/task-final/SourceIdentityProbe.lean.gz b/reports/data/hexrcf-source-identity/diagnostics/task-final/SourceIdentityProbe.lean.gz
new file mode 100644
index 0000000000..6d144b56a5
Binary files /dev/null and b/reports/data/hexrcf-source-identity/diagnostics/task-final/SourceIdentityProbe.lean.gz differ
diff --git a/reports/data/hexrcf-source-identity/header-repair.json b/reports/data/hexrcf-source-identity/header-repair.json
new file mode 100644
index 0000000000..76398af605
--- /dev/null
+++ b/reports/data/hexrcf-source-identity/header-repair.json
@@ -0,0 +1,20 @@
+{
+ "source_commit": "2475e17ee6ef365a7a317bb12e84ef78ec56125f",
+ "original_source_commit": "a4b44be2efdba00c6b40f7b932db40d1c44beb27",
+ "changed": [
+ "conformance/HexRCF/SourceIdentityControls.lean",
+ "conformance/HexRCF/SourceIdentityPacket.lean"
+ ],
+ "header": "/-\nCopyright (c) 2026 Lean FRO, LLC. All rights reserved.\nReleased under Apache 2.0 license as described in the file LICENSE.\nAuthors: Kim Morrison\n-/\n",
+ "artifacts": [
+ {
+ "path": "header-repair/source-identity-ci39162992133-final.json.gz",
+ "sha256": "87f68d49917e3e3405d47c457a95ba71499292fc90e71aaa3a88ec7529703c6a"
+ },
+ {
+ "path": "header-repair/source-identity-ci39162992133-failed.log.gz",
+ "sha256": "64662e209a36c591c9f970b50e8f2a7dbb90b37a974fc5aedaa640108af13903"
+ }
+ ],
+ "validation": "Copyright and line checks pass after tracking. All 106 pinned sources match exactly except the required copyright prefix in the two named files; Lean code unchanged. No repeat of expensive Lean builds for comment-only edits. Hosted exact-head CI remains required."
+}
diff --git a/reports/data/hexrcf-source-identity/header-repair/source-identity-ci39162992133-failed.log.gz b/reports/data/hexrcf-source-identity/header-repair/source-identity-ci39162992133-failed.log.gz
new file mode 100644
index 0000000000..5cbb19aaaa
Binary files /dev/null and b/reports/data/hexrcf-source-identity/header-repair/source-identity-ci39162992133-failed.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/header-repair/source-identity-ci39162992133-final.json.gz b/reports/data/hexrcf-source-identity/header-repair/source-identity-ci39162992133-final.json.gz
new file mode 100644
index 0000000000..78ad4f45af
Binary files /dev/null and b/reports/data/hexrcf-source-identity/header-repair/source-identity-ci39162992133-final.json.gz differ
diff --git a/reports/data/hexrcf-source-identity/validation/collect-source-identity.py.gz b/reports/data/hexrcf-source-identity/validation/collect-source-identity.py.gz
new file mode 100644
index 0000000000..f63e8de6e2
Binary files /dev/null and b/reports/data/hexrcf-source-identity/validation/collect-source-identity.py.gz differ
diff --git a/reports/data/hexrcf-source-identity/validation/constructor-check.log.gz b/reports/data/hexrcf-source-identity/validation/constructor-check.log.gz
new file mode 100644
index 0000000000..ddc79da867
Binary files /dev/null and b/reports/data/hexrcf-source-identity/validation/constructor-check.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/validation/metadata.json b/reports/data/hexrcf-source-identity/validation/metadata.json
new file mode 100644
index 0000000000..3d15da9153
--- /dev/null
+++ b/reports/data/hexrcf-source-identity/validation/metadata.json
@@ -0,0 +1,61 @@
+[
+ {
+ "name": "copyright",
+ "command": [
+ "python3",
+ "scripts/check_copyright_headers.py"
+ ],
+ "log": "source-identity-final-metadata-copyright.log",
+ "exit_code": 0
+ },
+ {
+ "name": "lines",
+ "command": [
+ "python3",
+ "scripts/check_file_line_counts.py",
+ "--base",
+ "origin/main"
+ ],
+ "log": "source-identity-final-metadata-lines.log",
+ "exit_code": 0
+ },
+ {
+ "name": "dag",
+ "command": [
+ "python3",
+ "scripts/check_dag.py"
+ ],
+ "log": "source-identity-final-metadata-dag.log",
+ "exit_code": 0
+ },
+ {
+ "name": "admissions",
+ "command": [
+ "python3",
+ "scripts/ci/check_named_admissions.py"
+ ],
+ "log": "source-identity-final-metadata-admissions.log",
+ "exit_code": 0
+ },
+ {
+ "name": "diff",
+ "command": [
+ "git",
+ "diff",
+ "HEAD",
+ "--check"
+ ],
+ "log": "source-identity-final-metadata-diff.log",
+ "exit_code": 0
+ },
+ {
+ "name": "selected-admissions",
+ "log": "source-identity-final-metadata-selected-admissions.log",
+ "exit_code": 0
+ },
+ {
+ "name": "relative",
+ "log": "source-identity-final-metadata-relative.log",
+ "exit_code": 0
+ }
+]
diff --git a/reports/data/hexrcf-source-identity/validation/run-bounded.sh b/reports/data/hexrcf-source-identity/validation/run-bounded.sh
new file mode 100644
index 0000000000..2cc8636e8a
--- /dev/null
+++ b/reports/data/hexrcf-source-identity/validation/run-bounded.sh
@@ -0,0 +1,10 @@
+#!/usr/bin/env bash
+set -euo pipefail
+exec systemd-run --user --wait --pipe --collect \
+ --unit=hex-10358-lean-build \
+ --property=MemoryMax=32G \
+ --property=MemorySwapMax=0 \
+ --property=OOMPolicy=kill \
+ --working-directory="$PWD" \
+ --setenv="PATH=$PATH" --setenv=LEAN_NUM_THREADS=2 \
+ "$@"
diff --git a/reports/data/hexrcf-source-identity/validation/source-identity-browser-3.log.gz b/reports/data/hexrcf-source-identity/validation/source-identity-browser-3.log.gz
new file mode 100644
index 0000000000..3b8e2c5489
Binary files /dev/null and b/reports/data/hexrcf-source-identity/validation/source-identity-browser-3.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/validation/source-identity-expanded-1.log.gz b/reports/data/hexrcf-source-identity/validation/source-identity-expanded-1.log.gz
new file mode 100644
index 0000000000..51bce7027b
Binary files /dev/null and b/reports/data/hexrcf-source-identity/validation/source-identity-expanded-1.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/validation/source-identity-expanded-invocation.json.gz b/reports/data/hexrcf-source-identity/validation/source-identity-expanded-invocation.json.gz
new file mode 100644
index 0000000000..e6abbabc74
Binary files /dev/null and b/reports/data/hexrcf-source-identity/validation/source-identity-expanded-invocation.json.gz differ
diff --git a/reports/data/hexrcf-source-identity/validation/source-identity-expanded-targets.txt.gz b/reports/data/hexrcf-source-identity/validation/source-identity-expanded-targets.txt.gz
new file mode 100644
index 0000000000..7ead069967
Binary files /dev/null and b/reports/data/hexrcf-source-identity/validation/source-identity-expanded-targets.txt.gz differ
diff --git a/reports/data/hexrcf-source-identity/validation/source-identity-final-metadata-admissions.log.gz b/reports/data/hexrcf-source-identity/validation/source-identity-final-metadata-admissions.log.gz
new file mode 100644
index 0000000000..deb0599e89
Binary files /dev/null and b/reports/data/hexrcf-source-identity/validation/source-identity-final-metadata-admissions.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/validation/source-identity-final-metadata-copyright.log.gz b/reports/data/hexrcf-source-identity/validation/source-identity-final-metadata-copyright.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-source-identity/validation/source-identity-final-metadata-copyright.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/validation/source-identity-final-metadata-dag.log.gz b/reports/data/hexrcf-source-identity/validation/source-identity-final-metadata-dag.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-source-identity/validation/source-identity-final-metadata-dag.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/validation/source-identity-final-metadata-diff.log.gz b/reports/data/hexrcf-source-identity/validation/source-identity-final-metadata-diff.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-source-identity/validation/source-identity-final-metadata-diff.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/validation/source-identity-final-metadata-lines.log.gz b/reports/data/hexrcf-source-identity/validation/source-identity-final-metadata-lines.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-source-identity/validation/source-identity-final-metadata-lines.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/validation/source-identity-final-metadata-relative.log.gz b/reports/data/hexrcf-source-identity/validation/source-identity-final-metadata-relative.log.gz
new file mode 100644
index 0000000000..154780e0b7
Binary files /dev/null and b/reports/data/hexrcf-source-identity/validation/source-identity-final-metadata-relative.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/validation/source-identity-final-metadata-selected-admissions.log.gz b/reports/data/hexrcf-source-identity/validation/source-identity-final-metadata-selected-admissions.log.gz
new file mode 100644
index 0000000000..9e3c3ae60a
Binary files /dev/null and b/reports/data/hexrcf-source-identity/validation/source-identity-final-metadata-selected-admissions.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/validation/source-identity-final-metadata.py.gz b/reports/data/hexrcf-source-identity/validation/source-identity-final-metadata.py.gz
new file mode 100644
index 0000000000..5361365b19
Binary files /dev/null and b/reports/data/hexrcf-source-identity/validation/source-identity-final-metadata.py.gz differ
diff --git a/reports/data/hexrcf-source-identity/validation/source-identity-memory-policy.txt.gz b/reports/data/hexrcf-source-identity/validation/source-identity-memory-policy.txt.gz
new file mode 100644
index 0000000000..2116af9988
Binary files /dev/null and b/reports/data/hexrcf-source-identity/validation/source-identity-memory-policy.txt.gz differ
diff --git a/reports/data/hexrcf-source-identity/validation/source-identity-production-1.log.gz b/reports/data/hexrcf-source-identity/validation/source-identity-production-1.log.gz
new file mode 100644
index 0000000000..395a0fa354
Binary files /dev/null and b/reports/data/hexrcf-source-identity/validation/source-identity-production-1.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/validation/source-identity-render-3.log.gz b/reports/data/hexrcf-source-identity/validation/source-identity-render-3.log.gz
new file mode 100644
index 0000000000..fdd5228ae1
Binary files /dev/null and b/reports/data/hexrcf-source-identity/validation/source-identity-render-3.log.gz differ
diff --git a/reports/data/hexrcf-source-identity/verify.py b/reports/data/hexrcf-source-identity/verify.py
new file mode 100644
index 0000000000..bb7c1e4d00
--- /dev/null
+++ b/reports/data/hexrcf-source-identity/verify.py
@@ -0,0 +1,72 @@
+#!/usr/bin/env python3
+"""Verify packet-derived selected-source authentication evidence."""
+import argparse
+import gzip
+import hashlib
+import json
+from pathlib import Path
+import subprocess
+
+parser = argparse.ArgumentParser(description=__doc__)
+parser.add_argument('--check-head', action='store_true')
+args = parser.parse_args()
+root = Path(__file__).resolve().parent
+repo = root.parents[2]
+record = json.loads((root / 'context.json').read_text())
+git = lambda *a: subprocess.check_output(['git', *a], cwd=repo)
+sha = lambda b: hashlib.sha256(b).hexdigest()
+read = lambda p: gzip.decompress((root / p).read_bytes()).decode()
+log = lambda key: read(record['validation'][key])
+
+assert git('rev-parse', record['source_commit'] + '^{tree}').decode().strip() == record['source_tree']
+for path, digest in record['sources'].items():
+ assert sha(git('show', record['source_commit'] + ':' + path)) == digest, path
+ if args.check_head:
+ assert sha((repo / path).read_bytes()) == digest, path
+if args.check_head:
+ paths = git('diff', '--name-only', record['source_commit']).decode().splitlines()
+ paths += git('ls-files', '--others', '--exclude-standard').decode().splitlines()
+ assert all(p.startswith('reports/') for p in paths), paths
+for path in record['unchanged_guards']:
+ assert git('show', record['baseline_commit'] + ':' + path) == git('show', record['source_commit'] + ':' + path), path
+for item in record['artifacts']:
+ raw = (root / item['path']).read_bytes()
+ assert len(raw) == item['bytes'] and sha(raw) == item['sha256'], item['path']
+ if 'uncompressed_sha256' in item:
+ assert sha(gzip.decompress(raw)) == item['uncompressed_sha256'], item['path']
+for key in record['validation']:
+ assert 'code=exited, status=0/SUCCESS' in log(key), key
+assert 'Build completed successfully (14473 jobs)' in log('integration')
+for text in ['quoted source selection proofNodes=673461',
+ 'source identity exact/below budgets and success/failure rollback checked: 673461',
+ 'source identity refused wrong conjugate with complete rollback',
+ 'source identity refused wrong coefficient proof with complete rollback',
+ '218 theorems/179 definitions; nonempty traces=385']:
+ assert text in log('component'), text
+for text in ['original algebraic source quotation proofNodes=8644422',
+ '1192 theorems/202 definitions; nonempty traces=1352',
+ 'source-identity proposals match frozen packets (10284 bytes)']:
+ assert text in log('integration'), text
+assert 'Source identity constructor literals are current' in read('validation/constructor-check.log.gz')
+metadata = json.loads((root / 'validation/metadata.json').read_text())
+assert {x['name'] for x in metadata} == {'copyright', 'lines', 'dag', 'admissions', 'selected-admissions', 'relative', 'diff'}
+assert all(x['exit_code'] == 0 for x in metadata)
+invocation = json.loads(read('validation/source-identity-expanded-invocation.json.gz'))
+targets = read('validation/source-identity-expanded-targets.txt.gz').splitlines()
+assert len(set(targets)) == len(targets) == 45
+assert invocation['argv'][1:] == ['build', *targets]
+assert {'HexManual', 'HexRCFRealCoefficients', 'HexRCF.CellSourceProofs', 'HexRCF.SourceIdentityProofs', 'HexRCF.SourceIdentityEmit'} <= set(targets)
+memory = read('validation/source-identity-memory-policy.txt.gz')
+assert all(x in memory for x in ['ActiveState=active', 'MemoryMax=34359738368', 'MemorySwapMax=0', 'OOMPolicy=kill', 'LEAN_NUM_THREADS=2'])
+inspection = json.loads((root / 'captures/inspection.json').read_text())
+kinds = ['source', 'sourcecode', 'api', 'apicode', 'limits', 'controls']
+assert {(x['label'], x['kind']) for x in inspection} == {(a, b) for a in ['desktop', 'narrow'] for b in kinds}
+assert all(x['descendantOverflow'] == 0 and x['targetScrollWidth'] <= x['targetWidth'] + 1 for x in inspection)
+review = json.loads((root / 'captures/visual-review.json').read_text())
+assert len(review['captures']) == 12
+for item in review['captures']:
+ assert item['viewed'] and sha((root / item['path']).read_bytes()) == item['sha256']
+assert len(record['compiled_files']) == 6 and all(x['bytes'] > 0 for x in record['compiled_files'])
+print(f'Verified {len(record["artifacts"])} artifacts/{len(record["sources"])} sources; '
+ '45 targets/manual, packet-derived selected-source identity and 12 inspected captures; '
+ 'general source/history assembly remains incomplete')
diff --git a/reports/data/hexrcf-source-identity/verify_header_repair.py b/reports/data/hexrcf-source-identity/verify_header_repair.py
new file mode 100644
index 0000000000..4f99537d71
--- /dev/null
+++ b/reports/data/hexrcf-source-identity/verify_header_repair.py
@@ -0,0 +1,31 @@
+#!/usr/bin/env python3
+"""Verify that the tracked-file copyright repair changes only two comments."""
+import hashlib
+import json
+from pathlib import Path
+import subprocess
+import sys
+
+root = Path(__file__).resolve().parent
+repo = root.parents[2]
+subprocess.run([sys.executable, str(root / 'verify.py')], check=True)
+record = json.loads((root / 'context.json').read_text())
+repair = json.loads((root / 'header-repair.json').read_text())
+git = lambda *args: subprocess.check_output(['git', *args], cwd=repo)
+assert repair['original_source_commit'] == record['source_commit']
+expected = {'conformance/HexRCF/SourceIdentityControls.lean',
+ 'conformance/HexRCF/SourceIdentityPacket.lean'}
+assert set(repair['changed']) == expected
+header = ('/-\nCopyright (c) 2026 Lean FRO, LLC. All rights reserved.\n'
+ 'Released under Apache 2.0 license as described in the file LICENSE.\n'
+ 'Authors: Kim Morrison\n-/\n').encode()
+assert repair['header'].encode() == header
+for path in record['sources']:
+ before = git('show', record['source_commit'] + ':' + path)
+ after = git('show', repair['source_commit'] + ':' + path)
+ assert after == (header + before if path in expected else before), path
+ assert (repo / path).read_bytes() == after, path
+for item in repair['artifacts']:
+ assert hashlib.sha256((root / item['path']).read_bytes()).hexdigest() == item['sha256']
+subprocess.run([sys.executable, 'scripts/check_copyright_headers.py'], cwd=repo, check=True)
+print('Verified all 106 current sources: only the two exact copyright prefixes differ')
diff --git a/reports/data/hexrcf-source-packet-assembly/README.md b/reports/data/hexrcf-source-packet-assembly/README.md
new file mode 100644
index 0000000000..ee8fab94d2
--- /dev/null
+++ b/reports/data/hexrcf-source-packet-assembly/README.md
@@ -0,0 +1,7 @@
+# Combined source-packet quotation
+
+See [the report](../../hexrcf-source-packet-assembly.md). Run `python3 reports/data/hexrcf-source-packet-assembly/verify.py --check-head` for the current source binding, or omit the flag to verify the immutable implementation.
+
+The request derives the exact parent's codec, sign, signature and cleanliness, restores the descriptor/header, prepares its context and independently replays both original source packets before source authentication. No native producer is invoked. Parent/model, original alias selection and coefficient-map laws remain supplied.
+
+The record binds the actual wrapper and conformance inputs, logs, budget/refusal tests and original fresh proof audits. The first example run is preliminary: a later probe-only signature change requires the final second run, whose exact input hashes are recorded. The prior private assembly and initial wrapper-only source snapshot are retained. The first snapshot was reconstructed from the retained prior source and the exact initial replacement; it is setup provenance, not the authoritative final build input. Old source/measurement records keep their pins. No full manual, conformance sweep or scientific timing rerun is claimed. All own builds use one serial 32 GiB/no-swap/two-Lean-thread unit.
diff --git a/reports/data/hexrcf-source-packet-assembly/context.json b/reports/data/hexrcf-source-packet-assembly/context.json
new file mode 100644
index 0000000000..0828deffd2
--- /dev/null
+++ b/reports/data/hexrcf-source-packet-assembly/context.json
@@ -0,0 +1,157 @@
+{
+ "source_commit": "9f5f63da8f8d6673eb547c6ae666a001fd56361c",
+ "base_commit": "8691b38c150b9f9ccf30678a67173dd67c4cfe4b",
+ "parent_context_sha256": "a2923d9e72fb31b61cb487a389cbc1a4c5b371361ecbb15cef4504de0e167169",
+ "sources": {
+ ".github/workflows/ci.yml": "5db61a70eb52d7478994377179c1b35b360a794fcff4b1c257496b5a6394231c",
+ "AGENTS.md": "4e0a48cf49a61e56ed84c8b28e232b5bfad29f2da20571377692be6e1c316f30",
+ "HexManual/Chapters/HexRCF/AlgebraicCells.lean": "c4dd5ca465697595f02c06d87e30bdd218ce9632b05b696f31f932f99d1fb8d4",
+ "HexManual/Chapters/HexRCF/RootQuote.lean": "2e0746d1a35c192d1127a0c9768470e6e36b14d9d96b5eebbb29c26a03c91e78",
+ "HexManual/Chapters/HexRCF/RootTableQuote.lean": "78d1be637a32593b03f000ab153c7fdf05a1b5332ea3efb9c186aacfd68f0ae5",
+ "HexRCF/HandlerTests/Admission.lean": "770518931dd3f7ab1934e327460b80607338207b17d97363b82c2a5c93669c36",
+ "HexRCF/README.md": "3830d758a8a75d59df1a6dd01f59204a86858b5eda3e43a78f9e9e9c2d769a8a",
+ "HexRCF/SPEC/hex-rcf.md": "df8c6bb2435a2794faa36bc77e41f4c936f06ae149f29c3e68fe0d79f4ebfafb",
+ "HexRCF/Tactic.lean": "26021113d121cfc9ab0d6e7ea7ce8d02eb6c4637c42bbdd2647ecd2d9291f3fb",
+ "HexRealClosure/Algebraic.lean": "d05f9fb72fe9544ae9ddc685dff17080f876aa4c99c70e8992d511e011f6a454",
+ "HexRealClosure/ContextData.lean": "ca29790752b8d25f10d03a9877690a5ff40f1fdf6815c96fe9693941206e662c",
+ "HexRealClosure/SignCodec.lean": "7126323c97b77204386795a0f252f1babfd0ed7f3dba7ee3927a99b9d5c1852a",
+ "HexRealClosure/SignFacts.lean": "9c22837e93e6f50cc96310163e352ac608fbcfbd6275edab33751da2fd84f47c",
+ "HexRealClosure/SignatureCodecTests.lean": "ffc72777523ac0e92b563481804bdfb581fb0173fe7a021009737d57959b4462",
+ "HexRealClosure/TowerContext.lean": "6ef8b87b2d81cb177505a4bbc88befa078b20578cedd49e836d850753c203ee3",
+ "HexSignDet/Codec/Coefficients.lean": "0fef85cb8c11fe614705ca230f437785c9c7c6b76d9362449f834bb25e82d3aa",
+ "HexSignDet/Codec/FiniteGraph.lean": "bb1e0611aa74d7c7b4a74f83f05e481ccd4584523e0aaeca7beba53c70a6895c",
+ "HexSignDet/Codec/FiniteLaws.lean": "a30dbc456d8613e247bfc691376206a7da405b8a3e08ef7a550c0b857a234ab8",
+ "HexSignDet/Codec/GraphLaws.lean": "292cebb2c9ea1131ddd0458de3997aac95cfc1422e99dbd8fb5e7f6d08fcdaa5",
+ "HexSignDet/Codec/Laws.lean": "7b7293bcd80b89c887e1227f7ac27f2f7a2ce936adca3b14818ec5c228c36740",
+ "HexSignDet/Codec/NodeLaws.lean": "77621bd2ab5c1d7c99d1a7355dd7418ed43a06c4ca5eb885bd37cc1ba6e394f2",
+ "HexSignDet/DagBounds.lean": "1ff482fbcb51846b61348d1708062647fb0f61bf2eb04184b86fa17d7bac33a7",
+ "HexSignDet/DagReplay.lean": "be3317f306194a18a314e9f8fca021eefda76ea17704c5ec89daeff9a2867f42",
+ "HexSignDet/DagSelectedSigns.lean": "3ffbfbe2cebf6ad7b5db0cf8b0a3c5a26142a46465d2577a08ddb292594eed26",
+ "HexSignDetTheory/RootList.lean": "aead98f0d004fb1407a437c0eacec5235287a8669e56a6856bad4e3d7ec3d088",
+ "HexSignDetTheory/ThomRoots.lean": "b37b36fec150e23165101ecf05b4105ba429c52050efb3452df496cecc0a456e",
+ "PLAN.md": "e94a60324486913b4a04650edd617c4ff8bef469dc7fd311adea8407c6662ea0",
+ "SPEC/real-closure-execution.md": "bc0948ad7de6969baaed89c0b3052cb0d21d64d634f8a336f9a7dde446b057f5",
+ "adapters/HexRCF/RealCoefficients.lean": "6b9f9a7eaa6e98e30a1faae38252d8616a15595f86347abee0aa54c8fb2f2161",
+ "adapters/HexRCF/RealCoefficients/CellOperations.lean": "3561cc80c7c866141f05a387ce1100ee0cadd98281a03395551cebcde5bd6e2a",
+ "adapters/HexRCF/RealCoefficients/CellQuote.lean": "c572911d7be36001e0f1885c3460f3eb19425d90e78345b1c46878ddf3e6c6ea",
+ "adapters/HexRCF/RealCoefficients/CellRead.lean": "65274f89c940bad74eab8c9075f9256c6ed3d8b90d3294aec4e85883e425fb10",
+ "adapters/HexRCF/RealCoefficients/RationalQuote.lean": "675e2ba065b696f257adefc07fe30ddb0190f321d86005444579ea5a0744bdf5",
+ "adapters/HexRCF/RealCoefficients/RealModel.lean": "712b4fd3edff8eaa6f93e501da5debf04529d1ea8c11a18389820f866d179c43",
+ "adapters/HexRCF/RealCoefficients/Reify.lean": "ea8474b9e253f93a1583064ca99ec0bf376dadf5457fd60b57e9e18460cf449c",
+ "adapters/HexRCF/RealCoefficients/RootBuild.lean": "be8e2b24aad8e67946afbe70d48a83ff2ca6db75cb62cca0185ec309f596994a",
+ "adapters/HexRCF/RealCoefficients/RootContext.lean": "792176eab63e5e62b759a10893569946ef6d019566b8116c85237b3e16fcdb86",
+ "adapters/HexRCF/RealCoefficients/RootHeader.lean": "681f2a964bc30f65a92a0fb1a58b4d4013eb396df37ca813962702065fb46261",
+ "adapters/HexRCF/RealCoefficients/RootPrepare.lean": "de72a8e3ac4adb13365801476467bf691e630d0952b018ccecd88846c3bdb025",
+ "adapters/HexRCF/RealCoefficients/RootQuote.lean": "89f3ad4b0c4a8ae058560201900877035d896427176b944b34acde9f9b23d7e8",
+ "adapters/HexRCF/RealCoefficients/RootReplay.lean": "35e5c09926534d79082443ffbaf1ccaa9bca6095f0250da4f0b45d23e185c023",
+ "adapters/HexRCF/RealCoefficients/RowPacketQuote.lean": "edbb3d23f72422f5a1dea163c283848ec285418b7bdb9eedba553b83066121af",
+ "adapters/HexRCF/RealCoefficients/RowQuote.lean": "3b7e7d2ebcbd53a6ea893bc8f4c884d767430f8b98a3f1ca770fe7c7b122f3c9",
+ "adapters/HexRCF/RealCoefficients/ScalarPacket.lean": "6b8353895cff48df759bb4fc8cb5cda767313974e0a57f1e59973249b6eefdca",
+ "adapters/HexRCF/RealCoefficients/ScalarQuote.lean": "fee2617a998f29d05c8959b484060ac1d719359c6d851a8ff6699fa9cb370acc",
+ "adapters/HexRCF/RealCoefficients/SignatureQuote.lean": "c3bb71b52c2a544b902bc256b3a162e1c3c4e7f94ae6b21808914e67109710eb",
+ "adapters/HexRCF/RealCoefficients/SourceBuild.lean": "eb66b3f56832e3fd6644a980fe3f13f62242dda88e84c6bf99dfc717c74290fe",
+ "adapters/HexRCF/RealCoefficients/SourceIdentity.lean": "d98ae0c746003be89edfc969e464383e6a6bda253e0dae8c290605e8b98ce3c3",
+ "adapters/HexRCF/RealCoefficients/SourceIdentityQuote.lean": "8cd267d4b1b59070ba08f2a45446548c4df880b040d201c4cb513b549ed8d381",
+ "adapters/HexRealClosureTheory/Algebraic.lean": "2495153acbe4e468521913a2f5d6569831cd05f5ee48d5ddb26fc31a43438c7e",
+ "adapters/HexRealClosureTheory/SignFacts.lean": "c2b8cf96de0cccc2c0c3cbe83f0afd7c40ab9736b75f377ec5bfedc0907f34e3",
+ "adapters/HexRealClosureTheory/TowerModel.lean": "70d0e57e8ecc78eb9b7675d875157462d27cf9494d49d72bba019eaa6dd1d788",
+ "conformance-fixtures/HexRCF/bounded-source.json": "566c5f1f092abab73312bb630a02e24873e6723942d450320dae2b52aaa30a75",
+ "conformance-fixtures/HexRCF/enumerated-source.json": "d1f70734b5c8d5c7f768b4d2c3f5359d8e1cc44105885e7f8af597102c8b5c98",
+ "conformance-fixtures/HexRCF/source-identity.json": "93540b60174e0d8bd85ca80d99c6cbdc427815f341a12a6e38f4b38613073f53",
+ "conformance/HexRCF/BoundedSource.lean": "5c2166dd0977d3e27d3fefa89f9c0382e9dd7226bff629112cfd0e0faad1127b",
+ "conformance/HexRCF/BoundedSource/Cubic.lean": "da1c0e1b549fce22cb1f7ea7bb6888dff1d7b59c1219c5b580376bbb4a25ecde",
+ "conformance/HexRCF/BoundedSource/Inputs.lean": "7ffcd6d62f175f3027e2327fd4a86885e933e0715a85ab7afb9b112d76d49a39",
+ "conformance/HexRCF/BoundedSource/Negative.lean": "abb7ef67395b2b90f9e12f551bcc0d16146cca067bf3567707e924c2ecd2fb77",
+ "conformance/HexRCF/BoundedSource/Positive.lean": "d83184a9d54264ba7e1c138eb674db1d67df39681575fa91d96a4681af774321",
+ "conformance/HexRCF/BoundedSource/Proofs.lean": "7f9d47d59dd47aafa90a09d23a966efc0d2ca7fbfa3cdce5ae4771ae1da01a9f",
+ "conformance/HexRCF/BoundedSource/Quote.lean": "fa7ee7f5c8c8dcdd98bc8d56eaa697f1c9f5b443ebaab6de119f1d3c5cb887c9",
+ "conformance/HexRCF/CellFinishCases.lean": "619208fd6528c4f12d4e12bc4ee6fd4016ab0948db16a61237a2aefbcd523a7c",
+ "conformance/HexRCF/CellFinishProofs.lean": "fd232e3b4a64f444d834ae244a110ad0910aa35c4773a90b6a3b26a48693e22c",
+ "conformance/HexRCF/CellQuoteStageProofs.lean": "a14f3f20e1add07f569ab222994995c409552aededef738972a70c864b94b919",
+ "conformance/HexRCF/CellQuoteStages.lean": "e4593f2c8169af00398ff608dd53cbbfbe6b8408ddbdd07de6f64f59acf8a25f",
+ "conformance/HexRCF/CellSourceProofs.lean": "cea22d1a532dc4415130ff1c9c20f43707ab9696c7df53c858bdfa41ad76f018",
+ "conformance/HexRCF/CellSourceQuote.lean": "bea057fe5c9470d701e02974fbd6a83e945bbaba1225ca294830f54ef762f504",
+ "conformance/HexRCF/DependentQuote.lean": "0df154544a17857334480e7c577ecbcf1afe04165fa2da1a5a6407bf41e85518",
+ "conformance/HexRCF/DependentQuoteData.lean": "ed254475e78fa6edb27d4e55222a598b07b7357154ea0495d6195f2f1d39ee46",
+ "conformance/HexRCF/DependentQuoteProofs.lean": "5875aa9748f50340668e58aea97b196d3353313352fb8c819ae5ee3542556980",
+ "conformance/HexRCF/DependentScalarProofs.lean": "9fe3f3871f929e28355985c574c0b8c742be062ae5f19033d7d8bf9e67cd88d8",
+ "conformance/HexRCF/DependentScalarQuote.lean": "e20dd7346c337dd17126c394965f268e568706730f475844d7c0907051224933",
+ "conformance/HexRCF/EnumeratedSource/Cubic.lean": "011464c56dc3ffc5a6bd1e62dc9ff8b35ac6d0e621beceb0336b69d8f626b78f",
+ "conformance/HexRCF/EnumeratedSource/CubicData0.lean": "79b971cb2816d7ee980c595199eedbfddfd7cdb62ea12bc71dfcb24d304f69da",
+ "conformance/HexRCF/EnumeratedSource/Inputs.lean": "23ae13a33e132ee7221c5fa353e71073fc05bd660dfc3ecf6620584b62b40306",
+ "conformance/HexRCF/EnumeratedSource/Negative.lean": "261fcd979ff77c772a28ecc89776b5771cec920fc4e58a0dfe2886aee43a58d7",
+ "conformance/HexRCF/EnumeratedSource/NegativeData0.lean": "c0700606f805664f89dd0106dfb5aebb5ab18949adbb30e5b71ffeb20bb4fdaf",
+ "conformance/HexRCF/EnumeratedSource/Positive.lean": "1382c958e53cdb8a04afd1e6d6f173fe697ba15a3321bf29c3e03059923c7181",
+ "conformance/HexRCF/EnumeratedSource/PositiveData0.lean": "41674140d15cf0136ca29b627f667b952355916b269ff7d2c14247ba2d21b3b1",
+ "conformance/HexRCF/EnumeratedSource/Proofs.lean": "3c08b8018b68469d3c6e7940f730d6b8fadbf6175df2e6f5017ed4fc24d50d5b",
+ "conformance/HexRCF/EnumeratedSource/Quote.lean": "8987d21be058f777f0ba875e917fcda77892bced1029616804fabd57f4eb41d8",
+ "conformance/HexRCF/FrozenSignatureConformance.lean": "8e7d432aecb87fb89bb188e4c579e86fb5c3348c5430f1e2b1a00f1f820a940e",
+ "conformance/HexRCF/FrozenSignatureProofs.lean": "55de6da9b0b3dc2d1e384d6c838d13294287c44060afb8e70aa2a0c8e01a81cb",
+ "conformance/HexRCF/ProofFunctionPublic.lean": "f928c9f0dd0a704d34a516b6282cfa6a7a4eb6c112d49689c450647a44370a6b",
+ "conformance/HexRCF/PublicSignPacket.lean": "c32d73c5634376907b965e1ea6cf69352fdda1f1945ce2f34a378cc217778102",
+ "conformance/HexRCF/PublicSignPacketControls.lean": "b4f98bd8ef190a361dd7752d4d5ece0cfbd862ff4face5a06dfabecf87096028",
+ "conformance/HexRCF/PublicSignPacketProofs.lean": "442f6d3e04a36db25611f0396103a1eee5ee411c40e8f3cc93df1acf7898bbbb",
+ "conformance/HexRCF/PublicSignPacketValues.lean": "72705dba30f04f986188903fb49b983c6f0a664895116fca8bd8b6b46b6517e5",
+ "conformance/HexRCF/QuotientQuote.lean": "97b2cbc9abdb46db33a9a91328f331edf8dea055cc244489158121cde8dc1903",
+ "conformance/HexRCF/QuotientQuoteData.lean": "ec26777d655a7898d7f7922fcea8f426a3f8c77a53000b69b6fe1755a0348870",
+ "conformance/HexRCF/QuotientQuoteProofs.lean": "f1d95accf6caed1c7354408b3a1a0b29493a526e82036390e39102ebe80c6752",
+ "conformance/HexRCF/QuotientQuotePublic.lean": "a3bd9a082df14a0ac93ba3798e13c6ebbf9dff98d7613264713aa281a5a18bea",
+ "conformance/HexRCF/RationalQuoteConformance.lean": "f03844d4a44a5c61b702ed0b1697619da9b20f4ac42122b9d1a6d3fa4a2de9ac",
+ "conformance/HexRCF/RecursiveScalarQuote.lean": "83ba1f3ed63afdbb148f171736a0aacebc7eef4ae3bf32dca29811515c3f051b",
+ "conformance/HexRCF/ReplayBoundary.lean": "bbc09553d62198a18e897981d5f443c81f09dba8d371d2cdaeaa846d22cbc2f8",
+ "conformance/HexRCF/ReplayBoundaryProofs.lean": "d755462a7344dc9f5304fba255bcefb42188c1de5a51d92d8567a27f22482dc2",
+ "conformance/HexRCF/ReplayHelperProofs.lean": "6dd68829399ec8908a877a3f7705cc9321e49b9581d0d577d114950242e43a57",
+ "conformance/HexRCF/ReplayHelpers.lean": "4501fa39e52a8a2bb52fdd7b183c16801090dd026304105afb4342a1c441c2a3",
+ "conformance/HexRCF/RootContextConformance.lean": "0c52084609ec3de8afd51330a7d2cc97f7bae1d8b2bbc421138783940fc7db37",
+ "conformance/HexRCF/RootContextProofs.lean": "b4c2e3ce686ce8bc60bfdafe2be2f566c6de46758f4827d307f3d5592b59d2e9",
+ "conformance/HexRCF/RootHeaderBudget.lean": "db30b6b7781fabd238ea2c934477e5ae281cc6cd905f11848ce46eb66ef45fe0",
+ "conformance/HexRCF/RootHeaderControls.lean": "aca063af3bfe475166aef92193f162c25a0e53eea094087cf334406a3d513157",
+ "conformance/HexRCF/RootHeaderPacket.lean": "dcd8e63c1d656fc800690b35554a0f835a1ee0bb96312215f8c12348d8a0e79a",
+ "conformance/HexRCF/RootHeaderProofs.lean": "e6630f0464fd0096b9af74b4640d2abc514a62c0b0fc706b4a2e74c9602eeb8c",
+ "conformance/HexRCF/RootHeaderValues.lean": "de9a8fc7c2e9371cbd3324eb700180411e49865dbc6535a74d2c882f74e38e13",
+ "conformance/HexRCF/RootPrepareControls.lean": "b36af8efd1e12227188b6fb7bde258e80d5c1c874338a324cb53c5ccc6c1330f",
+ "conformance/HexRCF/RootPreparePacket.lean": "86185bcc5fdddb1f700d869a115a91034954714f69a83171fd0e96f601e76fe3",
+ "conformance/HexRCF/RootPrepareProofs.lean": "4a5bc6655576a6592fcd5cd801bcfebd425243b1bb6cb39b0bb46d500a3938be",
+ "conformance/HexRCF/RootPreparePublic.lean": "a9e09cbe8d1287b97dde71ad1c6dbe149cfbacb6f81f41a8493ee802416d0805",
+ "conformance/HexRCF/RootQuoteCases.lean": "602d15ef501e969183bffbda7fb3c0f00a174ba5c2dbc35370ee7fce896944dd",
+ "conformance/HexRCF/RootQuoteConformance.lean": "f6a652a243ba62cffc671d1365c6ab47b6618179acb172019ec5609ea0324d3c",
+ "conformance/HexRCF/RootQuoteData.lean": "faa259d129d5c65a063c7143e45d5d9d19573ed49862aa5ecb3978ff389cb514",
+ "conformance/HexRCF/RootQuoteSource.lean": "aca1654efc1a452aca8ef573bb8ea3a435a4e1e18a4dca854d9bcc8e350d511d",
+ "conformance/HexRCF/RootTableQuote/Conformance.lean": "ec5bd136df58cc24a40ca989e3d33e55923082aed7591b234f55c70c013c74ad",
+ "conformance/HexRCF/RowPacketControls.lean": "ab69c57b66fe8129be5f07e5e5f42b7b35d60a23b305ec224d2d7dca28ac7c82",
+ "conformance/HexRCF/RowQuoteCases.lean": "8d2ebddc05d5f0d08b62b50d3498b34b47ab0b3accc4d0a572e621fd83d606d4",
+ "conformance/HexRCF/RowQuoteData.lean": "ce60cb18f548f55e929d4803c7ed824ad0a7621fd4abda09a191f76393fabf0c",
+ "conformance/HexRCF/RowQuoteDepth.lean": "6ada3c44bea055425d223dc57eafb4f0c88349713d815ded4beec9720f7802ad",
+ "conformance/HexRCF/RowQuoteProofs.lean": "317d4f981f32bb28666fcabc6248f4a57fe67c95a7fe431f7993aeacfa377ed3",
+ "conformance/HexRCF/SelectedRoot/KernelCheck.lean": "499299274a75c6e2a70630c8ae442f21ab7d0514c7d23cffdde3f09fd17421cb",
+ "conformance/HexRCF/SharedQuoteCallbacks.lean": "6132cc3722af3cf251d11c857a572f09128d3614d931724965cbcf488dc4db6d",
+ "conformance/HexRCF/SignPacketProofs.lean": "3980cad31637f5798b2c351e1efc2a29b946de1d90e06fb11acd85e2a5c46321",
+ "conformance/HexRCF/SignPacketQuote.lean": "fcda11e6c75353d4519c4eb0e9c302b84d7e41030316c99fcacb885dabf97545",
+ "conformance/HexRCF/SignatureQuoteConformance.lean": "26f16c37cb9e0d5c09a082787f4a66673437adbf998023fd5e9625db16ff5d3f",
+ "conformance/HexRCF/SourceBuild.lean": "f70e66af4041dffdc43ed12145c5ff07a097d3c1a180caac629df6c0a15f8eeb",
+ "conformance/HexRCF/SourceIdentityControls.lean": "c655486606139658d73e5b4d394228c3632596fec366e3b410ea9deb5b085553",
+ "conformance/HexRCF/SourceIdentityEmit.lean": "aa12f1517efc675698c0795c5a463a77d7a3466bcc146d4981d82e913059ed99",
+ "conformance/HexRCF/SourceIdentityLiterals.lean": "61ee2ce703d4965b00e1e20cc62288a0bde4e839d68ca09e1b66281f4a3e48d0",
+ "conformance/HexRCF/SourceIdentityPacket.lean": "614b3132274de5bebebeecb09cf479ac68723f1518e1f52912543a812985a4a9",
+ "conformance/HexRCF/SourceIdentityProofs.lean": "c449238d5f915dbe1f337688bc4f7357f3a93e31ad79eaa9e8e159c280749173",
+ "conformance/HexRCF/SourceSelectionCases.lean": "368ded3f07bb4be269f26a2fd2b7044904ea16d1dd1cba41d8bccb373d004005",
+ "conformance/HexRCF/TreeQuote.lean": "049065aa64bb13432b1d7183759979d28eebba98d18b6f54ab849e5953ce92c1",
+ "conformance/HexRCF/TreeQuoteData.lean": "c595c2278d2997483b755aa585da874c27eed40e4e1a8106d7f553e4f574776b",
+ "conformance/HexRCF/TreeQuoteProofs.lean": "f9a40248237480f8972df62dff548ef0599205b76014e070866e72586f161933",
+ "conformance/HexRCF/TreeQuotePublic.lean": "adc6dc6871208f31970cf5ae0c2472fd325a72e1df8114a6e8178ef8b2c71570",
+ "experiments/KernelReplay/AxiomClosure.lean": "f49377265f05f52b633b10a59255a03731e08d022cc54763de9851c5b5325034",
+ "lake-manifest.json": "fd2dc4df30cd44e4d30568489d616e7bcc8a78747500139134be56f35ae746a4",
+ "lakefile.lean": "0b45717104644561ca7415d4c9f43bae6b318cf75eb00e0757a44c9f7db700bc",
+ "lean-toolchain": "bc84812c94489d1e3e191baa1dc10d5eb684382d7fe9d2a5ab085e72c1c67e47",
+ "libraries.yml": "14e3dd1c01bb0c369b2216e2733378d61172040fd9f69dd0354d4e1267d9c5c1",
+ "scripts/bench/proof_only_runtime_exemptions/lakefile-rcf-bounded-source-fea47caa-baeeaf73.json": "eaea20ebc9579f4c50ff88344d8c9be3da9fc7c7d0981e9e0d5251dd04a6ab3f",
+ "scripts/bench/proof_only_runtime_exemptions/lakefile-rcf-source-build-fea47caa-1ab4e88c.json": "38fcff53934dab8ff78146cc782b039265da3c6684638a5b00ab725d5a2c8e01",
+ "scripts/rcf/selected_literals.py": "03e02fa50575882c0784894b76746ff8e594b9a1eb0a285811bc76ee87265e72",
+ "scripts/rcf/source_identity_literals.py": "ea5d7df949871c4975367a759b9632d033f3a240523c2c917c9141220ffdfd78"
+ },
+ "changed": [
+ "adapters/HexRCF/RealCoefficients/SourceIdentityQuote.lean",
+ "conformance/HexRCF/BoundedSource/Quote.lean"
+ ],
+ "scope": "One combined descriptor/scalar/source quotation helper, no new syntax recognizer, producer, owner arithmetic or predecessor/history discovery. Original source model/alias/coefficient laws remain supplied; no full #10358 completion."
+}
diff --git a/reports/data/hexrcf-source-packet-assembly/manifest.json b/reports/data/hexrcf-source-packet-assembly/manifest.json
new file mode 100644
index 0000000000..d2c9dce53f
--- /dev/null
+++ b/reports/data/hexrcf-source-packet-assembly/manifest.json
@@ -0,0 +1,26 @@
+{
+ "README.md": "c64476a31afcf10bd2b3239f29e031450dc60a00fb930d5340e6b07acc525063",
+ "context.json": "696cbac6c1bfbf44e1ac2178e7ec278e1ad2bf65a03dc1e3adb53f82596da3c6",
+ "source-packet-assembly-change.patch.gz": "6379c39ad4b1c7cf47db974c6c4bc2bc84bb9b5d89f7fa3ac0e107788f486f96",
+ "source-packet-assembly-core-1.log.gz": "e2b7ee15cc8237376cbca4b4680c12a7948d45c96e98c4e5ad4fa914f76ae75d",
+ "source-packet-assembly-final-admissions.log.gz": "69a21bde72fd2d28ac505ea4f1e28c3b0a4e96998cb90674e584133f1fa72701",
+ "source-packet-assembly-final-copyright.log.gz": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "source-packet-assembly-final-dag.log.gz": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "source-packet-assembly-final-diff.log.gz": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "source-packet-assembly-final-freshness.log.gz": "2deda7e9f1dd38e7a3fd37966a9bdf33c905c76164d13133571f675b1ab75b13",
+ "source-packet-assembly-final-integration.log.gz": "6e29a7da337806f9fb395faf64f5fde118b299a493a648427a3527bfe373df26",
+ "source-packet-assembly-final-invocation.json": "994cfdab43e9ebb031e0cb7f10984f9b1e6a36bf69baa6f5139a4a2d8a452c51",
+ "source-packet-assembly-final-lines.log.gz": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "source-packet-assembly-final-literals.log.gz": "d363c41d04cc71aaa8b2bb97d1faf6ff4b311e5874c10d339f87aba4d4b97158",
+ "source-packet-assembly-final-manifest.log.gz": "87c23c0a8f1159f2320fb2015c285ee9167c8c51ef9f6df2f69fc217f4b11029",
+ "source-packet-assembly-final-metadata-driver.log.gz": "fad959565bdcdbb109ca8a93309586fb8c06ad6d2797926dd6e5c6ccbe15db09",
+ "source-packet-assembly-final-metadata.json": "9342d2512520af810d262d9f5bf03776396ec561b5055c35db7cd0d3d109093f",
+ "source-packet-assembly-final-source_literals.log.gz": "167f5ed8596142f3f1d3fdc40daa83c40dd6f4c31c76c0268645b4a297e47a56",
+ "source-packet-assembly-implementation-commit.log.gz": "7fe8594a89df4cd86772a99a9c5c511ddab7f00041430fc6b66e44748bfb2df8",
+ "source-packet-assembly-inputs.json": "3b5a81a000a6d9b5fdde0ae050d5e4d2dcddaac77a3c8cb6d64d9e62e4353032",
+ "source-packet-assembly-prior-quote.lean.txt": "70da87d5868d0c3d725e9ed2a531a4b22221e42d794cfd259359f6524be1eaef",
+ "source-packet-assembly-quote-1.lean.txt": "1e050be7ca68ca50f685a1ce4f9237b6d44fad5447a85783065d5b489db47c72",
+ "source-packet-assembly-quote-1.log.gz": "8e319c026d53fff978d986dd0a34e8615ab4a990273a14e6173ac5975378f320",
+ "source-packet-assembly-quote-2.log.gz": "84b3ea7755d4eef87de4bf8a0316316ed4381ca56ee4f29ed2715d68581b5cd7",
+ "verify.py": "7a976e7d4afc7d5529ebfde32dc10489d9f01c3d59d993fbfd595f0192e9ed49"
+}
diff --git a/reports/data/hexrcf-source-packet-assembly/source-packet-assembly-change.patch.gz b/reports/data/hexrcf-source-packet-assembly/source-packet-assembly-change.patch.gz
new file mode 100644
index 0000000000..f2876301cf
Binary files /dev/null and b/reports/data/hexrcf-source-packet-assembly/source-packet-assembly-change.patch.gz differ
diff --git a/reports/data/hexrcf-source-packet-assembly/source-packet-assembly-core-1.log.gz b/reports/data/hexrcf-source-packet-assembly/source-packet-assembly-core-1.log.gz
new file mode 100644
index 0000000000..c15b09afa3
Binary files /dev/null and b/reports/data/hexrcf-source-packet-assembly/source-packet-assembly-core-1.log.gz differ
diff --git a/reports/data/hexrcf-source-packet-assembly/source-packet-assembly-final-admissions.log.gz b/reports/data/hexrcf-source-packet-assembly/source-packet-assembly-final-admissions.log.gz
new file mode 100644
index 0000000000..bd2ec29cdf
Binary files /dev/null and b/reports/data/hexrcf-source-packet-assembly/source-packet-assembly-final-admissions.log.gz differ
diff --git a/reports/data/hexrcf-source-packet-assembly/source-packet-assembly-final-copyright.log.gz b/reports/data/hexrcf-source-packet-assembly/source-packet-assembly-final-copyright.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-source-packet-assembly/source-packet-assembly-final-copyright.log.gz differ
diff --git a/reports/data/hexrcf-source-packet-assembly/source-packet-assembly-final-dag.log.gz b/reports/data/hexrcf-source-packet-assembly/source-packet-assembly-final-dag.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-source-packet-assembly/source-packet-assembly-final-dag.log.gz differ
diff --git a/reports/data/hexrcf-source-packet-assembly/source-packet-assembly-final-diff.log.gz b/reports/data/hexrcf-source-packet-assembly/source-packet-assembly-final-diff.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-source-packet-assembly/source-packet-assembly-final-diff.log.gz differ
diff --git a/reports/data/hexrcf-source-packet-assembly/source-packet-assembly-final-freshness.log.gz b/reports/data/hexrcf-source-packet-assembly/source-packet-assembly-final-freshness.log.gz
new file mode 100644
index 0000000000..44c03f6508
Binary files /dev/null and b/reports/data/hexrcf-source-packet-assembly/source-packet-assembly-final-freshness.log.gz differ
diff --git a/reports/data/hexrcf-source-packet-assembly/source-packet-assembly-final-integration.log.gz b/reports/data/hexrcf-source-packet-assembly/source-packet-assembly-final-integration.log.gz
new file mode 100644
index 0000000000..8a7dad4097
Binary files /dev/null and b/reports/data/hexrcf-source-packet-assembly/source-packet-assembly-final-integration.log.gz differ
diff --git a/reports/data/hexrcf-source-packet-assembly/source-packet-assembly-final-invocation.json b/reports/data/hexrcf-source-packet-assembly/source-packet-assembly-final-invocation.json
new file mode 100644
index 0000000000..3272279164
--- /dev/null
+++ b/reports/data/hexrcf-source-packet-assembly/source-packet-assembly-final-invocation.json
@@ -0,0 +1,12 @@
+{
+ "argv": [
+ "/home/kim/.codex/tasks/hex-10358/bin/run-bounded",
+ "lake",
+ "build",
+ "HexRCFRealCoefficients",
+ "+HexRCF.BoundedSource.Proofs",
+ "+HexRCF.SourceIdentityProofs"
+ ],
+ "cwd": "/home/kim/worktrees/hex-dev/hex-dev-issue-10358",
+ "scope": "New combined source-packet quotation and malformed/exact-budget controls; actual frozen proof audit, optional umbrella and prior source identity compatibility, not full conformance/manual or performance study"
+}
diff --git a/reports/data/hexrcf-source-packet-assembly/source-packet-assembly-final-lines.log.gz b/reports/data/hexrcf-source-packet-assembly/source-packet-assembly-final-lines.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-source-packet-assembly/source-packet-assembly-final-lines.log.gz differ
diff --git a/reports/data/hexrcf-source-packet-assembly/source-packet-assembly-final-literals.log.gz b/reports/data/hexrcf-source-packet-assembly/source-packet-assembly-final-literals.log.gz
new file mode 100644
index 0000000000..251ef5b170
Binary files /dev/null and b/reports/data/hexrcf-source-packet-assembly/source-packet-assembly-final-literals.log.gz differ
diff --git a/reports/data/hexrcf-source-packet-assembly/source-packet-assembly-final-manifest.log.gz b/reports/data/hexrcf-source-packet-assembly/source-packet-assembly-final-manifest.log.gz
new file mode 100644
index 0000000000..1e2a3e818a
Binary files /dev/null and b/reports/data/hexrcf-source-packet-assembly/source-packet-assembly-final-manifest.log.gz differ
diff --git a/reports/data/hexrcf-source-packet-assembly/source-packet-assembly-final-metadata-driver.log.gz b/reports/data/hexrcf-source-packet-assembly/source-packet-assembly-final-metadata-driver.log.gz
new file mode 100644
index 0000000000..02e417be18
Binary files /dev/null and b/reports/data/hexrcf-source-packet-assembly/source-packet-assembly-final-metadata-driver.log.gz differ
diff --git a/reports/data/hexrcf-source-packet-assembly/source-packet-assembly-final-metadata.json b/reports/data/hexrcf-source-packet-assembly/source-packet-assembly-final-metadata.json
new file mode 100644
index 0000000000..472beaadd3
--- /dev/null
+++ b/reports/data/hexrcf-source-packet-assembly/source-packet-assembly-final-metadata.json
@@ -0,0 +1,88 @@
+[
+ {
+ "name": "copyright",
+ "argv": [
+ "python3",
+ "scripts/check_copyright_headers.py"
+ ],
+ "exit_code": 0,
+ "log": "source-packet-assembly-final-copyright.log"
+ },
+ {
+ "name": "lines",
+ "argv": [
+ "python3",
+ "scripts/check_file_line_counts.py",
+ "--base",
+ "origin/main"
+ ],
+ "exit_code": 0,
+ "log": "source-packet-assembly-final-lines.log"
+ },
+ {
+ "name": "dag",
+ "argv": [
+ "python3",
+ "scripts/check_dag.py"
+ ],
+ "exit_code": 0,
+ "log": "source-packet-assembly-final-dag.log"
+ },
+ {
+ "name": "admissions",
+ "argv": [
+ "python3",
+ "scripts/ci/check_named_admissions.py"
+ ],
+ "exit_code": 0,
+ "log": "source-packet-assembly-final-admissions.log"
+ },
+ {
+ "name": "manifest",
+ "argv": [
+ "python3",
+ "scripts/release/check_released_manifest.py"
+ ],
+ "exit_code": 0,
+ "log": "source-packet-assembly-final-manifest.log"
+ },
+ {
+ "name": "freshness",
+ "argv": [
+ "python3",
+ "scripts/bench/check_factor_sweep_freshness.py"
+ ],
+ "exit_code": 0,
+ "log": "source-packet-assembly-final-freshness.log"
+ },
+ {
+ "name": "literals",
+ "argv": [
+ "python3",
+ "scripts/rcf/selected_literals.py",
+ "--check"
+ ],
+ "exit_code": 0,
+ "log": "source-packet-assembly-final-literals.log"
+ },
+ {
+ "name": "source_literals",
+ "argv": [
+ "python3",
+ "scripts/rcf/source_identity_literals.py",
+ "--check"
+ ],
+ "exit_code": 0,
+ "log": "source-packet-assembly-final-source_literals.log"
+ },
+ {
+ "name": "diff",
+ "argv": [
+ "git",
+ "diff",
+ "--check"
+ ],
+ "exit_code": 0,
+ "log": "source-packet-assembly-final-diff.log"
+ }
+]
diff --git a/reports/data/hexrcf-source-packet-assembly/source-packet-assembly-final-source_literals.log.gz b/reports/data/hexrcf-source-packet-assembly/source-packet-assembly-final-source_literals.log.gz
new file mode 100644
index 0000000000..ddc79da867
Binary files /dev/null and b/reports/data/hexrcf-source-packet-assembly/source-packet-assembly-final-source_literals.log.gz differ
diff --git a/reports/data/hexrcf-source-packet-assembly/source-packet-assembly-implementation-commit.log.gz b/reports/data/hexrcf-source-packet-assembly/source-packet-assembly-implementation-commit.log.gz
new file mode 100644
index 0000000000..c7cfb21ebc
Binary files /dev/null and b/reports/data/hexrcf-source-packet-assembly/source-packet-assembly-implementation-commit.log.gz differ
diff --git a/reports/data/hexrcf-source-packet-assembly/source-packet-assembly-inputs.json b/reports/data/hexrcf-source-packet-assembly/source-packet-assembly-inputs.json
new file mode 100644
index 0000000000..a5180a7806
--- /dev/null
+++ b/reports/data/hexrcf-source-packet-assembly/source-packet-assembly-inputs.json
@@ -0,0 +1,4 @@
+{
+ "adapters/HexRCF/RealCoefficients/SourceIdentityQuote.lean": "8cd267d4b1b59070ba08f2a45446548c4df880b040d201c4cb513b549ed8d381",
+ "conformance/HexRCF/BoundedSource/Quote.lean": "fa7ee7f5c8c8dcdd98bc8d56eaa697f1c9f5b443ebaab6de119f1d3c5cb887c9"
+}
diff --git a/reports/data/hexrcf-source-packet-assembly/source-packet-assembly-prior-quote.lean.txt b/reports/data/hexrcf-source-packet-assembly/source-packet-assembly-prior-quote.lean.txt
new file mode 100644
index 0000000000..f69b15a459
--- /dev/null
+++ b/reports/data/hexrcf-source-packet-assembly/source-packet-assembly-prior-quote.lean.txt
@@ -0,0 +1,115 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+import HexRCF.BoundedSource.Inputs
+import HexRCF.RealCoefficients.SourceIdentityQuote
+import HexRCF.RealCoefficients.RootHeader
+import HexRCF.RealCoefficients.RootPrepare
+import HexRCF.RealCoefficients.RationalQuote
+
+/-! Restore bounded source proposals from literal descriptors and graphs.
+The native producer and its selected-root value never enter these proofs. The
+rational model, source alias selection and coefficient-map laws remain inputs. -/
+namespace Hex.RCF.BoundedSourceQuote
+open Lean Meta Qq Hex Hex.RealClosure Hex.SignDet Hex.RCF.RealCoefficients
+open Hex.RCF.SelectedRootTests Hex.RCF.SourceIdentityCases Hex.RCF.BoundedSourceInputs
+set_option maxRecDepth 32768
+set_option maxHeartbeats 60000000
+
+private meta def quote (literal : Name) (anchor : SourceIdentity.Anchor)
+ (equationValue enclosureValue : Expr) : Hex.RealFormula.Reify.ReifyM RootQuote.Result := do
+ let decode : RootQuote.DecoderM := fun expression =>
+ liftM (RationalQuote.decoder (mkConst ``Data.registry) expression)
+ let reader ← mkAppM ``Algebraic.RootReplay.readDescriptor
+ #[q(Data.base.codec),q(Tower.Signature.codec),q(Data.base.sign),q(Data.base.signature),
+ mkConst (literal ++ `subject),mkConst (literal ++ `graph)]
+ let header ← RootHeader.quoteWith reader decode
+ let clean ← mkAppM ``Tower.Context.isClean #[mkConst ``Data.base]
+ let prepared ← RootPrepare.prepareWith header clean
+ let scalar (polynomial sign graph : Expr) : MetaM Expr := do
+ mkAppM ``ScalarPacket.read #[mkConst ``Data.rational,q(Data.base.codec),prepared.source,
+ polynomial,sign,graph]
+ let packets : SourceIdentity.Packets := {
+ equation := ← scalar (mkConst (literal ++ `equation)) (toExpr (0 : Int))
+ (mkConst (literal ++ `equationGraph))
+ enclosure := ← scalar (mkConst (literal ++ `margin)) (toExpr (1 : Int))
+ (mkConst (literal ++ `marginGraph))
+ equationValue, enclosureValue }
+ let result ← SourceIdentity.quoteWith anchor packets prepared.context prepared.same
+ fun expression => do
+ if let some result ← prepared.decoder expression then return some result
+ decode expression
+ return ⟨result.root,result.proof,(← get).budget.consumed⟩
+
+private meta def retain (name : Name) (literal : Name) (anchor : SourceIdentity.Anchor)
+ (equationValue enclosureValue : Expr) : MetaM Unit := do
+ let result ← RootQuote.runWith (quote literal anchor equationValue enclosureValue)
+ let result ← match result with
+ | .ok result => pure result
+ | .error error => throwError "bounded source quotation refused: {Hex.RealFormula.Reify.Error.toMessageData error}"
+ let target ← inferType result.proof
+ let proof ← Hex.RCF.checkProof `boundedSource target result.proof
+ addDecl (.thmDecl {name,levelParams := [],type := target,value := proof})
+ let axioms ← collectAxioms name
+ unless axioms.all (fun name => [``propext,``Classical.choice,``Quot.sound].contains name) do
+ throwError "bounded source quotation has inadmissible dependencies"
+ logInfo m!"bounded source {name}: proofNodes={result.usage.proofNodes}; axioms={axioms}"
+ if name == `Hex.RCF.BoundedSourceQuote.positive then
+ let sentinel ← mkFreshExprMVar (mkConst ``Nat)
+ let before ← getMCtx
+ let names := (← (← getEnv).getLocalConstantInfos).map (·.name)
+ let config : Hex.RealFormula.Reify.Config := {}
+ let small := {config with ring := {config.ring with budget :=
+ {config.ring.budget with proofNodes := result.usage.proofNodes-1}}}
+ let action : Hex.RealFormula.Reify.ReifyM RootQuote.Result := do
+ sentinel.mvarId!.assign (mkNatLit 96)
+ quote literal anchor equationValue enclosureValue
+ let .error (.budget exhausted) ← RootQuote.runWith action small
+ | throwError "bounded source accepted below its charged budget"
+ unless exhausted.dimension == .proofNodes do throwError "wrong bounded source budget dimension"
+ let after ← getMCtx
+ unless !(← sentinel.mvarId!.isAssigned) && before.mvarCounter == after.mvarCounter &&
+ before.lmvarCounter == after.lmvarCounter && before.eAssignment.toList == after.eAssignment.toList &&
+ before.lAssignment.toList == after.lAssignment.toList &&
+ before.decls.toList.map Prod.fst == after.decls.toList.map Prod.fst &&
+ (← (← getEnv).getLocalConstantInfos).map (·.name) == names do
+ throwError "bounded source exhaustion retained metavariables or declarations"
+ logInfo m!"bounded source below-budget refusal and state restoration: limit={result.usage.proofNodes-1}"
+
+run_meta do
+ withoutExporting do
+ let positive : SourceIdentity.Anchor := {
+ polynomial := mkConst ``SquareTwo.polynomial
+ square := mkConst ``SquareTwo.square
+ witness := mkConst ``positiveWitness
+ precision := mkConst ``positivePrecision
+ value := q(Real.sqrt 2)
+ selected := mkConst ``SquareTwo.square_selected_root }
+ retain `Hex.RCF.BoundedSourceQuote.positive
+ `Hex.RCF.RealCoefficients.BoundedSource.Positive positive
+ (mkConst ``positiveEquation) (mkConst ``positiveMargin)
+ let negative : SourceIdentity.Anchor := {positive with
+ square := mkConst ``negativeSquare
+ witness := mkConst ``negative_witness
+ precision := mkConst ``negative_precision
+ value := q((Field.literalRep SquareTwo.polynomial negativeSquare
+ negative_witness negative_precision).root.re)
+ selected := ← mkEqRefl q((Field.literalRep SquareTwo.polynomial negativeSquare
+ negative_witness negative_precision).root.re) }
+ retain `Hex.RCF.BoundedSourceQuote.negative
+ `Hex.RCF.RealCoefficients.BoundedSource.Negative negative
+ (mkConst ``negativeEquation) (mkConst ``negativeMargin)
+ let cubic : SourceIdentity.Anchor := {
+ polynomial := mkConst ``CubeTwo.polynomial
+ square := mkConst ``CubeTwo.square
+ witness := mkConst ``cubicWitness
+ precision := mkConst ``cubicPrecision
+ value := q((2 : ℝ) ^ (1 / 3 : ℝ))
+ selected := mkConst ``cubicSelected }
+ retain `Hex.RCF.BoundedSourceQuote.cubic
+ `Hex.RCF.RealCoefficients.BoundedSource.Cubic cubic
+ (mkConst ``cubicEquation) (mkConst ``cubicMargin)
+
+end Hex.RCF.BoundedSourceQuote
diff --git a/reports/data/hexrcf-source-packet-assembly/source-packet-assembly-quote-1.lean.txt b/reports/data/hexrcf-source-packet-assembly/source-packet-assembly-quote-1.lean.txt
new file mode 100644
index 0000000000..9d70987a3b
--- /dev/null
+++ b/reports/data/hexrcf-source-packet-assembly/source-packet-assembly-quote-1.lean.txt
@@ -0,0 +1,106 @@
+/-
+Copyright (c) 2026 Lean FRO, LLC. All rights reserved.
+Released under Apache 2.0 license as described in the file LICENSE.
+Authors: Kim Morrison
+-/
+import HexRCF.BoundedSource.Inputs
+import HexRCF.RealCoefficients.SourceIdentityQuote
+import HexRCF.RealCoefficients.RootHeader
+import HexRCF.RealCoefficients.RootPrepare
+import HexRCF.RealCoefficients.RationalQuote
+
+/-! Restore bounded source proposals from literal descriptors and graphs.
+The native producer and its selected-root value never enter these proofs. The
+rational model, source alias selection and coefficient-map laws remain inputs. -/
+namespace Hex.RCF.BoundedSourceQuote
+open Lean Meta Qq Hex Hex.RealClosure Hex.SignDet Hex.RCF.RealCoefficients
+open Hex.RCF.SelectedRootTests Hex.RCF.SourceIdentityCases Hex.RCF.BoundedSourceInputs
+set_option maxRecDepth 32768
+set_option maxHeartbeats 60000000
+
+private meta def quote (literal : Name) (anchor : SourceIdentity.Anchor)
+ (equationValue enclosureValue : Expr) : Hex.RealFormula.Reify.ReifyM RootQuote.Result := do
+ let decode : RootQuote.DecoderM := fun expression =>
+ liftM (RationalQuote.decoder (mkConst ``Data.registry) expression)
+ let packet : SourceIdentity.Packet := {
+ subject := mkConst (literal ++ `subject)
+ graph := mkConst (literal ++ `graph)
+ equation := mkConst (literal ++ `equation)
+ equationGraph := mkConst (literal ++ `equationGraph)
+ enclosure := mkConst (literal ++ `margin)
+ enclosureGraph := mkConst (literal ++ `marginGraph)
+ equationValue, enclosureValue }
+ let result ← SourceIdentity.quotePacketWith anchor packet
+ (mkConst ``Data.base) (mkConst ``Data.rational) decode
+ return ⟨result.root,result.proof,(← get).budget.consumed⟩
+
+private meta def retain (name : Name) (literal : Name) (anchor : SourceIdentity.Anchor)
+ (equationValue enclosureValue : Expr) : MetaM Unit := do
+ let result ← RootQuote.runWith (quote literal anchor equationValue enclosureValue)
+ let result ← match result with
+ | .ok result => pure result
+ | .error error => throwError "bounded source quotation refused: {Hex.RealFormula.Reify.Error.toMessageData error}"
+ let target ← inferType result.proof
+ let proof ← Hex.RCF.checkProof `boundedSource target result.proof
+ addDecl (.thmDecl {name,levelParams := [],type := target,value := proof})
+ let axioms ← collectAxioms name
+ unless axioms.all (fun name => [``propext,``Classical.choice,``Quot.sound].contains name) do
+ throwError "bounded source quotation has inadmissible dependencies"
+ logInfo m!"bounded source {name}: proofNodes={result.usage.proofNodes}; axioms={axioms}"
+ if name == `Hex.RCF.BoundedSourceQuote.positive then
+ let sentinel ← mkFreshExprMVar (mkConst ``Nat)
+ let before ← getMCtx
+ let names := (← (← getEnv).getLocalConstantInfos).map (·.name)
+ let config : Hex.RealFormula.Reify.Config := {}
+ let small := {config with ring := {config.ring with budget :=
+ {config.ring.budget with proofNodes := result.usage.proofNodes-1}}}
+ let action : Hex.RealFormula.Reify.ReifyM RootQuote.Result := do
+ sentinel.mvarId!.assign (mkNatLit 96)
+ quote literal anchor equationValue enclosureValue
+ let .error (.budget exhausted) ← RootQuote.runWith action small
+ | throwError "bounded source accepted below its charged budget"
+ unless exhausted.dimension == .proofNodes do throwError "wrong bounded source budget dimension"
+ let after ← getMCtx
+ unless !(← sentinel.mvarId!.isAssigned) && before.mvarCounter == after.mvarCounter &&
+ before.lmvarCounter == after.lmvarCounter && before.eAssignment.toList == after.eAssignment.toList &&
+ before.lAssignment.toList == after.lAssignment.toList &&
+ before.decls.toList.map Prod.fst == after.decls.toList.map Prod.fst &&
+ (← (← getEnv).getLocalConstantInfos).map (·.name) == names do
+ throwError "bounded source exhaustion retained metavariables or declarations"
+ logInfo m!"bounded source below-budget refusal and state restoration: limit={result.usage.proofNodes-1}"
+
+run_meta do
+ withoutExporting do
+ let positive : SourceIdentity.Anchor := {
+ polynomial := mkConst ``SquareTwo.polynomial
+ square := mkConst ``SquareTwo.square
+ witness := mkConst ``positiveWitness
+ precision := mkConst ``positivePrecision
+ value := q(Real.sqrt 2)
+ selected := mkConst ``SquareTwo.square_selected_root }
+ retain `Hex.RCF.BoundedSourceQuote.positive
+ `Hex.RCF.RealCoefficients.BoundedSource.Positive positive
+ (mkConst ``positiveEquation) (mkConst ``positiveMargin)
+ let negative : SourceIdentity.Anchor := {positive with
+ square := mkConst ``negativeSquare
+ witness := mkConst ``negative_witness
+ precision := mkConst ``negative_precision
+ value := q((Field.literalRep SquareTwo.polynomial negativeSquare
+ negative_witness negative_precision).root.re)
+ selected := ← mkEqRefl q((Field.literalRep SquareTwo.polynomial negativeSquare
+ negative_witness negative_precision).root.re) }
+ retain `Hex.RCF.BoundedSourceQuote.negative
+ `Hex.RCF.RealCoefficients.BoundedSource.Negative negative
+ (mkConst ``negativeEquation) (mkConst ``negativeMargin)
+ let cubic : SourceIdentity.Anchor := {
+ polynomial := mkConst ``CubeTwo.polynomial
+ square := mkConst ``CubeTwo.square
+ witness := mkConst ``cubicWitness
+ precision := mkConst ``cubicPrecision
+ value := q((2 : ℝ) ^ (1 / 3 : ℝ))
+ selected := mkConst ``cubicSelected }
+ retain `Hex.RCF.BoundedSourceQuote.cubic
+ `Hex.RCF.RealCoefficients.BoundedSource.Cubic cubic
+ (mkConst ``cubicEquation) (mkConst ``cubicMargin)
+
+end Hex.RCF.BoundedSourceQuote
diff --git a/reports/data/hexrcf-source-packet-assembly/source-packet-assembly-quote-1.log.gz b/reports/data/hexrcf-source-packet-assembly/source-packet-assembly-quote-1.log.gz
new file mode 100644
index 0000000000..90539e8524
Binary files /dev/null and b/reports/data/hexrcf-source-packet-assembly/source-packet-assembly-quote-1.log.gz differ
diff --git a/reports/data/hexrcf-source-packet-assembly/source-packet-assembly-quote-2.log.gz b/reports/data/hexrcf-source-packet-assembly/source-packet-assembly-quote-2.log.gz
new file mode 100644
index 0000000000..c388b4584c
Binary files /dev/null and b/reports/data/hexrcf-source-packet-assembly/source-packet-assembly-quote-2.log.gz differ
diff --git a/reports/data/hexrcf-source-packet-assembly/verify.py b/reports/data/hexrcf-source-packet-assembly/verify.py
new file mode 100644
index 0000000000..5aeb98377f
--- /dev/null
+++ b/reports/data/hexrcf-source-packet-assembly/verify.py
@@ -0,0 +1,43 @@
+#!/usr/bin/env python3
+"""Check immutable complete-source quotation assembly evidence."""
+from pathlib import Path
+import argparse,gzip,hashlib,json,subprocess
+here=Path(__file__).resolve().parent;root=next(p for p in here.parents if (p/'.git').exists())
+a=argparse.ArgumentParser();a.add_argument('--check-head',action='store_true');args=a.parse_args()
+sha=lambda b:hashlib.sha256(b).hexdigest()
+c=json.loads((here/'context.json').read_text());parent=root/'reports/data/hexrcf-enumerated-progress/context.json'
+assert sha(parent.read_bytes())==c['parent_context_sha256']
+for p,digest in c['sources'].items():
+ raw=subprocess.check_output(['git','show',c['source_commit']+':'+p],cwd=root);assert sha(raw)==digest,p
+ if args.check_head:assert sha((root/p).read_bytes())==digest,p
+ if p not in c['changed']:
+ before=subprocess.check_output(['git','show',c['base_commit']+':'+p],cwd=root);assert raw==before,p
+for name,digest in json.loads((here/'manifest.json').read_text()).items():assert sha((here/name).read_bytes())==digest,name
+read=lambda name:gzip.decompress((here/(name+'.gz')).read_bytes()).decode()
+for name in ['source-packet-assembly-core-1.log','source-packet-assembly-quote-2.log','source-packet-assembly-final-integration.log']:
+ assert 'code=exited, status=0/SUCCESS' in read(name),name
+log=read('source-packet-assembly-quote-2.log')
+for count in [687783,690202,731072]:assert f'proofNodes={count}' in log,count
+assert 'limit=687782' in log
+for kind in ['descriptor binding','equation sign','coefficient law','parent model']:
+ assert f'assembled source refused {kind}; metavariables and declarations restored' in log,kind
+for name in ['source-packet-assembly-quote-2.log','source-packet-assembly-final-integration.log']:
+ s=read(name);assert '392 theorems/449 definitions; nonempty traces=811' in s,name
+log=read('source-packet-assembly-final-integration.log')
+assert 'proofNodes=673461' in log and '218 theorems/179 definitions; nonempty traces=385' in log
+assert 'full axioms=[propext,' in log and 'Quot.sound]' in log
+for r in json.loads((here/'source-packet-assembly-final-metadata.json').read_text()):assert r['exit_code']==0,r
+for p,digest in json.loads((here/'source-packet-assembly-inputs.json').read_text()).items():assert c['sources'][p]==digest,p
+source=subprocess.check_output(['git','show',c['source_commit']+':adapters/HexRCF/RealCoefficients/SourceIdentityQuote.lean'],cwd=root).decode()
+before=subprocess.check_output(['git','show',c['base_commit']+':adapters/HexRCF/RealCoefficients/SourceIdentityQuote.lean'],cwd=root).decode()
+start=source.index('/-- Literal inputs for one source-selection request.')
+rest=source[:start].removesuffix('\n')+source[source.index('end Hex.RCF.RealCoefficients.SourceIdentity',start):]
+assert rest.replace('public meta import HexRCF.RealCoefficients.RootPrepare\n','')==before
+section=source[source.index('def quotePacketWith'):]
+for name in ['Tower.Context.codec','Tower.Context.sign','Tower.Context.signature','RootHeader.quoteWith','RootPrepare.prepareWith','quoteWith anchor packets']:assert name in section,name
+assert '.build' not in section
+probe=subprocess.check_output(['git','show',c['source_commit']+':conformance/HexRCF/BoundedSource/Quote.lean'],cwd=root).decode()
+assert 'let .ok repeated ← RootQuote.runWith action exact' in probe
+assert 'repeated.usage == result.usage' in probe and 'before.eAssignment.toList == after.eAssignment.toList' in probe
+assert 'SourceIdentity.quotePacketWith' in probe
+print(f'Verified source packet assembly: {len(c["sources"])} sources, exact/below budgets, four terminal refusals with state restoration and two fresh proof audits. Full #10358 remains incomplete.')
diff --git a/reports/data/hexrcf-source-replay-dimensions/README.md b/reports/data/hexrcf-source-replay-dimensions/README.md
new file mode 100644
index 0000000000..6be7057516
--- /dev/null
+++ b/reports/data/hexrcf-source-replay-dimensions/README.md
@@ -0,0 +1,17 @@
+# Selected-source packet observation record
+
+[The report](../../hexrcf-source-replay-dimensions.md) explains the measured scope and limitations. `context.json` binds the clean Hex checkout, toolchain, 449 compiled imports (none Mathlib), local source hashes, four driver/generator/collector hashes, executable hash and all 440 completed observations. `manifest.json` binds every retained artifact. No executable binary is committed.
+
+Run `python3 reports/data/hexrcf-source-replay-dimensions/verify.py` from a checkout containing the historical source commit. `--check-head` additionally compares the recorded local computational sources with this checkout. This verifies record consistency, raw result hashes, the complete fixed schedule, summaries, independent declared axes and selected-row DAG sizes. It does not rerun Lean or prove checker soundness; ordinary-kernel proof evidence remains in the separate source/quotation records.
+
+`inputs.tar.gz` stores all 22 byte-exact packets and their eleven-column manifest: name, varied axis, parameter, defining degree, query count, query denominator exponent, dyadic precision, predecessor depth, bytes, unique row nodes, expanded row references. The last two columns exclude descriptor and predecessor graphs. `samples.tar.gz` stores every raw export, stdout/stderr and original collection context. Empty outputs are retained. `preparation.tar.gz` stores all completed build/control attempts, failed-source snapshots where available, compiler setup records, final negative inputs and frozen pre-collection snapshots. Failed setup attempts are not passing evidence; their corrections are explained in the report. `collection.log.gz` retains the actual successful systemd completion and memory accounting.
+
+The exact historical external project configuration is `lakefile.lean.txt`; it contains unrelated earlier targets that were not built for this study. Rebuilding only this study needs a separate scratch project with `require Hex from "/path/to/the/matching/hex/checkout"`, `lean_lib SourceReplayDriver`, `lean_lib SourceReplayMatrix`, `lean_lib SourceReplayControls`, and a `source_replay_bench` executable rooted at `SourceReplayBench`. Copy the driver, generator, controls and benchmark snapshots to their corresponding `SourceReplay*.lean` names. Use the recorded toolchain and dependency revisions in `lake-manifest.json`; LeanBench is supplied by the Hex dependency. Build via Lake, under a serial 32 GiB/no-swap systemd scope with `LEAN_NUM_THREADS=2`.
+
+The snapshots retain their actual task-local absolute paths. To regenerate inputs, adjust only the output/input directory paths in the build-only generator and controls, then `lake build SourceReplayMatrix SourceReplayControls`. Compare regenerated bytes with the retained hashes. The generator imports Mathlib; it is not linked into or timed by the executable. To measure retained packets, extract `inputs.tar.gz` separately and `lake build source_replay_bench`. Set `HEX_RCF_SOURCE_REPLAY_INPUT` to one packet and invoke `.lake/build/bin/source_replay_bench run SourceReplayBench.replayed --export-file output.json`; the other arms are `lexical`, `parsed` and `restored`.
+
+`collector.py.txt` records the exact fixed five-block protocol, automatically leased CPU placement and per-child resource accounting. Reuse requires updating the checkout/project/input/output paths and choosing a fresh output directory, not overwriting this record. Result consumption, IO.Ref reads and hashing remain inside timed batches; process startup, file loading, generation and proofs remain outside per-call times. Each invocation includes a warmup and one autotuned outer sample. Repeated study execution is a new collection, not part of these 440 observations.
+
+The raw benchmark exports identify the external harness checkout in their git metadata; `context.json` identifies the actual Hex source checkout. Neither the historical paths nor that external git identity should be confused with the measured Hex source pin. `analyze.py.txt` records the analysis and plotting code; its original task paths require adaptation. No timing subtraction, matched speedup or asymptotic scaling claim is made.
+
+The SVG export's trailing line whitespace is removed for the repository whitespace check; `dimensions-original.svg.gz` preserves the unmodified plotting output and `normalize-figure.py.txt` records that textual cleanup. The PNG and measured observations are unchanged.
diff --git a/reports/data/hexrcf-source-replay-dimensions/analyze.py.txt b/reports/data/hexrcf-source-replay-dimensions/analyze.py.txt
new file mode 100644
index 0000000000..2e378d1a4e
--- /dev/null
+++ b/reports/data/hexrcf-source-replay-dimensions/analyze.py.txt
@@ -0,0 +1,57 @@
+from pathlib import Path
+import json,statistics,hashlib
+T=Path('/home/kim/.codex/tasks/hex-10358');D=T/'source-replay-matrix';R=T/'source-replay-samples-1';c=json.loads((R/'context.json').read_text())
+assert c['status']=='complete' and len(c['samples'])==440
+expected=[(b,r[0],a) for b in range(5) for r in c['cases'] for a in (c['arms'] if b%2==0 else list(reversed(c['arms'])))]
+assert [(s['block'],s['case'],s['arm']) for s in c['samples']]==expected
+values={}
+for s in c['samples']:
+ assert s['exit_code']==0
+ raw=json.loads((R/(s['stem']+'.json')).read_text());r=raw['results'][0]
+ assert r['expected_hash_check']['status']=='match' and r['hashes_agree']
+ assert len(r['points'])==1
+ p=r['points'][0];assert p['status']=='ok' and p['inner_repeats']>0
+ point={'block':s['block'],'nanoseconds':p['total_nanos']/p['inner_repeats'],'worker_rss_kib':p['peak_rss_kb'],'cli_rss_kib':s['max_rss_kib'],'stem':s['stem']}
+ values.setdefault((s['case'],s['arm']),[]).append(point)
+def integers(x):
+ if type(x)==int:yield x
+ elif isinstance(x,list):
+ for y in x:yield from integers(y)
+summary=[]
+for case in c['cases']:
+ name,axis,parameter,degree,atoms,bits,precision,depth,nbytes,unique,expanded=case
+ packet=(D/(name+'.json')).read_bytes();assert hashlib.sha256(packet).hexdigest()==c['input_sha256'][name]
+ wire=json.loads(packet);max_wire_bits=max(abs(x).bit_length() for x in integers(wire))
+ nodes=[entry[0] for entry in wire[3][2]]
+ inventory={'wire_integer_tokens':sum(1 for _ in integers(wire)),
+ 'row_system_sizes':[node[5] for node in nodes],
+ 'row_ranks':[node[10][0] for node in nodes],
+ 'row_moment_counts':[len(node[7]) for node in nodes],
+ 'row_moment_json_bytes':sum(len(json.dumps(node[7],separators=(',',':')).encode()) for node in nodes)}
+ for arm in c['arms']:
+ points=values[(name,arm)];assert len(points)==5 and {p['block'] for p in points}==set(range(5))
+ times=[p['nanoseconds']/1000 for p in points]
+ summary.append({'case':name,'axis':axis,'parameter':parameter,'degree':degree,'atoms':atoms,'query_bits_parameter':bits,'precision':precision,'depth':depth,'bytes':nbytes,'row_unique_nodes':unique,'row_expanded_nodes':expanded,'max_wire_integer_bits':max_wire_bits,'arm':arm,'median_microseconds':statistics.median(times),'min_microseconds':min(times),'max_microseconds':max(times),'worker_rss_kib':[min(p['worker_rss_kib'] for p in points),max(p['worker_rss_kib'] for p in points)],'cli_rss_kib':[min(p['cli_rss_kib'] for p in points),max(p['cli_rss_kib'] for p in points)],'samples':points,**inventory})
+(T/'source-replay-summary.json').write_text(json.dumps(summary,indent=2)+'\n')
+import matplotlib
+matplotlib.use('Agg')
+import matplotlib.pyplot as plt
+fig,axes=plt.subplots(2,3,figsize=(14,8),layout='constrained')
+labels={'degree':'Defining degree','atoms':'Ordered distinct query count','bits':'Query denominator exponent','precision':'Dyadic interval precision','depth':'Predecessor tower depth'}
+for ax,(axis,label) in zip(axes.flat,labels.items()):
+ for arm in c['arms']:
+ rows=[r for r in summary if r['axis']==axis and r['arm']==arm]
+ x=[r['parameter'] for r in rows];y=[r['median_microseconds'] for r in rows]
+ ax.errorbar(x,y,yerr=[[r['median_microseconds']-r['min_microseconds'] for r in rows],[r['max_microseconds']-r['median_microseconds'] for r in rows]],marker='o',label=arm,capsize=3)
+ ax.set_xlabel(label);ax.set_ylabel('Microseconds per call');ax.set_yscale('log');ax.grid(alpha=.25)
+ax=axes.flat[5]
+for arm in c['arms']:
+ rows=[r for r in summary if r['case'] in ['atoms-4','repeated-4','common-2','repeated-roots-2'] and r['arm']==arm]
+ ax.errorbar([r['case'] for r in rows],[r['median_microseconds'] for r in rows],yerr=[[r['median_microseconds']-r['min_microseconds'] for r in rows],[r['max_microseconds']-r['median_microseconds'] for r in rows]],marker='o',label=arm,capsize=3)
+ax.tick_params(axis='x',rotation=20);ax.set_ylabel('Microseconds per call');ax.set_yscale('log');ax.grid(alpha=.25)
+handles,legend=axes.flat[0].get_legend_handles_labels();fig.legend(handles,legend,loc='outside lower center',ncols=4)
+fig.suptitle('Compiled cumulative owner stages on adapter-produced packets\nFive retained trials; median and range; preparation and proof work excluded')
+fig.savefig(T/'source-replay-scaling.png',dpi=170);fig.savefig(T/'source-replay-scaling.svg')
+print('Verified440samples/22cases/4arms; wrote summary and plots')
+for r in summary:
+ if r['axis'] in ['depth','atoms'] and r['arm']=='replayed':print(r['case'],round(r['median_microseconds'],3),'us','bytes',r['bytes'],'rowNodes',r['row_unique_nodes'],r['row_expanded_nodes'])
diff --git a/reports/data/hexrcf-source-replay-dimensions/benchmark.lean.txt b/reports/data/hexrcf-source-replay-dimensions/benchmark.lean.txt
new file mode 100644
index 0000000000..85d0e6a392
--- /dev/null
+++ b/reports/data/hexrcf-source-replay-dimensions/benchmark.lean.txt
@@ -0,0 +1,28 @@
+import SourceReplayDriver
+import LeanBench
+namespace SourceReplayBench
+initialize input : IO.Ref ByteArray ← do
+ let bytes ← match ← IO.getEnv "HEX_RCF_SOURCE_REPLAY_INPUT" with
+ | none => pure ByteArray.empty
+ | some path => IO.FS.readBinFile path
+ IO.mkRef bytes
+
+def lexical : Unit → IO Bool := fun () => do
+ return SourceReplayDriver.lexical (← input.get)
+def parsed : Unit → IO Bool := fun () => do
+ return SourceReplayDriver.parsed (← input.get)
+def restored : Unit → IO Bool := fun () => do
+ return SourceReplayDriver.restored (← input.get)
+def replayed : Unit → IO Bool := fun () => do
+ return SourceReplayDriver.replayed (← input.get)
+
+def config : LeanBench.FixedBenchmarkConfig :=
+ { repeats := 1, warmupFirstIter := true, minTotalSeconds := 0.2,
+ maxSecondsPerCall := 30.0, expectedHash := some (Hashable.hash true) }
+setup_fixed_benchmark lexical where config
+setup_fixed_benchmark parsed where config
+setup_fixed_benchmark restored where config
+setup_fixed_benchmark replayed where config
+end SourceReplayBench
+
+def main (args : List String) : IO UInt32 := LeanBench.Cli.dispatch args
diff --git a/reports/data/hexrcf-source-replay-dimensions/collection.log.gz b/reports/data/hexrcf-source-replay-dimensions/collection.log.gz
new file mode 100644
index 0000000000..49b26ee382
Binary files /dev/null and b/reports/data/hexrcf-source-replay-dimensions/collection.log.gz differ
diff --git a/reports/data/hexrcf-source-replay-dimensions/collector.py.txt b/reports/data/hexrcf-source-replay-dimensions/collector.py.txt
new file mode 100644
index 0000000000..51a005450d
--- /dev/null
+++ b/reports/data/hexrcf-source-replay-dimensions/collector.py.txt
@@ -0,0 +1,44 @@
+from pathlib import Path
+import hashlib,importlib.util,json,os,platform,subprocess,time
+repo=Path('/home/kim/worktrees/hex-dev/hex-dev-issue-10358')
+task=Path('/home/kim/.codex/tasks/hex-10358');project=task/'manual-render';data=task/'source-replay-matrix'
+exe=project/'.lake/build/bin/source_replay_bench';out=task/'source-replay-samples-1'
+assert 'code=exited, status=0/SUCCESS' in (task/'source-replay-controls-4.log').read_text()
+setup=json.loads((project/'.lake/build/ir/SourceReplayBench.setup.json').read_text());modules=sorted(setup['importArts']);assert not any(m=='Mathlib' or m.startswith('Mathlib.') for m in modules)
+manifest=json.loads((data/'manifest.json').read_text());assert len(manifest)==22
+spec=importlib.util.spec_from_file_location('cpu_lease',repo/'scripts/bench/cpu_lease.py');placement=importlib.util.module_from_spec(spec);spec.loader.exec_module(placement)
+cpu,lease=placement.cpu_lease();affinity=sorted(os.sched_getaffinity(0));os.sched_setaffinity(0,{cpu})
+out.mkdir(exist_ok=False)
+sha=lambda b:hashlib.sha256(b).hexdigest()
+source_files={}
+for m in modules:
+ p=repo/Path(*m.split('.')).with_suffix('.lean')
+ if p.is_file():source_files[str(p.relative_to(repo))]=sha(p.read_bytes())
+inputs={r[0]:sha((data/(r[0]+'.json')).read_bytes()) for r in manifest}
+metadata={'scope':'cumulative owner lexical/parse/catalog/selected-sign replay on adapter-produced packets; default native predecessor policy, not strict replay or tactic timings','protocol':'five fixed trial-major blocks; all22 cases in manifest order each block; adjacent four cumulative arms forward in even blocks and reverse in odd blocks; one warmed outer sample per arm; preparation/proof/literal generation excluded','blocks':5,'arms':['lexical','parsed','restored','replayed'],'cases':manifest,'host':platform.node(),'platform':platform.platform(),'cpu':cpu,'original_affinity':affinity,'load_before':os.getloadavg(),'revision':subprocess.check_output(['git','rev-parse','HEAD'],cwd=repo,text=True).strip(),'dirty':subprocess.check_output(['git','status','--porcelain'],cwd=repo,text=True),'toolchain':(repo/'lean-toolchain').read_text().strip(),'driver_sha256':sha((project/'SourceReplayDriver.lean').read_bytes()),'benchmark_sha256':sha((project/'SourceReplayBench.lean').read_bytes()),'generator_sha256':sha((project/'SourceReplayMatrix.lean').read_bytes()),'collector_sha256':sha(Path(__file__).read_bytes()),'exe_sha256':sha(exe.read_bytes()),'compiler_imports':modules,'source_sha256':source_files,'input_sha256':inputs,'samples':[],'resource_scope':'wait4 ru_maxrss LinuxKiB covers whole CLI and descendants; exporter peak_rss_kb covers benchmark worker; neither exclusive operation memory','status':'running'}
+def save():
+ (out/'context.json').write_text(json.dumps(metadata,indent=2)+'\n')
+save();print('CPU',cpu,'cases',len(manifest),'planned samples',5*22*4,'imports',len(modules),'Mathlib0',flush=True)
+try:
+ for block in range(5):
+ arms=metadata['arms'] if block%2==0 else list(reversed(metadata['arms']))
+ for case in manifest:
+ name=case[0];input_path=data/(name+'.json');assert sha(input_path.read_bytes())==inputs[name]
+ for arm in arms:
+ stem=f'{block:02d}-{name}-{arm}';command=[str(exe),'run','SourceReplayBench.'+arm,'--export-file',str(out/(stem+'.json'))];env=os.environ.copy();env['HEX_RCF_SOURCE_REPLAY_INPUT']=str(input_path)
+ before=os.getloadavg();start=time.monotonic()
+ with (out/(stem+'.stdout.txt')).open('w') as stdout,(out/(stem+'.stderr.txt')).open('w') as stderr:
+ child=subprocess.Popen(command,cwd=project,env=env,stdout=stdout,stderr=stderr)
+ _,status,usage=os.wait4(child.pid,0);child.returncode=os.waitstatus_to_exitcode(status)
+ entry={'block':block,'case':name,'arm':arm,'stem':stem,'exit_code':child.returncode,'elapsed_seconds':time.monotonic()-start,'max_rss_kib':usage.ru_maxrss,'user_seconds':usage.ru_utime,'system_seconds':usage.ru_stime,'load_before':before,'load_after':os.getloadavg()};metadata['samples'].append(entry);save()
+ if child.returncode!=0:raise RuntimeError(f'benchmark child failed:{stem}:exit{child.returncode}')
+ exported=json.loads((out/(stem+'.json')).read_text());result=exported['results'][0]
+ assert result['expected_hash_check']['status']=='match',stem
+ assert len(result['points'])==1 and result['points'][0]['status']=='ok',stem
+ print('completed',block,name,'samples',len(metadata['samples']),flush=True)
+ metadata['status']='complete'
+except BaseException as error:
+ metadata['status']='interrupted_or_failed';metadata['exception']=repr(error);raise
+finally:
+ metadata['load_after']=os.getloadavg();save();lease.close()
+print('retained',len(metadata['samples']),'completed samples',flush=True)
diff --git a/reports/data/hexrcf-source-replay-dimensions/context.json b/reports/data/hexrcf-source-replay-dimensions/context.json
new file mode 100644
index 0000000000..882182ef13
--- /dev/null
+++ b/reports/data/hexrcf-source-replay-dimensions/context.json
@@ -0,0 +1,10562 @@
+{
+ "scope": "cumulative owner lexical/parse/catalog/selected-sign replay on adapter-produced packets; default native predecessor policy, not strict replay or tactic timings",
+ "protocol": "five fixed trial-major blocks; all22 cases in manifest order each block; adjacent four cumulative arms forward in even blocks and reverse in odd blocks; one warmed outer sample per arm; preparation/proof/literal generation excluded",
+ "blocks": 5,
+ "arms": [
+ "lexical",
+ "parsed",
+ "restored",
+ "replayed"
+ ],
+ "cases": [
+ [
+ "degree-2",
+ "degree",
+ 2,
+ 2,
+ 2,
+ 16,
+ 0,
+ 0,
+ 9916,
+ 3,
+ 3
+ ],
+ [
+ "degree-3",
+ "degree",
+ 3,
+ 3,
+ 2,
+ 16,
+ 0,
+ 0,
+ 11770,
+ 3,
+ 3
+ ],
+ [
+ "degree-4",
+ "degree",
+ 4,
+ 4,
+ 2,
+ 16,
+ 0,
+ 0,
+ 13110,
+ 3,
+ 3
+ ],
+ [
+ "degree-5",
+ "degree",
+ 5,
+ 5,
+ 2,
+ 16,
+ 0,
+ 0,
+ 14259,
+ 3,
+ 3
+ ],
+ [
+ "atoms-1",
+ "atoms",
+ 1,
+ 2,
+ 1,
+ 16,
+ 0,
+ 0,
+ 4899,
+ 1,
+ 1
+ ],
+ [
+ "atoms-2",
+ "atoms",
+ 2,
+ 2,
+ 2,
+ 16,
+ 0,
+ 0,
+ 9916,
+ 3,
+ 3
+ ],
+ [
+ "atoms-3",
+ "atoms",
+ 3,
+ 2,
+ 3,
+ 16,
+ 0,
+ 0,
+ 15093,
+ 5,
+ 5
+ ],
+ [
+ "atoms-4",
+ "atoms",
+ 4,
+ 2,
+ 4,
+ 16,
+ 0,
+ 0,
+ 20269,
+ 7,
+ 7
+ ],
+ [
+ "bits-4",
+ "bits",
+ 4,
+ 2,
+ 2,
+ 4,
+ 0,
+ 0,
+ 9572,
+ 3,
+ 3
+ ],
+ [
+ "bits-16",
+ "bits",
+ 16,
+ 2,
+ 2,
+ 16,
+ 0,
+ 0,
+ 9916,
+ 3,
+ 3
+ ],
+ [
+ "bits-64",
+ "bits",
+ 64,
+ 2,
+ 2,
+ 64,
+ 0,
+ 0,
+ 11337,
+ 3,
+ 3
+ ],
+ [
+ "bits-128",
+ "bits",
+ 128,
+ 2,
+ 2,
+ 128,
+ 0,
+ 0,
+ 13230,
+ 3,
+ 3
+ ],
+ [
+ "precision-0",
+ "precision",
+ 0,
+ 2,
+ 2,
+ 16,
+ 0,
+ 0,
+ 9916,
+ 3,
+ 3
+ ],
+ [
+ "precision-4",
+ "precision",
+ 4,
+ 2,
+ 2,
+ 16,
+ 4,
+ 0,
+ 9955,
+ 3,
+ 3
+ ],
+ [
+ "precision-8",
+ "precision",
+ 8,
+ 2,
+ 2,
+ 16,
+ 8,
+ 0,
+ 10020,
+ 3,
+ 3
+ ],
+ [
+ "precision-12",
+ "precision",
+ 12,
+ 2,
+ 2,
+ 16,
+ 12,
+ 0,
+ 10046,
+ 3,
+ 3
+ ],
+ [
+ "depth-0",
+ "depth",
+ 0,
+ 2,
+ 2,
+ 16,
+ 0,
+ 0,
+ 9916,
+ 3,
+ 3
+ ],
+ [
+ "depth-1",
+ "depth",
+ 1,
+ 2,
+ 2,
+ 16,
+ 0,
+ 1,
+ 28321,
+ 3,
+ 3
+ ],
+ [
+ "depth-2",
+ "depth",
+ 2,
+ 2,
+ 2,
+ 16,
+ 0,
+ 2,
+ 53744,
+ 3,
+ 3
+ ],
+ [
+ "repeated-4",
+ "repeated",
+ 4,
+ 2,
+ 4,
+ 16,
+ 0,
+ 0,
+ 8097,
+ 3,
+ 7
+ ],
+ [
+ "common-2",
+ "common",
+ 2,
+ 2,
+ 2,
+ 16,
+ 0,
+ 0,
+ 8268,
+ 3,
+ 3
+ ],
+ [
+ "repeated-roots-2",
+ "repeated-roots",
+ 2,
+ 2,
+ 2,
+ 16,
+ 0,
+ 0,
+ 9613,
+ 3,
+ 3
+ ]
+ ],
+ "host": "chungus2",
+ "platform": "Linux-7.3.0-rc7-x86_64-with-glibc2.42",
+ "cpu": 38,
+ "original_affinity": [
+ 0,
+ 1,
+ 2,
+ 3,
+ 4,
+ 5,
+ 6,
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95
+ ],
+ "load_before": [
+ 0.56005859375,
+ 0.54052734375,
+ 0.81494140625
+ ],
+ "revision": "46c6114a4fc18ace27ff8167b51866f89d1f0d23",
+ "dirty": "",
+ "toolchain": "leanprover/lean4:v4.35.0-rc3",
+ "driver_sha256": "3cfde59d7c6ef64ae3e896885cfcf7b113df91bfc212907b92721c74f72d4381",
+ "benchmark_sha256": "1558a052066168bf8fd73dbe4e151077cfa8bee94e10c1197da7625961455db8",
+ "generator_sha256": "678c26e7ef76ea7f89c8750eec34a2a256cb844771cd5ccf59212d4d671a8e18",
+ "collector_sha256": "7e7408fb5baf4c3add22b332926f8b361762b08d9a5ff5ca9acfa397cd7cf4f3",
+ "exe_sha256": "fcc08b32ef203f4910591367cc5f1ae4d985590c719c8a7e9bc70d5315271204",
+ "compiler_imports": [
+ "Batteries.Util.Panic",
+ "Cli",
+ "Cli.Basic",
+ "Cli.Extensions",
+ "HexArith",
+ "HexArith.Barrett.Accumulator",
+ "HexArith.Barrett.Context",
+ "HexArith.Barrett.Reduce",
+ "HexArith.Barrett.ReduceNat",
+ "HexArith.ExactDiv",
+ "HexArith.ExtGcd",
+ "HexArith.Montgomery.Context",
+ "HexArith.Montgomery.InvNat",
+ "HexArith.Montgomery.Redc",
+ "HexArith.Montgomery.RedcNat",
+ "HexArith.Nat.ExtendedGcd",
+ "HexArith.Nat.ModArith",
+ "HexArith.Nat.Pow",
+ "HexArith.Nat.Prime",
+ "HexArith.Nat.Sqrt",
+ "HexArith.UInt64.Wide",
+ "HexBareiss.Bareiss",
+ "HexBareiss.BorderedMinor",
+ "HexBasic",
+ "HexBasic.ArrayDecEq",
+ "HexBasic.ExactDiv",
+ "HexBasic.ExtTreeMap",
+ "HexBasic.Fold",
+ "HexBasic.Kernel",
+ "HexBasic.List",
+ "HexBasic.List.Nodup",
+ "HexBasic.ListShim",
+ "HexBasic.OfFn",
+ "HexBasic.Rand",
+ "HexBasic.Sort",
+ "HexBasic.Vector.Modify",
+ "HexBerlekamp.BerlekampMatrix",
+ "HexBerlekamp.CertificateSyntax",
+ "HexBerlekamp.DegreePattern",
+ "HexBerlekamp.DistinctDegree",
+ "HexBerlekamp.Factor",
+ "HexBerlekamp.FactorPolyElab",
+ "HexBerlekamp.Factored",
+ "HexBerlekamp.Irreducibility",
+ "HexBerlekamp.IrreducibilityElab",
+ "HexBerlekamp.IrreducibleDecide",
+ "HexBerlekamp.LinearFactors",
+ "HexBerlekamp.PackedKernel",
+ "HexBerlekamp.PolynomialTactic",
+ "HexBerlekamp.RabinSoundness",
+ "HexBerlekamp.RabinSoundness.KernelWitness",
+ "HexBerlekamp.RabinSoundness.RabinCore",
+ "HexBerlekamp.RabinSoundness.RabinShape",
+ "HexBerlekampZassenhaus",
+ "HexBerlekampZassenhaus.BhksCandidates",
+ "HexBerlekampZassenhaus.BhksRecover",
+ "HexBerlekampZassenhaus.Certificate",
+ "HexBerlekampZassenhaus.CertificateSyntax",
+ "HexBerlekampZassenhaus.ChoosePrimeData",
+ "HexBerlekampZassenhaus.Classical.Candidate",
+ "HexBerlekampZassenhaus.Classical.CombinationIterator",
+ "HexBerlekampZassenhaus.Classical.Factorization",
+ "HexBerlekampZassenhaus.Classical.Obstruction",
+ "HexBerlekampZassenhaus.Classical.Search",
+ "HexBerlekampZassenhaus.EisensteinCriterion",
+ "HexBerlekampZassenhaus.FactorIrreducibility",
+ "HexBerlekampZassenhaus.FactorProduct",
+ "HexBerlekampZassenhaus.FactorTactic",
+ "HexBerlekampZassenhaus.Factored",
+ "HexBerlekampZassenhaus.Factorization",
+ "HexBerlekampZassenhaus.FactorizationData",
+ "HexBerlekampZassenhaus.FactorizationResult",
+ "HexBerlekampZassenhaus.Hensel.DirectLift",
+ "HexBerlekampZassenhaus.IrreducibleDecide",
+ "HexBerlekampZassenhaus.Lattice",
+ "HexBerlekampZassenhaus.Modular.PrimePlan",
+ "HexBerlekampZassenhaus.PrimeSelection",
+ "HexBerlekampZassenhaus.PrimitiveFactors",
+ "HexBerlekampZassenhaus.QuadraticFactors",
+ "HexBerlekampZassenhaus.QuadraticNorm",
+ "HexBerlekampZassenhaus.QuadraticNormRecover",
+ "HexBerlekampZassenhaus.RatSquarefree",
+ "HexBerlekampZassenhaus.Recombination",
+ "HexBerlekampZassenhaus.RecombinationFactors",
+ "HexBerlekampZassenhaus.SquareFreeInput",
+ "HexBerlekampZassenhaus.SquareFreeModularCert",
+ "HexBerlekampZassenhaus.TrialFactorization",
+ "HexBerlekampZassenhaus.WordCld",
+ "HexDeterminant",
+ "HexDeterminant.Adjugate",
+ "HexDeterminant.CauchyBinet",
+ "HexDeterminant.ColumnLinear",
+ "HexDeterminant.Enumeration",
+ "HexDeterminant.Gram",
+ "HexDeterminant.Laplace",
+ "HexDeterminant.LastRow",
+ "HexDeterminant.Leibniz",
+ "HexDeterminant.Minor",
+ "HexDeterminant.Permutation",
+ "HexDeterminant.Plucker",
+ "HexDeterminant.RowOps",
+ "HexDeterminant.Triangular",
+ "HexGramSchmidt",
+ "HexGramSchmidt.Basic",
+ "HexGramSchmidt.Basic.IntCast",
+ "HexGramSchmidt.Basic.Kernel",
+ "HexGramSchmidt.Basic.Linearity",
+ "HexGramSchmidt.Basic.Rat",
+ "HexGramSchmidt.Int",
+ "HexGramSchmidt.Int.Canonical",
+ "HexGramSchmidt.Int.Combination",
+ "HexGramSchmidt.Int.Core",
+ "HexGramSchmidt.Int.Correspondence",
+ "HexGramSchmidt.Int.Invariant",
+ "HexGramSchmidt.Int.Scaled",
+ "HexGramSchmidt.Update",
+ "HexHensel.Linear",
+ "HexHensel.ModularDivision",
+ "HexHensel.ModularPolynomial",
+ "HexHensel.Multifactor",
+ "HexHensel.Quadratic",
+ "HexHensel.QuadraticMultifactor",
+ "HexHensel.WordMul",
+ "HexHensel.WordStep",
+ "HexHensel.WordTransport",
+ "HexLLL",
+ "HexLLL.Certificate",
+ "HexLLL.Checker",
+ "HexLLL.ExternalReducer",
+ "HexLLL.Interval",
+ "HexLLL.Lattice",
+ "HexLLL.Native",
+ "HexLLL.Reduced",
+ "HexLLL.Reduction",
+ "HexMatrix",
+ "HexMatrix.Basic",
+ "HexMatrix.Block",
+ "HexMatrix.Certificate",
+ "HexMatrix.Diagonal",
+ "HexMatrix.DotProduct",
+ "HexMatrix.Elementary",
+ "HexMatrix.ElementaryAlgebra",
+ "HexMatrix.Gram",
+ "HexMatrix.Lattice",
+ "HexMatrix.Lists",
+ "HexMatrix.MatrixAlgebra",
+ "HexMatrix.Notation",
+ "HexMatrix.Packed",
+ "HexMatrix.Pad",
+ "HexMatrix.Region",
+ "HexMatrix.Scaled",
+ "HexMatrix.Strassen",
+ "HexMatrix.Submatrix",
+ "HexMatrix.Vector.Insert",
+ "HexMatrix.Winograd",
+ "HexModArith",
+ "HexModArith.Field",
+ "HexModArith.HotLoop",
+ "HexModArith.Modulus",
+ "HexModArith.Ntt.Butterfly",
+ "HexModArith.Ntt.Catalogue",
+ "HexModArith.Ntt.Convolution",
+ "HexModArith.Ntt.CrtInput",
+ "HexModArith.Ntt.Dft",
+ "HexModArith.Ntt.Plan",
+ "HexModArith.Ntt.Transform",
+ "HexModArith.Prime",
+ "HexModArith.Residue",
+ "HexModArith.Ring",
+ "HexModArith.WordMod",
+ "HexModular.Crt",
+ "HexModular.CrtPlan",
+ "HexModular.SymMod",
+ "HexNumberField.AlgebraicPoly",
+ "HexNumberField.Approx",
+ "HexNumberField.Basic",
+ "HexNumberField.Convert",
+ "HexNumberField.Disambiguate",
+ "HexNumberField.IntegerRoots",
+ "HexNumberField.Interval",
+ "HexNumberField.Lazy",
+ "HexNumberField.Nearest",
+ "HexNumberField.PolyQuot",
+ "HexNumberField.Radical",
+ "HexNumberField.RootSelection",
+ "HexNumberField.Roots",
+ "HexNumberField.Unity",
+ "HexOrderedFn.Extension",
+ "HexOrderedFn.Infinitesimal",
+ "HexOrderedFn.Oracle",
+ "HexOrderedFn.Real",
+ "HexOrderedFn.Search",
+ "HexPoly",
+ "HexPoly.Coprime",
+ "HexPoly.Dense",
+ "HexPoly.Euclid",
+ "HexPoly.Euclid.Content",
+ "HexPoly.Euclid.DivGcd",
+ "HexPoly.Euclid.EvalMul",
+ "HexPoly.Euclid.MonicUnique",
+ "HexPoly.Euclid.MulRing",
+ "HexPoly.Euclid.Reconstruction",
+ "HexPoly.Field",
+ "HexPoly.Instances",
+ "HexPoly.Interpret",
+ "HexPoly.Lcm",
+ "HexPoly.Monic",
+ "HexPoly.Operations",
+ "HexPoly.PseudoDiv",
+ "HexPoly.PseudoGcd",
+ "HexPoly.PseudoInterpret",
+ "HexPolyFast.Division",
+ "HexPolyFast.HalfGcd",
+ "HexPolyFast.Karatsuba",
+ "HexPolyFast.Plan",
+ "HexPolyFast.Reciprocal",
+ "HexPolyFast.Reverse",
+ "HexPolyFast.Tree",
+ "HexPolyFp",
+ "HexPolyFp.Compose",
+ "HexPolyFp.Degree",
+ "HexPolyFp.Enumeration",
+ "HexPolyFp.Field",
+ "HexPolyFp.Frobenius",
+ "HexPolyFp.ModCompose",
+ "HexPolyFp.NttMul",
+ "HexPolyFp.Packed",
+ "HexPolyFp.PackedMul",
+ "HexPolyFp.PrimeField",
+ "HexPolyFp.Quotient",
+ "HexPolyFp.Quotient.Ring",
+ "HexPolyFp.QuotientCompose",
+ "HexPolyFp.QuotientFrobenius",
+ "HexPolyFp.Ring",
+ "HexPolyFp.SquareFree",
+ "HexPolyFp.SquareFree.Algebra",
+ "HexPolyFp.SquareFree.YunContribution",
+ "HexPolyFp.SquareFree.YunCorrect",
+ "HexPolyFp.SquareFree.YunMeasure",
+ "HexPolyFp.SquareFree.YunReduce",
+ "HexPolyZ",
+ "HexPolyZ.Decomposition",
+ "HexPolyZ.ExactDivision",
+ "HexPolyZ.IntegerPolynomial",
+ "HexPolyZ.Kronecker",
+ "HexPolyZ.KroneckerMulti",
+ "HexPolyZ.Mignotte",
+ "HexPolyZ.NttMul",
+ "HexPolyZ.Rational",
+ "HexPrimality.Sieve",
+ "HexPrimality.Table",
+ "HexRank.Cert",
+ "HexRank.Int",
+ "HexRank.Produce",
+ "HexRank.Reduce",
+ "HexRank.ReduceImpl",
+ "HexRationalFn",
+ "HexRationalFn.Arithmetic",
+ "HexRationalFn.Basic",
+ "HexRationalFn.Cert",
+ "HexRationalFn.Derivative",
+ "HexRationalFn.Eval",
+ "HexRationalFn.Field",
+ "HexRationalFn.Map",
+ "HexRationalFn.Normalize",
+ "HexRationalFn.Split",
+ "HexRealAlgebraic.Basic",
+ "HexRealAlgebraic.Order",
+ "HexRealAlgebraic.Roots",
+ "HexRealClosure.Algebraic",
+ "HexRealClosure.AlgebraicCodec",
+ "HexRealClosure.BaseCatalog",
+ "HexRealClosure.BaseCodec",
+ "HexRealClosure.BaseContext",
+ "HexRealClosure.BaseEvaluate",
+ "HexRealClosure.BaseInclusion",
+ "HexRealClosure.BaseJson",
+ "HexRealClosure.BaseMap",
+ "HexRealClosure.BasePermutation",
+ "HexRealClosure.BasePermutationTotal",
+ "HexRealClosure.BasePolynomial",
+ "HexRealClosure.BasePresentation",
+ "HexRealClosure.BaseReconciliation",
+ "HexRealClosure.BaseStagedReorder",
+ "HexRealClosure.BaseSubsequence",
+ "HexRealClosure.BaseTower",
+ "HexRealClosure.Basic",
+ "HexRealClosure.Bisection",
+ "HexRealClosure.BisectionFrontier",
+ "HexRealClosure.Bounds",
+ "HexRealClosure.Canonical",
+ "HexRealClosure.CompleteRoots",
+ "HexRealClosure.ContextData",
+ "HexRealClosure.Deflation",
+ "HexRealClosure.Element",
+ "HexRealClosure.FrameFormat",
+ "HexRealClosure.FrameRoundtrip",
+ "HexRealClosure.Isolation",
+ "HexRealClosure.IsolationRoots",
+ "HexRealClosure.RootBytes",
+ "HexRealClosure.RootFactors",
+ "HexRealClosure.RootFormat",
+ "HexRealClosure.RootFrame",
+ "HexRealClosure.RootOrder",
+ "HexRealClosure.TowerBytes",
+ "HexRealClosure.TowerCatalog",
+ "HexRealClosure.TowerContext",
+ "HexRealClosure.TowerEnlarge",
+ "HexRealClosure.TowerPolynomial",
+ "HexRealClosure.TowerRefinement",
+ "HexRealClosure.TowerRoots",
+ "HexRealClosure.TowerSuffix",
+ "HexRealClosure.TowerTransport",
+ "HexRealClosure.Yun",
+ "HexRealClosure.ZeroFactor",
+ "HexRealRoots.Basic",
+ "HexRealRoots.Chain",
+ "HexRealRoots.Map",
+ "HexRealRoots.Sign",
+ "HexRealRoots.SignOperands",
+ "HexRealRoots.SignedRemainderChain",
+ "HexRealRoots.Tarski",
+ "HexRealRoots.TarskiShared",
+ "HexRealRoots.Var",
+ "HexResultant",
+ "HexResultant.Basic",
+ "HexResultant.BlockDeterminant",
+ "HexResultant.BrownTraub",
+ "HexResultant.DeterminantAlgebra",
+ "HexResultant.Discriminant",
+ "HexResultant.ExactDiv",
+ "HexResultant.Fraction",
+ "HexResultant.FractionPoly",
+ "HexResultant.PseudoDivMod",
+ "HexResultant.Subresultant",
+ "HexResultant.SubresultantCofactor",
+ "HexResultant.SubresultantExt",
+ "HexResultant.SubresultantMinor",
+ "HexRoots",
+ "HexRoots.Basic",
+ "HexRoots.Bisection",
+ "HexRoots.Cauchy",
+ "HexRoots.IsolateAll",
+ "HexRoots.Kantorovich",
+ "HexRoots.MahlerPrec",
+ "HexRoots.Newton",
+ "HexRoots.Pellet",
+ "HexRoots.Refine",
+ "HexRoots.SimpleRoot",
+ "HexRoots.SoftPellet",
+ "HexRoots.Taylor",
+ "HexRowReduce",
+ "HexRowReduce.Api",
+ "HexRowReduce.Inverse",
+ "HexRowReduce.Kernel",
+ "HexRowReduce.Loop",
+ "HexRowReduce.Nullspace",
+ "HexRowReduce.Pivot",
+ "HexRowReduce.RowEchelon",
+ "HexRowReduce.RowEchelon.Contracts",
+ "HexRowReduce.RowEchelon.Elementary",
+ "HexRowReduce.Solve",
+ "HexRowReduce.Span",
+ "HexRowReduce.Witness",
+ "HexSignDet.Codec",
+ "HexSignDet.Codec.Basic",
+ "HexSignDet.Codec.Bytes",
+ "HexSignDet.Codec.Decimal",
+ "HexSignDet.Codec.Evidence",
+ "HexSignDet.Codec.EvidenceLaws",
+ "HexSignDet.Codec.GraphLaws",
+ "HexSignDet.Codec.Json",
+ "HexSignDet.Codec.Laws",
+ "HexSignDet.Codec.Node",
+ "HexSignDet.Codec.NodeLaws",
+ "HexSignDet.Codec.String",
+ "HexSignDet.Codec.Token",
+ "HexSignDet.Codec.Value",
+ "HexSignDet.CommonProduct",
+ "HexSignDet.Compare",
+ "HexSignDet.Complete",
+ "HexSignDet.Counts",
+ "HexSignDet.Dag",
+ "HexSignDet.DagBounds",
+ "HexSignDet.DagEncode",
+ "HexSignDet.DagExpand",
+ "HexSignDet.DagMemo",
+ "HexSignDet.DagReplay",
+ "HexSignDet.DagSelectedSigns",
+ "HexSignDet.DagSigns",
+ "HexSignDet.Descriptor",
+ "HexSignDet.Induction",
+ "HexSignDet.Matrix",
+ "HexSignDet.Moment",
+ "HexSignDet.MomentReplay",
+ "HexSignDet.Produce",
+ "HexSignDet.QueryHandle",
+ "HexSignDet.QueryReduction",
+ "HexSignDet.Reduction",
+ "HexSignDet.Reencode",
+ "HexSignDet.Replay",
+ "HexSignDet.RootList",
+ "HexSignDet.SelectedSigns",
+ "HexSignDet.SignOperands",
+ "HexSignDet.Support",
+ "HexSignDet.Table",
+ "HexSignDet.TableProducer",
+ "HexSignDet.Tensor",
+ "HexSignDet.Thom",
+ "HexSignDet.ThomOrder",
+ "HexSturm",
+ "HexSturm.Basic",
+ "HexSturm.DomainOperations",
+ "HexSturm.Reduced",
+ "HexSturm.Transport",
+ "HexTruncatedSeries",
+ "HexTruncatedSeries.Classes",
+ "HexTruncatedSeries.Comp",
+ "HexTruncatedSeries.Defs",
+ "HexTruncatedSeries.ExpLog",
+ "HexTruncatedSeries.Inverse",
+ "HexTruncatedSeries.ModuleBoundaryTests",
+ "HexTruncatedSeries.Newton",
+ "HexTruncatedSeries.Precision",
+ "HexTruncatedSeries.Revert",
+ "HexTruncatedSeries.Ring",
+ "HexTruncatedSeries.Sqrt",
+ "LeanBench",
+ "LeanBench.AutoFit",
+ "LeanBench.Child",
+ "LeanBench.Cli",
+ "LeanBench.Cli.Handlers",
+ "LeanBench.Cli.Parse",
+ "LeanBench.Compare",
+ "LeanBench.Core",
+ "LeanBench.Env",
+ "LeanBench.Export",
+ "LeanBench.Format",
+ "LeanBench.KernelProfile",
+ "LeanBench.MemStats",
+ "LeanBench.Profile",
+ "LeanBench.Run",
+ "LeanBench.RunEnv",
+ "LeanBench.Schema",
+ "LeanBench.Setup",
+ "LeanBench.Stats",
+ "LeanBench.TimedRegions",
+ "LeanBench.Verify",
+ "SourceReplayDriver"
+ ],
+ "source_sha256": {
+ "HexArith.lean": "eb4711cc12cb08a8ae8daa7afbc9ecc37b70fb30feab6cafe23103e4f3701137",
+ "HexArith/Barrett/Accumulator.lean": "d363f9aaa4ae806083adfdb9c45992f59b9e326c16b32d96d89faa45af30d314",
+ "HexArith/Barrett/Context.lean": "4c2f02160593b1e5d5039419a514de92460c87ffd6b31c6314aa26ed5e74b251",
+ "HexArith/Barrett/Reduce.lean": "cbd8636dfd24ef347eb906761359e649dcbbea54f6f06b4b42ac109ae972e66d",
+ "HexArith/Barrett/ReduceNat.lean": "0fded93eb3e4127009e1133fceaf954e0142fcf0e56ffbe08665501a7c9f0bbf",
+ "HexArith/ExactDiv.lean": "2d04d055fe4977d4e8de4801fb08194f4d011ccebc6d3d2143c4dcc294a2aef2",
+ "HexArith/ExtGcd.lean": "794aa255afc108edac9c6c496bae91a09fc59392bc919284613bd29407406ee7",
+ "HexArith/Montgomery/Context.lean": "374f02939c659cfbf32c8c927e9bca0be9579ddb11df9ee746c992044a43b2f2",
+ "HexArith/Montgomery/InvNat.lean": "01ad6f1de38c959f7af715f630f99fdd8982e46fd16e5eb70915d9ad6edd297b",
+ "HexArith/Montgomery/Redc.lean": "65a72425d4ade0c2060a04b4b3ce411282e94738db61799fd7c50f98f0bc5e9d",
+ "HexArith/Montgomery/RedcNat.lean": "7db051b63ea913ae0146babe68df4cbef3324124a42599e15d9a95c6cfc815f1",
+ "HexArith/Nat/ExtendedGcd.lean": "1089e6a151576bf50637e56a45a61106f2e3e9a117e572015f9799c23115a138",
+ "HexArith/Nat/ModArith.lean": "6b2d45ae4484cd864447360c51361f15525300d3b6d73e74c7bb40220304b8d1",
+ "HexArith/Nat/Pow.lean": "2c0751ce30e9c3cc2b2a145f9d7ff493434200f73f625bd4375fb2e3a850b550",
+ "HexArith/Nat/Prime.lean": "6c0fd0b40cc002ed4e00df47758743d5aa8dee345de9042133655c369e40ecc0",
+ "HexArith/Nat/Sqrt.lean": "02684a5167ec604cdf432554058be0c4674e926fdb356934e45bf1964c81746e",
+ "HexArith/UInt64/Wide.lean": "91718b2b005886f59d8ea48615d9ecbefab0b6bc2db96e7b35c0e5fe2d55a1d2",
+ "HexBareiss/Bareiss.lean": "4a5e021df694cce75ec41301144ddd6851fe1fe8e79efb44e3aa2bb4b11cbd16",
+ "HexBareiss/BorderedMinor.lean": "9bec40077a29ed25119c9d50483d1b3b87631da086bd8b665c7aba624d0cd992",
+ "HexBasic.lean": "b5ed4f5d882a321547f15e3b55386ee37bbffe2f05280f88f5ff98b6a7b74edb",
+ "HexBasic/ArrayDecEq.lean": "6ebc4dcb2e7f26ff9731b83cf9b0d16b6b293f1f44558ba516726ccdb3820af9",
+ "HexBasic/ExactDiv.lean": "e8e697aa71caf065431996b5c37b29448dbdcef322a0eff4334972503f1ea9be",
+ "HexBasic/ExtTreeMap.lean": "64007c2b6a28ea63f228f04f417e6e0b0239ba781164f37e2ff99bf287f695eb",
+ "HexBasic/Fold.lean": "2b18666881681f513dbc6dd745309ae6a2397f0a28038793fc8b6c8fca356aad",
+ "HexBasic/Kernel.lean": "3f0972eefab4bb966a5786a691c146195c82b2ed6a6f833387ad298da8372411",
+ "HexBasic/List.lean": "8a58906b3a24dc8d7a643ab63f7cefd2f0d482b88a7cc7767e151d9df19e54b7",
+ "HexBasic/List/Nodup.lean": "d1676ed161d5783d8b554b7fb6c7af1ae28e52979c7dcadfb538c353b00d15fd",
+ "HexBasic/ListShim.lean": "d46b7ef8cb3509bc39beb44f9b20f861e0405148fa216730b63ca50bf11678f5",
+ "HexBasic/OfFn.lean": "63cd87f7e128845c403e44d17b97a26c504637fda9ce34839b1f0ea4148ac7eb",
+ "HexBasic/Rand.lean": "f248f72b683384ebd8fa08898883c70928d96060eb821163243158785be54b0e",
+ "HexBasic/Sort.lean": "f572d565e4791b6810731c56b74ca3489b80bf64d7c7b139c7c815594e347709",
+ "HexBasic/Vector/Modify.lean": "f0131e4ac7f097328fca0cc2df3b3aa66289d51836f7544caf104dee0a7f5db4",
+ "HexBerlekamp/BerlekampMatrix.lean": "a5983b984ee8d4b7b90fec544ad58ba266309feb4ce10dbb54137ed4d12194f9",
+ "HexBerlekamp/CertificateSyntax.lean": "e939f39fb365b3cf76810c7639cf105c1ce0bdcabc6e2196060428e58e047d7c",
+ "HexBerlekamp/DegreePattern.lean": "883098c0ed7454a9eb3e0573971c8cc39f85a00dbbae5e5902af6860e63055f5",
+ "HexBerlekamp/DistinctDegree.lean": "71ca1c02542c7596c86f346ee62d907cd2d790e34622bfd5988e6127b09ffa39",
+ "HexBerlekamp/Factor.lean": "01a813de711aa3243d0ff26170faa91d7e4e145c583d8c8b1ce26aa4474ea660",
+ "HexBerlekamp/FactorPolyElab.lean": "e6d43260b42f5bd13d43b3b40f8ca0d7b6c8a981fcc93ca77eb2e5896dd5a960",
+ "HexBerlekamp/Factored.lean": "cc841a280911e83def4bf06afbc9b7587ca75d8070901f4a3f5be48940491756",
+ "HexBerlekamp/Irreducibility.lean": "1f0460cbfd5ba663aab1ed44460ecef114745d8ae97398b65ccf45fdaf4bde6e",
+ "HexBerlekamp/IrreducibilityElab.lean": "53e71d376e49195be816f2f22bff296ad5064b343f776caa51c028a50ae33a54",
+ "HexBerlekamp/IrreducibleDecide.lean": "c3418af96214139ebe027abadf8aa7a6f294405ab643be7df1d1042d48bbb9c3",
+ "HexBerlekamp/LinearFactors.lean": "9a5f10a65caf948d5657012db76a0cafa2822091f62b840276aa97c12bac23e7",
+ "HexBerlekamp/PackedKernel.lean": "4ad5ef310f125c5a75f7e389cb76226206464f6a5db9eea3efe43a8926604911",
+ "HexBerlekamp/PolynomialTactic.lean": "9455b162481bc52a8b3632913f02dd5747e7c580be7df32a2b9ed2cd500fc989",
+ "HexBerlekamp/RabinSoundness.lean": "a17ebdaa72eee3a89a9d2e38f4728e99806e46221dbe7adfb7766bebb3f24605",
+ "HexBerlekamp/RabinSoundness/KernelWitness.lean": "18c03bcd94515d98fcdc2ece82db59c8a263d43a898923aee4a8bad3a199ccaf",
+ "HexBerlekamp/RabinSoundness/RabinCore.lean": "86a0b8ffb9118f3e5123718db29eae53dd87ab0fb1c637c50d40100caa60df22",
+ "HexBerlekamp/RabinSoundness/RabinShape.lean": "227208e78c343a516b154eca67323634ee8eab2974ff3721f2ae46f7109c4db9",
+ "HexBerlekampZassenhaus.lean": "3c9ecd4e1d6ca2e0682ed3915b5e531098175185bcc15cdee1ec748c8be839bc",
+ "HexBerlekampZassenhaus/BhksCandidates.lean": "9abbcf2e58128b773010b374a03f05bd30683a7b400d8207ad8e98e9b14c8a2f",
+ "HexBerlekampZassenhaus/BhksRecover.lean": "00f1eca6a95f386ac2fd7459a7fa1ae66dbcb9e1905505f601210502ed811c72",
+ "HexBerlekampZassenhaus/Certificate.lean": "6fdd35a531df27cfbb4683f991ee14511e498a87593386afdcbdbcc1d017efb5",
+ "HexBerlekampZassenhaus/CertificateSyntax.lean": "f893b21787e48d1ab79fdb39b6cc641ade6c99911c4dee1a25cb92853ec54b56",
+ "HexBerlekampZassenhaus/ChoosePrimeData.lean": "5eabe54849b2cdca9e6e73d6a1991e7ac60e1b1018e2bb91295fbcf9f5f9b0f9",
+ "HexBerlekampZassenhaus/Classical/Candidate.lean": "6c8fde9880fa54e200a290000465693f9f89ed78f3926c7f7af2f3e2154c934b",
+ "HexBerlekampZassenhaus/Classical/CombinationIterator.lean": "2bb8f5d0cfa487084a29a4700e1229ee388624b5e0ce8c5a421141b30707fd2b",
+ "HexBerlekampZassenhaus/Classical/Factorization.lean": "e6a7c9d4b7633c3e9d509a9fc6499cf95c7e3f6bf8b7d9c0e071a60394d68b06",
+ "HexBerlekampZassenhaus/Classical/Obstruction.lean": "31ac4a8551a579f27c5c1a1f11dcd42b0b69eecc0c08074a671d741647996c47",
+ "HexBerlekampZassenhaus/Classical/Search.lean": "a47c059cc019a71946da2d4f06d42f73584f83f2a3c94f305cc5f7310af8a9d4",
+ "HexBerlekampZassenhaus/EisensteinCriterion.lean": "dae415691b70cd3baf279278336256fc3fa2e73cedee07a3925d444f88dbe2f7",
+ "HexBerlekampZassenhaus/FactorIrreducibility.lean": "9c6da9bbc21382c44f3303a67d9e631b031892ecd395a35a6808330fbefe8078",
+ "HexBerlekampZassenhaus/FactorProduct.lean": "2050f868933fcaa014e970cea7abb357915deb6becab655e1c04ad7af8861297",
+ "HexBerlekampZassenhaus/FactorTactic.lean": "c8f7db3553597b4ebe5161f16f27f69bf8b90b966419dc932e007efc4b578981",
+ "HexBerlekampZassenhaus/Factored.lean": "67c4b99418cc015706714cfd01a32e13816ed52d93a2ad0eb2ae11f516b052e0",
+ "HexBerlekampZassenhaus/Factorization.lean": "13a1fa69f26eacbe5d4985bad8988cc34add80ee18b0f5dea07ab79347a2000a",
+ "HexBerlekampZassenhaus/FactorizationData.lean": "d9d3d50b62163c1cc3961f40bbac5b0fe8a53978239f6a37de1c8c49c84d7b68",
+ "HexBerlekampZassenhaus/FactorizationResult.lean": "87a501fcf5b271650e648bb9b49191344b6736abc3644ab8fe01c5cb28ee47ac",
+ "HexBerlekampZassenhaus/Hensel/DirectLift.lean": "5d3083be529cb8d3a0fc99ffcc0f50d065babdd27b297f07abf59ba91bc4788c",
+ "HexBerlekampZassenhaus/IrreducibleDecide.lean": "7497500b52a8e5c38c7b39721c434a701d92002e78f0f907e2df1d7734f6a669",
+ "HexBerlekampZassenhaus/Lattice.lean": "c29ec063998b0ac83ea2e625f296616f35b9cd3d796b2fe4dd9399439de9c63d",
+ "HexBerlekampZassenhaus/Modular/PrimePlan.lean": "28563bf8125eb6a0ef3b41cc04994b0620253357e7857767fd4108bbc7cf865d",
+ "HexBerlekampZassenhaus/PrimeSelection.lean": "f1e649f9acb8a274cf1a2b58c8d5151830f01fc0afe0d61206364dcad5edf309",
+ "HexBerlekampZassenhaus/PrimitiveFactors.lean": "4bda2880fa8af611bf61574dec2e8fc08df35babc12b6d32d9774179fe0d0187",
+ "HexBerlekampZassenhaus/QuadraticFactors.lean": "7dfc528481c958cb42721d0323d3d880c45f0ed9306d60dd0fb7526b5b520057",
+ "HexBerlekampZassenhaus/QuadraticNorm.lean": "842ac00a6a96baa17b7446af47342579e66c7971ea831c7491e65d1e8d475838",
+ "HexBerlekampZassenhaus/QuadraticNormRecover.lean": "79d067ee5527fd1c578016b3a23d46eced11d25d09d5d9329a0721a8ea9c3f87",
+ "HexBerlekampZassenhaus/RatSquarefree.lean": "e537bc68f93f9fa2710d9ca4cb175e4b79d85b596f79565793d3dc3f137b697a",
+ "HexBerlekampZassenhaus/Recombination.lean": "91a21572575f5c2480da411326a584d6e52e9a32b5fe8dd4e49bff7ad095994a",
+ "HexBerlekampZassenhaus/RecombinationFactors.lean": "cb34fac0e5ae03a692fa5d115f4c575bee1e8abb63a999ba0dd5ad874caebf7e",
+ "HexBerlekampZassenhaus/SquareFreeInput.lean": "e3f105e52c0c20ae09b0cc805e1d0b046b164a52c9a62492c93b472b0996c0fb",
+ "HexBerlekampZassenhaus/SquareFreeModularCert.lean": "0293b5d6d200cac6d5effa5e20579859c360eb1eb50da2ea864e93a9cdce6402",
+ "HexBerlekampZassenhaus/TrialFactorization.lean": "ce3767f3f433d3256062688d919f0e9ce11210205df6ba12a512accc956bc969",
+ "HexBerlekampZassenhaus/WordCld.lean": "1bcc98ffcd7d7656c7b60c9ffd1700facda4a3eaaf7f1c9181a6fe98e2b5e245",
+ "HexDeterminant.lean": "b3421e3990bff4c3193dc2d3e393dcce922dd5a2ac6d7917f3d374912269e58f",
+ "HexDeterminant/Adjugate.lean": "1a2bffada16e9a0ec57a58ed41e974562761ab43eb71c307cabb624d8b14e231",
+ "HexDeterminant/CauchyBinet.lean": "ff00e4c17e71cf1568e5c0218933719366771204ee294127ed95768f97d5e775",
+ "HexDeterminant/ColumnLinear.lean": "0bcaf662d3df8f88b73edd9704f10ce3a6a49e07510321c8dc3597f43470e4f6",
+ "HexDeterminant/Enumeration.lean": "d274d59fd3a41c4c24e42fe71db0f890785da88ea81842abc514f24d7e037153",
+ "HexDeterminant/Gram.lean": "4cc1b2b2a9291f0a1c59d399da60d9c97e126749752d52a0011ea825d6a53a22",
+ "HexDeterminant/Laplace.lean": "950d50944f621a6be51726c78f1df30b95760cd2aaae82c274fe6a35c34b37a0",
+ "HexDeterminant/LastRow.lean": "5a9ec9ba42bc7f3c193f6372e7d1d6052b9877b90ef4891d7602ba653eb7a098",
+ "HexDeterminant/Leibniz.lean": "36a21b9463e049417d73453aa563a3f302e87d60ba62ec690eedb7d5ba22e3a4",
+ "HexDeterminant/Minor.lean": "632c40130027c3a66a1f67daab15ea8b0b8b6e55cbf63ce54e18d5daae70c1cd",
+ "HexDeterminant/Permutation.lean": "84231ee35889e3681a2737b83a2679cc81108425a8231a09cb11615dc24c4d01",
+ "HexDeterminant/Plucker.lean": "dc466f45565336af09ce582e07369f12180e2fb69bb9174069cec9f02cc4e5e7",
+ "HexDeterminant/RowOps.lean": "50fb5b40222276d58a1d49979e43cd7edb3bf2cecf9a00e6df28a351defa73c1",
+ "HexDeterminant/Triangular.lean": "dce85455404730ae76ed8b5381ced78f0f004c10194d2a2860a789a826ea2128",
+ "HexGramSchmidt.lean": "08c62b44e69bbc323c2e952bab80588d6d48e74729739f3abd0ee41a1e044416",
+ "HexGramSchmidt/Basic.lean": "6111d414dc4fe885e579e1b71606b9bb53c34434ed4decfe49d1f1847c771dec",
+ "HexGramSchmidt/Basic/IntCast.lean": "c7599b8013cf874aea20b9944c98e5c54f80423cfa344a9b7c58e0f2093f408d",
+ "HexGramSchmidt/Basic/Kernel.lean": "f7f93250bc1ecd4e59778d60a6b61f82ca37d71e8e3d14e4c2ba9ae1d276157d",
+ "HexGramSchmidt/Basic/Linearity.lean": "89805da3c106ec522bf21535a4d3ee92b0bb0c7de1c7c2ec61675ff29c5042f4",
+ "HexGramSchmidt/Basic/Rat.lean": "906edcc2bb9fbabe3498ffca76dfc7f12d8d1ee460d71c9d7e2e0a1c67e6d160",
+ "HexGramSchmidt/Int.lean": "4f94688dffddad1b1318fb18b1ad7ff49f3165359f7c2c69daba764208b82ea9",
+ "HexGramSchmidt/Int/Canonical.lean": "928a32fc4c0e4fc51c870232482d54aa2f2f17cd44245d87e8f3eb18eef48962",
+ "HexGramSchmidt/Int/Combination.lean": "f3eafb126112e36a779ec19a69434d4c36934dbec66cc534ecbd1b9e0b16cfa4",
+ "HexGramSchmidt/Int/Core.lean": "62d24ec4e483b41dcbffaa62bad2bfd0f429e55d35877f1319392f81aec27c01",
+ "HexGramSchmidt/Int/Correspondence.lean": "a8297878a4e5ab89a1d19f49204247881098668a83215e24c602bacc8dd5d80d",
+ "HexGramSchmidt/Int/Invariant.lean": "0f6f8205a674db74fc8081d19c36fd52923cf05bc0e83f572a94a768f61f80ac",
+ "HexGramSchmidt/Int/Scaled.lean": "5937066a40014b8d87a3e3fa6776f7a16dee3d9a263ca37ae9664a72dc74981a",
+ "HexGramSchmidt/Update.lean": "195536d49c055024608db52f1a9c615755f830ddc02ae5f0b2b550b5ae8bec69",
+ "HexHensel/Linear.lean": "071c4b6237642dcd6dd2b02ab68edb9ef7d7d15badbc308a0cf27fd60a4a2019",
+ "HexHensel/ModularDivision.lean": "ba419baac25d4e5303943c8b52296a40870c802b055451bfa289b34ec116184f",
+ "HexHensel/ModularPolynomial.lean": "ef55b2feb785bf259e5426715e1967a739dd9e785a09715ea77086ffad0f0bad",
+ "HexHensel/Multifactor.lean": "40af28135a9a8e3b1fe2ea697d037359fc9216064b2fc6c8e2dc92f986a99e08",
+ "HexHensel/Quadratic.lean": "dc6cf843180ca77d019b9f1b5fed8b711116f1789b79686e2ad208907b41d604",
+ "HexHensel/QuadraticMultifactor.lean": "da27db2150bd3b86c67e59f7018bf6066bc3cbfa2263ade0e30fb4138086f707",
+ "HexHensel/WordMul.lean": "76c3023eb6965c148fad6d5a3031cb6de9efb04f6a0e9824249291fe7d5caa64",
+ "HexHensel/WordStep.lean": "0d742ced46b881dc15e31582b2dcf244a55091cbe3c555d185eb7195b84118c9",
+ "HexHensel/WordTransport.lean": "ded9cdb425795a1d7221d505fad0ac868fa981d39c4abe74190559785d32e68d",
+ "HexLLL.lean": "40b461412d8e924e717b1bbd9877cd48be38bb0c0ddffaf5482163d981dede11",
+ "HexLLL/Certificate.lean": "da613319fc444e00886b39ac543ffaed49e168aa4d6eb6b942a5a121ef08d2a4",
+ "HexLLL/Checker.lean": "4462645708de1382c1c53b627e44d7662286c5b3c0f4169222025b33c6289be1",
+ "HexLLL/ExternalReducer.lean": "892afd065a2a61e3582ed4ed59af56ede5c687adb8c5a1ad24e357b71b3e9881",
+ "HexLLL/Interval.lean": "f428904a39779bf9871c3e5e40753d5b322c2783661be130f5e4dd8a5e43d80c",
+ "HexLLL/Lattice.lean": "becbcbd73f7d5e434baf50451e6787852dcbab6c0f31d2186d2d402a0058aed3",
+ "HexLLL/Native.lean": "4ec3d53d1f86e1b912f2ef0e36ab0e32cbec8cd9c0bf8167518711dfbe3c94c7",
+ "HexLLL/Reduced.lean": "e246b504c004ec1996cf5e85d47538f18c1517dec359590b18edaceebced1d82",
+ "HexLLL/Reduction.lean": "37f8788629ae04ba8f654bd07279a93aa630c8de49b5f39ba408c95e5a67bb7c",
+ "HexMatrix.lean": "02a009b12c9c7c865ad1d5138d8407f1e00ab4c29d8c34e18b9ce07f23507d3d",
+ "HexMatrix/Basic.lean": "2e5999bb94720060b1a9ba66012c71af7ed7a9e1cae684e13dd99057c9d713c3",
+ "HexMatrix/Block.lean": "66e7e9dc517d2d9c9ea00b05d6efcd8b56daa7f8cae740a32ca7fd8d19afae35",
+ "HexMatrix/Certificate.lean": "6068533fde70aa1c7e35760319972b3ace0a8f90a678cf518abcc9fc939818c2",
+ "HexMatrix/Diagonal.lean": "f019bb42e85e2d3b722ab3e189764ee549ad541daf5c79e94ef3463873ec5293",
+ "HexMatrix/DotProduct.lean": "2f4bcc12e01f3a2707d6b7f2e4ca7f597fdeb459611647a54adbeac0340f97fa",
+ "HexMatrix/Elementary.lean": "dbca8fb4fa217d539121c1004e64d21d59aede229787a679df88582b020881d9",
+ "HexMatrix/ElementaryAlgebra.lean": "ae90a41a0663b895a28e9225e569df137cafded9335a7e84e6a6d51cca9d9c7d",
+ "HexMatrix/Gram.lean": "b5ff954525f555a62e7ee153bee777da875c89b9039bc7d7e9c7610303043e30",
+ "HexMatrix/Lattice.lean": "c1bf513604e7b537282d54fcc0dfbea9a8f81e3726d23c9d1fe0a32f4ea39b1e",
+ "HexMatrix/Lists.lean": "cf563e5ed5860a6a9366636a798f455fbd78c748bddd194232273ebd2c081c5d",
+ "HexMatrix/MatrixAlgebra.lean": "fd22838a18c560e1becb14f04e534c8471a8dfe2e3a127c84510e0961a90201f",
+ "HexMatrix/Notation.lean": "2e8c17ab502092dc7602f693ff2b4d79e025ba7a3afbb504c1e1d1929923bd0f",
+ "HexMatrix/Packed.lean": "5e65290be61b593fa3e35df77e5a8d0ddbf6fdc22825c9fe738cff1931c4433e",
+ "HexMatrix/Pad.lean": "0f8f79aea0f8fc46ddbaf0f9c362f30875200dbe9a2391ef83bbb9210a4741d2",
+ "HexMatrix/Region.lean": "484915f4a0eeb13e541cef289292f5ef57040a65d6c06ca8cd75119ae65de529",
+ "HexMatrix/Scaled.lean": "2fa3ff61245baf288f62084eddf093db5429c7fac1b319c6540111ddb9db62e1",
+ "HexMatrix/Strassen.lean": "7d957ca56a34da95bbb390fc9957ffdfa2997f4453352ef32cd6a7654b1d3a1f",
+ "HexMatrix/Submatrix.lean": "63fcb59c82fe5affeb9482e681324803a54ba68965e79bbd77a66e06c1aafbaf",
+ "HexMatrix/Vector/Insert.lean": "8e8987345a632357a3fd8b83ee0ed7ba308e075c6f6b3eee20bb02216431fc12",
+ "HexMatrix/Winograd.lean": "adaa13dad552aa547d3ecfbad1335f5a3ba5aed36d793109d5a9bdd022522ae4",
+ "HexModArith.lean": "a26035c42588a262b4393e40c3451b55eacd68138497252bc9cb803b6047a0c4",
+ "HexModArith/Field.lean": "5197f623de668884423d4a20810097e664e203989de2cc4978563bc068fed335",
+ "HexModArith/HotLoop.lean": "a5ab6b7f728b46427c6ed1b73bea9f72c2e3b63812270a64ee14c42553273ff5",
+ "HexModArith/Modulus.lean": "a4627ac7911519bdcc4ff0c55b252cd8b011681d202a36b6c9d8b7c874ba1333",
+ "HexModArith/Ntt/Butterfly.lean": "9e8e4047b65393443017d74d90cd6f7a861cf32c5752c580ef29e58538303431",
+ "HexModArith/Ntt/Catalogue.lean": "d4439640661aa8b23111ef6af82cc157f42aefab261c284ba313875c6adf36ad",
+ "HexModArith/Ntt/Convolution.lean": "5e4d9633f17c6af16ae2c458624efad7f7f918d46f5d05840eeac44acaf95711",
+ "HexModArith/Ntt/CrtInput.lean": "57b1fd395c93b7761643b66aa067f7bf0730fe3051d33b52625a685775c864cf",
+ "HexModArith/Ntt/Dft.lean": "ac55411f4c16f41d531191f683e672e3594be2ba5918755a5d9920587ba1aa05",
+ "HexModArith/Ntt/Plan.lean": "8ccc00ab8741d473caeb39431db380321731c58e5e0973e2ae7f96290522fa71",
+ "HexModArith/Ntt/Transform.lean": "822b52e1794869ff6893b74f679e75428d1fbd0a346fc3a91fb2a9f3bb4d57cd",
+ "HexModArith/Prime.lean": "766d6d58a6a720c4b8903845457deb06dc7753d395c627b4b1ec46cb39d97972",
+ "HexModArith/Residue.lean": "8543f9acc6c1ff44bc1255ccf3e62585dcd38d64077c42b069a5f801b4bc4956",
+ "HexModArith/Ring.lean": "8e84a97e79bda26cf8d128d7dc77681ada6c6055045f68ec363c2286df847393",
+ "HexModArith/WordMod.lean": "974a2d486643be8bd5dd957e1ff3154c88d63b3007934e20e0480bc01457a2f6",
+ "HexModular/Crt.lean": "fcd9b0822dd47334f4e75dd0fbe9df1c752bc82bb5640e9f58eaa265582792f9",
+ "HexModular/CrtPlan.lean": "4d0521c6998f0cfdebce5f8d0e5adeb4748b9f716bd2130e3e7fdff7919fa594",
+ "HexModular/SymMod.lean": "97124976f98bb2705ada0de01f4a9d01695d71e4a0720542f39f8e316ee4b0bf",
+ "HexNumberField/AlgebraicPoly.lean": "c06edb753be2a685e3f55bd79b9faad5992f497e2053dd327f2427616a819915",
+ "HexNumberField/Approx.lean": "70a836121595f9ef6cf4bb60229e9a1760beb5b9f9f729976a259a1656f689d7",
+ "HexNumberField/Basic.lean": "e374d771186d66c31b72e86c120cdcc818152ce03cea25830ebe50e9280e41bb",
+ "HexNumberField/Convert.lean": "e19fb55f0df34369c67669914c87894065300dad915b065784725c13df6aa56f",
+ "HexNumberField/Disambiguate.lean": "3b7ae8fe2af4488f5987030d78d3fe24f4538ad92b900c84c5cda742cbb28ebe",
+ "HexNumberField/IntegerRoots.lean": "c91503cf16117cafe31873f4b8ccb676f0d58fdf560e4e301940be8a583d441b",
+ "HexNumberField/Interval.lean": "3d5195d640ff7ecfa6880e0ba2cfb761f9ba3f8ced0777f027361e9b2e0191be",
+ "HexNumberField/Lazy.lean": "363f11c728ccdd25ea10d34bf38e1786507abd15f26e7cef0e838df8f0da4ef2",
+ "HexNumberField/Nearest.lean": "c3e19fdb5ce4e970d47980fbd5442831f730bc5b7da29bea6a02f0f05fbccf11",
+ "HexNumberField/PolyQuot.lean": "89fa9439caf0f5bc28947226c8af1d3333e5e4b3742461fafb341f313b95d384",
+ "HexNumberField/Radical.lean": "f637f576d2eb0c749600406c4c16adb4f246bf2dbe9ae7a47d0d4ae7b1a27bcc",
+ "HexNumberField/RootSelection.lean": "438a361c636dc7e8677f69f596f25ee009ab70b1b5db35083f9e94fce1af4092",
+ "HexNumberField/Roots.lean": "97a28eaefb7c85221b4f1af7fb2c5d3aa603734118839d5d5651adf97027bfea",
+ "HexNumberField/Unity.lean": "8530fa6a55fc025964996299b1c93dab3f648983b636e197d43321f17f6412ba",
+ "HexOrderedFn/Extension.lean": "3f336ac83236b9378d62aa680fcf714683de79c1ef8ba0a5a4c6aafa7bf00246",
+ "HexOrderedFn/Infinitesimal.lean": "5c8d751409bc7d3ea4a4172248ab7c7af5fc43d7cb3ea5e695528e365a30a875",
+ "HexOrderedFn/Oracle.lean": "b2f9923602d3396af6ce32e8470ba7510105664943bc47b7ebfaedaa8af04d56",
+ "HexOrderedFn/Real.lean": "1b1e7b3c2f35bc73db8e17bfc08892fb83580c45f2833c424fd3efec06076f44",
+ "HexOrderedFn/Search.lean": "94d4c0dcb8a7bd8fd9a725c672dd22865d779f4c84cb8f634050751a1c348cc0",
+ "HexPoly.lean": "7d54a680162588de4016e70d8e6558caa9b295529d35c9ec88d03bd794799f9a",
+ "HexPoly/Coprime.lean": "474bd098214ed1c9ef5538b77e8d1a5a1b0b8e286392c0b5d5111913cfca5e29",
+ "HexPoly/Dense.lean": "7c358928a9151b55a854809295512857c7944f6ffb5372d7f26b115a7fc622c5",
+ "HexPoly/Euclid.lean": "9464b8af020de02dfef2d58331c9141d0462a0ce86d9c9420479d9604fb55799",
+ "HexPoly/Euclid/Content.lean": "7d9d7260e745447e55e8b353aaebe29ed0bff4fb95896451d148d34b4d05a4fa",
+ "HexPoly/Euclid/DivGcd.lean": "d56dbe5cf69e9abe58436486e4b3870afe1a07650d62aa2a36af0e528b73f149",
+ "HexPoly/Euclid/EvalMul.lean": "5d3d3298f143257ee49b6c4c99afeb8c70c6231840b937f70e267fd6cba969b5",
+ "HexPoly/Euclid/MonicUnique.lean": "b459d3db21dd6eeae12b34cd0e44fc609f77881d51960a1f2fd19f401001459b",
+ "HexPoly/Euclid/MulRing.lean": "4e6e7bf52fca3a5b9f5ebc703c6f8a6923b3628759653797f8bf9ca92b68a744",
+ "HexPoly/Euclid/Reconstruction.lean": "528737ffe53931f488d3381b0fc7ac32aeac9533f777e2a33f7d1f77074624fc",
+ "HexPoly/Field.lean": "92fb1c28ac3a90db2b295e687743b5f57e88b677bf53c14a29104d5bd3b9a650",
+ "HexPoly/Instances.lean": "5556090c3f6f1a9e4b29da59a5416f3dba55ed2f958c0d47c57d9b066c27f7f9",
+ "HexPoly/Interpret.lean": "9557c364d0a7c85581aec62cfb1c2c0a32e016ef792e1f28ff39cdba0d7cb2ed",
+ "HexPoly/Lcm.lean": "7a4df92652d683ce4e2213cc6949a5954de3a10f0623895fa171941fe7b3956a",
+ "HexPoly/Monic.lean": "89fa2249746c84dee9ad2cf762123ec0c8e6a69182bbaf90ed838c7d667a8a32",
+ "HexPoly/Operations.lean": "4341cbad08c47a1cc5fbc28df296a07a7f220266b1526e369a96e71e9f416e1d",
+ "HexPoly/PseudoDiv.lean": "379f8cd699847db6e9648e5341be10f23a315ed83b733d33e192029e6f574a6e",
+ "HexPoly/PseudoGcd.lean": "56583fa5dacfb5235b0de78f497a06f82e65c15740269e7b66506b16e7f87ea2",
+ "HexPoly/PseudoInterpret.lean": "0a7f26680ef0cfa75bb4978d1a9210afb26970adfedb6063c00bb3f2f8272355",
+ "HexPolyFast/Division.lean": "904ec49a61e14e22004ca0d9075b463f0e79cf03353044e378ef3e5fab776dce",
+ "HexPolyFast/HalfGcd.lean": "7fe62a1b143d90c8dea01d30f4c1d96afd0e6e3252a478eafba3db60c04a5247",
+ "HexPolyFast/Karatsuba.lean": "5c93b92bb9cf3e4961f9a1b16f1296a28cda1d94df8a829f0176cbe60e595ba9",
+ "HexPolyFast/Plan.lean": "167ff763271a9fa05bf649907ed7c57c92a5effa0cd49ca87bd263684285280a",
+ "HexPolyFast/Reciprocal.lean": "75dc6d72b5578bf9fbcbbdcae136a8d755628ae5197f5a21ac0096b961211eb3",
+ "HexPolyFast/Reverse.lean": "62f958ee0a9e14a82996bbe5ca5cd52e133a02ca3c47f1e4ecdfa9045af01c2c",
+ "HexPolyFast/Tree.lean": "e0106e3c2799778cc53ae8f39040bcf31b57a66353fbd865029ad1f24c10f829",
+ "HexPolyFp.lean": "bda55cceba91f16b9cc4798d9da3e9de78e0804074792ab9c9be62c6841b07a3",
+ "HexPolyFp/Compose.lean": "26559fe28192db615a70063c4f0524c5d629eb9d74284668153ee9ede54bb32c",
+ "HexPolyFp/Degree.lean": "826a1bb030c8bc213567186388e74c2a7702616f9969692c294915945090f66e",
+ "HexPolyFp/Enumeration.lean": "4e133000640bf65b9edf05b3d8d1af2cc20bfba55535408b510fe16fcc59f7a7",
+ "HexPolyFp/Field.lean": "eaea9f9f405ccf2d70b5490f2db75b29ba061eada482dae55130846725c5b1a3",
+ "HexPolyFp/Frobenius.lean": "0bb30d1889c4abd1c02a67d74915eee0211a24d39f9df8619200b6f9061a61df",
+ "HexPolyFp/ModCompose.lean": "8d3a3ead18c142f1424350584ad38d1a7af97108576681d2765f9f273ceda554",
+ "HexPolyFp/NttMul.lean": "ccc280e572bca0e644dd516bbddc048924af2c60ceefc276200816f78b5b6245",
+ "HexPolyFp/Packed.lean": "c63be834ddea4b22213d8f3484d3a0c53a83de063eb2991548637eae6adb3a6b",
+ "HexPolyFp/PackedMul.lean": "d26cb5fae1bc581e6bd274d65af51c30d6a6fd6924d4d6c4616fb9e792b074be",
+ "HexPolyFp/PrimeField.lean": "ce68c17b101ac6b6d8dee7af2c15d17fc84ef53b845db43ba8db98da539728b5",
+ "HexPolyFp/Quotient.lean": "a014fc0d7f9ed81c44edf28c02dff7f9ab1b6cee183b74820738995ca7b54116",
+ "HexPolyFp/Quotient/Ring.lean": "1564f2038a44bf3bc5a94dc294c1b50eca1be7a224bafb3aee4b5e30610b0bcf",
+ "HexPolyFp/QuotientCompose.lean": "5352dcdb29970aa113d486cdcc745baaeb633dd74a5bbc90d4db99f6cffcfd5d",
+ "HexPolyFp/QuotientFrobenius.lean": "d711eb647adfd354a195412e4875f13af318c63be360cd4fde5ddf90f1095b43",
+ "HexPolyFp/Ring.lean": "2662ede1b938c0a54a843934a778486a28d0b121d7d547466d1c83af4a18ad0e",
+ "HexPolyFp/SquareFree.lean": "62cbc52cd265ad9dc0711c76603e7b06fe47d2affaf1a0a912a378350a995da2",
+ "HexPolyFp/SquareFree/Algebra.lean": "7e6fb53d31d51b1cf6ebe078cb290fb09b4bc1e2f4deac9425e99ad5985e881c",
+ "HexPolyFp/SquareFree/YunContribution.lean": "29af95eb9df8aff0ae460bf4535df63f995885f6b1cf682c8674cf0bed7b151f",
+ "HexPolyFp/SquareFree/YunCorrect.lean": "96cf3d596ef8eab79a80446656e62aa8d3ecde198e5167ff544d73d1eebb61cf",
+ "HexPolyFp/SquareFree/YunMeasure.lean": "2c6e50538e3f2779a8b3f56fe1342adcb3bfba610059001f73bc44abd11aba7e",
+ "HexPolyFp/SquareFree/YunReduce.lean": "11b727998481b8a06da8f0d223165a094e4aec2af86fa67035b3347bfe61e6c6",
+ "HexPolyZ.lean": "8019a77d88940b5b6fa99343c02893b9921a438841d365db209153efb8cba9d7",
+ "HexPolyZ/Decomposition.lean": "3f0d0ba6351342453129e15f7c7f3bc2ebeb998a45992d1fc01ae3ad01284a26",
+ "HexPolyZ/ExactDivision.lean": "e262fd6ac80ecc340d89dcc98c31121e973085dde61657b12647407f1f9e1ac5",
+ "HexPolyZ/IntegerPolynomial.lean": "d32d46ba1116313d0e36dbd352b6ac58f4a70dfdf8cb37a5d0afaf276098b0b4",
+ "HexPolyZ/Kronecker.lean": "68179895a61ce4a3ab2fc5cd9cae313e3478d8a565550883128139b9272f470b",
+ "HexPolyZ/KroneckerMulti.lean": "82832c3aae0266e4e585a2d93bd74317c2ea5f440d565ec2ae654f612f219535",
+ "HexPolyZ/Mignotte.lean": "8acb15326649cc346ef3219682d8c473edafeb4e40c13697e4c5d3b91564905b",
+ "HexPolyZ/NttMul.lean": "c73b86621ed0992d379ef70c19d01458c0d11c6e402c046ee7de98637fa11de4",
+ "HexPolyZ/Rational.lean": "da48edecc07591d0976dae2c4514c8decb021ff9d6161fd0be674fca944c41bd",
+ "HexPrimality/Sieve.lean": "eec42eea6037a8609bb9411c8402adf0de59f641e8f26fd234a0c73778059c33",
+ "HexPrimality/Table.lean": "fff736ea2cab2da219b6d047e2a5dbf5d7f8d773a80c5b8ab8c6787b9f9adefd",
+ "HexRank/Cert.lean": "88aa08a29248a9967aecc5d04714ab541679dc06d05850916037cf21657009ee",
+ "HexRank/Int.lean": "a6e7b24f8606e60cf3770f146ec4a3e5558d0fc7b6d098e237c1c7b129b0def9",
+ "HexRank/Produce.lean": "42a20f328dd27a0a5eae1d54675f05e6bf69d9f8338ce7058fb95945ec9494a5",
+ "HexRank/Reduce.lean": "6c49635de9a590d7ba30925cc13aa7d401545b08abb80373fe6dc451f066bc36",
+ "HexRank/ReduceImpl.lean": "ead64131be0bb5c9127bea634f7167c955e75a54609906e9803afd67bc208091",
+ "HexRationalFn.lean": "93478ebc49618fb3cfac1dc781cf9f2c58bcf6fa13ef958a91da420e9c22e270",
+ "HexRationalFn/Arithmetic.lean": "d28f16bb94d67c176d210e304aac97861b1c38a0337b518f8da19387fe7b2faa",
+ "HexRationalFn/Basic.lean": "f1af62a5e23d0242681540ec7f8b4eccfd00d9e5de7baafeabc91de838900566",
+ "HexRationalFn/Cert.lean": "e2f2812ff5571594dec88168a68e7488dd965c2dd686e43631a77b7f674fcd47",
+ "HexRationalFn/Derivative.lean": "f34abb8a6f6603c580eed66fccf597d4256f232048bea7556ba7f1d571abb66a",
+ "HexRationalFn/Eval.lean": "96fafa0dc02829160c06651524994e8bb1b179cd117e4e55a9579da366b07411",
+ "HexRationalFn/Field.lean": "3af49f197fa3ca65754277fb51e4210110c6f5c6f738dd745c9b40e7a4bc62ae",
+ "HexRationalFn/Map.lean": "bbf892ce8eab4ba0776b276035df758767c48a114a9baa0e51f889429630098c",
+ "HexRationalFn/Normalize.lean": "de9a95e5624a5b794d3e72648579efd2aa1c7eb227eb6afaf498ac142ea05cf5",
+ "HexRationalFn/Split.lean": "e7bfa4b91b915a398aac20bcc3b8205225f482df23e927ae3ce2dc64a8132a13",
+ "HexRealAlgebraic/Basic.lean": "8292312466bc1a07cb0278a9c03bd90c5087f82d6a869c80bba52dcfc7111ccd",
+ "HexRealAlgebraic/Order.lean": "4b3ef510f4358d75de4d90f267f067572585be83421aa06958a4246a8245a66a",
+ "HexRealAlgebraic/Roots.lean": "f104f80aabb5dc83e4a45ed79b34a53c4a6b0995fe4675348af8e3ff67b20009",
+ "HexRealClosure/Algebraic.lean": "d05f9fb72fe9544ae9ddc685dff17080f876aa4c99c70e8992d511e011f6a454",
+ "HexRealClosure/AlgebraicCodec.lean": "45ae831daed71fbeb5160f2f4fadd09c5120db37e7e623002f707141dbfa344c",
+ "HexRealClosure/BaseCatalog.lean": "84f7d0a5553c89e9f15987888f11b6ec9e20871789cbf530d9de1ad31f7b36ab",
+ "HexRealClosure/BaseCodec.lean": "7efe2bd7facdcfb8bc1dd0f345be81dcfe9650de7cb21a3310efd8f07ebfd692",
+ "HexRealClosure/BaseContext.lean": "a30d2b6af00976f71f1567b13e8f9879c3cf9b1c83284e755f9111650e39c595",
+ "HexRealClosure/BaseEvaluate.lean": "8e3746a3c64d1f1057885345cf5c29388c4bd01d128fd43a6395789f98652ecb",
+ "HexRealClosure/BaseInclusion.lean": "30d2fc7ecf861a66256667473e1f4a74182d0071ed6477f6b1bdbc46f594f590",
+ "HexRealClosure/BaseJson.lean": "f7c5fd5073c0a73114e839819995f9c30afe67f7451f50386a49b5dc602e9785",
+ "HexRealClosure/BaseMap.lean": "c817da33236bbc10ae4fe1d8181e08427158bc1aac03bfbd676565ae4b316ccd",
+ "HexRealClosure/BasePermutation.lean": "52eb34c3b2c9582a930cc539d0a052d35722ca8fea17d6aa611e285145bdeac7",
+ "HexRealClosure/BasePermutationTotal.lean": "c4838d184dce525d264655c37a244f9242be5452655abcbf0b53459ce65efac1",
+ "HexRealClosure/BasePolynomial.lean": "6b63c1095933de727be7df4b083fe3030961927cb4dabbae2223cf027db3c870",
+ "HexRealClosure/BasePresentation.lean": "3b40458e8b53b207d6e701e9a8e085c1b1b9058cbec4b2adc57f4aa2494cf084",
+ "HexRealClosure/BaseReconciliation.lean": "07d52a1fdbb2152ed34af13c1b0e6676cb354ad0a3803fced9b419c36d4c6b04",
+ "HexRealClosure/BaseStagedReorder.lean": "68a092300cf4e9c7fb879e712da7fc5ee36bac70ab80d810d42d49770b1c11fc",
+ "HexRealClosure/BaseSubsequence.lean": "1099d01be156626950eb4ce1541a37b23036974ebd6b8236c4d242a11ada2ae9",
+ "HexRealClosure/BaseTower.lean": "39d0c6465eb9f751754baad3b4422e75ed54a0c271e970afd8981531e6309d98",
+ "HexRealClosure/Basic.lean": "01647f2a863cb75e35a6558b1f3b247896adffbc459ea98e1ec80276788031b0",
+ "HexRealClosure/Bisection.lean": "a2bdcfe1e3652909fd1bed81922e859548a48943d98e811c381c238086aeb085",
+ "HexRealClosure/BisectionFrontier.lean": "0afa9cea6d4710f8b7a795b0e1696998655fd0bfd208a162a5b33f212d4ddbfe",
+ "HexRealClosure/Bounds.lean": "ac0f65596a501a8ea515cb70db535d8fbfd9f6ea054cb45ebded4557608eab82",
+ "HexRealClosure/Canonical.lean": "808faa1b7aa08bd9eb05213713c1ec51b9ece3c37c73e9fd6f7c51453af0a893",
+ "HexRealClosure/CompleteRoots.lean": "5904cc9dfdea225a519c42d1f133f5993b0b428ee4b935626d8e4c8935dfe2f1",
+ "HexRealClosure/ContextData.lean": "ca29790752b8d25f10d03a9877690a5ff40f1fdf6815c96fe9693941206e662c",
+ "HexRealClosure/Deflation.lean": "8fac96a8ef6f7f899e53de7ccada1d0ecf5228662bb497a982a8348504546d0d",
+ "HexRealClosure/Element.lean": "5ee14c68a711310c3615f46b8a449ec5d322e68f7aea1042d67dc6cbe9280d09",
+ "HexRealClosure/FrameFormat.lean": "c8b496f9648efcea52a470e4fd8bf53782d64dcc83aa9fc20dc1f258fef30526",
+ "HexRealClosure/FrameRoundtrip.lean": "ecdff5a9fe72a640db4c3c82f638b8e1c055d87cc61ffefccf7e557f108fe229",
+ "HexRealClosure/Isolation.lean": "486241c30c0c623b22ea6fbd1f9ccac846d37e3882b00aabac6f72a823d88d37",
+ "HexRealClosure/IsolationRoots.lean": "8a7dfd4999699d12e699157f7c930cb663b7f90ed358e90caeee8d741beeeee0",
+ "HexRealClosure/RootBytes.lean": "d45cd402248a7cea746f293007b93c0e259194b07ac4f59b98f43024e054da46",
+ "HexRealClosure/RootFactors.lean": "8b78e8a3f7fa51b71b78409ada018ec590972b93b077504354e7322b35612a50",
+ "HexRealClosure/RootFormat.lean": "34cc35ab742641c0373bcb72b0af00e0b5513cb0031b74a45169c3b89fcfb76a",
+ "HexRealClosure/RootFrame.lean": "9c84cb8c3b992d9c7ceef118a81e5376120c99bb90fd19838ae6d8e078b66ac5",
+ "HexRealClosure/RootOrder.lean": "99490abdde000647df41d8cb95d32ff96a94198a3c8ac0a9ea25be71632e6fdd",
+ "HexRealClosure/TowerBytes.lean": "880326a7d6086713b26e85dd1a7d2f3e93eb3c2a574644d3327c709db8e735ff",
+ "HexRealClosure/TowerCatalog.lean": "e7391b05d1cc1afdf106968b0e9dc4ebe1f86e7699a3aeb9f38653307973cae7",
+ "HexRealClosure/TowerContext.lean": "6ef8b87b2d81cb177505a4bbc88befa078b20578cedd49e836d850753c203ee3",
+ "HexRealClosure/TowerEnlarge.lean": "9294deb73e6d9af9e1198f3401e784435ef1939328269e3477fcf6bc4dad3a7e",
+ "HexRealClosure/TowerPolynomial.lean": "ea4fe88e83cfbf441a7f249e524649c2efc2682322c9d9675742dc964f4f518c",
+ "HexRealClosure/TowerRefinement.lean": "ee04274c112655df6d4b2ff14022eb193876843874f6a49301a439942a5fce1c",
+ "HexRealClosure/TowerRoots.lean": "7417fbfedf2cf69deadd5adaa37506ecaf225e434924204f9d382ea27a632bca",
+ "HexRealClosure/TowerSuffix.lean": "89ffb40ed89b45bcdd521a7dc85dee75aafcbdef7e971e0ee191cb216de118a5",
+ "HexRealClosure/TowerTransport.lean": "40a9f978ebc3e37673497196bff70d770d2fb5911297d9c1223a20526a353d14",
+ "HexRealClosure/Yun.lean": "72c048fe4e818757e1ce2862d3076dc0a72b427fa14c90ddf301f1732592b390",
+ "HexRealClosure/ZeroFactor.lean": "82f59fd07f390db80ddf1541a586ac0f53387fd6e49b972a0cc2095300be6f76",
+ "HexRealRoots/Basic.lean": "089494227717b849615e8661ce88eef0f82d60beae9a1fabbb0dcb07a99a3676",
+ "HexRealRoots/Chain.lean": "6a4e9b2373a6672491a096c67237d1f252cd12e76f85f0c8ad95b9581158e783",
+ "HexRealRoots/Map.lean": "e2612cc982473996b5f77a2ce7f210fea37243ae1e90871bddf8ebe01fc9eb16",
+ "HexRealRoots/Sign.lean": "1d25492fcc7011b2f74972621e063d2c57731268bbc2544076e66d7d54cdad9b",
+ "HexRealRoots/SignOperands.lean": "71df1253cc7c1d7a46f6bd3aa8852058f2a421d6739ea021ffcf67b68df87c65",
+ "HexRealRoots/SignedRemainderChain.lean": "be56bd454a976838e2a3d87b7126100d26de92af686b556c4f31e9e36cd7e874",
+ "HexRealRoots/Tarski.lean": "959f1882c67b7068e6274cdfeef9296b9ce3683e84ca8d1c38e5e75da57857a7",
+ "HexRealRoots/TarskiShared.lean": "d910644940aad917e19973cde4469c599e03c865b041a99ac0eaa9d6c03588af",
+ "HexRealRoots/Var.lean": "a2b7cec06a3670ba860f4ce7b6cdbde0b94e1822f305c65edc635bd9f7188ec6",
+ "HexResultant.lean": "f0b5a7b7ec56f20d6fe6fd3879eeaadf45e88622ff2b334039c1c25395c8c125",
+ "HexResultant/Basic.lean": "712afccace7dab647c17e4db75b63048859a892845cfa9852fe1feb79c1ea8b5",
+ "HexResultant/BlockDeterminant.lean": "5984d99f5620f86100ec0a39c07fd5dba577fdb16e09ca24820aba91d62f28b2",
+ "HexResultant/BrownTraub.lean": "5c8a57fbdee6b0b0f202d946944c280686d33af855180e0f6bc44c4d9be9d1e4",
+ "HexResultant/DeterminantAlgebra.lean": "685ca83a11715861b2b83dad479c5ca36dc05710f7eafa0df4bc58a81df9fdce",
+ "HexResultant/Discriminant.lean": "217b5d6951eedc708100df4ceb94a270f378b43b915f42ed09a603e62b310939",
+ "HexResultant/ExactDiv.lean": "9efed8d5462ccbecad0d81912073d78a7eb258bbe20eaeef398e2c9082f1d75b",
+ "HexResultant/Fraction.lean": "82787f5c59d722fb28a31e5f7547f987a26ed9ff2b4c178398e5a382e9e32161",
+ "HexResultant/FractionPoly.lean": "33015153f812cff87ae40c5861452f239fae87c08375c66c94f807b59d06d29e",
+ "HexResultant/PseudoDivMod.lean": "5446097ca4fcce1c60fe5b1342b0065794e9a07c6da37e078c42a23490fb0dae",
+ "HexResultant/Subresultant.lean": "f97ec8ec960e21da65f0b6a53f19def0a3d0d29ab446a42dc0b01e52225e053f",
+ "HexResultant/SubresultantCofactor.lean": "a64d8f8f2b00e62f657eebb23e1b6a90ae05a45922d960c5d6bd82aeb8b2a195",
+ "HexResultant/SubresultantExt.lean": "5e22ea95579e46401ae8921d79f5f78b4fd816aaf3094da4568bc992d1270b8f",
+ "HexResultant/SubresultantMinor.lean": "1b8b7d1210aa004155e418ba4d60534e3c2a758254d3b4348b0df909c4a9ca72",
+ "HexRoots.lean": "83b96dd7350bd1dafa669394a32b33ec2c4f7133a95fd8a4508d88b0f67d00e1",
+ "HexRoots/Basic.lean": "19c0440f57d0ab7ac4cba39265da42b7d56a0f3a202fe113aed6dd4751559b2f",
+ "HexRoots/Bisection.lean": "d2cd554db0a4f6ff7852ec0503594112400c8230750f8811bcaa2dd5e00aadfc",
+ "HexRoots/Cauchy.lean": "839565d81e5065faf766cbfd51409ef220c8567a67aea22d6d8d66c70109f7d5",
+ "HexRoots/IsolateAll.lean": "cfc975c4a5eb464b1d249149cb50f50d98dc641f997caf1cfd3ff7bde4a21eaa",
+ "HexRoots/Kantorovich.lean": "b36dde3834698ef96557628c900a7139818804fbe0beeab617b55b480037b04a",
+ "HexRoots/MahlerPrec.lean": "4b7861257ca4702bf6c9a1baeac1c502a3e933cba48689f5e17887de0a13146d",
+ "HexRoots/Newton.lean": "84c16d9693cc28e8cffd86d944f87f654e3d08d1984f7ddb08831da639149aee",
+ "HexRoots/Pellet.lean": "e4d61eb70c98325cb45d6ef99352d85b0ddda23b474e1df0f68b9fa3ff6ee17e",
+ "HexRoots/Refine.lean": "23c72182b59bd5b5122677d46bd112b88238909e563886ae521f784f06ae2b99",
+ "HexRoots/SimpleRoot.lean": "60be0f3a022c1d1c65609aa9bfbeb778214153edc3f39fdf5df51370129dae13",
+ "HexRoots/SoftPellet.lean": "630c8cef08c2ec0741facdc5b3e705c434790e80734d47729852413f5f37cba3",
+ "HexRoots/Taylor.lean": "0639853c8829fd77142c360bcfd426d281818db70d3db44a74a78b37d24f5eed",
+ "HexRowReduce.lean": "0fd3a17f41b41c95ded9fc3d9e5a4e93d6cac7459ce497cb4b06c8359a1f85ed",
+ "HexRowReduce/Api.lean": "4bd60e5a0b5bb95702459b7d019d4bc5243135ce80329f6161dd70eabd8264bb",
+ "HexRowReduce/Inverse.lean": "78d35ec2bb92eb2df15e343d5973ed6e3b183f1696ed1a0f791824590d16ceb8",
+ "HexRowReduce/Kernel.lean": "6857dee3aaabd088460386cac8b474ed598c07245cf8a5c0d93a7c8809c2715f",
+ "HexRowReduce/Loop.lean": "9fd6163b40b840447302553bc6d9bfaca010a69a9245fc484f83bae8c47802c0",
+ "HexRowReduce/Nullspace.lean": "0953f8ab82ea4916d3f0d4947c1f584983193b7026b6af6c31065e4a6473e0c7",
+ "HexRowReduce/Pivot.lean": "bc0e6b4b6ad04e4e0495ba5787406737afe42e99f7196c7a0a44b51cf1c355e3",
+ "HexRowReduce/RowEchelon.lean": "065c06ee60d7e038666b7a8811dd5a2408d5b7f0ef09ec2c77e8816602b2e5d1",
+ "HexRowReduce/RowEchelon/Contracts.lean": "01a161bbd8e64f8820f26e444942b98b90e0e3934894fbb925dc425809dfab50",
+ "HexRowReduce/RowEchelon/Elementary.lean": "259be162fce1b0a82765f4cd01edd339e7866d7a398dcc71a994f1fac4bdf090",
+ "HexRowReduce/Solve.lean": "27ecd9602eff30769b6f59dbbc29bbd064e65ab169075c50800b21d33b6e59dd",
+ "HexRowReduce/Span.lean": "a7eb4ed673fff9c62df21a4ea64bd8b46473d3fbf780855ab6a406e0ae8f00a6",
+ "HexRowReduce/Witness.lean": "39ab732602e5a6d82ca28d7a1de7c0a439d64147bb31cd907f9b2c2da15706f4",
+ "HexSignDet/Codec.lean": "f1869f236b0a3edc3edfba80c959965072a7e047b1be255f83e8a7b00a07f002",
+ "HexSignDet/Codec/Basic.lean": "722b1f8cba5fd486e1688aac29cfa8c7e09c4cae2c653797972d9ad7cc6e76df",
+ "HexSignDet/Codec/Bytes.lean": "4a70f998b9c14956e52ba3c012d26c2c2d334642a2656b473caac45eb37d0968",
+ "HexSignDet/Codec/Decimal.lean": "bf7e88e012893ae8fa1e8e3ccd0a4a85700a2bbe2c6aa9fba30393a8e659d966",
+ "HexSignDet/Codec/Evidence.lean": "5352b3857ebde1162ac4dd3f09ae2f7137bb3151e480cdbccd9ef959cec51058",
+ "HexSignDet/Codec/EvidenceLaws.lean": "ad9e74a940ae662208ad2d8a557867930a5a848a64c1e1f5c54969ea42f1d42b",
+ "HexSignDet/Codec/GraphLaws.lean": "292cebb2c9ea1131ddd0458de3997aac95cfc1422e99dbd8fb5e7f6d08fcdaa5",
+ "HexSignDet/Codec/Json.lean": "6e9d644c19f24bfab3a4f46dc5a8b4da5fb71b97a92d64b567f29dcfd9b60eac",
+ "HexSignDet/Codec/Laws.lean": "7b7293bcd80b89c887e1227f7ac27f2f7a2ce936adca3b14818ec5c228c36740",
+ "HexSignDet/Codec/Node.lean": "20efa3bdd081236d7e5db1afc2116c98b4b3e89a6723c6dc19ad0aed1f04637f",
+ "HexSignDet/Codec/NodeLaws.lean": "77621bd2ab5c1d7c99d1a7355dd7418ed43a06c4ca5eb885bd37cc1ba6e394f2",
+ "HexSignDet/Codec/String.lean": "8f8e153ff25428fd7322b667cdfaa0a0cd7f0e1d3fd23c1baf971ec9b2607f71",
+ "HexSignDet/Codec/Token.lean": "4a9a80667b0e38e0449dd9d50f7338733b58d839af58884a2ba41219ecdbb087",
+ "HexSignDet/Codec/Value.lean": "ba911f7aea6e08ffb762338f33b8be461bb24a317564381a6c88ea24745ceac5",
+ "HexSignDet/CommonProduct.lean": "78a84ed8c0172573e2c607deedaae8ea0e15877f7a6ae2de9ba068e8b3f5ec87",
+ "HexSignDet/Compare.lean": "c145c522f8a31d2a6f86f04c7d1cdeb09b5adf49fde502e56d4d897292bc8eca",
+ "HexSignDet/Complete.lean": "a8d907cbfee4c14b98b668e4c34d4c2e0d463619760cafab327d0a94988eca64",
+ "HexSignDet/Counts.lean": "f57e6f41c9ddcc5d1c075a768f036965d475d6d2e26b9efc4ed225c33c638696",
+ "HexSignDet/Dag.lean": "d8de62d08d4fa038faa7978202177e04957f60befc13b161974f73cc81f354b8",
+ "HexSignDet/DagBounds.lean": "1ff482fbcb51846b61348d1708062647fb0f61bf2eb04184b86fa17d7bac33a7",
+ "HexSignDet/DagEncode.lean": "b6551e81e610f7fe69e6015f97be602a3b2dbcf6c4959ee81bf974479fdb7d66",
+ "HexSignDet/DagExpand.lean": "6b051dc00bed5de01fc534d2aa3eef835641080693ea6f2cbfb4a908d302f8dc",
+ "HexSignDet/DagMemo.lean": "a8a6495f09f66126ff4f902dacb4c1e00b90b2148eaa6c8f3dd39a671344bc10",
+ "HexSignDet/DagReplay.lean": "be3317f306194a18a314e9f8fca021eefda76ea17704c5ec89daeff9a2867f42",
+ "HexSignDet/DagSelectedSigns.lean": "3ffbfbe2cebf6ad7b5db0cf8b0a3c5a26142a46465d2577a08ddb292594eed26",
+ "HexSignDet/DagSigns.lean": "11efde41cbb44dccd5abf214532c400d54b2adfbf72c28cb8999446318de342b",
+ "HexSignDet/Descriptor.lean": "6f48615c779889877692b3027440f97bc14094e55b9a131a689295ac95dbb149",
+ "HexSignDet/Induction.lean": "acd270591aae1e0e37621f638f9ef1649b1bea143bc81fefd24f64cc2c2a3c7e",
+ "HexSignDet/Matrix.lean": "ec0ebfa5c3dff773822fd90df81457cfbd12795f53dca053869b19a12d37bf6c",
+ "HexSignDet/Moment.lean": "bb8b34b81436016d931d3810543e4f85968ed01a0e22a2e24effd02a7871c79b",
+ "HexSignDet/MomentReplay.lean": "7052669c286e9a60d596139236451d36d0942f001d47e1c9230cdb64264f7b68",
+ "HexSignDet/Produce.lean": "95f70ff4c842d1fc626676d2f5fd8c0d31cb2966c9752294a6bcd588cb0b6edc",
+ "HexSignDet/QueryHandle.lean": "ca2d0ee3e4d6d79d29556158a9c080d42f25e793751f34a3646ca01c3a721f53",
+ "HexSignDet/QueryReduction.lean": "9e467339e2f81781512983b7a130b47f44a2ca058b9c3f4351cb9d6f15152444",
+ "HexSignDet/Reduction.lean": "9b5f3a90380d3063bdc419b189fd2e6357c1544639313654578e3890f882273f",
+ "HexSignDet/Reencode.lean": "c767d41ce4cbff48edc7d4af58aeb578698e7847a19ed0d0e5c45b8f3c243e1a",
+ "HexSignDet/Replay.lean": "a1653641f119f76834e4942eb9d1fcbcfa56d35f9fa163866250409c86e51df8",
+ "HexSignDet/RootList.lean": "5750478148e17a70acf64855f73e33b0b525dce4c8910488424016fabb53bcfa",
+ "HexSignDet/SelectedSigns.lean": "09e68f73c3ce0170851dda6edb253fc1e1fb4c4698c2d3f048d5079c30bcd34e",
+ "HexSignDet/SignOperands.lean": "be2c50cf3e5a11ba36313f13759b9884942caf6ec26fadaea32f9e0ea019e8d0",
+ "HexSignDet/Support.lean": "27bdda357f8cf1aa9d5a28b3a8686f92279d26a900db0fbd653c4bf2a23cf061",
+ "HexSignDet/Table.lean": "af47f06a2978911c515ae5623832a08e181ebab207ecfa411d1d071b9ebb019f",
+ "HexSignDet/TableProducer.lean": "9bd5e8a1b3f7e41130d58f0db85cb56dfce1157e004502d993a2783b9dcf8636",
+ "HexSignDet/Tensor.lean": "0346652cd8e57f896a7143b8a1ff9d9d1968ac04973c32a066be07051f13f74a",
+ "HexSignDet/Thom.lean": "972e4b223b975297883e78831aa9d107a6eee4cfc0c5fafe2f9b175a355e4993",
+ "HexSignDet/ThomOrder.lean": "bca9190e31fe7f29cc606c396e6d565a92bdeaf9b748991f30b3d5ae9e187898",
+ "HexSturm.lean": "2ba87e1d06770a87d89b21097ed43ee2b04b073aa3c4e4cdac4111ea17ff180c",
+ "HexSturm/Basic.lean": "8e32b2f98430439a0ab5d6b1f51035b7a3e95c3a90aaba51837341cde14a4430",
+ "HexSturm/DomainOperations.lean": "c50227b4fc52759ec78bae222bde5733b59510ac1520107544363484f3f5ab5e",
+ "HexSturm/Reduced.lean": "8b3ee4261f0c1d9ccbda74f687abfcaa80bc475888f29de58c12101ad2300632",
+ "HexSturm/Transport.lean": "f2449140033761129b8096beefa4683999488bde9fbce289477b7ec8de752bec",
+ "HexTruncatedSeries.lean": "6b533aaa8d0fb01519b3bf39684fa45604af7050dfdde53079f057e29fca5d4d",
+ "HexTruncatedSeries/Classes.lean": "81f438a4d160b064b1ec190efeecf7da2c6045c6ebe7110bb526edc21b936854",
+ "HexTruncatedSeries/Comp.lean": "41f2a775527ed6ead820350df37d9edcc5a5130d260adf46f74569ebe3c68ab4",
+ "HexTruncatedSeries/Defs.lean": "dad1984a6096b3cefaeacf679900743192105a7a19e118388e187aab57a23bd8",
+ "HexTruncatedSeries/ExpLog.lean": "834ec68f4026833c09e146e0a763dd823e105266a61013154706ac6e243b6985",
+ "HexTruncatedSeries/Inverse.lean": "ecf14f5a5356ca825aa4bee5a2318667965ccfd830b2175fef5bbd6e211f4174",
+ "HexTruncatedSeries/ModuleBoundaryTests.lean": "e409d9f23f70199a1a75c892d7f5ee9185ccaf378d64f966da9f39770750a3e2",
+ "HexTruncatedSeries/Newton.lean": "71cdbbfa7b1a3f5ba85170299088d6086622898727b5979c8eabc774c64a5850",
+ "HexTruncatedSeries/Precision.lean": "a583ea8f982a021adf2ac261e0bce930c7c360d132424bf412f122489c2c259f",
+ "HexTruncatedSeries/Revert.lean": "c8d7161c9dc23f17c7ff39035e0a2ad914948db4ac6e545333a95d56b1ddd73e",
+ "HexTruncatedSeries/Ring.lean": "c12484de7fb880d9abe273a0ca16e2d9147e274105b980fe6f0fe5481f0e8881",
+ "HexTruncatedSeries/Sqrt.lean": "1b98f7a84e07ebd4ec26b7ee7090b01019234036eba4c4aeba961a86f96c1365"
+ },
+ "input_sha256": {
+ "degree-2": "d8c1b3971787eb855565fa87d266572b08dc7409dbd87e35a2a810dce311581b",
+ "degree-3": "ef15189a1ed48356b417a1dec50e46a280552b51f81af6ec4f4fa9a768ec9a51",
+ "degree-4": "0df805651e04fcb75222d5d9af773c3b136558d76b5494ddb77ebe2bc2aa6609",
+ "degree-5": "78051c5a3260b9b22d3175fa18545627bef8d73b251646dcb0e93249d27fd5d6",
+ "atoms-1": "af7ed0a9e1d7c8c754dbe1e0dcb4b36b42274d1384d12f7db8dd734aee191682",
+ "atoms-2": "d8c1b3971787eb855565fa87d266572b08dc7409dbd87e35a2a810dce311581b",
+ "atoms-3": "0899f680d5cbd4e70a032fe512a57cbadf7dcb932ca93952344d856c82f10ebb",
+ "atoms-4": "f7389acf60f007361a6785b727dccd42863656d64e24b3ce1f55de30aaaecaba",
+ "bits-4": "cae1b8df94693a6ad24d28babbfc17455e801c51f421152bd84225276f00cd3f",
+ "bits-16": "d8c1b3971787eb855565fa87d266572b08dc7409dbd87e35a2a810dce311581b",
+ "bits-64": "67fd6a3413196b8a5e3d7b54918f46dcd316e79cfd3a878a0c8b953269faa6db",
+ "bits-128": "ed37810eff123c1724543ae77844e248a22dcfe5a4f795552adb12ba8b7e3837",
+ "precision-0": "d8c1b3971787eb855565fa87d266572b08dc7409dbd87e35a2a810dce311581b",
+ "precision-4": "34a603b79985538fcc990544c73a39cd41945c25a9c5eff7356d1ee867052e56",
+ "precision-8": "1251f25bf0d146643b8be8c81b3ea8b33e815b5e1985121cebea8f9ed0451977",
+ "precision-12": "98c80f87fea4b70e33243b74d26291f342bc8525971d5d77609c072e7e20ef11",
+ "depth-0": "d8c1b3971787eb855565fa87d266572b08dc7409dbd87e35a2a810dce311581b",
+ "depth-1": "568883eb1730999c243ad8a8da4ea7023c7ccb3580ef6046671ae0b830e8d350",
+ "depth-2": "19fb8808b60a8951fc961f3b48d86a98b1a0d1bdc4cdca65f447734ea3b12ead",
+ "repeated-4": "b3d7c2af7995b804e518cc76cfa9e15578653b89ac0ec36556c040fc7593892c",
+ "common-2": "811f840d94eb3144cf1eac4f522c07a804f1ab79c13fa60641b97c45f0469403",
+ "repeated-roots-2": "f3565e01c928833686659b589921d1f2baf48e606ac68dcc65d74cf5e56df16f"
+ },
+ "samples": [
+ {
+ "block": 0,
+ "case": "degree-2",
+ "arm": "lexical",
+ "stem": "00-degree-2-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 5.809803818992805,
+ "max_rss_kib": 438408,
+ "user_seconds": 4.715502,
+ "system_seconds": 1.030959,
+ "load_before": [
+ 0.56005859375,
+ 0.54052734375,
+ 0.81494140625
+ ],
+ "load_after": [
+ 0.8359375,
+ 0.59814453125,
+ 0.83251953125
+ ]
+ },
+ {
+ "block": 0,
+ "case": "degree-2",
+ "arm": "parsed",
+ "stem": "00-degree-2-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.8331206400180236,
+ "max_rss_kib": 448976,
+ "user_seconds": 4.633383,
+ "system_seconds": 0.13841499999999998,
+ "load_before": [
+ 0.8359375,
+ 0.59814453125,
+ 0.83251953125
+ ],
+ "load_after": [
+ 0.84912109375,
+ 0.60498046875,
+ 0.83349609375
+ ]
+ },
+ {
+ "block": 0,
+ "case": "degree-2",
+ "arm": "restored",
+ "stem": "00-degree-2-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.883968548034318,
+ "max_rss_kib": 448608,
+ "user_seconds": 4.740238,
+ "system_seconds": 0.091663,
+ "load_before": [
+ 0.84912109375,
+ 0.60498046875,
+ 0.83349609375
+ ],
+ "load_after": [
+ 1.021484375,
+ 0.64501953125,
+ 0.84521484375
+ ]
+ },
+ {
+ "block": 0,
+ "case": "degree-2",
+ "arm": "replayed",
+ "stem": "00-degree-2-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.404523272998631,
+ "max_rss_kib": 448488,
+ "user_seconds": 4.303446,
+ "system_seconds": 0.07858799999999999,
+ "load_before": [
+ 1.021484375,
+ 0.64501953125,
+ 0.84521484375
+ ],
+ "load_after": [
+ 1.10009765625,
+ 0.66796875,
+ 0.8515625
+ ]
+ },
+ {
+ "block": 0,
+ "case": "degree-3",
+ "arm": "lexical",
+ "stem": "00-degree-3-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 5.063757972966414,
+ "max_rss_kib": 448492,
+ "user_seconds": 4.940282,
+ "system_seconds": 0.094566,
+ "load_before": [
+ 1.10009765625,
+ 0.66796875,
+ 0.8515625
+ ],
+ "load_after": [
+ 1.17236328125,
+ 0.6904296875,
+ 0.85791015625
+ ]
+ },
+ {
+ "block": 0,
+ "case": "degree-3",
+ "arm": "parsed",
+ "stem": "00-degree-3-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 5.0308447949937545,
+ "max_rss_kib": 448616,
+ "user_seconds": 4.912598,
+ "system_seconds": 0.09544799999999999,
+ "load_before": [
+ 1.17236328125,
+ 0.6904296875,
+ 0.85791015625
+ ],
+ "load_after": [
+ 1.158203125,
+ 0.69580078125,
+ 0.85888671875
+ ]
+ },
+ {
+ "block": 0,
+ "case": "degree-3",
+ "arm": "restored",
+ "stem": "00-degree-3-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.408158209989779,
+ "max_rss_kib": 448480,
+ "user_seconds": 4.288278,
+ "system_seconds": 0.082338,
+ "load_before": [
+ 1.158203125,
+ 0.69580078125,
+ 0.85888671875
+ ],
+ "load_after": [
+ 1.22607421875,
+ 0.7177734375,
+ 0.865234375
+ ]
+ },
+ {
+ "block": 0,
+ "case": "degree-3",
+ "arm": "replayed",
+ "stem": "00-degree-3-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.662847981031518,
+ "max_rss_kib": 448576,
+ "user_seconds": 4.564417,
+ "system_seconds": 0.07804,
+ "load_before": [
+ 1.22607421875,
+ 0.7177734375,
+ 0.865234375
+ ],
+ "load_after": [
+ 1.22607421875,
+ 0.7177734375,
+ 0.865234375
+ ]
+ },
+ {
+ "block": 0,
+ "case": "degree-4",
+ "arm": "lexical",
+ "stem": "00-degree-4-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.381083536020014,
+ "max_rss_kib": 448616,
+ "user_seconds": 4.279125,
+ "system_seconds": 0.083387,
+ "load_before": [
+ 1.22607421875,
+ 0.7177734375,
+ 0.865234375
+ ],
+ "load_after": [
+ 1.2880859375,
+ 0.7392578125,
+ 0.87158203125
+ ]
+ },
+ {
+ "block": 0,
+ "case": "degree-4",
+ "arm": "parsed",
+ "stem": "00-degree-4-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.417854511993937,
+ "max_rss_kib": 448520,
+ "user_seconds": 4.323766,
+ "system_seconds": 0.07835099999999999,
+ "load_before": [
+ 1.2880859375,
+ 0.7392578125,
+ 0.87158203125
+ ],
+ "load_after": [
+ 1.34521484375,
+ 0.76025390625,
+ 0.8779296875
+ ]
+ },
+ {
+ "block": 0,
+ "case": "degree-4",
+ "arm": "restored",
+ "stem": "00-degree-4-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.507607328006998,
+ "max_rss_kib": 448596,
+ "user_seconds": 4.399756,
+ "system_seconds": 0.08984199999999999,
+ "load_before": [
+ 1.34521484375,
+ 0.76025390625,
+ 0.8779296875
+ ],
+ "load_after": [
+ 1.39794921875,
+ 0.78125,
+ 0.88427734375
+ ]
+ },
+ {
+ "block": 0,
+ "case": "degree-4",
+ "arm": "replayed",
+ "stem": "00-degree-4-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.831229670031462,
+ "max_rss_kib": 448772,
+ "user_seconds": 4.71927,
+ "system_seconds": 0.09553099999999999,
+ "load_before": [
+ 1.39794921875,
+ 0.78125,
+ 0.88427734375
+ ],
+ "load_after": [
+ 1.4462890625,
+ 0.8017578125,
+ 0.890625
+ ]
+ },
+ {
+ "block": 0,
+ "case": "degree-5",
+ "arm": "lexical",
+ "stem": "00-degree-5-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.4544077150058,
+ "max_rss_kib": 448628,
+ "user_seconds": 4.364107,
+ "system_seconds": 0.073293,
+ "load_before": [
+ 1.4462890625,
+ 0.8017578125,
+ 0.890625
+ ],
+ "load_after": [
+ 1.49072265625,
+ 0.82177734375,
+ 0.89697265625
+ ]
+ },
+ {
+ "block": 0,
+ "case": "degree-5",
+ "arm": "parsed",
+ "stem": "00-degree-5-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.52804024197394,
+ "max_rss_kib": 448680,
+ "user_seconds": 4.403782,
+ "system_seconds": 0.09608,
+ "load_before": [
+ 1.49072265625,
+ 0.82177734375,
+ 0.89697265625
+ ],
+ "load_after": [
+ 1.53173828125,
+ 0.841796875,
+ 0.9033203125
+ ]
+ },
+ {
+ "block": 0,
+ "case": "degree-5",
+ "arm": "restored",
+ "stem": "00-degree-5-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.636552740994375,
+ "max_rss_kib": 448452,
+ "user_seconds": 4.535553,
+ "system_seconds": 0.084825,
+ "load_before": [
+ 1.53173828125,
+ 0.841796875,
+ 0.9033203125
+ ],
+ "load_after": [
+ 1.48876953125,
+ 0.8447265625,
+ 0.904296875
+ ]
+ },
+ {
+ "block": 0,
+ "case": "degree-5",
+ "arm": "replayed",
+ "stem": "00-degree-5-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 5.0288121640332974,
+ "max_rss_kib": 448688,
+ "user_seconds": 4.910213,
+ "system_seconds": 0.08683099999999999,
+ "load_before": [
+ 1.48876953125,
+ 0.8447265625,
+ 0.904296875
+ ],
+ "load_after": [
+ 1.44921875,
+ 0.84765625,
+ 0.9052734375
+ ]
+ },
+ {
+ "block": 0,
+ "case": "atoms-1",
+ "arm": "lexical",
+ "stem": "00-atoms-1-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.821817479969468,
+ "max_rss_kib": 448608,
+ "user_seconds": 4.71011,
+ "system_seconds": 0.08825,
+ "load_before": [
+ 1.44921875,
+ 0.84765625,
+ 0.9052734375
+ ],
+ "load_after": [
+ 1.49365234375,
+ 0.8671875,
+ 0.91162109375
+ ]
+ },
+ {
+ "block": 0,
+ "case": "atoms-1",
+ "arm": "parsed",
+ "stem": "00-atoms-1-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.730084849987179,
+ "max_rss_kib": 448700,
+ "user_seconds": 4.617024,
+ "system_seconds": 0.08051699999999999,
+ "load_before": [
+ 1.49365234375,
+ 0.8671875,
+ 0.91162109375
+ ],
+ "load_after": [
+ 1.69482421875,
+ 0.91943359375,
+ 0.92822265625
+ ]
+ },
+ {
+ "block": 0,
+ "case": "atoms-1",
+ "arm": "restored",
+ "stem": "00-atoms-1-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.983647187997121,
+ "max_rss_kib": 448596,
+ "user_seconds": 4.856645,
+ "system_seconds": 0.09199199999999999,
+ "load_before": [
+ 1.69482421875,
+ 0.91943359375,
+ 0.92822265625
+ ],
+ "load_after": [
+ 1.7998046875,
+ 0.9541015625,
+ 0.939453125
+ ]
+ },
+ {
+ "block": 0,
+ "case": "atoms-1",
+ "arm": "replayed",
+ "stem": "00-atoms-1-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.452150670986157,
+ "max_rss_kib": 448636,
+ "user_seconds": 4.322662,
+ "system_seconds": 0.092266,
+ "load_before": [
+ 1.7998046875,
+ 0.9541015625,
+ 0.939453125
+ ],
+ "load_after": [
+ 1.7353515625,
+ 0.955078125,
+ 0.93994140625
+ ]
+ },
+ {
+ "block": 0,
+ "case": "atoms-2",
+ "arm": "lexical",
+ "stem": "00-atoms-2-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.815658154024277,
+ "max_rss_kib": 448752,
+ "user_seconds": 4.701112,
+ "system_seconds": 0.092927,
+ "load_before": [
+ 1.7353515625,
+ 0.955078125,
+ 0.93994140625
+ ],
+ "load_after": [
+ 1.67626953125,
+ 0.9560546875,
+ 0.9404296875
+ ]
+ },
+ {
+ "block": 0,
+ "case": "atoms-2",
+ "arm": "parsed",
+ "stem": "00-atoms-2-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.726332038990222,
+ "max_rss_kib": 448424,
+ "user_seconds": 4.606671,
+ "system_seconds": 0.085315,
+ "load_before": [
+ 1.67626953125,
+ 0.9560546875,
+ 0.9404296875
+ ],
+ "load_after": [
+ 1.6220703125,
+ 0.95703125,
+ 0.94091796875
+ ]
+ },
+ {
+ "block": 0,
+ "case": "atoms-2",
+ "arm": "restored",
+ "stem": "00-atoms-2-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.859455732977949,
+ "max_rss_kib": 448684,
+ "user_seconds": 4.7599,
+ "system_seconds": 0.083285,
+ "load_before": [
+ 1.6220703125,
+ 0.95703125,
+ 0.94091796875
+ ],
+ "load_after": [
+ 1.57177734375,
+ 0.9580078125,
+ 0.94140625
+ ]
+ },
+ {
+ "block": 0,
+ "case": "atoms-2",
+ "arm": "replayed",
+ "stem": "00-atoms-2-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.428013590048067,
+ "max_rss_kib": 448684,
+ "user_seconds": 4.308173,
+ "system_seconds": 0.080603,
+ "load_before": [
+ 1.57177734375,
+ 0.9580078125,
+ 0.94140625
+ ],
+ "load_after": [
+ 1.57177734375,
+ 0.9580078125,
+ 0.94140625
+ ]
+ },
+ {
+ "block": 0,
+ "case": "atoms-3",
+ "arm": "lexical",
+ "stem": "00-atoms-3-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.509074556000996,
+ "max_rss_kib": 448624,
+ "user_seconds": 4.400098,
+ "system_seconds": 0.090047,
+ "load_before": [
+ 1.57177734375,
+ 0.9580078125,
+ 0.94140625
+ ],
+ "load_after": [
+ 1.52587890625,
+ 0.958984375,
+ 0.94189453125
+ ]
+ },
+ {
+ "block": 0,
+ "case": "atoms-3",
+ "arm": "parsed",
+ "stem": "00-atoms-3-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.435972826962825,
+ "max_rss_kib": 448632,
+ "user_seconds": 4.310502,
+ "system_seconds": 0.10453499999999999,
+ "load_before": [
+ 1.52587890625,
+ 0.958984375,
+ 0.94189453125
+ ],
+ "load_after": [
+ 1.4833984375,
+ 0.9599609375,
+ 0.9423828125
+ ]
+ },
+ {
+ "block": 0,
+ "case": "atoms-3",
+ "arm": "restored",
+ "stem": "00-atoms-3-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.5020141919958405,
+ "max_rss_kib": 448760,
+ "user_seconds": 4.403837,
+ "system_seconds": 0.075668,
+ "load_before": [
+ 1.4833984375,
+ 0.9599609375,
+ 0.9423828125
+ ],
+ "load_after": [
+ 1.4443359375,
+ 0.9609375,
+ 0.94287109375
+ ]
+ },
+ {
+ "block": 0,
+ "case": "atoms-3",
+ "arm": "replayed",
+ "stem": "00-atoms-3-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.836306835990399,
+ "max_rss_kib": 448612,
+ "user_seconds": 4.723217,
+ "system_seconds": 0.07799099999999999,
+ "load_before": [
+ 1.4443359375,
+ 0.9609375,
+ 0.94287109375
+ ],
+ "load_after": [
+ 1.4892578125,
+ 0.978515625,
+ 0.94873046875
+ ]
+ },
+ {
+ "block": 0,
+ "case": "atoms-4",
+ "arm": "lexical",
+ "stem": "00-atoms-4-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.853115328005515,
+ "max_rss_kib": 448516,
+ "user_seconds": 4.746355,
+ "system_seconds": 0.067491,
+ "load_before": [
+ 1.4892578125,
+ 0.978515625,
+ 0.94873046875
+ ],
+ "load_after": [
+ 1.44970703125,
+ 0.97900390625,
+ 0.94921875
+ ]
+ },
+ {
+ "block": 0,
+ "case": "atoms-4",
+ "arm": "parsed",
+ "stem": "00-atoms-4-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.739925126021262,
+ "max_rss_kib": 448424,
+ "user_seconds": 4.644867,
+ "system_seconds": 0.07341199999999999,
+ "load_before": [
+ 1.44970703125,
+ 0.97900390625,
+ 0.94921875
+ ],
+ "load_after": [
+ 1.41357421875,
+ 0.9794921875,
+ 0.94970703125
+ ]
+ },
+ {
+ "block": 0,
+ "case": "atoms-4",
+ "arm": "restored",
+ "stem": "00-atoms-4-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.8351723160012625,
+ "max_rss_kib": 448652,
+ "user_seconds": 4.713745,
+ "system_seconds": 0.084198,
+ "load_before": [
+ 1.41357421875,
+ 0.9794921875,
+ 0.94970703125
+ ],
+ "load_after": [
+ 1.38037109375,
+ 0.97998046875,
+ 0.9501953125
+ ]
+ },
+ {
+ "block": 0,
+ "case": "atoms-4",
+ "arm": "replayed",
+ "stem": "00-atoms-4-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.410186141030863,
+ "max_rss_kib": 448716,
+ "user_seconds": 4.301714,
+ "system_seconds": 0.082276,
+ "load_before": [
+ 1.38037109375,
+ 0.97998046875,
+ 0.9501953125
+ ],
+ "load_after": [
+ 1.349609375,
+ 0.98046875,
+ 0.95068359375
+ ]
+ },
+ {
+ "block": 0,
+ "case": "bits-4",
+ "arm": "lexical",
+ "stem": "00-bits-4-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.778578853001818,
+ "max_rss_kib": 448692,
+ "user_seconds": 4.65937,
+ "system_seconds": 0.09103,
+ "load_before": [
+ 1.349609375,
+ 0.98046875,
+ 0.95068359375
+ ],
+ "load_after": [
+ 1.3212890625,
+ 0.98095703125,
+ 0.951171875
+ ]
+ },
+ {
+ "block": 0,
+ "case": "bits-4",
+ "arm": "parsed",
+ "stem": "00-bits-4-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.638603524013888,
+ "max_rss_kib": 448652,
+ "user_seconds": 4.532653,
+ "system_seconds": 0.088991,
+ "load_before": [
+ 1.3212890625,
+ 0.98095703125,
+ 0.951171875
+ ],
+ "load_after": [
+ 1.29541015625,
+ 0.9814453125,
+ 0.95166015625
+ ]
+ },
+ {
+ "block": 0,
+ "case": "bits-4",
+ "arm": "restored",
+ "stem": "00-bits-4-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.75553146598395,
+ "max_rss_kib": 448448,
+ "user_seconds": 4.669231,
+ "system_seconds": 0.067009,
+ "load_before": [
+ 1.29541015625,
+ 0.9814453125,
+ 0.95166015625
+ ],
+ "load_after": [
+ 1.271484375,
+ 0.98193359375,
+ 0.9521484375
+ ]
+ },
+ {
+ "block": 0,
+ "case": "bits-4",
+ "arm": "replayed",
+ "stem": "00-bits-4-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 5.155379906005692,
+ "max_rss_kib": 448620,
+ "user_seconds": 5.048056,
+ "system_seconds": 0.074109,
+ "load_before": [
+ 1.271484375,
+ 0.98193359375,
+ 0.9521484375
+ ],
+ "load_after": [
+ 1.24951171875,
+ 0.982421875,
+ 0.95263671875
+ ]
+ },
+ {
+ "block": 0,
+ "case": "bits-16",
+ "arm": "lexical",
+ "stem": "00-bits-16-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.8418974339729175,
+ "max_rss_kib": 448676,
+ "user_seconds": 4.738471,
+ "system_seconds": 0.083871,
+ "load_before": [
+ 1.24951171875,
+ 0.982421875,
+ 0.95263671875
+ ],
+ "load_after": [
+ 1.31005859375,
+ 0.99951171875,
+ 0.95849609375
+ ]
+ },
+ {
+ "block": 0,
+ "case": "bits-16",
+ "arm": "parsed",
+ "stem": "00-bits-16-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.7280745949829,
+ "max_rss_kib": 448520,
+ "user_seconds": 4.614966,
+ "system_seconds": 0.090582,
+ "load_before": [
+ 1.31005859375,
+ 0.99951171875,
+ 0.95849609375
+ ],
+ "load_after": [
+ 1.28515625,
+ 1.0,
+ 0.958984375
+ ]
+ },
+ {
+ "block": 0,
+ "case": "bits-16",
+ "arm": "restored",
+ "stem": "00-bits-16-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.855282531003468,
+ "max_rss_kib": 448676,
+ "user_seconds": 4.72923,
+ "system_seconds": 0.09408899999999999,
+ "load_before": [
+ 1.28515625,
+ 1.0,
+ 0.958984375
+ ],
+ "load_after": [
+ 1.26220703125,
+ 1.0,
+ 0.95947265625
+ ]
+ },
+ {
+ "block": 0,
+ "case": "bits-16",
+ "arm": "replayed",
+ "stem": "00-bits-16-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.4053569349925965,
+ "max_rss_kib": 448464,
+ "user_seconds": 4.309165,
+ "system_seconds": 0.07628599999999999,
+ "load_before": [
+ 1.26220703125,
+ 1.0,
+ 0.95947265625
+ ],
+ "load_after": [
+ 1.26220703125,
+ 1.0,
+ 0.95947265625
+ ]
+ },
+ {
+ "block": 0,
+ "case": "bits-64",
+ "arm": "lexical",
+ "stem": "00-bits-64-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.986664513999131,
+ "max_rss_kib": 448668,
+ "user_seconds": 4.885663,
+ "system_seconds": 0.079771,
+ "load_before": [
+ 1.26220703125,
+ 1.0,
+ 0.95947265625
+ ],
+ "load_after": [
+ 1.24072265625,
+ 1.0,
+ 0.9599609375
+ ]
+ },
+ {
+ "block": 0,
+ "case": "bits-64",
+ "arm": "parsed",
+ "stem": "00-bits-64-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.586215284012724,
+ "max_rss_kib": 448472,
+ "user_seconds": 4.477824,
+ "system_seconds": 0.086314,
+ "load_before": [
+ 1.24072265625,
+ 1.0,
+ 0.9599609375
+ ],
+ "load_after": [
+ 1.3017578125,
+ 1.0166015625,
+ 0.9658203125
+ ]
+ },
+ {
+ "block": 0,
+ "case": "bits-64",
+ "arm": "restored",
+ "stem": "00-bits-64-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.667077345016878,
+ "max_rss_kib": 448592,
+ "user_seconds": 4.555855,
+ "system_seconds": 0.079675,
+ "load_before": [
+ 1.3017578125,
+ 1.0166015625,
+ 0.9658203125
+ ],
+ "load_after": [
+ 1.43798828125,
+ 1.0498046875,
+ 0.97705078125
+ ]
+ },
+ {
+ "block": 0,
+ "case": "bits-64",
+ "arm": "replayed",
+ "stem": "00-bits-64-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.877313052013051,
+ "max_rss_kib": 448524,
+ "user_seconds": 4.774775,
+ "system_seconds": 0.080866,
+ "load_before": [
+ 1.43798828125,
+ 1.0498046875,
+ 0.97705078125
+ ],
+ "load_after": [
+ 1.40283203125,
+ 1.048828125,
+ 0.9775390625
+ ]
+ },
+ {
+ "block": 0,
+ "case": "bits-128",
+ "arm": "lexical",
+ "stem": "00-bits-128-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.385834351996891,
+ "max_rss_kib": 448692,
+ "user_seconds": 4.265333,
+ "system_seconds": 0.082907,
+ "load_before": [
+ 1.40283203125,
+ 1.048828125,
+ 0.9775390625
+ ],
+ "load_after": [
+ 1.3701171875,
+ 1.0478515625,
+ 0.97802734375
+ ]
+ },
+ {
+ "block": 0,
+ "case": "bits-128",
+ "arm": "parsed",
+ "stem": "00-bits-128-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.485152124951128,
+ "max_rss_kib": 448608,
+ "user_seconds": 4.379422,
+ "system_seconds": 0.07904,
+ "load_before": [
+ 1.3701171875,
+ 1.0478515625,
+ 0.97802734375
+ ],
+ "load_after": [
+ 1.34033203125,
+ 1.046875,
+ 0.978515625
+ ]
+ },
+ {
+ "block": 0,
+ "case": "bits-128",
+ "arm": "restored",
+ "stem": "00-bits-128-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.516813318012282,
+ "max_rss_kib": 448568,
+ "user_seconds": 4.428779,
+ "system_seconds": 0.07213699999999999,
+ "load_before": [
+ 1.34033203125,
+ 1.046875,
+ 0.978515625
+ ],
+ "load_after": [
+ 1.31298828125,
+ 1.0458984375,
+ 0.97900390625
+ ]
+ },
+ {
+ "block": 0,
+ "case": "bits-128",
+ "arm": "replayed",
+ "stem": "00-bits-128-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.778077602037229,
+ "max_rss_kib": 448480,
+ "user_seconds": 4.668416,
+ "system_seconds": 0.085617,
+ "load_before": [
+ 1.31298828125,
+ 1.0458984375,
+ 0.97900390625
+ ],
+ "load_after": [
+ 1.28759765625,
+ 1.044921875,
+ 0.9794921875
+ ]
+ },
+ {
+ "block": 0,
+ "case": "precision-0",
+ "arm": "lexical",
+ "stem": "00-precision-0-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.856579084997065,
+ "max_rss_kib": 448468,
+ "user_seconds": 4.728156,
+ "system_seconds": 0.086383,
+ "load_before": [
+ 1.28759765625,
+ 1.044921875,
+ 0.9794921875
+ ],
+ "load_after": [
+ 1.6650390625,
+ 1.12744140625,
+ 1.0068359375
+ ]
+ },
+ {
+ "block": 0,
+ "case": "precision-0",
+ "arm": "parsed",
+ "stem": "00-precision-0-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.734679604007397,
+ "max_rss_kib": 448668,
+ "user_seconds": 4.612496,
+ "system_seconds": 0.096428,
+ "load_before": [
+ 1.6650390625,
+ 1.12744140625,
+ 1.0068359375
+ ],
+ "load_after": [
+ 1.69189453125,
+ 1.14208984375,
+ 1.01220703125
+ ]
+ },
+ {
+ "block": 0,
+ "case": "precision-0",
+ "arm": "restored",
+ "stem": "00-precision-0-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.860895853023976,
+ "max_rss_kib": 448732,
+ "user_seconds": 4.7418,
+ "system_seconds": 0.08835,
+ "load_before": [
+ 1.69189453125,
+ 1.14208984375,
+ 1.01220703125
+ ],
+ "load_after": [
+ 1.63623046875,
+ 1.1396484375,
+ 1.01171875
+ ]
+ },
+ {
+ "block": 0,
+ "case": "precision-0",
+ "arm": "replayed",
+ "stem": "00-precision-0-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.412144305999391,
+ "max_rss_kib": 448408,
+ "user_seconds": 4.29587,
+ "system_seconds": 0.093444,
+ "load_before": [
+ 1.63623046875,
+ 1.1396484375,
+ 1.01171875
+ ],
+ "load_after": [
+ 1.5849609375,
+ 1.13720703125,
+ 1.01123046875
+ ]
+ },
+ {
+ "block": 0,
+ "case": "precision-4",
+ "arm": "lexical",
+ "stem": "00-precision-4-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.832391188014299,
+ "max_rss_kib": 448652,
+ "user_seconds": 4.721293,
+ "system_seconds": 0.077721,
+ "load_before": [
+ 1.5849609375,
+ 1.13720703125,
+ 1.01123046875
+ ],
+ "load_after": [
+ 1.61865234375,
+ 1.15185546875,
+ 1.0166015625
+ ]
+ },
+ {
+ "block": 0,
+ "case": "precision-4",
+ "arm": "parsed",
+ "stem": "00-precision-4-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.74503074598033,
+ "max_rss_kib": 448440,
+ "user_seconds": 4.634959,
+ "system_seconds": 0.089706,
+ "load_before": [
+ 1.61865234375,
+ 1.15185546875,
+ 1.0166015625
+ ],
+ "load_after": [
+ 1.56884765625,
+ 1.14892578125,
+ 1.01611328125
+ ]
+ },
+ {
+ "block": 0,
+ "case": "precision-4",
+ "arm": "restored",
+ "stem": "00-precision-4-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.857034330023453,
+ "max_rss_kib": 448472,
+ "user_seconds": 4.743718,
+ "system_seconds": 0.092445,
+ "load_before": [
+ 1.56884765625,
+ 1.14892578125,
+ 1.01611328125
+ ],
+ "load_after": [
+ 1.52294921875,
+ 1.14599609375,
+ 1.015625
+ ]
+ },
+ {
+ "block": 0,
+ "case": "precision-4",
+ "arm": "replayed",
+ "stem": "00-precision-4-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.438414208998438,
+ "max_rss_kib": 448444,
+ "user_seconds": 4.314194,
+ "system_seconds": 0.08549799999999999,
+ "load_before": [
+ 1.52294921875,
+ 1.14599609375,
+ 1.015625
+ ],
+ "load_after": [
+ 1.52294921875,
+ 1.14599609375,
+ 1.015625
+ ]
+ },
+ {
+ "block": 0,
+ "case": "precision-8",
+ "arm": "lexical",
+ "stem": "00-precision-8-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.838860616029706,
+ "max_rss_kib": 448520,
+ "user_seconds": 4.750471,
+ "system_seconds": 0.070223,
+ "load_before": [
+ 1.52294921875,
+ 1.14599609375,
+ 1.015625
+ ],
+ "load_after": [
+ 1.48095703125,
+ 1.1435546875,
+ 1.01513671875
+ ]
+ },
+ {
+ "block": 0,
+ "case": "precision-8",
+ "arm": "parsed",
+ "stem": "00-precision-8-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.766072671976872,
+ "max_rss_kib": 448536,
+ "user_seconds": 4.659898,
+ "system_seconds": 0.083025,
+ "load_before": [
+ 1.48095703125,
+ 1.1435546875,
+ 1.01513671875
+ ],
+ "load_after": [
+ 1.4423828125,
+ 1.14111328125,
+ 1.0146484375
+ ]
+ },
+ {
+ "block": 0,
+ "case": "precision-8",
+ "arm": "restored",
+ "stem": "00-precision-8-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.882949046965223,
+ "max_rss_kib": 448616,
+ "user_seconds": 4.766459,
+ "system_seconds": 0.092055,
+ "load_before": [
+ 1.4423828125,
+ 1.14111328125,
+ 1.0146484375
+ ],
+ "load_after": [
+ 1.40673828125,
+ 1.138671875,
+ 1.01416015625
+ ]
+ },
+ {
+ "block": 0,
+ "case": "precision-8",
+ "arm": "replayed",
+ "stem": "00-precision-8-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.439244229986798,
+ "max_rss_kib": 448696,
+ "user_seconds": 4.315022,
+ "system_seconds": 0.09142299999999999,
+ "load_before": [
+ 1.40673828125,
+ 1.138671875,
+ 1.01416015625
+ ],
+ "load_after": [
+ 1.3740234375,
+ 1.13623046875,
+ 1.013671875
+ ]
+ },
+ {
+ "block": 0,
+ "case": "precision-12",
+ "arm": "lexical",
+ "stem": "00-precision-12-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.859736065031029,
+ "max_rss_kib": 448644,
+ "user_seconds": 4.737567,
+ "system_seconds": 0.085893,
+ "load_before": [
+ 1.3740234375,
+ 1.13623046875,
+ 1.013671875
+ ],
+ "load_after": [
+ 1.34375,
+ 1.1337890625,
+ 1.01318359375
+ ]
+ },
+ {
+ "block": 0,
+ "case": "precision-12",
+ "arm": "parsed",
+ "stem": "00-precision-12-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.764545148995239,
+ "max_rss_kib": 448596,
+ "user_seconds": 4.6449549999999995,
+ "system_seconds": 0.08721,
+ "load_before": [
+ 1.34375,
+ 1.1337890625,
+ 1.01318359375
+ ],
+ "load_after": [
+ 1.396484375,
+ 1.1484375,
+ 1.0185546875
+ ]
+ },
+ {
+ "block": 0,
+ "case": "precision-12",
+ "arm": "restored",
+ "stem": "00-precision-12-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.88128393900115,
+ "max_rss_kib": 448728,
+ "user_seconds": 4.76661,
+ "system_seconds": 0.090124,
+ "load_before": [
+ 1.396484375,
+ 1.1484375,
+ 1.0185546875
+ ],
+ "load_after": [
+ 1.44482421875,
+ 1.16259765625,
+ 1.02392578125
+ ]
+ },
+ {
+ "block": 0,
+ "case": "precision-12",
+ "arm": "replayed",
+ "stem": "00-precision-12-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.4279045250150375,
+ "max_rss_kib": 448504,
+ "user_seconds": 4.329375,
+ "system_seconds": 0.071437,
+ "load_before": [
+ 1.44482421875,
+ 1.16259765625,
+ 1.02392578125
+ ],
+ "load_after": [
+ 1.4091796875,
+ 1.15966796875,
+ 1.0234375
+ ]
+ },
+ {
+ "block": 0,
+ "case": "depth-0",
+ "arm": "lexical",
+ "stem": "00-depth-0-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.820077370037325,
+ "max_rss_kib": 448476,
+ "user_seconds": 4.717142,
+ "system_seconds": 0.084885,
+ "load_before": [
+ 1.4091796875,
+ 1.15966796875,
+ 1.0234375
+ ],
+ "load_after": [
+ 1.45654296875,
+ 1.173828125,
+ 1.02880859375
+ ]
+ },
+ {
+ "block": 0,
+ "case": "depth-0",
+ "arm": "parsed",
+ "stem": "00-depth-0-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.730955567967612,
+ "max_rss_kib": 448708,
+ "user_seconds": 4.618385,
+ "system_seconds": 0.08287599999999999,
+ "load_before": [
+ 1.45654296875,
+ 1.173828125,
+ 1.02880859375
+ ],
+ "load_after": [
+ 1.419921875,
+ 1.1708984375,
+ 1.0283203125
+ ]
+ },
+ {
+ "block": 0,
+ "case": "depth-0",
+ "arm": "restored",
+ "stem": "00-depth-0-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.86495478998404,
+ "max_rss_kib": 448644,
+ "user_seconds": 4.743122,
+ "system_seconds": 0.089388,
+ "load_before": [
+ 1.419921875,
+ 1.1708984375,
+ 1.0283203125
+ ],
+ "load_after": [
+ 1.546875,
+ 1.20166015625,
+ 1.0390625
+ ]
+ },
+ {
+ "block": 0,
+ "case": "depth-0",
+ "arm": "replayed",
+ "stem": "00-depth-0-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.403422140982002,
+ "max_rss_kib": 448560,
+ "user_seconds": 4.280297,
+ "system_seconds": 0.10354999999999999,
+ "load_before": [
+ 1.546875,
+ 1.20166015625,
+ 1.0390625
+ ],
+ "load_after": [
+ 1.5029296875,
+ 1.1982421875,
+ 1.03857421875
+ ]
+ },
+ {
+ "block": 0,
+ "case": "depth-1",
+ "arm": "lexical",
+ "stem": "00-depth-1-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.460980335017666,
+ "max_rss_kib": 448472,
+ "user_seconds": 4.348082,
+ "system_seconds": 0.08215299999999999,
+ "load_before": [
+ 1.5029296875,
+ 1.1982421875,
+ 1.03857421875
+ ],
+ "load_after": [
+ 1.46240234375,
+ 1.19482421875,
+ 1.0380859375
+ ]
+ },
+ {
+ "block": 0,
+ "case": "depth-1",
+ "arm": "parsed",
+ "stem": "00-depth-1-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.402537499961909,
+ "max_rss_kib": 448616,
+ "user_seconds": 4.273218,
+ "system_seconds": 0.101853,
+ "load_before": [
+ 1.46240234375,
+ 1.19482421875,
+ 1.0380859375
+ ],
+ "load_after": [
+ 1.826171875,
+ 1.27490234375,
+ 1.06494140625
+ ]
+ },
+ {
+ "block": 0,
+ "case": "depth-1",
+ "arm": "restored",
+ "stem": "00-depth-1-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.560399627953302,
+ "max_rss_kib": 448360,
+ "user_seconds": 4.463651,
+ "system_seconds": 0.078258,
+ "load_before": [
+ 1.826171875,
+ 1.27490234375,
+ 1.06494140625
+ ],
+ "load_after": [
+ 1.826171875,
+ 1.27490234375,
+ 1.06494140625
+ ]
+ },
+ {
+ "block": 0,
+ "case": "depth-1",
+ "arm": "replayed",
+ "stem": "00-depth-1-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 5.006167712970637,
+ "max_rss_kib": 448416,
+ "user_seconds": 4.8943829999999995,
+ "system_seconds": 0.085978,
+ "load_before": [
+ 1.826171875,
+ 1.27490234375,
+ 1.06494140625
+ ],
+ "load_after": [
+ 1.759765625,
+ 1.27001953125,
+ 1.064453125
+ ]
+ },
+ {
+ "block": 0,
+ "case": "depth-2",
+ "arm": "lexical",
+ "stem": "00-depth-2-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.404385269037448,
+ "max_rss_kib": 448716,
+ "user_seconds": 4.300833,
+ "system_seconds": 0.076495,
+ "load_before": [
+ 1.759765625,
+ 1.27001953125,
+ 1.064453125
+ ],
+ "load_after": [
+ 1.69873046875,
+ 1.26513671875,
+ 1.06396484375
+ ]
+ },
+ {
+ "block": 0,
+ "case": "depth-2",
+ "arm": "parsed",
+ "stem": "00-depth-2-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.477755926956888,
+ "max_rss_kib": 448716,
+ "user_seconds": 4.357941,
+ "system_seconds": 0.105124,
+ "load_before": [
+ 1.69873046875,
+ 1.26513671875,
+ 1.06396484375
+ ],
+ "load_after": [
+ 1.642578125,
+ 1.26025390625,
+ 1.0634765625
+ ]
+ },
+ {
+ "block": 0,
+ "case": "depth-2",
+ "arm": "restored",
+ "stem": "00-depth-2-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.859454419987742,
+ "max_rss_kib": 448684,
+ "user_seconds": 4.711704,
+ "system_seconds": 0.105877,
+ "load_before": [
+ 1.642578125,
+ 1.26025390625,
+ 1.0634765625
+ ],
+ "load_after": [
+ 1.5908203125,
+ 1.255859375,
+ 1.06298828125
+ ]
+ },
+ {
+ "block": 0,
+ "case": "depth-2",
+ "arm": "replayed",
+ "stem": "00-depth-2-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.6094863069592975,
+ "max_rss_kib": 442984,
+ "user_seconds": 4.468131,
+ "system_seconds": 0.09826,
+ "load_before": [
+ 1.5908203125,
+ 1.255859375,
+ 1.06298828125
+ ],
+ "load_after": [
+ 1.54345703125,
+ 1.25146484375,
+ 1.0625
+ ]
+ },
+ {
+ "block": 0,
+ "case": "repeated-4",
+ "arm": "lexical",
+ "stem": "00-repeated-4-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.616383678978309,
+ "max_rss_kib": 448684,
+ "user_seconds": 4.490082,
+ "system_seconds": 0.090041,
+ "load_before": [
+ 1.54345703125,
+ 1.25146484375,
+ 1.0625
+ ],
+ "load_after": [
+ 1.49951171875,
+ 1.2470703125,
+ 1.06201171875
+ ]
+ },
+ {
+ "block": 0,
+ "case": "repeated-4",
+ "arm": "parsed",
+ "stem": "00-repeated-4-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.509462968970183,
+ "max_rss_kib": 448492,
+ "user_seconds": 4.390641,
+ "system_seconds": 0.084227,
+ "load_before": [
+ 1.49951171875,
+ 1.2470703125,
+ 1.06201171875
+ ],
+ "load_after": [
+ 1.45947265625,
+ 1.24267578125,
+ 1.0615234375
+ ]
+ },
+ {
+ "block": 0,
+ "case": "repeated-4",
+ "arm": "restored",
+ "stem": "00-repeated-4-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.63503143604612,
+ "max_rss_kib": 448616,
+ "user_seconds": 4.50849,
+ "system_seconds": 0.08874499999999999,
+ "load_before": [
+ 1.45947265625,
+ 1.24267578125,
+ 1.0615234375
+ ],
+ "load_after": [
+ 1.5029296875,
+ 1.25537109375,
+ 1.06689453125
+ ]
+ },
+ {
+ "block": 0,
+ "case": "repeated-4",
+ "arm": "replayed",
+ "stem": "00-repeated-4-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.965131447010208,
+ "max_rss_kib": 448696,
+ "user_seconds": 4.835656,
+ "system_seconds": 0.10540899999999999,
+ "load_before": [
+ 1.5029296875,
+ 1.25537109375,
+ 1.06689453125
+ ],
+ "load_after": [
+ 1.54296875,
+ 1.26806640625,
+ 1.072265625
+ ]
+ },
+ {
+ "block": 0,
+ "case": "common-2",
+ "arm": "lexical",
+ "stem": "00-common-2-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.6233730090316385,
+ "max_rss_kib": 448620,
+ "user_seconds": 4.508131,
+ "system_seconds": 0.094956,
+ "load_before": [
+ 1.54296875,
+ 1.26806640625,
+ 1.072265625
+ ],
+ "load_after": [
+ 1.65966796875,
+ 1.296875,
+ 1.0830078125
+ ]
+ },
+ {
+ "block": 0,
+ "case": "common-2",
+ "arm": "parsed",
+ "stem": "00-common-2-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.479861358006019,
+ "max_rss_kib": 448704,
+ "user_seconds": 4.339782,
+ "system_seconds": 0.105886,
+ "load_before": [
+ 1.65966796875,
+ 1.296875,
+ 1.0830078125
+ ],
+ "load_after": [
+ 1.6064453125,
+ 1.29150390625,
+ 1.08251953125
+ ]
+ },
+ {
+ "block": 0,
+ "case": "common-2",
+ "arm": "restored",
+ "stem": "00-common-2-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.618361391010694,
+ "max_rss_kib": 448716,
+ "user_seconds": 4.503743,
+ "system_seconds": 0.080727,
+ "load_before": [
+ 1.6064453125,
+ 1.29150390625,
+ 1.08251953125
+ ],
+ "load_after": [
+ 1.5576171875,
+ 1.28662109375,
+ 1.08203125
+ ]
+ },
+ {
+ "block": 0,
+ "case": "common-2",
+ "arm": "replayed",
+ "stem": "00-common-2-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.872691778989974,
+ "max_rss_kib": 448592,
+ "user_seconds": 4.740388,
+ "system_seconds": 0.108279,
+ "load_before": [
+ 1.5576171875,
+ 1.28662109375,
+ 1.08203125
+ ],
+ "load_after": [
+ 1.75341796875,
+ 1.33203125,
+ 1.09814453125
+ ]
+ },
+ {
+ "block": 0,
+ "case": "repeated-roots-2",
+ "arm": "lexical",
+ "stem": "00-repeated-roots-2-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.7937540099956095,
+ "max_rss_kib": 448680,
+ "user_seconds": 4.669998,
+ "system_seconds": 0.086104,
+ "load_before": [
+ 1.75341796875,
+ 1.33203125,
+ 1.09814453125
+ ],
+ "load_after": [
+ 1.7734375,
+ 1.34326171875,
+ 1.10302734375
+ ]
+ },
+ {
+ "block": 0,
+ "case": "repeated-roots-2",
+ "arm": "parsed",
+ "stem": "00-repeated-roots-2-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.642756575951353,
+ "max_rss_kib": 448520,
+ "user_seconds": 4.524008,
+ "system_seconds": 0.09509,
+ "load_before": [
+ 1.7734375,
+ 1.34326171875,
+ 1.10302734375
+ ],
+ "load_after": [
+ 1.71142578125,
+ 1.33740234375,
+ 1.10205078125
+ ]
+ },
+ {
+ "block": 0,
+ "case": "repeated-roots-2",
+ "arm": "restored",
+ "stem": "00-repeated-roots-2-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.77236120501766,
+ "max_rss_kib": 448676,
+ "user_seconds": 4.653439,
+ "system_seconds": 0.09441899999999999,
+ "load_before": [
+ 1.71142578125,
+ 1.33740234375,
+ 1.10205078125
+ ],
+ "load_after": [
+ 1.71142578125,
+ 1.33740234375,
+ 1.10205078125
+ ]
+ },
+ {
+ "block": 0,
+ "case": "repeated-roots-2",
+ "arm": "replayed",
+ "stem": "00-repeated-roots-2-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 5.175944392045494,
+ "max_rss_kib": 448528,
+ "user_seconds": 5.027922,
+ "system_seconds": 0.10654699999999999,
+ "load_before": [
+ 1.71142578125,
+ 1.33740234375,
+ 1.10205078125
+ ],
+ "load_after": [
+ 1.75634765625,
+ 1.35986328125,
+ 1.11181640625
+ ]
+ },
+ {
+ "block": 1,
+ "case": "degree-2",
+ "arm": "replayed",
+ "stem": "01-degree-2-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.429287155973725,
+ "max_rss_kib": 448704,
+ "user_seconds": 4.287151,
+ "system_seconds": 0.11069599999999999,
+ "load_before": [
+ 1.75634765625,
+ 1.35986328125,
+ 1.11181640625
+ ],
+ "load_after": [
+ 1.75634765625,
+ 1.35986328125,
+ 1.11181640625
+ ]
+ },
+ {
+ "block": 1,
+ "case": "degree-2",
+ "arm": "restored",
+ "stem": "01-degree-2-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.869276517012622,
+ "max_rss_kib": 448492,
+ "user_seconds": 4.756541,
+ "system_seconds": 0.08175,
+ "load_before": [
+ 1.75634765625,
+ 1.35986328125,
+ 1.11181640625
+ ],
+ "load_after": [
+ 1.77587890625,
+ 1.37060546875,
+ 1.11669921875
+ ]
+ },
+ {
+ "block": 1,
+ "case": "degree-2",
+ "arm": "parsed",
+ "stem": "01-degree-2-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.742646305996459,
+ "max_rss_kib": 448612,
+ "user_seconds": 4.60861,
+ "system_seconds": 0.10025099999999999,
+ "load_before": [
+ 1.77587890625,
+ 1.37060546875,
+ 1.11669921875
+ ],
+ "load_after": [
+ 1.8740234375,
+ 1.39794921875,
+ 1.126953125
+ ]
+ },
+ {
+ "block": 1,
+ "case": "degree-2",
+ "arm": "lexical",
+ "stem": "01-degree-2-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.853228744992521,
+ "max_rss_kib": 448592,
+ "user_seconds": 4.7344539999999995,
+ "system_seconds": 0.085713,
+ "load_before": [
+ 1.8740234375,
+ 1.39794921875,
+ 1.126953125
+ ],
+ "load_after": [
+ 1.88427734375,
+ 1.408203125,
+ 1.1318359375
+ ]
+ },
+ {
+ "block": 1,
+ "case": "degree-3",
+ "arm": "replayed",
+ "stem": "01-degree-3-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.671728333982173,
+ "max_rss_kib": 448728,
+ "user_seconds": 4.536176,
+ "system_seconds": 0.108399,
+ "load_before": [
+ 1.88427734375,
+ 1.408203125,
+ 1.1318359375
+ ],
+ "load_after": [
+ 1.81298828125,
+ 1.4013671875,
+ 1.130859375
+ ]
+ },
+ {
+ "block": 1,
+ "case": "degree-3",
+ "arm": "restored",
+ "stem": "01-degree-3-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.409321167040616,
+ "max_rss_kib": 448664,
+ "user_seconds": 4.293091,
+ "system_seconds": 0.09802,
+ "load_before": [
+ 1.81298828125,
+ 1.4013671875,
+ 1.130859375
+ ],
+ "load_after": [
+ 1.828125,
+ 1.41162109375,
+ 1.1357421875
+ ]
+ },
+ {
+ "block": 1,
+ "case": "degree-3",
+ "arm": "parsed",
+ "stem": "01-degree-3-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 5.089011053962167,
+ "max_rss_kib": 448844,
+ "user_seconds": 4.963144,
+ "system_seconds": 0.09021599999999999,
+ "load_before": [
+ 1.828125,
+ 1.41162109375,
+ 1.1357421875
+ ],
+ "load_after": [
+ 2.80322265625,
+ 1.62109375,
+ 1.205078125
+ ]
+ },
+ {
+ "block": 1,
+ "case": "degree-3",
+ "arm": "lexical",
+ "stem": "01-degree-3-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 5.056388957018498,
+ "max_rss_kib": 448844,
+ "user_seconds": 4.929931,
+ "system_seconds": 0.107406,
+ "load_before": [
+ 2.80322265625,
+ 1.62109375,
+ 1.205078125
+ ],
+ "load_after": [
+ 2.73876953125,
+ 1.62744140625,
+ 1.20947265625
+ ]
+ },
+ {
+ "block": 1,
+ "case": "degree-4",
+ "arm": "replayed",
+ "stem": "01-degree-4-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.845360564999282,
+ "max_rss_kib": 448784,
+ "user_seconds": 4.729034,
+ "system_seconds": 0.094223,
+ "load_before": [
+ 2.73876953125,
+ 1.62744140625,
+ 1.20947265625
+ ],
+ "load_after": [
+ 2.59912109375,
+ 1.61669921875,
+ 1.2080078125
+ ]
+ },
+ {
+ "block": 1,
+ "case": "degree-4",
+ "arm": "restored",
+ "stem": "01-degree-4-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.52248889504699,
+ "max_rss_kib": 448652,
+ "user_seconds": 4.398329,
+ "system_seconds": 0.10647799999999999,
+ "load_before": [
+ 2.59912109375,
+ 1.61669921875,
+ 1.2080078125
+ ],
+ "load_after": [
+ 2.55078125,
+ 1.62353515625,
+ 1.21240234375
+ ]
+ },
+ {
+ "block": 1,
+ "case": "degree-4",
+ "arm": "parsed",
+ "stem": "01-degree-4-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.440761491016019,
+ "max_rss_kib": 448616,
+ "user_seconds": 4.328391,
+ "system_seconds": 0.08688799999999999,
+ "load_before": [
+ 2.55078125,
+ 1.62353515625,
+ 1.21240234375
+ ],
+ "load_after": [
+ 2.50634765625,
+ 1.6298828125,
+ 1.216796875
+ ]
+ },
+ {
+ "block": 1,
+ "case": "degree-4",
+ "arm": "lexical",
+ "stem": "01-degree-4-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.420087243022863,
+ "max_rss_kib": 448560,
+ "user_seconds": 4.293395,
+ "system_seconds": 0.088923,
+ "load_before": [
+ 2.50634765625,
+ 1.6298828125,
+ 1.216796875
+ ],
+ "load_after": [
+ 2.38525390625,
+ 1.619140625,
+ 1.21533203125
+ ]
+ },
+ {
+ "block": 1,
+ "case": "degree-5",
+ "arm": "replayed",
+ "stem": "01-degree-5-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 5.027135809999891,
+ "max_rss_kib": 448800,
+ "user_seconds": 4.903389,
+ "system_seconds": 0.100329,
+ "load_before": [
+ 2.38525390625,
+ 1.619140625,
+ 1.21533203125
+ ],
+ "load_after": [
+ 2.27392578125,
+ 1.6083984375,
+ 1.2138671875
+ ]
+ },
+ {
+ "block": 1,
+ "case": "degree-5",
+ "arm": "restored",
+ "stem": "01-degree-5-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.644002041022759,
+ "max_rss_kib": 448600,
+ "user_seconds": 4.528173,
+ "system_seconds": 0.095219,
+ "load_before": [
+ 2.27392578125,
+ 1.6083984375,
+ 1.2138671875
+ ],
+ "load_after": [
+ 2.171875,
+ 1.59814453125,
+ 1.21240234375
+ ]
+ },
+ {
+ "block": 1,
+ "case": "degree-5",
+ "arm": "parsed",
+ "stem": "01-degree-5-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.546533946006093,
+ "max_rss_kib": 448576,
+ "user_seconds": 4.4203,
+ "system_seconds": 0.10545399999999999,
+ "load_before": [
+ 2.171875,
+ 1.59814453125,
+ 1.21240234375
+ ],
+ "load_after": [
+ 2.318359375,
+ 1.63818359375,
+ 1.2275390625
+ ]
+ },
+ {
+ "block": 1,
+ "case": "degree-5",
+ "arm": "lexical",
+ "stem": "01-degree-5-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.478785672981758,
+ "max_rss_kib": 448780,
+ "user_seconds": 4.3711079999999995,
+ "system_seconds": 0.083369,
+ "load_before": [
+ 2.318359375,
+ 1.63818359375,
+ 1.2275390625
+ ],
+ "load_after": [
+ 2.21240234375,
+ 1.62744140625,
+ 1.22607421875
+ ]
+ },
+ {
+ "block": 1,
+ "case": "atoms-1",
+ "arm": "replayed",
+ "stem": "01-atoms-1-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.472045791975688,
+ "max_rss_kib": 448672,
+ "user_seconds": 4.347598,
+ "system_seconds": 0.08426399999999999,
+ "load_before": [
+ 2.21240234375,
+ 1.62744140625,
+ 1.22607421875
+ ],
+ "load_after": [
+ 2.21240234375,
+ 1.62744140625,
+ 1.22607421875
+ ]
+ },
+ {
+ "block": 1,
+ "case": "atoms-1",
+ "arm": "restored",
+ "stem": "01-atoms-1-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.973924690973945,
+ "max_rss_kib": 448628,
+ "user_seconds": 4.851492,
+ "system_seconds": 0.105235,
+ "load_before": [
+ 2.21240234375,
+ 1.62744140625,
+ 1.22607421875
+ ],
+ "load_after": [
+ 2.115234375,
+ 1.61669921875,
+ 1.224609375
+ ]
+ },
+ {
+ "block": 1,
+ "case": "atoms-1",
+ "arm": "parsed",
+ "stem": "01-atoms-1-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.744588871020824,
+ "max_rss_kib": 448648,
+ "user_seconds": 4.60664,
+ "system_seconds": 0.10638199999999999,
+ "load_before": [
+ 2.115234375,
+ 1.61669921875,
+ 1.224609375
+ ],
+ "load_after": [
+ 2.02587890625,
+ 1.6064453125,
+ 1.22314453125
+ ]
+ },
+ {
+ "block": 1,
+ "case": "atoms-1",
+ "arm": "lexical",
+ "stem": "01-atoms-1-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.8264322860050015,
+ "max_rss_kib": 448776,
+ "user_seconds": 4.694144,
+ "system_seconds": 0.09673999999999999,
+ "load_before": [
+ 2.02587890625,
+ 1.6064453125,
+ 1.22314453125
+ ],
+ "load_after": [
+ 1.943359375,
+ 1.59619140625,
+ 1.2216796875
+ ]
+ },
+ {
+ "block": 1,
+ "case": "atoms-2",
+ "arm": "replayed",
+ "stem": "01-atoms-2-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.417842690949328,
+ "max_rss_kib": 448500,
+ "user_seconds": 4.294062,
+ "system_seconds": 0.099297,
+ "load_before": [
+ 1.943359375,
+ 1.59619140625,
+ 1.2216796875
+ ],
+ "load_after": [
+ 1.86767578125,
+ 1.5859375,
+ 1.22021484375
+ ]
+ },
+ {
+ "block": 1,
+ "case": "atoms-2",
+ "arm": "restored",
+ "stem": "01-atoms-2-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.869403348013293,
+ "max_rss_kib": 448712,
+ "user_seconds": 4.737745,
+ "system_seconds": 0.100712,
+ "load_before": [
+ 1.86767578125,
+ 1.5859375,
+ 1.22021484375
+ ],
+ "load_after": [
+ 1.7978515625,
+ 1.576171875,
+ 1.21875
+ ]
+ },
+ {
+ "block": 1,
+ "case": "atoms-2",
+ "arm": "parsed",
+ "stem": "01-atoms-2-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.746946964005474,
+ "max_rss_kib": 448652,
+ "user_seconds": 4.624944,
+ "system_seconds": 0.09842899999999999,
+ "load_before": [
+ 1.7978515625,
+ 1.576171875,
+ 1.21875
+ ],
+ "load_after": [
+ 1.73388671875,
+ 1.56640625,
+ 1.21728515625
+ ]
+ },
+ {
+ "block": 1,
+ "case": "atoms-2",
+ "arm": "lexical",
+ "stem": "01-atoms-2-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.851082893961575,
+ "max_rss_kib": 448704,
+ "user_seconds": 4.73793,
+ "system_seconds": 0.079499,
+ "load_before": [
+ 1.73388671875,
+ 1.56640625,
+ 1.21728515625
+ ],
+ "load_after": [
+ 1.75537109375,
+ 1.57373046875,
+ 1.2216796875
+ ]
+ },
+ {
+ "block": 1,
+ "case": "atoms-3",
+ "arm": "replayed",
+ "stem": "01-atoms-3-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.850802085013129,
+ "max_rss_kib": 448788,
+ "user_seconds": 4.730236,
+ "system_seconds": 0.091365,
+ "load_before": [
+ 1.75537109375,
+ 1.57373046875,
+ 1.2216796875
+ ],
+ "load_after": [
+ 1.85546875,
+ 1.59765625,
+ 1.2314453125
+ ]
+ },
+ {
+ "block": 1,
+ "case": "atoms-3",
+ "arm": "restored",
+ "stem": "01-atoms-3-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.553243225964252,
+ "max_rss_kib": 448684,
+ "user_seconds": 4.412072,
+ "system_seconds": 0.11520699999999999,
+ "load_before": [
+ 1.85546875,
+ 1.59765625,
+ 1.2314453125
+ ],
+ "load_after": [
+ 1.78662109375,
+ 1.58740234375,
+ 1.22998046875
+ ]
+ },
+ {
+ "block": 1,
+ "case": "atoms-3",
+ "arm": "parsed",
+ "stem": "01-atoms-3-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.492751524026971,
+ "max_rss_kib": 448664,
+ "user_seconds": 4.357136,
+ "system_seconds": 0.09983099999999999,
+ "load_before": [
+ 1.78662109375,
+ 1.58740234375,
+ 1.22998046875
+ ],
+ "load_after": [
+ 1.8037109375,
+ 1.5947265625,
+ 1.234375
+ ]
+ },
+ {
+ "block": 1,
+ "case": "atoms-3",
+ "arm": "lexical",
+ "stem": "01-atoms-3-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.564886623003986,
+ "max_rss_kib": 448540,
+ "user_seconds": 4.429109,
+ "system_seconds": 0.095429,
+ "load_before": [
+ 1.8037109375,
+ 1.5947265625,
+ 1.234375
+ ],
+ "load_after": [
+ 1.81982421875,
+ 1.6015625,
+ 1.23876953125
+ ]
+ },
+ {
+ "block": 1,
+ "case": "atoms-4",
+ "arm": "replayed",
+ "stem": "01-atoms-4-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.432329029019456,
+ "max_rss_kib": 448744,
+ "user_seconds": 4.302081,
+ "system_seconds": 0.10004299999999999,
+ "load_before": [
+ 1.81982421875,
+ 1.6015625,
+ 1.23876953125
+ ],
+ "load_after": [
+ 1.75390625,
+ 1.59130859375,
+ 1.2373046875
+ ]
+ },
+ {
+ "block": 1,
+ "case": "atoms-4",
+ "arm": "restored",
+ "stem": "01-atoms-4-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.843821726972237,
+ "max_rss_kib": 448680,
+ "user_seconds": 4.7076080000000005,
+ "system_seconds": 0.094233,
+ "load_before": [
+ 1.75390625,
+ 1.59130859375,
+ 1.2373046875
+ ],
+ "load_after": [
+ 1.693359375,
+ 1.5810546875,
+ 1.23583984375
+ ]
+ },
+ {
+ "block": 1,
+ "case": "atoms-4",
+ "arm": "parsed",
+ "stem": "01-atoms-4-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.770607541024219,
+ "max_rss_kib": 448596,
+ "user_seconds": 4.640101,
+ "system_seconds": 0.08852499999999999,
+ "load_before": [
+ 1.693359375,
+ 1.5810546875,
+ 1.23583984375
+ ],
+ "load_after": [
+ 1.6376953125,
+ 1.5712890625,
+ 1.234375
+ ]
+ },
+ {
+ "block": 1,
+ "case": "atoms-4",
+ "arm": "lexical",
+ "stem": "01-atoms-4-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.869956739014015,
+ "max_rss_kib": 448640,
+ "user_seconds": 4.748029,
+ "system_seconds": 0.091208,
+ "load_before": [
+ 1.6376953125,
+ 1.5712890625,
+ 1.234375
+ ],
+ "load_after": [
+ 1.58642578125,
+ 1.5615234375,
+ 1.23291015625
+ ]
+ },
+ {
+ "block": 1,
+ "case": "bits-4",
+ "arm": "replayed",
+ "stem": "01-bits-4-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 5.154756337986328,
+ "max_rss_kib": 448608,
+ "user_seconds": 5.0406,
+ "system_seconds": 0.094361,
+ "load_before": [
+ 1.58642578125,
+ 1.5615234375,
+ 1.23291015625
+ ],
+ "load_after": [
+ 1.5390625,
+ 1.5517578125,
+ 1.2314453125
+ ]
+ },
+ {
+ "block": 1,
+ "case": "bits-4",
+ "arm": "restored",
+ "stem": "01-bits-4-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.791864421044011,
+ "max_rss_kib": 448576,
+ "user_seconds": 4.653523,
+ "system_seconds": 0.09998299999999999,
+ "load_before": [
+ 1.5390625,
+ 1.5517578125,
+ 1.2314453125
+ ],
+ "load_after": [
+ 1.49560546875,
+ 1.54248046875,
+ 1.22998046875
+ ]
+ },
+ {
+ "block": 1,
+ "case": "bits-4",
+ "arm": "parsed",
+ "stem": "01-bits-4-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.671411442977842,
+ "max_rss_kib": 448780,
+ "user_seconds": 4.545535,
+ "system_seconds": 0.095299,
+ "load_before": [
+ 1.49560546875,
+ 1.54248046875,
+ 1.22998046875
+ ],
+ "load_after": [
+ 1.49560546875,
+ 1.54248046875,
+ 1.22998046875
+ ]
+ },
+ {
+ "block": 1,
+ "case": "bits-4",
+ "arm": "lexical",
+ "stem": "01-bits-4-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.803807652031537,
+ "max_rss_kib": 448760,
+ "user_seconds": 4.6602689999999996,
+ "system_seconds": 0.11495999999999999,
+ "load_before": [
+ 1.49560546875,
+ 1.54248046875,
+ 1.22998046875
+ ],
+ "load_after": [
+ 1.6162109375,
+ 1.56689453125,
+ 1.23974609375
+ ]
+ },
+ {
+ "block": 1,
+ "case": "bits-16",
+ "arm": "replayed",
+ "stem": "01-bits-16-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.426627959997859,
+ "max_rss_kib": 448672,
+ "user_seconds": 4.302317,
+ "system_seconds": 0.102728,
+ "load_before": [
+ 1.6162109375,
+ 1.56689453125,
+ 1.23974609375
+ ],
+ "load_after": [
+ 1.64697265625,
+ 1.57421875,
+ 1.244140625
+ ]
+ },
+ {
+ "block": 1,
+ "case": "bits-16",
+ "arm": "restored",
+ "stem": "01-bits-16-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.87087539001368,
+ "max_rss_kib": 448792,
+ "user_seconds": 4.7228,
+ "system_seconds": 0.113229,
+ "load_before": [
+ 1.64697265625,
+ 1.57421875,
+ 1.244140625
+ ],
+ "load_after": [
+ 1.5947265625,
+ 1.564453125,
+ 1.24267578125
+ ]
+ },
+ {
+ "block": 1,
+ "case": "bits-16",
+ "arm": "parsed",
+ "stem": "01-bits-16-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.746175368025433,
+ "max_rss_kib": 448712,
+ "user_seconds": 4.61815,
+ "system_seconds": 0.09819299999999999,
+ "load_before": [
+ 1.5947265625,
+ 1.564453125,
+ 1.24267578125
+ ],
+ "load_after": [
+ 1.546875,
+ 1.5546875,
+ 1.2412109375
+ ]
+ },
+ {
+ "block": 1,
+ "case": "bits-16",
+ "arm": "lexical",
+ "stem": "01-bits-16-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.847926946997177,
+ "max_rss_kib": 448680,
+ "user_seconds": 4.726196,
+ "system_seconds": 0.09529,
+ "load_before": [
+ 1.546875,
+ 1.5546875,
+ 1.2412109375
+ ],
+ "load_after": [
+ 1.5029296875,
+ 1.54541015625,
+ 1.23974609375
+ ]
+ },
+ {
+ "block": 1,
+ "case": "bits-64",
+ "arm": "replayed",
+ "stem": "01-bits-64-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.920396793982945,
+ "max_rss_kib": 448704,
+ "user_seconds": 4.785328,
+ "system_seconds": 0.095511,
+ "load_before": [
+ 1.5029296875,
+ 1.54541015625,
+ 1.23974609375
+ ],
+ "load_after": [
+ 1.46240234375,
+ 1.5361328125,
+ 1.23828125
+ ]
+ },
+ {
+ "block": 1,
+ "case": "bits-64",
+ "arm": "restored",
+ "stem": "01-bits-64-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.679829200962558,
+ "max_rss_kib": 448660,
+ "user_seconds": 4.559302,
+ "system_seconds": 0.098783,
+ "load_before": [
+ 1.46240234375,
+ 1.5361328125,
+ 1.23828125
+ ],
+ "load_after": [
+ 1.42529296875,
+ 1.52685546875,
+ 1.23681640625
+ ]
+ },
+ {
+ "block": 1,
+ "case": "bits-64",
+ "arm": "parsed",
+ "stem": "01-bits-64-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.599232823995408,
+ "max_rss_kib": 448556,
+ "user_seconds": 4.478476,
+ "system_seconds": 0.094467,
+ "load_before": [
+ 1.42529296875,
+ 1.52685546875,
+ 1.23681640625
+ ],
+ "load_after": [
+ 1.39111328125,
+ 1.51806640625,
+ 1.2353515625
+ ]
+ },
+ {
+ "block": 1,
+ "case": "bits-64",
+ "arm": "lexical",
+ "stem": "01-bits-64-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.9965365520329215,
+ "max_rss_kib": 448712,
+ "user_seconds": 4.872194,
+ "system_seconds": 0.099978,
+ "load_before": [
+ 1.39111328125,
+ 1.51806640625,
+ 1.2353515625
+ ],
+ "load_after": [
+ 1.359375,
+ 1.50927734375,
+ 1.23388671875
+ ]
+ },
+ {
+ "block": 1,
+ "case": "bits-128",
+ "arm": "replayed",
+ "stem": "01-bits-128-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.668887795007322,
+ "max_rss_kib": 448704,
+ "user_seconds": 4.527706,
+ "system_seconds": 0.103388,
+ "load_before": [
+ 1.359375,
+ 1.50927734375,
+ 1.23388671875
+ ],
+ "load_after": [
+ 1.33056640625,
+ 1.50048828125,
+ 1.232421875
+ ]
+ },
+ {
+ "block": 1,
+ "case": "bits-128",
+ "arm": "restored",
+ "stem": "01-bits-128-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.517318994970992,
+ "max_rss_kib": 448644,
+ "user_seconds": 4.4153,
+ "system_seconds": 0.08545499999999999,
+ "load_before": [
+ 1.33056640625,
+ 1.50048828125,
+ 1.232421875
+ ],
+ "load_after": [
+ 1.3037109375,
+ 1.49169921875,
+ 1.23095703125
+ ]
+ },
+ {
+ "block": 1,
+ "case": "bits-128",
+ "arm": "parsed",
+ "stem": "01-bits-128-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.5059392470284365,
+ "max_rss_kib": 448668,
+ "user_seconds": 4.36672,
+ "system_seconds": 0.107205,
+ "load_before": [
+ 1.3037109375,
+ 1.49169921875,
+ 1.23095703125
+ ],
+ "load_after": [
+ 1.279296875,
+ 1.4833984375,
+ 1.2294921875
+ ]
+ },
+ {
+ "block": 1,
+ "case": "bits-128",
+ "arm": "lexical",
+ "stem": "01-bits-128-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.365788755996618,
+ "max_rss_kib": 448832,
+ "user_seconds": 4.248037,
+ "system_seconds": 0.100964,
+ "load_before": [
+ 1.279296875,
+ 1.4833984375,
+ 1.2294921875
+ ],
+ "load_after": [
+ 1.2568359375,
+ 1.47509765625,
+ 1.22802734375
+ ]
+ },
+ {
+ "block": 1,
+ "case": "precision-0",
+ "arm": "replayed",
+ "stem": "01-precision-0-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.42265038297046,
+ "max_rss_kib": 448704,
+ "user_seconds": 4.302683,
+ "system_seconds": 0.09847199999999999,
+ "load_before": [
+ 1.2568359375,
+ 1.47509765625,
+ 1.22802734375
+ ],
+ "load_after": [
+ 1.31640625,
+ 1.48388671875,
+ 1.232421875
+ ]
+ },
+ {
+ "block": 1,
+ "case": "precision-0",
+ "arm": "restored",
+ "stem": "01-precision-0-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.876480869948864,
+ "max_rss_kib": 448672,
+ "user_seconds": 4.751519,
+ "system_seconds": 0.10221799999999999,
+ "load_before": [
+ 1.31640625,
+ 1.48388671875,
+ 1.232421875
+ ],
+ "load_after": [
+ 1.37158203125,
+ 1.49267578125,
+ 1.23681640625
+ ]
+ },
+ {
+ "block": 1,
+ "case": "precision-0",
+ "arm": "parsed",
+ "stem": "01-precision-0-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.745096590020694,
+ "max_rss_kib": 448712,
+ "user_seconds": 4.619122,
+ "system_seconds": 0.103375,
+ "load_before": [
+ 1.37158203125,
+ 1.49267578125,
+ 1.23681640625
+ ],
+ "load_after": [
+ 1.37158203125,
+ 1.49267578125,
+ 1.23681640625
+ ]
+ },
+ {
+ "block": 1,
+ "case": "precision-0",
+ "arm": "lexical",
+ "stem": "01-precision-0-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.847159960016143,
+ "max_rss_kib": 448684,
+ "user_seconds": 4.727847,
+ "system_seconds": 0.09519699999999999,
+ "load_before": [
+ 1.37158203125,
+ 1.49267578125,
+ 1.23681640625
+ ],
+ "load_after": [
+ 1.50244140625,
+ 1.51806640625,
+ 1.24658203125
+ ]
+ },
+ {
+ "block": 1,
+ "case": "precision-4",
+ "arm": "replayed",
+ "stem": "01-precision-4-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.418791254982352,
+ "max_rss_kib": 448760,
+ "user_seconds": 4.291149,
+ "system_seconds": 0.10972599999999999,
+ "load_before": [
+ 1.50244140625,
+ 1.51806640625,
+ 1.24658203125
+ ],
+ "load_after": [
+ 1.4619140625,
+ 1.50927734375,
+ 1.2451171875
+ ]
+ },
+ {
+ "block": 1,
+ "case": "precision-4",
+ "arm": "restored",
+ "stem": "01-precision-4-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.887154469033703,
+ "max_rss_kib": 448856,
+ "user_seconds": 4.750456,
+ "system_seconds": 0.11337399999999999,
+ "load_before": [
+ 1.4619140625,
+ 1.50927734375,
+ 1.2451171875
+ ],
+ "load_after": [
+ 1.50537109375,
+ 1.517578125,
+ 1.24951171875
+ ]
+ },
+ {
+ "block": 1,
+ "case": "precision-4",
+ "arm": "parsed",
+ "stem": "01-precision-4-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.744122197967954,
+ "max_rss_kib": 448664,
+ "user_seconds": 4.612026,
+ "system_seconds": 0.104599,
+ "load_before": [
+ 1.50537109375,
+ 1.517578125,
+ 1.24951171875
+ ],
+ "load_after": [
+ 1.46484375,
+ 1.5087890625,
+ 1.248046875
+ ]
+ },
+ {
+ "block": 1,
+ "case": "precision-4",
+ "arm": "lexical",
+ "stem": "01-precision-4-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.856848099967465,
+ "max_rss_kib": 448592,
+ "user_seconds": 4.732881,
+ "system_seconds": 0.09600099999999999,
+ "load_before": [
+ 1.46484375,
+ 1.5087890625,
+ 1.248046875
+ ],
+ "load_after": [
+ 1.42724609375,
+ 1.5,
+ 1.24658203125
+ ]
+ },
+ {
+ "block": 1,
+ "case": "precision-8",
+ "arm": "replayed",
+ "stem": "01-precision-8-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.498179660004098,
+ "max_rss_kib": 448676,
+ "user_seconds": 4.336694,
+ "system_seconds": 0.11740199999999999,
+ "load_before": [
+ 1.42724609375,
+ 1.5,
+ 1.24658203125
+ ],
+ "load_after": [
+ 1.47314453125,
+ 1.50830078125,
+ 1.2509765625
+ ]
+ },
+ {
+ "block": 1,
+ "case": "precision-8",
+ "arm": "restored",
+ "stem": "01-precision-8-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.937088998965919,
+ "max_rss_kib": 448564,
+ "user_seconds": 4.800561,
+ "system_seconds": 0.11730499999999999,
+ "load_before": [
+ 1.47314453125,
+ 1.50830078125,
+ 1.2509765625
+ ],
+ "load_after": [
+ 1.43505859375,
+ 1.49951171875,
+ 1.24951171875
+ ]
+ },
+ {
+ "block": 1,
+ "case": "precision-8",
+ "arm": "parsed",
+ "stem": "01-precision-8-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.755659626040142,
+ "max_rss_kib": 448680,
+ "user_seconds": 4.648058,
+ "system_seconds": 0.087397,
+ "load_before": [
+ 1.43505859375,
+ 1.49951171875,
+ 1.24951171875
+ ],
+ "load_after": [
+ 1.560546875,
+ 1.52490234375,
+ 1.25927734375
+ ]
+ },
+ {
+ "block": 1,
+ "case": "precision-8",
+ "arm": "lexical",
+ "stem": "01-precision-8-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.855181881983299,
+ "max_rss_kib": 448704,
+ "user_seconds": 4.731314,
+ "system_seconds": 0.090316,
+ "load_before": [
+ 1.560546875,
+ 1.52490234375,
+ 1.25927734375
+ ],
+ "load_after": [
+ 1.67626953125,
+ 1.5498046875,
+ 1.26904296875
+ ]
+ },
+ {
+ "block": 1,
+ "case": "precision-12",
+ "arm": "replayed",
+ "stem": "01-precision-12-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.450013090972789,
+ "max_rss_kib": 448612,
+ "user_seconds": 4.321789,
+ "system_seconds": 0.095108,
+ "load_before": [
+ 1.67626953125,
+ 1.5498046875,
+ 1.26904296875
+ ],
+ "load_after": [
+ 1.6220703125,
+ 1.54052734375,
+ 1.267578125
+ ]
+ },
+ {
+ "block": 1,
+ "case": "precision-12",
+ "arm": "restored",
+ "stem": "01-precision-12-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.9372834480018355,
+ "max_rss_kib": 448572,
+ "user_seconds": 4.777867,
+ "system_seconds": 0.125133,
+ "load_before": [
+ 1.6220703125,
+ 1.54052734375,
+ 1.267578125
+ ],
+ "load_after": [
+ 1.892578125,
+ 1.59814453125,
+ 1.2880859375
+ ]
+ },
+ {
+ "block": 1,
+ "case": "precision-12",
+ "arm": "parsed",
+ "stem": "01-precision-12-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.795157398039009,
+ "max_rss_kib": 448716,
+ "user_seconds": 4.654316,
+ "system_seconds": 0.11109799999999999,
+ "load_before": [
+ 1.892578125,
+ 1.59814453125,
+ 1.2880859375
+ ],
+ "load_after": [
+ 1.82080078125,
+ 1.587890625,
+ 1.2861328125
+ ]
+ },
+ {
+ "block": 1,
+ "case": "precision-12",
+ "arm": "lexical",
+ "stem": "01-precision-12-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.895957297994755,
+ "max_rss_kib": 448668,
+ "user_seconds": 4.7570049999999995,
+ "system_seconds": 0.103211,
+ "load_before": [
+ 1.82080078125,
+ 1.587890625,
+ 1.2861328125
+ ],
+ "load_after": [
+ 2.23583984375,
+ 1.67822265625,
+ 1.31689453125
+ ]
+ },
+ {
+ "block": 1,
+ "case": "depth-0",
+ "arm": "replayed",
+ "stem": "01-depth-0-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.438417366996873,
+ "max_rss_kib": 448540,
+ "user_seconds": 4.316924,
+ "system_seconds": 0.097429,
+ "load_before": [
+ 2.23583984375,
+ 1.67822265625,
+ 1.31689453125
+ ],
+ "load_after": [
+ 2.29736328125,
+ 1.7001953125,
+ 1.326171875
+ ]
+ },
+ {
+ "block": 1,
+ "case": "depth-0",
+ "arm": "restored",
+ "stem": "01-depth-0-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.893525293970015,
+ "max_rss_kib": 448704,
+ "user_seconds": 4.763351,
+ "system_seconds": 0.103471,
+ "load_before": [
+ 2.29736328125,
+ 1.7001953125,
+ 1.326171875
+ ],
+ "load_after": [
+ 2.43408203125,
+ 1.73876953125,
+ 1.3408203125
+ ]
+ },
+ {
+ "block": 1,
+ "case": "depth-0",
+ "arm": "parsed",
+ "stem": "01-depth-0-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.7646169700310566,
+ "max_rss_kib": 448716,
+ "user_seconds": 4.628934,
+ "system_seconds": 0.09973,
+ "load_before": [
+ 2.43408203125,
+ 1.73876953125,
+ 1.3408203125
+ ],
+ "load_after": [
+ 2.39892578125,
+ 1.7431640625,
+ 1.3447265625
+ ]
+ },
+ {
+ "block": 1,
+ "case": "depth-0",
+ "arm": "lexical",
+ "stem": "01-depth-0-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.876419534964953,
+ "max_rss_kib": 448608,
+ "user_seconds": 4.705961,
+ "system_seconds": 0.131141,
+ "load_before": [
+ 2.39892578125,
+ 1.7431640625,
+ 1.3447265625
+ ],
+ "load_after": [
+ 2.36669921875,
+ 1.74755859375,
+ 1.3486328125
+ ]
+ },
+ {
+ "block": 1,
+ "case": "depth-1",
+ "arm": "replayed",
+ "stem": "01-depth-1-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 5.0277433769661,
+ "max_rss_kib": 448776,
+ "user_seconds": 4.899197,
+ "system_seconds": 0.108473,
+ "load_before": [
+ 2.36669921875,
+ 1.74755859375,
+ 1.3486328125
+ ],
+ "load_after": [
+ 2.2568359375,
+ 1.73486328125,
+ 1.3466796875
+ ]
+ },
+ {
+ "block": 1,
+ "case": "depth-1",
+ "arm": "restored",
+ "stem": "01-depth-1-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.595912131015211,
+ "max_rss_kib": 448716,
+ "user_seconds": 4.4574359999999995,
+ "system_seconds": 0.097324,
+ "load_before": [
+ 2.2568359375,
+ 1.73486328125,
+ 1.3466796875
+ ],
+ "load_after": [
+ 2.15576171875,
+ 1.72265625,
+ 1.3447265625
+ ]
+ },
+ {
+ "block": 1,
+ "case": "depth-1",
+ "arm": "parsed",
+ "stem": "01-depth-1-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.450860693003051,
+ "max_rss_kib": 448528,
+ "user_seconds": 4.295583,
+ "system_seconds": 0.119658,
+ "load_before": [
+ 2.15576171875,
+ 1.72265625,
+ 1.3447265625
+ ],
+ "load_after": [
+ 2.15576171875,
+ 1.72265625,
+ 1.3447265625
+ ]
+ },
+ {
+ "block": 1,
+ "case": "depth-1",
+ "arm": "lexical",
+ "stem": "01-depth-1-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.4813927840441465,
+ "max_rss_kib": 448680,
+ "user_seconds": 4.339828,
+ "system_seconds": 0.11616399999999999,
+ "load_before": [
+ 2.15576171875,
+ 1.72265625,
+ 1.3447265625
+ ],
+ "load_after": [
+ 2.2236328125,
+ 1.744140625,
+ 1.35400390625
+ ]
+ },
+ {
+ "block": 1,
+ "case": "depth-2",
+ "arm": "replayed",
+ "stem": "01-depth-2-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.6044303880189545,
+ "max_rss_kib": 448532,
+ "user_seconds": 4.459734,
+ "system_seconds": 0.11645699999999999,
+ "load_before": [
+ 2.2236328125,
+ 1.744140625,
+ 1.35400390625
+ ],
+ "load_after": [
+ 2.12548828125,
+ 1.7314453125,
+ 1.35205078125
+ ]
+ },
+ {
+ "block": 1,
+ "case": "depth-2",
+ "arm": "restored",
+ "stem": "01-depth-2-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.803558830986731,
+ "max_rss_kib": 448600,
+ "user_seconds": 4.67135,
+ "system_seconds": 0.10821199999999999,
+ "load_before": [
+ 2.12548828125,
+ 1.7314453125,
+ 1.35205078125
+ ],
+ "load_after": [
+ 2.03515625,
+ 1.71923828125,
+ 1.35009765625
+ ]
+ },
+ {
+ "block": 1,
+ "case": "depth-2",
+ "arm": "parsed",
+ "stem": "01-depth-2-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.51886300300248,
+ "max_rss_kib": 448716,
+ "user_seconds": 4.391817,
+ "system_seconds": 0.096359,
+ "load_before": [
+ 2.03515625,
+ 1.71923828125,
+ 1.35009765625
+ ],
+ "load_after": [
+ 1.9521484375,
+ 1.70703125,
+ 1.34814453125
+ ]
+ },
+ {
+ "block": 1,
+ "case": "depth-2",
+ "arm": "lexical",
+ "stem": "01-depth-2-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.427550561027601,
+ "max_rss_kib": 448688,
+ "user_seconds": 4.295938,
+ "system_seconds": 0.10421799999999999,
+ "load_before": [
+ 1.9521484375,
+ 1.70703125,
+ 1.34814453125
+ ],
+ "load_after": [
+ 1.87548828125,
+ 1.69482421875,
+ 1.34619140625
+ ]
+ },
+ {
+ "block": 1,
+ "case": "repeated-4",
+ "arm": "replayed",
+ "stem": "01-repeated-4-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.946371189027559,
+ "max_rss_kib": 448660,
+ "user_seconds": 4.83181,
+ "system_seconds": 0.08851099999999999,
+ "load_before": [
+ 1.87548828125,
+ 1.69482421875,
+ 1.34619140625
+ ],
+ "load_after": [
+ 1.9658203125,
+ 1.716796875,
+ 1.35546875
+ ]
+ },
+ {
+ "block": 1,
+ "case": "repeated-4",
+ "arm": "restored",
+ "stem": "01-repeated-4-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.6563621970126405,
+ "max_rss_kib": 448656,
+ "user_seconds": 4.526647,
+ "system_seconds": 0.09705599999999999,
+ "load_before": [
+ 1.9658203125,
+ 1.716796875,
+ 1.35546875
+ ],
+ "load_after": [
+ 1.96875,
+ 1.7216796875,
+ 1.359375
+ ]
+ },
+ {
+ "block": 1,
+ "case": "repeated-4",
+ "arm": "parsed",
+ "stem": "01-repeated-4-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.527966190013103,
+ "max_rss_kib": 448680,
+ "user_seconds": 4.390556,
+ "system_seconds": 0.096423,
+ "load_before": [
+ 1.96875,
+ 1.7216796875,
+ 1.359375
+ ],
+ "load_after": [
+ 1.89111328125,
+ 1.70947265625,
+ 1.357421875
+ ]
+ },
+ {
+ "block": 1,
+ "case": "repeated-4",
+ "arm": "lexical",
+ "stem": "01-repeated-4-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.598167395975906,
+ "max_rss_kib": 448824,
+ "user_seconds": 4.484442,
+ "system_seconds": 0.09111799999999999,
+ "load_before": [
+ 1.89111328125,
+ 1.70947265625,
+ 1.357421875
+ ],
+ "load_after": [
+ 1.89990234375,
+ 1.71435546875,
+ 1.361328125
+ ]
+ },
+ {
+ "block": 1,
+ "case": "common-2",
+ "arm": "replayed",
+ "stem": "01-common-2-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.9300734649877995,
+ "max_rss_kib": 448704,
+ "user_seconds": 4.768134,
+ "system_seconds": 0.123788,
+ "load_before": [
+ 1.89990234375,
+ 1.71435546875,
+ 1.361328125
+ ],
+ "load_after": [
+ 1.908203125,
+ 1.71923828125,
+ 1.365234375
+ ]
+ },
+ {
+ "block": 1,
+ "case": "common-2",
+ "arm": "restored",
+ "stem": "01-common-2-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.6252817660570145,
+ "max_rss_kib": 448776,
+ "user_seconds": 4.493045,
+ "system_seconds": 0.102598,
+ "load_before": [
+ 1.908203125,
+ 1.71923828125,
+ 1.365234375
+ ],
+ "load_after": [
+ 1.83544921875,
+ 1.70703125,
+ 1.36279296875
+ ]
+ },
+ {
+ "block": 1,
+ "case": "common-2",
+ "arm": "parsed",
+ "stem": "01-common-2-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.480629205994774,
+ "max_rss_kib": 448800,
+ "user_seconds": 4.352308,
+ "system_seconds": 0.108426,
+ "load_before": [
+ 1.83544921875,
+ 1.70703125,
+ 1.36279296875
+ ],
+ "load_after": [
+ 1.8486328125,
+ 1.7119140625,
+ 1.36669921875
+ ]
+ },
+ {
+ "block": 1,
+ "case": "common-2",
+ "arm": "lexical",
+ "stem": "01-common-2-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.632096891000401,
+ "max_rss_kib": 448640,
+ "user_seconds": 4.504872,
+ "system_seconds": 0.10132899999999999,
+ "load_before": [
+ 1.8486328125,
+ 1.7119140625,
+ 1.36669921875
+ ],
+ "load_after": [
+ 1.94091796875,
+ 1.7333984375,
+ 1.37548828125
+ ]
+ },
+ {
+ "block": 1,
+ "case": "repeated-roots-2",
+ "arm": "replayed",
+ "stem": "01-repeated-roots-2-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 5.147700046014506,
+ "max_rss_kib": 448672,
+ "user_seconds": 5.023374,
+ "system_seconds": 0.09758499999999999,
+ "load_before": [
+ 1.94091796875,
+ 1.7333984375,
+ 1.37548828125
+ ],
+ "load_after": [
+ 1.94580078125,
+ 1.73828125,
+ 1.37890625
+ ]
+ },
+ {
+ "block": 1,
+ "case": "repeated-roots-2",
+ "arm": "restored",
+ "stem": "01-repeated-roots-2-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.784477535984479,
+ "max_rss_kib": 448788,
+ "user_seconds": 4.649131,
+ "system_seconds": 0.11118199999999999,
+ "load_before": [
+ 1.94580078125,
+ 1.73828125,
+ 1.37890625
+ ],
+ "load_after": [
+ 1.86962890625,
+ 1.7255859375,
+ 1.37646484375
+ ]
+ },
+ {
+ "block": 1,
+ "case": "repeated-roots-2",
+ "arm": "parsed",
+ "stem": "01-repeated-roots-2-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.651273120951373,
+ "max_rss_kib": 448548,
+ "user_seconds": 4.522762,
+ "system_seconds": 0.10292899999999999,
+ "load_before": [
+ 1.86962890625,
+ 1.7255859375,
+ 1.37646484375
+ ],
+ "load_after": [
+ 1.86962890625,
+ 1.7255859375,
+ 1.37646484375
+ ]
+ },
+ {
+ "block": 1,
+ "case": "repeated-roots-2",
+ "arm": "lexical",
+ "stem": "01-repeated-roots-2-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.829720199981239,
+ "max_rss_kib": 448652,
+ "user_seconds": 4.698822,
+ "system_seconds": 0.089386,
+ "load_before": [
+ 1.86962890625,
+ 1.7255859375,
+ 1.37646484375
+ ],
+ "load_after": [
+ 1.7998046875,
+ 1.71337890625,
+ 1.3740234375
+ ]
+ },
+ {
+ "block": 2,
+ "case": "degree-2",
+ "arm": "lexical",
+ "stem": "02-degree-2-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.860411144967657,
+ "max_rss_kib": 448648,
+ "user_seconds": 4.709995,
+ "system_seconds": 0.10951,
+ "load_before": [
+ 1.7998046875,
+ 1.71337890625,
+ 1.3740234375
+ ],
+ "load_after": [
+ 1.7353515625,
+ 1.701171875,
+ 1.37158203125
+ ]
+ },
+ {
+ "block": 2,
+ "case": "degree-2",
+ "arm": "parsed",
+ "stem": "02-degree-2-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.750475493026897,
+ "max_rss_kib": 448496,
+ "user_seconds": 4.624522,
+ "system_seconds": 0.098746,
+ "load_before": [
+ 1.7353515625,
+ 1.701171875,
+ 1.37158203125
+ ],
+ "load_after": [
+ 1.67626953125,
+ 1.689453125,
+ 1.369140625
+ ]
+ },
+ {
+ "block": 2,
+ "case": "degree-2",
+ "arm": "restored",
+ "stem": "02-degree-2-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.910864041012246,
+ "max_rss_kib": 448772,
+ "user_seconds": 4.759614,
+ "system_seconds": 0.109873,
+ "load_before": [
+ 1.67626953125,
+ 1.689453125,
+ 1.369140625
+ ],
+ "load_after": [
+ 1.70263671875,
+ 1.69482421875,
+ 1.37255859375
+ ]
+ },
+ {
+ "block": 2,
+ "case": "degree-2",
+ "arm": "replayed",
+ "stem": "02-degree-2-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.450522083963733,
+ "max_rss_kib": 448552,
+ "user_seconds": 4.323952,
+ "system_seconds": 0.092177,
+ "load_before": [
+ 1.70263671875,
+ 1.69482421875,
+ 1.37255859375
+ ],
+ "load_after": [
+ 1.64599609375,
+ 1.68310546875,
+ 1.3701171875
+ ]
+ },
+ {
+ "block": 2,
+ "case": "degree-3",
+ "arm": "lexical",
+ "stem": "02-degree-3-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 5.087661758007016,
+ "max_rss_kib": 448756,
+ "user_seconds": 4.970749,
+ "system_seconds": 0.087473,
+ "load_before": [
+ 1.64599609375,
+ 1.68310546875,
+ 1.3701171875
+ ],
+ "load_after": [
+ 1.8349609375,
+ 1.7216796875,
+ 1.38427734375
+ ]
+ },
+ {
+ "block": 2,
+ "case": "degree-3",
+ "arm": "parsed",
+ "stem": "02-degree-3-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 5.077489449002314,
+ "max_rss_kib": 448824,
+ "user_seconds": 4.95671,
+ "system_seconds": 0.09908199999999999,
+ "load_before": [
+ 1.8349609375,
+ 1.7216796875,
+ 1.38427734375
+ ],
+ "load_after": [
+ 1.76806640625,
+ 1.70947265625,
+ 1.3818359375
+ ]
+ },
+ {
+ "block": 2,
+ "case": "degree-3",
+ "arm": "restored",
+ "stem": "02-degree-3-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.407909848028794,
+ "max_rss_kib": 448660,
+ "user_seconds": 4.296892,
+ "system_seconds": 0.090226,
+ "load_before": [
+ 1.76806640625,
+ 1.70947265625,
+ 1.3818359375
+ ],
+ "load_after": [
+ 1.70654296875,
+ 1.697265625,
+ 1.37939453125
+ ]
+ },
+ {
+ "block": 2,
+ "case": "degree-3",
+ "arm": "replayed",
+ "stem": "02-degree-3-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.6773285389645025,
+ "max_rss_kib": 448592,
+ "user_seconds": 4.5505320000000005,
+ "system_seconds": 0.103013,
+ "load_before": [
+ 1.70654296875,
+ 1.697265625,
+ 1.37939453125
+ ],
+ "load_after": [
+ 1.64990234375,
+ 1.685546875,
+ 1.376953125
+ ]
+ },
+ {
+ "block": 2,
+ "case": "degree-4",
+ "arm": "lexical",
+ "stem": "02-degree-4-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.418133314000443,
+ "max_rss_kib": 448788,
+ "user_seconds": 4.287815,
+ "system_seconds": 0.111567,
+ "load_before": [
+ 1.64990234375,
+ 1.685546875,
+ 1.376953125
+ ],
+ "load_after": [
+ 1.59765625,
+ 1.673828125,
+ 1.37451171875
+ ]
+ },
+ {
+ "block": 2,
+ "case": "degree-4",
+ "arm": "parsed",
+ "stem": "02-degree-4-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.463439968996681,
+ "max_rss_kib": 448764,
+ "user_seconds": 4.331104,
+ "system_seconds": 0.10348399999999999,
+ "load_before": [
+ 1.59765625,
+ 1.673828125,
+ 1.37451171875
+ ],
+ "load_after": [
+ 1.6298828125,
+ 1.6796875,
+ 1.3779296875
+ ]
+ },
+ {
+ "block": 2,
+ "case": "degree-4",
+ "arm": "restored",
+ "stem": "02-degree-4-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.540326862013899,
+ "max_rss_kib": 448788,
+ "user_seconds": 4.404544,
+ "system_seconds": 0.116658,
+ "load_before": [
+ 1.6298828125,
+ 1.6796875,
+ 1.3779296875
+ ],
+ "load_after": [
+ 1.65966796875,
+ 1.68505859375,
+ 1.38134765625
+ ]
+ },
+ {
+ "block": 2,
+ "case": "degree-4",
+ "arm": "replayed",
+ "stem": "02-degree-4-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.863501545973122,
+ "max_rss_kib": 448728,
+ "user_seconds": 4.729667,
+ "system_seconds": 0.11297099999999999,
+ "load_before": [
+ 1.65966796875,
+ 1.68505859375,
+ 1.38134765625
+ ],
+ "load_after": [
+ 1.76708984375,
+ 1.70703125,
+ 1.39013671875
+ ]
+ },
+ {
+ "block": 2,
+ "case": "degree-5",
+ "arm": "lexical",
+ "stem": "02-degree-5-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.513061723962892,
+ "max_rss_kib": 448556,
+ "user_seconds": 4.378692,
+ "system_seconds": 0.096048,
+ "load_before": [
+ 1.76708984375,
+ 1.70703125,
+ 1.39013671875
+ ],
+ "load_after": [
+ 1.70556640625,
+ 1.69482421875,
+ 1.3876953125
+ ]
+ },
+ {
+ "block": 2,
+ "case": "degree-5",
+ "arm": "parsed",
+ "stem": "02-degree-5-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.554059594054706,
+ "max_rss_kib": 448772,
+ "user_seconds": 4.415854,
+ "system_seconds": 0.104879,
+ "load_before": [
+ 1.70556640625,
+ 1.69482421875,
+ 1.3876953125
+ ],
+ "load_after": [
+ 1.64892578125,
+ 1.68310546875,
+ 1.38525390625
+ ]
+ },
+ {
+ "block": 2,
+ "case": "degree-5",
+ "arm": "restored",
+ "stem": "02-degree-5-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.656148745038081,
+ "max_rss_kib": 448704,
+ "user_seconds": 4.533838,
+ "system_seconds": 0.103338,
+ "load_before": [
+ 1.64892578125,
+ 1.68310546875,
+ 1.38525390625
+ ],
+ "load_after": [
+ 1.64892578125,
+ 1.68310546875,
+ 1.38525390625
+ ]
+ },
+ {
+ "block": 2,
+ "case": "degree-5",
+ "arm": "replayed",
+ "stem": "02-degree-5-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 5.033170678012539,
+ "max_rss_kib": 448584,
+ "user_seconds": 4.91187,
+ "system_seconds": 0.09906,
+ "load_before": [
+ 1.64892578125,
+ 1.68310546875,
+ 1.38525390625
+ ],
+ "load_after": [
+ 1.5966796875,
+ 1.67138671875,
+ 1.3828125
+ ]
+ },
+ {
+ "block": 2,
+ "case": "atoms-1",
+ "arm": "lexical",
+ "stem": "02-atoms-1-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.836262487981003,
+ "max_rss_kib": 448772,
+ "user_seconds": 4.706768,
+ "system_seconds": 0.09759699999999999,
+ "load_before": [
+ 1.5966796875,
+ 1.67138671875,
+ 1.3828125
+ ],
+ "load_after": [
+ 1.70947265625,
+ 1.69384765625,
+ 1.3916015625
+ ]
+ },
+ {
+ "block": 2,
+ "case": "atoms-1",
+ "arm": "parsed",
+ "stem": "02-atoms-1-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.751575872011017,
+ "max_rss_kib": 448724,
+ "user_seconds": 4.612463,
+ "system_seconds": 0.10219299999999999,
+ "load_before": [
+ 1.70947265625,
+ 1.69384765625,
+ 1.3916015625
+ ],
+ "load_after": [
+ 1.73291015625,
+ 1.69921875,
+ 1.39501953125
+ ]
+ },
+ {
+ "block": 2,
+ "case": "atoms-1",
+ "arm": "restored",
+ "stem": "02-atoms-1-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.976876985980198,
+ "max_rss_kib": 448596,
+ "user_seconds": 4.847137,
+ "system_seconds": 0.107753,
+ "load_before": [
+ 1.73291015625,
+ 1.69921875,
+ 1.39501953125
+ ],
+ "load_after": [
+ 1.91455078125,
+ 1.73779296875,
+ 1.4091796875
+ ]
+ },
+ {
+ "block": 2,
+ "case": "atoms-1",
+ "arm": "replayed",
+ "stem": "02-atoms-1-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.5864927169750445,
+ "max_rss_kib": 448604,
+ "user_seconds": 4.453016,
+ "system_seconds": 0.098866,
+ "load_before": [
+ 1.91455078125,
+ 1.73779296875,
+ 1.4091796875
+ ],
+ "load_after": [
+ 1.921875,
+ 1.7421875,
+ 1.41259765625
+ ]
+ },
+ {
+ "block": 2,
+ "case": "atoms-2",
+ "arm": "lexical",
+ "stem": "02-atoms-2-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.866093719028868,
+ "max_rss_kib": 448472,
+ "user_seconds": 4.726087,
+ "system_seconds": 0.10409099999999999,
+ "load_before": [
+ 1.921875,
+ 1.7421875,
+ 1.41259765625
+ ],
+ "load_after": [
+ 1.92822265625,
+ 1.74658203125,
+ 1.416015625
+ ]
+ },
+ {
+ "block": 2,
+ "case": "atoms-2",
+ "arm": "parsed",
+ "stem": "02-atoms-2-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.7543300070101395,
+ "max_rss_kib": 448556,
+ "user_seconds": 4.620193,
+ "system_seconds": 0.102544,
+ "load_before": [
+ 1.92822265625,
+ 1.74658203125,
+ 1.416015625
+ ],
+ "load_after": [
+ 1.853515625,
+ 1.73388671875,
+ 1.41357421875
+ ]
+ },
+ {
+ "block": 2,
+ "case": "atoms-2",
+ "arm": "restored",
+ "stem": "02-atoms-2-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.908329547033645,
+ "max_rss_kib": 448716,
+ "user_seconds": 4.75573,
+ "system_seconds": 0.111548,
+ "load_before": [
+ 1.853515625,
+ 1.73388671875,
+ 1.41357421875
+ ],
+ "load_after": [
+ 1.78515625,
+ 1.7216796875,
+ 1.4111328125
+ ]
+ },
+ {
+ "block": 2,
+ "case": "atoms-2",
+ "arm": "replayed",
+ "stem": "02-atoms-2-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.435651032021269,
+ "max_rss_kib": 448832,
+ "user_seconds": 4.299986,
+ "system_seconds": 0.110748,
+ "load_before": [
+ 1.78515625,
+ 1.7216796875,
+ 1.4111328125
+ ],
+ "load_after": [
+ 1.72216796875,
+ 1.70947265625,
+ 1.40869140625
+ ]
+ },
+ {
+ "block": 2,
+ "case": "atoms-3",
+ "arm": "lexical",
+ "stem": "02-atoms-3-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.554747588001192,
+ "max_rss_kib": 448544,
+ "user_seconds": 4.408057,
+ "system_seconds": 0.108402,
+ "load_before": [
+ 1.72216796875,
+ 1.70947265625,
+ 1.40869140625
+ ],
+ "load_after": [
+ 1.74462890625,
+ 1.71435546875,
+ 1.412109375
+ ]
+ },
+ {
+ "block": 2,
+ "case": "atoms-3",
+ "arm": "parsed",
+ "stem": "02-atoms-3-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.483108035987243,
+ "max_rss_kib": 448604,
+ "user_seconds": 4.348579,
+ "system_seconds": 0.102812,
+ "load_before": [
+ 1.74462890625,
+ 1.71435546875,
+ 1.412109375
+ ],
+ "load_after": [
+ 1.76513671875,
+ 1.71923828125,
+ 1.41552734375
+ ]
+ },
+ {
+ "block": 2,
+ "case": "atoms-3",
+ "arm": "restored",
+ "stem": "02-atoms-3-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.560239992977586,
+ "max_rss_kib": 448584,
+ "user_seconds": 4.432646,
+ "system_seconds": 0.098243,
+ "load_before": [
+ 1.76513671875,
+ 1.71923828125,
+ 1.41552734375
+ ],
+ "load_after": [
+ 1.7841796875,
+ 1.72412109375,
+ 1.4189453125
+ ]
+ },
+ {
+ "block": 2,
+ "case": "atoms-3",
+ "arm": "replayed",
+ "stem": "02-atoms-3-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.858235988009255,
+ "max_rss_kib": 448732,
+ "user_seconds": 4.724089,
+ "system_seconds": 0.103226,
+ "load_before": [
+ 1.7841796875,
+ 1.72412109375,
+ 1.4189453125
+ ],
+ "load_after": [
+ 1.8017578125,
+ 1.72900390625,
+ 1.42236328125
+ ]
+ },
+ {
+ "block": 2,
+ "case": "atoms-4",
+ "arm": "lexical",
+ "stem": "02-atoms-4-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.878918381000403,
+ "max_rss_kib": 448580,
+ "user_seconds": 4.733562,
+ "system_seconds": 0.112964,
+ "load_before": [
+ 1.8017578125,
+ 1.72900390625,
+ 1.42236328125
+ ],
+ "load_after": [
+ 1.7373046875,
+ 1.716796875,
+ 1.419921875
+ ]
+ },
+ {
+ "block": 2,
+ "case": "atoms-4",
+ "arm": "parsed",
+ "stem": "02-atoms-4-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.78609301202232,
+ "max_rss_kib": 448704,
+ "user_seconds": 4.652127,
+ "system_seconds": 0.097436,
+ "load_before": [
+ 1.7373046875,
+ 1.716796875,
+ 1.419921875
+ ],
+ "load_after": [
+ 1.67822265625,
+ 1.70458984375,
+ 1.41748046875
+ ]
+ },
+ {
+ "block": 2,
+ "case": "atoms-4",
+ "arm": "restored",
+ "stem": "02-atoms-4-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.852596099022776,
+ "max_rss_kib": 448672,
+ "user_seconds": 4.710591,
+ "system_seconds": 0.10048499999999999,
+ "load_before": [
+ 1.67822265625,
+ 1.70458984375,
+ 1.41748046875
+ ],
+ "load_after": [
+ 1.62353515625,
+ 1.69287109375,
+ 1.4150390625
+ ]
+ },
+ {
+ "block": 2,
+ "case": "atoms-4",
+ "arm": "replayed",
+ "stem": "02-atoms-4-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.425099527987186,
+ "max_rss_kib": 448664,
+ "user_seconds": 4.294434,
+ "system_seconds": 0.09973699999999999,
+ "load_before": [
+ 1.62353515625,
+ 1.69287109375,
+ 1.4150390625
+ ],
+ "load_after": [
+ 1.65380859375,
+ 1.6982421875,
+ 1.41845703125
+ ]
+ },
+ {
+ "block": 2,
+ "case": "bits-4",
+ "arm": "lexical",
+ "stem": "02-bits-4-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.807435180002358,
+ "max_rss_kib": 448660,
+ "user_seconds": 4.676112,
+ "system_seconds": 0.091918,
+ "load_before": [
+ 1.65380859375,
+ 1.6982421875,
+ 1.41845703125
+ ],
+ "load_after": [
+ 1.60107421875,
+ 1.6865234375,
+ 1.416015625
+ ]
+ },
+ {
+ "block": 2,
+ "case": "bits-4",
+ "arm": "parsed",
+ "stem": "02-bits-4-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.657222285983153,
+ "max_rss_kib": 448536,
+ "user_seconds": 4.547242,
+ "system_seconds": 0.08835599999999999,
+ "load_before": [
+ 1.60107421875,
+ 1.6865234375,
+ 1.416015625
+ ],
+ "load_after": [
+ 1.60107421875,
+ 1.6865234375,
+ 1.416015625
+ ]
+ },
+ {
+ "block": 2,
+ "case": "bits-4",
+ "arm": "restored",
+ "stem": "02-bits-4-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.801159283961169,
+ "max_rss_kib": 448588,
+ "user_seconds": 4.675133,
+ "system_seconds": 0.08995199999999999,
+ "load_before": [
+ 1.60107421875,
+ 1.6865234375,
+ 1.416015625
+ ],
+ "load_after": [
+ 1.71337890625,
+ 1.70849609375,
+ 1.4248046875
+ ]
+ },
+ {
+ "block": 2,
+ "case": "bits-4",
+ "arm": "replayed",
+ "stem": "02-bits-4-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 5.177110845979769,
+ "max_rss_kib": 448556,
+ "user_seconds": 5.026012,
+ "system_seconds": 0.10886699999999999,
+ "load_before": [
+ 1.71337890625,
+ 1.70849609375,
+ 1.4248046875
+ ],
+ "load_after": [
+ 1.65625,
+ 1.6962890625,
+ 1.42236328125
+ ]
+ },
+ {
+ "block": 2,
+ "case": "bits-16",
+ "arm": "lexical",
+ "stem": "02-bits-16-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.8514799129916355,
+ "max_rss_kib": 448608,
+ "user_seconds": 4.716891,
+ "system_seconds": 0.098026,
+ "load_before": [
+ 1.65625,
+ 1.6962890625,
+ 1.42236328125
+ ],
+ "load_after": [
+ 1.603515625,
+ 1.6845703125,
+ 1.419921875
+ ]
+ },
+ {
+ "block": 2,
+ "case": "bits-16",
+ "arm": "parsed",
+ "stem": "02-bits-16-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.756198343995493,
+ "max_rss_kib": 448716,
+ "user_seconds": 4.642358,
+ "system_seconds": 0.088325,
+ "load_before": [
+ 1.603515625,
+ 1.6845703125,
+ 1.419921875
+ ],
+ "load_after": [
+ 1.55517578125,
+ 1.6728515625,
+ 1.41748046875
+ ]
+ },
+ {
+ "block": 2,
+ "case": "bits-16",
+ "arm": "restored",
+ "stem": "02-bits-16-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.8809785839985125,
+ "max_rss_kib": 448708,
+ "user_seconds": 4.755161,
+ "system_seconds": 0.098024,
+ "load_before": [
+ 1.55517578125,
+ 1.6728515625,
+ 1.41748046875
+ ],
+ "load_after": [
+ 1.51025390625,
+ 1.66162109375,
+ 1.4150390625
+ ]
+ },
+ {
+ "block": 2,
+ "case": "bits-16",
+ "arm": "replayed",
+ "stem": "02-bits-16-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.432784858974628,
+ "max_rss_kib": 448764,
+ "user_seconds": 4.314986,
+ "system_seconds": 0.08996,
+ "load_before": [
+ 1.51025390625,
+ 1.66162109375,
+ 1.4150390625
+ ],
+ "load_after": [
+ 1.5498046875,
+ 1.66748046875,
+ 1.41845703125
+ ]
+ },
+ {
+ "block": 2,
+ "case": "bits-64",
+ "arm": "lexical",
+ "stem": "02-bits-64-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 5.002340840990655,
+ "max_rss_kib": 448724,
+ "user_seconds": 4.872885,
+ "system_seconds": 0.096203,
+ "load_before": [
+ 1.5498046875,
+ 1.66748046875,
+ 1.41845703125
+ ],
+ "load_after": [
+ 1.90625,
+ 1.73974609375,
+ 1.443359375
+ ]
+ },
+ {
+ "block": 2,
+ "case": "bits-64",
+ "arm": "parsed",
+ "stem": "02-bits-64-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.606702199031133,
+ "max_rss_kib": 448720,
+ "user_seconds": 4.492569,
+ "system_seconds": 0.091329,
+ "load_before": [
+ 1.90625,
+ 1.73974609375,
+ 1.443359375
+ ],
+ "load_after": [
+ 1.9140625,
+ 1.744140625,
+ 1.44677734375
+ ]
+ },
+ {
+ "block": 2,
+ "case": "bits-64",
+ "arm": "restored",
+ "stem": "02-bits-64-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.683428026037291,
+ "max_rss_kib": 448596,
+ "user_seconds": 4.551774,
+ "system_seconds": 0.09722599999999999,
+ "load_before": [
+ 1.9140625,
+ 1.744140625,
+ 1.44677734375
+ ],
+ "load_after": [
+ 2.24169921875,
+ 1.81494140625,
+ 1.4716796875
+ ]
+ },
+ {
+ "block": 2,
+ "case": "bits-64",
+ "arm": "replayed",
+ "stem": "02-bits-64-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.933867315994576,
+ "max_rss_kib": 448732,
+ "user_seconds": 4.808144,
+ "system_seconds": 0.085423,
+ "load_before": [
+ 2.24169921875,
+ 1.81494140625,
+ 1.4716796875
+ ],
+ "load_after": [
+ 2.22216796875,
+ 1.818359375,
+ 1.474609375
+ ]
+ },
+ {
+ "block": 2,
+ "case": "bits-128",
+ "arm": "lexical",
+ "stem": "02-bits-128-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.411044223001227,
+ "max_rss_kib": 448520,
+ "user_seconds": 4.254891,
+ "system_seconds": 0.114215,
+ "load_before": [
+ 2.22216796875,
+ 1.818359375,
+ 1.474609375
+ ],
+ "load_after": [
+ 2.2041015625,
+ 1.82177734375,
+ 1.4775390625
+ ]
+ },
+ {
+ "block": 2,
+ "case": "bits-128",
+ "arm": "parsed",
+ "stem": "02-bits-128-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.500087972963229,
+ "max_rss_kib": 448692,
+ "user_seconds": 4.3588059999999995,
+ "system_seconds": 0.11337499999999999,
+ "load_before": [
+ 2.2041015625,
+ 1.82177734375,
+ 1.4775390625
+ ],
+ "load_after": [
+ 2.1875,
+ 1.8251953125,
+ 1.48046875
+ ]
+ },
+ {
+ "block": 2,
+ "case": "bits-128",
+ "arm": "restored",
+ "stem": "02-bits-128-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.555873497040011,
+ "max_rss_kib": 448592,
+ "user_seconds": 4.415112,
+ "system_seconds": 0.096925,
+ "load_before": [
+ 2.1875,
+ 1.8251953125,
+ 1.48046875
+ ],
+ "load_after": [
+ 2.2529296875,
+ 1.8447265625,
+ 1.48876953125
+ ]
+ },
+ {
+ "block": 2,
+ "case": "bits-128",
+ "arm": "replayed",
+ "stem": "02-bits-128-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.680031655996572,
+ "max_rss_kib": 448600,
+ "user_seconds": 4.547809,
+ "system_seconds": 0.092568,
+ "load_before": [
+ 2.2529296875,
+ 1.8447265625,
+ 1.48876953125
+ ],
+ "load_after": [
+ 2.232421875,
+ 1.84765625,
+ 1.49169921875
+ ]
+ },
+ {
+ "block": 2,
+ "case": "precision-0",
+ "arm": "lexical",
+ "stem": "02-precision-0-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.882965105003677,
+ "max_rss_kib": 448712,
+ "user_seconds": 4.747549,
+ "system_seconds": 0.09386599999999999,
+ "load_before": [
+ 2.232421875,
+ 1.84765625,
+ 1.49169921875
+ ],
+ "load_after": [
+ 2.21337890625,
+ 1.8505859375,
+ 1.49462890625
+ ]
+ },
+ {
+ "block": 2,
+ "case": "precision-0",
+ "arm": "parsed",
+ "stem": "02-precision-0-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.764125923975371,
+ "max_rss_kib": 448736,
+ "user_seconds": 4.6358,
+ "system_seconds": 0.10316199999999999,
+ "load_before": [
+ 2.21337890625,
+ 1.8505859375,
+ 1.49462890625
+ ],
+ "load_after": [
+ 2.1962890625,
+ 1.853515625,
+ 1.49755859375
+ ]
+ },
+ {
+ "block": 2,
+ "case": "precision-0",
+ "arm": "restored",
+ "stem": "02-precision-0-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.886844758992083,
+ "max_rss_kib": 448592,
+ "user_seconds": 4.751254,
+ "system_seconds": 0.10983699999999999,
+ "load_before": [
+ 2.1962890625,
+ 1.853515625,
+ 1.49755859375
+ ],
+ "load_after": [
+ 2.3408203125,
+ 1.88916015625,
+ 1.51123046875
+ ]
+ },
+ {
+ "block": 2,
+ "case": "precision-0",
+ "arm": "replayed",
+ "stem": "02-precision-0-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.438742616970558,
+ "max_rss_kib": 448824,
+ "user_seconds": 4.305242,
+ "system_seconds": 0.10484399999999999,
+ "load_before": [
+ 2.3408203125,
+ 1.88916015625,
+ 1.51123046875
+ ],
+ "load_after": [
+ 2.3134765625,
+ 1.89111328125,
+ 1.51416015625
+ ]
+ },
+ {
+ "block": 2,
+ "case": "precision-4",
+ "arm": "lexical",
+ "stem": "02-precision-4-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.862907200003974,
+ "max_rss_kib": 448644,
+ "user_seconds": 4.740003,
+ "system_seconds": 0.10420399999999999,
+ "load_before": [
+ 2.3134765625,
+ 1.89111328125,
+ 1.51416015625
+ ],
+ "load_after": [
+ 2.3134765625,
+ 1.89111328125,
+ 1.51416015625
+ ]
+ },
+ {
+ "block": 2,
+ "case": "precision-4",
+ "arm": "parsed",
+ "stem": "02-precision-4-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.755433702026494,
+ "max_rss_kib": 448724,
+ "user_seconds": 4.641456,
+ "system_seconds": 0.088034,
+ "load_before": [
+ 2.3134765625,
+ 1.89111328125,
+ 1.51416015625
+ ],
+ "load_after": [
+ 2.36865234375,
+ 1.90966796875,
+ 1.5224609375
+ ]
+ },
+ {
+ "block": 2,
+ "case": "precision-4",
+ "arm": "restored",
+ "stem": "02-precision-4-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.879891715012491,
+ "max_rss_kib": 448780,
+ "user_seconds": 4.762932,
+ "system_seconds": 0.098426,
+ "load_before": [
+ 2.36865234375,
+ 1.90966796875,
+ 1.5224609375
+ ],
+ "load_after": [
+ 2.3388671875,
+ 1.91162109375,
+ 1.525390625
+ ]
+ },
+ {
+ "block": 2,
+ "case": "precision-4",
+ "arm": "replayed",
+ "stem": "02-precision-4-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.432145189028233,
+ "max_rss_kib": 448780,
+ "user_seconds": 4.324582,
+ "system_seconds": 0.087327,
+ "load_before": [
+ 2.3388671875,
+ 1.91162109375,
+ 1.525390625
+ ],
+ "load_after": [
+ 2.3115234375,
+ 1.91357421875,
+ 1.5283203125
+ ]
+ },
+ {
+ "block": 2,
+ "case": "precision-8",
+ "arm": "lexical",
+ "stem": "02-precision-8-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.858134646958206,
+ "max_rss_kib": 448848,
+ "user_seconds": 4.734987,
+ "system_seconds": 0.10245599999999999,
+ "load_before": [
+ 2.3115234375,
+ 1.91357421875,
+ 1.5283203125
+ ],
+ "load_after": [
+ 2.2861328125,
+ 1.9150390625,
+ 1.53125
+ ]
+ },
+ {
+ "block": 2,
+ "case": "precision-8",
+ "arm": "parsed",
+ "stem": "02-precision-8-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.777325164002832,
+ "max_rss_kib": 448752,
+ "user_seconds": 4.647441,
+ "system_seconds": 0.098535,
+ "load_before": [
+ 2.2861328125,
+ 1.9150390625,
+ 1.53125
+ ],
+ "load_after": [
+ 2.26318359375,
+ 1.91650390625,
+ 1.5341796875
+ ]
+ },
+ {
+ "block": 2,
+ "case": "precision-8",
+ "arm": "restored",
+ "stem": "02-precision-8-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.901130319049116,
+ "max_rss_kib": 448600,
+ "user_seconds": 4.765689,
+ "system_seconds": 0.106873,
+ "load_before": [
+ 2.26318359375,
+ 1.91650390625,
+ 1.5341796875
+ ],
+ "load_after": [
+ 2.24169921875,
+ 1.91796875,
+ 1.537109375
+ ]
+ },
+ {
+ "block": 2,
+ "case": "precision-8",
+ "arm": "replayed",
+ "stem": "02-precision-8-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.457955377001781,
+ "max_rss_kib": 448848,
+ "user_seconds": 4.334756,
+ "system_seconds": 0.093669,
+ "load_before": [
+ 2.24169921875,
+ 1.91796875,
+ 1.537109375
+ ],
+ "load_after": [
+ 2.3828125,
+ 1.95263671875,
+ 1.55078125
+ ]
+ },
+ {
+ "block": 2,
+ "case": "precision-12",
+ "arm": "lexical",
+ "stem": "02-precision-12-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.874873172026128,
+ "max_rss_kib": 448680,
+ "user_seconds": 4.731307,
+ "system_seconds": 0.107357,
+ "load_before": [
+ 2.3828125,
+ 1.95263671875,
+ 1.55078125
+ ],
+ "load_after": [
+ 2.35205078125,
+ 1.95361328125,
+ 1.55322265625
+ ]
+ },
+ {
+ "block": 2,
+ "case": "precision-12",
+ "arm": "parsed",
+ "stem": "02-precision-12-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.784489220008254,
+ "max_rss_kib": 448648,
+ "user_seconds": 4.648417,
+ "system_seconds": 0.109263,
+ "load_before": [
+ 2.35205078125,
+ 1.95361328125,
+ 1.55322265625
+ ],
+ "load_after": [
+ 2.32373046875,
+ 1.95458984375,
+ 1.5556640625
+ ]
+ },
+ {
+ "block": 2,
+ "case": "precision-12",
+ "arm": "restored",
+ "stem": "02-precision-12-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.90350059204502,
+ "max_rss_kib": 448648,
+ "user_seconds": 4.769559,
+ "system_seconds": 0.111549,
+ "load_before": [
+ 2.32373046875,
+ 1.95458984375,
+ 1.5556640625
+ ],
+ "load_after": [
+ 2.29736328125,
+ 1.95556640625,
+ 1.55810546875
+ ]
+ },
+ {
+ "block": 2,
+ "case": "precision-12",
+ "arm": "replayed",
+ "stem": "02-precision-12-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.455016280000564,
+ "max_rss_kib": 448592,
+ "user_seconds": 4.299294,
+ "system_seconds": 0.13024,
+ "load_before": [
+ 2.29736328125,
+ 1.95556640625,
+ 1.55810546875
+ ],
+ "load_after": [
+ 2.35400390625,
+ 1.97314453125,
+ 1.56591796875
+ ]
+ },
+ {
+ "block": 2,
+ "case": "depth-0",
+ "arm": "lexical",
+ "stem": "02-depth-0-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.8320365300169215,
+ "max_rss_kib": 448732,
+ "user_seconds": 4.7146799999999995,
+ "system_seconds": 0.098216,
+ "load_before": [
+ 2.35400390625,
+ 1.97314453125,
+ 1.56591796875
+ ],
+ "load_after": [
+ 2.3251953125,
+ 1.9736328125,
+ 1.568359375
+ ]
+ },
+ {
+ "block": 2,
+ "case": "depth-0",
+ "arm": "parsed",
+ "stem": "02-depth-0-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.755721246008761,
+ "max_rss_kib": 448772,
+ "user_seconds": 4.624939,
+ "system_seconds": 0.101965,
+ "load_before": [
+ 2.3251953125,
+ 1.9736328125,
+ 1.568359375
+ ],
+ "load_after": [
+ 2.61962890625,
+ 2.04052734375,
+ 1.59228515625
+ ]
+ },
+ {
+ "block": 2,
+ "case": "depth-0",
+ "arm": "restored",
+ "stem": "02-depth-0-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.877547340001911,
+ "max_rss_kib": 448788,
+ "user_seconds": 4.756908,
+ "system_seconds": 0.09426,
+ "load_before": [
+ 2.61962890625,
+ 2.04052734375,
+ 1.59228515625
+ ],
+ "load_after": [
+ 2.650390625,
+ 2.056640625,
+ 1.60009765625
+ ]
+ },
+ {
+ "block": 2,
+ "case": "depth-0",
+ "arm": "replayed",
+ "stem": "02-depth-0-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.427007369988132,
+ "max_rss_kib": 448668,
+ "user_seconds": 4.3116769999999995,
+ "system_seconds": 0.09340999999999999,
+ "load_before": [
+ 2.650390625,
+ 2.056640625,
+ 1.60009765625
+ ],
+ "load_after": [
+ 2.6787109375,
+ 2.07275390625,
+ 1.60791015625
+ ]
+ },
+ {
+ "block": 2,
+ "case": "depth-1",
+ "arm": "lexical",
+ "stem": "02-depth-1-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.473958361020777,
+ "max_rss_kib": 448780,
+ "user_seconds": 4.364836,
+ "system_seconds": 0.089847,
+ "load_before": [
+ 2.6787109375,
+ 2.07275390625,
+ 1.60791015625
+ ],
+ "load_after": [
+ 2.78466796875,
+ 2.10498046875,
+ 1.62109375
+ ]
+ },
+ {
+ "block": 2,
+ "case": "depth-1",
+ "arm": "parsed",
+ "stem": "02-depth-1-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.4244031039997935,
+ "max_rss_kib": 448732,
+ "user_seconds": 4.307106,
+ "system_seconds": 0.093488,
+ "load_before": [
+ 2.78466796875,
+ 2.10498046875,
+ 1.62109375
+ ],
+ "load_after": [
+ 2.78466796875,
+ 2.10498046875,
+ 1.62109375
+ ]
+ },
+ {
+ "block": 2,
+ "case": "depth-1",
+ "arm": "restored",
+ "stem": "02-depth-1-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.578183462028392,
+ "max_rss_kib": 448712,
+ "user_seconds": 4.461326,
+ "system_seconds": 0.099732,
+ "load_before": [
+ 2.78466796875,
+ 2.10498046875,
+ 1.62109375
+ ],
+ "load_after": [
+ 2.80224609375,
+ 2.1201171875,
+ 1.62890625
+ ]
+ },
+ {
+ "block": 2,
+ "case": "depth-1",
+ "arm": "replayed",
+ "stem": "02-depth-1-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 5.026009433961008,
+ "max_rss_kib": 448716,
+ "user_seconds": 4.88793,
+ "system_seconds": 0.10314,
+ "load_before": [
+ 2.80224609375,
+ 2.1201171875,
+ 1.62890625
+ ],
+ "load_after": [
+ 2.73779296875,
+ 2.11767578125,
+ 1.63134765625
+ ]
+ },
+ {
+ "block": 2,
+ "case": "depth-2",
+ "arm": "lexical",
+ "stem": "02-depth-2-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.422853744006716,
+ "max_rss_kib": 448604,
+ "user_seconds": 4.271165,
+ "system_seconds": 0.116604,
+ "load_before": [
+ 2.73779296875,
+ 2.11767578125,
+ 1.63134765625
+ ],
+ "load_after": [
+ 2.6787109375,
+ 2.115234375,
+ 1.6337890625
+ ]
+ },
+ {
+ "block": 2,
+ "case": "depth-2",
+ "arm": "parsed",
+ "stem": "02-depth-2-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.53202099702321,
+ "max_rss_kib": 448760,
+ "user_seconds": 4.392732,
+ "system_seconds": 0.109182,
+ "load_before": [
+ 2.6787109375,
+ 2.115234375,
+ 1.6337890625
+ ],
+ "load_after": [
+ 2.5439453125,
+ 2.0966796875,
+ 1.63037109375
+ ]
+ },
+ {
+ "block": 2,
+ "case": "depth-2",
+ "arm": "restored",
+ "stem": "02-depth-2-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.82808569498593,
+ "max_rss_kib": 448676,
+ "user_seconds": 4.651298,
+ "system_seconds": 0.136877,
+ "load_before": [
+ 2.5439453125,
+ 2.0966796875,
+ 1.63037109375
+ ],
+ "load_after": [
+ 2.419921875,
+ 2.078125,
+ 1.626953125
+ ]
+ },
+ {
+ "block": 2,
+ "case": "depth-2",
+ "arm": "replayed",
+ "stem": "02-depth-2-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.6042509830440395,
+ "max_rss_kib": 448664,
+ "user_seconds": 4.46809,
+ "system_seconds": 0.10976999999999999,
+ "load_before": [
+ 2.419921875,
+ 2.078125,
+ 1.626953125
+ ],
+ "load_after": [
+ 2.38623046875,
+ 2.07666015625,
+ 1.62939453125
+ ]
+ },
+ {
+ "block": 2,
+ "case": "repeated-4",
+ "arm": "lexical",
+ "stem": "02-repeated-4-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.681819368037395,
+ "max_rss_kib": 448548,
+ "user_seconds": 4.494857,
+ "system_seconds": 0.152537,
+ "load_before": [
+ 2.38623046875,
+ 2.07666015625,
+ 1.62939453125
+ ],
+ "load_after": [
+ 2.435546875,
+ 2.09228515625,
+ 1.63720703125
+ ]
+ },
+ {
+ "block": 2,
+ "case": "repeated-4",
+ "arm": "parsed",
+ "stem": "02-repeated-4-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.558937764028087,
+ "max_rss_kib": 448580,
+ "user_seconds": 4.398077,
+ "system_seconds": 0.138212,
+ "load_before": [
+ 2.435546875,
+ 2.09228515625,
+ 1.63720703125
+ ],
+ "load_after": [
+ 2.64111328125,
+ 2.140625,
+ 1.6552734375
+ ]
+ },
+ {
+ "block": 2,
+ "case": "repeated-4",
+ "arm": "restored",
+ "stem": "02-repeated-4-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.677502063976135,
+ "max_rss_kib": 448548,
+ "user_seconds": 4.536331,
+ "system_seconds": 0.09906999999999999,
+ "load_before": [
+ 2.64111328125,
+ 2.140625,
+ 1.6552734375
+ ],
+ "load_after": [
+ 2.75,
+ 2.171875,
+ 1.66796875
+ ]
+ },
+ {
+ "block": 2,
+ "case": "repeated-4",
+ "arm": "replayed",
+ "stem": "02-repeated-4-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 5.044881167996209,
+ "max_rss_kib": 448680,
+ "user_seconds": 4.82535,
+ "system_seconds": 0.196327,
+ "load_before": [
+ 2.75,
+ 2.171875,
+ 1.66796875
+ ],
+ "load_after": [
+ 2.85009765625,
+ 2.20263671875,
+ 1.6806640625
+ ]
+ },
+ {
+ "block": 2,
+ "case": "common-2",
+ "arm": "lexical",
+ "stem": "02-common-2-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.653225670976099,
+ "max_rss_kib": 448840,
+ "user_seconds": 4.509615,
+ "system_seconds": 0.113081,
+ "load_before": [
+ 2.85009765625,
+ 2.20263671875,
+ 1.6806640625
+ ],
+ "load_after": [
+ 2.70166015625,
+ 2.1826171875,
+ 1.6767578125
+ ]
+ },
+ {
+ "block": 2,
+ "case": "common-2",
+ "arm": "parsed",
+ "stem": "02-common-2-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.473013093986083,
+ "max_rss_kib": 448748,
+ "user_seconds": 4.340318,
+ "system_seconds": 0.102519,
+ "load_before": [
+ 2.70166015625,
+ 2.1826171875,
+ 1.6767578125
+ ],
+ "load_after": [
+ 2.56494140625,
+ 2.16259765625,
+ 1.6728515625
+ ]
+ },
+ {
+ "block": 2,
+ "case": "common-2",
+ "arm": "restored",
+ "stem": "02-common-2-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.638908636989072,
+ "max_rss_kib": 448628,
+ "user_seconds": 4.493996,
+ "system_seconds": 0.106003,
+ "load_before": [
+ 2.56494140625,
+ 2.16259765625,
+ 1.6728515625
+ ],
+ "load_after": [
+ 2.439453125,
+ 2.14306640625,
+ 1.6689453125
+ ]
+ },
+ {
+ "block": 2,
+ "case": "common-2",
+ "arm": "replayed",
+ "stem": "02-common-2-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.872245105041657,
+ "max_rss_kib": 448764,
+ "user_seconds": 4.744009,
+ "system_seconds": 0.10568,
+ "load_before": [
+ 2.439453125,
+ 2.14306640625,
+ 1.6689453125
+ ],
+ "load_after": [
+ 2.32373046875,
+ 2.1240234375,
+ 1.6650390625
+ ]
+ },
+ {
+ "block": 2,
+ "case": "repeated-roots-2",
+ "arm": "lexical",
+ "stem": "02-repeated-roots-2-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.805365884036291,
+ "max_rss_kib": 448772,
+ "user_seconds": 4.663134,
+ "system_seconds": 0.11900799999999999,
+ "load_before": [
+ 2.32373046875,
+ 2.1240234375,
+ 1.6650390625
+ ],
+ "load_after": [
+ 2.29736328125,
+ 2.12158203125,
+ 1.6669921875
+ ]
+ },
+ {
+ "block": 2,
+ "case": "repeated-roots-2",
+ "arm": "parsed",
+ "stem": "02-repeated-roots-2-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.680840504006483,
+ "max_rss_kib": 448716,
+ "user_seconds": 4.53468,
+ "system_seconds": 0.11824,
+ "load_before": [
+ 2.29736328125,
+ 2.12158203125,
+ 1.6669921875
+ ],
+ "load_after": [
+ 2.29736328125,
+ 2.12158203125,
+ 1.6669921875
+ ]
+ },
+ {
+ "block": 2,
+ "case": "repeated-roots-2",
+ "arm": "restored",
+ "stem": "02-repeated-roots-2-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.80888899002457,
+ "max_rss_kib": 448544,
+ "user_seconds": 4.654191,
+ "system_seconds": 0.132066,
+ "load_before": [
+ 2.29736328125,
+ 2.12158203125,
+ 1.6669921875
+ ],
+ "load_after": [
+ 2.2734375,
+ 2.119140625,
+ 1.6689453125
+ ]
+ },
+ {
+ "block": 2,
+ "case": "repeated-roots-2",
+ "arm": "replayed",
+ "stem": "02-repeated-roots-2-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 5.189751688041724,
+ "max_rss_kib": 448784,
+ "user_seconds": 5.039673,
+ "system_seconds": 0.12665099999999999,
+ "load_before": [
+ 2.2734375,
+ 2.119140625,
+ 1.6689453125
+ ],
+ "load_after": [
+ 2.25146484375,
+ 2.11669921875,
+ 1.6708984375
+ ]
+ },
+ {
+ "block": 3,
+ "case": "degree-2",
+ "arm": "replayed",
+ "stem": "03-degree-2-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.46712348901201,
+ "max_rss_kib": 448488,
+ "user_seconds": 4.316293,
+ "system_seconds": 0.127687,
+ "load_before": [
+ 2.25146484375,
+ 2.11669921875,
+ 1.6708984375
+ ],
+ "load_after": [
+ 2.15087890625,
+ 2.09814453125,
+ 1.6669921875
+ ]
+ },
+ {
+ "block": 3,
+ "case": "degree-2",
+ "arm": "restored",
+ "stem": "03-degree-2-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.909045282984152,
+ "max_rss_kib": 448536,
+ "user_seconds": 4.735874,
+ "system_seconds": 0.15545699999999998,
+ "load_before": [
+ 2.15087890625,
+ 2.09814453125,
+ 1.6669921875
+ ],
+ "load_after": [
+ 2.29931640625,
+ 2.1298828125,
+ 1.6796875
+ ]
+ },
+ {
+ "block": 3,
+ "case": "degree-2",
+ "arm": "parsed",
+ "stem": "03-degree-2-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.754323452012613,
+ "max_rss_kib": 448592,
+ "user_seconds": 4.616473,
+ "system_seconds": 0.107663,
+ "load_before": [
+ 2.29931640625,
+ 2.1298828125,
+ 1.6796875
+ ],
+ "load_after": [
+ 2.27490234375,
+ 2.12744140625,
+ 1.681640625
+ ]
+ },
+ {
+ "block": 3,
+ "case": "degree-2",
+ "arm": "lexical",
+ "stem": "03-degree-2-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.855756965000182,
+ "max_rss_kib": 448628,
+ "user_seconds": 4.718253,
+ "system_seconds": 0.09937399999999999,
+ "load_before": [
+ 2.27490234375,
+ 2.12744140625,
+ 1.681640625
+ ],
+ "load_after": [
+ 2.3330078125,
+ 2.14208984375,
+ 1.68896484375
+ ]
+ },
+ {
+ "block": 3,
+ "case": "degree-3",
+ "arm": "replayed",
+ "stem": "03-degree-3-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.682094884978142,
+ "max_rss_kib": 448688,
+ "user_seconds": 4.56655,
+ "system_seconds": 0.097407,
+ "load_before": [
+ 2.3330078125,
+ 2.14208984375,
+ 1.68896484375
+ ],
+ "load_after": [
+ 2.22607421875,
+ 2.123046875,
+ 1.68505859375
+ ]
+ },
+ {
+ "block": 3,
+ "case": "degree-3",
+ "arm": "restored",
+ "stem": "03-degree-3-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.400701211008709,
+ "max_rss_kib": 448500,
+ "user_seconds": 4.269084,
+ "system_seconds": 0.10559099999999999,
+ "load_before": [
+ 2.22607421875,
+ 2.123046875,
+ 1.68505859375
+ ],
+ "load_after": [
+ 2.12744140625,
+ 2.10400390625,
+ 1.68115234375
+ ]
+ },
+ {
+ "block": 3,
+ "case": "degree-3",
+ "arm": "parsed",
+ "stem": "03-degree-3-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 5.077790406998247,
+ "max_rss_kib": 448788,
+ "user_seconds": 4.933648,
+ "system_seconds": 0.10593,
+ "load_before": [
+ 2.12744140625,
+ 2.10400390625,
+ 1.68115234375
+ ],
+ "load_after": [
+ 2.27783203125,
+ 2.1357421875,
+ 1.69384765625
+ ]
+ },
+ {
+ "block": 3,
+ "case": "degree-3",
+ "arm": "lexical",
+ "stem": "03-degree-3-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 5.081180663022678,
+ "max_rss_kib": 448628,
+ "user_seconds": 4.964092,
+ "system_seconds": 0.09750099999999999,
+ "load_before": [
+ 2.27783203125,
+ 2.1357421875,
+ 1.69384765625
+ ],
+ "load_after": [
+ 2.25537109375,
+ 2.13330078125,
+ 1.69580078125
+ ]
+ },
+ {
+ "block": 3,
+ "case": "degree-4",
+ "arm": "replayed",
+ "stem": "03-degree-4-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.858309586998075,
+ "max_rss_kib": 448760,
+ "user_seconds": 4.727856,
+ "system_seconds": 0.107788,
+ "load_before": [
+ 2.25537109375,
+ 2.13330078125,
+ 1.69580078125
+ ],
+ "load_after": [
+ 2.15478515625,
+ 2.1142578125,
+ 1.69189453125
+ ]
+ },
+ {
+ "block": 3,
+ "case": "degree-4",
+ "arm": "restored",
+ "stem": "03-degree-4-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.551121894968674,
+ "max_rss_kib": 448664,
+ "user_seconds": 4.414572,
+ "system_seconds": 0.099993,
+ "load_before": [
+ 2.15478515625,
+ 2.1142578125,
+ 1.69189453125
+ ],
+ "load_after": [
+ 2.302734375,
+ 2.14599609375,
+ 1.70458984375
+ ]
+ },
+ {
+ "block": 3,
+ "case": "degree-4",
+ "arm": "parsed",
+ "stem": "03-degree-4-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.450947622011881,
+ "max_rss_kib": 448628,
+ "user_seconds": 4.310077,
+ "system_seconds": 0.103879,
+ "load_before": [
+ 2.302734375,
+ 2.14599609375,
+ 1.70458984375
+ ],
+ "load_after": [
+ 2.2783203125,
+ 2.1435546875,
+ 1.70654296875
+ ]
+ },
+ {
+ "block": 3,
+ "case": "degree-4",
+ "arm": "lexical",
+ "stem": "03-degree-4-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.613659516966436,
+ "max_rss_kib": 448460,
+ "user_seconds": 4.3046109999999995,
+ "system_seconds": 0.27674499999999996,
+ "load_before": [
+ 2.2783203125,
+ 2.1435546875,
+ 1.70654296875
+ ],
+ "load_after": [
+ 2.255859375,
+ 2.14111328125,
+ 1.70849609375
+ ]
+ },
+ {
+ "block": 3,
+ "case": "degree-5",
+ "arm": "replayed",
+ "stem": "03-degree-5-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 5.058582752011716,
+ "max_rss_kib": 448672,
+ "user_seconds": 4.9183,
+ "system_seconds": 0.100839,
+ "load_before": [
+ 2.255859375,
+ 2.14111328125,
+ 1.70849609375
+ ],
+ "load_after": [
+ 2.2353515625,
+ 2.138671875,
+ 1.71044921875
+ ]
+ },
+ {
+ "block": 3,
+ "case": "degree-5",
+ "arm": "restored",
+ "stem": "03-degree-5-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.679134512960445,
+ "max_rss_kib": 448716,
+ "user_seconds": 4.545095,
+ "system_seconds": 0.10158299999999999,
+ "load_before": [
+ 2.2353515625,
+ 2.138671875,
+ 1.71044921875
+ ],
+ "load_after": [
+ 2.13623046875,
+ 2.11962890625,
+ 1.70654296875
+ ]
+ },
+ {
+ "block": 3,
+ "case": "degree-5",
+ "arm": "parsed",
+ "stem": "03-degree-5-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.566919454955496,
+ "max_rss_kib": 448668,
+ "user_seconds": 4.430644,
+ "system_seconds": 0.10510499999999999,
+ "load_before": [
+ 2.13623046875,
+ 2.11962890625,
+ 1.70654296875
+ ],
+ "load_after": [
+ 2.044921875,
+ 2.1005859375,
+ 1.70263671875
+ ]
+ },
+ {
+ "block": 3,
+ "case": "degree-5",
+ "arm": "lexical",
+ "stem": "03-degree-5-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.50538016599603,
+ "max_rss_kib": 448788,
+ "user_seconds": 4.369722,
+ "system_seconds": 0.09906899999999999,
+ "load_before": [
+ 2.044921875,
+ 2.1005859375,
+ 1.70263671875
+ ],
+ "load_after": [
+ 2.041015625,
+ 2.0986328125,
+ 1.70458984375
+ ]
+ },
+ {
+ "block": 3,
+ "case": "atoms-1",
+ "arm": "replayed",
+ "stem": "03-atoms-1-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.455642257002182,
+ "max_rss_kib": 448640,
+ "user_seconds": 4.345181,
+ "system_seconds": 0.08997899999999999,
+ "load_before": [
+ 2.041015625,
+ 2.0986328125,
+ 1.70458984375
+ ],
+ "load_after": [
+ 2.041015625,
+ 2.0986328125,
+ 1.70458984375
+ ]
+ },
+ {
+ "block": 3,
+ "case": "atoms-1",
+ "arm": "restored",
+ "stem": "03-atoms-1-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.999880805029534,
+ "max_rss_kib": 448548,
+ "user_seconds": 4.870182,
+ "system_seconds": 0.11101,
+ "load_before": [
+ 2.041015625,
+ 2.0986328125,
+ 1.70458984375
+ ],
+ "load_after": [
+ 2.1181640625,
+ 2.11376953125,
+ 1.7119140625
+ ]
+ },
+ {
+ "block": 3,
+ "case": "atoms-1",
+ "arm": "parsed",
+ "stem": "03-atoms-1-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.808238659054041,
+ "max_rss_kib": 448720,
+ "user_seconds": 4.626194,
+ "system_seconds": 0.153906,
+ "load_before": [
+ 2.1181640625,
+ 2.11376953125,
+ 1.7119140625
+ ],
+ "load_after": [
+ 2.0283203125,
+ 2.09521484375,
+ 1.7080078125
+ ]
+ },
+ {
+ "block": 3,
+ "case": "atoms-1",
+ "arm": "lexical",
+ "stem": "03-atoms-1-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.853254521964118,
+ "max_rss_kib": 448464,
+ "user_seconds": 4.691112,
+ "system_seconds": 0.133404,
+ "load_before": [
+ 2.0283203125,
+ 2.09521484375,
+ 1.7080078125
+ ],
+ "load_after": [
+ 2.02587890625,
+ 2.09326171875,
+ 1.7099609375
+ ]
+ },
+ {
+ "block": 3,
+ "case": "atoms-2",
+ "arm": "replayed",
+ "stem": "03-atoms-2-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.483937576005701,
+ "max_rss_kib": 448788,
+ "user_seconds": 4.313345,
+ "system_seconds": 0.14873699999999998,
+ "load_before": [
+ 2.02587890625,
+ 2.09326171875,
+ 1.7099609375
+ ],
+ "load_after": [
+ 1.943359375,
+ 2.07470703125,
+ 1.7060546875
+ ]
+ },
+ {
+ "block": 3,
+ "case": "atoms-2",
+ "arm": "restored",
+ "stem": "03-atoms-2-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.929998988984153,
+ "max_rss_kib": 448544,
+ "user_seconds": 4.763327,
+ "system_seconds": 0.14163499999999998,
+ "load_before": [
+ 1.943359375,
+ 2.07470703125,
+ 1.7060546875
+ ],
+ "load_after": [
+ 1.9482421875,
+ 2.0732421875,
+ 1.7080078125
+ ]
+ },
+ {
+ "block": 3,
+ "case": "atoms-2",
+ "arm": "parsed",
+ "stem": "03-atoms-2-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.81130243500229,
+ "max_rss_kib": 448768,
+ "user_seconds": 4.649305,
+ "system_seconds": 0.129055,
+ "load_before": [
+ 1.9482421875,
+ 2.0732421875,
+ 1.7080078125
+ ],
+ "load_after": [
+ 1.8720703125,
+ 2.05517578125,
+ 1.7041015625
+ ]
+ },
+ {
+ "block": 3,
+ "case": "atoms-2",
+ "arm": "lexical",
+ "stem": "03-atoms-2-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.926679473021068,
+ "max_rss_kib": 448708,
+ "user_seconds": 4.747571,
+ "system_seconds": 0.137269,
+ "load_before": [
+ 1.8720703125,
+ 2.05517578125,
+ 1.7041015625
+ ],
+ "load_after": [
+ 2.60302734375,
+ 2.2041015625,
+ 1.75439453125
+ ]
+ },
+ {
+ "block": 3,
+ "case": "atoms-3",
+ "arm": "replayed",
+ "stem": "03-atoms-3-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.89308995497413,
+ "max_rss_kib": 448596,
+ "user_seconds": 4.74892,
+ "system_seconds": 0.10120499999999999,
+ "load_before": [
+ 2.60302734375,
+ 2.2041015625,
+ 1.75439453125
+ ],
+ "load_after": [
+ 2.71533203125,
+ 2.234375,
+ 1.7666015625
+ ]
+ },
+ {
+ "block": 3,
+ "case": "atoms-3",
+ "arm": "restored",
+ "stem": "03-atoms-3-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.611104760959279,
+ "max_rss_kib": 448736,
+ "user_seconds": 4.408819,
+ "system_seconds": 0.161085,
+ "load_before": [
+ 2.71533203125,
+ 2.234375,
+ 1.7666015625
+ ],
+ "load_after": [
+ 3.138671875,
+ 2.33056640625,
+ 1.80029296875
+ ]
+ },
+ {
+ "block": 3,
+ "case": "atoms-3",
+ "arm": "parsed",
+ "stem": "03-atoms-3-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.548021484981291,
+ "max_rss_kib": 448648,
+ "user_seconds": 4.339654,
+ "system_seconds": 0.16627599999999998,
+ "load_before": [
+ 3.138671875,
+ 2.33056640625,
+ 1.80029296875
+ ],
+ "load_after": [
+ 3.2080078125,
+ 2.3583984375,
+ 1.8125
+ ]
+ },
+ {
+ "block": 3,
+ "case": "atoms-3",
+ "arm": "lexical",
+ "stem": "03-atoms-3-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.608225316973403,
+ "max_rss_kib": 448620,
+ "user_seconds": 4.436832,
+ "system_seconds": 0.150717,
+ "load_before": [
+ 3.2080078125,
+ 2.3583984375,
+ 1.8125
+ ],
+ "load_after": [
+ 3.431640625,
+ 2.4189453125,
+ 1.83544921875
+ ]
+ },
+ {
+ "block": 3,
+ "case": "atoms-4",
+ "arm": "replayed",
+ "stem": "03-atoms-4-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.464991478947923,
+ "max_rss_kib": 448436,
+ "user_seconds": 4.316301,
+ "system_seconds": 0.11323799999999999,
+ "load_before": [
+ 3.431640625,
+ 2.4189453125,
+ 1.83544921875
+ ],
+ "load_after": [
+ 3.4775390625,
+ 2.4453125,
+ 1.84716796875
+ ]
+ },
+ {
+ "block": 3,
+ "case": "atoms-4",
+ "arm": "restored",
+ "stem": "03-atoms-4-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.915376560005825,
+ "max_rss_kib": 448696,
+ "user_seconds": 4.744451,
+ "system_seconds": 0.13078299999999998,
+ "load_before": [
+ 3.4775390625,
+ 2.4453125,
+ 1.84716796875
+ ],
+ "load_after": [
+ 4.400390625,
+ 2.65380859375,
+ 1.91796875
+ ]
+ },
+ {
+ "block": 3,
+ "case": "atoms-4",
+ "arm": "parsed",
+ "stem": "03-atoms-4-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.799973526969552,
+ "max_rss_kib": 448632,
+ "user_seconds": 4.640942,
+ "system_seconds": 0.125334,
+ "load_before": [
+ 4.400390625,
+ 2.65380859375,
+ 1.91796875
+ ],
+ "load_after": [
+ 4.2880859375,
+ 2.65966796875,
+ 1.923828125
+ ]
+ },
+ {
+ "block": 3,
+ "case": "atoms-4",
+ "arm": "lexical",
+ "stem": "03-atoms-4-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.873643114988226,
+ "max_rss_kib": 448704,
+ "user_seconds": 4.737691,
+ "system_seconds": 0.09805499999999999,
+ "load_before": [
+ 4.2880859375,
+ 2.65966796875,
+ 1.923828125
+ ],
+ "load_after": [
+ 4.1845703125,
+ 2.66552734375,
+ 1.9296875
+ ]
+ },
+ {
+ "block": 3,
+ "case": "bits-4",
+ "arm": "replayed",
+ "stem": "03-bits-4-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 5.200727746996563,
+ "max_rss_kib": 448652,
+ "user_seconds": 5.032818,
+ "system_seconds": 0.13114,
+ "load_before": [
+ 4.1845703125,
+ 2.66552734375,
+ 1.9296875
+ ],
+ "load_after": [
+ 4.00927734375,
+ 2.654296875,
+ 1.93017578125
+ ]
+ },
+ {
+ "block": 3,
+ "case": "bits-4",
+ "arm": "restored",
+ "stem": "03-bits-4-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.945644020976033,
+ "max_rss_kib": 448528,
+ "user_seconds": 4.670426,
+ "system_seconds": 0.250886,
+ "load_before": [
+ 4.00927734375,
+ 2.654296875,
+ 1.93017578125
+ ],
+ "load_after": [
+ 4.1689453125,
+ 2.7099609375,
+ 1.9521484375
+ ]
+ },
+ {
+ "block": 3,
+ "case": "bits-4",
+ "arm": "parsed",
+ "stem": "03-bits-4-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.704961606999859,
+ "max_rss_kib": 448732,
+ "user_seconds": 4.542422,
+ "system_seconds": 0.132327,
+ "load_before": [
+ 4.1689453125,
+ 2.7099609375,
+ 1.9521484375
+ ],
+ "load_after": [
+ 3.9951171875,
+ 2.69775390625,
+ 1.95263671875
+ ]
+ },
+ {
+ "block": 3,
+ "case": "bits-4",
+ "arm": "lexical",
+ "stem": "03-bits-4-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.809087019995786,
+ "max_rss_kib": 448640,
+ "user_seconds": 4.666234,
+ "system_seconds": 0.116618,
+ "load_before": [
+ 3.9951171875,
+ 2.69775390625,
+ 1.95263671875
+ ],
+ "load_after": [
+ 3.9150390625,
+ 2.703125,
+ 1.95849609375
+ ]
+ },
+ {
+ "block": 3,
+ "case": "bits-16",
+ "arm": "replayed",
+ "stem": "03-bits-16-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.502807522017974,
+ "max_rss_kib": 448428,
+ "user_seconds": 4.300789,
+ "system_seconds": 0.182085,
+ "load_before": [
+ 3.9150390625,
+ 2.703125,
+ 1.95849609375
+ ],
+ "load_after": [
+ 3.76123046875,
+ 2.69140625,
+ 1.958984375
+ ]
+ },
+ {
+ "block": 3,
+ "case": "bits-16",
+ "arm": "restored",
+ "stem": "03-bits-16-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.9237934749689884,
+ "max_rss_kib": 448596,
+ "user_seconds": 4.743127,
+ "system_seconds": 0.14141299999999998,
+ "load_before": [
+ 3.76123046875,
+ 2.69140625,
+ 1.958984375
+ ],
+ "load_after": [
+ 3.6201171875,
+ 2.6796875,
+ 1.95947265625
+ ]
+ },
+ {
+ "block": 3,
+ "case": "bits-16",
+ "arm": "parsed",
+ "stem": "03-bits-16-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.832067680021282,
+ "max_rss_kib": 448600,
+ "user_seconds": 4.6096889999999995,
+ "system_seconds": 0.180993,
+ "load_before": [
+ 3.6201171875,
+ 2.6796875,
+ 1.95947265625
+ ],
+ "load_after": [
+ 3.5703125,
+ 2.68505859375,
+ 1.96533203125
+ ]
+ },
+ {
+ "block": 3,
+ "case": "bits-16",
+ "arm": "lexical",
+ "stem": "03-bits-16-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.886945599981118,
+ "max_rss_kib": 448704,
+ "user_seconds": 4.737544,
+ "system_seconds": 0.127977,
+ "load_before": [
+ 3.5703125,
+ 2.68505859375,
+ 1.96533203125
+ ],
+ "load_after": [
+ 3.5244140625,
+ 2.6904296875,
+ 1.97119140625
+ ]
+ },
+ {
+ "block": 3,
+ "case": "bits-64",
+ "arm": "replayed",
+ "stem": "03-bits-64-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.975189978023991,
+ "max_rss_kib": 448480,
+ "user_seconds": 4.787247,
+ "system_seconds": 0.163875,
+ "load_before": [
+ 3.5244140625,
+ 2.6904296875,
+ 1.97119140625
+ ],
+ "load_after": [
+ 3.40185546875,
+ 2.6787109375,
+ 1.9716796875
+ ]
+ },
+ {
+ "block": 3,
+ "case": "bits-64",
+ "arm": "restored",
+ "stem": "03-bits-64-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.730763142986689,
+ "max_rss_kib": 448436,
+ "user_seconds": 4.554966,
+ "system_seconds": 0.15406899999999998,
+ "load_before": [
+ 3.40185546875,
+ 2.6787109375,
+ 1.9716796875
+ ],
+ "load_after": [
+ 3.40185546875,
+ 2.6787109375,
+ 1.9716796875
+ ]
+ },
+ {
+ "block": 3,
+ "case": "bits-64",
+ "arm": "parsed",
+ "stem": "03-bits-64-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.640869783994276,
+ "max_rss_kib": 448580,
+ "user_seconds": 4.490108,
+ "system_seconds": 0.113218,
+ "load_before": [
+ 3.40185546875,
+ 2.6787109375,
+ 1.9716796875
+ ],
+ "load_after": [
+ 3.6103515625,
+ 2.73388671875,
+ 1.99365234375
+ ]
+ },
+ {
+ "block": 3,
+ "case": "bits-64",
+ "arm": "lexical",
+ "stem": "03-bits-64-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 5.055589911993593,
+ "max_rss_kib": 448632,
+ "user_seconds": 4.878897,
+ "system_seconds": 0.143541,
+ "load_before": [
+ 3.6103515625,
+ 2.73388671875,
+ 1.99365234375
+ ],
+ "load_after": [
+ 3.48095703125,
+ 2.7216796875,
+ 1.994140625
+ ]
+ },
+ {
+ "block": 3,
+ "case": "bits-128",
+ "arm": "replayed",
+ "stem": "03-bits-128-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.711768846958876,
+ "max_rss_kib": 448480,
+ "user_seconds": 4.541721,
+ "system_seconds": 0.146033,
+ "load_before": [
+ 3.48095703125,
+ 2.7216796875,
+ 1.994140625
+ ],
+ "load_after": [
+ 3.4423828125,
+ 2.7265625,
+ 2.0
+ ]
+ },
+ {
+ "block": 3,
+ "case": "bits-128",
+ "arm": "restored",
+ "stem": "03-bits-128-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.5826749229454435,
+ "max_rss_kib": 448448,
+ "user_seconds": 4.414622,
+ "system_seconds": 0.127179,
+ "load_before": [
+ 3.4423828125,
+ 2.7265625,
+ 2.0
+ ],
+ "load_after": [
+ 3.32666015625,
+ 2.71435546875,
+ 2.0
+ ]
+ },
+ {
+ "block": 3,
+ "case": "bits-128",
+ "arm": "parsed",
+ "stem": "03-bits-128-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.551487315970007,
+ "max_rss_kib": 448604,
+ "user_seconds": 4.367572,
+ "system_seconds": 0.14535299999999998,
+ "load_before": [
+ 3.32666015625,
+ 2.71435546875,
+ 2.0
+ ],
+ "load_after": [
+ 3.22021484375,
+ 2.7021484375,
+ 2.0
+ ]
+ },
+ {
+ "block": 3,
+ "case": "bits-128",
+ "arm": "lexical",
+ "stem": "03-bits-128-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.450245808984619,
+ "max_rss_kib": 448604,
+ "user_seconds": 4.275378,
+ "system_seconds": 0.13888999999999999,
+ "load_before": [
+ 3.22021484375,
+ 2.7021484375,
+ 2.0
+ ],
+ "load_after": [
+ 3.1220703125,
+ 2.6904296875,
+ 2.0
+ ]
+ },
+ {
+ "block": 3,
+ "case": "precision-0",
+ "arm": "replayed",
+ "stem": "03-precision-0-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.450452976045199,
+ "max_rss_kib": 448640,
+ "user_seconds": 4.306804,
+ "system_seconds": 0.10439999999999999,
+ "load_before": [
+ 3.1220703125,
+ 2.6904296875,
+ 2.0
+ ],
+ "load_after": [
+ 3.1923828125,
+ 2.71240234375,
+ 2.0107421875
+ ]
+ },
+ {
+ "block": 3,
+ "case": "precision-0",
+ "arm": "restored",
+ "stem": "03-precision-0-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.902130023983773,
+ "max_rss_kib": 448744,
+ "user_seconds": 4.73492,
+ "system_seconds": 0.144923,
+ "load_before": [
+ 3.1923828125,
+ 2.71240234375,
+ 2.0107421875
+ ],
+ "load_after": [
+ 3.25732421875,
+ 2.73388671875,
+ 2.021484375
+ ]
+ },
+ {
+ "block": 3,
+ "case": "precision-0",
+ "arm": "parsed",
+ "stem": "03-precision-0-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.763365318998694,
+ "max_rss_kib": 448728,
+ "user_seconds": 4.617418,
+ "system_seconds": 0.123013,
+ "load_before": [
+ 3.25732421875,
+ 2.73388671875,
+ 2.021484375
+ ],
+ "load_after": [
+ 3.15625,
+ 2.7216796875,
+ 2.02099609375
+ ]
+ },
+ {
+ "block": 3,
+ "case": "precision-0",
+ "arm": "lexical",
+ "stem": "03-precision-0-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.849073727964424,
+ "max_rss_kib": 448648,
+ "user_seconds": 4.699201,
+ "system_seconds": 0.13404,
+ "load_before": [
+ 3.15625,
+ 2.7216796875,
+ 2.02099609375
+ ],
+ "load_after": [
+ 3.0634765625,
+ 2.70947265625,
+ 2.0205078125
+ ]
+ },
+ {
+ "block": 3,
+ "case": "precision-4",
+ "arm": "replayed",
+ "stem": "03-precision-4-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.473361340002157,
+ "max_rss_kib": 448664,
+ "user_seconds": 4.306955,
+ "system_seconds": 0.12911799999999998,
+ "load_before": [
+ 3.0634765625,
+ 2.70947265625,
+ 2.0205078125
+ ],
+ "load_after": [
+ 2.97802734375,
+ 2.697265625,
+ 2.02001953125
+ ]
+ },
+ {
+ "block": 3,
+ "case": "precision-4",
+ "arm": "restored",
+ "stem": "03-precision-4-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.980344541952945,
+ "max_rss_kib": 448684,
+ "user_seconds": 4.756915,
+ "system_seconds": 0.199534,
+ "load_before": [
+ 2.97802734375,
+ 2.697265625,
+ 2.02001953125
+ ],
+ "load_after": [
+ 2.8994140625,
+ 2.685546875,
+ 2.01953125
+ ]
+ },
+ {
+ "block": 3,
+ "case": "precision-4",
+ "arm": "parsed",
+ "stem": "03-precision-4-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.782878962985706,
+ "max_rss_kib": 448712,
+ "user_seconds": 4.639088,
+ "system_seconds": 0.10690999999999999,
+ "load_before": [
+ 2.8994140625,
+ 2.685546875,
+ 2.01953125
+ ],
+ "load_after": [
+ 3.14794921875,
+ 2.74072265625,
+ 2.041015625
+ ]
+ },
+ {
+ "block": 3,
+ "case": "precision-4",
+ "arm": "lexical",
+ "stem": "03-precision-4-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.904607522999868,
+ "max_rss_kib": 448556,
+ "user_seconds": 4.744403,
+ "system_seconds": 0.130648,
+ "load_before": [
+ 3.14794921875,
+ 2.74072265625,
+ 2.041015625
+ ],
+ "load_after": [
+ 3.1357421875,
+ 2.7451171875,
+ 2.04638671875
+ ]
+ },
+ {
+ "block": 3,
+ "case": "precision-8",
+ "arm": "replayed",
+ "stem": "03-precision-8-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.545639279007446,
+ "max_rss_kib": 448624,
+ "user_seconds": 4.3151589999999995,
+ "system_seconds": 0.192306,
+ "load_before": [
+ 3.1357421875,
+ 2.7451171875,
+ 2.04638671875
+ ],
+ "load_after": [
+ 3.28515625,
+ 2.78271484375,
+ 2.0625
+ ]
+ },
+ {
+ "block": 3,
+ "case": "precision-8",
+ "arm": "restored",
+ "stem": "03-precision-8-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.9382309949724,
+ "max_rss_kib": 448588,
+ "user_seconds": 4.796612,
+ "system_seconds": 0.110818,
+ "load_before": [
+ 3.28515625,
+ 2.78271484375,
+ 2.0625
+ ],
+ "load_after": [
+ 3.26220703125,
+ 2.78662109375,
+ 2.06787109375
+ ]
+ },
+ {
+ "block": 3,
+ "case": "precision-8",
+ "arm": "parsed",
+ "stem": "03-precision-8-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.829555569973309,
+ "max_rss_kib": 448700,
+ "user_seconds": 4.6404689999999995,
+ "system_seconds": 0.16727899999999998,
+ "load_before": [
+ 3.26220703125,
+ 2.78662109375,
+ 2.06787109375
+ ],
+ "load_after": [
+ 3.16064453125,
+ 2.7734375,
+ 2.0673828125
+ ]
+ },
+ {
+ "block": 3,
+ "case": "precision-8",
+ "arm": "lexical",
+ "stem": "03-precision-8-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.876418781990651,
+ "max_rss_kib": 448692,
+ "user_seconds": 4.747487,
+ "system_seconds": 0.10373099999999999,
+ "load_before": [
+ 3.16064453125,
+ 2.7734375,
+ 2.0673828125
+ ],
+ "load_after": [
+ 3.22802734375,
+ 2.7939453125,
+ 2.078125
+ ]
+ },
+ {
+ "block": 3,
+ "case": "precision-12",
+ "arm": "replayed",
+ "stem": "03-precision-12-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.479979687021114,
+ "max_rss_kib": 448676,
+ "user_seconds": 4.302547,
+ "system_seconds": 0.154385,
+ "load_before": [
+ 3.22802734375,
+ 2.7939453125,
+ 2.078125
+ ],
+ "load_after": [
+ 3.22802734375,
+ 2.7939453125,
+ 2.078125
+ ]
+ },
+ {
+ "block": 3,
+ "case": "precision-12",
+ "arm": "restored",
+ "stem": "03-precision-12-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.977906747022644,
+ "max_rss_kib": 448736,
+ "user_seconds": 4.823492,
+ "system_seconds": 0.125824,
+ "load_before": [
+ 3.22802734375,
+ 2.7939453125,
+ 2.078125
+ ],
+ "load_after": [
+ 3.12939453125,
+ 2.78076171875,
+ 2.07763671875
+ ]
+ },
+ {
+ "block": 3,
+ "case": "precision-12",
+ "arm": "parsed",
+ "stem": "03-precision-12-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.773674438998569,
+ "max_rss_kib": 448736,
+ "user_seconds": 4.632123,
+ "system_seconds": 0.10683,
+ "load_before": [
+ 3.12939453125,
+ 2.78076171875,
+ 2.07763671875
+ ],
+ "load_after": [
+ 3.03857421875,
+ 2.767578125,
+ 2.0771484375
+ ]
+ },
+ {
+ "block": 3,
+ "case": "precision-12",
+ "arm": "lexical",
+ "stem": "03-precision-12-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.926959045988042,
+ "max_rss_kib": 448736,
+ "user_seconds": 4.766345,
+ "system_seconds": 0.12767,
+ "load_before": [
+ 3.03857421875,
+ 2.767578125,
+ 2.0771484375
+ ],
+ "load_after": [
+ 3.11572265625,
+ 2.7880859375,
+ 2.087890625
+ ]
+ },
+ {
+ "block": 3,
+ "case": "depth-0",
+ "arm": "replayed",
+ "stem": "03-depth-0-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.431802081991918,
+ "max_rss_kib": 448844,
+ "user_seconds": 4.30374,
+ "system_seconds": 0.097345,
+ "load_before": [
+ 3.11572265625,
+ 2.7880859375,
+ 2.087890625
+ ],
+ "load_after": [
+ 3.1064453125,
+ 2.7919921875,
+ 2.09326171875
+ ]
+ },
+ {
+ "block": 3,
+ "case": "depth-0",
+ "arm": "restored",
+ "stem": "03-depth-0-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.873788919998333,
+ "max_rss_kib": 448612,
+ "user_seconds": 4.752593,
+ "system_seconds": 0.099618,
+ "load_before": [
+ 3.1064453125,
+ 2.7919921875,
+ 2.09326171875
+ ],
+ "load_after": [
+ 3.017578125,
+ 2.77880859375,
+ 2.09228515625
+ ]
+ },
+ {
+ "block": 3,
+ "case": "depth-0",
+ "arm": "parsed",
+ "stem": "03-depth-0-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.756033520039637,
+ "max_rss_kib": 448532,
+ "user_seconds": 4.652119,
+ "system_seconds": 0.08648199999999999,
+ "load_before": [
+ 3.017578125,
+ 2.77880859375,
+ 2.09228515625
+ ],
+ "load_after": [
+ 3.01611328125,
+ 2.78271484375,
+ 2.09716796875
+ ]
+ },
+ {
+ "block": 3,
+ "case": "depth-0",
+ "arm": "lexical",
+ "stem": "03-depth-0-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.82447356794728,
+ "max_rss_kib": 448788,
+ "user_seconds": 4.699685,
+ "system_seconds": 0.10014999999999999,
+ "load_before": [
+ 3.01611328125,
+ 2.78271484375,
+ 2.09716796875
+ ],
+ "load_after": [
+ 2.9345703125,
+ 2.76953125,
+ 2.09619140625
+ ]
+ },
+ {
+ "block": 3,
+ "case": "depth-1",
+ "arm": "replayed",
+ "stem": "03-depth-1-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 5.033355849038344,
+ "max_rss_kib": 448524,
+ "user_seconds": 4.891882,
+ "system_seconds": 0.104753,
+ "load_before": [
+ 2.9345703125,
+ 2.76953125,
+ 2.09619140625
+ ],
+ "load_after": [
+ 3.02001953125,
+ 2.7900390625,
+ 2.1064453125
+ ]
+ },
+ {
+ "block": 3,
+ "case": "depth-1",
+ "arm": "restored",
+ "stem": "03-depth-1-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.6052326780045405,
+ "max_rss_kib": 448672,
+ "user_seconds": 4.460622,
+ "system_seconds": 0.110039,
+ "load_before": [
+ 3.02001953125,
+ 2.7900390625,
+ 2.1064453125
+ ],
+ "load_after": [
+ 3.01806640625,
+ 2.7939453125,
+ 2.111328125
+ ]
+ },
+ {
+ "block": 3,
+ "case": "depth-1",
+ "arm": "parsed",
+ "stem": "03-depth-1-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.4280957850278355,
+ "max_rss_kib": 448672,
+ "user_seconds": 4.306997,
+ "system_seconds": 0.097366,
+ "load_before": [
+ 3.01806640625,
+ 2.7939453125,
+ 2.111328125
+ ],
+ "load_after": [
+ 2.9365234375,
+ 2.78076171875,
+ 2.1103515625
+ ]
+ },
+ {
+ "block": 3,
+ "case": "depth-1",
+ "arm": "lexical",
+ "stem": "03-depth-1-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.487259645015001,
+ "max_rss_kib": 448656,
+ "user_seconds": 4.356187,
+ "system_seconds": 0.10341099999999999,
+ "load_before": [
+ 2.9365234375,
+ 2.78076171875,
+ 2.1103515625
+ ],
+ "load_after": [
+ 2.861328125,
+ 2.767578125,
+ 2.109375
+ ]
+ },
+ {
+ "block": 3,
+ "case": "depth-2",
+ "arm": "replayed",
+ "stem": "03-depth-2-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.57803709700238,
+ "max_rss_kib": 448720,
+ "user_seconds": 4.473345,
+ "system_seconds": 0.087784,
+ "load_before": [
+ 2.861328125,
+ 2.767578125,
+ 2.109375
+ ],
+ "load_after": [
+ 2.87255859375,
+ 2.771484375,
+ 2.1142578125
+ ]
+ },
+ {
+ "block": 3,
+ "case": "depth-2",
+ "arm": "restored",
+ "stem": "03-depth-2-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.800240400014445,
+ "max_rss_kib": 448712,
+ "user_seconds": 4.650622,
+ "system_seconds": 0.11989,
+ "load_before": [
+ 2.87255859375,
+ 2.771484375,
+ 2.1142578125
+ ],
+ "load_after": [
+ 2.8828125,
+ 2.775390625,
+ 2.119140625
+ ]
+ },
+ {
+ "block": 3,
+ "case": "depth-2",
+ "arm": "parsed",
+ "stem": "03-depth-2-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.50060572597431,
+ "max_rss_kib": 448808,
+ "user_seconds": 4.363175,
+ "system_seconds": 0.11576499999999999,
+ "load_before": [
+ 2.8828125,
+ 2.775390625,
+ 2.119140625
+ ],
+ "load_after": [
+ 2.97265625,
+ 2.7958984375,
+ 2.12939453125
+ ]
+ },
+ {
+ "block": 3,
+ "case": "depth-2",
+ "arm": "lexical",
+ "stem": "03-depth-2-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.439048850967083,
+ "max_rss_kib": 448608,
+ "user_seconds": 4.305383,
+ "system_seconds": 0.095388,
+ "load_before": [
+ 2.97265625,
+ 2.7958984375,
+ 2.12939453125
+ ],
+ "load_after": [
+ 3.05517578125,
+ 2.81591796875,
+ 2.1396484375
+ ]
+ },
+ {
+ "block": 3,
+ "case": "repeated-4",
+ "arm": "replayed",
+ "stem": "03-repeated-4-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.975443571980577,
+ "max_rss_kib": 448656,
+ "user_seconds": 4.801592,
+ "system_seconds": 0.134246,
+ "load_before": [
+ 3.05517578125,
+ 2.81591796875,
+ 2.1396484375
+ ],
+ "load_after": [
+ 3.130859375,
+ 2.8359375,
+ 2.14990234375
+ ]
+ },
+ {
+ "block": 3,
+ "case": "repeated-4",
+ "arm": "restored",
+ "stem": "03-repeated-4-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.648454217996914,
+ "max_rss_kib": 448696,
+ "user_seconds": 4.501211,
+ "system_seconds": 0.125696,
+ "load_before": [
+ 3.130859375,
+ 2.8359375,
+ 2.14990234375
+ ],
+ "load_after": [
+ 3.130859375,
+ 2.8359375,
+ 2.14990234375
+ ]
+ },
+ {
+ "block": 3,
+ "case": "repeated-4",
+ "arm": "parsed",
+ "stem": "03-repeated-4-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.551261341024656,
+ "max_rss_kib": 448612,
+ "user_seconds": 4.397671,
+ "system_seconds": 0.11491799999999999,
+ "load_before": [
+ 3.130859375,
+ 2.8359375,
+ 2.14990234375
+ ],
+ "load_after": [
+ 3.1201171875,
+ 2.8388671875,
+ 2.15478515625
+ ]
+ },
+ {
+ "block": 3,
+ "case": "repeated-4",
+ "arm": "lexical",
+ "stem": "03-repeated-4-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.650465440994594,
+ "max_rss_kib": 448528,
+ "user_seconds": 4.472383,
+ "system_seconds": 0.157158,
+ "load_before": [
+ 3.1201171875,
+ 2.8388671875,
+ 2.15478515625
+ ],
+ "load_after": [
+ 3.1103515625,
+ 2.841796875,
+ 2.15966796875
+ ]
+ },
+ {
+ "block": 3,
+ "case": "common-2",
+ "arm": "replayed",
+ "stem": "03-common-2-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.905640647979453,
+ "max_rss_kib": 448792,
+ "user_seconds": 4.777829,
+ "system_seconds": 0.08832799999999999,
+ "load_before": [
+ 3.1103515625,
+ 2.841796875,
+ 2.15966796875
+ ],
+ "load_after": [
+ 3.10107421875,
+ 2.8447265625,
+ 2.16455078125
+ ]
+ },
+ {
+ "block": 3,
+ "case": "common-2",
+ "arm": "restored",
+ "stem": "03-common-2-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.626511634036433,
+ "max_rss_kib": 448656,
+ "user_seconds": 4.485467,
+ "system_seconds": 0.10108199999999999,
+ "load_before": [
+ 3.10107421875,
+ 2.8447265625,
+ 2.16455078125
+ ],
+ "load_after": [
+ 3.0126953125,
+ 2.83056640625,
+ 2.16357421875
+ ]
+ },
+ {
+ "block": 3,
+ "case": "common-2",
+ "arm": "parsed",
+ "stem": "03-common-2-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.503204944950994,
+ "max_rss_kib": 448544,
+ "user_seconds": 4.376714,
+ "system_seconds": 0.090873,
+ "load_before": [
+ 3.0126953125,
+ 2.83056640625,
+ 2.16357421875
+ ],
+ "load_after": [
+ 2.93115234375,
+ 2.81640625,
+ 2.16259765625
+ ]
+ },
+ {
+ "block": 3,
+ "case": "common-2",
+ "arm": "lexical",
+ "stem": "03-common-2-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.636915843002498,
+ "max_rss_kib": 448536,
+ "user_seconds": 4.502712,
+ "system_seconds": 0.107543,
+ "load_before": [
+ 2.93115234375,
+ 2.81640625,
+ 2.16259765625
+ ],
+ "load_after": [
+ 2.8564453125,
+ 2.802734375,
+ 2.16162109375
+ ]
+ },
+ {
+ "block": 3,
+ "case": "repeated-roots-2",
+ "arm": "replayed",
+ "stem": "03-repeated-roots-2-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 5.161052618990652,
+ "max_rss_kib": 448588,
+ "user_seconds": 5.033918,
+ "system_seconds": 0.10905799999999999,
+ "load_before": [
+ 2.8564453125,
+ 2.802734375,
+ 2.16162109375
+ ],
+ "load_after": [
+ 2.9482421875,
+ 2.82275390625,
+ 2.171875
+ ]
+ },
+ {
+ "block": 3,
+ "case": "repeated-roots-2",
+ "arm": "restored",
+ "stem": "03-repeated-roots-2-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.7734228179906495,
+ "max_rss_kib": 448712,
+ "user_seconds": 4.651841,
+ "system_seconds": 0.103918,
+ "load_before": [
+ 2.9482421875,
+ 2.82275390625,
+ 2.171875
+ ],
+ "load_after": [
+ 2.8720703125,
+ 2.80908203125,
+ 2.1708984375
+ ]
+ },
+ {
+ "block": 3,
+ "case": "repeated-roots-2",
+ "arm": "parsed",
+ "stem": "03-repeated-roots-2-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.673674791993108,
+ "max_rss_kib": 448704,
+ "user_seconds": 4.536141,
+ "system_seconds": 0.104963,
+ "load_before": [
+ 2.8720703125,
+ 2.80908203125,
+ 2.1708984375
+ ],
+ "load_after": [
+ 2.8017578125,
+ 2.79541015625,
+ 2.169921875
+ ]
+ },
+ {
+ "block": 3,
+ "case": "repeated-roots-2",
+ "arm": "lexical",
+ "stem": "03-repeated-roots-2-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.799952506029513,
+ "max_rss_kib": 448732,
+ "user_seconds": 4.68033,
+ "system_seconds": 0.089501,
+ "load_before": [
+ 2.8017578125,
+ 2.79541015625,
+ 2.169921875
+ ],
+ "load_after": [
+ 2.7373046875,
+ 2.78173828125,
+ 2.1689453125
+ ]
+ },
+ {
+ "block": 4,
+ "case": "degree-2",
+ "arm": "lexical",
+ "stem": "04-degree-2-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.851429754984565,
+ "max_rss_kib": 448744,
+ "user_seconds": 4.727718,
+ "system_seconds": 0.088556,
+ "load_before": [
+ 2.7373046875,
+ 2.78173828125,
+ 2.1689453125
+ ],
+ "load_after": [
+ 2.7587890625,
+ 2.78564453125,
+ 2.173828125
+ ]
+ },
+ {
+ "block": 4,
+ "case": "degree-2",
+ "arm": "parsed",
+ "stem": "04-degree-2-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.757041352975648,
+ "max_rss_kib": 448716,
+ "user_seconds": 4.612623,
+ "system_seconds": 0.110069,
+ "load_before": [
+ 2.7587890625,
+ 2.78564453125,
+ 2.173828125
+ ],
+ "load_after": [
+ 2.9384765625,
+ 2.82275390625,
+ 2.189453125
+ ]
+ },
+ {
+ "block": 4,
+ "case": "degree-2",
+ "arm": "restored",
+ "stem": "04-degree-2-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.8846231490024365,
+ "max_rss_kib": 448776,
+ "user_seconds": 4.740465,
+ "system_seconds": 0.109428,
+ "load_before": [
+ 2.9384765625,
+ 2.82275390625,
+ 2.189453125
+ ],
+ "load_after": [
+ 2.86328125,
+ 2.80908203125,
+ 2.18798828125
+ ]
+ },
+ {
+ "block": 4,
+ "case": "degree-2",
+ "arm": "replayed",
+ "stem": "04-degree-2-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.431767951988149,
+ "max_rss_kib": 448712,
+ "user_seconds": 4.310974,
+ "system_seconds": 0.101073,
+ "load_before": [
+ 2.86328125,
+ 2.80908203125,
+ 2.18798828125
+ ],
+ "load_after": [
+ 2.87451171875,
+ 2.8125,
+ 2.1923828125
+ ]
+ },
+ {
+ "block": 4,
+ "case": "degree-3",
+ "arm": "lexical",
+ "stem": "04-degree-3-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 5.079669045982882,
+ "max_rss_kib": 448596,
+ "user_seconds": 4.941154,
+ "system_seconds": 0.105027,
+ "load_before": [
+ 2.87451171875,
+ 2.8125,
+ 2.1923828125
+ ],
+ "load_after": [
+ 2.884765625,
+ 2.81591796875,
+ 2.19677734375
+ ]
+ },
+ {
+ "block": 4,
+ "case": "degree-3",
+ "arm": "parsed",
+ "stem": "04-degree-3-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 5.081230882031377,
+ "max_rss_kib": 448748,
+ "user_seconds": 4.966018,
+ "system_seconds": 0.094386,
+ "load_before": [
+ 2.884765625,
+ 2.81591796875,
+ 2.19677734375
+ ],
+ "load_after": [
+ 2.8134765625,
+ 2.80224609375,
+ 2.1953125
+ ]
+ },
+ {
+ "block": 4,
+ "case": "degree-3",
+ "arm": "restored",
+ "stem": "04-degree-3-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.40471781702945,
+ "max_rss_kib": 448688,
+ "user_seconds": 4.274086,
+ "system_seconds": 0.108718,
+ "load_before": [
+ 2.8134765625,
+ 2.80224609375,
+ 2.1953125
+ ],
+ "load_after": [
+ 2.748046875,
+ 2.78857421875,
+ 2.19384765625
+ ]
+ },
+ {
+ "block": 4,
+ "case": "degree-3",
+ "arm": "replayed",
+ "stem": "04-degree-3-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.675910121994093,
+ "max_rss_kib": 448760,
+ "user_seconds": 4.55418,
+ "system_seconds": 0.097303,
+ "load_before": [
+ 2.748046875,
+ 2.78857421875,
+ 2.19384765625
+ ],
+ "load_after": [
+ 2.7685546875,
+ 2.79248046875,
+ 2.1982421875
+ ]
+ },
+ {
+ "block": 4,
+ "case": "degree-4",
+ "arm": "lexical",
+ "stem": "04-degree-4-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.39873306901427,
+ "max_rss_kib": 448728,
+ "user_seconds": 4.276119,
+ "system_seconds": 0.09748899999999999,
+ "load_before": [
+ 2.7685546875,
+ 2.79248046875,
+ 2.1982421875
+ ],
+ "load_after": [
+ 2.7685546875,
+ 2.79248046875,
+ 2.1982421875
+ ]
+ },
+ {
+ "block": 4,
+ "case": "degree-4",
+ "arm": "parsed",
+ "stem": "04-degree-4-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.424574256001506,
+ "max_rss_kib": 448664,
+ "user_seconds": 4.312134,
+ "system_seconds": 0.093444,
+ "load_before": [
+ 2.7685546875,
+ 2.79248046875,
+ 2.1982421875
+ ],
+ "load_after": [
+ 2.70654296875,
+ 2.779296875,
+ 2.19677734375
+ ]
+ },
+ {
+ "block": 4,
+ "case": "degree-4",
+ "arm": "restored",
+ "stem": "04-degree-4-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.525789526000153,
+ "max_rss_kib": 448648,
+ "user_seconds": 4.408816,
+ "system_seconds": 0.09835999999999999,
+ "load_before": [
+ 2.70654296875,
+ 2.779296875,
+ 2.19677734375
+ ],
+ "load_after": [
+ 2.73046875,
+ 2.783203125,
+ 2.201171875
+ ]
+ },
+ {
+ "block": 4,
+ "case": "degree-4",
+ "arm": "replayed",
+ "stem": "04-degree-4-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.852971647982486,
+ "max_rss_kib": 448704,
+ "user_seconds": 4.73181,
+ "system_seconds": 0.099851,
+ "load_before": [
+ 2.73046875,
+ 2.783203125,
+ 2.201171875
+ ],
+ "load_after": [
+ 2.671875,
+ 2.77001953125,
+ 2.19970703125
+ ]
+ },
+ {
+ "block": 4,
+ "case": "degree-5",
+ "arm": "lexical",
+ "stem": "04-degree-5-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.474225901009049,
+ "max_rss_kib": 448700,
+ "user_seconds": 4.320501,
+ "system_seconds": 0.119403,
+ "load_before": [
+ 2.671875,
+ 2.77001953125,
+ 2.19970703125
+ ],
+ "load_after": [
+ 2.61767578125,
+ 2.7568359375,
+ 2.1982421875
+ ]
+ },
+ {
+ "block": 4,
+ "case": "degree-5",
+ "arm": "parsed",
+ "stem": "04-degree-5-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.549915121984668,
+ "max_rss_kib": 448672,
+ "user_seconds": 4.423009,
+ "system_seconds": 0.095139,
+ "load_before": [
+ 2.61767578125,
+ 2.7568359375,
+ 2.1982421875
+ ],
+ "load_after": [
+ 2.6484375,
+ 2.76123046875,
+ 2.20263671875
+ ]
+ },
+ {
+ "block": 4,
+ "case": "degree-5",
+ "arm": "restored",
+ "stem": "04-degree-5-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.680135729024187,
+ "max_rss_kib": 448516,
+ "user_seconds": 4.531274,
+ "system_seconds": 0.110798,
+ "load_before": [
+ 2.6484375,
+ 2.76123046875,
+ 2.20263671875
+ ],
+ "load_after": [
+ 2.59619140625,
+ 2.74853515625,
+ 2.201171875
+ ]
+ },
+ {
+ "block": 4,
+ "case": "degree-5",
+ "arm": "replayed",
+ "stem": "04-degree-5-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 5.027134869946167,
+ "max_rss_kib": 448656,
+ "user_seconds": 4.891332,
+ "system_seconds": 0.107166,
+ "load_before": [
+ 2.59619140625,
+ 2.74853515625,
+ 2.201171875
+ ],
+ "load_after": [
+ 2.54833984375,
+ 2.73583984375,
+ 2.19970703125
+ ]
+ },
+ {
+ "block": 4,
+ "case": "atoms-1",
+ "arm": "lexical",
+ "stem": "04-atoms-1-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.8294282899587415,
+ "max_rss_kib": 448664,
+ "user_seconds": 4.694797,
+ "system_seconds": 0.118299,
+ "load_before": [
+ 2.54833984375,
+ 2.73583984375,
+ 2.19970703125
+ ],
+ "load_after": [
+ 2.7451171875,
+ 2.7734375,
+ 2.21484375
+ ]
+ },
+ {
+ "block": 4,
+ "case": "atoms-1",
+ "arm": "parsed",
+ "stem": "04-atoms-1-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.75294421298895,
+ "max_rss_kib": 448640,
+ "user_seconds": 4.607239,
+ "system_seconds": 0.108064,
+ "load_before": [
+ 2.7451171875,
+ 2.7734375,
+ 2.21484375
+ ],
+ "load_after": [
+ 2.765625,
+ 2.77734375,
+ 2.21923828125
+ ]
+ },
+ {
+ "block": 4,
+ "case": "atoms-1",
+ "arm": "restored",
+ "stem": "04-atoms-1-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 5.004086714005098,
+ "max_rss_kib": 448632,
+ "user_seconds": 4.868333,
+ "system_seconds": 0.09419899999999999,
+ "load_before": [
+ 2.765625,
+ 2.77734375,
+ 2.21923828125
+ ],
+ "load_after": [
+ 2.78466796875,
+ 2.78125,
+ 2.2236328125
+ ]
+ },
+ {
+ "block": 4,
+ "case": "atoms-1",
+ "arm": "replayed",
+ "stem": "04-atoms-1-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.4775388859561644,
+ "max_rss_kib": 448632,
+ "user_seconds": 4.349841,
+ "system_seconds": 0.094105,
+ "load_before": [
+ 2.78466796875,
+ 2.78125,
+ 2.2236328125
+ ],
+ "load_after": [
+ 2.80224609375,
+ 2.78515625,
+ 2.22802734375
+ ]
+ },
+ {
+ "block": 4,
+ "case": "atoms-2",
+ "arm": "lexical",
+ "stem": "04-atoms-2-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.854786394047551,
+ "max_rss_kib": 448832,
+ "user_seconds": 4.734426,
+ "system_seconds": 0.086282,
+ "load_before": [
+ 2.80224609375,
+ 2.78515625,
+ 2.22802734375
+ ],
+ "load_after": [
+ 2.8984375,
+ 2.8056640625,
+ 2.23779296875
+ ]
+ },
+ {
+ "block": 4,
+ "case": "atoms-2",
+ "arm": "parsed",
+ "stem": "04-atoms-2-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.750507794029545,
+ "max_rss_kib": 448648,
+ "user_seconds": 4.609583,
+ "system_seconds": 0.108134,
+ "load_before": [
+ 2.8984375,
+ 2.8056640625,
+ 2.23779296875
+ ],
+ "load_after": [
+ 2.826171875,
+ 2.7919921875,
+ 2.236328125
+ ]
+ },
+ {
+ "block": 4,
+ "case": "atoms-2",
+ "arm": "restored",
+ "stem": "04-atoms-2-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.879562403017189,
+ "max_rss_kib": 448816,
+ "user_seconds": 4.7637149999999995,
+ "system_seconds": 0.08802299999999999,
+ "load_before": [
+ 2.826171875,
+ 2.7919921875,
+ 2.236328125
+ ],
+ "load_after": [
+ 2.759765625,
+ 2.77880859375,
+ 2.23486328125
+ ]
+ },
+ {
+ "block": 4,
+ "case": "atoms-2",
+ "arm": "replayed",
+ "stem": "04-atoms-2-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.427375395956915,
+ "max_rss_kib": 448696,
+ "user_seconds": 4.317645,
+ "system_seconds": 0.093248,
+ "load_before": [
+ 2.759765625,
+ 2.77880859375,
+ 2.23486328125
+ ],
+ "load_after": [
+ 2.69873046875,
+ 2.765625,
+ 2.2333984375
+ ]
+ },
+ {
+ "block": 4,
+ "case": "atoms-3",
+ "arm": "lexical",
+ "stem": "04-atoms-3-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.558734129008371,
+ "max_rss_kib": 448640,
+ "user_seconds": 4.418959,
+ "system_seconds": 0.11606599999999999,
+ "load_before": [
+ 2.69873046875,
+ 2.765625,
+ 2.2333984375
+ ],
+ "load_after": [
+ 2.69873046875,
+ 2.765625,
+ 2.2333984375
+ ]
+ },
+ {
+ "block": 4,
+ "case": "atoms-3",
+ "arm": "parsed",
+ "stem": "04-atoms-3-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.4772757399478,
+ "max_rss_kib": 448732,
+ "user_seconds": 4.341921,
+ "system_seconds": 0.10044399999999999,
+ "load_before": [
+ 2.69873046875,
+ 2.765625,
+ 2.2333984375
+ ],
+ "load_after": [
+ 2.642578125,
+ 2.75244140625,
+ 2.23193359375
+ ]
+ },
+ {
+ "block": 4,
+ "case": "atoms-3",
+ "arm": "restored",
+ "stem": "04-atoms-3-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.555411766981706,
+ "max_rss_kib": 448576,
+ "user_seconds": 4.415066,
+ "system_seconds": 0.10613099999999999,
+ "load_before": [
+ 2.642578125,
+ 2.75244140625,
+ 2.23193359375
+ ],
+ "load_after": [
+ 2.83154296875,
+ 2.7900390625,
+ 2.2470703125
+ ]
+ },
+ {
+ "block": 4,
+ "case": "atoms-3",
+ "arm": "replayed",
+ "stem": "04-atoms-3-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.849921017012093,
+ "max_rss_kib": 448720,
+ "user_seconds": 4.723571,
+ "system_seconds": 0.087772,
+ "load_before": [
+ 2.83154296875,
+ 2.7900390625,
+ 2.2470703125
+ ],
+ "load_after": [
+ 2.84521484375,
+ 2.7939453125,
+ 2.25146484375
+ ]
+ },
+ {
+ "block": 4,
+ "case": "atoms-4",
+ "arm": "lexical",
+ "stem": "04-atoms-4-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.88044075894868,
+ "max_rss_kib": 448528,
+ "user_seconds": 4.757182,
+ "system_seconds": 0.098064,
+ "load_before": [
+ 2.84521484375,
+ 2.7939453125,
+ 2.25146484375
+ ],
+ "load_after": [
+ 2.85791015625,
+ 2.7978515625,
+ 2.255859375
+ ]
+ },
+ {
+ "block": 4,
+ "case": "atoms-4",
+ "arm": "parsed",
+ "stem": "04-atoms-4-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.793631498992909,
+ "max_rss_kib": 448848,
+ "user_seconds": 4.643537,
+ "system_seconds": 0.115782,
+ "load_before": [
+ 2.85791015625,
+ 2.7978515625,
+ 2.255859375
+ ],
+ "load_after": [
+ 2.7890625,
+ 2.7841796875,
+ 2.25439453125
+ ]
+ },
+ {
+ "block": 4,
+ "case": "atoms-4",
+ "arm": "restored",
+ "stem": "04-atoms-4-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.867634430993348,
+ "max_rss_kib": 448732,
+ "user_seconds": 4.741358,
+ "system_seconds": 0.093487,
+ "load_before": [
+ 2.7890625,
+ 2.7841796875,
+ 2.25439453125
+ ],
+ "load_after": [
+ 2.7255859375,
+ 2.77099609375,
+ 2.2529296875
+ ]
+ },
+ {
+ "block": 4,
+ "case": "atoms-4",
+ "arm": "replayed",
+ "stem": "04-atoms-4-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.425564015982673,
+ "max_rss_kib": 448592,
+ "user_seconds": 4.294157,
+ "system_seconds": 0.10403699999999999,
+ "load_before": [
+ 2.7255859375,
+ 2.77099609375,
+ 2.2529296875
+ ],
+ "load_after": [
+ 2.66748046875,
+ 2.7578125,
+ 2.25146484375
+ ]
+ },
+ {
+ "block": 4,
+ "case": "bits-4",
+ "arm": "lexical",
+ "stem": "04-bits-4-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.800327714008745,
+ "max_rss_kib": 448604,
+ "user_seconds": 4.685189,
+ "system_seconds": 0.08628,
+ "load_before": [
+ 2.66748046875,
+ 2.7578125,
+ 2.25146484375
+ ],
+ "load_after": [
+ 2.6943359375,
+ 2.76220703125,
+ 2.255859375
+ ]
+ },
+ {
+ "block": 4,
+ "case": "bits-4",
+ "arm": "parsed",
+ "stem": "04-bits-4-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.654231039981823,
+ "max_rss_kib": 448664,
+ "user_seconds": 4.533925,
+ "system_seconds": 0.101487,
+ "load_before": [
+ 2.6943359375,
+ 2.76220703125,
+ 2.255859375
+ ],
+ "load_after": [
+ 2.55859375,
+ 2.73291015625,
+ 2.2490234375
+ ]
+ },
+ {
+ "block": 4,
+ "case": "bits-4",
+ "arm": "restored",
+ "stem": "04-bits-4-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.981669501983561,
+ "max_rss_kib": 448736,
+ "user_seconds": 4.669482,
+ "system_seconds": 0.280999,
+ "load_before": [
+ 2.55859375,
+ 2.73291015625,
+ 2.2490234375
+ ],
+ "load_after": [
+ 2.513671875,
+ 2.720703125,
+ 2.24755859375
+ ]
+ },
+ {
+ "block": 4,
+ "case": "bits-4",
+ "arm": "replayed",
+ "stem": "04-bits-4-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.781784274033271,
+ "max_rss_kib": 448708,
+ "user_seconds": 4.6436779999999995,
+ "system_seconds": 0.104294,
+ "load_before": [
+ 2.513671875,
+ 2.720703125,
+ 2.24755859375
+ ],
+ "load_after": [
+ 2.39208984375,
+ 2.69189453125,
+ 2.24072265625
+ ]
+ },
+ {
+ "block": 4,
+ "case": "bits-16",
+ "arm": "lexical",
+ "stem": "04-bits-16-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.8304552139597945,
+ "max_rss_kib": 448744,
+ "user_seconds": 4.704987,
+ "system_seconds": 0.103019,
+ "load_before": [
+ 2.39208984375,
+ 2.69189453125,
+ 2.24072265625
+ ],
+ "load_after": [
+ 2.68115234375,
+ 2.7470703125,
+ 2.26123046875
+ ]
+ },
+ {
+ "block": 4,
+ "case": "bits-16",
+ "arm": "parsed",
+ "stem": "04-bits-16-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.758728696964681,
+ "max_rss_kib": 448680,
+ "user_seconds": 4.639398,
+ "system_seconds": 0.092649,
+ "load_before": [
+ 2.68115234375,
+ 2.7470703125,
+ 2.26123046875
+ ],
+ "load_after": [
+ 2.70703125,
+ 2.75146484375,
+ 2.265625
+ ]
+ },
+ {
+ "block": 4,
+ "case": "bits-16",
+ "arm": "restored",
+ "stem": "04-bits-16-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.886561906023417,
+ "max_rss_kib": 448616,
+ "user_seconds": 4.748298,
+ "system_seconds": 0.101003,
+ "load_before": [
+ 2.70703125,
+ 2.75146484375,
+ 2.265625
+ ],
+ "load_after": [
+ 2.650390625,
+ 2.73876953125,
+ 2.26416015625
+ ]
+ },
+ {
+ "block": 4,
+ "case": "bits-16",
+ "arm": "replayed",
+ "stem": "04-bits-16-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.421344758011401,
+ "max_rss_kib": 448616,
+ "user_seconds": 4.297226,
+ "system_seconds": 0.09867999999999999,
+ "load_before": [
+ 2.650390625,
+ 2.73876953125,
+ 2.26416015625
+ ],
+ "load_after": [
+ 2.59814453125,
+ 2.72607421875,
+ 2.2626953125
+ ]
+ },
+ {
+ "block": 4,
+ "case": "bits-64",
+ "arm": "lexical",
+ "stem": "04-bits-64-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 5.0283378480235115,
+ "max_rss_kib": 448784,
+ "user_seconds": 4.885631,
+ "system_seconds": 0.103975,
+ "load_before": [
+ 2.59814453125,
+ 2.72607421875,
+ 2.2626953125
+ ],
+ "load_after": [
+ 2.63037109375,
+ 2.73095703125,
+ 2.26708984375
+ ]
+ },
+ {
+ "block": 4,
+ "case": "bits-64",
+ "arm": "parsed",
+ "stem": "04-bits-64-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.599359955987893,
+ "max_rss_kib": 448660,
+ "user_seconds": 4.464035,
+ "system_seconds": 0.10925699999999999,
+ "load_before": [
+ 2.63037109375,
+ 2.73095703125,
+ 2.26708984375
+ ],
+ "load_after": [
+ 2.49951171875,
+ 2.7021484375,
+ 2.26025390625
+ ]
+ },
+ {
+ "block": 4,
+ "case": "bits-64",
+ "arm": "restored",
+ "stem": "04-bits-64-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.676059445017017,
+ "max_rss_kib": 448672,
+ "user_seconds": 4.54064,
+ "system_seconds": 0.102976,
+ "load_before": [
+ 2.49951171875,
+ 2.7021484375,
+ 2.26025390625
+ ],
+ "load_after": [
+ 2.37939453125,
+ 2.673828125,
+ 2.25341796875
+ ]
+ },
+ {
+ "block": 4,
+ "case": "bits-64",
+ "arm": "replayed",
+ "stem": "04-bits-64-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.937128237041179,
+ "max_rss_kib": 448732,
+ "user_seconds": 4.79346,
+ "system_seconds": 0.11045999999999999,
+ "load_before": [
+ 2.37939453125,
+ 2.673828125,
+ 2.25341796875
+ ],
+ "load_after": [
+ 2.2685546875,
+ 2.64599609375,
+ 2.24658203125
+ ]
+ },
+ {
+ "block": 4,
+ "case": "bits-128",
+ "arm": "lexical",
+ "stem": "04-bits-128-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.400357036036439,
+ "max_rss_kib": 448784,
+ "user_seconds": 4.274391,
+ "system_seconds": 0.088712,
+ "load_before": [
+ 2.2685546875,
+ 2.64599609375,
+ 2.24658203125
+ ],
+ "load_after": [
+ 2.2685546875,
+ 2.64599609375,
+ 2.24658203125
+ ]
+ },
+ {
+ "block": 4,
+ "case": "bits-128",
+ "arm": "parsed",
+ "stem": "04-bits-128-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.501529683009721,
+ "max_rss_kib": 448624,
+ "user_seconds": 4.373834,
+ "system_seconds": 0.098951,
+ "load_before": [
+ 2.2685546875,
+ 2.64599609375,
+ 2.24658203125
+ ],
+ "load_after": [
+ 2.24658203125,
+ 2.63525390625,
+ 2.2451171875
+ ]
+ },
+ {
+ "block": 4,
+ "case": "bits-128",
+ "arm": "restored",
+ "stem": "04-bits-128-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.524695586005691,
+ "max_rss_kib": 448668,
+ "user_seconds": 4.394952,
+ "system_seconds": 0.109216,
+ "load_before": [
+ 2.24658203125,
+ 2.63525390625,
+ 2.2451171875
+ ],
+ "load_after": [
+ 2.146484375,
+ 2.60791015625,
+ 2.23828125
+ ]
+ },
+ {
+ "block": 4,
+ "case": "bits-128",
+ "arm": "replayed",
+ "stem": "04-bits-128-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.6574032490025274,
+ "max_rss_kib": 448640,
+ "user_seconds": 4.55146,
+ "system_seconds": 0.088199,
+ "load_before": [
+ 2.146484375,
+ 2.60791015625,
+ 2.23828125
+ ],
+ "load_after": [
+ 2.13427734375,
+ 2.59765625,
+ 2.23681640625
+ ]
+ },
+ {
+ "block": 4,
+ "case": "precision-0",
+ "arm": "lexical",
+ "stem": "04-precision-0-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.852213867998216,
+ "max_rss_kib": 448744,
+ "user_seconds": 4.725388,
+ "system_seconds": 0.09335399999999999,
+ "load_before": [
+ 2.13427734375,
+ 2.59765625,
+ 2.23681640625
+ ],
+ "load_after": [
+ 2.04296875,
+ 2.57080078125,
+ 2.22998046875
+ ]
+ },
+ {
+ "block": 4,
+ "case": "precision-0",
+ "arm": "parsed",
+ "stem": "04-precision-0-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 5.0908974460326135,
+ "max_rss_kib": 448696,
+ "user_seconds": 4.953114,
+ "system_seconds": 0.104351,
+ "load_before": [
+ 2.04296875,
+ 2.57080078125,
+ 2.22998046875
+ ],
+ "load_after": [
+ 2.19970703125,
+ 2.5947265625,
+ 2.23974609375
+ ]
+ },
+ {
+ "block": 4,
+ "case": "precision-0",
+ "arm": "restored",
+ "stem": "04-precision-0-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.888005541986786,
+ "max_rss_kib": 448700,
+ "user_seconds": 4.733049,
+ "system_seconds": 0.122806,
+ "load_before": [
+ 2.19970703125,
+ 2.5947265625,
+ 2.23974609375
+ ],
+ "load_after": [
+ 2.103515625,
+ 2.56787109375,
+ 2.23291015625
+ ]
+ },
+ {
+ "block": 4,
+ "case": "precision-0",
+ "arm": "replayed",
+ "stem": "04-precision-0-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.42698151699733,
+ "max_rss_kib": 448592,
+ "user_seconds": 4.300739,
+ "system_seconds": 0.099117,
+ "load_before": [
+ 2.103515625,
+ 2.56787109375,
+ 2.23291015625
+ ],
+ "load_after": [
+ 2.01513671875,
+ 2.54150390625,
+ 2.22607421875
+ ]
+ },
+ {
+ "block": 4,
+ "case": "precision-4",
+ "arm": "lexical",
+ "stem": "04-precision-4-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.857946806005202,
+ "max_rss_kib": 448656,
+ "user_seconds": 4.724477,
+ "system_seconds": 0.107275,
+ "load_before": [
+ 2.01513671875,
+ 2.54150390625,
+ 2.22607421875
+ ],
+ "load_after": [
+ 2.09423828125,
+ 2.54931640625,
+ 2.23046875
+ ]
+ },
+ {
+ "block": 4,
+ "case": "precision-4",
+ "arm": "parsed",
+ "stem": "04-precision-4-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.779511264001485,
+ "max_rss_kib": 448736,
+ "user_seconds": 4.646614,
+ "system_seconds": 0.091463,
+ "load_before": [
+ 2.09423828125,
+ 2.54931640625,
+ 2.23046875
+ ],
+ "load_after": [
+ 2.00634765625,
+ 2.5234375,
+ 2.2236328125
+ ]
+ },
+ {
+ "block": 4,
+ "case": "precision-4",
+ "arm": "restored",
+ "stem": "04-precision-4-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.882321309007239,
+ "max_rss_kib": 448676,
+ "user_seconds": 4.755069,
+ "system_seconds": 0.10180299999999999,
+ "load_before": [
+ 2.00634765625,
+ 2.5234375,
+ 2.2236328125
+ ],
+ "load_after": [
+ 1.92529296875,
+ 2.498046875,
+ 2.216796875
+ ]
+ },
+ {
+ "block": 4,
+ "case": "precision-4",
+ "arm": "replayed",
+ "stem": "04-precision-4-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.455128271016292,
+ "max_rss_kib": 448728,
+ "user_seconds": 4.324979,
+ "system_seconds": 0.094484,
+ "load_before": [
+ 1.92529296875,
+ 2.498046875,
+ 2.216796875
+ ],
+ "load_after": [
+ 2.01171875,
+ 2.5068359375,
+ 2.22119140625
+ ]
+ },
+ {
+ "block": 4,
+ "case": "precision-8",
+ "arm": "lexical",
+ "stem": "04-precision-8-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.88305407599546,
+ "max_rss_kib": 448508,
+ "user_seconds": 4.740784,
+ "system_seconds": 0.100975,
+ "load_before": [
+ 2.01171875,
+ 2.5068359375,
+ 2.22119140625
+ ],
+ "load_after": [
+ 1.9306640625,
+ 2.4814453125,
+ 2.21435546875
+ ]
+ },
+ {
+ "block": 4,
+ "case": "precision-8",
+ "arm": "parsed",
+ "stem": "04-precision-8-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.775360344967339,
+ "max_rss_kib": 448464,
+ "user_seconds": 4.6341719999999995,
+ "system_seconds": 0.10386,
+ "load_before": [
+ 1.9306640625,
+ 2.4814453125,
+ 2.21435546875
+ ],
+ "load_after": [
+ 1.9365234375,
+ 2.47314453125,
+ 2.212890625
+ ]
+ },
+ {
+ "block": 4,
+ "case": "precision-8",
+ "arm": "restored",
+ "stem": "04-precision-8-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.901639571005944,
+ "max_rss_kib": 448760,
+ "user_seconds": 4.76998,
+ "system_seconds": 0.104142,
+ "load_before": [
+ 1.9365234375,
+ 2.47314453125,
+ 2.212890625
+ ],
+ "load_after": [
+ 1.861328125,
+ 2.4482421875,
+ 2.2060546875
+ ]
+ },
+ {
+ "block": 4,
+ "case": "precision-8",
+ "arm": "replayed",
+ "stem": "04-precision-8-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.456035708019044,
+ "max_rss_kib": 448720,
+ "user_seconds": 4.327457,
+ "system_seconds": 0.091095,
+ "load_before": [
+ 1.861328125,
+ 2.4482421875,
+ 2.2060546875
+ ],
+ "load_after": [
+ 1.7919921875,
+ 2.423828125,
+ 2.19921875
+ ]
+ },
+ {
+ "block": 4,
+ "case": "precision-12",
+ "arm": "lexical",
+ "stem": "04-precision-12-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.853737992001697,
+ "max_rss_kib": 448580,
+ "user_seconds": 4.729505,
+ "system_seconds": 0.103073,
+ "load_before": [
+ 1.7919921875,
+ 2.423828125,
+ 2.19921875
+ ],
+ "load_after": [
+ 1.728515625,
+ 2.39990234375,
+ 2.1923828125
+ ]
+ },
+ {
+ "block": 4,
+ "case": "precision-12",
+ "arm": "parsed",
+ "stem": "04-precision-12-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.795123676012736,
+ "max_rss_kib": 448716,
+ "user_seconds": 4.649332,
+ "system_seconds": 0.104292,
+ "load_before": [
+ 1.728515625,
+ 2.39990234375,
+ 2.1923828125
+ ],
+ "load_after": [
+ 1.669921875,
+ 2.37646484375,
+ 2.185546875
+ ]
+ },
+ {
+ "block": 4,
+ "case": "precision-12",
+ "arm": "restored",
+ "stem": "04-precision-12-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.906236104958225,
+ "max_rss_kib": 448720,
+ "user_seconds": 4.774425,
+ "system_seconds": 0.10134,
+ "load_before": [
+ 1.669921875,
+ 2.37646484375,
+ 2.185546875
+ ],
+ "load_after": [
+ 1.669921875,
+ 2.37646484375,
+ 2.185546875
+ ]
+ },
+ {
+ "block": 4,
+ "case": "precision-12",
+ "arm": "replayed",
+ "stem": "04-precision-12-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.447829106997233,
+ "max_rss_kib": 448728,
+ "user_seconds": 4.309546,
+ "system_seconds": 0.10639,
+ "load_before": [
+ 1.669921875,
+ 2.37646484375,
+ 2.185546875
+ ],
+ "load_after": [
+ 1.69677734375,
+ 2.3701171875,
+ 2.18408203125
+ ]
+ },
+ {
+ "block": 4,
+ "case": "depth-0",
+ "arm": "lexical",
+ "stem": "04-depth-0-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.849250864004716,
+ "max_rss_kib": 448568,
+ "user_seconds": 4.732037,
+ "system_seconds": 0.089483,
+ "load_before": [
+ 1.69677734375,
+ 2.3701171875,
+ 2.18408203125
+ ],
+ "load_after": [
+ 1.72119140625,
+ 2.36376953125,
+ 2.1826171875
+ ]
+ },
+ {
+ "block": 4,
+ "case": "depth-0",
+ "arm": "parsed",
+ "stem": "04-depth-0-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.754824724979699,
+ "max_rss_kib": 448792,
+ "user_seconds": 4.622961,
+ "system_seconds": 0.094056,
+ "load_before": [
+ 1.72119140625,
+ 2.36376953125,
+ 2.1826171875
+ ],
+ "load_after": [
+ 1.74365234375,
+ 2.357421875,
+ 2.18115234375
+ ]
+ },
+ {
+ "block": 4,
+ "case": "depth-0",
+ "arm": "restored",
+ "stem": "04-depth-0-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.901183898968156,
+ "max_rss_kib": 448560,
+ "user_seconds": 4.756234,
+ "system_seconds": 0.114698,
+ "load_before": [
+ 1.74365234375,
+ 2.357421875,
+ 2.18115234375
+ ],
+ "load_after": [
+ 1.68408203125,
+ 2.33447265625,
+ 2.1748046875
+ ]
+ },
+ {
+ "block": 4,
+ "case": "depth-0",
+ "arm": "replayed",
+ "stem": "04-depth-0-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.426731854036916,
+ "max_rss_kib": 448720,
+ "user_seconds": 4.300588,
+ "system_seconds": 0.096163,
+ "load_before": [
+ 1.68408203125,
+ 2.33447265625,
+ 2.1748046875
+ ],
+ "load_after": [
+ 1.70947265625,
+ 2.32861328125,
+ 2.173828125
+ ]
+ },
+ {
+ "block": 4,
+ "case": "depth-1",
+ "arm": "lexical",
+ "stem": "04-depth-1-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.473492101999,
+ "max_rss_kib": 448556,
+ "user_seconds": 4.353992,
+ "system_seconds": 0.08784399999999999,
+ "load_before": [
+ 1.70947265625,
+ 2.32861328125,
+ 2.173828125
+ ],
+ "load_after": [
+ 1.65234375,
+ 2.30615234375,
+ 2.16748046875
+ ]
+ },
+ {
+ "block": 4,
+ "case": "depth-1",
+ "arm": "parsed",
+ "stem": "04-depth-1-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.425330296973698,
+ "max_rss_kib": 448512,
+ "user_seconds": 4.318437,
+ "system_seconds": 0.078554,
+ "load_before": [
+ 1.65234375,
+ 2.30615234375,
+ 2.16748046875
+ ],
+ "load_after": [
+ 1.60009765625,
+ 2.2841796875,
+ 2.1611328125
+ ]
+ },
+ {
+ "block": 4,
+ "case": "depth-1",
+ "arm": "restored",
+ "stem": "04-depth-1-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.59998324199114,
+ "max_rss_kib": 448728,
+ "user_seconds": 4.441587,
+ "system_seconds": 0.123137,
+ "load_before": [
+ 1.60009765625,
+ 2.2841796875,
+ 2.1611328125
+ ],
+ "load_after": [
+ 1.5517578125,
+ 2.2626953125,
+ 2.15478515625
+ ]
+ },
+ {
+ "block": 4,
+ "case": "depth-1",
+ "arm": "replayed",
+ "stem": "04-depth-1-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 5.06129249202786,
+ "max_rss_kib": 448660,
+ "user_seconds": 4.894646,
+ "system_seconds": 0.127432,
+ "load_before": [
+ 1.5517578125,
+ 2.2626953125,
+ 2.15478515625
+ ],
+ "load_after": [
+ 1.50732421875,
+ 2.24169921875,
+ 2.1484375
+ ]
+ },
+ {
+ "block": 4,
+ "case": "depth-2",
+ "arm": "lexical",
+ "stem": "04-depth-2-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.457970811985433,
+ "max_rss_kib": 448568,
+ "user_seconds": 4.303252,
+ "system_seconds": 0.118404,
+ "load_before": [
+ 1.50732421875,
+ 2.24169921875,
+ 2.1484375
+ ],
+ "load_after": [
+ 1.46630859375,
+ 2.220703125,
+ 2.14208984375
+ ]
+ },
+ {
+ "block": 4,
+ "case": "depth-2",
+ "arm": "parsed",
+ "stem": "04-depth-2-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.499640737019945,
+ "max_rss_kib": 448584,
+ "user_seconds": 4.36966,
+ "system_seconds": 0.10407999999999999,
+ "load_before": [
+ 1.46630859375,
+ 2.220703125,
+ 2.14208984375
+ ],
+ "load_after": [
+ 1.4287109375,
+ 2.2001953125,
+ 2.1357421875
+ ]
+ },
+ {
+ "block": 4,
+ "case": "depth-2",
+ "arm": "restored",
+ "stem": "04-depth-2-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.806262489000801,
+ "max_rss_kib": 448588,
+ "user_seconds": 4.674951,
+ "system_seconds": 0.106697,
+ "load_before": [
+ 1.4287109375,
+ 2.2001953125,
+ 2.1357421875
+ ],
+ "load_after": [
+ 1.5546875,
+ 2.2138671875,
+ 2.140625
+ ]
+ },
+ {
+ "block": 4,
+ "case": "depth-2",
+ "arm": "replayed",
+ "stem": "04-depth-2-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.598243165994063,
+ "max_rss_kib": 448600,
+ "user_seconds": 4.473424,
+ "system_seconds": 0.09842899999999999,
+ "load_before": [
+ 1.5546875,
+ 2.2138671875,
+ 2.140625
+ ],
+ "load_after": [
+ 1.8310546875,
+ 2.26025390625,
+ 2.15625
+ ]
+ },
+ {
+ "block": 4,
+ "case": "repeated-4",
+ "arm": "lexical",
+ "stem": "04-repeated-4-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.597611949953716,
+ "max_rss_kib": 448720,
+ "user_seconds": 4.472176,
+ "system_seconds": 0.093689,
+ "load_before": [
+ 1.8310546875,
+ 2.26025390625,
+ 2.15625
+ ],
+ "load_after": [
+ 1.8310546875,
+ 2.26025390625,
+ 2.15625
+ ]
+ },
+ {
+ "block": 4,
+ "case": "repeated-4",
+ "arm": "parsed",
+ "stem": "04-repeated-4-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.534655709983781,
+ "max_rss_kib": 448700,
+ "user_seconds": 4.395152,
+ "system_seconds": 0.104901,
+ "load_before": [
+ 1.8310546875,
+ 2.26025390625,
+ 2.15625
+ ],
+ "load_after": [
+ 1.76416015625,
+ 2.2392578125,
+ 2.14990234375
+ ]
+ },
+ {
+ "block": 4,
+ "case": "repeated-4",
+ "arm": "restored",
+ "stem": "04-repeated-4-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.652522387972567,
+ "max_rss_kib": 448580,
+ "user_seconds": 4.527103,
+ "system_seconds": 0.090306,
+ "load_before": [
+ 1.76416015625,
+ 2.2392578125,
+ 2.14990234375
+ ],
+ "load_after": [
+ 1.70263671875,
+ 2.21826171875,
+ 2.1435546875
+ ]
+ },
+ {
+ "block": 4,
+ "case": "repeated-4",
+ "arm": "replayed",
+ "stem": "04-repeated-4-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 5.05203275202075,
+ "max_rss_kib": 448676,
+ "user_seconds": 4.855304,
+ "system_seconds": 0.175476,
+ "load_before": [
+ 1.70263671875,
+ 2.21826171875,
+ 2.1435546875
+ ],
+ "load_after": [
+ 1.64599609375,
+ 2.19775390625,
+ 2.13720703125
+ ]
+ },
+ {
+ "block": 4,
+ "case": "common-2",
+ "arm": "lexical",
+ "stem": "04-common-2-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.757318607007619,
+ "max_rss_kib": 448648,
+ "user_seconds": 4.476586,
+ "system_seconds": 0.24347,
+ "load_before": [
+ 1.64599609375,
+ 2.19775390625,
+ 2.13720703125
+ ],
+ "load_after": [
+ 1.7548828125,
+ 2.21142578125,
+ 2.14208984375
+ ]
+ },
+ {
+ "block": 4,
+ "case": "common-2",
+ "arm": "parsed",
+ "stem": "04-common-2-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.484758553968277,
+ "max_rss_kib": 448584,
+ "user_seconds": 4.342133,
+ "system_seconds": 0.114336,
+ "load_before": [
+ 1.7548828125,
+ 2.21142578125,
+ 2.14208984375
+ ],
+ "load_after": [
+ 1.77490234375,
+ 2.20751953125,
+ 2.14111328125
+ ]
+ },
+ {
+ "block": 4,
+ "case": "common-2",
+ "arm": "restored",
+ "stem": "04-common-2-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.629380283004139,
+ "max_rss_kib": 448692,
+ "user_seconds": 4.485235,
+ "system_seconds": 0.111773,
+ "load_before": [
+ 1.77490234375,
+ 2.20751953125,
+ 2.14111328125
+ ],
+ "load_after": [
+ 1.873046875,
+ 2.220703125,
+ 2.14599609375
+ ]
+ },
+ {
+ "block": 4,
+ "case": "common-2",
+ "arm": "replayed",
+ "stem": "04-common-2-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.899425410025287,
+ "max_rss_kib": 448708,
+ "user_seconds": 4.768414,
+ "system_seconds": 0.09242199999999999,
+ "load_before": [
+ 1.873046875,
+ 2.220703125,
+ 2.14599609375
+ ],
+ "load_after": [
+ 1.88330078125,
+ 2.216796875,
+ 2.14501953125
+ ]
+ },
+ {
+ "block": 4,
+ "case": "repeated-roots-2",
+ "arm": "lexical",
+ "stem": "04-repeated-roots-2-lexical",
+ "exit_code": 0,
+ "elapsed_seconds": 4.773936765966937,
+ "max_rss_kib": 448528,
+ "user_seconds": 4.657126,
+ "system_seconds": 0.099475,
+ "load_before": [
+ 1.88330078125,
+ 2.216796875,
+ 2.14501953125
+ ],
+ "load_after": [
+ 1.97314453125,
+ 2.22998046875,
+ 2.14990234375
+ ]
+ },
+ {
+ "block": 4,
+ "case": "repeated-roots-2",
+ "arm": "parsed",
+ "stem": "04-repeated-roots-2-parsed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.668310628971085,
+ "max_rss_kib": 448576,
+ "user_seconds": 4.546915,
+ "system_seconds": 0.09705899999999999,
+ "load_before": [
+ 1.97314453125,
+ 2.22998046875,
+ 2.14990234375
+ ],
+ "load_after": [
+ 1.89501953125,
+ 2.20947265625,
+ 2.1435546875
+ ]
+ },
+ {
+ "block": 4,
+ "case": "repeated-roots-2",
+ "arm": "restored",
+ "stem": "04-repeated-roots-2-restored",
+ "exit_code": 0,
+ "elapsed_seconds": 4.779908197000623,
+ "max_rss_kib": 448744,
+ "user_seconds": 4.661039,
+ "system_seconds": 0.092542,
+ "load_before": [
+ 1.89501953125,
+ 2.20947265625,
+ 2.1435546875
+ ],
+ "load_after": [
+ 1.8232421875,
+ 2.18896484375,
+ 2.13720703125
+ ]
+ },
+ {
+ "block": 4,
+ "case": "repeated-roots-2",
+ "arm": "replayed",
+ "stem": "04-repeated-roots-2-replayed",
+ "exit_code": 0,
+ "elapsed_seconds": 4.77545753098093,
+ "max_rss_kib": 448712,
+ "user_seconds": 4.644152,
+ "system_seconds": 0.099591,
+ "load_before": [
+ 1.8232421875,
+ 2.18896484375,
+ 2.13720703125
+ ],
+ "load_after": [
+ 1.83740234375,
+ 2.185546875,
+ 2.13623046875
+ ]
+ }
+ ],
+ "resource_scope": "wait4 ru_maxrss LinuxKiB covers whole CLI and descendants; exporter peak_rss_kb covers benchmark worker; neither exclusive operation memory",
+ "status": "complete",
+ "load_after": [
+ 1.83740234375,
+ 2.185546875,
+ 2.13623046875
+ ]
+}
diff --git a/reports/data/hexrcf-source-replay-dimensions/controls.lean.txt b/reports/data/hexrcf-source-replay-dimensions/controls.lean.txt
new file mode 100644
index 0000000000..2d0f8fc33c
--- /dev/null
+++ b/reports/data/hexrcf-source-replay-dimensions/controls.lean.txt
@@ -0,0 +1,32 @@
+import SourceReplayDriver
+open Hex Hex.RealClosure Hex.SignDet
+#eval (show IO Unit from do
+ let directory := "/home/kim/.codex/tasks/hex-10358/source-replay-matrix/"
+ let manifest ← IO.FS.readBinFile (directory ++ "manifest.json")
+ let .ok records := Codec.readList (Codec.tuple 11) (← IO.ofExcept (Codec.parse {} manifest))
+ | throw (IO.userError "invalid dataset metadata")
+ for record in records do
+ let name ← IO.ofExcept (record[0].getStr?)
+ let input ← IO.FS.readBinFile (directory ++ name ++ ".json")
+ unless SourceReplayDriver.lexical input && SourceReplayDriver.parsed input &&
+ SourceReplayDriver.restored input && SourceReplayDriver.replayed input do
+ throw (IO.userError s!"valid dataset refused:{name}")
+ unless !(Codec.checkBytes {bytes := 1} input).isOk &&
+ !(Codec.checkBytes {depth := 1} input).isOk &&
+ !(Codec.checkBytes {digits := 0} input).isOk do
+ throw (IO.userError "resource limits did not reject")
+ let controls := "/home/kim/.codex/tasks/hex-10358/source-replay-controls/"
+ let manifest ← IO.FS.readBinFile (controls ++ "manifest.json")
+ let .ok records := Codec.readList (Codec.tuple 2) (← IO.ofExcept (Codec.parse {} manifest))
+ | throw (IO.userError "invalid refusal metadata")
+ for record in records do
+ let name ← IO.ofExcept (record[0].getStr?)
+ let expected ← IO.ofExcept (record[1].getStr?)
+ let input ← IO.FS.readBinFile (controls ++ name ++ ".json")
+ match SourceReplayDriver.replay input with
+ | .ok true => throw (IO.userError s!"invalid evidence accepted:{name}")
+ | .ok false => unless expected == "false" do throw (IO.userError s!"wrong diagnostic:{name}")
+ | .error message =>
+ unless expected == "error" do throw (IO.userError s!"wrong diagnostic:{name}:{message}")
+ IO.println s!"refusal {name}:{expected}"
+ IO.println "22 owner packets (positive-count mutation checked); byte/depth/digit limits;9 malformed/false evidence controls passed")
diff --git a/reports/data/hexrcf-source-replay-dimensions/dimensions-original.svg.gz b/reports/data/hexrcf-source-replay-dimensions/dimensions-original.svg.gz
new file mode 100644
index 0000000000..c448ea3d81
Binary files /dev/null and b/reports/data/hexrcf-source-replay-dimensions/dimensions-original.svg.gz differ
diff --git a/reports/data/hexrcf-source-replay-dimensions/dimensions.png b/reports/data/hexrcf-source-replay-dimensions/dimensions.png
new file mode 100644
index 0000000000..1c54d279b7
Binary files /dev/null and b/reports/data/hexrcf-source-replay-dimensions/dimensions.png differ
diff --git a/reports/data/hexrcf-source-replay-dimensions/dimensions.svg b/reports/data/hexrcf-source-replay-dimensions/dimensions.svg
new file mode 100644
index 0000000000..ccc6707c05
--- /dev/null
+++ b/reports/data/hexrcf-source-replay-dimensions/dimensions.svg
@@ -0,0 +1,4442 @@
+
+
+
diff --git a/reports/data/hexrcf-source-replay-dimensions/driver.lean.txt b/reports/data/hexrcf-source-replay-dimensions/driver.lean.txt
new file mode 100644
index 0000000000..bdf0376456
--- /dev/null
+++ b/reports/data/hexrcf-source-replay-dimensions/driver.lean.txt
@@ -0,0 +1,48 @@
+import HexRealClosure.RootBytes
+import HexSignDet.DagSelectedSigns
+
+namespace SourceReplayDriver
+open Hex Hex.RealClosure Hex.SignDet
+
+def fields (input : ByteArray) : Except String (Vector Codec.Json 4) := do
+ Codec.tuple 4 (← Codec.parse {} input)
+
+def lexical (input : ByteArray) : Bool := (Codec.checkBytes {} input).isOk
+
+def parsed (input : ByteArray) : Bool := (fields input).isOk
+
+def restoreFields (packet : Vector Codec.Json 4) :
+ Except String (Tower.PackedRoot (fun _ => none)) :=
+ match Tower.Serialized.codec.decode packet[0] with
+ | .error error => .error error
+ | .ok subject => (Tower.Catalog.empty (fun _ => none)).restoreRoot subject
+
+def restore (input : ByteArray) : Except String (Tower.PackedRoot (fun _ => none)) :=
+ match fields input with
+ | .error error => .error error
+ | .ok packet => restoreFields packet
+
+def restored (input : ByteArray) : Bool := (restore input).isOk
+
+def replayPacked (packet : Vector Codec.Json 4)
+ (source : Tower.PackedRoot (fun _ => none)) : Except String Bool :=
+ match source.root with
+ | .point _ => .ok false
+ | .selected descriptor _ _ => do
+ let queries ← Codec.readList (Codec.readPoly source.parent.codec) packet[1]
+ let values ← Codec.vector queries.length (Codec.Json.decode (α := Int)) packet[2]
+ let graph ← Codec.readGraph source.parent.codec Tower.Signature.codec
+ source.parent.signature descriptor.raw.head descriptor.raw.lower descriptor.raw.upper packet[3]
+ return (graph.selectedSigns? descriptor queries values).isSome
+
+def replay (input : ByteArray) : Except String Bool :=
+ match fields input with
+ | .error error => .error error
+ | .ok packet =>
+ match restoreFields packet with
+ | .error error => .error error
+ | .ok source => replayPacked packet source
+
+def replayed (input : ByteArray) : Bool := (replay input).toOption.getD false
+
+end SourceReplayDriver
diff --git a/reports/data/hexrcf-source-replay-dimensions/generator.lean.txt b/reports/data/hexrcf-source-replay-dimensions/generator.lean.txt
new file mode 100644
index 0000000000..144eb01837
--- /dev/null
+++ b/reports/data/hexrcf-source-replay-dimensions/generator.lean.txt
@@ -0,0 +1,97 @@
+import HexRCF.RealCoefficients.SourceBuild
+import HexRealClosure.NumberFieldTower
+import HexRealClosure.RootBytes
+import HexSignDet.Codec.Bytes
+import SourceReplayDriver
+
+namespace SourceReplayMatrix
+open Hex Hex.RealClosure Hex.SignDet Hex.RCF.RealCoefficients
+
+def registry : BaseContext.Registry := fun _ => none
+abbrev base := Hex.RealClosure.NumberField.base registry
+
+def parents : Nat → Option (Σ parent : Tower.Context registry, parent.Value)
+ | 0 => some ⟨base,0⟩
+ | depth+1 =>
+ match parents depth with
+ | none => none
+ | some ⟨parent,last⟩ =>
+ let constant : parent.Value := if depth == 0 then 2 else 2+last
+ let polynomial := DensePoly.monomial 2 (1 : parent.Value) - DensePoly.C constant
+ match SourceBuild.buildOn polynomial (DensePoly.C 1) (.finite 1) (.finite 2) with
+ | .error _ => none
+ | .ok source =>
+ let root := Tower.Root.ofSelection parent (.selected source.root)
+ some ⟨root.context,root.value⟩
+
+def treeNodes {E Ctx : Type} [Zero E] [DecidableEq E] : Replay E Ctx → Nat
+ | .leaf _ => 1
+ | .split _ left right => 1 + treeNodes left + treeNodes right
+
+structure Case where
+ axis : String
+ parameter : Nat
+ degree : Nat := 2
+ atoms : Nat := 2
+ bits : Nat := 16
+ precision : Nat := 0
+ depth : Nat := 0
+ repeated : Bool := false
+
+private def emit (test : Case) : IO Codec.Json := do
+ let some ⟨parent,last⟩ := parents test.depth
+ | throw (IO.userError s!"predecessor construction refused depth{test.depth}")
+ let constant : parent.Value := if test.depth == 0 then 2 else 2+last
+ let polynomial := DensePoly.monomial test.degree (1 : parent.Value) - DensePoly.C constant
+ let denominator := 2^test.precision
+ let floor := Nat.sqrt (2*denominator^2)
+ let lower : parent.Value := (floor : parent.Value) / (denominator : parent.Value)
+ let upper : parent.Value := ((floor+1 : Nat) : parent.Value) / (denominator : parent.Value)
+ let .ok source := SourceBuild.buildOn polynomial (DensePoly.C 1) (.finite lower) (.finite upper)
+ | throw (IO.userError s!"source construction refused {test.axis}/{test.parameter}")
+ let scale : parent.Value := 1 / ((2^test.bits+1 : Nat) : parent.Value)
+ let x : DensePoly parent.Value := DensePoly.monomial 1 1
+ let queries := if test.axis == "common" then [polynomial,polynomial*(x+DensePoly.C 1)]
+ else if test.axis == "repeated-roots" then
+ let factor := (x+DensePoly.C 1)*(x+DensePoly.C 1)
+ [factor,factor*(x-DensePoly.C 1)*(x-DensePoly.C 1)]
+ else (List.range test.atoms).map fun i =>
+ DensePoly.monomial 1 scale + DensePoly.C (((if test.repeated then 1 else i+1) : Nat) : parent.Value)
+ let context := Algebraic.Context.adjoin source.root parent.isClean
+ let .ok row := context.buildSigns queries
+ | throw (IO.userError "selected-sign row construction refused")
+ let root := Tower.Root.ofSelection parent (.selected source.root)
+ let _ : Hashable parent.Value := ⟨fun value => hash (parent.codec.encode value)⟩
+ let _ : Hashable Tower.Signature := ⟨fun value => hash (Tower.Signature.codec.encode value)⟩
+ let graph := Dag.encode row.evidence
+ let packet := Codec.Json.arr #[Tower.Serialized.codec.encode root.write,
+ Codec.list (Codec.poly parent.codec) queries,
+ Codec.array (fun x : Int => Codec.Json.of x) row.values.toArray,
+ Codec.graph parent.codec Tower.Signature.codec graph]
+ let bytes := packet.writeBytes
+ unless SourceReplayDriver.lexical bytes && SourceReplayDriver.parsed bytes &&
+ SourceReplayDriver.restored bytes && SourceReplayDriver.replayed bytes do
+ throw (IO.userError s!"owner reconstruction/replay refused {test.axis}/{test.parameter}")
+ let name := test.axis ++ "-" ++ toString test.parameter
+ IO.FS.writeBinFile ("/home/kim/.codex/tasks/hex-10358/source-replay-matrix/" ++ name ++ ".json") bytes
+ IO.println s!"generated{ name}: bytes{bytes.size}, unique{graph.entries.size}, expanded{treeNodes row.evidence}"
+ return Codec.Json.arr #[Codec.Json.of name, Codec.Json.of test.axis, Codec.Json.of test.parameter,
+ Codec.Json.of test.degree,Codec.Json.of test.atoms,Codec.Json.of test.bits,
+ Codec.Json.of test.precision,Codec.Json.of test.depth,Codec.Json.of bytes.size,
+ Codec.Json.of graph.entries.size,Codec.Json.of (treeNodes row.evidence)]
+
+#eval (show IO Unit from do
+ IO.FS.createDirAll "/home/kim/.codex/tasks/hex-10358/source-replay-matrix"
+ let mut cases : List Case := []
+ for n in [2,3,4,5] do cases := cases ++ [{axis := "degree",parameter := n,degree := n}]
+ for n in [1,2,3,4] do cases := cases ++ [{axis := "atoms",parameter := n,atoms := n}]
+ for n in [4,16,64,128] do cases := cases ++ [{axis := "bits",parameter := n,bits := n}]
+ for n in [0,4,8,12] do cases := cases ++ [{axis := "precision",parameter := n,precision := n}]
+ for n in [0,1,2] do cases := cases ++ [{axis := "depth",parameter := n,depth := n}]
+ cases := cases ++ [{axis := "repeated",parameter := 4,atoms := 4,repeated := true},
+ {axis := "common",parameter := 2},{axis := "repeated-roots",parameter := 2}]
+ let mut metadata := #[]
+ for test in cases do metadata := metadata.push (← emit test)
+ IO.FS.writeBinFile "/home/kim/.codex/tasks/hex-10358/source-replay-matrix/manifest.json"
+ (Codec.Json.arr metadata).writeBytes)
+end SourceReplayMatrix
diff --git a/reports/data/hexrcf-source-replay-dimensions/input-validation.json b/reports/data/hexrcf-source-replay-dimensions/input-validation.json
new file mode 100644
index 0000000000..3e41c2c010
--- /dev/null
+++ b/reports/data/hexrcf-source-replay-dimensions/input-validation.json
@@ -0,0 +1,204 @@
+{
+ "status": "pass",
+ "cases": [
+ {
+ "case": "degree-2",
+ "axis": "degree",
+ "parameter": 2,
+ "bytes": 9916,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "sha256": "d8c1b3971787eb855565fa87d266572b08dc7409dbd87e35a2a810dce311581b"
+ },
+ {
+ "case": "degree-3",
+ "axis": "degree",
+ "parameter": 3,
+ "bytes": 11770,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "sha256": "ef15189a1ed48356b417a1dec50e46a280552b51f81af6ec4f4fa9a768ec9a51"
+ },
+ {
+ "case": "degree-4",
+ "axis": "degree",
+ "parameter": 4,
+ "bytes": 13110,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "sha256": "0df805651e04fcb75222d5d9af773c3b136558d76b5494ddb77ebe2bc2aa6609"
+ },
+ {
+ "case": "degree-5",
+ "axis": "degree",
+ "parameter": 5,
+ "bytes": 14259,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "sha256": "78051c5a3260b9b22d3175fa18545627bef8d73b251646dcb0e93249d27fd5d6"
+ },
+ {
+ "case": "atoms-1",
+ "axis": "atoms",
+ "parameter": 1,
+ "bytes": 4899,
+ "row_unique_nodes": 1,
+ "row_expanded_nodes": 1,
+ "sha256": "af7ed0a9e1d7c8c754dbe1e0dcb4b36b42274d1384d12f7db8dd734aee191682"
+ },
+ {
+ "case": "atoms-2",
+ "axis": "atoms",
+ "parameter": 2,
+ "bytes": 9916,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "sha256": "d8c1b3971787eb855565fa87d266572b08dc7409dbd87e35a2a810dce311581b"
+ },
+ {
+ "case": "atoms-3",
+ "axis": "atoms",
+ "parameter": 3,
+ "bytes": 15093,
+ "row_unique_nodes": 5,
+ "row_expanded_nodes": 5,
+ "sha256": "0899f680d5cbd4e70a032fe512a57cbadf7dcb932ca93952344d856c82f10ebb"
+ },
+ {
+ "case": "atoms-4",
+ "axis": "atoms",
+ "parameter": 4,
+ "bytes": 20269,
+ "row_unique_nodes": 7,
+ "row_expanded_nodes": 7,
+ "sha256": "f7389acf60f007361a6785b727dccd42863656d64e24b3ce1f55de30aaaecaba"
+ },
+ {
+ "case": "bits-4",
+ "axis": "bits",
+ "parameter": 4,
+ "bytes": 9572,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "sha256": "cae1b8df94693a6ad24d28babbfc17455e801c51f421152bd84225276f00cd3f"
+ },
+ {
+ "case": "bits-16",
+ "axis": "bits",
+ "parameter": 16,
+ "bytes": 9916,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "sha256": "d8c1b3971787eb855565fa87d266572b08dc7409dbd87e35a2a810dce311581b"
+ },
+ {
+ "case": "bits-64",
+ "axis": "bits",
+ "parameter": 64,
+ "bytes": 11337,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "sha256": "67fd6a3413196b8a5e3d7b54918f46dcd316e79cfd3a878a0c8b953269faa6db"
+ },
+ {
+ "case": "bits-128",
+ "axis": "bits",
+ "parameter": 128,
+ "bytes": 13230,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "sha256": "ed37810eff123c1724543ae77844e248a22dcfe5a4f795552adb12ba8b7e3837"
+ },
+ {
+ "case": "precision-0",
+ "axis": "precision",
+ "parameter": 0,
+ "bytes": 9916,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "sha256": "d8c1b3971787eb855565fa87d266572b08dc7409dbd87e35a2a810dce311581b"
+ },
+ {
+ "case": "precision-4",
+ "axis": "precision",
+ "parameter": 4,
+ "bytes": 9955,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "sha256": "34a603b79985538fcc990544c73a39cd41945c25a9c5eff7356d1ee867052e56"
+ },
+ {
+ "case": "precision-8",
+ "axis": "precision",
+ "parameter": 8,
+ "bytes": 10020,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "sha256": "1251f25bf0d146643b8be8c81b3ea8b33e815b5e1985121cebea8f9ed0451977"
+ },
+ {
+ "case": "precision-12",
+ "axis": "precision",
+ "parameter": 12,
+ "bytes": 10046,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "sha256": "98c80f87fea4b70e33243b74d26291f342bc8525971d5d77609c072e7e20ef11"
+ },
+ {
+ "case": "depth-0",
+ "axis": "depth",
+ "parameter": 0,
+ "bytes": 9916,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "sha256": "d8c1b3971787eb855565fa87d266572b08dc7409dbd87e35a2a810dce311581b"
+ },
+ {
+ "case": "depth-1",
+ "axis": "depth",
+ "parameter": 1,
+ "bytes": 28321,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "sha256": "568883eb1730999c243ad8a8da4ea7023c7ccb3580ef6046671ae0b830e8d350"
+ },
+ {
+ "case": "depth-2",
+ "axis": "depth",
+ "parameter": 2,
+ "bytes": 53744,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "sha256": "19fb8808b60a8951fc961f3b48d86a98b1a0d1bdc4cdca65f447734ea3b12ead"
+ },
+ {
+ "case": "repeated-4",
+ "axis": "repeated",
+ "parameter": 4,
+ "bytes": 8097,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 7,
+ "sha256": "b3d7c2af7995b804e518cc76cfa9e15578653b89ac0ec36556c040fc7593892c"
+ },
+ {
+ "case": "common-2",
+ "axis": "common",
+ "parameter": 2,
+ "bytes": 8268,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "sha256": "811f840d94eb3144cf1eac4f522c07a804f1ab79c13fa60641b97c45f0469403"
+ },
+ {
+ "case": "repeated-roots-2",
+ "axis": "repeated-roots",
+ "parameter": 2,
+ "bytes": 9613,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "sha256": "f3565e01c928833686659b589921d1f2baf48e606ac68dcc65d74cf5e56df16f"
+ }
+ ],
+ "scope": "Independent declared parameters, actual query/sign counts, serialized bytes, rowDAG bounds and expanded-node counts; mathematical source interpretation remains separate."
+}
diff --git a/reports/data/hexrcf-source-replay-dimensions/inputs.tar.gz b/reports/data/hexrcf-source-replay-dimensions/inputs.tar.gz
new file mode 100644
index 0000000000..aeeb97341d
Binary files /dev/null and b/reports/data/hexrcf-source-replay-dimensions/inputs.tar.gz differ
diff --git a/reports/data/hexrcf-source-replay-dimensions/lake-manifest.json b/reports/data/hexrcf-source-replay-dimensions/lake-manifest.json
new file mode 100644
index 0000000000..940bf8d161
--- /dev/null
+++ b/reports/data/hexrcf-source-replay-dimensions/lake-manifest.json
@@ -0,0 +1,174 @@
+{"version": "1.3.0",
+ "packagesDir": ".lake/packages",
+ "packages":
+ [{"type": "path",
+ "scope": "",
+ "name": "Hex",
+ "manifestFile": "lake-manifest.json",
+ "inherited": false,
+ "dir": "/home/kim/worktrees/hex-dev/hex-dev-issue-10358",
+ "copy": false,
+ "configFile": "lakefile.lean"},
+ {"url": "https://github.com/leanprover-community/mathlib4.git",
+ "type": "git",
+ "subDir": null,
+ "scope": "",
+ "rev": "6b7abb3c7686292736be2955bd3eb9ebf63b456a",
+ "name": "mathlib",
+ "manifestFile": "lake-manifest.json",
+ "inputRev": "6b7abb3c7686292736be2955bd3eb9ebf63b456a",
+ "inherited": true,
+ "configFile": "lakefile.lean"},
+ {"url": "https://github.com/TauCetiProject/TauCeti.git",
+ "type": "git",
+ "subDir": null,
+ "scope": "",
+ "rev": "1c497c347f615b3087cb605f8cf743e591376105",
+ "name": "TauCeti",
+ "manifestFile": "lake-manifest.json",
+ "inputRev": "1c497c347f615b3087cb605f8cf743e591376105",
+ "inherited": true,
+ "configFile": "lakefile.toml"},
+ {"url": "https://github.com/kim-em/lean-bench.git",
+ "type": "git",
+ "subDir": null,
+ "scope": "",
+ "rev": "8a37daf1074c3bdbd0da479b55538bad4a0022db",
+ "name": "«lean-bench»",
+ "manifestFile": "lake-manifest.json",
+ "inputRev": "master",
+ "inherited": true,
+ "configFile": "lakefile.toml"},
+ {"url": "https://github.com/leanprover/nauty-ffi.git",
+ "type": "git",
+ "subDir": null,
+ "scope": "",
+ "rev": "ec8597014d0ae82490a616b855d59a35e6bfa21f",
+ "name": "NautyFFI",
+ "manifestFile": "lake-manifest.json",
+ "inputRev": "ec8597014d0ae82490a616b855d59a35e6bfa21f",
+ "inherited": true,
+ "configFile": "lakefile.lean"},
+ {"url": "https://github.com/leanprover/verso.git",
+ "type": "git",
+ "subDir": null,
+ "scope": "",
+ "rev": "8fc7a297f14d5adc1a551b5b4ecf283c08bd691f",
+ "name": "verso",
+ "manifestFile": "lake-manifest.json",
+ "inputRev": "v4.35.0-rc3",
+ "inherited": true,
+ "configFile": "lakefile.lean"},
+ {"url": "https://github.com/leanprover-community/plausible",
+ "type": "git",
+ "subDir": null,
+ "scope": "leanprover-community",
+ "rev": "fb13df72ecefd8ddbf9291021d7f33a8673eb57b",
+ "name": "plausible",
+ "manifestFile": "lake-manifest.json",
+ "inputRev": "main",
+ "inherited": true,
+ "configFile": "lakefile.toml"},
+ {"url": "https://github.com/leanprover-community/LeanSearchClient",
+ "type": "git",
+ "subDir": null,
+ "scope": "leanprover-community",
+ "rev": "29ff470276c725ae01505d55b17148c18fc7dfd3",
+ "name": "LeanSearchClient",
+ "manifestFile": "lake-manifest.json",
+ "inputRev": "main",
+ "inherited": true,
+ "configFile": "lakefile.toml"},
+ {"url": "https://github.com/leanprover-community/import-graph",
+ "type": "git",
+ "subDir": null,
+ "scope": "leanprover-community",
+ "rev": "10a2cfff285e1c7c2ebc49c0ba22cab0f3c58ee5",
+ "name": "importGraph",
+ "manifestFile": "lake-manifest.json",
+ "inputRev": "main",
+ "inherited": true,
+ "configFile": "lakefile.toml"},
+ {"url": "https://github.com/leanprover-community/ProofWidgets4",
+ "type": "git",
+ "subDir": null,
+ "scope": "leanprover-community",
+ "rev": "c643bbb3c24f8a25f9c14e3a6b1ceb13d01f3de1",
+ "name": "proofwidgets",
+ "manifestFile": "lake-manifest.json",
+ "inputRev": "main",
+ "inherited": true,
+ "configFile": "lakefile.lean"},
+ {"url": "https://github.com/leanprover-community/aesop",
+ "type": "git",
+ "subDir": null,
+ "scope": "leanprover-community",
+ "rev": "a90fbf7b02ff06a0deebf74088dff9e5fe02c9ea",
+ "name": "aesop",
+ "manifestFile": "lake-manifest.json",
+ "inputRev": "master",
+ "inherited": true,
+ "configFile": "lakefile.toml"},
+ {"url": "https://github.com/leanprover-community/quote4",
+ "type": "git",
+ "subDir": null,
+ "scope": "leanprover-community",
+ "rev": "37b0ba0b26109cf9f9c541f0f9557e50cfa1a3b9",
+ "name": "Qq",
+ "manifestFile": "lake-manifest.json",
+ "inputRev": "master",
+ "inherited": true,
+ "configFile": "lakefile.toml"},
+ {"url": "https://github.com/leanprover-community/batteries",
+ "type": "git",
+ "subDir": null,
+ "scope": "leanprover-community",
+ "rev": "33131f4fb10067cb3009bf4db615d9680c1ccd6b",
+ "name": "batteries",
+ "manifestFile": "lake-manifest.json",
+ "inputRev": "main",
+ "inherited": true,
+ "configFile": "lakefile.toml"},
+ {"url": "https://github.com/leanprover/lean4-cli",
+ "type": "git",
+ "subDir": null,
+ "scope": "leanprover",
+ "rev": "843844fa601dd56767b1eb22b7ada5b64d5e567a",
+ "name": "Cli",
+ "manifestFile": "lake-manifest.json",
+ "inputRev": "v4.35.0-rc3",
+ "inherited": true,
+ "configFile": "lakefile.toml"},
+ {"url": "https://github.com/leanprover/illuminate",
+ "type": "git",
+ "subDir": null,
+ "scope": "",
+ "rev": "af451aaa73d8f8025189f228642b6e4fe047ce4f",
+ "name": "illuminate",
+ "manifestFile": "lake-manifest.json",
+ "inputRev": "main",
+ "inherited": true,
+ "configFile": "lakefile.lean"},
+ {"url": "https://github.com/acmepjz/md4lean",
+ "type": "git",
+ "subDir": null,
+ "scope": "",
+ "rev": "31907cc18f48a95384f99cee5582c00fb39e0f67",
+ "name": "MD4Lean",
+ "manifestFile": "lake-manifest.json",
+ "inputRev": "main",
+ "inherited": true,
+ "configFile": "lakefile.lean"},
+ {"url": "https://github.com/leanprover/subverso",
+ "type": "git",
+ "subDir": null,
+ "scope": "",
+ "rev": "d047cb484b2f3598187450935dbcc84d078cb581",
+ "name": "subverso",
+ "manifestFile": "lake-manifest.json",
+ "inputRev": "main",
+ "inherited": true,
+ "configFile": "lakefile.lean"}],
+ "name": "rcfManualRender",
+ "lakeDir": ".lake",
+ "fixedToolchain": false}
diff --git a/reports/data/hexrcf-source-replay-dimensions/lakefile.lean.txt b/reports/data/hexrcf-source-replay-dimensions/lakefile.lean.txt
new file mode 100644
index 0000000000..5b01b4a4cb
--- /dev/null
+++ b/reports/data/hexrcf-source-replay-dimensions/lakefile.lean.txt
@@ -0,0 +1,860 @@
+import Lake
+open Lake DSL
+package rcfManualRender
+require Hex from "/home/kim/worktrees/hex-dev/hex-dev-issue-10358"
+lean_lib Render
+
+lean_lib FullRender
+
+lean_lib NativeFormula
+
+lean_lib NativeSamples
+
+lean_lib NativeSampleTests
+
+lean_lib NativeSampleExample
+
+lean_lib NativeFixture
+
+lean_lib RootAliasProbe
+
+lean_lib RationalRootSource
+
+lean_lib LiteralRationalRoots
+
+lean_lib CubeDivisionDebug
+
+lean_lib SharedSources
+
+lean_lib SharedSourceTests
+
+lean_lib CheckedAlgebraicRoots
+
+lean_lib CheckedAlgebraicRootsProbe
+
+lean_lib RootBudgetProbe
+
+lean_lib GatherPublic
+
+lean_lib RootMetadata
+
+lean_lib RootExponentBudget
+
+lean_lib BoundedRootExponent
+
+lean_lib FrozenRootAliases
+
+lean_lib FrozenRootAliasesProbe
+
+lean_lib CompiledAlgebraicBase
+
+lean_lib GeneralRootSource
+
+lean_lib GeneralRootTactic
+
+lean_lib GeneralRootGoals
+
+lean_lib GeneralRootFailures
+
+lean_lib GeneralEnclosure
+
+lean_lib SharedBaseFast
+
+lean_lib GeneralAlgebraicBounds
+
+lean_lib GeneralFinite
+
+lean_lib GeneralMixed
+
+lean_lib NestedRegistration
+
+lean_lib NumberFieldSchema
+
+lean_lib MixedRpow
+
+lean_lib InfinitesimalFormula
+
+lean_lib InfinitesimalFormulaTests
+
+lean_lib RealizationProbe
+
+lean_lib NumberFieldFormula
+
+lean_lib NumberFieldFormulaTests
+
+lean_lib SelectedFormula
+
+lean_lib SelectedEmit
+
+lean_lib SelectedLiterals
+
+lean_lib SelectedData
+
+lean_lib SelectedRootRead
+
+lean_lib SelectedPackets
+
+lean_lib SelectedCollect
+
+lean_lib SelectedDiscover
+
+lean_lib SelectedIntermediates
+
+lean_lib SelectedUpper
+
+lean_lib SelectedRow
+
+lean_lib SelectedRowCollect
+
+lean_lib SelectedRowDiscover
+
+lean_lib SelectedSource
+
+lean_lib SelectedRowIntermediates
+
+lean_lib SelectedQuoted
+
+lean_lib SelectedControls
+
+lean_lib SelectedRefusals
+
+lean_lib SelectedAudit
+
+lean_lib SelectedChecks
+
+lean_lib SelectedBound
+
+lean_lib SelectedFrozen
+
+lean_lib SelectedFrozenCollect
+
+lean_lib SelectedPacketFields
+
+lean_lib SelectedByteRow
+
+lean_lib SelectedByteProofs
+
+lean_lib SelectedByteDump
+
+lean_lib SelectedByteData
+
+lean_lib SelectedByteControls
+
+lean_lib SelectedByteAudit
+
+lean_lib SelectedByteBounds
+
+
+lean_lib PackingRow
+
+lean_lib PackingProgram
+
+lean_lib PackingLiterals
+
+lean_lib PackingFrozen
+
+lean_lib PackingMissing
+
+lean_lib PackingAudit
+
+lean_lib PreparedPacking where
+ srcDir := "../packing-tranche/probe"
+ globs := #[.submodules `PreparedPacking]
+
+lean_lib PackingVanishingProposal
+
+lean_lib RootCatalogProbe
+
+lean_lib RootCatalogProposal
+
+lean_lib RootCatalogLiterals
+
+lean_lib RootCatalogFrozen
+
+lean_lib RootCatalogEncoding
+
+lean_lib RootCatalogAudit
+
+lean_lib RootCatalogBytes
+
+lean_lib RootCatalogControls
+
+lean_lib CommonFactoryProbe
+
+lean_exe selected_catalog_bench where
+ root := `SelectedCatalogBench
+
+lean_lib OcticKernelProof
+
+lean_lib KernelClosure
+lean_lib OcticPublicImport
+
+lean_lib RegisteredGatherModel
+lean_lib RegisteredGatherSemantics
+lean_lib OcticNormalized
+
+lean_lib RegisteredGatherDomain
+
+lean_lib RegisteredVector
+
+lean_lib RegisteredVectorTests
+
+lean_lib RegisteredVectorNative
+
+lean_lib RegisteredGatherNext
+
+lean_lib RegisteredGatherPrepared
+
+lean_lib GatherCatalogPrepared
+
+lean_lib ReorderedGather
+
+lean_lib SuppliedInverseSource
+
+lean_exe supplied_inverse_fixture where
+ root := `SuppliedInverseFixture
+
+lean_lib SuppliedInverseLiteral
+lean_lib SuppliedInverseProof
+
+lean_lib SuppliedInverseControls
+
+lean_lib SourceInversePoint
+
+lean_lib SuppliedOcticProof
+lean_lib SuppliedOcticUse
+
+lean_lib SuppliedOcticTactic
+
+lean_lib SuppliedOcticDebug
+
+lean_lib SuppliedOcticControls
+
+lean_lib IrreducibilityCostReconstruct
+
+lean_lib IrreducibilityCostReuse
+
+lean_lib NativeJointSigns
+
+lean_lib SuppliedInstanceBudget
+
+lean_lib NativeRow
+
+lean_lib NativeRowTest
+
+lean_lib NativeFormulaOrdinaryUse
+
+lean_lib NativeFormulaSuccessive
+
+lean_lib NativeFormulaSelected
+
+lean_lib NativeSpecialize
+
+lean_lib NativeSpecializeTest
+
+lean_lib NativeSpecializeOrdinaryUse
+
+lean_lib SpecializeConversion
+
+lean_lib SampleConversionFixture
+
+lean_lib NativeSamplesOrdinaryUse
+
+lean_lib NativeConversionDegree
+
+lean_lib NativeNestedSample
+
+lean_lib NativeSelectedReal where
+ globs := #[`NativeSelectedReal]
+
+lean_lib NestedSampleRows where
+ globs := #[`NestedSampleRows]
+
+lean_lib SamplePointConsumers where
+ globs := #[`SamplePointConsumers]
+
+lean_lib SampleSizeWords where
+ globs := #[`SampleSizeWords]
+
+lean_lib SampleInfinitesimal
+
+lean_lib NativeSampleModelOrdinaryUse
+
+lean_lib NativeSources
+
+lean_lib SampleSelectedInfinitesimal
+
+lean_lib NativeSourcesTest
+
+lean_lib SampleInfinitesimalEmit
+
+lean_lib SampleInfinitesimalFrozenEmit
+
+lean_lib SampleInfinitesimalLiterals
+lean_lib SampleFrozenInfinitesimal
+
+lean_lib SampleFrozenLegacy
+
+lean_lib NativeSampleModelEmit
+
+lean_lib NativeSampleSquare
+
+lean_lib NativeSourcesOrdinaryUse
+
+lean_lib NativeSelection
+
+lean_lib NativeSelectionUse
+
+lean_lib NativeSelectionOrdinaryUse
+
+lean_lib NativeSelectionMap
+
+lean_lib NativeSelectionEmit
+
+lean_lib NativeCoordinates
+
+lean_lib NativeNested
+
+lean_lib SectionReplay
+
+lean_lib SectionReplayTests
+
+lean_lib SectionQuote
+
+lean_lib SectionQuoteTests
+
+lean_lib SectionBuild
+
+lean_lib ScalarPacket
+
+lean_lib SectionProduceTests
+
+lean_lib PointReplay
+
+lean_lib PointReplayTests
+
+lean_lib PointQuote
+
+lean_lib PointQuoteTests
+lean_lib PointBuild
+lean_lib PointProduceTests
+lean_lib PointOrdinaryTests
+lean_lib NativeParentRead
+lean_lib NativeParentLiterals
+
+lean_lib RootPackets
+
+lean_lib RootOperations
+
+lean_lib NestedRootPackets
+
+lean_lib NestedRootLiterals
+lean_lib NestedRootReplay
+
+lean_lib RootResultOperations
+
+lean_lib NestedRootOrdinary
+
+lean_lib FrozenRootTransport
+
+lean_lib FrozenRootTransportTests
+
+lean_lib FrozenRootTransportProposal
+
+lean_lib FrozenRootTransportLiterals
+
+lean_lib FrozenRootTransportMoved
+
+lean_lib FrozenRootTransportDebug
+
+lean_lib FrozenRootTransportMap
+
+lean_lib FrozenRootTransportCached
+
+lean_lib FrozenRootTransportConjugateProposal
+
+lean_lib FrozenRootTransportOrdinary
+
+lean_lib RootTransportDraft where
+ globs := #[`RootTransportDraft, `RootTransportDataDraft, `RootTransportConformanceDraft,
+ `RootTransportOrdinaryDraft, `RootTransportLiteralsDraft].map Glob.one
+
+lean_lib FrozenSuffixProposal
+
+lean_lib FrozenSuffixLiterals
+
+lean_lib FrozenSuffixContext
+
+lean_lib FrozenSuffixMap
+
+lean_lib FrozenSuffixMappedConversion
+
+lean_lib FrozenSuffixRead
+
+lean_lib FrozenSuffixLiteralFacts
+
+lean_lib FrozenSuffixJointProposal
+
+lean_lib FrozenSuffixSignLiterals
+
+lean_lib FrozenSuffixSignRead
+
+lean_lib FrozenSuffixAcceptance
+
+lean_lib RootTransportManualDraft
+
+lean_lib FrozenRootTransportWordProposal
+
+lean_lib RootTransportRenderDraft
+
+lean_lib FrozenSuffixCompiledOutcome
+
+lean_lib FrozenSuffixRootCheck
+
+lean_lib FrozenSuffixFactFields
+
+lean_lib FrozenSuffixFactRestore
+
+lean_lib FrozenSuffixRestoredFacts
+
+lean_lib FrozenSuffixRootLiteralCheck
+
+lean_lib FrozenSuffixDecode
+
+lean_lib FrozenSuffixGraphDecode
+
+lean_lib FrozenSuffixFrame
+
+lean_lib RootTransportEmit
+
+lean_lib FrozenSuffixOperations
+
+lean_lib FrozenSuffixMoreSignProposal
+
+lean_lib FrozenSuffixMoreSignLiterals
+
+lean_lib FrozenSuffixMoreSignRead
+
+lean_lib FrozenSuffixMoreSignInspect
+
+lean_lib FrozenSuffixMorePrior
+
+lean_lib FrozenSuffixMoreRestoredFacts
+
+lean_lib FrozenSuffixMoreRootCheck
+
+lean_lib FrozenSuffixFullRead
+
+lean_lib FrozenSuffixMeaning
+
+lean_lib FrozenSuffixSource
+
+lean_lib FrozenSuffixOrdinary
+
+lean_lib FrozenSuffixControls
+
+lean_lib FrozenSuffixConstants
+
+lean_lib NestedTransportEmit
+
+lean_lib FiniteRow
+
+lean_lib FiniteRoot
+
+lean_lib FiniteRootFixture
+
+lean_lib FiniteRootOrdinary
+
+lean_lib FiniteRootControls
+
+lean_lib FiniteCheck
+
+lean_lib FiniteGuarded
+
+lean_lib SignedCheck
+
+lean_lib FiniteKeys
+
+lean_lib FiniteExtra
+
+lean_lib FinitePrepared
+
+lean_lib FiniteSignRead
+
+lean_lib FiniteSigns
+
+lean_lib FinitePrimitives
+
+lean_lib FiniteSignsData
+
+lean_lib FiniteSignsShared
+
+lean_lib FiniteSignsLiteral
+
+lean_lib FiniteInspect
+
+lean_lib FiniteSignsOrdinary
+
+lean_lib FiniteCachedPrimitives
+lean_lib FiniteSignsCached
+
+lean_lib FiniteSignsCachedOrdinary
+
+lean_lib FiniteSignsControls
+
+lean_lib FiniteSignsKernel
+
+lean_lib FiniteStrictPrimitives
+lean_lib FiniteFrozenInputs
+
+lean_lib FiniteFrozenAcceptance
+
+lean_lib FiniteSignsPublicOrdinary
+
+lean_lib FiniteInspectFacts
+
+lean_lib FiniteDataAudit
+
+lean_lib FiniteStrictControls
+
+lean_lib FiniteReplayQueries
+
+lean_lib FiniteSignReplay
+
+lean_lib FiniteReplayProbe
+
+lean_lib FiniteReplayLiteral
+lean_lib FiniteReplayPrepared
+
+lean_lib FiniteReplayData
+
+lean_lib FiniteReplayBinding
+
+lean_lib FiniteReplayOrdinary
+
+lean_lib FiniteReplayControls
+
+lean_lib FiniteReplayKernel
+
+lean_lib FiniteSourceQuote
+
+lean_lib FiniteReplaySolve
+
+lean_lib FiniteReplayQueryLiteral
+
+lean_lib FiniteStrictTrace
+
+lean_lib FiniteReplayTrace
+
+lean_lib FiniteDirectPrimitives
+
+lean_lib FiniteReplayDirect
+
+lean_lib FiniteDirectControls
+
+lean_lib FiniteSourceInputs
+
+lean_lib FiniteReplayCoordinates
+
+lean_lib FiniteCanonicalFormula
+
+lean_lib FiniteSourceQuoted
+
+lean_lib FiniteSourceCompare
+
+lean_lib FiniteKernelPrimitives
+
+lean_lib FiniteKernelControls
+
+lean_lib FiniteReplayKernelData
+
+lean_lib FiniteBudgetPrimitives
+
+lean_lib FiniteBudgetControls
+
+lean_lib FiniteReplayBudget
+
+lean_lib FiniteSourceAudit
+
+lean_lib FiniteRecordedUnits
+
+lean_lib FiniteRecordedOps
+
+lean_lib FiniteExtraSigns
+
+lean_lib FiniteExtraSignControls
+
+lean_lib FiniteSourceFrozenQuoted
+
+lean_lib FiniteInventoryControls
+
+lean_lib FiniteOwnerPrimitives
+
+lean_lib FiniteOwnerControls
+
+lean_lib FiniteReplayAccepted
+
+lean_lib FiniteSourceFrozenAudit
+
+lean_lib FiniteReplayShared
+
+lean_lib FiniteAlgebraicRead
+
+lean_lib FiniteAlgebraicData
+
+lean_lib FiniteCanonicalQueries
+
+lean_lib FiniteCanonicalRead
+
+lean_lib FiniteCanonicalShared
+
+lean_lib FiniteCanonicalBinding
+
+lean_lib FiniteCanonicalLiteral
+
+lean_lib FiniteCanonicalData
+
+lean_lib FiniteCanonicalQuote
+
+lean_lib FiniteCanonicalAudit
+
+lean_lib FiniteGuardProbe
+
+lean_lib FiniteGuardedRead
+
+lean_lib FiniteGuardedShared
+
+lean_lib FiniteGuardedLiteral
+
+lean_lib FiniteQuoteControls
+
+lean_lib FiniteGuardedData
+
+lean_lib FiniteGuardedQuote
+
+lean_lib FiniteAlgebraicClean
+
+lean_lib FinitePacketEmit
+
+lean_lib FiniteMultiGuard
+
+lean_lib FiniteMultiGuardShared
+
+lean_lib FiniteMultiGuardMeaning
+
+lean_lib FiniteMultiGuardProbe
+
+lean_lib FiniteMultiGuardFrozen
+
+lean_lib FiniteMultiGuardFrozenShared
+
+lean_lib FiniteMultiGuardFrozenMeaning
+
+lean_lib FiniteMultiSource
+
+lean_lib FiniteMultiSourceBinding
+
+lean_lib FiniteMultiSourceRead
+
+lean_lib FiniteMultiSourceShared
+
+lean_lib FiniteMultiSourceLiteral
+
+lean_lib FiniteMultiSourceData
+
+lean_lib FiniteMultiSourceQuote
+
+lean_lib FiniteMultiSourceDomains
+
+lean_lib FiniteMultiSourceControls
+
+lean_lib FiniteMultiSourceAudit
+
+lean_lib FiniteZeroSourceRead
+
+lean_lib FiniteZeroSourceShared
+
+lean_lib FiniteZeroSourceLiteral
+
+lean_lib FiniteZeroSourceData
+
+lean_lib FiniteGuardPacketEmit
+
+lean_lib FrozenGuardData0
+
+lean_lib FrozenGuardLiterals
+
+lean_lib FrozenGuardMeaning
+
+lean_lib FrozenGuardBinding
+
+lean_lib FrozenGuardRecords
+
+lean_lib FrozenGuardData
+
+lean_lib FrozenGuardQuote
+
+lean_lib FrozenGuardControls
+
+lean_lib FrozenGuardDomains
+
+lean_lib FrozenGuardAudit
+
+lean_lib FrozenGuardMutationData0
+
+lean_lib FrozenGuardMutations
+
+lean_lib FrozenGuardRefusals
+
+lean_lib FrozenGuardRoundtrip
+
+lean_lib GuardDraft where
+ globs := #[.submodules `GuardDraft]
+
+lean_lib FiniteQuotientProbe
+
+lean_lib FiniteQuotientInverse
+
+lean_lib FiniteQuotientSource
+
+lean_lib FiniteQuotientSupport
+
+lean_lib FiniteQuotientQuote
+
+lean_lib FiniteQuotientEmit
+
+lean_lib QuotientDraft where
+ globs := #[.submodules `QuotientDraft]
+
+lean_lib RepresentationCarrier
+
+lean_lib RootCells
+
+lean_lib RepresentationCells
+
+lean_lib RepresentationCellTests
+
+lean_lib BoundarySigns
+
+lean_lib SectorSamples
+
+lean_lib PointRows
+
+lean_lib CellReplay
+
+lean_lib CellPacketProduce
+
+lean_lib RowReplay
+
+lean_lib CellPacketLiteralData0
+
+lean_lib CellPacketLiterals
+
+lean_lib SectorReplay
+
+lean_lib CellRead
+
+lean_lib CellPacketCheck
+
+lean_lib CellPacketOrdinary
+
+lean_lib CellQuote
+
+lean_lib CellPacketQuote
+
+lean_lib CellQuoteControls
+
+lean_lib CellQuoteOrdinary
+
+lean_lib CellMutationLiteralData0
+
+lean_lib CellPacketMutations
+
+lean_lib CellPacketRefusals
+
+lean_lib AlgebraicCellSchema
+
+lean_lib AlgebraicCellProduce
+
+lean_lib AlgebraicCellLiteralData0
+
+lean_lib AlgebraicCellLiteralData1
+
+lean_lib AlgebraicCellLiterals
+
+lean_lib AlgebraicCellRestore
+
+lean_lib CellPacketEmit
+
+lean_lib AlgebraicCellRootMeaning
+
+lean_lib RowOperations
+
+lean_lib AlgebraicCellRows
+
+lean_lib AlgebraicCellSecondRows
+
+lean_lib CellOutside
+
+lean_lib AlgebraicCellTransport
+
+lean_lib AlgebraicSectionBundle
+
+lean_lib AlgebraicSectionMeaning
+
+lean_lib CellPackets
+
+lean_lib CellPacketRead
+
+lean_lib AlgebraicSectorBundle
+
+lean_lib AlgebraicCellSeeds
+
+lean_lib AlgebraicBooleanReplay
+
+lean_lib AlgebraicBooleanSources
+
+lean_lib AlgebraicBooleanAudit
+
+lean_lib AlgebraicBooleanTransport
+
+lean_lib AlgebraicBooleanBinding
+
+lean_lib CellReuseProbe
+
+lean_lib BooleanPort where
+ srcDir := "boolean-port"
+ globs := #[`BooleanPort.CellReuse,`BooleanPort.Boolean,`BooleanPort.BooleanSources,`BooleanPort.BooleanBinding,`BooleanPort.BooleanQuoted].map Glob.one
+
+lean_lib CompleteCellBuild
+
+lean_lib CompleteCellBuildTest
+
+lean_lib CompleteCellLiterals
+
+lean_lib CompleteCellFrozen
+
+lean_lib RowReadRoundtrip
+
+lean_lib CompleteRootBuild
+
+lean_lib CompiledCellConstruction
+
+lean_lib ConstructedCellLiterals
+
+lean_lib ConstructedCellFrozen
+
+lean_lib AlgebraicCellConstruction
+
+lean_lib CompleteRootProgress
+
+lean_lib SourceReplayDataset
+
+lean_lib SourceReplayDriver
+
+lean_lib SourceReplayMatrix
+
+lean_exe source_replay_bench where
+ root := `SourceReplayBench
+
+lean_lib SourceReplayControls
diff --git a/reports/data/hexrcf-source-replay-dimensions/lean-toolchain b/reports/data/hexrcf-source-replay-dimensions/lean-toolchain
new file mode 100644
index 0000000000..f0e00b3338
--- /dev/null
+++ b/reports/data/hexrcf-source-replay-dimensions/lean-toolchain
@@ -0,0 +1 @@
+leanprover/lean4:v4.35.0-rc3
diff --git a/reports/data/hexrcf-source-replay-dimensions/manifest.json b/reports/data/hexrcf-source-replay-dimensions/manifest.json
new file mode 100644
index 0000000000..b626130afa
--- /dev/null
+++ b/reports/data/hexrcf-source-replay-dimensions/manifest.json
@@ -0,0 +1,30 @@
+{
+ "source_commit": "46c6114a4fc18ace27ff8167b51866f89d1f0d23",
+ "artifacts": {
+ "README.md": "7dbdf97d82a068bba709301ebdabffff21722b78ddbb1e2b2518121024216066",
+ "analyze.py.txt": "197b2db4c00c76857d1f6b73ea48aef2495020bea882d91d159b055831646581",
+ "benchmark.lean.txt": "1558a052066168bf8fd73dbe4e151077cfa8bee94e10c1197da7625961455db8",
+ "collection.log.gz": "6c678101327afe0ccb99c47332e250244db0a2012c88dd0eb5b90f1bbbe40587",
+ "collector.py.txt": "7e7408fb5baf4c3add22b332926f8b361762b08d9a5ff5ca9acfa397cd7cf4f3",
+ "context.json": "0677ace7e802a053b833886a83992e03531a1671f59b407f424debfd9df6dca4",
+ "controls.lean.txt": "93aa73ad1cb654c20c88e6f372974c870cb0d597b0d9b3e383984c4865e4f402",
+ "dimensions-original.svg.gz": "a29c736f7ac25e816447abd148751c4656e4f840a2ea534130d06cefdb00da24",
+ "dimensions.png": "7634b574d1221bdc00ce21995902c3688823bad5581590eeeab440972712e351",
+ "dimensions.svg": "69bb9c2f5bd8007b406a84cb95466f19ea95b4ef1171c76f523405581b167471",
+ "driver.lean.txt": "3cfde59d7c6ef64ae3e896885cfcf7b113df91bfc212907b92721c74f72d4381",
+ "generator.lean.txt": "678c26e7ef76ea7f89c8750eec34a2a256cb844771cd5ccf59212d4d671a8e18",
+ "input-validation.json": "5e4d80dd8f9d66a9e3a54a314284a45c9a0b1d81aea773fd3f19bb9f22238ce4",
+ "inputs.tar.gz": "b263db5aa884fea96923c4846de8cbfb70edf750d739ad8aa6d6d8340f23877a",
+ "lake-manifest.json": "ce5bd28ade708926a54ba1fa88cecc6bd4672cd99982c042d026dd439dfa8fe2",
+ "lakefile.lean.txt": "d06e78ea84182efd13e3db006429a7ad03de1895c94e3bbcefe287d10edcf49d",
+ "lean-toolchain": "bc84812c94489d1e3e191baa1dc10d5eb684382d7fe9d2a5ab085e72c1c67e47",
+ "normalize-figure.py.txt": "5e4e790d48d3a6a1c79d85277c20bf975e16ca2dc1ab9fac0f6b53963aa9225a",
+ "preparation.tar.gz": "8da8fc5e6db158afc068ed1434161bd444eda416f348a41986398b875f9233a2",
+ "resource-audit.json": "e8ae4e68c29213dfaa99e805a5b74d57fad72ab059b3e91ef5d3b26da28e0180",
+ "run-bounded.sh.txt": "63bc5f97337e6b039bb3a9b1ba2a500be96fd1c2a2f73b43dae284aa9b18dda8",
+ "samples.tar.gz": "b4d09454728681625f32502bb415833bf587000388009a82061209f6bfadad8d",
+ "summary.json": "fdd80792e91b06291b791591c613e1edd25570d825bd3a315cc0d2a586a8e9bf",
+ "verify.py": "2adc89c638c795c62579cb19faa19d257c801af083935371b7eb122fbcc15b31"
+ },
+ "scope": "Historical compiled owner stages on supplied adapter packets; no proof admission, strict all-depth replay, full tactic timing or completion of #10358 is inferred."
+}
diff --git a/reports/data/hexrcf-source-replay-dimensions/normalize-figure.py.txt b/reports/data/hexrcf-source-replay-dimensions/normalize-figure.py.txt
new file mode 100644
index 0000000000..b7deef50ef
--- /dev/null
+++ b/reports/data/hexrcf-source-replay-dimensions/normalize-figure.py.txt
@@ -0,0 +1,3 @@
+from pathlib import Path
+p = Path('dimensions.svg')
+p.write_text('\n'.join(line.rstrip() for line in p.read_text().splitlines()) + '\n')
diff --git a/reports/data/hexrcf-source-replay-dimensions/preparation.tar.gz b/reports/data/hexrcf-source-replay-dimensions/preparation.tar.gz
new file mode 100644
index 0000000000..0fb47210a2
Binary files /dev/null and b/reports/data/hexrcf-source-replay-dimensions/preparation.tar.gz differ
diff --git a/reports/data/hexrcf-source-replay-dimensions/resource-audit.json b/reports/data/hexrcf-source-replay-dimensions/resource-audit.json
new file mode 100644
index 0000000000..f4a7cf396f
--- /dev/null
+++ b/reports/data/hexrcf-source-replay-dimensions/resource-audit.json
@@ -0,0 +1,17 @@
+{
+ "scope": "Live observation during unchanged collection. Final aggregate peak and successful exit are recorded separately in collection.log.",
+ "systemd": {
+ "ActiveState": "active",
+ "MemoryCurrent": "2336837632",
+ "MemoryPeak": "2351329280",
+ "MemoryMax": "34359738368",
+ "MemorySwapMax": "0"
+ },
+ "workers": [
+ {
+ "pid": 3664831,
+ "cpu_affinity": "38",
+ "LEAN_NUM_THREADS": "2"
+ }
+ ]
+}
diff --git a/reports/data/hexrcf-source-replay-dimensions/run-bounded.sh.txt b/reports/data/hexrcf-source-replay-dimensions/run-bounded.sh.txt
new file mode 100644
index 0000000000..2cc8636e8a
--- /dev/null
+++ b/reports/data/hexrcf-source-replay-dimensions/run-bounded.sh.txt
@@ -0,0 +1,10 @@
+#!/usr/bin/env bash
+set -euo pipefail
+exec systemd-run --user --wait --pipe --collect \
+ --unit=hex-10358-lean-build \
+ --property=MemoryMax=32G \
+ --property=MemorySwapMax=0 \
+ --property=OOMPolicy=kill \
+ --working-directory="$PWD" \
+ --setenv="PATH=$PATH" --setenv=LEAN_NUM_THREADS=2 \
+ "$@"
diff --git a/reports/data/hexrcf-source-replay-dimensions/samples.tar.gz b/reports/data/hexrcf-source-replay-dimensions/samples.tar.gz
new file mode 100644
index 0000000000..ada8ec3f6a
Binary files /dev/null and b/reports/data/hexrcf-source-replay-dimensions/samples.tar.gz differ
diff --git a/reports/data/hexrcf-source-replay-dimensions/summary.json b/reports/data/hexrcf-source-replay-dimensions/summary.json
new file mode 100644
index 0000000000..69178c23cd
--- /dev/null
+++ b/reports/data/hexrcf-source-replay-dimensions/summary.json
@@ -0,0 +1,7090 @@
+[
+ {
+ "case": "degree-2",
+ "axis": "degree",
+ "parameter": 2,
+ "degree": 2,
+ "atoms": 2,
+ "query_bits_parameter": 16,
+ "precision": 0,
+ "depth": 0,
+ "bytes": 9916,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "max_wire_integer_bits": 68,
+ "arm": "lexical",
+ "median_microseconds": 154.1228369140625,
+ "min_microseconds": 153.6930625,
+ "max_microseconds": 157.90386181640625,
+ "worker_rss_kib": [
+ 66200,
+ 68476
+ ],
+ "cli_rss_kib": [
+ 438408,
+ 448744
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 153748.40771484375,
+ "worker_rss_kib": 67508,
+ "cli_rss_kib": 438408,
+ "stem": "00-degree-2-lexical"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 153693.0625,
+ "worker_rss_kib": 68476,
+ "cli_rss_kib": 448592,
+ "stem": "01-degree-2-lexical"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 154696.58154296875,
+ "worker_rss_kib": 68448,
+ "cli_rss_kib": 448648,
+ "stem": "02-degree-2-lexical"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 157903.86181640625,
+ "worker_rss_kib": 67428,
+ "cli_rss_kib": 448628,
+ "stem": "03-degree-2-lexical"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 154122.8369140625,
+ "worker_rss_kib": 66200,
+ "cli_rss_kib": 448744,
+ "stem": "04-degree-2-lexical"
+ }
+ ],
+ "wire_integer_tokens": 1420,
+ "row_system_sizes": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_moment_json_bytes": 3217
+ },
+ {
+ "case": "degree-2",
+ "axis": "degree",
+ "parameter": 2,
+ "degree": 2,
+ "atoms": 2,
+ "query_bits_parameter": 16,
+ "precision": 0,
+ "depth": 0,
+ "bytes": 9916,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "max_wire_integer_bits": 68,
+ "arm": "parsed",
+ "median_microseconds": 574.221466796875,
+ "min_microseconds": 569.534787109375,
+ "max_microseconds": 579.7953515625,
+ "worker_rss_kib": [
+ 66088,
+ 67296
+ ],
+ "cli_rss_kib": [
+ 448496,
+ 448976
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 579795.3515625,
+ "worker_rss_kib": 67296,
+ "cli_rss_kib": 448976,
+ "stem": "00-degree-2-parsed"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 574221.466796875,
+ "worker_rss_kib": 66088,
+ "cli_rss_kib": 448612,
+ "stem": "01-degree-2-parsed"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 577242.49609375,
+ "worker_rss_kib": 66200,
+ "cli_rss_kib": 448496,
+ "stem": "02-degree-2-parsed"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 571407.724609375,
+ "worker_rss_kib": 66204,
+ "cli_rss_kib": 448592,
+ "stem": "03-degree-2-parsed"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 569534.787109375,
+ "worker_rss_kib": 66260,
+ "cli_rss_kib": 448716,
+ "stem": "04-degree-2-parsed"
+ }
+ ],
+ "wire_integer_tokens": 1420,
+ "row_system_sizes": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_moment_json_bytes": 3217
+ },
+ {
+ "case": "degree-2",
+ "axis": "degree",
+ "parameter": 2,
+ "degree": 2,
+ "atoms": 2,
+ "query_bits_parameter": 16,
+ "precision": 0,
+ "depth": 0,
+ "bytes": 9916,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "max_wire_integer_bits": 68,
+ "arm": "restored",
+ "median_microseconds": 634.8971328125,
+ "min_microseconds": 630.362873046875,
+ "max_microseconds": 650.819931640625,
+ "worker_rss_kib": [
+ 66988,
+ 67968
+ ],
+ "cli_rss_kib": [
+ 448492,
+ 448776
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 630362.873046875,
+ "worker_rss_kib": 67840,
+ "cli_rss_kib": 448608,
+ "stem": "00-degree-2-restored"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 634897.1328125,
+ "worker_rss_kib": 66988,
+ "cli_rss_kib": 448492,
+ "stem": "01-degree-2-restored"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 650819.931640625,
+ "worker_rss_kib": 67948,
+ "cli_rss_kib": 448772,
+ "stem": "02-degree-2-restored"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 638065.318359375,
+ "worker_rss_kib": 67968,
+ "cli_rss_kib": 448536,
+ "stem": "03-degree-2-restored"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 631574.345703125,
+ "worker_rss_kib": 67376,
+ "cli_rss_kib": 448776,
+ "stem": "04-degree-2-restored"
+ }
+ ],
+ "wire_integer_tokens": 1420,
+ "row_system_sizes": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_moment_json_bytes": 3217
+ },
+ {
+ "case": "degree-2",
+ "axis": "degree",
+ "parameter": 2,
+ "degree": 2,
+ "atoms": 2,
+ "query_bits_parameter": 16,
+ "precision": 0,
+ "depth": 0,
+ "bytes": 9916,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "max_wire_integer_bits": 68,
+ "arm": "replayed",
+ "median_microseconds": 836.56287890625,
+ "min_microseconds": 832.35349609375,
+ "max_microseconds": 838.19835546875,
+ "worker_rss_kib": [
+ 66476,
+ 68608
+ ],
+ "cli_rss_kib": [
+ 448488,
+ 448712
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 832353.49609375,
+ "worker_rss_kib": 68608,
+ "cli_rss_kib": 448488,
+ "stem": "00-degree-2-replayed"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 837526.01171875,
+ "worker_rss_kib": 66476,
+ "cli_rss_kib": 448704,
+ "stem": "01-degree-2-replayed"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 836562.87890625,
+ "worker_rss_kib": 66476,
+ "cli_rss_kib": 448552,
+ "stem": "02-degree-2-replayed"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 838198.35546875,
+ "worker_rss_kib": 67548,
+ "cli_rss_kib": 448488,
+ "stem": "03-degree-2-replayed"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 835885.5703125,
+ "worker_rss_kib": 67988,
+ "cli_rss_kib": 448712,
+ "stem": "04-degree-2-replayed"
+ }
+ ],
+ "wire_integer_tokens": 1420,
+ "row_system_sizes": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_moment_json_bytes": 3217
+ },
+ {
+ "case": "degree-3",
+ "axis": "degree",
+ "parameter": 3,
+ "degree": 3,
+ "atoms": 2,
+ "query_bits_parameter": 16,
+ "precision": 0,
+ "depth": 0,
+ "bytes": 11770,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "max_wire_integer_bits": 131,
+ "arm": "lexical",
+ "median_microseconds": 182.78284765625,
+ "min_microseconds": 181.68287939453126,
+ "max_microseconds": 186.11248779296875,
+ "worker_rss_kib": [
+ 66320,
+ 68172
+ ],
+ "cli_rss_kib": [
+ 448492,
+ 448844
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 185147.828125,
+ "worker_rss_kib": 66320,
+ "cli_rss_kib": 448492,
+ "stem": "00-degree-3-lexical"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 181682.87939453125,
+ "worker_rss_kib": 66892,
+ "cli_rss_kib": 448844,
+ "stem": "01-degree-3-lexical"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 182782.84765625,
+ "worker_rss_kib": 67924,
+ "cli_rss_kib": 448756,
+ "stem": "02-degree-3-lexical"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 186112.48779296875,
+ "worker_rss_kib": 68172,
+ "cli_rss_kib": 448628,
+ "stem": "03-degree-3-lexical"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 181898.1064453125,
+ "worker_rss_kib": 66440,
+ "cli_rss_kib": 448596,
+ "stem": "04-degree-3-lexical"
+ }
+ ],
+ "wire_integer_tokens": 1693,
+ "row_system_sizes": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_moment_json_bytes": 4219
+ },
+ {
+ "case": "degree-3",
+ "axis": "degree",
+ "parameter": 3,
+ "degree": 3,
+ "atoms": 2,
+ "query_bits_parameter": 16,
+ "precision": 0,
+ "depth": 0,
+ "bytes": 11770,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "max_wire_integer_bits": 131,
+ "arm": "parsed",
+ "median_microseconds": 730.30972265625,
+ "min_microseconds": 726.223556640625,
+ "max_microseconds": 736.2240078125,
+ "worker_rss_kib": [
+ 65908,
+ 68368
+ ],
+ "cli_rss_kib": [
+ 448616,
+ 448844
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 726223.556640625,
+ "worker_rss_kib": 68196,
+ "cli_rss_kib": 448616,
+ "stem": "00-degree-3-parsed"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 733650.248046875,
+ "worker_rss_kib": 66888,
+ "cli_rss_kib": 448844,
+ "stem": "01-degree-3-parsed"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 730309.72265625,
+ "worker_rss_kib": 66820,
+ "cli_rss_kib": 448824,
+ "stem": "02-degree-3-parsed"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 727066.123046875,
+ "worker_rss_kib": 68368,
+ "cli_rss_kib": 448788,
+ "stem": "03-degree-3-parsed"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 736224.0078125,
+ "worker_rss_kib": 65908,
+ "cli_rss_kib": 448748,
+ "stem": "04-degree-3-parsed"
+ }
+ ],
+ "wire_integer_tokens": 1693,
+ "row_system_sizes": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_moment_json_bytes": 4219
+ },
+ {
+ "case": "degree-3",
+ "axis": "degree",
+ "parameter": 3,
+ "degree": 3,
+ "atoms": 2,
+ "query_bits_parameter": 16,
+ "precision": 0,
+ "depth": 0,
+ "bytes": 11770,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "max_wire_integer_bits": 131,
+ "arm": "restored",
+ "median_microseconds": 813.18579296875,
+ "min_microseconds": 810.13619921875,
+ "max_microseconds": 814.348890625,
+ "worker_rss_kib": [
+ 66588,
+ 66760
+ ],
+ "cli_rss_kib": [
+ 448480,
+ 448688
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 810136.19921875,
+ "worker_rss_kib": 66760,
+ "cli_rss_kib": 448480,
+ "stem": "00-degree-3-restored"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 814348.890625,
+ "worker_rss_kib": 66588,
+ "cli_rss_kib": 448664,
+ "stem": "01-degree-3-restored"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 811818.08984375,
+ "worker_rss_kib": 66656,
+ "cli_rss_kib": 448660,
+ "stem": "02-degree-3-restored"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 813267.19140625,
+ "worker_rss_kib": 66624,
+ "cli_rss_kib": 448500,
+ "stem": "03-degree-3-restored"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 813185.79296875,
+ "worker_rss_kib": 66728,
+ "cli_rss_kib": 448688,
+ "stem": "04-degree-3-restored"
+ }
+ ],
+ "wire_integer_tokens": 1693,
+ "row_system_sizes": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_moment_json_bytes": 4219
+ },
+ {
+ "case": "degree-3",
+ "axis": "degree",
+ "parameter": 3,
+ "degree": 3,
+ "atoms": 2,
+ "query_bits_parameter": 16,
+ "precision": 0,
+ "depth": 0,
+ "bytes": 11770,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "max_wire_integer_bits": 131,
+ "arm": "replayed",
+ "median_microseconds": 1078.368015625,
+ "min_microseconds": 1074.464265625,
+ "max_microseconds": 1088.8495,
+ "worker_rss_kib": [
+ 66712,
+ 68552
+ ],
+ "cli_rss_kib": [
+ 448576,
+ 448760
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 1080912.26171875,
+ "worker_rss_kib": 66796,
+ "cli_rss_kib": 448576,
+ "stem": "00-degree-3-replayed"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 1078151.88671875,
+ "worker_rss_kib": 68552,
+ "cli_rss_kib": 448728,
+ "stem": "01-degree-3-replayed"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 1074464.265625,
+ "worker_rss_kib": 67560,
+ "cli_rss_kib": 448592,
+ "stem": "02-degree-3-replayed"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 1088849.5,
+ "worker_rss_kib": 68476,
+ "cli_rss_kib": 448688,
+ "stem": "03-degree-3-replayed"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 1078368.015625,
+ "worker_rss_kib": 66712,
+ "cli_rss_kib": 448760,
+ "stem": "04-degree-3-replayed"
+ }
+ ],
+ "wire_integer_tokens": 1693,
+ "row_system_sizes": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_moment_json_bytes": 4219
+ },
+ {
+ "case": "degree-4",
+ "axis": "degree",
+ "parameter": 4,
+ "degree": 4,
+ "atoms": 2,
+ "query_bits_parameter": 16,
+ "precision": 0,
+ "depth": 0,
+ "bytes": 13110,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "max_wire_integer_bits": 169,
+ "arm": "lexical",
+ "median_microseconds": 202.7236865234375,
+ "min_microseconds": 201.6257216796875,
+ "max_microseconds": 204.84858984375,
+ "worker_rss_kib": [
+ 61936,
+ 67964
+ ],
+ "cli_rss_kib": [
+ 448460,
+ 448788
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 202723.6865234375,
+ "worker_rss_kib": 66744,
+ "cli_rss_kib": 448616,
+ "stem": "00-degree-4-lexical"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 203581.9560546875,
+ "worker_rss_kib": 67292,
+ "cli_rss_kib": 448560,
+ "stem": "01-degree-4-lexical"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 204848.58984375,
+ "worker_rss_kib": 67952,
+ "cli_rss_kib": 448788,
+ "stem": "02-degree-4-lexical"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 201917.4482421875,
+ "worker_rss_kib": 61936,
+ "cli_rss_kib": 448460,
+ "stem": "03-degree-4-lexical"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 201625.7216796875,
+ "worker_rss_kib": 67964,
+ "cli_rss_kib": 448728,
+ "stem": "04-degree-4-lexical"
+ }
+ ],
+ "wire_integer_tokens": 1918,
+ "row_system_sizes": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_moment_json_bytes": 4855
+ },
+ {
+ "case": "degree-4",
+ "axis": "degree",
+ "parameter": 4,
+ "degree": 4,
+ "atoms": 2,
+ "query_bits_parameter": 16,
+ "precision": 0,
+ "depth": 0,
+ "bytes": 13110,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "max_wire_integer_bits": 169,
+ "arm": "parsed",
+ "median_microseconds": 850.450890625,
+ "min_microseconds": 840.94267578125,
+ "max_microseconds": 855.25911328125,
+ "worker_rss_kib": [
+ 66500,
+ 68116
+ ],
+ "cli_rss_kib": [
+ 448520,
+ 448764
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 844287.31640625,
+ "worker_rss_kib": 67056,
+ "cli_rss_kib": 448520,
+ "stem": "00-degree-4-parsed"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 852973.25390625,
+ "worker_rss_kib": 67408,
+ "cli_rss_kib": 448616,
+ "stem": "01-degree-4-parsed"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 855259.11328125,
+ "worker_rss_kib": 66500,
+ "cli_rss_kib": 448764,
+ "stem": "02-degree-4-parsed"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 850450.890625,
+ "worker_rss_kib": 67376,
+ "cli_rss_kib": 448628,
+ "stem": "03-degree-4-parsed"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 840942.67578125,
+ "worker_rss_kib": 68116,
+ "cli_rss_kib": 448664,
+ "stem": "04-degree-4-parsed"
+ }
+ ],
+ "wire_integer_tokens": 1918,
+ "row_system_sizes": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_moment_json_bytes": 4855
+ },
+ {
+ "case": "degree-4",
+ "axis": "degree",
+ "parameter": 4,
+ "degree": 4,
+ "atoms": 2,
+ "query_bits_parameter": 16,
+ "precision": 0,
+ "depth": 0,
+ "bytes": 13110,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "max_wire_integer_bits": 169,
+ "arm": "restored",
+ "median_microseconds": 938.31679296875,
+ "min_microseconds": 934.8112421875,
+ "max_microseconds": 947.01176171875,
+ "worker_rss_kib": [
+ 66592,
+ 68952
+ ],
+ "cli_rss_kib": [
+ 448596,
+ 448788
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 938316.79296875,
+ "worker_rss_kib": 68952,
+ "cli_rss_kib": 448596,
+ "stem": "00-degree-4-restored"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 940310.40625,
+ "worker_rss_kib": 66592,
+ "cli_rss_kib": 448652,
+ "stem": "01-degree-4-restored"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 947011.76171875,
+ "worker_rss_kib": 66860,
+ "cli_rss_kib": 448788,
+ "stem": "02-degree-4-restored"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 937591.9453125,
+ "worker_rss_kib": 68688,
+ "cli_rss_kib": 448664,
+ "stem": "03-degree-4-restored"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 934811.2421875,
+ "worker_rss_kib": 66740,
+ "cli_rss_kib": 448648,
+ "stem": "04-degree-4-restored"
+ }
+ ],
+ "wire_integer_tokens": 1918,
+ "row_system_sizes": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_moment_json_bytes": 4855
+ },
+ {
+ "case": "degree-4",
+ "axis": "degree",
+ "parameter": 4,
+ "degree": 4,
+ "atoms": 2,
+ "query_bits_parameter": 16,
+ "precision": 0,
+ "depth": 0,
+ "bytes": 13110,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "max_wire_integer_bits": 169,
+ "arm": "replayed",
+ "median_microseconds": 1254.2557890625,
+ "min_microseconds": 1249.89203125,
+ "max_microseconds": 1260.44241015625,
+ "worker_rss_kib": [
+ 67064,
+ 69012
+ ],
+ "cli_rss_kib": [
+ 448704,
+ 448784
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 1249892.03125,
+ "worker_rss_kib": 68260,
+ "cli_rss_kib": 448772,
+ "stem": "00-degree-4-replayed"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 1256439.51171875,
+ "worker_rss_kib": 67860,
+ "cli_rss_kib": 448784,
+ "stem": "01-degree-4-replayed"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 1260442.41015625,
+ "worker_rss_kib": 69012,
+ "cli_rss_kib": 448728,
+ "stem": "02-degree-4-replayed"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 1252847.23046875,
+ "worker_rss_kib": 67732,
+ "cli_rss_kib": 448760,
+ "stem": "03-degree-4-replayed"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 1254255.7890625,
+ "worker_rss_kib": 67064,
+ "cli_rss_kib": 448704,
+ "stem": "04-degree-4-replayed"
+ }
+ ],
+ "wire_integer_tokens": 1918,
+ "row_system_sizes": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_moment_json_bytes": 4855
+ },
+ {
+ "case": "degree-5",
+ "axis": "degree",
+ "parameter": 5,
+ "degree": 5,
+ "atoms": 2,
+ "query_bits_parameter": 16,
+ "precision": 0,
+ "depth": 0,
+ "bytes": 14259,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "max_wire_integer_bits": 203,
+ "arm": "lexical",
+ "median_microseconds": 219.9871650390625,
+ "min_microseconds": 218.323376953125,
+ "max_microseconds": 236.695697265625,
+ "worker_rss_kib": [
+ 66100,
+ 67984
+ ],
+ "cli_rss_kib": [
+ 448556,
+ 448788
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 220504.01171875,
+ "worker_rss_kib": 67984,
+ "cli_rss_kib": 448628,
+ "stem": "00-degree-5-lexical"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 219987.1650390625,
+ "worker_rss_kib": 66132,
+ "cli_rss_kib": 448780,
+ "stem": "01-degree-5-lexical"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 236695.697265625,
+ "worker_rss_kib": 66100,
+ "cli_rss_kib": 448556,
+ "stem": "02-degree-5-lexical"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 219542.34765625,
+ "worker_rss_kib": 66432,
+ "cli_rss_kib": 448788,
+ "stem": "03-degree-5-lexical"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 218323.376953125,
+ "worker_rss_kib": 66528,
+ "cli_rss_kib": 448700,
+ "stem": "04-degree-5-lexical"
+ }
+ ],
+ "wire_integer_tokens": 2101,
+ "row_system_sizes": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_moment_json_bytes": 5420
+ },
+ {
+ "case": "degree-5",
+ "axis": "degree",
+ "parameter": 5,
+ "degree": 5,
+ "atoms": 2,
+ "query_bits_parameter": 16,
+ "precision": 0,
+ "depth": 0,
+ "bytes": 14259,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "max_wire_integer_bits": 203,
+ "arm": "parsed",
+ "median_microseconds": 952.64295703125,
+ "min_microseconds": 949.3398046875,
+ "max_microseconds": 955.34466015625,
+ "worker_rss_kib": [
+ 66240,
+ 68188
+ ],
+ "cli_rss_kib": [
+ 448576,
+ 448772
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 955101.39453125,
+ "worker_rss_kib": 68188,
+ "cli_rss_kib": 448680,
+ "stem": "00-degree-5-parsed"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 949339.8046875,
+ "worker_rss_kib": 67664,
+ "cli_rss_kib": 448576,
+ "stem": "01-degree-5-parsed"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 952642.95703125,
+ "worker_rss_kib": 66240,
+ "cli_rss_kib": 448772,
+ "stem": "02-degree-5-parsed"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 955344.66015625,
+ "worker_rss_kib": 67072,
+ "cli_rss_kib": 448668,
+ "stem": "03-degree-5-parsed"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 951421.71484375,
+ "worker_rss_kib": 68112,
+ "cli_rss_kib": 448672,
+ "stem": "04-degree-5-parsed"
+ }
+ ],
+ "wire_integer_tokens": 2101,
+ "row_system_sizes": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_moment_json_bytes": 5420
+ },
+ {
+ "case": "degree-5",
+ "axis": "degree",
+ "parameter": 5,
+ "degree": 5,
+ "atoms": 2,
+ "query_bits_parameter": 16,
+ "precision": 0,
+ "depth": 0,
+ "bytes": 14259,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "max_wire_integer_bits": 203,
+ "arm": "restored",
+ "median_microseconds": 1062.61834375,
+ "min_microseconds": 1061.36933203125,
+ "max_microseconds": 1068.4951171875,
+ "worker_rss_kib": [
+ 66724,
+ 68736
+ ],
+ "cli_rss_kib": [
+ 448452,
+ 448716
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 1062661.81640625,
+ "worker_rss_kib": 67448,
+ "cli_rss_kib": 448452,
+ "stem": "00-degree-5-restored"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 1061369.33203125,
+ "worker_rss_kib": 66724,
+ "cli_rss_kib": 448600,
+ "stem": "01-degree-5-restored"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 1061603.88671875,
+ "worker_rss_kib": 67476,
+ "cli_rss_kib": 448704,
+ "stem": "02-degree-5-restored"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 1068495.1171875,
+ "worker_rss_kib": 68736,
+ "cli_rss_kib": 448716,
+ "stem": "03-degree-5-restored"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 1062618.34375,
+ "worker_rss_kib": 67000,
+ "cli_rss_kib": 448516,
+ "stem": "04-degree-5-restored"
+ }
+ ],
+ "wire_integer_tokens": 2101,
+ "row_system_sizes": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_moment_json_bytes": 5420
+ },
+ {
+ "case": "degree-5",
+ "axis": "degree",
+ "parameter": 5,
+ "degree": 5,
+ "atoms": 2,
+ "query_bits_parameter": 16,
+ "precision": 0,
+ "depth": 0,
+ "bytes": 14259,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "max_wire_integer_bits": 203,
+ "arm": "replayed",
+ "median_microseconds": 1424.6275859375,
+ "min_microseconds": 1421.14147265625,
+ "max_microseconds": 1436.63782421875,
+ "worker_rss_kib": [
+ 67572,
+ 68516
+ ],
+ "cli_rss_kib": [
+ 448584,
+ 448800
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 1424432.8984375,
+ "worker_rss_kib": 67812,
+ "cli_rss_kib": 448688,
+ "stem": "00-degree-5-replayed"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 1426980.7890625,
+ "worker_rss_kib": 68516,
+ "cli_rss_kib": 448800,
+ "stem": "01-degree-5-replayed"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 1436637.82421875,
+ "worker_rss_kib": 68484,
+ "cli_rss_kib": 448584,
+ "stem": "02-degree-5-replayed"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 1424627.5859375,
+ "worker_rss_kib": 67572,
+ "cli_rss_kib": 448672,
+ "stem": "03-degree-5-replayed"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 1421141.47265625,
+ "worker_rss_kib": 67592,
+ "cli_rss_kib": 448656,
+ "stem": "04-degree-5-replayed"
+ }
+ ],
+ "wire_integer_tokens": 2101,
+ "row_system_sizes": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_moment_json_bytes": 5420
+ },
+ {
+ "case": "atoms-1",
+ "axis": "atoms",
+ "parameter": 1,
+ "degree": 2,
+ "atoms": 1,
+ "query_bits_parameter": 16,
+ "precision": 0,
+ "depth": 0,
+ "bytes": 4899,
+ "row_unique_nodes": 1,
+ "row_expanded_nodes": 1,
+ "max_wire_integer_bits": 66,
+ "arm": "lexical",
+ "median_microseconds": 76.37379663085937,
+ "min_microseconds": 75.924818359375,
+ "max_microseconds": 76.58604125976562,
+ "worker_rss_kib": [
+ 59972,
+ 68516
+ ],
+ "cli_rss_kib": [
+ 448464,
+ 448776
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 76373.79663085938,
+ "worker_rss_kib": 66744,
+ "cli_rss_kib": 448608,
+ "stem": "00-atoms-1-lexical"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 76294.232421875,
+ "worker_rss_kib": 68516,
+ "cli_rss_kib": 448776,
+ "stem": "01-atoms-1-lexical"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 76586.04125976562,
+ "worker_rss_kib": 66836,
+ "cli_rss_kib": 448772,
+ "stem": "02-atoms-1-lexical"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 75924.818359375,
+ "worker_rss_kib": 59972,
+ "cli_rss_kib": 448464,
+ "stem": "03-atoms-1-lexical"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 76411.40014648438,
+ "worker_rss_kib": 65788,
+ "cli_rss_kib": 448664,
+ "stem": "04-atoms-1-lexical"
+ }
+ ],
+ "wire_integer_tokens": 700,
+ "row_system_sizes": [
+ 3
+ ],
+ "row_ranks": [
+ 1
+ ],
+ "row_moment_counts": [
+ 3
+ ],
+ "row_moment_json_bytes": 1403
+ },
+ {
+ "case": "atoms-1",
+ "axis": "atoms",
+ "parameter": 1,
+ "degree": 2,
+ "atoms": 1,
+ "query_bits_parameter": 16,
+ "precision": 0,
+ "depth": 0,
+ "bytes": 4899,
+ "row_unique_nodes": 1,
+ "row_expanded_nodes": 1,
+ "max_wire_integer_bits": 66,
+ "arm": "parsed",
+ "median_microseconds": 285.3785478515625,
+ "min_microseconds": 284.6093505859375,
+ "max_microseconds": 287.759224609375,
+ "worker_rss_kib": [
+ 60512,
+ 67036
+ ],
+ "cli_rss_kib": [
+ 448640,
+ 448724
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 284609.3505859375,
+ "worker_rss_kib": 66352,
+ "cli_rss_kib": 448700,
+ "stem": "00-atoms-1-parsed"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 287759.224609375,
+ "worker_rss_kib": 67036,
+ "cli_rss_kib": 448648,
+ "stem": "01-atoms-1-parsed"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 286215.17578125,
+ "worker_rss_kib": 66900,
+ "cli_rss_kib": 448724,
+ "stem": "02-atoms-1-parsed"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 285378.5478515625,
+ "worker_rss_kib": 60512,
+ "cli_rss_kib": 448720,
+ "stem": "03-atoms-1-parsed"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 284865.6748046875,
+ "worker_rss_kib": 65872,
+ "cli_rss_kib": 448640,
+ "stem": "04-atoms-1-parsed"
+ }
+ ],
+ "wire_integer_tokens": 700,
+ "row_system_sizes": [
+ 3
+ ],
+ "row_ranks": [
+ 1
+ ],
+ "row_moment_counts": [
+ 3
+ ],
+ "row_moment_json_bytes": 1403
+ },
+ {
+ "case": "atoms-1",
+ "axis": "atoms",
+ "parameter": 1,
+ "degree": 2,
+ "atoms": 1,
+ "query_bits_parameter": 16,
+ "precision": 0,
+ "depth": 0,
+ "bytes": 4899,
+ "row_unique_nodes": 1,
+ "row_expanded_nodes": 1,
+ "max_wire_integer_bits": 66,
+ "arm": "restored",
+ "median_microseconds": 345.0767412109375,
+ "min_microseconds": 343.83598046875,
+ "max_microseconds": 347.2502919921875,
+ "worker_rss_kib": [
+ 66420,
+ 68336
+ ],
+ "cli_rss_kib": [
+ 448548,
+ 448632
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 347250.2919921875,
+ "worker_rss_kib": 67084,
+ "cli_rss_kib": 448596,
+ "stem": "00-atoms-1-restored"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 343968.3564453125,
+ "worker_rss_kib": 66840,
+ "cli_rss_kib": 448628,
+ "stem": "01-atoms-1-restored"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 345076.7412109375,
+ "worker_rss_kib": 66420,
+ "cli_rss_kib": 448596,
+ "stem": "02-atoms-1-restored"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 343835.98046875,
+ "worker_rss_kib": 68336,
+ "cli_rss_kib": 448548,
+ "stem": "03-atoms-1-restored"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 345577.71875,
+ "worker_rss_kib": 67864,
+ "cli_rss_kib": 448632,
+ "stem": "04-atoms-1-restored"
+ }
+ ],
+ "wire_integer_tokens": 700,
+ "row_system_sizes": [
+ 3
+ ],
+ "row_ranks": [
+ 1
+ ],
+ "row_moment_counts": [
+ 3
+ ],
+ "row_moment_json_bytes": 1403
+ },
+ {
+ "case": "atoms-1",
+ "axis": "atoms",
+ "parameter": 1,
+ "degree": 2,
+ "atoms": 1,
+ "query_bits_parameter": 16,
+ "precision": 0,
+ "depth": 0,
+ "bytes": 4899,
+ "row_unique_nodes": 1,
+ "row_expanded_nodes": 1,
+ "max_wire_integer_bits": 66,
+ "arm": "replayed",
+ "median_microseconds": 435.51202734375,
+ "min_microseconds": 429.274181640625,
+ "max_microseconds": 491.176484375,
+ "worker_rss_kib": [
+ 66504,
+ 69136
+ ],
+ "cli_rss_kib": [
+ 448604,
+ 448672
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 435512.02734375,
+ "worker_rss_kib": 69136,
+ "cli_rss_kib": 448636,
+ "stem": "00-atoms-1-replayed"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 432717.5234375,
+ "worker_rss_kib": 68072,
+ "cli_rss_kib": 448672,
+ "stem": "01-atoms-1-replayed"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 491176.484375,
+ "worker_rss_kib": 66504,
+ "cli_rss_kib": 448604,
+ "stem": "02-atoms-1-replayed"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 429274.181640625,
+ "worker_rss_kib": 68424,
+ "cli_rss_kib": 448640,
+ "stem": "03-atoms-1-replayed"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 442498.611328125,
+ "worker_rss_kib": 67384,
+ "cli_rss_kib": 448632,
+ "stem": "04-atoms-1-replayed"
+ }
+ ],
+ "wire_integer_tokens": 700,
+ "row_system_sizes": [
+ 3
+ ],
+ "row_ranks": [
+ 1
+ ],
+ "row_moment_counts": [
+ 3
+ ],
+ "row_moment_json_bytes": 1403
+ },
+ {
+ "case": "atoms-2",
+ "axis": "atoms",
+ "parameter": 2,
+ "degree": 2,
+ "atoms": 2,
+ "query_bits_parameter": 16,
+ "precision": 0,
+ "depth": 0,
+ "bytes": 9916,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "max_wire_integer_bits": 68,
+ "arm": "lexical",
+ "median_microseconds": 154.21555517578125,
+ "min_microseconds": 153.95242041015624,
+ "max_microseconds": 156.79178857421874,
+ "worker_rss_kib": [
+ 59648,
+ 68348
+ ],
+ "cli_rss_kib": [
+ 448472,
+ 448832
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 154215.55517578125,
+ "worker_rss_kib": 66292,
+ "cli_rss_kib": 448752,
+ "stem": "00-atoms-2-lexical"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 153952.42041015625,
+ "worker_rss_kib": 68348,
+ "cli_rss_kib": 448704,
+ "stem": "01-atoms-2-lexical"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 156791.78857421875,
+ "worker_rss_kib": 66916,
+ "cli_rss_kib": 448472,
+ "stem": "02-atoms-2-lexical"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 156239.7509765625,
+ "worker_rss_kib": 59648,
+ "cli_rss_kib": 448708,
+ "stem": "03-atoms-2-lexical"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 154201.04931640625,
+ "worker_rss_kib": 67748,
+ "cli_rss_kib": 448832,
+ "stem": "04-atoms-2-lexical"
+ }
+ ],
+ "wire_integer_tokens": 1420,
+ "row_system_sizes": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_moment_json_bytes": 3217
+ },
+ {
+ "case": "atoms-2",
+ "axis": "atoms",
+ "parameter": 2,
+ "degree": 2,
+ "atoms": 2,
+ "query_bits_parameter": 16,
+ "precision": 0,
+ "depth": 0,
+ "bytes": 9916,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "max_wire_integer_bits": 68,
+ "arm": "parsed",
+ "median_microseconds": 573.013419921875,
+ "min_microseconds": 571.790345703125,
+ "max_microseconds": 577.538783203125,
+ "worker_rss_kib": [
+ 61144,
+ 68084
+ ],
+ "cli_rss_kib": [
+ 448424,
+ 448768
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 572926.1875,
+ "worker_rss_kib": 67188,
+ "cli_rss_kib": 448424,
+ "stem": "00-atoms-2-parsed"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 575049.162109375,
+ "worker_rss_kib": 68048,
+ "cli_rss_kib": 448652,
+ "stem": "01-atoms-2-parsed"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 577538.783203125,
+ "worker_rss_kib": 67548,
+ "cli_rss_kib": 448556,
+ "stem": "02-atoms-2-parsed"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 571790.345703125,
+ "worker_rss_kib": 61144,
+ "cli_rss_kib": 448768,
+ "stem": "03-atoms-2-parsed"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 573013.419921875,
+ "worker_rss_kib": 68084,
+ "cli_rss_kib": 448648,
+ "stem": "04-atoms-2-parsed"
+ }
+ ],
+ "wire_integer_tokens": 1420,
+ "row_system_sizes": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_moment_json_bytes": 3217
+ },
+ {
+ "case": "atoms-2",
+ "axis": "atoms",
+ "parameter": 2,
+ "degree": 2,
+ "atoms": 2,
+ "query_bits_parameter": 16,
+ "precision": 0,
+ "depth": 0,
+ "bytes": 9916,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "max_wire_integer_bits": 68,
+ "arm": "restored",
+ "median_microseconds": 636.784498046875,
+ "min_microseconds": 632.43637109375,
+ "max_microseconds": 640.141525390625,
+ "worker_rss_kib": [
+ 60848,
+ 67468
+ ],
+ "cli_rss_kib": [
+ 448544,
+ 448816
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 640141.525390625,
+ "worker_rss_kib": 67144,
+ "cli_rss_kib": 448684,
+ "stem": "00-atoms-2-restored"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 632436.37109375,
+ "worker_rss_kib": 67372,
+ "cli_rss_kib": 448712,
+ "stem": "01-atoms-2-restored"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 639746.7734375,
+ "worker_rss_kib": 67468,
+ "cli_rss_kib": 448716,
+ "stem": "02-atoms-2-restored"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 636784.498046875,
+ "worker_rss_kib": 60848,
+ "cli_rss_kib": 448544,
+ "stem": "03-atoms-2-restored"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 635239.837890625,
+ "worker_rss_kib": 66216,
+ "cli_rss_kib": 448816,
+ "stem": "04-atoms-2-restored"
+ }
+ ],
+ "wire_integer_tokens": 1420,
+ "row_system_sizes": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_moment_json_bytes": 3217
+ },
+ {
+ "case": "atoms-2",
+ "axis": "atoms",
+ "parameter": 2,
+ "degree": 2,
+ "atoms": 2,
+ "query_bits_parameter": 16,
+ "precision": 0,
+ "depth": 0,
+ "bytes": 9916,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "max_wire_integer_bits": 68,
+ "arm": "replayed",
+ "median_microseconds": 838.4017890625,
+ "min_microseconds": 833.0879765625,
+ "max_microseconds": 840.07819140625,
+ "worker_rss_kib": [
+ 62784,
+ 68496
+ ],
+ "cli_rss_kib": [
+ 448500,
+ 448832
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 838723.99609375,
+ "worker_rss_kib": 67792,
+ "cli_rss_kib": 448684,
+ "stem": "00-atoms-2-replayed"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 833087.9765625,
+ "worker_rss_kib": 66556,
+ "cli_rss_kib": 448500,
+ "stem": "01-atoms-2-replayed"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 838330.3984375,
+ "worker_rss_kib": 68496,
+ "cli_rss_kib": 448832,
+ "stem": "02-atoms-2-replayed"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 838401.7890625,
+ "worker_rss_kib": 62784,
+ "cli_rss_kib": 448788,
+ "stem": "03-atoms-2-replayed"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 840078.19140625,
+ "worker_rss_kib": 68260,
+ "cli_rss_kib": 448696,
+ "stem": "04-atoms-2-replayed"
+ }
+ ],
+ "wire_integer_tokens": 1420,
+ "row_system_sizes": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_moment_json_bytes": 3217
+ },
+ {
+ "case": "atoms-3",
+ "axis": "atoms",
+ "parameter": 3,
+ "degree": 2,
+ "atoms": 3,
+ "query_bits_parameter": 16,
+ "precision": 0,
+ "depth": 0,
+ "bytes": 15093,
+ "row_unique_nodes": 5,
+ "row_expanded_nodes": 5,
+ "max_wire_integer_bits": 72,
+ "arm": "lexical",
+ "median_microseconds": 236.0223515625,
+ "min_microseconds": 233.3285654296875,
+ "max_microseconds": 236.3486611328125,
+ "worker_rss_kib": [
+ 66584,
+ 68512
+ ],
+ "cli_rss_kib": [
+ 448540,
+ 448640
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 233328.5654296875,
+ "worker_rss_kib": 67400,
+ "cli_rss_kib": 448624,
+ "stem": "00-atoms-3-lexical"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 233626.599609375,
+ "worker_rss_kib": 68512,
+ "cli_rss_kib": 448540,
+ "stem": "01-atoms-3-lexical"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 236027.521484375,
+ "worker_rss_kib": 67240,
+ "cli_rss_kib": 448544,
+ "stem": "02-atoms-3-lexical"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 236348.6611328125,
+ "worker_rss_kib": 67560,
+ "cli_rss_kib": 448620,
+ "stem": "03-atoms-3-lexical"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 236022.3515625,
+ "worker_rss_kib": 66584,
+ "cli_rss_kib": 448640,
+ "stem": "04-atoms-3-lexical"
+ }
+ ],
+ "wire_integer_tokens": 2161,
+ "row_system_sizes": [
+ 3,
+ 3,
+ 3,
+ 1,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 3,
+ 3,
+ 1,
+ 1
+ ],
+ "row_moment_json_bytes": 5045
+ },
+ {
+ "case": "atoms-3",
+ "axis": "atoms",
+ "parameter": 3,
+ "degree": 2,
+ "atoms": 3,
+ "query_bits_parameter": 16,
+ "precision": 0,
+ "depth": 0,
+ "bytes": 15093,
+ "row_unique_nodes": 5,
+ "row_expanded_nodes": 5,
+ "max_wire_integer_bits": 72,
+ "arm": "parsed",
+ "median_microseconds": 862.26558984375,
+ "min_microseconds": 858.41587109375,
+ "max_microseconds": 889.06898828125,
+ "worker_rss_kib": [
+ 62184,
+ 67672
+ ],
+ "cli_rss_kib": [
+ 448604,
+ 448732
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 859891.34375,
+ "worker_rss_kib": 66432,
+ "cli_rss_kib": 448632,
+ "stem": "00-atoms-3-parsed"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 858415.87109375,
+ "worker_rss_kib": 67672,
+ "cli_rss_kib": 448664,
+ "stem": "01-atoms-3-parsed"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 889068.98828125,
+ "worker_rss_kib": 66236,
+ "cli_rss_kib": 448604,
+ "stem": "02-atoms-3-parsed"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 862265.58984375,
+ "worker_rss_kib": 62184,
+ "cli_rss_kib": 448648,
+ "stem": "03-atoms-3-parsed"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 876372.95703125,
+ "worker_rss_kib": 65784,
+ "cli_rss_kib": 448732,
+ "stem": "04-atoms-3-parsed"
+ }
+ ],
+ "wire_integer_tokens": 2161,
+ "row_system_sizes": [
+ 3,
+ 3,
+ 3,
+ 1,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 3,
+ 3,
+ 1,
+ 1
+ ],
+ "row_moment_json_bytes": 5045
+ },
+ {
+ "case": "atoms-3",
+ "axis": "atoms",
+ "parameter": 3,
+ "degree": 2,
+ "atoms": 3,
+ "query_bits_parameter": 16,
+ "precision": 0,
+ "depth": 0,
+ "bytes": 15093,
+ "row_unique_nodes": 5,
+ "row_expanded_nodes": 5,
+ "max_wire_integer_bits": 72,
+ "arm": "restored",
+ "median_microseconds": 933.5219921875,
+ "min_microseconds": 932.7653828125,
+ "max_microseconds": 951.8177578125,
+ "worker_rss_kib": [
+ 61656,
+ 67848
+ ],
+ "cli_rss_kib": [
+ 448576,
+ 448760
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 933521.9921875,
+ "worker_rss_kib": 67848,
+ "cli_rss_kib": 448760,
+ "stem": "00-atoms-3-restored"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 933004.01171875,
+ "worker_rss_kib": 66480,
+ "cli_rss_kib": 448684,
+ "stem": "01-atoms-3-restored"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 951817.7578125,
+ "worker_rss_kib": 66664,
+ "cli_rss_kib": 448584,
+ "stem": "02-atoms-3-restored"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 932765.3828125,
+ "worker_rss_kib": 61656,
+ "cli_rss_kib": 448736,
+ "stem": "03-atoms-3-restored"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 934021.48046875,
+ "worker_rss_kib": 66316,
+ "cli_rss_kib": 448576,
+ "stem": "04-atoms-3-restored"
+ }
+ ],
+ "wire_integer_tokens": 2161,
+ "row_system_sizes": [
+ 3,
+ 3,
+ 3,
+ 1,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 3,
+ 3,
+ 1,
+ 1
+ ],
+ "row_moment_json_bytes": 5045
+ },
+ {
+ "case": "atoms-3",
+ "axis": "atoms",
+ "parameter": 3,
+ "degree": 2,
+ "atoms": 3,
+ "query_bits_parameter": 16,
+ "precision": 0,
+ "depth": 0,
+ "bytes": 15093,
+ "row_unique_nodes": 5,
+ "row_expanded_nodes": 5,
+ "max_wire_integer_bits": 72,
+ "arm": "replayed",
+ "median_microseconds": 1244.94824609375,
+ "min_microseconds": 1237.617671875,
+ "max_microseconds": 1256.38744140625,
+ "worker_rss_kib": [
+ 66688,
+ 69032
+ ],
+ "cli_rss_kib": [
+ 448596,
+ 448788
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 1237617.671875,
+ "worker_rss_kib": 66688,
+ "cli_rss_kib": 448612,
+ "stem": "00-atoms-3-replayed"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 1247193.3828125,
+ "worker_rss_kib": 67068,
+ "cli_rss_kib": 448788,
+ "stem": "01-atoms-3-replayed"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 1242102.28125,
+ "worker_rss_kib": 69032,
+ "cli_rss_kib": 448732,
+ "stem": "02-atoms-3-replayed"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 1256387.44140625,
+ "worker_rss_kib": 66756,
+ "cli_rss_kib": 448596,
+ "stem": "03-atoms-3-replayed"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 1244948.24609375,
+ "worker_rss_kib": 66728,
+ "cli_rss_kib": 448720,
+ "stem": "04-atoms-3-replayed"
+ }
+ ],
+ "wire_integer_tokens": 2161,
+ "row_system_sizes": [
+ 3,
+ 3,
+ 3,
+ 1,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 3,
+ 3,
+ 1,
+ 1
+ ],
+ "row_moment_json_bytes": 5045
+ },
+ {
+ "case": "atoms-4",
+ "axis": "atoms",
+ "parameter": 4,
+ "degree": 2,
+ "atoms": 4,
+ "query_bits_parameter": 16,
+ "precision": 0,
+ "depth": 0,
+ "bytes": 20269,
+ "row_unique_nodes": 7,
+ "row_expanded_nodes": 7,
+ "max_wire_integer_bits": 72,
+ "arm": "lexical",
+ "median_microseconds": 317.888818359375,
+ "min_microseconds": 313.1492763671875,
+ "max_microseconds": 320.494943359375,
+ "worker_rss_kib": [
+ 66216,
+ 67992
+ ],
+ "cli_rss_kib": [
+ 448516,
+ 448704
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 314991.7021484375,
+ "worker_rss_kib": 66360,
+ "cli_rss_kib": 448516,
+ "stem": "00-atoms-4-lexical"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 313149.2763671875,
+ "worker_rss_kib": 67992,
+ "cli_rss_kib": 448640,
+ "stem": "01-atoms-4-lexical"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 320494.943359375,
+ "worker_rss_kib": 66336,
+ "cli_rss_kib": 448580,
+ "stem": "02-atoms-4-lexical"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 317888.818359375,
+ "worker_rss_kib": 66216,
+ "cli_rss_kib": 448704,
+ "stem": "03-atoms-4-lexical"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 319906.9228515625,
+ "worker_rss_kib": 66604,
+ "cli_rss_kib": 448528,
+ "stem": "04-atoms-4-lexical"
+ }
+ ],
+ "wire_integer_tokens": 2902,
+ "row_system_sizes": [
+ 3,
+ 3,
+ 1,
+ 3,
+ 3,
+ 1,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 3,
+ 1,
+ 3,
+ 3,
+ 1,
+ 1
+ ],
+ "row_moment_json_bytes": 6873
+ },
+ {
+ "case": "atoms-4",
+ "axis": "atoms",
+ "parameter": 4,
+ "degree": 2,
+ "atoms": 4,
+ "query_bits_parameter": 16,
+ "precision": 0,
+ "depth": 0,
+ "bytes": 20269,
+ "row_unique_nodes": 7,
+ "row_expanded_nodes": 7,
+ "max_wire_integer_bits": 72,
+ "arm": "parsed",
+ "median_microseconds": 1166.21869921875,
+ "min_microseconds": 1156.0005,
+ "max_microseconds": 1173.5166171875,
+ "worker_rss_kib": [
+ 66240,
+ 68236
+ ],
+ "cli_rss_kib": [
+ 448424,
+ 448848
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 1156000.5,
+ "worker_rss_kib": 66960,
+ "cli_rss_kib": 448424,
+ "stem": "00-atoms-4-parsed"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 1163492.6015625,
+ "worker_rss_kib": 68236,
+ "cli_rss_kib": 448596,
+ "stem": "01-atoms-4-parsed"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 1173516.6171875,
+ "worker_rss_kib": 66240,
+ "cli_rss_kib": 448704,
+ "stem": "02-atoms-4-parsed"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 1166218.69921875,
+ "worker_rss_kib": 68064,
+ "cli_rss_kib": 448632,
+ "stem": "03-atoms-4-parsed"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 1168343.546875,
+ "worker_rss_kib": 66784,
+ "cli_rss_kib": 448848,
+ "stem": "04-atoms-4-parsed"
+ }
+ ],
+ "wire_integer_tokens": 2902,
+ "row_system_sizes": [
+ 3,
+ 3,
+ 1,
+ 3,
+ 3,
+ 1,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 3,
+ 1,
+ 3,
+ 3,
+ 1,
+ 1
+ ],
+ "row_moment_json_bytes": 6873
+ },
+ {
+ "case": "atoms-4",
+ "axis": "atoms",
+ "parameter": 4,
+ "degree": 2,
+ "atoms": 4,
+ "query_bits_parameter": 16,
+ "precision": 0,
+ "depth": 0,
+ "bytes": 20269,
+ "row_unique_nodes": 7,
+ "row_expanded_nodes": 7,
+ "max_wire_integer_bits": 72,
+ "arm": "restored",
+ "median_microseconds": 1237.01243359375,
+ "min_microseconds": 1231.43882421875,
+ "max_microseconds": 1255.2806875,
+ "worker_rss_kib": [
+ 63068,
+ 68336
+ ],
+ "cli_rss_kib": [
+ 448652,
+ 448732
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 1231438.82421875,
+ "worker_rss_kib": 67844,
+ "cli_rss_kib": 448652,
+ "stem": "00-atoms-4-restored"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 1234870.12890625,
+ "worker_rss_kib": 66588,
+ "cli_rss_kib": 448680,
+ "stem": "01-atoms-4-restored"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 1237012.43359375,
+ "worker_rss_kib": 67604,
+ "cli_rss_kib": 448672,
+ "stem": "02-atoms-4-restored"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 1255280.6875,
+ "worker_rss_kib": 63068,
+ "cli_rss_kib": 448696,
+ "stem": "03-atoms-4-restored"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 1245732.45703125,
+ "worker_rss_kib": 68336,
+ "cli_rss_kib": 448732,
+ "stem": "04-atoms-4-restored"
+ }
+ ],
+ "wire_integer_tokens": 2902,
+ "row_system_sizes": [
+ 3,
+ 3,
+ 1,
+ 3,
+ 3,
+ 1,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 3,
+ 1,
+ 3,
+ 3,
+ 1,
+ 1
+ ],
+ "row_moment_json_bytes": 6873
+ },
+ {
+ "case": "atoms-4",
+ "axis": "atoms",
+ "parameter": 4,
+ "degree": 2,
+ "atoms": 4,
+ "query_bits_parameter": 16,
+ "precision": 0,
+ "depth": 0,
+ "bytes": 20269,
+ "row_unique_nodes": 7,
+ "row_expanded_nodes": 7,
+ "max_wire_integer_bits": 72,
+ "arm": "replayed",
+ "median_microseconds": 1662.6268125,
+ "min_microseconds": 1652.102609375,
+ "max_microseconds": 1671.145734375,
+ "worker_rss_kib": [
+ 66380,
+ 68192
+ ],
+ "cli_rss_kib": [
+ 448436,
+ 448744
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 1662626.8125,
+ "worker_rss_kib": 68044,
+ "cli_rss_kib": 448716,
+ "stem": "00-atoms-4-replayed"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 1656678.0,
+ "worker_rss_kib": 66820,
+ "cli_rss_kib": 448744,
+ "stem": "01-atoms-4-replayed"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 1652102.609375,
+ "worker_rss_kib": 67356,
+ "cli_rss_kib": 448664,
+ "stem": "02-atoms-4-replayed"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 1671145.734375,
+ "worker_rss_kib": 68192,
+ "cli_rss_kib": 448436,
+ "stem": "03-atoms-4-replayed"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 1664972.8671875,
+ "worker_rss_kib": 66380,
+ "cli_rss_kib": 448592,
+ "stem": "04-atoms-4-replayed"
+ }
+ ],
+ "wire_integer_tokens": 2902,
+ "row_system_sizes": [
+ 3,
+ 3,
+ 1,
+ 3,
+ 3,
+ 1,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 3,
+ 1,
+ 3,
+ 3,
+ 1,
+ 1
+ ],
+ "row_moment_json_bytes": 6873
+ },
+ {
+ "case": "bits-4",
+ "axis": "bits",
+ "parameter": 4,
+ "degree": 2,
+ "atoms": 2,
+ "query_bits_parameter": 4,
+ "precision": 0,
+ "depth": 0,
+ "bytes": 9572,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "max_wire_integer_bits": 20,
+ "arm": "lexical",
+ "median_microseconds": 148.47807763671875,
+ "min_microseconds": 148.4644833984375,
+ "max_microseconds": 150.43453466796876,
+ "worker_rss_kib": [
+ 63804,
+ 68060
+ ],
+ "cli_rss_kib": [
+ 448604,
+ 448760
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 148464.4833984375,
+ "worker_rss_kib": 68060,
+ "cli_rss_kib": 448692,
+ "stem": "00-bits-4-lexical"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 148677.47265625,
+ "worker_rss_kib": 67916,
+ "cli_rss_kib": 448760,
+ "stem": "01-bits-4-lexical"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 148478.07763671875,
+ "worker_rss_kib": 66820,
+ "cli_rss_kib": 448660,
+ "stem": "02-bits-4-lexical"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 148469.67724609375,
+ "worker_rss_kib": 63804,
+ "cli_rss_kib": 448640,
+ "stem": "03-bits-4-lexical"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 150434.53466796875,
+ "worker_rss_kib": 66948,
+ "cli_rss_kib": 448604,
+ "stem": "04-bits-4-lexical"
+ }
+ ],
+ "wire_integer_tokens": 1420,
+ "row_system_sizes": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_moment_json_bytes": 2990
+ },
+ {
+ "case": "bits-4",
+ "axis": "bits",
+ "parameter": 4,
+ "degree": 2,
+ "atoms": 2,
+ "query_bits_parameter": 4,
+ "precision": 0,
+ "depth": 0,
+ "bytes": 9572,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "max_wire_integer_bits": 20,
+ "arm": "parsed",
+ "median_microseconds": 531.386107421875,
+ "min_microseconds": 528.773923828125,
+ "max_microseconds": 532.916328125,
+ "worker_rss_kib": [
+ 60632,
+ 68024
+ ],
+ "cli_rss_kib": [
+ 448536,
+ 448780
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 531386.107421875,
+ "worker_rss_kib": 67472,
+ "cli_rss_kib": 448652,
+ "stem": "00-bits-4-parsed"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 532916.328125,
+ "worker_rss_kib": 66208,
+ "cli_rss_kib": 448780,
+ "stem": "01-bits-4-parsed"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 528773.923828125,
+ "worker_rss_kib": 68024,
+ "cli_rss_kib": 448536,
+ "stem": "02-bits-4-parsed"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 532622.87109375,
+ "worker_rss_kib": 60632,
+ "cli_rss_kib": 448732,
+ "stem": "03-bits-4-parsed"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 530542.90234375,
+ "worker_rss_kib": 66280,
+ "cli_rss_kib": 448664,
+ "stem": "04-bits-4-parsed"
+ }
+ ],
+ "wire_integer_tokens": 1420,
+ "row_system_sizes": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_moment_json_bytes": 2990
+ },
+ {
+ "case": "bits-4",
+ "axis": "bits",
+ "parameter": 4,
+ "degree": 2,
+ "atoms": 2,
+ "query_bits_parameter": 4,
+ "precision": 0,
+ "depth": 0,
+ "bytes": 9572,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "max_wire_integer_bits": 20,
+ "arm": "restored",
+ "median_microseconds": 592.6601796875,
+ "min_microseconds": 588.284673828125,
+ "max_microseconds": 600.7577109375,
+ "worker_rss_kib": [
+ 65072,
+ 68424
+ ],
+ "cli_rss_kib": [
+ 448448,
+ 448736
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 592660.1796875,
+ "worker_rss_kib": 66732,
+ "cli_rss_kib": 448448,
+ "stem": "00-bits-4-restored"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 589941.123046875,
+ "worker_rss_kib": 68424,
+ "cli_rss_kib": 448576,
+ "stem": "01-bits-4-restored"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 588284.673828125,
+ "worker_rss_kib": 67236,
+ "cli_rss_kib": 448588,
+ "stem": "02-bits-4-restored"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 600757.7109375,
+ "worker_rss_kib": 65072,
+ "cli_rss_kib": 448528,
+ "stem": "03-bits-4-restored"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 595065.26171875,
+ "worker_rss_kib": 66940,
+ "cli_rss_kib": 448736,
+ "stem": "04-bits-4-restored"
+ }
+ ],
+ "wire_integer_tokens": 1420,
+ "row_system_sizes": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_moment_json_bytes": 2990
+ },
+ {
+ "case": "bits-4",
+ "axis": "bits",
+ "parameter": 4,
+ "degree": 2,
+ "atoms": 2,
+ "query_bits_parameter": 4,
+ "precision": 0,
+ "depth": 0,
+ "bytes": 9572,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "max_wire_integer_bits": 20,
+ "arm": "replayed",
+ "median_microseconds": 780.552451171875,
+ "min_microseconds": 771.818900390625,
+ "max_microseconds": 800.25123828125,
+ "worker_rss_kib": [
+ 66336,
+ 69196
+ ],
+ "cli_rss_kib": [
+ 448556,
+ 448708
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 780552.451171875,
+ "worker_rss_kib": 69196,
+ "cli_rss_kib": 448620,
+ "stem": "00-bits-4-replayed"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 771818.900390625,
+ "worker_rss_kib": 67784,
+ "cli_rss_kib": 448608,
+ "stem": "01-bits-4-replayed"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 777405.759765625,
+ "worker_rss_kib": 68776,
+ "cli_rss_kib": 448556,
+ "stem": "02-bits-4-replayed"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 783583.8125,
+ "worker_rss_kib": 66336,
+ "cli_rss_kib": 448652,
+ "stem": "03-bits-4-replayed"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 800251.23828125,
+ "worker_rss_kib": 66664,
+ "cli_rss_kib": 448708,
+ "stem": "04-bits-4-replayed"
+ }
+ ],
+ "wire_integer_tokens": 1420,
+ "row_system_sizes": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_moment_json_bytes": 2990
+ },
+ {
+ "case": "bits-16",
+ "axis": "bits",
+ "parameter": 16,
+ "degree": 2,
+ "atoms": 2,
+ "query_bits_parameter": 16,
+ "precision": 0,
+ "depth": 0,
+ "bytes": 9916,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "max_wire_integer_bits": 68,
+ "arm": "lexical",
+ "median_microseconds": 156.3496904296875,
+ "min_microseconds": 153.758533203125,
+ "max_microseconds": 157.6270810546875,
+ "worker_rss_kib": [
+ 61780,
+ 68652
+ ],
+ "cli_rss_kib": [
+ 448608,
+ 448744
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 157627.0810546875,
+ "worker_rss_kib": 68652,
+ "cli_rss_kib": 448676,
+ "stem": "00-bits-16-lexical"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 157548.90087890625,
+ "worker_rss_kib": 67308,
+ "cli_rss_kib": 448680,
+ "stem": "01-bits-16-lexical"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 156324.3447265625,
+ "worker_rss_kib": 68196,
+ "cli_rss_kib": 448608,
+ "stem": "02-bits-16-lexical"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 156349.6904296875,
+ "worker_rss_kib": 61780,
+ "cli_rss_kib": 448704,
+ "stem": "03-bits-16-lexical"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 153758.533203125,
+ "worker_rss_kib": 66240,
+ "cli_rss_kib": 448744,
+ "stem": "04-bits-16-lexical"
+ }
+ ],
+ "wire_integer_tokens": 1420,
+ "row_system_sizes": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_moment_json_bytes": 3217
+ },
+ {
+ "case": "bits-16",
+ "axis": "bits",
+ "parameter": 16,
+ "degree": 2,
+ "atoms": 2,
+ "query_bits_parameter": 16,
+ "precision": 0,
+ "depth": 0,
+ "bytes": 9916,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "max_wire_integer_bits": 68,
+ "arm": "parsed",
+ "median_microseconds": 576.59327734375,
+ "min_microseconds": 571.13578515625,
+ "max_microseconds": 590.487,
+ "worker_rss_kib": [
+ 60900,
+ 68344
+ ],
+ "cli_rss_kib": [
+ 448520,
+ 448716
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 590487.0,
+ "worker_rss_kib": 66492,
+ "cli_rss_kib": 448520,
+ "stem": "00-bits-16-parsed"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 576743.875,
+ "worker_rss_kib": 66272,
+ "cli_rss_kib": 448712,
+ "stem": "01-bits-16-parsed"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 571135.78515625,
+ "worker_rss_kib": 68344,
+ "cli_rss_kib": 448716,
+ "stem": "02-bits-16-parsed"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 572281.5078125,
+ "worker_rss_kib": 60900,
+ "cli_rss_kib": 448600,
+ "stem": "03-bits-16-parsed"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 576593.27734375,
+ "worker_rss_kib": 67608,
+ "cli_rss_kib": 448680,
+ "stem": "04-bits-16-parsed"
+ }
+ ],
+ "wire_integer_tokens": 1420,
+ "row_system_sizes": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_moment_json_bytes": 3217
+ },
+ {
+ "case": "bits-16",
+ "axis": "bits",
+ "parameter": 16,
+ "degree": 2,
+ "atoms": 2,
+ "query_bits_parameter": 16,
+ "precision": 0,
+ "depth": 0,
+ "bytes": 9916,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "max_wire_integer_bits": 68,
+ "arm": "restored",
+ "median_microseconds": 633.660755859375,
+ "min_microseconds": 633.096625,
+ "max_microseconds": 642.4310703125,
+ "worker_rss_kib": [
+ 63328,
+ 68068
+ ],
+ "cli_rss_kib": [
+ 448596,
+ 448792
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 634035.71875,
+ "worker_rss_kib": 67420,
+ "cli_rss_kib": 448676,
+ "stem": "00-bits-16-restored"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 633660.755859375,
+ "worker_rss_kib": 68068,
+ "cli_rss_kib": 448792,
+ "stem": "01-bits-16-restored"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 642431.0703125,
+ "worker_rss_kib": 66564,
+ "cli_rss_kib": 448708,
+ "stem": "02-bits-16-restored"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 633213.525390625,
+ "worker_rss_kib": 63328,
+ "cli_rss_kib": 448596,
+ "stem": "03-bits-16-restored"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 633096.625,
+ "worker_rss_kib": 67920,
+ "cli_rss_kib": 448616,
+ "stem": "04-bits-16-restored"
+ }
+ ],
+ "wire_integer_tokens": 1420,
+ "row_system_sizes": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_moment_json_bytes": 3217
+ },
+ {
+ "case": "bits-16",
+ "axis": "bits",
+ "parameter": 16,
+ "degree": 2,
+ "atoms": 2,
+ "query_bits_parameter": 16,
+ "precision": 0,
+ "depth": 0,
+ "bytes": 9916,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "max_wire_integer_bits": 68,
+ "arm": "replayed",
+ "median_microseconds": 835.19355859375,
+ "min_microseconds": 830.07242578125,
+ "max_microseconds": 841.30462109375,
+ "worker_rss_kib": [
+ 62820,
+ 68016
+ ],
+ "cli_rss_kib": [
+ 448428,
+ 448764
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 841304.62109375,
+ "worker_rss_kib": 67936,
+ "cli_rss_kib": 448464,
+ "stem": "00-bits-16-replayed"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 840325.87109375,
+ "worker_rss_kib": 67044,
+ "cli_rss_kib": 448672,
+ "stem": "01-bits-16-replayed"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 830072.42578125,
+ "worker_rss_kib": 68016,
+ "cli_rss_kib": 448764,
+ "stem": "02-bits-16-replayed"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 835193.55859375,
+ "worker_rss_kib": 62820,
+ "cli_rss_kib": 448428,
+ "stem": "03-bits-16-replayed"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 834240.87109375,
+ "worker_rss_kib": 67944,
+ "cli_rss_kib": 448616,
+ "stem": "04-bits-16-replayed"
+ }
+ ],
+ "wire_integer_tokens": 1420,
+ "row_system_sizes": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_moment_json_bytes": 3217
+ },
+ {
+ "case": "bits-64",
+ "axis": "bits",
+ "parameter": 64,
+ "degree": 2,
+ "atoms": 2,
+ "query_bits_parameter": 64,
+ "precision": 0,
+ "depth": 0,
+ "bytes": 11337,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "max_wire_integer_bits": 260,
+ "arm": "lexical",
+ "median_microseconds": 174.4533173828125,
+ "min_microseconds": 173.16138623046874,
+ "max_microseconds": 176.6869833984375,
+ "worker_rss_kib": [
+ 59744,
+ 67872
+ ],
+ "cli_rss_kib": [
+ 448632,
+ 448784
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 174137.58544921875,
+ "worker_rss_kib": 66916,
+ "cli_rss_kib": 448668,
+ "stem": "00-bits-64-lexical"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 174453.3173828125,
+ "worker_rss_kib": 66500,
+ "cli_rss_kib": 448712,
+ "stem": "01-bits-64-lexical"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 173161.38623046875,
+ "worker_rss_kib": 67872,
+ "cli_rss_kib": 448724,
+ "stem": "02-bits-64-lexical"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 176686.9833984375,
+ "worker_rss_kib": 59744,
+ "cli_rss_kib": 448632,
+ "stem": "03-bits-64-lexical"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 175480.88671875,
+ "worker_rss_kib": 66156,
+ "cli_rss_kib": 448784,
+ "stem": "04-bits-64-lexical"
+ }
+ ],
+ "wire_integer_tokens": 1420,
+ "row_system_sizes": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_moment_json_bytes": 4143
+ },
+ {
+ "case": "bits-64",
+ "axis": "bits",
+ "parameter": 64,
+ "degree": 2,
+ "atoms": 2,
+ "query_bits_parameter": 64,
+ "precision": 0,
+ "depth": 0,
+ "bytes": 11337,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "max_wire_integer_bits": 260,
+ "arm": "parsed",
+ "median_microseconds": 1008.78048046875,
+ "min_microseconds": 1005.1273515625,
+ "max_microseconds": 1017.545328125,
+ "worker_rss_kib": [
+ 61548,
+ 68744
+ ],
+ "cli_rss_kib": [
+ 448472,
+ 448720
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 1008780.48046875,
+ "worker_rss_kib": 68744,
+ "cli_rss_kib": 448472,
+ "stem": "00-bits-64-parsed"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 1007829.0546875,
+ "worker_rss_kib": 68628,
+ "cli_rss_kib": 448556,
+ "stem": "01-bits-64-parsed"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 1017545.328125,
+ "worker_rss_kib": 68364,
+ "cli_rss_kib": 448720,
+ "stem": "02-bits-64-parsed"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 1005127.3515625,
+ "worker_rss_kib": 61548,
+ "cli_rss_kib": 448580,
+ "stem": "03-bits-64-parsed"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 1010995.51953125,
+ "worker_rss_kib": 65940,
+ "cli_rss_kib": 448660,
+ "stem": "04-bits-64-parsed"
+ }
+ ],
+ "wire_integer_tokens": 1420,
+ "row_system_sizes": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_moment_json_bytes": 4143
+ },
+ {
+ "case": "bits-64",
+ "axis": "bits",
+ "parameter": 64,
+ "degree": 2,
+ "atoms": 2,
+ "query_bits_parameter": 64,
+ "precision": 0,
+ "depth": 0,
+ "bytes": 11337,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "max_wire_integer_bits": 260,
+ "arm": "restored",
+ "median_microseconds": 1074.61108984375,
+ "min_microseconds": 1073.47187890625,
+ "max_microseconds": 1077.8138984375,
+ "worker_rss_kib": [
+ 60656,
+ 70540
+ ],
+ "cli_rss_kib": [
+ 448436,
+ 448672
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 1074611.08984375,
+ "worker_rss_kib": 68760,
+ "cli_rss_kib": 448592,
+ "stem": "00-bits-64-restored"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 1077813.8984375,
+ "worker_rss_kib": 70540,
+ "cli_rss_kib": 448660,
+ "stem": "01-bits-64-restored"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 1074693.7734375,
+ "worker_rss_kib": 69688,
+ "cli_rss_kib": 448596,
+ "stem": "02-bits-64-restored"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 1073471.87890625,
+ "worker_rss_kib": 60656,
+ "cli_rss_kib": 448436,
+ "stem": "03-bits-64-restored"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 1073763.33984375,
+ "worker_rss_kib": 69224,
+ "cli_rss_kib": 448672,
+ "stem": "04-bits-64-restored"
+ }
+ ],
+ "wire_integer_tokens": 1420,
+ "row_system_sizes": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_moment_json_bytes": 4143
+ },
+ {
+ "case": "bits-64",
+ "axis": "bits",
+ "parameter": 64,
+ "degree": 2,
+ "atoms": 2,
+ "query_bits_parameter": 64,
+ "precision": 0,
+ "depth": 0,
+ "bytes": 11337,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "max_wire_integer_bits": 260,
+ "arm": "replayed",
+ "median_microseconds": 1303.1161328125,
+ "min_microseconds": 1298.19127734375,
+ "max_microseconds": 1317.5868125,
+ "worker_rss_kib": [
+ 68740,
+ 70956
+ ],
+ "cli_rss_kib": [
+ 448480,
+ 448732
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 1301153.3203125,
+ "worker_rss_kib": 68912,
+ "cli_rss_kib": 448524,
+ "stem": "00-bits-64-replayed"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 1316942.16015625,
+ "worker_rss_kib": 70956,
+ "cli_rss_kib": 448704,
+ "stem": "01-bits-64-replayed"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 1317586.8125,
+ "worker_rss_kib": 70844,
+ "cli_rss_kib": 448732,
+ "stem": "02-bits-64-replayed"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 1298191.27734375,
+ "worker_rss_kib": 70168,
+ "cli_rss_kib": 448480,
+ "stem": "03-bits-64-replayed"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 1303116.1328125,
+ "worker_rss_kib": 68740,
+ "cli_rss_kib": 448732,
+ "stem": "04-bits-64-replayed"
+ }
+ ],
+ "wire_integer_tokens": 1420,
+ "row_system_sizes": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_moment_json_bytes": 4143
+ },
+ {
+ "case": "bits-128",
+ "axis": "bits",
+ "parameter": 128,
+ "degree": 2,
+ "atoms": 2,
+ "query_bits_parameter": 128,
+ "precision": 0,
+ "depth": 0,
+ "bytes": 13230,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "max_wire_integer_bits": 516,
+ "arm": "lexical",
+ "median_microseconds": 198.14569140625,
+ "min_microseconds": 197.878509765625,
+ "max_microseconds": 202.71645703125,
+ "worker_rss_kib": [
+ 59652,
+ 66768
+ ],
+ "cli_rss_kib": [
+ 448520,
+ 448832
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 200767.603515625,
+ "worker_rss_kib": 66768,
+ "cli_rss_kib": 448692,
+ "stem": "00-bits-128-lexical"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 197946.6533203125,
+ "worker_rss_kib": 66000,
+ "cli_rss_kib": 448832,
+ "stem": "01-bits-128-lexical"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 197878.509765625,
+ "worker_rss_kib": 65984,
+ "cli_rss_kib": 448520,
+ "stem": "02-bits-128-lexical"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 202716.45703125,
+ "worker_rss_kib": 59652,
+ "cli_rss_kib": 448604,
+ "stem": "03-bits-128-lexical"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 198145.69140625,
+ "worker_rss_kib": 65816,
+ "cli_rss_kib": 448784,
+ "stem": "04-bits-128-lexical"
+ }
+ ],
+ "wire_integer_tokens": 1420,
+ "row_system_sizes": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_moment_json_bytes": 5385
+ },
+ {
+ "case": "bits-128",
+ "axis": "bits",
+ "parameter": 128,
+ "degree": 2,
+ "atoms": 2,
+ "query_bits_parameter": 128,
+ "precision": 0,
+ "depth": 0,
+ "bytes": 13230,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "max_wire_integer_bits": 516,
+ "arm": "parsed",
+ "median_microseconds": 1797.7053671875,
+ "min_microseconds": 1796.1309765625,
+ "max_microseconds": 1832.98428125,
+ "worker_rss_kib": [
+ 62648,
+ 68596
+ ],
+ "cli_rss_kib": [
+ 448604,
+ 448692
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 1797705.3671875,
+ "worker_rss_kib": 68188,
+ "cli_rss_kib": 448608,
+ "stem": "00-bits-128-parsed"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 1796926.1796875,
+ "worker_rss_kib": 66904,
+ "cli_rss_kib": 448668,
+ "stem": "01-bits-128-parsed"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 1832984.28125,
+ "worker_rss_kib": 68596,
+ "cli_rss_kib": 448692,
+ "stem": "02-bits-128-parsed"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 1796130.9765625,
+ "worker_rss_kib": 62648,
+ "cli_rss_kib": 448604,
+ "stem": "03-bits-128-parsed"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 1808736.1640625,
+ "worker_rss_kib": 67892,
+ "cli_rss_kib": 448624,
+ "stem": "04-bits-128-parsed"
+ }
+ ],
+ "wire_integer_tokens": 1420,
+ "row_system_sizes": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_moment_json_bytes": 5385
+ },
+ {
+ "case": "bits-128",
+ "axis": "bits",
+ "parameter": 128,
+ "degree": 2,
+ "atoms": 2,
+ "query_bits_parameter": 128,
+ "precision": 0,
+ "depth": 0,
+ "bytes": 13230,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "max_wire_integer_bits": 516,
+ "arm": "restored",
+ "median_microseconds": 1884.4788515625,
+ "min_microseconds": 1873.355125,
+ "max_microseconds": 1899.6028671875,
+ "worker_rss_kib": [
+ 63008,
+ 68952
+ ],
+ "cli_rss_kib": [
+ 448448,
+ 448668
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 1885547.265625,
+ "worker_rss_kib": 68952,
+ "cli_rss_kib": 448568,
+ "stem": "00-bits-128-restored"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 1899602.8671875,
+ "worker_rss_kib": 66660,
+ "cli_rss_kib": 448644,
+ "stem": "01-bits-128-restored"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 1873355.125,
+ "worker_rss_kib": 66504,
+ "cli_rss_kib": 448592,
+ "stem": "02-bits-128-restored"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 1884478.8515625,
+ "worker_rss_kib": 63008,
+ "cli_rss_kib": 448448,
+ "stem": "03-bits-128-restored"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 1874821.8359375,
+ "worker_rss_kib": 67020,
+ "cli_rss_kib": 448668,
+ "stem": "04-bits-128-restored"
+ }
+ ],
+ "wire_integer_tokens": 1420,
+ "row_system_sizes": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_moment_json_bytes": 5385
+ },
+ {
+ "case": "bits-128",
+ "axis": "bits",
+ "parameter": 128,
+ "degree": 2,
+ "atoms": 2,
+ "query_bits_parameter": 128,
+ "precision": 0,
+ "depth": 0,
+ "bytes": 13230,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "max_wire_integer_bits": 516,
+ "arm": "replayed",
+ "median_microseconds": 2134.5597109375,
+ "min_microseconds": 2121.0364921875,
+ "max_microseconds": 2669.466640625,
+ "worker_rss_kib": [
+ 64848,
+ 68160
+ ],
+ "cli_rss_kib": [
+ 448480,
+ 448704
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 2669466.640625,
+ "worker_rss_kib": 66896,
+ "cli_rss_kib": 448480,
+ "stem": "00-bits-128-replayed"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 2134559.7109375,
+ "worker_rss_kib": 68160,
+ "cli_rss_kib": 448704,
+ "stem": "01-bits-128-replayed"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 2149541.21875,
+ "worker_rss_kib": 67552,
+ "cli_rss_kib": 448600,
+ "stem": "02-bits-128-replayed"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 2127241.28125,
+ "worker_rss_kib": 64848,
+ "cli_rss_kib": 448480,
+ "stem": "03-bits-128-replayed"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 2121036.4921875,
+ "worker_rss_kib": 67072,
+ "cli_rss_kib": 448640,
+ "stem": "04-bits-128-replayed"
+ }
+ ],
+ "wire_integer_tokens": 1420,
+ "row_system_sizes": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_moment_json_bytes": 5385
+ },
+ {
+ "case": "precision-0",
+ "axis": "precision",
+ "parameter": 0,
+ "degree": 2,
+ "atoms": 2,
+ "query_bits_parameter": 16,
+ "precision": 0,
+ "depth": 0,
+ "bytes": 9916,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "max_wire_integer_bits": 68,
+ "arm": "lexical",
+ "median_microseconds": 156.67656884765626,
+ "min_microseconds": 155.01330078125,
+ "max_microseconds": 161.3151591796875,
+ "worker_rss_kib": [
+ 63308,
+ 67516
+ ],
+ "cli_rss_kib": [
+ 448468,
+ 448744
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 161315.1591796875,
+ "worker_rss_kib": 67348,
+ "cli_rss_kib": 448468,
+ "stem": "00-precision-0-lexical"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 155930.2158203125,
+ "worker_rss_kib": 67516,
+ "cli_rss_kib": 448684,
+ "stem": "01-precision-0-lexical"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 158602.04736328125,
+ "worker_rss_kib": 66056,
+ "cli_rss_kib": 448712,
+ "stem": "02-precision-0-lexical"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 155013.30078125,
+ "worker_rss_kib": 63308,
+ "cli_rss_kib": 448648,
+ "stem": "03-precision-0-lexical"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 156676.56884765625,
+ "worker_rss_kib": 66152,
+ "cli_rss_kib": 448744,
+ "stem": "04-precision-0-lexical"
+ }
+ ],
+ "wire_integer_tokens": 1420,
+ "row_system_sizes": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_moment_json_bytes": 3217
+ },
+ {
+ "case": "precision-0",
+ "axis": "precision",
+ "parameter": 0,
+ "degree": 2,
+ "atoms": 2,
+ "query_bits_parameter": 16,
+ "precision": 0,
+ "depth": 0,
+ "bytes": 9916,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "max_wire_integer_bits": 68,
+ "arm": "parsed",
+ "median_microseconds": 576.45497265625,
+ "min_microseconds": 573.1874296875,
+ "max_microseconds": 580.897814453125,
+ "worker_rss_kib": [
+ 63856,
+ 68036
+ ],
+ "cli_rss_kib": [
+ 448668,
+ 448736
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 576454.97265625,
+ "worker_rss_kib": 66368,
+ "cli_rss_kib": 448668,
+ "stem": "00-precision-0-parsed"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 578129.982421875,
+ "worker_rss_kib": 66572,
+ "cli_rss_kib": 448712,
+ "stem": "01-precision-0-parsed"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 580897.814453125,
+ "worker_rss_kib": 68036,
+ "cli_rss_kib": 448736,
+ "stem": "02-precision-0-parsed"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 574042.890625,
+ "worker_rss_kib": 63856,
+ "cli_rss_kib": 448728,
+ "stem": "03-precision-0-parsed"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 573187.4296875,
+ "worker_rss_kib": 66012,
+ "cli_rss_kib": 448696,
+ "stem": "04-precision-0-parsed"
+ }
+ ],
+ "wire_integer_tokens": 1420,
+ "row_system_sizes": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_moment_json_bytes": 3217
+ },
+ {
+ "case": "precision-0",
+ "axis": "precision",
+ "parameter": 0,
+ "degree": 2,
+ "atoms": 2,
+ "query_bits_parameter": 16,
+ "precision": 0,
+ "depth": 0,
+ "bytes": 9916,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "max_wire_integer_bits": 68,
+ "arm": "restored",
+ "median_microseconds": 637.848541015625,
+ "min_microseconds": 634.277640625,
+ "max_microseconds": 649.0763828125,
+ "worker_rss_kib": [
+ 61476,
+ 67568
+ ],
+ "cli_rss_kib": [
+ 448592,
+ 448744
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 634277.640625,
+ "worker_rss_kib": 67568,
+ "cli_rss_kib": 448732,
+ "stem": "00-precision-0-restored"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 649076.3828125,
+ "worker_rss_kib": 67364,
+ "cli_rss_kib": 448672,
+ "stem": "01-precision-0-restored"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 638586.919921875,
+ "worker_rss_kib": 66864,
+ "cli_rss_kib": 448592,
+ "stem": "02-precision-0-restored"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 637848.541015625,
+ "worker_rss_kib": 61476,
+ "cli_rss_kib": 448744,
+ "stem": "03-precision-0-restored"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 636119.1328125,
+ "worker_rss_kib": 66292,
+ "cli_rss_kib": 448700,
+ "stem": "04-precision-0-restored"
+ }
+ ],
+ "wire_integer_tokens": 1420,
+ "row_system_sizes": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_moment_json_bytes": 3217
+ },
+ {
+ "case": "precision-0",
+ "axis": "precision",
+ "parameter": 0,
+ "degree": 2,
+ "atoms": 2,
+ "query_bits_parameter": 16,
+ "precision": 0,
+ "depth": 0,
+ "bytes": 9916,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "max_wire_integer_bits": 68,
+ "arm": "replayed",
+ "median_microseconds": 836.52754296875,
+ "min_microseconds": 830.06441015625,
+ "max_microseconds": 836.76069921875,
+ "worker_rss_kib": [
+ 61844,
+ 68040
+ ],
+ "cli_rss_kib": [
+ 448408,
+ 448824
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 836760.69921875,
+ "worker_rss_kib": 67196,
+ "cli_rss_kib": 448408,
+ "stem": "00-precision-0-replayed"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 836650.0859375,
+ "worker_rss_kib": 66900,
+ "cli_rss_kib": 448704,
+ "stem": "01-precision-0-replayed"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 830064.41015625,
+ "worker_rss_kib": 66512,
+ "cli_rss_kib": 448824,
+ "stem": "02-precision-0-replayed"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 836446.98046875,
+ "worker_rss_kib": 61844,
+ "cli_rss_kib": 448640,
+ "stem": "03-precision-0-replayed"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 836527.54296875,
+ "worker_rss_kib": 68040,
+ "cli_rss_kib": 448592,
+ "stem": "04-precision-0-replayed"
+ }
+ ],
+ "wire_integer_tokens": 1420,
+ "row_system_sizes": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_moment_json_bytes": 3217
+ },
+ {
+ "case": "precision-4",
+ "axis": "precision",
+ "parameter": 4,
+ "degree": 2,
+ "atoms": 2,
+ "query_bits_parameter": 16,
+ "precision": 4,
+ "depth": 0,
+ "bytes": 9955,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "max_wire_integer_bits": 68,
+ "arm": "lexical",
+ "median_microseconds": 155.85631689453126,
+ "min_microseconds": 154.69617578125,
+ "max_microseconds": 157.25847900390625,
+ "worker_rss_kib": [
+ 59848,
+ 66952
+ ],
+ "cli_rss_kib": [
+ 448556,
+ 448656
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 155856.31689453125,
+ "worker_rss_kib": 66724,
+ "cli_rss_kib": 448652,
+ "stem": "00-precision-4-lexical"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 154696.17578125,
+ "worker_rss_kib": 66184,
+ "cli_rss_kib": 448592,
+ "stem": "01-precision-4-lexical"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 157258.47900390625,
+ "worker_rss_kib": 66952,
+ "cli_rss_kib": 448644,
+ "stem": "02-precision-4-lexical"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 156695.58447265625,
+ "worker_rss_kib": 59848,
+ "cli_rss_kib": 448556,
+ "stem": "03-precision-4-lexical"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 155330.39404296875,
+ "worker_rss_kib": 66232,
+ "cli_rss_kib": 448656,
+ "stem": "04-precision-4-lexical"
+ }
+ ],
+ "wire_integer_tokens": 1420,
+ "row_system_sizes": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_moment_json_bytes": 3238
+ },
+ {
+ "case": "precision-4",
+ "axis": "precision",
+ "parameter": 4,
+ "degree": 2,
+ "atoms": 2,
+ "query_bits_parameter": 16,
+ "precision": 4,
+ "depth": 0,
+ "bytes": 9955,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "max_wire_integer_bits": 68,
+ "arm": "parsed",
+ "median_microseconds": 576.613458984375,
+ "min_microseconds": 575.453732421875,
+ "max_microseconds": 581.80406640625,
+ "worker_rss_kib": [
+ 62004,
+ 67028
+ ],
+ "cli_rss_kib": [
+ 448440,
+ 448736
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 581184.853515625,
+ "worker_rss_kib": 67028,
+ "cli_rss_kib": 448440,
+ "stem": "00-precision-4-parsed"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 576613.458984375,
+ "worker_rss_kib": 66244,
+ "cli_rss_kib": 448664,
+ "stem": "01-precision-4-parsed"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 575453.732421875,
+ "worker_rss_kib": 66448,
+ "cli_rss_kib": 448724,
+ "stem": "02-precision-4-parsed"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 576003.314453125,
+ "worker_rss_kib": 62004,
+ "cli_rss_kib": 448712,
+ "stem": "03-precision-4-parsed"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 581804.06640625,
+ "worker_rss_kib": 66968,
+ "cli_rss_kib": 448736,
+ "stem": "04-precision-4-parsed"
+ }
+ ],
+ "wire_integer_tokens": 1420,
+ "row_system_sizes": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_moment_json_bytes": 3238
+ },
+ {
+ "case": "precision-4",
+ "axis": "precision",
+ "parameter": 4,
+ "degree": 2,
+ "atoms": 2,
+ "query_bits_parameter": 16,
+ "precision": 4,
+ "depth": 0,
+ "bytes": 9955,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "max_wire_integer_bits": 68,
+ "arm": "restored",
+ "median_microseconds": 639.807841796875,
+ "min_microseconds": 638.05301953125,
+ "max_microseconds": 645.31681640625,
+ "worker_rss_kib": [
+ 61060,
+ 68976
+ ],
+ "cli_rss_kib": [
+ 448472,
+ 448856
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 638053.01953125,
+ "worker_rss_kib": 68540,
+ "cli_rss_kib": 448472,
+ "stem": "00-precision-4-restored"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 638332.49609375,
+ "worker_rss_kib": 68976,
+ "cli_rss_kib": 448856,
+ "stem": "01-precision-4-restored"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 645316.81640625,
+ "worker_rss_kib": 66628,
+ "cli_rss_kib": 448780,
+ "stem": "02-precision-4-restored"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 640377.2109375,
+ "worker_rss_kib": 61060,
+ "cli_rss_kib": 448684,
+ "stem": "03-precision-4-restored"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 639807.841796875,
+ "worker_rss_kib": 66708,
+ "cli_rss_kib": 448676,
+ "stem": "04-precision-4-restored"
+ }
+ ],
+ "wire_integer_tokens": 1420,
+ "row_system_sizes": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_moment_json_bytes": 3238
+ },
+ {
+ "case": "precision-4",
+ "axis": "precision",
+ "parameter": 4,
+ "degree": 2,
+ "atoms": 2,
+ "query_bits_parameter": 16,
+ "precision": 4,
+ "depth": 0,
+ "bytes": 9955,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "max_wire_integer_bits": 68,
+ "arm": "replayed",
+ "median_microseconds": 842.18115234375,
+ "min_microseconds": 840.82082421875,
+ "max_microseconds": 852.1513203125,
+ "worker_rss_kib": [
+ 63676,
+ 68868
+ ],
+ "cli_rss_kib": [
+ 448444,
+ 448780
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 842181.15234375,
+ "worker_rss_kib": 66864,
+ "cli_rss_kib": 448444,
+ "stem": "00-precision-4-replayed"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 841039.328125,
+ "worker_rss_kib": 68868,
+ "cli_rss_kib": 448760,
+ "stem": "01-precision-4-replayed"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 840820.82421875,
+ "worker_rss_kib": 68472,
+ "cli_rss_kib": 448780,
+ "stem": "02-precision-4-replayed"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 842293.33984375,
+ "worker_rss_kib": 63676,
+ "cli_rss_kib": 448664,
+ "stem": "03-precision-4-replayed"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 852151.3203125,
+ "worker_rss_kib": 66636,
+ "cli_rss_kib": 448728,
+ "stem": "04-precision-4-replayed"
+ }
+ ],
+ "wire_integer_tokens": 1420,
+ "row_system_sizes": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_moment_json_bytes": 3238
+ },
+ {
+ "case": "precision-8",
+ "axis": "precision",
+ "parameter": 8,
+ "degree": 2,
+ "atoms": 2,
+ "query_bits_parameter": 16,
+ "precision": 8,
+ "depth": 0,
+ "bytes": 10020,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "max_wire_integer_bits": 68,
+ "arm": "lexical",
+ "median_microseconds": 158.52147119140625,
+ "min_microseconds": 155.7364921875,
+ "max_microseconds": 159.90142919921874,
+ "worker_rss_kib": [
+ 61640,
+ 67436
+ ],
+ "cli_rss_kib": [
+ 448508,
+ 448848
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 156110.07666015625,
+ "worker_rss_kib": 66768,
+ "cli_rss_kib": 448520,
+ "stem": "00-precision-8-lexical"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 155736.4921875,
+ "worker_rss_kib": 67172,
+ "cli_rss_kib": 448704,
+ "stem": "01-precision-8-lexical"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 158665.18359375,
+ "worker_rss_kib": 66076,
+ "cli_rss_kib": 448848,
+ "stem": "02-precision-8-lexical"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 159901.42919921875,
+ "worker_rss_kib": 61640,
+ "cli_rss_kib": 448692,
+ "stem": "03-precision-8-lexical"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 158521.47119140625,
+ "worker_rss_kib": 67436,
+ "cli_rss_kib": 448508,
+ "stem": "04-precision-8-lexical"
+ }
+ ],
+ "wire_integer_tokens": 1420,
+ "row_system_sizes": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_moment_json_bytes": 3273
+ },
+ {
+ "case": "precision-8",
+ "axis": "precision",
+ "parameter": 8,
+ "degree": 2,
+ "atoms": 2,
+ "query_bits_parameter": 16,
+ "precision": 8,
+ "depth": 0,
+ "bytes": 10020,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "max_wire_integer_bits": 68,
+ "arm": "parsed",
+ "median_microseconds": 583.75383203125,
+ "min_microseconds": 580.84203125,
+ "max_microseconds": 592.566037109375,
+ "worker_rss_kib": [
+ 60824,
+ 68304
+ ],
+ "cli_rss_kib": [
+ 448464,
+ 448752
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 592566.037109375,
+ "worker_rss_kib": 67200,
+ "cli_rss_kib": 448536,
+ "stem": "00-precision-8-parsed"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 580842.03125,
+ "worker_rss_kib": 66120,
+ "cli_rss_kib": 448680,
+ "stem": "01-precision-8-parsed"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 588975.431640625,
+ "worker_rss_kib": 68304,
+ "cli_rss_kib": 448752,
+ "stem": "02-precision-8-parsed"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 583529.3515625,
+ "worker_rss_kib": 60824,
+ "cli_rss_kib": 448700,
+ "stem": "03-precision-8-parsed"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 583753.83203125,
+ "worker_rss_kib": 66720,
+ "cli_rss_kib": 448464,
+ "stem": "04-precision-8-parsed"
+ }
+ ],
+ "wire_integer_tokens": 1420,
+ "row_system_sizes": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_moment_json_bytes": 3273
+ },
+ {
+ "case": "precision-8",
+ "axis": "precision",
+ "parameter": 8,
+ "degree": 2,
+ "atoms": 2,
+ "query_bits_parameter": 16,
+ "precision": 8,
+ "depth": 0,
+ "bytes": 10020,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "max_wire_integer_bits": 68,
+ "arm": "restored",
+ "median_microseconds": 649.781400390625,
+ "min_microseconds": 647.021021484375,
+ "max_microseconds": 687.16897265625,
+ "worker_rss_kib": [
+ 61012,
+ 68380
+ ],
+ "cli_rss_kib": [
+ 448564,
+ 448760
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 649781.400390625,
+ "worker_rss_kib": 67688,
+ "cli_rss_kib": 448616,
+ "stem": "00-precision-8-restored"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 687168.97265625,
+ "worker_rss_kib": 67276,
+ "cli_rss_kib": 448564,
+ "stem": "01-precision-8-restored"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 647021.021484375,
+ "worker_rss_kib": 68380,
+ "cli_rss_kib": 448600,
+ "stem": "02-precision-8-restored"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 655981.29296875,
+ "worker_rss_kib": 61012,
+ "cli_rss_kib": 448588,
+ "stem": "03-precision-8-restored"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 648306.490234375,
+ "worker_rss_kib": 67356,
+ "cli_rss_kib": 448760,
+ "stem": "04-precision-8-restored"
+ }
+ ],
+ "wire_integer_tokens": 1420,
+ "row_system_sizes": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_moment_json_bytes": 3273
+ },
+ {
+ "case": "precision-8",
+ "axis": "precision",
+ "parameter": 8,
+ "degree": 2,
+ "atoms": 2,
+ "query_bits_parameter": 16,
+ "precision": 8,
+ "depth": 0,
+ "bytes": 10020,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "max_wire_integer_bits": 68,
+ "arm": "replayed",
+ "median_microseconds": 853.30282421875,
+ "min_microseconds": 848.60653515625,
+ "max_microseconds": 854.34730859375,
+ "worker_rss_kib": [
+ 61644,
+ 68968
+ ],
+ "cli_rss_kib": [
+ 448624,
+ 448848
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 854347.30859375,
+ "worker_rss_kib": 68968,
+ "cli_rss_kib": 448696,
+ "stem": "00-precision-8-replayed"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 851141.53125,
+ "worker_rss_kib": 66584,
+ "cli_rss_kib": 448676,
+ "stem": "01-precision-8-replayed"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 854160.4375,
+ "worker_rss_kib": 66556,
+ "cli_rss_kib": 448848,
+ "stem": "02-precision-8-replayed"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 853302.82421875,
+ "worker_rss_kib": 61644,
+ "cli_rss_kib": 448624,
+ "stem": "03-precision-8-replayed"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 848606.53515625,
+ "worker_rss_kib": 66756,
+ "cli_rss_kib": 448720,
+ "stem": "04-precision-8-replayed"
+ }
+ ],
+ "wire_integer_tokens": 1420,
+ "row_system_sizes": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_moment_json_bytes": 3273
+ },
+ {
+ "case": "precision-12",
+ "axis": "precision",
+ "parameter": 12,
+ "degree": 2,
+ "atoms": 2,
+ "query_bits_parameter": 16,
+ "precision": 12,
+ "depth": 0,
+ "bytes": 10046,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "max_wire_integer_bits": 68,
+ "arm": "lexical",
+ "median_microseconds": 157.366130859375,
+ "min_microseconds": 156.15365869140626,
+ "max_microseconds": 159.682873046875,
+ "worker_rss_kib": [
+ 59748,
+ 67980
+ ],
+ "cli_rss_kib": [
+ 448580,
+ 448736
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 156780.85595703125,
+ "worker_rss_kib": 67060,
+ "cli_rss_kib": 448644,
+ "stem": "00-precision-12-lexical"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 158731.97705078125,
+ "worker_rss_kib": 66048,
+ "cli_rss_kib": 448668,
+ "stem": "01-precision-12-lexical"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 156153.65869140625,
+ "worker_rss_kib": 67084,
+ "cli_rss_kib": 448680,
+ "stem": "02-precision-12-lexical"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 159682.873046875,
+ "worker_rss_kib": 59748,
+ "cli_rss_kib": 448736,
+ "stem": "03-precision-12-lexical"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 157366.130859375,
+ "worker_rss_kib": 67980,
+ "cli_rss_kib": 448580,
+ "stem": "04-precision-12-lexical"
+ }
+ ],
+ "wire_integer_tokens": 1420,
+ "row_system_sizes": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_moment_json_bytes": 3287
+ },
+ {
+ "case": "precision-12",
+ "axis": "precision",
+ "parameter": 12,
+ "degree": 2,
+ "atoms": 2,
+ "query_bits_parameter": 16,
+ "precision": 12,
+ "depth": 0,
+ "bytes": 10046,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "max_wire_integer_bits": 68,
+ "arm": "parsed",
+ "median_microseconds": 585.979513671875,
+ "min_microseconds": 580.707095703125,
+ "max_microseconds": 589.19137890625,
+ "worker_rss_kib": [
+ 65920,
+ 67536
+ ],
+ "cli_rss_kib": [
+ 448596,
+ 448736
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 580707.095703125,
+ "worker_rss_kib": 67536,
+ "cli_rss_kib": 448596,
+ "stem": "00-precision-12-parsed"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 586859.642578125,
+ "worker_rss_kib": 66132,
+ "cli_rss_kib": 448716,
+ "stem": "01-precision-12-parsed"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 589191.37890625,
+ "worker_rss_kib": 67508,
+ "cli_rss_kib": 448648,
+ "stem": "02-precision-12-parsed"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 584115.806640625,
+ "worker_rss_kib": 65932,
+ "cli_rss_kib": 448736,
+ "stem": "03-precision-12-parsed"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 585979.513671875,
+ "worker_rss_kib": 65920,
+ "cli_rss_kib": 448716,
+ "stem": "04-precision-12-parsed"
+ }
+ ],
+ "wire_integer_tokens": 1420,
+ "row_system_sizes": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_moment_json_bytes": 3287
+ },
+ {
+ "case": "precision-12",
+ "axis": "precision",
+ "parameter": 12,
+ "degree": 2,
+ "atoms": 2,
+ "query_bits_parameter": 16,
+ "precision": 12,
+ "depth": 0,
+ "bytes": 10046,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "max_wire_integer_bits": 68,
+ "arm": "restored",
+ "median_microseconds": 651.8666796875,
+ "min_microseconds": 645.328640625,
+ "max_microseconds": 652.143439453125,
+ "worker_rss_kib": [
+ 66720,
+ 69136
+ ],
+ "cli_rss_kib": [
+ 448572,
+ 448736
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 651973.61328125,
+ "worker_rss_kib": 69136,
+ "cli_rss_kib": 448728,
+ "stem": "00-precision-12-restored"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 651866.6796875,
+ "worker_rss_kib": 66892,
+ "cli_rss_kib": 448572,
+ "stem": "01-precision-12-restored"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 652143.439453125,
+ "worker_rss_kib": 67304,
+ "cli_rss_kib": 448648,
+ "stem": "02-precision-12-restored"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 648053.099609375,
+ "worker_rss_kib": 66984,
+ "cli_rss_kib": 448736,
+ "stem": "03-precision-12-restored"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 645328.640625,
+ "worker_rss_kib": 66720,
+ "cli_rss_kib": 448720,
+ "stem": "04-precision-12-restored"
+ }
+ ],
+ "wire_integer_tokens": 1420,
+ "row_system_sizes": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_moment_json_bytes": 3287
+ },
+ {
+ "case": "precision-12",
+ "axis": "precision",
+ "parameter": 12,
+ "degree": 2,
+ "atoms": 2,
+ "query_bits_parameter": 16,
+ "precision": 12,
+ "depth": 0,
+ "bytes": 10046,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "max_wire_integer_bits": 68,
+ "arm": "replayed",
+ "median_microseconds": 852.88227734375,
+ "min_microseconds": 849.219546875,
+ "max_microseconds": 868.590375,
+ "worker_rss_kib": [
+ 62164,
+ 67588
+ ],
+ "cli_rss_kib": [
+ 448504,
+ 448728
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 855266.2109375,
+ "worker_rss_kib": 66724,
+ "cli_rss_kib": 448504,
+ "stem": "00-precision-12-replayed"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 852882.27734375,
+ "worker_rss_kib": 67588,
+ "cli_rss_kib": 448612,
+ "stem": "01-precision-12-replayed"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 868590.375,
+ "worker_rss_kib": 66960,
+ "cli_rss_kib": 448592,
+ "stem": "02-precision-12-replayed"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 849219.546875,
+ "worker_rss_kib": 62164,
+ "cli_rss_kib": 448676,
+ "stem": "03-precision-12-replayed"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 849338.25,
+ "worker_rss_kib": 67444,
+ "cli_rss_kib": 448728,
+ "stem": "04-precision-12-replayed"
+ }
+ ],
+ "wire_integer_tokens": 1420,
+ "row_system_sizes": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_moment_json_bytes": 3287
+ },
+ {
+ "case": "depth-0",
+ "axis": "depth",
+ "parameter": 0,
+ "degree": 2,
+ "atoms": 2,
+ "query_bits_parameter": 16,
+ "precision": 0,
+ "depth": 0,
+ "bytes": 9916,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "max_wire_integer_bits": 68,
+ "arm": "lexical",
+ "median_microseconds": 153.59442626953125,
+ "min_microseconds": 153.4490751953125,
+ "max_microseconds": 156.76274169921874,
+ "worker_rss_kib": [
+ 66104,
+ 68480
+ ],
+ "cli_rss_kib": [
+ 448476,
+ 448788
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 153567.798828125,
+ "worker_rss_kib": 68480,
+ "cli_rss_kib": 448476,
+ "stem": "00-depth-0-lexical"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 156268.013671875,
+ "worker_rss_kib": 67916,
+ "cli_rss_kib": 448608,
+ "stem": "01-depth-0-lexical"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 153449.0751953125,
+ "worker_rss_kib": 66104,
+ "cli_rss_kib": 448732,
+ "stem": "02-depth-0-lexical"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 153594.42626953125,
+ "worker_rss_kib": 66104,
+ "cli_rss_kib": 448788,
+ "stem": "03-depth-0-lexical"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 156762.74169921875,
+ "worker_rss_kib": 66152,
+ "cli_rss_kib": 448568,
+ "stem": "04-depth-0-lexical"
+ }
+ ],
+ "wire_integer_tokens": 1420,
+ "row_system_sizes": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_moment_json_bytes": 3217
+ },
+ {
+ "case": "depth-0",
+ "axis": "depth",
+ "parameter": 0,
+ "degree": 2,
+ "atoms": 2,
+ "query_bits_parameter": 16,
+ "precision": 0,
+ "depth": 0,
+ "bytes": 9916,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "max_wire_integer_bits": 68,
+ "arm": "parsed",
+ "median_microseconds": 573.691640625,
+ "min_microseconds": 571.64068359375,
+ "max_microseconds": 583.027064453125,
+ "worker_rss_kib": [
+ 65900,
+ 67572
+ ],
+ "cli_rss_kib": [
+ 448532,
+ 448792
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 573691.640625,
+ "worker_rss_kib": 67192,
+ "cli_rss_kib": 448708,
+ "stem": "00-depth-0-parsed"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 572203.767578125,
+ "worker_rss_kib": 66188,
+ "cli_rss_kib": 448716,
+ "stem": "01-depth-0-parsed"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 574860.82421875,
+ "worker_rss_kib": 66508,
+ "cli_rss_kib": 448772,
+ "stem": "02-depth-0-parsed"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 583027.064453125,
+ "worker_rss_kib": 67572,
+ "cli_rss_kib": 448532,
+ "stem": "03-depth-0-parsed"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 571640.68359375,
+ "worker_rss_kib": 65900,
+ "cli_rss_kib": 448792,
+ "stem": "04-depth-0-parsed"
+ }
+ ],
+ "wire_integer_tokens": 1420,
+ "row_system_sizes": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_moment_json_bytes": 3217
+ },
+ {
+ "case": "depth-0",
+ "axis": "depth",
+ "parameter": 0,
+ "degree": 2,
+ "atoms": 2,
+ "query_bits_parameter": 16,
+ "precision": 0,
+ "depth": 0,
+ "bytes": 9916,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "max_wire_integer_bits": 68,
+ "arm": "restored",
+ "median_microseconds": 639.44284765625,
+ "min_microseconds": 634.0821171875,
+ "max_microseconds": 647.021708984375,
+ "worker_rss_kib": [
+ 66556,
+ 68932
+ ],
+ "cli_rss_kib": [
+ 448560,
+ 448788
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 634082.1171875,
+ "worker_rss_kib": 66832,
+ "cli_rss_kib": 448644,
+ "stem": "00-depth-0-restored"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 636026.236328125,
+ "worker_rss_kib": 66556,
+ "cli_rss_kib": 448704,
+ "stem": "01-depth-0-restored"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 643081.849609375,
+ "worker_rss_kib": 68932,
+ "cli_rss_kib": 448788,
+ "stem": "02-depth-0-restored"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 647021.708984375,
+ "worker_rss_kib": 68224,
+ "cli_rss_kib": 448612,
+ "stem": "03-depth-0-restored"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 639442.84765625,
+ "worker_rss_kib": 66628,
+ "cli_rss_kib": 448560,
+ "stem": "04-depth-0-restored"
+ }
+ ],
+ "wire_integer_tokens": 1420,
+ "row_system_sizes": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_moment_json_bytes": 3217
+ },
+ {
+ "case": "depth-0",
+ "axis": "depth",
+ "parameter": 0,
+ "degree": 2,
+ "atoms": 2,
+ "query_bits_parameter": 16,
+ "precision": 0,
+ "depth": 0,
+ "bytes": 9916,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "max_wire_integer_bits": 68,
+ "arm": "replayed",
+ "median_microseconds": 836.08254296875,
+ "min_microseconds": 827.17105078125,
+ "max_microseconds": 839.128984375,
+ "worker_rss_kib": [
+ 66728,
+ 68996
+ ],
+ "cli_rss_kib": [
+ 448540,
+ 448844
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 836082.54296875,
+ "worker_rss_kib": 66728,
+ "cli_rss_kib": 448560,
+ "stem": "00-depth-0-replayed"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 837673.609375,
+ "worker_rss_kib": 68996,
+ "cli_rss_kib": 448540,
+ "stem": "01-depth-0-replayed"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 839128.984375,
+ "worker_rss_kib": 67232,
+ "cli_rss_kib": 448668,
+ "stem": "02-depth-0-replayed"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 827171.05078125,
+ "worker_rss_kib": 67432,
+ "cli_rss_kib": 448844,
+ "stem": "03-depth-0-replayed"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 831342.7109375,
+ "worker_rss_kib": 66788,
+ "cli_rss_kib": 448720,
+ "stem": "04-depth-0-replayed"
+ }
+ ],
+ "wire_integer_tokens": 1420,
+ "row_system_sizes": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_moment_json_bytes": 3217
+ },
+ {
+ "case": "depth-1",
+ "axis": "depth",
+ "parameter": 1,
+ "degree": 2,
+ "atoms": 2,
+ "query_bits_parameter": 16,
+ "precision": 0,
+ "depth": 1,
+ "bytes": 28321,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "max_wire_integer_bits": 136,
+ "arm": "lexical",
+ "median_microseconds": 440.737353515625,
+ "min_microseconds": 436.48585546875,
+ "max_microseconds": 443.470287109375,
+ "worker_rss_kib": [
+ 65684,
+ 68444
+ ],
+ "cli_rss_kib": [
+ 448472,
+ 448780
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 443470.287109375,
+ "worker_rss_kib": 66692,
+ "cli_rss_kib": 448472,
+ "stem": "00-depth-1-lexical"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 436677.9140625,
+ "worker_rss_kib": 66840,
+ "cli_rss_kib": 448680,
+ "stem": "01-depth-1-lexical"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 440737.353515625,
+ "worker_rss_kib": 68444,
+ "cli_rss_kib": 448780,
+ "stem": "02-depth-1-lexical"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 440904.685546875,
+ "worker_rss_kib": 65808,
+ "cli_rss_kib": 448656,
+ "stem": "03-depth-1-lexical"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 436485.85546875,
+ "worker_rss_kib": 65684,
+ "cli_rss_kib": 448556,
+ "stem": "04-depth-1-lexical"
+ }
+ ],
+ "wire_integer_tokens": 3689,
+ "row_system_sizes": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_moment_json_bytes": 9610
+ },
+ {
+ "case": "depth-1",
+ "axis": "depth",
+ "parameter": 1,
+ "degree": 2,
+ "atoms": 2,
+ "query_bits_parameter": 16,
+ "precision": 0,
+ "depth": 1,
+ "bytes": 28321,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "max_wire_integer_bits": 136,
+ "arm": "parsed",
+ "median_microseconds": 1671.1807265625,
+ "min_microseconds": 1662.4758046875,
+ "max_microseconds": 1676.803390625,
+ "worker_rss_kib": [
+ 68096,
+ 69104
+ ],
+ "cli_rss_kib": [
+ 448512,
+ 448732
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 1662475.8046875,
+ "worker_rss_kib": 68524,
+ "cli_rss_kib": 448616,
+ "stem": "00-depth-1-parsed"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 1662609.609375,
+ "worker_rss_kib": 68264,
+ "cli_rss_kib": 448528,
+ "stem": "01-depth-1-parsed"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 1676803.390625,
+ "worker_rss_kib": 68260,
+ "cli_rss_kib": 448732,
+ "stem": "02-depth-1-parsed"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 1671180.7265625,
+ "worker_rss_kib": 68096,
+ "cli_rss_kib": 448672,
+ "stem": "03-depth-1-parsed"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 1675001.640625,
+ "worker_rss_kib": 69104,
+ "cli_rss_kib": 448512,
+ "stem": "04-depth-1-parsed"
+ }
+ ],
+ "wire_integer_tokens": 3689,
+ "row_system_sizes": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_moment_json_bytes": 9610
+ },
+ {
+ "case": "depth-1",
+ "axis": "depth",
+ "parameter": 1,
+ "degree": 2,
+ "atoms": 2,
+ "query_bits_parameter": 16,
+ "precision": 0,
+ "depth": 1,
+ "bytes": 28321,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "max_wire_integer_bits": 136,
+ "arm": "restored",
+ "median_microseconds": 1982.5442734375,
+ "min_microseconds": 1972.8462578125,
+ "max_microseconds": 1992.5256171875,
+ "worker_rss_kib": [
+ 68276,
+ 70800
+ ],
+ "cli_rss_kib": [
+ 448360,
+ 448728
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 1975062.203125,
+ "worker_rss_kib": 69964,
+ "cli_rss_kib": 448360,
+ "stem": "00-depth-1-restored"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 1992525.6171875,
+ "worker_rss_kib": 70020,
+ "cli_rss_kib": 448716,
+ "stem": "01-depth-1-restored"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 1972846.2578125,
+ "worker_rss_kib": 70800,
+ "cli_rss_kib": 448712,
+ "stem": "02-depth-1-restored"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 1982544.2734375,
+ "worker_rss_kib": 68276,
+ "cli_rss_kib": 448672,
+ "stem": "03-depth-1-restored"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 1986514.0078125,
+ "worker_rss_kib": 69068,
+ "cli_rss_kib": 448728,
+ "stem": "04-depth-1-restored"
+ }
+ ],
+ "wire_integer_tokens": 3689,
+ "row_system_sizes": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_moment_json_bytes": 9610
+ },
+ {
+ "case": "depth-1",
+ "axis": "depth",
+ "parameter": 1,
+ "degree": 2,
+ "atoms": 2,
+ "query_bits_parameter": 16,
+ "precision": 0,
+ "depth": 1,
+ "bytes": 28321,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "max_wire_integer_bits": 136,
+ "arm": "replayed",
+ "median_microseconds": 2836.0805625,
+ "min_microseconds": 2822.5748203125,
+ "max_microseconds": 2886.58215625,
+ "worker_rss_kib": [
+ 68492,
+ 70696
+ ],
+ "cli_rss_kib": [
+ 448416,
+ 448776
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 2856270.9921875,
+ "worker_rss_kib": 70696,
+ "cli_rss_kib": 448416,
+ "stem": "00-depth-1-replayed"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 2886582.15625,
+ "worker_rss_kib": 68924,
+ "cli_rss_kib": 448776,
+ "stem": "01-depth-1-replayed"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 2822574.8203125,
+ "worker_rss_kib": 68528,
+ "cli_rss_kib": 448716,
+ "stem": "02-depth-1-replayed"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 2824526.921875,
+ "worker_rss_kib": 69616,
+ "cli_rss_kib": 448524,
+ "stem": "03-depth-1-replayed"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 2836080.5625,
+ "worker_rss_kib": 68492,
+ "cli_rss_kib": 448660,
+ "stem": "04-depth-1-replayed"
+ }
+ ],
+ "wire_integer_tokens": 3689,
+ "row_system_sizes": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_moment_json_bytes": 9610
+ },
+ {
+ "case": "depth-2",
+ "axis": "depth",
+ "parameter": 2,
+ "degree": 2,
+ "atoms": 2,
+ "query_bits_parameter": 16,
+ "precision": 0,
+ "depth": 2,
+ "bytes": 53744,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "max_wire_integer_bits": 272,
+ "arm": "lexical",
+ "median_microseconds": 821.5792890625,
+ "min_microseconds": 819.0192890625,
+ "max_microseconds": 839.67936328125,
+ "worker_rss_kib": [
+ 65896,
+ 67424
+ ],
+ "cli_rss_kib": [
+ 448568,
+ 448716
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 819019.2890625,
+ "worker_rss_kib": 67100,
+ "cli_rss_kib": 448716,
+ "stem": "00-depth-2-lexical"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 833679.26171875,
+ "worker_rss_kib": 66688,
+ "cli_rss_kib": 448688,
+ "stem": "01-depth-2-lexical"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 820233.28515625,
+ "worker_rss_kib": 67424,
+ "cli_rss_kib": 448604,
+ "stem": "02-depth-2-lexical"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 821579.2890625,
+ "worker_rss_kib": 66616,
+ "cli_rss_kib": 448608,
+ "stem": "03-depth-2-lexical"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 839679.36328125,
+ "worker_rss_kib": 65896,
+ "cli_rss_kib": 448568,
+ "stem": "04-depth-2-lexical"
+ }
+ ],
+ "wire_integer_tokens": 6341,
+ "row_system_sizes": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_moment_json_bytes": 19350
+ },
+ {
+ "case": "depth-2",
+ "axis": "depth",
+ "parameter": 2,
+ "degree": 2,
+ "atoms": 2,
+ "query_bits_parameter": 16,
+ "precision": 0,
+ "depth": 2,
+ "bytes": 53744,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "max_wire_integer_bits": 272,
+ "arm": "parsed",
+ "median_microseconds": 3650.928125,
+ "min_microseconds": 3625.80484375,
+ "max_microseconds": 3689.86240625,
+ "worker_rss_kib": [
+ 68040,
+ 70464
+ ],
+ "cli_rss_kib": [
+ 448584,
+ 448808
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 3670752.859375,
+ "worker_rss_kib": 68528,
+ "cli_rss_kib": 448716,
+ "stem": "00-depth-2-parsed"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 3689862.40625,
+ "worker_rss_kib": 70464,
+ "cli_rss_kib": 448716,
+ "stem": "01-depth-2-parsed"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 3645348.515625,
+ "worker_rss_kib": 69364,
+ "cli_rss_kib": 448760,
+ "stem": "02-depth-2-parsed"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 3650928.125,
+ "worker_rss_kib": 69700,
+ "cli_rss_kib": 448808,
+ "stem": "03-depth-2-parsed"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 3625804.84375,
+ "worker_rss_kib": 68040,
+ "cli_rss_kib": 448584,
+ "stem": "04-depth-2-parsed"
+ }
+ ],
+ "wire_integer_tokens": 6341,
+ "row_system_sizes": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_moment_json_bytes": 19350
+ },
+ {
+ "case": "depth-2",
+ "axis": "depth",
+ "parameter": 2,
+ "degree": 2,
+ "atoms": 2,
+ "query_bits_parameter": 16,
+ "precision": 0,
+ "depth": 2,
+ "bytes": 53744,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "max_wire_integer_bits": 272,
+ "arm": "restored",
+ "median_microseconds": 4796.862984375,
+ "min_microseconds": 4788.74928125,
+ "max_microseconds": 5048.320078125,
+ "worker_rss_kib": [
+ 69020,
+ 70636
+ ],
+ "cli_rss_kib": [
+ 448588,
+ 448712
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 5048320.078125,
+ "worker_rss_kib": 70636,
+ "cli_rss_kib": 448684,
+ "stem": "00-depth-2-restored"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 4788749.28125,
+ "worker_rss_kib": 69740,
+ "cli_rss_kib": 448600,
+ "stem": "01-depth-2-restored"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 4796862.984375,
+ "worker_rss_kib": 69020,
+ "cli_rss_kib": 448676,
+ "stem": "02-depth-2-restored"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 4788800.53125,
+ "worker_rss_kib": 69056,
+ "cli_rss_kib": 448712,
+ "stem": "03-depth-2-restored"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 4821712.484375,
+ "worker_rss_kib": 70080,
+ "cli_rss_kib": 448588,
+ "stem": "04-depth-2-restored"
+ }
+ ],
+ "wire_integer_tokens": 6341,
+ "row_system_sizes": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_moment_json_bytes": 19350
+ },
+ {
+ "case": "depth-2",
+ "axis": "depth",
+ "parameter": 2,
+ "degree": 2,
+ "atoms": 2,
+ "query_bits_parameter": 16,
+ "precision": 0,
+ "depth": 2,
+ "bytes": 53744,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "max_wire_integer_bits": 272,
+ "arm": "replayed",
+ "median_microseconds": 7931.8080625,
+ "min_microseconds": 7914.537,
+ "max_microseconds": 7992.37503125,
+ "worker_rss_kib": [
+ 68540,
+ 71308
+ ],
+ "cli_rss_kib": [
+ 442984,
+ 448720
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 7931808.0625,
+ "worker_rss_kib": 71308,
+ "cli_rss_kib": 442984,
+ "stem": "00-depth-2-replayed"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 7914537.0,
+ "worker_rss_kib": 68960,
+ "cli_rss_kib": 448532,
+ "stem": "01-depth-2-replayed"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 7992375.03125,
+ "worker_rss_kib": 68540,
+ "cli_rss_kib": 448664,
+ "stem": "02-depth-2-replayed"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 7918689.15625,
+ "worker_rss_kib": 68552,
+ "cli_rss_kib": 448720,
+ "stem": "03-depth-2-replayed"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 7962864.09375,
+ "worker_rss_kib": 68800,
+ "cli_rss_kib": 448600,
+ "stem": "04-depth-2-replayed"
+ }
+ ],
+ "wire_integer_tokens": 6341,
+ "row_system_sizes": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_moment_json_bytes": 19350
+ },
+ {
+ "case": "repeated-4",
+ "axis": "repeated",
+ "parameter": 4,
+ "degree": 2,
+ "atoms": 4,
+ "query_bits_parameter": 16,
+ "precision": 0,
+ "depth": 0,
+ "bytes": 8097,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 7,
+ "max_wire_integer_bits": 66,
+ "arm": "lexical",
+ "median_microseconds": 126.52948486328125,
+ "min_microseconds": 124.7860947265625,
+ "max_microseconds": 128.11944677734374,
+ "worker_rss_kib": [
+ 60052,
+ 66616
+ ],
+ "cli_rss_kib": [
+ 448528,
+ 448824
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 126771.32763671875,
+ "worker_rss_kib": 66616,
+ "cli_rss_kib": 448684,
+ "stem": "00-repeated-4-lexical"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 128119.44677734375,
+ "worker_rss_kib": 66072,
+ "cli_rss_kib": 448824,
+ "stem": "01-repeated-4-lexical"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 126529.48486328125,
+ "worker_rss_kib": 60052,
+ "cli_rss_kib": 448548,
+ "stem": "02-repeated-4-lexical"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 124979.60302734375,
+ "worker_rss_kib": 65856,
+ "cli_rss_kib": 448528,
+ "stem": "03-repeated-4-lexical"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 124786.0947265625,
+ "worker_rss_kib": 66144,
+ "cli_rss_kib": 448720,
+ "stem": "04-repeated-4-lexical"
+ }
+ ],
+ "wire_integer_tokens": 1165,
+ "row_system_sizes": [
+ 3,
+ 1,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 1,
+ 1
+ ],
+ "row_moment_json_bytes": 2221
+ },
+ {
+ "case": "repeated-4",
+ "axis": "repeated",
+ "parameter": 4,
+ "degree": 2,
+ "atoms": 4,
+ "query_bits_parameter": 16,
+ "precision": 0,
+ "depth": 0,
+ "bytes": 8097,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 7,
+ "max_wire_integer_bits": 66,
+ "arm": "parsed",
+ "median_microseconds": 460.389150390625,
+ "min_microseconds": 459.258314453125,
+ "max_microseconds": 463.334134765625,
+ "worker_rss_kib": [
+ 61268,
+ 67308
+ ],
+ "cli_rss_kib": [
+ 448492,
+ 448700
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 459258.314453125,
+ "worker_rss_kib": 67092,
+ "cli_rss_kib": 448492,
+ "stem": "00-repeated-4-parsed"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 459948.927734375,
+ "worker_rss_kib": 67308,
+ "cli_rss_kib": 448680,
+ "stem": "01-repeated-4-parsed"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 461727.759765625,
+ "worker_rss_kib": 61268,
+ "cli_rss_kib": 448580,
+ "stem": "02-repeated-4-parsed"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 463334.134765625,
+ "worker_rss_kib": 66316,
+ "cli_rss_kib": 448612,
+ "stem": "03-repeated-4-parsed"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 460389.150390625,
+ "worker_rss_kib": 67028,
+ "cli_rss_kib": 448700,
+ "stem": "04-repeated-4-parsed"
+ }
+ ],
+ "wire_integer_tokens": 1165,
+ "row_system_sizes": [
+ 3,
+ 1,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 1,
+ 1
+ ],
+ "row_moment_json_bytes": 2221
+ },
+ {
+ "case": "repeated-4",
+ "axis": "repeated",
+ "parameter": 4,
+ "degree": 2,
+ "atoms": 4,
+ "query_bits_parameter": 16,
+ "precision": 0,
+ "depth": 0,
+ "bytes": 8097,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 7,
+ "max_wire_integer_bits": 66,
+ "arm": "restored",
+ "median_microseconds": 524.409361328125,
+ "min_microseconds": 518.256876953125,
+ "max_microseconds": 525.025509765625,
+ "worker_rss_kib": [
+ 60964,
+ 68388
+ ],
+ "cli_rss_kib": [
+ 448548,
+ 448696
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 525025.509765625,
+ "worker_rss_kib": 67304,
+ "cli_rss_kib": 448616,
+ "stem": "00-repeated-4-restored"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 523882.98828125,
+ "worker_rss_kib": 68388,
+ "cli_rss_kib": 448656,
+ "stem": "01-repeated-4-restored"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 524726.98046875,
+ "worker_rss_kib": 60964,
+ "cli_rss_kib": 448548,
+ "stem": "02-repeated-4-restored"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 518256.876953125,
+ "worker_rss_kib": 66192,
+ "cli_rss_kib": 448696,
+ "stem": "03-repeated-4-restored"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 524409.361328125,
+ "worker_rss_kib": 68180,
+ "cli_rss_kib": 448580,
+ "stem": "04-repeated-4-restored"
+ }
+ ],
+ "wire_integer_tokens": 1165,
+ "row_system_sizes": [
+ 3,
+ 1,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 1,
+ 1
+ ],
+ "row_moment_json_bytes": 2221
+ },
+ {
+ "case": "repeated-4",
+ "axis": "repeated",
+ "parameter": 4,
+ "degree": 2,
+ "atoms": 4,
+ "query_bits_parameter": 16,
+ "precision": 0,
+ "depth": 0,
+ "bytes": 8097,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 7,
+ "max_wire_integer_bits": 66,
+ "arm": "replayed",
+ "median_microseconds": 678.33369921875,
+ "min_microseconds": 668.71763671875,
+ "max_microseconds": 680.441173828125,
+ "worker_rss_kib": [
+ 60592,
+ 67504
+ ],
+ "cli_rss_kib": [
+ 448656,
+ 448696
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 680441.173828125,
+ "worker_rss_kib": 66596,
+ "cli_rss_kib": 448696,
+ "stem": "00-repeated-4-replayed"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 668717.63671875,
+ "worker_rss_kib": 67504,
+ "cli_rss_kib": 448660,
+ "stem": "01-repeated-4-replayed"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 673063.607421875,
+ "worker_rss_kib": 63736,
+ "cli_rss_kib": 448680,
+ "stem": "02-repeated-4-replayed"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 678333.69921875,
+ "worker_rss_kib": 67168,
+ "cli_rss_kib": 448656,
+ "stem": "03-repeated-4-replayed"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 680203.333984375,
+ "worker_rss_kib": 60592,
+ "cli_rss_kib": 448676,
+ "stem": "04-repeated-4-replayed"
+ }
+ ],
+ "wire_integer_tokens": 1165,
+ "row_system_sizes": [
+ 3,
+ 1,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 1,
+ 1
+ ],
+ "row_moment_json_bytes": 2221
+ },
+ {
+ "case": "common-2",
+ "axis": "common",
+ "parameter": 2,
+ "degree": 2,
+ "atoms": 2,
+ "query_bits_parameter": 16,
+ "precision": 0,
+ "depth": 0,
+ "bytes": 8268,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "max_wire_integer_bits": 2,
+ "arm": "lexical",
+ "median_microseconds": 127.68111669921875,
+ "min_microseconds": 127.24697314453125,
+ "max_microseconds": 128.38611279296876,
+ "worker_rss_kib": [
+ 66068,
+ 68236
+ ],
+ "cli_rss_kib": [
+ 448536,
+ 448840
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 128386.11279296875,
+ "worker_rss_kib": 66068,
+ "cli_rss_kib": 448620,
+ "stem": "00-common-2-lexical"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 127681.11669921875,
+ "worker_rss_kib": 68236,
+ "cli_rss_kib": 448640,
+ "stem": "01-common-2-lexical"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 128246.14990234375,
+ "worker_rss_kib": 66432,
+ "cli_rss_kib": 448840,
+ "stem": "02-common-2-lexical"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 127360.8466796875,
+ "worker_rss_kib": 66160,
+ "cli_rss_kib": 448536,
+ "stem": "03-common-2-lexical"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 127246.97314453125,
+ "worker_rss_kib": 67476,
+ "cli_rss_kib": 448648,
+ "stem": "04-common-2-lexical"
+ }
+ ],
+ "wire_integer_tokens": 1195,
+ "row_system_sizes": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_moment_json_bytes": 2423
+ },
+ {
+ "case": "common-2",
+ "axis": "common",
+ "parameter": 2,
+ "degree": 2,
+ "atoms": 2,
+ "query_bits_parameter": 16,
+ "precision": 0,
+ "depth": 0,
+ "bytes": 8268,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "max_wire_integer_bits": 2,
+ "arm": "parsed",
+ "median_microseconds": 441.043841796875,
+ "min_microseconds": 437.052376953125,
+ "max_microseconds": 452.0838125,
+ "worker_rss_kib": [
+ 64516,
+ 67540
+ ],
+ "cli_rss_kib": [
+ 448544,
+ 448800
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 437052.376953125,
+ "worker_rss_kib": 66300,
+ "cli_rss_kib": 448704,
+ "stem": "00-common-2-parsed"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 441043.841796875,
+ "worker_rss_kib": 64516,
+ "cli_rss_kib": 448800,
+ "stem": "01-common-2-parsed"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 438921.697265625,
+ "worker_rss_kib": 66756,
+ "cli_rss_kib": 448748,
+ "stem": "02-common-2-parsed"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 452083.8125,
+ "worker_rss_kib": 66540,
+ "cli_rss_kib": 448544,
+ "stem": "03-common-2-parsed"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 441144.673828125,
+ "worker_rss_kib": 67540,
+ "cli_rss_kib": 448584,
+ "stem": "04-common-2-parsed"
+ }
+ ],
+ "wire_integer_tokens": 1195,
+ "row_system_sizes": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_moment_json_bytes": 2423
+ },
+ {
+ "case": "common-2",
+ "axis": "common",
+ "parameter": 2,
+ "degree": 2,
+ "atoms": 2,
+ "query_bits_parameter": 16,
+ "precision": 0,
+ "depth": 0,
+ "bytes": 8268,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "max_wire_integer_bits": 2,
+ "arm": "restored",
+ "median_microseconds": 509.435865234375,
+ "min_microseconds": 505.28583984375,
+ "max_microseconds": 515.974166015625,
+ "worker_rss_kib": [
+ 64788,
+ 67360
+ ],
+ "cli_rss_kib": [
+ 448628,
+ 448776
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 509501.29296875,
+ "worker_rss_kib": 66748,
+ "cli_rss_kib": 448716,
+ "stem": "00-common-2-restored"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 505285.83984375,
+ "worker_rss_kib": 64788,
+ "cli_rss_kib": 448776,
+ "stem": "01-common-2-restored"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 509435.865234375,
+ "worker_rss_kib": 66508,
+ "cli_rss_kib": 448628,
+ "stem": "02-common-2-restored"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 509114.150390625,
+ "worker_rss_kib": 67360,
+ "cli_rss_kib": 448656,
+ "stem": "03-common-2-restored"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 515974.166015625,
+ "worker_rss_kib": 66420,
+ "cli_rss_kib": 448692,
+ "stem": "04-common-2-restored"
+ }
+ ],
+ "wire_integer_tokens": 1195,
+ "row_system_sizes": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_moment_json_bytes": 2423
+ },
+ {
+ "case": "common-2",
+ "axis": "common",
+ "parameter": 2,
+ "degree": 2,
+ "atoms": 2,
+ "query_bits_parameter": 16,
+ "precision": 0,
+ "depth": 0,
+ "bytes": 8268,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "max_wire_integer_bits": 2,
+ "arm": "replayed",
+ "median_microseconds": 640.565240234375,
+ "min_microseconds": 639.37313671875,
+ "max_microseconds": 642.677087890625,
+ "worker_rss_kib": [
+ 63820,
+ 68272
+ ],
+ "cli_rss_kib": [
+ 448592,
+ 448792
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 640565.240234375,
+ "worker_rss_kib": 66648,
+ "cli_rss_kib": 448592,
+ "stem": "00-common-2-replayed"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 640402.240234375,
+ "worker_rss_kib": 63820,
+ "cli_rss_kib": 448704,
+ "stem": "01-common-2-replayed"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 641005.396484375,
+ "worker_rss_kib": 66968,
+ "cli_rss_kib": 448764,
+ "stem": "02-common-2-replayed"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 642677.087890625,
+ "worker_rss_kib": 68272,
+ "cli_rss_kib": 448792,
+ "stem": "03-common-2-replayed"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 639373.13671875,
+ "worker_rss_kib": 66688,
+ "cli_rss_kib": 448708,
+ "stem": "04-common-2-replayed"
+ }
+ ],
+ "wire_integer_tokens": 1195,
+ "row_system_sizes": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_moment_json_bytes": 2423
+ },
+ {
+ "case": "repeated-roots-2",
+ "axis": "repeated-roots",
+ "parameter": 2,
+ "degree": 2,
+ "atoms": 2,
+ "query_bits_parameter": 16,
+ "precision": 0,
+ "depth": 0,
+ "bytes": 9613,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "max_wire_integer_bits": 9,
+ "arm": "lexical",
+ "median_microseconds": 148.84873828125,
+ "min_microseconds": 147.59353662109376,
+ "max_microseconds": 152.5999736328125,
+ "worker_rss_kib": [
+ 65992,
+ 66864
+ ],
+ "cli_rss_kib": [
+ 448528,
+ 448772
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 150447.05517578125,
+ "worker_rss_kib": 66756,
+ "cli_rss_kib": 448680,
+ "stem": "00-repeated-roots-2-lexical"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 152599.9736328125,
+ "worker_rss_kib": 65992,
+ "cli_rss_kib": 448652,
+ "stem": "01-repeated-roots-2-lexical"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 148848.73828125,
+ "worker_rss_kib": 66332,
+ "cli_rss_kib": 448772,
+ "stem": "02-repeated-roots-2-lexical"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 147593.53662109375,
+ "worker_rss_kib": 66124,
+ "cli_rss_kib": 448732,
+ "stem": "03-repeated-roots-2-lexical"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 147761.97607421875,
+ "worker_rss_kib": 66864,
+ "cli_rss_kib": 448528,
+ "stem": "04-repeated-roots-2-lexical"
+ }
+ ],
+ "wire_integer_tokens": 1444,
+ "row_system_sizes": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_moment_json_bytes": 2902
+ },
+ {
+ "case": "repeated-roots-2",
+ "axis": "repeated-roots",
+ "parameter": 2,
+ "degree": 2,
+ "atoms": 2,
+ "query_bits_parameter": 16,
+ "precision": 0,
+ "depth": 0,
+ "bytes": 9613,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "max_wire_integer_bits": 9,
+ "arm": "parsed",
+ "median_microseconds": 528.115669921875,
+ "min_microseconds": 523.620123046875,
+ "max_microseconds": 528.69426953125,
+ "worker_rss_kib": [
+ 66188,
+ 68324
+ ],
+ "cli_rss_kib": [
+ 448520,
+ 448716
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 528561.2578125,
+ "worker_rss_kib": 66596,
+ "cli_rss_kib": 448520,
+ "stem": "00-repeated-roots-2-parsed"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 523620.123046875,
+ "worker_rss_kib": 68324,
+ "cli_rss_kib": 448548,
+ "stem": "01-repeated-roots-2-parsed"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 528694.26953125,
+ "worker_rss_kib": 66188,
+ "cli_rss_kib": 448716,
+ "stem": "02-repeated-roots-2-parsed"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 528115.669921875,
+ "worker_rss_kib": 67548,
+ "cli_rss_kib": 448704,
+ "stem": "03-repeated-roots-2-parsed"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 527744.751953125,
+ "worker_rss_kib": 66264,
+ "cli_rss_kib": 448576,
+ "stem": "04-repeated-roots-2-parsed"
+ }
+ ],
+ "wire_integer_tokens": 1444,
+ "row_system_sizes": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_moment_json_bytes": 2902
+ },
+ {
+ "case": "repeated-roots-2",
+ "axis": "repeated-roots",
+ "parameter": 2,
+ "degree": 2,
+ "atoms": 2,
+ "query_bits_parameter": 16,
+ "precision": 0,
+ "depth": 0,
+ "bytes": 9613,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "max_wire_integer_bits": 9,
+ "arm": "restored",
+ "median_microseconds": 591.88133203125,
+ "min_microseconds": 587.609802734375,
+ "max_microseconds": 594.6766953125,
+ "worker_rss_kib": [
+ 66560,
+ 68456
+ ],
+ "cli_rss_kib": [
+ 448544,
+ 448788
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 591881.33203125,
+ "worker_rss_kib": 68072,
+ "cli_rss_kib": 448676,
+ "stem": "00-repeated-roots-2-restored"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 590758.265625,
+ "worker_rss_kib": 66644,
+ "cli_rss_kib": 448788,
+ "stem": "01-repeated-roots-2-restored"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 593192.939453125,
+ "worker_rss_kib": 66560,
+ "cli_rss_kib": 448544,
+ "stem": "02-repeated-roots-2-restored"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 594676.6953125,
+ "worker_rss_kib": 67968,
+ "cli_rss_kib": 448712,
+ "stem": "03-repeated-roots-2-restored"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 587609.802734375,
+ "worker_rss_kib": 68456,
+ "cli_rss_kib": 448744,
+ "stem": "04-repeated-roots-2-restored"
+ }
+ ],
+ "wire_integer_tokens": 1444,
+ "row_system_sizes": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_moment_json_bytes": 2902
+ },
+ {
+ "case": "repeated-roots-2",
+ "axis": "repeated-roots",
+ "parameter": 2,
+ "degree": 2,
+ "atoms": 2,
+ "query_bits_parameter": 16,
+ "precision": 0,
+ "depth": 0,
+ "bytes": 9613,
+ "row_unique_nodes": 3,
+ "row_expanded_nodes": 3,
+ "max_wire_integer_bits": 9,
+ "arm": "replayed",
+ "median_microseconds": 776.00814453125,
+ "min_microseconds": 772.411755859375,
+ "max_microseconds": 809.62302734375,
+ "worker_rss_kib": [
+ 66584,
+ 67976
+ ],
+ "cli_rss_kib": [
+ 448528,
+ 448784
+ ],
+ "samples": [
+ {
+ "block": 0,
+ "nanoseconds": 784841.0546875,
+ "worker_rss_kib": 67300,
+ "cli_rss_kib": 448528,
+ "stem": "00-repeated-roots-2-replayed"
+ },
+ {
+ "block": 1,
+ "nanoseconds": 773090.22265625,
+ "worker_rss_kib": 66584,
+ "cli_rss_kib": 448672,
+ "stem": "01-repeated-roots-2-replayed"
+ },
+ {
+ "block": 2,
+ "nanoseconds": 776008.14453125,
+ "worker_rss_kib": 66976,
+ "cli_rss_kib": 448784,
+ "stem": "02-repeated-roots-2-replayed"
+ },
+ {
+ "block": 3,
+ "nanoseconds": 772411.755859375,
+ "worker_rss_kib": 67976,
+ "cli_rss_kib": 448588,
+ "stem": "03-repeated-roots-2-replayed"
+ },
+ {
+ "block": 4,
+ "nanoseconds": 809623.02734375,
+ "worker_rss_kib": 66700,
+ "cli_rss_kib": 448712,
+ "stem": "04-repeated-roots-2-replayed"
+ }
+ ],
+ "wire_integer_tokens": 1444,
+ "row_system_sizes": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_ranks": [
+ 1,
+ 1,
+ 1
+ ],
+ "row_moment_counts": [
+ 3,
+ 3,
+ 1
+ ],
+ "row_moment_json_bytes": 2902
+ }
+]
diff --git a/reports/data/hexrcf-source-replay-dimensions/verify.py b/reports/data/hexrcf-source-replay-dimensions/verify.py
new file mode 100644
index 0000000000..6776643965
--- /dev/null
+++ b/reports/data/hexrcf-source-replay-dimensions/verify.py
@@ -0,0 +1,113 @@
+#!/usr/bin/env python3
+"""Check retained source-packet observations, not mathematical soundness."""
+from pathlib import Path
+import argparse, gzip, hashlib, io, json, statistics, subprocess, tarfile
+
+here = Path(__file__).resolve().parent
+parser = argparse.ArgumentParser()
+parser.add_argument('--check-head', action='store_true')
+args = parser.parse_args()
+root = next(p for p in here.parents if (p / '.git').exists())
+sha = lambda raw: hashlib.sha256(raw).hexdigest()
+manifest = json.loads((here / 'manifest.json').read_text())
+for name, digest in manifest['artifacts'].items():
+ assert sha((here / name).read_bytes()) == digest, name
+resources = json.loads((here / 'resource-audit.json').read_text())
+assert resources['systemd']['MemoryMax'] == '34359738368'
+assert resources['systemd']['MemorySwapMax'] == '0'
+assert resources['workers'] and all(w['cpu_affinity'] == '38' and w['LEAN_NUM_THREADS'] == '2' for w in resources['workers'])
+context = json.loads((here / 'context.json').read_text())
+assert context['status'] == 'complete' and not context['dirty']
+assert context['blocks'] == 5 and len(context['cases']) == 22
+assert context['arms'] == ['lexical', 'parsed', 'restored', 'replayed']
+assert len(context['compiler_imports']) == 449
+assert not any(m == 'Mathlib' or m.startswith('Mathlib.') for m in context['compiler_imports'])
+for name, digest in context['source_sha256'].items():
+ original = subprocess.check_output(['git', 'show', context['revision'] + ':' + name], cwd=root)
+ assert sha(original) == digest, name
+ if args.check_head:
+ assert sha((root / name).read_bytes()) == digest, name
+for key, name in [('driver_sha256', 'driver.lean.txt'),
+ ('benchmark_sha256', 'benchmark.lean.txt'),
+ ('generator_sha256', 'generator.lean.txt'),
+ ('collector_sha256', 'collector.py.txt')]:
+ assert sha((here / name).read_bytes()) == context[key], name
+bench = (here / 'benchmark.lean.txt').read_text()
+assert 'repeats := 1, warmupFirstIter := true, minTotalSeconds := 0.2' in bench
+assert 'maxSecondsPerCall := 30.0, expectedHash := some (Hashable.hash true)' in bench
+assert 'IO.Ref ByteArray' in bench and 'input.get' in bench
+assert '#eval' not in (here / 'driver.lean.txt').read_text()
+expected = [(b, case[0], arm) for b in range(5) for case in context['cases']
+ for arm in (context['arms'] if b % 2 == 0 else list(reversed(context['arms'])))]
+assert len(expected) == 440
+assert [(s['block'], s['case'], s['arm']) for s in context['samples']] == expected
+summaries = {(r['case'], r['arm']): r for r in json.loads((here / 'summary.json').read_text())}
+assert len(summaries) == 88
+values = {}
+with tarfile.open(here / 'samples.tar.gz', 'r:gz') as archive:
+ def raw(name):
+ return archive.extractfile(name).read()
+ assert json.loads(raw('context.json')) == context
+ for sample in context['samples']:
+ assert sample['exit_code'] == 0 and sample['elapsed_seconds'] > 0
+ exported = json.loads(raw(sample['stem'] + '.json'))
+ assert len(exported['results']) == 1
+ result = exported['results'][0]
+ assert result['function'] == 'SourceReplayBench.' + sample['arm']
+ config = result['config']
+ assert config['repeats'] == 1 and config['warmup_first_iter'] and config['warmup']
+ assert config['min_total_seconds'] == 0.2 and config['max_seconds_per_call'] == 30
+ assert config['expected_hash'] == result['observed_hash']
+ assert result['expected_hash_check']['status'] == 'match' and result['hashes_agree']
+ assert len(result['points']) == 1 and not result['budget_truncated']
+ point = result['points'][0]
+ assert point['status'] == 'ok' and point['inner_repeats'] > 0
+ assert point['total_nanos'] > 0 and point['peak_rss_kb'] > 0
+ assert sample['max_rss_kib'] > 0
+ values.setdefault((sample['case'], sample['arm']), []).append(
+ point['total_nanos'] / point['inner_repeats'] / 1000)
+ raw(sample['stem'] + '.stdout.txt')
+ raw(sample['stem'] + '.stderr.txt')
+for key, observations in values.items():
+ assert len(observations) == 5
+ row = summaries[key]
+ for field, value in [('median_microseconds', statistics.median(observations)),
+ ('min_microseconds', min(observations)),
+ ('max_microseconds', max(observations))]:
+ assert row[field] == value, (key, field)
+with tarfile.open(here / 'inputs.tar.gz', 'r:gz') as archive:
+ assert json.loads(archive.extractfile('manifest.json').read()) == context['cases']
+ for case in context['cases']:
+ name, axis, parameter, degree, atoms, bits, precision, depth, nbytes, unique, expanded = case
+ packet = archive.extractfile(name + '.json').read()
+ assert sha(packet) == context['input_sha256'][name] and len(packet) == nbytes
+ data = json.loads(packet)
+ assert len(data) == 4 and len(data[1]) == atoms and len(data[2]) == atoms
+ version, selected, entries = data[3]
+ assert version == 1 and len(entries) == unique and 0 <= selected < unique
+ sizes = []
+ for index, (_, children) in enumerate(entries):
+ assert len(children) in (0, 1)
+ if not children:
+ sizes.append(1)
+ else:
+ left, right = children[0]
+ assert 0 <= left < index and 0 <= right < index
+ sizes.append(1 + sizes[left] + sizes[right])
+ assert sizes[selected] == expanded, name
+ baseline = [2, 2, 16, 0, 0]
+ actual = [degree, atoms, bits, precision, depth]
+ if axis in ['degree', 'atoms', 'bits', 'precision', 'depth']:
+ baseline[['degree', 'atoms', 'bits', 'precision', 'depth'].index(axis)] = parameter
+ assert actual == baseline, name
+with tarfile.open(here / 'preparation.tar.gz', 'r:gz') as archive:
+ controls = archive.extractfile('source-replay-controls-4.log').read().decode()
+ assert 'code=exited, status=0/SUCCESS' in controls
+ assert '9 malformed/false evidence controls passed' in controls
+ assert 'byte/depth/digit limits' in controls
+ for name in ['source-replay-bench-build-1.log', 'source-replay-matrix-3.log']:
+ assert 'code=exited, status=0/SUCCESS' in archive.extractfile(name).read().decode(), name
+log = gzip.decompress((here / 'collection.log.gz').read_bytes()).decode()
+assert 'retained 440 completed samples' in log
+assert 'code=exited, status=0/SUCCESS' in log
+print('Verified 440 retained observations/22 inputs/four cumulative stages; source bindings, hashes, schedule, DAG sizes and scoped controls. Full #10358 remains incomplete.')
diff --git a/reports/data/hexrcf-source-replay-manual/README.md b/reports/data/hexrcf-source-replay-manual/README.md
new file mode 100644
index 0000000000..aa0fcb8155
--- /dev/null
+++ b/reports/data/hexrcf-source-replay-manual/README.md
@@ -0,0 +1,5 @@
+# Manual link to compiled source-packet observations
+
+The one added paragraph links the completed [numerical study](../../hexrcf-source-replay-dimensions.md), states representative costs and distinguishes numerical replay from preparation and proof construction. The compiled study retains its original source pin and all observations.
+
+Run `python3 reports/data/hexrcf-source-replay-manual/verify.py --check-head`. The source snapshot and exact patch bind the manual-only change to its base commit. Removing only this paragraph recovers the original file exactly. Successful complete-manual build/render and changed-paragraph browser logs, two viewport captures and zero local overflow are retained. Both captures were visually inspected. HTML has a recorded digest; its large generated output is not committed. The first build/render succeeded before the line-count check rejected placement in the main chapter; their logs and source are retained as superseded attempts. The final placement is in the existing quotation subchapter. Build/render runtimes are operational observations, not a new timing comparison, full conformance sweep or proof of full #10358 completion.
diff --git a/reports/data/hexrcf-source-replay-manual/browser.mjs.txt b/reports/data/hexrcf-source-replay-manual/browser.mjs.txt
new file mode 100644
index 0000000000..4fca07dc49
--- /dev/null
+++ b/reports/data/hexrcf-source-replay-manual/browser.mjs.txt
@@ -0,0 +1,51 @@
+import fs from 'node:fs';
+import {spawn} from 'node:child_process';
+const root=process.argv[2];
+if(!root) throw new Error('Pass the scratch render directory');
+const profile=root+'/source-replay-dimensions-profile';
+fs.mkdirSync(profile,{recursive:true});
+fs.rmSync(profile+'/DevToolsActivePort',{force:true});
+const chrome=spawn(process.env.CHROME_BIN || '/home/kim/.cache/ms-playwright/chromium-1243/chrome-linux64/chrome',[
+ '--headless=new','--no-sandbox','--disable-gpu','--allow-file-access-from-files',
+ '--remote-debugging-port=0','--remote-allow-origins=*','--user-data-dir='+profile,'about:blank'],
+ {env:{...process.env,LD_LIBRARY_PATH:fs.readFileSync(root+'/browser-lib-paths.txt','utf8').trim()},stdio:'ignore'});
+let socket;
+try {
+ const portFile=profile+'/DevToolsActivePort';
+ for(let i=0;!fs.existsSync(portFile);i++) {
+ if(i>200||chrome.exitCode!==null) throw new Error('Chrome did not expose CDP');
+ await new Promise(r=>setTimeout(r,100));
+ }
+ const port=fs.readFileSync(portFile,'utf8').split('\n')[0];
+ const tabs=await (await fetch('http://127.0.0.1:'+port+'/json')).json();
+ socket=new WebSocket(tabs.find(t=>t.type==='page').webSocketDebuggerUrl);
+ await new Promise((r,j)=>{socket.onopen=r;socket.onerror=j});
+ let sequence=0;const pending=new Map();let loaded;
+ socket.onmessage=e=>{
+ const msg=JSON.parse(e.data);
+ if(msg.id){const p=pending.get(msg.id);pending.delete(msg.id);msg.error?p.reject(msg.error):p.resolve(msg.result);}
+ if(msg.method==='Page.loadEventFired'&&loaded){loaded();loaded=undefined;}
+ };
+ const call=(method,params={})=>new Promise((resolve,reject)=>{const id=++sequence;pending.set(id,{resolve,reject});socket.send(JSON.stringify({id,method,params}));});
+ await call('Page.enable');
+ const load=new Promise(r=>loaded=r);
+ await call('Page.navigate',{url:'file:///home/kim/.codex/tasks/hex-10358/manual-render/full-html/html-single/index.html'});
+ await load;
+ const evaluate=async expression=>{const r=await call('Runtime.evaluate',{expression,returnByValue:true});if(r.exceptionDetails)throw new Error(JSON.stringify(r.exceptionDetails));return r.result.value;};
+ const metadata=[];
+ for(const [label,width] of [['desktop',1440],['narrow',390]]) {
+ await call('Emulation.setDeviceMetricsOverride',{width,height:width===390?1800:1000,deviceScaleFactor:1,mobile:false});
+ for(const [kind,phrase] of [["dimensions", "retains 440 observations on 22 adapter-produced packets"]] ) {
+ const exact=await evaluate(`(() => {const p=Array.from(document.querySelectorAll('p')).find(e=>e.textContent.replace(/\\s+/g,' ').includes(${JSON.stringify(phrase)}));if(!p)throw new Error('missing paragraph');const target=['sourcecode','apicode'].includes(${JSON.stringify(kind)})?p.nextElementSibling:p;if(['sourcecode','apicode'].includes(${JSON.stringify(kind)})&&!target.matches('.hl.lean.block, pre, div:has(code)'))throw new Error('target is not a Lean code block');target.scrollIntoView({block:${JSON.stringify('center')}});return {text:p.textContent,viewport:innerWidth,scrollY,paragraphWidth:p.getBoundingClientRect().width,scrollWidth:p.scrollWidth,targetTag:target.tagName,targetWidth:target.getBoundingClientRect().width,targetScrollWidth:target.scrollWidth,descendantOverflow:Math.max(0,...[target,...target.querySelectorAll('*')].map(e=>e.scrollWidth-e.clientWidth)),overflowElements:[target,...target.querySelectorAll('*')].filter(e=>e.scrollWidth-e.clientWidth>1).map(e=>({tag:e.tagName,classes:e.className,width:e.clientWidth,scroll:e.scrollWidth,text:e.textContent.slice(0,100)})).slice(0,8)};})()`);
+ if(!exact)throw new Error('missing visual target '+kind);
+ await evaluate('new Promise(resolve=>requestAnimationFrame(()=>requestAnimationFrame(resolve)))');
+ const shot=await call('Page.captureScreenshot',{format:'png'});
+ fs.writeFileSync(root+'/'+'source-replay-dimensions-final-'+label+'-'+kind+'.png',Buffer.from(shot.data,'base64'));
+ metadata.push({label,kind,...exact});
+ }
+
+ }
+ fs.writeFileSync(root+'/source-replay-dimensions-final-inspection.json',JSON.stringify(metadata,null,2));
+ if(metadata.some(e=>e.targetScrollWidth>e.targetWidth+1 || e.descendantOverflow>1)) throw new Error('Changed content overflows; retained captures and metrics identify the affected block.');
+ process.stdout.write('Saved source-replay-dimensions desktop/narrow screenshots\n');
+} finally {if(socket)socket.close();chrome.kill('SIGTERM');}
diff --git a/reports/data/hexrcf-source-replay-manual/change.patch.gz b/reports/data/hexrcf-source-replay-manual/change.patch.gz
new file mode 100644
index 0000000000..8069554fc2
Binary files /dev/null and b/reports/data/hexrcf-source-replay-manual/change.patch.gz differ
diff --git a/reports/data/hexrcf-source-replay-manual/context.json b/reports/data/hexrcf-source-replay-manual/context.json
new file mode 100644
index 0000000000..173db5d619
--- /dev/null
+++ b/reports/data/hexrcf-source-replay-manual/context.json
@@ -0,0 +1,8 @@
+{
+ "scope": "One manual paragraph links the separately pinned compiled packet study. Complete current manual build/render and two changed-paragraph viewport captures; no new full 57-target or scientific timing rerun.",
+ "base_commit": "b842ec5cc39b32e8a68cd1754b06222d29b9eb05",
+ "source": "HexManual/Chapters/HexRCF/RootQuote.lean",
+ "source_sha256": "2e0746d1a35c192d1127a0c9768470e6e36b14d9d96b5eebbb29c26a03c91e78",
+ "rendered_html_sha256": "e3f423c027cd9b963b97e5519c71cfda8f1c758494ccdaeea92cc4c0b973486d",
+ "measurement_manifest_sha256": "30a46b372e6a6b3223067c37ceb131946b139f212b38815f0f7ef1fdfcebc276"
+}
diff --git a/reports/data/hexrcf-source-replay-manual/desktop.png b/reports/data/hexrcf-source-replay-manual/desktop.png
new file mode 100644
index 0000000000..83f31c45ec
Binary files /dev/null and b/reports/data/hexrcf-source-replay-manual/desktop.png differ
diff --git a/reports/data/hexrcf-source-replay-manual/inputs.json b/reports/data/hexrcf-source-replay-manual/inputs.json
new file mode 100644
index 0000000000..28b9427dde
--- /dev/null
+++ b/reports/data/hexrcf-source-replay-manual/inputs.json
@@ -0,0 +1,12 @@
+{
+ "base_commit": "b842ec5cc39b32e8a68cd1754b06222d29b9eb05",
+ "path": "HexManual/Chapters/HexRCF/RootQuote.lean",
+ "sha256": "2e0746d1a35c192d1127a0c9768470e6e36b14d9d96b5eebbb29c26a03c91e78",
+ "patch_sha256": "6b70833843d7fb56b146afbe10d8febdf7d5aea79d3b15241b63c7173e2717f7",
+ "build": [
+ "run-bounded",
+ "lake",
+ "build",
+ "HexManual"
+ ]
+}
diff --git a/reports/data/hexrcf-source-replay-manual/inspection.json b/reports/data/hexrcf-source-replay-manual/inspection.json
new file mode 100644
index 0000000000..ee5254b356
--- /dev/null
+++ b/reports/data/hexrcf-source-replay-manual/inspection.json
@@ -0,0 +1,30 @@
+[
+ {
+ "label": "desktop",
+ "kind": "dimensions",
+ "text": "\n A separate selected-source packet study\nretains 440 observations on 22 adapter-produced packets, varying degree, query count,\ncoefficient size, interval precision and predecessor depth independently. It includes\ncommon and repeated roots, malformed evidence and resource-limit controls, and records\nserialized size, row sharing and memory. On this host, median cumulative selected-sign\nreplay is about 0.84 ms at depth zero and 7.93 ms at depth two. Preparation and proof\nconstruction are excluded; reconstruction retains native predecessor arithmetic.\nThese are numerical component observations, not full tactic timings or a general\ncomplexity bound.\n",
+ "viewport": 1440,
+ "scrollY": 297533,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "P",
+ "targetWidth": 752,
+ "targetScrollWidth": 752,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "dimensions",
+ "text": "\n A separate selected-source packet study\nretains 440 observations on 22 adapter-produced packets, varying degree, query count,\ncoefficient size, interval precision and predecessor depth independently. It includes\ncommon and repeated roots, malformed evidence and resource-limit controls, and records\nserialized size, row sharing and memory. On this host, median cumulative selected-sign\nreplay is about 0.84 ms at depth zero and 7.93 ms at depth two. Preparation and proof\nconstruction are excluded; reconstruction retains native predecessor arithmetic.\nThese are numerical component observations, not full tactic timings or a general\ncomplexity bound.\n",
+ "viewport": 390,
+ "scrollY": 480182,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "P",
+ "targetWidth": 343,
+ "targetScrollWidth": 343,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ }
+]
\ No newline at end of file
diff --git a/reports/data/hexrcf-source-replay-manual/manifest.json b/reports/data/hexrcf-source-replay-manual/manifest.json
new file mode 100644
index 0000000000..ec70a7652f
--- /dev/null
+++ b/reports/data/hexrcf-source-replay-manual/manifest.json
@@ -0,0 +1,21 @@
+{
+ "README.md": "5ef00f941e726268bc1ab3bf1e1c98cfc4b5458f40f1889ab024eb08b916879f",
+ "browser.mjs.txt": "234f3ffe42366fcf9997060f62e607a3787a8cc9f3b8af84fc8cba0ad1d34329",
+ "change.patch.gz": "052473809e5242b0c7c6542dcc7d989714f88224df3e2a833c19303878a9024d",
+ "context.json": "0c2bd2389c6137a864efb8e111a70b8ae3eef8cd7f8ce6a03c6470f10a6399dc",
+ "desktop.png": "74a20f03b10ce2a894d237585cb42033d6f72a121e41ccaa1664a6fb51188c80",
+ "inputs.json": "3f753821cea18228319e5261f11e73c996e4febece9fb372833129e4894a3eb3",
+ "inspection.json": "e990b02501b7c3f13bbbc11b1da4ddf68a2d7b073bb9168a20fad114e32a77b3",
+ "manual.lean.gz": "b26b062457f1615e14f3db803dc33757ccd777b1cfb9f6be5d7432b2e7653d1e",
+ "narrow.png": "61424397caea39e6d2c98f8d7fbd9fc4c0cabb03e15d7092dbba961c2fe129b0",
+ "over-cap-source.lean.gz": "cd8377eff4e361f60c7b4cb2d7db9633c140a41f70f7f02b6f9b4022ad15d9d7",
+ "paragraph.md.txt": "d85f9e0eb542af3d1cb6c02f78398a45177d42397d1d9dc4e5e3d5c64e1f3da8",
+ "render.lean.txt": "cc970381459bc4ac2c7df721b4376d69000a28ed21ba53d2a58d4fdb13639e42",
+ "source-replay-manual-browser-1.log.gz": "bffa3947c1c32ddbbed60f486c5ed4036ba8e9d2ede744483045c5ca9b74df2a",
+ "source-replay-manual-build-1.log.gz": "bb57c84184d18b63461b4991e989e17b085179d23e593fc331282857d99e5386",
+ "source-replay-manual-build-2.log.gz": "ff4f735caeca4718a3b968e1f4c618e529c03200f6e2150dd45c37d5ca52cb8a",
+ "source-replay-manual-line-counts.log.gz": "a111b9fb8b6538fe487f88685220fd3d5ce7c22c5a62bb4494a8f4d107edfa8d",
+ "source-replay-manual-render-1.log.gz": "452ad3686c7972002bd33a557a1fc303d9c9d94fcc979aa365d324f76d565f6a",
+ "source-replay-manual-render-2.log.gz": "8ee4441779c0e622ba537520c1592201f9163741f31ad936fe61f7bc200952bb",
+ "verify.py": "4b6f5f9a1619331e5b298a1fc55b3c3ae7e9e2361b246cf020bd3824cc951369"
+}
diff --git a/reports/data/hexrcf-source-replay-manual/manual.lean.gz b/reports/data/hexrcf-source-replay-manual/manual.lean.gz
new file mode 100644
index 0000000000..1c4510ce21
Binary files /dev/null and b/reports/data/hexrcf-source-replay-manual/manual.lean.gz differ
diff --git a/reports/data/hexrcf-source-replay-manual/narrow.png b/reports/data/hexrcf-source-replay-manual/narrow.png
new file mode 100644
index 0000000000..c64e09ba47
Binary files /dev/null and b/reports/data/hexrcf-source-replay-manual/narrow.png differ
diff --git a/reports/data/hexrcf-source-replay-manual/over-cap-source.lean.gz b/reports/data/hexrcf-source-replay-manual/over-cap-source.lean.gz
new file mode 100644
index 0000000000..6b2d7be048
Binary files /dev/null and b/reports/data/hexrcf-source-replay-manual/over-cap-source.lean.gz differ
diff --git a/reports/data/hexrcf-source-replay-manual/paragraph.md.txt b/reports/data/hexrcf-source-replay-manual/paragraph.md.txt
new file mode 100644
index 0000000000..3fc3c7550d
--- /dev/null
+++ b/reports/data/hexrcf-source-replay-manual/paragraph.md.txt
@@ -0,0 +1,9 @@
+A separate [selected-source packet study](https://github.com/kim-em/hex-dev/blob/b842ec5cc39b32e8a68cd1754b06222d29b9eb05/reports/hexrcf-source-replay-dimensions.md)
+retains 440 observations on 22 adapter-produced packets, varying degree, query count,
+coefficient size, interval precision and predecessor depth independently. It includes
+common and repeated roots, malformed evidence and resource-limit controls, and records
+serialized size, row sharing and memory. On this host, median cumulative selected-sign
+replay is about 0.84 ms at depth zero and 7.93 ms at depth two. Preparation and proof
+construction are excluded; reconstruction retains native predecessor arithmetic.
+These are numerical component observations, not full tactic timings or a general
+complexity bound.
diff --git a/reports/data/hexrcf-source-replay-manual/render.lean.txt b/reports/data/hexrcf-source-replay-manual/render.lean.txt
new file mode 100644
index 0000000000..434bd76028
--- /dev/null
+++ b/reports/data/hexrcf-source-replay-manual/render.lean.txt
@@ -0,0 +1,6 @@
+-- Render the complete manual for browser inspection.
+import HexManual
+import VersoManual
+#eval Verso.Genre.Manual.manualMain (%doc HexManual)
+ (options := ["--output", "full-html",
+ "--without-tex", "--with-html-single", "--without-html-multi"])
diff --git a/reports/data/hexrcf-source-replay-manual/source-replay-manual-browser-1.log.gz b/reports/data/hexrcf-source-replay-manual/source-replay-manual-browser-1.log.gz
new file mode 100644
index 0000000000..df92b5a176
Binary files /dev/null and b/reports/data/hexrcf-source-replay-manual/source-replay-manual-browser-1.log.gz differ
diff --git a/reports/data/hexrcf-source-replay-manual/source-replay-manual-build-1.log.gz b/reports/data/hexrcf-source-replay-manual/source-replay-manual-build-1.log.gz
new file mode 100644
index 0000000000..e5b11de6e2
Binary files /dev/null and b/reports/data/hexrcf-source-replay-manual/source-replay-manual-build-1.log.gz differ
diff --git a/reports/data/hexrcf-source-replay-manual/source-replay-manual-build-2.log.gz b/reports/data/hexrcf-source-replay-manual/source-replay-manual-build-2.log.gz
new file mode 100644
index 0000000000..4dca8f77cc
Binary files /dev/null and b/reports/data/hexrcf-source-replay-manual/source-replay-manual-build-2.log.gz differ
diff --git a/reports/data/hexrcf-source-replay-manual/source-replay-manual-line-counts.log.gz b/reports/data/hexrcf-source-replay-manual/source-replay-manual-line-counts.log.gz
new file mode 100644
index 0000000000..b5afa2be73
Binary files /dev/null and b/reports/data/hexrcf-source-replay-manual/source-replay-manual-line-counts.log.gz differ
diff --git a/reports/data/hexrcf-source-replay-manual/source-replay-manual-render-1.log.gz b/reports/data/hexrcf-source-replay-manual/source-replay-manual-render-1.log.gz
new file mode 100644
index 0000000000..f6c58070b1
Binary files /dev/null and b/reports/data/hexrcf-source-replay-manual/source-replay-manual-render-1.log.gz differ
diff --git a/reports/data/hexrcf-source-replay-manual/source-replay-manual-render-2.log.gz b/reports/data/hexrcf-source-replay-manual/source-replay-manual-render-2.log.gz
new file mode 100644
index 0000000000..6c395bdf86
Binary files /dev/null and b/reports/data/hexrcf-source-replay-manual/source-replay-manual-render-2.log.gz differ
diff --git a/reports/data/hexrcf-source-replay-manual/verify.py b/reports/data/hexrcf-source-replay-manual/verify.py
new file mode 100644
index 0000000000..15db9b45f4
--- /dev/null
+++ b/reports/data/hexrcf-source-replay-manual/verify.py
@@ -0,0 +1,14 @@
+from pathlib import Path
+import argparse,gzip,hashlib,json,subprocess
+p=Path(__file__).resolve().parent;root=next(x for x in p.parents if (x/'.git').exists())
+a=argparse.ArgumentParser();a.add_argument('--check-head',action='store_true');args=a.parse_args()
+sha=lambda b:hashlib.sha256(b).hexdigest()
+for name,digest in json.loads((p/'manifest.json').read_text()).items():assert sha((p/name).read_bytes())==digest,name
+c=json.loads((p/'context.json').read_text());raw=gzip.decompress((p/'manual.lean.gz').read_bytes());assert sha(raw)==c['source_sha256']
+original=subprocess.check_output(['git','show',c['base_commit']+':'+c['source']],cwd=root);assert raw==original+b'\n'+(p/'paragraph.md.txt').read_bytes()
+if args.check_head:assert (root/c['source']).read_bytes()==raw
+for name in ['source-replay-manual-build-2.log','source-replay-manual-render-2.log','source-replay-manual-browser-1.log']:
+ assert 'code=exited, status=0/SUCCESS' in gzip.decompress((p/(name+'.gz')).read_bytes()).decode(),name
+ins=json.loads((p/'inspection.json').read_text());assert len(ins)==2 and {x['viewport'] for x in ins}=={390,1440};assert all(x['descendantOverflow']==0 and x['targetScrollWidth']<=x['targetWidth']+1 for x in ins)
+assert sha((root/'reports/data/hexrcf-source-replay-dimensions/manifest.json').read_bytes())==c['measurement_manifest_sha256']
+print('Verified manual-only addition, successful full manual build/render, two viewport records and unchanged measurement pin')
diff --git a/reports/data/hexrcf-source-selection-budget/README.md b/reports/data/hexrcf-source-selection-budget/README.md
new file mode 100644
index 0000000000..ee3929d79b
--- /dev/null
+++ b/reports/data/hexrcf-source-selection-budget/README.md
@@ -0,0 +1,28 @@
+# Source-selection quotation allowance
+
+Run `python3 reports/data/hexrcf-source-selection-budget/verify.py --check-head`.
+The record pins seven sources and ten retained artifacts. It supplements the
+[helper repair record](../hexrcf-replay-helpers/README.md) without changing its pins.
+
+CI 39119984084 failed at head `287f54f01a` because the positive source-selection
+reader exhausted the default one-million-node quotation allowance. This path
+was absent from the 33-target local selection. The negative reader passed.
+The conformance example now supplies an explicit two-million-node allowance;
+the public default remains unchanged. Its measured cost is 1,347,886 nodes.
+The expanded local selection contains 35 targets, including both source-selection
+audit targets. The separate affected source-selection build passes: 14 exported
+theorem bodies and 374 actual bodies/97 definitions/438 nonempty kernel traces,
+with the existing producer checks and permitted axiom closure intact. The run
+takes 4m20.118s and peaks at 4.8G, with no swap. This does not assert that the
+entire expanded selection or a new CI run has already passed.
+
+The third full-source experiment exhausts its explicit ten-million-node budget
+at 9,983,347 consumed plus 16,654 requested after 1h1m52.765s, peak4.3G/no swap.
+Complete packet acceptance, source finishing and its importing audit are not
+reached. The exact driver inputs and failed log are retained. A shorter local
+phase profile is the next investigation; no new full-prefix retry or larger
+full-source allowance is justified by this record alone. No speedup is claimed.
+
+#10358 remains open for its full implementation and evidence requirements.
+Own local builds remain serial under aggregate32GiB, swap disabled and two Lean
+threads. The test allowance does not alter that memory cap or library defaults.
diff --git a/reports/data/hexrcf-source-selection-budget/context.json b/reports/data/hexrcf-source-selection-budget/context.json
new file mode 100644
index 0000000000..e8fec014e9
--- /dev/null
+++ b/reports/data/hexrcf-source-selection-budget/context.json
@@ -0,0 +1,76 @@
+{
+ "source_commit": "b4a71cc122574eaab5eb4099814e6c9e565fff7e",
+ "sources": {
+ "conformance/HexRCF/SourceSelectionCases.lean": "368ded3f07bb4be269f26a2fd2b7044904ea16d1dd1cba41d8bccb373d004005",
+ "conformance/HexRCF/SourceSelectionNegative.lean": "e293dc410beaf96c107d4ddc952efd941ab2a5e5a52bfd5b29d2878a8e7619fe",
+ "conformance/HexRCF/SourceSelectionKernel.lean": "229bb113fcd8067c9abcd2904c55b14e9a22dc8e7993c1efca4a2725c293962a",
+ "conformance/HexRCF/SourceSelectionProofs.lean": "4c664cc81626570dd74d93defe226bc48263aac3ff0cc1fd3fd3506d9a7d37c0",
+ "adapters/HexRCF/RealCoefficients/RootQuote.lean": "4573d8ebb3feeb9d2d91bc5923403c206edb7ac35c2a1895aafb89e72d4e3aab",
+ "conformance/HexRCF/SelectedRoot/KernelCheck.lean": "12e7e2e3f4667a76dc89c4b36796bff177f3c187b81adc5eb5e049ff1ce6669d",
+ "lean-toolchain": "bc84812c94489d1e3e191baa1dc10d5eb684382d7fe9d2a5ab085e72c1c67e47"
+ },
+ "artifacts": [
+ {
+ "path": "source-selection-ci-repair-1.log.gz",
+ "bytes": 11585,
+ "sha256": "eb22d3f01c4f7de6aa0c30446d4bf6f374c2d9fa05c1c3e4ab6dd23a5157e825",
+ "uncompressed_sha256": "a8debdb570eca3e01c1d0a5f50471c1cec97d94b07703586319b02ff63a30a88"
+ },
+ {
+ "path": "source-selection-ci-repair-1-SourceSelectionCases.lean.txt.gz",
+ "bytes": 2187,
+ "sha256": "5a44af7266cbeb132c97f01b0f299dc0137bc34abdda6b4804f12c4e6c900dd1",
+ "uncompressed_sha256": "368ded3f07bb4be269f26a2fd2b7044904ea16d1dd1cba41d8bccb373d004005"
+ },
+ {
+ "path": "source-selection-expanded-targets.txt.gz",
+ "bytes": 287,
+ "sha256": "3e69bd8fe8a9774772a21565b568d6de1cd942f6ee73cd0e7b61329c98ea5a7f",
+ "uncompressed_sha256": "33a8bf1184b6a3212d8dc259311bc9de1321b11ef5b9ca9cd1d261183a3d55c2"
+ },
+ {
+ "path": "helper-ci39119984084-final.json.gz",
+ "bytes": 1812,
+ "sha256": "67661c1e44cb237a99a407f0b40ebf0072c6f30322f7fe7536fc8d59901c0dfe",
+ "uncompressed_sha256": "651bce1c161d28fc1dea426079c18debdcf86d241d30f5470b545165fed141bf"
+ },
+ {
+ "path": "helper-ci39119984084-failed.log.gz",
+ "bytes": 130317,
+ "sha256": "33e6ed50e63d5015d18509901cc892848e8ce3959e8a6f1367a1fa01db6203ef",
+ "uncompressed_sha256": "ee697f0b084c82619bfbe461a12418252ea6ef1ed4d1cde59ba053bc2ea4c3d6"
+ },
+ {
+ "path": "fresh-complete-projected-3.log.gz",
+ "bytes": 7721,
+ "sha256": "f670f2827073fe69a0db190bc7478c2f22c6d99b6e489e8b0a8a55cc8b14b9ff",
+ "uncompressed_sha256": "8001111887ab410f06ae47d6589f374e97da526e62b6e360c4853761bebdfa61"
+ },
+ {
+ "path": "fresh-complete-projected-3-progress.log.gz",
+ "bytes": 2117,
+ "sha256": "7f239a4e797d6bbfe345efc2bab532200edf1c48b290d5cf55acbf35d1bdc14f",
+ "uncompressed_sha256": "43b0364c446d76a3399470cfe9676d7fb18f18b1e4718fdf58b202e65b0def31"
+ },
+ {
+ "path": "fresh-complete-projected-3-inputs.json.gz",
+ "bytes": 231,
+ "sha256": "987d18589f6b903e3efe9274487568a5af56c64995d79247eb8d588c48199e92",
+ "uncompressed_sha256": "865fe159bd4ddec5e96194dc7b552a6a88f8a8ded4ece5f8acad598a820757dc"
+ },
+ {
+ "path": "fresh-complete-projected-3-FreshCompleteProjected.lean.txt.gz",
+ "bytes": 3304,
+ "sha256": "2f1a7dbe3926046fd869e537f28c75d39fff4f9fba5c34306803f2cd2845147c",
+ "uncompressed_sha256": "78088b7de2cee49a87361284787ec17adb345803f851ff1f8360f660eeb50978"
+ },
+ {
+ "path": "fresh-complete-projected-3-FreshProjectedAudit.lean.txt.gz",
+ "bytes": 1407,
+ "sha256": "1cd985c5f0c159b207a01eeae3805bf40050870cc63c711f149f9393739b4790",
+ "uncompressed_sha256": "7ea0898ba4b7aad91affb6636429de3e7b26c54e5fc26f89bc4703e1ffa56467"
+ }
+ ],
+ "full_source_accepted": false,
+ "validation_scope": "SourceSelectionKernel+SourceSelectionProofs, not a repeat of the full default conformance set"
+}
diff --git a/reports/data/hexrcf-source-selection-budget/fresh-complete-projected-3-FreshCompleteProjected.lean.txt.gz b/reports/data/hexrcf-source-selection-budget/fresh-complete-projected-3-FreshCompleteProjected.lean.txt.gz
new file mode 100644
index 0000000000..6d6a20fc2c
Binary files /dev/null and b/reports/data/hexrcf-source-selection-budget/fresh-complete-projected-3-FreshCompleteProjected.lean.txt.gz differ
diff --git a/reports/data/hexrcf-source-selection-budget/fresh-complete-projected-3-FreshProjectedAudit.lean.txt.gz b/reports/data/hexrcf-source-selection-budget/fresh-complete-projected-3-FreshProjectedAudit.lean.txt.gz
new file mode 100644
index 0000000000..ed6c44311a
Binary files /dev/null and b/reports/data/hexrcf-source-selection-budget/fresh-complete-projected-3-FreshProjectedAudit.lean.txt.gz differ
diff --git a/reports/data/hexrcf-source-selection-budget/fresh-complete-projected-3-inputs.json.gz b/reports/data/hexrcf-source-selection-budget/fresh-complete-projected-3-inputs.json.gz
new file mode 100644
index 0000000000..845d374afe
Binary files /dev/null and b/reports/data/hexrcf-source-selection-budget/fresh-complete-projected-3-inputs.json.gz differ
diff --git a/reports/data/hexrcf-source-selection-budget/fresh-complete-projected-3-progress.log.gz b/reports/data/hexrcf-source-selection-budget/fresh-complete-projected-3-progress.log.gz
new file mode 100644
index 0000000000..52133cfa28
Binary files /dev/null and b/reports/data/hexrcf-source-selection-budget/fresh-complete-projected-3-progress.log.gz differ
diff --git a/reports/data/hexrcf-source-selection-budget/fresh-complete-projected-3.log.gz b/reports/data/hexrcf-source-selection-budget/fresh-complete-projected-3.log.gz
new file mode 100644
index 0000000000..d101413a6f
Binary files /dev/null and b/reports/data/hexrcf-source-selection-budget/fresh-complete-projected-3.log.gz differ
diff --git a/reports/data/hexrcf-source-selection-budget/helper-ci39119984084-failed.log.gz b/reports/data/hexrcf-source-selection-budget/helper-ci39119984084-failed.log.gz
new file mode 100644
index 0000000000..d21dc6d61b
Binary files /dev/null and b/reports/data/hexrcf-source-selection-budget/helper-ci39119984084-failed.log.gz differ
diff --git a/reports/data/hexrcf-source-selection-budget/helper-ci39119984084-final.json.gz b/reports/data/hexrcf-source-selection-budget/helper-ci39119984084-final.json.gz
new file mode 100644
index 0000000000..f105275551
Binary files /dev/null and b/reports/data/hexrcf-source-selection-budget/helper-ci39119984084-final.json.gz differ
diff --git a/reports/data/hexrcf-source-selection-budget/source-selection-ci-repair-1-SourceSelectionCases.lean.txt.gz b/reports/data/hexrcf-source-selection-budget/source-selection-ci-repair-1-SourceSelectionCases.lean.txt.gz
new file mode 100644
index 0000000000..e863ba4a2d
Binary files /dev/null and b/reports/data/hexrcf-source-selection-budget/source-selection-ci-repair-1-SourceSelectionCases.lean.txt.gz differ
diff --git a/reports/data/hexrcf-source-selection-budget/source-selection-ci-repair-1.log.gz b/reports/data/hexrcf-source-selection-budget/source-selection-ci-repair-1.log.gz
new file mode 100644
index 0000000000..05b82328fb
Binary files /dev/null and b/reports/data/hexrcf-source-selection-budget/source-selection-ci-repair-1.log.gz differ
diff --git a/reports/data/hexrcf-source-selection-budget/source-selection-expanded-targets.txt.gz b/reports/data/hexrcf-source-selection-budget/source-selection-expanded-targets.txt.gz
new file mode 100644
index 0000000000..16e102964b
Binary files /dev/null and b/reports/data/hexrcf-source-selection-budget/source-selection-expanded-targets.txt.gz differ
diff --git a/reports/data/hexrcf-source-selection-budget/verify.py b/reports/data/hexrcf-source-selection-budget/verify.py
new file mode 100644
index 0000000000..88872312a1
--- /dev/null
+++ b/reports/data/hexrcf-source-selection-budget/verify.py
@@ -0,0 +1,46 @@
+#!/usr/bin/env python3
+"""Verify source-selection test allowance and retained failures."""
+import argparse
+import gzip
+import hashlib
+import json
+from pathlib import Path
+import subprocess
+
+parser = argparse.ArgumentParser(description=__doc__)
+parser.add_argument('--check-head', action='store_true')
+args = parser.parse_args()
+root = Path(__file__).resolve().parent
+repo = root.parents[2]
+record = json.loads((root / 'context.json').read_text())
+git = lambda *arguments: subprocess.check_output(['git', *arguments], cwd=repo)
+sha = lambda raw: hashlib.sha256(raw).hexdigest()
+
+def artifact(path):
+ return gzip.decompress((root / path).read_bytes()).decode()
+
+def log(key):
+ return artifact(record['validation'][key])
+
+for path,digest in record['sources'].items():
+ assert sha(git('show',record['source_commit']+':'+path))==digest,path
+ if args.check_head: assert sha((repo/path).read_bytes())==digest,path
+for item in record['artifacts']:
+ raw=(root/item['path']).read_bytes()
+ assert len(raw)==item['bytes'] and sha(raw)==item['sha256'],item['path']
+ assert sha(gzip.decompress(raw))==item['uncompressed_sha256'],item['path']
+validation=artifact('source-selection-ci-repair-1.log.gz')
+for text in ['code=exited, status=0/SUCCESS','source-selection root quotation proofNodes=1347886',
+ 'source selection: 14 exported theorem bodies checked in a fresh module',
+ 'source-selection inspection: 374 theorem bodies/97 definitions; 438 nonempty traces']:
+ assert text in validation,text
+ci=json.loads(artifact('helper-ci39119984084-final.json.gz'))
+assert ci['headSha']=='287f54f01aa675c26b10aeefcb427f16a2a61aea' and ci['conclusion']=='failure'
+assert 'limit 1000000, consumed 1000000, requested 1' in artifact('helper-ci39119984084-failed.log.gz')
+full=artifact('fresh-complete-projected-3.log.gz')
+assert 'limit 10000000, consumed 9983347, requested 16654' in full
+assert '1h 1min 52.765s' in full and 'status=1/FAILURE' in full
+assert 'complete literal acceptance checked' not in artifact('fresh-complete-projected-3-progress.log.gz')
+assert record['full_source_accepted'] is False
+assert len(artifact('source-selection-expanded-targets.txt.gz').splitlines())==35
+print('Verified7sources/10artifacts; source-selection proof audits pass; prior CI and full-source failures retained')
diff --git a/reports/data/hexrcf-source-valuations/README.md b/reports/data/hexrcf-source-valuations/README.md
new file mode 100644
index 0000000000..86e90771fc
--- /dev/null
+++ b/reports/data/hexrcf-source-valuations/README.md
@@ -0,0 +1,9 @@
+# Prepared coefficients and source valuation assembly
+
+See [the report](../../hexrcf-source-valuations.md). Run `python3 reports/data/hexrcf-source-valuations/verify.py --check-head` for the current source binding, or omit the flag for the immutable implementation commit.
+
+The current source commit, final successful full quote and fresh importing audit, standalone finite-valuation proofs, compatibility/manual build, repository checks and six final visually inspected manual captures form the evidence. Earlier compiler-only complete-goal success, its inventory-only rejection and later two leftover-identifier errors are retained as labelled attempt provenance; they do not validate the final code. Every prior required/forbidden dependency and producer-reduction guard remains.
+
+The full goal authenticates its coefficient through descriptor/equation/window replay inside the same request, then compiles the prepared inventory and assembles the finite valuation identity before finishing. The standalone zero/one/two-coordinate tests intentionally consume supplied leaf identities and a real model; they are not automatic source authentication. Original divisor obligations remain separate and are validated by source finishing. General leaf/provider/predecessor/history discovery, full automatic frontend/backend integration, strict all-depth records, accepted algebraic completeness and general finite joint export remain outside this record. Full #10358 remains open.
+
+Every own Lean/Lake/render/browser call is serial under the hard aggregate 32 GiB cap, zero swap and two Lean threads. Operational build observations are not a scientific speedup comparison. Parent and older proof/numerical records retain their original source pins.
diff --git a/reports/data/hexrcf-source-valuations/browser.mjs.txt b/reports/data/hexrcf-source-valuations/browser.mjs.txt
new file mode 100644
index 0000000000..9376ff88c7
--- /dev/null
+++ b/reports/data/hexrcf-source-valuations/browser.mjs.txt
@@ -0,0 +1,51 @@
+import fs from 'node:fs';
+import {spawn} from 'node:child_process';
+const root=process.argv[2];
+if(!root) throw new Error('Pass the scratch render directory');
+const profile=root+'/source-valuation-profile';
+fs.mkdirSync(profile,{recursive:true});
+fs.rmSync(profile+'/DevToolsActivePort',{force:true});
+const chrome=spawn(process.env.CHROME_BIN || '/home/kim/.cache/ms-playwright/chromium-1243/chrome-linux64/chrome',[
+ '--headless=new','--no-sandbox','--disable-gpu','--allow-file-access-from-files',
+ '--remote-debugging-port=0','--remote-allow-origins=*','--user-data-dir='+profile,'about:blank'],
+ {env:{...process.env,LD_LIBRARY_PATH:fs.readFileSync(root+'/browser-lib-paths.txt','utf8').trim()},stdio:'ignore'});
+let socket;
+try {
+ const portFile=profile+'/DevToolsActivePort';
+ for(let i=0;!fs.existsSync(portFile);i++) {
+ if(i>200||chrome.exitCode!==null) throw new Error('Chrome did not expose CDP');
+ await new Promise(r=>setTimeout(r,100));
+ }
+ const port=fs.readFileSync(portFile,'utf8').split('\n')[0];
+ const tabs=await (await fetch('http://127.0.0.1:'+port+'/json')).json();
+ socket=new WebSocket(tabs.find(t=>t.type==='page').webSocketDebuggerUrl);
+ await new Promise((r,j)=>{socket.onopen=r;socket.onerror=j});
+ let sequence=0;const pending=new Map();let loaded;
+ socket.onmessage=e=>{
+ const msg=JSON.parse(e.data);
+ if(msg.id){const p=pending.get(msg.id);pending.delete(msg.id);msg.error?p.reject(msg.error):p.resolve(msg.result);}
+ if(msg.method==='Page.loadEventFired'&&loaded){loaded();loaded=undefined;}
+ };
+ const call=(method,params={})=>new Promise((resolve,reject)=>{const id=++sequence;pending.set(id,{resolve,reject});socket.send(JSON.stringify({id,method,params}));});
+ await call('Page.enable');
+ const load=new Promise(r=>loaded=r);
+ await call('Page.navigate',{url:'file:///home/kim/.codex/tasks/hex-10358/manual-render/full-html/html-single/index.html'});
+ await load;
+ const evaluate=async expression=>{const r=await call('Runtime.evaluate',{expression,returnByValue:true});if(r.exceptionDetails)throw new Error(JSON.stringify(r.exceptionDetails));return r.result.value;};
+ const metadata=[];
+ for(const [label,width] of [['desktop',1440],['narrow',390]]) {
+ await call('Emulation.setDeviceMetricsOverride',{width,height:width===390?1800:1000,deviceScaleFactor:1,mobile:false});
+ for(const [kind,phrase] of [["api", "assembles ordered scalar identities into equality of the entire source"], ["code", "assembles ordered scalar identities into equality of the entire source"], ["provenance", "The shared reification and quotation budget records"]] ) {
+ const exact=await evaluate(`(() => {const p=Array.from(document.querySelectorAll('p')).find(e=>e.textContent.replace(/\\s+/g,' ').includes(${JSON.stringify(phrase)}));if(!p)throw new Error('missing paragraph');const target=['code'].includes(${JSON.stringify(kind)})?p.nextElementSibling:p;if(['code'].includes(${JSON.stringify(kind)})&&!target.matches('.hl.lean.block, pre, div:has(code)'))throw new Error('target is not a Lean code block');target.scrollIntoView({block:${JSON.stringify('center')}});return {text:p.textContent,viewport:innerWidth,scrollY,paragraphWidth:p.getBoundingClientRect().width,scrollWidth:p.scrollWidth,targetTag:target.tagName,targetWidth:target.getBoundingClientRect().width,targetScrollWidth:target.scrollWidth,descendantOverflow:Math.max(0,...[target,...target.querySelectorAll('*')].map(e=>e.scrollWidth-e.clientWidth)),overflowElements:[target,...target.querySelectorAll('*')].filter(e=>e.scrollWidth-e.clientWidth>1).map(e=>({tag:e.tagName,classes:e.className,width:e.clientWidth,scroll:e.scrollWidth,text:e.textContent.slice(0,100)})).slice(0,8)};})()`);
+ if(!exact)throw new Error('missing visual target '+kind);
+ await evaluate('new Promise(resolve=>requestAnimationFrame(()=>requestAnimationFrame(resolve)))');
+ const shot=await call('Page.captureScreenshot',{format:'png'});
+ fs.writeFileSync(root+'/'+'source-valuation-final-'+label+'-'+kind+'.png',Buffer.from(shot.data,'base64'));
+ metadata.push({label,kind,...exact});
+ }
+
+ }
+ fs.writeFileSync(root+'/source-valuation-final-inspection.json',JSON.stringify(metadata,null,2));
+ if(metadata.some(e=>e.targetScrollWidth>e.targetWidth+1 || e.descendantOverflow>1)) throw new Error('Changed content overflows; retained captures and metrics identify the affected block.');
+ process.stdout.write('Saved source-valuation desktop/narrow screenshots\n');
+} finally {if(socket)socket.close();chrome.kill('SIGTERM');}
diff --git a/reports/data/hexrcf-source-valuations/compiler-source-audit-1.lean.gz b/reports/data/hexrcf-source-valuations/compiler-source-audit-1.lean.gz
new file mode 100644
index 0000000000..7b21e56486
Binary files /dev/null and b/reports/data/hexrcf-source-valuations/compiler-source-audit-1.lean.gz differ
diff --git a/reports/data/hexrcf-source-valuations/compiler-source-audit-1.log.gz b/reports/data/hexrcf-source-valuations/compiler-source-audit-1.log.gz
new file mode 100644
index 0000000000..a9f81a6a3e
Binary files /dev/null and b/reports/data/hexrcf-source-valuations/compiler-source-audit-1.log.gz differ
diff --git a/reports/data/hexrcf-source-valuations/compiler-source-audit-2.log.gz b/reports/data/hexrcf-source-valuations/compiler-source-audit-2.log.gz
new file mode 100644
index 0000000000..986dcd4c8e
Binary files /dev/null and b/reports/data/hexrcf-source-valuations/compiler-source-audit-2.log.gz differ
diff --git a/reports/data/hexrcf-source-valuations/compiler-source-before.lean.gz b/reports/data/hexrcf-source-valuations/compiler-source-before.lean.gz
new file mode 100644
index 0000000000..f41ad3d44b
Binary files /dev/null and b/reports/data/hexrcf-source-valuations/compiler-source-before.lean.gz differ
diff --git a/reports/data/hexrcf-source-valuations/compiler-source-current-issue.json b/reports/data/hexrcf-source-valuations/compiler-source-current-issue.json
new file mode 100644
index 0000000000..e4bbda2127
--- /dev/null
+++ b/reports/data/hexrcf-source-valuations/compiler-source-current-issue.json
@@ -0,0 +1 @@
+{"body":"## User-facing outcome\n\nExtend `rcf` to prove statements about one real variable with real algebraic coefficients and caller-registered real constants. For an algebraic coefficient, the chosen real root matters: “a root of x²−2” must distinguish +√2 from −√2. For a registered constant such as π, the caller supplies approximations and proofs about those approximations.\n\nThis issue connects the mathematical libraries to Lean syntax, the decision procedure and the resulting proof. It is part of #10331 / #10143. The [tactic SPEC](https://github.com/kim-em/hex-dev/blob/main/HexRCF/SPEC/hex-rcf.md#planned-real-coefficient-extension) and [shared execution contract](https://github.com/kim-em/hex-dev/blob/main/SPEC/real-closure-execution.md) give the full requirements.\n\nThe formula representation (#10338), mechanism for registering tactic handlers (#10359), and preparation of source coefficients/divisor conditions (#10368) are merged. Reuse them. They do not by themselves provide the numerical solver.\n\n## Tactic and manual contract\n\n1. Select a small set of statements with the library owners. Keep rational regression examples, but also require algebraic-coefficient examples that actually use the new code. Include decisions at roots and between roots, a false statement, and an unsupported or invalid input.\n2. Connect coefficient evaluation, root/sign calculations and certificate checking using the functions already available in #10375/#10377/#10378. Use #10376 when the examples need registered constants. Add only the missing functionality required by these examples.\n3. Exercise the path from the user's statement to the answer and proposed proof. Build representative examples and audit proof dependencies. Measure tactic cost when it answers a named implementation question or investigates an observed bottleneck, using the existing tools.\n4. This issue alone owns the real-coefficient rcf manual and tactic examples. Extend the existing rcf manual chapter (`HexManual/Chapters/HexRCF.lean`), retaining its current examples and documenting the optional import, new examples, diagnostics, running times and proof limitations. Fix failures and impractical running times. Preserve delivered examples and continue with the remaining API/manual coverage below.\n\nA useful candidate is `∀ x : ℝ, x^2 - 2 * Real.sqrt 2 * x + 2 ≥ 0`. A later example requiring a further algebraic root is `∃ x : ℝ, x^2 = Real.sqrt 2 ∧ 1 < x ∧ x < 2`. Confirm that the selected examples exercise the intended implementation, rather than being solved entirely by the old rational path.\n\nOrdinary real sample points are sufficient to start. Users need not mention infinitesimals, and the complete infinitesimal tower need not be ready. If an algorithm does use them internally, a real conclusion still needs a proof that one real point satisfies the entire finite set of conditions.\n\nThe shared query semantics are proved: #10389 closed through #10521, and the\ncurrent Tau Ceti pin also contains Thom/BKR and ordered real-closure existence.\nThere is no admission exception. Preserve the handler's rejection of every\n`sorryAx` dependency and ordinary kernel checking for both rational and new\ncoefficient paths. Use the actual merged theorems rather than waiting for the\nbroader Tau Ceti roadmap.\n\n## Ready-to-assign continuation\n\nThe existing manual already contains square-root and cubic aliases, selected\nHex roots, QAdjoin arithmetic, independent square roots and a degree-six\ncommon-field example (#10424, #10428, #10470, #10472). Preserve these and do not\nrestart Stage 1. This issue owns the remaining source-conversion coverage,\ncommon-field certification coverage, caller-registered constants, general\nbuild/check path, algebraic-only completeness, diagnostics and documentation.\n\nStart now with source authentication and a caller-registered-constant path\nusing the delivered #10376 interface. Keep the approximation computation,\nrequested-width proof and containment proof separate. First exercise the\nactual prepare/build/check/proof path on a supplied registration, a cancelled\nzero denominator and deliberately uninformative bounds. This is a focused\nintegration experiment, not a request for a bundled analytic provider.\nResolve a concrete contract gap in the owning SPEC before implementing a\nchanged contract; discuss substantial architecture changes with the user.\n\nUse ordinary real samples where sufficient. Completion of the general\ninfinitesimal path consumes #10378's finite-sign realization and #10377's total\nroot interfaces; those are completion dependencies, not a reason to defer\nindependent work here. The #10377/#10378 workers own their library files.\nCoordinate any needed API, do not duplicate it. Keep this issue open until\nall required implementation, tests and documentation below are complete.\n\n## Algebraic-number and fixed-field inputs\n\nDirect use of the existing Hex types is a required part of the adapter, not an optional demonstration. Accept fixed, reconstructible `RealAlgebraicNumber.toReal` values obtained from checked real `AlgebraicNumber` constructions, and real values of elements computed in `QAdjoin a`. The latter may use the existing `toAlgebraicNumber` conversion, checked reality and `toReal`, with proofs preserving the chosen embedding. `QAdjoin.value_real` supplies the reality fact when the generator is real. Do not assume a `QAdjoin.toReal` method already exists. Provide the necessary proved connection to the coefficient interface without inventing a new number-field representation.\n\nRetain the delivered example whose coefficient is a nonquadratic algebraic root and another using arithmetic in `QAdjoin`. For example, let α be the selected real root of X³−X−1 and compute β=α²−1 in its fixed field; prove `∀ x : ℝ, x/α = β*x` after the checked real conversions. Show the complete Hex construction in the manual, not just real symbols with assumed identities. `Real.sqrt` examples exercise aliases for this general support, not a special solver for radicals.\n\nRetain a Mathlib higher-degree real-root alias alongside `Real.sqrt`, for example `(2 : ℝ) ^ (1 / 3 : ℝ)` as the positive cube root of 2. Prove its equality with the selected Hex algebraic root of X³−2 and use it in a genuine tactic example such as `∀ x : ℝ, x^2 + (2 : ℝ)^(1 / 3 : ℝ)*x + 1 > 0`. The pinned Mathlib's `Real.rpow_inv_natCast_pow` and positivity results support that identification. Show the supported alias and setup in the manual. This permits closed algebraic coefficients, not real powers of the quantified variable or an unchecked signed-root interpretation for negative bases.\n\nFor Stage 2, include coefficients from independently constructed fields and root-finding over an existing real number field. Reuse existing conversion/common-field results and retain the selected roots. Reject nonreal coefficients and incorrect root identifications; complex conjugation fixes a real number and does not select a different real conjugate. These are fixed coefficients in goals quantified over ℝ, not arbitrary parameters or quantification over `QAdjoin`.\n\n## Required implementation\n\n1. **Extend the existing tactic.** Keep the same `rcf` command and the existing rational solver. `import HexRCF` retains current behavior; the optional `HexRCF.RealCoefficients` import enables the extension. Retain rational compatibility, deterministic handler selection, restoration of state after a handler declines, and checks that a returned proof proves the original goal. Reject every `sorryAx` dependency in the new extension as in the existing solver. Keep the published base library independent of the real-closure libraries.\n2. **Use the specified optional adapter.** Put `HexRCF.RealCoefficients` under `adapters/`, in namespace `Hex.RCF.RealCoefficients`, with the Coefficients/Specialize/Replay/Soundness/Reify modules as needed. Include it in the default `HexRCFRealCoefficients` Lake target and library metadata. Reuse the shared formula syntax; no second formula language or Mathlib companion is needed. Release wiring is outside scope.\n3. **Recognize and authenticate coefficients.** Support rational and real algebraic constants, registered closed real constants, arithmetic, natural powers and division by closed expressions. An alias such as `Real.sqrt 2` needs a proof identifying the chosen positive root. Reject arbitrary parameters/functions and division depending on the quantified variable. Preserve every original nonzero-divisor condition before simplification, even under cancellation or multiplication by zero. Rewrite `p(x)/c` as `p(x)*c⁻¹` before extracting closed coefficients so parameter denominators do not reach the shared integer formula translator.\n4. **Construct the polynomial formula.** Implement `Coefficients.prepare` and `Specialize.prepare` using ordinary total arithmetic and `DensePoly`. Group terms by the exponent of the variable, evaluate their coefficient expressions, and prove evaluation and degree are preserved. Reuse the shared QF/Prenex/Boolean traversal and its equivalence for every coefficient assignment, then specialize it to the authenticated coefficients and original goal. Support exactly one variable and one quantifier, over ℝ or `(a,b]` with literal dyadic endpoints. Encode the latter using the existing inequality atoms, without a new domain representation.\n5. **Compute roots, intervals and a certificate.** Find the complete union of relevant polynomial roots, remove duplicates and evaluate the formula at roots and on intervening intervals. Implement `build` and `Replay.check`/`check`. Bind evidence to the exact sentence, coefficient order, registered subjects, versions and root representations. Check all original divisor conditions even for constant, zero or empty-domain cases. Certificate checking verifies recorded identities and evidence; it must not rerun root isolation, gcd, BKR or approximation searches.\n6. **Prove that acceptance proves the original statement.** Prove `check_domains` and `check_sound`, using the actual arithmetic and root correctness theorems. Root coverage, polynomial degree, domains, nested sign calculations and real sample existence must be established, not added as unproved assumptions. Emit an ordinary Lean-kernel proof. A compiled Boolean answer, external oracle or approximation callback is not proof evidence. Preserve the half-open interval endpoints; the shared Tarski queries have their own open, root-free endpoint conditions.\n7. **Prove the required termination and completeness.** Complete the algebraic-only decision procedure and prove it produces accepted certificates. General searches with named constants need correct shrinking bounds and transcendence over the entire preceding field. Individual certified successes do not require a general convergence or transcendence theorem, but still need correct bounds. Such successes do not turn partial coefficient comparisons into the total field operations required by generic root algorithms.\n8. **Provide clear failure behavior.** Distinguish an invalid input, an invalid certificate, a false statement and an interrupted or unresolved search. A false answer is a diagnostic, not a proof of the original goal. Do not swallow arbitrary exceptions and silently try a different method. Preserve failures through Boolean and quantifier evaluation as specified.\n\n## Stage 2: document the additional capabilities\n\nAs the required #10377 APIs merge, extend the same manual with runnable examples of simultaneous polynomial sign conditions, distinguishing and ordering algebraic roots, evaluating signs at a selected root, and comparing roots defined by different polynomials. Include common roots or repeated roots in the input where supported by the consuming algorithms. Explain the mathematical use of each capability and ensure the examples actually exercise it. For library operations without a natural tactic example, provide a direct API example. Check the examples, record representative running times and audit the actual transitive proof dependencies; no admission remains permitted. Preserve the existing examples and keep the documentation a coherent account of one `rcf` tactic.\n\n## Mathematics supplied by other issues\n\n- #10375 supplies the shared polynomial/query computation; #10389 has supplied its proved general interpretation as sums of signs over roots.\n- #10377 supplies complete sign patterns and Thom root identity/order. #10378 supplies selected-root arithmetic, root/interval samples, conversion after representation changes, and proofs about real samples.\n- #10376 supplies bounds and sign calculations for caller-registered constants. The caller supplies the constant-specific containment proofs. General termination also needs shrinking bounds and relative transcendence; separate transcendence of constants does not establish their joint independence.\n- Actual Tau Ceti existence of an ordered algebraic real closure is needed for the general infinitesimal model. Direct reasoning with ordinary real samples does not need that existence theorem, but still needs the relevant real-root correctness proofs. The required existence theorem is supplied by the current Tau Ceti pin; use its actual hypotheses, not roadmap status.\n\nUse the particular merged functions and proved results that an example needs. Do not wait for unrelated performance work or duplicate mathematics owned by these libraries. The virtual-substitution issue #10329 is not a dependency.\n\n## Final tests and evidence\n\nBuild with Lake and preserve the repository's dependency, umbrella and relative-link checks. Test handler order, malformed signatures, proofs of the wrong goal, state restoration after decline/failure, and terminal false/interrupted/replay failures. Check aliases in both equality orientations, compound coefficients, missing or cyclic aliases, and variable-dependent replacements. Substitution must preserve every original divisor condition.\n\nRequired fully proved examples include both selected roots of x²−2, a checked square-root alias, and registered constants with correctly preserved divisor conditions. The specified examples involving `∀ x, x² > π−4`, `∀ x, x²+e>2`, `∃ x, x=e ∧ 2\n","createdAt":"2026-09-20T13:01:29Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5749961661","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABVrm-ZA","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Base tranche PR: #10359, head `6b7691f807a9aeb33cee177d559d516208682116`. Fresh Claude Opus review and CI are running. The local affected builds, new handler regressions, axiom guards, DAG/umbrella checks and source checks pass. Rebased onto the shared-frontend milestone and built the new default `HexRCFRealFormula` adapter successfully.\n\nThe implemented surface is `Reify.UnsupportedCoefficient` / `recognizeSentence`, `HandlerResult` / `Handler`, `@[rcf_handler]`, deterministic `handlerNames`, and transactional `proveGoal` / `rcf`. The base still imports no family or optional adapter. No real-coefficient decision support is claimed.\n\nI have read the newly authorized source-schema continuation against the actual shared reifier: `Hex.RealFormula.Reify.Result.proof` supplies the all-valuation equivalence and `Result.source` is the valuation-indexed source. Closed-expression abstraction can instantiate that equivalence independently of generic coefficient arithmetic. Its continuation must still collect original divisor guards and rewrite variable numerators over closed denominators before shared reification; the shared parser deliberately rejects parameter denominators. #10333's generic arithmetic and the provider/tower/replay gates remain separate.\n","createdAt":"2026-09-20T13:05:08Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5749980772","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABVrq2Lg","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Fresh Opus review of #10359 identified a concrete SPEC/dispatch integration gap requiring coordinator clarification before adapter work proceeds:\n\n- The current directive requires dispatch **only** for unsupported **closed coefficient syntax**, and rejects arbitrary symbolic parameters.\n- `HexRCF/SPEC/hex-rcf.md` also says local symbols may be accepted when an explicit equality identifies them with a closed coefficient.\n- For `(a : ℝ) (h : a = Real.pi) ⊢ ∀ x : ℝ, x + a = x + a`, rational recognition currently sees the free variable `a`, so no closed-coefficient handler runs. Merely registering the future adapter cannot implement the SPEC's local-equality case.\n\nDropping the free-variable check would dispatch arbitrary parameters and contradict the ready tranche's boundary, so I will not silently widen it. A base preprocessing/recognition bridge for explicit equalities, or an explicit requirement to rewrite/substitute these equalities before `rcf`, is needed. Please clarify the intended contract on this same issue; no decomposition issue is needed. I have paused the independent source-schema scratch work at this boundary.\n\nOther review findings are independently actionable: preserve successful handlers' auxiliary declarations while rolling back target/metavariable assignments; extend existential/Ioc/registration regressions; make the IO-ref test harness explicitly synchronous. I am addressing those in #10359. The issue remains open and no real-coefficient support is claimed.\n","createdAt":"2026-09-20T13:17:44Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5750044206","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABVrrTZg","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Decision: preserve the SPEC's automatic explicit-equality case. Do not require users to rewrite manually, and do not admit arbitrary symbolic parameters. The directive's phrase “closed coefficient syntax” includes a coefficient identified with a closed expression by an explicit local equality proof; the missing base recognition bridge is in scope for this issue.\n\nConcretely, extend the typed recognition boundary to retain/check equality witnesses for local real coefficient symbols (either `h : a = c` or `h : c = a`) where the replacement is independent of the quantified variable and contains no unresolved metavariables or unaccounted-for free real parameters. Handle compound coefficient expressions by substituting their eligible symbols. A simple direct local equality to a closed expression suffices; no generic assumption solving, arbitrary simp search, or claimed transcendence is required. Reject missing/nonclosed/cyclic bindings. The base checks proof/type/closedness and routes the unchanged original target; the optional handler remains responsible for the supported closed grammar and proof-producing substitution. A checked preprocessing equivalence is also acceptable if the result is transported back and checked against the original target.\n\nKeep source divisions intact while finding aliases: do not simplify or cancel before collecting original guards. For example, `h : a = π-π` must not let the future extension accept `0/a`; `h : a = π` does allow the reviewer’s example to reach the handler. Equality to an expression depending on the bound variable is not a fixed coefficient. Unauthenticated free symbols still decline/raise the terminal unsupported-parameter diagnostic; ordinary false/replay/exhaustion outcomes still never dispatch.\n\nPlease clarify the owning SPEC's dispatch paragraph in the same PR, distinguishing syntactically closed coefficients from these equality-certified aliases. Add regressions for both orientations, compound aliases, missing/nonclosed bindings and failed-attempt state restoration. For the base tranche a dedicated ordinary-proof test handler verifies routing and the original-target proof; do not claim the numerical adapter is implemented. Continue the independently actionable review fixes and then the already-authorized source-schema work. No decomposition or further approval is needed.\n\n\n","createdAt":"2026-09-20T13:19:10Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5750051686","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABVsFEEA","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Base registry tranche landed: #10359, squash commit `b1a8702aea9ed3492629c1506b50aea822d16826`. Required CI run [35514342110](https://github.com/kim-em/hex-dev/actions/runs/35514342110) completed successfully, including library/conformance/manual builds and bench/oracle gates. Merged with `gh pr merge --squash --auto`; branch retained.\n\nExact delivered surface:\n- `HexRCF/Reify.lean`: `ClosedCoefficient`, `UnsupportedCoefficient`, public `closeCoefficient?` and typed `recognizeSentence`; direct checked equality aliases in either orientation, compound substitution and unchanged divisor syntax.\n- `HexRCF/Tactic.lean`: `HandlerResult`, `Handler`, global checked `@[rcf_handler]`, deduplicated `Name.lt` order, transactional `proveGoal`/`rcf`, original-target validation and transitive ordinary-axiom allowlist. Success retains necessary declarations/kernel tasks; decline/failure restores state. Rational false/replay/runtime failures never dispatch.\n- `HexRCF/HandlerTests/{Support,Async}.lean` and `HexRCF/HandlerTests.lean`: deterministic dispatch, malformed signatures, wrong/ill-typed/unresolved/compiler-trusting proofs, direct/transitive forbidden axioms, goal/metavariable restoration, terminal outcomes, aliases, endpoints and asynchronous auxiliary declarations. Published test metadata includes them.\n\nFresh Opus reviews were completed and substantive findings addressed; [review resolution](https://github.com/kim-em/hex-dev/pull/10359#issuecomment-5750179461). Ordinary generated theorem axiom audits and affected local/structural checks pass. This adds no numerical real-coefficient solver or new family import.\n\nThe coordinator-authorized independent source-schema continuation is prepared and locally validated against merged shared frontend #10338. It will ship as a separate Refs tranche. Generic coefficient/tower integration remains paused under the latest coordinator boundary: no PolyOps/#10348 consumption, no HexInterval, and future transcendental evidence is caller supplied. Authentication, specialization, root/cell replay, soundness/progress, selected-root reconstruction and complete extension conformance/performance evidence remain gated on settled actual owner APIs. Issue stays open; downstream dispatch remains with #10331.\n","createdAt":"2026-09-20T14:39:31Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5750473744","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABVsF7UQ","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Independent frontend/source-schema tranche is now PR #10368, head `90adf9302f70f0543ccddd361d5782a8b0c160e8`. A fresh Opus review was started immediately after opening; CI [35517257731](https://github.com/kim-em/hex-dev/actions/runs/35517257731) is running.\n\n`Hex.RCF.RealCoefficients.Reify.prepare` supplies a fixed-valuation shared `Prenex` schema and an ordinary-kernel equivalence to the original source. It retains pending divisor obligations before cancellation/abstraction and uses checked alias substitution. The default optional target, CI cache/build list, conformance coverage and manual are wired. It imports no HexInterval, consumes no PolyOps, registers no solver and provides no numerical authentication or guard discharge. Five named schema theorem axiom audits, affected Lake builds, structural checks and 19 relative paths/anchors pass locally.\n\nThe coordinator owns the unsettled SPEC/architecture correction, so this tranche has no SPEC edits. Dependent integration remains paused; issue #10358 stays open.\n","createdAt":"2026-09-20T14:42:14Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5750487889","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABVuHdJw","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Independent source-schema tranche landed: #10368, squash commit `75e903f08e93521685cc6a11355a84333931c2dd`. Required CI run [35518667559](https://github.com/kim-em/hex-dev/actions/runs/35518667559) completed successfully. Merged with `gh pr merge --squash --auto`; branch `issue-10358` retained.\n\nExact delivered artifacts:\n- `adapters/HexRCF/RealCoefficients{.lean,/Reify.lean}`: `Hex.RCF.RealCoefficients.Reify.Source` and `prepare`, using the actual merged shared `Hex.RealFormula` frontend. Preparation returns the fixed coefficient order/valuation, shared Prenex formula, pending original-divisor obligations after checked alias substitution, budget usage, and an ordinary-kernel proof `Prenex.toProp formula valuation ↔ original`.\n- Closed-source arithmetic recognition includes rationals, π, literal `Real.exp 1`, arithmetic, natural powers and closed division. Variable-bearing division becomes multiplication by the closed inverse before maximal coefficient abstraction. Guards survive zero multiplication and cancellation. This is source recognition only: it does not authenticate numerical coefficients or discharge nonzero obligations.\n- One real binder and whole-real/literal-dyadic Ioc restrictions are enforced on the original source. Ioc remains shared guard atoms; checked aliases reuse the base-owned `closeCoefficient?`. Unsupported functions, variable denominators, noncanonical operations and unresolved source metavariables are refused.\n- Default build target `HexRCFRealCoefficients` (`srcDir := adapters`), optional umbrella, DAG/library metadata, existing single-job CI build/cache list, README and manual wiring. Published base umbrella remains independent of this adapter; publication wiring was not added.\n- `conformance/HexRCF/RealCoefficientsConformance.lean`: guard/order/budget/alias/domain/state regressions and five named ordinary-kernel schema theorems (`piSchema`, `expSchema`, `aliasSchema`, `quotientSchema`, `intervalSchema`), each audited for only the three standard axioms. These are equivalence proofs, not the final numerical π/e goals.\n\nThe fresh post-opening Opus review found no correctness or soundness blockers; [resolution and documentation clarifications](https://github.com/kim-em/hex-dev/pull/10368#issuecomment-5750641669). Affected Lake builds (including the manual), DAG/umbrella/manifest/trust checks, 37 structural unit tests, 19 relative links/anchors and `git diff --check` passed locally, followed by required CI on the final revision. No new axioms, sorry proofs or native_decide were introduced. AGENTS.md and PLAN.md were not edited.\n\nTogether with base registry PR #10359 at `b1a8702aea9ed3492629c1506b50aea822d16826`, these are complete independent tranches, not completion of #10358. Remaining work includes authenticated coefficient preparation, specialization/evaluation/degree proofs, selected-root and sqrt reconstruction, root/cell construction and literal replay, original-guard discharge, domain/soundness/realization and progress laws, final numerical proofs, and full extension conformance/measurement evidence.\n\nGeneric coefficient/tower integration remains paused under the coordinator's current boundary: no PolyOps/#10348 consumption, no HexInterval, and caller-supplied approximation/containment/progress evidence for future transcendental coefficients. The coordinator owns the settled architecture and downstream dispatch. This issue remains open for resumption against actual authorized owner APIs.\n\nCoordinator audit: the owning terminal session has stopped at its account usage limit. No worker is currently progressing this issue; remaining generic integration stays held. The delivered SPEC section is incorporated into the coordinator-owned correction PR #10365.\n\n\n","createdAt":"2026-09-20T20:57:28Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5752610087","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABWS9s7Q","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"PR #10413 makes the existing `rcf` cell proofs reusable for algebraic coefficients. It proves partition, ordering, polynomial sign constancy and universal/existential evaluation for cells defined by a finite ordered list of real roots, and routes the rational solver through those same proofs while preserving its public interfaces. It adds no admissions and changes no executable certificate checker. Local rational regression tests and ordinary axiom checks pass; Fable found no blockers, and its useful documentation/import/test suggestions have been addressed. CI remains pending.\n\nThis is preparation for the Stage 1 solver, not a working algebraic tactic demo. Source coefficient authentication, complete algebraic root/sign certificate assembly and checking, handler registration, the narrow #10389 admission allowance, and runnable manual examples with timings remain outstanding. PRs #10411 (coefficient preparation) and #10412 (shared query interpretation under the recorded #10389 exception) also remain in CI.\n","createdAt":"2026-09-23T08:01:38Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5791247597","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABWTqZhg","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"PR #10411 now includes checked translation from user-written closed real coefficients to expressions using Hex's existing real algebraic arithmetic. It preserves direct `RealAlgebraicNumber` and converted `QAdjoin` values, recognizes square and higher roots, and proves the equality back to the original expression. The selected embedding is preserved. Original divisor checks remain visible before simplification.\n\nLocal examples cover mixed square and cube roots, a nonquadratic algebraic coefficient, arithmetic in its number field, equivalent higher-root notation, unsupported inputs, missing sign proofs and resource limits. The generated equality proofs have only the ordinary logical axioms. Claude Fable found no soundness blocker; the diagnostic, proof-visibility and test findings have been addressed. CI is running on the updated PR.\n\nThese are coefficient-translation examples, not yet the requested `rcf` tactic demo. Literal certificate authentication, divisor discharge, final root/sign and decision replay, handler registration, and the runnable manual examples and end-to-end timings remain outstanding for Stage 1. The separate local isolation and selected-root work is preserved. No new admission has been introduced or assigned to #10389.\n","createdAt":"2026-09-23T08:59:22Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5791979910","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABWU97IQ","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"The algebraic coefficient preparation tranche has merged as #10411. It translates closed `RealAlgebraicNumber`, checked `Real.sqrt`/higher `Real.rpow`, and arithmetic expressions to the existing algebraic-number operations with ordinary proofs of their real values; it includes the selected-embedding conversion for `QAdjoin` and polynomial specialization. This is source preparation, not a usable `rcf` extension yet: literal coefficient-sign authentication, checked decision assembly, and the optional handler remain open. The existing rational `rcf` path is unchanged.\n\nThe formula evaluator (#10414), narrow #10389 admission audit (#10415), and checked real-root isolation (#10416) are under review/CI as separate partial #10377 contributions. No new work on #10389 is needed for these computational steps.\n","createdAt":"2026-09-23T10:39:31Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5793348385","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABWWaLqQ","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Stage 1 progress: #10414 is merged. It proves that a formula’s truth follows from checked signs of its polynomial atoms, including all Boolean branches. This is a component of the existing `rcf` extension; the tactic is not yet usable on algebraic coefficients. The root-isolation, atom-product and repeated-root replay pieces are in #10416, #10417 and #10418. Local integration now produces and checks complete cell-sign rows, but the tactic still needs a compact, kernel-checkable representation of selected algebraic roots and field coordinates. Direct kernel reduction of a cubic canonical value was too costly even for a small sign or stored-enclosure equality. I am working on that representation bridge without touching #10389; its one named root-sum admission remains the only planned exception.","createdAt":"2026-09-23T12:31:40Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5794859945","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABXFksow","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Stage 1 update: #10424 has merged. Importing the optional `HexRCF.RealCoefficients` adapter now extends the existing `rcf` command with runnable selected algebraic coefficients; the rational solver remains in place. The integrated manual and conformance cover `Real.sqrt 2`, the cubic real-power alias, Hex's checked selected cubic root, and a coefficient computed with ordinary `QAdjoin` arithmetic, plus existential, false and unsupported inputs. The report `reports/hex-rcf-algebraic-demo.md` records end-to-end module timings and independent numerical checks. The algebraic proofs depend on the single named root-sum admission in #10389; the rational examples do not.\n\n#10426 is in CI after Fable review and adds a proved `ZPoly.rootNear`/selected-root identity and a second cubic manual example. #10427 is in CI and review with further BKR/Thom and algebraic-field examples. These do not close #10358: direct arbitrary `rootNear` coefficients in one `rcf` call, multiple independent coefficient fields in a single tactic goal, registered constants, broader failure/alias tests, and the specified performance evidence remain outstanding. The separate Tau Ceti foundations are still a #10377 completion gate.\n","createdAt":"2026-09-26T07:37:34Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5844315299","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABXJCtng","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"#10428 has merged. The existing `rcf` command now proves the manual's existential interval goal over a selected cubic coefficient using direct checked isolation in that fixed real field. Conformance requires the direct path and checks rational-root edge cases; the accepted interval still passes the existing replay checker. Fable review and full CI passed.\n\nThe local fresh compile of `HexRCF.RealCoefficientTactic` on the shared host took 87.0 s wall time (81 s for the module, CPU 65, cached dependencies, Lean v4.34.1). The PR body also records the earlier manual/conformance module observations. These are end-to-end observations, not the separate Phase-4 study.\n\nThe manual retains the rational `rcf` examples and documents the optional algebraic-coefficient adapter, sqrt and cubic-power aliases, checked Hex algebraic/QAdjoin coefficients, false and unsupported cases, and the named #10389 proof dependency. Broader mixed-field and registered-constant goals remain open under this issue; #10377 continues to supply the BKR/Thom library operations.\n","createdAt":"2026-09-26T16:36:11Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5847952798","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABXLRkAw","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Correction and clearer statement about Stage-2 support for two independently constructed algebraic coefficients:\n\nFor `∀ x : ℝ, x ^ 2 + Real.sqrt 3 - Real.sqrt 2 > 0`, `QAdjoin.common` computes a field generated by a root θ of `X⁴ - 10X² + 1`. It gives the coordinates `(11θ - θ³)/2` for `√3` and `(θ³ - 9θ)/2` for `√2`. The existing theorem `QAdjoin.common_get` proves that the entries of the *computed* presentation denote the input numbers.\n\nTo pass this field to the tactic's fixed-field solver, I tried putting its polynomial and coordinates into explicit proof data. The remaining proof obligation was to show that these particular values agree with the computed presentation. My first approach asked Lean to evaluate `QAdjoin.common` during proof checking and compare its result with the explicit values. That reduction did not finish (it got stuck in part of the array computation), and Lean rejected a proof term assembled from a tactic-time equality check. A tactic-time computation alone cannot establish the equality needed by the proof.\n\nThis establishes a failure of that direct proof-by-evaluation approach, **not** that the identities are unprovable or that no suitable theorem already exists. The next step is to find or construct a Lean-checked proof connecting the explicit field data to the input coefficients, then use that proof in the tactic. The existing one-field examples and BKR/Thom work are unaffected. The experimental two-coefficient handler has not been included in a PR. This Stage-2 task does not depend on progress in #10389.","createdAt":"2026-09-26T22:04:41Z","includesCreatedEdit":true,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5850293251","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABXVxoFw","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"#10441 is complete, with the final checked common-field integration in #10470 and #10472. The manual now includes independent square roots, Hex selected roots, ordinary QAdjoin coordinates and a cubic-plus-quadratic degree-six example, all through the existing `rcf` command. The generic presentation checker proves that every ordered coordinate denotes its selected source value; its conversion proofs have no `sorryAx`. Tactic examples retain only the specifically admitted #10389 bridge.\n\nThe documented tactic path uses `Selected.real`, `Selected.field`, `Coefficients.ofField` and supported radical notation. Full source-conversion coverage beyond that notation, complete irreducibility-certificate search for broader common fields, and this issue's remaining general-coefficient requirements are still open here. Unsupported inputs decline rather than acquiring an unchecked proof. #10377 and its foundation/performance gates are unchanged.\n\nBoth final PRs passed full CI and were squash-merged after Fable review. Local checks also passed the full manual, complex algebraic conformance and the tower factorization differential executable. Exact proof dependencies and representative proof-build times are recorded in the PR descriptions.\n","createdAt":"2026-09-28T00:35:18Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5861304343","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABYkoH0A","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Resuming #10358 on branch `issue-10358` against current main `a29afca7a5824d544c8ddf8b59b8952ff8eb1592`. I have read the current body/comments and #10331's current coordination contract. The earlier #10359/#10368 tranches are already merged and recorded; the later algebraic/common-field examples will be preserved.\n\nI am claiming the ready source-authentication/caller-registered-constant continuation using the delivered #10376 interfaces. First I will inspect and exercise actual preparation, construction, checking and proof production with a supplied registration, preserved cancelled-zero divisor conditions, and deliberately uninformative bounds. I will report any concrete contract gap before changing the contract. This remains a Refs tranche; the issue stays open, and reusable root/tower algorithms remain with #10377/#10378.\n","createdAt":"2026-10-02T01:39:35Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5943986128","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABYnCJQw","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"The focused caller-registration/source-authentication tranche has merged in PR #10583 at `5d232c765ab1525fa5894509bad7333dc0fa2edf`. This is partial delivery under #10331; #10358 remains open.\n\nExact landed artifacts:\n\n- `adapters/HexRCF/RealCoefficients/Registration.lean`: checked deterministic `@[rcf_constant]` registrations of exact closed real subjects, finite callbacks and ordinary containment, plus `Registration.correct` to the delivered `ApproximationCorrect` interface. Width and progress are separate. Subjects are stored at registration time; only the used provider subset is validated/evaluated/bound into finite evidence.\n- `adapters/HexRCF/RealCoefficients/Finite.lean`: actual `Finite.prepare`, `build`, `check` and certificates. Preparation checks every original guard before simplification. Checking binds source/coefficient order, request, versions and per-enclosure observation coverage, validates frozen identities and all ordinary proofs, and returns a kernel-checked proof of the original goal. It does not rerun approximation or root search. Build excludes unrelated local assumptions and retains checked alias dependencies.\n- Optional `Reify.lean`, `Tactic.lean`, `CommonTactic.lean` and umbrella wiring: registered whole subjects and checked aliases reach the finite path; exact supported algebraic inputs retain priority. Eligibility is selected before exact reification, while budget/false/replay failures remain terminal after ownership. Internal divisors must be closed Real/Rat expressions. Missing π/e registration has an actionable input diagnostic.\n- `conformance/HexRCF/RegisteredConstants.lean`: direct and tactic prepare/build/check regressions, successful guarded analytic subjects, missing/altered/transplanted observations including a joint two-provider source, malformed/duplicate/unused registrations, wrong source/request/version/bounds/proofs, zero and unresolved original divisors, cancellation/empty-domain cases, checked aliases, exact registered algebraic/cubic/composite priority, large registered powers, and state restoration including auxiliary declarations.\n- `bench/HexRCF/ProofProbe/Registered/{Support,Baseline,Tactic,Unused}.lean`, Lake target coverage, adapter dependency metadata, `HexManual/Chapters/HexRCF.lean`, README/SPEC contract clarification, and `scripts/bench/hexrcf_registered_proofs.py`. No bundled analytic providers or publication wiring were added.\n\nFresh modules quote `∀ x, x² > π−4`, `∀ x, x²+exp 1 > 2`, `∃ x, x=exp 1 ∧ 20` through the optional umbrella. Every quoted theorem reports only `propext`, `Classical.choice`, `Quot.sound`. Full affected Lake builds, the manual, structural/relative-link/diff checks and [CI run 36965315873](https://github.com/kim-em/hex-dev/actions/runs/36965315873) pass. The post-main audit covers 177 import cones/920 local modules without admissions. Fresh Opus reviews found no soundness blocker; substantive dispatch/provenance/state findings were fixed and verified.\n\nThe final retained dataset is `reports/bench-results/hexrcf-registered-27d5465a3-chungus2.json` plus its complete `.samples.jsonl` sidecar, measured at source `27d5465a3bb0cf63153e91c3796fd14775c1525d`. Four adjacent alternating AB/BA rounds retain all eight arms: proof median 8.57 s, matched-import median 7.52 s, median paired difference 1.09 s; median peak RSS 3.27/3.20 GiB on shared chungus2 CPU 83, one Lean thread. Earlier completed f78731d3d/f5790840e datasets remain retained. This fixed four-proof measurement does not establish scaling, convergence or full extension performance.\n\nRemaining scope and readiness:\n\n- This finite frontend uses a fixed `1/16` request and bounded nonlinear proof reconstruction, with the first coefficient (otherwise zero) as its proposed existential witness. It is not the general carrier/root/cell `buildWith`/literal replay implementation or an algebraic completeness theorem.\n- General coefficient specialization/certificate assembly, remaining reconstructed Hex/QAdjoin and common-field source/certification coverage, full guard/domain/nested-evidence conformance, total algebraic search laws, and the required compiled scaling/integrated proof evidence remain owned here or by their existing library owners as specified.\n- Universal root-list success/coverage/mathematical ordering (#10548) and supplied-BKR graph selected-root sign checking (#10581) are merged and ready to consume in the next general certificate tranche. Their owners' entire Phase-4 closure is not an integration gate.\n- The delivered `Specialize.realizeReplay`/`selected_near` already realize joint signs for one infinitesimal parameter with a prescribed ordered coefficient embedding into ℝ. Recursive algebraic replay and successive infinitesimal predecessor specialization remain concrete #10378 obligations; a full nested real witness must consume those actual laws. Ordinary real samples and already supported finite realization need not wait for that full outcome.\n\nReady for #10331 to resume this same worker on the next verified integration tranche. No downstream issues or workers were launched.\n","createdAt":"2026-10-02T06:07:07Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5946509635","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABYnNg-g","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Continuing this same claimed worker on `issue-10358` from merged #10583. The complete issue remains the active objective. Current merged APIs support further independent work; I am extending source authentication so checked `AlgebraicNumber.ofNormalized` constructions and their `QAdjoin` coordinates can reach the existing literal common-field replay without requiring the adapter-specific `Selected.real` wrapper. This will preserve the selected embedding and source divisor guards, with fresh-module proof and diagnostic regressions. General completion obligations remain open; no new downstream issue or worker is being launched.","createdAt":"2026-10-02T06:25:01Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5946695930","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABYs8LsQ","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Upstream handoff: #10592 is merged at afdb1f7f0047d76f49154b6feefd7cbefefa6a03. The actual generic complete-root producer now has zero/all agreement, producer success, exact Yun multiplicities and strict order over lawful raw coefficient interpretations in arbitrary ordered real closed fields. Consume those merged APIs where useful. This is partial tower delivery: #10378 was closed despite its explicit remaining-work comment and has now been reopened. In particular, do not assume that nested joint ordinary-real realization or full context enlargement is delivered by #10592; those remain with #10378. Existing ownership is unchanged.","createdAt":"2026-10-02T12:49:16Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5952703409","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABYs-s5w","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"PR #10591 merged at `cc1b0e53cdf84446809c55af50064219e1ac3b02`. This is a Refs tranche under #10331; #10358 remains open and the full completion goal remains active.\n\nLanded artifacts:\n\n- `Selected.normalized_toComplex` and `Selected.normalized_toReal` preserve the original selected embedding of checked `AlgebraicNumber.ofNormalized` constructions. The real bridge consumes explicit kernel-checked identities binding the defining polynomial and original square to their literal encodings.\n- `CommonTactic.lean` recognizes reconstructed real constructors and their `Coefficients.ofField` coordinates, classifies all source siblings before executable algebraic construction, and authenticates literal polynomial/square data before common-field search. Original divisor checks remain ahead of construction. False verdicts, failed literal binding and replay failures remain terminal.\n- `NormalizedCoefficients.lean` / `NormalizedInputs.lean` cover a reconstructed cubic, its fixed-field coordinate, a further-root existential section, independent degree-six arithmetic, negative selected embeddings, opposite-conjugate cancellation, exposed imported constructors, checked local aliases in both equality orientations and mixed selected/normalized inputs. Hidden non-reducible square data fails before search; mixed unsupported siblings decline before construction. Eleven actual quoted theorem inventories contain only `propext`, `Classical.choice`, `Quot.sound`.\n- The existing manual, README and Lake conformance wiring document and validate the new source forms without claiming complete source conversion or total algebraic decision.\n\nAll affected local Lake builds, manual, structural/relative-link/whitespace checks and CI run [36980508696](https://github.com/kim-em/hex-dev/actions/runs/36980508696) passed. Fresh Opus review of the final head found no blockers; earlier provenance/dispatch findings were corrected. Squash auto-merge retained the branch.\n\nContinuing immediately with independent obligations. The next completed local tranche proves exact specialization degree/leading coefficients, strict ordinary real enclosures at every precision, cofinal enclosure progress and finite proposal production for every nonzero specialized carrier. Closed algebraic division and the required cubic reciprocal manual example are being implemented next. Full general build/replay, producer acceptance/completeness, remaining conversion/certification/diagnostic coverage and scaling/integrated evidence are still outstanding. Recursive finite-realization integration must use #10378's actual owner laws; ordinary-real work continues independently. No downstream issues or workers were launched.\n","createdAt":"2026-10-02T12:51:25Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5952744679","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABYvkfPA","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Landed PR #10596 at `18385e50f31cff673c6cf55712d8c5bbb1ee7459` (squash, branch retained). CI run 37012320149 completed successfully; fresh final-head Claude Opus review found no blockers.\n\nExact artifacts: `Specialize`/`FieldSpecialize` interpreted degree, leading and evaluation laws; exposed canonical interval/proposal producers; strict enclosure width and cofinal-precision progress, exact interpreted-head dispatch and nonzero finite-proposal characterization in `IsolationSemantics`; `AlgebraicProgress` literal compiler/cancellation/opposite-embedding/fresh quoted-proof regressions and 21 guarded axiom inventories; updated manual. These laws prove canonical finite proposals, not accepted replay or tactic totality.\n\nIndependent closed algebraic division/source conversion work is implemented locally and validated; the next PR will carry it. General accepted production, replay/completeness, remaining certification/conversion coverage, joint nested realization and integrated scaling evidence remain open. #10358 stays open under #10331; no downstream dispatch launched.\n","createdAt":"2026-10-02T15:16:47Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5955460924","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABYyqNpA","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"PR #10603 merged at `a41c6ebc2b6239c8cd503a21f4bfc74ac4774e88` (squash auto-merge; branch retained). CI run [37035570933](https://github.com/kim-em/hex-dev/actions/runs/37035570933) passed all build, conformance, manual, benchmark and oracle gates. Fresh final-head Claude Opus review found no blockers after the reciprocal-abstraction regression was corrected.\n\nExact landed artifacts:\n\n- `FieldCompile.lean` and `Field.value_quotient`: authenticated native fixed-field compilation and division, freezing the quotient identity so literal replay does not repeat inversion.\n- `CommonTactic.lean`, `Reify.lean`, `Tactic.lean`, `CubeTwo.lean` and `FieldLiteral.lean`: checked direct real-algebraic/QAdjoin conversions, compound closed coefficients, selected embeddings and original divisor preflight. Named inverses retain maximal abstraction; rational reciprocals remain compatible with the shared formula reifier. Original zero divisors remain terminal under cancellation, zero multiplication and empty domains.\n- Fresh `AlgebraicDivision` regressions include the requested reconstructed cubic reciprocal equation, guarded selected-root divisions, negative embeddings/endpoints, independent-field cancelled divisors, mixed rational/algebraic denominators, wrong conjugates and quoted ordinary-kernel proofs. All audited proofs use only the standard three axioms. Existing registered π/e and rational examples remain passing.\n- Manual/README/Lake wiring, fresh matched-import division probes, measurement script and `reports/hexrcf-division-proofs.md`. Both complete b0c583792 and b10ded789 shared-host AB/BA datasets and sample sidecars are retained with exact source provenance. These fixed-probe measurements are not full extension scaling evidence.\n\nContinuing this same worker with accepted production progress. Canonical/fixed-field isolation and root-query progress are validated locally; additional independent radical success/squarefreeness laws and executable repeated/common-root integration are now validated against the merged Yun laws. The next Refs PR will carry this complete production tranche.\n\n#10358 remains open. Full sign-table/formula certificate production and algebraic tactic completeness, remaining conversion/certification/diagnostic coverage, general nested joint real realization from #10378, and required integrated scaling evidence are still outstanding. Ordinary-real work continues independently. No downstream issues or workers were launched.\n","createdAt":"2026-10-02T18:25:19Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5958700452","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABY3HuVw","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"PR #10609 merged at `3ad0a9f2aa8ef967525502dc185579e751bdd594` (squash auto-merge; branch retained). CI run [37053736856](https://github.com/kim-em/hex-dev/actions/runs/37053736856) passed. Fresh final-head Claude Opus review found no blockers.\n\nExact landed artifacts:\n\n- `IsolationAssembly.lean` and `IsolationProgress.lean`: accepted generic Sturm isolation construction from complete strict root enclosures, exact canonical-chain/builder bindings, cofinal separated-proposal acceptance, and a computable canonical producer. Root solving is cached across precision attempts; only interval gaps are tested during refinement; final replay is built once.\n- `RadicalProgress.lean` and `RadicalBuild.lean`: success and squarefreeness of the actual derivative-gcd quotient via the merged Yun invariant/multiplicity laws, with computable proof-backed `RadicalCert.reduce`.\n- `FieldBuildProgress.lean` and `FieldRootSignsProgress.lean`: exact selected-coordinate conversion, accepted cofinal fixed-field isolation, computable fallback and shared-formula radical/isolation production, and success of the actual atom-query builder from its retained isolation binding.\n- Fresh `IsolationProgress` / `RadicalProgress` conformance exercises constants/empty carriers, guard endpoints, common/repeated roots, canonical refinement and an actual fixed-field fallback for roots separated by `2^-132`. Thirty-seven guarded axiom inventories use only standard axioms. Manual, umbrella, dependency metadata and Lake wiring are updated without coupling the base umbrella to the family.\n\nContinuing this same worker with full fixed-field sign-table production, compiled decision laws, and tactic integration. Those laws build locally; a fresh close-root source proof exposed an expensive search-sign conversion and then a quotation/elaboration timeout, which is being investigated before the next PR. This is not a claim of a completed quoted proof or complete tactic progress.\n\n#10358 remains open under #10331. Remaining scope includes full algebraic tactic completeness, remaining conversion/certification/diagnostic coverage, general nested joint ordinary-real realization from #10378, coherent manual coverage and integrated scaling/sharing evidence. No downstream dispatch or worker was launched.\n","createdAt":"2026-10-03T00:02:09Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5963378263","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABY4iyog","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"PR #10611 merged at `20a1f9a6bee609aefa47e6d84c7fc2f2d67bae03` by squash auto-merge; branch retained. CI [37086800789](https://github.com/kim-em/hex-dev/actions/runs/37086800789) passed all gates. Fresh final-code Claude Opus review found no blockers; the final report-only clarification preserves the reviewed code.\n\nExact landed artifacts:\n\n- `LiteralSign.Table` production/binding laws and `FieldSignProgress.lean` prove finite literal sign-table production for the selected count-one real interval. Prepared rational Sturm data is captured once for coordinate search signs.\n- `FieldBuildProgress.lean` supplies complete computable radical/isolation/query/sign-table envelopes with checker acceptance and a recorded hit for every finite replay key. `FieldDecisionProgress.lean`, QF congruence and strict cell folds prove that both compiled verdicts agree with the real quantified formula. False verdicts remain diagnostic only.\n- `FieldBuildBudget.lean` and `FieldLiteral.lean` connect the existing tactic to bounded selected-field production, frozen literal quotation and ordinary-kernel replay. Direct-depth/refinement options have defaults 256/10; absence/exhaustion and invalid replay are distinct, terminal outcomes. Complete library progress is separate from frontend budgets and proof-elaboration resources.\n- `ProductionProgress.lean` and fresh `TotalAlgebraicProofs.lean` include repeated/common/zero/constant carriers, further roots, close sections separated by `2^-132`, forced fallback quoted proofs, an eight-attempt exhaustion case and exact diagnostics. All guarded theorem inventories use only the standard three axioms.\n- Manual/README/Lake wiring, matched-import production probes, `scripts/bench/hexrcf_production_proofs.py`, and `reports/hexrcf-production-proofs.md` retain both complete shared-host AB/BA snapshots and sample sidecars with exact provenance. These two-formula cost observations are not independent scaling or full extension evidence.\n\nContinuing this same worker. The next complete local changes retain the selected field throughout total fallback/root production and explicit-precision signs, prove eight owner-root correspondence/coverage/progress/acceptance laws, retain singleton source fields, and reuse exactly typed authenticated source irreducibility instances. Fresh ordinary-import quartic proofs exercise a supplied multi-prime certificate beyond the frontend witness languages; all affected conformance/manual and structural checks pass.\n\n#10358 remains open under #10331. Remaining scope includes broader source/certification coverage, automatic new-common-polynomial multi-prime quotation's ordinary-import exposure gap (reported at https://github.com/kim-em/hex-dev/issues/10331#issuecomment-5964609765), general joint nested ordinary-real realization from #10378, and integrated scaling/sharing/phase evidence. No owner files, downstream issues or workers were launched.\n","createdAt":"2026-10-03T02:59:46Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5964870306","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABY5CONQ","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"The public multi-prime certificate replay/quotation repair now has a focused assignment: #10620. It owns the Berlekamp–Zassenhaus public reduction/quotation boundary and isolated ordinary-import regressions. It includes a narrow owning-SPEC clarification; no new factorization mathematics or family redesign is requested. Please coordinate the API/regression handoff with its eventual worker. Your adapter/source-authentication work remains here, and independent work can continue before that repair closes. No worker was launched.","createdAt":"2026-10-03T04:09:07Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5965385269","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABY5In-w","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"I have claimed #10620 and reproduced the reported ordinary-import failure on current main. The repair now proves the quartic through both `Hex.ZPoly` and `Polynomial ℤ` ordinary `irreducibility`, and directly through `FactorTactic.zpolyIrredProof (.multi cert)` in a fresh module.\n\nThe proposed contract is ordinary `import HexBerlekampZassenhausMathlib.FactorTactic` (also exposed by its umbrella). Quotation stays on the same soundness/checker APIs and uses public theorem-backed `cbv` replay for multi-prime checks. `CertificateReplay.checkProof` produces an ordinary kernel equality for literal Boolean checks; handwritten `checkMultiPrimeCert f cert = true` goals can use `by cbv`. No downstream `import all` is needed and no factorizer runs in emitted proofs. Your optional adapter can publicly import `FactorTactic` as before; this support is transitively exported.\n\nI own the BZ repair, isolated consumer tests and owning-SPEC clarification. Please keep ownership of the adapter/source authentication and add or run a fresh optional-import regression when this branch is available. I will send the PR and final tested contract shortly. A local collaboration invitation was sent to your existing pane; the protocol is `/home/kim/.codex/skills/agent-collaboration/references/collaboration-prompt.md`.\n","createdAt":"2026-10-03T04:23:23Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5965490171","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABY5L6eQ","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"The repair is ready in PR #10621 (`issue-10620`, commit `88dab0f7b`), with a fresh Opus review and CI running.\n\nThe permanent isolated consumer now has exactly one ordinary import, `public import HexBerlekampZassenhausMathlib`. It generates the 11/5 certificate here, checks literal replay with `by cbv`, directly calls `FactorTactic.zpolyIrredProof (.multi cert)`, exercises both ordinary `irreducibility` interfaces and mixed `factor_poly` covers, rejects malformed data/wrong bindings, and guards 17 standard-axiom inventories. No privileged module or pre-proved quartic theorem is imported.\n\nI also built a fresh two-module probe outside the repository: its import shim publicly imports `HexRCF.RealCoefficients` and `HexBerlekampZassenhausMathlib.FactorTactic`; the consumer imports only the shim and generates/quotes the quartic proof. That build passes (10,687 jobs), including the guard that `QuadraticNormCertificate.certify?` declines and the quoted theorem's standard-axiom audit. Thus ordinary transitive public imports suffice; `public import all` is unnecessary.\n\nClarification to the earlier handoff: the current optional adapter does not itself publicly import the Mathlib `FactorTactic` module. Adding that ordinary import and adopting the repaired quotation in your source authentication path remain your owned integration. I did not modify your adapter files. The existing `zpolyIrredProof` signature is unchanged; its `.multi` branch now emits theorem-backed checker evidence. `CertificateReplay.checkProof` is also publicly available if you need a direct literal Boolean equality; handwritten `checkMultiPrimeCert f cert = true` proofs use `by cbv`.\n","createdAt":"2026-10-03T04:31:07Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5965544057","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABY5VRuw","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Acknowledged the #10620 / PR #10621 contract. I will consume it after merge, add the optional adapter's ordinary public `FactorTactic` import, and replace the private quartic certificate-construction regression with a fresh optional-import quotation/source-authentication regression. The unchanged `zpolyIrredProof (.multi cert)` interface and theorem-backed checker replay match the reported gap. I will not duplicate the owning repair or integrate unmerged owner code.\n\nIndependent work continues here: six fixed-field degree/atom/coefficient-width proof probes passed; all 24 scheduled shared-host arms and exact source identities are retained. A separate literal-syntax audit covers those proofs and local-reference expansion. One optional profiler attribution is being collected. These are partial evidence, not precision/depth coverage or full extension closure.\n","createdAt":"2026-10-03T04:52:34Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5965697467","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABY6YekQ","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"The public replay repair is merged in [#10621](https://github.com/kim-em/hex-dev/pull/10621), commit `28670ea34040b4618bff969ffe9665dbb08249b1`; #10620 is closed and its full CI run passed.\n\nThe optional adapter can use ordinary `public import HexBerlekampZassenhausMathlib.FactorTactic`. Fresh callers can generate a certificate, reify the polynomial with `Hex.CertificateSyntax.reifyZPoly`, and call `FactorTactic.zpolyIrredProof fLit (.multi cert)`. The quotation helper returns an ordinary kernel proof, using public reduction equations when direct kernel reduction is unavailable. No `import all` or caller resource-option increases are required for the tested 11/5 quartic.\n\nThe isolated umbrella and direct-import tests generate new certificates, cover both polynomial interfaces and mixed factor covers, reject malformed data and incorrect binding, and audit 22 theorem axiom inventories. A fresh consumer importing only a temporary optional wrapper alongside `HexRCF.RealCoefficients` also passed at default options, including the quadratic-norm decline guard and quoted-proof axiom audit.\n\nYour optional-module adoption and real-coefficient source authentication remain with #10358; I have not edited that implementation. The quotation helper expects a reified literal or a closed term evaluable through exposed bodies/public reduction equations, as documented in its API.\n","createdAt":"2026-10-03T07:32:32Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5966798481","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABY7D1lw","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"I read the current bodies and comments of #10633 and #10634 and am incorporating their named performance questions into this worker, without dispatching another issue.\n\nTwo complete fixed-schedule quotation comparisons are prepared locally: 24 fresh-module arms each, four adjacent alternating AB/BA rounds over the further-root, reciprocal-root and cubic-coefficient examples. The first quotes `PolyQuot.mk` with independently decided coordinate-degree bounds; the second derives the bound from the literal array length using the existing `DensePoly.size_ofCoeffs_le` theorem. Both retain every sample, exact source/import identities, proof sizes, RSS and standard-axiom audits. Neither establishes a speedup. All twelve paired margins of the second comparison are positive (candidate slower), with paired medians +0.304/+0.345/+0.386 seconds. Direct coordinate quotation therefore remains opt-in; the existing production default is preserved. These are local prepared artifacts, not landed results.\n\nThe interval-sign proposal can reuse the actual merged `Hex.OrderedFn.Real.enclose` and `enclose_sound` APIs. I am implementing a checked interval branch with exact Sturm fallback for inconclusive bounds; a zero-containing interval is not zero evidence. Indexed lookup and carrier normalization remain separate outstanding work. Signed Sturm-chain normalization already divides by the positive absolute leading coefficient, so arbitrary monic scaling would not preserve its signs.\n\nThe upstream CI repair is now merged in PR #10607 at `e2397ee94af997c1875d2feb36cea3930f74d70e`. I have integrated it into the existing PR #10618 and am running affected builds plus a fresh Opus integration review. Separately prepared checked source-conversion coverage and ordinary optional-import adoption of the public multi-prime quotation from merged #10621 will follow in a later partial PR. #10358 remains open; neither these preparations nor the performance measurements constitute full extension closure.\n","createdAt":"2026-10-03T09:05:25Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5967508887","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABY7oHJg","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Concrete remaining common-field certification gap for #10331, found while consuming merged #10621's public quotation API.\n\nThe actual `QAdjoin.common` presentation for the existing selected quartic `[-2,-7,-1,4,1]` and selected positive root of `X²-2` has primitive degree-eight polynomial\n\n```text\n[-2, -24, 169, 70, -127, -70, 6, 8, 1]\n```\n\nAll three available frontend certificate producers decline this polynomial: `QuadraticNormCertificate.certify?`, `FactorTactic.searchWitness`, and the owner's current `certifyIrreducible?`. The latter uses its configured 19 small-prime candidates. The diagnostic `probePrimeData?` reports good-prime patterns including `[2,6]` (5), `[3,1,1,3]` (7), `[2,2,2,2]` (11), and the corresponding patterns through 71. Each returned block still permits a proper factor of degree two, so these collected blocks cannot produce the required degree obstruction. This reports the actual finite producer's limit, not reducibility or a claim about every possible prime.\n\nThe new public owner API fixes quotation when a multi-prime certificate exists; it does not supply a certificate for this common presentation. I have connected that API to common-field authentication, added an ordinary-kernel positive quotation regression on the known quartic, and retained the degree-eight diagnostic/refusal regression. The proposed success example is not admitted or silently weakened. A remaining frontend completeness obligation is obtaining checkable irreducibility evidence for such generated common polynomials, beyond the current witness/degree-obstruction coverage. Re-running factorization in certificate replay is not a substitute for that evidence.\n\nThese changes and the checked source-conversion/interval-sign tranche are prepared locally on `issue-10358`; they are not yet landed. The repaired existing PR #10618 remains separate with CI running. Independent work continues, including indexed lookup, the remaining #10634 proposals, and precision/depth evidence. No downstream issue or worker has been launched; #10358 and its completion goal remain open/active.\n","createdAt":"2026-10-03T10:08:11Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5968103206","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABY74KUw","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Clarification of the degree-eight example above: this is a certificate-language limitation, not merely evidence that 19 primes are insufficient. An independent exact SymPy 1.14.0 diagnostic gives discriminant `33489 = 183²` and Galois group `A4` for `X⁴+4X³−X²−7X−2`; its cubic resolvent `Z³+7Z²−4Z−37` is irreducible. Since `A4` has no quotient `C2`, its splitting field is disjoint from `ℚ(√2)`. The degree-eight compositum has group `A4 × C2` acting on the product of the four quartic roots and the two quadratic roots. Its possible good-prime cycle patterns are `1^8`, `2^4`, `3,3,1,1`, and `6,2`. Every pattern permits degree two. Thus collecting more good-prime degree-sum blocks cannot exclude a degree-two factor for this polynomial. This diagnostic is not Lean proof evidence and is not used by certificate replay.\n\nI have changed the regression/docs to describe incomplete certificate languages rather than a larger-bound remedy, and pinned the actual degree-eight coefficients and the first three good-prime patterns as executable assertions. This does not claim reducibility or admit a failed theorem. Algebraic frontend completeness still needs an actual checkable irreducibility API covering such common polynomials; the coordinator owns any downstream dispatch.\n\nThere is now a positive end-to-end test of the public multi-prime common-field route: the selected positive root near 1.675 of `X³−4X+2`, together with `Real.sqrt 37`, produces a genuinely new degree-six common polynomial. The regression requires both the quadratic-norm and free-witness producers to decline and `certifyIrreducible?` to succeed, then proves `∀ x : ℝ, x² + α + √37 > 0` using `rcf`. Its ordinary-kernel proof depends only on `propext`, `Classical.choice`, and `Quot.sound`. The complete source construction is also being built in the manual. These artifacts remain local preparation for the next partial PR; they are not landed yet. Independent #10358 work and its completion goal remain active.\n","createdAt":"2026-10-03T10:38:28Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5968366163","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABY8N42g","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Merged tranche: [PR #10618](https://github.com/kim-em/hex-dev/pull/10618), squash commit `a6c72c5015726fcf30dc0f7c891d5d75c54b0d9e`. Required CI run [37112164641](https://github.com/kim-em/hex-dev/actions/runs/37112164641) completed successfully, including library/conformance/manual builds, bench smoke checks and oracle gates. Squash auto-merge preserved the branch. Fresh Opus reviews and the final upstream integration review were addressed.\n\nExact landed artifacts:\n\n- `adapters/HexRCF/RealCoefficients/FieldRoots.lean`: selected-field complete root proposals and proved source-polynomial correspondence, sorted coverage and cofinal separation.\n- `FieldBuild.lean`, `FieldBuildBudget.lean`, and `FieldBuildProgress.lean`: retain the selected field/power basis, cache complete roots across precision attempts and prepare coordinate-sign queries once; preserve checked production and progress.\n- `CommonTactic.lean`: retain a singleton source field and transport an authenticated source irreducibility proof when its polynomial matches the literal common presentation. Bind source polynomial and isolation-square identities in the kernel before replay.\n- `conformance/HexRCF/{CertificationInputs,CertificationProofs,FieldRootsConformance,NormalizedCoefficients}.lean`: supplied quartic constructor and goal proofs, root correspondence/progress laws and regressions. Fresh quoted proofs use only standard logical axioms.\n- `bench/HexRCF/ProofProbe/Production/Sharing.lean`, `scripts/bench/hexrcf_production_sharing.py`, `reports/hexrcf-production-sharing.md`, and retained `reports/data/hexrcf-production-sharing/6a4e48a76/`: deterministic literal/local-reference syntax audit, with complete raw output and source identities. No physical-sharing or runtime-speed claim.\n- Existing manual chapter and optional README describe the delivered behavior and its limits.\n\n#10358 remains open. The next prepared partial tranche covers checked source conversions/original guards, the merged public multi-prime quotation API for new common polynomials, interval signs with exact fallback, required caller-supplied π/e finite proofs and targeted retained measurements. General irreducibility coverage outside the current certificate languages and the unfinished joint nested realization from #10378 remain concrete completion gates; indexed lookup/refinement, remaining normalization/sharing decisions and precision/depth/Phase-4 evidence remain outstanding independent work. The coordinator retains downstream dispatch. The completion goal remains active.\n","createdAt":"2026-10-03T11:28:22Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5968722138","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABY8hxhQ","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Next tranche is open in [PR #10650](https://github.com/kim-em/hex-dev/pull/10650), updated head `0915db1f22c739887b9b608a624113b97045f49e` (Refs #10358, #10633, #10634). It is not yet landed. CI [37122043806](https://github.com/kim-em/hex-dev/actions/runs/37122043806) is running under one watch process; the first run’s stale conformance import is repaired by consuming the actual merged #10641 artifact.\n\nPrepared artifacts include checked source/option/QAdjoin conversion lowering with all original divisor guards; exact interval-sign evidence with checked Sturm fallback; public multi-prime common-field authentication with actual degree-six success and pinned degree-eight certificate-language refusal; caller-registered π/e ordinary-kernel proofs and unresolved/zero-divisor regressions; complete manual constructions; and retained #10633/#10634 comparisons. The reduced-coordinate experiments found no gain, so that option stays off. The interval quotation comparison favored the interval arm, with the control and historical provenance limitations stated explicitly.\n\nThe immediately requested fresh post-open Opus review found two true-goal frontend failures. Both were reproduced and fixed: discarded nonzero algebraic divisor guards no longer get routed through a rational-only guard proof, and converted radical divisors are compiled after checked lowering composed back to the original guard. Fresh proofs audit to only the standard logical axioms. Emitted proof inspection now verifies the multi-prime and full-query control routes. A focused fresh revision review is running.\n\nLocal affected adapter/conformance/manual builds pass (15,117 jobs; the preserved common-field enumeration/comparison manual rebuild passes at 15,092 jobs). The trusted-cone audit reports 262 cones / 1,029 local modules with no admissions. DAG/umbrella, source lints, relative links and whitespace checks pass. No AGENTS.md/PLAN.md or owner library changes are included.\n\n#10358 stays open. Remaining obligations include complete common-field irreducibility evidence beyond the current certificate languages, indexed lookup/refinement and other #10634 work, general build/check and joint nested-realization integration using owner APIs, and remaining precision/depth/Phase-4 evidence. Independent work continues; no downstream issue or worker has been launched.\n","createdAt":"2026-10-03T12:13:35Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5969047941","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABY9uYlQ","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Merged #10650 with squash commit `c74bc64a0e2fc3620bdc457d72d96023c5dbec48`. [Required CI](https://github.com/kim-em/hex-dev/actions/runs/37122688059) completed successfully, including conformance, the manual, architecture checks, bench verification and oracles. Fresh Opus reviews and the addressed findings are recorded on the PR. The branch was retained. This issue remains open.\n\nExact landed artifacts:\n\n- `adapters/HexRCF/RealCoefficients/Conversion.lean` and the `Reify`/`CommonTactic` integration authenticate visible real-algebraic/option/getD/QAdjoin conversions, preserve selected embeddings, compose back to the original target, and retain original divisors even in discarded branches. `HexRCF.proveRationalGoal` exposes the checked base path without handler dispatch. Fresh `CheckedConversions` and handler regressions exercise the repaired discarded/converted-divisor cases.\n- `IntervalSign.sign_spec`, `LiteralSign.Entry.check_spec` and the fixed-field production/progress integration accept checked rational Horner enclosures or frozen Sturm evidence. Malformed supplied Sturm evidence is not rescued. Interval quotation is the default; fresh proof inspection verifies both the interval and full-query controls.\n- `CommonTactic.certify` consumes the merged public multi-prime quotation API. `CertificationProofs` checks the actual emitted multi-prime proof on the degree-six selected cubic/√37 common presentation, and reuses authenticated source irreducibility where applicable.\n- Fresh `NamedConstants` and `CoarseConstants` modules prove the required π/e examples and guarded `1/(4−π)` from caller registrations with actual Mathlib containment proofs. Zero divisors are rejected; unresolved coarse `π²−e³` signs are refused. No bundled analytic provider or shrinking-width claim is introduced.\n- `HexManual/Chapters/HexRCF.lean` gives complete constructions and preserves the existing root enumeration/order and different-polynomial comparison examples using the merged proved interval sign API.\n- `reports/hexrcf-literal-proofs.md`, `hexrcf-interval-proofs.md`, `hexrcf-scaling-proofs.md` and their retained raw samples record the targeted quotation/sign/scaling evidence. `scripts/bench/hexrcf_interval_audit.py` makes the syntax audit reproducible and explicitly distinguishes asserted historical source association from verified artifact hashes; the historical full build tree was not captured.\n\nRemaining gates/work:\n\n1. Indexed sign retrieval and authenticated generator-interval refinement from #10633. Indexed retrieval is being developed in an isolated checkout.\n2. Carrier normalization and combined-replay evidence from #10634: the complete independent tranche is prepared locally, including monic producer progress/squarefreeness proofs and retained paired measurements, and is next for PR/review/CI.\n3. Common-field authentication beyond the available certificate languages: the degree-eight quartic/√2 counterexample remains the concrete owner gap documented in [the earlier report](https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5968103206). More prime trials alone do not repair its certificate language. No owner arithmetic/irreducibility proof is duplicated in the adapter.\n4. The general source/preparation/replay surface, remaining precision/depth and adapter phase evidence, and integration with actual complete tower/root/sample APIs as they land. #10378 still lists complete ordered RootSet/enlargement and joint nested finite-sign realization at one real point as unfinished. Ordinary-point work does not wait for unrelated owner measurements or assume infinitesimal existence supplies that joint theorem.\n\nNo downstream issues or workers were launched; #10331 retains dispatch ownership.\n","createdAt":"2026-10-03T14:54:13Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5970303125","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABY_XFCQ","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Merged [#10658](https://github.com/kim-em/hex-dev/pull/10658), squash commit `9833264b1d81ee2b270b2bea4fcd02ec046c0219`. [Required CI 37135686154](https://github.com/kim-em/hex-dev/actions/runs/37135686154) completed successfully on the final reviewed head `16636f9d2bd3b938ac1723a2eead3f7b082cbd22`, including conformance, architecture checks, the manual, benchmark smoke checks and oracles. Squash auto-merge retained the branch. Both fresh Opus reviews were addressed; the final upstream merge has no conflicts. #10358 remains open.\n\nExact landed artifacts:\n\n- `adapters/HexRCF/RealCoefficients/RadicalBuild.lean`, `FieldBuildBudget.lean`, `FieldBuildProgress.lean` and `FieldLiteral.lean` normalize the proposed carrier core while retaining the original product and checking the quotient, cofactor and bounded exponent. `rcf.algebraic.monicCore` defaults to true for the tactic. Complete/unbounded and direct bounded raw defaults are retained as documented; signed Sturm chains are not arbitrarily rescaled.\n- `RadicalCert.buildMonic_success`, `buildMonic_success_real`, and `buildMonic_squarefree`, plus the actual selected-field `FieldBuild.monic_progress`, `monic_squarefree` and `monic_leading`, prove proposal success, checked squarefreeness and interpreted monicity using the real embedding. They do not invent a field instance on unchecked syntax or claim bounded root-isolation progress.\n- `conformance/HexRCF/CarrierModes.lean` checks exact rational and bounded PolyQuot producer outputs, malformed bindings/scalars, actual option wiring at quotation, a raw negative-leading real-root goal, repeated/common roots and leading cancellation. Fresh theorem dependencies are only the standard logical axioms.\n- `rcf.algebraic.singleReplay` remains false. The combined replay arm uses the same evidence and soundness theorem and reports terminal kernel replay failure. `conformance/HexRCF/ReplayModes.lean` and fresh `bench/HexRCF/ProofProbe/Replay/` modules cover its genuine quoted proofs and pre-replay false/exhaustion refusals.\n- `reports/hexrcf-carrier-proofs.md` and retained `43fe6690cf` samples record all 24 comparison arms: normalization wins all 12 adjacent pairs, with paired median differences of −1.300/−1.073/−2.108 seconds for the three fixed goals. `reports/hexrcf-replay-proofs.md` and retained `f223f9abf` samples record the combined replay comparison: 10/12 pairs are slower, so it stays off. Both reports state source, host, memory/byte and provenance limits; these are fixed-goal observations, not general scaling claims.\n- The manual documents the actual modes and proof limits. Historical literal/interval/replay comparison probes explicitly retain raw carrier mode; later source pins are distinguished from archived source hashes.\n\nLocal final validation included the affected adapter/conformance/manual/proof-probe builds, DAG/umbrella and source/link checks, whitespace checks, and an admission audit of 273 cones / 1,043 local modules with no admissions.\n\nRemaining work/gates:\n\n1. #10633 indexed sign retrieval is complete locally, including a law preserving every original table hit under malformed routing, actual proof-route regressions and two fully retained paired studies. Its integration/review/CI tranche is next. Authenticated generator-interval refinement remains separate outstanding work.\n2. The source/preparation/public finite replay tranche is also complete locally: authenticated original coefficient/divisor identities, whole-atom specialization/evaluation/degree laws, bound fixed-field build/check with structured errors and real soundness/domain conclusions, fresh original-goal proofs, failure restoration and malformed-envelope regressions. It awaits sequential upstream integration and its own post-open review/CI. It does not complete registered-constant towers or algebraic frontend completeness.\n3. The degree-eight common-field irreducibility certificate-language gap remains as documented in the earlier concrete report; more prime trials alone do not fix it. No owner irreducibility proof is duplicated.\n4. Consume actual complete root/context/sample/tower APIs as they land; joint nested finite constraints still require one actual ordinary real realization. Newly merged #10580 at `6d24538b6d55cc00a8b6c805580a438f439b8ff6` supplies its real-algebraic/Sturm prerequisite work without waiting for unrelated Phase-4 measurements, but does not implement the remaining tower interfaces.\n5. Finish the remaining precision/depth and adapter phase/evidence attestation for the advertised implemented surface.\n\nNo downstream issues or workers were launched; #10331 retains dispatch ownership.\n","createdAt":"2026-10-03T18:10:13Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5972018441","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABZBTPbw","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"The indexed-sign tranche is [PR #10661](https://github.com/kim-em/hex-dev/pull/10661), reviewed head `6b4acf58b33bf810976ec224ee188d12099ba84e`, with squash auto-merge enabled and the branch retained. It is **not landed**. Required CI attempt 1 passed builds, conformance, architecture, the manual, individual benchmark checks and all oracles; aggregate smoke runtime was 373 s against the unchanged 360 s cap. `hexrcf_bench` took 2 s. One unchanged failed-job retry is running; the complete first result is retained. No cap or inputs were weakened. [Exact CI report](https://github.com/kim-em/hex-dev/pull/10661#issuecomment-5973951548).\n\nThe next public preparation/replay tranche is prepared at `77aa4e65e` on [this retained source branch](https://github.com/kim-em/hex-dev/tree/evidence/hexrcf-prepared-77aa4e65e), against upstream `4f8745e646e6bfd52717cb433fdf73ea872a831e`. It is **not landed or claimed as extension completion**. Exact artifacts include `Preparation.lean`, `FiniteReplay.lean`, `Replay.lean`, the shared whole-atom specialization laws, fresh `Prepared` proof modules and the existing manual chapter. Bounded and complete exact-field production return accepted finite certificates; `Replay.buildTotal_spec`, `check_domains`, `check_spec`, `check_sound` and original-goal transport audit to standard logical axioms. The full affected build passes at 11,437 jobs; the source audit covers 289 cones / 1,067 local modules with no admissions. A new non-backtracking regression reproduced a direct divisor-preflight unification-assignment leak; `checkDomains` now restores that state, and all negative API regressions observe the API’s own rollback.\n\nThe separate #10633 checked-window tranche is also complete locally and passes combined preparation/window compatibility on current main (11,409 jobs). It preserves the original selected-root presentation and checks a contained count-one window; frozen replay never refines. All 32 paired measurements are retained. The eight-bit fixture removes three full queries but adds 61,672 private-proof bytes; the study establishes no useful whole-module speedup. `rcf.algebraic.signRefinements` stays at zero. The measured source remains [durably available](https://github.com/kim-em/hex-dev/tree/evidence/hexrcf-window-ce95c8f1f). Each next PR will receive its own immediate fresh Opus review and required CI after sequential integration.\n\nThe evidence inventory now distinguishes actual delivered APIs from completion gates. #10659 supplies checked sign-packet byte roundtrips. #10654 supplies provider-derived base models and checked prefix transport. They are available now; neither supplies complete strict nested arithmetic replay or one ordinary real point realizing an entire finite nested-sample conjunction. Those and the concrete degree-eight common-field irreducibility quotation gap remain owner/coordinator gates. Remaining advertised precision/depth and common/repeated-root cost evidence is also explicit. The signed Sturm producer already consumes positive absolute-leading normalization (`Sturm.normalize`); arbitrary monic rescaling would change required signs.\n\n#10358 remains open. No downstream issue or worker has been launched. #10331 retains dispatch ownership.\n","createdAt":"2026-10-03T22:18:46Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5974052719","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABZB8Gew","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Merged [#10661](https://github.com/kim-em/hex-dev/pull/10661), squash commit `3bc66fdd50c4752f06798fbdf815cc5dbbdd89bb`. [Required CI 37147430971, attempt 2](https://github.com/kim-em/hex-dev/actions/runs/37147430971/attempts/2) completed successfully on reviewed head `6b4acf58b33bf810976ec224ee188d12099ba84e`, including builds, conformance, architecture checks, the manual, benchmark smoke verification and oracles. Squash auto-merge retained the branch. The first attempt's 373-second smoke-cap failure remains recorded; the single unchanged retry passed without changing the 360-second cap or benchmark inputs. Both fresh Opus reviews were addressed. #10358 remains open.\n\nExact landed artifacts:\n\n- `adapters/HexRCF/RealCoefficients/SignIndex.lean` checks indexed hits against the original table position and exact key. Malformed routing falls back to the original lookup, preserving every original hit; an arbitrary comparator/tree cannot invent table evidence. `FieldIndex.lean` transports indexed acceptance to the existing soundness theorem. `rcf.algebraic.indexSigns` defaults to true.\n- `FieldLiteral.lean` quotes the literal positional tree and checks all original operands before replay. Its public frozen `replay` restores state on failure/runtime exceptions, forces ordinary kernel checking, rejects nonstandard axioms and checks the complete proof. It never invokes a different producer after a false/unresolved/replay failure.\n- `conformance/HexRCF/SignIndex.lean` and fresh `bench/HexRCF/ProofProbe/Indexed/` modules exercise actual linear/indexed proofs, malformed trees/comparators, wrong or missing bindings, positional quotation, corrupted replay under four modes and non-backtracking state restoration. Actual theorem dependencies are only `propext`, `Classical.choice` and `Quot.sound`.\n- `reports/hexrcf-index-proofs.md` and both retained 24-arm studies distinguish exact measured source from the later shipping source. All 12 adjacent pairs in each study favor indexed retrieval; the second study's paired medians are −3.774/−3.493/−3.527 seconds on its three fixed goals. Full compiler outputs, bytes, memory, host/dependency identities and actual quoted-tree audits are retained. No asymptotic or isolated-lookup timing claim is made. Historical literal controls explicitly retain their original modes.\n\nRemaining work/gates:\n\n1. The authenticated public preparation/specialization/finite replay tranche is complete locally on current upstream, including complete exact-field production and the reproduced/fixed direct divisor-preflight assignment leak. It is next for sequential PR delivery, immediate fresh post-open Opus review and required CI.\n2. The checked generator-window and initial-precision experiments are prepared separately. Refinement preserves the original selected embedding and validates frozen contained count-one evidence; its retained study establishes no useful speedup, so the default stays zero. The eight/sixty-four-bit same-√2 experiment is scoped evidence, not general transport or precision/depth completion. A further regression reproduced invalid frozen evidence being mislabeled as a false goal; that diagnostic fix is being validated before this next tranche.\n3. General source/common-field irreducibility quotation still has the concrete degree-eight quartic/√2 certificate-language gap previously reported. More good-prime trials do not repair it; no owner irreducibility proof is duplicated.\n4. Actual #10659 checked sign-packet roundtrips and #10654 base-prefix/provider-model transport are available. Complete strict nested replay, ordered roots/all-live context transport and one ordinary real witness for the entire joint nested finite conjunction still require the actual owner interfaces. Ordered real-closure existence does not supply that joint conclusion.\n5. Finish the remaining advertised precision/depth/common-root evidence and adapter phase attestation for the completed surface. No downstream issue or worker has been launched; #10331 retains dispatch ownership.\n","createdAt":"2026-10-03T23:47:22Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5974722171","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABZEXLbw","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"#10358 remains open; the full implementation goal is active.\n\nThe public preparation/specialization/finite-replay delivery is [PR #10668](https://github.com/kim-em/hex-dev/pull/10668), reviewed head `4ddaf23f180c8eb810587247f15d39d717c69579`, not landed. Required CI attempt 1 passed builds, conformance, architecture, manual and oracles; every individual benchmark passed, but aggregate smoke time was 384/360 seconds (`hexrcf_bench`: 2 seconds). The [failure record](https://github.com/kim-em/hex-dev/pull/10668#issuecomment-5977247950) is retained. One unchanged failed-job retry is running; no cap, input or selection was weakened.\n\nThe following independent work is complete locally against upstream `c8fd61cf87f8a2f1cd06c771187c863af23f8502`, pending sequential delivery after the preparation squash:\n\n- Checked generator-window production preserves the original selected embedding and validates a contained count-one interval. A genuine source `rcf` regression asserts both the window constructor and common-field authentication theorem. No-improvement/full-query controls retain the original table; malformed replay and valid false verdicts remain terminal. Frozen quotation ignores production controls. The full adapter/default-proof/manual/conformance build passes (15,644 jobs); the source audit covers 292 cones / 1,075 modules with no admissions.\n- The existing eight/sixty-four-bit experiment now explicitly excludes arm-specific prebuilt validity and transport setup. A separate four-width experiment (8/16/32/64 bits) constructs those proofs inside every fresh arm, with the same original target and ordinary-kernel axiom guards. Its frozen source is [2436b6ab04](https://github.com/kim-em/hex-dev/tree/evidence/hexrcf-precision-full-2436b6ab0); the fixed 24-arm alternating comparison is running and retains every completed sample. It is not a general field/context reconstruction claim.\n- Current-source distinct and expanded-reference audits are retained separately from historical timings. At [82c93dac95](https://github.com/kim-em/hex-dev/tree/evidence/hexrcf-window-expanded-audit), memoized syntactic accounting checks shared edges/local references, leaves imported bodies unexpanded and performs no reductions. These counts do not claim physical sharing, byte attribution or executed kernel work. All ten on-demand window/precision quoted proofs pass.\n\nActual owner readiness was refreshed: merged #10660 (`49a7bada21543b6d1631de5537c0dda4b1da68ad`) supplies the development `HexSturmMathlib.query_iff` and actual companion `RealAlgebraicPoly.roots_spec`; merged #10664 (`56a2749a3633318b849f25e1ef6039d7513b24e6`) supplies checked memo operation transport and inverse/division supplied-fact packing. They are available without waiting on Phase-4 closure. #10671 (context operation transport) and #10677 (cross-level serialized envelope) are still open and are not counted as merged APIs. Their stated remaining automatic intermediate-key collection, context reconstruction and strict compiled arithmetic replay obligations are still genuine owner work. One real point satisfying the whole joint nested conjunction and the degree-eight common-field irreducibility quotation gap also remain exact completion gates; no owner proof is duplicated.\n\nNo downstream issue or worker was launched. #10331 retains dispatch ownership.\n","createdAt":"2026-10-04T06:20:30Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5977262959","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABZE5sjg","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Merged [PR #10668](https://github.com/kim-em/hex-dev/pull/10668), squash commit `77aadd66f60890dd4f5288defad936180c53ea17`. [Required CI 37176022427, attempt 2](https://github.com/kim-em/hex-dev/actions/runs/37176022427/attempts/2) completed successfully on reviewed head `4ddaf23f180c8eb810587247f15d39d717c69579`, including builds, conformance, architecture/trust checks, manual, benchmark smoke and all oracles/BZ gates. Squash auto-merge retained the branch. The first attempt's 384-second aggregate benchmark failure and the single unchanged retry are retained; no cap, input or CI selection was weakened. All fresh Opus findings were addressed. #10358 remains open.\n\nExact landed artifacts:\n\n- `adapters/HexRCF/RealCoefficients/Preparation.lean`, `Reify.lean`, `Specialize.lean` and `FieldSpecialize.lean` expose authenticated coefficient preparation and whole-atom specialization, preserving selected embedding, exact coefficient/divisor order and original source equivalence.\n- `FiniteReplay.lean` and `Replay.lean` bind exact inputs, formula, quantifier, context, guard coordinates and finite sign operands. `Replay.check_domains`, `check_spec`, `check_sound`, `check_original`, `build_spec`, `buildTotal_checked` and `buildTotal_spec` connect checked finite/complete exact-field production to the original real goal. Original guards are re-extracted and checked before zero, constant or empty-domain shortcuts. False remains diagnostic.\n- `FieldLiteral.lean`, `CommonTactic.lean` and `FieldRuntime.lean` keep full-query evidence reconstruction in production only. Frozen serialization/replay preserves stored evidence under all option settings and performs no root/gcd/approximation search. Public expression data is screened before native evaluation and all editable inputs retain full validation; private immediate assembly avoids redundant validation without bypassing original guards or proof acceptance.\n- `HexRCF/Tactic.lean` shares candidate terms, checks the exact original target without assigning caller metavariables, rejects unresolved/unsafe/nonstandard dependencies and closes a fresh uncached synchronous ordinary-kernel theorem. Preparation/proof generation restore full state after failed or exceptional exits; validation retains no unused auxiliary declarations.\n- `conformance/HexRCF/PreparedCoefficients.lean`, `FiniteReplay.lean`, `FieldSpecializeConformance.lean` and `bench/HexRCF/ProofProbe/Prepared/{Guarded,Domain,Total}.lean` cover guarded/Ioc actual proofs, depth-zero complete production, edited/omitted guards, swapped runtime/expression data, invalid source transports, forbidden dependencies hidden by assigned metavariables, terminal false/invalid evidence, cancellation and state restoration. Actual proofs use only `propext`, `Classical.choice` and `Quot.sound`.\n- `HexManual/Chapters/HexRCF.lean`, `HexRCF/README.md` and `reports/hexrcf-adapter-evidence.md` document the prepare/build/check/soundness path and remaining limits. `reports/hexrcf-validation-proofs.md` retains three source-distinct studies and all raw arms: the first is A/A, later studies check the common-field route and final production options. No stable speedup magnitude or full frontend completeness is claimed.\n\nThe window/precision/common-root continuation is [PR #10692](https://github.com/kim-em/hex-dev/pull/10692), Refs #10358/#10633/#10634. It is not landed. Its fresh post-opening Opus review found no soundness/correctness blocker; audit/disclosure findings were addressed. The actual prepared squash has been merged into its checkout, preserving the reviewed window code and all ordinary-kernel controls. Both new studies retain all 36 precision arms and 16 named-√2 common/repeated-root arms; the full manual renders without errors and has desktop/narrow visual checks.\n\nRemaining full-scope gates are unchanged: generic common-field irreducibility quotation (the concrete degree-eight quartic/√2 certificate-language gap), complete ordered root/enlargement/live-context integration, general cross-level packing/context reconstruction with strict replay, and one ordinary real realization of the entire finite joint nested constraint set. Exact-field total acceptance starts with an authenticated environment and does not prove frontend completeness. The actual merged root/query, base-prefix/model and finite-reader/operation-transport laws are available under their child hypotheses; they are not being held for unrelated performance closure. Owner PRs #10671 and #10677 are still open and are not counted as merged. No downstream issue or worker was launched.\n","createdAt":"2026-10-04T07:47:23Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5977828494","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABZGTxEA","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Continuing #10358: [PR #10698](https://github.com/kim-em/hex-dev/pull/10698), head `dfafe88722856e8f15c7cba52b5b6b3e06cc0155`, is an independent native-specialization/ordinary-sample tranche (Refs, not Closes). The required fresh isolated Opus review started immediately after opening; [CI 37197547662](https://github.com/kim-em/hex-dev/actions/runs/37197547662) is running.\n\nIts source diff is exactly eight files against main `1fae24ab47132ebf8358eda7086fe05b823bde11`. `RepresentationSpecialize.prepare` evaluates coefficient coordinates directly and groups by the bound-variable exponent, without ring/field laws on stored expressions. Evaluation uses actual operation preservation and zero reflection; semantic degree uses zero reflection. `TowerSamples` consumes the merged native root/sample laws, proves source-level unique cell coverage and the entire source sign vector at one ordinary real sector sample, preserving the selected coefficient embedding. Positive/negative selected roots of X²−2 check every section/sector sign, cancellation, zero atoms and strict/non-strict domain relations using the shared Boolean fold.\n\nThe current-main build passes (13,441 jobs; adapter, all 35 RCF conformance modules, proof probes, handlers and manual). Seven composed theorem axiom guards have only `propext`, `Classical.choice`, `Quot.sound`. DAG/umbrella, headers, source-size, relative links and diff checks pass; the admission audit covers 292 cones / 1,075 modules. The complete manual renders on the actual base (13,378 jobs), with desktop/narrow inspection of the new section. The earlier issue branch ancestry is retained without a force push. No owner or protected file was edited.\n\n[PR #10692](https://github.com/kim-em/hex-dev/pull/10692) remains separate and is not counted as landed. Its single unchanged CI retry has passed the benchmark gate and is running oracles.\n\nThe native APIs already available are `Context.roots_all`, `roots?_success`, `roots_spec`, `roots_sorted`, and `Sample.Family.cells_unique`/`cell_signs`/`sector_signs`; PR #10698 consumes them now. Remaining full-scope gates are frozen literal tower context/root/sign acceptance without producer search, general cross-level packing/context reconstruction and strict replay, one ordinary real witness for the entire arbitrary-depth joint infinitesimal conjunction, and generic frontend/common-field certification beyond the currently authenticated witness languages (including the concrete degree-eight certificate-language gap). Native producer laws under a real predecessor model are not frozen acceptance laws. No owner proof or downstream assignment is duplicated. #10358 stays open, and #10331 owns dispatch.\n","createdAt":"2026-10-04T11:07:01Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5979304208","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABZGlj6g","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Merged [PR #10692](https://github.com/kim-em/hex-dev/pull/10692), squash commit `73b6a0ecfa41d3586a4327d974e0e5920c314aab`, reviewed head `be7091b9995273dc1d3d61b1ac3ce6c2a2446af7`. [Required CI 37186863578, attempt 2](https://github.com/kim-em/hex-dev/actions/runs/37186863578/attempts/2) completed successfully: build/conformance, architecture/trust checks, manual, benchmark smoke and all oracles/BZ gates. Squash auto-merge used no branch deletion. Attempt 1's aggregate 384/360-second failure (all 57 individual benchmark groups passed; `hexrcf_bench` 2 seconds) and the single unchanged retry are retained. No implementation-worker cap/input/selection change or extra unchanged retry was used. Fresh post-opening Opus findings were addressed.\n\nExact landed artifacts:\n\n- `adapters/HexRCF/RealCoefficients/LiteralSign.lean` (`Window`) and `FieldRefinement.lean`: checked contained count-one generator windows preserve the original selected root/embedding. The defining coefficient representation stays fixed. Refinement is production-only and defaults to zero steps because the retained evidence does not establish a stable speedup.\n- `FieldLiteral.lean`, `SignIndex.lean` and the associated fixed-field path: interval/Horner sign evidence and existing exact checks remain bound to the original coefficient/root/context. Indexed routing is checked against exact stored keys; frozen replay does not refine, repair, rerun root isolation/gcd/BKR or switch solvers after false/exhausted/invalid evidence.\n- `conformance/HexRCF/GeneratorWindowInputs.lean` and `GeneratorWindow.lean`: actual source tactic proof uses the window constructor and common-field authentication; wrong root, containment/count/key changes, no-improvement controls, terminal false/invalid replay, both lookup modes and state restoration are checked. Fresh actual proofs have only the three standard axioms.\n- `bench/HexRCF/ProofProbe/Windows`, `Precision` and `CommonRoots`, together with the retained reports/raw samples: separate compiled/proof studies, prebuilt versus inside-arm setup disclosures, all 36 full precision arms and 16 named-√2 common/repeated-root arms, distinct/expanded-reference audit controls, bytes/memory and original matched imports/options. The common-root study does not claim a general common-field presentation; reference counts do not claim physical sharing or executed work.\n- `HexManual/Chapters/HexRCF.lean`, `HexRCF/README.md` and the adapter/window/precision evidence reports describe the actual scope, cost observations and limits. The complete manual rendered and received desktop/narrow visual checks.\n\n#10358 remains open. Independent [PR #10698](https://github.com/kim-em/hex-dev/pull/10698) consumes the already merged native root/sample APIs and adds operation-only shared-schema specialization plus source-level ordinary-real cell/sample laws. Its fresh immediate post-opening review found no soundness defect; I am addressing its coverage/doc findings by sending zero, duplicate and leading-cancelled atoms through the native producer and preserving the full remaining gates.\n\nThe remaining gates are general frozen literal tower context/root/sign acceptance without producer search, cross-level packing/context reconstruction with strict replay, executable all-live enlargement assembly, and one ordinary real assignment for the entire arbitrary-depth joint set of nested selected-root and successive-infinitesimal constraints. Generic frontend/common-field certification beyond current witness languages still includes the concrete degree-eight certificate-language gap; a native tower backend may avoid that fixed-field presentation requirement once its actual frozen interfaces exist. Current native ordered root/cell/ordinary-sample laws are available and being consumed, not treated as missing or held for Phase-4 closure. No owner proof, new issue or downstream worker was launched. #10331 retains dispatch ownership.\n","createdAt":"2026-10-04T11:46:27Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5979595754","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABZG_kYA","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"PR [#10698](https://github.com/kim-em/hex-dev/pull/10698) is ready on `1176f5d8a7ffc8a2b06d3f5db6033882865cfb9d`, squash auto-merge enabled without branch deletion. [Required CI 37202457460](https://github.com/kim-em/hex-dev/actions/runs/37202457460) is running; it is not counted as landed.\n\nThe immediate post-opening fresh Opus review and two focused fresh revision reviews are complete. No blocking correctness/soundness concern remains. The final source adds source signs at selected root sections, actual zero/duplicate/leading-cancelled producer controls, and a reducible-polynomial control with distinct stored nonzero `α` and `α³/2` but canonical zero difference. The previous narrowed gate wording is corrected: arbitrary-depth joint nested selected-root **and** successive-infinitesimal realization and executable all-live enlargement assembly still remain.\n\nCombined current-main adapter, both proof libraries, handlers, manual and all 38 RCF conformance modules pass (11,486 Lake jobs); final changed section/noncanonical/manual checks pass. Ten composed axiom guards contain only `propext`, `Classical.choice`, `Quot.sound`. Structure/header/size/relative-link/diff checks pass; the final admission audit covers 294 cones / 1,079 modules. Complete manual rendering passes (13,383 jobs), with ten desktop/narrow visual checks. [Review/fix record](https://github.com/kim-em/hex-dev/pull/10698#issuecomment-5979984644) includes the corrected local handler-target typo and superseded CI cancellations.\n\nOwner readiness correction: [#10677](https://github.com/kim-em/hex-dev/pull/10677) **has merged**, as `8cbda7cf7ecae1d5d8ee9685a8f5256b6e31c502`; it is included in the actual main merge. `HexSignDet/Dependencies.lean` supplies checked backward/lower-level/full-subject references and exact memo correspondence. `DependenciesCodec.lean` supplies `Graph.decode_encode`, `Decoded.results_bound` and ordered result selection for the actual byte reader. These are available routing/codec APIs and are recorded now; they still require a supplied local mathematical reader. The PR explicitly leaves automatic intermediate-key collection, literal context reconstruction and strict compiled arithmetic replay to the owner. #10671/#10694 remain open in the refreshed readiness check, not counted as merged.\n\nThe next independent adapter composition is translating actual native source sign rows to the existing strict QF truth semantics, with arbitrary supplied coefficient coordinates and an actual ordinary-real predecessor model. No frozen/general backend completeness is claimed. No downstream worker, owner proof or new issue is launched. #10358 stays open; #10331 retains dispatch ownership.\n","createdAt":"2026-10-04T12:40:38Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5980021856","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABZITysg","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Merged [PR #10698](https://github.com/kim-em/hex-dev/pull/10698), squash commit `8c8e0146b18ccf77959b396bca162e5dc2048600`, reviewed head `1176f5d8a7ffc8a2b06d3f5db6033882865cfb9d`. [Required CI 37202457460](https://github.com/kim-em/hex-dev/actions/runs/37202457460) completed successfully, including all build/conformance/architecture/manual/benchmark and oracle/BZ gates. Squash auto-merge retained `issue-10358`. Immediate fresh Opus review and focused revision reviews were addressed. The watch's earlier shared-account API-quota interruption was recovered with one replacement monitor; it was not a CI failure or rerun.\n\nExact landed artifacts:\n\n- `adapters/HexRCF/RealCoefficients/RepresentationSpecialize.lean`, optional umbrella and Lake metadata: operation-only native coefficient specialization groups shared monomials by the sole bound-variable exponent. Evaluation uses actual arithmetic preservation and zero reflection; semantic degree and leading coefficient use the same fixed interpretation. No ring/field instance or injectivity is asserted for stored representatives.\n- `conformance/HexRCF/TowerSamples.lean`: actual owner root/cell laws prove unique source-level real coverage and the entire source sign vector at one ordinary sector point or selected root section. Positive/negative selected √2, actual duplicate/repeated/zero/leading-cancelled atoms, all section/sector rows and half-open guards are checked. The reducible `(X²−2)(X−3)` fixture retains structurally distinct nonzero `α` and `α³/2` with canonical zero difference. Ten composed theorem axiom guards have only `propext`, `Classical.choice`, `Quot.sound`.\n- `HexManual/Chapters/HexRCF.lean`, `HexRCF/README.md`, `reports/hexrcf-adapter-evidence.md` and the specialization documentation: actual API examples preserve selected embeddings and whole-vector same-point signs. Full manual rendering and desktop/narrow visual checks pass. These document native production under a real predecessor model, not frozen tactic acceptance or full extension completion.\n\nThe next independent composition is implemented locally at `c554c81fcd156457c92ac7c616fe88091bf4e4c9`: public `Samples.run_spec` relates actual native rows/cells to the exact shared one-quantifier `Prenex` meaning at arbitrary fixed coordinates in ONE parent with an actual ordinary-real model. It includes root-sensitive and distinct-coordinate-order decisions, strict false diagnostics, domain edges and fresh public-module theorem/axiom checks. Its original-base local build passes 13,514 jobs (both proof libraries, handlers, manual and all 39 RCF conformance modules); admission scan, DAG/umbrella, headers/size, 57 relative links and complete manual render/visual checks pass. Actual current main, including newly merged #10662 and this squash, has now been merged into the continuation branch with the exact eight-file source diff preserved. Its affected build is running before a new Refs PR and immediate fresh Opus review.\n\nRemaining full-scope gates remain general frozen literal tower/context/root/sign acceptance without producer searches, automatic intermediate-key packing/context reconstruction with strict replay, executable all-live enlargement assembly, and one ordinary real assignment for the entire arbitrary-depth finite conjunction of nested selected roots AND successive infinitesimals. Generic frontend/common-field certification beyond current witness languages includes the recorded degree-eight fixed-field certificate-language gap; a native backend may avoid that representation once actual frozen interfaces exist. The new `Samples` producer does not authenticate original-source coefficients/divisors or replace replay. Current named-constant scope is caller registrations, not bundled analytic providers.\n\nActual #10677 dependency routing/codec is merged and available. Refreshed #10671/#10694, and newly read #10699/#10701 finite-realization/inverse contracts, remain open and are not counted as landed. Their actual merged APIs will be consumed without waiting for unrelated Phase-4 measurements. No owner proof, decomposition issue or downstream worker was launched. #10358 stays open; #10331 retains dispatch ownership.\n","createdAt":"2026-10-04T15:08:07Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5981401778","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABZJN6hA","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"[PR #10702](https://github.com/kim-em/hex-dev/pull/10702) is open at `5e22e1eff942cb83b1d21d7dfdddd04b0fa222c2`, with squash auto-merge enabled and branch retention. It is not yet counted as landed. [Required CI 37217410634](https://github.com/kim-em/hex-dev/actions/runs/37217410634) has passed the repaired benchmark-freshness gate, library/executable builds and deterministic table regeneration; conformance was running at the latest watch observation. One 120-second monitor remains live.\n\nThe exact nine-file tranche adds `Samples.run_spec`: native complete root/cell production and strict shared Boolean/quantifier evaluation agree with the original shared one-quantifier semantics at arbitrary ordered coefficient coordinates in one actual ordinary-real parent model. It retains section/sector same-point signs, selected embeddings, domain atoms and diagnostic false. Fresh comparison controls distinguish all six tags and root sections. This is a producer API, not original-source/frozen acceptance. Immediate fresh Opus review and revision findings were addressed; local builds, composed ordinary-kernel axiom guards, admission scan and complete manual render/visual checks pass.\n\nThe earlier real CI failure was the existing factor figures’ Lake freshness transition. An independently reviewed exact-blob runtime-neutral exemption repairs that transition without editing measurements, checker, workflow or caps. The entire failed figure step passes locally with CI-pinned Matplotlib and 114 tests; current hosted CI passed it too. [Full failure/fix record](https://github.com/kim-em/hex-dev/pull/10702#issuecomment-5982249205) preserves the failure and source supersessions.\n\nI refreshed #10633/#10634 and the current owner PRs. #10671/#10694/#10699/#10701 remain open, not imported or counted as merged. The next general integration needs strict literal replay/context reconstruction and complete intermediate-key closure; [the precise current consumer boundary is reported on #10377](https://github.com/kim-em/hex-dev/issues/10377#issuecomment-5982300133). General all-live enlargement and arbitrary-depth joint selected-root/successive-infinitesimal ordinary-real realization also remain owner gates. The recorded degree-eight frontend certification gap and full algebraic accepted-certificate completeness remain open. Existing ordinary roots/sample laws are already consumed; unrelated Phase-4 measurements are not start gates.\n\n#10358 stays open and the full implementation goal stays active. No new issue, downstream worker, owner proof or protected roadmap edit was introduced. Exact new landed artifacts will be recorded after green merge; partial delivery does not close the issue.\n","createdAt":"2026-10-04T17:01:22Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5982354052","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABZKEfQg","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Merged [PR #10702](https://github.com/kim-em/hex-dev/pull/10702), squash commit `965832c621b15d8a88ace77b2978b2d4fa55ba8e`, reviewed head `5e22e1eff942cb83b1d21d7dfdddd04b0fa222c2`. [Required CI 37217410634](https://github.com/kim-em/hex-dev/actions/runs/37217410634) completed successfully. Squash auto-merge retained `issue-10358`; the immediate fresh Opus review and revision findings were addressed.\n\nExact landed artifacts:\n\n- `adapters/HexRCF/RealCoefficients/Samples.lean`: source-level section, sector and cell laws plus `run_spec`, `run_total` and `run_true` for the existing shared one-quantifier syntax. All ordered coefficient coordinates belong to one native parent with an actual ordinary-real `Model`. Production specializes once and strictly folds actual complete cells through the shared Boolean evaluator. The whole sign vector uses the same real point and selected embedding. This is native production, not a frozen certificate or complete frontend acceptance API.\n- `conformance/HexRCF/Samples.lean` and the `TowerSamples.lean` integration: genuine selected positive/negative sqrt2, distinct ordered coordinates, false verdicts, common/repeated/zero/leading-cancelled roots, all comparisons and Boolean traversal, half-open/equal/reversed domains. Constant signs -1/0/+1 distinguish all six comparison tags for both quantifiers; squared-root controls exercise exact sections. Eight composed ordinary-kernel axiom guards have only the three standard logical axioms. Raw row length probes do not authenticate evidence.\n- Optional umbrella/default Lake roots, `HexManual/Chapters/HexRCF.lean`, `HexRCF/README.md` and `reports/hexrcf-adapter-evidence.md`: public API examples, exact shared interpretation and explicit producer/frozen/frontend limits. The complete manual rendered successfully and received desktop/narrow visual inspection. No base umbrella family import or new executable benchmark was added.\n- `scripts/bench/proof_only_runtime_exemptions/lakefile-native-samples-d6ea39ca-0ed2fdd4.json`: exact reviewed runtime-neutral Lake blob transition. The real earlier CI freshness failure and cancelled intermediate head remain recorded. Full local repair verification used the CI-pinned plotting dependency and passed all 114 tests in the previously failing figure step. No scientific sample, checker, workflow, cap or measurement selection was changed. Pre-existing parser/import-coverage findings were reported separately to #10331.\n\n#10358 remains open. General frozen literal context/root/sign acceptance, complete intermediate-key packing and context reconstruction, executable all-live enlargement assembly, and one ordinary real assignment for the entire arbitrary-depth finite conjunction of nested selected roots AND successive infinitesimals remain required. Generic frontend/common-field certification still includes the recorded degree-eight witness-language gap, and full algebraic accepted-certificate completeness is not proved by this producer API. Current named-constant scope is caller registrations with certified finite successes, not bundled analytic providers or joint-independence assumptions.\n\nExisting owner root/order/sample laws and the merged dependency codec are available and consumed. The merged #10693 (`77ecc20bfc99ea7e6b11ac00cd64aa31b42ed919`) integer-only kernel replay experiment uses already validated contexts and certified facts; it does not supply generic context reconstruction, automatic intermediate-key collection or the final public strict compiled reader. Open owner follow-ups are not treated as merged; their actual APIs will be consumed as they land without waiting for unrelated Phase-4 measurements. No owner proof, new issue or downstream worker was launched. #10331 retains dispatch ownership; a partial merge does not complete the full goal.\n","createdAt":"2026-10-04T18:50:49Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5983248194","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABZKwNCQ","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Continuing #10358, not reporting completion. Existing PR [#10706](https://github.com/kim-em/hex-dev/pull/10706) now has head `1bb57322da6138e71c206a1820577ad084c331a6`: caller bounds compose with checked algebraic enclosures, with preparation-local proof reuse and original guard preflight. The immediate post-opening fresh Opus review and revision review found no soundness blocker; verified concerns were addressed on the same PR. A final focused review and [CI 37231298366](https://github.com/kim-em/hex-dev/actions/runs/37231298366) are running. No artifacts from this PR are claimed as landed yet. Earlier CI heads were superseded by substantive revisions and cancelled.\n\nLocal strengthened mixed controls pass 10,775 Lake jobs: ten actual tactic proofs (including normalized and negative selected-field values), eleven complete ordinary axiom guards, deterministic exact frontend markers, wrong certificate bounds/literals, runtime-safe refusal assertions, exact singleton sqrt4 recognition, public fresh kernel acceptance, and both closed-division and normalized-inverse guard-proof reuse. The preceding default adapter/manual build passed 11,370 jobs; complete manual render passed 13,397 jobs; 306 source cones / 1,094 local modules passed the admission audit. Standard DAG/umbrella, copyright, freshness and diff checks passed. The small final contract tightening is being rebuilt.\n\nIndependent source-conversion work also progresses: an external Lake-built prototype identifies checked positive selected roots of `denominator * X^n - numerator` with positive rational-root aliases. Its full theorem axiom inventory contains only the standard three. A separate recognizer prototype passed 10,703 Lake jobs for rational square/cube/higher roots, rejects negative bases and nonreciprocal exponents, and enforces the existing shared exponent budget. These are prototypes, not landed tactic support; current unsupported sqrt(1/2) regression remains accurate.\n\nThe complete issue remains open. General frozen context/root/sign replay, automatic intermediate-key binding/context reconstruction, all-live enlargement, arbitrary-depth finite joint infinitesimal realization, general common-field certification and accepted-certificate algebraic completeness still require their actual owner interfaces and adapter integration. Refreshed #10671/#10694/#10699/#10701 remain open and are not counted as merged. Existing #10633/#10634 interval/index/window/quotation/normalization work and retained measurements are preserved; no estimated general speedup is asserted. No new issue, owner proof or downstream worker was created. #10331 retains dispatch ownership.\n","createdAt":"2026-10-04T20:14:52Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5983964425","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABZLUjog","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Continuing the full #10358 objective. PR #10706 remains on reviewed remote head `1bb57322da6138e71c206a1820577ad084c331a6`; its final fresh Opus review found no blocking concern. Required CI 37231298366 passed build, architecture, manual and benchmark smoke and is still running oracle/BZ checks. Nothing from this PR is counted as landed yet, and its remote head has not been changed by the next tranche.\n\nIndependent source conversion is now committed locally at `a91ae75084`: positive rational square/cube/higher roots are authenticated against `den * X^n - num` and their selected real embedding. Real-power denominators normalize to closed inverses before shared integer reification. Fourteen actual tactic proofs include a further root over the coefficient field, guarded cube division, half-open guards, both alias orientations, and a constructor-wrapped rational base. Mixed caller π/rational-root proof and a public cube-root enclosure also pass; complete axiom guards use only the standard three. Internal zero-divisor refusal tests preserve the existing pending-source API and supported syntax boundary. A fresh pre-PR Opus review's verified findings were addressed. The eventual PR still requires an immediate fresh post-opening review.\n\nThe final original-base compatibility/manual build passed 11,380 Lake jobs; full manual render passed 13,397 jobs, with actual desktop/narrow inspection. Current upstream `c0ccea2e82673ad06bd20a727bdab4ccb44b0e83` has been merged locally at `b6b9347d92d2b44630591b00abcbb9de9afa4690`; affected current-main builds and the admission audit are running. The exact factor Lake exemption was rebound to the merged full blob after checking the full diff and import/ownership implications; factor and graph freshness checks pass. No new PR is opened while #10706 is still pending.\n\nReadiness has changed: #10671 merged as `76ca6620e891b2cb8b991360fd2235db2bf75eb2` (transport of retained checked contexts across equal arithmetic operations); #10694 merged as `c37e5852661870525b6f6b76bff701a39db3e827` (one real realization of a checked selected root over two successive infinitesimals with a finite requested coefficient/sign family). Main also contains #10665 at `12c267c47a` with coherent `Shared.Model.collect?`/gather and actual cached rebuild laws. These landed interfaces are now available for inspection and subsequent adapter composition. Their precise scopes must be retained: operation transport is not byte reconstruction or strict replay; two-infinitesimal realization is not arbitrary interleaved tower induction; shared gathering still needs the corresponding model and coefficient authentication. Open #10699/#10701 are not counted as merged.\n\nGeneral frozen context/root/sign checking, automatic intermediate-key binding and strict arithmetic replay, arbitrary-depth finite joint selected-root/infinitesimal realization, generic frontend certification and accepted algebraic-certificate completeness remain incomplete. #10358 stays open. #10633/#10634 controls and retained evidence are preserved. No owner proof, new issue or downstream worker was created; #10331 retains dispatch ownership.\n","createdAt":"2026-10-04T21:26:08Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5984560034","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABZLjeew","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Merged [PR #10706](https://github.com/kim-em/hex-dev/pull/10706), squash `3ddb236b732f9b3cfad6b4c8abbda4faf6c5c6aa`, reviewed head `1bb57322da6138e71c206a1820577ad084c331a6`. [Required CI 37231298366](https://github.com/kim-em/hex-dev/actions/runs/37231298366) completed successfully, including build, conformance, architecture, manual, benchmark smoke and oracle/BZ gates. The pre-enabled `gh pr merge --squash --auto` retained `issue-10358`. Immediate fresh post-opening Opus review and substantive revision findings were addressed; the final focused review had no blocking concern.\n\nExact landed artifacts:\n\n- `HexRCF/Reify.lean`: public typed rational-coefficient recognition, preserving the base rational path, closed-source equality evidence and caller metavariable state. The published base umbrella remains independent of the real-closure family.\n- `adapters/HexRCF/RealCoefficients/AlgebraicBounds.lean` and `Finite.lean`: caller bounds compose with supported unregistered algebraic leaves. Native coefficient/root approximation proposes endpoints; existing ordinary literal replay proves containment. Exact rational leaves retain singleton bounds. Preparation-local proof reuse binds the exact source and original guard; replay never refines or searches. Public enclosure proofs are checked against their literal original target before acceptance.\n- `conformance/HexRCF/MixedConstants.lean`: ten actual tactic proofs and eleven complete standard-axiom guards, selected/normalized/negative-field leaves, coherent and inconsistent bound forgeries, public fresh kernel acceptance, completed enclosure before false-sentence refusal, state restoration and guard-proof reuse for both closed division and normalized inverse coefficients. Runtime interruptions cannot satisfy refusal assertions. The changed unsupported-rational-root control is addressed by the next tranche, not claimed as part of this merge.\n- Optional umbrella/default Lake roots, existing manual chapter, README and evidence inventory: exact APIs, runnable mixed examples, original-divisor obligations and bounded finite-search limits. Complete manual rendering and desktop/narrow visual checks passed. Exact full-blob factor Lake freshness exemption retains its inspected import/ownership/link argument and previously reported checker-coverage limitations; no measurements, algorithms, checks, caps or CI jobs were changed.\n\n#10358 remains open and the complete goal remains active. Positive rational-root source conversion and native gathering of independent coefficient owners are implemented locally and being prepared for the next Refs PR. Actual #10665/#10671/#10694 owner artifacts are now available and consumed within their exact scope. General frozen context/root/sign reconstruction, complete intermediate-key binding and strict replay, arbitrary-depth finite joint algebraic/infinitesimal realization, generic frontend certification and accepted algebraic-certificate completeness remain incomplete. Open #10699/#10701 are not counted as merged. #10633/#10634 controls and retained evidence are preserved, with no estimated general speedup asserted. No new issue, owner proof or downstream worker was launched; #10331 retains dispatch ownership.\n","createdAt":"2026-10-04T21:54:22Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5984804475","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABZNxZfQ","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"PR [#10714](https://github.com/kim-em/hex-dev/pull/10714) is on `3bacd4ba504bc442750916eed8290c24fa2e6dcf`, with squash auto-merge enabled without branch deletion. Fresh final Opus review on that exact head found no substantive blocker. Required [CI 37262914698](https://github.com/kim-em/hex-dev/actions/runs/37262914698) is still running; this head is not counted as landed.\n\nThe final guard fix permits shared admission only through arithmetic operand positions actually bounded by the shared reader. Kernel-typed beta-redex fixtures in implicit type/instance arguments demonstrate that cheap outer arithmetic cannot hide a separately oversized original guard. Every original zero check remains in source order; the priority probe restores its temporary state, and unsupported syntax is distinguished structurally from terminal failures. The review's implicit-argument resource-bypass finding is fixed.\n\nExact-head focused root/mixed checks pass 10,822 Lake jobs. All 42 affected conformance modules, default adapter, handlers and manual chapter pass 11,462; full manual render passes 13,444. The 330-cone / 1,143-module source audit plus unchanged-import committed-delta scan reject admissions and native_decide. DAG, copyright, source-length, relative-link, factor/graph freshness and diff checks pass. No new scientific measurement is claimed.\n\nIndependent source-authentication work has ordinary-kernel prototypes for frozen nonnegative root selection and for identifying the native-proposed selected base with the original compiled algebraic expression, including `3 + sqrt 2`, cancelled zero and `1/(4 + sqrt 2)`. Fresh theorem axiom guards permit only the three standard logical axioms and transitively exclude FieldBuild/FieldRuntime producer dependencies. These remain prototypes, not landed general tactic support.\n\n#10358 remains open. General strict frozen replay and intermediate/context binding, all-live enlargement assembly, arbitrary-depth joint selected-root/infinitesimal realization, general common-field certification, algebraic-base source conversion and accepted-certificate completeness remain. The direct-realization owner boundary is recorded separately in [#10331](https://github.com/kim-em/hex-dev/issues/10331#issuecomment-5987323539); independent adapter work continues.","createdAt":"2026-10-05T02:35:16Z","includesCreatedEdit":true,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5987129725","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABZP2RTw","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Merged [PR #10714](https://github.com/kim-em/hex-dev/pull/10714), squash `35318e8ccab55b25e26904d7f78c4ba1de8d10d6`, reviewed head `3bacd4ba504bc442750916eed8290c24fa2e6dcf`. [Required CI 37262914698](https://github.com/kim-em/hex-dev/actions/runs/37262914698) completed successfully, including library/conformance/architecture/manual, benchmark smoke and oracle/BZ gates. The sole monitor ended on shared REST quota exhaustion; a recovered final `gh run view` verified the actual successful job, and `gh pr view` verified the merge. The pre-enabled squash auto-merge retained `issue-10358`. Fresh exact-head Opus review found no substantive blocker after verified findings were fixed.\n\nExact landed artifacts:\n\n- `adapters/HexRCF/RealCoefficients/RationalRoot.lean`, `CommonTactic.lean`, `Reify.lean`: checked positive rational square/cube/higher-root source identities and selected embeddings; real-power denominators lower to closed inverse coefficients before the shared integer formula reifier. Common-degree admission counts distinct canonical selected generators and returns typed exhaustion.\n- `Interpret.lean`, `AlgebraicBounds.lean`, `Finite.lean`: rational numerator and zero-power admission covers bases, reciprocal exponents, endpoints and original guards. Successful enclosing admission covers only the arithmetic operand positions actually bounded, excluding type/instance payloads; all original zero checks remain. Rational priority probing restores temporary state. Typed unsupported syntax is separate from terminal budget, evaluation and replay failures.\n- `Gather.lean`: native owner gathering composes with shared specialization and ordinary cell semantics, retaining selected embeddings and coefficient order. This is production/semantics, not general frozen replay.\n- `conformance/HexRCF/RationalRoots.lean`, `MixedConstants.lean`, `Gather.lean`, `NormalizedCoefficients.lean`: 21 rational-root tactic proofs with ordinary axiom guards, inverse/constructor/type/metadata controls, wrong aliases, original divisors, terminal false and deterministic state/budget behavior; kernel-typed implicit payload fixtures prevent resource bypass; native gathering covers independent roots, repeated owners, cancelled atoms and further roots.\n- Optional umbrella/default Lake roots, existing manual/README/evidence and the exact inspected Lake freshness exemption. Local exact-head affected build passed 11,462 jobs; full manual render 13,444 with actual desktop/narrow inspection. No new scientific measurement or owner proof was claimed.\n\nThe next algebraic-base source tranche is committed locally at `acb01d9005` and integrated with current main at `b61704ee0bdfad8d6049019148da237e8c1ed455`; it is not yet pushed or landed. It adds ordinary frozen base/power/branch authentication to the same `rcf`, reuses compiled native base coordinates, admits degree before native root construction, and gives typed negative-base refusal. Nine theorem axiom guards and strict wrong-positive-conjugate, exact guard, rollback, failure and shared-anchor controls pass; current-main broad validation is running. Independent preflight Opus concerns were addressed; the next PR still requires immediate fresh post-opening review.\n\nNew actual owner artifact [#10731](https://github.com/kim-em/hex-dev/pull/10731), squash `97eb000f92bb0d20793fdb5629e9516f3619e233`, supplies finite `NodeData`/`ReplayData`/`DescriptorData`/`DerivativeData` transport and same-root selected signs without universal closure. This resolves the old universal-closure API barrier. Constructing those reached arithmetic premises from accepted tower Γ remains required. Main also contains the owner's #10724 conversion and #10711 enlargement results. Upstream #10730's deliberate proof-probe pruning is preserved.\n\n#10358 remains open. General strict frozen reconstruction/intermediate/context binding, all-live assembly, arbitrary-depth whole joint selected-root/infinitesimal realization, general common-field witness coverage and accepted algebraic-certificate completeness remain incomplete. Finite caller-bound composition with the newly supported algebraic-base aliases is also a follow-up obligation; this exact-source tranche does not silently claim that integration. #10633/#10634 artifacts and retained evidence remain preserved. No new issue, downstream worker, duplicated owner proof or authored AGENTS/PLAN change; #10331 retains dispatch ownership.\n","createdAt":"2026-10-05T06:29:49Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5989306703","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABZRsIBw","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Continuing #10358. [PR #10748](https://github.com/kim-em/hex-dev/pull/10748) has exact head `d0fd3533fc0e4d4dd4b919df926a00434b861ff0`, with squash auto-merge enabled **without branch deletion** after final fresh Opus review cleared substantive concerns. [CI 37282648142](https://github.com/kim-em/hex-dev/actions/runs/37282648142) is still running through one interval-120 monitor. This PR is not counted as landed.\n\nReview revisions now retain one authenticated-base cache throughout recursive preparation, defer irreducibility to the actual common polynomial, reuse accepted sign-table projections, preserve precise unsupported subjects, and keep normalization/budget/provider/replay failures terminal. Thirteen actual tactic proofs and controls for same-polynomial wrong positive conjugates, original guards, cache degree admission, negative-base decline and full caller restoration pass. Exact-head affected build (11,472 jobs), full manual render (13,462), admission/DAG/lint/freshness/links and desktop/narrow inspection pass.\n\nIndependent finite-bound follow-up is implemented locally and **not pushed into the reviewed PR**. Registered π/e bounds compose with authenticated `sqrt(sqrt 2)`, `sqrt(3 + sqrt 2)`, `sqrt(1/(4 + sqrt 2))`, and the mixed divisor `π - sqrt(sqrt 2)`. Four actual `rcf` proofs have complete standard-axiom guards, checked base/root/cell markers and native-producer exclusions. Public original containment proofs, zero divisors under zero multiplication and empty domains, unresolved mixed guards, exact degree exhaustion, missing cached proof declarations, completed false preparation and rollback controls pass. All 41 extension conformance modules/default adapter/handlers/manual pass (11,469 jobs); separate rational checks pass (9,310), full manual render passes (13,462), and four desktop/narrow images were inspected. Structural/freshness/admission and 84 relative-link checks pass. A focused preflight Opus review is running; the follow-up PR waits for #10748 to land and still needs immediate fresh post-opening review/CI.\n\nActual owner #10733 is merged and integrated. #10737 remains open and is not counted as a prerequisite. #10731 resolves the old universal-closure API barrier, but constructing the reached arithmetic/zero-packing premises from accepted tower Γ remains necessary. General strict frozen context/root/sign/intermediate reconstruction, all-live assembly, arbitrary-depth whole joint selected-root/infinitesimal real realization, general irreducibility quotation and accepted algebraic-certificate completeness remain open. #10633/#10634 controls and retained evidence are preserved; no new scientific speedup is asserted. No new issue, downstream worker, duplicate owner proof or authored AGENTS/PLAN change. #10331 retains dispatch ownership.\n","createdAt":"2026-10-05T08:53:52Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5991237639","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABZS0nQw","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Continuing #10358 on `issue-10358`. [PR #10748](https://github.com/kim-em/hex-dev/pull/10748) remains open at reviewed head `d0fd3533fc0e4d4dd4b919df926a00434b861ff0`; squash auto-merge is enabled without branch deletion. It is **not counted as landed**. The original sole interval-120 monitor terminated on shared REST quota exhaustion. After the actual Actions response reset at 10:11:26 UTC, one same-run monitor resumed. Actual [CI 37282648142](https://github.com/kim-em/hex-dev/actions/runs/37282648142) job state verifies library/conformance builds, architecture checks, the manual and benchmark smoke passed; the oracle/BZ tail and final gate remain pending.\n\nThe next complete bounded finite tranche is committed locally at `a0f80205fcd78a3e3ba92390ef760312b4b11dc3`, integrated with actual main `cc9abd3678901cc9f25e2e0c0a7bd12bc126d7c3` at local `2be9930172d9c37e52c6ebc344396b0085040ce1`, and **not pushed into the reviewed PR**. Five new actual ordinary-kernel `rcf` proofs compose caller π/e bounds with nested, shifted and guarded algebraic roots and mixed closed divisors, including a registered root subterm. Verified fresh preflight review findings fixed missing frozen observations for algebraic and rational subterms. Missing/stale observations, whole-subject registration precedence, rational singleton bounds, exact original containment, terminal unsupported/degree/zero-divisor failures, guard preflight under cancellation/empty domains, completed false preparation and state/cache controls are checked. Current-main all43 conformance/shared-reifier/default-adapter/handlers/manual build passes11,482 Lake jobs; full manual render passes13,485 with all four desktop/narrow images inspected. Named audit350cones1167modules, complete RCF cone146roots952modules, DAG/umbrella, copyright/length, factor/graph freshness,84 relative links and diff pass. The next Refs PR waits for #10748 to land and requires immediate fresh post-opening Opus review and exact-head CI.\n\nNew prerequisites actually landed and are integrated locally: #10737 (`cc9abd3678901cc9f25e2e0c0a7bd12bc126d7c3`) supplies eight checked predecessor FactOperations; #10735 (`7434e540ac374a85b73e96f5ea4d301edcc54c08`) supplies total selected-number-field roots with ordinary original-polynomial/multiplicity/order laws; #10743 (`f67141179ad48c0a6e26ba4133600a5f7709aea7`) supplies real-key subsequence transport under actual child laws; #10744 (`07a2c1e3704443b08d7020431ecaf1dacfa1d137`) archives96 nested clean/eager comparison arms. These supersede the previous report that #10737 was open. #10749 remains open at `919c80e679e8198c865a40ff91311fc55db0d874`, not admitted as a prerequisite. An external Lake-built source-specialization/root-semantics prototype consumes #10735, with six complete standard-three axiom guards and controls distinguishing selected cubic embeddings, repeated roots, leading cancellation and zero polynomials; this is not a shipped frozen checker or a scientific performance measurement.\n\n#10358 remains open for general strict frozen context/root/sign/intermediate reconstruction, complete reached arithmetic/zero-packing and all-live assembly, arbitrary-depth whole joint selected-root/infinitesimal real realization, generic common-field irreducibility quotation and algebraic frontend certificate acceptance/progress, and final manual/conformance/evidence attestation. Actual owner components are used within their proved scope: FactOperations are not a general reader, subsequence transport is not joint realization, and native root semantics are not frozen replay. No root/GCD/BKR/approximation search is admitted during replay. #10633/#10634 controls and retained measurements are preserved. No new issue, downstream worker, duplicate owner proof, authored AGENTS/PLAN edit or CI job; #10331 retains dispatch ownership.\n","createdAt":"2026-10-05T10:13:08Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5992425283","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABZTJKdQ","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Merged [PR #10748](https://github.com/kim-em/hex-dev/pull/10748), squash `7c0cd45e3ac5029a9fb48a53f9465ecf0ae1596d`, reviewed head `d0fd3533fc0e4d4dd4b919df926a00434b861ff0`. [Required CI 37282648142](https://github.com/kim-em/hex-dev/actions/runs/37282648142) completed successfully, including libraries, conformance, architecture, manual, benchmark smoke, all oracles/BZ and the final fail-closed gate. Actual final job state is `completed/success`; `gh pr view` verifies `MERGED` at 10:31:32 UTC. The pre-enabled `gh pr merge --squash --auto` used no `--delete-branch`. Immediate fresh post-opening Opus review and follow-up concerns were addressed; final fresh exact-head review had no substantive blocker.\n\nExact landed artifacts:\n\n- `adapters/HexRCF/RealCoefficients/AlgebraicRoot.lean` and `CommonPresentation.lean`: ordinary checked original-base equality, selected embedding, power equation and nonnegative branch evidence authenticate roots of supported closed algebraic bases. Checks reject wrong bases, wrong conjugates (including a different positive conjugate of the same polynomial), zero degree and missing sign evidence. Native proposals are not proof evidence.\n- `CommonTactic.lean`: degree admission precedes native root construction; one authenticated-base cache spans recursive preparation, revalidates hit admission and retains exact proof/source bindings. General root identities defer irreducibility to the actual common polynomial. Accepted sign-table evidence is projected without redundant replay. Precise unsupported subterms and typed unsupported declines remain distinct from terminal budget, normalization, evaluation and replay failures; original divisor obligations remain intact.\n- `conformance/HexRCF/AlgebraicRoots.lean`, `RationalRoots.lean`, `NormalizedCoefficients.lean`: thirteen new actual `rcf` theorem proofs cover nested/shifted/cancelled/guarded roots, reciprocal natural degrees, negative degree-one bases, checked Hex bases, rational-valued bases and recursive cache reuse. Complete axiom inventories admit only the standard three and exclude native producer dependencies. Exact guard, selected-branch, cache-degree, false verdict, unsupported-source, decline and caller-state controls preserve rational compatibility. The missing cached-proof regression belongs to the next tranche, not this merge.\n- Optional umbrella/default conformance roots, existing manual chapter, README and evidence inventory: retained earlier examples plus runnable algebraic-base goals and accurate source/authentication/bounded-search limits. Exact-head affected validation passed11,472 Lake jobs; full manual render13,462 with actual desktop/narrow inspection; admission/DAG/lint/freshness/84relative-link/diff checks passed. No new scientific measurement or owner proof is claimed.\n\nThe finite caller-bound follow-up is committed at `a0f80205fcd78a3e3ba92390ef760312b4b11dc3`. It is now integrated with landed main at `f537ededceffd14129dfc5ec214a24338dc4a952`, with a clean nine-file finite-only delta (335insertions/22deletions). Squash-history merge conflicts were inspected: the four affected RCF files differed only by that validated follow-up, which was retained. No downstream owner changes were overwritten. Current exact-main validation is running before its Refs PR; immediate fresh post-opening Opus/CI is required. Five actual mixed π/e/algebraic-root proofs and the verified nested-provider observation fixes are not counted as landed yet.\n\n#10358 stays open. Actual #10735/#10737/#10743/#10744 owner components are merged and integrated within their proved scopes; main now additionally contains #10752 (`66a25b7db6`) number-field common-presentation conformance. #10749 remains unmerged in the latest readiness read. General strict frozen context/root/sign/intermediate reconstruction, complete reached arithmetic/zero-packing and all-live assembly, arbitrary-depth whole joint selected-root/infinitesimal real realization, generic irreducibility quotation, algebraic frontend certificate acceptance/progress and final complete evidence remain incomplete. No search/refinement is allowed in replay, no π/e independence is inferred, and fixed-field soundness is not frontend completeness. #10633/#10634 controls and retained measurements remain. No new issue, downstream worker, duplicated owner proof, authored AGENTS/PLAN edit or CI job; #10331 owns dispatch.\n","createdAt":"2026-10-05T10:35:37Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5992761973","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABZUJnSA","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"#10756 is merged at `f9ab615bbca204924ea448254f5780e353425958` (reviewed head `2778ba3ab234afede2eb73096ed4dfa426c578ef`). CI run [37300748800](https://github.com/kim-em/hex-dev/actions/runs/37300748800), job `111732732866`, completed successfully with all build, conformance, architecture, manual, benchmark-smoke and oracle gates. Fresh isolated Claude Opus reviews were obtained immediately after opening and on the final revised head; no blocking finding remains. Squash auto-merge was used without branch deletion.\n\nLanded artifacts: `AlgebraicBounds.enclose` authenticates general closed algebraic root sources before proposing bounds and kernel-checks containment of the exact original expression; `Finite` retains whole-subject registration precedence and records registrations observed inside algebraic/rational operands. Frozen checks bind the actual registration subjects, versions and results without rerunning their providers. Five new ordinary-kernel mixed-constant proofs cover nested, shifted and guarded algebraic bases, a nested divisor and registration of an inner algebraic base. Each has the same complete three-axiom inventory and fifteen producer-exclusion checks. Regressions cover original zero-divisor guards, empty domains, bounded exhaustion, unsupported roots of registered constants, missing/stale observations, and registration precedence. The existing manual retains its examples and adds the runnable cases and persistent-registration semantics. All 43 affected RCF modules/default adapter/handlers/shared reifier/manual passed locally (11,482 build jobs); full manual rendering passed (13,485 jobs). No speed improvement is claimed; duplicate source authentication remains a bounded optimization opportunity.\n\n#10358 remains open. Complete generic frozen context/root/sign/intermediate reconstruction, reached arithmetic and zero-packing/all-live assembly, whole finite joint selected-root/infinitesimal realization, generic algebraic frontend certificate acceptance/progress, and final complete conformance/manual/evidence are still required. Actual newly merged #10750/#10751 APIs are being consumed within their proved scopes; #10751 now supports ordered real-key subsequences while the existing RCF wrapper still requires a prefix. This wrapper integration is independent of the outstanding generic replay/realization gates. No inferred joint independence of named constants, owner-proof duplication, new issue, downstream worker, or authored AGENTS/PLAN edit.\n","createdAt":"2026-10-05T11:48:40Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5993817928","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABZVRGGQ","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Merged [#10759](https://github.com/kim-em/hex-dev/pull/10759) at `fde678fd7e06946b6c5b9ff9efecabb7bb31e5ad`, reviewed exact head `d62296341fa6ba949c47a409fd63ac4fc20018d5`. [CI 37308039587](https://github.com/kim-em/hex-dev/actions/runs/37308039587), sole job `111756803229`, completed successfully, including conformance, architecture, manual, benchmark smoke and oracle/final gates. Fresh Opus review immediately after opening identified two evidence gaps; both were addressed. Final exact-head fresh review had no blocker. Squash auto-merge used no branch-deletion flag.\n\nExact artifacts: `adapters/HexRCF/RealCoefficients/Gather.lean` adds `gather_subsequence` using the actual #10751 owner law, retaining `gather_spec`'s prefix API. `conformance/HexRCF/Gather.lean` derives a non-prefix target `[α, β]` through actual provider registration, with the required relative-transcendence premise over the complete parent field, and obtains native formula decision production for an algebraic suffix over independently registered `[β]`. Negative ordinary-kernel theorems prove the actual `Shared.gather?` returns `none` for reversed key order and a stale provider version. All nine guarded theorem inventories use only the standard three axioms. The existing manual/README/evidence inventory distinguish these theorem checks from executed controls and native production from frozen replay. All43 affected conformance modules passed10,884 Lake jobs; revised gathering/manual passed11,438; full render passed13,489 and desktop/narrow prose was inspected. Admission354cones1171modules, DAG/umbrella, copyright/length,65relative-link and diff checks passed. No speed claim.\n\nThe next local, unpushed coverage commit `a1bc6b9106478b3498fbcb07c4e1d9ce03592f6a` proves `∀ x, x² + π − (3 + √2)^(1/3) > 0` using the mixed finite path, with all three ordinary replay markers, fifteen producer exclusions and complete ordinary-axiom audit. Zero-divisor guards inside the algebraic real-power base reject under zero multiplication and empty Ioc. Fresh preflight review confirmed the general non-rational branch and suggested an explicit `Real.rpow` guard; that test passed in a fresh module and is being integrated before the next Refs PR. It is not counted as landed.\n\nNew actual prerequisite: #10749 merged at `98cab2feb583cfcf5019f21ccef62fb309547855`, superseding stale issue comments. Its `RootReplay.readDescriptor`/`readContext`, complete decoded-subject law and exact native-reconstruction equality are integrated locally; owner reader + default adapter build passed10,843 jobs. This supplies one-level structured reconstruction with checked typed predecessor operations, not arbitrary-depth byte/catalog reconstruction or a complete reached-fact inventory.\n\n#10358 remains open for complete generic frozen context/sign/root/intermediate replay and quotation, reached arithmetic/zero-packing/all-live assembly, accepted algebraic certificate production/progress, direct whole-joint `Sample.realizeReplay`, and final complete conformance/manual/evidence. Actual open owner PRs #10755/#10757/#10762/#10754/#10758/#10764 are not counted as merged prerequisites. #10762 explicitly retains the direct accepted finite-replay realization gap. #10633/#10634 controls and retained evidence remain; no generic estimated speedups are asserted. No new issue, downstream worker, duplicated owner proof, authored AGENTS/PLAN edit or CI fan-out; #10331 owns dispatch.\n","createdAt":"2026-10-05T13:02:19Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5994989081","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABZW8D5A","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Merged [#10767](https://github.com/kim-em/hex-dev/pull/10767) at `ca7c5ee359abb173ed319c3bc5878403d9d603ff`, reviewed exact head `71f6f89ff38373c8191fc7c43c2957ceecf26aa7`. [CI 37314025599](https://github.com/kim-em/hex-dev/actions/runs/37314025599), sole job `111776135070`, completed successfully. Immediately post-opening fresh Claude Opus review had no blocker; squash auto-merge used no branch deletion.\n\nExact artifacts: `conformance/HexRCF/MixedConstants.lean` proves `∀ x : ℝ, x² + Real.pi - (3 + Real.sqrt 2)^(1/3 : ℝ) > 0` through the general non-rational algebraic-base path. The proof has all three ordinary replay markers, excludes fifteen producers and uses only the standard three axioms. Three ordinary-kernel refusal regressions preserve zero-divisor guards in a real-power base under zero multiplication, empty Ioc and explicit `Real.rpow`. `HexManual/Chapters/HexRCF.lean` preserves the preceding examples and adds the new example; `reports/hexrcf-adapter-evidence.md` records six proofs. Affected builds, full manual render with desktop/narrow inspection, admission audit (354 cones/1171 modules), DAG/umbrella, copyright/length, 65 relative links and diff checks pass. No production or performance change is claimed.\n\nThe next independent adapter composition uses the already merged `Specialize.realizeReplay`/`realizeBelow` to turn one accepted infinitesimal replay's entire ordered source-atom row, including domain guards, into an ordinary real shared-formula witness. Its semantic module builds; the packaged kernel regression is still being corrected and is not landed evidence.\n\n#10358 remains open for complete generic frozen context/sign/root/intermediate replay and quotation, reached arithmetic/zero-packing/all-live assembly, accepted algebraic certificate production/progress, whole-joint nested `Sample.realizeReplay`, and complete conformance/manual/evidence. The one-infinitesimal composition does not discharge successive infinitesimal or arbitrary nested-root realization. Actual owner PRs are consumed only once merged. #10633/#10634 retained controls/evidence remain in scope. No new issue or downstream worker was launched; #10331 owns dispatch.\n","createdAt":"2026-10-05T14:40:07Z","includesCreatedEdit":true,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5996741604","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABZZrCFQ","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"[PR #10774](https://github.com/kim-em/hex-dev/pull/10774) is merged at `c55a6ce2cde1ca82ef4bb62882c8a0642b9e2dba` after green [required CI 37334147694](https://github.com/kim-em/hex-dev/actions/runs/37334147694), sole job `111845198306`. Fresh Claude Opus review of final head `6772e8e014f9f18cc281b4230a209c7f1ccefeb1` found no remaining actionable blocker after the fixture audit was strengthened. Squash/auto merge preserved the branch.\n\nExact landed artifacts:\n\n- `adapters/HexRCF/RealCoefficients/Realization.lean`: complete source-atom constant lifting, sign agreement and `exists_real`, consuming the owner's actual `Specialize.realizeBelow`/`realizeReplay` theorem and shared whole-formula Boolean law.\n- `conformance/HexRCF/RealizationData.lean` and `Realization.lean`: frozen recursive BKR/count-one evidence for `X − (1 + ε)` produces one ordinary real witness of the complete `(1,2]` guard conjunction. Context/coefficient/query-order swaps, omitted support/children, false truth and truncated rows are controlled. All complete theorem axiom audits pass. The entire literal data definition closure, including private auxiliaries, admits only explicitly listed foreign primitives rather than namespace permissions; unlisted wrappers and certificate producers are rejected.\n- Existing optional umbrella and Lake globs, `HexManual/Chapters/HexRCF.lean`, `HexRCF/README.md`, and `reports/hexrcf-adapter-evidence.md`: public API, complete guarded example and precise scope limits. Lake builds, admission/dependency/umbrella and relative-link checks pass; full manual render was inspected at desktop/narrow widths. No performance gain is asserted.\n\n#10358 remains open. This finite success uses a fixed field with an actual ordered real embedding; frontend source/divisor authentication and original-goal transport remain separate. It does not finish general nested/successive-infinitesimal realization or generic frozen context/root/byte reconstruction. Complete accepted algebraic frontend certificates still have the documented common-field irreducibility language gap.\n\nThe next independent integration of actual merged #10755 is committed locally initially at `e70767900b`, integrated with current main at `185056f1b62259f931ec5315fed48d5c7fdb8130`, and refined after fresh preflight through `370e8a5099`. It passed the optional adapter/all46 RCF conformance/handler/manual build (13,576 jobs). It constructs native shared-formula decisions from original selected `RealAlgebraicNumber`/`QAdjoin` inputs and proves original-valuation preservation. The strengthened several-real-root/non-monic/rational/conjugate-coordinate controls also pass; the revised optional/conformance/manual build passes 13,528 jobs and the final render has been inspected at desktop/narrow widths. It is not yet landed. The existing #10378 owner has the precise direct accepted finite-Γ API request; coordinator #10331 retains downstream dispatch.\n","createdAt":"2026-10-05T17:27:03Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5999608341","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABZbznuQ","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"[PR #10777](https://github.com/kim-em/hex-dev/pull/10777) merged at `766ff7e1f445316f448aad79878f3c91ccdf079a`, reviewed head `abed350584be2dbfd8d37761d4b8660ddb0dd5c7`. [Required CI 37354105286](https://github.com/kim-em/hex-dev/actions/runs/37354105286), sole job `111912287124`, completed successfully. Fresh Claude Opus review immediately after opening and of the final revised head found no remaining blocker. Squash/auto merge preserved the branch.\n\nExact landed artifacts:\n\n- `adapters/HexRCF/RealCoefficients/NumberField.lean`: `runWith` reuses an actual native presentation of the original selected `RealAlgebraicNumber` and evaluates original `QAdjoin` coordinates. `run` constructs that presentation through the merged owner factory. `runWith_spec`, `run_spec`, `run_coefficients`, `run_total` and `run_true` preserve the original selected real valuation, including the existing frontend `Coefficients.ofField` conversion. No new number-field representation or owner arithmetic is introduced.\n- `conformance/HexRCF/NumberField.lean`: positive/negative quadratic embeddings, all three real embeddings of a cubic, primitive non-monic and rational generators, degree-two coordinates in a cubic field, coordinate-order reversal, repeated/common-root conditions, all six comparisons including variable-dependent disequality, both quantifiers, Boolean forms, leading cancellation, half-open/equal/reversed domains and reuse of one presentation. Fresh semantic and coefficient-interface theorem audits have only the standard three axioms. Owner-factory/packing body checks are explicitly refactor guards, separate from axiom audits.\n- Optional umbrella/default Lake and conformance roots, existing rcf manual chapter, README and evidence inventory: runnable direct API examples and precise distinction between native diagnostic production and frozen replay/quoted proofs. Exact-main adapter/conformance/owner/manual build passed 13,529 Lake jobs; sequential full render passed 13,527. Actual final desktop/narrow proof and scope views were inspected. Admission audit (361 cones/1187 modules), DAG/umbrella, source checks, 70 relative links and diff checks passed. No speed claim is made.\n\n#10358 remains open. This Stage-2 direct API tranche is not generic frontend certificate acceptance or frozen quotation. Remaining obligations include complete frozen context/root/sign/intermediate/byte reconstruction and quotation, reached arithmetic and zero-packing/all-live assembly, the documented common-field irreducibility quotation gap, algebraic-only accepted certificate production/progress, direct complete finite joint nested/successive-infinitesimal realization, and final complete conformance/manual/evidence. The existing #10378 owner has the precise finite-Γ API request; #10331 owns downstream dispatch. #10633/#10634 controls and retained evidence remain in scope.\n\nThe next independent external prototype has ordinary-kernel row-domain/truth/false/total/zero-divisor and supplied-operation agreement laws; a frozen rational-predecessor descriptor and restored coefficient are proved to denote `Real.sqrt 2`. Its 22 literal lower sign packets now pass complete kernel and axiom checking using symbolic reader applications. The first expanded-dependent-fact quotation attempts exceeded 23–32 GB and were stopped; all unfinished observations were retained. No audit was removed. Final upper-root collection currently reports an unproved reduction without a missing-fact boundary, so this prototype is not shipped, accepted replay evidence, or completion. It is being corrected using actual merged APIs. No new issue, downstream worker, owner proof duplication, AGENTS/PLAN edit or CI fan-out.\n","createdAt":"2026-10-05T19:51:00Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-6001846201","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABZcWZew","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Continuing #10358 after merged #10777; no new issue or PR has been opened.\n\nThe external, unshipped native selected-field prototype now obtains ordinary-kernel acceptance of the upper root `X² − α` on `(1,2)`, with the original coefficient proved to denote `α = Real.sqrt 2`. The full parent identity initially blocked reduction at `mixHash`; a checked one-leaf serialization identity and an explicit nondependent Boolean binding wrapper preserve the exact identity without relying on compiled hashes.\n\nThe actual owner producer demanded exactly two further lower-field signs: coordinates `[1,-1]` with sign `-1` and `[4,-1]` with sign `1`. Those packets are now frozen. Replay uses 22 literal packets plus these two intermediates, `KernelReplay.collectMany` with zero fuel and no producer callback, and returns true with zero unresolved requests. `rootAccepted` and the complete decoded-subject law audit to only `propext`, `Classical.choice`, and `Quot.sound`. No audit was removed. An expensive compact-registration trial exhausted its existing heartbeat limit and is retained, not adopted. Typed-root recovery also exposed a missing compiled-IR registration for the generated inventory; compiling that already kernel-checked definition fixes the closed-value compiler failure.\n\nThis is not landed extension evidence or completion. The next step is frozen joint source-row acceptance and an original-goal proof, followed by refusals, integration, review and CI. The existing #10378 owner's [precise response](https://github.com/kim-em/hex-dev/issues/10378#issuecomment-6001171920) confirms that `Transport.Finite.DescriptorData`/`ReplayData` currently consume supplied reached arithmetic relations; they do not construct the missing accepted finite-Γ exporter. #10762 does not fill that gate. Full generic replay/quotation, accepted algebraic progress, joint nested/successive-infinitesimal realization and complete conformance/manual/evidence remain open. Independent ordinary-root work continues; #10331 retains dispatch.\n","createdAt":"2026-10-05T20:33:52Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-6002415995","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABZgCbcw","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Continuing the existing #10358 branch; no new issue or downstream worker has been launched.\n\n[#10799](https://github.com/kim-em/hex-dev/pull/10799) is open with `Refs`, at reviewed head `44aef1ead97ba32f1032009be223a292de7894f9`. Fresh post-opening and revised-head Claude Opus reviews are complete, with the diagnostic guard, redundant root checking and false-to-true forgery findings addressed. Squash auto-merge is enabled without branch deletion. Required [CI 37386882698](https://github.com/kim-em/hex-dev/actions/runs/37386882698), sole job `112022299030`, has passed the library build and is running conformance; this PR is not counted as landed yet.\n\nThe next external, unshipped byte composition now checks the actual 38,990-byte owner JSON encoding of the frozen selected-field row. An ordinary-kernel writer binding and lexical-limit proof feed the owner's `parse_write` and packet decoder. It proves the original statement `∃ x : ℝ, x² = Real.sqrt 2 ∧ 1 < x ∧ x < 2`, an accepted false row/counterexample and a wrong-coefficient refusal, with only standard logical axioms. Compiled controls pass for malformed bytes, byte/depth/digit limits, stale versions, crossed contexts and zero-divisor precedence over parsing. Decoder errors remain unchanged and unclassified; they never select another solver.\n\nA retained diagnostic profile identified the lexical-bound proof as the expensive part (252 seconds of kernel type checking in that run); decoding and source composition were each under a second. Its build is being isolated from Mathlib/real semantics, and the complete constructor-data closure audit is being finished before integration. These are operational observations, not a scientific speedup or full-extension completeness claim.\n\n#10358 remains open. Full generic context/root/row quotation, accepted algebraic production/progress, the documented common-field quotation gap, direct accepted finite-joint nested/successive-infinitesimal realization and complete evidence remain outstanding. The existing #10378 owner's [finite-Γ API gap](https://github.com/kim-em/hex-dev/issues/10378#issuecomment-6001171920) is still precise: supplied reached arithmetic relations are not an exporter from accepted Γ. #10792 and #10786 are still open and are not counted as merged APIs. Independent byte work continues; #10331 retains dispatch. #10633/#10634's merged controls and retained measurement limits remain incorporated.\n","createdAt":"2026-10-06T00:17:46Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-6006283123","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABZhUAng","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Merged [#10799](https://github.com/kim-em/hex-dev/pull/10799) at `d1fdcaad45b493507ba360012ece14c2cc84f483` after green [required CI 37386882698](https://github.com/kim-em/hex-dev/actions/runs/37386882698), sole job `112022299030`, on reviewed head `44aef1ead97ba32f1032009be223a292de7894f9`. Fresh Claude Opus review immediately after opening and at the revised head found no remaining blocker after the diagnostic-guard, redundant-root-check and false-to-true forgery findings were addressed. Squash/auto merge preserved the branch.\n\nExact landed artifacts:\n\n- `adapters/HexRCF/RealCoefficients/SelectedFormula.lean`: checked literal row replay in an original selected field, eight supplied-operation agreement, supplied-divisor validity, truth at the same ordinary point, existential witness and pointwise counterexample laws.\n- The 22 `conformance/HexRCF/SelectedRoot/` modules: actual source proof `∃ x : ℝ, x² = Real.sqrt 2 ∧ 1 < x ∧ x < 2` through a reconstructed positive α with α²=2 and the further root of X²−α. All 37 scalar-packet acceptances, three upper-data parsers, upper-root/row checks and five collected refusals have active, nonempty kernel diagnostics excluding listed root/sign producers, independently of zero unresolved requests. Parent construction and separate source/codec controls remain ordinary-kernel/axiom checked outside that diagnostic guard. Both directions of the forged-sign control, wrong coefficient, reversed keys, stale/crossed contexts, original zero divisor and missing arithmetic inventory are controlled.\n- `conformance-fixtures/HexRCF/selected-root.json` and `scripts/rcf/selected_literals.py`: exact frozen source/evidence and deterministic constructor regeneration checked in the existing CI job. Complete literal-definition closures and theorem axiom inventories are audited.\n- Optional umbrella/default Lake globs, existing rcf manual/README and `reports/hexrcf-selected-root.md`/adapter inventory: direct API, original proof, exact scope and retained operational captures. Revised targeted fixture build passed in 140.75 s; largest-child RSS 9,258,528 KiB. Full affected/manual/render and DAG/umbrella/admission/relative-link/source checks passed. No scientific speedup, DAG-sharing gain or full-extension completion is claimed.\n\n#10358 stays open. This is one ordinary selected-root row, conditional on the supplied faithful parent model and authenticated source values; false is pointwise, not a false existential decision. Generic frozen context/root/row quotation, reached arithmetic/zero-packing/all-live assembly, the common-field quotation gap, algebraic accepted-certificate production/progress, direct complete finite-joint nested/successive-infinitesimal realization and complete evidence remain outstanding. The existing #10378 owner has the precise accepted finite-Γ exporter request; #10331 owns dispatch. #10633/#10634 controls and retained measurement limits remain incorporated.\n\nThe next byte tranche is prepared locally, with a proved binding of the actual 38,990-byte owner encoding, lexical-limit proof, original-goal/false/wrong-coefficient proofs and malformed/limit/stale/context/zero-precedence controls. Its initial ordinary-kernel, axiom, complete 167-definition literal-closure and affected/manual checks pass; current preflight refinements strengthen the zero-budget control, enforce the exact closure count and document that lexical limits do not bound compiled native arithmetic. Those refinements are under revalidation. It is not landed yet and does not supply arbitrary context-catalog reconstruction or full progress.\n\nOwner [#10792](https://github.com/kim-em/hex-dev/pull/10792) has now merged at `bf641995677fc46c12547b3d6bc6d73727dc883b`. Its original-packing authentication and dependency-order APIs will be consumed where applicable; its simultaneous realization still requires reached lower finite premises and is not the completed recursive finite-Γ exporter. #10786 remains open.\n","createdAt":"2026-10-06T01:45:00Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-6007619742","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABZiu0wA","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Merged [#10820](https://github.com/kim-em/hex-dev/pull/10820) at `3be3cb99ff2d2a8d4188ca68dfa264b760e4ce3f` after green [required CI 37403212345](https://github.com/kim-em/hex-dev/actions/runs/37403212345), on reviewed head `1e6c8ed108d46c0f7860c4a233aa7148f0d4a2dd`. Fresh post-opening and revised-head Claude Opus reviews found no blockers. The acceptance checks independently verified all ten current source hashes against the committed head. Squash auto-merge preserved the branch.\n\nExact landed artifacts:\n\n- `adapters/HexRCF/RealCoefficients/SelectedBytes.lean`: original-divisor preflight before byte parsing, canonical and eight equal supplied-operation entrypoints, unchanged nested decoder/authentication and row results, selected-point semantics, ordinary existential witness and pointwise counterexample laws. Lexical limits do not bound coefficient arithmetic; compiled canonical operations or cached fact misses can run native production, and decoding depends on the supplied value codec. This is not a strict production-free checker for arbitrary compiled dictionaries.\n- `conformance/HexRCF/SelectedRoot/Byte{Data,Bounds,Proofs,Checks,Audit}.lean`: actual owner encoding, ordinary-kernel writer binding and exact 38,990-byte size theorem, lexical-bound theorem and actual owner parser law, original theorem `∃ x : ℝ, x² = Real.sqrt 2 ∧ 1 < x ∧ x < 2`, false/counterexample and wrong-coefficient proofs. All 167 literal-definition dependencies are checked against the explicit UInt8 primitive allowlist. Five actual acceptance proof bodies are rechecked with active, nonempty kernel diagnostics excluding the listed native producers; complete theorem axiom inventories pass. Writer/size/lexical proofs remain separate ordinary-kernel data computations. Compiled controls cover malformed/truncated input, byte/depth/digit exhaustion, stale and crossed context, zero-before-limit precedence and forged coefficient/row signs in both result layers.\n- Optional public umbrella/default Lake target and conformance globs; the existing deterministic `scripts/rcf/selected_literals.py` now regenerates the fifth byte module as well as four structured modules. The existing CI check validates exact regeneration, without another job.\n- Manual/README and `reports/hexrcf-selected-root.md`/adapter inventory: source/model obligations, pointwise false scope, compiled-fallback and lexical-limit boundaries, and seven retained build logs with independently verified digests and exact historical/current source records. The main-integration build passed 13,841 jobs, all affected RCF/rational conformance 10,992, final byte acceptance controls 10,931 and manual render 13,815. Desktop/narrow views were inspected. DAG/umbrella, admissions (375 cones/1,204 modules), copyright/file-size, 101 relative links and diff checks pass. These are acceptance/operational records, not a scientific speedup or full-extension evidence claim.\n\n#10358 remains open. This byte API concerns one supplied immutable selected-root context and a faithful ordinary real model; it does not reconstruct arbitrary context catalogs, supply full root coverage or decide a false existential sentence. Full generic frozen context/root/row quotation, all-live original-packing assembly, the common-field quotation coverage gap, algebraic accepted-certificate production/progress, complete finite-joint nested/successive-infinitesimal realization and final evidence remain outstanding. #10331 retains dispatch; no new issue or worker was launched. #10633/#10634's actual merged controls and retained measurement limits remain incorporated.\n\nThe merged #10792 original-packing APIs are consumed in the next, unshipped tranche. Its actual fixture contains 42 original row requests and an additional nonzero `X²−2` request that packs to canonical zero. All 43 packet-to-record laws, the row proof and its fresh original-goal proof pass ordinary-kernel checking; the complete 1,322-definition literal closure and actual acceptance bodies are audited. Exact missing original, literal-zero and nonzero-constant controls refuse before a Boolean verdict. Fixture, deterministic converter, five existing-target conformance globs, manual and retained logs are staged. The optional/manual build and complete audits pass; revalidation against current main is running. This work is not landed in #10820 and covers row arithmetic rather than all coefficient/packet reconstruction. The owner's finite-Gamma APIs still consume supplied reached lower relations instead of constructing the recursive accepted exporter; the precise compiled-fallback coverage question remains in the existing authorized family mailbox.\n\nOwner [#10786](https://github.com/kim-em/hex-dev/pull/10786) has merged at `099d825fef77d4df163b710027511507b31531b8`. Its actual public `Codec.descriptor`, `readDescriptor`, `readDescriptorBinding` and coverage/exact-binding proofs are now available for subsequent composition. The unchanged six-field subject still needs mathematical root replay; this is not the missing recursive finite-Gamma exporter.\n","createdAt":"2026-10-06T04:05:35Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-6009107648","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABZjMRWg","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Continuing #10358 on the existing branch. [PR #10824](https://github.com/kim-em/hex-dev/pull/10824), `Refs #10358`, is open at final reviewed head `115c1a1e4b2aa98d689b3b3ec363818be9f43b57`. Immediate post-opening, revised-head and final focused fresh Opus reviews found no blockers after the packet-binding, literal-zero and inventory-order findings were addressed. Squash auto-merge is enabled without branch deletion; [CI 37414836064](https://github.com/kim-em/hex-dev/actions/runs/37414836064), sole job `112111130328`, is running. This tranche is not landed yet.\n\nIts exact artifacts are the five `SelectedRoot/Packing*.lean` conformance modules, the 43-record `selected-packing.json` fixture, deterministic converter/existing Lake globs, manual and `reports/hexrcf-selected-packing.md`. All 43 packet-to-record laws, actual row/refusal bodies and complete 1,322-definition literal closure pass kernel/axiom audits. The actual inventory body is checked against the 43 named records in order. Missing original −α² with reduced −2 retained, missing literal zero with a different canonical-zero record retained, missing nonzero constant and a swapped joint graph with equal scalar fields are controlled. The nonzero original X²−2 packs to canonical zero. The full affected 81-target adapter/RCF/manual build passes 13,913 jobs; source-distinct strengthened controls pass 13,851 and 10,857; final manual renders pass 13,828. Eleven retained log digests and nine committed source hashes are independently verified. Failed attempts and unpaired operational timings remain explicitly separate. No general speedup is claimed.\n\nThe inventory covers predecessor row arithmetic. Source coefficients use authenticated `Element.restore`; upper-descriptor/row-packet reconstruction still uses the scalar-fact inventories. #10358 remains open for generic frozen context/root/row assembly and quotation, full all-live assembly, common-field quotation coverage, accepted algebraic frontend production/progress, complete finite-joint nested/successive-infinitesimal realization and final evidence. The owner's actual merged catalog/root APIs are being integrated in the next local probe; it is not counted as delivered. The existing owner's #10811 inverse inventory and recursive finite-data work will be consumed when merged, without duplicating its proofs or waiting for unrelated whole-issue Phase 4 closure. #10331 retains dispatch. No new issue or worker was launched; #10633/#10634 controls and measurement limits remain incorporated.\n","createdAt":"2026-10-06T04:52:56Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-6009590106","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABZj7UmQ","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Merged [#10824](https://github.com/kim-em/hex-dev/pull/10824) at `024f6b6ca825b14e80b2b8652b7c2751f7565873` (2026-10-06 05:58:58 UTC), from reviewed head `115c1a1e4b2aa98d689b3b3ec363818be9f43b57`. [Required CI 37414836064](https://github.com/kim-em/hex-dev/actions/runs/37414836064), sole job `112111130328`, completed successfully. Immediate post-opening and subsequent fresh Opus reviews found no remaining blocker after the binding, zero, inventory-order and metadata findings were addressed. Squash auto-merge retained `issue-10358`; remote branch retention is verified.\n\nExact landed artifacts:\n\n- The five `conformance/HexRCF/SelectedRoot/Packing*.lean` modules: original packing reader, constructor data, 43 named packet-to-record laws, actual row and missing-record/swapped-joint refusals, semantic source composition and stored-body/literal/axiom audits.\n- `conformance-fixtures/HexRCF/selected-packing.json`: 43 distinct original keys (42 historical captured row records plus the original X²−2 record reducing to canonical zero), 230,192 bytes; 86 scalar/joint graphs, 171 stored nodes and 172 expanded root occurrences. This is predecessor row arithmetic, not a claim that all 42 historical records are currently demanded or that a recursive exporter is complete.\n- Deterministic packing generation and duplicate-original rejection in `scripts/rcf/selected_literals.py`, existing Lake conformance globs, the existing manual chapter, `reports/hexrcf-selected-packing.md`, evidence-table updates and `reports/data/hexrcf-selected-packing/build-context.json`. Nine committed source hashes and eleven retained log digests were independently checked.\n\nThe full affected 81-target adapter/RCF/manual build passed 13,913 jobs. Strengthened controls passed 13,851 and 10,857; final manual renders passed 13,828. All 43 read-law bodies, actual row/refusal bodies, inventory order and complete 1,322-definition literal closure are checked. Controls retain reduced −2 while omitting original −α², retain a different canonical-zero record while omitting literal zero, omit a nonzero constant, and swap a joint graph with the same scalar fields. No generic performance improvement is claimed; failed attempts and source-distinct operational observations remain separate.\n\n#10358 remains open. Source coefficients use authenticated `Element.restore`; the upper descriptor/row packet still uses scalar-fact inventories. Remaining gates include generic frozen context/root/row assembly and quotation, full all-live enlargement and packing/inverse assembly, common-field certification beyond the existing languages, accepted algebraic frontend production/progress, complete finite joint nested/successive-infinitesimal realization, and final conformance/manual/evidence. Default native codec/adjoin paths are not converted into strict compiled replay by these packing records.\n\nThe next independent, unshipped local probe now binds an actual 2,911-byte selected-root JSON payload to the fresh-catalog root and original source condition, with six stored proof bodies passing the native-production guard and ordinary axiom audit. Its byte parser/catalog composition also builds, but further byte/control/literal audits and integration remain; this is not counted as a landed artifact. Owner #10811/#10821/#10823 were still open at the latest check and will be consumed only when actually merged. No new issue or worker was launched; #10331 retains dispatch. #10633/#10634's delivered controls and measurement limitations remain incorporated.\n","createdAt":"2026-10-06T06:01:03Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-6010360985","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABZlLYQQ","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Continuing #10358. [PR #10836](https://github.com/kim-em/hex-dev/pull/10836), `Refs #10358`, is open at final reviewed head `d84cecfde40a2c2b09e55e8279793bcc98a3ae9f`. Immediate post-opening, revised and final fresh Opus reviews completed; final review found no blockers. [CI 37427462154](https://github.com/kim-em/hex-dev/actions/runs/37427462154), sole job `112150371581`, is running under one 120-second watcher. Squash auto-merge is enabled without branch deletion. This tranche is **not landed yet**.\n\nIts seven catalog conformance modules bind the 2,911-byte selected-root packet to writer output and owner round-trip laws, reconstruct the original predecessor, and prove the original nested-root existential at that same ordinary real point. Complete audits cover 75 JSON and 21 byte definitions, 16 guarded actual proof bodies and nine ordinary bodies. Five compiled controls check distinct-endpoint mutation preconditions, exact returned root bytes, explicit stale-context rejection, wrong root kind and an endpoint/old-graph binding mismatch. Compiled answers remain diagnostic only. The full audit/manual and final render passed 13,865 and 13,837 Lake jobs; eleven current source hashes and twelve retained log digests are independently verified. Generic root-set coverage, strict compiled catalog replay and arbitrary certificate assembly are not claimed.\n\nAn independent experiment tests the existing common-field factory rather than inventing another certificate language. `QAdjoin.common` on `CertificationInputs.realAlgebraic.toAlgebraic` and `(2 : AlgebraicNumber).sqrt` proposes `[-2, -24, 169, 70, -127, -70, 6, 8, 1]`. Both direct type conversion and ordinary-kernel `decide` fail to identify that frozen polynomial with `common.generator.p`; consequently `common.generator.checked` is not yet a quoted irreducibility proof of the literal. Failed builds are retained and no admission or mathematical success is claimed. This confirms the existing quotation boundary: a checked literal transport or sufficient irreducibility evidence is still needed.\n\nThe Mathlib-free compiled byte experiment built and verified all three cumulative stages. Six fixed trial-major forward/reverse blocks retained all eighteen successful samples, with matching expected hashes. Host-specific medians are 44.080 μs for lexical checking, 153.576 μs for parsing and 407.027 μs for default catalog reconstruction. The compiler lists 442 imports and no Mathlib. Reconstruction retains the owner's native coefficient/adjunction paths; these are one-input operational costs, not strict replay, whole-tactic proof costs, scaling or a speedup claim. The source-bound archive/report is prepared for the next delivery.\n\nActual owner merges #10821 (`e7f0f77bacf86c829649e224338de757171a72db`) and #10831 (`1d1f9e60daf81a4c705f1f06eb4c8fe2dbbfd2ca`) are verified and their APIs are being inspected. They are not silently equated with recursive finite-data export or the production-free supplied-inverse reader asked for in [the existing owner thread](https://github.com/kim-em/hex-dev/issues/10378#issuecomment-6010442498). No new issue or downstream worker was launched. The full goal and #10358 remain open.\n","createdAt":"2026-10-06T07:38:51Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-6011672641","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABZlpeIg","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"A concrete update to the degree-eight common-field quotation gap: the existing public `HexBerlekampZassenhausMathlib.FactorTactic.bangZPolyIrred` API (`irreducibility!`) proves irreducibility of the exact literal `[-2, -24, 169, 70, -127, -70, 6, 8, 1]` when the calling module imports the factorizer executable closure with `import all`. Both `Irreducible` and `CheckedIrreducible` build successfully through Lake (9,675 jobs, target 9.8 seconds on this host), and complete printed axiom dependencies are exactly `propext`, `Classical.choice`, `Quot.sound`. No proof admission is accepted.\n\nThis narrows the gap but does not close it for the optional frontend. Lean rejects `public import all`; a separate carrier module with ordinary public imports plus private `import all` builds, but its ordinary-import consumer fails kernel replay at `polynomial.factorize`. Thus importing a helper umbrella cannot supply the private executable closure to normal `import HexRCF.RealCoefficients` clients. This is independently reproduced, rather than inferred from diagnostic strings for dispatch. Failed consumer builds and their generated failed-elaboration dependencies are retained as failures, never shipped as proofs.\n\nThe existing finite certificate routes still decline for this literal. The remaining usable prerequisite is an ordinary-import checkable irreducibility proof/certificate interface covering such common polynomials, or an owner-approved public kernel replay interface whose reduction closure is actually available to normal clients. No new certificate language, lower-library proof, issue, worker or architecture change has been introduced. The successful private-closure experiment is proof evidence for this one polynomial only; it is neither complete algebraic frontend acceptance nor production-free certificate replay. #10331 retains any downstream dispatch. Independent adapter integration continues while PR #10836 CI runs.\n","createdAt":"2026-10-06T08:11:54Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-6012165666","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABZmQ-xQ","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"The next independent #10358 tranche is prepared on the existing branch at local commit `7c14aca5d3496644f282c59b5578b80b65f49276`. It consumes actual merged #10821 shared-base APIs. #10831 is present in the integrated main baseline; this tranche does not claim a new inverse-replay integration. The preceding PR #10836 remains at its reviewed remote head and has passed library and conformance stages; its remaining CI gates are running under the existing single watcher. The new tranche is not landed and will be published after #10836's actual merge.\n\nExact prepared artifacts: `Gather.runFrom?`, `runFrom?_spec`, `runFrom?_original`, and `gather_catalog`; `conformance/HexRCF/GatherCatalog.lean` and its existing Lake glob; README/manual; `reports/hexrcf-catalog-gather.md` with eleven source hashes, nineteen retained build/gate logs and manual inspection metadata. Automatic selection preserves owner order and separately authenticated source values. The ordinary-real success theorem constructs a returned gathering and native decision from modeled admissible installed prefixes and compatible depth-zero owners. It does not assume a successful factory equation or Boolean answer, infer joint relative transcendence or model symbolic infinitesimals in ℝ.\n\nPublic-import controls retain positive/negative √2, an independent √3 and a repeated owner. They check a further-root existential, an impossible negative-square existential, leading cancellation, a zero atom and empty rational coefficients. The no-joint-prefix refusal theorem yields no verdict. The admissible-only model premise excludes unrelated catalog entries. Parameterized kernel instances exercise an installed `[α, β]` model serving a non-prefix `[β]` owner (`β ≠ α`) and a literal stale-version refusal. Six exact complete transitive axiom inventories each contain the standard three axioms. The optional/manual build passes 14,032 Lake jobs; all ninety affected RCF/rational/handler targets pass 11,049; final rendering passes 14,032. Final revised contract and cost paragraphs fit desktop and narrow views; rendered paragraph layout and scroll widths agree. DAG/umbrella, copyright, deterministic regeneration, admissions, relative links and source/log digests pass.\n\nThe retained eighteen-sample compiled packet study and the degree-eight private-closure proof experiment are now source-bound report/data artifacts in this local commit. Historical measured-source identities remain explicit. Neither is a speedup, complete frontend acceptance or production-free replay claim.\n\nRemaining gates are unchanged: ordinary-import common-field irreducibility quotation, generic frozen context/root/row assembly and all-live packing/inverse assembly, actual recursive finite-data export and whole finite-joint nested/successive-infinitesimal realization, frontend accepted-certificate progress/completeness and final full-scope evidence. The precise supplied-inverse reader question remains on existing owner #10378. No new issue, downstream worker or lower-library proof was introduced. #10358 and the completion goal remain open; #10331 retains dispatch.\n","createdAt":"2026-10-06T08:53:46Z","includesCreatedEdit":true,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-6012812997","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABZm12Pg","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Landed [PR #10836](https://github.com/kim-em/hex-dev/pull/10836) through squash auto-merge as `2a7d7f0b5dda846983a31960dd06a6bc484504a1` at 2026-10-06T09:31:00Z. Final reviewed head `d84cecfde40a2c2b09e55e8279793bcc98a3ae9f`; [CI 37427462154](https://github.com/kim-em/hex-dev/actions/runs/37427462154), sole job `112150371581`, completed successfully. The existing `issue-10358` remote branch is retained. Immediate post-opening and revised fresh Opus reviews were addressed; final review had no blockers.\n\nExact landed artifacts: `conformance/HexRCF/SelectedRoot/{CatalogSource,Catalog,CatalogData,CatalogByteData,CatalogBytes,CatalogControls,CatalogAudit}.lean`, the matching Lake globs, `scripts/rcf/selected_literals.py`, `conformance-fixtures/HexRCF/selected-catalog.json`, the existing rcf manual chapter, and `reports/hexrcf-selected-catalog.md` with source-bound diagnostic records. The 2,911-byte writer payload is bound to constructor bytes and the returned selected root; the owner round-trip laws restore its actual predecessor and root from an empty validated rational catalog. The ordinary proof establishes the original nested-root existential at that same selected real point. The text fixture ends with newline, while the exact writer byte literal retains its final space.\n\nComplete audits cover 75 JSON and 21 byte definitions, 16 actual proof bodies under producer guards, and nine ordinary bodies with standard complete axiom inventories. Five compiled controls pin the positive writer path, stale binding, wrong root kind, distinct-endpoint mutation precondition and endpoint/old-graph mismatch; lexical-limit and truncation refusal proofs are retained. Compiled verdicts are diagnostic, not proof evidence. Default reconstruction still uses native coefficient/adjunction paths, so this is not strict arbitrary compiled replay or checked root-set coverage.\n\nThe next local tranche consumes merged #10821 in `Gather.runFrom?`, preserves original owner ordering and source-model equations, and proves production success for admissible modeled prefixes with depth-zero original bases. Its non-prefix registered-owner and stale-version kernel instances pass all six exact standard-axiom audits. The optional/manual and final render pass 14,032 jobs; the latest merged Lake integration passes 10,948. It is not yet landed and is being published on the same retained branch.\n\n#10358 and its completion goal remain open. Remaining gates: ordinary-import common-field irreducibility quotation; generic frozen context/root/row assembly and all-live packing/inverse assembly; recursive reached-data export and entire finite-joint nested/successive-infinitesimal realization; algebraic accepted-certificate completeness; and final full-scope conformance/manual/evidence. The supplied-inverse reader boundary is explicit on [the existing owner thread](https://github.com/kim-em/hex-dev/issues/10378#issuecomment-6013256497). #10633/#10634's delivered changes and measurement limitations remain incorporated. No new issue or downstream worker was launched; #10331 retains dispatch.\n","createdAt":"2026-10-06T09:31:42Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-6013417022","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABZooeQw","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"The following independent original-source integration is implemented on the existing `issue-10358` branch at local commit `b8e145dc3ea68046ea23770cf25e4050032d631f`. It is not landed or pushed over the reviewed #10838 head while that PR's final CI gates run.\n\n`adapters/HexRCF/RealCoefficients/RegisteredGather.lean` adds `Gather.run_registered`: for one authenticated nonempty real prefix inserted into an empty catalog and one coefficient from its base, it derives exact catalog target selection and identity-factory equations. The native verdict agrees with the original caller model's exact coefficient value; there is no caller-supplied factory-success or coefficient-agreement premise.\n\n`conformance/HexRCF/RegisteredGatherConformance.lean` constructs the actual Liouville model from existing owner containment, width and relative-transcendence laws, proves insertion success, identifies its source coordinate with `liouvilleNumber 2`, and derives native true, false and further-root decisions, including one ordinary real square root satisfying the equation and the literal `(0, 2]` guard atoms together. These laws do not emit a frozen tactic certificate. Eleven complete theorem axiom inventories contain exactly `propext`, `Classical.choice`, `Quot.sound`. Public API/conformance validation passes 10,848 Lake jobs; optional adapter, conformance, manual and final render pass 14,034. Existing manual examples are retained. DAG/umbrella, copyright, file limits, admissions, relative links, source/log bindings and diff checks pass; nine source hashes, nineteen decoded logs and both manual inspections are bound and verified. `reports/hexrcf-registered-gather.md` and its data context retain the exact surface and separate failed drafts from successful checks.\n\nThe existing common-kernel gap was investigated further outside the repository: importing the factorizer closure into a temporary private environment makes its literal decision true, but bounded extraction still fails checking in the original ordinary environment. Explicit proof-body normalization exhausts 200,000 heartbeats; full normalization was interrupted after heavy expansion. There is no accepted extracted proof or shipped environment loader, and this is not an impossibility claim. The ordinary-import irreducibility prerequisite remains open.\n\n#10832's updated unmerged inverse dictionary is also checked for scope: its typed inverse record retains `argument.inverseCandidate`; it does not yet answer the production-free supplied-candidate reader question on #10378. No unmerged interface has been integrated.\n\nThe next tranche will receive fresh post-opening Opus review after #10838 actually merges. #10358 remains open with generic frozen assembly, all-live/inverse packing, recursive finite-joint realization, algebraic accepted-certificate completeness and final full-scope evidence outstanding. No new issue or downstream worker was launched; #10331 retains dispatch.\n","createdAt":"2026-10-06T11:29:19Z","includesCreatedEdit":true,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-6015295043","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABZo6XoQ","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Landed [PR #10838](https://github.com/kim-em/hex-dev/pull/10838) through squash auto-merge as `88556fef5e3bf1b091648ee2b99d44a6e9491b89` at 2026-10-06T11:48:08Z. Reviewed head `dad0345ddb97b295b61a4393be8268c54157bd5e`; [CI 37448912704, attempt 2](https://github.com/kim-em/hex-dev/actions/runs/37448912704), sole job `112222842169`, succeeded. The existing `issue-10358` branch is retained. Immediate and revised fresh Opus reviews were addressed; final review had no blockers. Attempt 1's isolated TemporaryDirectory cleanup failure and the successful local affected test are retained separately.\n\nExact landed artifacts: `adapters/HexRCF/RealCoefficients/Gather.lean` (`runFrom?`, `runFrom?_spec`, `runFrom?_original`, `gather_catalog`), `conformance/HexRCF/GatherCatalog.lean`, the existing conformance glob, README, the rcf manual and its `CallerBounds.lean` helper, adapter inventory, and source-bound catalog-gather/common-kernel/compiled-packet reports and data.\n\nAutomatic gathering consumes merged #10821 and preserves original owner ordering. The success theorem derives native gathering and a decision from admissible modeled installed prefixes and compatible depth-zero owners. Original-model agreement retains explicit selected-factory equations; key compatibility alone does not identify separately registered real values. Public-import controls cover selected positive/negative √2, √3, repeated owners, cancellation/zero, true further-root and false existential cases, non-prefix registered-owner semantics and stale refusal. Native compiled controls use the actual one-provider Liouville fixture with positive/negative `X`, stale version, invalid-newer fallback and rational-first empty owners. Six complete theorem audits contain exactly the standard three axioms. This is native production, not generic frozen replay or a joint-independence claim.\n\nThe optional/manual and final rendering pass 14,033 Lake jobs. The manual was split properly below the 3,000-line cap without discarding executable examples; bounds remain section 18.17 and cross references 18.18. Source-bound historical packet evidence retains all eighteen fixed-schedule samples and separates worker/outer RSS. The degree-eight private-closure irreducibility experiment is not an ordinary-import frontend repair. Neither report claims full scaling or a speedup.\n\nThe following independent tranche is locally committed at `b8e145dc3ea68046ea23770cf25e4050032d631f`: `Gather.run_registered` derives exact target selection and factory identity for one authenticated nonempty prefix and one original coefficient, and concrete Liouville producer laws preserve the actual original source value, including the further-root equation and both `(0, 2]` guards at one ordinary real witness. It has eleven standard-axiom inventories and passing ordinary-import, optional/manual and render checks; it is not yet landed.\n\n#10358 remains open. Remaining gates: ordinary-import common-field irreducibility quotation; generic frozen context/root/row assembly and all-live packing/inverse assembly; recursive reached-data export and whole finite-joint nested/successive-infinitesimal realization; algebraic accepted-certificate progress/completeness; final full-scope conformance/manual/evidence. The precise supplied-inverse boundary remains on the existing #10378 thread. #10633/#10634's delivered changes and measurement limits remain incorporated. No new issue, downstream worker or lower-library proof was introduced; #10331 retains dispatch.\n","createdAt":"2026-10-06T11:48:31Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-6015588257","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABZrRLXQ","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"The next independent #10358 tranche is locally complete at `e2f3bfeb8c3433dbab91a928562d1d1879e7faac`, held on the existing `issue-10358` branch until #10839 actually merges. It is not landed.\n\n`Gather.run_registered_many` preserves every original coordinate in order from one authenticated real prefix; the existing singleton theorem is derived from it. The actual Liouville model provides `(L, L⁻¹)`. Ordinary-kernel theorems and compiled controls exercise `∃ x, x² = L ∧ x² L⁻¹ = 1 ∧ 1 < x` (true), exchanged coordinate occurrences (false), a standalone double-root polynomial on included/excluded domains, and a false negative-square existential. The existing modules reuse their native fixture and audit all 27 complete theorem inventories against exactly the standard three axioms. Public API/conformance and optional/manual/render checks pass, with source-bound logs and four desktop/narrow inspections. No new CI target or job is introduced.\n\n#10839 remains at its final reviewed head `b70dc5ffca5511b1adddf4d471d4a0467f057fbc`, with squash auto-merge enabled and its branch retained. Run 37465362513 has passed library, conformance and architecture checks; the manual/final gates are still running. `gh run watch` has been interrupted by HTTP 403 on the job-list endpoint. Adjacent direct job queries succeed and show progress; this is a monitoring failure, not a reported source failure or a green-CI claim. The next commit is deliberately not pushed over that reviewed head.\n\nRemaining full-scope gates are unchanged: ordinary-import common-field irreducibility quotation; generic frozen context/root/row and all-live packing/inverse assembly; recursive reached-data export and simultaneous finite-joint realization; algebraic accepted-certificate completeness and final full-scope evidence. #10832 is still unmerged. The existing strict supplied-inverse question on #10378 remains unanswered. The merged #10834 provider permutation law is usable with both actual realizations; it does not itself derive source reconstruction or strict replay. #10633/#10634 remain incorporated with their existing measurement limits. No new issue or downstream worker has been launched.\n","createdAt":"2026-10-06T14:07:46Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-6018059101","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABZr4jYA","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Landed [PR #10839](https://github.com/kim-em/hex-dev/pull/10839) through squash auto-merge as `4aa3409bc0fd8926370beb404c626bce9788bf77` at 2026-10-06T14:40:49Z. Final reviewed head `b70dc5ffca5511b1adddf4d471d4a0467f057fbc`; [CI 37465362513](https://github.com/kim-em/hex-dev/actions/runs/37465362513), sole job `112275030341`, completed successfully. The existing `issue-10358` branch is retained. Immediate post-opening and revised fresh Opus reviews were addressed; final review had no substantive blockers. Superseded runs and the Actions API monitoring interruption are retained separately.\n\nExact landed artifacts: `adapters/HexRCF/RealCoefficients/RegisteredGather.lean`, its existing optional umbrella/default Lake wiring, `conformance/HexRCF/RegisteredGatherConformance.lean` and its existing glob, the rcf manual, README, adapter inventory, and `reports/hexrcf-registered-gather.md` with source-bound records. `Gather.run_registered` derives exact nonrational catalog selection and the original model's identity factory for one base-field coordinate. Successful insertion supplies the nonempty path; no separately premised factory success or coefficient agreement is needed.\n\nThe concrete actual Liouville model uses the owner's containment, requested-width and relative-transcendence/progress laws. Installation and original source-coordinate interpretation are proved. Producer laws cover a true quadratic, a false universal, a further-root existential, sentence-adapter guard atoms for `(0, 2]`, false `(2, 3]` exclusion, and endpoint corollaries. Four executable rational guard checks include a fractional lower endpoint. All fourteen complete inventories contain exactly `propext`, `Classical.choice` and `Quot.sound`. These are ordinary-real native production laws, not emitted frozen certificates; the landed tranche does not execute the compiled further-root search or exercise source-reifier Ioc lowering.\n\nThe optional/manual and final rendering pass 14,046 jobs. The evidence record binds nine sources, forty-nine decoded logs and four inspection records, keeping failed setup separate from accepted builds. Historical catalog-gather sources remain bound to their original reviewed tree and actual squash. Build observations are operational, not new scientific scaling or speedup evidence.\n\nThe next independent tranche is locally validated but not landed: ordered nonempty coordinate lists preserve the same actual registered model; the legacy singleton API is derived from it. Existing conformance modules prove and execute two-coordinate further-root/common-root sentences, a coordinate-exchanged false result, standalone repeated-root included/excluded domains and a false negative-square sentence. All twenty-seven source inventories and the default optional/manual, DAG/admission/link/layout checks pass. It will use Refs and fresh post-opening Opus review on the retained branch.\n\n#10358 remains open. Remaining gates: ordinary-import common-field irreducibility quotation; generic frozen context/root/row and all-live packing/inverse assembly; recursive reached-data export and the entire finite-joint nested/successive-infinitesimal realization; algebraic accepted-certificate completeness; final full-scope conformance/manual/evidence. The strict supplied-inverse boundary remains explicit on #10378. #10633/#10634's delivered changes and measurement limits remain incorporated. No new issue or downstream worker was launched; #10331 retains dispatch.\n","createdAt":"2026-10-06T14:41:07Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-6018704224","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABZtRMHA","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Landed [PR #10842](https://github.com/kim-em/hex-dev/pull/10842) through squash auto-merge as `2760639e536e68d40b3eb7d80866879dac48faf7` at 2026-10-06T15:52:43Z. Final head `355da0978382b00b225214cf9461cc9a3405169a`; [CI 37482863387](https://github.com/kim-em/hex-dev/actions/runs/37482863387), sole job `112335599403`, completed successfully. The existing `issue-10358` branch is retained. Fresh Opus review was invoked immediately after opening; the initial empty-stdin wrapper refusal was corrected, and the completed independent review found no blocking defect. Its two evidence findings are addressed. Actions API monitoring interruptions are retained separately and are not source failures.\n\nExact artifacts: `adapters/HexRCF/RealCoefficients/RegisteredGather.lean` (`Gather.run_registered_many`, derived legacy `run_registered`); the existing `RegisteredGatherConformance.lean` and `GatherCatalog.lean`; the rcf manual, README and evidence inventory; `reports/hexrcf-registered-many.md` and source-bound data. Ordered nonempty coefficient lists from one authenticated base-prefix model preserve every original value. Exact catalog selection and identity factories are derived, rather than premised. Empty owners keep the existing rational-first path.\n\nThe actual Liouville model identifies `(L, L⁻¹)`. The true sentence `∃ x, x²=L ∧ x² L⁻¹=1 ∧ 1 0` using the actual degree-eight common field; the emitted proof and direct certification both retain the supplied instance. Native common-field construction is unchanged.\n\nAll four complete inventories contain exactly `propext`, `Classical.choice`, `Quot.sound`. Wrong-runtime binding, specific terminal admitted-proof rejection on an otherwise producible quartic, restoration and legacy no-instance/divisor controls pass. The consumer uses default heartbeats and recursion limit 32,768; construction retains its explicit larger budget. Optional/conformance/manual integration passes 14,159 Lake jobs, rendering 14,151 and final refusal/proof checks 11,057. DAG/trust, admissions (407 cones / 1,260 modules), copyright, line limits, manual split, 114 affected links and diff checks pass. Records bind nine final sources, forty-one accepted decoded logs with observed exits, six failed drafts, six inspected current and four historical captures. These operational observations are not scientific performance evidence.\n\n#10358 stays open and incomplete. This covers one supplied common-field proof, not general automatic certification or accepted algebraic completeness. The owner's actual `Tower.Context.realize_values` and `Suffix.realize_packed` finite-joint ordinary realization laws are already available; the missing integration is authenticated frozen context/descriptor/replay/history and reached arithmetic assembly connected to those laws, together with general root/carrier/row and all-live transport assembly. Final full-scope conformance/manual/evidence remains. #10633/#10634's delivered interfaces and measurement limits remain incorporated. No new issue or downstream worker was launched; #10331 retains dispatch.\n\nThe next tranche is locally validated but not yet landed: matched build-only proof-construction/reuse probes with four fixed adjacent AB/BA pairs, eight complete kernel inventories and retained shared-host samples; a genuine terminal supplied-instance-search exhaustion control; and corrected native-realization documentation with a fresh same-reader operand/sum/product proof. Its measured source is `9b6dbba8f515a1dd3db0dbe5633f6a11ca19eb70`; no general speedup, scaling or smaller-import-cone claim is made. It will use Refs and its own immediate fresh post-opening Opus review.\n","createdAt":"2026-10-10T16:31:48Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-6099723764","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABa8mGTw","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Landed [PR #10867](https://github.com/kim-em/hex-dev/pull/10867) through squash auto-merge as `6c490b3af11c75103042f68d963cb38aa0094355` at 2026-10-10T23:27:46Z. Final reviewed head `255af3c7bc9b035f34ea409f15e4dc04664468ce`; [CI 38089080243](https://github.com/kim-em/hex-dev/actions/runs/38089080243), sole job `114321640368`, completed successfully. The existing `issue-10358` branch is retained. Immediate fresh post-opening Claude Opus review and two fresh follow-up reviews completed; substantive findings were addressed. Final follow-up found no merge blocker. Its suggested stronger computed-row markers and README clarification were implemented and checked. The reviewer could not run shell/build/hash checks; those verifications are independently recorded here.\n\nExact artifacts: `adapters/HexRCF/RealCoefficients/NativeFormula.lean`, `conformance/HexRCF/NativeFormulaConformance.lean` and `SuppliedBudget.lean`; `adapters/HexRCF/RealCoefficients.lean`, default `HexRCFRealCoefficients` target and existing conformance globs; `bench/HexRCF/ProofProbe/Supplied/{Reconstruct,Reuse}.lean`, `scripts/bench/rcf_irreducibility_proofs.py`, manual `HexRCFProofProbeMeasurements` target in `lakefile.lean`, `scripts/check_dag.py`, `scripts/libgraph.py`; `HexRCF/SPEC/hex-rcf.md`, `HexManual/Chapters/HexRCF.lean`, `HexRCF/README.md`, `SPEC/proof-examples.md`, `reports/hexrcf-adapter-evidence.md`; `reports/hexrcf-native-formula.md`, `reports/hexrcf-irreducibility-cost.md` and separately source-bound data.\n\nThe shared-formula API consumes the actual owner `Context.realize_values` theorem for every coordinate and atom at one point. `polynomial_read` follows actual partial closed-domain arithmetic; `row_real` preserves the complete ordered atom vector. `exists_real` yields one ordinary witness while retaining explicitly authenticated inherited-base coefficient identities. `not_forall` gives a real counterexample from a false point row, not a false existential decision. The actual infinitesimal fixture proves `0 < x < 1` together with authenticated coefficient `2` in `2 < 2+x < 3`; another row refutes `∀ x : ℝ, x = 0`. A second actual native fixture realizes `0 < b`, `b < a²`, `0 < a`, `a < 1` through successive infinitesimals at one reader. This adds no multivariate frontend. Four API and four concrete theorem complete inventories contain exactly `propext`, `Classical.choice`, `Quot.sound`; proof markers retain the new API laws. The standalone point evaluator performs sign production; `Samples.run` and `Tower.Sample.signs` instead use specialization, and no row equivalence is proved here. It provides no frozen replay or automatic authentication of arbitrary algebraic suffix conjugates. Private core construction bodies are confined to the fixture.\n\nThe separate exhaustion control forces actual supplied-instance search to exceed `synthInstance.maxHeartbeats = 1` on an otherwise producible quartic. It verifies terminal resource failure at `CommonTactic.certify`, an exact `CheckedIrreducible` diagnostic, absence of the scoped instance outside its scope at the identical tiny search budget, and successful normal certification. The explicit caller restoration is not a production-handler restoration regression. Its proposed class retains the existing checked theorem and standard-three-axiom inventory.\n\nMatched build-only probes use identical import headers and the same degree-eight `rcf` goal. They build through the nondefault manual measurement target, while CI keeps its four representative modules. The collector refuses unequal headers before collection. Four fixed adjacent AB/BA pairs produce eight accepted complete kernel inventories at clean measured source `9b6dbba8f515a1dd3db0dbe5633f6a11ca19eb70`. Median whole-module cost is 20.834/13.278 seconds and median peak RSS 4.26/3.69 GiB for fresh construction/imported proof reuse. All completed samples and source bindings are retained, including earlier changed-source successful builds whose suppressed guarded inventory output failed collector validation, kept outside the accepted pool. This answers one supplied-proof reuse question, not general scaling, automatic certification, or the separate smaller ordinary-import cone.\n\nRevised local optional/native/conformance/manual integration plus representative/manual paired targets passes 14,170 Lake jobs; rendering 14,151. A fresh ordinary-import consumer passes 10,934 jobs, three full standard-three-axiom inventories, base uncached exact-target kernel checks and imported-fixture proof markers. The original seven API/fixture inventories and 10,926-job local markers remain separate. DAG and its ten existing tests, admission (408 cones / 1,261 modules), Mathlib-free executable/build-only import lint, trust, copyright, line limits, manual split, 155 affected relative links and diff checks pass. Six revised desktop/narrow captures are visually inspected; `review-context.json` binds twenty-three committed sources and seventeen decoded records to `1acfd426a8fea287790f7aedbf9aca3c19f1d221`. The final documentation clarification is separately bound to `c0222fe5071e2025cd3ab73c20e58102ab5edcd2` by `clarification-context.json`, with forward pointers from the historical records; its fixture/consumer rebuild passes 10,934 jobs. Original native records/four captures and earlier cost/native-law records/six captures retain their historical sources. Later optional-umbrella and collector/target changes do not establish cost at current HEAD. No AGENTS.md/PLAN.md or CI workflow/job changes.\n\nThe successive-sample supplement binds ten committed sources, seventeen decoded records and six separately inspected captures to `e5a19c0d202a54ab0384280338a7d4fd27fff6ca`. Strengthened computed-row markers and README clarification are separately bound to `fd2315caed9ec9a2411b715455fe879ab273b265`; the fixture passes 10,927 jobs and the fresh four-proof ordinary-import consumer 10,933, with exact-target kernel checks and complete standard-three-axiom inventories. Guards require the computed native row proof as well as the realization API. The optional concrete two-level inherited fixed-coefficient test remains outside this fixture; the existing affine fixture tests it through one level. Its earlier complete integration/render and four-consumer checks remain historically bound. All historical source and compressed/decoded record hashes were checked against their stated commits.\n\nThe final clean merge of upstream SignDet documentation is separately bound to `7465433f9bf83edf064d09b0c08a20c22539e25e` by `final-main-context.json` (seven source hashes, four decoded records); integration passes 14,155 Lake jobs and the fresh four-proof ordinary consumer 10,933. No conflicts, protected files or CI jobs were introduced.\n\n#10358 remains open and incomplete. The native finite-joint law is available and now consumed by this direct adapter API. General source-goal quotation still needs checked recursive literal context/history, descriptor/replay and reached arithmetic assembly connected to the actual provider history; general root/carrier/row and all-live transport assembly, automatic common-field certificate coverage and accepted algebraic progress; final full-scope conformance/manual/evidence. Existing descriptor/replay data types are available; their general checked production and assembly remains the specific gap. The refreshed #10378 directive owns the nested exporter/checker fixture and tower assembly; frontend/source authentication remains here. #10633/#10634 delivered interfaces and measurement limits remain incorporated. No new issue or downstream worker was launched; #10331 retains dispatch.\n","createdAt":"2026-10-10T23:31:05Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-6103336527","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABbBj73Q","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Landed [PR #10872](https://github.com/kim-em/hex-dev/pull/10872) using `gh pr merge --squash --auto` without deleting the branch. Squash commit `e5fa8197ff102c224584d285fa38448f1e8ccfb6`, merged 2026-10-11T11:28:02Z; final remote head `bc3aaceda7df2d0f7f126c611349db20093461ce`. [CI run 38131557260](https://github.com/kim-em/hex-dev/actions/runs/38131557260), sole job `114446786911`, completed successfully. `issue-10358` remains available. Immediate post-opening and subsequent fresh Claude Opus reviews completed; substantive findings were addressed. Final source review found no mathematical/integration blocker; the report now distinguishes imported target/inventory checks from in-module proof-body consumption checks.\n\nExact landed artifacts: `adapters/HexRCF/RealCoefficients/NativeSpecialize.lean`; `conformance/HexRCF/NativeSpecializeConformance.lean`; optional umbrella and existing Lake target/conformance globs; `HexRCF/README.md`, `HexRCF/SPEC/hex-rcf.md`, existing rcf manual chapter and evidence inventory; `reports/hexrcf-native-specialize.md` and `reports/data/hexrcf-native-specialize/` source-bound records.\n\nThe direct API follows actual shared coefficient grouping, dense addition and Horner evaluation at one finite ordinary reader. Leading signs establish source sizes and degrees, including zero/constant distinction and leading cancellation. True rows retain all supplied original divisor signs and explicitly authenticated inherited coefficient identities. False point rows yield universal counterexamples. Concrete tests cover affine inequalities, inherited coordinates, false rows and successive infinitesimals jointly. Twelve complete API/fixture and five fresh ordinary-import inventories contain exactly `propext`, `Classical.choice`, `Quot.sound`. Lake integration/rendering and fresh proof checks pass; DAG, admissions, copyright, line, manual-split, relative-path and diff checks pass. These operational observations are not scientific performance measurements.\n\n#10358 stays OPEN and incomplete. Remaining integration includes frozen recursive context/provider-history, descriptor/replay and reached arithmetic assembly, checked generic root/cell coverage, all-live transport, general source-goal quotation, automatic common-field certificate coverage and accepted algebraic completeness, plus full-scope conformance/manual/evidence. Actual finite-joint realization and root/query laws are available; their existence is not a blocker.\n\nIndependent continuation is already locally implemented: `NativeSamples` connects `Tower.Sample.signs` to shared specialization after actual coefficient conversion, preserving original divisor signs and normalized sizes/degrees. Its tests now include an actual further selected root over the fixed √2 coefficient. This is not yet landed and will receive its own Refs PR and immediate fresh Opus review. #10633/#10634 interfaces and measurement limits remain incorporated; no new issue or downstream worker was launched. #10331 retains dispatch.\n","createdAt":"2026-10-11T11:28:50Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-6108543965","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABbG1AaA","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Landed [PR #10874](https://github.com/kim-em/hex-dev/pull/10874) using `gh pr merge --squash --auto` without deleting the branch. Squash `35287f830961829795193e73a63c226b5ed9a046`, merged 2026-10-11T21:38:19Z; final remote head `9cdddefb2ebe26c798d61e53cae82c023af7e841`. [CI run 38144546934](https://github.com/kim-em/hex-dev/actions/runs/38144546934), sole job `114485103611`, completed successfully. `issue-10358` remains available. Immediate fresh post-opening Claude Opus review and fresh follow-up reviews completed; substantive findings were addressed. The final supplement records the private-import and proof-checking boundaries explicitly.\n\nExact artifacts: `adapters/HexRCF/RealCoefficients/NativeSamples.lean`, generalized model-field `RepresentationSpecialize.lean`, optional umbrella/default target; `conformance/HexRCF/NativeSamplesConformance.lean`, `NativeSampleModelConformance.lean`, `NativeSampleModelLiterals.lean`; `conformance-fixtures/HexRCF/native-sample-root.json` and existing literal renderer; existing rcf manual with `HexManual/Chapters/HexRCF/NativeSamples.lean`, README/SPEC implementation boundaries; `reports/hexrcf-native-samples.md` and source-bound records under `reports/data/hexrcf-native-samples/`.\n\nThe actual owner conversion model connects Tower.Sample.signs to native shared specialization, preserving original parent divisor signs and normalized polynomial sizes/degrees. True rows retain supplied guards and inherited base/provider coefficient identities at one ordinary reader; false point rows give universal counterexamples. Actual selected-root tests cover repeated/zero atoms, leading cancellation, half-open guard atoms, changed coordinates and a further root over selected √2. The additional checked frozen descriptor selects the positive root of X²−ε over the actual infinitesimal-parent reference field. One reader retains 0')
+ if re.match(r'[a-zA-Z][a-zA-Z0-9+.-]*:',link) or link.startswith(('#','/')):continue
+ target=link.split('#',1)[0]
+ if not target:continue
+ assert (p.parent/target).exists(),f'{name}: broken {link}'
+ count+=1
+print(f'Checked filesystem-relative links: {count} links across {checked} changed Lean/Markdown files')
diff --git a/reports/data/hexrcf-source-valuations/render.lean.txt b/reports/data/hexrcf-source-valuations/render.lean.txt
new file mode 100644
index 0000000000..434bd76028
--- /dev/null
+++ b/reports/data/hexrcf-source-valuations/render.lean.txt
@@ -0,0 +1,6 @@
+-- Render the complete manual for browser inspection.
+import HexManual
+import VersoManual
+#eval Verso.Genre.Manual.manualMain (%doc HexManual)
+ (options := ["--output", "full-html",
+ "--without-tex", "--with-html-single", "--without-html-multi"])
diff --git a/reports/data/hexrcf-source-valuations/run-bounded.sh.txt b/reports/data/hexrcf-source-valuations/run-bounded.sh.txt
new file mode 100644
index 0000000000..2cc8636e8a
--- /dev/null
+++ b/reports/data/hexrcf-source-valuations/run-bounded.sh.txt
@@ -0,0 +1,10 @@
+#!/usr/bin/env bash
+set -euo pipefail
+exec systemd-run --user --wait --pipe --collect \
+ --unit=hex-10358-lean-build \
+ --property=MemoryMax=32G \
+ --property=MemorySwapMax=0 \
+ --property=OOMPolicy=kill \
+ --working-directory="$PWD" \
+ --setenv="PATH=$PATH" --setenv=LEAN_NUM_THREADS=2 \
+ "$@"
diff --git a/reports/data/hexrcf-source-valuations/source-valuation-audit-1.log.gz b/reports/data/hexrcf-source-valuations/source-valuation-audit-1.log.gz
new file mode 100644
index 0000000000..79cb20c44c
Binary files /dev/null and b/reports/data/hexrcf-source-valuations/source-valuation-audit-1.log.gz differ
diff --git a/reports/data/hexrcf-source-valuations/source-valuation-browser-1.log.gz b/reports/data/hexrcf-source-valuations/source-valuation-browser-1.log.gz
new file mode 100644
index 0000000000..ce456dc09d
Binary files /dev/null and b/reports/data/hexrcf-source-valuations/source-valuation-browser-1.log.gz differ
diff --git a/reports/data/hexrcf-source-valuations/source-valuation-current-10633.json b/reports/data/hexrcf-source-valuations/source-valuation-current-10633.json
new file mode 100644
index 0000000000..35a5c3c6b6
--- /dev/null
+++ b/reports/data/hexrcf-source-valuations/source-valuation-current-10633.json
@@ -0,0 +1 @@
+{"body":"`rcf` goals with irrational coefficients spend most of their kernel time proving the signs of individual field elements, one full Sturm certificate per element. Replace this with interval evaluation against the generator's isolating interval, which the certificate already contains.\n\nFor `example : ∃ x : ℝ, x ^ 2 = Real.sqrt 2 ∧ 1 < x ∧ x < 2 := by rcf` the problem is a degree-4 polynomial over ℚ(√2), about the size of a degree-8 rational problem, which the rational path decides in under a second. This goal takes about 14 s of kernel time instead. Measured with `set_option diagnostics true` on chungus2 under load, so absolute times vary up to 2x but the proportions were stable:\n\n- about 30% goes to the literal sign table: about 96 entries, each proving the sign of one element `a + b√2` with its own rational Sturm certificate, re-proving the same chain for `X² − 2` on the same interval every time;\n- about 45% goes to 12 root-sign certificates with coefficients in ℚ(√2), whose sign lookups go through that table;\n- every lookup is a linear `List.find?` over the table with structural comparison of keys made of `Rat` lists, about 31k `PolyQuot` equality tests and 31k `List.find?` steps in this goal.\n\nThe replay is `quoteCertificate` in `adapters/HexRCF/RealCoefficients/FieldLiteral.lean` (around lines 264 to 316), which splits the check with `simp only` and runs `decide +kernel` on each piece.\n\nTo fix:\n\n- Decide the sign of a field element `a(θ)` by evaluating `a` over the certified isolating interval of `θ` in exact rational arithmetic, refining the interval only when the result is inconclusive. For a quadratic field, comparing `a²` with `d·b²` is exact and needs no refinement.\n- Look signs up by index, not by linear search over structurally compared keys.\n\nThe estimated gain is 2 to 4x on these goals. The manual's examples `∃ x, x² = √2 ∧ 1 < x ∧ x < 2`, `∃ x, x² = 1 / (√2 + 1) ∧ 0 < x ∧ x < 1` and the `2 ^ (1 / 3)` examples in `HexManual/Chapters/HexRCF.lean` are suitable benchmarks.\n\n🤖 Prepared with Claude Code\n","comments":[{"id":"IC_kwDOSKC1W88AAAABZHDkpw","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"This is incorporated into the continuing #10358 work. The current merged fixed-field path uses exact interval/Horner sign evidence, checked indexed sign-table routing, and checked contained count-one generator-window transport. The window tranche landed in [#10692](https://github.com/kim-em/hex-dev/pull/10692), squash `73b6a0ecfa41d3586a4327d974e0e5920c314aab` (green required CI). Exact artifacts include `LiteralSign.lean` (`Window`), `FieldRefinement.lean`, `FieldLiteral.lean`, `SignIndex.lean` and `conformance/HexRCF/GeneratorWindow.lean`. Every route retains the original selected root/embedding and exact keys. Frozen replay performs no refinement, sign/root search or fallback after false/exhausted/invalid evidence.\n\nThe retained [index comparison](https://github.com/kim-em/hex-dev/blob/main/reports/hexrcf-index-proofs.md) favors checked indexed retrieval in all adjacent pairs of its two source-distinct 24-arm studies. The [window comparison](https://github.com/kim-em/hex-dev/blob/main/reports/hexrcf-window-proofs.md) and separate precision studies retain all completed samples and establish no reliable whole-module refinement speedup; refinement therefore defaults to zero. The original estimated 2–4× gain is not claimed as a measured general result. The [evidence inventory](https://github.com/kim-em/hex-dev/blob/main/reports/hexrcf-adapter-evidence.md) states the exact measured sources and limitations. #10358 remains open for its full backend/API/manual scope; no new decomposition issue or worker has been launched.\n","createdAt":"2026-10-04T12:47:54Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10633#issuecomment-5980087463","viewerDidAuthor":true}],"state":"OPEN","title":"perf(rcf): decide field-element signs by interval evaluation, not one Sturm certificate each"}
diff --git a/reports/data/hexrcf-source-valuations/source-valuation-current-10634.json b/reports/data/hexrcf-source-valuations/source-valuation-current-10634.json
new file mode 100644
index 0000000000..08bc86b7d6
--- /dev/null
+++ b/reports/data/hexrcf-source-valuations/source-valuation-current-10634.json
@@ -0,0 +1 @@
+{"body":"The certificates `rcf` replays for irrational coefficients carry unnormalized polynomials and unreduced field-element expressions, and the kernel redoes the same reductions many times.\n\nMeasured on `example : ∃ x : ℝ, x ^ 2 = Real.sqrt 2 ∧ 1 < x ∧ x < 2 := by rcf` (about 14 s of kernel time):\n\n- The quoted data has about 171 field elements and 1256 `mkRat` literals of up to 93 bits. Every element is quoted as `PolyQuot.reduce p root (ofCoeffs #[mkRat …])`, so the kernel performs polynomial division modulo `p` and rational normalisation for every literal.\n- `quoteCertificate` in `adapters/HexRCF/RealCoefficients/FieldLiteral.lean` checks the certificate as three separate `decide +kernel` declarations, so the shared literal data is reduced three times.\n- Coefficients are not normalised. The carrier polynomial is `(−585248 + 410112√2)/49` times a small polynomial, and its cofactor has numerators around `2³⁸` over `2401`. This growth comes from the field gcd and squarefree computations, which make no polynomial monic and clear no denominators.\n\nTo fix:\n\n- Make carrier and chain polynomials monic, or integer-primitive, at every gcd and squarefree step.\n- Quote field elements by their already-reduced coordinates, not as `PolyQuot.reduce` applications.\n- Check the certificate in one kernel declaration, or otherwise share the reduced literal data between the pieces.\n\nThe estimated gain is 1.5 to 2x, independent of the sign-evaluation change in the companion issue.\n\n🤖 Prepared with Claude Code\n","comments":[{"id":"IC_kwDOSKC1W88AAAABZHDlQg","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"This is incorporated into the continuing #10358 work. The merged `FieldLiteral.lean` quotes already reduced fixed-field coordinates, shares quoted candidate terms, and provides both combined/split replay controls. Carrier monicization has ordinary-kernel transport laws retaining the original product. The consumed signed-remainder producer uses `Sturm.normalize`, dividing by the **positive absolute** leading coefficient; arbitrarily making negative-leading signed remainders monic would change signs. This does not assert that every intermediate coefficient-field gcd is monic.\n\nThe retained [carrier comparison](https://github.com/kim-em/hex-dev/blob/main/reports/hexrcf-carrier-proofs.md) favors normalized carriers on its fixed goals. The [combined-versus-split replay comparison](https://github.com/kim-em/hex-dev/blob/main/reports/hexrcf-replay-proofs.md) did not establish a gain, so combined replay stays off. [#10668](https://github.com/kim-em/hex-dev/pull/10668), squash `77aadd66f60890dd4f5288defad936180c53ea17`, and [#10692](https://github.com/kim-em/hex-dev/pull/10692), squash `73b6a0ecfa41d3586a4327d974e0e5920c314aab`, are merged with green required CI. Their proof-acceptance and literal replay checks use ordinary-kernel proofs, not compiled Boolean evidence.\n\nThe retained [sharing/input report](https://github.com/kim-em/hex-dev/blob/main/reports/hexrcf-scaling-proofs.md) and [evidence inventory](https://github.com/kim-em/hex-dev/blob/main/reports/hexrcf-adapter-evidence.md) distinguish unique syntax, expanded references, serialized size and host-specific timings. Reference accounting is not a physical-sharing or executed-work claim. The estimated 1.5–2× general gain is not asserted. #10358 remains open for the complete extension; broader intermediate normalization and generic tower/context replay remain owner/interface work, not silently replaced by the fixed-field carrier result.\n","createdAt":"2026-10-04T12:47:55Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10634#issuecomment-5980087618","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABdVLdRQ","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Clarification to the earlier summary: direct reduced-coordinate **construction is not the production default**. At current source `805d2ab1135a4ffca23322665729347b77907758`, [`rcf.algebraic.reducedLiterals`](https://github.com/kim-em/hex-dev/blob/805d2ab1135a4ffca23322665729347b77907758/adapters/HexRCF/RealCoefficients/FieldLiteral.lean#L37) defaults to `false`; `fieldExpr` emits `PolyQuot.reduce` over the coordinate literals in that mode. The `PolyQuot.mk` branch with checked degree evidence is a comparison option. The previous phrase “quotes already reduced fixed-field coordinates” referred to the coordinate data and should not be read as eliminating that reduction application by default.\n\nBoth retained [literal-quotation comparisons](https://github.com/kim-em/hex-dev/blob/805d2ab1135a4ffca23322665729347b77907758/reports/hexrcf-literal-proofs.md) failed to establish a gain for enabling direct construction. This clarification changes no setting, supplies no new measurement and makes no speedup claim. Carrier normalization, sharing controls and positive absolute-leading-coefficient scaling remain the separate delivered artifacts described above; they do not establish normalization of every intermediate gcd.\n\n#10634 and #10358 remain open for their actual remaining scope. No new issue, PR or downstream worker was created.\n","createdAt":"2026-10-19T08:47:10Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10634#issuecomment-6263332165","viewerDidAuthor":true}],"state":"OPEN","title":"perf(rcf): normalize polynomials and quote reduced field elements in certificates"}
diff --git a/reports/data/hexrcf-source-valuations/source-valuation-current-issue.json b/reports/data/hexrcf-source-valuations/source-valuation-current-issue.json
new file mode 100644
index 0000000000..e208a1041d
--- /dev/null
+++ b/reports/data/hexrcf-source-valuations/source-valuation-current-issue.json
@@ -0,0 +1 @@
+{"assignees":[{"id":"MDQ6VXNlcjQ3Nzk1Ng==","login":"kim-em","name":"Kim Morrison","databaseId":477956}],"body":"## User-facing outcome\n\nExtend `rcf` to prove statements about one real variable with real algebraic coefficients and caller-registered real constants. For an algebraic coefficient, the chosen real root matters: “a root of x²−2” must distinguish +√2 from −√2. For a registered constant such as π, the caller supplies approximations and proofs about those approximations.\n\nThis issue connects the mathematical libraries to Lean syntax, the decision procedure and the resulting proof. It is part of #10331 / #10143. The [tactic SPEC](https://github.com/kim-em/hex-dev/blob/main/HexRCF/SPEC/hex-rcf.md#planned-real-coefficient-extension) and [shared execution contract](https://github.com/kim-em/hex-dev/blob/main/SPEC/real-closure-execution.md) give the full requirements.\n\nThe formula representation (#10338), mechanism for registering tactic handlers (#10359), and preparation of source coefficients/divisor conditions (#10368) are merged. Reuse them. They do not by themselves provide the numerical solver.\n\n## Tactic and manual contract\n\n1. Select a small set of statements with the library owners. Keep rational regression examples, but also require algebraic-coefficient examples that actually use the new code. Include decisions at roots and between roots, a false statement, and an unsupported or invalid input.\n2. Connect coefficient evaluation, root/sign calculations and certificate checking using the functions already available in #10375/#10377/#10378. Use #10376 when the examples need registered constants. Add only the missing functionality required by these examples.\n3. Exercise the path from the user's statement to the answer and proposed proof. Build representative examples and audit proof dependencies. Measure tactic cost when it answers a named implementation question or investigates an observed bottleneck, using the existing tools.\n4. This issue alone owns the real-coefficient rcf manual and tactic examples. Extend the existing rcf manual chapter (`HexManual/Chapters/HexRCF.lean`), retaining its current examples and documenting the optional import, new examples, diagnostics, running times and proof limitations. Fix failures and impractical running times. Preserve delivered examples and continue with the remaining API/manual coverage below.\n\nA useful candidate is `∀ x : ℝ, x^2 - 2 * Real.sqrt 2 * x + 2 ≥ 0`. A later example requiring a further algebraic root is `∃ x : ℝ, x^2 = Real.sqrt 2 ∧ 1 < x ∧ x < 2`. Confirm that the selected examples exercise the intended implementation, rather than being solved entirely by the old rational path.\n\nOrdinary real sample points are sufficient to start. Users need not mention infinitesimals, and the complete infinitesimal tower need not be ready. If an algorithm does use them internally, a real conclusion still needs a proof that one real point satisfies the entire finite set of conditions.\n\nThe shared query semantics are proved: #10389 closed through #10521, and the\ncurrent Tau Ceti pin also contains Thom/BKR and ordered real-closure existence.\nThere is no admission exception. Preserve the handler's rejection of every\n`sorryAx` dependency and ordinary kernel checking for both rational and new\ncoefficient paths. Use the actual merged theorems rather than waiting for the\nbroader Tau Ceti roadmap.\n\n## Ready-to-assign continuation\n\nThe existing manual already contains square-root and cubic aliases, selected\nHex roots, QAdjoin arithmetic, independent square roots and a degree-six\ncommon-field example (#10424, #10428, #10470, #10472). Preserve these and do not\nrestart Stage 1. This issue owns the remaining source-conversion coverage,\ncommon-field certification coverage, caller-registered constants, general\nbuild/check path, algebraic-only completeness, diagnostics and documentation.\n\nStart now with source authentication and a caller-registered-constant path\nusing the delivered #10376 interface. Keep the approximation computation,\nrequested-width proof and containment proof separate. First exercise the\nactual prepare/build/check/proof path on a supplied registration, a cancelled\nzero denominator and deliberately uninformative bounds. This is a focused\nintegration experiment, not a request for a bundled analytic provider.\nResolve a concrete contract gap in the owning SPEC before implementing a\nchanged contract; discuss substantial architecture changes with the user.\n\nUse ordinary real samples where sufficient. Completion of the general\ninfinitesimal path consumes #10378's finite-sign realization and #10377's total\nroot interfaces; those are completion dependencies, not a reason to defer\nindependent work here. The #10377/#10378 workers own their library files.\nCoordinate any needed API, do not duplicate it. Keep this issue open until\nall required implementation, tests and documentation below are complete.\n\n## Algebraic-number and fixed-field inputs\n\nDirect use of the existing Hex types is a required part of the adapter, not an optional demonstration. Accept fixed, reconstructible `RealAlgebraicNumber.toReal` values obtained from checked real `AlgebraicNumber` constructions, and real values of elements computed in `QAdjoin a`. The latter may use the existing `toAlgebraicNumber` conversion, checked reality and `toReal`, with proofs preserving the chosen embedding. `QAdjoin.value_real` supplies the reality fact when the generator is real. Do not assume a `QAdjoin.toReal` method already exists. Provide the necessary proved connection to the coefficient interface without inventing a new number-field representation.\n\nRetain the delivered example whose coefficient is a nonquadratic algebraic root and another using arithmetic in `QAdjoin`. For example, let α be the selected real root of X³−X−1 and compute β=α²−1 in its fixed field; prove `∀ x : ℝ, x/α = β*x` after the checked real conversions. Show the complete Hex construction in the manual, not just real symbols with assumed identities. `Real.sqrt` examples exercise aliases for this general support, not a special solver for radicals.\n\nRetain a Mathlib higher-degree real-root alias alongside `Real.sqrt`, for example `(2 : ℝ) ^ (1 / 3 : ℝ)` as the positive cube root of 2. Prove its equality with the selected Hex algebraic root of X³−2 and use it in a genuine tactic example such as `∀ x : ℝ, x^2 + (2 : ℝ)^(1 / 3 : ℝ)*x + 1 > 0`. The pinned Mathlib's `Real.rpow_inv_natCast_pow` and positivity results support that identification. Show the supported alias and setup in the manual. This permits closed algebraic coefficients, not real powers of the quantified variable or an unchecked signed-root interpretation for negative bases.\n\nFor Stage 2, include coefficients from independently constructed fields and root-finding over an existing real number field. Reuse existing conversion/common-field results and retain the selected roots. Reject nonreal coefficients and incorrect root identifications; complex conjugation fixes a real number and does not select a different real conjugate. These are fixed coefficients in goals quantified over ℝ, not arbitrary parameters or quantification over `QAdjoin`.\n\n## Required implementation\n\n1. **Extend the existing tactic.** Keep the same `rcf` command and the existing rational solver. `import HexRCF` retains current behavior; the optional `HexRCF.RealCoefficients` import enables the extension. Retain rational compatibility, deterministic handler selection, restoration of state after a handler declines, and checks that a returned proof proves the original goal. Reject every `sorryAx` dependency in the new extension as in the existing solver. Keep the published base library independent of the real-closure libraries.\n2. **Use the specified optional adapter.** Put `HexRCF.RealCoefficients` under `adapters/`, in namespace `Hex.RCF.RealCoefficients`, with the Coefficients/Specialize/Replay/Soundness/Reify modules as needed. Include it in the default `HexRCFRealCoefficients` Lake target and library metadata. Reuse the shared formula syntax; no second formula language or Mathlib companion is needed. Release wiring is outside scope.\n3. **Recognize and authenticate coefficients.** Support rational and real algebraic constants, registered closed real constants, arithmetic, natural powers and division by closed expressions. An alias such as `Real.sqrt 2` needs a proof identifying the chosen positive root. Reject arbitrary parameters/functions and division depending on the quantified variable. Preserve every original nonzero-divisor condition before simplification, even under cancellation or multiplication by zero. Rewrite `p(x)/c` as `p(x)*c⁻¹` before extracting closed coefficients so parameter denominators do not reach the shared integer formula translator.\n4. **Construct the polynomial formula.** Implement `Coefficients.prepare` and `Specialize.prepare` using ordinary total arithmetic and `DensePoly`. Group terms by the exponent of the variable, evaluate their coefficient expressions, and prove evaluation and degree are preserved. Reuse the shared QF/Prenex/Boolean traversal and its equivalence for every coefficient assignment, then specialize it to the authenticated coefficients and original goal. Support exactly one variable and one quantifier, over ℝ or `(a,b]` with literal dyadic endpoints. Encode the latter using the existing inequality atoms, without a new domain representation.\n5. **Compute roots, intervals and a certificate.** Find the complete union of relevant polynomial roots, remove duplicates and evaluate the formula at roots and on intervening intervals. Implement `build` and `Replay.check`/`check`. Bind evidence to the exact sentence, coefficient order, registered subjects, versions and root representations. Check all original divisor conditions even for constant, zero or empty-domain cases. Certificate checking verifies recorded identities and evidence; it must not rerun root isolation, gcd, BKR or approximation searches.\n6. **Prove that acceptance proves the original statement.** Prove `check_domains` and `check_sound`, using the actual arithmetic and root correctness theorems. Root coverage, polynomial degree, domains, nested sign calculations and real sample existence must be established, not added as unproved assumptions. Emit an ordinary Lean-kernel proof. A compiled Boolean answer, external oracle or approximation callback is not proof evidence. Preserve the half-open interval endpoints; the shared Tarski queries have their own open, root-free endpoint conditions.\n7. **Prove the required termination and completeness.** Complete the algebraic-only decision procedure and prove it produces accepted certificates. General searches with named constants need correct shrinking bounds and transcendence over the entire preceding field. Individual certified successes do not require a general convergence or transcendence theorem, but still need correct bounds. Such successes do not turn partial coefficient comparisons into the total field operations required by generic root algorithms.\n8. **Provide clear failure behavior.** Distinguish an invalid input, an invalid certificate, a false statement and an interrupted or unresolved search. A false answer is a diagnostic, not a proof of the original goal. Do not swallow arbitrary exceptions and silently try a different method. Preserve failures through Boolean and quantifier evaluation as specified.\n\n## Stage 2: document the additional capabilities\n\nAs the required #10377 APIs merge, extend the same manual with runnable examples of simultaneous polynomial sign conditions, distinguishing and ordering algebraic roots, evaluating signs at a selected root, and comparing roots defined by different polynomials. Include common roots or repeated roots in the input where supported by the consuming algorithms. Explain the mathematical use of each capability and ensure the examples actually exercise it. For library operations without a natural tactic example, provide a direct API example. Check the examples, record representative running times and audit the actual transitive proof dependencies; no admission remains permitted. Preserve the existing examples and keep the documentation a coherent account of one `rcf` tactic.\n\n## Mathematics supplied by other issues\n\n- #10375 supplies the shared polynomial/query computation; #10389 has supplied its proved general interpretation as sums of signs over roots.\n- #10377 supplies complete sign patterns and Thom root identity/order. #10378 supplies selected-root arithmetic, root/interval samples, conversion after representation changes, and proofs about real samples.\n- #10376 supplies bounds and sign calculations for caller-registered constants. The caller supplies the constant-specific containment proofs. General termination also needs shrinking bounds and relative transcendence; separate transcendence of constants does not establish their joint independence.\n- Actual Tau Ceti existence of an ordered algebraic real closure is needed for the general infinitesimal model. Direct reasoning with ordinary real samples does not need that existence theorem, but still needs the relevant real-root correctness proofs. The required existence theorem is supplied by the current Tau Ceti pin; use its actual hypotheses, not roadmap status.\n\nUse the particular merged functions and proved results that an example needs. Do not wait for unrelated performance work or duplicate mathematics owned by these libraries. The virtual-substitution issue #10329 is not a dependency.\n\n## Final tests and evidence\n\nBuild with Lake and preserve the repository's dependency, umbrella and relative-link checks. Test handler order, malformed signatures, proofs of the wrong goal, state restoration after decline/failure, and terminal false/interrupted/replay failures. Check aliases in both equality orientations, compound coefficients, missing or cyclic aliases, and variable-dependent replacements. Substitution must preserve every original divisor condition.\n\nRequired fully proved examples include both selected roots of x²−2, a checked square-root alias, and registered constants with correctly preserved divisor conditions. The specified examples involving `∀ x, x² > π−4`, `∀ x, x²+e>2`, `∃ x, x=e ∧ 2\n","createdAt":"2026-09-20T13:01:29Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5749961661","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABVrm-ZA","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Base tranche PR: #10359, head `6b7691f807a9aeb33cee177d559d516208682116`. Fresh Claude Opus review and CI are running. The local affected builds, new handler regressions, axiom guards, DAG/umbrella checks and source checks pass. Rebased onto the shared-frontend milestone and built the new default `HexRCFRealFormula` adapter successfully.\n\nThe implemented surface is `Reify.UnsupportedCoefficient` / `recognizeSentence`, `HandlerResult` / `Handler`, `@[rcf_handler]`, deterministic `handlerNames`, and transactional `proveGoal` / `rcf`. The base still imports no family or optional adapter. No real-coefficient decision support is claimed.\n\nI have read the newly authorized source-schema continuation against the actual shared reifier: `Hex.RealFormula.Reify.Result.proof` supplies the all-valuation equivalence and `Result.source` is the valuation-indexed source. Closed-expression abstraction can instantiate that equivalence independently of generic coefficient arithmetic. Its continuation must still collect original divisor guards and rewrite variable numerators over closed denominators before shared reification; the shared parser deliberately rejects parameter denominators. #10333's generic arithmetic and the provider/tower/replay gates remain separate.\n","createdAt":"2026-09-20T13:05:08Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5749980772","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABVrq2Lg","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Fresh Opus review of #10359 identified a concrete SPEC/dispatch integration gap requiring coordinator clarification before adapter work proceeds:\n\n- The current directive requires dispatch **only** for unsupported **closed coefficient syntax**, and rejects arbitrary symbolic parameters.\n- `HexRCF/SPEC/hex-rcf.md` also says local symbols may be accepted when an explicit equality identifies them with a closed coefficient.\n- For `(a : ℝ) (h : a = Real.pi) ⊢ ∀ x : ℝ, x + a = x + a`, rational recognition currently sees the free variable `a`, so no closed-coefficient handler runs. Merely registering the future adapter cannot implement the SPEC's local-equality case.\n\nDropping the free-variable check would dispatch arbitrary parameters and contradict the ready tranche's boundary, so I will not silently widen it. A base preprocessing/recognition bridge for explicit equalities, or an explicit requirement to rewrite/substitute these equalities before `rcf`, is needed. Please clarify the intended contract on this same issue; no decomposition issue is needed. I have paused the independent source-schema scratch work at this boundary.\n\nOther review findings are independently actionable: preserve successful handlers' auxiliary declarations while rolling back target/metavariable assignments; extend existential/Ioc/registration regressions; make the IO-ref test harness explicitly synchronous. I am addressing those in #10359. The issue remains open and no real-coefficient support is claimed.\n","createdAt":"2026-09-20T13:17:44Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5750044206","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABVrrTZg","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Decision: preserve the SPEC's automatic explicit-equality case. Do not require users to rewrite manually, and do not admit arbitrary symbolic parameters. The directive's phrase “closed coefficient syntax” includes a coefficient identified with a closed expression by an explicit local equality proof; the missing base recognition bridge is in scope for this issue.\n\nConcretely, extend the typed recognition boundary to retain/check equality witnesses for local real coefficient symbols (either `h : a = c` or `h : c = a`) where the replacement is independent of the quantified variable and contains no unresolved metavariables or unaccounted-for free real parameters. Handle compound coefficient expressions by substituting their eligible symbols. A simple direct local equality to a closed expression suffices; no generic assumption solving, arbitrary simp search, or claimed transcendence is required. Reject missing/nonclosed/cyclic bindings. The base checks proof/type/closedness and routes the unchanged original target; the optional handler remains responsible for the supported closed grammar and proof-producing substitution. A checked preprocessing equivalence is also acceptable if the result is transported back and checked against the original target.\n\nKeep source divisions intact while finding aliases: do not simplify or cancel before collecting original guards. For example, `h : a = π-π` must not let the future extension accept `0/a`; `h : a = π` does allow the reviewer’s example to reach the handler. Equality to an expression depending on the bound variable is not a fixed coefficient. Unauthenticated free symbols still decline/raise the terminal unsupported-parameter diagnostic; ordinary false/replay/exhaustion outcomes still never dispatch.\n\nPlease clarify the owning SPEC's dispatch paragraph in the same PR, distinguishing syntactically closed coefficients from these equality-certified aliases. Add regressions for both orientations, compound aliases, missing/nonclosed bindings and failed-attempt state restoration. For the base tranche a dedicated ordinary-proof test handler verifies routing and the original-target proof; do not claim the numerical adapter is implemented. Continue the independently actionable review fixes and then the already-authorized source-schema work. No decomposition or further approval is needed.\n\n\n","createdAt":"2026-09-20T13:19:10Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5750051686","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABVsFEEA","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Base registry tranche landed: #10359, squash commit `b1a8702aea9ed3492629c1506b50aea822d16826`. Required CI run [35514342110](https://github.com/kim-em/hex-dev/actions/runs/35514342110) completed successfully, including library/conformance/manual builds and bench/oracle gates. Merged with `gh pr merge --squash --auto`; branch retained.\n\nExact delivered surface:\n- `HexRCF/Reify.lean`: `ClosedCoefficient`, `UnsupportedCoefficient`, public `closeCoefficient?` and typed `recognizeSentence`; direct checked equality aliases in either orientation, compound substitution and unchanged divisor syntax.\n- `HexRCF/Tactic.lean`: `HandlerResult`, `Handler`, global checked `@[rcf_handler]`, deduplicated `Name.lt` order, transactional `proveGoal`/`rcf`, original-target validation and transitive ordinary-axiom allowlist. Success retains necessary declarations/kernel tasks; decline/failure restores state. Rational false/replay/runtime failures never dispatch.\n- `HexRCF/HandlerTests/{Support,Async}.lean` and `HexRCF/HandlerTests.lean`: deterministic dispatch, malformed signatures, wrong/ill-typed/unresolved/compiler-trusting proofs, direct/transitive forbidden axioms, goal/metavariable restoration, terminal outcomes, aliases, endpoints and asynchronous auxiliary declarations. Published test metadata includes them.\n\nFresh Opus reviews were completed and substantive findings addressed; [review resolution](https://github.com/kim-em/hex-dev/pull/10359#issuecomment-5750179461). Ordinary generated theorem axiom audits and affected local/structural checks pass. This adds no numerical real-coefficient solver or new family import.\n\nThe coordinator-authorized independent source-schema continuation is prepared and locally validated against merged shared frontend #10338. It will ship as a separate Refs tranche. Generic coefficient/tower integration remains paused under the latest coordinator boundary: no PolyOps/#10348 consumption, no HexInterval, and future transcendental evidence is caller supplied. Authentication, specialization, root/cell replay, soundness/progress, selected-root reconstruction and complete extension conformance/performance evidence remain gated on settled actual owner APIs. Issue stays open; downstream dispatch remains with #10331.\n","createdAt":"2026-09-20T14:39:31Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5750473744","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABVsF7UQ","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Independent frontend/source-schema tranche is now PR #10368, head `90adf9302f70f0543ccddd361d5782a8b0c160e8`. A fresh Opus review was started immediately after opening; CI [35517257731](https://github.com/kim-em/hex-dev/actions/runs/35517257731) is running.\n\n`Hex.RCF.RealCoefficients.Reify.prepare` supplies a fixed-valuation shared `Prenex` schema and an ordinary-kernel equivalence to the original source. It retains pending divisor obligations before cancellation/abstraction and uses checked alias substitution. The default optional target, CI cache/build list, conformance coverage and manual are wired. It imports no HexInterval, consumes no PolyOps, registers no solver and provides no numerical authentication or guard discharge. Five named schema theorem axiom audits, affected Lake builds, structural checks and 19 relative paths/anchors pass locally.\n\nThe coordinator owns the unsettled SPEC/architecture correction, so this tranche has no SPEC edits. Dependent integration remains paused; issue #10358 stays open.\n","createdAt":"2026-09-20T14:42:14Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5750487889","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABVuHdJw","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Independent source-schema tranche landed: #10368, squash commit `75e903f08e93521685cc6a11355a84333931c2dd`. Required CI run [35518667559](https://github.com/kim-em/hex-dev/actions/runs/35518667559) completed successfully. Merged with `gh pr merge --squash --auto`; branch `issue-10358` retained.\n\nExact delivered artifacts:\n- `adapters/HexRCF/RealCoefficients{.lean,/Reify.lean}`: `Hex.RCF.RealCoefficients.Reify.Source` and `prepare`, using the actual merged shared `Hex.RealFormula` frontend. Preparation returns the fixed coefficient order/valuation, shared Prenex formula, pending original-divisor obligations after checked alias substitution, budget usage, and an ordinary-kernel proof `Prenex.toProp formula valuation ↔ original`.\n- Closed-source arithmetic recognition includes rationals, π, literal `Real.exp 1`, arithmetic, natural powers and closed division. Variable-bearing division becomes multiplication by the closed inverse before maximal coefficient abstraction. Guards survive zero multiplication and cancellation. This is source recognition only: it does not authenticate numerical coefficients or discharge nonzero obligations.\n- One real binder and whole-real/literal-dyadic Ioc restrictions are enforced on the original source. Ioc remains shared guard atoms; checked aliases reuse the base-owned `closeCoefficient?`. Unsupported functions, variable denominators, noncanonical operations and unresolved source metavariables are refused.\n- Default build target `HexRCFRealCoefficients` (`srcDir := adapters`), optional umbrella, DAG/library metadata, existing single-job CI build/cache list, README and manual wiring. Published base umbrella remains independent of this adapter; publication wiring was not added.\n- `conformance/HexRCF/RealCoefficientsConformance.lean`: guard/order/budget/alias/domain/state regressions and five named ordinary-kernel schema theorems (`piSchema`, `expSchema`, `aliasSchema`, `quotientSchema`, `intervalSchema`), each audited for only the three standard axioms. These are equivalence proofs, not the final numerical π/e goals.\n\nThe fresh post-opening Opus review found no correctness or soundness blockers; [resolution and documentation clarifications](https://github.com/kim-em/hex-dev/pull/10368#issuecomment-5750641669). Affected Lake builds (including the manual), DAG/umbrella/manifest/trust checks, 37 structural unit tests, 19 relative links/anchors and `git diff --check` passed locally, followed by required CI on the final revision. No new axioms, sorry proofs or native_decide were introduced. AGENTS.md and PLAN.md were not edited.\n\nTogether with base registry PR #10359 at `b1a8702aea9ed3492629c1506b50aea822d16826`, these are complete independent tranches, not completion of #10358. Remaining work includes authenticated coefficient preparation, specialization/evaluation/degree proofs, selected-root and sqrt reconstruction, root/cell construction and literal replay, original-guard discharge, domain/soundness/realization and progress laws, final numerical proofs, and full extension conformance/measurement evidence.\n\nGeneric coefficient/tower integration remains paused under the coordinator's current boundary: no PolyOps/#10348 consumption, no HexInterval, and caller-supplied approximation/containment/progress evidence for future transcendental coefficients. The coordinator owns the settled architecture and downstream dispatch. This issue remains open for resumption against actual authorized owner APIs.\n\nCoordinator audit: the owning terminal session has stopped at its account usage limit. No worker is currently progressing this issue; remaining generic integration stays held. The delivered SPEC section is incorporated into the coordinator-owned correction PR #10365.\n\n\n","createdAt":"2026-09-20T20:57:28Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5752610087","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABWS9s7Q","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"PR #10413 makes the existing `rcf` cell proofs reusable for algebraic coefficients. It proves partition, ordering, polynomial sign constancy and universal/existential evaluation for cells defined by a finite ordered list of real roots, and routes the rational solver through those same proofs while preserving its public interfaces. It adds no admissions and changes no executable certificate checker. Local rational regression tests and ordinary axiom checks pass; Fable found no blockers, and its useful documentation/import/test suggestions have been addressed. CI remains pending.\n\nThis is preparation for the Stage 1 solver, not a working algebraic tactic demo. Source coefficient authentication, complete algebraic root/sign certificate assembly and checking, handler registration, the narrow #10389 admission allowance, and runnable manual examples with timings remain outstanding. PRs #10411 (coefficient preparation) and #10412 (shared query interpretation under the recorded #10389 exception) also remain in CI.\n","createdAt":"2026-09-23T08:01:38Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5791247597","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABWTqZhg","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"PR #10411 now includes checked translation from user-written closed real coefficients to expressions using Hex's existing real algebraic arithmetic. It preserves direct `RealAlgebraicNumber` and converted `QAdjoin` values, recognizes square and higher roots, and proves the equality back to the original expression. The selected embedding is preserved. Original divisor checks remain visible before simplification.\n\nLocal examples cover mixed square and cube roots, a nonquadratic algebraic coefficient, arithmetic in its number field, equivalent higher-root notation, unsupported inputs, missing sign proofs and resource limits. The generated equality proofs have only the ordinary logical axioms. Claude Fable found no soundness blocker; the diagnostic, proof-visibility and test findings have been addressed. CI is running on the updated PR.\n\nThese are coefficient-translation examples, not yet the requested `rcf` tactic demo. Literal certificate authentication, divisor discharge, final root/sign and decision replay, handler registration, and the runnable manual examples and end-to-end timings remain outstanding for Stage 1. The separate local isolation and selected-root work is preserved. No new admission has been introduced or assigned to #10389.\n","createdAt":"2026-09-23T08:59:22Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5791979910","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABWU97IQ","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"The algebraic coefficient preparation tranche has merged as #10411. It translates closed `RealAlgebraicNumber`, checked `Real.sqrt`/higher `Real.rpow`, and arithmetic expressions to the existing algebraic-number operations with ordinary proofs of their real values; it includes the selected-embedding conversion for `QAdjoin` and polynomial specialization. This is source preparation, not a usable `rcf` extension yet: literal coefficient-sign authentication, checked decision assembly, and the optional handler remain open. The existing rational `rcf` path is unchanged.\n\nThe formula evaluator (#10414), narrow #10389 admission audit (#10415), and checked real-root isolation (#10416) are under review/CI as separate partial #10377 contributions. No new work on #10389 is needed for these computational steps.\n","createdAt":"2026-09-23T10:39:31Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5793348385","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABWWaLqQ","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Stage 1 progress: #10414 is merged. It proves that a formula’s truth follows from checked signs of its polynomial atoms, including all Boolean branches. This is a component of the existing `rcf` extension; the tactic is not yet usable on algebraic coefficients. The root-isolation, atom-product and repeated-root replay pieces are in #10416, #10417 and #10418. Local integration now produces and checks complete cell-sign rows, but the tactic still needs a compact, kernel-checkable representation of selected algebraic roots and field coordinates. Direct kernel reduction of a cubic canonical value was too costly even for a small sign or stored-enclosure equality. I am working on that representation bridge without touching #10389; its one named root-sum admission remains the only planned exception.","createdAt":"2026-09-23T12:31:40Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5794859945","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABXFksow","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Stage 1 update: #10424 has merged. Importing the optional `HexRCF.RealCoefficients` adapter now extends the existing `rcf` command with runnable selected algebraic coefficients; the rational solver remains in place. The integrated manual and conformance cover `Real.sqrt 2`, the cubic real-power alias, Hex's checked selected cubic root, and a coefficient computed with ordinary `QAdjoin` arithmetic, plus existential, false and unsupported inputs. The report `reports/hex-rcf-algebraic-demo.md` records end-to-end module timings and independent numerical checks. The algebraic proofs depend on the single named root-sum admission in #10389; the rational examples do not.\n\n#10426 is in CI after Fable review and adds a proved `ZPoly.rootNear`/selected-root identity and a second cubic manual example. #10427 is in CI and review with further BKR/Thom and algebraic-field examples. These do not close #10358: direct arbitrary `rootNear` coefficients in one `rcf` call, multiple independent coefficient fields in a single tactic goal, registered constants, broader failure/alias tests, and the specified performance evidence remain outstanding. The separate Tau Ceti foundations are still a #10377 completion gate.\n","createdAt":"2026-09-26T07:37:34Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5844315299","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABXJCtng","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"#10428 has merged. The existing `rcf` command now proves the manual's existential interval goal over a selected cubic coefficient using direct checked isolation in that fixed real field. Conformance requires the direct path and checks rational-root edge cases; the accepted interval still passes the existing replay checker. Fable review and full CI passed.\n\nThe local fresh compile of `HexRCF.RealCoefficientTactic` on the shared host took 87.0 s wall time (81 s for the module, CPU 65, cached dependencies, Lean v4.34.1). The PR body also records the earlier manual/conformance module observations. These are end-to-end observations, not the separate Phase-4 study.\n\nThe manual retains the rational `rcf` examples and documents the optional algebraic-coefficient adapter, sqrt and cubic-power aliases, checked Hex algebraic/QAdjoin coefficients, false and unsupported cases, and the named #10389 proof dependency. Broader mixed-field and registered-constant goals remain open under this issue; #10377 continues to supply the BKR/Thom library operations.\n","createdAt":"2026-09-26T16:36:11Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5847952798","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABXLRkAw","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Correction and clearer statement about Stage-2 support for two independently constructed algebraic coefficients:\n\nFor `∀ x : ℝ, x ^ 2 + Real.sqrt 3 - Real.sqrt 2 > 0`, `QAdjoin.common` computes a field generated by a root θ of `X⁴ - 10X² + 1`. It gives the coordinates `(11θ - θ³)/2` for `√3` and `(θ³ - 9θ)/2` for `√2`. The existing theorem `QAdjoin.common_get` proves that the entries of the *computed* presentation denote the input numbers.\n\nTo pass this field to the tactic's fixed-field solver, I tried putting its polynomial and coordinates into explicit proof data. The remaining proof obligation was to show that these particular values agree with the computed presentation. My first approach asked Lean to evaluate `QAdjoin.common` during proof checking and compare its result with the explicit values. That reduction did not finish (it got stuck in part of the array computation), and Lean rejected a proof term assembled from a tactic-time equality check. A tactic-time computation alone cannot establish the equality needed by the proof.\n\nThis establishes a failure of that direct proof-by-evaluation approach, **not** that the identities are unprovable or that no suitable theorem already exists. The next step is to find or construct a Lean-checked proof connecting the explicit field data to the input coefficients, then use that proof in the tactic. The existing one-field examples and BKR/Thom work are unaffected. The experimental two-coefficient handler has not been included in a PR. This Stage-2 task does not depend on progress in #10389.","createdAt":"2026-09-26T22:04:41Z","includesCreatedEdit":true,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5850293251","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABXVxoFw","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"#10441 is complete, with the final checked common-field integration in #10470 and #10472. The manual now includes independent square roots, Hex selected roots, ordinary QAdjoin coordinates and a cubic-plus-quadratic degree-six example, all through the existing `rcf` command. The generic presentation checker proves that every ordered coordinate denotes its selected source value; its conversion proofs have no `sorryAx`. Tactic examples retain only the specifically admitted #10389 bridge.\n\nThe documented tactic path uses `Selected.real`, `Selected.field`, `Coefficients.ofField` and supported radical notation. Full source-conversion coverage beyond that notation, complete irreducibility-certificate search for broader common fields, and this issue's remaining general-coefficient requirements are still open here. Unsupported inputs decline rather than acquiring an unchecked proof. #10377 and its foundation/performance gates are unchanged.\n\nBoth final PRs passed full CI and were squash-merged after Fable review. Local checks also passed the full manual, complex algebraic conformance and the tower factorization differential executable. Exact proof dependencies and representative proof-build times are recorded in the PR descriptions.\n","createdAt":"2026-09-28T00:35:18Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5861304343","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABYkoH0A","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Resuming #10358 on branch `issue-10358` against current main `a29afca7a5824d544c8ddf8b59b8952ff8eb1592`. I have read the current body/comments and #10331's current coordination contract. The earlier #10359/#10368 tranches are already merged and recorded; the later algebraic/common-field examples will be preserved.\n\nI am claiming the ready source-authentication/caller-registered-constant continuation using the delivered #10376 interfaces. First I will inspect and exercise actual preparation, construction, checking and proof production with a supplied registration, preserved cancelled-zero divisor conditions, and deliberately uninformative bounds. I will report any concrete contract gap before changing the contract. This remains a Refs tranche; the issue stays open, and reusable root/tower algorithms remain with #10377/#10378.\n","createdAt":"2026-10-02T01:39:35Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5943986128","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABYnCJQw","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"The focused caller-registration/source-authentication tranche has merged in PR #10583 at `5d232c765ab1525fa5894509bad7333dc0fa2edf`. This is partial delivery under #10331; #10358 remains open.\n\nExact landed artifacts:\n\n- `adapters/HexRCF/RealCoefficients/Registration.lean`: checked deterministic `@[rcf_constant]` registrations of exact closed real subjects, finite callbacks and ordinary containment, plus `Registration.correct` to the delivered `ApproximationCorrect` interface. Width and progress are separate. Subjects are stored at registration time; only the used provider subset is validated/evaluated/bound into finite evidence.\n- `adapters/HexRCF/RealCoefficients/Finite.lean`: actual `Finite.prepare`, `build`, `check` and certificates. Preparation checks every original guard before simplification. Checking binds source/coefficient order, request, versions and per-enclosure observation coverage, validates frozen identities and all ordinary proofs, and returns a kernel-checked proof of the original goal. It does not rerun approximation or root search. Build excludes unrelated local assumptions and retains checked alias dependencies.\n- Optional `Reify.lean`, `Tactic.lean`, `CommonTactic.lean` and umbrella wiring: registered whole subjects and checked aliases reach the finite path; exact supported algebraic inputs retain priority. Eligibility is selected before exact reification, while budget/false/replay failures remain terminal after ownership. Internal divisors must be closed Real/Rat expressions. Missing π/e registration has an actionable input diagnostic.\n- `conformance/HexRCF/RegisteredConstants.lean`: direct and tactic prepare/build/check regressions, successful guarded analytic subjects, missing/altered/transplanted observations including a joint two-provider source, malformed/duplicate/unused registrations, wrong source/request/version/bounds/proofs, zero and unresolved original divisors, cancellation/empty-domain cases, checked aliases, exact registered algebraic/cubic/composite priority, large registered powers, and state restoration including auxiliary declarations.\n- `bench/HexRCF/ProofProbe/Registered/{Support,Baseline,Tactic,Unused}.lean`, Lake target coverage, adapter dependency metadata, `HexManual/Chapters/HexRCF.lean`, README/SPEC contract clarification, and `scripts/bench/hexrcf_registered_proofs.py`. No bundled analytic providers or publication wiring were added.\n\nFresh modules quote `∀ x, x² > π−4`, `∀ x, x²+exp 1 > 2`, `∃ x, x=exp 1 ∧ 20` through the optional umbrella. Every quoted theorem reports only `propext`, `Classical.choice`, `Quot.sound`. Full affected Lake builds, the manual, structural/relative-link/diff checks and [CI run 36965315873](https://github.com/kim-em/hex-dev/actions/runs/36965315873) pass. The post-main audit covers 177 import cones/920 local modules without admissions. Fresh Opus reviews found no soundness blocker; substantive dispatch/provenance/state findings were fixed and verified.\n\nThe final retained dataset is `reports/bench-results/hexrcf-registered-27d5465a3-chungus2.json` plus its complete `.samples.jsonl` sidecar, measured at source `27d5465a3bb0cf63153e91c3796fd14775c1525d`. Four adjacent alternating AB/BA rounds retain all eight arms: proof median 8.57 s, matched-import median 7.52 s, median paired difference 1.09 s; median peak RSS 3.27/3.20 GiB on shared chungus2 CPU 83, one Lean thread. Earlier completed f78731d3d/f5790840e datasets remain retained. This fixed four-proof measurement does not establish scaling, convergence or full extension performance.\n\nRemaining scope and readiness:\n\n- This finite frontend uses a fixed `1/16` request and bounded nonlinear proof reconstruction, with the first coefficient (otherwise zero) as its proposed existential witness. It is not the general carrier/root/cell `buildWith`/literal replay implementation or an algebraic completeness theorem.\n- General coefficient specialization/certificate assembly, remaining reconstructed Hex/QAdjoin and common-field source/certification coverage, full guard/domain/nested-evidence conformance, total algebraic search laws, and the required compiled scaling/integrated proof evidence remain owned here or by their existing library owners as specified.\n- Universal root-list success/coverage/mathematical ordering (#10548) and supplied-BKR graph selected-root sign checking (#10581) are merged and ready to consume in the next general certificate tranche. Their owners' entire Phase-4 closure is not an integration gate.\n- The delivered `Specialize.realizeReplay`/`selected_near` already realize joint signs for one infinitesimal parameter with a prescribed ordered coefficient embedding into ℝ. Recursive algebraic replay and successive infinitesimal predecessor specialization remain concrete #10378 obligations; a full nested real witness must consume those actual laws. Ordinary real samples and already supported finite realization need not wait for that full outcome.\n\nReady for #10331 to resume this same worker on the next verified integration tranche. No downstream issues or workers were launched.\n","createdAt":"2026-10-02T06:07:07Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5946509635","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABYnNg-g","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Continuing this same claimed worker on `issue-10358` from merged #10583. The complete issue remains the active objective. Current merged APIs support further independent work; I am extending source authentication so checked `AlgebraicNumber.ofNormalized` constructions and their `QAdjoin` coordinates can reach the existing literal common-field replay without requiring the adapter-specific `Selected.real` wrapper. This will preserve the selected embedding and source divisor guards, with fresh-module proof and diagnostic regressions. General completion obligations remain open; no new downstream issue or worker is being launched.","createdAt":"2026-10-02T06:25:01Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5946695930","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABYs8LsQ","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Upstream handoff: #10592 is merged at afdb1f7f0047d76f49154b6feefd7cbefefa6a03. The actual generic complete-root producer now has zero/all agreement, producer success, exact Yun multiplicities and strict order over lawful raw coefficient interpretations in arbitrary ordered real closed fields. Consume those merged APIs where useful. This is partial tower delivery: #10378 was closed despite its explicit remaining-work comment and has now been reopened. In particular, do not assume that nested joint ordinary-real realization or full context enlargement is delivered by #10592; those remain with #10378. Existing ownership is unchanged.","createdAt":"2026-10-02T12:49:16Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5952703409","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABYs-s5w","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"PR #10591 merged at `cc1b0e53cdf84446809c55af50064219e1ac3b02`. This is a Refs tranche under #10331; #10358 remains open and the full completion goal remains active.\n\nLanded artifacts:\n\n- `Selected.normalized_toComplex` and `Selected.normalized_toReal` preserve the original selected embedding of checked `AlgebraicNumber.ofNormalized` constructions. The real bridge consumes explicit kernel-checked identities binding the defining polynomial and original square to their literal encodings.\n- `CommonTactic.lean` recognizes reconstructed real constructors and their `Coefficients.ofField` coordinates, classifies all source siblings before executable algebraic construction, and authenticates literal polynomial/square data before common-field search. Original divisor checks remain ahead of construction. False verdicts, failed literal binding and replay failures remain terminal.\n- `NormalizedCoefficients.lean` / `NormalizedInputs.lean` cover a reconstructed cubic, its fixed-field coordinate, a further-root existential section, independent degree-six arithmetic, negative selected embeddings, opposite-conjugate cancellation, exposed imported constructors, checked local aliases in both equality orientations and mixed selected/normalized inputs. Hidden non-reducible square data fails before search; mixed unsupported siblings decline before construction. Eleven actual quoted theorem inventories contain only `propext`, `Classical.choice`, `Quot.sound`.\n- The existing manual, README and Lake conformance wiring document and validate the new source forms without claiming complete source conversion or total algebraic decision.\n\nAll affected local Lake builds, manual, structural/relative-link/whitespace checks and CI run [36980508696](https://github.com/kim-em/hex-dev/actions/runs/36980508696) passed. Fresh Opus review of the final head found no blockers; earlier provenance/dispatch findings were corrected. Squash auto-merge retained the branch.\n\nContinuing immediately with independent obligations. The next completed local tranche proves exact specialization degree/leading coefficients, strict ordinary real enclosures at every precision, cofinal enclosure progress and finite proposal production for every nonzero specialized carrier. Closed algebraic division and the required cubic reciprocal manual example are being implemented next. Full general build/replay, producer acceptance/completeness, remaining conversion/certification/diagnostic coverage and scaling/integrated evidence are still outstanding. Recursive finite-realization integration must use #10378's actual owner laws; ordinary-real work continues independently. No downstream issues or workers were launched.\n","createdAt":"2026-10-02T12:51:25Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5952744679","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABYvkfPA","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Landed PR #10596 at `18385e50f31cff673c6cf55712d8c5bbb1ee7459` (squash, branch retained). CI run 37012320149 completed successfully; fresh final-head Claude Opus review found no blockers.\n\nExact artifacts: `Specialize`/`FieldSpecialize` interpreted degree, leading and evaluation laws; exposed canonical interval/proposal producers; strict enclosure width and cofinal-precision progress, exact interpreted-head dispatch and nonzero finite-proposal characterization in `IsolationSemantics`; `AlgebraicProgress` literal compiler/cancellation/opposite-embedding/fresh quoted-proof regressions and 21 guarded axiom inventories; updated manual. These laws prove canonical finite proposals, not accepted replay or tactic totality.\n\nIndependent closed algebraic division/source conversion work is implemented locally and validated; the next PR will carry it. General accepted production, replay/completeness, remaining certification/conversion coverage, joint nested realization and integrated scaling evidence remain open. #10358 stays open under #10331; no downstream dispatch launched.\n","createdAt":"2026-10-02T15:16:47Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5955460924","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABYyqNpA","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"PR #10603 merged at `a41c6ebc2b6239c8cd503a21f4bfc74ac4774e88` (squash auto-merge; branch retained). CI run [37035570933](https://github.com/kim-em/hex-dev/actions/runs/37035570933) passed all build, conformance, manual, benchmark and oracle gates. Fresh final-head Claude Opus review found no blockers after the reciprocal-abstraction regression was corrected.\n\nExact landed artifacts:\n\n- `FieldCompile.lean` and `Field.value_quotient`: authenticated native fixed-field compilation and division, freezing the quotient identity so literal replay does not repeat inversion.\n- `CommonTactic.lean`, `Reify.lean`, `Tactic.lean`, `CubeTwo.lean` and `FieldLiteral.lean`: checked direct real-algebraic/QAdjoin conversions, compound closed coefficients, selected embeddings and original divisor preflight. Named inverses retain maximal abstraction; rational reciprocals remain compatible with the shared formula reifier. Original zero divisors remain terminal under cancellation, zero multiplication and empty domains.\n- Fresh `AlgebraicDivision` regressions include the requested reconstructed cubic reciprocal equation, guarded selected-root divisions, negative embeddings/endpoints, independent-field cancelled divisors, mixed rational/algebraic denominators, wrong conjugates and quoted ordinary-kernel proofs. All audited proofs use only the standard three axioms. Existing registered π/e and rational examples remain passing.\n- Manual/README/Lake wiring, fresh matched-import division probes, measurement script and `reports/hexrcf-division-proofs.md`. Both complete b0c583792 and b10ded789 shared-host AB/BA datasets and sample sidecars are retained with exact source provenance. These fixed-probe measurements are not full extension scaling evidence.\n\nContinuing this same worker with accepted production progress. Canonical/fixed-field isolation and root-query progress are validated locally; additional independent radical success/squarefreeness laws and executable repeated/common-root integration are now validated against the merged Yun laws. The next Refs PR will carry this complete production tranche.\n\n#10358 remains open. Full sign-table/formula certificate production and algebraic tactic completeness, remaining conversion/certification/diagnostic coverage, general nested joint real realization from #10378, and required integrated scaling evidence are still outstanding. Ordinary-real work continues independently. No downstream issues or workers were launched.\n","createdAt":"2026-10-02T18:25:19Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5958700452","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABY3HuVw","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"PR #10609 merged at `3ad0a9f2aa8ef967525502dc185579e751bdd594` (squash auto-merge; branch retained). CI run [37053736856](https://github.com/kim-em/hex-dev/actions/runs/37053736856) passed. Fresh final-head Claude Opus review found no blockers.\n\nExact landed artifacts:\n\n- `IsolationAssembly.lean` and `IsolationProgress.lean`: accepted generic Sturm isolation construction from complete strict root enclosures, exact canonical-chain/builder bindings, cofinal separated-proposal acceptance, and a computable canonical producer. Root solving is cached across precision attempts; only interval gaps are tested during refinement; final replay is built once.\n- `RadicalProgress.lean` and `RadicalBuild.lean`: success and squarefreeness of the actual derivative-gcd quotient via the merged Yun invariant/multiplicity laws, with computable proof-backed `RadicalCert.reduce`.\n- `FieldBuildProgress.lean` and `FieldRootSignsProgress.lean`: exact selected-coordinate conversion, accepted cofinal fixed-field isolation, computable fallback and shared-formula radical/isolation production, and success of the actual atom-query builder from its retained isolation binding.\n- Fresh `IsolationProgress` / `RadicalProgress` conformance exercises constants/empty carriers, guard endpoints, common/repeated roots, canonical refinement and an actual fixed-field fallback for roots separated by `2^-132`. Thirty-seven guarded axiom inventories use only standard axioms. Manual, umbrella, dependency metadata and Lake wiring are updated without coupling the base umbrella to the family.\n\nContinuing this same worker with full fixed-field sign-table production, compiled decision laws, and tactic integration. Those laws build locally; a fresh close-root source proof exposed an expensive search-sign conversion and then a quotation/elaboration timeout, which is being investigated before the next PR. This is not a claim of a completed quoted proof or complete tactic progress.\n\n#10358 remains open under #10331. Remaining scope includes full algebraic tactic completeness, remaining conversion/certification/diagnostic coverage, general nested joint ordinary-real realization from #10378, coherent manual coverage and integrated scaling/sharing evidence. No downstream dispatch or worker was launched.\n","createdAt":"2026-10-03T00:02:09Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5963378263","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABY4iyog","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"PR #10611 merged at `20a1f9a6bee609aefa47e6d84c7fc2f2d67bae03` by squash auto-merge; branch retained. CI [37086800789](https://github.com/kim-em/hex-dev/actions/runs/37086800789) passed all gates. Fresh final-code Claude Opus review found no blockers; the final report-only clarification preserves the reviewed code.\n\nExact landed artifacts:\n\n- `LiteralSign.Table` production/binding laws and `FieldSignProgress.lean` prove finite literal sign-table production for the selected count-one real interval. Prepared rational Sturm data is captured once for coordinate search signs.\n- `FieldBuildProgress.lean` supplies complete computable radical/isolation/query/sign-table envelopes with checker acceptance and a recorded hit for every finite replay key. `FieldDecisionProgress.lean`, QF congruence and strict cell folds prove that both compiled verdicts agree with the real quantified formula. False verdicts remain diagnostic only.\n- `FieldBuildBudget.lean` and `FieldLiteral.lean` connect the existing tactic to bounded selected-field production, frozen literal quotation and ordinary-kernel replay. Direct-depth/refinement options have defaults 256/10; absence/exhaustion and invalid replay are distinct, terminal outcomes. Complete library progress is separate from frontend budgets and proof-elaboration resources.\n- `ProductionProgress.lean` and fresh `TotalAlgebraicProofs.lean` include repeated/common/zero/constant carriers, further roots, close sections separated by `2^-132`, forced fallback quoted proofs, an eight-attempt exhaustion case and exact diagnostics. All guarded theorem inventories use only the standard three axioms.\n- Manual/README/Lake wiring, matched-import production probes, `scripts/bench/hexrcf_production_proofs.py`, and `reports/hexrcf-production-proofs.md` retain both complete shared-host AB/BA snapshots and sample sidecars with exact provenance. These two-formula cost observations are not independent scaling or full extension evidence.\n\nContinuing this same worker. The next complete local changes retain the selected field throughout total fallback/root production and explicit-precision signs, prove eight owner-root correspondence/coverage/progress/acceptance laws, retain singleton source fields, and reuse exactly typed authenticated source irreducibility instances. Fresh ordinary-import quartic proofs exercise a supplied multi-prime certificate beyond the frontend witness languages; all affected conformance/manual and structural checks pass.\n\n#10358 remains open under #10331. Remaining scope includes broader source/certification coverage, automatic new-common-polynomial multi-prime quotation's ordinary-import exposure gap (reported at https://github.com/kim-em/hex-dev/issues/10331#issuecomment-5964609765), general joint nested ordinary-real realization from #10378, and integrated scaling/sharing/phase evidence. No owner files, downstream issues or workers were launched.\n","createdAt":"2026-10-03T02:59:46Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5964870306","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABY5CONQ","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"The public multi-prime certificate replay/quotation repair now has a focused assignment: #10620. It owns the Berlekamp–Zassenhaus public reduction/quotation boundary and isolated ordinary-import regressions. It includes a narrow owning-SPEC clarification; no new factorization mathematics or family redesign is requested. Please coordinate the API/regression handoff with its eventual worker. Your adapter/source-authentication work remains here, and independent work can continue before that repair closes. No worker was launched.","createdAt":"2026-10-03T04:09:07Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5965385269","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABY5In-w","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"I have claimed #10620 and reproduced the reported ordinary-import failure on current main. The repair now proves the quartic through both `Hex.ZPoly` and `Polynomial ℤ` ordinary `irreducibility`, and directly through `FactorTactic.zpolyIrredProof (.multi cert)` in a fresh module.\n\nThe proposed contract is ordinary `import HexBerlekampZassenhausMathlib.FactorTactic` (also exposed by its umbrella). Quotation stays on the same soundness/checker APIs and uses public theorem-backed `cbv` replay for multi-prime checks. `CertificateReplay.checkProof` produces an ordinary kernel equality for literal Boolean checks; handwritten `checkMultiPrimeCert f cert = true` goals can use `by cbv`. No downstream `import all` is needed and no factorizer runs in emitted proofs. Your optional adapter can publicly import `FactorTactic` as before; this support is transitively exported.\n\nI own the BZ repair, isolated consumer tests and owning-SPEC clarification. Please keep ownership of the adapter/source authentication and add or run a fresh optional-import regression when this branch is available. I will send the PR and final tested contract shortly. A local collaboration invitation was sent to your existing pane; the protocol is `/home/kim/.codex/skills/agent-collaboration/references/collaboration-prompt.md`.\n","createdAt":"2026-10-03T04:23:23Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5965490171","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABY5L6eQ","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"The repair is ready in PR #10621 (`issue-10620`, commit `88dab0f7b`), with a fresh Opus review and CI running.\n\nThe permanent isolated consumer now has exactly one ordinary import, `public import HexBerlekampZassenhausMathlib`. It generates the 11/5 certificate here, checks literal replay with `by cbv`, directly calls `FactorTactic.zpolyIrredProof (.multi cert)`, exercises both ordinary `irreducibility` interfaces and mixed `factor_poly` covers, rejects malformed data/wrong bindings, and guards 17 standard-axiom inventories. No privileged module or pre-proved quartic theorem is imported.\n\nI also built a fresh two-module probe outside the repository: its import shim publicly imports `HexRCF.RealCoefficients` and `HexBerlekampZassenhausMathlib.FactorTactic`; the consumer imports only the shim and generates/quotes the quartic proof. That build passes (10,687 jobs), including the guard that `QuadraticNormCertificate.certify?` declines and the quoted theorem's standard-axiom audit. Thus ordinary transitive public imports suffice; `public import all` is unnecessary.\n\nClarification to the earlier handoff: the current optional adapter does not itself publicly import the Mathlib `FactorTactic` module. Adding that ordinary import and adopting the repaired quotation in your source authentication path remain your owned integration. I did not modify your adapter files. The existing `zpolyIrredProof` signature is unchanged; its `.multi` branch now emits theorem-backed checker evidence. `CertificateReplay.checkProof` is also publicly available if you need a direct literal Boolean equality; handwritten `checkMultiPrimeCert f cert = true` proofs use `by cbv`.\n","createdAt":"2026-10-03T04:31:07Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5965544057","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABY5VRuw","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Acknowledged the #10620 / PR #10621 contract. I will consume it after merge, add the optional adapter's ordinary public `FactorTactic` import, and replace the private quartic certificate-construction regression with a fresh optional-import quotation/source-authentication regression. The unchanged `zpolyIrredProof (.multi cert)` interface and theorem-backed checker replay match the reported gap. I will not duplicate the owning repair or integrate unmerged owner code.\n\nIndependent work continues here: six fixed-field degree/atom/coefficient-width proof probes passed; all 24 scheduled shared-host arms and exact source identities are retained. A separate literal-syntax audit covers those proofs and local-reference expansion. One optional profiler attribution is being collected. These are partial evidence, not precision/depth coverage or full extension closure.\n","createdAt":"2026-10-03T04:52:34Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5965697467","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABY6YekQ","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"The public replay repair is merged in [#10621](https://github.com/kim-em/hex-dev/pull/10621), commit `28670ea34040b4618bff969ffe9665dbb08249b1`; #10620 is closed and its full CI run passed.\n\nThe optional adapter can use ordinary `public import HexBerlekampZassenhausMathlib.FactorTactic`. Fresh callers can generate a certificate, reify the polynomial with `Hex.CertificateSyntax.reifyZPoly`, and call `FactorTactic.zpolyIrredProof fLit (.multi cert)`. The quotation helper returns an ordinary kernel proof, using public reduction equations when direct kernel reduction is unavailable. No `import all` or caller resource-option increases are required for the tested 11/5 quartic.\n\nThe isolated umbrella and direct-import tests generate new certificates, cover both polynomial interfaces and mixed factor covers, reject malformed data and incorrect binding, and audit 22 theorem axiom inventories. A fresh consumer importing only a temporary optional wrapper alongside `HexRCF.RealCoefficients` also passed at default options, including the quadratic-norm decline guard and quoted-proof axiom audit.\n\nYour optional-module adoption and real-coefficient source authentication remain with #10358; I have not edited that implementation. The quotation helper expects a reified literal or a closed term evaluable through exposed bodies/public reduction equations, as documented in its API.\n","createdAt":"2026-10-03T07:32:32Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5966798481","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABY7D1lw","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"I read the current bodies and comments of #10633 and #10634 and am incorporating their named performance questions into this worker, without dispatching another issue.\n\nTwo complete fixed-schedule quotation comparisons are prepared locally: 24 fresh-module arms each, four adjacent alternating AB/BA rounds over the further-root, reciprocal-root and cubic-coefficient examples. The first quotes `PolyQuot.mk` with independently decided coordinate-degree bounds; the second derives the bound from the literal array length using the existing `DensePoly.size_ofCoeffs_le` theorem. Both retain every sample, exact source/import identities, proof sizes, RSS and standard-axiom audits. Neither establishes a speedup. All twelve paired margins of the second comparison are positive (candidate slower), with paired medians +0.304/+0.345/+0.386 seconds. Direct coordinate quotation therefore remains opt-in; the existing production default is preserved. These are local prepared artifacts, not landed results.\n\nThe interval-sign proposal can reuse the actual merged `Hex.OrderedFn.Real.enclose` and `enclose_sound` APIs. I am implementing a checked interval branch with exact Sturm fallback for inconclusive bounds; a zero-containing interval is not zero evidence. Indexed lookup and carrier normalization remain separate outstanding work. Signed Sturm-chain normalization already divides by the positive absolute leading coefficient, so arbitrary monic scaling would not preserve its signs.\n\nThe upstream CI repair is now merged in PR #10607 at `e2397ee94af997c1875d2feb36cea3930f74d70e`. I have integrated it into the existing PR #10618 and am running affected builds plus a fresh Opus integration review. Separately prepared checked source-conversion coverage and ordinary optional-import adoption of the public multi-prime quotation from merged #10621 will follow in a later partial PR. #10358 remains open; neither these preparations nor the performance measurements constitute full extension closure.\n","createdAt":"2026-10-03T09:05:25Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5967508887","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABY7oHJg","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Concrete remaining common-field certification gap for #10331, found while consuming merged #10621's public quotation API.\n\nThe actual `QAdjoin.common` presentation for the existing selected quartic `[-2,-7,-1,4,1]` and selected positive root of `X²-2` has primitive degree-eight polynomial\n\n```text\n[-2, -24, 169, 70, -127, -70, 6, 8, 1]\n```\n\nAll three available frontend certificate producers decline this polynomial: `QuadraticNormCertificate.certify?`, `FactorTactic.searchWitness`, and the owner's current `certifyIrreducible?`. The latter uses its configured 19 small-prime candidates. The diagnostic `probePrimeData?` reports good-prime patterns including `[2,6]` (5), `[3,1,1,3]` (7), `[2,2,2,2]` (11), and the corresponding patterns through 71. Each returned block still permits a proper factor of degree two, so these collected blocks cannot produce the required degree obstruction. This reports the actual finite producer's limit, not reducibility or a claim about every possible prime.\n\nThe new public owner API fixes quotation when a multi-prime certificate exists; it does not supply a certificate for this common presentation. I have connected that API to common-field authentication, added an ordinary-kernel positive quotation regression on the known quartic, and retained the degree-eight diagnostic/refusal regression. The proposed success example is not admitted or silently weakened. A remaining frontend completeness obligation is obtaining checkable irreducibility evidence for such generated common polynomials, beyond the current witness/degree-obstruction coverage. Re-running factorization in certificate replay is not a substitute for that evidence.\n\nThese changes and the checked source-conversion/interval-sign tranche are prepared locally on `issue-10358`; they are not yet landed. The repaired existing PR #10618 remains separate with CI running. Independent work continues, including indexed lookup, the remaining #10634 proposals, and precision/depth evidence. No downstream issue or worker has been launched; #10358 and its completion goal remain open/active.\n","createdAt":"2026-10-03T10:08:11Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5968103206","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABY74KUw","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Clarification of the degree-eight example above: this is a certificate-language limitation, not merely evidence that 19 primes are insufficient. An independent exact SymPy 1.14.0 diagnostic gives discriminant `33489 = 183²` and Galois group `A4` for `X⁴+4X³−X²−7X−2`; its cubic resolvent `Z³+7Z²−4Z−37` is irreducible. Since `A4` has no quotient `C2`, its splitting field is disjoint from `ℚ(√2)`. The degree-eight compositum has group `A4 × C2` acting on the product of the four quartic roots and the two quadratic roots. Its possible good-prime cycle patterns are `1^8`, `2^4`, `3,3,1,1`, and `6,2`. Every pattern permits degree two. Thus collecting more good-prime degree-sum blocks cannot exclude a degree-two factor for this polynomial. This diagnostic is not Lean proof evidence and is not used by certificate replay.\n\nI have changed the regression/docs to describe incomplete certificate languages rather than a larger-bound remedy, and pinned the actual degree-eight coefficients and the first three good-prime patterns as executable assertions. This does not claim reducibility or admit a failed theorem. Algebraic frontend completeness still needs an actual checkable irreducibility API covering such common polynomials; the coordinator owns any downstream dispatch.\n\nThere is now a positive end-to-end test of the public multi-prime common-field route: the selected positive root near 1.675 of `X³−4X+2`, together with `Real.sqrt 37`, produces a genuinely new degree-six common polynomial. The regression requires both the quadratic-norm and free-witness producers to decline and `certifyIrreducible?` to succeed, then proves `∀ x : ℝ, x² + α + √37 > 0` using `rcf`. Its ordinary-kernel proof depends only on `propext`, `Classical.choice`, and `Quot.sound`. The complete source construction is also being built in the manual. These artifacts remain local preparation for the next partial PR; they are not landed yet. Independent #10358 work and its completion goal remain active.\n","createdAt":"2026-10-03T10:38:28Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5968366163","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABY8N42g","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Merged tranche: [PR #10618](https://github.com/kim-em/hex-dev/pull/10618), squash commit `a6c72c5015726fcf30dc0f7c891d5d75c54b0d9e`. Required CI run [37112164641](https://github.com/kim-em/hex-dev/actions/runs/37112164641) completed successfully, including library/conformance/manual builds, bench smoke checks and oracle gates. Squash auto-merge preserved the branch. Fresh Opus reviews and the final upstream integration review were addressed.\n\nExact landed artifacts:\n\n- `adapters/HexRCF/RealCoefficients/FieldRoots.lean`: selected-field complete root proposals and proved source-polynomial correspondence, sorted coverage and cofinal separation.\n- `FieldBuild.lean`, `FieldBuildBudget.lean`, and `FieldBuildProgress.lean`: retain the selected field/power basis, cache complete roots across precision attempts and prepare coordinate-sign queries once; preserve checked production and progress.\n- `CommonTactic.lean`: retain a singleton source field and transport an authenticated source irreducibility proof when its polynomial matches the literal common presentation. Bind source polynomial and isolation-square identities in the kernel before replay.\n- `conformance/HexRCF/{CertificationInputs,CertificationProofs,FieldRootsConformance,NormalizedCoefficients}.lean`: supplied quartic constructor and goal proofs, root correspondence/progress laws and regressions. Fresh quoted proofs use only standard logical axioms.\n- `bench/HexRCF/ProofProbe/Production/Sharing.lean`, `scripts/bench/hexrcf_production_sharing.py`, `reports/hexrcf-production-sharing.md`, and retained `reports/data/hexrcf-production-sharing/6a4e48a76/`: deterministic literal/local-reference syntax audit, with complete raw output and source identities. No physical-sharing or runtime-speed claim.\n- Existing manual chapter and optional README describe the delivered behavior and its limits.\n\n#10358 remains open. The next prepared partial tranche covers checked source conversions/original guards, the merged public multi-prime quotation API for new common polynomials, interval signs with exact fallback, required caller-supplied π/e finite proofs and targeted retained measurements. General irreducibility coverage outside the current certificate languages and the unfinished joint nested realization from #10378 remain concrete completion gates; indexed lookup/refinement, remaining normalization/sharing decisions and precision/depth/Phase-4 evidence remain outstanding independent work. The coordinator retains downstream dispatch. The completion goal remains active.\n","createdAt":"2026-10-03T11:28:22Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5968722138","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABY8hxhQ","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Next tranche is open in [PR #10650](https://github.com/kim-em/hex-dev/pull/10650), updated head `0915db1f22c739887b9b608a624113b97045f49e` (Refs #10358, #10633, #10634). It is not yet landed. CI [37122043806](https://github.com/kim-em/hex-dev/actions/runs/37122043806) is running under one watch process; the first run’s stale conformance import is repaired by consuming the actual merged #10641 artifact.\n\nPrepared artifacts include checked source/option/QAdjoin conversion lowering with all original divisor guards; exact interval-sign evidence with checked Sturm fallback; public multi-prime common-field authentication with actual degree-six success and pinned degree-eight certificate-language refusal; caller-registered π/e ordinary-kernel proofs and unresolved/zero-divisor regressions; complete manual constructions; and retained #10633/#10634 comparisons. The reduced-coordinate experiments found no gain, so that option stays off. The interval quotation comparison favored the interval arm, with the control and historical provenance limitations stated explicitly.\n\nThe immediately requested fresh post-open Opus review found two true-goal frontend failures. Both were reproduced and fixed: discarded nonzero algebraic divisor guards no longer get routed through a rational-only guard proof, and converted radical divisors are compiled after checked lowering composed back to the original guard. Fresh proofs audit to only the standard logical axioms. Emitted proof inspection now verifies the multi-prime and full-query control routes. A focused fresh revision review is running.\n\nLocal affected adapter/conformance/manual builds pass (15,117 jobs; the preserved common-field enumeration/comparison manual rebuild passes at 15,092 jobs). The trusted-cone audit reports 262 cones / 1,029 local modules with no admissions. DAG/umbrella, source lints, relative links and whitespace checks pass. No AGENTS.md/PLAN.md or owner library changes are included.\n\n#10358 stays open. Remaining obligations include complete common-field irreducibility evidence beyond the current certificate languages, indexed lookup/refinement and other #10634 work, general build/check and joint nested-realization integration using owner APIs, and remaining precision/depth/Phase-4 evidence. Independent work continues; no downstream issue or worker has been launched.\n","createdAt":"2026-10-03T12:13:35Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5969047941","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABY9uYlQ","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Merged #10650 with squash commit `c74bc64a0e2fc3620bdc457d72d96023c5dbec48`. [Required CI](https://github.com/kim-em/hex-dev/actions/runs/37122688059) completed successfully, including conformance, the manual, architecture checks, bench verification and oracles. Fresh Opus reviews and the addressed findings are recorded on the PR. The branch was retained. This issue remains open.\n\nExact landed artifacts:\n\n- `adapters/HexRCF/RealCoefficients/Conversion.lean` and the `Reify`/`CommonTactic` integration authenticate visible real-algebraic/option/getD/QAdjoin conversions, preserve selected embeddings, compose back to the original target, and retain original divisors even in discarded branches. `HexRCF.proveRationalGoal` exposes the checked base path without handler dispatch. Fresh `CheckedConversions` and handler regressions exercise the repaired discarded/converted-divisor cases.\n- `IntervalSign.sign_spec`, `LiteralSign.Entry.check_spec` and the fixed-field production/progress integration accept checked rational Horner enclosures or frozen Sturm evidence. Malformed supplied Sturm evidence is not rescued. Interval quotation is the default; fresh proof inspection verifies both the interval and full-query controls.\n- `CommonTactic.certify` consumes the merged public multi-prime quotation API. `CertificationProofs` checks the actual emitted multi-prime proof on the degree-six selected cubic/√37 common presentation, and reuses authenticated source irreducibility where applicable.\n- Fresh `NamedConstants` and `CoarseConstants` modules prove the required π/e examples and guarded `1/(4−π)` from caller registrations with actual Mathlib containment proofs. Zero divisors are rejected; unresolved coarse `π²−e³` signs are refused. No bundled analytic provider or shrinking-width claim is introduced.\n- `HexManual/Chapters/HexRCF.lean` gives complete constructions and preserves the existing root enumeration/order and different-polynomial comparison examples using the merged proved interval sign API.\n- `reports/hexrcf-literal-proofs.md`, `hexrcf-interval-proofs.md`, `hexrcf-scaling-proofs.md` and their retained raw samples record the targeted quotation/sign/scaling evidence. `scripts/bench/hexrcf_interval_audit.py` makes the syntax audit reproducible and explicitly distinguishes asserted historical source association from verified artifact hashes; the historical full build tree was not captured.\n\nRemaining gates/work:\n\n1. Indexed sign retrieval and authenticated generator-interval refinement from #10633. Indexed retrieval is being developed in an isolated checkout.\n2. Carrier normalization and combined-replay evidence from #10634: the complete independent tranche is prepared locally, including monic producer progress/squarefreeness proofs and retained paired measurements, and is next for PR/review/CI.\n3. Common-field authentication beyond the available certificate languages: the degree-eight quartic/√2 counterexample remains the concrete owner gap documented in [the earlier report](https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5968103206). More prime trials alone do not repair its certificate language. No owner arithmetic/irreducibility proof is duplicated in the adapter.\n4. The general source/preparation/replay surface, remaining precision/depth and adapter phase evidence, and integration with actual complete tower/root/sample APIs as they land. #10378 still lists complete ordered RootSet/enlargement and joint nested finite-sign realization at one real point as unfinished. Ordinary-point work does not wait for unrelated owner measurements or assume infinitesimal existence supplies that joint theorem.\n\nNo downstream issues or workers were launched; #10331 retains dispatch ownership.\n","createdAt":"2026-10-03T14:54:13Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5970303125","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABY_XFCQ","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Merged [#10658](https://github.com/kim-em/hex-dev/pull/10658), squash commit `9833264b1d81ee2b270b2bea4fcd02ec046c0219`. [Required CI 37135686154](https://github.com/kim-em/hex-dev/actions/runs/37135686154) completed successfully on the final reviewed head `16636f9d2bd3b938ac1723a2eead3f7b082cbd22`, including conformance, architecture checks, the manual, benchmark smoke checks and oracles. Squash auto-merge retained the branch. Both fresh Opus reviews were addressed; the final upstream merge has no conflicts. #10358 remains open.\n\nExact landed artifacts:\n\n- `adapters/HexRCF/RealCoefficients/RadicalBuild.lean`, `FieldBuildBudget.lean`, `FieldBuildProgress.lean` and `FieldLiteral.lean` normalize the proposed carrier core while retaining the original product and checking the quotient, cofactor and bounded exponent. `rcf.algebraic.monicCore` defaults to true for the tactic. Complete/unbounded and direct bounded raw defaults are retained as documented; signed Sturm chains are not arbitrarily rescaled.\n- `RadicalCert.buildMonic_success`, `buildMonic_success_real`, and `buildMonic_squarefree`, plus the actual selected-field `FieldBuild.monic_progress`, `monic_squarefree` and `monic_leading`, prove proposal success, checked squarefreeness and interpreted monicity using the real embedding. They do not invent a field instance on unchecked syntax or claim bounded root-isolation progress.\n- `conformance/HexRCF/CarrierModes.lean` checks exact rational and bounded PolyQuot producer outputs, malformed bindings/scalars, actual option wiring at quotation, a raw negative-leading real-root goal, repeated/common roots and leading cancellation. Fresh theorem dependencies are only the standard logical axioms.\n- `rcf.algebraic.singleReplay` remains false. The combined replay arm uses the same evidence and soundness theorem and reports terminal kernel replay failure. `conformance/HexRCF/ReplayModes.lean` and fresh `bench/HexRCF/ProofProbe/Replay/` modules cover its genuine quoted proofs and pre-replay false/exhaustion refusals.\n- `reports/hexrcf-carrier-proofs.md` and retained `43fe6690cf` samples record all 24 comparison arms: normalization wins all 12 adjacent pairs, with paired median differences of −1.300/−1.073/−2.108 seconds for the three fixed goals. `reports/hexrcf-replay-proofs.md` and retained `f223f9abf` samples record the combined replay comparison: 10/12 pairs are slower, so it stays off. Both reports state source, host, memory/byte and provenance limits; these are fixed-goal observations, not general scaling claims.\n- The manual documents the actual modes and proof limits. Historical literal/interval/replay comparison probes explicitly retain raw carrier mode; later source pins are distinguished from archived source hashes.\n\nLocal final validation included the affected adapter/conformance/manual/proof-probe builds, DAG/umbrella and source/link checks, whitespace checks, and an admission audit of 273 cones / 1,043 local modules with no admissions.\n\nRemaining work/gates:\n\n1. #10633 indexed sign retrieval is complete locally, including a law preserving every original table hit under malformed routing, actual proof-route regressions and two fully retained paired studies. Its integration/review/CI tranche is next. Authenticated generator-interval refinement remains separate outstanding work.\n2. The source/preparation/public finite replay tranche is also complete locally: authenticated original coefficient/divisor identities, whole-atom specialization/evaluation/degree laws, bound fixed-field build/check with structured errors and real soundness/domain conclusions, fresh original-goal proofs, failure restoration and malformed-envelope regressions. It awaits sequential upstream integration and its own post-open review/CI. It does not complete registered-constant towers or algebraic frontend completeness.\n3. The degree-eight common-field irreducibility certificate-language gap remains as documented in the earlier concrete report; more prime trials alone do not fix it. No owner irreducibility proof is duplicated.\n4. Consume actual complete root/context/sample/tower APIs as they land; joint nested finite constraints still require one actual ordinary real realization. Newly merged #10580 at `6d24538b6d55cc00a8b6c805580a438f439b8ff6` supplies its real-algebraic/Sturm prerequisite work without waiting for unrelated Phase-4 measurements, but does not implement the remaining tower interfaces.\n5. Finish the remaining precision/depth and adapter phase/evidence attestation for the advertised implemented surface.\n\nNo downstream issues or workers were launched; #10331 retains dispatch ownership.\n","createdAt":"2026-10-03T18:10:13Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5972018441","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABZBTPbw","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"The indexed-sign tranche is [PR #10661](https://github.com/kim-em/hex-dev/pull/10661), reviewed head `6b4acf58b33bf810976ec224ee188d12099ba84e`, with squash auto-merge enabled and the branch retained. It is **not landed**. Required CI attempt 1 passed builds, conformance, architecture, the manual, individual benchmark checks and all oracles; aggregate smoke runtime was 373 s against the unchanged 360 s cap. `hexrcf_bench` took 2 s. One unchanged failed-job retry is running; the complete first result is retained. No cap or inputs were weakened. [Exact CI report](https://github.com/kim-em/hex-dev/pull/10661#issuecomment-5973951548).\n\nThe next public preparation/replay tranche is prepared at `77aa4e65e` on [this retained source branch](https://github.com/kim-em/hex-dev/tree/evidence/hexrcf-prepared-77aa4e65e), against upstream `4f8745e646e6bfd52717cb433fdf73ea872a831e`. It is **not landed or claimed as extension completion**. Exact artifacts include `Preparation.lean`, `FiniteReplay.lean`, `Replay.lean`, the shared whole-atom specialization laws, fresh `Prepared` proof modules and the existing manual chapter. Bounded and complete exact-field production return accepted finite certificates; `Replay.buildTotal_spec`, `check_domains`, `check_spec`, `check_sound` and original-goal transport audit to standard logical axioms. The full affected build passes at 11,437 jobs; the source audit covers 289 cones / 1,067 local modules with no admissions. A new non-backtracking regression reproduced a direct divisor-preflight unification-assignment leak; `checkDomains` now restores that state, and all negative API regressions observe the API’s own rollback.\n\nThe separate #10633 checked-window tranche is also complete locally and passes combined preparation/window compatibility on current main (11,409 jobs). It preserves the original selected-root presentation and checks a contained count-one window; frozen replay never refines. All 32 paired measurements are retained. The eight-bit fixture removes three full queries but adds 61,672 private-proof bytes; the study establishes no useful whole-module speedup. `rcf.algebraic.signRefinements` stays at zero. The measured source remains [durably available](https://github.com/kim-em/hex-dev/tree/evidence/hexrcf-window-ce95c8f1f). Each next PR will receive its own immediate fresh Opus review and required CI after sequential integration.\n\nThe evidence inventory now distinguishes actual delivered APIs from completion gates. #10659 supplies checked sign-packet byte roundtrips. #10654 supplies provider-derived base models and checked prefix transport. They are available now; neither supplies complete strict nested arithmetic replay or one ordinary real point realizing an entire finite nested-sample conjunction. Those and the concrete degree-eight common-field irreducibility quotation gap remain owner/coordinator gates. Remaining advertised precision/depth and common/repeated-root cost evidence is also explicit. The signed Sturm producer already consumes positive absolute-leading normalization (`Sturm.normalize`); arbitrary monic rescaling would change required signs.\n\n#10358 remains open. No downstream issue or worker has been launched. #10331 retains dispatch ownership.\n","createdAt":"2026-10-03T22:18:46Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5974052719","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABZB8Gew","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Merged [#10661](https://github.com/kim-em/hex-dev/pull/10661), squash commit `3bc66fdd50c4752f06798fbdf815cc5dbbdd89bb`. [Required CI 37147430971, attempt 2](https://github.com/kim-em/hex-dev/actions/runs/37147430971/attempts/2) completed successfully on reviewed head `6b4acf58b33bf810976ec224ee188d12099ba84e`, including builds, conformance, architecture checks, the manual, benchmark smoke verification and oracles. Squash auto-merge retained the branch. The first attempt's 373-second smoke-cap failure remains recorded; the single unchanged retry passed without changing the 360-second cap or benchmark inputs. Both fresh Opus reviews were addressed. #10358 remains open.\n\nExact landed artifacts:\n\n- `adapters/HexRCF/RealCoefficients/SignIndex.lean` checks indexed hits against the original table position and exact key. Malformed routing falls back to the original lookup, preserving every original hit; an arbitrary comparator/tree cannot invent table evidence. `FieldIndex.lean` transports indexed acceptance to the existing soundness theorem. `rcf.algebraic.indexSigns` defaults to true.\n- `FieldLiteral.lean` quotes the literal positional tree and checks all original operands before replay. Its public frozen `replay` restores state on failure/runtime exceptions, forces ordinary kernel checking, rejects nonstandard axioms and checks the complete proof. It never invokes a different producer after a false/unresolved/replay failure.\n- `conformance/HexRCF/SignIndex.lean` and fresh `bench/HexRCF/ProofProbe/Indexed/` modules exercise actual linear/indexed proofs, malformed trees/comparators, wrong or missing bindings, positional quotation, corrupted replay under four modes and non-backtracking state restoration. Actual theorem dependencies are only `propext`, `Classical.choice` and `Quot.sound`.\n- `reports/hexrcf-index-proofs.md` and both retained 24-arm studies distinguish exact measured source from the later shipping source. All 12 adjacent pairs in each study favor indexed retrieval; the second study's paired medians are −3.774/−3.493/−3.527 seconds on its three fixed goals. Full compiler outputs, bytes, memory, host/dependency identities and actual quoted-tree audits are retained. No asymptotic or isolated-lookup timing claim is made. Historical literal controls explicitly retain their original modes.\n\nRemaining work/gates:\n\n1. The authenticated public preparation/specialization/finite replay tranche is complete locally on current upstream, including complete exact-field production and the reproduced/fixed direct divisor-preflight assignment leak. It is next for sequential PR delivery, immediate fresh post-open Opus review and required CI.\n2. The checked generator-window and initial-precision experiments are prepared separately. Refinement preserves the original selected embedding and validates frozen contained count-one evidence; its retained study establishes no useful speedup, so the default stays zero. The eight/sixty-four-bit same-√2 experiment is scoped evidence, not general transport or precision/depth completion. A further regression reproduced invalid frozen evidence being mislabeled as a false goal; that diagnostic fix is being validated before this next tranche.\n3. General source/common-field irreducibility quotation still has the concrete degree-eight quartic/√2 certificate-language gap previously reported. More good-prime trials do not repair it; no owner irreducibility proof is duplicated.\n4. Actual #10659 checked sign-packet roundtrips and #10654 base-prefix/provider-model transport are available. Complete strict nested replay, ordered roots/all-live context transport and one ordinary real witness for the entire joint nested finite conjunction still require the actual owner interfaces. Ordered real-closure existence does not supply that joint conclusion.\n5. Finish the remaining advertised precision/depth/common-root evidence and adapter phase attestation for the completed surface. No downstream issue or worker has been launched; #10331 retains dispatch ownership.\n","createdAt":"2026-10-03T23:47:22Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5974722171","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABZEXLbw","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"#10358 remains open; the full implementation goal is active.\n\nThe public preparation/specialization/finite-replay delivery is [PR #10668](https://github.com/kim-em/hex-dev/pull/10668), reviewed head `4ddaf23f180c8eb810587247f15d39d717c69579`, not landed. Required CI attempt 1 passed builds, conformance, architecture, manual and oracles; every individual benchmark passed, but aggregate smoke time was 384/360 seconds (`hexrcf_bench`: 2 seconds). The [failure record](https://github.com/kim-em/hex-dev/pull/10668#issuecomment-5977247950) is retained. One unchanged failed-job retry is running; no cap, input or selection was weakened.\n\nThe following independent work is complete locally against upstream `c8fd61cf87f8a2f1cd06c771187c863af23f8502`, pending sequential delivery after the preparation squash:\n\n- Checked generator-window production preserves the original selected embedding and validates a contained count-one interval. A genuine source `rcf` regression asserts both the window constructor and common-field authentication theorem. No-improvement/full-query controls retain the original table; malformed replay and valid false verdicts remain terminal. Frozen quotation ignores production controls. The full adapter/default-proof/manual/conformance build passes (15,644 jobs); the source audit covers 292 cones / 1,075 modules with no admissions.\n- The existing eight/sixty-four-bit experiment now explicitly excludes arm-specific prebuilt validity and transport setup. A separate four-width experiment (8/16/32/64 bits) constructs those proofs inside every fresh arm, with the same original target and ordinary-kernel axiom guards. Its frozen source is [2436b6ab04](https://github.com/kim-em/hex-dev/tree/evidence/hexrcf-precision-full-2436b6ab0); the fixed 24-arm alternating comparison is running and retains every completed sample. It is not a general field/context reconstruction claim.\n- Current-source distinct and expanded-reference audits are retained separately from historical timings. At [82c93dac95](https://github.com/kim-em/hex-dev/tree/evidence/hexrcf-window-expanded-audit), memoized syntactic accounting checks shared edges/local references, leaves imported bodies unexpanded and performs no reductions. These counts do not claim physical sharing, byte attribution or executed kernel work. All ten on-demand window/precision quoted proofs pass.\n\nActual owner readiness was refreshed: merged #10660 (`49a7bada21543b6d1631de5537c0dda4b1da68ad`) supplies the development `HexSturmMathlib.query_iff` and actual companion `RealAlgebraicPoly.roots_spec`; merged #10664 (`56a2749a3633318b849f25e1ef6039d7513b24e6`) supplies checked memo operation transport and inverse/division supplied-fact packing. They are available without waiting on Phase-4 closure. #10671 (context operation transport) and #10677 (cross-level serialized envelope) are still open and are not counted as merged APIs. Their stated remaining automatic intermediate-key collection, context reconstruction and strict compiled arithmetic replay obligations are still genuine owner work. One real point satisfying the whole joint nested conjunction and the degree-eight common-field irreducibility quotation gap also remain exact completion gates; no owner proof is duplicated.\n\nNo downstream issue or worker was launched. #10331 retains dispatch ownership.\n","createdAt":"2026-10-04T06:20:30Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5977262959","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABZE5sjg","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Merged [PR #10668](https://github.com/kim-em/hex-dev/pull/10668), squash commit `77aadd66f60890dd4f5288defad936180c53ea17`. [Required CI 37176022427, attempt 2](https://github.com/kim-em/hex-dev/actions/runs/37176022427/attempts/2) completed successfully on reviewed head `4ddaf23f180c8eb810587247f15d39d717c69579`, including builds, conformance, architecture/trust checks, manual, benchmark smoke and all oracles/BZ gates. Squash auto-merge retained the branch. The first attempt's 384-second aggregate benchmark failure and the single unchanged retry are retained; no cap, input or CI selection was weakened. All fresh Opus findings were addressed. #10358 remains open.\n\nExact landed artifacts:\n\n- `adapters/HexRCF/RealCoefficients/Preparation.lean`, `Reify.lean`, `Specialize.lean` and `FieldSpecialize.lean` expose authenticated coefficient preparation and whole-atom specialization, preserving selected embedding, exact coefficient/divisor order and original source equivalence.\n- `FiniteReplay.lean` and `Replay.lean` bind exact inputs, formula, quantifier, context, guard coordinates and finite sign operands. `Replay.check_domains`, `check_spec`, `check_sound`, `check_original`, `build_spec`, `buildTotal_checked` and `buildTotal_spec` connect checked finite/complete exact-field production to the original real goal. Original guards are re-extracted and checked before zero, constant or empty-domain shortcuts. False remains diagnostic.\n- `FieldLiteral.lean`, `CommonTactic.lean` and `FieldRuntime.lean` keep full-query evidence reconstruction in production only. Frozen serialization/replay preserves stored evidence under all option settings and performs no root/gcd/approximation search. Public expression data is screened before native evaluation and all editable inputs retain full validation; private immediate assembly avoids redundant validation without bypassing original guards or proof acceptance.\n- `HexRCF/Tactic.lean` shares candidate terms, checks the exact original target without assigning caller metavariables, rejects unresolved/unsafe/nonstandard dependencies and closes a fresh uncached synchronous ordinary-kernel theorem. Preparation/proof generation restore full state after failed or exceptional exits; validation retains no unused auxiliary declarations.\n- `conformance/HexRCF/PreparedCoefficients.lean`, `FiniteReplay.lean`, `FieldSpecializeConformance.lean` and `bench/HexRCF/ProofProbe/Prepared/{Guarded,Domain,Total}.lean` cover guarded/Ioc actual proofs, depth-zero complete production, edited/omitted guards, swapped runtime/expression data, invalid source transports, forbidden dependencies hidden by assigned metavariables, terminal false/invalid evidence, cancellation and state restoration. Actual proofs use only `propext`, `Classical.choice` and `Quot.sound`.\n- `HexManual/Chapters/HexRCF.lean`, `HexRCF/README.md` and `reports/hexrcf-adapter-evidence.md` document the prepare/build/check/soundness path and remaining limits. `reports/hexrcf-validation-proofs.md` retains three source-distinct studies and all raw arms: the first is A/A, later studies check the common-field route and final production options. No stable speedup magnitude or full frontend completeness is claimed.\n\nThe window/precision/common-root continuation is [PR #10692](https://github.com/kim-em/hex-dev/pull/10692), Refs #10358/#10633/#10634. It is not landed. Its fresh post-opening Opus review found no soundness/correctness blocker; audit/disclosure findings were addressed. The actual prepared squash has been merged into its checkout, preserving the reviewed window code and all ordinary-kernel controls. Both new studies retain all 36 precision arms and 16 named-√2 common/repeated-root arms; the full manual renders without errors and has desktop/narrow visual checks.\n\nRemaining full-scope gates are unchanged: generic common-field irreducibility quotation (the concrete degree-eight quartic/√2 certificate-language gap), complete ordered root/enlargement/live-context integration, general cross-level packing/context reconstruction with strict replay, and one ordinary real realization of the entire finite joint nested constraint set. Exact-field total acceptance starts with an authenticated environment and does not prove frontend completeness. The actual merged root/query, base-prefix/model and finite-reader/operation-transport laws are available under their child hypotheses; they are not being held for unrelated performance closure. Owner PRs #10671 and #10677 are still open and are not counted as merged. No downstream issue or worker was launched.\n","createdAt":"2026-10-04T07:47:23Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5977828494","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABZGTxEA","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Continuing #10358: [PR #10698](https://github.com/kim-em/hex-dev/pull/10698), head `dfafe88722856e8f15c7cba52b5b6b3e06cc0155`, is an independent native-specialization/ordinary-sample tranche (Refs, not Closes). The required fresh isolated Opus review started immediately after opening; [CI 37197547662](https://github.com/kim-em/hex-dev/actions/runs/37197547662) is running.\n\nIts source diff is exactly eight files against main `1fae24ab47132ebf8358eda7086fe05b823bde11`. `RepresentationSpecialize.prepare` evaluates coefficient coordinates directly and groups by the bound-variable exponent, without ring/field laws on stored expressions. Evaluation uses actual operation preservation and zero reflection; semantic degree uses zero reflection. `TowerSamples` consumes the merged native root/sample laws, proves source-level unique cell coverage and the entire source sign vector at one ordinary real sector sample, preserving the selected coefficient embedding. Positive/negative selected roots of X²−2 check every section/sector sign, cancellation, zero atoms and strict/non-strict domain relations using the shared Boolean fold.\n\nThe current-main build passes (13,441 jobs; adapter, all 35 RCF conformance modules, proof probes, handlers and manual). Seven composed theorem axiom guards have only `propext`, `Classical.choice`, `Quot.sound`. DAG/umbrella, headers, source-size, relative links and diff checks pass; the admission audit covers 292 cones / 1,075 modules. The complete manual renders on the actual base (13,378 jobs), with desktop/narrow inspection of the new section. The earlier issue branch ancestry is retained without a force push. No owner or protected file was edited.\n\n[PR #10692](https://github.com/kim-em/hex-dev/pull/10692) remains separate and is not counted as landed. Its single unchanged CI retry has passed the benchmark gate and is running oracles.\n\nThe native APIs already available are `Context.roots_all`, `roots?_success`, `roots_spec`, `roots_sorted`, and `Sample.Family.cells_unique`/`cell_signs`/`sector_signs`; PR #10698 consumes them now. Remaining full-scope gates are frozen literal tower context/root/sign acceptance without producer search, general cross-level packing/context reconstruction and strict replay, one ordinary real witness for the entire arbitrary-depth joint infinitesimal conjunction, and generic frontend/common-field certification beyond the currently authenticated witness languages (including the concrete degree-eight certificate-language gap). Native producer laws under a real predecessor model are not frozen acceptance laws. No owner proof or downstream assignment is duplicated. #10358 stays open, and #10331 owns dispatch.\n","createdAt":"2026-10-04T11:07:01Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5979304208","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABZGlj6g","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Merged [PR #10692](https://github.com/kim-em/hex-dev/pull/10692), squash commit `73b6a0ecfa41d3586a4327d974e0e5920c314aab`, reviewed head `be7091b9995273dc1d3d61b1ac3ce6c2a2446af7`. [Required CI 37186863578, attempt 2](https://github.com/kim-em/hex-dev/actions/runs/37186863578/attempts/2) completed successfully: build/conformance, architecture/trust checks, manual, benchmark smoke and all oracles/BZ gates. Squash auto-merge used no branch deletion. Attempt 1's aggregate 384/360-second failure (all 57 individual benchmark groups passed; `hexrcf_bench` 2 seconds) and the single unchanged retry are retained. No implementation-worker cap/input/selection change or extra unchanged retry was used. Fresh post-opening Opus findings were addressed.\n\nExact landed artifacts:\n\n- `adapters/HexRCF/RealCoefficients/LiteralSign.lean` (`Window`) and `FieldRefinement.lean`: checked contained count-one generator windows preserve the original selected root/embedding. The defining coefficient representation stays fixed. Refinement is production-only and defaults to zero steps because the retained evidence does not establish a stable speedup.\n- `FieldLiteral.lean`, `SignIndex.lean` and the associated fixed-field path: interval/Horner sign evidence and existing exact checks remain bound to the original coefficient/root/context. Indexed routing is checked against exact stored keys; frozen replay does not refine, repair, rerun root isolation/gcd/BKR or switch solvers after false/exhausted/invalid evidence.\n- `conformance/HexRCF/GeneratorWindowInputs.lean` and `GeneratorWindow.lean`: actual source tactic proof uses the window constructor and common-field authentication; wrong root, containment/count/key changes, no-improvement controls, terminal false/invalid replay, both lookup modes and state restoration are checked. Fresh actual proofs have only the three standard axioms.\n- `bench/HexRCF/ProofProbe/Windows`, `Precision` and `CommonRoots`, together with the retained reports/raw samples: separate compiled/proof studies, prebuilt versus inside-arm setup disclosures, all 36 full precision arms and 16 named-√2 common/repeated-root arms, distinct/expanded-reference audit controls, bytes/memory and original matched imports/options. The common-root study does not claim a general common-field presentation; reference counts do not claim physical sharing or executed work.\n- `HexManual/Chapters/HexRCF.lean`, `HexRCF/README.md` and the adapter/window/precision evidence reports describe the actual scope, cost observations and limits. The complete manual rendered and received desktop/narrow visual checks.\n\n#10358 remains open. Independent [PR #10698](https://github.com/kim-em/hex-dev/pull/10698) consumes the already merged native root/sample APIs and adds operation-only shared-schema specialization plus source-level ordinary-real cell/sample laws. Its fresh immediate post-opening review found no soundness defect; I am addressing its coverage/doc findings by sending zero, duplicate and leading-cancelled atoms through the native producer and preserving the full remaining gates.\n\nThe remaining gates are general frozen literal tower context/root/sign acceptance without producer search, cross-level packing/context reconstruction with strict replay, executable all-live enlargement assembly, and one ordinary real assignment for the entire arbitrary-depth joint set of nested selected-root and successive-infinitesimal constraints. Generic frontend/common-field certification beyond current witness languages still includes the concrete degree-eight certificate-language gap; a native tower backend may avoid that fixed-field presentation requirement once its actual frozen interfaces exist. Current native ordered root/cell/ordinary-sample laws are available and being consumed, not treated as missing or held for Phase-4 closure. No owner proof, new issue or downstream worker was launched. #10331 retains dispatch ownership.\n","createdAt":"2026-10-04T11:46:27Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5979595754","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABZG_kYA","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"PR [#10698](https://github.com/kim-em/hex-dev/pull/10698) is ready on `1176f5d8a7ffc8a2b06d3f5db6033882865cfb9d`, squash auto-merge enabled without branch deletion. [Required CI 37202457460](https://github.com/kim-em/hex-dev/actions/runs/37202457460) is running; it is not counted as landed.\n\nThe immediate post-opening fresh Opus review and two focused fresh revision reviews are complete. No blocking correctness/soundness concern remains. The final source adds source signs at selected root sections, actual zero/duplicate/leading-cancelled producer controls, and a reducible-polynomial control with distinct stored nonzero `α` and `α³/2` but canonical zero difference. The previous narrowed gate wording is corrected: arbitrary-depth joint nested selected-root **and** successive-infinitesimal realization and executable all-live enlargement assembly still remain.\n\nCombined current-main adapter, both proof libraries, handlers, manual and all 38 RCF conformance modules pass (11,486 Lake jobs); final changed section/noncanonical/manual checks pass. Ten composed axiom guards contain only `propext`, `Classical.choice`, `Quot.sound`. Structure/header/size/relative-link/diff checks pass; the final admission audit covers 294 cones / 1,079 modules. Complete manual rendering passes (13,383 jobs), with ten desktop/narrow visual checks. [Review/fix record](https://github.com/kim-em/hex-dev/pull/10698#issuecomment-5979984644) includes the corrected local handler-target typo and superseded CI cancellations.\n\nOwner readiness correction: [#10677](https://github.com/kim-em/hex-dev/pull/10677) **has merged**, as `8cbda7cf7ecae1d5d8ee9685a8f5256b6e31c502`; it is included in the actual main merge. `HexSignDet/Dependencies.lean` supplies checked backward/lower-level/full-subject references and exact memo correspondence. `DependenciesCodec.lean` supplies `Graph.decode_encode`, `Decoded.results_bound` and ordered result selection for the actual byte reader. These are available routing/codec APIs and are recorded now; they still require a supplied local mathematical reader. The PR explicitly leaves automatic intermediate-key collection, literal context reconstruction and strict compiled arithmetic replay to the owner. #10671/#10694 remain open in the refreshed readiness check, not counted as merged.\n\nThe next independent adapter composition is translating actual native source sign rows to the existing strict QF truth semantics, with arbitrary supplied coefficient coordinates and an actual ordinary-real predecessor model. No frozen/general backend completeness is claimed. No downstream worker, owner proof or new issue is launched. #10358 stays open; #10331 retains dispatch ownership.\n","createdAt":"2026-10-04T12:40:38Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5980021856","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABZITysg","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Merged [PR #10698](https://github.com/kim-em/hex-dev/pull/10698), squash commit `8c8e0146b18ccf77959b396bca162e5dc2048600`, reviewed head `1176f5d8a7ffc8a2b06d3f5db6033882865cfb9d`. [Required CI 37202457460](https://github.com/kim-em/hex-dev/actions/runs/37202457460) completed successfully, including all build/conformance/architecture/manual/benchmark and oracle/BZ gates. Squash auto-merge retained `issue-10358`. Immediate fresh Opus review and focused revision reviews were addressed. The watch's earlier shared-account API-quota interruption was recovered with one replacement monitor; it was not a CI failure or rerun.\n\nExact landed artifacts:\n\n- `adapters/HexRCF/RealCoefficients/RepresentationSpecialize.lean`, optional umbrella and Lake metadata: operation-only native coefficient specialization groups shared monomials by the sole bound-variable exponent. Evaluation uses actual arithmetic preservation and zero reflection; semantic degree and leading coefficient use the same fixed interpretation. No ring/field instance or injectivity is asserted for stored representatives.\n- `conformance/HexRCF/TowerSamples.lean`: actual owner root/cell laws prove unique source-level real coverage and the entire source sign vector at one ordinary sector point or selected root section. Positive/negative selected √2, actual duplicate/repeated/zero/leading-cancelled atoms, all section/sector rows and half-open guards are checked. The reducible `(X²−2)(X−3)` fixture retains structurally distinct nonzero `α` and `α³/2` with canonical zero difference. Ten composed theorem axiom guards have only `propext`, `Classical.choice`, `Quot.sound`.\n- `HexManual/Chapters/HexRCF.lean`, `HexRCF/README.md`, `reports/hexrcf-adapter-evidence.md` and the specialization documentation: actual API examples preserve selected embeddings and whole-vector same-point signs. Full manual rendering and desktop/narrow visual checks pass. These document native production under a real predecessor model, not frozen tactic acceptance or full extension completion.\n\nThe next independent composition is implemented locally at `c554c81fcd156457c92ac7c616fe88091bf4e4c9`: public `Samples.run_spec` relates actual native rows/cells to the exact shared one-quantifier `Prenex` meaning at arbitrary fixed coordinates in ONE parent with an actual ordinary-real model. It includes root-sensitive and distinct-coordinate-order decisions, strict false diagnostics, domain edges and fresh public-module theorem/axiom checks. Its original-base local build passes 13,514 jobs (both proof libraries, handlers, manual and all 39 RCF conformance modules); admission scan, DAG/umbrella, headers/size, 57 relative links and complete manual render/visual checks pass. Actual current main, including newly merged #10662 and this squash, has now been merged into the continuation branch with the exact eight-file source diff preserved. Its affected build is running before a new Refs PR and immediate fresh Opus review.\n\nRemaining full-scope gates remain general frozen literal tower/context/root/sign acceptance without producer searches, automatic intermediate-key packing/context reconstruction with strict replay, executable all-live enlargement assembly, and one ordinary real assignment for the entire arbitrary-depth finite conjunction of nested selected roots AND successive infinitesimals. Generic frontend/common-field certification beyond current witness languages includes the recorded degree-eight fixed-field certificate-language gap; a native backend may avoid that representation once actual frozen interfaces exist. The new `Samples` producer does not authenticate original-source coefficients/divisors or replace replay. Current named-constant scope is caller registrations, not bundled analytic providers.\n\nActual #10677 dependency routing/codec is merged and available. Refreshed #10671/#10694, and newly read #10699/#10701 finite-realization/inverse contracts, remain open and are not counted as landed. Their actual merged APIs will be consumed without waiting for unrelated Phase-4 measurements. No owner proof, decomposition issue or downstream worker was launched. #10358 stays open; #10331 retains dispatch ownership.\n","createdAt":"2026-10-04T15:08:07Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5981401778","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABZJN6hA","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"[PR #10702](https://github.com/kim-em/hex-dev/pull/10702) is open at `5e22e1eff942cb83b1d21d7dfdddd04b0fa222c2`, with squash auto-merge enabled and branch retention. It is not yet counted as landed. [Required CI 37217410634](https://github.com/kim-em/hex-dev/actions/runs/37217410634) has passed the repaired benchmark-freshness gate, library/executable builds and deterministic table regeneration; conformance was running at the latest watch observation. One 120-second monitor remains live.\n\nThe exact nine-file tranche adds `Samples.run_spec`: native complete root/cell production and strict shared Boolean/quantifier evaluation agree with the original shared one-quantifier semantics at arbitrary ordered coefficient coordinates in one actual ordinary-real parent model. It retains section/sector same-point signs, selected embeddings, domain atoms and diagnostic false. Fresh comparison controls distinguish all six tags and root sections. This is a producer API, not original-source/frozen acceptance. Immediate fresh Opus review and revision findings were addressed; local builds, composed ordinary-kernel axiom guards, admission scan and complete manual render/visual checks pass.\n\nThe earlier real CI failure was the existing factor figures’ Lake freshness transition. An independently reviewed exact-blob runtime-neutral exemption repairs that transition without editing measurements, checker, workflow or caps. The entire failed figure step passes locally with CI-pinned Matplotlib and 114 tests; current hosted CI passed it too. [Full failure/fix record](https://github.com/kim-em/hex-dev/pull/10702#issuecomment-5982249205) preserves the failure and source supersessions.\n\nI refreshed #10633/#10634 and the current owner PRs. #10671/#10694/#10699/#10701 remain open, not imported or counted as merged. The next general integration needs strict literal replay/context reconstruction and complete intermediate-key closure; [the precise current consumer boundary is reported on #10377](https://github.com/kim-em/hex-dev/issues/10377#issuecomment-5982300133). General all-live enlargement and arbitrary-depth joint selected-root/successive-infinitesimal ordinary-real realization also remain owner gates. The recorded degree-eight frontend certification gap and full algebraic accepted-certificate completeness remain open. Existing ordinary roots/sample laws are already consumed; unrelated Phase-4 measurements are not start gates.\n\n#10358 stays open and the full implementation goal stays active. No new issue, downstream worker, owner proof or protected roadmap edit was introduced. Exact new landed artifacts will be recorded after green merge; partial delivery does not close the issue.\n","createdAt":"2026-10-04T17:01:22Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5982354052","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABZKEfQg","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Merged [PR #10702](https://github.com/kim-em/hex-dev/pull/10702), squash commit `965832c621b15d8a88ace77b2978b2d4fa55ba8e`, reviewed head `5e22e1eff942cb83b1d21d7dfdddd04b0fa222c2`. [Required CI 37217410634](https://github.com/kim-em/hex-dev/actions/runs/37217410634) completed successfully. Squash auto-merge retained `issue-10358`; the immediate fresh Opus review and revision findings were addressed.\n\nExact landed artifacts:\n\n- `adapters/HexRCF/RealCoefficients/Samples.lean`: source-level section, sector and cell laws plus `run_spec`, `run_total` and `run_true` for the existing shared one-quantifier syntax. All ordered coefficient coordinates belong to one native parent with an actual ordinary-real `Model`. Production specializes once and strictly folds actual complete cells through the shared Boolean evaluator. The whole sign vector uses the same real point and selected embedding. This is native production, not a frozen certificate or complete frontend acceptance API.\n- `conformance/HexRCF/Samples.lean` and the `TowerSamples.lean` integration: genuine selected positive/negative sqrt2, distinct ordered coordinates, false verdicts, common/repeated/zero/leading-cancelled roots, all comparisons and Boolean traversal, half-open/equal/reversed domains. Constant signs -1/0/+1 distinguish all six comparison tags for both quantifiers; squared-root controls exercise exact sections. Eight composed ordinary-kernel axiom guards have only the three standard logical axioms. Raw row length probes do not authenticate evidence.\n- Optional umbrella/default Lake roots, `HexManual/Chapters/HexRCF.lean`, `HexRCF/README.md` and `reports/hexrcf-adapter-evidence.md`: public API examples, exact shared interpretation and explicit producer/frozen/frontend limits. The complete manual rendered successfully and received desktop/narrow visual inspection. No base umbrella family import or new executable benchmark was added.\n- `scripts/bench/proof_only_runtime_exemptions/lakefile-native-samples-d6ea39ca-0ed2fdd4.json`: exact reviewed runtime-neutral Lake blob transition. The real earlier CI freshness failure and cancelled intermediate head remain recorded. Full local repair verification used the CI-pinned plotting dependency and passed all 114 tests in the previously failing figure step. No scientific sample, checker, workflow, cap or measurement selection was changed. Pre-existing parser/import-coverage findings were reported separately to #10331.\n\n#10358 remains open. General frozen literal context/root/sign acceptance, complete intermediate-key packing and context reconstruction, executable all-live enlargement assembly, and one ordinary real assignment for the entire arbitrary-depth finite conjunction of nested selected roots AND successive infinitesimals remain required. Generic frontend/common-field certification still includes the recorded degree-eight witness-language gap, and full algebraic accepted-certificate completeness is not proved by this producer API. Current named-constant scope is caller registrations with certified finite successes, not bundled analytic providers or joint-independence assumptions.\n\nExisting owner root/order/sample laws and the merged dependency codec are available and consumed. The merged #10693 (`77ecc20bfc99ea7e6b11ac00cd64aa31b42ed919`) integer-only kernel replay experiment uses already validated contexts and certified facts; it does not supply generic context reconstruction, automatic intermediate-key collection or the final public strict compiled reader. Open owner follow-ups are not treated as merged; their actual APIs will be consumed as they land without waiting for unrelated Phase-4 measurements. No owner proof, new issue or downstream worker was launched. #10331 retains dispatch ownership; a partial merge does not complete the full goal.\n","createdAt":"2026-10-04T18:50:49Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5983248194","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABZKwNCQ","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Continuing #10358, not reporting completion. Existing PR [#10706](https://github.com/kim-em/hex-dev/pull/10706) now has head `1bb57322da6138e71c206a1820577ad084c331a6`: caller bounds compose with checked algebraic enclosures, with preparation-local proof reuse and original guard preflight. The immediate post-opening fresh Opus review and revision review found no soundness blocker; verified concerns were addressed on the same PR. A final focused review and [CI 37231298366](https://github.com/kim-em/hex-dev/actions/runs/37231298366) are running. No artifacts from this PR are claimed as landed yet. Earlier CI heads were superseded by substantive revisions and cancelled.\n\nLocal strengthened mixed controls pass 10,775 Lake jobs: ten actual tactic proofs (including normalized and negative selected-field values), eleven complete ordinary axiom guards, deterministic exact frontend markers, wrong certificate bounds/literals, runtime-safe refusal assertions, exact singleton sqrt4 recognition, public fresh kernel acceptance, and both closed-division and normalized-inverse guard-proof reuse. The preceding default adapter/manual build passed 11,370 jobs; complete manual render passed 13,397 jobs; 306 source cones / 1,094 local modules passed the admission audit. Standard DAG/umbrella, copyright, freshness and diff checks passed. The small final contract tightening is being rebuilt.\n\nIndependent source-conversion work also progresses: an external Lake-built prototype identifies checked positive selected roots of `denominator * X^n - numerator` with positive rational-root aliases. Its full theorem axiom inventory contains only the standard three. A separate recognizer prototype passed 10,703 Lake jobs for rational square/cube/higher roots, rejects negative bases and nonreciprocal exponents, and enforces the existing shared exponent budget. These are prototypes, not landed tactic support; current unsupported sqrt(1/2) regression remains accurate.\n\nThe complete issue remains open. General frozen context/root/sign replay, automatic intermediate-key binding/context reconstruction, all-live enlargement, arbitrary-depth finite joint infinitesimal realization, general common-field certification and accepted-certificate algebraic completeness still require their actual owner interfaces and adapter integration. Refreshed #10671/#10694/#10699/#10701 remain open and are not counted as merged. Existing #10633/#10634 interval/index/window/quotation/normalization work and retained measurements are preserved; no estimated general speedup is asserted. No new issue, owner proof or downstream worker was created. #10331 retains dispatch ownership.\n","createdAt":"2026-10-04T20:14:52Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5983964425","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABZLUjog","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Continuing the full #10358 objective. PR #10706 remains on reviewed remote head `1bb57322da6138e71c206a1820577ad084c331a6`; its final fresh Opus review found no blocking concern. Required CI 37231298366 passed build, architecture, manual and benchmark smoke and is still running oracle/BZ checks. Nothing from this PR is counted as landed yet, and its remote head has not been changed by the next tranche.\n\nIndependent source conversion is now committed locally at `a91ae75084`: positive rational square/cube/higher roots are authenticated against `den * X^n - num` and their selected real embedding. Real-power denominators normalize to closed inverses before shared integer reification. Fourteen actual tactic proofs include a further root over the coefficient field, guarded cube division, half-open guards, both alias orientations, and a constructor-wrapped rational base. Mixed caller π/rational-root proof and a public cube-root enclosure also pass; complete axiom guards use only the standard three. Internal zero-divisor refusal tests preserve the existing pending-source API and supported syntax boundary. A fresh pre-PR Opus review's verified findings were addressed. The eventual PR still requires an immediate fresh post-opening review.\n\nThe final original-base compatibility/manual build passed 11,380 Lake jobs; full manual render passed 13,397 jobs, with actual desktop/narrow inspection. Current upstream `c0ccea2e82673ad06bd20a727bdab4ccb44b0e83` has been merged locally at `b6b9347d92d2b44630591b00abcbb9de9afa4690`; affected current-main builds and the admission audit are running. The exact factor Lake exemption was rebound to the merged full blob after checking the full diff and import/ownership implications; factor and graph freshness checks pass. No new PR is opened while #10706 is still pending.\n\nReadiness has changed: #10671 merged as `76ca6620e891b2cb8b991360fd2235db2bf75eb2` (transport of retained checked contexts across equal arithmetic operations); #10694 merged as `c37e5852661870525b6f6b76bff701a39db3e827` (one real realization of a checked selected root over two successive infinitesimals with a finite requested coefficient/sign family). Main also contains #10665 at `12c267c47a` with coherent `Shared.Model.collect?`/gather and actual cached rebuild laws. These landed interfaces are now available for inspection and subsequent adapter composition. Their precise scopes must be retained: operation transport is not byte reconstruction or strict replay; two-infinitesimal realization is not arbitrary interleaved tower induction; shared gathering still needs the corresponding model and coefficient authentication. Open #10699/#10701 are not counted as merged.\n\nGeneral frozen context/root/sign checking, automatic intermediate-key binding and strict arithmetic replay, arbitrary-depth finite joint selected-root/infinitesimal realization, generic frontend certification and accepted algebraic-certificate completeness remain incomplete. #10358 stays open. #10633/#10634 controls and retained evidence are preserved. No owner proof, new issue or downstream worker was created; #10331 retains dispatch ownership.\n","createdAt":"2026-10-04T21:26:08Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5984560034","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABZLjeew","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Merged [PR #10706](https://github.com/kim-em/hex-dev/pull/10706), squash `3ddb236b732f9b3cfad6b4c8abbda4faf6c5c6aa`, reviewed head `1bb57322da6138e71c206a1820577ad084c331a6`. [Required CI 37231298366](https://github.com/kim-em/hex-dev/actions/runs/37231298366) completed successfully, including build, conformance, architecture, manual, benchmark smoke and oracle/BZ gates. The pre-enabled `gh pr merge --squash --auto` retained `issue-10358`. Immediate fresh post-opening Opus review and substantive revision findings were addressed; the final focused review had no blocking concern.\n\nExact landed artifacts:\n\n- `HexRCF/Reify.lean`: public typed rational-coefficient recognition, preserving the base rational path, closed-source equality evidence and caller metavariable state. The published base umbrella remains independent of the real-closure family.\n- `adapters/HexRCF/RealCoefficients/AlgebraicBounds.lean` and `Finite.lean`: caller bounds compose with supported unregistered algebraic leaves. Native coefficient/root approximation proposes endpoints; existing ordinary literal replay proves containment. Exact rational leaves retain singleton bounds. Preparation-local proof reuse binds the exact source and original guard; replay never refines or searches. Public enclosure proofs are checked against their literal original target before acceptance.\n- `conformance/HexRCF/MixedConstants.lean`: ten actual tactic proofs and eleven complete standard-axiom guards, selected/normalized/negative-field leaves, coherent and inconsistent bound forgeries, public fresh kernel acceptance, completed enclosure before false-sentence refusal, state restoration and guard-proof reuse for both closed division and normalized inverse coefficients. Runtime interruptions cannot satisfy refusal assertions. The changed unsupported-rational-root control is addressed by the next tranche, not claimed as part of this merge.\n- Optional umbrella/default Lake roots, existing manual chapter, README and evidence inventory: exact APIs, runnable mixed examples, original-divisor obligations and bounded finite-search limits. Complete manual rendering and desktop/narrow visual checks passed. Exact full-blob factor Lake freshness exemption retains its inspected import/ownership/link argument and previously reported checker-coverage limitations; no measurements, algorithms, checks, caps or CI jobs were changed.\n\n#10358 remains open and the complete goal remains active. Positive rational-root source conversion and native gathering of independent coefficient owners are implemented locally and being prepared for the next Refs PR. Actual #10665/#10671/#10694 owner artifacts are now available and consumed within their exact scope. General frozen context/root/sign reconstruction, complete intermediate-key binding and strict replay, arbitrary-depth finite joint algebraic/infinitesimal realization, generic frontend certification and accepted algebraic-certificate completeness remain incomplete. Open #10699/#10701 are not counted as merged. #10633/#10634 controls and retained evidence are preserved, with no estimated general speedup asserted. No new issue, owner proof or downstream worker was launched; #10331 retains dispatch ownership.\n","createdAt":"2026-10-04T21:54:22Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5984804475","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABZNxZfQ","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"PR [#10714](https://github.com/kim-em/hex-dev/pull/10714) is on `3bacd4ba504bc442750916eed8290c24fa2e6dcf`, with squash auto-merge enabled without branch deletion. Fresh final Opus review on that exact head found no substantive blocker. Required [CI 37262914698](https://github.com/kim-em/hex-dev/actions/runs/37262914698) is still running; this head is not counted as landed.\n\nThe final guard fix permits shared admission only through arithmetic operand positions actually bounded by the shared reader. Kernel-typed beta-redex fixtures in implicit type/instance arguments demonstrate that cheap outer arithmetic cannot hide a separately oversized original guard. Every original zero check remains in source order; the priority probe restores its temporary state, and unsupported syntax is distinguished structurally from terminal failures. The review's implicit-argument resource-bypass finding is fixed.\n\nExact-head focused root/mixed checks pass 10,822 Lake jobs. All 42 affected conformance modules, default adapter, handlers and manual chapter pass 11,462; full manual render passes 13,444. The 330-cone / 1,143-module source audit plus unchanged-import committed-delta scan reject admissions and native_decide. DAG, copyright, source-length, relative-link, factor/graph freshness and diff checks pass. No new scientific measurement is claimed.\n\nIndependent source-authentication work has ordinary-kernel prototypes for frozen nonnegative root selection and for identifying the native-proposed selected base with the original compiled algebraic expression, including `3 + sqrt 2`, cancelled zero and `1/(4 + sqrt 2)`. Fresh theorem axiom guards permit only the three standard logical axioms and transitively exclude FieldBuild/FieldRuntime producer dependencies. These remain prototypes, not landed general tactic support.\n\n#10358 remains open. General strict frozen replay and intermediate/context binding, all-live enlargement assembly, arbitrary-depth joint selected-root/infinitesimal realization, general common-field certification, algebraic-base source conversion and accepted-certificate completeness remain. The direct-realization owner boundary is recorded separately in [#10331](https://github.com/kim-em/hex-dev/issues/10331#issuecomment-5987323539); independent adapter work continues.","createdAt":"2026-10-05T02:35:16Z","includesCreatedEdit":true,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5987129725","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABZP2RTw","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Merged [PR #10714](https://github.com/kim-em/hex-dev/pull/10714), squash `35318e8ccab55b25e26904d7f78c4ba1de8d10d6`, reviewed head `3bacd4ba504bc442750916eed8290c24fa2e6dcf`. [Required CI 37262914698](https://github.com/kim-em/hex-dev/actions/runs/37262914698) completed successfully, including library/conformance/architecture/manual, benchmark smoke and oracle/BZ gates. The sole monitor ended on shared REST quota exhaustion; a recovered final `gh run view` verified the actual successful job, and `gh pr view` verified the merge. The pre-enabled squash auto-merge retained `issue-10358`. Fresh exact-head Opus review found no substantive blocker after verified findings were fixed.\n\nExact landed artifacts:\n\n- `adapters/HexRCF/RealCoefficients/RationalRoot.lean`, `CommonTactic.lean`, `Reify.lean`: checked positive rational square/cube/higher-root source identities and selected embeddings; real-power denominators lower to closed inverse coefficients before the shared integer formula reifier. Common-degree admission counts distinct canonical selected generators and returns typed exhaustion.\n- `Interpret.lean`, `AlgebraicBounds.lean`, `Finite.lean`: rational numerator and zero-power admission covers bases, reciprocal exponents, endpoints and original guards. Successful enclosing admission covers only the arithmetic operand positions actually bounded, excluding type/instance payloads; all original zero checks remain. Rational priority probing restores temporary state. Typed unsupported syntax is separate from terminal budget, evaluation and replay failures.\n- `Gather.lean`: native owner gathering composes with shared specialization and ordinary cell semantics, retaining selected embeddings and coefficient order. This is production/semantics, not general frozen replay.\n- `conformance/HexRCF/RationalRoots.lean`, `MixedConstants.lean`, `Gather.lean`, `NormalizedCoefficients.lean`: 21 rational-root tactic proofs with ordinary axiom guards, inverse/constructor/type/metadata controls, wrong aliases, original divisors, terminal false and deterministic state/budget behavior; kernel-typed implicit payload fixtures prevent resource bypass; native gathering covers independent roots, repeated owners, cancelled atoms and further roots.\n- Optional umbrella/default Lake roots, existing manual/README/evidence and the exact inspected Lake freshness exemption. Local exact-head affected build passed 11,462 jobs; full manual render 13,444 with actual desktop/narrow inspection. No new scientific measurement or owner proof was claimed.\n\nThe next algebraic-base source tranche is committed locally at `acb01d9005` and integrated with current main at `b61704ee0bdfad8d6049019148da237e8c1ed455`; it is not yet pushed or landed. It adds ordinary frozen base/power/branch authentication to the same `rcf`, reuses compiled native base coordinates, admits degree before native root construction, and gives typed negative-base refusal. Nine theorem axiom guards and strict wrong-positive-conjugate, exact guard, rollback, failure and shared-anchor controls pass; current-main broad validation is running. Independent preflight Opus concerns were addressed; the next PR still requires immediate fresh post-opening review.\n\nNew actual owner artifact [#10731](https://github.com/kim-em/hex-dev/pull/10731), squash `97eb000f92bb0d20793fdb5629e9516f3619e233`, supplies finite `NodeData`/`ReplayData`/`DescriptorData`/`DerivativeData` transport and same-root selected signs without universal closure. This resolves the old universal-closure API barrier. Constructing those reached arithmetic premises from accepted tower Γ remains required. Main also contains the owner's #10724 conversion and #10711 enlargement results. Upstream #10730's deliberate proof-probe pruning is preserved.\n\n#10358 remains open. General strict frozen reconstruction/intermediate/context binding, all-live assembly, arbitrary-depth whole joint selected-root/infinitesimal realization, general common-field witness coverage and accepted algebraic-certificate completeness remain incomplete. Finite caller-bound composition with the newly supported algebraic-base aliases is also a follow-up obligation; this exact-source tranche does not silently claim that integration. #10633/#10634 artifacts and retained evidence remain preserved. No new issue, downstream worker, duplicated owner proof or authored AGENTS/PLAN change; #10331 retains dispatch ownership.\n","createdAt":"2026-10-05T06:29:49Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5989306703","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABZRsIBw","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Continuing #10358. [PR #10748](https://github.com/kim-em/hex-dev/pull/10748) has exact head `d0fd3533fc0e4d4dd4b919df926a00434b861ff0`, with squash auto-merge enabled **without branch deletion** after final fresh Opus review cleared substantive concerns. [CI 37282648142](https://github.com/kim-em/hex-dev/actions/runs/37282648142) is still running through one interval-120 monitor. This PR is not counted as landed.\n\nReview revisions now retain one authenticated-base cache throughout recursive preparation, defer irreducibility to the actual common polynomial, reuse accepted sign-table projections, preserve precise unsupported subjects, and keep normalization/budget/provider/replay failures terminal. Thirteen actual tactic proofs and controls for same-polynomial wrong positive conjugates, original guards, cache degree admission, negative-base decline and full caller restoration pass. Exact-head affected build (11,472 jobs), full manual render (13,462), admission/DAG/lint/freshness/links and desktop/narrow inspection pass.\n\nIndependent finite-bound follow-up is implemented locally and **not pushed into the reviewed PR**. Registered π/e bounds compose with authenticated `sqrt(sqrt 2)`, `sqrt(3 + sqrt 2)`, `sqrt(1/(4 + sqrt 2))`, and the mixed divisor `π - sqrt(sqrt 2)`. Four actual `rcf` proofs have complete standard-axiom guards, checked base/root/cell markers and native-producer exclusions. Public original containment proofs, zero divisors under zero multiplication and empty domains, unresolved mixed guards, exact degree exhaustion, missing cached proof declarations, completed false preparation and rollback controls pass. All 41 extension conformance modules/default adapter/handlers/manual pass (11,469 jobs); separate rational checks pass (9,310), full manual render passes (13,462), and four desktop/narrow images were inspected. Structural/freshness/admission and 84 relative-link checks pass. A focused preflight Opus review is running; the follow-up PR waits for #10748 to land and still needs immediate fresh post-opening review/CI.\n\nActual owner #10733 is merged and integrated. #10737 remains open and is not counted as a prerequisite. #10731 resolves the old universal-closure API barrier, but constructing the reached arithmetic/zero-packing premises from accepted tower Γ remains necessary. General strict frozen context/root/sign/intermediate reconstruction, all-live assembly, arbitrary-depth whole joint selected-root/infinitesimal real realization, general irreducibility quotation and accepted algebraic-certificate completeness remain open. #10633/#10634 controls and retained evidence are preserved; no new scientific speedup is asserted. No new issue, downstream worker, duplicate owner proof or authored AGENTS/PLAN change. #10331 retains dispatch ownership.\n","createdAt":"2026-10-05T08:53:52Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5991237639","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABZS0nQw","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Continuing #10358 on `issue-10358`. [PR #10748](https://github.com/kim-em/hex-dev/pull/10748) remains open at reviewed head `d0fd3533fc0e4d4dd4b919df926a00434b861ff0`; squash auto-merge is enabled without branch deletion. It is **not counted as landed**. The original sole interval-120 monitor terminated on shared REST quota exhaustion. After the actual Actions response reset at 10:11:26 UTC, one same-run monitor resumed. Actual [CI 37282648142](https://github.com/kim-em/hex-dev/actions/runs/37282648142) job state verifies library/conformance builds, architecture checks, the manual and benchmark smoke passed; the oracle/BZ tail and final gate remain pending.\n\nThe next complete bounded finite tranche is committed locally at `a0f80205fcd78a3e3ba92390ef760312b4b11dc3`, integrated with actual main `cc9abd3678901cc9f25e2e0c0a7bd12bc126d7c3` at local `2be9930172d9c37e52c6ebc344396b0085040ce1`, and **not pushed into the reviewed PR**. Five new actual ordinary-kernel `rcf` proofs compose caller π/e bounds with nested, shifted and guarded algebraic roots and mixed closed divisors, including a registered root subterm. Verified fresh preflight review findings fixed missing frozen observations for algebraic and rational subterms. Missing/stale observations, whole-subject registration precedence, rational singleton bounds, exact original containment, terminal unsupported/degree/zero-divisor failures, guard preflight under cancellation/empty domains, completed false preparation and state/cache controls are checked. Current-main all43 conformance/shared-reifier/default-adapter/handlers/manual build passes11,482 Lake jobs; full manual render passes13,485 with all four desktop/narrow images inspected. Named audit350cones1167modules, complete RCF cone146roots952modules, DAG/umbrella, copyright/length, factor/graph freshness,84 relative links and diff pass. The next Refs PR waits for #10748 to land and requires immediate fresh post-opening Opus review and exact-head CI.\n\nNew prerequisites actually landed and are integrated locally: #10737 (`cc9abd3678901cc9f25e2e0c0a7bd12bc126d7c3`) supplies eight checked predecessor FactOperations; #10735 (`7434e540ac374a85b73e96f5ea4d301edcc54c08`) supplies total selected-number-field roots with ordinary original-polynomial/multiplicity/order laws; #10743 (`f67141179ad48c0a6e26ba4133600a5f7709aea7`) supplies real-key subsequence transport under actual child laws; #10744 (`07a2c1e3704443b08d7020431ecaf1dacfa1d137`) archives96 nested clean/eager comparison arms. These supersede the previous report that #10737 was open. #10749 remains open at `919c80e679e8198c865a40ff91311fc55db0d874`, not admitted as a prerequisite. An external Lake-built source-specialization/root-semantics prototype consumes #10735, with six complete standard-three axiom guards and controls distinguishing selected cubic embeddings, repeated roots, leading cancellation and zero polynomials; this is not a shipped frozen checker or a scientific performance measurement.\n\n#10358 remains open for general strict frozen context/root/sign/intermediate reconstruction, complete reached arithmetic/zero-packing and all-live assembly, arbitrary-depth whole joint selected-root/infinitesimal real realization, generic common-field irreducibility quotation and algebraic frontend certificate acceptance/progress, and final manual/conformance/evidence attestation. Actual owner components are used within their proved scope: FactOperations are not a general reader, subsequence transport is not joint realization, and native root semantics are not frozen replay. No root/GCD/BKR/approximation search is admitted during replay. #10633/#10634 controls and retained measurements are preserved. No new issue, downstream worker, duplicate owner proof, authored AGENTS/PLAN edit or CI job; #10331 retains dispatch ownership.\n","createdAt":"2026-10-05T10:13:08Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5992425283","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABZTJKdQ","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Merged [PR #10748](https://github.com/kim-em/hex-dev/pull/10748), squash `7c0cd45e3ac5029a9fb48a53f9465ecf0ae1596d`, reviewed head `d0fd3533fc0e4d4dd4b919df926a00434b861ff0`. [Required CI 37282648142](https://github.com/kim-em/hex-dev/actions/runs/37282648142) completed successfully, including libraries, conformance, architecture, manual, benchmark smoke, all oracles/BZ and the final fail-closed gate. Actual final job state is `completed/success`; `gh pr view` verifies `MERGED` at 10:31:32 UTC. The pre-enabled `gh pr merge --squash --auto` used no `--delete-branch`. Immediate fresh post-opening Opus review and follow-up concerns were addressed; final fresh exact-head review had no substantive blocker.\n\nExact landed artifacts:\n\n- `adapters/HexRCF/RealCoefficients/AlgebraicRoot.lean` and `CommonPresentation.lean`: ordinary checked original-base equality, selected embedding, power equation and nonnegative branch evidence authenticate roots of supported closed algebraic bases. Checks reject wrong bases, wrong conjugates (including a different positive conjugate of the same polynomial), zero degree and missing sign evidence. Native proposals are not proof evidence.\n- `CommonTactic.lean`: degree admission precedes native root construction; one authenticated-base cache spans recursive preparation, revalidates hit admission and retains exact proof/source bindings. General root identities defer irreducibility to the actual common polynomial. Accepted sign-table evidence is projected without redundant replay. Precise unsupported subterms and typed unsupported declines remain distinct from terminal budget, normalization, evaluation and replay failures; original divisor obligations remain intact.\n- `conformance/HexRCF/AlgebraicRoots.lean`, `RationalRoots.lean`, `NormalizedCoefficients.lean`: thirteen new actual `rcf` theorem proofs cover nested/shifted/cancelled/guarded roots, reciprocal natural degrees, negative degree-one bases, checked Hex bases, rational-valued bases and recursive cache reuse. Complete axiom inventories admit only the standard three and exclude native producer dependencies. Exact guard, selected-branch, cache-degree, false verdict, unsupported-source, decline and caller-state controls preserve rational compatibility. The missing cached-proof regression belongs to the next tranche, not this merge.\n- Optional umbrella/default conformance roots, existing manual chapter, README and evidence inventory: retained earlier examples plus runnable algebraic-base goals and accurate source/authentication/bounded-search limits. Exact-head affected validation passed11,472 Lake jobs; full manual render13,462 with actual desktop/narrow inspection; admission/DAG/lint/freshness/84relative-link/diff checks passed. No new scientific measurement or owner proof is claimed.\n\nThe finite caller-bound follow-up is committed at `a0f80205fcd78a3e3ba92390ef760312b4b11dc3`. It is now integrated with landed main at `f537ededceffd14129dfc5ec214a24338dc4a952`, with a clean nine-file finite-only delta (335insertions/22deletions). Squash-history merge conflicts were inspected: the four affected RCF files differed only by that validated follow-up, which was retained. No downstream owner changes were overwritten. Current exact-main validation is running before its Refs PR; immediate fresh post-opening Opus/CI is required. Five actual mixed π/e/algebraic-root proofs and the verified nested-provider observation fixes are not counted as landed yet.\n\n#10358 stays open. Actual #10735/#10737/#10743/#10744 owner components are merged and integrated within their proved scopes; main now additionally contains #10752 (`66a25b7db6`) number-field common-presentation conformance. #10749 remains unmerged in the latest readiness read. General strict frozen context/root/sign/intermediate reconstruction, complete reached arithmetic/zero-packing and all-live assembly, arbitrary-depth whole joint selected-root/infinitesimal real realization, generic irreducibility quotation, algebraic frontend certificate acceptance/progress and final complete evidence remain incomplete. No search/refinement is allowed in replay, no π/e independence is inferred, and fixed-field soundness is not frontend completeness. #10633/#10634 controls and retained measurements remain. No new issue, downstream worker, duplicated owner proof, authored AGENTS/PLAN edit or CI job; #10331 owns dispatch.\n","createdAt":"2026-10-05T10:35:37Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5992761973","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABZUJnSA","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"#10756 is merged at `f9ab615bbca204924ea448254f5780e353425958` (reviewed head `2778ba3ab234afede2eb73096ed4dfa426c578ef`). CI run [37300748800](https://github.com/kim-em/hex-dev/actions/runs/37300748800), job `111732732866`, completed successfully with all build, conformance, architecture, manual, benchmark-smoke and oracle gates. Fresh isolated Claude Opus reviews were obtained immediately after opening and on the final revised head; no blocking finding remains. Squash auto-merge was used without branch deletion.\n\nLanded artifacts: `AlgebraicBounds.enclose` authenticates general closed algebraic root sources before proposing bounds and kernel-checks containment of the exact original expression; `Finite` retains whole-subject registration precedence and records registrations observed inside algebraic/rational operands. Frozen checks bind the actual registration subjects, versions and results without rerunning their providers. Five new ordinary-kernel mixed-constant proofs cover nested, shifted and guarded algebraic bases, a nested divisor and registration of an inner algebraic base. Each has the same complete three-axiom inventory and fifteen producer-exclusion checks. Regressions cover original zero-divisor guards, empty domains, bounded exhaustion, unsupported roots of registered constants, missing/stale observations, and registration precedence. The existing manual retains its examples and adds the runnable cases and persistent-registration semantics. All 43 affected RCF modules/default adapter/handlers/shared reifier/manual passed locally (11,482 build jobs); full manual rendering passed (13,485 jobs). No speed improvement is claimed; duplicate source authentication remains a bounded optimization opportunity.\n\n#10358 remains open. Complete generic frozen context/root/sign/intermediate reconstruction, reached arithmetic and zero-packing/all-live assembly, whole finite joint selected-root/infinitesimal realization, generic algebraic frontend certificate acceptance/progress, and final complete conformance/manual/evidence are still required. Actual newly merged #10750/#10751 APIs are being consumed within their proved scopes; #10751 now supports ordered real-key subsequences while the existing RCF wrapper still requires a prefix. This wrapper integration is independent of the outstanding generic replay/realization gates. No inferred joint independence of named constants, owner-proof duplication, new issue, downstream worker, or authored AGENTS/PLAN edit.\n","createdAt":"2026-10-05T11:48:40Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5993817928","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABZVRGGQ","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Merged [#10759](https://github.com/kim-em/hex-dev/pull/10759) at `fde678fd7e06946b6c5b9ff9efecabb7bb31e5ad`, reviewed exact head `d62296341fa6ba949c47a409fd63ac4fc20018d5`. [CI 37308039587](https://github.com/kim-em/hex-dev/actions/runs/37308039587), sole job `111756803229`, completed successfully, including conformance, architecture, manual, benchmark smoke and oracle/final gates. Fresh Opus review immediately after opening identified two evidence gaps; both were addressed. Final exact-head fresh review had no blocker. Squash auto-merge used no branch-deletion flag.\n\nExact artifacts: `adapters/HexRCF/RealCoefficients/Gather.lean` adds `gather_subsequence` using the actual #10751 owner law, retaining `gather_spec`'s prefix API. `conformance/HexRCF/Gather.lean` derives a non-prefix target `[α, β]` through actual provider registration, with the required relative-transcendence premise over the complete parent field, and obtains native formula decision production for an algebraic suffix over independently registered `[β]`. Negative ordinary-kernel theorems prove the actual `Shared.gather?` returns `none` for reversed key order and a stale provider version. All nine guarded theorem inventories use only the standard three axioms. The existing manual/README/evidence inventory distinguish these theorem checks from executed controls and native production from frozen replay. All43 affected conformance modules passed10,884 Lake jobs; revised gathering/manual passed11,438; full render passed13,489 and desktop/narrow prose was inspected. Admission354cones1171modules, DAG/umbrella, copyright/length,65relative-link and diff checks passed. No speed claim.\n\nThe next local, unpushed coverage commit `a1bc6b9106478b3498fbcb07c4e1d9ce03592f6a` proves `∀ x, x² + π − (3 + √2)^(1/3) > 0` using the mixed finite path, with all three ordinary replay markers, fifteen producer exclusions and complete ordinary-axiom audit. Zero-divisor guards inside the algebraic real-power base reject under zero multiplication and empty Ioc. Fresh preflight review confirmed the general non-rational branch and suggested an explicit `Real.rpow` guard; that test passed in a fresh module and is being integrated before the next Refs PR. It is not counted as landed.\n\nNew actual prerequisite: #10749 merged at `98cab2feb583cfcf5019f21ccef62fb309547855`, superseding stale issue comments. Its `RootReplay.readDescriptor`/`readContext`, complete decoded-subject law and exact native-reconstruction equality are integrated locally; owner reader + default adapter build passed10,843 jobs. This supplies one-level structured reconstruction with checked typed predecessor operations, not arbitrary-depth byte/catalog reconstruction or a complete reached-fact inventory.\n\n#10358 remains open for complete generic frozen context/sign/root/intermediate replay and quotation, reached arithmetic/zero-packing/all-live assembly, accepted algebraic certificate production/progress, direct whole-joint `Sample.realizeReplay`, and final complete conformance/manual/evidence. Actual open owner PRs #10755/#10757/#10762/#10754/#10758/#10764 are not counted as merged prerequisites. #10762 explicitly retains the direct accepted finite-replay realization gap. #10633/#10634 controls and retained evidence remain; no generic estimated speedups are asserted. No new issue, downstream worker, duplicated owner proof, authored AGENTS/PLAN edit or CI fan-out; #10331 owns dispatch.\n","createdAt":"2026-10-05T13:02:19Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5994989081","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABZW8D5A","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Merged [#10767](https://github.com/kim-em/hex-dev/pull/10767) at `ca7c5ee359abb173ed319c3bc5878403d9d603ff`, reviewed exact head `71f6f89ff38373c8191fc7c43c2957ceecf26aa7`. [CI 37314025599](https://github.com/kim-em/hex-dev/actions/runs/37314025599), sole job `111776135070`, completed successfully. Immediately post-opening fresh Claude Opus review had no blocker; squash auto-merge used no branch deletion.\n\nExact artifacts: `conformance/HexRCF/MixedConstants.lean` proves `∀ x : ℝ, x² + Real.pi - (3 + Real.sqrt 2)^(1/3 : ℝ) > 0` through the general non-rational algebraic-base path. The proof has all three ordinary replay markers, excludes fifteen producers and uses only the standard three axioms. Three ordinary-kernel refusal regressions preserve zero-divisor guards in a real-power base under zero multiplication, empty Ioc and explicit `Real.rpow`. `HexManual/Chapters/HexRCF.lean` preserves the preceding examples and adds the new example; `reports/hexrcf-adapter-evidence.md` records six proofs. Affected builds, full manual render with desktop/narrow inspection, admission audit (354 cones/1171 modules), DAG/umbrella, copyright/length, 65 relative links and diff checks pass. No production or performance change is claimed.\n\nThe next independent adapter composition uses the already merged `Specialize.realizeReplay`/`realizeBelow` to turn one accepted infinitesimal replay's entire ordered source-atom row, including domain guards, into an ordinary real shared-formula witness. Its semantic module builds; the packaged kernel regression is still being corrected and is not landed evidence.\n\n#10358 remains open for complete generic frozen context/sign/root/intermediate replay and quotation, reached arithmetic/zero-packing/all-live assembly, accepted algebraic certificate production/progress, whole-joint nested `Sample.realizeReplay`, and complete conformance/manual/evidence. The one-infinitesimal composition does not discharge successive infinitesimal or arbitrary nested-root realization. Actual owner PRs are consumed only once merged. #10633/#10634 retained controls/evidence remain in scope. No new issue or downstream worker was launched; #10331 owns dispatch.\n","createdAt":"2026-10-05T14:40:07Z","includesCreatedEdit":true,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5996741604","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABZZrCFQ","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"[PR #10774](https://github.com/kim-em/hex-dev/pull/10774) is merged at `c55a6ce2cde1ca82ef4bb62882c8a0642b9e2dba` after green [required CI 37334147694](https://github.com/kim-em/hex-dev/actions/runs/37334147694), sole job `111845198306`. Fresh Claude Opus review of final head `6772e8e014f9f18cc281b4230a209c7f1ccefeb1` found no remaining actionable blocker after the fixture audit was strengthened. Squash/auto merge preserved the branch.\n\nExact landed artifacts:\n\n- `adapters/HexRCF/RealCoefficients/Realization.lean`: complete source-atom constant lifting, sign agreement and `exists_real`, consuming the owner's actual `Specialize.realizeBelow`/`realizeReplay` theorem and shared whole-formula Boolean law.\n- `conformance/HexRCF/RealizationData.lean` and `Realization.lean`: frozen recursive BKR/count-one evidence for `X − (1 + ε)` produces one ordinary real witness of the complete `(1,2]` guard conjunction. Context/coefficient/query-order swaps, omitted support/children, false truth and truncated rows are controlled. All complete theorem axiom audits pass. The entire literal data definition closure, including private auxiliaries, admits only explicitly listed foreign primitives rather than namespace permissions; unlisted wrappers and certificate producers are rejected.\n- Existing optional umbrella and Lake globs, `HexManual/Chapters/HexRCF.lean`, `HexRCF/README.md`, and `reports/hexrcf-adapter-evidence.md`: public API, complete guarded example and precise scope limits. Lake builds, admission/dependency/umbrella and relative-link checks pass; full manual render was inspected at desktop/narrow widths. No performance gain is asserted.\n\n#10358 remains open. This finite success uses a fixed field with an actual ordered real embedding; frontend source/divisor authentication and original-goal transport remain separate. It does not finish general nested/successive-infinitesimal realization or generic frozen context/root/byte reconstruction. Complete accepted algebraic frontend certificates still have the documented common-field irreducibility language gap.\n\nThe next independent integration of actual merged #10755 is committed locally initially at `e70767900b`, integrated with current main at `185056f1b62259f931ec5315fed48d5c7fdb8130`, and refined after fresh preflight through `370e8a5099`. It passed the optional adapter/all46 RCF conformance/handler/manual build (13,576 jobs). It constructs native shared-formula decisions from original selected `RealAlgebraicNumber`/`QAdjoin` inputs and proves original-valuation preservation. The strengthened several-real-root/non-monic/rational/conjugate-coordinate controls also pass; the revised optional/conformance/manual build passes 13,528 jobs and the final render has been inspected at desktop/narrow widths. It is not yet landed. The existing #10378 owner has the precise direct accepted finite-Γ API request; coordinator #10331 retains downstream dispatch.\n","createdAt":"2026-10-05T17:27:03Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-5999608341","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABZbznuQ","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"[PR #10777](https://github.com/kim-em/hex-dev/pull/10777) merged at `766ff7e1f445316f448aad79878f3c91ccdf079a`, reviewed head `abed350584be2dbfd8d37761d4b8660ddb0dd5c7`. [Required CI 37354105286](https://github.com/kim-em/hex-dev/actions/runs/37354105286), sole job `111912287124`, completed successfully. Fresh Claude Opus review immediately after opening and of the final revised head found no remaining blocker. Squash/auto merge preserved the branch.\n\nExact landed artifacts:\n\n- `adapters/HexRCF/RealCoefficients/NumberField.lean`: `runWith` reuses an actual native presentation of the original selected `RealAlgebraicNumber` and evaluates original `QAdjoin` coordinates. `run` constructs that presentation through the merged owner factory. `runWith_spec`, `run_spec`, `run_coefficients`, `run_total` and `run_true` preserve the original selected real valuation, including the existing frontend `Coefficients.ofField` conversion. No new number-field representation or owner arithmetic is introduced.\n- `conformance/HexRCF/NumberField.lean`: positive/negative quadratic embeddings, all three real embeddings of a cubic, primitive non-monic and rational generators, degree-two coordinates in a cubic field, coordinate-order reversal, repeated/common-root conditions, all six comparisons including variable-dependent disequality, both quantifiers, Boolean forms, leading cancellation, half-open/equal/reversed domains and reuse of one presentation. Fresh semantic and coefficient-interface theorem audits have only the standard three axioms. Owner-factory/packing body checks are explicitly refactor guards, separate from axiom audits.\n- Optional umbrella/default Lake and conformance roots, existing rcf manual chapter, README and evidence inventory: runnable direct API examples and precise distinction between native diagnostic production and frozen replay/quoted proofs. Exact-main adapter/conformance/owner/manual build passed 13,529 Lake jobs; sequential full render passed 13,527. Actual final desktop/narrow proof and scope views were inspected. Admission audit (361 cones/1187 modules), DAG/umbrella, source checks, 70 relative links and diff checks passed. No speed claim is made.\n\n#10358 remains open. This Stage-2 direct API tranche is not generic frontend certificate acceptance or frozen quotation. Remaining obligations include complete frozen context/root/sign/intermediate/byte reconstruction and quotation, reached arithmetic and zero-packing/all-live assembly, the documented common-field irreducibility quotation gap, algebraic-only accepted certificate production/progress, direct complete finite joint nested/successive-infinitesimal realization, and final complete conformance/manual/evidence. The existing #10378 owner has the precise finite-Γ API request; #10331 owns downstream dispatch. #10633/#10634 controls and retained evidence remain in scope.\n\nThe next independent external prototype has ordinary-kernel row-domain/truth/false/total/zero-divisor and supplied-operation agreement laws; a frozen rational-predecessor descriptor and restored coefficient are proved to denote `Real.sqrt 2`. Its 22 literal lower sign packets now pass complete kernel and axiom checking using symbolic reader applications. The first expanded-dependent-fact quotation attempts exceeded 23–32 GB and were stopped; all unfinished observations were retained. No audit was removed. Final upper-root collection currently reports an unproved reduction without a missing-fact boundary, so this prototype is not shipped, accepted replay evidence, or completion. It is being corrected using actual merged APIs. No new issue, downstream worker, owner proof duplication, AGENTS/PLAN edit or CI fan-out.\n","createdAt":"2026-10-05T19:51:00Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-6001846201","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABZcWZew","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Continuing #10358 after merged #10777; no new issue or PR has been opened.\n\nThe external, unshipped native selected-field prototype now obtains ordinary-kernel acceptance of the upper root `X² − α` on `(1,2)`, with the original coefficient proved to denote `α = Real.sqrt 2`. The full parent identity initially blocked reduction at `mixHash`; a checked one-leaf serialization identity and an explicit nondependent Boolean binding wrapper preserve the exact identity without relying on compiled hashes.\n\nThe actual owner producer demanded exactly two further lower-field signs: coordinates `[1,-1]` with sign `-1` and `[4,-1]` with sign `1`. Those packets are now frozen. Replay uses 22 literal packets plus these two intermediates, `KernelReplay.collectMany` with zero fuel and no producer callback, and returns true with zero unresolved requests. `rootAccepted` and the complete decoded-subject law audit to only `propext`, `Classical.choice`, and `Quot.sound`. No audit was removed. An expensive compact-registration trial exhausted its existing heartbeat limit and is retained, not adopted. Typed-root recovery also exposed a missing compiled-IR registration for the generated inventory; compiling that already kernel-checked definition fixes the closed-value compiler failure.\n\nThis is not landed extension evidence or completion. The next step is frozen joint source-row acceptance and an original-goal proof, followed by refusals, integration, review and CI. The existing #10378 owner's [precise response](https://github.com/kim-em/hex-dev/issues/10378#issuecomment-6001171920) confirms that `Transport.Finite.DescriptorData`/`ReplayData` currently consume supplied reached arithmetic relations; they do not construct the missing accepted finite-Γ exporter. #10762 does not fill that gate. Full generic replay/quotation, accepted algebraic progress, joint nested/successive-infinitesimal realization and complete conformance/manual/evidence remain open. Independent ordinary-root work continues; #10331 retains dispatch.\n","createdAt":"2026-10-05T20:33:52Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-6002415995","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABZgCbcw","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Continuing the existing #10358 branch; no new issue or downstream worker has been launched.\n\n[#10799](https://github.com/kim-em/hex-dev/pull/10799) is open with `Refs`, at reviewed head `44aef1ead97ba32f1032009be223a292de7894f9`. Fresh post-opening and revised-head Claude Opus reviews are complete, with the diagnostic guard, redundant root checking and false-to-true forgery findings addressed. Squash auto-merge is enabled without branch deletion. Required [CI 37386882698](https://github.com/kim-em/hex-dev/actions/runs/37386882698), sole job `112022299030`, has passed the library build and is running conformance; this PR is not counted as landed yet.\n\nThe next external, unshipped byte composition now checks the actual 38,990-byte owner JSON encoding of the frozen selected-field row. An ordinary-kernel writer binding and lexical-limit proof feed the owner's `parse_write` and packet decoder. It proves the original statement `∃ x : ℝ, x² = Real.sqrt 2 ∧ 1 < x ∧ x < 2`, an accepted false row/counterexample and a wrong-coefficient refusal, with only standard logical axioms. Compiled controls pass for malformed bytes, byte/depth/digit limits, stale versions, crossed contexts and zero-divisor precedence over parsing. Decoder errors remain unchanged and unclassified; they never select another solver.\n\nA retained diagnostic profile identified the lexical-bound proof as the expensive part (252 seconds of kernel type checking in that run); decoding and source composition were each under a second. Its build is being isolated from Mathlib/real semantics, and the complete constructor-data closure audit is being finished before integration. These are operational observations, not a scientific speedup or full-extension completeness claim.\n\n#10358 remains open. Full generic context/root/row quotation, accepted algebraic production/progress, the documented common-field quotation gap, direct accepted finite-joint nested/successive-infinitesimal realization and complete evidence remain outstanding. The existing #10378 owner's [finite-Γ API gap](https://github.com/kim-em/hex-dev/issues/10378#issuecomment-6001171920) is still precise: supplied reached arithmetic relations are not an exporter from accepted Γ. #10792 and #10786 are still open and are not counted as merged APIs. Independent byte work continues; #10331 retains dispatch. #10633/#10634's merged controls and retained measurement limits remain incorporated.\n","createdAt":"2026-10-06T00:17:46Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-6006283123","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABZhUAng","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Merged [#10799](https://github.com/kim-em/hex-dev/pull/10799) at `d1fdcaad45b493507ba360012ece14c2cc84f483` after green [required CI 37386882698](https://github.com/kim-em/hex-dev/actions/runs/37386882698), sole job `112022299030`, on reviewed head `44aef1ead97ba32f1032009be223a292de7894f9`. Fresh Claude Opus review immediately after opening and at the revised head found no remaining blocker after the diagnostic-guard, redundant-root-check and false-to-true forgery findings were addressed. Squash/auto merge preserved the branch.\n\nExact landed artifacts:\n\n- `adapters/HexRCF/RealCoefficients/SelectedFormula.lean`: checked literal row replay in an original selected field, eight supplied-operation agreement, supplied-divisor validity, truth at the same ordinary point, existential witness and pointwise counterexample laws.\n- The 22 `conformance/HexRCF/SelectedRoot/` modules: actual source proof `∃ x : ℝ, x² = Real.sqrt 2 ∧ 1 < x ∧ x < 2` through a reconstructed positive α with α²=2 and the further root of X²−α. All 37 scalar-packet acceptances, three upper-data parsers, upper-root/row checks and five collected refusals have active, nonempty kernel diagnostics excluding listed root/sign producers, independently of zero unresolved requests. Parent construction and separate source/codec controls remain ordinary-kernel/axiom checked outside that diagnostic guard. Both directions of the forged-sign control, wrong coefficient, reversed keys, stale/crossed contexts, original zero divisor and missing arithmetic inventory are controlled.\n- `conformance-fixtures/HexRCF/selected-root.json` and `scripts/rcf/selected_literals.py`: exact frozen source/evidence and deterministic constructor regeneration checked in the existing CI job. Complete literal-definition closures and theorem axiom inventories are audited.\n- Optional umbrella/default Lake globs, existing rcf manual/README and `reports/hexrcf-selected-root.md`/adapter inventory: direct API, original proof, exact scope and retained operational captures. Revised targeted fixture build passed in 140.75 s; largest-child RSS 9,258,528 KiB. Full affected/manual/render and DAG/umbrella/admission/relative-link/source checks passed. No scientific speedup, DAG-sharing gain or full-extension completion is claimed.\n\n#10358 stays open. This is one ordinary selected-root row, conditional on the supplied faithful parent model and authenticated source values; false is pointwise, not a false existential decision. Generic frozen context/root/row quotation, reached arithmetic/zero-packing/all-live assembly, the common-field quotation gap, algebraic accepted-certificate production/progress, direct complete finite-joint nested/successive-infinitesimal realization and complete evidence remain outstanding. The existing #10378 owner has the precise accepted finite-Γ exporter request; #10331 owns dispatch. #10633/#10634 controls and retained measurement limits remain incorporated.\n\nThe next byte tranche is prepared locally, with a proved binding of the actual 38,990-byte owner encoding, lexical-limit proof, original-goal/false/wrong-coefficient proofs and malformed/limit/stale/context/zero-precedence controls. Its initial ordinary-kernel, axiom, complete 167-definition literal-closure and affected/manual checks pass; current preflight refinements strengthen the zero-budget control, enforce the exact closure count and document that lexical limits do not bound compiled native arithmetic. Those refinements are under revalidation. It is not landed yet and does not supply arbitrary context-catalog reconstruction or full progress.\n\nOwner [#10792](https://github.com/kim-em/hex-dev/pull/10792) has now merged at `bf641995677fc46c12547b3d6bc6d73727dc883b`. Its original-packing authentication and dependency-order APIs will be consumed where applicable; its simultaneous realization still requires reached lower finite premises and is not the completed recursive finite-Γ exporter. #10786 remains open.\n","createdAt":"2026-10-06T01:45:00Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-6007619742","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABZiu0wA","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Merged [#10820](https://github.com/kim-em/hex-dev/pull/10820) at `3be3cb99ff2d2a8d4188ca68dfa264b760e4ce3f` after green [required CI 37403212345](https://github.com/kim-em/hex-dev/actions/runs/37403212345), on reviewed head `1e6c8ed108d46c0f7860c4a233aa7148f0d4a2dd`. Fresh post-opening and revised-head Claude Opus reviews found no blockers. The acceptance checks independently verified all ten current source hashes against the committed head. Squash auto-merge preserved the branch.\n\nExact landed artifacts:\n\n- `adapters/HexRCF/RealCoefficients/SelectedBytes.lean`: original-divisor preflight before byte parsing, canonical and eight equal supplied-operation entrypoints, unchanged nested decoder/authentication and row results, selected-point semantics, ordinary existential witness and pointwise counterexample laws. Lexical limits do not bound coefficient arithmetic; compiled canonical operations or cached fact misses can run native production, and decoding depends on the supplied value codec. This is not a strict production-free checker for arbitrary compiled dictionaries.\n- `conformance/HexRCF/SelectedRoot/Byte{Data,Bounds,Proofs,Checks,Audit}.lean`: actual owner encoding, ordinary-kernel writer binding and exact 38,990-byte size theorem, lexical-bound theorem and actual owner parser law, original theorem `∃ x : ℝ, x² = Real.sqrt 2 ∧ 1 < x ∧ x < 2`, false/counterexample and wrong-coefficient proofs. All 167 literal-definition dependencies are checked against the explicit UInt8 primitive allowlist. Five actual acceptance proof bodies are rechecked with active, nonempty kernel diagnostics excluding the listed native producers; complete theorem axiom inventories pass. Writer/size/lexical proofs remain separate ordinary-kernel data computations. Compiled controls cover malformed/truncated input, byte/depth/digit exhaustion, stale and crossed context, zero-before-limit precedence and forged coefficient/row signs in both result layers.\n- Optional public umbrella/default Lake target and conformance globs; the existing deterministic `scripts/rcf/selected_literals.py` now regenerates the fifth byte module as well as four structured modules. The existing CI check validates exact regeneration, without another job.\n- Manual/README and `reports/hexrcf-selected-root.md`/adapter inventory: source/model obligations, pointwise false scope, compiled-fallback and lexical-limit boundaries, and seven retained build logs with independently verified digests and exact historical/current source records. The main-integration build passed 13,841 jobs, all affected RCF/rational conformance 10,992, final byte acceptance controls 10,931 and manual render 13,815. Desktop/narrow views were inspected. DAG/umbrella, admissions (375 cones/1,204 modules), copyright/file-size, 101 relative links and diff checks pass. These are acceptance/operational records, not a scientific speedup or full-extension evidence claim.\n\n#10358 remains open. This byte API concerns one supplied immutable selected-root context and a faithful ordinary real model; it does not reconstruct arbitrary context catalogs, supply full root coverage or decide a false existential sentence. Full generic frozen context/root/row quotation, all-live original-packing assembly, the common-field quotation coverage gap, algebraic accepted-certificate production/progress, complete finite-joint nested/successive-infinitesimal realization and final evidence remain outstanding. #10331 retains dispatch; no new issue or worker was launched. #10633/#10634's actual merged controls and retained measurement limits remain incorporated.\n\nThe merged #10792 original-packing APIs are consumed in the next, unshipped tranche. Its actual fixture contains 42 original row requests and an additional nonzero `X²−2` request that packs to canonical zero. All 43 packet-to-record laws, the row proof and its fresh original-goal proof pass ordinary-kernel checking; the complete 1,322-definition literal closure and actual acceptance bodies are audited. Exact missing original, literal-zero and nonzero-constant controls refuse before a Boolean verdict. Fixture, deterministic converter, five existing-target conformance globs, manual and retained logs are staged. The optional/manual build and complete audits pass; revalidation against current main is running. This work is not landed in #10820 and covers row arithmetic rather than all coefficient/packet reconstruction. The owner's finite-Gamma APIs still consume supplied reached lower relations instead of constructing the recursive accepted exporter; the precise compiled-fallback coverage question remains in the existing authorized family mailbox.\n\nOwner [#10786](https://github.com/kim-em/hex-dev/pull/10786) has merged at `099d825fef77d4df163b710027511507b31531b8`. Its actual public `Codec.descriptor`, `readDescriptor`, `readDescriptorBinding` and coverage/exact-binding proofs are now available for subsequent composition. The unchanged six-field subject still needs mathematical root replay; this is not the missing recursive finite-Gamma exporter.\n","createdAt":"2026-10-06T04:05:35Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-6009107648","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABZjMRWg","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Continuing #10358 on the existing branch. [PR #10824](https://github.com/kim-em/hex-dev/pull/10824), `Refs #10358`, is open at final reviewed head `115c1a1e4b2aa98d689b3b3ec363818be9f43b57`. Immediate post-opening, revised-head and final focused fresh Opus reviews found no blockers after the packet-binding, literal-zero and inventory-order findings were addressed. Squash auto-merge is enabled without branch deletion; [CI 37414836064](https://github.com/kim-em/hex-dev/actions/runs/37414836064), sole job `112111130328`, is running. This tranche is not landed yet.\n\nIts exact artifacts are the five `SelectedRoot/Packing*.lean` conformance modules, the 43-record `selected-packing.json` fixture, deterministic converter/existing Lake globs, manual and `reports/hexrcf-selected-packing.md`. All 43 packet-to-record laws, actual row/refusal bodies and complete 1,322-definition literal closure pass kernel/axiom audits. The actual inventory body is checked against the 43 named records in order. Missing original −α² with reduced −2 retained, missing literal zero with a different canonical-zero record retained, missing nonzero constant and a swapped joint graph with equal scalar fields are controlled. The nonzero original X²−2 packs to canonical zero. The full affected 81-target adapter/RCF/manual build passes 13,913 jobs; source-distinct strengthened controls pass 13,851 and 10,857; final manual renders pass 13,828. Eleven retained log digests and nine committed source hashes are independently verified. Failed attempts and unpaired operational timings remain explicitly separate. No general speedup is claimed.\n\nThe inventory covers predecessor row arithmetic. Source coefficients use authenticated `Element.restore`; upper-descriptor/row-packet reconstruction still uses the scalar-fact inventories. #10358 remains open for generic frozen context/root/row assembly and quotation, full all-live assembly, common-field quotation coverage, accepted algebraic frontend production/progress, complete finite-joint nested/successive-infinitesimal realization and final evidence. The owner's actual merged catalog/root APIs are being integrated in the next local probe; it is not counted as delivered. The existing owner's #10811 inverse inventory and recursive finite-data work will be consumed when merged, without duplicating its proofs or waiting for unrelated whole-issue Phase 4 closure. #10331 retains dispatch. No new issue or worker was launched; #10633/#10634 controls and measurement limits remain incorporated.\n","createdAt":"2026-10-06T04:52:56Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-6009590106","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABZj7UmQ","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Merged [#10824](https://github.com/kim-em/hex-dev/pull/10824) at `024f6b6ca825b14e80b2b8652b7c2751f7565873` (2026-10-06 05:58:58 UTC), from reviewed head `115c1a1e4b2aa98d689b3b3ec363818be9f43b57`. [Required CI 37414836064](https://github.com/kim-em/hex-dev/actions/runs/37414836064), sole job `112111130328`, completed successfully. Immediate post-opening and subsequent fresh Opus reviews found no remaining blocker after the binding, zero, inventory-order and metadata findings were addressed. Squash auto-merge retained `issue-10358`; remote branch retention is verified.\n\nExact landed artifacts:\n\n- The five `conformance/HexRCF/SelectedRoot/Packing*.lean` modules: original packing reader, constructor data, 43 named packet-to-record laws, actual row and missing-record/swapped-joint refusals, semantic source composition and stored-body/literal/axiom audits.\n- `conformance-fixtures/HexRCF/selected-packing.json`: 43 distinct original keys (42 historical captured row records plus the original X²−2 record reducing to canonical zero), 230,192 bytes; 86 scalar/joint graphs, 171 stored nodes and 172 expanded root occurrences. This is predecessor row arithmetic, not a claim that all 42 historical records are currently demanded or that a recursive exporter is complete.\n- Deterministic packing generation and duplicate-original rejection in `scripts/rcf/selected_literals.py`, existing Lake conformance globs, the existing manual chapter, `reports/hexrcf-selected-packing.md`, evidence-table updates and `reports/data/hexrcf-selected-packing/build-context.json`. Nine committed source hashes and eleven retained log digests were independently checked.\n\nThe full affected 81-target adapter/RCF/manual build passed 13,913 jobs. Strengthened controls passed 13,851 and 10,857; final manual renders passed 13,828. All 43 read-law bodies, actual row/refusal bodies, inventory order and complete 1,322-definition literal closure are checked. Controls retain reduced −2 while omitting original −α², retain a different canonical-zero record while omitting literal zero, omit a nonzero constant, and swap a joint graph with the same scalar fields. No generic performance improvement is claimed; failed attempts and source-distinct operational observations remain separate.\n\n#10358 remains open. Source coefficients use authenticated `Element.restore`; the upper descriptor/row packet still uses scalar-fact inventories. Remaining gates include generic frozen context/root/row assembly and quotation, full all-live enlargement and packing/inverse assembly, common-field certification beyond the existing languages, accepted algebraic frontend production/progress, complete finite joint nested/successive-infinitesimal realization, and final conformance/manual/evidence. Default native codec/adjoin paths are not converted into strict compiled replay by these packing records.\n\nThe next independent, unshipped local probe now binds an actual 2,911-byte selected-root JSON payload to the fresh-catalog root and original source condition, with six stored proof bodies passing the native-production guard and ordinary axiom audit. Its byte parser/catalog composition also builds, but further byte/control/literal audits and integration remain; this is not counted as a landed artifact. Owner #10811/#10821/#10823 were still open at the latest check and will be consumed only when actually merged. No new issue or worker was launched; #10331 retains dispatch. #10633/#10634's delivered controls and measurement limitations remain incorporated.\n","createdAt":"2026-10-06T06:01:03Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-6010360985","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABZlLYQQ","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Continuing #10358. [PR #10836](https://github.com/kim-em/hex-dev/pull/10836), `Refs #10358`, is open at final reviewed head `d84cecfde40a2c2b09e55e8279793bcc98a3ae9f`. Immediate post-opening, revised and final fresh Opus reviews completed; final review found no blockers. [CI 37427462154](https://github.com/kim-em/hex-dev/actions/runs/37427462154), sole job `112150371581`, is running under one 120-second watcher. Squash auto-merge is enabled without branch deletion. This tranche is **not landed yet**.\n\nIts seven catalog conformance modules bind the 2,911-byte selected-root packet to writer output and owner round-trip laws, reconstruct the original predecessor, and prove the original nested-root existential at that same ordinary real point. Complete audits cover 75 JSON and 21 byte definitions, 16 guarded actual proof bodies and nine ordinary bodies. Five compiled controls check distinct-endpoint mutation preconditions, exact returned root bytes, explicit stale-context rejection, wrong root kind and an endpoint/old-graph binding mismatch. Compiled answers remain diagnostic only. The full audit/manual and final render passed 13,865 and 13,837 Lake jobs; eleven current source hashes and twelve retained log digests are independently verified. Generic root-set coverage, strict compiled catalog replay and arbitrary certificate assembly are not claimed.\n\nAn independent experiment tests the existing common-field factory rather than inventing another certificate language. `QAdjoin.common` on `CertificationInputs.realAlgebraic.toAlgebraic` and `(2 : AlgebraicNumber).sqrt` proposes `[-2, -24, 169, 70, -127, -70, 6, 8, 1]`. Both direct type conversion and ordinary-kernel `decide` fail to identify that frozen polynomial with `common.generator.p`; consequently `common.generator.checked` is not yet a quoted irreducibility proof of the literal. Failed builds are retained and no admission or mathematical success is claimed. This confirms the existing quotation boundary: a checked literal transport or sufficient irreducibility evidence is still needed.\n\nThe Mathlib-free compiled byte experiment built and verified all three cumulative stages. Six fixed trial-major forward/reverse blocks retained all eighteen successful samples, with matching expected hashes. Host-specific medians are 44.080 μs for lexical checking, 153.576 μs for parsing and 407.027 μs for default catalog reconstruction. The compiler lists 442 imports and no Mathlib. Reconstruction retains the owner's native coefficient/adjunction paths; these are one-input operational costs, not strict replay, whole-tactic proof costs, scaling or a speedup claim. The source-bound archive/report is prepared for the next delivery.\n\nActual owner merges #10821 (`e7f0f77bacf86c829649e224338de757171a72db`) and #10831 (`1d1f9e60daf81a4c705f1f06eb4c8fe2dbbfd2ca`) are verified and their APIs are being inspected. They are not silently equated with recursive finite-data export or the production-free supplied-inverse reader asked for in [the existing owner thread](https://github.com/kim-em/hex-dev/issues/10378#issuecomment-6010442498). No new issue or downstream worker was launched. The full goal and #10358 remain open.\n","createdAt":"2026-10-06T07:38:51Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-6011672641","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABZlpeIg","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"A concrete update to the degree-eight common-field quotation gap: the existing public `HexBerlekampZassenhausMathlib.FactorTactic.bangZPolyIrred` API (`irreducibility!`) proves irreducibility of the exact literal `[-2, -24, 169, 70, -127, -70, 6, 8, 1]` when the calling module imports the factorizer executable closure with `import all`. Both `Irreducible` and `CheckedIrreducible` build successfully through Lake (9,675 jobs, target 9.8 seconds on this host), and complete printed axiom dependencies are exactly `propext`, `Classical.choice`, `Quot.sound`. No proof admission is accepted.\n\nThis narrows the gap but does not close it for the optional frontend. Lean rejects `public import all`; a separate carrier module with ordinary public imports plus private `import all` builds, but its ordinary-import consumer fails kernel replay at `polynomial.factorize`. Thus importing a helper umbrella cannot supply the private executable closure to normal `import HexRCF.RealCoefficients` clients. This is independently reproduced, rather than inferred from diagnostic strings for dispatch. Failed consumer builds and their generated failed-elaboration dependencies are retained as failures, never shipped as proofs.\n\nThe existing finite certificate routes still decline for this literal. The remaining usable prerequisite is an ordinary-import checkable irreducibility proof/certificate interface covering such common polynomials, or an owner-approved public kernel replay interface whose reduction closure is actually available to normal clients. No new certificate language, lower-library proof, issue, worker or architecture change has been introduced. The successful private-closure experiment is proof evidence for this one polynomial only; it is neither complete algebraic frontend acceptance nor production-free certificate replay. #10331 retains any downstream dispatch. Independent adapter integration continues while PR #10836 CI runs.\n","createdAt":"2026-10-06T08:11:54Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-6012165666","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABZmQ-xQ","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"The next independent #10358 tranche is prepared on the existing branch at local commit `7c14aca5d3496644f282c59b5578b80b65f49276`. It consumes actual merged #10821 shared-base APIs. #10831 is present in the integrated main baseline; this tranche does not claim a new inverse-replay integration. The preceding PR #10836 remains at its reviewed remote head and has passed library and conformance stages; its remaining CI gates are running under the existing single watcher. The new tranche is not landed and will be published after #10836's actual merge.\n\nExact prepared artifacts: `Gather.runFrom?`, `runFrom?_spec`, `runFrom?_original`, and `gather_catalog`; `conformance/HexRCF/GatherCatalog.lean` and its existing Lake glob; README/manual; `reports/hexrcf-catalog-gather.md` with eleven source hashes, nineteen retained build/gate logs and manual inspection metadata. Automatic selection preserves owner order and separately authenticated source values. The ordinary-real success theorem constructs a returned gathering and native decision from modeled admissible installed prefixes and compatible depth-zero owners. It does not assume a successful factory equation or Boolean answer, infer joint relative transcendence or model symbolic infinitesimals in ℝ.\n\nPublic-import controls retain positive/negative √2, an independent √3 and a repeated owner. They check a further-root existential, an impossible negative-square existential, leading cancellation, a zero atom and empty rational coefficients. The no-joint-prefix refusal theorem yields no verdict. The admissible-only model premise excludes unrelated catalog entries. Parameterized kernel instances exercise an installed `[α, β]` model serving a non-prefix `[β]` owner (`β ≠ α`) and a literal stale-version refusal. Six exact complete transitive axiom inventories each contain the standard three axioms. The optional/manual build passes 14,032 Lake jobs; all ninety affected RCF/rational/handler targets pass 11,049; final rendering passes 14,032. Final revised contract and cost paragraphs fit desktop and narrow views; rendered paragraph layout and scroll widths agree. DAG/umbrella, copyright, deterministic regeneration, admissions, relative links and source/log digests pass.\n\nThe retained eighteen-sample compiled packet study and the degree-eight private-closure proof experiment are now source-bound report/data artifacts in this local commit. Historical measured-source identities remain explicit. Neither is a speedup, complete frontend acceptance or production-free replay claim.\n\nRemaining gates are unchanged: ordinary-import common-field irreducibility quotation, generic frozen context/root/row assembly and all-live packing/inverse assembly, actual recursive finite-data export and whole finite-joint nested/successive-infinitesimal realization, frontend accepted-certificate progress/completeness and final full-scope evidence. The precise supplied-inverse reader question remains on existing owner #10378. No new issue, downstream worker or lower-library proof was introduced. #10358 and the completion goal remain open; #10331 retains dispatch.\n","createdAt":"2026-10-06T08:53:46Z","includesCreatedEdit":true,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-6012812997","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABZm12Pg","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Landed [PR #10836](https://github.com/kim-em/hex-dev/pull/10836) through squash auto-merge as `2a7d7f0b5dda846983a31960dd06a6bc484504a1` at 2026-10-06T09:31:00Z. Final reviewed head `d84cecfde40a2c2b09e55e8279793bcc98a3ae9f`; [CI 37427462154](https://github.com/kim-em/hex-dev/actions/runs/37427462154), sole job `112150371581`, completed successfully. The existing `issue-10358` remote branch is retained. Immediate post-opening and revised fresh Opus reviews were addressed; final review had no blockers.\n\nExact landed artifacts: `conformance/HexRCF/SelectedRoot/{CatalogSource,Catalog,CatalogData,CatalogByteData,CatalogBytes,CatalogControls,CatalogAudit}.lean`, the matching Lake globs, `scripts/rcf/selected_literals.py`, `conformance-fixtures/HexRCF/selected-catalog.json`, the existing rcf manual chapter, and `reports/hexrcf-selected-catalog.md` with source-bound diagnostic records. The 2,911-byte writer payload is bound to constructor bytes and the returned selected root; the owner round-trip laws restore its actual predecessor and root from an empty validated rational catalog. The ordinary proof establishes the original nested-root existential at that same selected real point. The text fixture ends with newline, while the exact writer byte literal retains its final space.\n\nComplete audits cover 75 JSON and 21 byte definitions, 16 actual proof bodies under producer guards, and nine ordinary bodies with standard complete axiom inventories. Five compiled controls pin the positive writer path, stale binding, wrong root kind, distinct-endpoint mutation precondition and endpoint/old-graph mismatch; lexical-limit and truncation refusal proofs are retained. Compiled verdicts are diagnostic, not proof evidence. Default reconstruction still uses native coefficient/adjunction paths, so this is not strict arbitrary compiled replay or checked root-set coverage.\n\nThe next local tranche consumes merged #10821 in `Gather.runFrom?`, preserves original owner ordering and source-model equations, and proves production success for admissible modeled prefixes with depth-zero original bases. Its non-prefix registered-owner and stale-version kernel instances pass all six exact standard-axiom audits. The optional/manual and final render pass 14,032 jobs; the latest merged Lake integration passes 10,948. It is not yet landed and is being published on the same retained branch.\n\n#10358 and its completion goal remain open. Remaining gates: ordinary-import common-field irreducibility quotation; generic frozen context/root/row assembly and all-live packing/inverse assembly; recursive reached-data export and entire finite-joint nested/successive-infinitesimal realization; algebraic accepted-certificate completeness; and final full-scope conformance/manual/evidence. The supplied-inverse reader boundary is explicit on [the existing owner thread](https://github.com/kim-em/hex-dev/issues/10378#issuecomment-6013256497). #10633/#10634's delivered changes and measurement limitations remain incorporated. No new issue or downstream worker was launched; #10331 retains dispatch.\n","createdAt":"2026-10-06T09:31:42Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-6013417022","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABZooeQw","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"The following independent original-source integration is implemented on the existing `issue-10358` branch at local commit `b8e145dc3ea68046ea23770cf25e4050032d631f`. It is not landed or pushed over the reviewed #10838 head while that PR's final CI gates run.\n\n`adapters/HexRCF/RealCoefficients/RegisteredGather.lean` adds `Gather.run_registered`: for one authenticated nonempty real prefix inserted into an empty catalog and one coefficient from its base, it derives exact catalog target selection and identity-factory equations. The native verdict agrees with the original caller model's exact coefficient value; there is no caller-supplied factory-success or coefficient-agreement premise.\n\n`conformance/HexRCF/RegisteredGatherConformance.lean` constructs the actual Liouville model from existing owner containment, width and relative-transcendence laws, proves insertion success, identifies its source coordinate with `liouvilleNumber 2`, and derives native true, false and further-root decisions, including one ordinary real square root satisfying the equation and the literal `(0, 2]` guard atoms together. These laws do not emit a frozen tactic certificate. Eleven complete theorem axiom inventories contain exactly `propext`, `Classical.choice`, `Quot.sound`. Public API/conformance validation passes 10,848 Lake jobs; optional adapter, conformance, manual and final render pass 14,034. Existing manual examples are retained. DAG/umbrella, copyright, file limits, admissions, relative links, source/log bindings and diff checks pass; nine source hashes, nineteen decoded logs and both manual inspections are bound and verified. `reports/hexrcf-registered-gather.md` and its data context retain the exact surface and separate failed drafts from successful checks.\n\nThe existing common-kernel gap was investigated further outside the repository: importing the factorizer closure into a temporary private environment makes its literal decision true, but bounded extraction still fails checking in the original ordinary environment. Explicit proof-body normalization exhausts 200,000 heartbeats; full normalization was interrupted after heavy expansion. There is no accepted extracted proof or shipped environment loader, and this is not an impossibility claim. The ordinary-import irreducibility prerequisite remains open.\n\n#10832's updated unmerged inverse dictionary is also checked for scope: its typed inverse record retains `argument.inverseCandidate`; it does not yet answer the production-free supplied-candidate reader question on #10378. No unmerged interface has been integrated.\n\nThe next tranche will receive fresh post-opening Opus review after #10838 actually merges. #10358 remains open with generic frozen assembly, all-live/inverse packing, recursive finite-joint realization, algebraic accepted-certificate completeness and final full-scope evidence outstanding. No new issue or downstream worker was launched; #10331 retains dispatch.\n","createdAt":"2026-10-06T11:29:19Z","includesCreatedEdit":true,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-6015295043","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABZo6XoQ","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Landed [PR #10838](https://github.com/kim-em/hex-dev/pull/10838) through squash auto-merge as `88556fef5e3bf1b091648ee2b99d44a6e9491b89` at 2026-10-06T11:48:08Z. Reviewed head `dad0345ddb97b295b61a4393be8268c54157bd5e`; [CI 37448912704, attempt 2](https://github.com/kim-em/hex-dev/actions/runs/37448912704), sole job `112222842169`, succeeded. The existing `issue-10358` branch is retained. Immediate and revised fresh Opus reviews were addressed; final review had no blockers. Attempt 1's isolated TemporaryDirectory cleanup failure and the successful local affected test are retained separately.\n\nExact landed artifacts: `adapters/HexRCF/RealCoefficients/Gather.lean` (`runFrom?`, `runFrom?_spec`, `runFrom?_original`, `gather_catalog`), `conformance/HexRCF/GatherCatalog.lean`, the existing conformance glob, README, the rcf manual and its `CallerBounds.lean` helper, adapter inventory, and source-bound catalog-gather/common-kernel/compiled-packet reports and data.\n\nAutomatic gathering consumes merged #10821 and preserves original owner ordering. The success theorem derives native gathering and a decision from admissible modeled installed prefixes and compatible depth-zero owners. Original-model agreement retains explicit selected-factory equations; key compatibility alone does not identify separately registered real values. Public-import controls cover selected positive/negative √2, √3, repeated owners, cancellation/zero, true further-root and false existential cases, non-prefix registered-owner semantics and stale refusal. Native compiled controls use the actual one-provider Liouville fixture with positive/negative `X`, stale version, invalid-newer fallback and rational-first empty owners. Six complete theorem audits contain exactly the standard three axioms. This is native production, not generic frozen replay or a joint-independence claim.\n\nThe optional/manual and final rendering pass 14,033 Lake jobs. The manual was split properly below the 3,000-line cap without discarding executable examples; bounds remain section 18.17 and cross references 18.18. Source-bound historical packet evidence retains all eighteen fixed-schedule samples and separates worker/outer RSS. The degree-eight private-closure irreducibility experiment is not an ordinary-import frontend repair. Neither report claims full scaling or a speedup.\n\nThe following independent tranche is locally committed at `b8e145dc3ea68046ea23770cf25e4050032d631f`: `Gather.run_registered` derives exact target selection and factory identity for one authenticated nonempty prefix and one original coefficient, and concrete Liouville producer laws preserve the actual original source value, including the further-root equation and both `(0, 2]` guards at one ordinary real witness. It has eleven standard-axiom inventories and passing ordinary-import, optional/manual and render checks; it is not yet landed.\n\n#10358 remains open. Remaining gates: ordinary-import common-field irreducibility quotation; generic frozen context/root/row assembly and all-live packing/inverse assembly; recursive reached-data export and whole finite-joint nested/successive-infinitesimal realization; algebraic accepted-certificate progress/completeness; final full-scope conformance/manual/evidence. The precise supplied-inverse boundary remains on the existing #10378 thread. #10633/#10634's delivered changes and measurement limits remain incorporated. No new issue, downstream worker or lower-library proof was introduced; #10331 retains dispatch.\n","createdAt":"2026-10-06T11:48:31Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-6015588257","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABZrRLXQ","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"The next independent #10358 tranche is locally complete at `e2f3bfeb8c3433dbab91a928562d1d1879e7faac`, held on the existing `issue-10358` branch until #10839 actually merges. It is not landed.\n\n`Gather.run_registered_many` preserves every original coordinate in order from one authenticated real prefix; the existing singleton theorem is derived from it. The actual Liouville model provides `(L, L⁻¹)`. Ordinary-kernel theorems and compiled controls exercise `∃ x, x² = L ∧ x² L⁻¹ = 1 ∧ 1 < x` (true), exchanged coordinate occurrences (false), a standalone double-root polynomial on included/excluded domains, and a false negative-square existential. The existing modules reuse their native fixture and audit all 27 complete theorem inventories against exactly the standard three axioms. Public API/conformance and optional/manual/render checks pass, with source-bound logs and four desktop/narrow inspections. No new CI target or job is introduced.\n\n#10839 remains at its final reviewed head `b70dc5ffca5511b1adddf4d471d4a0467f057fbc`, with squash auto-merge enabled and its branch retained. Run 37465362513 has passed library, conformance and architecture checks; the manual/final gates are still running. `gh run watch` has been interrupted by HTTP 403 on the job-list endpoint. Adjacent direct job queries succeed and show progress; this is a monitoring failure, not a reported source failure or a green-CI claim. The next commit is deliberately not pushed over that reviewed head.\n\nRemaining full-scope gates are unchanged: ordinary-import common-field irreducibility quotation; generic frozen context/root/row and all-live packing/inverse assembly; recursive reached-data export and simultaneous finite-joint realization; algebraic accepted-certificate completeness and final full-scope evidence. #10832 is still unmerged. The existing strict supplied-inverse question on #10378 remains unanswered. The merged #10834 provider permutation law is usable with both actual realizations; it does not itself derive source reconstruction or strict replay. #10633/#10634 remain incorporated with their existing measurement limits. No new issue or downstream worker has been launched.\n","createdAt":"2026-10-06T14:07:46Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-6018059101","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABZr4jYA","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Landed [PR #10839](https://github.com/kim-em/hex-dev/pull/10839) through squash auto-merge as `4aa3409bc0fd8926370beb404c626bce9788bf77` at 2026-10-06T14:40:49Z. Final reviewed head `b70dc5ffca5511b1adddf4d471d4a0467f057fbc`; [CI 37465362513](https://github.com/kim-em/hex-dev/actions/runs/37465362513), sole job `112275030341`, completed successfully. The existing `issue-10358` branch is retained. Immediate post-opening and revised fresh Opus reviews were addressed; final review had no substantive blockers. Superseded runs and the Actions API monitoring interruption are retained separately.\n\nExact landed artifacts: `adapters/HexRCF/RealCoefficients/RegisteredGather.lean`, its existing optional umbrella/default Lake wiring, `conformance/HexRCF/RegisteredGatherConformance.lean` and its existing glob, the rcf manual, README, adapter inventory, and `reports/hexrcf-registered-gather.md` with source-bound records. `Gather.run_registered` derives exact nonrational catalog selection and the original model's identity factory for one base-field coordinate. Successful insertion supplies the nonempty path; no separately premised factory success or coefficient agreement is needed.\n\nThe concrete actual Liouville model uses the owner's containment, requested-width and relative-transcendence/progress laws. Installation and original source-coordinate interpretation are proved. Producer laws cover a true quadratic, a false universal, a further-root existential, sentence-adapter guard atoms for `(0, 2]`, false `(2, 3]` exclusion, and endpoint corollaries. Four executable rational guard checks include a fractional lower endpoint. All fourteen complete inventories contain exactly `propext`, `Classical.choice` and `Quot.sound`. These are ordinary-real native production laws, not emitted frozen certificates; the landed tranche does not execute the compiled further-root search or exercise source-reifier Ioc lowering.\n\nThe optional/manual and final rendering pass 14,046 jobs. The evidence record binds nine sources, forty-nine decoded logs and four inspection records, keeping failed setup separate from accepted builds. Historical catalog-gather sources remain bound to their original reviewed tree and actual squash. Build observations are operational, not new scientific scaling or speedup evidence.\n\nThe next independent tranche is locally validated but not landed: ordered nonempty coordinate lists preserve the same actual registered model; the legacy singleton API is derived from it. Existing conformance modules prove and execute two-coordinate further-root/common-root sentences, a coordinate-exchanged false result, standalone repeated-root included/excluded domains and a false negative-square sentence. All twenty-seven source inventories and the default optional/manual, DAG/admission/link/layout checks pass. It will use Refs and fresh post-opening Opus review on the retained branch.\n\n#10358 remains open. Remaining gates: ordinary-import common-field irreducibility quotation; generic frozen context/root/row and all-live packing/inverse assembly; recursive reached-data export and the entire finite-joint nested/successive-infinitesimal realization; algebraic accepted-certificate completeness; final full-scope conformance/manual/evidence. The strict supplied-inverse boundary remains explicit on #10378. #10633/#10634's delivered changes and measurement limits remain incorporated. No new issue or downstream worker was launched; #10331 retains dispatch.\n","createdAt":"2026-10-06T14:41:07Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-6018704224","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABZtRMHA","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Landed [PR #10842](https://github.com/kim-em/hex-dev/pull/10842) through squash auto-merge as `2760639e536e68d40b3eb7d80866879dac48faf7` at 2026-10-06T15:52:43Z. Final head `355da0978382b00b225214cf9461cc9a3405169a`; [CI 37482863387](https://github.com/kim-em/hex-dev/actions/runs/37482863387), sole job `112335599403`, completed successfully. The existing `issue-10358` branch is retained. Fresh Opus review was invoked immediately after opening; the initial empty-stdin wrapper refusal was corrected, and the completed independent review found no blocking defect. Its two evidence findings are addressed. Actions API monitoring interruptions are retained separately and are not source failures.\n\nExact artifacts: `adapters/HexRCF/RealCoefficients/RegisteredGather.lean` (`Gather.run_registered_many`, derived legacy `run_registered`); the existing `RegisteredGatherConformance.lean` and `GatherCatalog.lean`; the rcf manual, README and evidence inventory; `reports/hexrcf-registered-many.md` and source-bound data. Ordered nonempty coefficient lists from one authenticated base-prefix model preserve every original value. Exact catalog selection and identity factories are derived, rather than premised. Empty owners keep the existing rational-first path.\n\nThe actual Liouville model identifies `(L, L⁻¹)`. The true sentence `∃ x, x²=L ∧ x² L⁻¹=1 ∧ 1 0` using the actual degree-eight common field; the emitted proof and direct certification both retain the supplied instance. Native common-field construction is unchanged.\n\nAll four complete inventories contain exactly `propext`, `Classical.choice`, `Quot.sound`. Wrong-runtime binding, specific terminal admitted-proof rejection on an otherwise producible quartic, restoration and legacy no-instance/divisor controls pass. The consumer uses default heartbeats and recursion limit 32,768; construction retains its explicit larger budget. Optional/conformance/manual integration passes 14,159 Lake jobs, rendering 14,151 and final refusal/proof checks 11,057. DAG/trust, admissions (407 cones / 1,260 modules), copyright, line limits, manual split, 114 affected links and diff checks pass. Records bind nine final sources, forty-one accepted decoded logs with observed exits, six failed drafts, six inspected current and four historical captures. These operational observations are not scientific performance evidence.\n\n#10358 stays open and incomplete. This covers one supplied common-field proof, not general automatic certification or accepted algebraic completeness. The owner's actual `Tower.Context.realize_values` and `Suffix.realize_packed` finite-joint ordinary realization laws are already available; the missing integration is authenticated frozen context/descriptor/replay/history and reached arithmetic assembly connected to those laws, together with general root/carrier/row and all-live transport assembly. Final full-scope conformance/manual/evidence remains. #10633/#10634's delivered interfaces and measurement limits remain incorporated. No new issue or downstream worker was launched; #10331 retains dispatch.\n\nThe next tranche is locally validated but not yet landed: matched build-only proof-construction/reuse probes with four fixed adjacent AB/BA pairs, eight complete kernel inventories and retained shared-host samples; a genuine terminal supplied-instance-search exhaustion control; and corrected native-realization documentation with a fresh same-reader operand/sum/product proof. Its measured source is `9b6dbba8f515a1dd3db0dbe5633f6a11ca19eb70`; no general speedup, scaling or smaller-import-cone claim is made. It will use Refs and its own immediate fresh post-opening Opus review.\n","createdAt":"2026-10-10T16:31:48Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-6099723764","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABa8mGTw","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Landed [PR #10867](https://github.com/kim-em/hex-dev/pull/10867) through squash auto-merge as `6c490b3af11c75103042f68d963cb38aa0094355` at 2026-10-10T23:27:46Z. Final reviewed head `255af3c7bc9b035f34ea409f15e4dc04664468ce`; [CI 38089080243](https://github.com/kim-em/hex-dev/actions/runs/38089080243), sole job `114321640368`, completed successfully. The existing `issue-10358` branch is retained. Immediate fresh post-opening Claude Opus review and two fresh follow-up reviews completed; substantive findings were addressed. Final follow-up found no merge blocker. Its suggested stronger computed-row markers and README clarification were implemented and checked. The reviewer could not run shell/build/hash checks; those verifications are independently recorded here.\n\nExact artifacts: `adapters/HexRCF/RealCoefficients/NativeFormula.lean`, `conformance/HexRCF/NativeFormulaConformance.lean` and `SuppliedBudget.lean`; `adapters/HexRCF/RealCoefficients.lean`, default `HexRCFRealCoefficients` target and existing conformance globs; `bench/HexRCF/ProofProbe/Supplied/{Reconstruct,Reuse}.lean`, `scripts/bench/rcf_irreducibility_proofs.py`, manual `HexRCFProofProbeMeasurements` target in `lakefile.lean`, `scripts/check_dag.py`, `scripts/libgraph.py`; `HexRCF/SPEC/hex-rcf.md`, `HexManual/Chapters/HexRCF.lean`, `HexRCF/README.md`, `SPEC/proof-examples.md`, `reports/hexrcf-adapter-evidence.md`; `reports/hexrcf-native-formula.md`, `reports/hexrcf-irreducibility-cost.md` and separately source-bound data.\n\nThe shared-formula API consumes the actual owner `Context.realize_values` theorem for every coordinate and atom at one point. `polynomial_read` follows actual partial closed-domain arithmetic; `row_real` preserves the complete ordered atom vector. `exists_real` yields one ordinary witness while retaining explicitly authenticated inherited-base coefficient identities. `not_forall` gives a real counterexample from a false point row, not a false existential decision. The actual infinitesimal fixture proves `0 < x < 1` together with authenticated coefficient `2` in `2 < 2+x < 3`; another row refutes `∀ x : ℝ, x = 0`. A second actual native fixture realizes `0 < b`, `b < a²`, `0 < a`, `a < 1` through successive infinitesimals at one reader. This adds no multivariate frontend. Four API and four concrete theorem complete inventories contain exactly `propext`, `Classical.choice`, `Quot.sound`; proof markers retain the new API laws. The standalone point evaluator performs sign production; `Samples.run` and `Tower.Sample.signs` instead use specialization, and no row equivalence is proved here. It provides no frozen replay or automatic authentication of arbitrary algebraic suffix conjugates. Private core construction bodies are confined to the fixture.\n\nThe separate exhaustion control forces actual supplied-instance search to exceed `synthInstance.maxHeartbeats = 1` on an otherwise producible quartic. It verifies terminal resource failure at `CommonTactic.certify`, an exact `CheckedIrreducible` diagnostic, absence of the scoped instance outside its scope at the identical tiny search budget, and successful normal certification. The explicit caller restoration is not a production-handler restoration regression. Its proposed class retains the existing checked theorem and standard-three-axiom inventory.\n\nMatched build-only probes use identical import headers and the same degree-eight `rcf` goal. They build through the nondefault manual measurement target, while CI keeps its four representative modules. The collector refuses unequal headers before collection. Four fixed adjacent AB/BA pairs produce eight accepted complete kernel inventories at clean measured source `9b6dbba8f515a1dd3db0dbe5633f6a11ca19eb70`. Median whole-module cost is 20.834/13.278 seconds and median peak RSS 4.26/3.69 GiB for fresh construction/imported proof reuse. All completed samples and source bindings are retained, including earlier changed-source successful builds whose suppressed guarded inventory output failed collector validation, kept outside the accepted pool. This answers one supplied-proof reuse question, not general scaling, automatic certification, or the separate smaller ordinary-import cone.\n\nRevised local optional/native/conformance/manual integration plus representative/manual paired targets passes 14,170 Lake jobs; rendering 14,151. A fresh ordinary-import consumer passes 10,934 jobs, three full standard-three-axiom inventories, base uncached exact-target kernel checks and imported-fixture proof markers. The original seven API/fixture inventories and 10,926-job local markers remain separate. DAG and its ten existing tests, admission (408 cones / 1,261 modules), Mathlib-free executable/build-only import lint, trust, copyright, line limits, manual split, 155 affected relative links and diff checks pass. Six revised desktop/narrow captures are visually inspected; `review-context.json` binds twenty-three committed sources and seventeen decoded records to `1acfd426a8fea287790f7aedbf9aca3c19f1d221`. The final documentation clarification is separately bound to `c0222fe5071e2025cd3ab73c20e58102ab5edcd2` by `clarification-context.json`, with forward pointers from the historical records; its fixture/consumer rebuild passes 10,934 jobs. Original native records/four captures and earlier cost/native-law records/six captures retain their historical sources. Later optional-umbrella and collector/target changes do not establish cost at current HEAD. No AGENTS.md/PLAN.md or CI workflow/job changes.\n\nThe successive-sample supplement binds ten committed sources, seventeen decoded records and six separately inspected captures to `e5a19c0d202a54ab0384280338a7d4fd27fff6ca`. Strengthened computed-row markers and README clarification are separately bound to `fd2315caed9ec9a2411b715455fe879ab273b265`; the fixture passes 10,927 jobs and the fresh four-proof ordinary-import consumer 10,933, with exact-target kernel checks and complete standard-three-axiom inventories. Guards require the computed native row proof as well as the realization API. The optional concrete two-level inherited fixed-coefficient test remains outside this fixture; the existing affine fixture tests it through one level. Its earlier complete integration/render and four-consumer checks remain historically bound. All historical source and compressed/decoded record hashes were checked against their stated commits.\n\nThe final clean merge of upstream SignDet documentation is separately bound to `7465433f9bf83edf064d09b0c08a20c22539e25e` by `final-main-context.json` (seven source hashes, four decoded records); integration passes 14,155 Lake jobs and the fresh four-proof ordinary consumer 10,933. No conflicts, protected files or CI jobs were introduced.\n\n#10358 remains open and incomplete. The native finite-joint law is available and now consumed by this direct adapter API. General source-goal quotation still needs checked recursive literal context/history, descriptor/replay and reached arithmetic assembly connected to the actual provider history; general root/carrier/row and all-live transport assembly, automatic common-field certificate coverage and accepted algebraic progress; final full-scope conformance/manual/evidence. Existing descriptor/replay data types are available; their general checked production and assembly remains the specific gap. The refreshed #10378 directive owns the nested exporter/checker fixture and tower assembly; frontend/source authentication remains here. #10633/#10634 delivered interfaces and measurement limits remain incorporated. No new issue or downstream worker was launched; #10331 retains dispatch.\n","createdAt":"2026-10-10T23:31:05Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-6103336527","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABbBj73Q","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Landed [PR #10872](https://github.com/kim-em/hex-dev/pull/10872) using `gh pr merge --squash --auto` without deleting the branch. Squash commit `e5fa8197ff102c224584d285fa38448f1e8ccfb6`, merged 2026-10-11T11:28:02Z; final remote head `bc3aaceda7df2d0f7f126c611349db20093461ce`. [CI run 38131557260](https://github.com/kim-em/hex-dev/actions/runs/38131557260), sole job `114446786911`, completed successfully. `issue-10358` remains available. Immediate post-opening and subsequent fresh Claude Opus reviews completed; substantive findings were addressed. Final source review found no mathematical/integration blocker; the report now distinguishes imported target/inventory checks from in-module proof-body consumption checks.\n\nExact landed artifacts: `adapters/HexRCF/RealCoefficients/NativeSpecialize.lean`; `conformance/HexRCF/NativeSpecializeConformance.lean`; optional umbrella and existing Lake target/conformance globs; `HexRCF/README.md`, `HexRCF/SPEC/hex-rcf.md`, existing rcf manual chapter and evidence inventory; `reports/hexrcf-native-specialize.md` and `reports/data/hexrcf-native-specialize/` source-bound records.\n\nThe direct API follows actual shared coefficient grouping, dense addition and Horner evaluation at one finite ordinary reader. Leading signs establish source sizes and degrees, including zero/constant distinction and leading cancellation. True rows retain all supplied original divisor signs and explicitly authenticated inherited coefficient identities. False point rows yield universal counterexamples. Concrete tests cover affine inequalities, inherited coordinates, false rows and successive infinitesimals jointly. Twelve complete API/fixture and five fresh ordinary-import inventories contain exactly `propext`, `Classical.choice`, `Quot.sound`. Lake integration/rendering and fresh proof checks pass; DAG, admissions, copyright, line, manual-split, relative-path and diff checks pass. These operational observations are not scientific performance measurements.\n\n#10358 stays OPEN and incomplete. Remaining integration includes frozen recursive context/provider-history, descriptor/replay and reached arithmetic assembly, checked generic root/cell coverage, all-live transport, general source-goal quotation, automatic common-field certificate coverage and accepted algebraic completeness, plus full-scope conformance/manual/evidence. Actual finite-joint realization and root/query laws are available; their existence is not a blocker.\n\nIndependent continuation is already locally implemented: `NativeSamples` connects `Tower.Sample.signs` to shared specialization after actual coefficient conversion, preserving original divisor signs and normalized sizes/degrees. Its tests now include an actual further selected root over the fixed √2 coefficient. This is not yet landed and will receive its own Refs PR and immediate fresh Opus review. #10633/#10634 interfaces and measurement limits remain incorporated; no new issue or downstream worker was launched. #10331 retains dispatch.\n","createdAt":"2026-10-11T11:28:50Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/kim-em/hex-dev/issues/10358#issuecomment-6108543965","viewerDidAuthor":true},{"id":"IC_kwDOSKC1W88AAAABbG1AaA","author":{"login":"kim-em"},"authorAssociation":"OWNER","body":"Landed [PR #10874](https://github.com/kim-em/hex-dev/pull/10874) using `gh pr merge --squash --auto` without deleting the branch. Squash `35287f830961829795193e73a63c226b5ed9a046`, merged 2026-10-11T21:38:19Z; final remote head `9cdddefb2ebe26c798d61e53cae82c023af7e841`. [CI run 38144546934](https://github.com/kim-em/hex-dev/actions/runs/38144546934), sole job `114485103611`, completed successfully. `issue-10358` remains available. Immediate fresh post-opening Claude Opus review and fresh follow-up reviews completed; substantive findings were addressed. The final supplement records the private-import and proof-checking boundaries explicitly.\n\nExact artifacts: `adapters/HexRCF/RealCoefficients/NativeSamples.lean`, generalized model-field `RepresentationSpecialize.lean`, optional umbrella/default target; `conformance/HexRCF/NativeSamplesConformance.lean`, `NativeSampleModelConformance.lean`, `NativeSampleModelLiterals.lean`; `conformance-fixtures/HexRCF/native-sample-root.json` and existing literal renderer; existing rcf manual with `HexManual/Chapters/HexRCF/NativeSamples.lean`, README/SPEC implementation boundaries; `reports/hexrcf-native-samples.md` and source-bound records under `reports/data/hexrcf-native-samples/`.\n\nThe actual owner conversion model connects Tower.Sample.signs to native shared specialization, preserving original parent divisor signs and normalized polynomial sizes/degrees. True rows retain supplied guards and inherited base/provider coefficient identities at one ordinary reader; false point rows give universal counterexamples. Actual selected-root tests cover repeated/zero atoms, leading cancellation, half-open guard atoms, changed coordinates and a further root over selected √2. The additional checked frozen descriptor selects the positive root of X²−ε over the actual infinitesimal-parent reference field. One reader retains 0200||chrome.exitCode!==null) throw new Error('Chrome did not expose CDP');
+ await new Promise(r=>setTimeout(r,100));
+ }
+ const port=fs.readFileSync(portFile,'utf8').split('\n')[0];
+ const tabs=await (await fetch('http://127.0.0.1:'+port+'/json')).json();
+ socket=new WebSocket(tabs.find(t=>t.type==='page').webSocketDebuggerUrl);
+ await new Promise((r,j)=>{socket.onopen=r;socket.onerror=j});
+ let sequence=0;const pending=new Map();let loaded;
+ socket.onmessage=e=>{
+ const msg=JSON.parse(e.data);
+ if(msg.id){const p=pending.get(msg.id);pending.delete(msg.id);msg.error?p.reject(msg.error):p.resolve(msg.result);}
+ if(msg.method==='Page.loadEventFired'&&loaded){loaded();loaded=undefined;}
+ };
+ const call=(method,params={})=>new Promise((resolve,reject)=>{const id=++sequence;pending.set(id,{resolve,reject});socket.send(JSON.stringify({id,method,params}));});
+ await call('Page.enable');
+ const load=new Promise(r=>loaded=r);
+ await call('Page.navigate',{url:'file:///home/kim/.codex/tasks/hex-10358/manual-render/full-html/html-single/index.html'});
+ await load;
+ const evaluate=async expression=>{const r=await call('Runtime.evaluate',{expression,returnByValue:true});if(r.exceptionDetails)throw new Error(JSON.stringify(r.exceptionDetails));return r.result.value;};
+ const metadata=[];
+ for(const [label,width] of [['desktop',1440],['narrow',390]]) {
+ await call('Emulation.setDeviceMetricsOverride',{width,height:width===390?1800:1000,deviceScaleFactor:1,mobile:false});
+ for(const [kind,phrase] of [["api", "composes arithmetic from checked leaves"], ["code", "composes arithmetic from checked leaves"], ["provenance", "The returned proof identifies the model's value"]] ) {
+ const exact=await evaluate(`(() => {const p=Array.from(document.querySelectorAll('p')).find(e=>e.textContent.replace(/\\s+/g,' ').includes(${JSON.stringify(phrase)}));if(!p)throw new Error('missing paragraph');const target=['code'].includes(${JSON.stringify(kind)})?p.nextElementSibling:p;if(['code'].includes(${JSON.stringify(kind)})&&!target.matches('.hl.lean.block, pre, div:has(code)'))throw new Error('target is not a Lean code block');target.scrollIntoView({block:${JSON.stringify('center')}});return {text:p.textContent,viewport:innerWidth,scrollY,paragraphWidth:p.getBoundingClientRect().width,scrollWidth:p.scrollWidth,targetTag:target.tagName,targetWidth:target.getBoundingClientRect().width,targetScrollWidth:target.scrollWidth,descendantOverflow:Math.max(0,...[target,...target.querySelectorAll('*')].map(e=>e.scrollWidth-e.clientWidth)),overflowElements:[target,...target.querySelectorAll('*')].filter(e=>e.scrollWidth-e.clientWidth>1).map(e=>({tag:e.tagName,classes:e.className,width:e.clientWidth,scroll:e.scrollWidth,text:e.textContent.slice(0,100)})).slice(0,8)};})()`);
+ if(!exact)throw new Error('missing visual target '+kind);
+ await evaluate('new Promise(resolve=>requestAnimationFrame(()=>requestAnimationFrame(resolve)))');
+ const shot=await call('Page.captureScreenshot',{format:'png'});
+ fs.writeFileSync(root+'/'+'tower-compile-final-'+label+'-'+kind+'.png',Buffer.from(shot.data,'base64'));
+ metadata.push({label,kind,...exact});
+ }
+
+ }
+ fs.writeFileSync(root+'/tower-compile-final-inspection.json',JSON.stringify(metadata,null,2));
+ if(metadata.some(e=>e.targetScrollWidth>e.targetWidth+1 || e.descendantOverflow>1)) throw new Error('Changed content overflows; retained captures and metrics identify the affected block.');
+ process.stdout.write('Saved tower-compile desktop/narrow screenshots\n');
+} finally {if(socket)socket.close();chrome.kill('SIGTERM');}
diff --git a/reports/data/hexrcf-tower-compile/context.json b/reports/data/hexrcf-tower-compile/context.json
new file mode 100644
index 0000000000..d00ac8096f
--- /dev/null
+++ b/reports/data/hexrcf-tower-compile/context.json
@@ -0,0 +1,172 @@
+{
+ "source_commit": "a655d3305ed94fdb5cee283efd64882e13a9c4ff",
+ "parent_source_commit": "94f094d2607511127aa91bfb7e6a399356558c1b",
+ "parent_context_sha256": "4241c9df70a3a5e96118f62beff3d42ce0054351cb44eaae2aa9c72a6fe7c7ad",
+ "sources": {
+ ".github/workflows/ci.yml": "5db61a70eb52d7478994377179c1b35b360a794fcff4b1c257496b5a6394231c",
+ "AGENTS.md": "4e0a48cf49a61e56ed84c8b28e232b5bfad29f2da20571377692be6e1c316f30",
+ "HexManual/Chapters/HexRCF/AlgebraicCells.lean": "7e1ab300ce11b34556ae9db321d85ea105a32753bce4c3ddcd6fd36006efcaa0",
+ "HexManual/Chapters/HexRCF/RootQuote.lean": "2e0746d1a35c192d1127a0c9768470e6e36b14d9d96b5eebbb29c26a03c91e78",
+ "HexManual/Chapters/HexRCF/RootTableQuote.lean": "78d1be637a32593b03f000ab153c7fdf05a1b5332ea3efb9c186aacfd68f0ae5",
+ "HexRCF/HandlerTests/Admission.lean": "770518931dd3f7ab1934e327460b80607338207b17d97363b82c2a5c93669c36",
+ "HexRCF/README.md": "3830d758a8a75d59df1a6dd01f59204a86858b5eda3e43a78f9e9e9c2d769a8a",
+ "HexRCF/SPEC/hex-rcf.md": "df8c6bb2435a2794faa36bc77e41f4c936f06ae149f29c3e68fe0d79f4ebfafb",
+ "HexRCF/Tactic.lean": "26021113d121cfc9ab0d6e7ea7ce8d02eb6c4637c42bbdd2647ecd2d9291f3fb",
+ "HexRealClosure/Algebraic.lean": "d05f9fb72fe9544ae9ddc685dff17080f876aa4c99c70e8992d511e011f6a454",
+ "HexRealClosure/ContextData.lean": "ca29790752b8d25f10d03a9877690a5ff40f1fdf6815c96fe9693941206e662c",
+ "HexRealClosure/SignCodec.lean": "7126323c97b77204386795a0f252f1babfd0ed7f3dba7ee3927a99b9d5c1852a",
+ "HexRealClosure/SignFacts.lean": "9c22837e93e6f50cc96310163e352ac608fbcfbd6275edab33751da2fd84f47c",
+ "HexRealClosure/SignatureCodecTests.lean": "ffc72777523ac0e92b563481804bdfb581fb0173fe7a021009737d57959b4462",
+ "HexRealClosure/TowerContext.lean": "6ef8b87b2d81cb177505a4bbc88befa078b20578cedd49e836d850753c203ee3",
+ "HexRealClosureTheory/README.md": "12d876eae9d0b6dd8c82839e31d98e2aec9bcd454914382f2d65d0f4bc4bb914",
+ "HexSignDet/Codec/Coefficients.lean": "0fef85cb8c11fe614705ca230f437785c9c7c6b76d9362449f834bb25e82d3aa",
+ "HexSignDet/Codec/FiniteGraph.lean": "bb1e0611aa74d7c7b4a74f83f05e481ccd4584523e0aaeca7beba53c70a6895c",
+ "HexSignDet/Codec/FiniteLaws.lean": "a30dbc456d8613e247bfc691376206a7da405b8a3e08ef7a550c0b857a234ab8",
+ "HexSignDet/Codec/GraphLaws.lean": "292cebb2c9ea1131ddd0458de3997aac95cfc1422e99dbd8fb5e7f6d08fcdaa5",
+ "HexSignDet/Codec/Laws.lean": "7b7293bcd80b89c887e1227f7ac27f2f7a2ce936adca3b14818ec5c228c36740",
+ "HexSignDet/Codec/NodeLaws.lean": "77621bd2ab5c1d7c99d1a7355dd7418ed43a06c4ca5eb885bd37cc1ba6e394f2",
+ "HexSignDet/DagBounds.lean": "1ff482fbcb51846b61348d1708062647fb0f61bf2eb04184b86fa17d7bac33a7",
+ "HexSignDet/DagReplay.lean": "be3317f306194a18a314e9f8fca021eefda76ea17704c5ec89daeff9a2867f42",
+ "HexSignDet/DagSelectedSigns.lean": "3ffbfbe2cebf6ad7b5db0cf8b0a3c5a26142a46465d2577a08ddb292594eed26",
+ "HexSignDetTheory/RootList.lean": "aead98f0d004fb1407a437c0eacec5235287a8669e56a6856bad4e3d7ec3d088",
+ "HexSignDetTheory/ThomRoots.lean": "b37b36fec150e23165101ecf05b4105ba429c52050efb3452df496cecc0a456e",
+ "PLAN.md": "e94a60324486913b4a04650edd617c4ff8bef469dc7fd311adea8407c6662ea0",
+ "SPEC/real-closure-execution.md": "bc0948ad7de6969baaed89c0b3052cb0d21d64d634f8a336f9a7dde446b057f5",
+ "adapters/HexRCF/RealCoefficients.lean": "ac2ae7a66abff67d69f432d89006574a6085f794ca7086637becc0e3e6bf377c",
+ "adapters/HexRCF/RealCoefficients/CellOperations.lean": "3561cc80c7c866141f05a387ce1100ee0cadd98281a03395551cebcde5bd6e2a",
+ "adapters/HexRCF/RealCoefficients/CellQuote.lean": "c572911d7be36001e0f1885c3460f3eb19425d90e78345b1c46878ddf3e6c6ea",
+ "adapters/HexRCF/RealCoefficients/CellRead.lean": "65274f89c940bad74eab8c9075f9256c6ed3d8b90d3294aec4e85883e425fb10",
+ "adapters/HexRCF/RealCoefficients/NumberField.lean": "0d6564d664f1a782f9be52dee2ec0d8982e01344768c43d6783df20eb5aec0d6",
+ "adapters/HexRCF/RealCoefficients/RationalQuote.lean": "675e2ba065b696f257adefc07fe30ddb0190f321d86005444579ea5a0744bdf5",
+ "adapters/HexRCF/RealCoefficients/RealModel.lean": "712b4fd3edff8eaa6f93e501da5debf04529d1ea8c11a18389820f866d179c43",
+ "adapters/HexRCF/RealCoefficients/Reify.lean": "ea8474b9e253f93a1583064ca99ec0bf376dadf5457fd60b57e9e18460cf449c",
+ "adapters/HexRCF/RealCoefficients/RootBuild.lean": "be8e2b24aad8e67946afbe70d48a83ff2ca6db75cb62cca0185ec309f596994a",
+ "adapters/HexRCF/RealCoefficients/RootContext.lean": "792176eab63e5e62b759a10893569946ef6d019566b8116c85237b3e16fcdb86",
+ "adapters/HexRCF/RealCoefficients/RootHeader.lean": "681f2a964bc30f65a92a0fb1a58b4d4013eb396df37ca813962702065fb46261",
+ "adapters/HexRCF/RealCoefficients/RootPrepare.lean": "de72a8e3ac4adb13365801476467bf691e630d0952b018ccecd88846c3bdb025",
+ "adapters/HexRCF/RealCoefficients/RootQuote.lean": "89f3ad4b0c4a8ae058560201900877035d896427176b944b34acde9f9b23d7e8",
+ "adapters/HexRCF/RealCoefficients/RootReplay.lean": "35e5c09926534d79082443ffbaf1ccaa9bca6095f0250da4f0b45d23e185c023",
+ "adapters/HexRCF/RealCoefficients/RowPacketQuote.lean": "edbb3d23f72422f5a1dea163c283848ec285418b7bdb9eedba553b83066121af",
+ "adapters/HexRCF/RealCoefficients/RowQuote.lean": "3b7e7d2ebcbd53a6ea893bc8f4c884d767430f8b98a3f1ca770fe7c7b122f3c9",
+ "adapters/HexRCF/RealCoefficients/ScalarPacket.lean": "6b8353895cff48df759bb4fc8cb5cda767313974e0a57f1e59973249b6eefdca",
+ "adapters/HexRCF/RealCoefficients/ScalarQuote.lean": "fee2617a998f29d05c8959b484060ac1d719359c6d851a8ff6699fa9cb370acc",
+ "adapters/HexRCF/RealCoefficients/SignatureQuote.lean": "c3bb71b52c2a544b902bc256b3a162e1c3c4e7f94ae6b21808914e67109710eb",
+ "adapters/HexRCF/RealCoefficients/SourceBuild.lean": "eb66b3f56832e3fd6644a980fe3f13f62242dda88e84c6bf99dfc717c74290fe",
+ "adapters/HexRCF/RealCoefficients/SourceIdentity.lean": "d98ae0c746003be89edfc969e464383e6a6bda253e0dae8c290605e8b98ce3c3",
+ "adapters/HexRCF/RealCoefficients/SourceIdentityQuote.lean": "cdaf7b830ad50d9849a7f102641eb03313f84959c56c3ea4cd66a663894ca385",
+ "adapters/HexRCF/RealCoefficients/TowerCompile.lean": "be76aa266816b71d8a75ca193e5aeb9e46314342106c1d1de45369f2bb7c300a",
+ "adapters/HexRealClosureTheory/Algebraic.lean": "2495153acbe4e468521913a2f5d6569831cd05f5ee48d5ddb26fc31a43438c7e",
+ "adapters/HexRealClosureTheory/NumberFieldTower.lean": "6e08723eff34d7a18059ff54f4f65df58296f4161638878027a7f07d95fd64d5",
+ "adapters/HexRealClosureTheory/SignFacts.lean": "c2b8cf96de0cccc2c0c3cbe83f0afd7c40ab9736b75f377ec5bfedc0907f34e3",
+ "adapters/HexRealClosureTheory/TowerModel.lean": "70d0e57e8ecc78eb9b7675d875157462d27cf9494d49d72bba019eaa6dd1d788",
+ "conformance-fixtures/HexRCF/bounded-source.json": "566c5f1f092abab73312bb630a02e24873e6723942d450320dae2b52aaa30a75",
+ "conformance-fixtures/HexRCF/enumerated-source.json": "d1f70734b5c8d5c7f768b4d2c3f5359d8e1cc44105885e7f8af597102c8b5c98",
+ "conformance-fixtures/HexRCF/source-identity.json": "93540b60174e0d8bd85ca80d99c6cbdc427815f341a12a6e38f4b38613073f53",
+ "conformance/HexRCF/BoundedSource.lean": "5c2166dd0977d3e27d3fefa89f9c0382e9dd7226bff629112cfd0e0faad1127b",
+ "conformance/HexRCF/BoundedSource/Cubic.lean": "da1c0e1b549fce22cb1f7ea7bb6888dff1d7b59c1219c5b580376bbb4a25ecde",
+ "conformance/HexRCF/BoundedSource/Inputs.lean": "7ffcd6d62f175f3027e2327fd4a86885e933e0715a85ab7afb9b112d76d49a39",
+ "conformance/HexRCF/BoundedSource/Negative.lean": "abb7ef67395b2b90f9e12f551bcc0d16146cca067bf3567707e924c2ecd2fb77",
+ "conformance/HexRCF/BoundedSource/Positive.lean": "d83184a9d54264ba7e1c138eb674db1d67df39681575fa91d96a4681af774321",
+ "conformance/HexRCF/BoundedSource/Proofs.lean": "7f9d47d59dd47aafa90a09d23a966efc0d2ca7fbfa3cdce5ae4771ae1da01a9f",
+ "conformance/HexRCF/BoundedSource/Quote.lean": "fa7ee7f5c8c8dcdd98bc8d56eaa697f1c9f5b443ebaab6de119f1d3c5cb887c9",
+ "conformance/HexRCF/CellFinishCases.lean": "619208fd6528c4f12d4e12bc4ee6fd4016ab0948db16a61237a2aefbcd523a7c",
+ "conformance/HexRCF/CellFinishProofs.lean": "fd232e3b4a64f444d834ae244a110ad0910aa35c4773a90b6a3b26a48693e22c",
+ "conformance/HexRCF/CellQuoteStageProofs.lean": "a14f3f20e1add07f569ab222994995c409552aededef738972a70c864b94b919",
+ "conformance/HexRCF/CellQuoteStages.lean": "e4593f2c8169af00398ff608dd53cbbfbe6b8408ddbdd07de6f64f59acf8a25f",
+ "conformance/HexRCF/CellSourceProofs.lean": "aa946fc87cf8ed336427ef644d6d0889750710d5331535d71f27a3270f539953",
+ "conformance/HexRCF/CellSourceQuote.lean": "bf26980ea3286785872338cba5f97413c31590053dc4445ad00d78c3e6fe1104",
+ "conformance/HexRCF/DependentQuote.lean": "0df154544a17857334480e7c577ecbcf1afe04165fa2da1a5a6407bf41e85518",
+ "conformance/HexRCF/DependentQuoteData.lean": "ed254475e78fa6edb27d4e55222a598b07b7357154ea0495d6195f2f1d39ee46",
+ "conformance/HexRCF/DependentQuoteProofs.lean": "5875aa9748f50340668e58aea97b196d3353313352fb8c819ae5ee3542556980",
+ "conformance/HexRCF/DependentScalarProofs.lean": "9fe3f3871f929e28355985c574c0b8c742be062ae5f19033d7d8bf9e67cd88d8",
+ "conformance/HexRCF/DependentScalarQuote.lean": "e20dd7346c337dd17126c394965f268e568706730f475844d7c0907051224933",
+ "conformance/HexRCF/EnumeratedSource/Cubic.lean": "011464c56dc3ffc5a6bd1e62dc9ff8b35ac6d0e621beceb0336b69d8f626b78f",
+ "conformance/HexRCF/EnumeratedSource/CubicData0.lean": "79b971cb2816d7ee980c595199eedbfddfd7cdb62ea12bc71dfcb24d304f69da",
+ "conformance/HexRCF/EnumeratedSource/Inputs.lean": "23ae13a33e132ee7221c5fa353e71073fc05bd660dfc3ecf6620584b62b40306",
+ "conformance/HexRCF/EnumeratedSource/Negative.lean": "261fcd979ff77c772a28ecc89776b5771cec920fc4e58a0dfe2886aee43a58d7",
+ "conformance/HexRCF/EnumeratedSource/NegativeData0.lean": "c0700606f805664f89dd0106dfb5aebb5ab18949adbb30e5b71ffeb20bb4fdaf",
+ "conformance/HexRCF/EnumeratedSource/Positive.lean": "1382c958e53cdb8a04afd1e6d6f173fe697ba15a3321bf29c3e03059923c7181",
+ "conformance/HexRCF/EnumeratedSource/PositiveData0.lean": "41674140d15cf0136ca29b627f667b952355916b269ff7d2c14247ba2d21b3b1",
+ "conformance/HexRCF/EnumeratedSource/Proofs.lean": "3c08b8018b68469d3c6e7940f730d6b8fadbf6175df2e6f5017ed4fc24d50d5b",
+ "conformance/HexRCF/EnumeratedSource/Quote.lean": "8987d21be058f777f0ba875e917fcda77892bced1029616804fabd57f4eb41d8",
+ "conformance/HexRCF/FrozenSignatureConformance.lean": "8e7d432aecb87fb89bb188e4c579e86fb5c3348c5430f1e2b1a00f1f820a940e",
+ "conformance/HexRCF/FrozenSignatureProofs.lean": "55de6da9b0b3dc2d1e384d6c838d13294287c44060afb8e70aa2a0c8e01a81cb",
+ "conformance/HexRCF/NumberField.lean": "13358e31529302b48cde358029f3a2d443e44286462801b12cf19a6b25ac4dae",
+ "conformance/HexRCF/ProofFunctionPublic.lean": "f928c9f0dd0a704d34a516b6282cfa6a7a4eb6c112d49689c450647a44370a6b",
+ "conformance/HexRCF/PublicSignPacket.lean": "c32d73c5634376907b965e1ea6cf69352fdda1f1945ce2f34a378cc217778102",
+ "conformance/HexRCF/PublicSignPacketControls.lean": "b4f98bd8ef190a361dd7752d4d5ece0cfbd862ff4face5a06dfabecf87096028",
+ "conformance/HexRCF/PublicSignPacketProofs.lean": "442f6d3e04a36db25611f0396103a1eee5ee411c40e8f3cc93df1acf7898bbbb",
+ "conformance/HexRCF/PublicSignPacketValues.lean": "72705dba30f04f986188903fb49b983c6f0a664895116fca8bd8b6b46b6517e5",
+ "conformance/HexRCF/QuotientQuote.lean": "97b2cbc9abdb46db33a9a91328f331edf8dea055cc244489158121cde8dc1903",
+ "conformance/HexRCF/QuotientQuoteData.lean": "ec26777d655a7898d7f7922fcea8f426a3f8c77a53000b69b6fe1755a0348870",
+ "conformance/HexRCF/QuotientQuoteProofs.lean": "f1d95accf6caed1c7354408b3a1a0b29493a526e82036390e39102ebe80c6752",
+ "conformance/HexRCF/QuotientQuotePublic.lean": "a3bd9a082df14a0ac93ba3798e13c6ebbf9dff98d7613264713aa281a5a18bea",
+ "conformance/HexRCF/RationalQuoteConformance.lean": "f03844d4a44a5c61b702ed0b1697619da9b20f4ac42122b9d1a6d3fa4a2de9ac",
+ "conformance/HexRCF/RecursiveScalarQuote.lean": "83ba1f3ed63afdbb148f171736a0aacebc7eef4ae3bf32dca29811515c3f051b",
+ "conformance/HexRCF/ReplayBoundary.lean": "bbc09553d62198a18e897981d5f443c81f09dba8d371d2cdaeaa846d22cbc2f8",
+ "conformance/HexRCF/ReplayBoundaryProofs.lean": "d755462a7344dc9f5304fba255bcefb42188c1de5a51d92d8567a27f22482dc2",
+ "conformance/HexRCF/ReplayHelperProofs.lean": "6dd68829399ec8908a877a3f7705cc9321e49b9581d0d577d114950242e43a57",
+ "conformance/HexRCF/ReplayHelpers.lean": "4501fa39e52a8a2bb52fdd7b183c16801090dd026304105afb4342a1c441c2a3",
+ "conformance/HexRCF/RootContextConformance.lean": "0c52084609ec3de8afd51330a7d2cc97f7bae1d8b2bbc421138783940fc7db37",
+ "conformance/HexRCF/RootContextProofs.lean": "b4c2e3ce686ce8bc60bfdafe2be2f566c6de46758f4827d307f3d5592b59d2e9",
+ "conformance/HexRCF/RootHeaderBudget.lean": "db30b6b7781fabd238ea2c934477e5ae281cc6cd905f11848ce46eb66ef45fe0",
+ "conformance/HexRCF/RootHeaderControls.lean": "aca063af3bfe475166aef92193f162c25a0e53eea094087cf334406a3d513157",
+ "conformance/HexRCF/RootHeaderPacket.lean": "dcd8e63c1d656fc800690b35554a0f835a1ee0bb96312215f8c12348d8a0e79a",
+ "conformance/HexRCF/RootHeaderProofs.lean": "e6630f0464fd0096b9af74b4640d2abc514a62c0b0fc706b4a2e74c9602eeb8c",
+ "conformance/HexRCF/RootHeaderValues.lean": "de9a8fc7c2e9371cbd3324eb700180411e49865dbc6535a74d2c882f74e38e13",
+ "conformance/HexRCF/RootPrepareControls.lean": "b36af8efd1e12227188b6fb7bde258e80d5c1c874338a324cb53c5ccc6c1330f",
+ "conformance/HexRCF/RootPreparePacket.lean": "86185bcc5fdddb1f700d869a115a91034954714f69a83171fd0e96f601e76fe3",
+ "conformance/HexRCF/RootPrepareProofs.lean": "4a5bc6655576a6592fcd5cd801bcfebd425243b1bb6cb39b0bb46d500a3938be",
+ "conformance/HexRCF/RootPreparePublic.lean": "a9e09cbe8d1287b97dde71ad1c6dbe149cfbacb6f81f41a8493ee802416d0805",
+ "conformance/HexRCF/RootQuoteCases.lean": "602d15ef501e969183bffbda7fb3c0f00a174ba5c2dbc35370ee7fce896944dd",
+ "conformance/HexRCF/RootQuoteConformance.lean": "f6a652a243ba62cffc671d1365c6ab47b6618179acb172019ec5609ea0324d3c",
+ "conformance/HexRCF/RootQuoteData.lean": "faa259d129d5c65a063c7143e45d5d9d19573ed49862aa5ecb3978ff389cb514",
+ "conformance/HexRCF/RootQuoteSource.lean": "aca1654efc1a452aca8ef573bb8ea3a435a4e1e18a4dca854d9bcc8e350d511d",
+ "conformance/HexRCF/RootTableQuote/Conformance.lean": "ec5bd136df58cc24a40ca989e3d33e55923082aed7591b234f55c70c013c74ad",
+ "conformance/HexRCF/RowPacketControls.lean": "ab69c57b66fe8129be5f07e5e5f42b7b35d60a23b305ec224d2d7dca28ac7c82",
+ "conformance/HexRCF/RowQuoteCases.lean": "8d2ebddc05d5f0d08b62b50d3498b34b47ab0b3accc4d0a572e621fd83d606d4",
+ "conformance/HexRCF/RowQuoteData.lean": "ce60cb18f548f55e929d4803c7ed824ad0a7621fd4abda09a191f76393fabf0c",
+ "conformance/HexRCF/RowQuoteDepth.lean": "6ada3c44bea055425d223dc57eafb4f0c88349713d815ded4beec9720f7802ad",
+ "conformance/HexRCF/RowQuoteProofs.lean": "317d4f981f32bb28666fcabc6248f4a57fe67c95a7fe431f7993aeacfa377ed3",
+ "conformance/HexRCF/SelectedRoot/KernelCheck.lean": "499299274a75c6e2a70630c8ae442f21ab7d0514c7d23cffdde3f09fd17421cb",
+ "conformance/HexRCF/SharedQuoteCallbacks.lean": "6132cc3722af3cf251d11c857a572f09128d3614d931724965cbcf488dc4db6d",
+ "conformance/HexRCF/SignPacketProofs.lean": "3980cad31637f5798b2c351e1efc2a29b946de1d90e06fb11acd85e2a5c46321",
+ "conformance/HexRCF/SignPacketQuote.lean": "fcda11e6c75353d4519c4eb0e9c302b84d7e41030316c99fcacb885dabf97545",
+ "conformance/HexRCF/SignatureQuoteConformance.lean": "26f16c37cb9e0d5c09a082787f4a66673437adbf998023fd5e9625db16ff5d3f",
+ "conformance/HexRCF/SourceBuild.lean": "f70e66af4041dffdc43ed12145c5ff07a097d3c1a180caac629df6c0a15f8eeb",
+ "conformance/HexRCF/SourceIdentityControls.lean": "c655486606139658d73e5b4d394228c3632596fec366e3b410ea9deb5b085553",
+ "conformance/HexRCF/SourceIdentityEmit.lean": "aa12f1517efc675698c0795c5a463a77d7a3466bcc146d4981d82e913059ed99",
+ "conformance/HexRCF/SourceIdentityLiterals.lean": "61ee2ce703d4965b00e1e20cc62288a0bde4e839d68ca09e1b66281f4a3e48d0",
+ "conformance/HexRCF/SourceIdentityPacket.lean": "614b3132274de5bebebeecb09cf479ac68723f1518e1f52912543a812985a4a9",
+ "conformance/HexRCF/SourceIdentityProofs.lean": "c449238d5f915dbe1f337688bc4f7357f3a93e31ad79eaa9e8e159c280749173",
+ "conformance/HexRCF/SourceSelectionCases.lean": "368ded3f07bb4be269f26a2fd2b7044904ea16d1dd1cba41d8bccb373d004005",
+ "conformance/HexRCF/TowerCompileConformance.lean": "f033f18becf73f30ca1d681f8083f2095a5242c7f9eb737cc4fed8be7453af9d",
+ "conformance/HexRCF/TowerCompileProofs.lean": "2afb132cb73b86bb0657d5b532ffa76da254d9e84fc75aab2f8643db7ccfc24e",
+ "conformance/HexRCF/TreeQuote.lean": "049065aa64bb13432b1d7183759979d28eebba98d18b6f54ab849e5953ce92c1",
+ "conformance/HexRCF/TreeQuoteData.lean": "c595c2278d2997483b755aa585da874c27eed40e4e1a8106d7f553e4f574776b",
+ "conformance/HexRCF/TreeQuoteProofs.lean": "f9a40248237480f8972df62dff548ef0599205b76014e070866e72586f161933",
+ "conformance/HexRCF/TreeQuotePublic.lean": "adc6dc6871208f31970cf5ae0c2472fd325a72e1df8114a6e8178ef8b2c71570",
+ "experiments/KernelReplay/AxiomClosure.lean": "f49377265f05f52b633b10a59255a03731e08d022cc54763de9851c5b5325034",
+ "lake-manifest.json": "fd2dc4df30cd44e4d30568489d616e7bcc8a78747500139134be56f35ae746a4",
+ "lakefile.lean": "b9dfc83fc70c297a912de86828ed9175468a22042f57a7bf671c0528f5421361",
+ "lean-toolchain": "bc84812c94489d1e3e191baa1dc10d5eb684382d7fe9d2a5ab085e72c1c67e47",
+ "libraries.yml": "14e3dd1c01bb0c369b2216e2733378d61172040fd9f69dd0354d4e1267d9c5c1",
+ "reports/hexrcf-adapter-evidence.md": "415599bbc9af6b3b0c1e5177a8287171b462468c19b5e4d446d4564ee0a1e69f",
+ "reports/hexrcf-tower-compile.md": "dfe3271e5866fe3d881c49617cc6b738d6194e8e51a6c6ba092d25e0bc92b96f",
+ "scripts/bench/proof_only_runtime_exemptions/lakefile-rcf-bounded-source-fea47caa-baeeaf73.json": "eaea20ebc9579f4c50ff88344d8c9be3da9fc7c7d0981e9e0d5251dd04a6ab3f",
+ "scripts/bench/proof_only_runtime_exemptions/lakefile-rcf-source-build-fea47caa-1ab4e88c.json": "38fcff53934dab8ff78146cc782b039265da3c6684638a5b00ab725d5a2c8e01",
+ "scripts/check_dag.py": "fa5cf7929ccc381be7b6bb0c114561c05729e054dfe86dd754bf16d3636348db",
+ "scripts/rcf/selected_literals.py": "03e02fa50575882c0784894b76746ff8e594b9a1eb0a285811bc76ee87265e72",
+ "scripts/rcf/source_identity_literals.py": "ea5d7df949871c4975367a759b9632d033f3a240523c2c917c9141220ffdfd78",
+ "scripts/test_check_dag.py": "a0cd5aaaf1f3e1a6e27c93782bb6aade3b121349588f3846a059a1af04ec21d8"
+ },
+ "successful_logs": [
+ "tower-compile-final-integration-3.log",
+ "tower-compile-budget-validation-1.log",
+ "tower-compile-render-3.log",
+ "tower-compile-browser-3.log",
+ "tower-compile-final-metadata-driver.log"
+ ],
+ "rendered_html_sha256": "3551ccb76b1e63497a52dd65f06347d8b0490fa5f1cff31a67304c2e83690f5a",
+ "scope": "Ordinary-real retained-context arithmetic from checked supplied leaves; ordered source coefficients and original divisors; fresh ordinary-kernel proofs and diagnostics. No automatic leaf/history discovery, guard discharge, frozen cell acceptance or full #10358 completion claim."
+}
diff --git a/reports/data/hexrcf-tower-compile/desktop-api.png b/reports/data/hexrcf-tower-compile/desktop-api.png
new file mode 100644
index 0000000000..afee4759ca
Binary files /dev/null and b/reports/data/hexrcf-tower-compile/desktop-api.png differ
diff --git a/reports/data/hexrcf-tower-compile/desktop-code.png b/reports/data/hexrcf-tower-compile/desktop-code.png
new file mode 100644
index 0000000000..1622087b79
Binary files /dev/null and b/reports/data/hexrcf-tower-compile/desktop-code.png differ
diff --git a/reports/data/hexrcf-tower-compile/desktop-provenance.png b/reports/data/hexrcf-tower-compile/desktop-provenance.png
new file mode 100644
index 0000000000..5f46f75d1f
Binary files /dev/null and b/reports/data/hexrcf-tower-compile/desktop-provenance.png differ
diff --git a/reports/data/hexrcf-tower-compile/first-desktop-api.png b/reports/data/hexrcf-tower-compile/first-desktop-api.png
new file mode 100644
index 0000000000..52622b8cb0
Binary files /dev/null and b/reports/data/hexrcf-tower-compile/first-desktop-api.png differ
diff --git a/reports/data/hexrcf-tower-compile/first-desktop-code.png b/reports/data/hexrcf-tower-compile/first-desktop-code.png
new file mode 100644
index 0000000000..e18e93ab19
Binary files /dev/null and b/reports/data/hexrcf-tower-compile/first-desktop-code.png differ
diff --git a/reports/data/hexrcf-tower-compile/first-desktop-provenance.png b/reports/data/hexrcf-tower-compile/first-desktop-provenance.png
new file mode 100644
index 0000000000..726208a3f1
Binary files /dev/null and b/reports/data/hexrcf-tower-compile/first-desktop-provenance.png differ
diff --git a/reports/data/hexrcf-tower-compile/first-narrow-api.png b/reports/data/hexrcf-tower-compile/first-narrow-api.png
new file mode 100644
index 0000000000..9369a6f7c5
Binary files /dev/null and b/reports/data/hexrcf-tower-compile/first-narrow-api.png differ
diff --git a/reports/data/hexrcf-tower-compile/first-narrow-code.png b/reports/data/hexrcf-tower-compile/first-narrow-code.png
new file mode 100644
index 0000000000..ed7d3a2e03
Binary files /dev/null and b/reports/data/hexrcf-tower-compile/first-narrow-code.png differ
diff --git a/reports/data/hexrcf-tower-compile/first-narrow-provenance.png b/reports/data/hexrcf-tower-compile/first-narrow-provenance.png
new file mode 100644
index 0000000000..7380e941e5
Binary files /dev/null and b/reports/data/hexrcf-tower-compile/first-narrow-provenance.png differ
diff --git a/reports/data/hexrcf-tower-compile/inspection.json b/reports/data/hexrcf-tower-compile/inspection.json
new file mode 100644
index 0000000000..2bcf20a505
--- /dev/null
+++ b/reports/data/hexrcf-tower-compile/inspection.json
@@ -0,0 +1,86 @@
+[
+ {
+ "label": "desktop",
+ "kind": "api",
+ "text": "\n After source authentication,\nTowerCompile.compile\ncomposes arithmetic from checked leaves in a retained ordinary-real tower\nmodel. It uses that context's total stored operations and their interpretation\nlaws, including a repeated product for natural powers. A leaf supplies a stored\nexpression and a proof of its exact original real value; a proof for another\nsource or context is rejected. Rational literals and casts use bounded rational\nnormalization. This does not install a field instance on stored expressions.",
+ "viewport": 1440,
+ "scrollY": 278077,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "P",
+ "targetWidth": 752,
+ "targetScrollWidth": 752,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "desktop",
+ "kind": "code",
+ "text": "\n After source authentication,\nTowerCompile.compile\ncomposes arithmetic from checked leaves in a retained ordinary-real tower\nmodel. It uses that context's total stored operations and their interpretation\nlaws, including a repeated product for natural powers. A leaf supplies a stored\nexpression and a proof of its exact original real value; a proof for another\nsource or context is rejected. Rational literals and casts use bounded rational\nnormalization. This does not install a field instance on stored expressions.",
+ "viewport": 1440,
+ "scrollY": 278315,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "CODE",
+ "targetWidth": 740,
+ "targetScrollWidth": 740,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "desktop",
+ "kind": "provenance",
+ "text": "\n The returned proof identifies the model's value of the stored expression with\nthe source. For an existing prepared sentence,\nprepareWith compiles\nboth ordered inventories: coefficients first and original divisors separately.\nThe enclosing request must continue the source preparation's recorded usage;\nresetting that accounting or lowering a limit below prior usage is rejected.\nEvery original divisor is retained,\nincluding one under zero multiplication. Compiling its arithmetic does not\nprove it nonzero or accept the sentence. A declining leaf restores its\nmetavariables and declarations before arithmetic continues; terminal failure\nand exhaustion use the enclosing transaction's rollback.",
+ "viewport": 1440,
+ "scrollY": 278576,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "P",
+ "targetWidth": 752,
+ "targetScrollWidth": 752,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "api",
+ "text": "\n After source authentication,\nTowerCompile.compile\ncomposes arithmetic from checked leaves in a retained ordinary-real tower\nmodel. It uses that context's total stored operations and their interpretation\nlaws, including a repeated product for natural powers. A leaf supplies a stored\nexpression and a proof of its exact original real value; a proof for another\nsource or context is rejected. Rational literals and casts use bounded rational\nnormalization. This does not install a field instance on stored expressions.",
+ "viewport": 390,
+ "scrollY": 445906,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "P",
+ "targetWidth": 343,
+ "targetScrollWidth": 343,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "code",
+ "text": "\n After source authentication,\nTowerCompile.compile\ncomposes arithmetic from checked leaves in a retained ordinary-real tower\nmodel. It uses that context's total stored operations and their interpretation\nlaws, including a repeated product for natural powers. A leaf supplies a stored\nexpression and a proof of its exact original real value; a proof for another\nsource or context is rejected. Rational literals and casts use bounded rational\nnormalization. This does not install a field instance on stored expressions.",
+ "viewport": 390,
+ "scrollY": 446237,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "CODE",
+ "targetWidth": 331,
+ "targetScrollWidth": 331,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "provenance",
+ "text": "\n The returned proof identifies the model's value of the stored expression with\nthe source. For an existing prepared sentence,\nprepareWith compiles\nboth ordered inventories: coefficients first and original divisors separately.\nThe enclosing request must continue the source preparation's recorded usage;\nresetting that accounting or lowering a limit below prior usage is rejected.\nEvery original divisor is retained,\nincluding one under zero multiplication. Compiling its arithmetic does not\nprove it nonzero or accept the sentence. A declining leaf restores its\nmetavariables and declarations before arithmetic continues; terminal failure\nand exhaustion use the enclosing transaction's rollback.",
+ "viewport": 390,
+ "scrollY": 446602,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "P",
+ "targetWidth": 343,
+ "targetScrollWidth": 343,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ }
+]
\ No newline at end of file
diff --git a/reports/data/hexrcf-tower-compile/manifest.json b/reports/data/hexrcf-tower-compile/manifest.json
new file mode 100644
index 0000000000..10cede6329
--- /dev/null
+++ b/reports/data/hexrcf-tower-compile/manifest.json
@@ -0,0 +1,77 @@
+{
+ "README.md": "8924ce710fbbb7b0ec9b022269437bfff34894956b7f3e3ac345bb9f048f0b0e",
+ "browser.mjs.txt": "675fa540b62239ee61268d2ec6718c16d646724711405f7c2e21d8ceaf0ec54f",
+ "context.json": "5bb97aaf314330f8f4d5f7fe1e0b87918692cd282869ec832efe2a495e2e6a0b",
+ "desktop-api.png": "28c3ba7e8a761c5aade5bf6017d2fa802f3395f36eb9b478feee37710e4f51fa",
+ "desktop-code.png": "2d1e9816e5d9411d13a37a8c75b4585f1a7330384cc025214a692eaa92288f91",
+ "desktop-provenance.png": "eda202da89e31a8664f8559fcd2f40896fcf79e90c5c8358b8ef244b70d8b4a9",
+ "first-desktop-api.png": "f742be144242db0b0305e9744ac7687d9ce1629155b5637cbb76479d65d94cc6",
+ "first-desktop-code.png": "07975d35752f055eed767549b14284cbd485a07caee42c0ee559deb4ae3b3aee",
+ "first-desktop-provenance.png": "a07a249488255d2aa3388a22100d5eff3bc7ae8ecccf5a4dc02e9177b0cace32",
+ "first-narrow-api.png": "d2e5d1de257151830c117380721b6c8367baa5d06d9ac83ca69d5ab01e14f0ec",
+ "first-narrow-code.png": "44850571327cc59efab597d83f9dba8211a8406dbc7792e05c5c7c4e5e32a110",
+ "first-narrow-provenance.png": "789e456df855cef04f3e4b4800cf478863f86fdf79629badebd1397296044fab",
+ "inspection.json": "f0106ff64f340586ca2572c4d5d57212d8a65bce6bb189f962cc961d6b89367d",
+ "narrow-api.png": "02fa5664d860efff66d26b6d634a0d2f5dd2b29d149e3489ba86d4dc849f2206",
+ "narrow-code.png": "e91880f77a5315a76e6e58bea790c92e654be23d56dcf92efa44b1bb135f79fe",
+ "narrow-provenance.png": "6a60079e81861af98dec3483841c45bef76af397eec19dcdef7196a2299cb437",
+ "render.lean.txt": "cc970381459bc4ac2c7df721b4376d69000a28ed21ba53d2a58d4fdb13639e42",
+ "tower-compile-browser-1.log.gz": "8609045354cab42accecbf06129d53290adca3f2934d0bbc02591c2b01167caf",
+ "tower-compile-browser-2.log.gz": "6ccd16ba462bdae4c16964d2d35d2a392d9d2f5333105c54ff0a6059a1038a8b",
+ "tower-compile-browser-3.log.gz": "ecf66702742a50e46aaf5304f30192511735652a48ab14876bc1266c3a74c4dc",
+ "tower-compile-budget-validation-1.log.gz": "9cf7a6c8ce5db0f7168a9f667a81c3fb170c7bc906ab71ba109ac825d6835ac3",
+ "tower-compile-compatibility-1.log.gz": "f8ca4bd0f933e372e628dcf180e069eb95410b63a2c67b72cb2cc9573ab973e7",
+ "tower-compile-final-admissions.log.gz": "3cb561047ec459278c5f350800423393a4800a1003b2ecb972aa833a7153e074",
+ "tower-compile-final-copyright.log.gz": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "tower-compile-final-dag.log.gz": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "tower-compile-final-dag_tests.log.gz": "382b7e1814eb6e2c425f089205942f2883c32edaa64630b2f38a2a69018ca4da",
+ "tower-compile-final-diff.log.gz": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "tower-compile-final-freshness.log.gz": "2deda7e9f1dd38e7a3fd37966a9bdf33c905c76164d13133571f675b1ab75b13",
+ "tower-compile-final-inputs.json": "b8d48dc7217afa0d8694a31f24c6370f310a1ef24d9677e06dc2aa43401341d0",
+ "tower-compile-final-inspection.json": "f0106ff64f340586ca2572c4d5d57212d8a65bce6bb189f962cc961d6b89367d",
+ "tower-compile-final-integration-1.log.gz": "b3f51ce1cf7bdf0d032b19fc4af3a3273dc852feea9de0da65229312a5364972",
+ "tower-compile-final-integration-2.log.gz": "931402ad8ba16defa0a27ba712086aed97308baf4911aa1f273d2a84678f375a",
+ "tower-compile-final-integration-3.log.gz": "2d0a433edfca6f18c04d13316aaa8cf697bcb6b3cf0bfb5bde7b21d2d8e85d37",
+ "tower-compile-final-lines.log.gz": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "tower-compile-final-literals.log.gz": "d363c41d04cc71aaa8b2bb97d1faf6ff4b311e5874c10d339f87aba4d4b97158",
+ "tower-compile-final-manifest.log.gz": "87c23c0a8f1159f2320fb2015c285ee9167c8c51ef9f6df2f69fc217f4b11029",
+ "tower-compile-final-metadata-driver.log.gz": "20b2d45eaca2714a21d8675d83e4295654324e6c61a94fecdd7e6cf3f9e043f9",
+ "tower-compile-final-metadata.json": "cb5dff77c146c76751a95cae6a07c73c9134317fe7b3e6a1e928fb66d4352ea4",
+ "tower-compile-final-source_literals.log.gz": "167f5ed8596142f3f1d3fdc40daa83c40dd6f4c31c76c0268645b4a297e47a56",
+ "tower-compile-first-inspection.json": "e5698bdd1a941a6d0a62545c1dd35daa4c42e946bd9a1ceb7ebb04fd0d6323f9",
+ "tower-compile-first-manual-inputs.json": "6581a90ee77808276d0821c96b9d9df95a8402c18fbce82f804d2d62a79a53b3",
+ "tower-compile-first-metadata-driver.log.gz": "1deaa6f077058c40909ef92fb0e3ea352b5d958e95567f3ffd53d1d68688fab9",
+ "tower-compile-manual-1.log.gz": "577b960f38a13693485e93b7e4f188de4de09dfb7d307a1cf36b12a94f9935ff",
+ "tower-compile-model-validation-1.log.gz": "ebe9ac097bf2b5430e5d0a4859aaf082219a7d8d40eb2f5a75f5929b9f9fa80f",
+ "tower-compile-model-validation-2.log.gz": "b41d993cb03be0ce68117005c7da500b6e7a15a28de584e94327971cbd8eddff",
+ "tower-compile-model-validation-3.log.gz": "1623b467df1a5eabc09e10412d510695e0e3d3fdeb1eafdfe4d5a99d1edb1f8f",
+ "tower-compile-probe-1.lean.gz": "65dce995850bd1aa1aa64d17eaf741fd976128c72a67c458979e98cc4727e956",
+ "tower-compile-probe-1.log.gz": "5aaebba37115c2daf79f7d5982ad02f1fa84f3f72ae70e038e8e245592479152",
+ "tower-compile-probe-2.lean.gz": "51514681f45cb0fe67510d20480f2a73b3c6176c6ccf2cdb41b2c0d432869716",
+ "tower-compile-probe-2.log.gz": "5130b32af1d65cba7d817b46bc719e9ed7a0d2f440a34571ffd17f1959a1268e",
+ "tower-compile-probe-3.lean.gz": "1f40e59bbd6f545eac800fa17b156df4e25d63ca347101c7aad8834afd173bb5",
+ "tower-compile-probe-3.log.gz": "6cfbfcec53b1aaf528197eea5dac49f221191f7156f0cc2b67c5ba5ca02da32c",
+ "tower-compile-production-1.log.gz": "a15383119ff04b59caa9f93f180fc82a89e4eeff47e37a8ea9ad4a1505622955",
+ "tower-compile-production-2.log.gz": "7e866c4e7fb0ebb257b8d4f7e9be59267c5a5fb98d32dcf1ba87b289cccbb396",
+ "tower-compile-proof-1.log.gz": "84172cff5626d84274e41e2927a5fe4503d3b7b9d6fac4899e877b5c96a0b7e1",
+ "tower-compile-proof-2.log.gz": "e638b391bc9f13e8d6ab811d2d0abc00632a83b4f16941732260ca6145c07fc8",
+ "tower-compile-proof-3.log.gz": "da1cc5f04122eae057b8b2bf3578ad432bdac36248e96ee45d1ff996399c62c1",
+ "tower-compile-proof-4.log.gz": "811bd61b9a5cfc84f56d8e7456345a0e1f82b4f880fb090ab8a80bb110709cd7",
+ "tower-compile-render-1.log.gz": "0f163f9bf39d03331a220f57f76462a23afbb9acf4ed80a3e314445abe985690",
+ "tower-compile-render-2.log.gz": "8807b4ec5b83cd6d16b2f818d23d72bbeca873010ede94bd107cfe31883032ad",
+ "tower-compile-render-3.log.gz": "6797a450fcdfc229e8599ff501677322052dbf97beef386ba87069cefd353d47",
+ "tower-compile-second-inspection.json": "690f56058bcf31e539a44464a5312d44f94dab411f6ba7317d1655ef476c4a52",
+ "tower-compile-tests-1.lean.gz": "31f1a16c44c41e53e1e621ba2e3cbaea7e4477cf375212bfd02959db1f9a5f03",
+ "tower-compile-tests-1.log.gz": "474787ade757088dde86a20f1cd414b21a35a2ac826ef692b3c049f6879913f8",
+ "tower-compile-tests-2.log.gz": "baef67909c7a3a30aac7078445fa9b3276c42858521f26e94eaf271d19afd5e5",
+ "tower-compile-tests-3-probe.lean.gz": "c34b18d56c8174a3feec9144b3ec3fdcb6e23e9c5838d4eee82fc6368f64eea7",
+ "tower-compile-tests-3.log.gz": "777c253893b4697a6cb750ae51e51168817095f258d9befdccb2158fd672f885",
+ "tower-compile-tests-4-probe.lean.gz": "aec57906f83eb503138349ab3763f0007875c4a21ddf9342d00c3e4c87f8cc21",
+ "tower-compile-tests-4.log.gz": "f602b9aed26ee5c4af64c39cee32a3e95d9872d9e2cc0777d6625320fd5d4af9",
+ "tower-compile-tests-5.log.gz": "eb39db30bed4f46f9fa5e7fc2db88343a7c9133c67af9101294bd69f86d7c560",
+ "tower-compile-tests-6.log.gz": "6f5fe90284fc3661d5732315724bed9931f08aa575e2763f4c6f903cce223ece",
+ "tower-compile-tests-7.log.gz": "facbd6e38be12cd47581b94661523589c2c1550a511881802c799d6f49431cb1",
+ "tower-compile-transferred-budget-control.log.gz": "ec134dc0fd1812f83ec711d0e0cc245deb810c960eb7aab8f9127878f764d284",
+ "verify.py": "cd48bad0f38e2c66318a231a9be8c1b5018a40adb64d601342ebf156044ea2a6",
+ "relative-links.log": "29f2e6d340c4745906ae0e8f68a63627dc2d6cd75022047a489e0990f98039cb"
+}
diff --git a/reports/data/hexrcf-tower-compile/narrow-api.png b/reports/data/hexrcf-tower-compile/narrow-api.png
new file mode 100644
index 0000000000..71caabe46a
Binary files /dev/null and b/reports/data/hexrcf-tower-compile/narrow-api.png differ
diff --git a/reports/data/hexrcf-tower-compile/narrow-code.png b/reports/data/hexrcf-tower-compile/narrow-code.png
new file mode 100644
index 0000000000..2ec393df5d
Binary files /dev/null and b/reports/data/hexrcf-tower-compile/narrow-code.png differ
diff --git a/reports/data/hexrcf-tower-compile/narrow-provenance.png b/reports/data/hexrcf-tower-compile/narrow-provenance.png
new file mode 100644
index 0000000000..0c2c60367d
Binary files /dev/null and b/reports/data/hexrcf-tower-compile/narrow-provenance.png differ
diff --git a/reports/data/hexrcf-tower-compile/relative-links.log b/reports/data/hexrcf-tower-compile/relative-links.log
new file mode 100644
index 0000000000..048147671d
--- /dev/null
+++ b/reports/data/hexrcf-tower-compile/relative-links.log
@@ -0,0 +1 @@
+116 relative links resolve across report, inventory and record README.
diff --git a/reports/data/hexrcf-tower-compile/render.lean.txt b/reports/data/hexrcf-tower-compile/render.lean.txt
new file mode 100644
index 0000000000..434bd76028
--- /dev/null
+++ b/reports/data/hexrcf-tower-compile/render.lean.txt
@@ -0,0 +1,6 @@
+-- Render the complete manual for browser inspection.
+import HexManual
+import VersoManual
+#eval Verso.Genre.Manual.manualMain (%doc HexManual)
+ (options := ["--output", "full-html",
+ "--without-tex", "--with-html-single", "--without-html-multi"])
diff --git a/reports/data/hexrcf-tower-compile/tower-compile-browser-1.log.gz b/reports/data/hexrcf-tower-compile/tower-compile-browser-1.log.gz
new file mode 100644
index 0000000000..73d49ef710
Binary files /dev/null and b/reports/data/hexrcf-tower-compile/tower-compile-browser-1.log.gz differ
diff --git a/reports/data/hexrcf-tower-compile/tower-compile-browser-2.log.gz b/reports/data/hexrcf-tower-compile/tower-compile-browser-2.log.gz
new file mode 100644
index 0000000000..dd25b248a3
Binary files /dev/null and b/reports/data/hexrcf-tower-compile/tower-compile-browser-2.log.gz differ
diff --git a/reports/data/hexrcf-tower-compile/tower-compile-browser-3.log.gz b/reports/data/hexrcf-tower-compile/tower-compile-browser-3.log.gz
new file mode 100644
index 0000000000..982b75ce7c
Binary files /dev/null and b/reports/data/hexrcf-tower-compile/tower-compile-browser-3.log.gz differ
diff --git a/reports/data/hexrcf-tower-compile/tower-compile-budget-validation-1.log.gz b/reports/data/hexrcf-tower-compile/tower-compile-budget-validation-1.log.gz
new file mode 100644
index 0000000000..e7ef340465
Binary files /dev/null and b/reports/data/hexrcf-tower-compile/tower-compile-budget-validation-1.log.gz differ
diff --git a/reports/data/hexrcf-tower-compile/tower-compile-compatibility-1.log.gz b/reports/data/hexrcf-tower-compile/tower-compile-compatibility-1.log.gz
new file mode 100644
index 0000000000..b1db985df9
Binary files /dev/null and b/reports/data/hexrcf-tower-compile/tower-compile-compatibility-1.log.gz differ
diff --git a/reports/data/hexrcf-tower-compile/tower-compile-final-admissions.log.gz b/reports/data/hexrcf-tower-compile/tower-compile-final-admissions.log.gz
new file mode 100644
index 0000000000..2b0c0fb83b
Binary files /dev/null and b/reports/data/hexrcf-tower-compile/tower-compile-final-admissions.log.gz differ
diff --git a/reports/data/hexrcf-tower-compile/tower-compile-final-copyright.log.gz b/reports/data/hexrcf-tower-compile/tower-compile-final-copyright.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-tower-compile/tower-compile-final-copyright.log.gz differ
diff --git a/reports/data/hexrcf-tower-compile/tower-compile-final-dag.log.gz b/reports/data/hexrcf-tower-compile/tower-compile-final-dag.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-tower-compile/tower-compile-final-dag.log.gz differ
diff --git a/reports/data/hexrcf-tower-compile/tower-compile-final-dag_tests.log.gz b/reports/data/hexrcf-tower-compile/tower-compile-final-dag_tests.log.gz
new file mode 100644
index 0000000000..cce5360c5e
Binary files /dev/null and b/reports/data/hexrcf-tower-compile/tower-compile-final-dag_tests.log.gz differ
diff --git a/reports/data/hexrcf-tower-compile/tower-compile-final-diff.log.gz b/reports/data/hexrcf-tower-compile/tower-compile-final-diff.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-tower-compile/tower-compile-final-diff.log.gz differ
diff --git a/reports/data/hexrcf-tower-compile/tower-compile-final-freshness.log.gz b/reports/data/hexrcf-tower-compile/tower-compile-final-freshness.log.gz
new file mode 100644
index 0000000000..44c03f6508
Binary files /dev/null and b/reports/data/hexrcf-tower-compile/tower-compile-final-freshness.log.gz differ
diff --git a/reports/data/hexrcf-tower-compile/tower-compile-final-inputs.json b/reports/data/hexrcf-tower-compile/tower-compile-final-inputs.json
new file mode 100644
index 0000000000..f2c6fe6729
--- /dev/null
+++ b/reports/data/hexrcf-tower-compile/tower-compile-final-inputs.json
@@ -0,0 +1,9 @@
+{
+ "adapters/HexRCF/RealCoefficients/TowerCompile.lean": "be76aa266816b71d8a75ca193e5aeb9e46314342106c1d1de45369f2bb7c300a",
+ "adapters/HexRCF/RealCoefficients.lean": "ac2ae7a66abff67d69f432d89006574a6085f794ca7086637becc0e3e6bf377c",
+ "lakefile.lean": "b9dfc83fc70c297a912de86828ed9175468a22042f57a7bf671c0528f5421361",
+ "conformance/HexRCF/TowerCompileConformance.lean": "f033f18becf73f30ca1d681f8083f2095a5242c7f9eb737cc4fed8be7453af9d",
+ "conformance/HexRCF/TowerCompileProofs.lean": "2afb132cb73b86bb0657d5b532ffa76da254d9e84fc75aab2f8643db7ccfc24e",
+ "HexManual/Chapters/HexRCF/AlgebraicCells.lean": "7e1ab300ce11b34556ae9db321d85ea105a32753bce4c3ddcd6fd36006efcaa0",
+ "reports/hexrcf-adapter-evidence.md": "415599bbc9af6b3b0c1e5177a8287171b462468c19b5e4d446d4564ee0a1e69f"
+}
diff --git a/reports/data/hexrcf-tower-compile/tower-compile-final-inspection.json b/reports/data/hexrcf-tower-compile/tower-compile-final-inspection.json
new file mode 100644
index 0000000000..2bcf20a505
--- /dev/null
+++ b/reports/data/hexrcf-tower-compile/tower-compile-final-inspection.json
@@ -0,0 +1,86 @@
+[
+ {
+ "label": "desktop",
+ "kind": "api",
+ "text": "\n After source authentication,\nTowerCompile.compile\ncomposes arithmetic from checked leaves in a retained ordinary-real tower\nmodel. It uses that context's total stored operations and their interpretation\nlaws, including a repeated product for natural powers. A leaf supplies a stored\nexpression and a proof of its exact original real value; a proof for another\nsource or context is rejected. Rational literals and casts use bounded rational\nnormalization. This does not install a field instance on stored expressions.",
+ "viewport": 1440,
+ "scrollY": 278077,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "P",
+ "targetWidth": 752,
+ "targetScrollWidth": 752,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "desktop",
+ "kind": "code",
+ "text": "\n After source authentication,\nTowerCompile.compile\ncomposes arithmetic from checked leaves in a retained ordinary-real tower\nmodel. It uses that context's total stored operations and their interpretation\nlaws, including a repeated product for natural powers. A leaf supplies a stored\nexpression and a proof of its exact original real value; a proof for another\nsource or context is rejected. Rational literals and casts use bounded rational\nnormalization. This does not install a field instance on stored expressions.",
+ "viewport": 1440,
+ "scrollY": 278315,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "CODE",
+ "targetWidth": 740,
+ "targetScrollWidth": 740,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "desktop",
+ "kind": "provenance",
+ "text": "\n The returned proof identifies the model's value of the stored expression with\nthe source. For an existing prepared sentence,\nprepareWith compiles\nboth ordered inventories: coefficients first and original divisors separately.\nThe enclosing request must continue the source preparation's recorded usage;\nresetting that accounting or lowering a limit below prior usage is rejected.\nEvery original divisor is retained,\nincluding one under zero multiplication. Compiling its arithmetic does not\nprove it nonzero or accept the sentence. A declining leaf restores its\nmetavariables and declarations before arithmetic continues; terminal failure\nand exhaustion use the enclosing transaction's rollback.",
+ "viewport": 1440,
+ "scrollY": 278576,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "P",
+ "targetWidth": 752,
+ "targetScrollWidth": 752,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "api",
+ "text": "\n After source authentication,\nTowerCompile.compile\ncomposes arithmetic from checked leaves in a retained ordinary-real tower\nmodel. It uses that context's total stored operations and their interpretation\nlaws, including a repeated product for natural powers. A leaf supplies a stored\nexpression and a proof of its exact original real value; a proof for another\nsource or context is rejected. Rational literals and casts use bounded rational\nnormalization. This does not install a field instance on stored expressions.",
+ "viewport": 390,
+ "scrollY": 445906,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "P",
+ "targetWidth": 343,
+ "targetScrollWidth": 343,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "code",
+ "text": "\n After source authentication,\nTowerCompile.compile\ncomposes arithmetic from checked leaves in a retained ordinary-real tower\nmodel. It uses that context's total stored operations and their interpretation\nlaws, including a repeated product for natural powers. A leaf supplies a stored\nexpression and a proof of its exact original real value; a proof for another\nsource or context is rejected. Rational literals and casts use bounded rational\nnormalization. This does not install a field instance on stored expressions.",
+ "viewport": 390,
+ "scrollY": 446237,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "CODE",
+ "targetWidth": 331,
+ "targetScrollWidth": 331,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "provenance",
+ "text": "\n The returned proof identifies the model's value of the stored expression with\nthe source. For an existing prepared sentence,\nprepareWith compiles\nboth ordered inventories: coefficients first and original divisors separately.\nThe enclosing request must continue the source preparation's recorded usage;\nresetting that accounting or lowering a limit below prior usage is rejected.\nEvery original divisor is retained,\nincluding one under zero multiplication. Compiling its arithmetic does not\nprove it nonzero or accept the sentence. A declining leaf restores its\nmetavariables and declarations before arithmetic continues; terminal failure\nand exhaustion use the enclosing transaction's rollback.",
+ "viewport": 390,
+ "scrollY": 446602,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "P",
+ "targetWidth": 343,
+ "targetScrollWidth": 343,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ }
+]
\ No newline at end of file
diff --git a/reports/data/hexrcf-tower-compile/tower-compile-final-integration-1.log.gz b/reports/data/hexrcf-tower-compile/tower-compile-final-integration-1.log.gz
new file mode 100644
index 0000000000..d0d973826d
Binary files /dev/null and b/reports/data/hexrcf-tower-compile/tower-compile-final-integration-1.log.gz differ
diff --git a/reports/data/hexrcf-tower-compile/tower-compile-final-integration-2.log.gz b/reports/data/hexrcf-tower-compile/tower-compile-final-integration-2.log.gz
new file mode 100644
index 0000000000..d47a22d304
Binary files /dev/null and b/reports/data/hexrcf-tower-compile/tower-compile-final-integration-2.log.gz differ
diff --git a/reports/data/hexrcf-tower-compile/tower-compile-final-integration-3.log.gz b/reports/data/hexrcf-tower-compile/tower-compile-final-integration-3.log.gz
new file mode 100644
index 0000000000..5b1f244de1
Binary files /dev/null and b/reports/data/hexrcf-tower-compile/tower-compile-final-integration-3.log.gz differ
diff --git a/reports/data/hexrcf-tower-compile/tower-compile-final-lines.log.gz b/reports/data/hexrcf-tower-compile/tower-compile-final-lines.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-tower-compile/tower-compile-final-lines.log.gz differ
diff --git a/reports/data/hexrcf-tower-compile/tower-compile-final-literals.log.gz b/reports/data/hexrcf-tower-compile/tower-compile-final-literals.log.gz
new file mode 100644
index 0000000000..251ef5b170
Binary files /dev/null and b/reports/data/hexrcf-tower-compile/tower-compile-final-literals.log.gz differ
diff --git a/reports/data/hexrcf-tower-compile/tower-compile-final-manifest.log.gz b/reports/data/hexrcf-tower-compile/tower-compile-final-manifest.log.gz
new file mode 100644
index 0000000000..1e2a3e818a
Binary files /dev/null and b/reports/data/hexrcf-tower-compile/tower-compile-final-manifest.log.gz differ
diff --git a/reports/data/hexrcf-tower-compile/tower-compile-final-metadata-driver.log.gz b/reports/data/hexrcf-tower-compile/tower-compile-final-metadata-driver.log.gz
new file mode 100644
index 0000000000..1c425979f4
Binary files /dev/null and b/reports/data/hexrcf-tower-compile/tower-compile-final-metadata-driver.log.gz differ
diff --git a/reports/data/hexrcf-tower-compile/tower-compile-final-metadata.json b/reports/data/hexrcf-tower-compile/tower-compile-final-metadata.json
new file mode 100644
index 0000000000..8eab7c184d
--- /dev/null
+++ b/reports/data/hexrcf-tower-compile/tower-compile-final-metadata.json
@@ -0,0 +1,97 @@
+[
+ {
+ "name": "dag_tests",
+ "argv": [
+ "python3",
+ "scripts/test_check_dag.py"
+ ],
+ "exit_code": 0,
+ "log": "tower-compile-final-dag_tests.log"
+ },
+ {
+ "name": "copyright",
+ "argv": [
+ "python3",
+ "scripts/check_copyright_headers.py"
+ ],
+ "exit_code": 0,
+ "log": "tower-compile-final-copyright.log"
+ },
+ {
+ "name": "lines",
+ "argv": [
+ "python3",
+ "scripts/check_file_line_counts.py",
+ "--base",
+ "origin/main"
+ ],
+ "exit_code": 0,
+ "log": "tower-compile-final-lines.log"
+ },
+ {
+ "name": "dag",
+ "argv": [
+ "python3",
+ "scripts/check_dag.py"
+ ],
+ "exit_code": 0,
+ "log": "tower-compile-final-dag.log"
+ },
+ {
+ "name": "admissions",
+ "argv": [
+ "python3",
+ "scripts/ci/check_named_admissions.py"
+ ],
+ "exit_code": 0,
+ "log": "tower-compile-final-admissions.log"
+ },
+ {
+ "name": "manifest",
+ "argv": [
+ "python3",
+ "scripts/release/check_released_manifest.py"
+ ],
+ "exit_code": 0,
+ "log": "tower-compile-final-manifest.log"
+ },
+ {
+ "name": "freshness",
+ "argv": [
+ "python3",
+ "scripts/bench/check_factor_sweep_freshness.py"
+ ],
+ "exit_code": 0,
+ "log": "tower-compile-final-freshness.log"
+ },
+ {
+ "name": "literals",
+ "argv": [
+ "python3",
+ "scripts/rcf/selected_literals.py",
+ "--check"
+ ],
+ "exit_code": 0,
+ "log": "tower-compile-final-literals.log"
+ },
+ {
+ "name": "source_literals",
+ "argv": [
+ "python3",
+ "scripts/rcf/source_identity_literals.py",
+ "--check"
+ ],
+ "exit_code": 0,
+ "log": "tower-compile-final-source_literals.log"
+ },
+ {
+ "name": "diff",
+ "argv": [
+ "git",
+ "diff",
+ "--check"
+ ],
+ "exit_code": 0,
+ "log": "tower-compile-final-diff.log"
+ }
+]
diff --git a/reports/data/hexrcf-tower-compile/tower-compile-final-source_literals.log.gz b/reports/data/hexrcf-tower-compile/tower-compile-final-source_literals.log.gz
new file mode 100644
index 0000000000..ddc79da867
Binary files /dev/null and b/reports/data/hexrcf-tower-compile/tower-compile-final-source_literals.log.gz differ
diff --git a/reports/data/hexrcf-tower-compile/tower-compile-first-inspection.json b/reports/data/hexrcf-tower-compile/tower-compile-first-inspection.json
new file mode 100644
index 0000000000..3e1b689b77
--- /dev/null
+++ b/reports/data/hexrcf-tower-compile/tower-compile-first-inspection.json
@@ -0,0 +1,94 @@
+[
+ {
+ "label": "desktop",
+ "kind": "api",
+ "text": "\n After source authentication,\nTowerCompile.compile\ncomposes arithmetic from checked leaves in a retained ordinary-real tower\nmodel. It uses that context's total stored operations and their interpretation\nlaws, including a repeated product for natural powers. A leaf supplies a stored\nexpression and a proof of its exact original real value; a proof for another\nsource or context is rejected. Rational literals and casts use bounded rational\nnormalization. This does not install a field instance on stored expressions.",
+ "viewport": 1440,
+ "scrollY": 278077,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "P",
+ "targetWidth": 752,
+ "targetScrollWidth": 752,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "desktop",
+ "kind": "code",
+ "text": "\n After source authentication,\nTowerCompile.compile\ncomposes arithmetic from checked leaves in a retained ordinary-real tower\nmodel. It uses that context's total stored operations and their interpretation\nlaws, including a repeated product for natural powers. A leaf supplies a stored\nexpression and a proof of its exact original real value; a proof for another\nsource or context is rejected. Rational literals and casts use bounded rational\nnormalization. This does not install a field instance on stored expressions.",
+ "viewport": 1440,
+ "scrollY": 278305,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "CODE",
+ "targetWidth": 740,
+ "targetScrollWidth": 740,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "desktop",
+ "kind": "provenance",
+ "text": "\n The returned proof identifies the model's value of the stored expression with\nthe source. For an existing prepared sentence,\nprepareWith compiles\nboth ordered inventories: coefficients first and original divisors separately.\nThe enclosing request must continue the source preparation's recorded usage;\nresetting that accounting is rejected. Every original divisor is retained,\nincluding one under zero multiplication. Compiling its arithmetic does not\nprove it nonzero or accept the sentence. A declining leaf restores its\nmetavariables and declarations before arithmetic continues; terminal failure\nand exhaustion use the enclosing transaction's rollback.",
+ "viewport": 1440,
+ "scrollY": 278557,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "P",
+ "targetWidth": 752,
+ "targetScrollWidth": 752,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "api",
+ "text": "\n After source authentication,\nTowerCompile.compile\ncomposes arithmetic from checked leaves in a retained ordinary-real tower\nmodel. It uses that context's total stored operations and their interpretation\nlaws, including a repeated product for natural powers. A leaf supplies a stored\nexpression and a proof of its exact original real value; a proof for another\nsource or context is rejected. Rational literals and casts use bounded rational\nnormalization. This does not install a field instance on stored expressions.",
+ "viewport": 390,
+ "scrollY": 445906,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "P",
+ "targetWidth": 343,
+ "targetScrollWidth": 343,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "code",
+ "text": "\n After source authentication,\nTowerCompile.compile\ncomposes arithmetic from checked leaves in a retained ordinary-real tower\nmodel. It uses that context's total stored operations and their interpretation\nlaws, including a repeated product for natural powers. A leaf supplies a stored\nexpression and a proof of its exact original real value; a proof for another\nsource or context is rejected. Rational literals and casts use bounded rational\nnormalization. This does not install a field instance on stored expressions.",
+ "viewport": 390,
+ "scrollY": 446235,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "CODE",
+ "targetWidth": 331,
+ "targetScrollWidth": 358,
+ "descendantOverflow": 27,
+ "overflowElements": [
+ {
+ "tag": "CODE",
+ "classes": "hl lean block",
+ "width": 331,
+ "scroll": 358,
+ "text": "open Lean Hex.RealFormula Hex.Reflect\nopen Hex.RealFormula.Reify\nopen Hex.RCF.RealCoefficients\nmeta "
+ }
+ ]
+ },
+ {
+ "label": "narrow",
+ "kind": "provenance",
+ "text": "\n The returned proof identifies the model's value of the stored expression with\nthe source. For an existing prepared sentence,\nprepareWith compiles\nboth ordered inventories: coefficients first and original divisors separately.\nThe enclosing request must continue the source preparation's recorded usage;\nresetting that accounting is rejected. Every original divisor is retained,\nincluding one under zero multiplication. Compiling its arithmetic does not\nprove it nonzero or accept the sentence. A declining leaf restores its\nmetavariables and declarations before arithmetic continues; terminal failure\nand exhaustion use the enclosing transaction's rollback.",
+ "viewport": 390,
+ "scrollY": 446598,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "P",
+ "targetWidth": 343,
+ "targetScrollWidth": 343,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ }
+]
\ No newline at end of file
diff --git a/reports/data/hexrcf-tower-compile/tower-compile-first-manual-inputs.json b/reports/data/hexrcf-tower-compile/tower-compile-first-manual-inputs.json
new file mode 100644
index 0000000000..e2d5fdfd2d
--- /dev/null
+++ b/reports/data/hexrcf-tower-compile/tower-compile-first-manual-inputs.json
@@ -0,0 +1,9 @@
+{
+ "adapters/HexRCF/RealCoefficients/TowerCompile.lean": "269bc9604ac32013ba8ef00561b7d8d81d6565bbd2b2548db5acd05a485cff95",
+ "adapters/HexRCF/RealCoefficients.lean": "ac2ae7a66abff67d69f432d89006574a6085f794ca7086637becc0e3e6bf377c",
+ "lakefile.lean": "b9dfc83fc70c297a912de86828ed9175468a22042f57a7bf671c0528f5421361",
+ "conformance/HexRCF/TowerCompileConformance.lean": "eae49a702cfd6c6699b116b91dacd0e13ff21a5ec7b53c81c2f3f608c2fd76b1",
+ "conformance/HexRCF/TowerCompileProofs.lean": "2afb132cb73b86bb0657d5b532ffa76da254d9e84fc75aab2f8643db7ccfc24e",
+ "HexManual/Chapters/HexRCF/AlgebraicCells.lean": "12d6fa3ea94fbf8f57fd381c9ac13cc1d38961fd635785fd6e09a686b5adaefd",
+ "reports/hexrcf-adapter-evidence.md": "415599bbc9af6b3b0c1e5177a8287171b462468c19b5e4d446d4564ee0a1e69f"
+}
diff --git a/reports/data/hexrcf-tower-compile/tower-compile-first-metadata-driver.log.gz b/reports/data/hexrcf-tower-compile/tower-compile-first-metadata-driver.log.gz
new file mode 100644
index 0000000000..d88a7dc44b
Binary files /dev/null and b/reports/data/hexrcf-tower-compile/tower-compile-first-metadata-driver.log.gz differ
diff --git a/reports/data/hexrcf-tower-compile/tower-compile-manual-1.log.gz b/reports/data/hexrcf-tower-compile/tower-compile-manual-1.log.gz
new file mode 100644
index 0000000000..dc7062168a
Binary files /dev/null and b/reports/data/hexrcf-tower-compile/tower-compile-manual-1.log.gz differ
diff --git a/reports/data/hexrcf-tower-compile/tower-compile-model-validation-1.log.gz b/reports/data/hexrcf-tower-compile/tower-compile-model-validation-1.log.gz
new file mode 100644
index 0000000000..0955f5e7dd
Binary files /dev/null and b/reports/data/hexrcf-tower-compile/tower-compile-model-validation-1.log.gz differ
diff --git a/reports/data/hexrcf-tower-compile/tower-compile-model-validation-2.log.gz b/reports/data/hexrcf-tower-compile/tower-compile-model-validation-2.log.gz
new file mode 100644
index 0000000000..6eb980ed52
Binary files /dev/null and b/reports/data/hexrcf-tower-compile/tower-compile-model-validation-2.log.gz differ
diff --git a/reports/data/hexrcf-tower-compile/tower-compile-model-validation-3.log.gz b/reports/data/hexrcf-tower-compile/tower-compile-model-validation-3.log.gz
new file mode 100644
index 0000000000..996ba8bb53
Binary files /dev/null and b/reports/data/hexrcf-tower-compile/tower-compile-model-validation-3.log.gz differ
diff --git a/reports/data/hexrcf-tower-compile/tower-compile-probe-1.lean.gz b/reports/data/hexrcf-tower-compile/tower-compile-probe-1.lean.gz
new file mode 100644
index 0000000000..8c60cfa953
Binary files /dev/null and b/reports/data/hexrcf-tower-compile/tower-compile-probe-1.lean.gz differ
diff --git a/reports/data/hexrcf-tower-compile/tower-compile-probe-1.log.gz b/reports/data/hexrcf-tower-compile/tower-compile-probe-1.log.gz
new file mode 100644
index 0000000000..027183d68c
Binary files /dev/null and b/reports/data/hexrcf-tower-compile/tower-compile-probe-1.log.gz differ
diff --git a/reports/data/hexrcf-tower-compile/tower-compile-probe-2.lean.gz b/reports/data/hexrcf-tower-compile/tower-compile-probe-2.lean.gz
new file mode 100644
index 0000000000..e303f30e0c
Binary files /dev/null and b/reports/data/hexrcf-tower-compile/tower-compile-probe-2.lean.gz differ
diff --git a/reports/data/hexrcf-tower-compile/tower-compile-probe-2.log.gz b/reports/data/hexrcf-tower-compile/tower-compile-probe-2.log.gz
new file mode 100644
index 0000000000..0479b8b411
Binary files /dev/null and b/reports/data/hexrcf-tower-compile/tower-compile-probe-2.log.gz differ
diff --git a/reports/data/hexrcf-tower-compile/tower-compile-probe-3.lean.gz b/reports/data/hexrcf-tower-compile/tower-compile-probe-3.lean.gz
new file mode 100644
index 0000000000..81234bba31
Binary files /dev/null and b/reports/data/hexrcf-tower-compile/tower-compile-probe-3.lean.gz differ
diff --git a/reports/data/hexrcf-tower-compile/tower-compile-probe-3.log.gz b/reports/data/hexrcf-tower-compile/tower-compile-probe-3.log.gz
new file mode 100644
index 0000000000..d562170a26
Binary files /dev/null and b/reports/data/hexrcf-tower-compile/tower-compile-probe-3.log.gz differ
diff --git a/reports/data/hexrcf-tower-compile/tower-compile-production-1.log.gz b/reports/data/hexrcf-tower-compile/tower-compile-production-1.log.gz
new file mode 100644
index 0000000000..aecfbdbc3a
Binary files /dev/null and b/reports/data/hexrcf-tower-compile/tower-compile-production-1.log.gz differ
diff --git a/reports/data/hexrcf-tower-compile/tower-compile-production-2.log.gz b/reports/data/hexrcf-tower-compile/tower-compile-production-2.log.gz
new file mode 100644
index 0000000000..c7678b62b8
Binary files /dev/null and b/reports/data/hexrcf-tower-compile/tower-compile-production-2.log.gz differ
diff --git a/reports/data/hexrcf-tower-compile/tower-compile-proof-1.log.gz b/reports/data/hexrcf-tower-compile/tower-compile-proof-1.log.gz
new file mode 100644
index 0000000000..2582cec63f
Binary files /dev/null and b/reports/data/hexrcf-tower-compile/tower-compile-proof-1.log.gz differ
diff --git a/reports/data/hexrcf-tower-compile/tower-compile-proof-2.log.gz b/reports/data/hexrcf-tower-compile/tower-compile-proof-2.log.gz
new file mode 100644
index 0000000000..228cff78de
Binary files /dev/null and b/reports/data/hexrcf-tower-compile/tower-compile-proof-2.log.gz differ
diff --git a/reports/data/hexrcf-tower-compile/tower-compile-proof-3.log.gz b/reports/data/hexrcf-tower-compile/tower-compile-proof-3.log.gz
new file mode 100644
index 0000000000..3dbeba71a8
Binary files /dev/null and b/reports/data/hexrcf-tower-compile/tower-compile-proof-3.log.gz differ
diff --git a/reports/data/hexrcf-tower-compile/tower-compile-proof-4.log.gz b/reports/data/hexrcf-tower-compile/tower-compile-proof-4.log.gz
new file mode 100644
index 0000000000..6524c80112
Binary files /dev/null and b/reports/data/hexrcf-tower-compile/tower-compile-proof-4.log.gz differ
diff --git a/reports/data/hexrcf-tower-compile/tower-compile-render-1.log.gz b/reports/data/hexrcf-tower-compile/tower-compile-render-1.log.gz
new file mode 100644
index 0000000000..ec0d8e8ab9
Binary files /dev/null and b/reports/data/hexrcf-tower-compile/tower-compile-render-1.log.gz differ
diff --git a/reports/data/hexrcf-tower-compile/tower-compile-render-2.log.gz b/reports/data/hexrcf-tower-compile/tower-compile-render-2.log.gz
new file mode 100644
index 0000000000..187a917901
Binary files /dev/null and b/reports/data/hexrcf-tower-compile/tower-compile-render-2.log.gz differ
diff --git a/reports/data/hexrcf-tower-compile/tower-compile-render-3.log.gz b/reports/data/hexrcf-tower-compile/tower-compile-render-3.log.gz
new file mode 100644
index 0000000000..812a9bbf42
Binary files /dev/null and b/reports/data/hexrcf-tower-compile/tower-compile-render-3.log.gz differ
diff --git a/reports/data/hexrcf-tower-compile/tower-compile-second-inspection.json b/reports/data/hexrcf-tower-compile/tower-compile-second-inspection.json
new file mode 100644
index 0000000000..127d281cb6
--- /dev/null
+++ b/reports/data/hexrcf-tower-compile/tower-compile-second-inspection.json
@@ -0,0 +1,86 @@
+[
+ {
+ "label": "desktop",
+ "kind": "api",
+ "text": "\n After source authentication,\nTowerCompile.compile\ncomposes arithmetic from checked leaves in a retained ordinary-real tower\nmodel. It uses that context's total stored operations and their interpretation\nlaws, including a repeated product for natural powers. A leaf supplies a stored\nexpression and a proof of its exact original real value; a proof for another\nsource or context is rejected. Rational literals and casts use bounded rational\nnormalization. This does not install a field instance on stored expressions.",
+ "viewport": 1440,
+ "scrollY": 278077,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "P",
+ "targetWidth": 752,
+ "targetScrollWidth": 752,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "desktop",
+ "kind": "code",
+ "text": "\n After source authentication,\nTowerCompile.compile\ncomposes arithmetic from checked leaves in a retained ordinary-real tower\nmodel. It uses that context's total stored operations and their interpretation\nlaws, including a repeated product for natural powers. A leaf supplies a stored\nexpression and a proof of its exact original real value; a proof for another\nsource or context is rejected. Rational literals and casts use bounded rational\nnormalization. This does not install a field instance on stored expressions.",
+ "viewport": 1440,
+ "scrollY": 278315,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "CODE",
+ "targetWidth": 740,
+ "targetScrollWidth": 740,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "desktop",
+ "kind": "provenance",
+ "text": "\n The returned proof identifies the model's value of the stored expression with\nthe source. For an existing prepared sentence,\nprepareWith compiles\nboth ordered inventories: coefficients first and original divisors separately.\nThe enclosing request must continue the source preparation's recorded usage;\nresetting that accounting is rejected. Every original divisor is retained,\nincluding one under zero multiplication. Compiling its arithmetic does not\nprove it nonzero or accept the sentence. A declining leaf restores its\nmetavariables and declarations before arithmetic continues; terminal failure\nand exhaustion use the enclosing transaction's rollback.",
+ "viewport": 1440,
+ "scrollY": 278576,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "P",
+ "targetWidth": 752,
+ "targetScrollWidth": 752,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "api",
+ "text": "\n After source authentication,\nTowerCompile.compile\ncomposes arithmetic from checked leaves in a retained ordinary-real tower\nmodel. It uses that context's total stored operations and their interpretation\nlaws, including a repeated product for natural powers. A leaf supplies a stored\nexpression and a proof of its exact original real value; a proof for another\nsource or context is rejected. Rational literals and casts use bounded rational\nnormalization. This does not install a field instance on stored expressions.",
+ "viewport": 390,
+ "scrollY": 445906,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "P",
+ "targetWidth": 343,
+ "targetScrollWidth": 343,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "code",
+ "text": "\n After source authentication,\nTowerCompile.compile\ncomposes arithmetic from checked leaves in a retained ordinary-real tower\nmodel. It uses that context's total stored operations and their interpretation\nlaws, including a repeated product for natural powers. A leaf supplies a stored\nexpression and a proof of its exact original real value; a proof for another\nsource or context is rejected. Rational literals and casts use bounded rational\nnormalization. This does not install a field instance on stored expressions.",
+ "viewport": 390,
+ "scrollY": 446237,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "CODE",
+ "targetWidth": 331,
+ "targetScrollWidth": 331,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "provenance",
+ "text": "\n The returned proof identifies the model's value of the stored expression with\nthe source. For an existing prepared sentence,\nprepareWith compiles\nboth ordered inventories: coefficients first and original divisors separately.\nThe enclosing request must continue the source preparation's recorded usage;\nresetting that accounting is rejected. Every original divisor is retained,\nincluding one under zero multiplication. Compiling its arithmetic does not\nprove it nonzero or accept the sentence. A declining leaf restores its\nmetavariables and declarations before arithmetic continues; terminal failure\nand exhaustion use the enclosing transaction's rollback.",
+ "viewport": 390,
+ "scrollY": 446602,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "P",
+ "targetWidth": 343,
+ "targetScrollWidth": 343,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ }
+]
\ No newline at end of file
diff --git a/reports/data/hexrcf-tower-compile/tower-compile-tests-1.lean.gz b/reports/data/hexrcf-tower-compile/tower-compile-tests-1.lean.gz
new file mode 100644
index 0000000000..914a9e96cf
Binary files /dev/null and b/reports/data/hexrcf-tower-compile/tower-compile-tests-1.lean.gz differ
diff --git a/reports/data/hexrcf-tower-compile/tower-compile-tests-1.log.gz b/reports/data/hexrcf-tower-compile/tower-compile-tests-1.log.gz
new file mode 100644
index 0000000000..5a5910661d
Binary files /dev/null and b/reports/data/hexrcf-tower-compile/tower-compile-tests-1.log.gz differ
diff --git a/reports/data/hexrcf-tower-compile/tower-compile-tests-2.log.gz b/reports/data/hexrcf-tower-compile/tower-compile-tests-2.log.gz
new file mode 100644
index 0000000000..10d1bb101a
Binary files /dev/null and b/reports/data/hexrcf-tower-compile/tower-compile-tests-2.log.gz differ
diff --git a/reports/data/hexrcf-tower-compile/tower-compile-tests-3-probe.lean.gz b/reports/data/hexrcf-tower-compile/tower-compile-tests-3-probe.lean.gz
new file mode 100644
index 0000000000..261e506567
Binary files /dev/null and b/reports/data/hexrcf-tower-compile/tower-compile-tests-3-probe.lean.gz differ
diff --git a/reports/data/hexrcf-tower-compile/tower-compile-tests-3.log.gz b/reports/data/hexrcf-tower-compile/tower-compile-tests-3.log.gz
new file mode 100644
index 0000000000..aeb9725c52
Binary files /dev/null and b/reports/data/hexrcf-tower-compile/tower-compile-tests-3.log.gz differ
diff --git a/reports/data/hexrcf-tower-compile/tower-compile-tests-4-probe.lean.gz b/reports/data/hexrcf-tower-compile/tower-compile-tests-4-probe.lean.gz
new file mode 100644
index 0000000000..c19dc3207f
Binary files /dev/null and b/reports/data/hexrcf-tower-compile/tower-compile-tests-4-probe.lean.gz differ
diff --git a/reports/data/hexrcf-tower-compile/tower-compile-tests-4.log.gz b/reports/data/hexrcf-tower-compile/tower-compile-tests-4.log.gz
new file mode 100644
index 0000000000..39f7e8875a
Binary files /dev/null and b/reports/data/hexrcf-tower-compile/tower-compile-tests-4.log.gz differ
diff --git a/reports/data/hexrcf-tower-compile/tower-compile-tests-5.log.gz b/reports/data/hexrcf-tower-compile/tower-compile-tests-5.log.gz
new file mode 100644
index 0000000000..db19aceda6
Binary files /dev/null and b/reports/data/hexrcf-tower-compile/tower-compile-tests-5.log.gz differ
diff --git a/reports/data/hexrcf-tower-compile/tower-compile-tests-6.log.gz b/reports/data/hexrcf-tower-compile/tower-compile-tests-6.log.gz
new file mode 100644
index 0000000000..35f9d0af6f
Binary files /dev/null and b/reports/data/hexrcf-tower-compile/tower-compile-tests-6.log.gz differ
diff --git a/reports/data/hexrcf-tower-compile/tower-compile-tests-7.log.gz b/reports/data/hexrcf-tower-compile/tower-compile-tests-7.log.gz
new file mode 100644
index 0000000000..544bb17203
Binary files /dev/null and b/reports/data/hexrcf-tower-compile/tower-compile-tests-7.log.gz differ
diff --git a/reports/data/hexrcf-tower-compile/tower-compile-transferred-budget-control.log.gz b/reports/data/hexrcf-tower-compile/tower-compile-transferred-budget-control.log.gz
new file mode 100644
index 0000000000..ffbd4a9c0b
Binary files /dev/null and b/reports/data/hexrcf-tower-compile/tower-compile-transferred-budget-control.log.gz differ
diff --git a/reports/data/hexrcf-tower-compile/verify.py b/reports/data/hexrcf-tower-compile/verify.py
new file mode 100644
index 0000000000..88def47db8
--- /dev/null
+++ b/reports/data/hexrcf-tower-compile/verify.py
@@ -0,0 +1,38 @@
+#!/usr/bin/env python3
+"""Verify the ordinary-real stored arithmetic compilation evidence."""
+from pathlib import Path
+import argparse,gzip,hashlib,json,subprocess
+p=Path(__file__).resolve().parent
+root=next(x for x in p.parents if (x/'.git').exists())
+a=argparse.ArgumentParser();a.add_argument('--check-head',action='store_true');args=a.parse_args()
+sha=lambda b:hashlib.sha256(b).hexdigest()
+c=json.loads((p/'context.json').read_text())
+parent=root/'reports/data/hexrcf-public-model/context.json'
+assert sha(parent.read_bytes())==c['parent_context_sha256']
+subprocess.run(['git','merge-base','--is-ancestor',c['parent_source_commit'],c['source_commit']],cwd=root,check=True)
+for name,digest in c['sources'].items():
+ raw=subprocess.check_output(['git','show',c['source_commit']+':'+name],cwd=root)
+ assert sha(raw)==digest,name
+ if args.check_head:assert sha((root/name).read_bytes())==digest,name
+for name,digest in json.loads((p/'manifest.json').read_text()).items():assert sha((p/name).read_bytes())==digest,name
+read=lambda name:gzip.decompress((p/(name+'.gz')).read_bytes()).decode()
+for name in c['successful_logs']:assert 'code=exited, status=0/SUCCESS' in read(name),name
+log=read('tower-compile-final-integration-3.log')
+for marker in ['fresh tower quotation: 36 actual theorem bodies; nonempty traces=35',
+ 'ordered tower inventory: 2 coefficients, 2 original guards',
+ 'original guard inventories survive zero multiplication; reset source budgets rejected',
+ 'terminal leaf failure restored state; swapped model and unsupported function rejected',
+ 'empty coefficient/divisor inventories still validate the retained real model',
+ 'transferred source usage is checked against every enclosing limit']:
+ assert marker in log,marker
+assert any('fresh tower quotation: 36 actual theorem bodies' in line and 'full axioms=[propext, Classical.choice, Quot.sound]' in line for line in log.splitlines())
+for n in [441,711,1111,540,826,742,2284,247,276]:assert f'proofNodes={n}' in log,n
+checks=json.loads((p/'tower-compile-final-metadata.json').read_text())
+assert [x['name'] for x in checks]==['dag_tests','copyright','lines','dag','admissions','manifest','freshness','literals','source_literals','diff']
+assert all(x['exit_code']==0 for x in checks)
+assert 'Ran 12 tests' in read('tower-compile-final-dag_tests.log')
+for name,digest in json.loads((p/'tower-compile-final-inputs.json').read_text()).items():assert c['sources'][name]==digest,name
+ins=json.loads((p/'inspection.json').read_text())
+assert {(x['viewport'],x['kind']) for x in ins}=={(w,k) for w in [1440,390] for k in ['api','code','provenance']}
+assert len(ins)==6 and all(x['descendantOverflow']==0 and x['targetScrollWidth']<=x['targetWidth']+1 for x in ins)
+print(f'Verified tower source arithmetic: {len(c["sources"])} source bindings, actual/private 36-body fresh audit, ordered original inventories, failure/decline/model/budget controls and six manual views. Full #10358 incomplete.')
diff --git a/reports/data/hexrcf-tree-quotation/README.md b/reports/data/hexrcf-tree-quotation/README.md
new file mode 100644
index 0000000000..c80bfa9511
--- /dev/null
+++ b/reports/data/hexrcf-tree-quotation/README.md
@@ -0,0 +1,20 @@
+# Public replay-tree quotation evidence
+
+This record pins the implementation at `e1c37242b659592b1a2c16c836cd844194c1f642`.
+It retains successful public examples, fresh body audits, compatibility and
+manual checks, six actually inspected desktop/narrow captures and unsuccessful
+complete-packet diagnostics. The implementation has no dependency on debug
+snapshots or stored unchecked expression data.
+
+Run from the repository root:
+
+```sh
+python3 reports/data/hexrcf-tree-quotation/verify.py --check-head
+```
+
+`--check-head` also checks current source bytes. Without that flag the verifier
+checks the pinned revision and retained artifacts. Hashes authenticate these
+files, not mathematical claims; the fresh ordinary-kernel conformance modules
+establish the stated reader equations. No complete source-goal acceptance or
+algebraic completeness is claimed. See the [report](../../hexrcf-tree-quotation.md)
+for scope and remaining work.
diff --git a/reports/data/hexrcf-tree-quotation/captures/browser.mjs b/reports/data/hexrcf-tree-quotation/captures/browser.mjs
new file mode 100644
index 0000000000..db50c62f22
--- /dev/null
+++ b/reports/data/hexrcf-tree-quotation/captures/browser.mjs
@@ -0,0 +1,61 @@
+import fs from 'node:fs';
+import {spawn} from 'node:child_process';
+const root=process.argv[2];
+if(!root) throw new Error('Pass the scratch render directory');
+const profile=root+'/tree-quotation-profile';
+fs.mkdirSync(profile,{recursive:true});
+fs.rmSync(profile+'/DevToolsActivePort',{force:true});
+const chrome=spawn(process.env.CHROME_BIN || '/home/kim/.cache/ms-playwright/chromium-1243/chrome-linux64/chrome',[
+ '--headless=new','--no-sandbox','--disable-gpu','--allow-file-access-from-files',
+ '--remote-debugging-port=0','--remote-allow-origins=*','--user-data-dir='+profile,'about:blank'],
+ {env:{...process.env,LD_LIBRARY_PATH:fs.readFileSync(root+'/browser-lib-paths.txt','utf8').trim()},stdio:'ignore'});
+let socket;
+try {
+ const portFile=profile+'/DevToolsActivePort';
+ for(let i=0;!fs.existsSync(portFile);i++) {
+ if(i>200||chrome.exitCode!==null) throw new Error('Chrome did not expose CDP');
+ await new Promise(r=>setTimeout(r,100));
+ }
+ const port=fs.readFileSync(portFile,'utf8').split('\n')[0];
+ const tabs=await (await fetch('http://127.0.0.1:'+port+'/json')).json();
+ socket=new WebSocket(tabs.find(t=>t.type==='page').webSocketDebuggerUrl);
+ await new Promise((r,j)=>{socket.onopen=r;socket.onerror=j});
+ let sequence=0;const pending=new Map();let loaded;
+ socket.onmessage=e=>{
+ const msg=JSON.parse(e.data);
+ if(msg.id){const p=pending.get(msg.id);pending.delete(msg.id);msg.error?p.reject(msg.error):p.resolve(msg.result);}
+ if(msg.method==='Page.loadEventFired'&&loaded){loaded();loaded=undefined;}
+ };
+ const call=(method,params={})=>new Promise((resolve,reject)=>{const id=++sequence;pending.set(id,{resolve,reject});socket.send(JSON.stringify({id,method,params}));});
+ await call('Page.enable');
+ const load=new Promise(r=>loaded=r);
+ await call('Page.navigate',{url:'file:///home/kim/.codex/tasks/hex-10358/scalar-review-render/tree-review-html/html-single/index.html'});
+ await load;
+ const evaluate=async expression=>{const r=await call('Runtime.evaluate',{expression,returnByValue:true});if(r.exceptionDetails)throw new Error(JSON.stringify(r.exceptionDetails));return r.result.value;};
+ const metadata=[]; const sectionMetadata=[];
+ for(const [label,width] of [['desktop',1440],['narrow',390]]) {
+ await call('Emulation.setDeviceMetricsOverride',{width,height:1000,deviceScaleFactor:1,mobile:false});
+ for(const [kind,phrase] of [['introduction','Tree replay uses its public leaf and split equations'],['example','Tree replay uses its public leaf and split equations'],['budget','The second reader selects its diagnostic branch']] ) {
+ const exact=await evaluate(`(() => {const p=Array.from(document.querySelectorAll('p')).find(e=>e.textContent.replace(/\\s+/g,' ').includes(${JSON.stringify(phrase)}));if(!p)throw new Error('missing paragraph');const target=${JSON.stringify(kind)}==='example'?p.nextElementSibling:p;if(${JSON.stringify(kind)}==='example'&&!target.matches('.hl.lean.block, pre, div:has(code)'))throw new Error('target is not a Lean code block');target.scrollIntoView({block:${JSON.stringify('center')}});return {text:p.textContent,viewport:innerWidth,scrollY,paragraphWidth:p.getBoundingClientRect().width,scrollWidth:p.scrollWidth,targetTag:target.tagName,targetWidth:target.getBoundingClientRect().width,targetScrollWidth:target.scrollWidth,descendantOverflow:Math.max(0,...[target,...target.querySelectorAll('*')].map(e=>e.scrollWidth-e.clientWidth)),overflowElements:[target,...target.querySelectorAll('*')].filter(e=>e.scrollWidth-e.clientWidth>1).map(e=>({tag:e.tagName,classes:e.className,width:e.clientWidth,scroll:e.scrollWidth,text:e.textContent.slice(0,100)})).slice(0,8)};})()`);
+ if(!exact)throw new Error('missing visual target '+kind);
+ await evaluate('new Promise(resolve=>requestAnimationFrame(()=>requestAnimationFrame(resolve)))');
+ const shot=await call('Page.captureScreenshot',{format:'png'});
+ fs.writeFileSync(root+'/'+'tree-quotation-'+label+'-'+kind+'.png',Buffer.from(shot.data,'base64'));
+ metadata.push({label,kind,...exact});
+ }
+ sectionMetadata.push(await evaluate(`(() => {
+ const headings=Array.from(document.querySelectorAll('h1,h2,h3,h4,h5,h6'));
+ const heading=headings.find(e=>e.textContent.includes('Quoting a supplied root replay'));
+ if(!heading)throw new Error('missing quotation heading');
+ const following=headings.find(e=>e!==heading && Number(e.tagName[1])<=Number(heading.tagName[1]) && (heading.compareDocumentPosition(e)&4));
+ if(!following)throw new Error('missing following section');
+ const targets=Array.from(document.querySelectorAll('p,.hl.lean.block')).filter(e=>(heading.compareDocumentPosition(e)&4) && (e.compareDocumentPosition(following)&4));
+ if(targets.length<8)throw new Error('incomplete quotation section');
+ return {label:${JSON.stringify(label)},width:innerWidth,targets:targets.map(e=>({tag:e.tagName,text:e.textContent.slice(0,160),overflow:Math.max(0,...[e,...e.querySelectorAll('*')].map(n=>n.scrollWidth-n.clientWidth))}))};
+ })()`));
+ }
+ fs.writeFileSync(root+'/tree-quotation-section-overflow.json',JSON.stringify(sectionMetadata,null,2));
+ fs.writeFileSync(root+'/tree-quotation-inspection.json',JSON.stringify(metadata,null,2));
+ if(metadata.some(e=>e.targetScrollWidth>e.targetWidth+1 || e.descendantOverflow>1)) throw new Error('Changed content overflows; retained captures and metrics identify the affected block.');
+ process.stdout.write('Saved quotient quotation desktop/narrow screenshots\n');
+} finally {if(socket)socket.close();chrome.kill('SIGTERM');}
diff --git a/reports/data/hexrcf-tree-quotation/captures/inspection.json b/reports/data/hexrcf-tree-quotation/captures/inspection.json
new file mode 100644
index 0000000000..91e1e2be4e
--- /dev/null
+++ b/reports/data/hexrcf-tree-quotation/captures/inspection.json
@@ -0,0 +1,86 @@
+[
+ {
+ "label": "desktop",
+ "kind": "introduction",
+ "text": "\n Tree replay uses its public leaf and split equations before opening the local\nnode checks. Keeping that boundary explicit avoids kernel conversion through\nan entire replay merely to compare two Boolean expressions. The checked\nreaders retain different values for a valid split and its swapped children:",
+ "viewport": 1440,
+ "scrollY": 280979,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "P",
+ "targetWidth": 752,
+ "targetScrollWidth": 752,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "desktop",
+ "kind": "example",
+ "text": "\n Tree replay uses its public leaf and split equations before opening the local\nnode checks. Keeping that boundary explicit avoids kernel conversion through\nan entire replay merely to compare two Boolean expressions. The checked\nreaders retain different values for a valid split and its swapped children:",
+ "viewport": 1440,
+ "scrollY": 281146,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "CODE",
+ "targetWidth": 740,
+ "targetScrollWidth": 740,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "desktop",
+ "kind": "budget",
+ "text": "\n The second reader selects its diagnostic branch; it does not accept the\nchanged certificate. Readers returning an error abort quotation and restore\ncaller state. The controls also check exact and one-node-below budgets.\nThese reader equations still need source binding and real interpretation\nbefore they can prove a real goal.",
+ "viewport": 1440,
+ "scrollY": 281313,
+ "paragraphWidth": 752,
+ "scrollWidth": 752,
+ "targetTag": "P",
+ "targetWidth": 752,
+ "targetScrollWidth": 752,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "introduction",
+ "text": "\n Tree replay uses its public leaf and split equations before opening the local\nnode checks. Keeping that boundary explicit avoids kernel conversion through\nan entire replay merely to compare two Boolean expressions. The checked\nreaders retain different values for a valid split and its swapped children:",
+ "viewport": 390,
+ "scrollY": 452028,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "P",
+ "targetWidth": 343,
+ "targetScrollWidth": 343,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "example",
+ "text": "\n Tree replay uses its public leaf and split equations before opening the local\nnode checks. Keeping that boundary explicit avoids kernel conversion through\nan entire replay merely to compare two Boolean expressions. The checked\nreaders retain different values for a valid split and its swapped children:",
+ "viewport": 390,
+ "scrollY": 452242,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "CODE",
+ "targetWidth": 331,
+ "targetScrollWidth": 331,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ },
+ {
+ "label": "narrow",
+ "kind": "budget",
+ "text": "\n The second reader selects its diagnostic branch; it does not accept the\nchanged certificate. Readers returning an error abort quotation and restore\ncaller state. The controls also check exact and one-node-below budgets.\nThese reader equations still need source binding and real interpretation\nbefore they can prove a real goal.",
+ "viewport": 390,
+ "scrollY": 452467,
+ "paragraphWidth": 343,
+ "scrollWidth": 343,
+ "targetTag": "P",
+ "targetWidth": 343,
+ "targetScrollWidth": 343,
+ "descendantOverflow": 0,
+ "overflowElements": []
+ }
+]
\ No newline at end of file
diff --git a/reports/data/hexrcf-tree-quotation/captures/section-overflow.json b/reports/data/hexrcf-tree-quotation/captures/section-overflow.json
new file mode 100644
index 0000000000..84f55febbe
--- /dev/null
+++ b/reports/data/hexrcf-tree-quotation/captures/section-overflow.json
@@ -0,0 +1,644 @@
+[
+ {
+ "label": "desktop",
+ "width": 1440,
+ "targets": [
+ {
+ "tag": "P",
+ "text": "\n RootQuote.quote accepts a Lean\nexpression for an Except ε α replay reader, including structured errors. It returns the reconstructed\ndata and",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A scalar decoder may propose an equality for the exact demanded decode. The\nhelper checks its type, dependencies and kernel proof before usin",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For example, this helper continues a request's existing budget and returns the\nupdated usage together with the checked equation:",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSuppliedRoot\n (reader : Expr)\n (scalar : RootQuote.Decoder",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Quotation follows the representative of a closed quotient when selecting\nreducibility boundaries. This lets a formula polynomial stored in a ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF in\nexample :\n QuotientQuote.reader = some 7 :=\n QuotientQuotePublic.accepted\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Its exact 92-node budget succeeds, one node less exhausts, and a wrong term\ncount rejects. The controls check caller-state restoration; a fre",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Tree replay uses its public leaf and split equations before opening the local\nnode checks. Keeping that boundary explicit avoids kernel conve",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF in\nexample :\n TreeQuote.splitTrue.toOption =\n some 31 :=\n TreeQuotePublic.split_true\n\nopen Hex.RCF in\nexample :\n TreeQuote.splitFalse.t",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The second reader selects its diagnostic branch; it does not accept the\nchanged certificate. Readers returning an error abort quotation and r",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a rational predecessor, RationalQuote.decoder supplies these proposals\nwithout a fixed list of permitted numerators. It recognizes canoni",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteRationalRoot\n (reader registry : Expr)\n (config : Reify.Co",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The registry argument is a Lean expression of type\nHex.RealClosure.BaseContext.Registry. This helper supplies scalar equations;\nit does not r",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The cubic regression reads a\nsupplied replay for X³−3 on the open interval (−8,8). A fresh public consumer\nproves that the accepted descripto",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A reader that rejects its input or replay returns structured invalid-provider\nevidence. Non-readers and unsupported shapes raise terminal exc",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Canonical Element.codec decodes remain protected throughout quotation,\nincluding predecessor decodes with an explicit Element.codec head. Exp",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n All quotation regressions use maxHeartbeats := 12000000. The original root and rational\ncases use maxRecDepth := 8192; scalar, sign-packet, s",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n This API does not register a tactic handler or establish complete root coverage.\nThe acceptance equation alone does not authenticate original",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a coefficient in a selected algebraic extension,\nScalarQuote.quote uses the owner's Element.signCodec with supplied checked\nsign facts, t",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Pass the original, fully applied Element.codec expression, retaining its\nimplicit arguments. Reinferring definitionally equal context aliases",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSuppliedScalar\n (codec facts literal : Expr)\n (predecessor",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The monorepo regression imports HexRCF.ScalarQuoteCases. It decodes the\nnonrational coefficient −2√2 in the existing selected positive √2 con",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.SelectedRootTests in\nopen Hex.RCF.ScalarQuoteTests in\nexample :\n Data.original.value restored =\n -2 * Real.sqrt 2 :=\n restored_value\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The fresh audit rechecks 13 reachable quotation-case theorem bodies, including this value\nidentity, with only the standard three axioms and n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Regressions cover continued/exact/exhausted proof budgets, rollback after the\nstrict stage succeeds, missing or mismatched facts, zero withou",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a polynomial over the same selected extension,\nScalarQuote.quotePolyWith\nquotes the coefficient array through its finite sign reader and ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSuppliedPolynomial\n (reader facts : Expr)\n (predecessor : ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The regression polynomial contains two copies of −2√2. The checked original\nreader restores both positions. Its first coefficient has this or",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.SelectedRootTests in\nopen Hex.RCF.SharedQuoteTests in\nexample :\n Data.original.value\n (restored.coeff 0) =\n -2 * Real.sqrt 2 :=\n valu",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The fresh importing audit pins seven reachable theorem bodies and three data\ndefinitions, their actual owner refinement and supplied sign evi",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RootQuote.runWith supplies the transaction for a sequence of quoteWith\nactions. RootQuote.run supplies it for a reader with DecoderM callback",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n This scalar API does not reconstruct provider or predecessor histories,\nproduce missing signs, or install a general source-goal solver. The s",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n ScalarQuote.decoderWith composes checked scalar decoding through several\nselected-field predecessors. Its lookup receives each exact canonica",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSelectedReader\n (reader registry : Expr)\n (factsFor :\n Expr → Reify.Reify",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The two-level regression checks one visit to its selected context followed by\none visit to its selected predecessor. Its lookup adds 19 sourc",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n An ordinary module consumer also runs the callback factory and exports the\nchecked scalar reader equation. Its sign follows from the owner's ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RecursiveScalarPublic in\nexample : restored.sign = 1 := sign\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A fresh importing audit checks the two-level fixture and this public consumer,\nincluding accepted annotated decodes and a charged decline fol",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n ScalarPacket.quoteWith checks a supplied optional sign-packet reader. Its\nprepared context has a checked equality to the original context; a ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSuppliedSignPacket\n (reader prepared same : Expr)\n (predecessor :\n RootQuote.DecoderM) :=",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The regression quotes the parent descriptor and one packet for the polynomial\n−2X at the selected positive square root of 2. The resulting fa",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RealClosure in\nopen Hex.RCF.SelectedRootTests in\nopen Hex.RCF.SignPacketQuote in\nexample :\n Option.map Data.original.value\n (Except.toOption\n ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Quoting the parent and packet in one request consumes 121,490 proof nodes.\nWith the frozen parent and its equality already available, the pac",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The caller still supplies and authenticates the parent history and packet.\nPredecessor arithmetic retains its supplied implementation; this h",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A separate public-module example quotes a packet for X at the selected real\nroot of X³−3. Its context slots retain closed applications of the",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.PublicSignPacket in\nexample :\n coefficientReal =\n Hex.RCF.RootQuoteTests.realRoot :=\n coefficient_value\n\nopen Hex.RCF.PublicSignPacket in\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a dependent match, quotation moves trailing branch-equality proofs along\nthe checked equation for the match's subject. This uses ordinary",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF in\nexample :\n DependentQuote.continuedFunction =\n some 29 :=\n ProofFunctionPublic.continued\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n During replay-law\nconversion, an explicit checked function boundary is first kept abstract, then instantiated\nwith the actual function and it",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RootHeader.quoteWith\naccepts the complete original RootReplay.readDescriptor application. It quotes\nthat reader, obtains the independently pa",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The public regression constructs a new root and context from that result,\nquotes the sign packet for X with fully numerical graph fields, and",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RootHeaderPacket in\nexample : coefficientReal = realRoot :=\n coefficient_value\n\nopen Hex.RCF.RootHeaderPacket in\nexample : 0 < coefficientReal :=\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The fresh importing audit includes the generated binding, packet reader,\ncoefficient decoding and real-value proofs. It rejects dependencies ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The default quotation rules recognize Signature.codec.decode applied to the\ncanonical encoding of its actual signature argument, using the ex",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.FrozenSignature in\nexample : readFirst.toOption =\n some first :=\n readFirst_checked\n\nopen Hex.RCF.FrozenSignature in\nexample : readSecond.toOpt",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The cubic packet retains frozen numerical node and nested-moment signatures\nfor its rational predecessor. A signature's serialization identit",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RootContext.packWith\nthen assembles an actual native root context from a closed retained parent and\nits checked descriptor. It keeps the exis",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The same decoded coefficient can be interpreted through the owner's ordinary\nreal model of the packed context, retaining its selected value a",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF in\nopen RootContextCases in\nopen RootHeaderPacket in\nexample : model.value coefficient =\n realRoot :=\n value_checked\n\nopen Hex.RCF in\nopen Root",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The packing budget covers context and signature proof construction. Model\nconstruction is checked separately; its cost is not included in tha",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RootPrepare.prepareWith\nprepares the native context of a reconstructed descriptor for subsequent\nquotation. It checks closed inputs and the e",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.RCF.RealCoefficients in\nmeta def prepareRootContext\n (reader clean : Expr)\n (scalar : RootQuote.DecoderM) :\n Reif",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Run this action and subsequent quotation in one RootQuote.runWith request.\nCombine its decoder with the exact predecessor's scalar and signat",
+ "overflow": 0
+ }
+ ]
+ },
+ {
+ "label": "narrow",
+ "width": 390,
+ "targets": [
+ {
+ "tag": "P",
+ "text": "\n RootQuote.quote accepts a Lean\nexpression for an Except ε α replay reader, including structured errors. It returns the reconstructed\ndata and",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A scalar decoder may propose an equality for the exact demanded decode. The\nhelper checks its type, dependencies and kernel proof before usin",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For example, this helper continues a request's existing budget and returns the\nupdated usage together with the checked equation:",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSuppliedRoot\n (reader : Expr)\n (scalar : RootQuote.Decoder",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Quotation follows the representative of a closed quotient when selecting\nreducibility boundaries. This lets a formula polynomial stored in a ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF in\nexample :\n QuotientQuote.reader = some 7 :=\n QuotientQuotePublic.accepted\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Its exact 92-node budget succeeds, one node less exhausts, and a wrong term\ncount rejects. The controls check caller-state restoration; a fre",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Tree replay uses its public leaf and split equations before opening the local\nnode checks. Keeping that boundary explicit avoids kernel conve",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF in\nexample :\n TreeQuote.splitTrue.toOption =\n some 31 :=\n TreeQuotePublic.split_true\n\nopen Hex.RCF in\nexample :\n TreeQuote.splitFalse.t",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The second reader selects its diagnostic branch; it does not accept the\nchanged certificate. Readers returning an error abort quotation and r",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a rational predecessor, RationalQuote.decoder supplies these proposals\nwithout a fixed list of permitted numerators. It recognizes canoni",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteRationalRoot\n (reader registry : Expr)\n (config : Reify.Co",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The registry argument is a Lean expression of type\nHex.RealClosure.BaseContext.Registry. This helper supplies scalar equations;\nit does not r",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The cubic regression reads a\nsupplied replay for X³−3 on the open interval (−8,8). A fresh public consumer\nproves that the accepted descripto",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A reader that rejects its input or replay returns structured invalid-provider\nevidence. Non-readers and unsupported shapes raise terminal exc",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Canonical Element.codec decodes remain protected throughout quotation,\nincluding predecessor decodes with an explicit Element.codec head. Exp",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n All quotation regressions use maxHeartbeats := 12000000. The original root and rational\ncases use maxRecDepth := 8192; scalar, sign-packet, s",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n This API does not register a tactic handler or establish complete root coverage.\nThe acceptance equation alone does not authenticate original",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a coefficient in a selected algebraic extension,\nScalarQuote.quote uses the owner's Element.signCodec with supplied checked\nsign facts, t",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Pass the original, fully applied Element.codec expression, retaining its\nimplicit arguments. Reinferring definitionally equal context aliases",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSuppliedScalar\n (codec facts literal : Expr)\n (predecessor",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The monorepo regression imports HexRCF.ScalarQuoteCases. It decodes the\nnonrational coefficient −2√2 in the existing selected positive √2 con",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.SelectedRootTests in\nopen Hex.RCF.ScalarQuoteTests in\nexample :\n Data.original.value restored =\n -2 * Real.sqrt 2 :=\n restored_value\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The fresh audit rechecks 13 reachable quotation-case theorem bodies, including this value\nidentity, with only the standard three axioms and n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Regressions cover continued/exact/exhausted proof budgets, rollback after the\nstrict stage succeeds, missing or mismatched facts, zero withou",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a polynomial over the same selected extension,\nScalarQuote.quotePolyWith\nquotes the coefficient array through its finite sign reader and ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.Reflect in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSuppliedPolynomial\n (reader facts : Expr)\n (predecessor : ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The regression polynomial contains two copies of −2√2. The checked original\nreader restores both positions. Its first coefficient has this or",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.SelectedRootTests in\nopen Hex.RCF.SharedQuoteTests in\nexample :\n Data.original.value\n (restored.coeff 0) =\n -2 * Real.sqrt 2 :=\n valu",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The fresh importing audit pins seven reachable theorem bodies and three data\ndefinitions, their actual owner refinement and supplied sign evi",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RootQuote.runWith supplies the transaction for a sequence of quoteWith\nactions. RootQuote.run supplies it for a reader with DecoderM callback",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n This scalar API does not reconstruct provider or predecessor histories,\nproduce missing signs, or install a general source-goal solver. The s",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n ScalarQuote.decoderWith composes checked scalar decoding through several\nselected-field predecessors. Its lookup receives each exact canonica",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSelectedReader\n (reader registry : Expr)\n (factsFor :\n Expr → Reify.Reify",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The two-level regression checks one visit to its selected context followed by\none visit to its selected predecessor. Its lookup adds 19 sourc",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n An ordinary module consumer also runs the callback factory and exports the\nchecked scalar reader equation. Its sign follows from the owner's ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RecursiveScalarPublic in\nexample : restored.sign = 1 := sign\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A fresh importing audit checks the two-level fixture and this public consumer,\nincluding accepted annotated decodes and a charged decline fol",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n ScalarPacket.quoteWith checks a supplied optional sign-packet reader. Its\nprepared context has a checked equality to the original context; a ",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean in\nopen Hex.RCF.RealCoefficients in\nmeta def quoteSuppliedSignPacket\n (reader prepared same : Expr)\n (predecessor :\n RootQuote.DecoderM) :=",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The regression quotes the parent descriptor and one packet for the polynomial\n−2X at the selected positive square root of 2. The resulting fa",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RealClosure in\nopen Hex.RCF.SelectedRootTests in\nopen Hex.RCF.SignPacketQuote in\nexample :\n Option.map Data.original.value\n (Except.toOption\n ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Quoting the parent and packet in one request consumes 121,490 proof nodes.\nWith the frozen parent and its equality already available, the pac",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The caller still supplies and authenticates the parent history and packet.\nPredecessor arithmetic retains its supplied implementation; this h",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n A separate public-module example quotes a packet for X at the selected real\nroot of X³−3. Its context slots retain closed applications of the",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.PublicSignPacket in\nexample :\n coefficientReal =\n Hex.RCF.RootQuoteTests.realRoot :=\n coefficient_value\n\nopen Hex.RCF.PublicSignPacket in\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n For a dependent match, quotation moves trailing branch-equality proofs along\nthe checked equation for the match's subject. This uses ordinary",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF in\nexample :\n DependentQuote.continuedFunction =\n some 29 :=\n ProofFunctionPublic.continued\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n During replay-law\nconversion, an explicit checked function boundary is first kept abstract, then instantiated\nwith the actual function and it",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RootHeader.quoteWith\naccepts the complete original RootReplay.readDescriptor application. It quotes\nthat reader, obtains the independently pa",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The public regression constructs a new root and context from that result,\nquotes the sign packet for X with fully numerical graph fields, and",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.RootHeaderPacket in\nexample : coefficientReal = realRoot :=\n coefficient_value\n\nopen Hex.RCF.RootHeaderPacket in\nexample : 0 < coefficientReal :=\n",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The fresh importing audit includes the generated binding, packet reader,\ncoefficient decoding and real-value proofs. It rejects dependencies ",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The default quotation rules recognize Signature.codec.decode applied to the\ncanonical encoding of its actual signature argument, using the ex",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF.FrozenSignature in\nexample : readFirst.toOption =\n some first :=\n readFirst_checked\n\nopen Hex.RCF.FrozenSignature in\nexample : readSecond.toOpt",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The cubic packet retains frozen numerical node and nested-moment signatures\nfor its rational predecessor. A signature's serialization identit",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RootContext.packWith\nthen assembles an actual native root context from a closed retained parent and\nits checked descriptor. It keeps the exis",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The same decoded coefficient can be interpreted through the owner's ordinary\nreal model of the packed context, retaining its selected value a",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Hex.RCF in\nopen RootContextCases in\nopen RootHeaderPacket in\nexample : model.value coefficient =\n realRoot :=\n value_checked\n\nopen Hex.RCF in\nopen Root",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n The packing budget covers context and signature proof construction. Model\nconstruction is checked separately; its cost is not included in tha",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n RootPrepare.prepareWith\nprepares the native context of a reconstructed descriptor for subsequent\nquotation. It checks closed inputs and the e",
+ "overflow": 0
+ },
+ {
+ "tag": "CODE",
+ "text": "open Lean Hex.RealFormula in\nopen Hex.RCF.RealCoefficients in\nmeta def prepareRootContext\n (reader clean : Expr)\n (scalar : RootQuote.DecoderM) :\n Reif",
+ "overflow": 0
+ },
+ {
+ "tag": "P",
+ "text": "\n Run this action and subsequent quotation in one RootQuote.runWith request.\nCombine its decoder with the exact predecessor's scalar and signat",
+ "overflow": 0
+ }
+ ]
+ }
+]
\ No newline at end of file
diff --git a/reports/data/hexrcf-tree-quotation/captures/tree-quotation-desktop-budget.png b/reports/data/hexrcf-tree-quotation/captures/tree-quotation-desktop-budget.png
new file mode 100644
index 0000000000..5c3817c3df
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/captures/tree-quotation-desktop-budget.png differ
diff --git a/reports/data/hexrcf-tree-quotation/captures/tree-quotation-desktop-example.png b/reports/data/hexrcf-tree-quotation/captures/tree-quotation-desktop-example.png
new file mode 100644
index 0000000000..7754579618
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/captures/tree-quotation-desktop-example.png differ
diff --git a/reports/data/hexrcf-tree-quotation/captures/tree-quotation-desktop-introduction.png b/reports/data/hexrcf-tree-quotation/captures/tree-quotation-desktop-introduction.png
new file mode 100644
index 0000000000..44e3c08ef8
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/captures/tree-quotation-desktop-introduction.png differ
diff --git a/reports/data/hexrcf-tree-quotation/captures/tree-quotation-narrow-budget.png b/reports/data/hexrcf-tree-quotation/captures/tree-quotation-narrow-budget.png
new file mode 100644
index 0000000000..fe35d932e8
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/captures/tree-quotation-narrow-budget.png differ
diff --git a/reports/data/hexrcf-tree-quotation/captures/tree-quotation-narrow-example.png b/reports/data/hexrcf-tree-quotation/captures/tree-quotation-narrow-example.png
new file mode 100644
index 0000000000..bf01c7c074
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/captures/tree-quotation-narrow-example.png differ
diff --git a/reports/data/hexrcf-tree-quotation/captures/tree-quotation-narrow-introduction.png b/reports/data/hexrcf-tree-quotation/captures/tree-quotation-narrow-introduction.png
new file mode 100644
index 0000000000..e26eeaa42c
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/captures/tree-quotation-narrow-introduction.png differ
diff --git a/reports/data/hexrcf-tree-quotation/captures/visual-review.json b/reports/data/hexrcf-tree-quotation/captures/visual-review.json
new file mode 100644
index 0000000000..f326a53071
--- /dev/null
+++ b/reports/data/hexrcf-tree-quotation/captures/visual-review.json
@@ -0,0 +1,47 @@
+{
+ "captures": [
+ {
+ "path": "tree-quotation-desktop-introduction.png",
+ "sha256": "e14eddd5d867fad89d02e5446a2449d5b6dc590ed6cce18714edffb723b71e72",
+ "width": 1440,
+ "viewed": true,
+ "local_overflow": 0
+ },
+ {
+ "path": "tree-quotation-desktop-example.png",
+ "sha256": "77055808af48f0468545170d88727da1fc800e433bea0f1243a1ee620d4eb5c4",
+ "width": 1440,
+ "viewed": true,
+ "local_overflow": 0
+ },
+ {
+ "path": "tree-quotation-desktop-budget.png",
+ "sha256": "31e6733d875a80930267e620e737a79a76c07a52a6ed87409958078155ac74f1",
+ "width": 1440,
+ "viewed": true,
+ "local_overflow": 0
+ },
+ {
+ "path": "tree-quotation-narrow-introduction.png",
+ "sha256": "f1b87fd02a29468730ab8349c7e19cb9bf8dbb037e01f30b8701dea4e0319cd7",
+ "width": 390,
+ "viewed": true,
+ "local_overflow": 0
+ },
+ {
+ "path": "tree-quotation-narrow-example.png",
+ "sha256": "91ab3919fdacfd294b15862ed2ee189799a339604cdaef7f01f08bec0eaceec3",
+ "width": 390,
+ "viewed": true,
+ "local_overflow": 0
+ },
+ {
+ "path": "tree-quotation-narrow-budget.png",
+ "sha256": "47f26e3a6539e5a72d53eddf242352895c9a7519a9e4d17fa62b675a6e654893",
+ "width": 390,
+ "viewed": true,
+ "local_overflow": 0
+ }
+ ],
+ "scope": "All six actual final desktop1440/narrow390 images visually inspected. New paragraphs/code fit; existing page/section overflow recorded separately. Initial105px narrow-code overflow and its exact source/captures retained in tree-quotation-overflow-attempt-1."
+}
diff --git a/reports/data/hexrcf-tree-quotation/context.json b/reports/data/hexrcf-tree-quotation/context.json
new file mode 100644
index 0000000000..faf8a44890
--- /dev/null
+++ b/reports/data/hexrcf-tree-quotation/context.json
@@ -0,0 +1,804 @@
+{
+ "source_commit": "e1c37242b659592b1a2c16c836cd844194c1f642",
+ "source_tree": "43afb9107021134970ad237db82b2d5993a5809b",
+ "baseline_commit": "4da7dc2e6fbf34509aa1a532cc2ddf1726e2caf4",
+ "sources": {
+ ".github/workflows/ci.yml": "bf3ef0c4e00ef2397ef5857a629a391e24252b864c093198b08775b6977c563d",
+ "AGENTS.md": "4e0a48cf49a61e56ed84c8b28e232b5bfad29f2da20571377692be6e1c316f30",
+ "HexManual/Chapters/HexRCF/RootQuote.lean": "96a78b483043c7c4a5278d30bd03c26f54e3ea7bda2ba732a6c7076a64d1df9b",
+ "HexManual/Chapters/HexRCF/RootTableQuote.lean": "78d1be637a32593b03f000ab153c7fdf05a1b5332ea3efb9c186aacfd68f0ae5",
+ "HexRCF/README.md": "3830d758a8a75d59df1a6dd01f59204a86858b5eda3e43a78f9e9e9c2d769a8a",
+ "HexRCF/SPEC/hex-rcf.md": "df8c6bb2435a2794faa36bc77e41f4c936f06ae149f29c3e68fe0d79f4ebfafb",
+ "HexRCF/Tactic.lean": "09d895ba1dd2c1af0bfffca197494f2614380ded268ff13e4e0b02fea22b9224",
+ "HexRealClosure/Algebraic.lean": "d05f9fb72fe9544ae9ddc685dff17080f876aa4c99c70e8992d511e011f6a454",
+ "HexRealClosure/ContextData.lean": "ca29790752b8d25f10d03a9877690a5ff40f1fdf6815c96fe9693941206e662c",
+ "HexRealClosure/SignCodec.lean": "7126323c97b77204386795a0f252f1babfd0ed7f3dba7ee3927a99b9d5c1852a",
+ "HexRealClosure/SignFacts.lean": "9c22837e93e6f50cc96310163e352ac608fbcfbd6275edab33751da2fd84f47c",
+ "HexRealClosure/SignatureCodecTests.lean": "ffc72777523ac0e92b563481804bdfb581fb0173fe7a021009737d57959b4462",
+ "HexRealClosure/TowerContext.lean": "6ef8b87b2d81cb177505a4bbc88befa078b20578cedd49e836d850753c203ee3",
+ "PLAN.md": "e94a60324486913b4a04650edd617c4ff8bef469dc7fd311adea8407c6662ea0",
+ "SPEC/real-closure-execution.md": "bc0948ad7de6969baaed89c0b3052cb0d21d64d634f8a336f9a7dde446b057f5",
+ "adapters/HexRCF/RealCoefficients.lean": "f16eff0302ef0296fc034f59619d232be1921c2f06247dca69db4c53c06c68de",
+ "adapters/HexRCF/RealCoefficients/RationalQuote.lean": "675e2ba065b696f257adefc07fe30ddb0190f321d86005444579ea5a0744bdf5",
+ "adapters/HexRCF/RealCoefficients/RealModel.lean": "712b4fd3edff8eaa6f93e501da5debf04529d1ea8c11a18389820f866d179c43",
+ "adapters/HexRCF/RealCoefficients/Reify.lean": "ea8474b9e253f93a1583064ca99ec0bf376dadf5457fd60b57e9e18460cf449c",
+ "adapters/HexRCF/RealCoefficients/RootContext.lean": "792176eab63e5e62b759a10893569946ef6d019566b8116c85237b3e16fcdb86",
+ "adapters/HexRCF/RealCoefficients/RootHeader.lean": "681f2a964bc30f65a92a0fb1a58b4d4013eb396df37ca813962702065fb46261",
+ "adapters/HexRCF/RealCoefficients/RootPrepare.lean": "de72a8e3ac4adb13365801476467bf691e630d0952b018ccecd88846c3bdb025",
+ "adapters/HexRCF/RealCoefficients/RootQuote.lean": "616c9e425a10aef77b3f18ca7f7c719babca3517d36600c65d86db4b81c166ef",
+ "adapters/HexRCF/RealCoefficients/ScalarPacket.lean": "9ae62bea85dab43ec01329defa9f788af4843e74b24f40f6c6f1b28adaadc6bf",
+ "adapters/HexRCF/RealCoefficients/ScalarQuote.lean": "fee2617a998f29d05c8959b484060ac1d719359c6d851a8ff6699fa9cb370acc",
+ "adapters/HexRCF/RealCoefficients/SignatureQuote.lean": "c3bb71b52c2a544b902bc256b3a162e1c3c4e7f94ae6b21808914e67109710eb",
+ "adapters/HexRealClosureTheory/Algebraic.lean": "2495153acbe4e468521913a2f5d6569831cd05f5ee48d5ddb26fc31a43438c7e",
+ "adapters/HexRealClosureTheory/SignFacts.lean": "c2b8cf96de0cccc2c0c3cbe83f0afd7c40ab9736b75f377ec5bfedc0907f34e3",
+ "adapters/HexRealClosureTheory/TowerModel.lean": "70d0e57e8ecc78eb9b7675d875157462d27cf9494d49d72bba019eaa6dd1d788",
+ "conformance/HexRCF/DependentQuote.lean": "0df154544a17857334480e7c577ecbcf1afe04165fa2da1a5a6407bf41e85518",
+ "conformance/HexRCF/DependentQuoteData.lean": "ed254475e78fa6edb27d4e55222a598b07b7357154ea0495d6195f2f1d39ee46",
+ "conformance/HexRCF/DependentQuoteProofs.lean": "5875aa9748f50340668e58aea97b196d3353313352fb8c819ae5ee3542556980",
+ "conformance/HexRCF/DependentScalarProofs.lean": "9e8da19d71e1496babd31ecb13430d74abb5f383738d47cbc1bc066b27902cfe",
+ "conformance/HexRCF/DependentScalarQuote.lean": "e20dd7346c337dd17126c394965f268e568706730f475844d7c0907051224933",
+ "conformance/HexRCF/FrozenSignatureConformance.lean": "8e7d432aecb87fb89bb188e4c579e86fb5c3348c5430f1e2b1a00f1f820a940e",
+ "conformance/HexRCF/FrozenSignatureProofs.lean": "55de6da9b0b3dc2d1e384d6c838d13294287c44060afb8e70aa2a0c8e01a81cb",
+ "conformance/HexRCF/ProofFunctionPublic.lean": "f928c9f0dd0a704d34a516b6282cfa6a7a4eb6c112d49689c450647a44370a6b",
+ "conformance/HexRCF/PublicSignPacket.lean": "c32d73c5634376907b965e1ea6cf69352fdda1f1945ce2f34a378cc217778102",
+ "conformance/HexRCF/PublicSignPacketControls.lean": "b4f98bd8ef190a361dd7752d4d5ece0cfbd862ff4face5a06dfabecf87096028",
+ "conformance/HexRCF/PublicSignPacketProofs.lean": "442f6d3e04a36db25611f0396103a1eee5ee411c40e8f3cc93df1acf7898bbbb",
+ "conformance/HexRCF/PublicSignPacketValues.lean": "72705dba30f04f986188903fb49b983c6f0a664895116fca8bd8b6b46b6517e5",
+ "conformance/HexRCF/QuotientQuote.lean": "97b2cbc9abdb46db33a9a91328f331edf8dea055cc244489158121cde8dc1903",
+ "conformance/HexRCF/QuotientQuoteData.lean": "ec26777d655a7898d7f7922fcea8f426a3f8c77a53000b69b6fe1755a0348870",
+ "conformance/HexRCF/QuotientQuoteProofs.lean": "f1d95accf6caed1c7354408b3a1a0b29493a526e82036390e39102ebe80c6752",
+ "conformance/HexRCF/QuotientQuotePublic.lean": "a3bd9a082df14a0ac93ba3798e13c6ebbf9dff98d7613264713aa281a5a18bea",
+ "conformance/HexRCF/RationalQuoteConformance.lean": "f03844d4a44a5c61b702ed0b1697619da9b20f4ac42122b9d1a6d3fa4a2de9ac",
+ "conformance/HexRCF/RootContextConformance.lean": "0c52084609ec3de8afd51330a7d2cc97f7bae1d8b2bbc421138783940fc7db37",
+ "conformance/HexRCF/RootContextProofs.lean": "b4c2e3ce686ce8bc60bfdafe2be2f566c6de46758f4827d307f3d5592b59d2e9",
+ "conformance/HexRCF/RootHeaderBudget.lean": "db30b6b7781fabd238ea2c934477e5ae281cc6cd905f11848ce46eb66ef45fe0",
+ "conformance/HexRCF/RootHeaderControls.lean": "aca063af3bfe475166aef92193f162c25a0e53eea094087cf334406a3d513157",
+ "conformance/HexRCF/RootHeaderPacket.lean": "e924a3b799cfff2573e2861e3533be94147a6505aa11837a99dc8985ba0ae7dc",
+ "conformance/HexRCF/RootHeaderProofs.lean": "e6630f0464fd0096b9af74b4640d2abc514a62c0b0fc706b4a2e74c9602eeb8c",
+ "conformance/HexRCF/RootHeaderValues.lean": "de9a8fc7c2e9371cbd3324eb700180411e49865dbc6535a74d2c882f74e38e13",
+ "conformance/HexRCF/RootPrepareControls.lean": "5a6e3731eac813867b34e9f902a2f7d5f090b2fae6af9c2b859a3be76b68ae85",
+ "conformance/HexRCF/RootPreparePacket.lean": "e33b5b2921ec13559eb4d6b1d8a3f3cc5ccfd4dd7deb66753806c3f3b39e7a8b",
+ "conformance/HexRCF/RootPrepareProofs.lean": "4a5bc6655576a6592fcd5cd801bcfebd425243b1bb6cb39b0bb46d500a3938be",
+ "conformance/HexRCF/RootPreparePublic.lean": "a9e09cbe8d1287b97dde71ad1c6dbe149cfbacb6f81f41a8493ee802416d0805",
+ "conformance/HexRCF/RootQuoteCases.lean": "602d15ef501e969183bffbda7fb3c0f00a174ba5c2dbc35370ee7fce896944dd",
+ "conformance/HexRCF/RootQuoteConformance.lean": "f6a652a243ba62cffc671d1365c6ab47b6618179acb172019ec5609ea0324d3c",
+ "conformance/HexRCF/RootQuoteData.lean": "faa259d129d5c65a063c7143e45d5d9d19573ed49862aa5ecb3978ff389cb514",
+ "conformance/HexRCF/RootQuoteSource.lean": "aca1654efc1a452aca8ef573bb8ea3a435a4e1e18a4dca854d9bcc8e350d511d",
+ "conformance/HexRCF/RootTableQuote/Conformance.lean": "ec5bd136df58cc24a40ca989e3d33e55923082aed7591b234f55c70c013c74ad",
+ "conformance/HexRCF/SelectedRoot/KernelCheck.lean": "12e7e2e3f4667a76dc89c4b36796bff177f3c187b81adc5eb5e049ff1ce6669d",
+ "conformance/HexRCF/SignPacketProofs.lean": "3980cad31637f5798b2c351e1efc2a29b946de1d90e06fb11acd85e2a5c46321",
+ "conformance/HexRCF/SignPacketQuote.lean": "8c74638bfac157b9ef9f196d6f704cde349584f283eb304f10dda2d3982c8e3c",
+ "conformance/HexRCF/SignatureQuoteConformance.lean": "26f16c37cb9e0d5c09a082787f4a66673437adbf998023fd5e9625db16ff5d3f",
+ "conformance/HexRCF/TreeQuote.lean": "18d3af7835b68509f8f973df71827a0e926e8e2f921b34038c95e9b0acbda1eb",
+ "conformance/HexRCF/TreeQuoteData.lean": "c595c2278d2997483b755aa585da874c27eed40e4e1a8106d7f553e4f574776b",
+ "conformance/HexRCF/TreeQuoteProofs.lean": "f9a40248237480f8972df62dff548ef0599205b76014e070866e72586f161933",
+ "conformance/HexRCF/TreeQuotePublic.lean": "adc6dc6871208f31970cf5ae0c2472fd325a72e1df8114a6e8178ef8b2c71570",
+ "experiments/KernelReplay/AxiomClosure.lean": "f49377265f05f52b633b10a59255a03731e08d022cc54763de9851c5b5325034",
+ "lake-manifest.json": "fd2dc4df30cd44e4d30568489d616e7bcc8a78747500139134be56f35ae746a4",
+ "lakefile.lean": "7e3f013099925bf9f2f1bdeab4e9396426cae0d197ba57fe11f8d17c4d68bfed",
+ "lean-toolchain": "bc84812c94489d1e3e191baa1dc10d5eb684382d7fe9d2a5ab085e72c1c67e47",
+ "libraries.yml": "14e3dd1c01bb0c369b2216e2733378d61172040fd9f69dd0354d4e1267d9c5c1",
+ "reports/hexrcf-packet-quotation.md": "2b0f0b40a29fe3232ee588ec06b3bdfefb2facced7327049c8ad1cd70b6ca35e",
+ "reports/hexrcf-proof-functions.md": "ff410e9c4714476913d5651dd04d61a7ec55289b6143a6b1d29ccda331cd8989",
+ "reports/hexrcf-public-packet-quotation.md": "019ff6fe31e6699ec10e126a1d477a6a4b4f78b67893b5ce447cfe2aa637b316",
+ "reports/hexrcf-root-context.md": "fa967a71370454f5d1fcdb757ebf6ab6fa669538f253c3cc6cb6b6f826361c8a",
+ "reports/hexrcf-root-header-quotation.md": "62ecb8f293a9144b8a8a0bdc4910c473bd87063162bb656b94f1be53eb2e4617",
+ "reports/hexrcf-root-preparation.md": "23b6fc84e7b54447e224a166228f275f9ad239c90b2c6c8e4ea38d2f93e55cef",
+ "reports/hexrcf-sign-packet-quotation.md": "64adc6438ad1593d1018e14f2757cb6193614db26141af9c0c76d359084d9d99"
+ },
+ "unchanged_guards": [
+ "conformance/HexRCF/SelectedRoot/KernelCheck.lean",
+ "experiments/KernelReplay/AxiomClosure.lean",
+ "AGENTS.md",
+ "PLAN.md",
+ ".github/workflows/ci.yml"
+ ],
+ "artifacts": [
+ {
+ "path": "validation/tree-quote-integration-4.log.gz",
+ "bytes": 24348,
+ "sha256": "ff1ddb7c103d6f66c8db7d041af247ae1e2b8e6b37b597d6de6fe18e44c56702",
+ "uncompressed_sha256": "a7626451b73da5dc2bebeb470d64d4f6c8c1e90f45e59796c77c4961b4b711b5"
+ },
+ {
+ "path": "validation/tree-quote-public-1.log.gz",
+ "bytes": 5381,
+ "sha256": "7199522e0c9fe9829475d26bd3d8900adf6eb163eb30fdc6877df4745588feae",
+ "uncompressed_sha256": "5c7ecf6ec1f7c318493a76ca94f812e870f463ab4b1095e6ee4cd3560640adbd"
+ },
+ {
+ "path": "validation/tree-quote-audit-1.log.gz",
+ "bytes": 7087,
+ "sha256": "d2e83ae6fd384d8737ff2abb20e0f37a7f410fb8deaa6d39552ef93e63ed3750",
+ "uncompressed_sha256": "81dd0d37affdead616c4fd4138affaa81f7c97cad916e3c9914438da1685a2ff"
+ },
+ {
+ "path": "validation/tree-quotation-render-2.log.gz",
+ "bytes": 15732,
+ "sha256": "049ecddf856099c756f190af54390a5de53a5ce9d46a82489305893e54501c42",
+ "uncompressed_sha256": "341a02b4328e3ed1b3acd69e13b244d1a165ec649e05a90b9d601e15ba182811"
+ },
+ {
+ "path": "validation/tree-quotation-browser-2.log.gz",
+ "bytes": 243,
+ "sha256": "6d8950d03b3372ecf8978bc93b893db4b8785b11c404c692fcc356b457f89e5e",
+ "uncompressed_sha256": "59399add694be0a48da9eb7439d33251f740d24a94c446018d6f6a481c7b45ea"
+ },
+ {
+ "path": "validation/metadata.json",
+ "bytes": 1141,
+ "sha256": "2b87d017fa5e44064144d385c11eb0444415bf4da20ac6a5a70814cc88595f5d"
+ },
+ {
+ "path": "validation/tree-quote-metadata-copyright.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "validation/tree-quote-metadata-lines.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "validation/tree-quote-metadata-dag.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "validation/tree-quote-metadata-admissions.log.gz",
+ "bytes": 100,
+ "sha256": "86c87a2ada5a49d30e4cd149bf8df52d3fb00b84114c38699923e6ac6e77bb5a",
+ "uncompressed_sha256": "8bf794423604b32f2d2d8a505029ff9a7cf277c93c236dccff21af2e2aeaefb1"
+ },
+ {
+ "path": "validation/tree-quote-metadata-diff.log.gz",
+ "bytes": 20,
+ "sha256": "9ceffb7310338057cfe71a4ae1e2c98d2c485d81cdef906532a801f457a38d64",
+ "uncompressed_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ },
+ {
+ "path": "validation/tree-quote-metadata-selected-admissions.log.gz",
+ "bytes": 135,
+ "sha256": "51fa7ddeb00fc208c48db9e7a857d29980f55d08c5ef2d1d3cfad3acb55f1d54",
+ "uncompressed_sha256": "d765b797bff3cb7434c36adf790b7bce7f50b192a65770a0a9a366c97389c957"
+ },
+ {
+ "path": "validation/tree-quote-metadata-relative.log.gz",
+ "bytes": 105,
+ "sha256": "c43d1ba9fa5a6ea3d05919ed8b5f63ae6d92bdbc66b09a9c0e2db03229da84e9",
+ "uncompressed_sha256": "5b6d65aeb6cb570bc5e9b14d70d6222627b455a17e51016ce5d0bf8c9d5cd4c3"
+ },
+ {
+ "path": "validation/tree-quote-metadata.py.gz",
+ "bytes": 1326,
+ "sha256": "1124e89ec6531502a27f89cbed7c40c0a6b262b7ef9607a2a8696ce056019fb5",
+ "uncompressed_sha256": "1a2e5c82c4dd47dfddc4913c721aea553adbab2c9780b025b3e65205d0dc5d9f"
+ },
+ {
+ "path": "validation/tree-quote-integration-targets.txt.gz",
+ "bytes": 248,
+ "sha256": "57862cc8ebb4a27b697371cc5c1db6ea958621a2de2197b148c7e3aefb4ec4c4",
+ "uncompressed_sha256": "0376f09feac4a65896905a1739882ed60c80c7061cc87465497fd8bae4f3249a"
+ },
+ {
+ "path": "validation/tree-memory-policy.txt.gz",
+ "bytes": 267,
+ "sha256": "26930c2de3567485bb10aa2df0654f141446492b371e9237441bd165dd8e49ca",
+ "uncompressed_sha256": "b204e5c37178dcacad422bd89b67c86bc15135246e451effaae7deea7d9155b1"
+ },
+ {
+ "path": "validation/run-bounded.sh",
+ "bytes": 302,
+ "sha256": "63bc5f97337e6b039bb3a9b1ba2a500be96fd1c2a2f73b43dae284aa9b18dda8"
+ },
+ {
+ "path": "validation/collect.py.txt",
+ "bytes": 5846,
+ "sha256": "f33074d6cb7396cb67553784202521896c6f492babec0fc4b624c0b07f985fe7"
+ },
+ {
+ "path": "validation/render.lean.txt",
+ "bytes": 204,
+ "sha256": "5982773bd5d1ddc972e89f36c49ebccb0114bd7bb13aee29c5140397162a3613"
+ },
+ {
+ "path": "captures/browser.mjs",
+ "bytes": 5535,
+ "sha256": "2a272e4ab98b5cfded639a61ef23af037209a7b37c495d016ce9a70f36bc53b2"
+ },
+ {
+ "path": "captures/inspection.json",
+ "bytes": 3812,
+ "sha256": "0da9f0280c0a8344b94f29fb83efaf132924956861e99c160947068994a83924"
+ },
+ {
+ "path": "captures/visual-review.json",
+ "bytes": 1605,
+ "sha256": "c122143680714167f16e06e6f3ce50ef01d59cc711aaee18b48cdd60a21df88e"
+ },
+ {
+ "path": "captures/section-overflow.json",
+ "bytes": 30382,
+ "sha256": "529becb7f4b7679998ce60ade0626af9a1ef73a714f7b6d3803db096b0db6154"
+ },
+ {
+ "path": "captures/tree-quotation-desktop-introduction.png",
+ "bytes": 250089,
+ "sha256": "e14eddd5d867fad89d02e5446a2449d5b6dc590ed6cce18714edffb723b71e72"
+ },
+ {
+ "path": "captures/tree-quotation-desktop-example.png",
+ "bytes": 255205,
+ "sha256": "77055808af48f0468545170d88727da1fc800e433bea0f1243a1ee620d4eb5c4"
+ },
+ {
+ "path": "captures/tree-quotation-desktop-budget.png",
+ "bytes": 252529,
+ "sha256": "31e6733d875a80930267e620e737a79a76c07a52a6ed87409958078155ac74f1"
+ },
+ {
+ "path": "captures/tree-quotation-narrow-introduction.png",
+ "bytes": 89326,
+ "sha256": "f1b87fd02a29468730ab8349c7e19cb9bf8dbb037e01f30b8701dea4e0319cd7"
+ },
+ {
+ "path": "captures/tree-quotation-narrow-example.png",
+ "bytes": 87398,
+ "sha256": "91ab3919fdacfd294b15862ed2ee189799a339604cdaef7f01f08bec0eaceec3"
+ },
+ {
+ "path": "captures/tree-quotation-narrow-budget.png",
+ "bytes": 88819,
+ "sha256": "47f26e3a6539e5a72d53eddf242352895c9a7519a9e4d17fa62b675a6e654893"
+ },
+ {
+ "path": "diagnostics/narrow-overflow/RootQuote.lean.txt.gz",
+ "bytes": 9844,
+ "sha256": "8e1ef3c595e225b2bc010fafa7f5d61b244f9bd0b14da17ab4430d8783417eb2",
+ "uncompressed_sha256": "1fe4ac3b31c67515ba2c644593166835a96ed9c2dbf8ef6e40885be33214d6fa"
+ },
+ {
+ "path": "diagnostics/narrow-overflow/tree-quotation-browser-1.log.gz",
+ "bytes": 418,
+ "sha256": "550a8a48d5922d1936339bd5431690c01dd33bdb1bc2ee1d3b856871e84d37b7",
+ "uncompressed_sha256": "37cdf3f122b66359cc19337ff9d54481959470e5c8094ad02fae6ea35fb8b61d"
+ },
+ {
+ "path": "diagnostics/narrow-overflow/tree-quotation-browser.mjs.gz",
+ "bytes": 2410,
+ "sha256": "4f1c5f6b01565a129ace80f198573187c60d39ee42d25be2d530bbd6887f51c9",
+ "uncompressed_sha256": "2a272e4ab98b5cfded639a61ef23af037209a7b37c495d016ce9a70f36bc53b2"
+ },
+ {
+ "path": "diagnostics/narrow-overflow/tree-quotation-desktop-budget.png.gz",
+ "bytes": 250642,
+ "sha256": "f2a518d30f602b13c24e2aca6f099e8a69dd0cef0c8fe7792359ce3442795d18",
+ "uncompressed_sha256": "772ebff211d55fba74ae0425312b92ffc3054683b7ce506c9680a907eae2689f"
+ },
+ {
+ "path": "diagnostics/narrow-overflow/tree-quotation-desktop-example.png.gz",
+ "bytes": 250743,
+ "sha256": "d38f703cec8ffcb49b301464b331efbd58d4ea486c689a2ad795da19e0b54f30",
+ "uncompressed_sha256": "f2da2e9fbc84a6f0774c9564e89b5826c1ecbd269aeb62bcf31a92a4d891947d"
+ },
+ {
+ "path": "diagnostics/narrow-overflow/tree-quotation-desktop-introduction.png.gz",
+ "bytes": 251035,
+ "sha256": "7df52194890a7ba6186b898d350207551d51cdcf2d849398d74102db20577782",
+ "uncompressed_sha256": "9a39ec2ff04f2b878202c44872d446d66fd2492912341bc32d2a51409e2b8224"
+ },
+ {
+ "path": "diagnostics/narrow-overflow/tree-quotation-inspection.json.gz",
+ "bytes": 804,
+ "sha256": "b0b8959ba56e74044c56a87dc5877e57864a2b14779d2b590114a3b7c17d478e",
+ "uncompressed_sha256": "7b1a3301bc6fa9723aac9990da484cb3c37b13ca8e856e5c4018aba76cd5fb61"
+ },
+ {
+ "path": "diagnostics/narrow-overflow/tree-quotation-narrow-budget.png.gz",
+ "bytes": 88730,
+ "sha256": "4496cddb313c92d55fbf8b163c692a74340169f8863346e8399038cd9292b8a6",
+ "uncompressed_sha256": "25ca173834dbf66c35917412b9d9d5e91283e12bc3327b346623371b9749d38c"
+ },
+ {
+ "path": "diagnostics/narrow-overflow/tree-quotation-narrow-example.png.gz",
+ "bytes": 89054,
+ "sha256": "5b65dfb45649f10d4d8c3c6e545d592f2640fa11b0f3510eb1c0ed8495869cb3",
+ "uncompressed_sha256": "d50370fe9629349be11228f26af9bd86cf445950f6d1166435726613488d1afe"
+ },
+ {
+ "path": "diagnostics/narrow-overflow/tree-quotation-narrow-introduction.png.gz",
+ "bytes": 85231,
+ "sha256": "606ee24c5bf2afa2ab8435fc013703f323c2e06640876c9e50d2ab203fcbb956",
+ "uncompressed_sha256": "8a1ac9a7a4b195108f69999cebdfec3739df33d62140fbbef82d7d1d9245ee49"
+ },
+ {
+ "path": "diagnostics/narrow-overflow/tree-quotation-section-overflow.json.gz",
+ "bytes": 3859,
+ "sha256": "35e8050e51ad5ece704a4aa5e0acbcea97037a0ccab57afad5f3f2e2ce261d09",
+ "uncompressed_sha256": "e5668b3fbf5e57c29591b201797b67362fde06f3d63d097f83fcf99b55003ad5"
+ },
+ {
+ "path": "diagnostics/tree-quote-integration-1.log.gz",
+ "bytes": 21468,
+ "sha256": "f24e4a65ea6ee2b3c36d01cb25bce53e9370964ca40d4a29be38e8e69232e9c4",
+ "uncompressed_sha256": "3e478017fcdfbb70b0f3ae97d7c949da2ffc09296bdf1600efc783abf1e2fafa"
+ },
+ {
+ "path": "diagnostics/tree-quote-integration-2.log.gz",
+ "bytes": 23863,
+ "sha256": "eb52d6909c531ae940ad732bcccdf13dbbdd0059bb30f926e9f50d9cf805dc8b",
+ "uncompressed_sha256": "588554c7d05045cc9987d33f604ba431f326028410e9a86058d26794dd26adc8"
+ },
+ {
+ "path": "diagnostics/tree-quote-integration-3.log.gz",
+ "bytes": 24340,
+ "sha256": "8335b8073397b501cd92843653898faea348f55f81b48ddad9b532a86d5ecf22",
+ "uncompressed_sha256": "da4cdebfdcc27cd757cc8123d7a03b884614174845088007748004c980419cd8"
+ },
+ {
+ "path": "diagnostics/quote-snapshot-bridge-1.log.gz",
+ "bytes": 335,
+ "sha256": "2283798b6a5634aba8335045226faed7f11314511e59adce32657da83b812f98",
+ "uncompressed_sha256": "6ed2c6bef28af3bedfe8efd28d3defdb17a2a108bb485ad84f2cfa750ebb5251"
+ },
+ {
+ "path": "diagnostics/quote-snapshot-core-1.log.gz",
+ "bytes": 1035,
+ "sha256": "aa7c7c87b5248a8e9b8af17b91cf1b9c70987ee52bc2c436c14bdb7ea0e542df",
+ "uncompressed_sha256": "1acdf0dd00f0edc633d6028f05e94775e8d97d0d25e824a85f5032189771288f"
+ },
+ {
+ "path": "diagnostics/quote-snapshot-core-2.log.gz",
+ "bytes": 266,
+ "sha256": "8878a3b49b75f985b8496607f6dcfe9ccc9c631c67c56d7fddafce2584289eda",
+ "uncompressed_sha256": "55eb05c65f25d8890d03233ae6c42cb0b1c54a3b04b10deeca81522634c36b69"
+ },
+ {
+ "path": "diagnostics/quote-snapshot-core-3.log.gz",
+ "bytes": 265,
+ "sha256": "917d49988e2442513e286b3dee20f9838066919fcabf1ab9494b60c32743ce1f",
+ "uncompressed_sha256": "05731f37bbc2e32698ef26b407f4cc2606a7c16b01c81d6daa95a1e3a85f3680"
+ },
+ {
+ "path": "diagnostics/quote-snapshot-explicit-1.log.gz",
+ "bytes": 1022,
+ "sha256": "093b870a4ed73e2743970dc75825cbcdc425eeac75bdf6c1a6f6ffb4ff1477b5",
+ "uncompressed_sha256": "7a826b7bde9664b0770008e6b2aa491fc93acc79891ce2e7cf186373b4449e26"
+ },
+ {
+ "path": "diagnostics/quote-snapshot-explicit-2.log.gz",
+ "bytes": 662,
+ "sha256": "4f75985d9326f17b66fcac58e11bfd6050db81f2f9f5c5ab763ad8f45a8f38d8",
+ "uncompressed_sha256": "bd36429e402be3dd19b26150f6e7f672490c3d7484a85c445614aefcbbb8dd12"
+ },
+ {
+ "path": "diagnostics/quote-snapshot-explicit-3.log.gz",
+ "bytes": 1649,
+ "sha256": "37128444571b093a7a27903f87c5a1924d6ad2b2d9d39f4a5d36e1f81b7464f2",
+ "uncompressed_sha256": "ad2ac6d3e3940f2d7273b38be61208f8b97f55fefe4a0afa1bfb95fa9de12a6a"
+ },
+ {
+ "path": "diagnostics/quote-snapshot-inner-1.log.gz",
+ "bytes": 311,
+ "sha256": "6bb0d81cdfa84c7a73bb4043c3c0a2ac32f2fadfe29a2531dea0362a247d250d",
+ "uncompressed_sha256": "c074083a3f74708d81fcb526fe943d20161c7ed25cfbf70532efb4216e277007"
+ },
+ {
+ "path": "diagnostics/quote-snapshot-probe-core-1.log.gz",
+ "bytes": 5145,
+ "sha256": "791029230e72fc17632f0692e0d30239cc1015a297d2814a8d17e72818543131",
+ "uncompressed_sha256": "987f89c36b68900decf13923eedb87148ebaee8d9e88fbee4ed45a43dc9d46a1"
+ },
+ {
+ "path": "diagnostics/quote-snapshot-read-1.log.gz",
+ "bytes": 741,
+ "sha256": "b5339823e353609785ac1777e81e3ccc93c312da9ee65557bf96f8f867dd0ee7",
+ "uncompressed_sha256": "57d1cb4fd0ee0199b182d83a945a23d2445ddd44c35868a922afb3b16e012549"
+ },
+ {
+ "path": "diagnostics/quote-snapshot-read-2.log.gz",
+ "bytes": 367,
+ "sha256": "65e51cd225b5fa154718bb55824be448c7d86729207e798491d130a541aec87a",
+ "uncompressed_sha256": "7bfc36ec69514c579bf07eb208ea68396990a180cdfaba622e362b8c3ea3c523"
+ },
+ {
+ "path": "diagnostics/quote-snapshot-read-3.log.gz",
+ "bytes": 393,
+ "sha256": "50caecefcfccf1628394f56bbb839d6e36fc6cb91e667ab5b60348de5e70b2d2",
+ "uncompressed_sha256": "5c08742b6fee29e0374f96ba03d6cbd311de79b9d0af56273eecd7518f2d3ea4"
+ },
+ {
+ "path": "diagnostics/quote-snapshot-repair-1.log.gz",
+ "bytes": 614,
+ "sha256": "27915945d093d89065d68a0d0f55be987e9de2aef157405ae0455235878006d0",
+ "uncompressed_sha256": "9809c85436231156f410eeb334f4dc7a4f31fdfa2e409047173ab27a9140c744"
+ },
+ {
+ "path": "diagnostics/quote-snapshot-repair-2.log.gz",
+ "bytes": 627,
+ "sha256": "833cc446df2835c141c1c49f6632e1995841ab14557943811d8ef70fbc415a8f",
+ "uncompressed_sha256": "ee5200b7a82999d0c0af5c06b22bc6ddfbaf6bf2239c8cd7b2666e8b63dd7505"
+ },
+ {
+ "path": "diagnostics/quote-snapshot-replay-1.log.gz",
+ "bytes": 746,
+ "sha256": "666e023cb70378a509201d6f194ed67551fec79962aea7b52e603016b40cebc4",
+ "uncompressed_sha256": "068c449616c25da7b1e98c17288db4338b2d12271f9f7177afe0476925895f7d"
+ },
+ {
+ "path": "diagnostics/quote-snapshot-replay-2.log.gz",
+ "bytes": 726,
+ "sha256": "430aebe2816b2357b794b55e37bdcf6731c72a7a854dc9d3f3f1aea6e4c5fbd6",
+ "uncompressed_sha256": "30eb371164090df50f1f8a0e4894090cac9f7a61d80ffc4a6fa72321e57d4674"
+ },
+ {
+ "path": "diagnostics/quote-snapshot-replay-3.log.gz",
+ "bytes": 638,
+ "sha256": "ce76175410376c2c90006cfbfdcfddc6df10323d4cd524c297af1c4c5927ae4e",
+ "uncompressed_sha256": "7ad4ece5daf26ddcc39b038547d8c4269528846f32c8e5c12ddd479d90e05b4e"
+ },
+ {
+ "path": "diagnostics/quote-snapshot-replay-4.log.gz",
+ "bytes": 618,
+ "sha256": "c506ff8e5229b3a6043584417479fdfb79dae91c892d491b87c1425a949fe604",
+ "uncompressed_sha256": "fffed73844429c34f7e96a1ed40dbf57efeb7a635cc4417f3e9879fb34b4e625"
+ },
+ {
+ "path": "diagnostics/quote-snapshot-seed-1.log.gz",
+ "bytes": 269,
+ "sha256": "d3305fb1e270082600196366150349e5e28c8e01859d36354b1d4a56d42d1824",
+ "uncompressed_sha256": "1e4cd22ec94c66256f0abf9f01dda470e2d66dbded6af78552f11a5202eba024"
+ },
+ {
+ "path": "diagnostics/quote-snapshot-seed-2.log.gz",
+ "bytes": 270,
+ "sha256": "8f8146243064a1bcfed33b34b7308f5cbb973d4e0bea9bf0ba1c8041a3f38a04",
+ "uncompressed_sha256": "aa161c3d2096b3eb7d58f4e1414d4c645b2de2e5e82a81ce6a3d6c029a63068a"
+ },
+ {
+ "path": "diagnostics/quote-snapshot-seed-3.log.gz",
+ "bytes": 271,
+ "sha256": "8f11f0aa361e2bb240f4a1554ac79e2ad4bcfc92ad3ae2784aedc89cac2ab0ce",
+ "uncompressed_sha256": "ba3ca8b85128ce2bc3dd1e7946f966663c75b755cefdfd09ad918ed14e86ba6a"
+ },
+ {
+ "path": "diagnostics/quote-snapshot-shape-1.log.gz",
+ "bytes": 309,
+ "sha256": "c32874750919d5100cf968b92a36775cb1ced8816cc99aaceac0fc0f09198a15",
+ "uncompressed_sha256": "6f120244ea6706444744137bae3debafc1b766f266c4bcab62967ce0e591ccba"
+ },
+ {
+ "path": "diagnostics/quote-snapshot-repair-1-interrupt.json.gz",
+ "bytes": 165,
+ "sha256": "1eaaabc160f5f44b2b18d8f12e8c7e26be5ef47da3ac314c16e5a6d61dbdc373",
+ "uncompressed_sha256": "a567930e01354910c81eee4ebc03da7dfa5201fa7c827064314217f1be5c80e4"
+ },
+ {
+ "path": "diagnostics/quote-snapshot-replay-4-interrupt.json.gz",
+ "bytes": 162,
+ "sha256": "0282afedf178c2e65bfa7132fe940b2ae43a41c26d2e85bbc0e61e27d5564c99",
+ "uncompressed_sha256": "6e57a0cc0439745cd1de04d0b56c3c45a0d1ddac41df7b8052de80bfcd20b2f2"
+ },
+ {
+ "path": "diagnostics/fresh-complete-snapshot-1.log.gz",
+ "bytes": 7666,
+ "sha256": "3b627ca6908d868533baa4b83dd0bbd8221a2995ea215ee71c78ee4b70539402",
+ "uncompressed_sha256": "1d41ac913f376bc10a10d847d6b195f1d52b84945e4f20a6112173fea2700600"
+ },
+ {
+ "path": "diagnostics/fresh-complete-snapshot-2-progress.log.gz",
+ "bytes": 2002,
+ "sha256": "0bd4e0a9aba5b70339c7b6aa0267b4a88903fd0d1c42562a50d22f6be175f271",
+ "uncompressed_sha256": "bbe2466bb5ad9a16a67498771ba63efdb53ec5356ffcd04ac99467e389eb3371"
+ },
+ {
+ "path": "diagnostics/fresh-complete-snapshot-2.log.gz",
+ "bytes": 7664,
+ "sha256": "401d06a21406319deec617fdfe5dd6c6dabdb85635f08ec29b2fa1e52fa292d8",
+ "uncompressed_sha256": "525de4d05975d30f5d584fba2d45fc9812cf37231abf5d1109175b5996487e18"
+ },
+ {
+ "path": "diagnostics/fresh-complete-snapshot-1-interrupt.txt.gz",
+ "bytes": 174,
+ "sha256": "fba7bd16d8d8cd32d1b681a340cbff183dc1a1264a9dcd408670f3f3dbdab6e4",
+ "uncompressed_sha256": "9fcf27b86af2a5da7ece1f4532f9b8445bad9b2d7d29b558660c799568829239"
+ },
+ {
+ "path": "diagnostics/fresh-complete-snapshot-2-interrupt.json.gz",
+ "bytes": 241,
+ "sha256": "2eb4437ea2dc5f60374b1200d763acdde67cc9e7247720d88a06029f54ca3456",
+ "uncompressed_sha256": "0100bf85dbed070d0914e625e395169131de770b3cb04c83b341a19307c80919"
+ },
+ {
+ "path": "diagnostics/fresh-complete-profile-1-progress.log.gz",
+ "bytes": 2001,
+ "sha256": "9c55e50e4542e6674282b53548ef45f5d9dfafd4497293013504bb4b6b51d403",
+ "uncompressed_sha256": "e1af6fb86e6e8168a57846f4de25c778245d7843927e86ec4c1e80c7259c05e9"
+ },
+ {
+ "path": "diagnostics/fresh-complete-profile-1-stack-deep.log.gz",
+ "bytes": 2725,
+ "sha256": "dfbdad18724bb5e0be9864614c1c12727db488ba9f870972a71ebc8121ab3d4b",
+ "uncompressed_sha256": "0bb1639d441c8097720767871a0d20364a456f76161768cad67b5f5973d9a2bd"
+ },
+ {
+ "path": "diagnostics/fresh-complete-profile-1-stack.log.gz",
+ "bytes": 1945,
+ "sha256": "3c91fd6a6eafe70fd02b2b20e6725f2f73890143284bc26458bf2c6623d89863",
+ "uncompressed_sha256": "98e1a40a3f0debd08558830eaded3a599b1726e386521beeb9af74ad489a805c"
+ },
+ {
+ "path": "diagnostics/fresh-complete-profile-1.log.gz",
+ "bytes": 7677,
+ "sha256": "43134a03cae47b43a9072ab25eebb7fc9d7eb92431d81f9685bcb96ae48c1b2f",
+ "uncompressed_sha256": "e12645849881211c68ba021c46bad7a210552b088bb15db87c3a00e35d09c0f1"
+ },
+ {
+ "path": "diagnostics/fresh-complete-profile-1-interrupt.txt.gz",
+ "bytes": 179,
+ "sha256": "37a6431c082f92977433c138028c7518e6f9497d71340519b19bcbbdc647987e",
+ "uncompressed_sha256": "b0a486da32e7a86a9420c488635fbbd19b9b5cf7b3ca843114422d93f91ca264"
+ },
+ {
+ "path": "diagnostics/fresh-complete-replay-1-progress.log.gz",
+ "bytes": 2053,
+ "sha256": "be9124f31b3694502818491414d9cb76c543c777227080d72513b6c66c8faf99",
+ "uncompressed_sha256": "13c54693fba3778de6d077018a11ee83a1002fb7b69cff99fac9c53b6140af32"
+ },
+ {
+ "path": "diagnostics/fresh-complete-replay-1.log.gz",
+ "bytes": 7709,
+ "sha256": "0a923b6bfb033e3c77583a2907e3b8fcd3b0223a4d5bb3e259e913a702db35b2",
+ "uncompressed_sha256": "611be208edf4132e80a995470345992f8ea9796a6cd1321cd87527edcefb6d34"
+ },
+ {
+ "path": "diagnostics/replay-equations-1.log.gz",
+ "bytes": 1971,
+ "sha256": "ea94c44ecc40498d8d2db7d0115b472fb9573b9361a1327697688f98b09027ee",
+ "uncompressed_sha256": "5da0978e50fa910e7f99a0c902af1a0e2f130d7fc2bb7a12d9a1467d5913126a"
+ },
+ {
+ "path": "diagnostics/replay-quote-audit-1.log.gz",
+ "bytes": 7455,
+ "sha256": "c70779cae884b7ef0ffe0e85b280afedae5b36f9072bff2797a4652900ccd418",
+ "uncompressed_sha256": "255c070d5ab71d8717e4a476da0032b8faba952ccb11dfaf97c19e8270b47c80"
+ },
+ {
+ "path": "diagnostics/replay-quote-audit-2.log.gz",
+ "bytes": 7149,
+ "sha256": "f13007521d39c66e9b62ce7b37190a73807510e56899a005cb0fb79d26e48e41",
+ "uncompressed_sha256": "abc884574cacbd7af91ddc07d7cc4c3cdb8122b2ac5373449d2ba4498c13541e"
+ },
+ {
+ "path": "diagnostics/replay-quote-audit-3.log.gz",
+ "bytes": 7021,
+ "sha256": "7c2a6f390dc516703543644aea92a54de443955b87b35b7a9f7cad01ce88a8e4",
+ "uncompressed_sha256": "1bdc11b0034f50a758dcfad45ddf6a69c23856e6628ecb28cd1b9ecd830fc3bd"
+ },
+ {
+ "path": "diagnostics/replay-quote-controls-1.log.gz",
+ "bytes": 5217,
+ "sha256": "79c58c8abc2df7985107d4fee78473dae4efe1c4eee6eaea198577dea580313d",
+ "uncompressed_sha256": "1046162a19e4fc9228a3bc9d0349e23506a742f3fd99fda438428196ae601a48"
+ },
+ {
+ "path": "diagnostics/replay-quote-controls-2.log.gz",
+ "bytes": 5649,
+ "sha256": "3a1cb5c02c2dec26d38bd9336709009728fc05e7179bfcd1c1c44c17e288ff70",
+ "uncompressed_sha256": "3ac3ebf91d1a1ed1d9843c55b4001947553a3a1f3f14cd0f414005c87faff264"
+ },
+ {
+ "path": "diagnostics/replay-quote-controls-3.log.gz",
+ "bytes": 5676,
+ "sha256": "18eedaf9b677b3f3fb4d56a57bc591979b5b422651674aba866ed433d36062bb",
+ "uncompressed_sha256": "8d12ec33a5362b5e43ffaad60bab18381293b4f0892bb341782ecff930b319d8"
+ },
+ {
+ "path": "diagnostics/replay-quote-controls-4.log.gz",
+ "bytes": 5234,
+ "sha256": "e99a38afa3acb31a081156c2b7eeaf4020864f3317d10b8830a7127488a989ad",
+ "uncompressed_sha256": "511940d947c606d4202d30dc1b3908ba4ed52d316abfcd1f2cb088f38820fc29"
+ },
+ {
+ "path": "diagnostics/replay-quote-probe-core-1.log.gz",
+ "bytes": 5134,
+ "sha256": "e687bc57521b4a1a41f286307007cc1d094d98e399b029523fd003e26bd74995",
+ "uncompressed_sha256": "075dda826ecc077daaa241d899134c025f45610fa0114d102eea4b1c5123fa75"
+ },
+ {
+ "path": "diagnostics/replay-boundary-FreshCompleteReplay.lean.txt.gz",
+ "bytes": 3284,
+ "sha256": "545e0af760357ebd6df8875504cccfa6ad0c5acbfb0394323b2e470e23f28b59",
+ "uncompressed_sha256": "597228e7eb87d7599fd5f44a4afca1b2cfca6fb5924a8de176bd47a91aa6368b"
+ },
+ {
+ "path": "diagnostics/replay-boundary-FreshReplayAudit.lean.txt.gz",
+ "bytes": 1378,
+ "sha256": "b541d1d610fc416697fa1f0800937def32caf928630971a6518882dfc58c62b5",
+ "uncompressed_sha256": "a9df863442b4d79034dec950a51ed2816f548400d4a91a75b94450c500e09d19"
+ },
+ {
+ "path": "diagnostics/replay-boundary-ReplayQuoteAudit.lean.txt.gz",
+ "bytes": 1327,
+ "sha256": "e5c09324738a1818151a8a154c4c472b0a372d787db854767b79262ea2dc6e47",
+ "uncompressed_sha256": "ed4a8c68524ceaaa1de878ab8b948f5305c0fca55a4187d6bfa13828b0ac2773"
+ },
+ {
+ "path": "diagnostics/replay-boundary-ReplayQuoteControls.lean.txt.gz",
+ "bytes": 1497,
+ "sha256": "5cc755325dbdf49ea3ac85b4433ac4f211c2a077b7063363305c94f7170baf20",
+ "uncompressed_sha256": "fb1be753fb8c846c1206c4a15793e73b7e3dd0c6b80ae32af0c95dae0dd23e96"
+ },
+ {
+ "path": "diagnostics/replay-boundary-RootReplayQuoteProbe.lean.txt.gz",
+ "bytes": 9203,
+ "sha256": "5d5908488e1346ad1c50adca40cc144d9fe062db8c98d774cf86d86304f2a715",
+ "uncompressed_sha256": "2a4353233b894dbb4d255b56537249d80d84e278fd615f5af61edb02dbb9e15e"
+ },
+ {
+ "path": "diagnostics/replay-boundary-SnapshotExplicit.lean.txt.gz",
+ "bytes": 1378,
+ "sha256": "fcaefbe8abc5d63dcc693469d9cce2dc059e7e4c5ddee0263c488da4cb33d087",
+ "uncompressed_sha256": "a01a8bfb949dc24c7acaeb50d8b29895af7363dc834a9094fcf9316d550d130d"
+ },
+ {
+ "path": "diagnostics/snapshot-diagnostic-FreshCompleteSnapshot.lean.txt.gz",
+ "bytes": 3338,
+ "sha256": "ee574cf11e46b5406da5ba90fd7f34d563a42d79d1f6e8adabea677bfe2fd632",
+ "uncompressed_sha256": "be853a5f966f7ebe05158e9877b26da653dacc295a5ccc28be2c81ad1ca50ab0"
+ },
+ {
+ "path": "diagnostics/snapshot-diagnostic-QuoteSnapshot.lean.txt.gz",
+ "bytes": 921,
+ "sha256": "4ddf0679af51d66a75258ccf17c312560bc5f473655fad034a8c71d717466681",
+ "uncompressed_sha256": "41d82e36cf9c9709bc2e02579b031c9e2797205ac4120604439f2ab46c731a58"
+ },
+ {
+ "path": "diagnostics/snapshot-diagnostic-RootSnapshotProbe.lean.txt.gz",
+ "bytes": 9553,
+ "sha256": "946129892496270bf6919c83109f31b55d21dda3c630f09983c562762f8ca0f2",
+ "uncompressed_sha256": "ce89f1b9b53fb42b9496caeb1d8ce0a39797166adc58ba775414478df465ec5e"
+ },
+ {
+ "path": "diagnostics/isolated-step-heads.txt.gz",
+ "bytes": 1986,
+ "sha256": "6a745fa9d61e5c8623a28775348524bc02591d7ff99009dd949884a65b928652",
+ "uncompressed_sha256": "2c05f2da1d15f93fda54af157e26f7c4de21673e80c98b7918899d7560e080fb"
+ },
+ {
+ "path": "diagnostics/isolated-step.txt.gz",
+ "bytes": 17751,
+ "sha256": "7cb991548d1747593f3df7b454ff06718230f3e8e9ee3dfc76adb74d67adfa58",
+ "uncompressed_sha256": "c1a86c47cdc244d2baf9d59e0cf697c83b9f64ed7734586e2846a0c324b46bbb"
+ },
+ {
+ "path": "diagnostics/snapshot-shape.txt.gz",
+ "bytes": 408,
+ "sha256": "ea414e2ebab4495b97b934e102205a876201c24354bf785ced952be0f94f34d1",
+ "uncompressed_sha256": "ca5d1923367f814f4a263ac5e311f6a6f6c898ecf657c4ca3ff21bfc1c8346a2"
+ },
+ {
+ "path": "diagnostics/current-debug-sources/QuoteSnapshot.lean.txt.gz",
+ "bytes": 921,
+ "sha256": "4ddf0679af51d66a75258ccf17c312560bc5f473655fad034a8c71d717466681",
+ "uncompressed_sha256": "41d82e36cf9c9709bc2e02579b031c9e2797205ac4120604439f2ab46c731a58"
+ },
+ {
+ "path": "diagnostics/current-debug-sources/SnapshotSeed.lean.txt.gz",
+ "bytes": 391,
+ "sha256": "d0f18d51fab44a130981d26f7d9dd242a5e5e446b84c9bd13dbda8aa4388b681",
+ "uncompressed_sha256": "19f32929e27ccb3869f03a4c82c0e3292448856108fbaa4bdb2cdb92a95eeab5"
+ },
+ {
+ "path": "diagnostics/current-debug-sources/SnapshotRead.lean.txt.gz",
+ "bytes": 484,
+ "sha256": "9a9c8b9a4988a2b53a538eb8b0f4065c3d05b39420f099a2cd0e682cb82a4ff1",
+ "uncompressed_sha256": "d2f95355502e59e5a55cdf5a132cbcd427aa15a60b45fcd03c3b459b85a703f0"
+ },
+ {
+ "path": "diagnostics/current-debug-sources/SnapshotReject.lean.txt.gz",
+ "bytes": 488,
+ "sha256": "2227263833e5e41953623896e227d80e17f4f5ce756997106f85f325917386ab",
+ "uncompressed_sha256": "e4b33728f397f8c5845dcbb04d1cfef16f07a996ed5f48d06264de48c0d77bbb"
+ },
+ {
+ "path": "diagnostics/current-debug-sources/SnapshotLocalRead.lean.txt.gz",
+ "bytes": 488,
+ "sha256": "09051ecdbe3075e0953b851be4d52dd0f467dd1fe02136139b21897f16b60345",
+ "uncompressed_sha256": "6611651b8507fb17df9dd045abeccc7e298b44b38b8b3da75d8f1437c6680046"
+ },
+ {
+ "path": "diagnostics/current-debug-sources/SnapshotReplay.lean.txt.gz",
+ "bytes": 733,
+ "sha256": "246458f821b1769cabeaed4151223d229a67518b38a2ccd3d95eb1807a430706",
+ "uncompressed_sha256": "b9502a1759fc6123067be935d38170d54714de70aeffaf7c9f4df5871fb3734f"
+ },
+ {
+ "path": "diagnostics/current-debug-sources/SnapshotRepair.lean.txt.gz",
+ "bytes": 1002,
+ "sha256": "52da10d4c23cdbf35a5c6037c0ce4ad01395f5b34dec3bfb479e3d6724c24a41",
+ "uncompressed_sha256": "b11569ef5b79aca86ac78a6476e33f07d9ea5027a22aa688d4e0a689ee30f142"
+ },
+ {
+ "path": "diagnostics/current-debug-sources/SnapshotParts.lean.txt.gz",
+ "bytes": 752,
+ "sha256": "025a44df927abdfe0f95e7b31b27282bc59a1ee7a4041d4517154962f2911baa",
+ "uncompressed_sha256": "8565651223fd813d410fbbb581f3783774b483ebff23614ad60f46a93cb10a70"
+ },
+ {
+ "path": "diagnostics/current-debug-sources/SnapshotBridge.lean.txt.gz",
+ "bytes": 111,
+ "sha256": "d184fbae4715e77590c1108a59633e697b11ad8eac85071c45856d2d6493c07e",
+ "uncompressed_sha256": "c326b020ec82720f0e7fedccd3f3af4c85c75920f7535530fe3d7be2f7a320fa"
+ },
+ {
+ "path": "diagnostics/current-debug-sources/SnapshotInner.lean.txt.gz",
+ "bytes": 110,
+ "sha256": "cb60a0d9846ead2e30b280cd5fddb489f1422a8bc7fd2821a987e57ba56bf64e",
+ "uncompressed_sha256": "5af0458f132312103541ae77d481c68e08a09c6c3dd004677b8c147382aeec86"
+ },
+ {
+ "path": "diagnostics/current-debug-sources/SnapshotShape.lean.txt.gz",
+ "bytes": 550,
+ "sha256": "9ab1988dbdfb93a40845083682078406be74e2c0dc9dfe43c222b920ceb735fa",
+ "uncompressed_sha256": "bbe24052af69123b712c0388b191dff5e79ec8be119a02a22da5860ba58374fc"
+ },
+ {
+ "path": "diagnostics/current-debug-sources/SnapshotExplicit.lean.txt.gz",
+ "bytes": 1378,
+ "sha256": "fcaefbe8abc5d63dcc693469d9cce2dc059e7e4c5ddee0263c488da4cb33d087",
+ "uncompressed_sha256": "a01a8bfb949dc24c7acaeb50d8b29895af7363dc834a9094fcf9316d550d130d"
+ }
+ ],
+ "validation": {
+ "integration": "validation/tree-quote-integration-4.log.gz",
+ "public": "validation/tree-quote-public-1.log.gz",
+ "audit": "validation/tree-quote-audit-1.log.gz",
+ "render": "validation/tree-quotation-render-2.log.gz",
+ "browser": "validation/tree-quotation-browser-2.log.gz"
+ },
+ "visually_inspected_captures": [
+ "captures/tree-quotation-desktop-introduction.png",
+ "captures/tree-quotation-desktop-example.png",
+ "captures/tree-quotation-desktop-budget.png",
+ "captures/tree-quotation-narrow-introduction.png",
+ "captures/tree-quotation-narrow-example.png",
+ "captures/tree-quotation-narrow-budget.png"
+ ],
+ "complete_packet_accepted": false,
+ "diagnostic_source_note": "The full five-million-node run uses exactly the recorded production algorithm with only the quoter namespace changed. Debug source files under current-debug-sources are the final corrected tools; earlier failed/interrupted tool attempts are retained as diagnostics and are not claimed to have run those final bytes. No compiled debug snapshot is proof evidence or a dependency of the ordinary conformance.",
+ "snapshot": {
+ "action": "Operator SIGINT after capturing stable slow step for isolated replay; not a completed acceptance run",
+ "pid": 1833725,
+ "snapshot_bytes": 1667080,
+ "snapshot_sha256": "911f9bbe3efefd1a555ca0e71b88c5b9fc4022d7008bac7bbcddfe38b06f91ac",
+ "last_check": "start RootSnapshotProbe.step"
+ },
+ "compiled_files": [
+ {
+ "path": ".lake/build/lib/lean/HexRCF/TreeQuoteData.olean",
+ "bytes": 47888,
+ "sha256": "39fa7f14fa49a23bf8bfeefbb03161d80390b71411473e873db7e98a2ade6fc8"
+ },
+ {
+ "path": ".lake/build/lib/lean/HexRCF/TreeQuote.olean",
+ "bytes": 63848,
+ "sha256": "f43f72f16c637d49eff9e8189967e7b5a928153f180d5eca4027f94fb7cc3e97"
+ },
+ {
+ "path": ".lake/build/lib/lean/HexRCF/TreeQuotePublic.olean",
+ "bytes": 6640,
+ "sha256": "ce79b9a1c0f4ccb3a1c2479c261e70ac85f553a14ed1215e662c957e4ff326f4"
+ },
+ {
+ "path": ".lake/build/lib/lean/HexRCF/TreeQuoteProofs.olean",
+ "bytes": 3352,
+ "sha256": "4debc8793c3bbc367714534173e32dc73452e45d0387dc60c8d40a822622f582"
+ }
+ ],
+ "scope": "Public leaf/split quotation, ordinary importing examples, exact/below budgets, failure rollback, strict fresh-body audits, compatibility and complete manual. All six changed desktop/narrow targets were actually inspected.",
+ "limits": "Complete original-source literal packet still exhausts five million proof nodes, 5,000,000+1, after passing the old conversion stall. No source-goal acceptance, complete backend or algebraic completeness follows. Interrupted diagnostics and differently bounded runs are not matched AB/BA speed evidence. Compiled module sizes and charged proof nodes are not physical DAG or certificate sizes. Existing page/section overflow remains separate from the zero-overflow changed content."
+}
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/current-debug-sources/QuoteSnapshot.lean.txt.gz b/reports/data/hexrcf-tree-quotation/diagnostics/current-debug-sources/QuoteSnapshot.lean.txt.gz
new file mode 100644
index 0000000000..2324f2526a
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/current-debug-sources/QuoteSnapshot.lean.txt.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/current-debug-sources/SnapshotBridge.lean.txt.gz b/reports/data/hexrcf-tree-quotation/diagnostics/current-debug-sources/SnapshotBridge.lean.txt.gz
new file mode 100644
index 0000000000..f4ec0c6925
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/current-debug-sources/SnapshotBridge.lean.txt.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/current-debug-sources/SnapshotExplicit.lean.txt.gz b/reports/data/hexrcf-tree-quotation/diagnostics/current-debug-sources/SnapshotExplicit.lean.txt.gz
new file mode 100644
index 0000000000..740a0885a5
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/current-debug-sources/SnapshotExplicit.lean.txt.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/current-debug-sources/SnapshotInner.lean.txt.gz b/reports/data/hexrcf-tree-quotation/diagnostics/current-debug-sources/SnapshotInner.lean.txt.gz
new file mode 100644
index 0000000000..c58adee27c
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/current-debug-sources/SnapshotInner.lean.txt.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/current-debug-sources/SnapshotLocalRead.lean.txt.gz b/reports/data/hexrcf-tree-quotation/diagnostics/current-debug-sources/SnapshotLocalRead.lean.txt.gz
new file mode 100644
index 0000000000..aa2662985e
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/current-debug-sources/SnapshotLocalRead.lean.txt.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/current-debug-sources/SnapshotParts.lean.txt.gz b/reports/data/hexrcf-tree-quotation/diagnostics/current-debug-sources/SnapshotParts.lean.txt.gz
new file mode 100644
index 0000000000..eb7668895e
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/current-debug-sources/SnapshotParts.lean.txt.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/current-debug-sources/SnapshotRead.lean.txt.gz b/reports/data/hexrcf-tree-quotation/diagnostics/current-debug-sources/SnapshotRead.lean.txt.gz
new file mode 100644
index 0000000000..5e3989fa75
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/current-debug-sources/SnapshotRead.lean.txt.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/current-debug-sources/SnapshotReject.lean.txt.gz b/reports/data/hexrcf-tree-quotation/diagnostics/current-debug-sources/SnapshotReject.lean.txt.gz
new file mode 100644
index 0000000000..9713ec453a
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/current-debug-sources/SnapshotReject.lean.txt.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/current-debug-sources/SnapshotRepair.lean.txt.gz b/reports/data/hexrcf-tree-quotation/diagnostics/current-debug-sources/SnapshotRepair.lean.txt.gz
new file mode 100644
index 0000000000..054f7b4057
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/current-debug-sources/SnapshotRepair.lean.txt.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/current-debug-sources/SnapshotReplay.lean.txt.gz b/reports/data/hexrcf-tree-quotation/diagnostics/current-debug-sources/SnapshotReplay.lean.txt.gz
new file mode 100644
index 0000000000..4e0b9f12c3
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/current-debug-sources/SnapshotReplay.lean.txt.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/current-debug-sources/SnapshotSeed.lean.txt.gz b/reports/data/hexrcf-tree-quotation/diagnostics/current-debug-sources/SnapshotSeed.lean.txt.gz
new file mode 100644
index 0000000000..6db00297e2
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/current-debug-sources/SnapshotSeed.lean.txt.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/current-debug-sources/SnapshotShape.lean.txt.gz b/reports/data/hexrcf-tree-quotation/diagnostics/current-debug-sources/SnapshotShape.lean.txt.gz
new file mode 100644
index 0000000000..5380283ea3
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/current-debug-sources/SnapshotShape.lean.txt.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/fresh-complete-profile-1-interrupt.txt.gz b/reports/data/hexrcf-tree-quotation/diagnostics/fresh-complete-profile-1-interrupt.txt.gz
new file mode 100644
index 0000000000..a78d3620a0
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/fresh-complete-profile-1-interrupt.txt.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/fresh-complete-profile-1-progress.log.gz b/reports/data/hexrcf-tree-quotation/diagnostics/fresh-complete-profile-1-progress.log.gz
new file mode 100644
index 0000000000..0cc7740f9b
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/fresh-complete-profile-1-progress.log.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/fresh-complete-profile-1-stack-deep.log.gz b/reports/data/hexrcf-tree-quotation/diagnostics/fresh-complete-profile-1-stack-deep.log.gz
new file mode 100644
index 0000000000..6b8eae2e15
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/fresh-complete-profile-1-stack-deep.log.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/fresh-complete-profile-1-stack.log.gz b/reports/data/hexrcf-tree-quotation/diagnostics/fresh-complete-profile-1-stack.log.gz
new file mode 100644
index 0000000000..8ba73b2c7e
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/fresh-complete-profile-1-stack.log.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/fresh-complete-profile-1.log.gz b/reports/data/hexrcf-tree-quotation/diagnostics/fresh-complete-profile-1.log.gz
new file mode 100644
index 0000000000..4f519ecbd4
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/fresh-complete-profile-1.log.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/fresh-complete-replay-1-progress.log.gz b/reports/data/hexrcf-tree-quotation/diagnostics/fresh-complete-replay-1-progress.log.gz
new file mode 100644
index 0000000000..596256f9a8
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/fresh-complete-replay-1-progress.log.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/fresh-complete-replay-1.log.gz b/reports/data/hexrcf-tree-quotation/diagnostics/fresh-complete-replay-1.log.gz
new file mode 100644
index 0000000000..3f0cd38ad3
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/fresh-complete-replay-1.log.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/fresh-complete-snapshot-1-interrupt.txt.gz b/reports/data/hexrcf-tree-quotation/diagnostics/fresh-complete-snapshot-1-interrupt.txt.gz
new file mode 100644
index 0000000000..554b3e8921
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/fresh-complete-snapshot-1-interrupt.txt.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/fresh-complete-snapshot-1.log.gz b/reports/data/hexrcf-tree-quotation/diagnostics/fresh-complete-snapshot-1.log.gz
new file mode 100644
index 0000000000..a9a52337cf
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/fresh-complete-snapshot-1.log.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/fresh-complete-snapshot-2-interrupt.json.gz b/reports/data/hexrcf-tree-quotation/diagnostics/fresh-complete-snapshot-2-interrupt.json.gz
new file mode 100644
index 0000000000..12a68807c6
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/fresh-complete-snapshot-2-interrupt.json.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/fresh-complete-snapshot-2-progress.log.gz b/reports/data/hexrcf-tree-quotation/diagnostics/fresh-complete-snapshot-2-progress.log.gz
new file mode 100644
index 0000000000..24682ab121
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/fresh-complete-snapshot-2-progress.log.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/fresh-complete-snapshot-2.log.gz b/reports/data/hexrcf-tree-quotation/diagnostics/fresh-complete-snapshot-2.log.gz
new file mode 100644
index 0000000000..6bbb35dfc5
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/fresh-complete-snapshot-2.log.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/isolated-step-heads.txt.gz b/reports/data/hexrcf-tree-quotation/diagnostics/isolated-step-heads.txt.gz
new file mode 100644
index 0000000000..7941969f4a
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/isolated-step-heads.txt.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/isolated-step.txt.gz b/reports/data/hexrcf-tree-quotation/diagnostics/isolated-step.txt.gz
new file mode 100644
index 0000000000..e6719274a3
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/isolated-step.txt.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/narrow-overflow/RootQuote.lean.txt.gz b/reports/data/hexrcf-tree-quotation/diagnostics/narrow-overflow/RootQuote.lean.txt.gz
new file mode 100644
index 0000000000..d388f7df37
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/narrow-overflow/RootQuote.lean.txt.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/narrow-overflow/tree-quotation-browser-1.log.gz b/reports/data/hexrcf-tree-quotation/diagnostics/narrow-overflow/tree-quotation-browser-1.log.gz
new file mode 100644
index 0000000000..319932e240
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/narrow-overflow/tree-quotation-browser-1.log.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/narrow-overflow/tree-quotation-browser.mjs.gz b/reports/data/hexrcf-tree-quotation/diagnostics/narrow-overflow/tree-quotation-browser.mjs.gz
new file mode 100644
index 0000000000..9dfc425065
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/narrow-overflow/tree-quotation-browser.mjs.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/narrow-overflow/tree-quotation-desktop-budget.png.gz b/reports/data/hexrcf-tree-quotation/diagnostics/narrow-overflow/tree-quotation-desktop-budget.png.gz
new file mode 100644
index 0000000000..4403af7eff
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/narrow-overflow/tree-quotation-desktop-budget.png.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/narrow-overflow/tree-quotation-desktop-example.png.gz b/reports/data/hexrcf-tree-quotation/diagnostics/narrow-overflow/tree-quotation-desktop-example.png.gz
new file mode 100644
index 0000000000..efc812955a
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/narrow-overflow/tree-quotation-desktop-example.png.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/narrow-overflow/tree-quotation-desktop-introduction.png.gz b/reports/data/hexrcf-tree-quotation/diagnostics/narrow-overflow/tree-quotation-desktop-introduction.png.gz
new file mode 100644
index 0000000000..a34dbcc3cc
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/narrow-overflow/tree-quotation-desktop-introduction.png.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/narrow-overflow/tree-quotation-inspection.json.gz b/reports/data/hexrcf-tree-quotation/diagnostics/narrow-overflow/tree-quotation-inspection.json.gz
new file mode 100644
index 0000000000..9f4105d8d4
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/narrow-overflow/tree-quotation-inspection.json.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/narrow-overflow/tree-quotation-narrow-budget.png.gz b/reports/data/hexrcf-tree-quotation/diagnostics/narrow-overflow/tree-quotation-narrow-budget.png.gz
new file mode 100644
index 0000000000..7bf5a53c94
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/narrow-overflow/tree-quotation-narrow-budget.png.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/narrow-overflow/tree-quotation-narrow-example.png.gz b/reports/data/hexrcf-tree-quotation/diagnostics/narrow-overflow/tree-quotation-narrow-example.png.gz
new file mode 100644
index 0000000000..2e6b7e528e
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/narrow-overflow/tree-quotation-narrow-example.png.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/narrow-overflow/tree-quotation-narrow-introduction.png.gz b/reports/data/hexrcf-tree-quotation/diagnostics/narrow-overflow/tree-quotation-narrow-introduction.png.gz
new file mode 100644
index 0000000000..4c16414292
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/narrow-overflow/tree-quotation-narrow-introduction.png.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/narrow-overflow/tree-quotation-section-overflow.json.gz b/reports/data/hexrcf-tree-quotation/diagnostics/narrow-overflow/tree-quotation-section-overflow.json.gz
new file mode 100644
index 0000000000..a26a317010
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/narrow-overflow/tree-quotation-section-overflow.json.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/quote-snapshot-bridge-1.log.gz b/reports/data/hexrcf-tree-quotation/diagnostics/quote-snapshot-bridge-1.log.gz
new file mode 100644
index 0000000000..3bbcd01485
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/quote-snapshot-bridge-1.log.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/quote-snapshot-core-1.log.gz b/reports/data/hexrcf-tree-quotation/diagnostics/quote-snapshot-core-1.log.gz
new file mode 100644
index 0000000000..8599a8e57e
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/quote-snapshot-core-1.log.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/quote-snapshot-core-2.log.gz b/reports/data/hexrcf-tree-quotation/diagnostics/quote-snapshot-core-2.log.gz
new file mode 100644
index 0000000000..c3f532cd55
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/quote-snapshot-core-2.log.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/quote-snapshot-core-3.log.gz b/reports/data/hexrcf-tree-quotation/diagnostics/quote-snapshot-core-3.log.gz
new file mode 100644
index 0000000000..3ab3c617db
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/quote-snapshot-core-3.log.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/quote-snapshot-explicit-1.log.gz b/reports/data/hexrcf-tree-quotation/diagnostics/quote-snapshot-explicit-1.log.gz
new file mode 100644
index 0000000000..3764a7db17
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/quote-snapshot-explicit-1.log.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/quote-snapshot-explicit-2.log.gz b/reports/data/hexrcf-tree-quotation/diagnostics/quote-snapshot-explicit-2.log.gz
new file mode 100644
index 0000000000..a510d4af52
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/quote-snapshot-explicit-2.log.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/quote-snapshot-explicit-3.log.gz b/reports/data/hexrcf-tree-quotation/diagnostics/quote-snapshot-explicit-3.log.gz
new file mode 100644
index 0000000000..4f311d0a94
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/quote-snapshot-explicit-3.log.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/quote-snapshot-inner-1.log.gz b/reports/data/hexrcf-tree-quotation/diagnostics/quote-snapshot-inner-1.log.gz
new file mode 100644
index 0000000000..68b837f1d8
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/quote-snapshot-inner-1.log.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/quote-snapshot-probe-core-1.log.gz b/reports/data/hexrcf-tree-quotation/diagnostics/quote-snapshot-probe-core-1.log.gz
new file mode 100644
index 0000000000..aeae7e553e
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/quote-snapshot-probe-core-1.log.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/quote-snapshot-read-1.log.gz b/reports/data/hexrcf-tree-quotation/diagnostics/quote-snapshot-read-1.log.gz
new file mode 100644
index 0000000000..6a858781ee
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/quote-snapshot-read-1.log.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/quote-snapshot-read-2.log.gz b/reports/data/hexrcf-tree-quotation/diagnostics/quote-snapshot-read-2.log.gz
new file mode 100644
index 0000000000..24698491bd
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/quote-snapshot-read-2.log.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/quote-snapshot-read-3.log.gz b/reports/data/hexrcf-tree-quotation/diagnostics/quote-snapshot-read-3.log.gz
new file mode 100644
index 0000000000..eaa9faf880
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/quote-snapshot-read-3.log.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/quote-snapshot-repair-1-interrupt.json.gz b/reports/data/hexrcf-tree-quotation/diagnostics/quote-snapshot-repair-1-interrupt.json.gz
new file mode 100644
index 0000000000..047e02c880
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/quote-snapshot-repair-1-interrupt.json.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/quote-snapshot-repair-1.log.gz b/reports/data/hexrcf-tree-quotation/diagnostics/quote-snapshot-repair-1.log.gz
new file mode 100644
index 0000000000..1ff958302a
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/quote-snapshot-repair-1.log.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/quote-snapshot-repair-2.log.gz b/reports/data/hexrcf-tree-quotation/diagnostics/quote-snapshot-repair-2.log.gz
new file mode 100644
index 0000000000..d07be2fe5c
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/quote-snapshot-repair-2.log.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/quote-snapshot-replay-1.log.gz b/reports/data/hexrcf-tree-quotation/diagnostics/quote-snapshot-replay-1.log.gz
new file mode 100644
index 0000000000..485d9ba40b
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/quote-snapshot-replay-1.log.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/quote-snapshot-replay-2.log.gz b/reports/data/hexrcf-tree-quotation/diagnostics/quote-snapshot-replay-2.log.gz
new file mode 100644
index 0000000000..0bd66e2223
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/quote-snapshot-replay-2.log.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/quote-snapshot-replay-3.log.gz b/reports/data/hexrcf-tree-quotation/diagnostics/quote-snapshot-replay-3.log.gz
new file mode 100644
index 0000000000..9164cce49d
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/quote-snapshot-replay-3.log.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/quote-snapshot-replay-4-interrupt.json.gz b/reports/data/hexrcf-tree-quotation/diagnostics/quote-snapshot-replay-4-interrupt.json.gz
new file mode 100644
index 0000000000..3c26ead82e
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/quote-snapshot-replay-4-interrupt.json.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/quote-snapshot-replay-4.log.gz b/reports/data/hexrcf-tree-quotation/diagnostics/quote-snapshot-replay-4.log.gz
new file mode 100644
index 0000000000..df27eea979
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/quote-snapshot-replay-4.log.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/quote-snapshot-seed-1.log.gz b/reports/data/hexrcf-tree-quotation/diagnostics/quote-snapshot-seed-1.log.gz
new file mode 100644
index 0000000000..2e2564669b
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/quote-snapshot-seed-1.log.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/quote-snapshot-seed-2.log.gz b/reports/data/hexrcf-tree-quotation/diagnostics/quote-snapshot-seed-2.log.gz
new file mode 100644
index 0000000000..62fdeae088
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/quote-snapshot-seed-2.log.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/quote-snapshot-seed-3.log.gz b/reports/data/hexrcf-tree-quotation/diagnostics/quote-snapshot-seed-3.log.gz
new file mode 100644
index 0000000000..05f3a58cb2
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/quote-snapshot-seed-3.log.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/quote-snapshot-shape-1.log.gz b/reports/data/hexrcf-tree-quotation/diagnostics/quote-snapshot-shape-1.log.gz
new file mode 100644
index 0000000000..0a11bfe703
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/quote-snapshot-shape-1.log.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/replay-boundary-FreshCompleteReplay.lean.txt.gz b/reports/data/hexrcf-tree-quotation/diagnostics/replay-boundary-FreshCompleteReplay.lean.txt.gz
new file mode 100644
index 0000000000..a0090e93d5
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/replay-boundary-FreshCompleteReplay.lean.txt.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/replay-boundary-FreshReplayAudit.lean.txt.gz b/reports/data/hexrcf-tree-quotation/diagnostics/replay-boundary-FreshReplayAudit.lean.txt.gz
new file mode 100644
index 0000000000..ac4d2cc83c
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/replay-boundary-FreshReplayAudit.lean.txt.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/replay-boundary-ReplayQuoteAudit.lean.txt.gz b/reports/data/hexrcf-tree-quotation/diagnostics/replay-boundary-ReplayQuoteAudit.lean.txt.gz
new file mode 100644
index 0000000000..60994c9e43
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/replay-boundary-ReplayQuoteAudit.lean.txt.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/replay-boundary-ReplayQuoteControls.lean.txt.gz b/reports/data/hexrcf-tree-quotation/diagnostics/replay-boundary-ReplayQuoteControls.lean.txt.gz
new file mode 100644
index 0000000000..0fb8b86c73
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/replay-boundary-ReplayQuoteControls.lean.txt.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/replay-boundary-RootReplayQuoteProbe.lean.txt.gz b/reports/data/hexrcf-tree-quotation/diagnostics/replay-boundary-RootReplayQuoteProbe.lean.txt.gz
new file mode 100644
index 0000000000..8e365a9e76
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/replay-boundary-RootReplayQuoteProbe.lean.txt.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/replay-boundary-SnapshotExplicit.lean.txt.gz b/reports/data/hexrcf-tree-quotation/diagnostics/replay-boundary-SnapshotExplicit.lean.txt.gz
new file mode 100644
index 0000000000..740a0885a5
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/replay-boundary-SnapshotExplicit.lean.txt.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/replay-equations-1.log.gz b/reports/data/hexrcf-tree-quotation/diagnostics/replay-equations-1.log.gz
new file mode 100644
index 0000000000..d520a1db38
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/replay-equations-1.log.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/replay-quote-audit-1.log.gz b/reports/data/hexrcf-tree-quotation/diagnostics/replay-quote-audit-1.log.gz
new file mode 100644
index 0000000000..504ca7cc63
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/replay-quote-audit-1.log.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/replay-quote-audit-2.log.gz b/reports/data/hexrcf-tree-quotation/diagnostics/replay-quote-audit-2.log.gz
new file mode 100644
index 0000000000..0843eb798f
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/replay-quote-audit-2.log.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/replay-quote-audit-3.log.gz b/reports/data/hexrcf-tree-quotation/diagnostics/replay-quote-audit-3.log.gz
new file mode 100644
index 0000000000..d3e7f44b05
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/replay-quote-audit-3.log.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/replay-quote-controls-1.log.gz b/reports/data/hexrcf-tree-quotation/diagnostics/replay-quote-controls-1.log.gz
new file mode 100644
index 0000000000..449f9647b3
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/replay-quote-controls-1.log.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/replay-quote-controls-2.log.gz b/reports/data/hexrcf-tree-quotation/diagnostics/replay-quote-controls-2.log.gz
new file mode 100644
index 0000000000..f65f3c9436
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/replay-quote-controls-2.log.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/replay-quote-controls-3.log.gz b/reports/data/hexrcf-tree-quotation/diagnostics/replay-quote-controls-3.log.gz
new file mode 100644
index 0000000000..6981d1902e
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/replay-quote-controls-3.log.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/replay-quote-controls-4.log.gz b/reports/data/hexrcf-tree-quotation/diagnostics/replay-quote-controls-4.log.gz
new file mode 100644
index 0000000000..bb7b9d933c
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/replay-quote-controls-4.log.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/replay-quote-probe-core-1.log.gz b/reports/data/hexrcf-tree-quotation/diagnostics/replay-quote-probe-core-1.log.gz
new file mode 100644
index 0000000000..d9f373dc73
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/replay-quote-probe-core-1.log.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/snapshot-diagnostic-FreshCompleteSnapshot.lean.txt.gz b/reports/data/hexrcf-tree-quotation/diagnostics/snapshot-diagnostic-FreshCompleteSnapshot.lean.txt.gz
new file mode 100644
index 0000000000..9e12ceafe0
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/snapshot-diagnostic-FreshCompleteSnapshot.lean.txt.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/snapshot-diagnostic-QuoteSnapshot.lean.txt.gz b/reports/data/hexrcf-tree-quotation/diagnostics/snapshot-diagnostic-QuoteSnapshot.lean.txt.gz
new file mode 100644
index 0000000000..2324f2526a
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/snapshot-diagnostic-QuoteSnapshot.lean.txt.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/snapshot-diagnostic-RootSnapshotProbe.lean.txt.gz b/reports/data/hexrcf-tree-quotation/diagnostics/snapshot-diagnostic-RootSnapshotProbe.lean.txt.gz
new file mode 100644
index 0000000000..a5aeaa679f
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/snapshot-diagnostic-RootSnapshotProbe.lean.txt.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/snapshot-shape.txt.gz b/reports/data/hexrcf-tree-quotation/diagnostics/snapshot-shape.txt.gz
new file mode 100644
index 0000000000..1fad3f4865
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/snapshot-shape.txt.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/tree-quote-integration-1.log.gz b/reports/data/hexrcf-tree-quotation/diagnostics/tree-quote-integration-1.log.gz
new file mode 100644
index 0000000000..54568d7713
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/tree-quote-integration-1.log.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/tree-quote-integration-2.log.gz b/reports/data/hexrcf-tree-quotation/diagnostics/tree-quote-integration-2.log.gz
new file mode 100644
index 0000000000..fde0081667
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/tree-quote-integration-2.log.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/diagnostics/tree-quote-integration-3.log.gz b/reports/data/hexrcf-tree-quotation/diagnostics/tree-quote-integration-3.log.gz
new file mode 100644
index 0000000000..829cbc88e8
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/diagnostics/tree-quote-integration-3.log.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/validation/collect.py.txt b/reports/data/hexrcf-tree-quotation/validation/collect.py.txt
new file mode 100644
index 0000000000..9a3f886b4e
--- /dev/null
+++ b/reports/data/hexrcf-tree-quotation/validation/collect.py.txt
@@ -0,0 +1,47 @@
+from pathlib import Path
+import gzip,hashlib,json,subprocess,shutil
+repo=Path.cwd(); task=Path('/home/kim/.codex/tasks/hex-10358'); out=repo/'reports/data/hexrcf-tree-quotation'
+out.mkdir(parents=True,exist_ok=True)
+git=lambda *a:subprocess.check_output(['git',*a],cwd=repo)
+sha=lambda raw:hashlib.sha256(raw).hexdigest()
+source=git('rev-parse','HEAD').decode().strip(); baseline='4da7dc2e6fbf34509aa1a532cc2ddf1726e2caf4'
+old=json.loads((repo/'reports/data/hexrcf-quotient-branches/context.json').read_text())
+paths=set(old['sources'])|set(git('diff','--name-only',baseline,source).decode().splitlines())
+record=dict(source_commit=source,source_tree=git('rev-parse',source+'^{tree}').decode().strip(),baseline_commit=baseline,sources={},unchanged_guards=old['unchanged_guards'],artifacts=[],validation={},visually_inspected_captures=[],complete_packet_accepted=False)
+for path in sorted(paths):
+ raw=git('show',source+':'+path);assert (repo/path).read_bytes()==raw,path;record['sources'][path]=sha(raw)
+def retain(file,path,compress=False):
+ raw=file.read_bytes(); dest=out/path;dest.parent.mkdir(parents=True,exist_ok=True);dest.write_bytes(gzip.compress(raw,mtime=0) if compress else raw);data=dest.read_bytes();item=dict(path=path,bytes=len(data),sha256=sha(data))
+ if compress:item['uncompressed_sha256']=sha(raw)
+ record['artifacts'].append(item);return path
+for key,name in dict(integration='tree-quote-integration-4.log',public='tree-quote-public-1.log',audit='tree-quote-audit-1.log',render='tree-quotation-render-2.log',browser='tree-quotation-browser-2.log').items():
+ assert 'code=exited, status=0/SUCCESS' in (task/name).read_text(),name;record['validation'][key]=retain(task/name,'validation/'+name+'.gz',True)
+metadata=json.loads((task/'tree-quote-metadata.json').read_text());assert all(x['exit_code']==0 for x in metadata)
+retain(task/'tree-quote-metadata.json','validation/metadata.json')
+for row in metadata:retain(task/row['log'],'validation/'+row['log']+'.gz',True)
+for name in ['tree-quote-metadata.py','tree-quote-integration-targets.txt','tree-memory-policy.txt']:
+ retain(task/name,'validation/'+name+'.gz',True)
+retain(task/'bin/run-bounded','validation/run-bounded.sh');retain(task/'collect-tree-quotation.py','validation/collect.py.txt')
+retain(task/'scalar-review-render/TreeReviewRender.lean','validation/render.lean.txt')
+retain(task/'tree-quotation-browser.mjs','captures/browser.mjs')
+for sourceName,dest in [('tree-quotation-inspection.json','inspection.json'),('tree-quotation-visual-review.json','visual-review.json'),('tree-quotation-section-overflow.json','section-overflow.json')]:retain(task/sourceName,'captures/'+dest)
+for label in ['desktop','narrow']:
+ for kind in ['introduction','example','budget']:
+ name=f'tree-quotation-{label}-{kind}.png';record['visually_inspected_captures'].append(retain(task/name,'captures/'+name))
+for file in sorted((task/'tree-quotation-overflow-attempt-1').iterdir()):retain(file,'diagnostics/narrow-overflow/'+file.name+'.gz',True)
+for pattern in ['tree-quote-integration-[123].log','quote-snapshot-*.log','quote-snapshot-*-interrupt.json','fresh-complete-snapshot-*.log','fresh-complete-snapshot-*-interrupt.*','fresh-complete-profile-1*.log','fresh-complete-profile-1-interrupt.txt','fresh-complete-replay-1*.log','replay-equations-1.log','replay-quote-*.log','replay-boundary-*.lean.txt','snapshot-diagnostic-*.lean.txt','isolated-step*.txt','snapshot-shape.txt']:
+ for file in sorted(task.glob(pattern)):
+ dest='diagnostics/'+file.name+'.gz'
+ if not any(x['path']==dest for x in record['artifacts']):retain(file,dest,True)
+for name in ['QuoteSnapshot','SnapshotSeed','SnapshotRead','SnapshotReject','SnapshotLocalRead','SnapshotReplay','SnapshotRepair','SnapshotParts','SnapshotBridge','SnapshotInner','SnapshotShape','SnapshotExplicit']:
+ retain(task/'scalar-review-render'/(name+'.lean'),'diagnostics/current-debug-sources/'+name+'.lean.txt.gz',True)
+core=git('show',source+':adapters/HexRCF/RealCoefficients/RootQuote.lean')
+assert (task/'replay-boundary-RootReplayQuoteProbe.lean.txt').read_bytes()==core.replace(b'RootQuote',b'RootReplayQuoteProbe')
+record['diagnostic_source_note']='The full five-million-node run uses exactly the recorded production algorithm with only the quoter namespace changed. Debug source files under current-debug-sources are the final corrected tools; earlier failed/interrupted tool attempts are retained as diagnostics and are not claimed to have run those final bytes. No compiled debug snapshot is proof evidence or a dependency of the ordinary conformance.'
+record['snapshot']=json.loads((task/'fresh-complete-snapshot-2-interrupt.json').read_text())
+record['compiled_files']=[]
+for name in ['TreeQuoteData','TreeQuote','TreeQuotePublic','TreeQuoteProofs']:
+ path='.lake/build/lib/lean/HexRCF/'+name+'.olean';raw=(repo/path).read_bytes();record['compiled_files'].append(dict(path=path,bytes=len(raw),sha256=sha(raw)))
+record['scope']='Public leaf/split quotation, ordinary importing examples, exact/below budgets, failure rollback, strict fresh-body audits, compatibility and complete manual. All six changed desktop/narrow targets were actually inspected.'
+record['limits']='Complete original-source literal packet still exhausts five million proof nodes, 5,000,000+1, after passing the old conversion stall. No source-goal acceptance, complete backend or algebraic completeness follows. Interrupted diagnostics and differently bounded runs are not matched AB/BA speed evidence. Compiled module sizes and charged proof nodes are not physical DAG or certificate sizes. Existing page/section overflow remains separate from the zero-overflow changed content.'
+(out/'context.json').write_text(json.dumps(record,indent=2)+'\n');print(f'Retained {len(record["artifacts"])} artifacts/{len(record["sources"])} sources at {source}')
diff --git a/reports/data/hexrcf-tree-quotation/validation/metadata.json b/reports/data/hexrcf-tree-quotation/validation/metadata.json
new file mode 100644
index 0000000000..f378d34dc0
--- /dev/null
+++ b/reports/data/hexrcf-tree-quotation/validation/metadata.json
@@ -0,0 +1,61 @@
+[
+ {
+ "name": "copyright",
+ "command": [
+ "python3",
+ "scripts/check_copyright_headers.py"
+ ],
+ "log": "tree-quote-metadata-copyright.log",
+ "exit_code": 0
+ },
+ {
+ "name": "lines",
+ "command": [
+ "python3",
+ "scripts/check_file_line_counts.py",
+ "--base",
+ "origin/main"
+ ],
+ "log": "tree-quote-metadata-lines.log",
+ "exit_code": 0
+ },
+ {
+ "name": "dag",
+ "command": [
+ "python3",
+ "scripts/check_dag.py"
+ ],
+ "log": "tree-quote-metadata-dag.log",
+ "exit_code": 0
+ },
+ {
+ "name": "admissions",
+ "command": [
+ "python3",
+ "scripts/ci/check_named_admissions.py"
+ ],
+ "log": "tree-quote-metadata-admissions.log",
+ "exit_code": 0
+ },
+ {
+ "name": "diff",
+ "command": [
+ "git",
+ "diff",
+ "HEAD",
+ "--check"
+ ],
+ "log": "tree-quote-metadata-diff.log",
+ "exit_code": 0
+ },
+ {
+ "name": "selected-admissions",
+ "log": "tree-quote-metadata-selected-admissions.log",
+ "exit_code": 0
+ },
+ {
+ "name": "relative",
+ "log": "tree-quote-metadata-relative.log",
+ "exit_code": 0
+ }
+]
diff --git a/reports/data/hexrcf-tree-quotation/validation/render.lean.txt b/reports/data/hexrcf-tree-quotation/validation/render.lean.txt
new file mode 100644
index 0000000000..849f6ebfb3
--- /dev/null
+++ b/reports/data/hexrcf-tree-quotation/validation/render.lean.txt
@@ -0,0 +1,5 @@
+import HexManual
+import VersoManual
+#eval Verso.Genre.Manual.manualMain (%doc HexManual)
+ (options := ["--output", "tree-review-html",
+ "--without-tex", "--with-html-single", "--without-html-multi"])
diff --git a/reports/data/hexrcf-tree-quotation/validation/run-bounded.sh b/reports/data/hexrcf-tree-quotation/validation/run-bounded.sh
new file mode 100644
index 0000000000..2cc8636e8a
--- /dev/null
+++ b/reports/data/hexrcf-tree-quotation/validation/run-bounded.sh
@@ -0,0 +1,10 @@
+#!/usr/bin/env bash
+set -euo pipefail
+exec systemd-run --user --wait --pipe --collect \
+ --unit=hex-10358-lean-build \
+ --property=MemoryMax=32G \
+ --property=MemorySwapMax=0 \
+ --property=OOMPolicy=kill \
+ --working-directory="$PWD" \
+ --setenv="PATH=$PATH" --setenv=LEAN_NUM_THREADS=2 \
+ "$@"
diff --git a/reports/data/hexrcf-tree-quotation/validation/tree-memory-policy.txt.gz b/reports/data/hexrcf-tree-quotation/validation/tree-memory-policy.txt.gz
new file mode 100644
index 0000000000..6e27533ca0
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/validation/tree-memory-policy.txt.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/validation/tree-quotation-browser-2.log.gz b/reports/data/hexrcf-tree-quotation/validation/tree-quotation-browser-2.log.gz
new file mode 100644
index 0000000000..39e1cf3e78
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/validation/tree-quotation-browser-2.log.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/validation/tree-quotation-render-2.log.gz b/reports/data/hexrcf-tree-quotation/validation/tree-quotation-render-2.log.gz
new file mode 100644
index 0000000000..512c8747a5
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/validation/tree-quotation-render-2.log.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/validation/tree-quote-audit-1.log.gz b/reports/data/hexrcf-tree-quotation/validation/tree-quote-audit-1.log.gz
new file mode 100644
index 0000000000..43a407e110
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/validation/tree-quote-audit-1.log.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/validation/tree-quote-integration-4.log.gz b/reports/data/hexrcf-tree-quotation/validation/tree-quote-integration-4.log.gz
new file mode 100644
index 0000000000..29169555e1
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/validation/tree-quote-integration-4.log.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/validation/tree-quote-integration-targets.txt.gz b/reports/data/hexrcf-tree-quotation/validation/tree-quote-integration-targets.txt.gz
new file mode 100644
index 0000000000..2c6314b079
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/validation/tree-quote-integration-targets.txt.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/validation/tree-quote-metadata-admissions.log.gz b/reports/data/hexrcf-tree-quotation/validation/tree-quote-metadata-admissions.log.gz
new file mode 100644
index 0000000000..0ce703cc29
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/validation/tree-quote-metadata-admissions.log.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/validation/tree-quote-metadata-copyright.log.gz b/reports/data/hexrcf-tree-quotation/validation/tree-quote-metadata-copyright.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/validation/tree-quote-metadata-copyright.log.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/validation/tree-quote-metadata-dag.log.gz b/reports/data/hexrcf-tree-quotation/validation/tree-quote-metadata-dag.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/validation/tree-quote-metadata-dag.log.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/validation/tree-quote-metadata-diff.log.gz b/reports/data/hexrcf-tree-quotation/validation/tree-quote-metadata-diff.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/validation/tree-quote-metadata-diff.log.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/validation/tree-quote-metadata-lines.log.gz b/reports/data/hexrcf-tree-quotation/validation/tree-quote-metadata-lines.log.gz
new file mode 100644
index 0000000000..86e43ea321
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/validation/tree-quote-metadata-lines.log.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/validation/tree-quote-metadata-relative.log.gz b/reports/data/hexrcf-tree-quotation/validation/tree-quote-metadata-relative.log.gz
new file mode 100644
index 0000000000..154780e0b7
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/validation/tree-quote-metadata-relative.log.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/validation/tree-quote-metadata-selected-admissions.log.gz b/reports/data/hexrcf-tree-quotation/validation/tree-quote-metadata-selected-admissions.log.gz
new file mode 100644
index 0000000000..119d1a3e81
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/validation/tree-quote-metadata-selected-admissions.log.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/validation/tree-quote-metadata.py.gz b/reports/data/hexrcf-tree-quotation/validation/tree-quote-metadata.py.gz
new file mode 100644
index 0000000000..12ca69a4bd
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/validation/tree-quote-metadata.py.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/validation/tree-quote-public-1.log.gz b/reports/data/hexrcf-tree-quotation/validation/tree-quote-public-1.log.gz
new file mode 100644
index 0000000000..8365fba624
Binary files /dev/null and b/reports/data/hexrcf-tree-quotation/validation/tree-quote-public-1.log.gz differ
diff --git a/reports/data/hexrcf-tree-quotation/verify.py b/reports/data/hexrcf-tree-quotation/verify.py
new file mode 100644
index 0000000000..7f16ac599d
--- /dev/null
+++ b/reports/data/hexrcf-tree-quotation/verify.py
@@ -0,0 +1,94 @@
+#!/usr/bin/env python3
+"""Verify public replay-tree quotation evidence."""
+import argparse
+import gzip
+import hashlib
+import json
+from pathlib import Path
+import subprocess
+
+parser = argparse.ArgumentParser(description=__doc__)
+parser.add_argument('--check-head', action='store_true')
+args = parser.parse_args()
+root = Path(__file__).resolve().parent
+repo = root.parents[2]
+record = json.loads((root / 'context.json').read_text())
+git = lambda *arguments: subprocess.check_output(['git', *arguments], cwd=repo)
+sha = lambda raw: hashlib.sha256(raw).hexdigest()
+
+def artifact(path):
+ return gzip.decompress((root / path).read_bytes()).decode()
+
+def log(key):
+ return artifact(record['validation'][key])
+
+assert git('rev-parse', record['source_commit'] + '^{tree}').decode().strip() == record['source_tree']
+for path, digest in record['sources'].items():
+ assert sha(git('show', record['source_commit'] + ':' + path)) == digest, path
+ if args.check_head:
+ assert sha((repo / path).read_bytes()) == digest, path
+if args.check_head:
+ paths = git('diff', '--name-only', record['source_commit']).decode().splitlines()
+ paths += git('ls-files', '--others', '--exclude-standard').decode().splitlines()
+ assert all(path.startswith('reports/') for path in paths), paths
+for path in record['unchanged_guards']:
+ assert git('show', record['baseline_commit'] + ':' + path) == git(
+ 'show', record['source_commit'] + ':' + path), path
+for item in record['artifacts']:
+ raw = (root / item['path']).read_bytes()
+ assert len(raw) == item['bytes'] and sha(raw) == item['sha256'], item['path']
+ if 'uncompressed_sha256' in item:
+ assert sha(gzip.decompress(raw)) == item['uncompressed_sha256'], item['path']
+for key in record['validation']:
+ assert 'code=exited, status=0/SUCCESS' in log(key), key
+assert 'Build completed successfully (14388 jobs)' in log('integration')
+assert 'Built HexManual (' in log('render')
+for message in [
+ 'public replay quotation actual bodies: 254 theorems/4 definitions; nonempty traces=246',
+ 'generic rational quotation: 208 actual theorem bodies',
+ 'actual cubic and conditional quotation bodies under kernel producer diagnostics: 265',
+ 'dependent quotation actual bodies: 153 theorems/16 definitions; nonempty traces=78',
+ 'retained root/context actual bodies: 827 theorems/63 definitions; nonempty traces=875',
+ 'public packet actual bodies: 712 theorems/67 definitions; nonempty traces=769',
+ 'root/header packet actual bodies: 730 theorems/66 definitions; nonempty traces=781',
+ 'root context actual bodies: 738 theorems/68 definitions; nonempty traces=791',
+ 'root-table quotation: 103 theorem bodies, 14 data definitions',
+ 'sign packet quotation: 109 theorem bodies, 11 definitions',
+ 'sign packet nonempty diagnostic traces: 110',
+ 'sign packet final exhaustion: 79508+23',
+ 'retained packet exact/one-below request budget=2405322',
+ 'wrong-context/swapped-child reader failures and caller rollback checked']:
+ assert message in log('integration'), message
+failure=artifact('diagnostics/fresh-complete-replay-1.log.gz')
+assert 'limit 5000000, consumed 5000000, requested 1' in failure
+assert 'status=1/FAILURE' in failure and '38min 13.237s' in failure
+progress=artifact('diagnostics/fresh-complete-replay-1-progress.log.gz')
+assert 'boundary 2000:' in progress and 'original source reified' in progress
+assert 'complete literal acceptance checked' not in progress
+assert record['complete_packet_accepted'] is False
+core=git('show',record['source_commit']+':adapters/HexRCF/RealCoefficients/RootQuote.lean')
+assert artifact('diagnostics/replay-boundary-RootReplayQuoteProbe.lean.txt.gz').encode()==core.replace(b'RootQuote',b'RootReplayQuoteProbe')
+assert 'exact saved target accepted with public Replay.check.eq_1' in artifact('diagnostics/quote-snapshot-explicit-3.log.gz')
+assert 'status=0/SUCCESS' in artifact('diagnostics/quote-snapshot-explicit-3.log.gz')
+assert 'snapshot wrong-goal data rejected by the ordinary kernel' in artifact('diagnostics/quote-snapshot-read-3.log.gz')
+assert record['snapshot']['last_check']=='start RootSnapshotProbe.step'
+assert record['snapshot']['snapshot_bytes']>0 and len(record['snapshot']['snapshot_sha256'])==64
+metadata=json.loads((root/'validation/metadata.json').read_text())
+assert {x['name'] for x in metadata}=={'copyright','lines','dag','admissions','selected-admissions','relative','diff'}
+assert all(x['exit_code']==0 for x in metadata)
+assert '15 changed/new Lean files' in artifact('validation/tree-quote-metadata-selected-admissions.log.gz')
+memory=artifact('validation/tree-memory-policy.txt.gz')
+assert all(x in memory for x in ['ActiveState=active','MemoryMax=34359738368','MemorySwapMax=0','OOMPolicy=kill','LEAN_NUM_THREADS=2'])
+inspection=json.loads((root/'captures/inspection.json').read_text())
+assert {(x['label'],x['kind']) for x in inspection}=={(a,b) for a in ['desktop','narrow'] for b in ['introduction','example','budget']}
+assert all(x['descendantOverflow']==0 and x['targetScrollWidth']<=x['targetWidth']+1 for x in inspection)
+review=json.loads((root/'captures/visual-review.json').read_text())
+assert len(review['captures'])==len(record['visually_inspected_captures'])==6
+for item in review['captures']:
+ assert item['viewed'] is True and item['local_overflow']==0
+ assert sha((root/'captures'/item['path']).read_bytes())==item['sha256']
+assert 'Changed content overflows' in artifact('diagnostics/narrow-overflow/tree-quotation-browser-1.log.gz')
+assert len(record['compiled_files'])==4 and all(x['bytes']>0 for x in record['compiled_files'])
+print(f"Verified {len(record['artifacts'])} artifacts/{len(record['sources'])} sources; "
+ '254/4/246 public-tree audit, strict compatibility, complete manual and six inspected captures; '
+ 'complete-packet acceptance remains unproved')
diff --git a/reports/hexrcf-adapter-evidence.md b/reports/hexrcf-adapter-evidence.md
index 15e4d8f107..b6097e84b3 100644
--- a/reports/hexrcf-adapter-evidence.md
+++ b/reports/hexrcf-adapter-evidence.md
@@ -26,6 +26,8 @@ Mathlib and are never executable benchmark roots.
| Implemented surface | Evidence and limits |
| --- | --- |
| Handler selection and proof assignment | [HandlerTests](../HexRCF/HandlerTests.lean): deterministic names, malformed declarations, declines, wrong-goal proofs, state restoration and terminal failures. The base tactic rejects nonstandard axioms and checks the complete original-target proof in the ordinary kernel. |
+| Stored arithmetic from authenticated source leaves | [TowerCompile](../adapters/HexRCF/RealCoefficients/TowerCompile.lean) composes rational literals/casts, arithmetic, inversion and natural powers under an actual retained ordinary-real tower model. `prepareWith` preserves both source inventories in order and requires continuing source-preparation accounting. [Conformance](../conformance/HexRCF/TowerCompileConformance.lean) covers selected irrational leaves, zero-hidden original divisors, wrong sources/models, decline/failure rollback, unsupported functions and exhaustion. The [fresh audit](../conformance/HexRCF/TowerCompileProofs.lean) rechecks 36 actual theorem bodies, including private generated proofs, with the standard three axioms. This is coefficient arithmetic interpretation with supplied leaf authentication and model, not original guard discharge, automatic history discovery or complete frozen certificate acceptance. |
+| Complete ordered source valuation | [CellQuote.valuationWith](../adapters/HexRCF/RealCoefficients/CellQuote.lean) assembles zero/one/two-coordinate checked scalar families into the exact source valuation. [Conformance](../conformance/HexRCF/SourceValuationConformance.lean) rejects coordinate/proof permutations, missing entries, wrong counts and unresolved caller coordinates; its [fresh audit](../conformance/HexRCF/SourceValuationProofs.lean) rechecks fourteen actual theorem bodies with the standard three axioms. The [complete original-source quote](../conformance/HexRCF/CellSourceQuote.lean) consumes prepared arithmetic and freshly authenticated selected-root identity in the same request; [its record](hexrcf-source-valuations.md) retains the full 1,192-theorem/202-definition audit. The model, aliases, coefficient maps and seed facts remain supplied; this is not arbitrary history discovery or full tactic completeness. |
| Closed source conversion and selected embeddings | [CheckedConversions](../conformance/HexRCF/CheckedConversions.lean), [NormalizedCoefficients](../conformance/HexRCF/NormalizedCoefficients.lean), [RootAliasesConformance](../conformance/HexRCF/RootAliasesConformance.lean), [CertificationProofs](../conformance/HexRCF/CertificationProofs.lean): checked real/option/getD/QAdjoin conversion, positive/negative roots, square/cubic aliases and independently constructed fields. Common-field authentication covers the delivered witness languages, not all irreducible polynomials. |
| Supplied common-field irreducibility | [SuppliedIrreducible](../conformance/HexRCF/SuppliedIrreducible.lean) proves the fixed degree-eight quartic/√2 common polynomial through the owner's existing kernel factorizer. Its private executable closure stays in that construction module. [SuppliedIrreducibleProofs](../conformance/HexRCF/SuppliedIrreducibleProofs.lean) uses ordinary imports and the existing `rcf` command, retaining the supplied checked instance in a fresh source-goal proof. The scoped instance is inactive until explicit opt-in, including when the consumer imports the legacy certification proofs. Direct certification also checks its proof marker. All four complete inventories use the standard three axioms. Wrong runtime bindings and admitted supplied proofs reject; a rejected proof does not fall back to certificate production. Existing no-instance refusal and preparation controls remain separate. This supplied-proof route does not prove automatic common-field certification or algebraic acceptance complete. |
| Original divisor preflight | [AlgebraicDivision](../conformance/HexRCF/AlgebraicDivision.lean), [CheckedConversions](../conformance/HexRCF/CheckedConversions.lean), [PreparedCoefficients](../conformance/HexRCF/PreparedCoefficients.lean): original denominators survive cancellation and discarded branches. The prepared finite path checks guards before zero, constant and empty-domain shortcuts. |
@@ -49,7 +51,7 @@ Mathlib and are never executable benchmark roots.
| One-infinitesimal source-formula realization | [Literal data](../conformance/HexRCF/RealizationData.lean) and [fresh proof regressions](../conformance/HexRCF/Realization.lean): `Realization.queries` lifts the complete specialized source atom order as constant rational functions. `lift_eval` and `signs` prove agreement at every ordinary parameter; `exists_real` consumes the actual `Specialize.realizeBelow` law and the complete true Boolean row. A literal recursive BKR fixture for `X − (1 + ε)` derives one ordinary real witness for both `(1, 2]` guards together. Changed context/coefficient/query order, omitted BKR children, false and truncated rows are rejected. Negating the source formula retains the accepted count-one row while its Boolean result is false, testing the separate truth premise. The entire literal fixture definition closure is inspected, including imported private helpers. Foreign computational definitions require an explicit arithmetic/literal/count-index allowlist, independent of namespace; constructors, projections and proofs are permitted separately. Certificate producers and unlisted foreign helpers are rejected. Complete theorem axioms are checked; source proofs reference the checked replay and realization API, whose actual theorem bodies are inspected for the owner realization and shared Boolean laws. The literal count/moment data calls no producer. No search or convergence premise is required for finite success. Fixed ordered real coefficients, frontend source/divisor authentication and the original-goal equivalence remain separate obligations. This is not arbitrary nested-tower or successive-infinitesimal realization. |
| Fixed-field finite construction and replay | [FiniteReplay](../conformance/HexRCF/FiniteReplay.lean): exact formula/quantifier/coefficient/divisor/context bindings, complete recorded sign operands, malformed evidence, diagnostic false and preflight-before-search. `Replay.check_domains`, `check_spec`, `check_sound`, `check_original` and `build_spec` use actual real interpretation laws. Bounded production can exhaust. `buildTotal_checked`/`buildTotal_spec` connect the existing complete exact-field producer to finite acceptance for nonzero original divisors, independently of direct proposal depth; false remains diagnostic. |
| Original-goal API proof generation | [PreparedCoefficients](../conformance/HexRCF/PreparedCoefficients.lean) and [archived Prepared probes](https://github.com/kim-em/hex-dev/tree/45a4e4e9a4/bench/HexRCF/ProofProbe/Prepared): successful guarded and Ioc proofs use `Replay.check_sound`; proof inspection excludes producer calls. A fresh total-production probe sets direct proposal depth to zero and still quotes an accepted Ioc proof. Wrong transport, omitted guards, incorrect identities and false verdicts fail. Preparation/transport preserve caller metavariables on success and restore full state on unsuccessful exits, including runtime exceptions. Assigned metavariables cannot hide forbidden dependencies; acceptance closes a fresh uncached theorem of the exact target. Original guards are recovered again from the source before checking, so editing the stored guard arrays cannot omit them. Runtime polynomial/root, formula, quantifier, coefficients and divisor coordinates are bound to their expression data before diagnostics; source/valuation proofs are checked at their required types. Validation-only checks retain no unused auxiliary declarations. |
-| Original number-field formula production | [NumberField](../conformance/HexRCF/NumberField.lean): `NumberField.run` consumes the owner's original-field presentation factory and packs the caller's `QAdjoin` coordinates. `run_spec`, `run_total` and `run_true` retain the original selected real valuation and compose the shared native cell/quantifier laws. `value_eq_ofField` and `run_coefficients` connect it to the existing frontend coefficient conversion; `runWith`/`runWith_spec` reuse a retained presentation. Compiled controls select both quadratic conjugates, all three roots of a totally real cubic, and non-monic and rational generators; they find further roots, retain polynomials with common and repeated roots, compute and swap irrational fixed-field coordinates under both quadratic embeddings, pack a degree-two cubic-field coordinate and its negative, cancel leading terms, and exercise zero/constant atoms, all comparisons/Boolean forms, both quantifiers and half-open/equal/reversed domains. Complete theorem axiom audits allow only the standard three axioms. This is total diagnostic production under the actual original-field factory law, not generic certificate acceptance, frozen replay, frontend quotation or a performance measurement. |
+| Original number-field formula production | [NumberField](../conformance/HexRCF/NumberField.lean): `NumberField.run` consumes the owner's original-field presentation factory and packs the caller's `QAdjoin` coordinates. `run_spec`, `run_total` and `run_true` retain the original selected real valuation and compose the shared native cell/quantifier laws. `value_eq_ofField` and `run_coefficients` connect it to the existing frontend coefficient conversion; `runWith`/`runWith_spec` reuse a retained presentation. The original factory-model reader now uses the public owner equation `Presentation.model_eq` through ordinary imports; its [source-bound validation](hexrcf-public-model.md) checks that the private import is absent. This does not reconstruct a frozen context history. Compiled controls select both quadratic conjugates, all three roots of a totally real cubic, and non-monic and rational generators; they find further roots, retain polynomials with common and repeated roots, compute and swap irrational fixed-field coordinates under both quadratic embeddings, pack a degree-two cubic-field coordinate and its negative, cancel leading terms, and exercise zero/constant atoms, all comparisons/Boolean forms, both quantifiers and half-open/equal/reversed domains. Complete theorem axiom audits allow only the standard three axioms. This is total diagnostic production under the actual original-field factory law, not generic certificate acceptance, frozen replay, frontend quotation or a performance measurement. |
| Shared source truth over native cells | [Samples](../conformance/HexRCF/Samples.lean): `Samples.run` specializes once and folds the actual native cells through the existing strict QF/quantifier traversal. `run_spec` proves exactly shared `Prenex.toProp` under an actual ordinary-real parent model, with all supplied coefficient coordinates in that parent. Section, sector and cell laws use the same source valuation. Controls distinguish conjugates and two distinct ordered coordinates, diagnostic false, repeated/common roots, zero/cancelled atoms, all comparisons/Boolean forms and half-open/equal/reversed domains. Public-module examples and eight composed axiom guards have only the standard three axioms. Raw row length checks do not authenticate signs or certificates. This diagnostic producer API does not provide frozen replay, frontend source/divisor authentication or arbitrary-depth joint infinitesimal realization; no new performance claim is made. |
| Checked sign retrieval | [SignIndex](../conformance/HexRCF/SignIndex.lean): indexed hits are checked against the original table position and exact key. Missing or malformed routing falls back to the original lookup, preserving every original hit. Actual quoted-tree and linear/indexed proof regressions exercise both routes, including frozen replay failures and state restoration. |
| Generator-window proposals and replay | [GeneratorWindow](../conformance/HexRCF/GeneratorWindow.lean): checked containment and two count-one certificates identify the same selected real root. Production can rebuild all sign entries on the tighter interval; frozen quotation never refines. Malformed, stale, wrong-conjugate and endpoint-root evidence fails, and both lookup modes restore state on replay failure. |
@@ -93,6 +95,7 @@ Targeted retained experiments answer concrete implementation questions:
| One replay goal versus split conjuncts | [Replay comparison](hexrcf-replay-proofs.md) | The retained comparison did not establish a gain; combined replay stays off. |
| Degree, source atoms and coefficient width | [Input costs and attribution](hexrcf-scaling-proofs.md) | Independent two-point observations in a no-real-root regime, with serialized/expanded syntax and a representative phase profile. These are not asymptotic verdicts or precision/depth evidence. |
| Compiled supplied-root packet costs | [Catalog stages](hexrcf-selected-catalog-compiled.md) | Eighteen retained samples record the cumulative lexical, parser and default reconstruction operations on one source-bound packet. Imports are Mathlib-free; native reconstruction remains. This is neither strict replay nor scaling, exclusive-stage cost or full tactic/proof cost. |
+| Compiled source-packet dimensions | [Selected-source observations](hexrcf-source-replay-dimensions.md) | All 440 samples cover five independent degree/query/bit/precision/depth axes and repeated/common-root cases. Four cumulative Mathlib-free stages retain operand, row-DAG, byte and memory inventories. This measures supplied numerical packets with default native predecessor decoding, excluding adapter preparation and proofs; it does not establish strict all-depth replay or an asymptotic timing law. |
The consumed signed-remainder producer already uses
[`Sturm.normalize`](../HexSturm/Basic.lean), which divides by the positive
diff --git a/reports/hexrcf-admission.md b/reports/hexrcf-admission.md
new file mode 100644
index 0000000000..b3ed87469b
--- /dev/null
+++ b/reports/hexrcf-admission.md
@@ -0,0 +1,81 @@
+# RCF proof dependency traversal
+
+The ordinary-proof admission check now shares one visited set across the
+constants in a single candidate. It discards the set before returning. Imported
+constants still use Lean's exported axiom inventories, including hidden theorem
+bodies; current-module declarations visit their types and bodies. The cases for
+opaque declarations, inductives, constructors and recursors follow Lean's own
+collector.
+
+Both admission checks around the fresh, uncached kernel theorem remain. Unsafe
+dependencies, unresolved expressions and disagreement with the original target
+remain errors. There is no cross-call cache, budget increase or changed axiom
+whitelist. This is an implementation change to the guard, rather than removal
+of a guard.
+
+The source implementation is `637da4c86e`; the accompanying record binds its
+complete commit identifier and exact sources. Earlier evidence records retain
+their original pins. Their integrity checks do not attest this changed checker.
+
+## Functional evidence
+
+The isolated checkout passed the complete original-source quotation with the
+unchanged 24-million-node and 60-million-heartbeat limits, consuming 8,651,669
+proof nodes. Its fresh importing audit checked 1,193 theorem bodies and 202
+definitions, with 1,353 nonempty kernel traces. Its complete axiom closure was
+`propext`, `Classical.choice`, and `Quot.sound`; the existing producer and old
+fixture exclusions remained enabled. This probe changes only the namespace and
+profiling options of the source regression.
+
+The new default test module compares admission with the previous policy on 19
+imported, local, opaque, inductive, shared, unresolved and forbidden expressions.
+Three further cases reuse one declaration name across restored environments:
+valid, forbidden, valid. The forbidden local declaration exists only inside a
+fully restored test state. Three raw forbidden expressions and that discarded
+fixture are intentional rejection tests, not accepted proof evidence. The
+synchronous and asynchronous handler suites also passed in the isolated tree.
+
+The broader 51-target source, rational-compatibility, optional-umbrella and
+manual integration build passed. It also rebuilt the original source and
+its fresh importing audit with the same node and body counts. The full log
+and exact invocation are retained in the source-bound record.
+
+## Cost evidence and limits
+
+A fixed guard-only comparison used an automatically leased CPU on the shared
+host, two trials in adjacent AB/BA order and ten checks per arm. A is the
+reference policy's separate traversal per constant; B is the new checker. All
+completed arms were retained.
+
+| Trial and order | A, total milliseconds | B, total milliseconds |
+| --- | ---: | ---: |
+| 0, AB | 20.074 | 5.839 |
+| 1, BA | 19.695 | 5.572 |
+
+This input has a depth-128 local chain and eight roots sharing that chain. It
+establishes a benefit for this dependency graph, not general scaling or a
+whole-tactic speedup.
+
+Separate full-source diagnostic profiles identified substantial admission work:
+317 seconds with the timing-only original checker and 189 seconds with the
+prototype. These are unpaired diagnostic runs. Lean's profiler reports exclusive
+categories: nested kernel type checking is separate (237 and 270 seconds), as is
+the remaining enclosing quotation work (378 and 388 seconds). Candidate-check
+timings alone therefore do not measure all kernel work. No whole-source speedup
+is inferred from these profiles. The timing-only build also rebuilt dependencies,
+so its service runtime and memory are not a matched comparison.
+
+The final integration's original-source module took 830 seconds. This remains
+an expensive fixed-input proof construction; it is a host-specific observation,
+not a matched before/after result.
+
+Every Lean/Lake invocation used one serial systemd service with aggregate
+`MemoryMax=32G`, `MemorySwapMax=0` and `LEAN_NUM_THREADS=2`. The prototype full
+source used 5.7 GiB peak; its separate fresh audit used 6.8 GiB, both without swap.
+Setup failures, the explicitly terminated cache-setup attempt, initial negative
+test warning and the static negative-probe classification failure are
+retained alongside successful runs. They are not reported as successful samples.
+
+This work does not complete #10358's generic source/history assembly, accepted
+algebraic completeness, general joint realization, strict compiled record
+coverage, remaining manual/API coverage or final review and merge requirements.
diff --git a/reports/hexrcf-bounded-source.md b/reports/hexrcf-bounded-source.md
new file mode 100644
index 0000000000..ad0fb94ecb
--- /dev/null
+++ b/reports/hexrcf-bounded-source.md
@@ -0,0 +1,21 @@
+# Bounded selected-source construction
+
+`SourceBuild.buildOn` uses the existing `Descriptor.build` on supplied open endpoints with no derivative queries. The owner checks endpoint guards, squarefreeness and exactly one root. The adapter then produces the same independent equation and original enclosure packets as `SourceBuild.select`. Internal production failures and invalid/absent/ambiguous descriptors have distinct errors. It never retries all-real enumeration.
+
+Native controls construct both quadratic conjugates and a cubic root, compare all 25,477 canonical bytes with frozen constructor data, and separately validate six scalar graphs. They reject a root at an endpoint, equal/reversed endpoints, repeated/zero/constant input, an absent or ambiguous root, and zero/wrong-conjugate source windows. Generator freshness includes both this fixture and the earlier all-real fixture, whose generated modules are unchanged.
+
+The separate proof module restores the literal descriptors and packets without native producers and identifies the original positive square-root alias, selected negative quadratic embedding and positive cubic-power alias. It still consumes the supplied rational model, source alias selection and coefficient-map laws. Its three requests charge 687,781/690,200/731,070 proof nodes under the unchanged one-million-node default. Final driver proof checks and exports are outside those counts. A request with limit 687,780 refuses and restores caller metavariables and the entire declaration list.
+
+The fresh importing audit rechecks 392 theorem bodies/449 definitions/811 nonempty traces, with standard-three axiom closure and the existing source-fixture and producer exclusions. The shared producer guard additionally rejects `SourceBuild.buildOn` by a literal name; it adds no producer import. A native test resolves the actual declaration and checks that the guard contains it.
+
+The initial default-budget quotation module built in 49 seconds. Its combined native/proof/fresh-audit build passed in 82.936 seconds, peak 1.9 GiB/no swap; the later below-budget control and pinned-audit build passed in 84.397 seconds, peak 1.1 GiB/no swap. The earlier scratch probe used an explicit 24M test ceiling but consumed the same three inner node counts; its completed inputs/logs are retained separately. These are fixed-input observations answering the descriptor-shape quotation question. They are not matched timing comparisons, executable benchmarks or scaling claims.
+
+The final 57-target integration passed: 14,498 jobs with cached dependencies reused, 27min17.001s, peak 11 GiB/no swap. Rational/handler compatibility, both proof-only import guards, the earlier enumerated-source proofs and the full original-source quotation/audit remain green. The latter retains 8,651,669 nodes and 1,193 theorems/202 definitions/1,353 nonempty traces. Eight metadata checks pass.
+
+Only the manual timing wording changed after that integration. The record binds its original source and exact patch. The final full manual rebuild/render passed in 2min42.229s, peak 2.7 GiB/no swap. Browser validation passed in 10.447s, peak 3 GiB/no swap. All six desktop 1440px/narrow 390px captures were actually viewed; changed-target local overflow is zero. Existing global page scrolling is outside this claim.
+
+A scratch-directory setup command failed before editing the manual. Its incidental first render was explicitly stopped after 10.625 seconds (SIGTERM), not counted as passing. The repaired command uses an absolute source path and stops on setup errors. The stopped log is retained separately from the final successful render.
+
+All own Lean/Lake/browser invocations remain serial under aggregate 32 GiB, zero swap and two Lean threads. The exact Lake exemption adds only seven conformance-module registrations. Existing factorization measurements and earlier evidence pins are unchanged.
+
+This is a bounded source proposal API, not generic source-history reconstruction, complete frozen cell coverage or a complete algebraic tactic. Full #10358, its existing owner gates, required fresh Opus review and final CI/merge remain separate obligations. The issue stays open and partial delivery uses Refs.
diff --git a/reports/hexrcf-cell-finish.md b/reports/hexrcf-cell-finish.md
new file mode 100644
index 0000000000..727d77d78d
--- /dev/null
+++ b/reports/hexrcf-cell-finish.md
@@ -0,0 +1,75 @@
+# Continued budgets through original-source finishing
+
+`CellQuote.finishPacketWith` consumes a prepared source in the caller's
+reflection request. Replay and source finishing can now share one budget and
+transaction. Finishing checks the exact original target, reconstructs the
+original divisor inventory, checks the supplied source equivalence and binds
+the accepted checker to the original coefficient valuation. Failure restores
+the enclosing attempt, including its quotation declarations. Compatibility
+entrypoints retain their existing signatures.
+
+The constant regression checks cumulative exact/below proof limits, continued
+source-budget exhaustion, wrong targets, divisor inventories, equivalences,
+verdict proofs and complete caller restoration. Two further controls supply
+valid ordinary-kernel equivalences to true statements with zero denominators:
+`0/0` and division by `√2−√2` under multiplication by zero. Finishing rejects
+both despite the valid equivalences; logical equivalence cannot erase the
+original divisor policy.
+
+| Fixed input | Charged proof nodes |
+| --- | ---: |
+| Source preparation and constant finishing | 7,430 |
+| Constant replay and original-source finishing | 448,469 |
+| Complete algebraic original-source attempt | 8,651,669 |
+
+The algebraic example remains
+`∃ x : ℝ, x²−Real.sqrt 2 ≥ 0 ∧ x²−Real.sqrt 2 ≤ 0 ∧ 0=0`.
+Its reification/cell-quotation stage uses 8,644,422 nodes. The final count also
+includes finishing and the driver's final proof checks, all in one transaction
+seeded with source preparation's usage. The existing 24M proof-node and 60M
+heartbeat allowances are unchanged. Lake reports 916s for the source module.
+This remains expensive fixed-input proof construction.
+
+| Fresh actual-body audit | Theorems | Definitions | Nonempty traces |
+| --- | ---: | ---: | ---: |
+| Joint constant source | 163 | 43 | 170 |
+| Constant/rational stages | 1,247 | 101 | 1,298 |
+| Complete original algebraic source | 1,193 | 202 | 1,353 |
+
+These audits retain the producer-reduction guards, exclude older fixture
+acceptances and check complete transitive axiom closure against the standard
+three axioms. The new source record is untrusted input, not an assumption of
+its own validity. No admission, new axiom or native decision proof is added.
+
+The final component build passes in 23.982s, peak 1 GiB/no swap. The initial
+combined source/manual build failed only on the obsolete importing-audit count,
+after the source and all body guards passed; its retained runtime is
+20m46.461s, peak 7 GiB. Updating the observed count yields a passing selection
+of all 47 affected targets, optional umbrella and complete manual: 14,475 jobs
+with cached dependencies reused, 4m39.458s, peak 3.4 GiB/no swap. This is not
+the entire default conformance set. Seven metadata checks pass.
+
+Only the manual argument layout changed after that selection. The final render
+rebuilds and checks it: 2m28.608s, peak 2.2 GiB. Browser capture passes in
+10.718s, peak 6.2 GiB. All six final 1440px/390px captures were actually
+inspected, with zero local overflow in changed targets. Two failed narrow
+layouts and their available exact inputs are retained. Existing unrelated page
+overflow is outside scope.
+
+The [96-artifact/108-source record](data/hexrcf-cell-finish/README.md) binds the
+implementation, actual invocation, active resource policy, input snapshots,
+diagnostics and captures. Its verifier checks the exact manual-only difference
+between the affected build and final rendered source. Earlier evidence keeps
+its original source pins. Failed test-message and test-input elaborations are
+diagnostics, not accepted proof evidence.
+
+Every own Lean/Lake/browser invocation is serial under an aggregate 32 GiB cap,
+no swap and two Lean threads. These observations establish no matched speedup,
+scaling, compiled replay timing or physical-sharing claim.
+
+General source/provider/predecessor and frozen-history assembly, complete
+tactic integration and accepted algebraic completeness, joint realization,
+strict compiled missing-record coverage, practical costs and the remaining
+API/manual/evidence requirements remain incomplete. The fixed parent, source
+anchor/value laws and seed facts remain supplied. Issue #10358 stays open;
+#10331 owns downstream dispatch.
diff --git a/reports/hexrcf-cell-memos.md b/reports/hexrcf-cell-memos.md
new file mode 100644
index 0000000000..add24d3d9b
--- /dev/null
+++ b/reports/hexrcf-cell-memos.md
@@ -0,0 +1,78 @@
+# Checked row graphs and algebraic source quotation
+
+`RowQuote.withDecoder` shares checked graph validation within one quotation
+attempt. It independently parses each packet, binds its exact ordered queries,
+and uses the owner's `SelectedSigns.ofMemo?` and `Dag.selectedSigns_memo` to
+recover each root's row. Keys retain the actual operations, sign function,
+context, head, endpoints and complete graph. Each reused equation is checked
+against the exact new reader. Descriptor projections preserve their supplied
+operation indices, including operations only propositionally equal to canonical
+arithmetic. The cache is local; all work uses the enclosing budget and transaction.
+
+`CellQuote.replayWith` uses that decoder for its existing root, pointwise-cell
+and strict-fold stages. No new solver handler, arithmetic producer, field
+instance or owner proof is introduced.
+
+The independent source example reconstructs the coefficient polynomial and
+checks a complete frozen packet over the retained positive square root of 2.
+It authenticates the coefficient and proves the exact original statement
+`∃ x : ℝ, x²−√2 ≥ 0 ∧ x²−√2 ≤ 0 ∧ 0=0`. Its proof excludes older complete-packet
+acceptance, source and canonical-certificate fixtures. The fixed selected
+parent and checked coefficient seed facts remain supplied inputs.
+
+| Fixed input | Charged proof nodes |
+| --- | ---: |
+| Constant true packet | 441,039 |
+| Constant false packet | 441,041 |
+| Rational quadratic: two sections, three sectors | 5,911,125 |
+| Algebraic source reification and packet quotation | 8,644,422 |
+
+The algebraic count precedes separate source finishing. Both nonconstant
+packets record two graph-memo reuses and seven independent validations. Test
+limits remain explicit: 16M nodes/24M heartbeats for the rational packet and
+24M/60M for the algebraic source. Public defaults are unchanged. These are
+charged quotation counts, not unique DAG-node, physical-sharing or matched
+timing measurements.
+
+The constant controls retain exact/below limits, wrong-goal proposals, false
+verdict separation, malformed cells, original zero-divisor preflight, terminal
+provider failures and full caller restoration. The row-entrypoint regression
+retains the graph while changing ordered queries; it requires structured
+rejection before graph validation and complete metavariable/declaration rollback.
+
+| Fresh actual-body audit | Theorems | Definitions | Nonempty traces |
+| --- | ---: | ---: | ---: |
+| Constant/rational quotation | 1,246 | 101 | 1,297 |
+| Complete original algebraic source | 1,056 | 72 | 1,094 |
+
+Both audits check full transitive axiom closure against the standard three
+axioms and retain the producer-reduction guard. The source audit requires
+the original-source soundness, cell composition and row transport laws.
+No admission or native decision proof is added.
+
+The combined source/audit build passes in 19m37.628s, with an aggregate peak of
+4.9 GiB and no swap. Lake reports 894s for the source module and 187s for its importing
+audit. This remains expensive fixed-input proof construction. The subsequent
+40-target selection, optional umbrella and complete manual pass in 7m42.475s,
+peak 7.5 GiB, with cached dependencies reused. This selection is not the entire
+default conformance set. The HTML render passes in 24.060s, peak 1.7 GiB; browser
+capture passes in 10.916s, peak 2.8 GiB. All ten final 1440px/390px captures were
+actually viewed; changed targets have zero local overflow. Pre-existing page
+overflow is outside this change. Seven metadata checks pass.
+
+All own Lean/Lake/browser invocations are serial under an aggregate 32 GiB cap,
+with no swap and two Lean threads. The actual target invocation and active cgroup
+properties are retained. Failed instance/universe and control-setup attempts,
+task-only prototypes and available exact inputs are preserved separately.
+No compiled replay timing, scaling, general tactic cost or speedup follows.
+
+Generic source/provider/predecessor and frozen-history assembly, complete
+tactic integration and accepted algebraic completeness, joint realization,
+strict compiled missing-record coverage, practical costs and the remaining
+issue conformance/manual/evidence scope remain required. Merged owner fixed
+fixtures do not supply arbitrary live/interleaved export. Issue #10358 remains
+open; #10331 owns downstream dispatch.
+
+The [source-bound record](data/hexrcf-cell-memos/README.md) pins this implementation.
+The earlier [cell quotation record](data/hexrcf-cell-quotation/README.md) remains
+immutable and deliberately excludes this later algebraic source success.
diff --git a/reports/hexrcf-cell-quotation.md b/reports/hexrcf-cell-quotation.md
new file mode 100644
index 0000000000..a419d77db1
--- /dev/null
+++ b/reports/hexrcf-cell-quotation.md
@@ -0,0 +1,66 @@
+# Pointwise cell quotation
+
+`CellQuote.replayWith` quotes the exact supplied-operation checker in three
+stages: its complete root reader, each dependent section/sector reader and the
+strict Boolean/quantifier fold. Checked finite functions use every literal
+index. `CellRead.collectWith_eq`, `CellOperations.readCells_of_parts` and
+`check_of_parts` compose their equations at the original packet. All stages and
+callbacks share one reflection budget; original divisor preflight and terminal
+failures remain checked. No new tactic handler or arithmetic producer is added.
+
+`RootQuote` now discovers proof dependencies in exposed helper bodies as well
+as their types. Closed constructors containing replay-dependent proof fields
+retain ordinary projection reductions consistently in reader terms, helper
+types and helper bodies. A local constructor-type cache avoids repeatedly
+scanning immutable metadata for the same protected boundary. Generated proofs
+still undergo ordinary kernel checking against their exact original targets.
+
+The constant controls use 502,481 nodes for true and 502,483 for false. They
+check exact and one-node-below limits, wrong-goal proposals, malformed cells,
+original zero-divisor preflight, terminal callback failures and full caller
+restoration. The true result proves the original `∀ x : ℝ, 0 = 0`; the false
+result cannot prove that source. These counts exclude source finishing.
+
+The rational quadratic packet independently reads two root sections and three
+sectors, then accepts its existential fold in 14,294,138 nodes. The dedicated
+conformance build including the constant controls took 12m04.152s, with peak
+1.9G/no swap. Its explicit test limits are 16M proof nodes and 24M heartbeats;
+library defaults are unchanged. A fresh importing audit rechecks 1,409 actual
+theorem bodies, 78 definitions and 1,439 nonempty traces, with only the standard
+three axioms, the unchanged producer guard and older fixture acceptances excluded.
+
+All 37 selected targets, the optional umbrella and complete manual pass at the
+merged owner APIs: 14,427 jobs with cached dependencies reused, 2m22.666s,
+peak2.2G/no swap. The final HTML render after a narrow code-line correction also
+passes. All eighteen final 1440px/390px captures were actually inspected; changed
+paragraphs and both code blocks have zero local overflow. Seven metadata checks
+pass. Every own build/browser invocation is serial under an enforced aggregate
+32GiB limit, swap0 and two Lean threads.
+
+The compatibility failures are retained. Constructor/type traversal changed
+charged costs, so strict accounting pins were updated only after actual results;
+exact/below, callback-count, refusal, producer and rollback checks remain intact.
+The header packet exhausted its former 2M fixture allowance and passes at
+2,063,760 nodes under an explicit 3M test limit. The recursive controls use
+30,316 nodes, exhausting one below at 29,391+925; constant/annotated/retry cases
+use 28,294/28,307/31,022 nodes. Existing actual-body audits retain their guards.
+
+The initial row-interception experiment was not reached (`rowHits=0`) and was
+removed. Targeted stage diagnostics located approximately 1.91M nodes per
+section, 2.58M for the first sector and 4.61M for the middle sector. Retained
+5M/12M failures and the separate 12M heartbeat timeout motivated the final test
+allowances. These are diagnostic observations, not AB/BA speed measurements,
+algorithm scaling, compiled replay timings or physical-sharing evidence.
+
+Complete algebraic original-source quotation remains unproved by this record.
+The earlier staged attempt exhausted 10M before the pointwise/compiler changes;
+its exact available inputs and failed log remain retained. The next experiment
+is outside this immutable record. Generic source/provider/predecessor and frozen
+history assembly, practical quotation costs, general realization, strict compiled
+missing-record coverage and the remaining full issue evidence are still required.
+The merged owner fixtures do not supply arbitrary live/interleaved export.
+Issue #10358 stays open; #10331 owns downstream dispatch.
+
+The [source-bound record](data/hexrcf-cell-quotation/README.md) retains its own
+implementation pin. Older records retain theirs. No partial result here closes
+the extension or establishes general real-coefficient tactic support.
diff --git a/reports/hexrcf-enumerated-progress.md b/reports/hexrcf-enumerated-progress.md
new file mode 100644
index 0000000000..8759465775
--- /dev/null
+++ b/reports/hexrcf-enumerated-progress.md
@@ -0,0 +1,19 @@
+# Enumerated selected-source progress
+
+`SourceBuild.build_success` now derives actual source production from a lawful ordinary-real parent, squarefree interpreted head and exactly one real root on which the original window is positive. The actual root list, coverage and absence of duplicate interpreted roots come from the existing owner-backed `RootBuild.success` and `RootReplay.Result.coverage`. A successful root or scalar producer result is not a hypothesis. The lower-level `select_success` proves the same progress for a supplied list of actual roots with exactly one positive window entry.
+
+`select_checks` handles arbitrary root lists, retaining membership, exact original polynomial keys and two independently accepted scalar readers at the same root. `build_checked` additionally derives the full original all-real descriptor and actual real-root membership from enumeration. `build_checks` combines progress and acceptance. These laws use the canonical parent codec's roundtrip law and owner graph validation; they do not assume serializer equations. They retain the original equation rather than only a reduced internal query.
+
+The source model, squarefreeness and unique positive source window remain explicit mathematical conditions. These are source-packet laws, not generic reconstruction of original syntax, provider/predecessor histories, source-alias discovery, strict missing-record rejection, full tactic integration or overall algebraic completeness. Finite stored-coefficient coverage does not establish coverage of all reached packing/inverse operations. Frozen proof quotation remains separate from native production.
+
+The implementation is five theorem blocks and an expanded Meta audit. Removing only those blocks, the audit import and its replacement body recovers both prior files byte-for-byte. Executable production, error handling, replay, budgets, quotation, fixtures, manual, Lake and CI configuration are unchanged. The [record](data/hexrcf-enumerated-progress/README.md) verifies that projection against base `d1c635143ac1dd2bbd136995495cc6028cb5add1` and binds the consumed root-coverage and total-enumeration laws.
+
+Seven actual theorem bodies pass fresh ordinary-kernel rechecking, with full transitive axioms restricted to `propext`, `Classical.choice` and `Quot.sound`; the audit retains no copied declarations. Native controls compare the original positive/negative quadratic and cubic packets, validate six graphs and retain ambiguous/empty/zero-window, wrong-equation and duplicate-root refusals. Bounded compatibility retains all 25,477 canonical bytes, six graphs and endpoint/equal/reversed/repeated/zero/constant/absent/ambiguous/wrong-conjugate refusals.
+
+The five-target integration passes 11,221 Lake jobs with cached dependencies reused: optional umbrella, both native source drivers and both frozen proof audits. The bounded quotes remain 687,781/690,200/731,070 nodes, with a 687,780-node refusal restoring caller state and a fresh 392-theorem/449-definition/811-trace audit. Enumerated quotes remain 6,371,355/6,442,217/8,127,841 nodes, and the actual importing audit rechecks 1,488 theorem bodies/865 definitions/2,323 nonempty traces. All axiom closures remain standard-three. Integration takes 12 min 4.163 s, peak 2.2 GiB/no swap, under the serial aggregate 32 GiB cap and two Lean threads. These are build observations, not a new matched performance comparison, full conformance/manual rerun or scientific measurement.
+
+Nine checks pass: copyright headers, source line counts, DAG, named admissions, release manifest, factor-measurement freshness, both selected/source literal generators and diff whitespace.
+
+The immutable implementation commit is `583df51096cde99ac18f4abba9e50bc31a9f302a`. The record binds 145 source files and retains all elaboration attempts, final native/integration logs, inputs, invocation and proof-only source comparison. Run `python3 reports/data/hexrcf-enumerated-progress/verify.py --check-head` for current source binding, or omit the flag to verify that historical implementation.
+
+Failed elaboration attempts are retained with their source snapshots. Earlier evidence keeps its own source/checker pins. This tranche does not complete #10358 or change the remaining owner gates.
diff --git a/reports/hexrcf-enumerated-source.md b/reports/hexrcf-enumerated-source.md
new file mode 100644
index 0000000000..94b30e3890
--- /dev/null
+++ b/reports/hexrcf-enumerated-source.md
@@ -0,0 +1,41 @@
+# Enumerated selected-source packets
+
+`SourceBuild.build` enumerates roots through the existing `RootBuild.build`, then visits every candidate. `SourceBuild.select` requires a zero proposed equation sign and exactly one positive enclosure match. An ambiguous window, absent match, failed production or wrong equation returns a structured error. It retains the original polynomial and enclosure subjects and does not dispatch another solver.
+
+`ScalarPacket.buildParts` exposes the existing producer's literal polynomial, integer sign and graph as an untrusted proposal. `Proposal.packet` preserves the three-field scalar layout. The existing `build` remains a wrapper with the same return type. These proposed integers and their data equalities are not evidence about real values; frozen replay and ordinary-kernel source identification establish that meaning.
+
+The producer is registered in the existing optional adapter target and umbrella. The base umbrella stays independent. This is source certificate assembly, not a new arithmetic implementation, formula language, coefficient field or tactic handler.
+
+The generic `ScalarPacket.buildParts_success` and `build_success` theorems derive actual packet production from the owner's `Descriptor.buildSigns_success` under a lawful ordinary-real parent model. They assume no successful table or producer output and have only the standard three axioms. They establish proposal production, not frozen replay acceptance for an arbitrary supplied codec. The lemmas live beside the producer definitions, preserving their hidden bodies and the existing replay implementation.
+
+## Independent frozen proofs
+
+The native driver constructs both quadratic conjugates and a cubic root using actual isolating-square margins. It has no retained selected-root descriptor fixture. Its complete 127,088-byte canonical output matches the constructor literals generated from the committed JSON fixture. The JSON file's insignificant final whitespace is normalized; the native-byte comparison uses serialization of the frozen constructor values. The existing generator's freshness check covers the six literal modules.
+
+The driver separately validates six scalar graphs and rejects ambiguous, empty and zero windows, a wrong equation, duplicate roots and invalid root input. Native controls are producer/serialization evidence, not ordinary-kernel proof evidence.
+
+`EnumeratedSource.Quote` independently restores the three literal descriptors and their two packets. It identifies the positive root with `Real.sqrt 2`, the negative root with the original negative isolating-square selected value, and the cubic root with `(2 : ℝ) ^ (1 / 3 : ℝ)`. The rational model, source alias selection and coefficient-map laws remain supplied. The proofs consume constructor literals; they assume no producer-output equation and do not reuse the proof-carrying runtime result.
+
+| Quotation request | Charged proof nodes |
+| --- | ---: |
+| Positive quadratic | 6,371,355 |
+| Negative quadratic | 6,442,217 |
+| Cubic | 8,127,841 |
+
+These counts cover each inner quotation request; the separate final driver checks and exports are outside them. Each request explicitly uses the existing full-source test envelope of 24 million proof nodes. The library's one-million-node default is unchanged. The initial default-budget refusal is retained. The complete three-source build passed in 10min24.136s, peak2.2GiB/no swap. These are fixed-input build observations, not executable benchmarks, scaling or a matched speedup study.
+
+A fresh importing audit rechecks actual bodies: 1,488 theorems, 865 definitions and 2,323 nonempty kernel traces. It verifies complete standard-three axiom closure, excludes the original selected-root descriptor and handwritten source facts, and guards against native producers. The guard stores declaration-name literals so that it preserves proof-only import boundaries. The shared guard now additionally denies `SourceBuild.build`, `SourceBuild.select` and `ScalarPacket.buildParts`. The old guard entries and checking logic are preserved. The audit passed in1min42.979s,peak1.4GiB/no swap; its exact counts are subsequently pinned.
+
+The final equality consumes restored facts and `ScalarPacket.fields`. The unused optional-reader equality lemma is not retained in this proof. The first audit incorrectly required that unused lemma; the corrected audit requires the actual restoration and checked field laws while retaining every producer, fixture and axiom guard.
+
+## Integration and scope
+
+The final 54-target integration passed: 14,491 build jobs with cached dependencies reused,42min19.348s,CPU1h22min19.007s,peak11.9GiB/no swap. The original full-source attempt remains8,651,669nodes and its fresh audit1,193/202/1,353; the staged cell audit remains1,247/101/1,298. Both proof-only import guards, native controls, generic progress axiom checks and full manual pass. The earlier failed54-target build and successful import-boundary repair are retained separately.
+
+The complete manual passed in the 54-target run. The first narrow browser check found clipped code; all six failed captures and metrics are retained. Only the manual example was subsequently reformatted, with an exact before/after source binding and patch. Its final full-manual rebuild/render passed in2min31.396s,peak2.2GiB/no swap. The final bounded browser run passed10.643s,peak5GiB/no swap. All six1440px/390px captures were actually inspected and all changed targets have zero local overflow. Production/proof sources match the successful54-target snapshot exactly; the final example is validated by the later render build.
+
+The source-bound record retains the exact implementation, invocation, relevant source hashes, available input snapshots and all completed attempts. Setup errors, syntax/import/serializer failures, default-budget refusal, the unavailable private proof created by an inline meta quotation, the incorrect audit dependency assertion and the initial integration argv error, and the producer-import regression caught by the existing proof-only import guards are failures, not successful samples. Named ordinary witness theorems replace that inline proof. Exact source snapshots are not claimed for failures whose inputs were not saved at the time.
+
+Every own Lean/Lake/browser call is serial under aggregate MemoryMax32GiB, MemorySwapMax0 and two Lean threads. No new runtime benchmark, CI job or owner arithmetic/root proof is introduced. The exact Lake blob-transition exemption records only optional-adapter and conformance glob additions; factorization measurements are unchanged and are not extension evidence.
+
+This does not complete #10358. General source/provider/predecessor and frozen-history discovery, full tactic integration, accepted algebraic completeness, general joint realization, strict compiled missing-record coverage and remaining API/manual/evidence requirements remain. The public-frame/general-export and presentation-model owner gates remain. A successful selected-source identity is not complete cell coverage or a proof of an arbitrary real-coefficient goal. Existing issue and PR remain the delivery locations; partial delivery uses Refs.
diff --git a/reports/hexrcf-joint-source-assembly.md b/reports/hexrcf-joint-source-assembly.md
new file mode 100644
index 0000000000..7a94081840
--- /dev/null
+++ b/reports/hexrcf-joint-source-assembly.md
@@ -0,0 +1,21 @@
+# Source authentication and complete-goal quotation in one request
+
+The original algebraic source-goal regression now replays its coefficient's descriptor, equation and enclosure inside the same cumulative quotation transaction as the complete root/cell packet and final source proof. It no longer imports a pre-proved coefficient identity. The stored coefficient representation and retained real parent model are unchanged.
+
+`SourceIdentity.restorePacketWith` retains the exact checked descriptor/header and prepared context with its source identity. The existing compact `quotePacketWith` interface delegates to it. Subsequent assembly uses the checked descriptor-reader equation to identify the original retained root, then the owner's `Model.root_generator` and the original stored-generator equality to authenticate the fixed coefficient. The shared formula valuation uses that freshly checked equality; the complete cell verdict then finishes the original existential goal.
+
+This is one cumulative reflection request, beginning with shared source preparation usage and continuing through coefficient authentication, polynomial reconstruction, root/cell replay and original-goal finishing. No native root/sign/packet producer enters the emitted proof. Source witnesses, literal coefficient-map laws, selected-alias evidence, retained model and existing seed arithmetic facts remain supplied. The implementation does not discover arbitrary source/provider/predecessor histories or prove strict missing-record coverage.
+
+The fresh importing audit explicitly rejects both older `SourceIdentityPacket.selected` and `.coefficient` identities, in addition to the existing source fixtures and native producers. It requires the actual source-identification/replay laws and owner generator law. Actual proof bodies are rechecked with ordinary kernel checking and complete standard-three axiom closure; the audit retains no copied declarations.
+
+The full request reaches 705,636 cumulative proof nodes after coefficient authentication, 707,529 after polynomial reconstruction, 9,330,067 before source finishing and 9,337,314 overall. The existing 24M proof-node/60M-heartbeat test allowance is unchanged. Its graph trace retains two memo reuses and seven validations; these are logical quotation counts, not physical heap-sharing measurements. The successful source build takes 13 min 45.873 s, peak 2.3 GiB/no swap.
+
+The fresh importing audit checks 1,191 theorem bodies/202 definitions/1,351 nonempty traces with full standard-three axioms and the strengthened source-identity exclusions. The seven-target integration includes the optional umbrella, current source/bounded native controls, both earlier identity audits and complete current manual: 14,425 Lake jobs with cached dependencies reused, 8 min 8.376 s,peak 5.5 GiB/no swap. Compact source quotations retain 687,783/690,202/731,072 nodes and 687,782 rollback; their fresh 392/449/811 audit remains. The independent source-identity audit retains 673,461 nodes and 218/179/385 bodies/definitions/traces. Native source controls retain all 25,477 bounded bytes and all earlier conjugate/domain/refusal cases.
+
+The complete manual render passes in 19.575 s,peak 2.2 GiB/no swap; browser capture passes in 11.760 s,peak 3 GiB/no swap. All six desktop/narrow images were actually viewed and have zero changed-paragraph local overflow. The manual states the new cumulative scope and counts, actual fresh-body inventory and supplied-model/alias limitations. All own builds, renders and browser calls are serial under the hard aggregate 32 GiB/no-swap cap with two Lean threads.
+
+The immutable record retains the exact source snapshots, failed elaboration attempts, final invocations, fresh-body audit and repository checks. Earlier numerical and proof records retain their own pins. Build runtimes are operational observations, not a matched speedup or a new compiled performance study.
+
+Implementation `edd8c096424c6da1ee4f1ca02f7ea82cad32c3cc` is bound to 145 source files and 42 retained artifacts. Run `python3 reports/data/hexrcf-joint-source-assembly/verify.py --check-head` for current binding, or omit the flag for that historical implementation. The verifier checks the unchanged original sentence, strengthened forbidden-dependency inventory, actual quotation counts, fresh body-audit outputs, compatibility controls and all six viewport records. Nine repository checks pass; the earlier inventory-only rejection is retained separately from final passing integration.
+
+Full #10358 remains open for generic source/provider/predecessor/history discovery, complete automatic frontend/backend integration, overall accepted algebraic completeness, general joint realization, strict compiled missing/reached-record coverage and remaining evidence. No owner proof is copied and no unmerged API is consumed.
diff --git a/reports/hexrcf-packet-quotation.md b/reports/hexrcf-packet-quotation.md
index a70652042a..9c0ebb266b 100644
--- a/reports/hexrcf-packet-quotation.md
+++ b/reports/hexrcf-packet-quotation.md
@@ -16,6 +16,11 @@ default-conformance snapshot stays in the
[pre-review integrated record](data/hexrcf-packet-quotation/integrated/context.json).
These are direct API results, not a general tactic result.
+The current quotation code checks 94 reachable example theorem bodies and
+14 definitions under the unchanged producer guard, with the complete standard
+three axiom closure. The table request uses 290,299 proof nodes. The historical
+records below retain their original sources, inventories and request counts.
+
## Checked path
`RootQuote` accepts an `Except ε α` reader with a structured error type.
diff --git a/reports/hexrcf-proof-functions.md b/reports/hexrcf-proof-functions.md
new file mode 100644
index 0000000000..25c4f7b400
--- /dev/null
+++ b/reports/hexrcf-proof-functions.md
@@ -0,0 +1,60 @@
+# Quoting functions with proof inputs
+
+Complete literal packet quotation reached an `Except.rec` continuation whose
+type takes a `Nat.hasNotBit` proof and returns `Option Unit`. The previous
+transport accepted proof arguments and independent data, but refused this
+function because its argument proposition depended on the changed subject.
+
+`RootQuote.proofFunction?` retains the original function and transports only
+its proof input using `congrArg` and `Eq.mpr`. The generic equation is checked
+with an abstract subject before the concrete subject and its checked equation
+are supplied. It does not cast the returned data or evaluate the replay to
+justify the transport. Both the generic and instantiated proofs pass the
+ordinary kernel.
+
+The supported function has one proof input and a result type that reduces to
+a type independent of the changed subject and equality. A function returning
+an indexed `Fin` remains unsupported, as does the existing direct dependent
+data case. These refusals retain the caller's declaration and metavariable
+state. No exception selects a different solver.
+
+Two public readers exercise the function before and after a trailing equality
+proof. Their retained results are 7 and 29, respectively. Their direct generated
+proofs have no axioms and consume 1,079 and 1,099 proof nodes. The existing
+control loop also checks exact and one-below budgets and caller expression/level
+metavariable restoration. A fresh ordinary public module imports and uses both
+equations. The actual-body audit checks 145 theorem bodies, 16 definitions and
+88 nonempty traces with the unchanged native-producer guard; its complete
+transitive axiom closure is `[propext]`.
+
+This is an adapter quotation capability, not complete-cell tactic support.
+The continuing full-packet experiment additionally needs a literal polynomial
+and complete checked arithmetic data. No acceptance theorem from the older
+fixture is counted as a new reduction proof. Frozen source/provider/predecessor
+history, complete-cell frontend integration and the remaining #10358
+requirements remain separate obligations.
+
+All local Lean/Lake/browser processes run serially under aggregate 32 GiB,
+no swap and two Lean threads. Validation counters and build observations do
+not establish scaling, physical sharing or a speedup.
+
+The affected compatibility and full manual build passes 14,371 jobs in
+13m57.795s, peak 4.5 GiB/no swap, with reused dependencies. Existing primitive,
+rational, public packet, actual-codec dependent reader, header and context
+audits retain their checked inventories and budgets. This is a build
+observation across several workloads, not an isolated proof timing or a
+matched performance comparison.
+
+The root-table conformance checks 94 theorem bodies and 14 definitions; the
+assertion and manual match that observed inventory. Its targeted build passes
+in 32.730s with peak 1.8 GiB. The full HTML render passes in 12.798s with peak
+1.5 GiB. Six visually inspected desktop/narrow captures show the changed
+paragraph and example without local overflow; existing whole-document
+horizontal overflow is outside that claim.
+
+The [source-bound record](data/hexrcf-proof-functions/README.md) retains the
+validation, captures and development failures. Full-packet experiments quote
+their literal polynomial in 1,893 proof nodes, but exhaust their enclosing
+100,000- or 5,000,000-node budgets. Retaining polynomial/certificate data did
+not resolve that cost. A smart-unfolding experiment was explicitly interrupted
+and is not a passing sample. These failures do not trigger another solver.
diff --git a/reports/hexrcf-public-model.md b/reports/hexrcf-public-model.md
new file mode 100644
index 0000000000..c3e2570494
--- /dev/null
+++ b/reports/hexrcf-public-model.md
@@ -0,0 +1,19 @@
+# Public number-field model and source-quotation integration
+
+The optional real-coefficient adapter consumes the public `NumberField.Presentation.model_eq` from owner PR [#10967](https://github.com/kim-em/hex-dev/pull/10967), merged at `0738244bdda275a1273fc28a444cabc424dcf71e`. Its `NumberField.lean` uses ordinary imports and rewrites with that equation; the private `import all` dependency is removed. The owner's six files are consumed unchanged. This restores a public interpretation boundary without changing source arithmetic, root selection or the model implementation.
+
+The prerequisite's exact head `d8fdc8fb0349a3c174c33ddb80a27322fed5aafc` passed CI run `39175085494`; all jobs completed successfully with no failed or cancelled steps. Existing public review comments report the owner's fresh Opus review and addressed findings. That prerequisite review is separate from the continuing adapter PR's required fresh review. The retained merged state and exact owner files identify the landed artifact, rather than treating an open PR as an available API.
+
+The current manual documents `SourceIdentity.restorePacketWith`, which retains the descriptor/header, prepared context and source identity in one request, and its compact `quotePacketWith` wrapper. Its checked code example uses `RootQuote.runWith` and the caller's existing reflection budget. The text also corrects a stale statement: the independent 673,461-node identity example does not supply the coefficient identity for the full original-goal example. That full example authenticates the coefficient inside its own cumulative request.
+
+The targeted five-target integration checks the public owner model, actual ordinary-import consumer, native algebraic cells and source preparation, and optional `HexRCFRealCoefficients` umbrella. It passes 11,169 Lake jobs, reusing cached dependencies, in 5 min 9.528 s with peak 5.2 GiB and no swap. Its actual thirteen algebraic-input proof bodies and owner dependencies, and fresh original-source acceptance bodies, retain exactly the standard three axioms. Native controls retain false statements, original zero-divisor refusals, domain boundaries and source/state-restoration checks. These are compatibility checks, not a new scientific timing comparison.
+
+The two-target full integration (`lake build HexManual +HexRCF.CellSourceProofs`) passes 14,408 Lake jobs, with cached dependencies reused, in 29 min 14.429 s. Its peak is 17 GiB with no swap. The actual complete source quote uses 9,337,314 charged nodes; the fresh importing audit rechecks 1,191 theorem bodies, 202 definitions and 1,351 nonempty traces, retaining the original-target, forbidden-producer and older-identity exclusions with the standard three axioms. The whole current manual compiles. Existing unrelated deprecation and manual line-length warnings remain; the new example compiles without an error.
+
+The full manual render passes in 23.945 s with peak 2.4 GiB/no swap. The browser inspection passes in 10.469 s with peak 3.1 GiB/no swap. All six captures were actually viewed: the new API paragraph, runnable code and corrected coefficient provenance at 1,440 px and 390 px. These changed blocks have zero local overflow; this does not assert that every other block in the complete book fits those viewports.
+
+Every own build, render, metadata and browser invocation is serial under a hard aggregate 32 GiB cgroup limit, with swap disabled and `LEAN_NUM_THREADS=2`. The limit applies jointly to Lake and all child processes. These operational observations do not change historical measurement pins or establish a speedup.
+
+The [retained record](data/hexrcf-public-model/README.md) contains the exact owner CI/review/merged-state snapshots, source inputs, complete logs, rendered-page digest, six captures and source-bound verifier. Run `python3 reports/data/hexrcf-public-model/verify.py --check-head` to check the bound current sources, or omit the flag for its immutable implementation commit. Ten repository checks pass, including all twelve DAG tests; relative links and staged whitespace are checked separately.
+
+Full #10358 remains incomplete. The merged public presentation-model equation removes that prerequisite gate. Generic original-syntax/provider/predecessor/history assembly, complete automatic frontend/backend integration, overall accepted algebraic completeness, general finite joint realization/export and strict compiled missing/reached-record coverage remain required. The public numeric-frame equations and general interleaved-history exporter still require the actual owner APIs and appropriate review/landing. Existing #10377 root coverage/order exports are already consumed. No owner proof is copied or unmerged API consumed, and no additional issue or worker is launched.
diff --git a/reports/hexrcf-public-packet-quotation.md b/reports/hexrcf-public-packet-quotation.md
index 76747f7c12..2f30f33768 100644
--- a/reports/hexrcf-public-packet-quotation.md
+++ b/reports/hexrcf-public-packet-quotation.md
@@ -55,22 +55,23 @@ No kernel or producer guard is removed. A separate fresh importing audit
checks 61 theorem bodies and four definitions for the actual-codec readers,
with 56 nonempty traces. Its declared scope includes the source helper proofs
and their generated private proofs; the axiom closure is fully transitive.
-The synthetic dependent-match audit checks 114 theorem bodies and 14 definitions,
-with 64 nonempty traces. Both retain the unchanged native-producer guard.
+The current synthetic dependent-match audit checks 145 theorem bodies and 16 definitions,
+with 88 nonempty traces, including functions with proof inputs and fresh public consumers.
+Both retain the unchanged native-producer guard. Earlier records retain their source-specific inventories.
The coefficient consumer uses only the newly quoted packet fact for canonical
decoding. It proves that the decoded value is the original selected real root
and that it is positive, using the owner's sign interpretation. The exact
reader equation, original context, polynomial and claimed sign remain bound.
-Its fresh importing audit rechecks 656 theorem bodies and 67 definitions in
-seven named modules, with 713 nonempty diagnostic traces and the complete
+Its fresh importing audit rechecks 692 theorem bodies and 67 definitions in
+seven named modules, with 749 nonempty diagnostic traces and the complete
standard-three axiom closure. The source explicitly lists that body scope;
the axiom closure is transitive without that restriction. It rejects any
dependency on the legacy fixed list of fixture facts.
| Request | Charged proof nodes |
| --- | ---: |
-| Public original scalar-packet reader | 861,536 |
+| Public original scalar-packet reader | 1,168,494 |
| Canonical coefficient decode from its fact | 3,249 |
| One dependent match | 1,036 |
| Nested dependent matches | 2,196 |
@@ -80,10 +81,10 @@ dependency on the legacy fixed list of fixture facts.
These counts charge checked syntax, including repeated occurrences. They are
not unique DAG nodes or evidence of physical sharing.
The additional universal equations also count toward existing requests. The
-legacy parent-plus-packet regression now charges 73,992 nodes, its standalone
-packet 44,385, and its separate coefficient decode 966. One node below the
-standalone budget exhausts at 44,362 plus a requested 23 nodes. Its fresh audit
-checks 89 theorem bodies and 11 definitions with 90 nonempty traces. Earlier
+legacy parent-plus-packet regression now charges 105,037 nodes, its standalone
+packet 69,973, and its separate coefficient decode 966. One node below the
+standalone budget exhausts at 69,950 plus a requested 23 nodes. Its fresh audit
+checks 96 theorem bodies and 11 definitions with 97 nonempty traces. Earlier
source-bound reports retain their original counts and source revisions.
The permanent controls cover one and nested dependent matches, full caller
diff --git a/reports/hexrcf-quotient-branches.md b/reports/hexrcf-quotient-branches.md
new file mode 100644
index 0000000000..7f8de99aff
--- /dev/null
+++ b/reports/hexrcf-quotient-branches.md
@@ -0,0 +1,49 @@
+# Quotient readers and checked Boolean branches
+
+The optional adapter's literal quoter follows a closed `Quot.lift`
+representative when inspecting reducibility boundaries. This exposes the
+actual shared formula polynomial's term list without changing the protected
+replay or canonical coefficient-decoder boundaries. The public-module
+regression preserves the original reader equation and checks its exact
+92-node budget, one-below exhaustion, wrong-count rejection and caller rollback.
+
+Selected Boolean branch proofs receive a separate ordinary-kernel check
+before conditional transport uses them. The complete-cell diagnostic passes
+the previous kernel application failure with this construction, then exhausts
+its explicit two-million-node limit. It supplies no complete acceptance or
+original-goal proof.
+
+The [source-bound record](data/hexrcf-quotient-branches/README.md) retains
+validation, failed attempts, exact source hashes and six inspected captures.
+Fresh importing audits check actual reachable theorem and data bodies, full
+permitted axiom closure, the unchanged producer guard and strict inventories:
+
+| Scope | Theorems | Definitions | Nonempty traces |
+| --- | ---: | ---: | ---: |
+| Public quotient reader | 9 | 4 | 4 |
+| Dependent readers | 153 | 16 | 78 |
+| Root preparation | 821 | 63 | 869 |
+| Public packet | 706 | 67 | 763 |
+| Header packet | 724 | 66 | 775 |
+| Packed context | 732 | 68 | 785 |
+| Sign packet | 100 | 11 | 101 |
+
+The primitive and rational quotation inventories check 262 and 205 theorem
+bodies. The root-table scope checks 97 theorem bodies and 14 definitions.
+The affected adapter/rational targets and complete manual pass. Exact/below
+budgets, malformed inputs, wrong proofs, protected decoders and state
+restoration retain their existing checks.
+
+The completed full-packet diagnostic takes 14m42.791s and peaks at 5 GiB
+without swap. It exhausts at 1,998,337 charged nodes plus a requested 1,664.
+These are single shared-host diagnostic observations, not an alternating
+comparison or a speedup claim. The subsequent final combined validation
+passes 14,383 jobs using unchanged dependencies; HTML rendering and the six
+changed-content browser targets also pass. Every own build remains serial
+under an aggregate 32 GiB cap, no swap and two Lean threads.
+
+Registration, reader equations and these quotation helpers do not complete
+generic source/provider/history assembly, complete-cell tactic quotation,
+accepted algebraic completeness or general joint real-sample export. Those
+obligations remain with the evolving #10358 implementation and its actual
+owner prerequisites.
diff --git a/reports/hexrcf-replay-helpers.md b/reports/hexrcf-replay-helpers.md
new file mode 100644
index 0000000000..3617fda1e3
--- /dev/null
+++ b/reports/hexrcf-replay-helpers.md
@@ -0,0 +1,72 @@
+# Replay helper type quotation
+
+`RootQuote` preserves data type arguments while rewriting their Boolean
+computations. It collects dependencies appearing in closed helper types in
+dependency order, retains exposed function definitions as local lets, and
+keeps opaque helpers as parameters. Partial applications of demanded
+function-valued conditionals retain their subsequent arguments. Every
+candidate still receives ordinary-kernel checking at the original target.
+
+The second complete-source experiment failed after 45m55.490s, peak 4.3G
+and no swap, when `Replay.table` received a proof referring to an abstract
+replay function while requiring the concrete checker. It reached neither
+complete acceptance nor original-source finishing. Small public-module
+controls reproduce that mismatch in 8.713s and a related typed-array
+rewrite failure in 8.673s. The retained logs distinguish these failed
+attempts from the final production repair.
+
+## Checked controls
+
+Stored arrays with replay-dependent element types and functions with fixed
+replay-dependent proof types both pass. Matching and changed contexts
+produce the checked results 1 and 23 respectively. Their charged node
+counts are 95,378/8,388 and 81,812/7,272. Both matching cases check exact and
+one-node-below limits, wrong-goal proposals and complete caller metavariable
+and declaration restoration. These are reader equations, not new real-goal
+proofs or assumptions of complete root coverage.
+
+A fresh importing audit checks 96 theorem bodies, three definitions and
+99 nonempty kernel traces. It requires the public replay leaf and table
+equations, excludes old fixture acceptance proofs, preserves the producer
+denylist and checks the full permitted axiom closure. No new axiom or proof
+admission is introduced. Existing row, boundary, callback, packet and
+recursive audits retain their guards.
+
+All 33 selected targets and the complete manual pass: 14,398 jobs with
+unchanged dependencies reused, 12m1.096s and peak 2.8G/no swap. This is the
+affected selection, not the entire default build. Existing function-valued
+reader controls caught a flattened-application traversal regression; the
+final run includes its repair. Failed compatibility runs remain retained.
+
+The prepared packet consumes 3,031,749 nodes including publication. Its
+test-only allowance is four million after the previous three-million test
+exhausted at 2,998,466 consumed plus 1,535 requested. Library defaults are
+unchanged. Exact/below controls consume 3,029,330 nodes. The independent
+wrong-sign test now runs in its own command under the same twelve-million
+heartbeat limit: its predecessor command had completed the three budget
+runs before exhausting the cumulative heartbeat allowance. Wrong-sign and
+all three malformed-input checks retain full caller restoration and pass.
+Both failed resource runs are retained.
+
+The complete manual and HTML render pass. All ten changed desktop/narrow
+captures were actually inspected and have zero local overflow; existing
+section/page overflow is recorded separately. The manual records observed
+shared, recursive and packet costs and scoped elaborator limits. All seven
+metadata checks pass. The [source-bound record](data/hexrcf-replay-helpers/README.md)
+pins 77 artifacts and 95 sources; earlier evidence keeps its original pins.
+
+## Scope and limits
+
+The subsequent full production-source attempt is outside this immutable
+record until it terminates. Focused repairs and an accepted prepared packet
+do not establish complete source acceptance, algebraic completeness or a
+practical general tactic. No matched speedup, scaling or physical-sharing
+claim follows from these diagnostic runs or charged node counts.
+
+Generic source/provider/predecessor and frozen-history assembly, complete-cell
+tactic quotation and acceptance, conversion/joint realization and the remaining
+API/manual/evidence scope remain part of #10358. Existing owner requests remain
+distinct gates. No owner proof, issue, PR or downstream worker is duplicated.
+#10358 remains open under #10331, preserving the earlier #10633/#10634 work.
+All own local builds and browser processes run serially under an aggregate
+32 GiB hard limit, swap disabled and two Lean threads.
diff --git a/reports/hexrcf-root-context.md b/reports/hexrcf-root-context.md
new file mode 100644
index 0000000000..e21c6a03a1
--- /dev/null
+++ b/reports/hexrcf-root-context.md
@@ -0,0 +1,72 @@
+# Interpreting a reconstructed native root context
+
+`RootContext.packWith` assembles the existing owner's native root constructor
+from a closed retained parent and a checked descriptor of its indexed type.
+It retains the parent chain and native operations, checks the frame encoding
+and child signature, and checks the resulting context in the ordinary kernel.
+It adds no field instance to algebraic representatives.
+
+The frame is `Tower.rootData parent.codec descriptor`. The current
+`Literal.ofJson` is an identity conversion, so its encoding equation can be
+checked without evaluating that serialization. The frame remains an expression,
+not an independently frozen numerical history. This construction does not
+authenticate an arbitrary source alias, registered provider or origin history.
+
+`SignatureQuote.decoder` consumes the owner's public `Signature.codec_literal`
+equation and an independently checked full-literal binding. It quotes the exact
+decoder subject after reducing a graph-field projection, without running the
+signature parser during proof construction. Two distinct signatures test the
+binding, wrong subjects, full caller rollback and exact/one-below budgets.
+The public cubic graph retains only numerical JSON constructors, including
+node and nested-moment contexts for its rational predecessor. This does not
+freeze arbitrary root frames in a deeper tower or validate a registry/history.
+
+The public regression packs the root reconstructed by `RootHeader.quoteWith`,
+then builds its ordinary-real interpretation using the existing `RealModel.build`
+and `Tower.Model.root_value` APIs. The already decoded coefficient has exactly
+the same selected real value in this packed context and remains positive.
+The context is exported as computable native data; its real model is explicitly
+noncomputable. No compiled result supplies either mathematical proof.
+
+The packing request charges 2,653 proof nodes. Its returned usage is checked
+against the enclosing request, and exact and one-node-below budgets are tested.
+This count covers packing and its context/signature proofs. It excludes the
+separate model construction, preceding root/header and scalar requests, and
+source-goal reification. It is not a full tactic or unique-DAG measurement.
+
+A descriptor for the parent carrier is rejected when passed to the child
+carrier. That failure exercises caller assignments and a temporary declaration,
+then checks full metavariable and declaration restoration. An unresolved root
+input rejects without assigning caller metavariables. These are terminal
+refusals; no alternative solver is selected.
+
+The fresh importing audit checks 718 theorem bodies and 68 definitions across
+its explicitly listed source scope, with 771 nonempty diagnostic traces and
+complete transitive axiom closure restricted to `propext`, `Classical.choice`
+and `Quot.sound`. It includes the metadata, signature, model, value and positive
+conclusions and the original packet/coefficient reader conclusions. The shared
+native-producer guard is unchanged. New packing-module bodies additionally
+reject root-data serialization and DAG encoding reductions. The source lists
+its fixture and adapter modules explicitly; it does not
+recheck every body in the owner companion libraries. The axiom closure remains
+transitive across those libraries.
+
+A separate fresh importing audit checks 23 theorem bodies and seven definitions
+for the two frozen signature subjects and the projected-constructor regression,
+with 16 nonempty diagnostic traces. Its complete axiom closure is `propext` and
+`Quot.sound`; its producer guard also excludes serialization and DAG encoding.
+Direct signature requests charge 254 proof nodes each; the projected request
+charges 427. The subsequent constructor-only cubic packet charges 1,284,494 nodes.
+These counts cover distinct requests, without a claim about unique DAG nodes
+or total runtime work.
+
+These are local build-only conformance and proof-construction observations,
+without compiled runtime, scaling or speedup claims. Source-bound records
+retain failed and preliminary attempts separately from final validation in
+the [retained record](data/hexrcf-root-context/) at its recorded source revision.
+The optional adapter still requires general original-source/provider/predecessor
+and fully frozen-context assembly, complete-cell tactic quotation, accepted
+algebraic completeness, remaining conversions/joint realization and the rest
+of the required acceptance evidence. Ordinary-model construction here does
+not supply a real interpretation of an infinitesimal or a finite-joint
+realization theorem for that case. #10358 remains open for its full scope.
diff --git a/reports/hexrcf-root-header-quotation.md b/reports/hexrcf-root-header-quotation.md
new file mode 100644
index 0000000000..4efc7affba
--- /dev/null
+++ b/reports/hexrcf-root-header-quotation.md
@@ -0,0 +1,81 @@
+# Binding a quoted root to its original subject
+
+`RootHeader.quoteWith` reconstructs the result of the original supplied
+`RootReplay.readDescriptor` application and independently parses its raw
+subject. It derives the root/header equality through the existing owner's
+`readDescriptor_subject` theorem. This removes a handwritten source-identity
+proof from subsequent scalar-packet quotation.
+
+The helper takes the full original application. It retains its explicit and
+implicit arguments when instantiating the owner law and takes the subject
+reader from that instantiated law. This avoids substituting newly synthesized
+operation instances while comparing dependent types. Both reader quotations,
+the strict equations and the final checked binding consume the caller's
+reflection budget. The enclosing `RootQuote.runWith` supplies the transaction.
+The helper does not construct a source expression's algebraic presentation or
+an origin/provider history.
+
+The public example starts from the frozen cubic reader. It exports a newly
+reconstructed root and raw subject, constructs a context using that root,
+quotes the original sign packet for X, and decodes a coefficient using the
+new fact. Ordinary-real interpretation identifies the coefficient with that
+new root and proves positivity. The new packet/value closure rejects any
+dependency on the old fixture's `root_raw`, `subject_read` or
+`nativeRoot_read` identities.
+
+Default quotation recognizes the actual canonical signature roundtrip,
+using `Signature.codec_lawful` at the encoded signature argument. Two distinct
+signature subjects are tested; a proof for one cannot prove the other.
+A fixture-specific signature decoder is unnecessary for these expressions.
+`SignatureQuote.decoder` additionally consumes the owner's public
+`Signature.codec_literal` equation and a checked full-literal binding. The
+cubic packet retains frozen numerical node and nested-moment signatures for
+its rational predecessor. Its exported evidence is required to contain only
+JSON constructors, integer constructors and raw natural literals. These
+serialization identities do not validate arbitrary registries, selected roots
+or origin histories, or freeze deeper algebraic frames.
+
+The importing audit rechecks 710 theorem bodies and 66 definitions in its
+explicitly declared source scope, with 761 nonempty diagnostic traces. Its
+axiom closure is transitive and restricted to `propext`, `Classical.choice`
+and `Quot.sound`. The native-producer exclusion guard is unchanged. The
+scope includes the generated root/header bindings, packet acceptance and
+coefficient/value proofs, together with their reached private bodies; it is
+not an assertion that every theorem in the repository was audited.
+
+| Request | Charged proof nodes |
+| --- | ---: |
+| Original root and independently parsed header | 271,600 |
+| Exported root/header with checked named binding | 271,663 |
+| Subsequent original scalar-packet reader | 1,284,494 |
+| Coefficient decode using its packet fact | 3,249 |
+| Canonical signature roundtrip, either subject | 160 |
+| Frozen signature, either direct subject | 254 |
+| Frozen signature selected through an array projection | 427 |
+
+The root/header and subsequent packet requests are checked separately in the
+fixture. These counts include repeated expression occurrences; they do not
+measure unique DAG nodes, physical sharing or a general speedup. The helper's
+`quoteWith` form can compose within a caller's existing request.
+
+Header controls check exact and one-node-below budgets, rejection of a partial
+reader application, malformed versions and an invalid root count. Invalid-count
+replay must exercise the callback before the test checks full caller-state
+restoration. Packet controls independently check compiled rejection, ordinary
+quotation refusal and caller restoration for a wrong sign, a changed polynomial,
+an empty graph, a swapped node context and a swapped nested-moment context.
+
+The [context record](data/hexrcf-root-context/) retains validation and
+inspected desktop/narrow captures at its recorded source revision. The separate
+[root/header record](data/hexrcf-root-header/) retains the canonical-roundtrip
+variant and its own source revision. Each verifier checks that record's source.
+Failed and preliminary attempts are retained separately from final validation.
+
+These are conformance and proof-construction diagnostics using reused build
+dependencies. They establish no compiled adapter performance, scaling or
+algebraic completeness result. The optional adapter still needs generic
+source/provider/predecessor and fully frozen-context assembly, complete-cell
+tactic quotation, the accepted algebraic-completeness integration, remaining
+conversions/joint realization and required evidence. Strict compiled missing
+records and inverse/xgcd stress remain existing owner requests. #10358 stays
+open until its entire acceptance scope is delivered.
diff --git a/reports/hexrcf-root-preparation.md b/reports/hexrcf-root-preparation.md
new file mode 100644
index 0000000000..a03379af32
--- /dev/null
+++ b/reports/hexrcf-root-preparation.md
@@ -0,0 +1,19 @@
+# Retaining reconstructed root contexts for ordinary quotation
+
+`RootPrepare.prepareWith` consumes a reconstructed descriptor/header and a closed cleanliness function. It kernel-checks the exact raw binding, retains the descriptor and native `Context.adjoin` data using Lean's auxiliary-definition API, and returns the original context, an equal retained context, descriptor and context equations, a decoder, and the request's updated usage. It constructs no new field instance, real model, arbitrary source identity or frozen history.
+
+The decoder uses the checked context/root and descriptor/raw equations. Its simplifier visits and generated expressions consume the enclosing reflection request. `RootQuote.runWith` supplies the transaction. `ScalarPacket.quoteWith` restores the exact original reader after quotation through the equal prepared context.
+
+A Boolean fold can sit inside a larger replay expression containing `checkMoment`. `RootQuote.contextStep?` preserves its existing codec-constructor priority and additionally abstracts a protected replay function during Boolean-to-Boolean conversion. Dependent proof helpers are abstracted before the actual function and checked equation are supplied. The additional path is deliberately confined to Boolean conversions; the unchanged dependent-reader regression rejects an invalid broader abstraction.
+
+The cubic conformance reconstructs its descriptor from the original complete reader and quotes a frozen numerical sign packet at X. The anonymous input is asserted before retention. The original reader's equation is checked in the same request. Public context and fact definitions keep private construction helpers out of the exported theorem's type; an ordinary public module proves acceptance and the proposed sign through the resulting public equation.
+
+Current measured validation counters for this source are 257,417 for the primitive cubic reader, 271,663 for original header reconstruction, 1,284,494 for the named frozen packet, and 2,383,805 for the complete anonymous-header/preparation/replay/public-presentation request. These are distinct requests. They do not measure unique DAG nodes or full tactic cost. Test-only limits are explicit (two million for the named packet and three million for the combined request); library defaults are unchanged.
+
+The fresh importing audit checks 807 theorem bodies and 63 definitions in its explicit module scope, with 855 nonempty kernel traces. Complete transitive axiom closure contains only the standard three axioms. The native-producer guard is unchanged. Bodies in the new packet and public consumer scopes additionally exclude root-data serialization and DAG encoding. The audited scope includes original-reader restoration and rejects the old fixture's root/context/raw-binding/reader identities. It does not recheck every owner-library body. All 6,529 project dependencies participate in the dependency checks and the axiom closure remains transitive across owners.
+
+The new controls pass at an exact 2,381,262-node quotation budget and reject one node below it. Wrong-sign evidence rejects, and three malformed/unresolved-input controls refuse after reaching preparation. Caller metavariable assignments and auxiliary declarations are checked after rejection; success also restores caller metavariables. This driver took 9m17.592s with peak 1.2 GiB and no swap. Its quotation request omits the conformance-only public-presentation step, explaining the separate combined request count above.
+
+The affected integration and complete manual build passed in 4m11.448s with peak 3.3 GiB; HTML rendering took 12.177s with peak 1.5 GiB. Six inspected desktop/narrow captures show the new prose and example without overflow. All runs used an aggregate 32 GiB limit, no swap and two Lean threads. These observations reuse dependencies and cover different workloads; they are not matched performance comparisons. The [source-bound record](data/hexrcf-root-preparation/README.md) retains the validation, compiled artifact sizes, captures and failed or interrupted development attempts. Earlier records remain pinned to their own revisions and counts.
+
+The retained data does not discharge the remaining #10358 scope: generic source/provider/predecessor and frozen frame/history assembly, complete-cell tactic quotation, accepted algebraic completeness, remaining conversion/joint-realization integration and the required evidence. Registration, context construction and a sign packet alone do not implement the whole real-coefficient tactic.
diff --git a/reports/hexrcf-row-quotation.md b/reports/hexrcf-row-quotation.md
new file mode 100644
index 0000000000..b3d22ea78d
--- /dev/null
+++ b/reports/hexrcf-row-quotation.md
@@ -0,0 +1,90 @@
+# Stored-row and dependent replay quotation
+
+`RowQuote.decoder` reads the stored integer in a checked selected-sign row.
+Ordinary equality laws preserve its array through query equality, descriptor
+retargeting and restoration of supplied operations. The decoder preserves the
+actual operation instances and checks each proposed array, value and Boolean
+equality against its original target. It does not run a sign producer or add a
+solver handler. Unknown boundaries decline; recognized malformed rows fail.
+
+`RootQuote` also abstracts closed helpers whose types depend on a protected
+replay function before converting an enclosing Boolean expression. The
+original reader must expose that function. A hidden reader retains its
+structured boundary rejection and complete caller restoration.
+
+## Checked controls
+
+| Control | Charged proof nodes |
+| --- | ---: |
+| Positive singleton | 2,479 |
+| False integer comparison | 2,515 |
+| Negative singleton | 2,591 |
+| Zero singleton | 2,479 |
+| One opaque query transport | 2,001 |
+| Sixteen opaque query transports | 4,962 |
+| Twenty-four opaque query transports | 6,758 |
+| Inline dependent helper, matching context | 58,360 |
+| Inline dependent helper, changed context | 5,376 |
+| Stored dependent helper, matching context | 57,166 |
+| Stored dependent helper, changed context | 5,108 |
+
+Exact and one-node-below controls, wrong-goal proposals and complete caller
+metavariable/declaration restoration pass. Transport recursion consumes the
+enclosing reflection budget and caller recursion limit; there is no separate
+sixteen-transport restriction. Changed replay contexts select the checked
+diagnostic result rather than accepting the original tree.
+
+Fresh importing audits check 70 theorem bodies/eight definitions/72 nonempty
+kernel traces for row quotation, and 132/three/135 for dependent replay
+helpers. Both retain the unchanged producer guard and full permitted axiom
+closure (`propext`, `Classical.choice`, `Quot.sound`), and exclude the old
+fixture acceptance proofs. These are overlapping scopes, not additive totals.
+The row controls assume a checked input row; they do not prove an arbitrary
+source coefficient's real interpretation.
+
+The 32 selected targets pass, including rational tactic compatibility,
+optional umbrella, existing scalar/context/header/root/packet controls and
+the complete manual. The final integration completes 14,396 jobs with cached
+dependencies reused, taking 2m30.953s and peaking at 2.3G as reported by the
+bounded runner. Failed accounting/inventory runs and the hidden-reader
+regression are retained; only observed counts were repinned after the full
+guarded checks passed. No kernel, producer, axiom or restoration check was
+removed.
+
+The manual includes a checked composition with an existing scalar decoder.
+Its final render passes. All eight final desktop/narrow captures were
+actually inspected and have zero overflow in the changed targets. The first
+five-pixel narrow code overflow and all its captures are retained. Wrapping
+the source example fixes that overflow; pre-existing page/section overflow
+is recorded separately. Copyright, line-count, DAG/umbrella, admissions,
+relative-link and diff checks pass.
+
+## Limits and remaining work
+
+The preceding complete original-source run advanced past the stored-row
+projection but failed when a dependent proof helper retained the concrete
+replay function during abstraction. Its full log and exact input sources are
+retained. It did not establish complete packet acceptance or the source goal.
+The new focused Boolean-helper controls reproduce and repair that boundary.
+A subsequent full production run is outside this immutable focused record
+until it terminates; this report claims no complete source proof from it.
+
+This is a correctness and bottleneck investigation, not a scaling study or
+matched AB/BA comparison. Charged nodes and compiled module bytes do not
+measure physical sharing or serialized certificate size. In particular, the
+same public-packet fixture changes from 1,183,543 to 1,209,665 nodes; comparing
+that fixture with the distinct 154,369-node sign-packet fixture would be
+invalid. No general speedup is claimed.
+
+Generic source/provider/predecessor and frozen-history assembly, complete-cell
+tactic quotation and accepted algebraic completeness, conversion/joint
+realization and the remaining API/manual/evidence scope still belong to
+#10358. Existing owner requests remain distinct gates; no owner mathematics
+or downstream issue is duplicated. Earlier #10633/#10634 artifacts and their
+measurement limitations remain preserved. The issue remains open under
+#10331.
+
+The [source-bound record](data/hexrcf-row-quotation/README.md) pins the
+implementation and retained artifacts. All own Lean/Lake/browser work is
+serial under an aggregate 32 GiB hard limit with swap disabled and two Lean
+threads. The limit applies to the whole process group and all its children.
diff --git a/reports/hexrcf-scalar-acceptance.md b/reports/hexrcf-scalar-acceptance.md
new file mode 100644
index 0000000000..902b104404
--- /dev/null
+++ b/reports/hexrcf-scalar-acceptance.md
@@ -0,0 +1,19 @@
+# Accepted selected-source packets
+
+`ScalarPacket.read_checked` composes the owner's finite polynomial/graph codec laws with checked DAG encoding and selected-sign replay. It needs roundtrip coverage only for the actual input polynomial and stored graph coefficients. A partial codec need not satisfy a global roundtrip law. Graph shape, exact context/domain bindings, valid root index and backward child references are derived from checked owner laws, not added as hypotheses.
+
+`buildParts_accepted` specializes that result to actual packet production under a lawful codec. `buildParts_checks` derives a produced and accepted packet from the lawful ordinary-real parent and codec, without assuming a successful producer or accepted certificate. `buildParts_poly` retains the original input polynomial key rather than substituting its internally reduced sign query.
+
+`SourceBuild.select_checked` and `buildOn_checked` preserve the exact selected root, full raw descriptor (context, head, open endpoints and empty derivative word), original equation/window wire keys and acceptance of both readers at the same root. `buildOn_checks` combines this with actual production from a valid interpreted squarefree count-one domain and a positive original window. Positive degree is derived from the real root. No serializer, graph-shape or successful-output premise is added.
+
+`buildOn_identify` composes the restored accepted facts with the existing `SourceIdentity.identify`. It takes the original source witness, precision, alias selection and coefficient-map equalities, then derives the selected root's equality with that alias. Source vanishing and window positivity come from the returned accepted packets; no handwritten source sign facts are premises. This is producer soundness, not a replacement for independently quoting frozen data.
+
+These laws retain the supplied predecessor arithmetic and codec policy. Finite decode coverage does not establish coverage of every subsequently reached packing/inverse operation, strict rejection of missing compiled records or reconstruction of arbitrary predecessor/provider histories. The canonical-codec builder laws likewise do not imply strict search-free replay at arbitrary depth. Those remain separate integration requirements.
+
+A fresh importing audit rechecks eleven actual theorem bodies and their full standard-three axiom closure. Native controls still compare 25,477 canonical bytes, validate six scalar graphs and reject endpoint/equal/reversed/repeated/zero/constant/absent/ambiguous and wrong-conjugate inputs. Existing frozen proofs retain 687,781/690,200/731,070 charged nodes and the 687,780-node rollback refusal; their fresh audit remains 392/449/811. Source identity remains 673,461 nodes with fresh 218/179/385. Both existing cell-quotation import/body guards pass.
+
+The initial six-target integration passed in 5min11.728s, peak 11.2 GiB/no swap. After the source-identity composition, the final six-target build passed in 10.983s, peak 1.6 GiB/no swap, reusing unchanged compiled quotation dependencies while freshly checking the expanded eleven-body audit and native controls. These are build observations, not timing comparisons or scaling. Final metadata checks pass. Failed elaboration attempts and all completed core/control/integration logs are retained; exact failed-source snapshots are not claimed.
+
+The transition adds theorem blocks, four proof imports and the expanded Meta audit. Removing exactly those additions recovers all three previous files byte-for-byte. Existing executable producer/replay/quotation logic, budgets, fixtures, manual, Lake and CI configuration are unchanged. Earlier 57-target/manual/browser evidence retains its original source pin; no new full 57-target/manual or browser run is claimed.
+
+All own Lean/Lake invocations remain serial under aggregate 32 GiB, zero swap and two Lean threads. This advances source production, accepted scalar replay and selected-embedding soundness. It does not complete generic source/history discovery, automatic tactic integration, accepted overall algebraic completeness, joint realization, strict compiled-record coverage or the remaining API/manual/evidence obligations. #10358 stays open; required fresh review and final-head CI/merge remain pending.
diff --git a/reports/hexrcf-sign-packet-quotation.md b/reports/hexrcf-sign-packet-quotation.md
index b235172266..8f5b1cbb4b 100644
--- a/reports/hexrcf-sign-packet-quotation.md
+++ b/reports/hexrcf-sign-packet-quotation.md
@@ -20,8 +20,8 @@ decoding. `decoded_value` composes the exact coefficient reader equation with
its ordinary real interpretation as −2√2. The fresh importing audit rejects a
dependency on the legacy `CellReplay.Algebraic.Records` fact list.
It separately requires `decoded_value`'s own dependency closure to include the
-new fact and the canonical reader law. The audit rechecks 80 actual theorem
-bodies and 11 definitions, with 81 nonempty diagnostic traces and exactly the
+new fact and the canonical reader law. The audit rechecks 96 actual theorem
+bodies and 11 definitions, with 97 nonempty diagnostic traces and exactly the
standard three axioms in the complete closure. The producer guard is unchanged,
and temporary audit copies are discarded.
The original `Data.lower` still obtains its parent from the legacy
@@ -32,10 +32,10 @@ modules named in the record and do not claim to audit that older parent body.
| Request | Proof-node accounting |
| --- | ---: |
-| Parent reconstruction and original packet quotation | 54,777 |
-| Packet with the checked prepared context already available | 32,815 |
+| Parent reconstruction and original packet quotation | 105,037 |
+| Packet with the checked prepared context already available | 69,973 |
| Coefficient decoding from the new fact, separate request | 966 |
-| One-below packet budget | exhausted after 32,792, requesting 23 |
+| One-below packet budget | exhausted after 69,950, requesting 23 |
These counts sum syntax checked at each stage, including repeated occurrences.
They are not unique DAG-node counts, sharing measurements, scaling trials or
@@ -55,22 +55,18 @@ The [checked manual](../HexManual/Chapters/HexRCF/RootQuote.lean) shows the
reader/value composition. The [source-bound record](data/hexrcf-sign-packet-quotation/context.json)
retains validation, failed experiments, audit inventories and review evidence.
-The wholly frozen ordinary-module packet experiment remains incomplete. Its
-actual failure reaches the unexposed `Tower.Signature.codec.decode` while reading
-a full signature. The existing lawful roundtrip has an encoded argument, but
-the client lacks the public literal decoding or encoding projection equation
-needed to connect that argument to its frozen input. A separate public example
-cannot prove the rational-parent encoding identity by reflexivity. Encoded
-context experiments also expose a later Boolean replay boundary. The
-[public canonical-packet continuation](hexrcf-public-packet-quotation.md)
-addresses that quotation boundary while retaining encoded context expressions;
-it does not discharge the fully numerical signature equation. The failed
-public probes are retained outside the default build, with no admissions or
-relaxed checks. The precise request remains with the existing
-[#10378 owner](https://github.com/kim-em/hex-dev/issues/10378#issuecomment-6230331731).
+The ordinary public-module packet path uses checked header reconstruction and
+`SignatureQuote.decoder` with the owner's public full-literal equation. Its
+fully numerical counterpart and current proof scope are described in the
+[root/header report](hexrcf-root-header-quotation.md). The
+[retained-context report](hexrcf-root-preparation.md) covers anonymous original
+readers, checked data retention and ordinary public consumers. The original
+signature-codec request is satisfied; independently frozen deeper frames still
+need the public graph-encoding interface requested from the existing owner.
+The historical [source-bound record](data/hexrcf-sign-packet-quotation/context.json)
+keeps its original counts and failed probes at its recorded source revision.
-The passing fixture uses the existing legacy imports; its fresh importing
-audit does not establish the missing public-module path. No general original
+No general original
source/provider/predecessor discovery, strict compiled missing-record guarantee,
native inverse/xgcd repair, accepted algebraic completeness or general tactic
installation is claimed. Those and the remaining conversion, realization,
diff --git a/reports/hexrcf-source-identity.md b/reports/hexrcf-source-identity.md
new file mode 100644
index 0000000000..709f8e47ce
--- /dev/null
+++ b/reports/hexrcf-source-identity.md
@@ -0,0 +1,71 @@
+# Packet-derived selected-source identity
+
+`SourceIdentity.quoteWith` independently quotes the source equation and
+isolating-square margin, then proves that their selected root equals the
+original real coefficient. Both facts must belong to the same context: the
+equation has sign zero and the margin has sign positive. Checked polynomial
+value laws bind both packet keys to the original source. A source equation
+alone cannot distinguish real conjugates.
+
+The generic helper retains the caller's prepared-context equality, ordinary
+real model, anchor selection and coefficient value laws. It performs no root
+or sign search. Its enclosing `RootQuote.runWith` supplies the shared budget
+and transaction. No solver handler, field instance or owner proof is added.
+
+The frozen positive-square-root regression uses 673,461 proof nodes. A valid
+negative-window packet is independently accepted with sign −1, but cannot
+identify the positive native root with the negative selected conjugate.
+Wrong coefficient proofs and one-node-below limits also fail with complete
+metavariable and auxiliary-declaration restoration.
+
+The resulting coefficient identity replaces the handwritten identity in the
+complete source proof of
+`∃ x : ℝ, x²−Real.sqrt 2 ≥ 0 ∧ x²−Real.sqrt 2 ≤ 0 ∧ 0=0`.
+The cell reification/quotation still charges 8,644,422 nodes before separate
+source finishing. This is a fixed-parent example with supplied seed facts,
+not arbitrary predecessor-history reconstruction.
+
+| Fresh actual-body audit | Theorems | Definitions | Nonempty traces |
+| --- | ---: | ---: | ---: |
+| Selected-source identity and negative packet | 218 | 179 | 385 |
+| Complete original algebraic source | 1,192 | 202 | 1,352 |
+
+Both audits check complete transitive closure against the standard three
+axioms, retain the producer-reduction guard and exclude handwritten source
+identities and native fact fixtures. The source audit also excludes the older
+complete-packet acceptance/source proofs. No admission or native decision
+proof is introduced.
+
+The component build passes in 2m08.566s, peak 2.6 GiB. Lake reports 889s for
+the full original-source module. That first combined invocation then failed
+only on the obsolete audit-count pin, after all strengthened body checks had
+passed; its actual inputs and failure remain retained. Updating that observed
+count gives a passing 45-target affected build, including the optional umbrella,
+fresh audits, emitter and complete manual: 14,473 jobs with cached dependencies
+reused, 4m53.751s, peak 4.1 GiB. This is not the entire default conformance set.
+
+The build-only emitter reproduces all three frozen packets exactly, totaling
+10,284 bytes; it is absent from the proof-consumer path. Constructor freshness
+and seven metadata checks pass. The final HTML render passes in 2m27.295s,
+peak 2.2 GiB; browser capture passes in 11.719s, peak 6.8 GiB. All twelve final
+1440px/390px captures were actually inspected. Changed targets have zero local
+overflow; unrelated existing page overflow remains outside this change.
+The two failed narrow code-layout captures and their inputs are retained.
+
+All own Lean/Lake/browser invocations are serial under an aggregate 32 GiB
+cap, no swap and two Lean threads. These are fixed-input proof observations,
+not matched speedup, scaling, compiled replay or physical-sharing measurements.
+The [198-artifact/106-source record](data/hexrcf-source-identity/README.md)
+pins the implementation. Earlier evidence records retain their original pins.
+Hosted CI then caught missing copyright prefixes in two newly tracked files:
+the local checker had skipped them while untracked. A comment-only repair
+passes the tracked-file checker. Its separate verifier checks all 106 sources
+against the original pin, allowing only the two exact required prefixes;
+the failed CI logs are retained. No expensive proof build was repeated for
+these comment-only changes; exact-head hosted validation is still required.
+
+General source/provider/predecessor and frozen-history assembly, complete
+tactic integration and accepted algebraic completeness, joint realization,
+strict compiled missing-record coverage, practical costs and the remaining
+API/manual/evidence requirements are still incomplete. Issue #10358 stays
+open and #10331 owns downstream dispatch.
diff --git a/reports/hexrcf-source-packet-assembly.md b/reports/hexrcf-source-packet-assembly.md
new file mode 100644
index 0000000000..bbb6990656
--- /dev/null
+++ b/reports/hexrcf-source-packet-assembly.md
@@ -0,0 +1,19 @@
+# Combined selected-source quotation
+
+`SourceIdentity.quotePacketWith` combines the previously caller-written descriptor/header reconstruction, prepared-context retention, two scalar readers and original-source authentication in one cumulative quotation request. Its `Packet` stores the original descriptor/graph, equation/window keys and graphs, and their coefficient-map proofs. Zero and positive signs are checked demands for source identification, not trusted producer verdicts.
+
+The exact supplied parent provides the codec, sign, signature and cleanliness. `RootHeader.quoteWith` checks the original complete descriptor reader and raw-header binding; `RootPrepare.prepareWith` retains that context. Each scalar reader uses the original model and exact keys, then `SourceIdentity.quoteWith` checks both observations at the same root and composes the original alias identity. No producer runs, and no new field representation, formula syntax or arithmetic implementation is introduced. The original `quoteWith` API is unchanged.
+
+The helper runs inside `RootQuote.runWith`, sharing its cumulative budget and complete failure rollback. The retained fixed real parent/model, original source witness/precision, alias selection and coefficient-map laws remain supplied. It does not discover arbitrary syntax, predecessor/provider histories, generic frozen operation records or a full tactic solution. Default deeper coefficient operations retain their supplied policy; strict all-depth replay is not inferred.
+
+The bounded frozen source regressions now use this public helper instead of assembling its internal stages themselves. Actual ordinary-kernel identities cover both quadratic conjugates and the cubic alias under the unchanged default million-node budget: 687,783/690,202/731,072 charged nodes. The additional two nodes admit the parent/model inputs. The positive request also succeeds at its exact charge, and a 687,782-node refusal restores caller state. Four malformed requests reject independently: mismatched descriptor binding, substituted equation evidence, a wrong coefficient law and a model from a different parent. Every refusal restores metavariables and declarations, with no diagnostic-string classification or solver fallback.
+
+The actual emitted proof bodies retain the prior producer/fixture exclusions and full standard-three axiom closure. A fresh importing audit checks 392 theorem bodies/449 definitions/811 nonempty traces. Original source-identity compatibility retains 673,461 nodes and the fresh 218-theorem/179-definition/385-trace audit. Build-only results are ordinary-kernel proofs; compiled producer verdicts are not evidence.
+
+The final three-target integration passes 11,214 Lake jobs with cached dependencies reused: the optional umbrella, combined-API proof audit and original source-identity proofs/controls. Runtime is 2 min 5.425 s, peak 2.3 GiB/no swap, under the serial aggregate 32 GiB cap and two Lean threads. Nine repository checks pass: headers, line counts, DAG, admissions, release manifest, factor-measurement freshness, both literal generators and diff whitespace.
+
+The [immutable record](data/hexrcf-source-packet-assembly/README.md) binds the exact helper and conformance inputs, consumed quotation modules, logs and refusal/budget checks. The preliminary example build and its reconstructed setup snapshot are retained as provenance; only the final input hashes and final integration establish the shipped implementation. Older source proofs and numerical observations retain their own source pins. This is not a full conformance/manual rerun or a new timing experiment.
+
+Implementation commit `9f5f63da8f8d6673eb547c6ae666a001fd56361c` is bound to 145 source files in the record. Run `python3 reports/data/hexrcf-source-packet-assembly/verify.py --check-head` for current source binding, or omit the flag for the historical implementation. The source comparison proves that removing the new helper/record and its meta import recovers the previous quotation module exactly.
+
+Full #10358 remains open for source/provider/predecessor/history discovery, full automatic frontend/backend integration, overall accepted algebraic completeness, general joint realization, strict compiled missing/reached-record coverage and remaining API/manual/proof evidence. Existing owner gates remain.
diff --git a/reports/hexrcf-source-progress.md b/reports/hexrcf-source-progress.md
new file mode 100644
index 0000000000..775fac4eff
--- /dev/null
+++ b/reports/hexrcf-source-progress.md
@@ -0,0 +1,15 @@
+# Selected-source proposal progress
+
+`ScalarPacket.buildParts_sign` proves that a produced scalar proposal retains the actual total sign of its original polynomial at its selected root, under the supplied lawful ordinary-real parent model. It consumes the owner's checked selected-sign interpretation. It does not turn a proposed integer or serialized graph into proof evidence.
+
+`SourceBuild.select_single` proves actual equation/window packet production for a selected root satisfying the original equation and a strictly positive original window. `SourceBuild.buildOn_success` derives an actual bounded proposal from a valid interpreted squarefree open domain, exactly one real root in that domain and strict window positivity at its roots. Positive stored degree follows from the real root and the owner's degree correspondence; it is not an extra premise. The proof uses the owner's `Descriptor.build_success_iff` and selected-root laws, then the packet progress and sign-retention laws. No successful producer equation, precomputed descriptor, table or accepted packet is assumed.
+
+These are progress laws for valid mathematical inputs. Serialized replay acceptance, source alias selection, generic provider/history discovery and complete algebraic tactic progress remain separate obligations.
+
+A fresh importing audit checks all three actual theorem bodies through `addDeclCore` with kernel checking enabled and checks their full axiom closure: `propext`, `Classical.choice`, `Quot.sound` only. It retains no copied declaration. The same native module still compares all 25,477 frozen bytes, validates six scalar graphs and checks endpoint/domain/uniqueness/wrong-conjugate refusals. Its final build passed in 11.662s, peak 1023.1 MiB/no swap. Earlier elaboration failures and successful core/control attempts are retained; exact snapshots of failed source versions are not claimed.
+
+The source transition is proof-only. Removing exactly the three new theorem blocks and the new fresh-audit import/body recovers each of the three prior files byte-for-byte. Production, checking, quotation, budgets, data fixtures, Lake/CI configuration, tactic dispatch and manual sources are unchanged. The earlier 57-target/manual/render/quotation record retains its original source pin; it is not claimed as a new run. The new proof bodies and existing native frozen-byte controls have their own successful build and audit. Final-head CI and required fresh Opus review remain pending.
+
+Eight metadata checks pass: copyright, line counts, dependency graph, named admissions, release manifest, figure freshness, literal freshness and diff checks. No build target or CI configuration changes.
+
+Every own Lean/Lake call remains serial under aggregate 32 GiB, zero swap and two Lean threads. Full #10358 remains open; this supplements bounded proposal progress and does not establish generic frozen acceptance or complete tactic integration.
diff --git a/reports/hexrcf-source-replay-dimensions.md b/reports/hexrcf-source-replay-dimensions.md
new file mode 100644
index 0000000000..3acd99d097
--- /dev/null
+++ b/reports/hexrcf-source-replay-dimensions.md
@@ -0,0 +1,51 @@
+# Compiled selected-source packet dimensions
+
+The question is how cumulative lexical checking, parsing, default catalog reconstruction and selected-sign replay change with independently varied root-defining degree, ordered query count, query coefficient height, dyadic interval precision and algebraic predecessor depth. Inputs are produced by the optional adapter's `SourceBuild.buildOn` and the existing owner selected-sign producer. Generation, adapter preparation, reification, literal creation and proof construction are excluded from the timed calls.
+
+The corpus has 22 packets. The five axes change one declared parameter at a time from degree 2, two queries, denominator exponent 16, interval precision 0 and predecessor depth 0. Degree uses X^d − 2; query coefficients use 1/(2^b + 1); dyadic enclosures narrow around the positive quadratic root. The depth family adjoins positive roots of X² − (2 + previous generator) after the initial X² − 2 root. Additional cases exercise repeated queries, common roots at the selected point and repeated roots in query polynomials. These are representative finite inputs, not a worst-case BKR family or full tactic-atom scaling after normalization.
+
+The source work varies with actual wire bytes, integer operand sizes, matrix dimensions, graph entries and predecessor calls. `Codec.checkBytes` visits each byte at most once after its length check. `readGraph` visits every stored row node and checks child indices against its actual earlier prefix. `Dag.selectedSigns?` validates every stored entry, including unreachable entries, and checks the selected row. These node visits contain coefficient arithmetic and matrix/identity checks, not constant-cost work. Catalog restoration additionally reconstructs predecessor contexts and decodes their coefficients. The depth recurrence charges local work plus all predecessor work; neither nested signs nor arbitrary-width integers are unit costs. The recorded byte/bit/node inventories accompany representative time and memory observations, without fitting a timing model or asserting a polynomial bound in unrestricted tower depth.
+
+All 22 packets pass the owner lexical/parser/catalog/selected-sign checks before collection. Separate controls reject incorrect claims, swapped query order, stale graph versions, cyclic children, swapped contexts, omitted support columns, inconsistent positive counts, inconsistent moment values and an unknown root kind. Byte/depth/zero-digit limits also reject. The corrected preflight attempts are retained: one initially assumed every packet contained a multi-digit integer, one count mutation accidentally preserved an existing zero, and one expected semantic rejection where intrinsic rank bounds instead produced a parser error. No production checker changed.
+
+The compiled driver has 449 compiler-listed imports and no Mathlib. Timed functions read their input through IO.Ref and return a consumed Boolean hash; parsing/reconstruction/replay each parse once. Four cumulative stages are reported separately. Differences between their times are not exclusive-stage measurements. Reconstruction includes the default owner's native predecessor decoding/arithmetic; this is not strict production-free replay at arbitrary depth, full certificate coverage or full tactic timing. Row DAG metrics count only the selected-sign evidence, excluding descriptor/predecessor graphs.
+
+| Cumulative operation, degree-2 baseline | Median (minimum–maximum) μs |
+| --- | ---: |
+| lexical | 154.12 (153.69–157.90) |
+| parsed | 574.22 (569.53–579.80) |
+| restored | 634.90 (630.36–650.82) |
+| replayed | 836.56 (832.35–838.20) |
+
+| Independently varied axis | Endpoint packets | Bytes | Replay median μs | Maximum wire integer bits |
+| --- | --- | ---: | ---: | ---: |
+| Degree | degree-2 → degree-5 | 9,916 → 14,259 | 836.56 → 1424.63 | 68 → 203 |
+| Distinct queries | atoms-1 → atoms-4 | 4,899 → 20,269 | 435.51 → 1662.63 | 66 → 72 |
+| Query denominator exponent | bits-4 → bits-128 | 9,572 → 13,230 | 780.55 → 2134.56 | 20 → 516 |
+| Dyadic precision | precision-0 → precision-12 | 9,916 → 10,046 | 836.53 → 852.88 | 68 → 68 |
+| Predecessor depth | depth-0 → depth-2 | 9,916 → 53,744 | 836.08 → 7931.81 | 68 → 272 |
+
+| Additional input | Bytes | Unique/expanded row nodes | Replay median (minimum–maximum) μs |
+| --- | ---: | ---: | ---: |
+| atoms-4 | 20,269 | 7/7 | 1662.63 (1652.10–1671.15) |
+| repeated-4 | 8,097 | 3/7 | 678.33 (668.72–680.44) |
+| common-2 | 8,268 | 3/3 | 640.57 (639.37–642.68) |
+| repeated-roots-2 | 9,613 | 3/3 | 776.01 (772.41–809.62) |
+
+
+
+Each point is a median of five retained trials; error bars show their full range. The complete 88 case/stage summaries retain all five individual observations. Endpoint tables do not hide intermediate cases: every point and raw export is included. Repeated queries reduce the selected-row graph from seven nodes to three on this fixed input; the expanded reference count remains seven. This is a literal evidence-size observation, not a measurement of physical proof sharing or a general speedup.
+
+Across the retained samples, benchmark-worker peak RSS is 59,648–71,308 KiB; whole CLI/descendant wait4 peak RSS is 438,408–448,976 KiB. These scopes include their respective harness/runtime overhead. The final collection log supplies the aggregate cgroup peak and successful exit.
+
+The fixed schedule has five trial-major blocks over all 22 packets, with adjacent stage order reversed in alternating blocks. Each arm contributes one warmed outer sample, autotuned to at least 0.2 seconds. An automatically leased logical CPU provides placement, not isolation. Host load is retained as context; no completed sample is removed. Every expected result hash must match. The fixed 30 second per-call safeguard is operational, not a scientific time budget. No unchanged rerun has been performed.
+
+Per-call times exclude process startup and preparation. Benchmark-worker peak RSS and whole CLI/descendant wait4 RSS are different scopes; neither measures exclusive operation memory and no subtraction is made. All own builds and collection use one serial 32 GiB/no-swap/two-thread unit. Existing rational-tactic results and the earlier single 2911-byte catalog packet are not used as matched comparisons. No speedup, complexity model or mathematical independence is claimed.
+
+The Hex source is `46c6114a4fc18ace27ff8167b51866f89d1f0d23`, clean at collection. The automatically leased CPU is 38 on `chungus2`. The raw exporter identifies the separate external harness checkout; the collection context identifies Hex. The [immutable record](data/hexrcf-source-replay-dimensions/README.md), [context](data/hexrcf-source-replay-dimensions/context.json), [summary](data/hexrcf-source-replay-dimensions/summary.json) and [raw exports](data/hexrcf-source-replay-dimensions/samples.tar.gz) retain exact source/input/executable hashes, compiler imports, all completed observations and the preparation/control attempts. Run `python3 reports/data/hexrcf-source-replay-dimensions/verify.py` to check the historical record. No later source is timed by it.
+
+Ordinary-kernel source authentication and bounded packet quotation remain separately evidenced in the [bounded-source](hexrcf-bounded-source.md) and [scalar-acceptance](hexrcf-scalar-acceptance.md) records. Compiled result hashes here are test results, not proof evidence.
+
+This supplies numerical-source component evidence. It does not complete missing original-syntax/history discovery, automatic tactic integration, strict compiled-record coverage, overall algebraic completeness, joint realization or remaining API/manual/proof evidence for #10358.
+
+The [manual supplement](data/hexrcf-source-replay-manual/README.md) binds the short documentation link to this study, the final complete-manual build/render and two inspected viewport captures. Its final source-file checks pass. Earlier successful build/render attempts with the paragraph in the oversized main chapter are retained as superseded; the final paragraph belongs to the existing quotation subchapter. The numerical source and measurement record are unchanged.
diff --git a/reports/hexrcf-source-valuations.md b/reports/hexrcf-source-valuations.md
new file mode 100644
index 0000000000..e4533610b3
--- /dev/null
+++ b/reports/hexrcf-source-valuations.md
@@ -0,0 +1,80 @@
+# Prepared coefficients and complete source valuations
+
+The complete original-source quotation now consumes `TowerCompile.prepareWith`
+inside its existing cumulative request. The leaf callback authenticates the
+selected positive square root through the actual descriptor, equation and window
+reader before returning its stored coordinate and scalar identity. It does not
+reuse the older imported selected-root or coefficient identity. The unchanged
+goal is `∃ x : ℝ, x² - Real.sqrt 2 ≥ 0 ∧ x² - Real.sqrt 2 ≤ 0 ∧ (0 : ℝ) = 0`.
+
+[`CellQuote.valuationWith`](../adapters/HexRCF/RealCoefficients/CellQuote.lean)
+assembles the ordered scalar identities into equality of the entire finite
+source valuation. It checks closed inputs, exact coordinate and proof counts,
+the dependent family and the final equality in the ordinary kernel. It reuses
+the existing finite-family quotation helper. Original divisor obligations remain
+separate and are checked by source finishing. The complete example uses the new
+helper instead of a source-specific one-coordinate tactic proof.
+
+The [standalone conformance](../conformance/HexRCF/SourceValuationConformance.lean)
+constructs zero-, one- and two-coordinate valuations using the actual selected
+√2 model and supplied leaf identity. Full-request charged node counts are 7,590,
+11,174 and 16,484, including preparation, arithmetic, the zero fallback and finite
+function construction. Swapped coordinates, swapped proofs, missing proofs,
+wrong coordinate counts and unresolved caller-owned coordinate functions reject.
+The unresolved-input control checks that the caller's metavariable remains
+unassigned and the declaration inventory is unchanged. The
+[fresh importing audit](../conformance/HexRCF/SourceValuationProofs.lean)
+rechecks fourteen actual theorem bodies, including private generated proofs,
+with thirteen nonempty kernel traces. Its complete transitive axiom inventory
+is exactly `propext`, `Classical.choice` and `Quot.sound`; copied declarations
+are not retained. These standalone proofs intentionally consume an authenticated
+leaf; they do not reconstruct it automatically.
+
+The final complete original-goal quotation records 705,649 charged nodes after
+fresh source authentication, 705,699 after inventory compilation, 707,592 after
+polynomial reconstruction, 9,330,130 before finishing, 9,336,963 at the completed
+source proof and 9,337,057 for the entire request. The graph memo still reports
+two reuses and seven validations. Its build passes 11,177 Lake jobs with cached
+dependencies reused in 13 min 17.611 s, peak 2.3 GiB/no swap. The separate fresh
+full-source audit rechecks 1,192 theorem bodies and 202 definitions, with 1,352
+nonempty kernel traces and exactly the standard three axioms. It passes in
+3 min 22.868 s, peak 2.7 GiB/no swap. Every earlier required/forbidden dependency
+and producer-reduction guard remains active. The retained model, source alias,
+coefficient-map identities and seed facts remain supplied inputs.
+
+The final seven-target integration passes 14,417 Lake jobs with cached
+dependencies reused: the full source audit, standalone valuation audit,
+compiler audit, base handler regressions, existing real-coefficient tactic
+checks, optional umbrella and complete manual. It takes 9 min 15.978 s,
+with peak 7.6 GiB/no swap. This is an affected-target integration, not a claim
+that the entire default conformance suite ran.
+
+The complete manual render passes in 23.489 s, peak 1.7 GiB/no swap.
+Browser inspection passes in 10.499 s, peak 2.8 GiB/no swap. All six final
+1440-pixel desktop and 390-pixel narrow captures were actually viewed. The
+changed API, checked code and provenance blocks have zero local overflow.
+These local checks do not attest the layout of every other manual section.
+Ten repository checks pass, including twelve DAG-boundary tests, dependency
+and umbrella validation, admission checks, deterministic literal regeneration
+and whitespace checking. Relative links are checked after packaging the record.
+
+The [source-bound record](data/hexrcf-source-valuations/README.md) distinguishes
+the successful final implementation from preliminary attempts. The initial
+compiler-only full quotation passed, but its importing audit correctly rejected
+the old exact body count; the updated exact inventory then passed. The first
+combined valuation build rejected two leftover identifiers before quotation
+ran; those redundant lines were removed. Neither failure validates final code.
+Earlier proof and numerical records retain their original source pins.
+
+This connects prepared coefficient arithmetic and general finite valuation
+assembly to one complete original source proof. It does not discover arbitrary
+source leaves, providers, predecessor histories, coefficient maps or seed facts.
+It does not establish full automatic tactic integration, strict all-depth
+missing-record rejection, accepted algebraic completeness or general finite
+joint realization/export. The public presentation-model equation and #10377
+coverage/order laws are already available; numeric-frame and general-export
+integration still require their actual reviewed and merged owner APIs. Full
+#10358 remains open. These build observations are operational evidence, not a
+new scientific timing comparison or speedup claim. Every own Lean, Lake,
+render and browser invocation runs serially under the hard aggregate 32 GiB
+cgroup cap, with zero swap and two Lean threads.
diff --git a/reports/hexrcf-tower-compile.md b/reports/hexrcf-tower-compile.md
new file mode 100644
index 0000000000..f59ac9a03a
--- /dev/null
+++ b/reports/hexrcf-tower-compile.md
@@ -0,0 +1,19 @@
+# Stored coefficient arithmetic under a retained real model
+
+`TowerCompile.compile` constructs a stored coefficient expression and an ordinary proof that its model value equals the original closed real source. It composes supplied, checked leaves through the retained tower's actual total arithmetic operations. Rational literals and casts use the existing bounded admission before rational normalization; natural powers use core's repeated product and an interpretation proof. No field instance on stored expressions, new formula syntax or lower-library arithmetic algorithm is introduced.
+
+The compiler takes the stored operations from the actual model's interpretation equations. This retains the exact context instances even when a leaf's inferred type exposes its underlying algebraic carrier. Only Lean expressions and checked proofs cross the meta interface; the implementation does not return a higher-universe native context through `MetaM`. A supplied model must be closed, use the ordinary real field/order instances and pass dependency checking, including when both source inventories are empty.
+
+`prepareWith` consumes the existing `Reify.Source` and returns its coefficient and original-divisor inventories in order. It requires the enclosing request to continue the recorded preparation usage and checks that prior consumption fits every enclosing limit, including dimensions not recharged by arithmetic. Original denominators survive zero multiplication and cancellation; compiling their arithmetic does not prove nonvanishing or accept a sentence. Every supplied identity is checked against its exact model, stored expression and original source in the ordinary kernel. Declining callbacks restore metavariables and declarations before arithmetic continues. Unexpected failures and resource exhaustion remain terminal and use the enclosing transaction's rollback.
+
+The conformance module quotes nine source expressions over the actual selected √2 parent, including a rational cast, compound division, inversion and natural powers. Their charged node counts are 441, 711, 1,111, 540, 826, 742, 2,284, 247 and 276. A separate importing module traverses their actual dependencies and rechecks 36 theorem bodies, including private generated proofs, with 35 nonempty kernel traces. Its complete transitive axiom closure is exactly `propext`, `Classical.choice` and `Quot.sound`; no copied declarations remain. Supplied selected-leaf authentication is intentional in these tests and is not evidence of automatic source discovery.
+
+Controls check two distinct coefficient coordinates and two original denominators, a denominator hidden under zero multiplication, reset source-accounting refusal, transferred usage above a new limit, wrong source proofs, swapped models, unsupported functions, callback decline/failure rollback, exhaustion and invalid-model refusal on empty inventories. Both new modules are included in the existing conformance library; the optional adapter umbrella and its default Lake target include the implementation. CI gains no job or workflow.
+
+The final five-target integration passes 14,414 Lake jobs with cached dependencies reused: fresh compiler proof audit, existing base handler regressions, real-coefficient tactic compatibility, optional umbrella and complete current manual. It takes 3 min 41.875 s, with peak 2.9 GiB/no swap. The manual includes a checked generic quotation example, the exact supplied-model/leaf boundary, original-guard obligations and these proof counts. These are operational validation observations, not a numerical performance comparison or speedup claim.
+
+The final complete manual render passes in 14.803 s with peak 1.5 GiB/no swap. Browser inspection passes in 10.585 s with peak 6.3 GiB/no swap. All six final desktop/narrow views were actually inspected; the changed API, code and guard paragraphs have zero local overflow. The first browser run correctly rejected a 27-pixel narrow code overflow. Its captures and failed log are retained; the fixed line is split in the successful final render. Earlier elaboration/setup failures are attempt provenance, not evidence validating the final code.
+
+The [source-bound record](data/hexrcf-tower-compile/README.md) retains the final build, complete private-proof audit, metadata checks, rendered-page digest and six final captures, with earlier attempts labelled separately. Run `python3 reports/data/hexrcf-tower-compile/verify.py --check-head` for the bound current source, or omit the flag for the immutable implementation commit. Ten repository checks, including twelve DAG-boundary tests, pass. Relative links and staged whitespace are checked separately. Every own Lean/Lake/render/browser invocation runs serially under the hard aggregate 32 GiB cgroup cap, zero swap and two Lean threads.
+
+This completes stored arithmetic interpretation from supplied authenticated leaves in an ordinary-real retained context. It does not discover those leaves or arbitrary provider/predecessor histories, discharge original guards, assemble frozen complete-cell certificates, establish strict all-depth missing-record coverage or prove overall accepted algebraic completeness. General joint realization/export and the actual reviewed/merged numeric-frame APIs remain integration gates. Existing #10377 coverage/order laws and the merged public presentation-model equation are already available. Full #10358 remains open, and the continuing PR still needs actual fresh Opus review and final-head green CI before merge. Earlier numerical and proof records keep their own source pins and limitations.
diff --git a/reports/hexrcf-tree-quotation.md b/reports/hexrcf-tree-quotation.md
new file mode 100644
index 0000000000..81e7f8e559
--- /dev/null
+++ b/reports/hexrcf-tree-quotation.md
@@ -0,0 +1,99 @@
+# Public tree replay quotation
+
+`RootQuote` now rewrites supplied replay trees through the owner's public
+`Replay.check.eq_1` and `eq_2` equations before opening local node checks. This
+keeps the replay function explicit during checked conversion. It does not add
+an arithmetic operation, certificate producer, solver handler or field instance.
+
+A complete-cell diagnostic exposed an expensive conversion from
+`decide (Replay.check ... = true)` to a local node equation. A debug snapshot
+retained the already checked prefix and stored the pending target and candidate
+as expression data, without installing an unchecked theorem. Correct-candidate,
+local-variable closure and wrong-goal rejection controls validated that debug
+boundary. The exact captured target subsequently passed ordinary-kernel checking
+with the public leaf equation, explicit Boolean transport and a Boolean
+placeholder for the local check. The original and intermediate interrupted
+attempts are retained; they are not completed performance comparisons.
+
+## Checked surface
+
+The default conformance modules include an ordinary public consumer for true
+and false leaf and split readers. A wrong context and swapped children select
+the expected diagnostic branches. Readers returning errors refuse quotation.
+Exact/below resource controls check complete caller metavariable and declaration
+restoration. The reader proof is checked against the original reader, not a
+compiled Boolean verdict or the fixture's old acceptance theorem.
+
+The fresh importing body audit requires both public replay equations, excludes
+`Conformance.literal_accepts` and `full_kernel`, and checks 254 actual theorem
+bodies, four definitions and 246 nonempty kernel traces. The existing producer
+denylist and complete standard-three axiom closure remain in force.
+
+| Scope | Theorems | Definitions | Nonempty traces |
+| --- | ---: | ---: | ---: |
+| Public tree readers | 254 | 4 | 246 |
+| Preparation | 827 | 63 | 875 |
+| Header | 730 | 66 | 781 |
+| Context | 738 | 68 | 791 |
+| Public packet | 712 | 67 | 769 |
+| Dependent readers | 153 | 16 | 78 |
+| Actual-codec dependent readers | 61 | 4 | 56 |
+| Sign packet | 109 | 11 | 110 |
+
+Primitive and rational scopes check 265 and 208 theorem bodies respectively.
+The root-table scope checks 103 theorems and 14 definitions. These are different
+scopes with overlapping dependencies; the counts must not be added together.
+Inventory changes were pinned after their guarded loops completed. No kernel,
+axiom, producer, source-binding or restoration check was removed.
+
+The tree leaf uses its pinned 51,093-node exact budget; one node less exhausts.
+The standalone sign packet uses 79,531 nodes and exhausts below that limit at
+79,508 + 23. Its combined parent/packet request uses 121,490 nodes. Preparation
+controls pass exact/below at 2,405,322 nodes, wrong-sign refusal and three
+malformed-input restorations; the full prepared-packet request including its
+presentation uses 2,407,741 nodes. Context packing remains 2,653 nodes.
+
+The 29 selected targets include rational compatibility, independent scalar,
+shared and dependent callbacks, root-table/header/context/preparation controls,
+packet mutations and the complete manual. Their combined validation passes
+14,388 jobs, reusing unchanged dependencies and the full manual built in the
+preceding correction run. The final manual is rebuilt for its display changes.
+Failed inventory/accounting runs remain alongside the final validation.
+
+## Complete-packet limit
+
+The new full original-source experiment advances beyond the previous stalled
+conversion but still exhausts its explicit five-million-node budget at
+5,000,000 consumed plus one requested. It takes 38m13.237s and peaks at 4.3G as
+reported by the bounded runner, with no swap. Original-source finishing and the
+prepared importing source audit are not reached. The original polynomial,
+shared matrix, supplied cells and frozen reduction are retained; no old
+complete-fixture acceptance is counted as a fresh literal proof.
+
+This is a targeted quotation experiment, not a scaling run, compiled family
+benchmark or AB/BA speed comparison. The interrupted kernel diagnostics and
+completed bounded refusal have different scopes and resource allowances.
+Proof-node accounting and compiled module sizes do not establish physical DAG
+sharing or serialized-certificate sizes. No speedup ratio is claimed.
+
+## Remaining work
+
+This delivery does not complete generic source/provider/predecessor and frozen
+history authentication, complete-cell tactic quotation, accepted algebraic
+completeness, conversion/joint realization or all required evidence. The
+existing owner requests and unmerged public-model alignment remain distinct
+gates. They do not prevent independent ordinary-real frontend work. #10358
+remains open under #10331; no additional issue, worker, owner proof or CI job is
+introduced. Earlier #10633/#10634 artifacts remain preserved.
+
+## Retained evidence
+
+The [source-bound record](data/hexrcf-tree-quotation/README.md) pins the code,
+artifacts and unchanged shared producer/axiom guards. Its verifier checks the
+literal budgets, guarded inventories, failed full-packet limit, exact isolated
+repair and six inspected captures. The initial 105-pixel narrow-code overflow,
+its source and screenshots are retained; shorter source lines fix the final
+render without changing the proofs or overflow checks. Final changed content
+fits at 1440 and 390 pixels; pre-existing page/section overflow remains recorded
+separately. All local builds and browser runs are serial under an aggregate
+32 GiB limit, with swap disabled and two Lean threads.
diff --git a/scripts/bench/proof_only_runtime_exemptions/lakefile-rcf-admission-fea47caa-f1117c9c.json b/scripts/bench/proof_only_runtime_exemptions/lakefile-rcf-admission-fea47caa-f1117c9c.json
new file mode 100644
index 0000000000..6f26ff7a4c
--- /dev/null
+++ b/scripts/bench/proof_only_runtime_exemptions/lakefile-rcf-admission-fea47caa-f1117c9c.json
@@ -0,0 +1,6 @@
+{
+ "path": "lakefile.lean",
+ "baseline_blob": "fea47caa0a9c4cdc271c9e126cc12cf4020b2994",
+ "current_blob": "f1117c9ca553db82ee65e1d16c6f314401655dc3",
+ "reason": "Relative to the previously accepted issue-10358 lakefile blob 2a88622a986e242054e4eb284630f1961aee9cc8, the sole change adds HexRCF.HandlerTests.Admission to the existing HexReleaseTests literal glob list. This module contains rejection/rollback tests for the RCF meta proof-admission checker, not executable factorization code. No package option, dependency, native archive, factor service declaration, linker input or factorization-library build setting changes. HexReleaseTests already lists factorization tests, so the conservative factor-build rule fingerprints its entire declaration even though the added RCF test cannot be imported by HexBench.FactorService. The baseline-to-previously-accepted leg retains the existing exact exemptions and checked build-only transitions; this exact endpoint additionally covers only the one RCF test registration. No performance data, measurement input or runtime implementation is changed."
+}
diff --git a/scripts/bench/proof_only_runtime_exemptions/lakefile-rcf-bounded-source-fea47caa-baeeaf73.json b/scripts/bench/proof_only_runtime_exemptions/lakefile-rcf-bounded-source-fea47caa-baeeaf73.json
new file mode 100644
index 0000000000..cd42e31e46
--- /dev/null
+++ b/scripts/bench/proof_only_runtime_exemptions/lakefile-rcf-bounded-source-fea47caa-baeeaf73.json
@@ -0,0 +1,6 @@
+{
+ "path": "lakefile.lean",
+ "baseline_blob": "fea47caa0a9c4cdc271c9e126cc12cf4020b2994",
+ "current_blob": "baeeaf73a0b1d870d5f150318a60ca5cb9e8c5ae",
+ "reason": "This endpoint extends the previously accepted exact1ab4e88c optional RCF/conformance target list with seven BoundedSource conformance modules. Removing exactly the four new BoundedSource glob lines reproduces1ab4e88c byte for byte. No package/dependency option, archive, linker input, factor service or library setting or measured factorization module changes. The factorization executable imports neither the optional adapter nor these Mathlib-importing conformance proofs. Measurements and earlier source manifests remain unchanged; no factorization measurement is extension evidence."
+}
diff --git a/scripts/bench/proof_only_runtime_exemptions/lakefile-rcf-source-build-fea47caa-1ab4e88c.json b/scripts/bench/proof_only_runtime_exemptions/lakefile-rcf-source-build-fea47caa-1ab4e88c.json
new file mode 100644
index 0000000000..8e69ef5dc7
--- /dev/null
+++ b/scripts/bench/proof_only_runtime_exemptions/lakefile-rcf-source-build-fea47caa-1ab4e88c.json
@@ -0,0 +1,6 @@
+{
+ "path": "lakefile.lean",
+ "baseline_blob": "fea47caa0a9c4cdc271c9e126cc12cf4020b2994",
+ "current_blob": "1ab4e88caeafa3fdbef7463ddeee13d151e5399b",
+ "reason": "The previous exact endpoint f1117c9ca553db82ee65e1d16c6f314401655dc3 covers the RCF admission test registration. This endpoint additionally registers SourceBuild in the existing optional HexRCFRealCoefficients target and the enumerated-source producer, constructor literals, quotation and importing-audit modules in the existing HexConformance target. Removing exactly those added literal glob lines reproduces f1117c9c byte for byte. The changed declarations only select optional RCF modules or conformance tests; they change no package/dependency setting, archive, linker input, compiler option, factor service declaration or factorization module body. The factorization service imports neither the optional real-coefficient adapter nor conformance tests. No executable benchmark imports Mathlib and no factorization measurement is used as evidence for this new adapter producer. Existing measurements and their source manifests remain unchanged."
+}
diff --git a/scripts/rcf/selected_literals.py b/scripts/rcf/selected_literals.py
index 4ba7e42634..517c36d707 100644
--- a/scripts/rcf/selected_literals.py
+++ b/scripts/rcf/selected_literals.py
@@ -414,6 +414,41 @@ def render_catalog_bytes(value):
return "\n".join(lines) + "\n"
+def render_sources(check, fixture, module):
+ records = json.loads((ROOT / "conformance-fixtures/HexRCF" / fixture).read_text())
+ if len(records) != 3:
+ raise ValueError("expected positive/negative quadratic and cubic sources")
+ directory = ROOT / "conformance/HexRCF" / module
+ directory.mkdir(exist_ok=True)
+ for name, record in zip(["Positive", "Negative", "Cubic"], records):
+ subject, graph, equation, margin = record
+ if len(equation) != 3 or len(margin) != 3 or equation[1] != 0 or margin[1] != 1:
+ raise ValueError("source packets must propose the exact zero/positive signs")
+ values = [subject, graph, equation[0], equation[2], margin[0], margin[2], record]
+ names = ["subject", "graph", "equation", "equationGraph", "margin", "marginGraph", "packet"]
+ output = render(module + "." + name, values, root_replay=True,
+ root_fixture=fixture, root_names=names)
+ lines = output.splitlines()
+ first = next(i for i, line in enumerate(lines) if line.startswith("@[expose] def j0 "))
+ header = "\n".join(lines[:first]) + "\n"
+ body = lines[first:-1]
+ chunks = [body[i:i + 240] for i in range(0, len(body), 240)]
+ for i, chunk in enumerate(chunks):
+ chunk_module = name if i == len(chunks) - 1 else name + f"Data{i}"
+ prefix = header
+ if i:
+ prefix = prefix.replace("public import HexSignDet.Codec.Json",
+ "public import HexSignDet.Codec.Json\n"
+ f"public import HexRCF.{module}.{name}Data{i - 1}")
+ text = prefix + "\n".join(chunk) + f"\nend Hex.RCF.RealCoefficients.{module}.{name}\n"
+ destination = directory / f"{chunk_module}.lean"
+ if check:
+ if destination.read_text() != text:
+ raise SystemExit(f"stale generated literals: {destination.relative_to(ROOT)}")
+ else:
+ destination.write_text(text)
+
+
def main():
parser = argparse.ArgumentParser(description=__doc__)
parser.add_argument("--check", action="store_true")
@@ -599,6 +634,8 @@ def main():
render_guarded_quotient(args.check)
render_cell_replay(args.check)
render_algebraic_cells(args.check)
+ render_sources(args.check, "enumerated-source.json", "EnumeratedSource")
+ render_sources(args.check, "bounded-source.json", "BoundedSource")
print("selected-root literals match" if args.check else "selected-root literals regenerated")
diff --git a/scripts/rcf/source_identity_literals.py b/scripts/rcf/source_identity_literals.py
new file mode 100644
index 0000000000..ce6bc59e49
--- /dev/null
+++ b/scripts/rcf/source_identity_literals.py
@@ -0,0 +1,33 @@
+#!/usr/bin/env python3
+"""Render the frozen source-equation and enclosure packets without production."""
+import argparse
+import json
+from pathlib import Path
+
+from selected_literals import render
+
+ROOT = Path(__file__).resolve().parents[2]
+FIXTURE = ROOT / 'conformance-fixtures/HexRCF/source-identity.json'
+OUTPUT = ROOT / 'conformance/HexRCF/SourceIdentityLiterals.lean'
+
+
+def main():
+ parser = argparse.ArgumentParser(description=__doc__)
+ parser.add_argument('--check', action='store_true')
+ args = parser.parse_args()
+ records = json.loads(FIXTURE.read_text())
+ if len(records) != 3 or [entry[1] for entry in records] != [0, 1, -1]:
+ raise ValueError('expected equation, positive and negative enclosure packets')
+ source = render('SourceIdentityPackets', records).replace(
+ '`conformance-fixtures/HexRCF/selected-root.json`',
+ '`conformance-fixtures/HexRCF/source-identity.json`')
+ if args.check:
+ if OUTPUT.read_text() != source:
+ raise SystemExit('source identity constructor literals are stale')
+ print('Source identity constructor literals are current')
+ else:
+ OUTPUT.write_text(source)
+
+
+if __name__ == '__main__':
+ main()
diff --git a/scripts/release/released.yml b/scripts/release/released.yml
index d06ef79599..fb822fdc36 100644
--- a/scripts/release/released.yml
+++ b/scripts/release/released.yml
@@ -667,7 +667,7 @@ repos:
component: Real-closed-field decision (`rcf` tactic)
theory_only: true
lib: HexRCF
- test_modules: [HexRCF.LanguageTests, HexRCF.SturmBuilderTests, HexRCF.CarrierTests, HexRCF.IsolationsTests, HexRCF.SeparationTests, HexRCF.CellsTests, HexRCF.CommonRootTests, HexRCF.SignMatrixTests, HexRCF.BuilderTests, HexRCF.CertificateTests, HexRCF.DecisionTests, HexRCF.ReifyTests, HexRCF.HandlerTests.Support, HexRCF.HandlerTests.Async, HexRCF.HandlerTests, HexRCF.LintTests]
+ test_modules: [HexRCF.LanguageTests, HexRCF.SturmBuilderTests, HexRCF.CarrierTests, HexRCF.IsolationsTests, HexRCF.SeparationTests, HexRCF.CellsTests, HexRCF.CommonRootTests, HexRCF.SignMatrixTests, HexRCF.BuilderTests, HexRCF.CertificateTests, HexRCF.DecisionTests, HexRCF.ReifyTests, HexRCF.HandlerTests.Support, HexRCF.HandlerTests.Async, HexRCF.HandlerTests.Admission, HexRCF.HandlerTests, HexRCF.LintTests]
umbrella: true
spec: hex-rcf
# Includes published dependencies of the development-only shared adapter.