Context
The v0.2.0 list adapter implementation introduced:
CopyLayout enum in resolver.rs — distinguishes Bulk { byte_multiplier } from Elements { element_size, inner_pointers }
emit_inner_pointer_fixup() in adapter/fact.rs — generates wasm loops for recursive inner pointer fixup
- Canonical ABI sizing methods in
parser.rs — canonical_abi_align, canonical_abi_size_unpadded, canonical_abi_element_size
These are correctness-critical code paths that would benefit from formal verification.
Proof targets
Files
meld-core/src/parser.rs — ABI sizing functions
meld-core/src/resolver.rs — CopyLayout enum and construction
meld-core/src/adapter/fact.rs — emit_inner_pointer_fixup
- Proofs would go in
proofs/adapter/ and proofs/parser/
Context
The v0.2.0 list adapter implementation introduced:
CopyLayoutenum inresolver.rs— distinguishesBulk { byte_multiplier }fromElements { element_size, inner_pointers }emit_inner_pointer_fixup()inadapter/fact.rs— generates wasm loops for recursive inner pointer fixupparser.rs—canonical_abi_align,canonical_abi_size_unpadded,canonical_abi_element_sizeThese are correctness-critical code paths that would benefit from formal verification.
Proof targets
canonical_abi_element_sizematches the Component Model spec'selem_sizedefinitionCopyLayoutconstruction is consistent with type structure (every pointer pair gets a layout)byte_multipliercorrectly computes total byte size from element countFiles
meld-core/src/parser.rs— ABI sizing functionsmeld-core/src/resolver.rs—CopyLayoutenum and constructionmeld-core/src/adapter/fact.rs—emit_inner_pointer_fixupproofs/adapter/andproofs/parser/