rule-court-evaluation
The groupant beside models/rule-court-evaluation.groupant 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 | forward |
| ast | not materialized | |
| composition | partial | composition |
| cost | symbolic source derived | cost |
| descriptant | present | descriptant |
| invariant | partial | invariant |
| tests | see source local evidence | checks |
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 |
clause-boolean-transport | representation_transport | partial source derived model | clause-boolean-transport |
duty-anchor-projection | duty_completion | partial source derived model | duty-anchor-projection |
lookup-to-precedence | ordered_lookup_composition | partial source derived model | lookup-to-precedence |
count-to-report | finite_fiber_aggregation | partial source derived model | count-to-report |
protocol-state-boundary | effect_observation | partial source derived model | protocol-state-boundary |
Model text
descriptant
rule-court-evaluation: wave31
Actual joins: rule::Rule nested Clause arrays are interpreted by court as condition AND-of-OR and exception OR-of-AND; juris::cover supplies No/Broad/Sure anchor relation, authority/severity determine ranking/outcomes. extract::rules_of output passes through attach_but_if then mark_disputes before loading/evaluation elsewhere; no direct corpus execution claimed. report::judge_all calls court choice_of_law/lattice/evaluate/tipping; absurd::flags calls court and report::harm_of. measure uses Rule and Jurisdiction but no verdict inference. lib declarations only expose APIs; tests are callers with hand-built state. CLI protocol hash observes disk bytes while report state uses in-memory rules, so equality is not implied.
This source-bound partial group organizes existing Mova code. Native evidence and excluded effects are recorded in source sidecars and the root wave31 report. Registration is not a universal proof or whole-system runtime claim.
model
rule-court-evaluation
forward
Rule TSV representation and frame-derived Clause/Rule values feed Jurisdiction vocabulary/authority/severity lookup. court::lattice matches defendant facts, excludes completed duties, builds local/global choice points, caps16 rules and counts weighted assignments. evaluate resolves local eligibility, disputes, precedence then suspension. report and absurd independently consume those lattice/evaluate/tipping outputs; measure is a tagged independent synthetic Gold comparison path; CLI dispatch joins these APIs and adds I/O.
invariant
Rule jurisdiction/source/authority identity survives matching and report references. Local points are reindexed after cap and assignments stay within option cardinality. For generated binary local points and representable arithmetic, total=sum counts=Cartesian assignment count; duty Some(0) is absent, negated duty retained with act_verb-derived label. No legal correctness or empirical authority is inferred.
cost
Let L include matching and O(2^ngE) count for n<=16, g global combinations and E evaluation; T is distinct-point subset search through requested depth, allocated before level cutoff. report repeats L+T for full/clean jurisdictions and devices; absurd adds device/status lattices and P one-point evaluations. Codec/TSV costs whole input bytes plus grouping; finite u128/usize and memory limits apply, cap16 does not bound local points.
composition
Actual joins: rule::Rule nested Clause arrays are interpreted by court as condition AND-of-OR and exception OR-of-AND; juris::cover supplies No/Broad/Sure anchor relation, authority/severity determine ranking/outcomes. extract::rules_of output passes through attach_but_if then mark_disputes before loading/evaluation elsewhere; no direct corpus execution claimed. report::judge_all calls court choice_of_law/lattice/evaluate/tipping; absurd::flags calls court and report::harm_of. measure uses Rule and Jurisdiction but no verdict inference. lib declarations only expose APIs; tests are callers with hand-built state. CLI protocol hash observes disk bytes while report state uses in-memory rules, so equality is not implied.
domain
Tiny manually constructed cases/rules, finite nonnegative statistical weights with finite positive total where defined, valid lattice indices/options, representable shifts/products, successful allocations. Selected tests use at most a few rules; explicit enumeration<=128 assignments. Parser-model initialization, real corpus/gold and full CLI side effects excluded.
limitations
Dependency semantics unchanged; deterministic BTree ordering and fixed fixture order. Partial syntax has no macro expansion or semantic resolution. Existing source production bytes unchanged; only tests appended in extract.rs/main.rs/tests/court.rs. Repeated successful tests are finite correspondence. No meaningful executable approximate metric established.
checks
- 19 exact native test names twice debug and twice release; raw logs/status and sorted outcome equality in court receipts
- Tiny explicit assignment enumeration vs grouped count, earliest precedence tie, zero-depth/keep behavior
- Frame force priority/question gate; adjacent exception/dispute projection; synthetic metric denominators/shift
- Three compiled actual-source mutants: count-weight, precedence-tie, modal-tie; compile/red/exact restoration/green
- 10 syntax projections generated twice equal; 11 scoped fragments share parent syntax; structural groupants check
catalog
behavior-complement
For generated valid tiny lattices, excluded composite observations include completed duties retained for verdict, blocked rules firing, misindexed local points after cap, count mass not matching assignment partition, and historical reference mass mixed into modern layer. Exclusion is source-derived with finite witnesses, not an exhaustive proof.
reverse-reconstruction
A reported verdict/count admits all compatible rule/case/jurisdiction/assignment states satisfying the joined lookup, eligibility and precedence relations. TSV normalization, clause projection and count aggregation each lose information; retain intermediate compatible states rather than infer a unique original text, law or case.
clause-boolean-transport
Rule codec preserves nested grouping only on delimiter-safe canonical domain. Conditions use semicolon groups with pipe alternatives; exceptions semicolon groups with plus conjunctions. court chooses max condition Status and min exception Status. Swapping separators is a counterexample to correct wiring.
duty-anchor-projection
An obligation anchored on its act records duty0 when positive and duty2 when negated; completed duty is skipped before cap/evaluation. Condition-anchored duty uses clause_status, with Unknown/Broad ->1. Verdict label uses first act_verb, not patient text; no retained matched-rule witness exists for skipped duty.
lookup-to-precedence
Jurisdiction Cover selects anchor strength and potential Reading point; authority first substring supplies rank; severity last max-rank match supplies Liability severity. Evaluate applies chosen principle strict key comparison with earlier-body ties, then suspension. Changing one order changes winning trace even if same rule set.
count-to-report
count groups local assignment fibers and full global Cartesian assignments, while tipping explores only limited distinct-point alternatives. Report reachability within depth is a subset observation, not full-lattice exclusion; sensitivity compares one-tip verdicts to other counted verdicts.
protocol-state-boundary
protocol hashes currently read disk rules.tsv, default empty on read failure, while lattice records use current in-memory Jurisdiction rules and caller-supplied report text. Coherence requires these independently supplied observations to refer to the same snapshot; FNV collisions and concurrent file changes defeat unique reconstruction.
This page in Markdown โ https://md.groupants.elamur.ai/free/en/mova/models/rule-court-evaluation.groupant/