phanerozoic commited on
Commit
cb4dcc7
·
verified ·
1 Parent(s): ecefc07

Update card to modular Coq library + add extracted certifier

Browse files
Files changed (1) hide show
  1. README.md +55 -4
README.md CHANGED
@@ -40,9 +40,11 @@ holds on its dense output. Under that invariant, greedy NMS is
40
  provably equivalent to a sort + threshold filter on the score axis.
41
  The deployment graph can drop NMS at zero AP cost.
42
 
43
- ## Theorem
44
 
45
- The companion Rocq library proves
 
 
46
 
47
  ```
48
  Theorem nms_collapse_onepeak :
@@ -52,8 +54,32 @@ Theorem nms_collapse_onepeak :
52
  ```
53
 
54
  instantiated for box-NMS, soft-NMS, mask-NMS, heatmap local-NMS, and
55
- DETR-style filtering. All proofs closed in Rocq 9 with no admits and
56
- no axioms beyond Stdlib's standard `R` foundations.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
57
 
58
  ## COCO val2017 mAP
59
 
@@ -146,9 +172,34 @@ python experiments/coco_eval.py \
146
 
147
  Reports both standard and NMS-free AP on COCO val2017.
148
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
149
  ## Files
150
 
151
  - `fcos_certified.safetensors` — model weights (FCOS-ResNet50-FPN, 319 tensors).
 
 
152
  - `README.md` — this card.
153
 
154
  ## Citation
 
40
  provably equivalent to a sort + threshold filter on the score axis.
41
  The deployment graph can drop NMS at zero AP cost.
42
 
43
+ ## Theorems
44
 
45
+ The companion Rocq library is structured into four modules
46
+ (`Core.v`, `Bridge.v`, `Probability.v`, `Pipeline.v`). The keystone
47
+ collapse theorem in `Core.v` is
48
 
49
  ```
50
  Theorem nms_collapse_onepeak :
 
54
  ```
55
 
56
  instantiated for box-NMS, soft-NMS, mask-NMS, heatmap local-NMS, and
57
+ DETR-style filtering.
58
+
59
+ The bridge from a Lipschitz score head to `Separated` is in `Bridge.v`
60
+ (`lipschitz_bridge_substantive`, `SepRespectingHead`). Architectural
61
+ discharges of the bridge precondition appear in `Pipeline.v`:
62
+
63
+ ```
64
+ Theorem detr_equilibrium_yields_separated (* DETR / set-prediction *)
65
+ Theorem anchor_stride_yields_separated (* FCOS / RetinaNet / ATSS *)
66
+ ```
67
+
68
+ The training-side chain from SGD to the Separated locus is closed end
69
+ to end in `Pipeline.v`:
70
+
71
+ ```
72
+ Theorem squared_hinge_sgd_pl_convergence
73
+ Theorem L_separated_sq_zero_iff_separated_general
74
+ Theorem real_training_to_collapse
75
+ ```
76
+
77
+ PAC generalization from a finite training sample is in `Probability.v`
78
+ via Hoeffding's lemma (`hoeffding_lemma_symmetric`,
79
+ `hoeffding_iid_finite_class_one_sided`).
80
+
81
+ All proofs closed in Rocq 9 with no admits and no axioms beyond
82
+ Stdlib's standard `R` foundations.
83
 
84
  ## COCO val2017 mAP
85
 
 
172
 
173
  Reports both standard and NMS-free AP on COCO val2017.
174
 
175
+ ## Certification
176
+
177
+ `nms_cert.ml` is the OCaml extraction of the decidable certifier
178
+ (`Separated_check`, `Separated_dec`, `sep_certify_finite`) from the
179
+ Rocq library. `nms_cert_main.ml` is a small CLI driver: detections in,
180
+ `CERTIFIED <slack>` or `REJECTED` out. Build:
181
+
182
+ ```
183
+ ocamlfind ocamlopt nms_cert.ml nms_cert_main.ml -o nms_cert
184
+ ```
185
+
186
+ Usage:
187
+
188
+ ```
189
+ ./nms_cert TAU THETA SLACK < detections.txt
190
+ ```
191
+
192
+ Each input line is whitespace-separated `score x1 y1 x2 y2` with
193
+ integer scores and integer bounding-box pixels. `CERTIFIED` means
194
+ the corresponding `Separated` predicate holds on the input list at
195
+ that slack — by `nms_collapse_onepeak`, NMS is then equivalent to a
196
+ threshold filter on the same list.
197
+
198
  ## Files
199
 
200
  - `fcos_certified.safetensors` — model weights (FCOS-ResNet50-FPN, 319 tensors).
201
+ - `nms_cert.ml` — extracted certifier (Separated_check, Separated_dec, sep_certify_finite).
202
+ - `nms_cert_main.ml` — CLI driver around the extracted certifier.
203
  - `README.md` — this card.
204
 
205
  ## Citation