Skip to content

vdf: overlap-path descriptor peel likely drops a real stock on SimService/Base.vdf (c Identified Oil Reserve) #841

Description

@bpowers

Problem

On third_party/uib_sd/spring_2008/SimService_BUENO/SimService/Model Files/Base.vdf (and its ctxt0001 sibling), the OVERLAPPING-descriptor peel path in src/simlin-engine/src/vdf/record_results.rs::identify_descriptor_records (mirrored in tools/vdf_xray.py) classifies the record for c Identified Oil Reserve as a graphical-function descriptor and drops its series.

Details:

  • Its span is OT[17..19): a 2-element stock-coded span with real data blocks, f11=17 with n_lookups=18.
  • The span overlaps AGE SPECIFIC FERTILITY DISTRIBUTION FUNCTION (OT[18..100), an 82-wide stock-coded span).
  • The lexical lookup-def-name test is ambiguous for the pair, so the highest-f10 fallback decides -- and it picks c Identified Oil Reserve as the descriptor.

This is very likely a false positive: the file's other c Identified * Reserve siblings (Coal / Gas / tar sands) are all real 2-element stocks that are correctly kept.

Why it matters

Correctness: a real stock's simulation series is silently dropped from decoded results, which corrupts any comparison or import based on this file.

Components affected

  • src/simlin-engine/src/vdf/record_results.rs (identify_descriptor_records, the highest-f10 fallback)
  • tools/vdf_xray.py (same function, kept in parity)
  • docs/design/vdf.md -- "Name-to-OT mapping" step 2 and "Appendix: the owner/descriptor discriminator"

Context

Identified while hardening the STANDALONE lookup-only descriptor drop (GH #840 follow-up work on branch vdf-parity-fixes). The behavior is pre-existing: identical before and after that branch's changes. The standalone-drop hardening in that branch fixed the four STANDALONE false positives (Agriculture Employment, Alaska Oil Discovered/Undiscovered, Atmos UOcean Temp) but deliberately did not touch the overlap path.

Possible approaches

  • Strengthen the overlap-path discriminator so a span with real data blocks and stock-coded siblings (e.g. matching c Identified * Reserve family members that are kept) is not peeled as a descriptor.
  • Prefer structural evidence (data-block presence, span width vs n_lookups consistency) over the highest-f10 fallback when the lexical lookup-def-name test is ambiguous.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions