parsecmp-main-bracket-intersection
The groupant beside tools/parsecmp/src/main.rs in the Mova repository: what the code computes, what it never does, how to go back from its outputs, its invariants, cost and checks.
Facts
Implementation material. A Mova code model describes this code at one source revision: partial models, finite checks and their stated scope. It is not a reviewed general exposition, and its labels are shown as written, never raised.
Components
| component | label | where |
|---|---|---|
| approximant | partial | model.md |
| ast | partial | ../syntax.json |
| composition | partial | Composition |
| cost | partial | invariant-and-cost |
| descriptant | present | descriptant |
| invariant | partial | invariant-and-cost |
| tests | bounded checks | tests |
Obernants
The typed relations around the forward model: the behaviour complement (what the code never does), the reverse reconstruction (every input compatible with an output) and specialised views.
| id | type | label | where |
|---|---|---|---|
behavior_complement | behavior_complement | partial source derived model | behavior_complement |
reverse_reconstruction | reverse_reconstruction | partial source derived model | reverse_reconstruction |
multiplicity | multiplicity | partial source derived model | multiplicity |
symmetry | symmetry | partial source derived model | symmetry |
empty_identity | empty_identity | partial source derived model | empty_identity |
order_invariance | order_invariance | partial source derived model | order_invariance |
Model text
descriptant
Descriptant
build counts of spans in a, scan b decrement positive stored counts and increment hit, return (hit,a.len,b.len).
Epoch 2026-10-31
Prospective source reading identified conditional input alignment, information loss and failure order before tests. Existing production code is retained; added tests use actual helpers. Finite results update this source-bound model, not all parser/corpus semantics.
No executable percentage surrogate has a justified observation metric for these categorical/effectful APIs. Future profiles require metric, domain and real-reference evidence at caps 1/2/5/10%; no higher cap. Syntax is partial lexical Rust projection without macro expansion or semantic resolution.
approximant
Forward approximant
build counts of spans in a, scan b decrement positive stored counts and increment hit, return (hit,a.len,b.len).
Composition
This fragment is the exact byte-scoped helper identified in the manifest; its relation is restricted to the operations above.
The containing source wires this scoped relation to its callers. Treeagree proposal→gate→commit and treebanks parse→match→collect→render are actual joins; parsecmp is an independent diagnostic path. The external group model distinguishes these tags.
catalog
Typed models for parsecmp-main-bracket-intersection
Subject: source SHA-256 8d5c1b3d4b13c46e7f0b31fad87b1197b29574d987a2ea1c89ed012961a9a9e7; manifest supplies exact source/byte scope. Domain: admitted states in forward model, nonoverflow arithmetic and successful allocations. Observation: one terminating invocation, except explicitly described file trace. Source-derived partial relations; named finite tests constrain selected cases only. Each entry holds arguments and environment fixed except its stated intervention.
behavior_complement
hit cannot exceed either input length and unmatched/exhausted spans cannot increase hit.
Operator: inner exclusion on admitted domain. Evidence: source branch derivation plus tests.md; unexercised branches remain hypotheses. Oracle: evaluate the scoped actual helper on admissible fixtures and compare this observation. No universal proof.
reverse_reconstruction
Output counts identify cardinalities and overlap multiplicity only; many labeled-span multisets share the same triple.
Operator: compatible antecedent relation, retaining ambiguity. Evidence: source branch derivation plus tests.md; unexercised branches remain hypotheses. Oracle: evaluate the scoped actual helper on admissible fixtures and compare this observation. No universal proof.
multiplicity
Two copies in b against one in a yield one hit, unlike set or unrestricted membership counting.
Operator: specialized observation relation under the stated fixed inputs. Evidence: source branch derivation plus tests.md; unexercised branches remain hypotheses. Oracle: evaluate the scoped actual helper on admissible fixtures and compare this observation. No universal proof.
symmetry
Swapping a,b preserves hit and swaps last two counts under nonoverflow arithmetic.
Operator: specialized observation relation under the stated fixed inputs. Evidence: source branch derivation plus tests.md; unexercised branches remain hypotheses. Oracle: evaluate the scoped actual helper on admissible fixtures and compare this observation. No universal proof.
empty_identity
Empty a or b yields zero hit with exact other length, including (0,0,0).
Operator: specialized observation relation under the stated fixed inputs. Evidence: source branch derivation plus tests.md; unexercised branches remain hypotheses. Oracle: evaluate the scoped actual helper on admissible fixtures and compare this observation. No universal proof.
order_invariance
Permuting either multiset preserves triple; this function does not validate half-open span coordinates.
Operator: specialized observation relation under the stated fixed inputs. Evidence: source branch derivation plus tests.md; unexercised branches remain hypotheses. Oracle: evaluate the scoped actual helper on admissible fixtures and compare this observation. No universal proof.
tests
Scoped evidence
Parent native slice and exact names are in ../tests.md.
Only named finite assertions cover selected inputs; other branches and invalid-domain behavior remain source-derived.
This fragment has no independent full-coverage claim. Its byte range and source hash bind the source-derived relation; parent test success is evidence only where that helper is actually reached.
invariant-and-cost
Invariant and cost
O((a+b)*log distinct_a) comparisons, O(distinct_a) map memory; labels compare strings.
hit cannot exceed either input length and unmatched/exhausted spans cannot increase hit.
The complement and specialized catalog constrain preserved coordinates and effect boundaries. Empty/malformed domains are only guaranteed where explicitly admitted. No whole-program cost bound follows from a helper bound.
This page in Markdown → https://md.groupants.elamur.ai/free/en/mova/tools/parsecmp/src/main.rs.groupant/bracket-intersection.groupant/