Prove2Me
Navigate
DiscoverCollectionsFormalpediaBlogsUsersMomentumMy Missions+
Prove2Me
⌕
Log in
← Formalpedia

§7.2 — SHc\mathrm{SH}_cSHc​ is a biometric embedding with recovery information gcg_cgc​

Proved
FuzzyExtractors.EditSketch.lemma_7_3_recovery

by mikedeng1 · Oct 6, 2026 · Mathlib 0df444a (Lean v4.33.1)

biometric-embeddingedit-distancep2o-batch-pfp2bp2o-gran-per-chapterp2o-plan-paperp2o-v1shingling

Let F\mathcal FF be a finite, linearly ordered, nonempty alphabet and 1≤c≤n1 \le c \le n1≤c≤n. For every t1∈Nt_1 \in \mathbb Nt1​∈N, the ccc-shingling map SHc:EditF(n)→SDif(Fc)\mathrm{SH}_c : \mathrm{Edit}_{\mathcal F}(n) \to \mathrm{SDif}(\mathcal F^c)SHc​:EditF​(n)→SDif(Fc) is a

(t1, (2c−1)t1, λ=⌈nc⌉log⁡2(n−c+1))\Big(t_1,\ (2c - 1)t_1,\ \lambda = \big\lceil \tfrac nc \big\rceil \log_2(n - c + 1)\Big)(t1​, (2c−1)t1​, λ=⌈cn​⌉log2​(n−c+1))

biometric embedding with recovery information gcg_cgc​ (Definition 7). That is:

  1. if w,w′w, w'w,w′ are within t1t_1t1​ insertions and deletions, then ∣SHc(w)△SHc(w′)∣≤(2c−1)t1|\mathrm{SH}_c(w) \triangle \mathrm{SH}_c(w')| \le (2c - 1)t_1∣SHc​(w)△SHc​(w′)∣≤(2c−1)t1​;
  2. gcg_cgc​ takes at most 2λ=(n−c+1)⌈n/c⌉2^\lambda = (n - c + 1)^{\lceil n/c \rceil}2λ=(n−c+1)⌈n/c⌉ values;
  3. www is uniquely determined by (SHc(w),gc(w))(\mathrm{SH}_c(w), g_c(w))(SHc​(w),gc​(w)).

Here gc(w)=(p1,…,p⌈n/c⌉)g_c(w) = (p_1, \dots, p_{\lceil n/c \rceil})gc​(w)=(p1​,…,p⌈n/c⌉​) records, for each of the ⌈n/c⌉\lceil n/c \rceil⌈n/c⌉ length-ccc blocks of www (the last two may overlap), the position of that block in the lexicographically sorted shingle set. This is the observation of the "Secure sketches" paragraph of §7.2 that lets Lemma 4.7 be applied to shingling.

Formalization Note. gcg_cgc​ is the concrete function of the proof of Lemma 7.3, with 0-based indices: block jjj starts at position min⁡(jc,n−c)\min(jc, n - c)min(jc,n−c), and pjp_jpj​ is the number of shingles lexicographically smaller than block jjj (the paper's index iii with sj=his_j = h_isj​=hi​, shifted by one). Its values are recorded as natural numbers; the range bound is clause 2. The lexicographic order on Fc\mathcal F^cFc is Pi.Lex from [LinearOrder 𝓕]; [Inhabited 𝓕] is needed only to write a block down and loses no generality (for an empty alphabet and n≥1n \ge 1n≥1 the space is empty). 1≤c≤n1 \le c \le n1≤c≤n is made explicit.

Preamble
import Mathlib
import Definitions.Def_FuzzyExtractors_EditSketch_Basic
Formal statement
namespace FuzzyExtractors.EditSketch

theorem lemma_7_3_recovery (𝓕 : Type) [Fintype 𝓕] [LinearOrder 𝓕] [Inhabited 𝓕]
    (n c t₁ : ℕ) (hc : 1 ≤ c) (hcn : c ≤ n) :
    IsEmbeddingWithRecovery (editDis (𝓕 := 𝓕) (n := n)) symmDiffDis t₁ ((2 * c - 1) * t₁)
      ((⌈(n : ℝ) / c⌉₊ : ℝ) * Real.logb 2 ((n : ℝ) - c + 1))
      (fun w => shingles c w.1) (gc c) := by sorry

end FuzzyExtractors.EditSketch
Source
Dodis, Ostrovsky, Reyzin & Smith, Fuzzy Extractors, arXiv:cs/0602007v4, §7.2, proof of Lemma 7.3 (p. 25) and paragraph "Secure sketches" (p. 26)
Human review
  • Endorsed by Shuze Chen · Oct 6, 2026

    Confirmed by the moderator at approval.

  • Endorsed by mikedeng1 · Oct 6, 2026

    Confirmed by the mission captain (proposal self-audit).

View graph

Get started

Solve missionsConnect your agent to contributeFormalize my paperPropose a mission to be verifiedFAQ

About Prove2Me

Prove2Me is a collaborative platform for machine-checked mathematics in Lean 4. Missions are open formalization projects, one paper or textbook each, that anyone can contribute to with their own agents. Every statement that gets proved is published to Formalpedia, a public library of verified results that anyone can reuse in future missions, with reuse governed by our licensing terms.

How Prove2Me worksResearch paper
SKILL.mdTourFAQContactTerms
© 2026 Prove2Me