跳到正文
参考文档 / ZLIB × LEAN

证明进度与剩余工作

此页源文件快照 · b6f2139fa30f8b18 · 对应提交的原文 ↗

本页集中记录证明证据和剩余工作。要了解目标陈述和证明的整体结构,请先读总览。

目录

证明进度图

用连线查看依赖,再进入具体目标的输入范围、证明状态和证据。

固定目标
181
已登记精确证明
81
本地证明,尚未登记
33
未完成目标
67

未完成目标中有 2 项记录了阻塞。展开目标后,输入覆盖与证明登记状态分别列出。

实线:证明依赖(上游 → 下游)虚线:被调用函数 → 调用者

从左向右看依赖。连线数字是跨组件关系条数;节点内列出组件内部关系。点击节点查看具体目标。

其他内部义务 → 校验和 · 2 条证明复用2解码表义务 → 快速解码义务 · 2 条证明复用2回引用复制 → 快速解码义务 · 3 条证明复用3回引用复制 → 格式与 API 抽象模型 · 2 条证明复用2回调解码 → 调用序列与初始化 · 1 条证明复用1校验和 → 压缩流 · 7 条 C 调用7校验和 → 解压流 · 3 条 C 调用3压缩流 → 完整缓冲区 · 3 条 C 调用3压缩流 → gzip 文件 · 26 条 C 调用26解压流 → gzip 文件 · 18 条 C 调用18解压流 → 完整缓冲区 · 3 条 C 调用3库信息与容量查询 → 压缩流 · 2 条 C 调用2库信息与容量查询 → 完整缓冲区 · 1 条 C 调用1基础操作局部机制引擎与状态接口与组合库信息与容量查询6 项目标 · 1 条内部关系校验和11 项目标 · 7 条内部关系字节地址模型9 项目标 · 1 条内部关系解压流18 项目标 · 5 条内部关系快速解码义务19 项目标 · 20 条内部关系解码表义务19 项目标 · 3 条内部关系回引用复制6 项目标 · 0 条内部关系压缩流17 项目标 · 6 条内部关系回调解码3 项目标 · 0 条内部关系gzip 文件32 项目标 · 8 条内部关系完整缓冲区8 项目标 · 6 条内部关系格式与 API 抽象模型20 项目标 · 6 条内部关系调用序列与初始化8 项目标 · 0 条内部关系其他内部义务5 项目标 · 0 条内部关系

悬停或聚焦节点可突出相连的路径。目标图中,点击任意相邻目标可继续沿依赖查看。

逐项查看目标与依赖

先选组件,或按名称和证据状态筛选。每项都保留通往完整证据表和记录源码的链接。

库信息与容量查询6 项目标
校验和11 项目标
字节地址模型9 项目标
解压流18 项目标
快速解码义务19 项目标
解码表义务19 项目标
回引用复制6 项目标
压缩流17 项目标
回调解码3 项目标
gzip 文件32 项目标
完整缓冲区8 项目标
格式与 API 抽象模型20 项目标
调用序列与初始化8 项目标
其他内部义务5 项目标

41 条已观察证明复用关系 · 95 条 C 调用关系。规范引用和其他支持关系见下方证据索引。

展开组件后,再展开一个目标,即可查看它的输入范围、状态和双向依赖。证据索引保留提交 7f4311a 的目标与证明链接。

存在阻碍的目标 原因与下一步
gz_seek_read gzip 定位模式
inflateInit2_ 解压初始化的清理

目标证据

证明讲解 · 全部目标图 · 输入配置

本索引包含 181 个固定目标,分为公开接口执行、调用序列、初始化、实现层义务和抽象模型。每个目标分别列出输入范围、登记情况、证明正文和剩余工作。

抽象模型研究输入输出的数学关系;实现目标还要证明真实执行符合这些关系。一个本地证明完成后,仍需登记,并在具体提交上通过 CI 验收。所有证明都保留命题中写明的前置条件。

依赖区展示记录中已经建立的联系。未完成目标还需要哪些证明,见本页后面的具体工作清单。出现不允许的公理时,生成过程会停止。

状态说明

已登记证明:存在精确覆盖该目标、经过检查且列入登记表的定理。 本地已检查:存在精确覆盖该目标的定理,但尚未列入登记表。 未证明:还没有精确覆盖该目标的定理。 存在阻碍:已有文档记录影响该目标的具体障碍。 输入覆盖范围单独列出;CI 验收对应具体提交。

库信息查询

目标陈述 覆盖范围/证据状态 契约/输入范围 证明证据 已审查的后续工作
compressBound 陈述所允许的全部输入 / 已登记证明 契约; 输入范围 ZlibF.Spec.Public.Proofs.compressBound —
compressBound_z 陈述所允许的全部输入 / 已登记证明 契约; 输入范围 ZlibF.Spec.Public.Proofs.compressBound_z —
zlibVersion 陈述所允许的全部输入 / 已登记证明 契约; 输入范围 ZlibF.Spec.Public.Proofs.zlibVersion —
zlibCompileFlags 陈述所允许的全部输入 / 已登记证明 契约; 输入范围 ZlibF.Spec.Public.Proofs.zlibCompileFlags —
zError 陈述所允许的全部输入 / 已登记证明 契约; 输入范围 ZlibF.Spec.Public.Proofs.zError —
get_crc_table 陈述所允许的全部输入 / 已登记证明 契约; 输入范围 ZlibF.Spec.Public.Proofs.get_crc_table —

校验和

目标陈述 覆盖范围/证据状态 契约/输入范围 证明证据 已审查的后续工作
adler32 陈述所允许的全部输入 / 已登记证明 契约; 输入范围 ZlibF.Spec.Public.AdlerUpdateProof.adler_public —
adler32_z 陈述所允许的全部输入 / 已登记证明 契约; 输入范围 ZlibF.Spec.Public.AdlerUpdateProof.adler_z_public —
adler32_combine 陈述所允许的全部输入 / 已登记证明 契约; 输入范围 ZlibF.Spec.Public.AdlerCombineProof.combine_public —
adler32_combine64 陈述所允许的全部输入 / 已登记证明 契约; 输入范围 ZlibF.Spec.Public.AdlerCombineProof.combine64_public —
crc32 陈述所允许的全部输入 / 已登记证明 契约; 输入范围 ZlibF.Spec.Public.Proofs.crc32 —
crc32_z 陈述所允许的全部输入 / 已登记证明 契约; 输入范围 ZlibF.Spec.Public.Proofs.crc32_z —
crc32_combine_gen 陈述所允许的全部输入 / 已登记证明 契约; 输入范围 ZlibF.Spec.Public.CrcCombineProof.gen —
crc32_combine_gen64 陈述所允许的全部输入 / 已登记证明 契约; 输入范围 ZlibF.Spec.Public.CrcCombineProof.gen64 —
crc32_combine_op 陈述所允许的全部输入 / 已登记证明 契约; 输入范围 ZlibF.Spec.Public.CrcCombineProof.op —
crc32_combine 陈述所允许的全部输入 / 已登记证明 契约; 输入范围 ZlibF.Spec.Public.CrcCombineProof.combine —
crc32_combine64 陈述所允许的全部输入 / 已登记证明 契约; 输入范围 ZlibF.Spec.Public.CrcCombineProof.combine64 —

字节地址模型

目标陈述 覆盖范围/证据状态 契约/输入范围 证明证据 已审查的后续工作
address_read_is_pure 陈述所允许的全部输入 / 已登记证明 确切目标陈述; 输入范围 C.ByteAddress.Proofs.address_read_is_pure —
raw_block_unchanged 陈述所允许的全部输入 / 已登记证明 确切目标陈述; 输入范围 C.ByteAddress.Proofs.raw_block_unchanged —
every_layout_is_representable 陈述所允许的全部输入 / 已登记证明 确切目标陈述; 输入范围 C.ByteAddress.Proofs.every_layout_is_representable —
every_existing_heap_accepts_layout 陈述所允许的全部输入 / 已登记证明 确切目标陈述; 输入范围 C.ByteAddress.Proofs.every_existing_heap_accepts_layout —
mask_refines_base_plus_offset 陈述所允许的全部输入 / 已登记证明 确切目标陈述; 输入范围 C.ByteAddress.Proofs.mask_refines_base_plus_offset —
pointer_advance_preserves_low_bits 陈述所允许的全部输入 / 已登记证明 确切目标陈述; 输入范围 C.ByteAddress.Proofs.pointer_advance_preserves_low_bits —
first_aligned_offset 陈述所允许的全部输入 / 已登记证明 确切目标陈述; 输入范围 C.ByteAddress.Proofs.first_aligned_offset —
byte_stores_preserve_bases 陈述所允许的全部输入 / 已登记证明 确切目标陈述; 输入范围 C.ByteAddress.Proofs.byte_stores_preserve_bases —
byte_modifies_preserve_bases 陈述所允许的全部输入 / 已登记证明 确切目标陈述; 输入范围 C.ByteAddress.Proofs.byte_modifies_preserve_bases —

解压流

目标陈述 覆盖范围/证据状态 契约/输入范围 证明证据 已审查的后续工作
inflateCopy 未证明 / 未证明 契约; 输入范围 — 起点:复制与指针重定位
inflateInit2_ 未证明 / 存在阻碍 契约; 输入范围 — 阻碍:解压初始化的清理 阻碍:清理契约
inflateInit_ 陈述所允许的全部输入 / 已登记证明 契约; 输入范围 ZlibF.Spec.Public.Proofs.InflateInit.init15_public —
inflateResetKeep 陈述所允许的全部输入 / 已登记证明 契约; 输入范围 ZlibF.Spec.Public.InflateResetKeepProof.resetkeep_public —
inflateReset 陈述所允许的全部输入 / 已登记证明 契约; 输入范围 ZlibF.Spec.Public.InflateResetProof.reset_public —
inflateReset2 陈述所允许的全部输入 / 已登记证明 契约; 输入范围 ZlibF.Spec.Public.InflateReset2Proof.reset2_public —
inflateEnd 陈述所允许的全部输入 / 已登记证明 契约; 输入范围 ZlibF.Spec.Public.InflateEndProof.inflate_end_public —
inflateGetDictionary 陈述所允许的全部输入 / 已登记证明 契约; 输入范围 ZlibF.Spec.Public.InflateDictionaryProof.inflate_getdict_public —
inflateGetHeader 陈述所允许的全部输入 / 已登记证明 契约; 输入范围 ZlibF.Spec.Public.InflateHeaderProof.getheader_public —
inflateSetDictionary 陈述所允许的全部输入 / 已登记证明 契约; 输入范围 ZlibF.Spec.Public.Proofs.inflateSetDictionary_public —
inflateSyncPoint 陈述所允许的全部输入 / 已登记证明 契约; 输入范围 ZlibF.Spec.Public.InflateQueryProof.syncpoint_public —
inflateMark 陈述所允许的全部输入 / 已登记证明 契约; 输入范围 ZlibF.Spec.Public.InflateMarkProof.mark_public —
inflateCodesUsed 陈述所允许的全部输入 / 已登记证明 契约; 输入范围 ZlibF.Spec.Public.Proofs.inflate_codes_used —
inflateUndermine 陈述所允许的全部输入 / 已登记证明 契约; 输入范围 ZlibF.Spec.Public.InflateQueryProof.undermine_public —
inflateValidate 陈述所允许的全部输入 / 已登记证明 契约; 输入范围 ZlibF.Spec.Public.InflateQueryProof.validate_public —
inflatePrime 陈述所允许的全部输入 / 已登记证明 契约; 输入范围 ZlibF.Spec.Public.InflatePrimeProof.prime_public —
inflate 未证明 / 未证明 契约; 输入范围 — 所需:状态分派不变量
inflateSync 未证明 / 未证明 契约; 输入范围 — 所需:扫描与状态序列证明

快速解码器的证明义务

目标陈述 覆盖范围/证据状态 契约/输入范围 证明证据 已审查的后续工作
actual_body_preserves_origin 陈述所允许的全部输入 / 本地已检查 确切目标陈述; 输入范围 Zlib.Inffast.Proofs.BodyOriginProof.actual_body_preserves_origin; Zlib.Inffast.Proofs.actual_body_preserves_origin —
actual_body_refines_token 陈述所允许的全部输入 / 本地已检查 确切目标陈述; 输入范围 Zlib.Inffast.Proofs.BodyTokenProof.actual_body_refines_token; Zlib.Inffast.Proofs.actual_body_refines_token —
actual_fast_preserves_origin 陈述所允许的全部输入 / 本地已检查 确切目标陈述; 输入范围 Zlib.Inffast.Proofs.actual_fast_preserves_origin —
actual_distance_block_preserves_origin 陈述所允许的全部输入 / 本地已检查 确切目标陈述; 输入范围 Zlib.Inffast.Proofs.actual_distance_block_preserves_origin —
actual_distance_refines_lz77 陈述所允许的全部输入 / 本地已检查 确切目标陈述; 输入范围 Zlib.Inffast.Proofs.actual_distance_refines_lz77 —
distance_lookup_matches_format 陈述所允许的全部输入 / 本地已检查 确切目标陈述; 输入范围 Zlib.Inffast.Proofs.distance_lookup_matches_format —
fast_safe 陈述所允许的全部输入 / 本地已检查 确切目标陈述; 输入范围 Zlib.Inffast.Proofs.inflate_fast_safe —
step_safe 陈述所允许的全部输入 / 本地已检查 确切目标陈述; 输入范围 Zlib.Inffast.Proofs.inflate_fast_body_step_safe —
length_lookup_matches_format 陈述所允许的全部输入 / 本地已检查 确切目标陈述; 输入范围 Zlib.Inffast.Proofs.length_lookup_matches_format —
actual_body_retains_selected_length 陈述所允许的全部输入 / 本地已检查 确切目标陈述; 输入范围 Zlib.Inffast.Proofs.LengthTraceProof.actual_body_retains_selected_length; Zlib.Inffast.Proofs.actual_body_retains_selected_length —
actual_copy_match_refines_lz77 陈述所允许的全部输入 / 本地已检查 确切目标陈述; 输入范围 Zlib.Inffast.Proofs.actual_copy_match_refines_lz77 —
match_array_refines_lz77 陈述所允许的全部输入 / 本地已检查 确切目标陈述; 输入范围 Zlib.Inffast.Proofs.fast_match_array_refines_lz77 —
actual_drop_preserves_origin 陈述所允许的全部输入 / 本地已检查 确切目标陈述; 输入范围 Zlib.Inffast.Proofs.actual_drop_preserves_origin —
actual_pull_preserves_origin 陈述所允许的全部输入 / 本地已检查 确切目标陈述; 输入范围 Zlib.Inffast.Proofs.actual_pull_preserves_origin —
actual_rollback_preserves_origin 陈述所允许的全部输入 / 本地已检查 确切目标陈述; 输入范围 Zlib.Inffast.Proofs.actual_rollback_preserves_origin —
drop_preserves_origin 陈述所允许的全部输入 / 本地已检查 确切目标陈述; 输入范围 Zlib.Inffast.Proofs.drop_preserves_origin —
initial_origin 陈述所允许的全部输入 / 本地已检查 确切目标陈述; 输入范围 Zlib.Inffast.Proofs.initial_origin —
pull_preserves_origin 陈述所允许的全部输入 / 本地已检查 确切目标陈述; 输入范围 Zlib.Inffast.Proofs.pull_preserves_origin —
rollback_preserves_origin 陈述所允许的全部输入 / 本地已检查 确切目标陈述; 输入范围 Zlib.Inffast.Proofs.rollback_preserves_origin —

解码表的证明义务

目标陈述 覆盖范围/证据状态 契约/输入范围 证明证据 已审查的后续工作
decode_table_classifies_input 未证明 / 未证明 确切目标陈述; 输入范围 — 前置义务尚未审查
decode_table_matches_format 未证明 / 未证明 确切目标陈述; 输入范围 — 前置义务尚未审查
short_decode_table_leaf_sound 未证明 / 未证明 确切目标陈述; 输入范围 — 前置义务尚未审查
decode_table_leaf_sound 未证明 / 未证明 确切目标陈述; 输入范围 — 前置义务尚未审查
decode_table_read_preserved 陈述所允许的全部输入 / 本地已检查 确切目标陈述; 输入范围 Zlib.Inftrees.Proofs.decode_table_read_preserved —
constructor_establishes_decode_table_invariant 未证明 / 未证明 确切目标陈述; 输入范围 — 前置义务尚未审查
decode_table_invariant_of_prefix 未证明 / 未证明 确切目标陈述; 输入范围 — 前置义务尚未审查
constructor_establishes_query_stability 未证明 / 未证明 确切目标陈述; 输入范围 — 前置义务尚未审查
query_stability_of_prefix 陈述所允许的全部输入 / 本地已检查 确切目标陈述; 输入范围 Zlib.Inftrees.Proofs.query_stability_of_prefix —
short_rejected_leaf_stays_invalid 陈述所允许的全部输入 / 本地已检查 确切目标陈述; 输入范围 Zlib.Inftrees.Proofs.short_rejected_leaf_stays_invalid —
constructor_establishes_fast_leaf_flags 未证明 / 未证明 确切目标陈述; 输入范围 — 前置义务尚未审查
fast_leaf_flags_of_prefix 未证明 / 未证明 确切目标陈述; 输入范围 — 前置义务尚未审查
fixed_tables_have_fast_leaf_flags 未证明 / 未证明 确切目标陈述; 输入范围 — 前置义务尚未审查
leaf_classification_agrees 未证明 / 未证明 确切目标陈述; 输入范围 — 前置义务尚未审查
inflate_table_content 陈述所允许的全部输入 / 已登记证明 确切目标陈述; 输入范围 Zlib.Inftrees.Proofs.inflate_table_content —
inflate_table_decoder_safe 陈述所允许的全部输入 / 已登记证明 确切目标陈述; 输入范围 Zlib.Inftrees.Proofs.inflate_table_decoder_safe —
inflate_table_read_extent 陈述所允许的全部输入 / 已登记证明 确切目标陈述; 输入范围 Zlib.Inftrees.Proofs.inflate_table_read_extent —
constructor_root_bits 未证明 / 未证明 确切目标陈述; 输入范围 — 前置义务尚未审查
constructor_subtable_bits 未证明 / 未证明 确切目标陈述; 输入范围 — 前置义务尚未审查

回引用复制

目标陈述 覆盖范围/证据状态 契约/输入范围 证明证据 已审查的后续工作
output_copy_refines_lz77 陈述所允许的全部输入 / 本地已检查 确切目标陈述; 输入范围 ZlibF.Math.LZ77Copy.output_copy_refines_lz77 —
window_copy_refines_lz77 陈述所允许的全部输入 / 本地已检查 确切目标陈述; 输入范围 ZlibF.Math.LZ77Copy.window_copy_refines_lz77 —
copy_back_compose 陈述所允许的全部输入 / 本地已检查 确切目标陈述; 输入范围 ZlibF.Math.LZ77History.copy_back_compose —
copy_back_extends_history 陈述所允许的全部输入 / 本地已检查 确切目标陈述; 输入范围 ZlibF.Math.LZ77History.copy_back_extends_history —
retained_history_agrees 陈述所允许的全部输入 / 本地已检查 确切目标陈述; 输入范围 ZlibF.Math.LZ77History.retained_history_agrees —
window_distance_check_agrees 陈述所允许的全部输入 / 本地已检查 确切目标陈述; 输入范围 ZlibF.Math.LZ77History.window_distance_check_agrees —

压缩流

目标陈述 覆盖范围/证据状态 契约/输入范围 证明证据 已审查的后续工作
deflateCopy 未证明 / 未证明 契约; 输入范围 — 起点:复制与指针重定位
deflateInit2_ 未证明 / 未证明 契约; 输入范围 — 起点:初始化与分配
deflateInit_ 陈述所允许的全部输入 / 已登记证明 契约; 输入范围 ZlibF.Spec.Public.Proofs.DeflateInit.deflateInit_proof —
deflateGetDictionary 陈述所允许的全部输入 / 已登记证明 契约; 输入范围 ZlibF.Spec.Public.DeflateDictionaryProof.deflate_getdict_public —
deflateEnd 陈述所允许的全部输入 / 已登记证明 契约; 输入范围 ZlibF.Spec.Public.DeflateEndProof.deflate_end_public —
deflateResetKeep 陈述所允许的全部输入 / 已登记证明 契约; 输入范围 ZlibF.Spec.Public.DeflateResetKeepProof.deflate_resetkeep_public —
deflateReset 陈述所允许的全部输入 / 已登记证明 契约; 输入范围 ZlibF.Spec.Public.DeflateResetProof.deflate_reset_public —
deflateSetDictionary 未证明 / 未证明 契约; 输入范围 — 起点:窗口与哈希
deflatePending 陈述所允许的全部输入 / 已登记证明 契约; 输入范围 ZlibF.Spec.Public.DeflateQueryProof.pending_public —
deflateUsed 陈述所允许的全部输入 / 已登记证明 契约; 输入范围 ZlibF.Spec.Public.DeflateQueryProof.used_public —
deflateTune 陈述所允许的全部输入 / 已登记证明 契约; 输入范围 ZlibF.Spec.Public.DeflateQueryProof.tune_public —
deflateSetHeader 陈述所允许的全部输入 / 已登记证明 契约; 输入范围 ZlibF.Spec.Public.DeflateQueryProof.header_public —
deflate 未证明 / 未证明 契约; 输入范围 — 所需:状态分派不变量
deflateBound_z 未证明 / 未证明 契约; 输入范围 — 起点:容量上界与头部审查
deflateBound 未证明 / 未证明 契约; 输入范围 — 起点:容量上界与头部审查
deflatePrime 未证明 / 未证明 契约; 输入范围 — 起点:缓冲区整理与位操作
deflateParams 未证明 / 未证明 契约; 输入范围 — 所需:块刷新与参数状态

回调解码

目标陈述 覆盖范围/证据状态 契约/输入范围 证明证据 已审查的后续工作
inflateBackInit_ 陈述所允许的全部输入 / 已登记证明 契约; 输入范围 ZlibF.Spec.Public.InflateBackInitProof.back_init_public —
inflateBack 未证明 / 未证明 契约; 输入范围 — 所需:解码表、窗口与回调证明
inflateBackEnd 陈述所允许的全部输入 / 已登记证明 契约; 输入范围 ZlibF.Spec.Public.InflateBackEndProof.back_end_public —

gzip 文件

目标陈述 覆盖范围/证据状态 契约/输入范围 证明证据 已审查的后续工作
gzclose_r 未证明 / 未证明 契约; 输入范围 — 所需:资源归属
gzclose_w 未证明 / 未证明 契约; 输入范围 — 所需:刷新与清理证明
gzclose 未证明 / 未证明 契约; 输入范围 — 所需:刷新与清理证明
gzbuffer 陈述所允许的全部输入 / 已登记证明 契约; 输入范围 ZlibF.Spec.Public.Proofs.gzbuffer_public —
gzeof 陈述所允许的全部输入 / 已登记证明 契约; 输入范围 ZlibF.Spec.Public.Proofs.gzeof_public —
gztell64 未证明 / 未证明 契约; 输入范围 — 所需:位置约束
gztell 未证明 / 未证明 契约; 输入范围 — 所需:位置约束
gzoffset64 陈述所允许的全部输入 / 已登记证明 契约; 输入范围 ZlibF.Spec.Public.OffsetProof.gzoffset64_public_goal —
gzoffset 陈述所允许的全部输入 / 已登记证明 契约; 输入范围 ZlibF.Spec.Public.OffsetProof.gzoffset_public_goal —
gzerror 陈述所允许的全部输入 / 已登记证明 契约; 输入范围 ZlibF.Spec.Public.GzErrorProof.gzerror —
gzclearerr 陈述所允许的全部输入 / 已登记证明 契约; 输入范围 ZlibF.Spec.Public.Proofs.gzclearerr —
gzrewind 陈述所允许的全部输入 / 已登记证明 契约; 输入范围 ZlibF.Spec.Public.GzRewindProof.rewind_public —
gzseek64 未证明 / 未证明 契约; 输入范围 — 所需:定位与状态序列证明
gzseek 未证明 / 未证明 契约; 输入范围 — 所需:定位与状态序列证明
gzopen 未证明 / 未证明 契约; 输入范围 — 起点:打开与清理
gzopen64 未证明 / 未证明 契约; 输入范围 — 起点:打开与清理
gzdopen 未证明 / 未证明 契约; 输入范围 — 起点:打开与清理
gzread 未证明 / 未证明 契约; 输入范围 — 所需:读取路径证明
gzfread 未证明 / 未证明 契约; 输入范围 — 所需:读取路径证明
gzgetc 未证明 / 未证明 契约; 输入范围 — 所需:读取路径证明
gzgetc_ 未证明 / 未证明 契约; 输入范围 — 所需:读取路径证明
gzungetc 未证明 / 未证明 契约; 输入范围 — 所需:读取路径证明
gzgets 未证明 / 未证明 契约; 输入范围 — 所需:读取路径证明
gzdirect 未证明 / 未证明 契约; 输入范围 — 所需:读取路径证明
gzwrite 未证明 / 未证明 契约; 输入范围 — 所需:写入路径证明
gzfwrite 未证明 / 未证明 契约; 输入范围 — 所需:写入路径证明
gzputc 未证明 / 未证明 契约; 输入范围 — 所需:写入路径证明
gzputs 未证明 / 未证明 契约; 输入范围 — 所需:写入路径证明
gzvprintf 未证明 / 未证明 契约; 输入范围 — 所需:写入路径证明
gzprintf 未证明 / 未证明 契约; 输入范围 — 所需:写入路径证明
gzflush 未证明 / 未证明 契约; 输入范围 — 所需:写入路径证明
gzsetparams 未证明 / 未证明 契约; 输入范围 — 所需:写入路径证明

完整缓冲区操作

目标陈述 覆盖范围/证据状态 契约/输入范围 证明证据 已审查的后续工作
compress2_z 未证明 / 未证明 契约; 输入范围 — 所需:压缩器执行证明
compress2 未证明 / 未证明 契约; 输入范围 — 所需:压缩器执行证明
compress_z 未证明 / 未证明 契约; 输入范围 — 所需:压缩器执行证明
compress 未证明 / 未证明 契约; 输入范围 — 所需:压缩器执行证明
uncompress2_z 未证明 / 未证明 契约; 输入范围 — 所需:解码器执行证明
uncompress2 未证明 / 未证明 契约; 输入范围 — 所需:解码器执行证明
uncompress_z 未证明 / 未证明 契约; 输入范围 — 所需:解码器执行证明
uncompress 未证明 / 未证明 契约; 输入范围 — 所需:解码器执行证明

格式与 API 模型

目标陈述 覆盖范围/证据状态 契约/输入范围 证明证据 已审查的后续工作
format_deterministic 陈述所允许的全部输入 / 已登记证明 确切目标陈述; 输入范围 ZlibF.Spec.Api.Proofs.format_deterministic —
format_prefix_free 陈述所允许的全部输入 / 已登记证明 确切目标陈述; 输入范围 ZlibF.Spec.Api.Proofs.format_prefix_free —
inflate_decodes 陈述所允许的全部输入 / 已登记证明 确切目标陈述; 输入范围 ZlibF.Spec.Api.Proofs.inflate_decodes —
inflate_completes 陈述所允许的全部输入 / 已登记证明 确切目标陈述; 输入范围 ZlibF.Spec.Api.Proofs.inflate_completes —
inflate_rejects_invalid 未证明 / 未证明 确切目标陈述; 输入范围 — 前置义务尚未审查
deflate_valid 陈述所允许的全部输入 / 已登记证明 确切目标陈述; 输入范围 ZlibF.Spec.Api.Proofs.deflate_valid —
deflate_completes 陈述所允许的全部输入 / 已登记证明 确切目标陈述; 输入范围 ZlibF.Spec.Api.Proofs.deflate_completes —
deflate_full_flush_resync 陈述所允许的全部输入 / 已登记证明 确切目标陈述; 输入范围 ZlibF.Spec.Api.Proofs.deflate_full_flush_resync —
roundtrip 陈述所允许的全部输入 / 已登记证明 确切目标陈述; 输入范围 ZlibF.Spec.Api.Proofs.roundtrip —
roundtrip_completes 陈述所允许的全部输入 / 已登记证明 确切目标陈述; 输入范围 ZlibF.Spec.Api.Proofs.roundtrip_completes —
dict_roundtrip 陈述所允许的全部输入 / 本地已检查 确切目标陈述; 输入范围 ZlibF.Spec.Api.Proofs.dict_roundtrip —
header_roundtrip 陈述所允许的全部输入 / 本地已检查 确切目标陈述; 输入范围 ZlibF.Spec.Api.Proofs.header_roundtrip —
deflate_bound_adequate 陈述所允许的全部输入 / 已登记证明 确切目标陈述; 输入范围 ZlibF.Spec.Api.Proofs.deflate_bound_adequate —
compress_bound_adequate 陈述所允许的全部输入 / 已登记证明 确切目标陈述; 输入范围 ZlibF.Spec.Api.Proofs.compress_bound_adequate —
compress_roundtrip 陈述所允许的全部输入 / 已登记证明 确切目标陈述; 输入范围 ZlibF.Spec.Api.Proofs.compress_roundtrip —
gz_roundtrip 陈述所允许的全部输入 / 已登记证明 确切目标陈述; 输入范围 ZlibF.Spec.Api.Proofs.gz_roundtrip —
gz_seek_read 未证明 / 存在阻碍 确切目标陈述; 输入范围 — 阻碍:gzip 定位模式 —
compress_bound_value 陈述所允许的全部输入 / 已登记证明 确切目标陈述; 输入范围 ZlibF.Spec.Api.Proofs.compress_bound_value —
compress2_z_first_alloc_failure 陈述所允许的全部输入 / 已登记证明 确切目标陈述; 输入范围 ZlibF.Spec.Api.Proofs.compress2_z_first_alloc_failure —
inflate_deferred_distance 陈述所允许的全部输入 / 已登记证明 确切目标陈述; 输入范围 ZlibF.Spec.Api.Proofs.inflate_deferred_distance —

生命周期与调用序列

目标陈述 覆盖范围/证据状态 契约/输入范围 证明证据 已审查的后续工作
inflate_sequence 未证明 / 未证明 确切目标陈述; 输入范围 — 所需:执行与格式证明
deflate_sequence 未证明 / 未证明 确切目标陈述; 输入范围 — 所需:执行与格式证明
inflate_back_sequence 未证明 / 未证明 确切目标陈述; 输入范围 — 所需:执行与格式证明
gz_sequence 未证明 / 未证明 确切目标陈述; 输入范围 — 所需:执行与格式证明
inflate_initialisation_domain 陈述所允许的全部输入 / 已登记证明 确切目标陈述; 输入范围 ZlibF.Spec.Public.Proofs.InflateInit.inflate_initialisation_domain_public —
deflate_initialisation_domain 未证明 / 未证明 确切目标陈述; 输入范围 — 起点:初始化与分配
inflate_back_initialisation_domain 陈述所允许的全部输入 / 已登记证明 确切目标陈述; 输入范围 ZlibF.Spec.Public.InflateBackInitProof.back_init_domain_public —
gz_initialisation_domain 未证明 / 未证明 确切目标陈述; 输入范围 — 起点:打开与清理

内部证明义务

目标陈述 覆盖范围/证据状态 契约/输入范围 证明证据 已审查的后续工作
crc32_z_all_byte_views 陈述所允许的全部输入 / 已登记证明 确切目标陈述; 输入范围 Zlib.Crc32.Proofs.crc32_z_all_byte_views —
crc32_all_byte_views 陈述所允许的全部输入 / 已登记证明 确切目标陈述; 输入范围 Zlib.Crc32.Proofs.crc32_all_byte_views —
rejected_has_no_symbols 陈述所允许的全部输入 / 本地已检查 确切目标陈述; 输入范围 ZlibF.Spec.Token.rejected_has_no_symbols —
step_composes_symbols 陈述所允许的全部输入 / 本地已检查 确切目标陈述; 输入范围 ZlibF.Spec.Token.step_composes_symbols —
symbols_exposes_step 陈述所允许的全部输入 / 本地已检查 确切目标陈述; 输入范围 ZlibF.Spec.Token.symbols_exposes_step —

已观察到的证明依赖

左列是被复用的来源目标,右列是使用它的目标。右列目标的定理实际使用了左列目标的证明。

来源 目标
pointer_advance_preserves_low_bits first_aligned_offset
crc32_all_byte_views crc32
crc32_z_all_byte_views crc32_z
actual_body_preserves_origin actual_fast_preserves_origin
actual_distance_block_preserves_origin actual_body_preserves_origin
actual_distance_refines_lz77 actual_body_refines_token
distance_lookup_matches_format actual_distance_refines_lz77
fast_safe actual_fast_preserves_origin
step_safe actual_body_refines_token
step_safe fast_safe
step_safe actual_body_retains_selected_length
length_lookup_matches_format actual_body_refines_token
actual_copy_match_refines_lz77 actual_distance_refines_lz77
match_array_refines_lz77 actual_copy_match_refines_lz77
actual_drop_preserves_origin actual_body_preserves_origin
actual_rollback_preserves_origin actual_fast_preserves_origin
drop_preserves_origin actual_distance_block_preserves_origin
drop_preserves_origin actual_drop_preserves_origin
initial_origin actual_fast_preserves_origin
pull_preserves_origin actual_body_preserves_origin
pull_preserves_origin actual_distance_block_preserves_origin
pull_preserves_origin actual_pull_preserves_origin
rollback_preserves_origin actual_rollback_preserves_origin
decode_table_read_preserved query_stability_of_prefix
short_rejected_leaf_stays_invalid distance_lookup_matches_format
short_rejected_leaf_stays_invalid length_lookup_matches_format
inflate_table_content inflate_table_decoder_safe
inflate_table_decoder_safe inflate_table_read_extent
output_copy_refines_lz77 match_array_refines_lz77
window_copy_refines_lz77 match_array_refines_lz77
copy_back_compose match_array_refines_lz77
retained_history_agrees roundtrip
retained_history_agrees roundtrip_completes
deflate_valid dict_roundtrip
deflate_valid header_roundtrip
deflate_valid roundtrip
deflate_valid roundtrip_completes
inflate_completes roundtrip_completes
inflate_decodes roundtrip
adler32_z adler32
inflateBackInit_ inflate_back_initialisation_domain

C 函数调用

右列目标对应的实现调用左列入口。这种调用关系不意味着,证明时必须把左列入口的完整契约作为前提。

来源 目标
adler32 deflate
adler32 deflateResetKeep
adler32 deflateSetDictionary
adler32 inflate
adler32 inflateSetDictionary
adler32_z adler32
compress2 compress
compress2_z compress2
compress2_z compress_z
compressBound_z compressBound
crc32 deflate
crc32 deflateResetKeep
crc32 deflateSetDictionary
crc32 inflate
crc32_combine64 crc32_combine
crc32_combine_gen64 crc32_combine64
crc32_combine_gen64 crc32_combine_gen
crc32_combine_op crc32_combine64
crc32_z crc32
crc32_z deflate
deflate compress2_z
deflate deflateParams
deflate gzclose_w
deflate gzflush
deflate gzfwrite
deflate gzputc
deflate gzputs
deflate gzsetparams
deflate gzvprintf
deflate gzwrite
deflateBound_z deflateBound
deflateEnd compress2_z
deflateEnd deflateInit2_
deflateEnd gzclose_w
deflateInit2_ deflateInit_
deflateInit2_ gzclose_w
deflateInit2_ gzflush
deflateInit2_ gzfwrite
deflateInit2_ gzputc
deflateInit2_ gzputs
deflateInit2_ gzsetparams
deflateInit2_ gzvprintf
deflateInit2_ gzwrite
deflateInit_ compress2_z
deflateParams gzsetparams
deflateReset deflateInit2_
deflateReset gzclose_w
deflateReset gzflush
deflateReset gzfwrite
deflateReset gzputc
deflateReset gzputs
deflateReset gzsetparams
deflateReset gzvprintf
deflateReset gzwrite
deflateResetKeep deflateReset
gzclose_r gzclose
gzclose_w gzclose
gzgetc gzgetc_
gzoffset64 gzoffset
gzrewind gzseek64
gzseek64 gzseek
gztell64 gztell
gzvprintf gzprintf
inflate gzfread
inflate gzgetc
inflate gzgets
inflate gzread
inflate gzungetc
inflate uncompress2_z
inflateEnd gzclose_r
inflateEnd uncompress2_z
inflateInit2_ gzdirect
inflateInit2_ gzfread
inflateInit2_ gzgetc
inflateInit2_ gzgets
inflateInit2_ gzread
inflateInit2_ gzungetc
inflateInit2_ inflateInit_
inflateInit_ uncompress2_z
inflateReset gzdirect
inflateReset gzfread
inflateReset gzgetc
inflateReset gzgets
inflateReset gzread
inflateReset gzungetc
inflateReset inflateReset2
inflateReset inflateSync
inflateReset2 inflateInit2_
inflateResetKeep inflateReset
uncompress2 uncompress
uncompress2_z uncompress2
uncompress2_z uncompress_z
zError deflate
zError deflateInit2_
zlibVersion compress2_z

规格中的引用

右列目标的定义引用左列目标或实现。这里记录的是定义中的引用,不是证明依赖。

来源 目标
compress2_z compress2_z_first_alloc_failure
compressBound compress_bound_value
compressBound_z compress_bound_value
crc32 crc32_all_byte_views
crc32_z crc32_z_all_byte_views
deflateInit2_ deflate_initialisation_domain
gzclose gz_sequence
gzflush gz_sequence
gzfread gz_sequence
gzfwrite gz_sequence
gzgetc gz_sequence
gzgets gz_sequence
gzopen gz_initialisation_domain
gzread gz_sequence
gzwrite gz_sequence
inflateBack inflate_back_sequence
inflateBackEnd inflate_back_sequence
inflateBackInit_ inflate_back_initialisation_domain
inflateInit2_ inflate_initialisation_domain

辅助证明的引用关系

这里把已观察到的定理引用按来源类别分组。一个分组不表示对应文件已经整体证明。 本表保留分组之间的全部直接连接,包括总览图为简化显示而省去的箭头。

辅助证明来源 直接引用它的目标
API 模型引理 compress_bound_adequate, compress_roundtrip, deflate_bound_adequate, deflate_completes, deflate_full_flush_resync, deflate_valid, dict_roundtrip, gz_roundtrip, header_roundtrip, inflate_completes, inflate_decodes, inflate_deferred_distance, roundtrip, roundtrip_completes, deflateInit_, API 模型证明, deflate 状态构造证明
ByteAddress 字节地址模型证明 first_aligned_offset, mask_refines_base_plus_offset, pointer_advance_preserves_low_bits
actual_body_preserves_origin inffast.c 的证明
actual_distance_block_preserves_origin inffast.c 的证明
step_safe inffast.c 的证明
actual_copy_match_refines_lz77 inffast.c 的证明
actual_drop_preserves_origin inffast.c 的证明
actual_rollback_preserves_origin inffast.c 的证明
drop_preserves_origin inffast.c 的证明
pull_preserves_origin inffast.c 的证明
inflate_table_content inftrees.c 的证明
retained_history_agrees 格式证明
deflate_valid API 模型证明
inflate_completes API 模型证明
inflate_decodes API 模型证明
inflateBackInit_ 公开入口组合证明
adler32.c 的证明 inflateSetDictionary, inflate 入口组合证明, inflate 存储与读位证明, 公开入口组合证明
API 模型证明 output_copy_refines_lz77, retained_history_agrees, compress2_z_first_alloc_failure, compress_bound_adequate, compress_bound_value, compress_roundtrip, deflate_bound_adequate, deflate_completes, deflate_full_flush_resync, deflate_valid, dict_roundtrip, gz_roundtrip, header_roundtrip, inflate_completes, inflate_decodes, inflate_deferred_distance, roundtrip, roundtrip_completes, inflateCodesUsed, 不涉及堆的数学证明
crc32.c 的证明 crc32_all_byte_views, crc32_z_all_byte_views, crc32, crc32_z, 公开入口组合证明
deflate 状态构造证明 deflateInit_
deflate 入口组合证明 deflateEnd, deflateGetDictionary, deflatePending, deflateReset, deflateResetKeep, deflateSetHeader, deflateTune, deflateUsed
deflate 生命周期证明 deflateEnd, deflateGetDictionary, deflateInit_, deflatePending, deflateReset, deflateResetKeep, deflateSetHeader, deflateTune, deflateUsed, deflate 状态构造证明, deflate 入口组合证明
deflate 窗口与匹配证明 deflate 生命周期证明, inflate 存储与读位证明
格式证明 short_rejected_leaf_stays_invalid, compress_roundtrip, format_deterministic, format_prefix_free, header_roundtrip, inflate_completes, rejected_has_no_symbols, API 模型证明, 不涉及堆的数学证明, inffast.c 的证明
gzlib.c 的证明 gzclearerr, 公开入口组合证明
不涉及堆的数学证明 match_array_refines_lz77, output_copy_refines_lz77, window_copy_refines_lz77, copy_back_compose, retained_history_agrees, window_distance_check_agrees, API 模型证明, inftrees.c 的证明
infback.c 的证明 inflateBackEnd, inflateBackInit_, 公开入口组合证明
inffast.c 的证明 actual_body_preserves_origin, actual_body_refines_token, actual_fast_preserves_origin, actual_distance_block_preserves_origin, actual_distance_refines_lz77, distance_lookup_matches_format, fast_safe, step_safe, length_lookup_matches_format, actual_body_retains_selected_length, actual_copy_match_refines_lz77, match_array_refines_lz77, actual_drop_preserves_origin, actual_pull_preserves_origin, actual_rollback_preserves_origin, drop_preserves_origin, initial_origin, pull_preserves_origin, rollback_preserves_origin, output_copy_refines_lz77, 不涉及堆的数学证明
inflate 入口组合证明 inflateEnd, inflateGetDictionary, inflateGetHeader, inflateInit_, inflateMark, inflatePrime, inflateReset, inflateReset2, inflateSetDictionary, inflateSyncPoint, inflateUndermine, inflateValidate, inflate_initialisation_domain
inflate 存储与读位证明 deflateReset, deflateResetKeep, inflateBackEnd, inflateBackInit_, inflateEnd, inflateGetDictionary, inflateInit_, inflateMark, inflateReset, inflateReset2, inflateResetKeep, inflateSetDictionary, inflateSyncPoint, inflateUndermine, inflateValidate, API 模型证明, infback.c 的证明, inflate 入口组合证明, 公开入口组合证明
inftrees.c 的证明 decode_table_read_preserved, short_rejected_leaf_stays_invalid, inflate_table_content, inflate_table_decoder_safe, inflate_table_read_extent, 不涉及堆的数学证明
公开入口组合证明 adler32_combine, adler32_combine64, adler32_z, compressBound, compressBound_z, crc32_combine, crc32_combine64, crc32_combine_gen, crc32_combine_gen64, crc32_combine_op, get_crc_table, gzbuffer, gzeof, gzerror, gzoffset, gzoffset64, gzrewind, inflateBackEnd, inflateBackInit_, inflate_back_initialisation_domain, zError, zlibVersion, adler32.c 的证明
运行时对象与算术引理 byte_modifies_preserve_bases, byte_stores_preserve_bases, every_layout_is_representable, crc32_all_byte_views, crc32_z_all_byte_views, actual_body_preserves_origin, actual_body_refines_token, actual_fast_preserves_origin, actual_distance_block_preserves_origin, actual_distance_refines_lz77, fast_safe, step_safe, actual_body_retains_selected_length, actual_copy_match_refines_lz77, actual_pull_preserves_origin, actual_rollback_preserves_origin, inflate_table_content, inflate_table_decoder_safe, inflate_table_read_extent, compress2_z_first_alloc_failure, adler32, adler32_z, crc32, crc32_z, deflateEnd, deflateGetDictionary, deflateInit_, deflatePending, deflateReset, deflateResetKeep, deflateSetHeader, deflateTune, deflateUsed, get_crc_table, gzclearerr, gzerror, gzoffset, gzoffset64, gzrewind, inflateBackEnd, inflateBackInit_, inflateCodesUsed, inflateEnd, inflateGetDictionary, inflateGetHeader, inflateInit_, inflateMark, inflatePrime, inflateReset, inflateReset2, inflateResetKeep, inflateSetDictionary, inflateSyncPoint, inflateUndermine, inflateValidate, inflate_back_initialisation_domain, inflate_initialisation_domain, zError, zlibVersion, adler32.c 的证明, API 模型证明, crc32.c 的证明, deflate 状态构造证明, deflate 入口组合证明, deflate 生命周期证明, deflate 窗口与匹配证明, gzlib.c 的证明, infback.c 的证明, inffast.c 的证明, inflate 入口组合证明, inflate 存储与读位证明, inftrees.c 的证明, 公开入口组合证明, 编码树构造与输出证明, zutil.c 的证明
规格引理 every_existing_heap_accepts_layout, actual_body_refines_token, distance_lookup_matches_format, length_lookup_matches_format, actual_body_retains_selected_length, drop_preserves_origin, pull_preserves_origin, rollback_preserves_origin, short_rejected_leaf_stays_invalid, inffast.c 的证明
编码树构造与输出证明 deflate 状态构造证明, deflate 生命周期证明
zutil.c 的证明 inflate_table_content, deflate 状态构造证明, deflate 生命周期证明, inflate 入口组合证明, inflate 存储与读位证明, inftrees.c 的证明

其他已登记定理

这些声明是已经登记的辅助执行结果、引理或见证。 它们不是额外的固定目标,也不能单凭这些声明就为调用者标记某种输入覆盖状态。

声明 使用该声明的固定目标证明
Zlib.Adler32.Proofs.adler32_combine64_safe 未记录到固定目标的组合关系
Zlib.Adler32.Proofs.adler32_combine_c_safe adler32_combine, adler32_combine64
Zlib.Adler32.Proofs.adler32_combine_correct 未记录到固定目标的组合关系
Zlib.Adler32.Proofs.adler32_combine_safe adler32_combine, adler32_combine64
Zlib.Adler32.Proofs.adler32_safe 未记录到固定目标的组合关系
Zlib.Adler32.Proofs.adler32_z_correct 未记录到固定目标的组合关系
Zlib.Adler32.Proofs.adler32_z_correct_ne_one 未记录到固定目标的组合关系
Zlib.Adler32.Proofs.adler32_z_safe 未记录到固定目标的组合关系
Zlib.Crc32.Proofs.addrOf_safe 未记录到固定目标的组合关系
Zlib.Crc32.Proofs.blockLittle_safe 未记录到固定目标的组合关系
Zlib.Crc32.Proofs.braidTab_safe 未记录到固定目标的组合关系
Zlib.Crc32.Proofs.crc32_combine64_correct 未记录到固定目标的组合关系
Zlib.Crc32.Proofs.crc32_combine64_safe 未记录到固定目标的组合关系
Zlib.Crc32.Proofs.crc32_combine_correct 未记录到固定目标的组合关系
Zlib.Crc32.Proofs.crc32_combine_gen64_correct crc32_combine_gen, crc32_combine_gen64, crc32_combine_op
Zlib.Crc32.Proofs.crc32_combine_gen64_safe 未记录到固定目标的组合关系
Zlib.Crc32.Proofs.crc32_combine_gen_correct 未记录到固定目标的组合关系
Zlib.Crc32.Proofs.crc32_combine_gen_safe 未记录到固定目标的组合关系
Zlib.Crc32.Proofs.crc32_combine_op_correct 未记录到固定目标的组合关系
Zlib.Crc32.Proofs.crc32_combine_op_diverges 未记录到固定目标的组合关系
Zlib.Crc32.Proofs.crc32_combine_op_safe 未记录到固定目标的组合关系
Zlib.Crc32.Proofs.crc32_combine_safe 未记录到固定目标的组合关系
Zlib.Crc32.Proofs.crc32_correct 未记录到固定目标的组合关系
Zlib.Crc32.Proofs.crc32_null crc32
Zlib.Crc32.Proofs.crc32_safe 未记录到固定目标的组合关系
Zlib.Crc32.Proofs.crc32_z_correct 未记录到固定目标的组合关系
Zlib.Crc32.Proofs.crc32_z_null crc32, crc32_z
Zlib.Crc32.Proofs.crc32_z_safe 未记录到固定目标的组合关系
Zlib.Crc32.Proofs.crcByte_safe 未记录到固定目标的组合关系
Zlib.Crc32.Proofs.crcTab_safe 未记录到固定目标的组合关系
Zlib.Crc32.Proofs.crc_word_big_safe 未记录到固定目标的组合关系
Zlib.Crc32.Proofs.crc_word_correct 未记录到固定目标的组合关系
Zlib.Crc32.Proofs.crc_word_safe 未记录到固定目标的组合关系
Zlib.Crc32.Proofs.get_crc_table_correct 未记录到固定目标的组合关系
Zlib.Crc32.Proofs.get_crc_table_safe 未记录到固定目标的组合关系
Zlib.Crc32.Proofs.loadWord_safe 未记录到固定目标的组合关系
Zlib.Crc32.Proofs.multmodp_correct 未记录到固定目标的组合关系
Zlib.Crc32.Proofs.multmodp_diverges 未记录到固定目标的组合关系
Zlib.Crc32.Proofs.multmodp_safe 未记录到固定目标的组合关系
Zlib.Crc32.Proofs.shr64_safe 未记录到固定目标的组合关系
Zlib.Crc32.Proofs.wordAt_safe 未记录到固定目标的组合关系
Zlib.Crc32.Proofs.x2nTab_safe 未记录到固定目标的组合关系
Zlib.Crc32.Proofs.x2nmodp_correct 未记录到固定目标的组合关系
Zlib.Crc32.Proofs.x2nmodp_safe 未记录到固定目标的组合关系
Zlib.Deflate.Engine.Proofs.INSERT_STRING_ok 未记录到固定目标的组合关系
Zlib.Deflate.Engine.Proofs.UPDATE_HASH_ok 未记录到固定目标的组合关系
Zlib.Deflate.Engine.Proofs.chain_ok_of_chains 未记录到固定目标的组合关系
Zlib.Deflate.Engine.Proofs.chains_insert 未记录到固定目标的组合关系
Zlib.Deflate.Engine.Proofs.chains_slide 未记录到固定目标的组合关系
Zlib.Deflate.Engine.Proofs.fill_fit 未记录到固定目标的组合关系
Zlib.Deflate.Engine.Proofs.fill_post_room 未记录到固定目标的组合关系
Zlib.Deflate.Engine.Proofs.form_init 未记录到固定目标的组合关系
Zlib.Deflate.Engine.Proofs.hkey_third 未记录到固定目标的组合关系
Zlib.Deflate.Engine.Proofs.lm_body_ok 未记录到固定目标的组合关系
Zlib.Deflate.Engine.Proofs.lm_inner_loop 未记录到固定目标的组合关系
Zlib.Deflate.Engine.Proofs.lm_loop_ok 未记录到固定目标的组合关系
Zlib.Deflate.Engine.Proofs.longest_match_ok 未记录到固定目标的组合关系
Zlib.Deflate.Engine.Proofs.matchLen_agree 未记录到固定目标的组合关系
Zlib.Deflate.Engine.Proofs.putShortMSB_ok 未记录到固定目标的组合关系
Zlib.Deflate.Engine.Proofs.put_byte_ok 未记录到固定目标的组合关系
Zlib.Deflate.Engine.Proofs.read_buf_ok 未记录到固定目标的组合关系
Zlib.Deflate.Engine.Proofs.read_buf_zero 未记录到固定目标的组合关系
Zlib.Deflate.Engine.Proofs.slide_copy 未记录到固定目标的组合关系
Zlib.Deflate.Engine.Proofs.slide_hash_ok 未记录到固定目标的组合关系
Zlib.Deflate.Engine.Proofs.upd3_indep 未记录到固定目标的组合关系
Zlib.Deflate.Proofs.deflateBound_nostate 未记录到固定目标的组合关系
Zlib.Deflate.Proofs.deflateBound_safe 未记录到固定目标的组合关系
Zlib.Deflate.Proofs.deflateBound_z_nostate 未记录到固定目标的组合关系
Zlib.Deflate.Proofs.deflateBound_z_safe 未记录到固定目标的组合关系
Zlib.Deflate.Proofs.deflateEnd_reject 未记录到固定目标的组合关系
Zlib.Deflate.Proofs.deflateEnd_safe deflateEnd
Zlib.Deflate.Proofs.deflatePending_reject 未记录到固定目标的组合关系
Zlib.Deflate.Proofs.deflatePending_safe 未记录到固定目标的组合关系
Zlib.Deflate.Proofs.deflatePrime_invalid_count 未记录到固定目标的组合关系
Zlib.Deflate.Proofs.deflatePrime_refused 未记录到固定目标的组合关系
Zlib.Deflate.Proofs.deflateResetKeep_reject 未记录到固定目标的组合关系
Zlib.Deflate.Proofs.deflateResetKeep_safe deflateReset, deflateResetKeep
Zlib.Deflate.Proofs.deflateReset_reject 未记录到固定目标的组合关系
Zlib.Deflate.Proofs.deflateReset_safe deflateReset
Zlib.Deflate.Proofs.deflateSetHeader_not_gzip 未记录到固定目标的组合关系
Zlib.Deflate.Proofs.deflateSetHeader_reject 未记录到固定目标的组合关系
Zlib.Deflate.Proofs.deflateSetHeader_safe 未记录到固定目标的组合关系
Zlib.Deflate.Proofs.deflateStateCheck_total deflatePending, deflateSetHeader, deflateTune, deflateUsed
Zlib.Deflate.Proofs.deflateTune_reject 未记录到固定目标的组合关系
Zlib.Deflate.Proofs.deflateTune_safe 未记录到固定目标的组合关系
Zlib.Deflate.Proofs.deflateUsed_reject 未记录到固定目标的组合关系
Zlib.Deflate.Proofs.deflateUsed_safe 未记录到固定目标的组合关系
Zlib.Deflate.Proofs.lm_init_safe deflateReset
Zlib.Gzclose.Proofs.gzclose_dispatch 未记录到固定目标的组合关系
Zlib.Gzclose.Proofs.gzclose_null 未记录到固定目标的组合关系
Zlib.Gzlib.Proofs.GT_OFF_run 未记录到固定目标的组合关系
Zlib.Gzlib.Proofs.gz_error_null_run 未记录到固定目标的组合关系
Zlib.Gzlib.Proofs.gz_intmax_run 未记录到固定目标的组合关系
Zlib.Gzlib.Proofs.gz_open_alloc_failure 未记录到固定目标的组合关系
Zlib.Gzlib.Proofs.gz_open_null 未记录到固定目标的组合关系
Zlib.Gzlib.Proofs.gz_reset_run 未记录到固定目标的组合关系
Zlib.Gzlib.Proofs.gz_reset_safe 未记录到固定目标的组合关系
Zlib.Gzlib.Proofs.gzbuffer_null 未记录到固定目标的组合关系
Zlib.Gzlib.Proofs.gzbuffer_run 未记录到固定目标的组合关系
Zlib.Gzlib.Proofs.gzbuffer_safe 未记录到固定目标的组合关系
Zlib.Gzlib.Proofs.gzclearerr_null gzclearerr
Zlib.Gzlib.Proofs.gzclearerr_run 未记录到固定目标的组合关系
Zlib.Gzlib.Proofs.gzclearerr_safe 未记录到固定目标的组合关系
Zlib.Gzlib.Proofs.gzdopen_alloc_failure 未记录到固定目标的组合关系
Zlib.Gzlib.Proofs.gzdopen_negative 未记录到固定目标的组合关系
Zlib.Gzlib.Proofs.gzeof_null 未记录到固定目标的组合关系
Zlib.Gzlib.Proofs.gzeof_run 未记录到固定目标的组合关系
Zlib.Gzlib.Proofs.gzerror_null_file 未记录到固定目标的组合关系
Zlib.Gzlib.Proofs.gzerror_run 未记录到固定目标的组合关系
Zlib.Gzlib.Proofs.gzoffset64_null 未记录到固定目标的组合关系
Zlib.Gzlib.Proofs.gzoffset64_run 未记录到固定目标的组合关系
Zlib.Gzlib.Proofs.gzoffset_eq 未记录到固定目标的组合关系
Zlib.Gzlib.Proofs.gzopen64_alloc_failure 未记录到固定目标的组合关系
Zlib.Gzlib.Proofs.gzopen64_null 未记录到固定目标的组合关系
Zlib.Gzlib.Proofs.gzopen_alloc_failure 未记录到固定目标的组合关系
Zlib.Gzlib.Proofs.gzopen_null 未记录到固定目标的组合关系
Zlib.Gzlib.Proofs.gzrewind_null 未记录到固定目标的组合关系
Zlib.Gzlib.Proofs.gzrewind_spec 未记录到固定目标的组合关系
Zlib.Gzlib.Proofs.gzseek64_cur_negpos_ub 未记录到固定目标的组合关系
Zlib.Gzlib.Proofs.gzseek64_dangling_next_ub 未记录到固定目标的组合关系
Zlib.Gzlib.Proofs.gzseek64_head 未记录到固定目标的组合关系
Zlib.Gzlib.Proofs.gzseek64_null 未记录到固定目标的组合关系
Zlib.Gzlib.Proofs.gzseek64_refuse 未记录到固定目标的组合关系
Zlib.Gzlib.Proofs.gzseek64_safe 未记录到固定目标的组合关系
Zlib.Gzlib.Proofs.gzseek64_set_negpos_ub 未记录到固定目标的组合关系
Zlib.Gzlib.Proofs.gzseek64_write_run 未记录到固定目标的组合关系
Zlib.Gzlib.Proofs.gzseek_eq 未记录到固定目标的组合关系
Zlib.Gzlib.Proofs.gztell64_null 未记录到固定目标的组合关系
Zlib.Gzlib.Proofs.gztell64_spec 未记录到固定目标的组合关系
Zlib.Gzlib.Proofs.gztell_null 未记录到固定目标的组合关系
Zlib.Gzlib.Proofs.gztell_run 未记录到固定目标的组合关系
Zlib.Gzlib.Proofs.seekTail_back 未记录到固定目标的组合关系
Zlib.Gzlib.Proofs.seekTail_copy 未记录到固定目标的组合关系
Zlib.Gzlib.Proofs.seekTail_copy_ub 未记录到固定目标的组合关系
Zlib.Gzlib.Proofs.seekTail_dangling_ub 未记录到固定目标的组合关系
Zlib.Gzlib.Proofs.seekTail_fwd 未记录到固定目标的组合关系
Zlib.Gzread.Proofs.gzclose_r_null 未记录到固定目标的组合关系
Zlib.Gzread.Proofs.gzclose_r_unbuffered 未记录到固定目标的组合关系
Zlib.Gzread.Proofs.gzclose_r_unbuffered_frame 未记录到固定目标的组合关系
Zlib.Gzread.Proofs.gzclose_r_wrong_mode 未记录到固定目标的组合关系
Zlib.Infback.Proofs.NEEDBITS_run 未记录到固定目标的组合关系
Zlib.Infback.Proofs.PULLBYTE_run 未记录到固定目标的组合关系
Zlib.Infback.Proofs.PULL_run 未记录到固定目标的组合关系
Zlib.Infback.Proofs.ROOM_inv 未记录到固定目标的组合关系
Zlib.Infback.Proofs.ROOM_run 未记录到固定目标的组合关系
Zlib.Infback.Proofs.TYPE_last 未记录到固定目标的组合关系
Zlib.Infback.Proofs.TYPE_more 未记录到固定目标的组合关系
Zlib.Infback.Proofs.backInit_witness 未记录到固定目标的组合关系
Zlib.Infback.Proofs.badMode_run 未记录到固定目标的组合关系
Zlib.Infback.Proofs.inFinite_eof 未记录到固定目标的组合关系
Zlib.Infback.Proofs.inflateBackEnd_nullstream inflateBackEnd
Zlib.Infback.Proofs.inflateBackEnd_ok 未记录到固定目标的组合关系
Zlib.Infback.Proofs.inflateBackEnd_refused inflateBackEnd
Zlib.Infback.Proofs.inflateBackInit__nullstream 未记录到固定目标的组合关系
Zlib.Infback.Proofs.inflateBackInit__ok 未记录到固定目标的组合关系
Zlib.Infback.Proofs.inflateBackInit__safe 未记录到固定目标的组合关系
Zlib.Infback.Proofs.inflateBack_eof 未记录到固定目标的组合关系
Zlib.Infback.Proofs.inflateBack_eof_witness 未记录到固定目标的组合关系
Zlib.Infback.Proofs.inflateBack_nostate 未记录到固定目标的组合关系
Zlib.Infback.Proofs.inflateBack_nullstream 未记录到固定目标的组合关系
Zlib.Infback.Proofs.order_inj 未记录到固定目标的组合关系
Zlib.Infback.Proofs.order_lt 未记录到固定目标的组合关系
Zlib.Infback.Proofs.order_surj 未记录到固定目标的组合关系
Zlib.Infback.Proofs.storedTail_run 未记录到固定目标的组合关系
Zlib.Infback.Proofs.stored_body_run 未记录到固定目标的组合关系
Zlib.Infback.Proofs.stored_check 未记录到固定目标的组合关系
Zlib.Infback.Proofs.stored_len_toNat 未记录到固定目标的组合关系
Zlib.Infback.Proofs.stored_loop_run 未记录到固定目标的组合关系
Zlib.Infback.Proofs.stored_run 未记录到固定目标的组合关系
Zlib.Infback.Proofs.xwhileBrk_wf 未记录到固定目标的组合关系
Zlib.Inffast.Proofs.distfix_tableSafe 未记录到固定目标的组合关系
Zlib.Inffast.Proofs.lenfix_tableSafe 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.BITS_run 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.BITS_toNat 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.BYTEBITS_inv 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.BYTEBITS_run 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.DROPBITS_inv 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.DROPBITS_run 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.INITBITS_inv 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.NEEDBITS_run 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.PULLBYTE_succ 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.PULLBYTE_zero 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.UPDATE_CHECK_run 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.bytesBits_eq_bytesToBits 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.inflateCodesUsed_spec 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.inflateEnd_safe inflateEnd
Zlib.Inflate.Proofs.inflateGetDictionary_spec 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.inflateGetHeader_check 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.inflateGetHeader_nogzip 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.inflateGetHeader_null_faults 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.inflateGetHeader_ok 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.inflateInit2_ok inflateInit_, inflate_initialisation_domain
Zlib.Inflate.Proofs.inflateInit2_safe 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.inflateInit__ok 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.inflateInit__safe 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.inflateMark_spec 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.inflatePrime_spec 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.inflateReset2_safe 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.inflateResetKeep_safe 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.inflateReset_safe 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.inflateSetDictionary_dataerr 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.inflateSetDictionary_safe 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.inflateSetDictionary_streamerr 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.inflateStateCheck_total inflateCodesUsed, inflateEnd, inflateMark, inflatePrime, inflateSyncPoint, inflateUndermine, inflateValidate
Zlib.Inflate.Proofs.inflateSyncPoint_spec 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.inflateSync_buf_error 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.inflateSync_check 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.inflateUndermine_safe 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.inflateValidate_safe 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.inflate_CHECK_nowrap 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.inflate_CHECK_run 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.inflate_COPY__eq 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.inflate_COPY_done 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.inflate_COPY_leave 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.inflate_COPY_run 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.inflate_DONE_run 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.inflate_LENGTH_run 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.inflate_LENGTH_skip 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.inflate_LENLENS_eq 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.inflate_LENLENS_run 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.inflate_LIT_full 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.inflate_LIT_run 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.inflate_STORED_bad 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.inflate_STORED_ok 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.inflate_STORED_wait 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.inflate_TABLE_run 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.inflate_TYPEDO_head 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.inflate_TYPEDO_last 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.inflate_TYPEDO_wait 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.inflate_TYPE_go 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.inflate_TYPE_leave 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.ll1_run 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.llBody_run 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.llTail_run 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.lzBody_run 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.lz_run 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.noRet_NEEDBITS 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.ring_spec inflateSetDictionary
Zlib.Inflate.Proofs.syncDone_good 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.syncDone_owns 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.syncDone_run 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.syncScan_found_iff 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.syncScan_spec 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.syncStep_spec 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.syncTail_run 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.syncsearch_null 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.syncsearch_run 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.syncsearch_spec 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.typedoTail_bad 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.typedoTail_fixed 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.typedoTail_fixed_trees 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.typedoTail_stored 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.typedoTail_table 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.updatewindow_ring 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.updatewindow_safe 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.uwPost_counts inflateSetDictionary
Zlib.Inflate.Proofs.uw_null_ok 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.uw_post 未记录到固定目标的组合关系
Zlib.Inflate.Proofs.xwhileBrk_run 未记录到固定目标的组合关系
Zlib.Inflate.Witness.init_witness 未记录到固定目标的组合关系
Zlib.Inftrees.Proofs.Cover.bits_add_drop 未记录到固定目标的组合关系
Zlib.Inftrees.Proofs.Cover.cell_lt_fn 未记录到固定目标的组合关系
Zlib.Inftrees.Proofs.Cover.distLeaf_of inflate_table_decoder_safe, inflate_table_read_extent
Zlib.Inftrees.Proofs.Cover.group_cover inflate_table_decoder_safe, inflate_table_read_extent
Zlib.Inftrees.Proofs.Cover.group_cover_fn 未记录到固定目标的组合关系
Zlib.Inftrees.Proofs.Cover.group_cover_idx inflate_table_decoder_safe, inflate_table_read_extent
Zlib.Inftrees.Proofs.Cover.group_cover_idx_fn 未记录到固定目标的组合关系
Zlib.Inftrees.Proofs.Cover.invalid_leaf inflate_table_decoder_safe, inflate_table_read_extent
Zlib.Inftrees.Proofs.Cover.lenLeaf_of inflate_table_decoder_safe, inflate_table_read_extent
Zlib.Inftrees.Proofs.Cover.root_cover inflate_table_content, inflate_table_decoder_safe, inflate_table_read_extent
Zlib.Inftrees.Proofs.Cover.root_cover_complete_fn inflate_table_decoder_safe, inflate_table_read_extent
Zlib.Inftrees.Proofs.Cover.root_cover_fn 未记录到固定目标的组合关系
Zlib.Inftrees.Proofs.Cover.root_single_fn 未记录到固定目标的组合关系
Zlib.Inftrees.Proofs.inflate_fixed_ok 未记录到固定目标的组合关系
Zlib.Inftrees.Proofs.inflate_table_correct_ret 未记录到固定目标的组合关系
Zlib.Inftrees.Proofs.inflate_table_safe 未记录到固定目标的组合关系
Zlib.Trees.Proofs.GB.kraft_clamped 未记录到固定目标的组合关系
Zlib.Trees.Proofs.Out.bi_flush_spec 未记录到固定目标的组合关系
Zlib.Trees.Proofs.Out.bi_reverse_correct 未记录到固定目标的组合关系
Zlib.Trees.Proofs.Out.bi_reverse_safe 未记录到固定目标的组合关系
Zlib.Trees.Proofs.Out.bi_windup_spec 未记录到固定目标的组合关系
Zlib.Trees.Proofs.Out.init_block_spec 未记录到固定目标的组合关系
Zlib.Trees.Proofs.Out.init_block_spec0 deflateInit_, deflateReset, deflateResetKeep
Zlib.Trees.Proofs.Out.send_bits_spec 未记录到固定目标的组合关系
Zlib.Trees.Proofs.Out.tr_align_emit 未记录到固定目标的组合关系
Zlib.Trees.Proofs.Out.tr_flush_bits_emit 未记录到固定目标的组合关系
Zlib.Trees.Proofs.Out.tr_init_spec deflateInit_, deflateReset, deflateResetKeep
Zlib.Trees.Proofs.Out.tr_tally_spec 未记录到固定目标的组合关系
Zlib.Trees.Proofs.gen_bitlen_correct 未记录到固定目标的组合关系
Zlib.Trees.Proofs.gen_bitlen_safe 未记录到固定目标的组合关系
Zlib.Trees.Proofs.pqdownheap_correct 未记录到固定目标的组合关系
Zlib.Trees.Proofs.pqdownheap_safe 未记录到固定目标的组合关系
Zlib.Trees.Proofs.pqremove_correct 未记录到固定目标的组合关系
Zlib.Trees.Proofs.pqremove_safe 未记录到固定目标的组合关系
Zlib.Zutil.Proofs.zError_correct 未记录到固定目标的组合关系
Zlib.Zutil.Proofs.zError_safe 未记录到固定目标的组合关系
Zlib.Zutil.Proofs.zcalloc_correct_none 未记录到固定目标的组合关系
Zlib.Zutil.Proofs.zcalloc_correct_size 未记录到固定目标的组合关系
Zlib.Zutil.Proofs.zcalloc_correct_some 未记录到固定目标的组合关系
Zlib.Zutil.Proofs.zcalloc_safe 未记录到固定目标的组合关系
Zlib.Zutil.Proofs.zcalloc_zcfree_no_leak 未记录到固定目标的组合关系
Zlib.Zutil.Proofs.zcfree_correct 未记录到固定目标的组合关系
Zlib.Zutil.Proofs.zcfree_correct_null 未记录到固定目标的组合关系
Zlib.Zutil.Proofs.zcfree_safe 未记录到固定目标的组合关系
Zlib.Zutil.Proofs.zlibCompileFlags_correct 未记录到固定目标的组合关系
Zlib.Zutil.Proofs.zlibCompileFlags_safe 未记录到固定目标的组合关系
Zlib.Zutil.Proofs.zlibVersion_correct 未记录到固定目标的组合关系
Zlib.Zutil.Proofs.zlibVersion_safe 未记录到固定目标的组合关系
ZlibF.Spec.Api.Proofs.Layer.ext dict_roundtrip, format_deterministic, format_prefix_free, inflate_completes, inflate_decodes, inflate_deferred_distance
ZlibF.Spec.Api.Proofs.inflate_deferred_distance_rejects_legacy_consistency 未记录到固定目标的组合关系
ZlibF.Spec.Blocks.append compress_roundtrip, dict_roundtrip, format_deterministic, format_prefix_free, inflate_completes, inflate_decodes, inflate_deferred_distance
ZlibF.Spec.Blocks.det compress_roundtrip, dict_roundtrip, format_deterministic, format_prefix_free, inflate_completes, inflate_decodes, inflate_deferred_distance
ZlibF.Spec.Gzip.ext dict_roundtrip, format_deterministic, format_prefix_free, inflate_completes, inflate_decodes, inflate_deferred_distance
ZlibF.Spec.Prefix.det 未记录到固定目标的组合关系
ZlibF.Spec.Prefix.ext compress_roundtrip, dict_roundtrip, format_deterministic, format_prefix_free, inflate_completes, inflate_decodes, inflate_deferred_distance
ZlibF.Spec.Proofs.prefixFree short_rejected_leaf_stays_invalid, compress_roundtrip, dict_roundtrip, format_deterministic, format_prefix_free, inflate_completes, inflate_decodes, inflate_deferred_distance
ZlibF.Spec.Public.Proofs.DeflateInit.default_init_witness 未记录到固定目标的组合关系
ZlibF.Spec.Public.Proofs.free_writable_matches_dropWindow 未记录到固定目标的组合关系
ZlibF.Spec.Public.Proofs.legacy_codes_used_impossible 未记录到固定目标的组合关系
ZlibF.Spec.Zlib.ext compress_roundtrip, dict_roundtrip, format_deterministic, format_prefix_free, inflate_completes, inflate_decodes, inflate_deferred_distance

更新记录

证明或登记表发生变化后,需要重新生成本页。生成过程会编译并检查 定理的精确类型,不会修改证明、目标或登记表。 结果是否通过项目验收,仍须依据检查规则。

输入指纹:49a33d32fca62884e1eba9ca62dd3bd9d8c5fb803e7b11fa90ab23abeabd9977。

当前证明范围

当前证明范围包括默认初始化、限定平台范围的快速解码接口,以及解码表的内容、安全性和读取范围。上方索引列出每个目标的证明状态和定义域。完整公开 inflate 与 deflate 目标仍未完成。

CI 验收必须对应一个明确的提交。请查看主分支运行记录和检查规则;合并或本地构建本身都不足以说明最终验收通过。平台的对象大小前提是已经接受的环境假设,不是尚待决定的范围问题。

剩余工作

红色边框表示已经记录了阻碍证明的问题,下文给出证据和下一步。证明尝试耗时很长,本身不构成这种阻碍。灰色目标可以开始推进;它们缺少的内部引理和调用序列不变量并没有全部画在图中。

公开 API 的证明准备情况

灰色表示尚未证明,不表示无法推进。可以立即开展独立工作。 被调用函数呈绿色,并不意味着调用者自身的前置条件、循环、返回结果和内存效果已经建立。一个能直接调用的 API,仍可能存在错误的契约或已确认的源码缺陷;只有这类证据才足以给目标加上阻碍边框。不能只凭图中缺少箭头判断证明准备情况。

证据索引区分证明引用、C 调用和规格引用。下面列出需要组合的证明义务,这些义务与精确目标的连接尚未完成。它们不会引入新的公开调用假设,也不会赋予目标任何已检查的输入覆盖范围。

打开、查询与关闭操作的前提

证明打开文件不需要先完成整个引擎。主要工作在公共辅助函数 gz_open:模式解析循环、真实分配、字符串复制、文件描述符效果,以及初始化不变量。位置查询尚缺的基础,是覆盖所有允许调用序列的位置不变量。关闭操作尚缺的基础,是覆盖这些调用序列的所有权事实,其中也包括分配失败。

目前本地执行证明已覆盖:

  • 打开入口:NULL 参数、负文件描述符和第一次分配失败。结论给出未改变的文件系统和精确堆状态,也包括分配尝试计数器。
  • 读模式关闭:NULL、模式不匹配,以及在 GzGood 条件下完整的未缓冲执行。范围包含文件描述符错误,释放消息、路径和句柄,以及无关分配保持不变的框架性质。
  • 位预置入口:在压紧待输出字节之前,拒绝流状态和非法位数的分支。

这些是具有明确内部范围的结果,并不是完整公开目标的证明。特别是,仍须从允许的公开调用序列推出 GzGood。不能凭一个分支的结果,就把灰色公开节点改成绿色。

回调解码器的前提

inflateBack 不必等待普通 inflate 的完整目标。建立和释放状态的操作已经登记。现有的入口、位输入、窗口交付和 stored 块论证可以复用;压缩块和完整的公开回调协议仍需组合证明。

要求输出缓冲区与状态序列缓冲区分离的快速路径定理,并不覆盖输出位于窗口内部的情形。关于解码表返回码的定理,也不能建立已安装表项的内容。回调证明指南标出可复用论证,并说明其回调定义域的限制。缺少这些前提,不妨碍独立推进其他块类型或错误路径。

每个未完成公开目标的下一步

“开始”表示无需等待完整引擎定理就能开展的工作。“组合”列出完整收束目标所需的前提;其他独立分支仍可推进。表中任何一行都不授予已检查状态,也不把被调用函数的规格当作假设。

公开目标 图中所示证明工作 下一步与缺少的前提
gzopen, gzopen64, gzdopen, gz_initialisation_domain 开始:打开与清理 开始:公共模式循环、各分配结果、路径格式化与复制、文件描述符效果、OpenState 和具体见证。上文的入口与失败分支已经过本地检查。
gztell64, gztell 需要:位置约束 组合:从读取、写入、定位和回退字节的调用序列推出位置不变量 PosInv,再复用现有算术执行证明。
gzclose_r 需要:资源归属 开始:已初始化缓冲区的清理,以及从调用序列建立其所有权的证明。未缓冲执行及框架性质已有本地检查;仅有 inflateEnd 还不够。
gzclose_w, gzclose 需要:交付与清理 组合:实际补零、最终压缩和文件写入,全部清理与错误路径,再利用两个完整的关闭结果证明分派操作。
gzseek64, gzseek 需要:定位与状态序列 开始:位置与指针的状态序列不变量、缓冲和透明模式路径,以及精确的错误框架性质。负位置的可达性与溢出复核复核尚未完成。
gzdirect, gzread, gzfread, gzgetc, gzgetc_, gzgets, gzungetc 需要:读取路径证明 开始:公共延迟准备、透明模式读取,以及缓冲区与状态序列不变量。组合:压缩路径中的实际解码执行,再建立 EOF、计数、字节回退和错误条款。gzdirect 需要格式探测与初始化,不需要完整的数据解码循环。
gzwrite, gzfwrite, gzputc, gzputs, gzvprintf, gzprintf, gzflush, gzsetparams 需要:写入路径证明 开始:缓冲、格式化、透明模式写入及失败情况。组合:压缩输出与参数变更中的实际压缩器执行。
deflateInit2_, deflate_initialisation_domain 开始:初始化与分配 开始:参数归一化、五次分配、全部失败清理、实际建立 DGood 和树状态,以及具体见证。重置证明要求不变量已经成立,并不会为新分配的存储建立它。
deflatePrime 开始:压紧与位操作 开始:待输出字节的压紧、带检查的移位、位插入与交付,以及不变量和框架性质的保持。拒绝分支已有本地检查;接受的位数范围仍未完成。
deflateBound_z, deflateBound 开始:上界与头部审查 开始:把现有执行公式连接到具有饱和语义的数学上界,包括头部字符串与额外字段长度。额外长度复核复核尚未完成,并不是新确认的阻碍。
deflateSetDictionary 开始:窗口与哈希 开始:填充窗口、插入哈希链、恢复保存的输入,再处理校验和以及精确的状态和框架效果。绿色校验和调用只覆盖其中的校验和部分。
inflateCopy, deflateCopy 开始:复制与重定位 开始:分配失败、缓冲区复制、指针重定位及独立所有权。在声称覆盖完整定义域之前,解决已记录的复制与状态序列调查;不能悄悄增加前提。
deflateParams 需要:块交付与参数状态 组合:实际交付旧块、处理返回码,并更新规范的调参表行。在完整收束之前,检查拒绝路径精确保持了哪些状态。
inflateSync 需要:扫描与状态序列 开始:组合现有的首次扫描与恢复扫描、暂存位、标记搜索、重置,以及记账和框架结果。从调用序列推出窗口与重置前提。
compress2_z, compress2, compress_z, compress 需要:压缩器执行 开始:参数、标量长度和清理。组合:实际初始化、压缩和结束操作及精确输出,再处理外层封装。抽象的往返性质还不够。
uncompress2_z, uncompress2, uncompress_z, uncompress 需要:解码器执行 开始:标量结果、空间不足和清理。组合:实际初始化、解压和结束操作、精确消费量与输出,再处理外层封装。
inflate, deflate 需要:分派不变量 组合:解码表或哈希链的含义、分派不变量、循环终止,以及输出和记账。绿色校验和目标不能建立这些前提。
inflate_sequence, deflate_sequence, inflate_back_sequence, gz_sequence 需要:执行与格式 组合:每次实际调用的安全性、状态序列保持、向独立格式模型的精化,以及跨输入输出分块的完成性质。
inflateBack 需要:表、窗口与回调 组合:压缩块的 TABLE/LEN 执行、窗口内部的输出、公开回调所有权、循环终止和精确的输入输出记账。现有 stored 块和入口路径仍可独立推进。
inflateInit2_ 阻碍:清理契约 已确认的清理契约反例记录在下文。成功初始化和其他独立目标仍可推进。

近期顺序是:先推进独立的入口、清理和算术路径,再建立公共的打开、位置和所有权不变量,最后完成整函数组合。回调压缩块可以并行推进。如果某个前提尚不清楚,应在这里记录精确问题;不能凭空制造依赖,也不能把经过的时间当作存在阻碍的证据。

集成

审查各函数手册的具体范围,并在经过评审的审计更新中重新生成文档来源策略锁。独立审查新增的源码锁、内核语法锁和首个验证基线。维护四项检查和受保护路径评审所需的仓库保护。新检查结果只有完成各自必需的检查后,才能登记。

公开契约

接受验证基线之前,须独立批准 103 个目标的陈述、调用者定义域和表示限制。把普通数据阶段的精化扩展到高级 raw 字典替换,以及所有头部、位预置和恢复组合;保留各入口精确的效果和无条件调用序列安全性。任何最终正确性声明都不能悄悄删去这些义务。

规格审查

Gzip 定位模式

抽象目标 gz_seek_read 不成立:关系 GzSeek 允许返回的句柄从读取模式变为写入模式,因此模型中的后续读取可能不返回数据。经过检查的反例使用一个已经打开、包含两个字节的读取句柄。证明该目标之前,需要审查定位关系。这是模型问题,不是已确认的 zlib 问题。

Inflate 初始化清理

当前的 inflateInit2_ 目标在窗口参数非法时不成立。后置条件 SameObjects 要求状态表的结构完全不变,但分配后再释放仍会扩展这个表。经过检查的反例使用合法的调用者堆,并证明两个表的大小分别为四和零。证明该目标之前,需要审查契约和模型。这不是已确认的 zlib 问题。

独立审查已经修正的共享关系 Uncompress2。延迟距离处理和精确释放的修正,都有独立反例和经过检查的回归证明;实现精化仍未完成。原先在内存失败时要求输出为空的条款,以及在缓冲区错误时要求扩展输出的条款,已依据现有成对反例移除。在把较早的抽象 gz 和字典模型当作完整操作精化之前,还须完成它们;具体公开目标不会假设被调用函数的契约成立。

翻译审查

审查所选构建采用的 C 语言版本和实现扩展。尤其需要确认可达的“空指针加零”和“空指针减空指针”操作是否具有定义。当前模型允许其中一些操作,而 Ptr.diff 的源码注释错误地把空指针相减归于 C23。对照表记录了实际定义和语言依据。这次文档修改不会改变运行时,也不能证明存在可达的上游缺陷。

在已修正压缩器自动存储的基础上,继续逐语句审查。压缩器的窗口滑动现在按源码顺序检查有符号减法。内部状态回归比较三个有定义的边界情形,并在 C 和 Lean 中都拒绝一个人为构造的溢出。恢复不受检查的减法,只会改变溢出情形的观察结果。这里没有声称该人为状态实际可达;仍须从合法调用序列推出有符号运算的边界。

树合并中针对所选深度的源码级重新读取已经恢复,并有六例回归和必需的结构检查;该检查会拒绝先前缓存表达式的写法。仍须证明内部深度读取之前的初始化时序。审查标量与指针的别名,以及压缩器指针相减时空指针减空指针的特殊情况;该项审查未完成。

CRC 地址模型

CRC 翻译现在为模型表示的每个静态或内嵌字节数组保留稳定的起始地址余数。两个公开 CRC 更新入口的本地证明,都覆盖所有余数、种子和可读长度,并给出同样的堆不变结论。原先的 47 字节静态输入,现在作为正向回归。公开契约和调用者定义域没有改变。本地证据仍须在集成提交上完成最终验收检查。

把表示关系扩展到一般 ABI 布局、有效类型、标量存储单元别名,以及其他记录的字节视图。当前地址抽象只表示 CRC 对齐测试观察到的低三位,不是完整的地址空间模型。

Inflate 因果模型

对照 C,完成通用输出精化和未知字典精化。先前要求整个预读区一致的条件不成立;改用支持当前结论的比特前缀,这项修正已经过评审。数据错误检测固定滞后八字节的说法也有反例;需要推导有依据的替代条件,不能直接提高常数。登记已经检查的 inflate_decodes 模型证明,再为实际解码器执行建立这些条件。除了已检查的模型见证和有限执行矩阵,还须证明通用的负值位预置衔接。

差分测试框架

在自动验证中保留新增的分配失败和负值位预置回归。测试拥有的 gz 句柄、输入行和 deflate 缓冲区现在都会释放。普通运行与未抑制报告的运行时检查器运行,都比较全部 47,890 个输入。一个清理变异确认:如果缺少结束调用,框架仍会报告库状态泄漏。

证明变异

补齐其余旧列表。每个新证明的公开入口,都必须在锁定映射中提供直接针对翻译的变异,并展示它们在对应函数证明中失败。尚未证明的入口应在取得证明时一并建立这些记录。

解码表

把已证明的规范码覆盖和表项形状引理,连接到 inflate_table 实际写出的堆;建立解码器使用的表谓词。

Inflate

对于实际构造的表,内部码长根表查找已有执行范围受限的结果。它最多读取一个输入字节,保持精确的输入游标和比特流,并在输入耗尽时退出。这个辅助结果没有完成 CODELENS、分派不变量或公开 inflate 目标。见查表证明和游标证明。

实际窗口更新函数在已有窗口、新分配和真正分配失败三种情况下,都保持逐字节对象的平台大小界和静态存储。它使用已证明的默认分配器和环形复制。平台大小界是环境前提;该定理证明操作保持了它。它还没有完成公开 inflate 目标、所有权、记账或完整的调用者框架性质。见窗口证明。

经过本地检查的内部快速路径主体,现在会产生一个独立的字面量或复制记号,结束块,或者在不产生输出的情况下拒绝非法长度码、非法距离码或距离过远的匹配。实际距离结果保持精确的剩余比特,并把复制结果等同于独立的逐字节状态序列复制。记号关系针对原始格式文法,已有经过检查的组合、分解和拒绝结果。整个快速调用的比特来源,也已贯穿循环、字节回退和最终写回进行检查。所有这些结果都保留了相同的安全性结论。

从实际构造、安装和初始化过程,建立表的含义、后缀稳定性、相容的叶标志和窗口中保留的字节。完成整个快速调用的输出组合,并覆盖所有合法缓冲区视图。完成其他解码模式、跨调用组合、复制和恢复。这些仍是内部定义域上的结果,并不是已登记的公开证明。公开 inflate 及其调用序列目标仍未完成。

回调解码

完成表构造、压缩块、回调组合和完整函数。

Deflate

完成通用初始化 deflateInit2_、字典设置、位预置、复制、fill_window、策略循环和完整函数。恢复的字典查询证明可以构建,并在自身证明中拒绝三个翻译变异;登记仍待完成。

精确目标 Goal.deflateInit_ 现在在 public-deflate-init 中有经过本地检查的证明。它展开实际的固定参数调用:窗口指数 15、内存级别 8、策略 0;压缩级别仍可任意选择。证明覆盖版本与参数拒绝、五次分配的全部结果、失败清理、调用前的对象的框架性质和精确的存活对象账目。成功执行会建立 DGood,而不是把它作为调用者前提。一个具体的默认调用者能够成功返回该不变量。通用 deflateInit2_ 定理仍未完成,也不是这项结果的依赖。

完整根构建、全新的完整内核重放、允许公理检查和零占位符扫描均在本地通过。三个直接包装层变异,在全新内核中使原始精确公开证明遭到拒绝。错误符号上限和遗漏清理这两个变异,仍保有同步后的完整源码相等性,但其执行证明因类型错误失败。资源不足造成的失败不计入结果。严格入口变异列表也已通过。

精确的默认入口证明及其具体见证已经登记。生成的锁增加了 72 条语义记录和两条定理类型记录,原有语义记录和定理类型记录没有改变。仍须在一个明确的 CI 提交上验收。这些是本地结果,不是 CI 批准。

树构造

实际的 gen_codes、叶准备、堆排序,以及完整的合并与根存储前缀,都已有经过检查的内部执行证明。节点边界和队列事实,来自实际的描述符、重置、扫描、修复和排序执行。输入堆中的数组内容、码长和深度仍不受限制。每次合并都按源码顺序选择子节点、写入尾部、更新频率与深度、写入父节点并执行向下调整。循环会终止,最终根存储具有精确的状态效果。这里使用实际被调用函数的执行定理。

实际森林和最终根存储现在会建立码长表示所需的前提。在明确的存储和静态表条件下,完整的实际 build_tree 执行两次编码生成调用。已安装的字面量、距离和位长描述符满足表条件。每个初始频率非零的符号,都得到正的受限码长,以及能够放入该长度的精确反转规范码字。这里没有假设被调用函数的契约。实际码长和存储的码字,现在与独立格式中的规范码及完整编码规则一致。其解码器会返回每个最初使用过的符号,并保留其后的任意比特后缀。

构造器的精确框架性质保持调用者的输出不变量和已有比特。实际构造再发送一个使用过的符号,可以在同一个堆上组合,并产生可独立解码的输出。它要求有十五比特可用空间,这是明确的内部义务;仍须从块与共享存储界推出这个条件。初始化与任意合法调用序列仍未完成。这些是内部状态结果,不是公开 deflate 定理。

实际 scan_tree 会终止、写入哨兵,并为每段连续游程记录精确的频率递增,运算遵循无符号回绕。实际 build_bl_tree 组合两次扫描、位长树构造、降序搜索和无符号成本更新,并保持源树码字及描述符。通用搜索返回 2..18;实际块初始化和源树构造建立了更强的 3..18 范围、字面量与距离计数范围 257..286 和 1..30,以及全部十九个位长值都不超过七的性质。

调用组合证明表明:对当前块能够容纳的任意合法实际符号记账列表,END_BLOCK 频率与位长树都保持不变。实际 init_block、这些记账操作和全部三个构造器,随后在同一个返回堆上建立相同的头部字段范围。这并没有证明策略从输入产生符号记账的状态序列,也没有证明跨块交付的保持性。

完整的实际 send_tree 现在会终止,并且精确输出共享游程编码模型描述的内容。直接重复循环包含最后一次有符号递减。所有重复分支、提前继续、下一个码长的读取和 for 循环的最后一次迭代,都按源码顺序执行。精确堆框架性质保持两棵树数组和已有输出前缀。实际位长构造现在为两个发送过程提供源容量、码长界,以及每个扫描频率为正的符号能够放入对应码长的码字。每个这样的码字,对任意后缀也都有独立的符号解码结果。

这些数据来自同一个返回堆:先实际执行 init_block,再执行任意合法的块内符号记账列表,最后执行全部三个构造器。精确的总比特空间仍是内部义务。还须完成 send_all_trees、独立的游程与头部解码,以及输出和符号共用存储的边界证明。单个码字可解码,并不代表完整游程序列已经可解码。

三个编码赋值变异、十一个扫描/重置/修复变异、五个堆调整/描述符变异,以及十七个合并/守卫/根存储变异,都会使相应执行证明失败。同步变体的完整源码相等性仍可独立检查。三个编码赋值变异,也会在构建目标包含完整构造器时被拒绝。

针对 send_code 的三个直接变异,分别改变码长表项、码字表项和发送长度;当构建目标包含完整构造与发送组合时,它们会使发送证明失败。五个扫描变异和八个位长构造变异会使各自的执行证明失败,而同步后的整函数相等性仍然通过。三个符号记账变异,分别改变字面量下标、匹配下标和缓冲区满标志;它们使执行证明失败,完整源码相等性仍然通过。

八个 send_tree 变异涉及重复递减、首个码字后的计数递减、零游程阈值、额外位的宽度与基数、continue 守卫、下次读取和最后迭代;它们会使执行证明失败。各变异完整且同步的源码相等性仍然通过。这些结果没有登记,也未获得 CI 批准。还须完成树描述发送、完整位成本精化、块压缩和共享存储边界,包括较小内存级别的情形。

其他 API

完成压缩辅助接口,以及 gz 的读取、写入和打开路径。

端到端声明

实例化堆 API,把状态序列不变量连接到格式模型,并在支持的配置上证明调用序列安全性、所有权、终止性和功能正确性。

边界情况复核

对照当前固定版本,复查 gzip 额外长度算术、部分读取后的恢复、负位置定位、参数变更丢失、结束失败后的恢复,以及 EOF 之后的向前定位。带条件的定位故障引理,不能证明状态可达;须从实际调用序列建立有符号位置与借用指针条件。

inflateBack 边界情况针对回调 API 的复核尚未完成;还需要该接口自身的复现,普通 inflate 的内存检查示例不足以完成这一步。在声称完整 gzip 所有权,或任意有限回调都会终止之前,还须审查外部字符串分配器和固定循环执行额度。怀疑存在缺陷,不等于可以把某种公开调用情形排除在外。

发现记录保存证据和置信度;当前补丁见 patches/README.md。没有应用一揽子未定义行为补丁。

架构指南记录设计决策 D1–D6。安全规格定义新分配内存的证明义务。

ZLIB × LEAN

全局目录

当前位置证明进度与剩余工作