Claim #3 — Verification of <core::fmt::Error as From<base16ct::Error>>::from (with Aeneas be86ab0f1989d04944292b345b24c435be3ad10a)
<core::fmt::Error as From<base16ct::Error>>::from
Tool: Aeneas be86ab0f1989d04944292b345b24c435be3ad10a
Preconditions
Both Error variants; default features on x86_64.
Evidence
What is trusted
From the report
The Rust compiler, official Charon/Aeneas translation, standard-library slice/scalar models and Lean kernel are trusted. The proofs add no local axioms or custom standard-library models. Transitive theorem dependencies use only propext, Classical.choice and Quot.sound. These Error-default checks trust the exact packaged Kani0.68/CBMC6.11/Z3, Rust nightly2026-08-21 and compiled core/std binaries whose hashes are retained. Raw source for that packaged August std was not available and is not claimed independently reconstructed; September source is not substituted for it. The HexDisplay supplement uses the same official pinned Rust/Charon/Aeneas toolchain and existing slice value model, with no new model or generated-source changes. Its three audited theorems require only propext and Quot.sound. The Rust compiler checks the original borrowed signatures; the Lean result concerns represented slice values. The verification driver functions are entry points for data-operation proofs, not additional base16ct exports.
Technical limitations
From the report
The registered Aeneas mappings cover only decoded_len, encoded_len and From<Error> for core::fmt::Error; general Display formatting is not proved. General-length hexadecimal encoding, decoding, character validation, destination writes, allocation and encode_str's unchecked UTF-8 conversion are not verified. encoded_len behavior above usize::MAX / 2 is outside the proved precondition. Other targets, feature configurations and release overflow behavior were not checked. The separate Display supplement covers only default formatting and this fixed writer, not arbitrary format flags/writers, partial-prefix error policies, other targets or feature configurations. It adds no Aeneas mapping. Encoded-length overflow remains outside the existing precondition. These five codec checks cover only source/destination lengths2/3 for decode and1/4 for encode, with independent1-byte roundtrip decode destinations. They do not prove arbitrary lengths/capacities, general failure-side prefix contents, encode_str UTF8 conversion, allocation or encoded_len overflow. Ordinary Kani supplements add no Aeneas mappings. The Error-default results cover exactly both valid fieldless base16ct Error variants under default x86_64 configuration. They do not verify arbitrary Error implementations, formatting, other configurations/targets or independent std-source/compiler correctness. Deprecated cause/description remain public operations tested directly. The existing decoded_len/encoded_len/foreign-self From mapping, Display1910 and bounded codec1484 evidence remain unchanged; encoded_len above usizeMAX/2 remains unproved. The HexDisplay constructor/projection result establishes logical byte-slice content and length preservation only. It does not establish formatting/encoding/decoding, physical address or pointer identity, arbitrary aliasing/heap behavior, lifetime soundness or general Rust memory safety. Existing Display1910, codec1484 and Error58 protocols retain their separate conditions and compiler boundaries; none is strengthened into an arbitrary backend or formatting theorem by this data-operation result. Primary3 and all existing preconditions remain unchanged.
Tool limitations
Lean backend only, requiring cargo-proofs 0.4.0 or later. The version identifies the official Aeneas Git revision pinned in lake-manifest.json (backends/lean); this revision uses Lean 4.35.0. The recorder checks committed Lean theorem declarations and permits only propext, Classical.choice, and Quot.sound as transitive axioms. It rejects sorryAx and custom axioms, including axiomatized external models. Charon/Aeneas extraction is not rerun. The author must review that the committed functional model matches the recorded Rust source, that the named theorem corresponds to the public API, and that the reported precondition matches the theorem. A checked theorem alone does not establish those links or the adequacy of the specification. The current adapter records the default Cargo configuration, with ordinary Lean module paths and a pinned official Git dependency. Other backends, custom Lake source directories, and local-path Aeneas dependencies are unsupported. See https://proofs.rs/book/aeneas.html and https://github.com/AeneasVerif/aeneas/tree/be86ab0f1989d04944292b345b24c435be3ad10a.
Aeneas be86ab0f1989d04944292b345b24c435be3ad10a — version details