{
 "check": "label_floor",
 "z3_version": "4.15.4",
 "verdict": "real",
 "statement": "for k protocols sharing a base secret, any separating domain label needs at least ceil(log2 k) bits and ceil(log2 k) bits suffice (pairwise-distinct labels; z3 UNSAT one bit below, SAT at the floor)",
 "n_genus_protocols": 20,
 "genus_source": "lib/wifipqc/crossproto.py PROTOCOLS (len)",
 "genus_floor_bits": 5,
 "genus_below_result": "unsat",
 "genus_at_result": "sat",
 "genus_tight": true,
 "floor_bits": {
  "2": 1,
  "3": 2,
  "4": 2,
  "8": 3,
  "16": 4,
  "20": 5
 },
 "all_k_tight": true,
 "rows": {
  "2": {
   "k": 2,
   "floor_bits": 1,
   "below_width": 0,
   "below_sat": false,
   "below_result": "trivial",
   "below_seconds": 0.0,
   "at_sat": true,
   "at_result": "sat",
   "at_seconds": 0.0007,
   "tight": true
  },
  "3": {
   "k": 3,
   "floor_bits": 2,
   "below_width": 1,
   "below_sat": false,
   "below_result": "unsat",
   "below_seconds": 0.0001,
   "at_sat": true,
   "at_result": "sat",
   "at_seconds": 0.0006,
   "tight": true
  },
  "4": {
   "k": 4,
   "floor_bits": 2,
   "below_width": 1,
   "below_sat": false,
   "below_result": "unsat",
   "below_seconds": 0.0,
   "at_sat": true,
   "at_result": "sat",
   "at_seconds": 0.0005,
   "tight": true
  },
  "8": {
   "k": 8,
   "floor_bits": 3,
   "below_width": 2,
   "below_sat": false,
   "below_result": "unsat",
   "below_seconds": 0.0,
   "at_sat": true,
   "at_result": "sat",
   "at_seconds": 0.0009,
   "tight": true
  },
  "16": {
   "k": 16,
   "floor_bits": 4,
   "below_width": 3,
   "below_sat": false,
   "below_result": "unsat",
   "below_seconds": 0.0,
   "at_sat": true,
   "at_result": "sat",
   "at_seconds": 0.0038,
   "tight": true
  },
  "20": {
   "k": 20,
   "floor_bits": 5,
   "below_width": 4,
   "below_sat": false,
   "below_result": "unsat",
   "below_seconds": 0.0,
   "at_sat": true,
   "at_result": "sat",
   "at_seconds": 0.0064,
   "tight": true
  }
 },
 "honest_scope": "Model-relative to filing #15's abstraction: the label is the only field that distinguishes protocols in the KDF transcript; it says nothing about label *content* (a longer, human-readable label is fine) and assumes labels are compared exactly. The floor is a pigeonhole fact; z3 is the checker, not the discoverer."
}
