Documentation

MIPRE.Tailored.Sofic.Hamming

The normalized Hamming distance on permutations #

Paper I (arXiv:2408.00110), I:1351–1370: the normalized Hamming distance d_H(a, b) = P_p[a p ≠ b p] between two permutations of one finite set. We work with the number diffCard a b of points where a and b differ, and dH a b = diffCard a b / |α|.

The facts used by the robustness claim and the stability claims: the triangle inequality, the product bound d(a b, a' b') ≤ d(a, a') + d(b, b') (the paper's "iterated triangle inequality"), inversion invariance d(a⁻¹, b⁻¹) = d(a, b), and the count of the points a commutator moves.

The number of points at which two permutations differ.

Equations
Instances For
    noncomputable def MIPRE.Tailored.Sofic.dH {α : Type u_1} [Fintype α] [DecidableEq α] (a b : Equiv.Perm α) :

    The normalized Hamming distance (I:1356): the fraction of points at which two permutations differ.

    Equations
    Instances For
      @[simp]
      theorem MIPRE.Tailored.Sofic.perm_inv_apply_self' {α : Type u_1} (a : Equiv.Perm α) (x : α) :
      a⁻¹ (a x) = x
      @[simp]
      theorem MIPRE.Tailored.Sofic.perm_apply_inv_self' {α : Type u_1} (a : Equiv.Perm α) (x : α) :
      a (a⁻¹ x) = x
      theorem MIPRE.Tailored.Sofic.card_filter_comp_perm {α : Type u_1} [Fintype α] (e : Equiv.Perm α) (P : α → Prop) [DecidablePred P] :
      {p : α | P (e p)}.card = (Finset.filter P Finset.univ).card

      Composing a predicate with a permutation does not change how many points satisfy it.

      @[simp]
      theorem MIPRE.Tailored.Sofic.diffCard_self {α : Type u_1} [Fintype α] [DecidableEq α] (a : Equiv.Perm α) :
      diffCard a a = 0

      The triangle inequality.

      theorem MIPRE.Tailored.Sofic.diffCard_mul {α : Type u_1} [Fintype α] [DecidableEq α] (a a' b b' : Equiv.Perm α) :
      diffCard (a * b) (a' * b') ≤ diffCard a a' + diffCard b b'

      The product bound: d(a b, a' b') ≤ d(a, a') + d(b, b').

      Inversion does not change the distance.

      theorem MIPRE.Tailored.Sofic.card_commutator_moves {α : Type u_1} [Fintype α] [DecidableEq α] (a b : Equiv.Perm α) :
      {q : α | (a * b * a⁻¹ * b⁻¹) q ≠ q}.card = {r : α | a (b r) ≠ b (a r)}.card

      The points a commutator a b a⁻¹ b⁻¹ moves are as many as those at which a and b do not commute.

      theorem MIPRE.Tailored.Sofic.dH_nonneg {α : Type u_1} [Fintype α] [DecidableEq α] (a b : Equiv.Perm α) :
      0 ≤ dH a b
      theorem MIPRE.Tailored.Sofic.dH_le_one {α : Type u_1} [Fintype α] [DecidableEq α] (a b : Equiv.Perm α) :
      dH a b ≤ 1
      theorem MIPRE.Tailored.Sofic.dH_comm {α : Type u_1} [Fintype α] [DecidableEq α] (a b : Equiv.Perm α) :
      dH a b = dH b a
      theorem MIPRE.Tailored.Sofic.dH_triangle {α : Type u_1} [Fintype α] [DecidableEq α] (a b c : Equiv.Perm α) :
      dH a c ≤ dH a b + dH b c
      theorem MIPRE.Tailored.Sofic.dH_mul {α : Type u_1} [Fintype α] [DecidableEq α] (a a' b b' : Equiv.Perm α) :
      dH (a * b) (a' * b') ≤ dH a a' + dH b b'
      theorem MIPRE.Tailored.Sofic.dH_inv {α : Type u_1} [Fintype α] [DecidableEq α] (a b : Equiv.Perm α) :
      dH a⁻¹ b⁻¹ = dH a b