Documentation

Graphon.InjectionCounting

Counting vertex maps: the birthday bound and injective-map counts (#94, shared infrastructure) #

Pure finite combinatorics about maps Fin k → Fin n, extracted from the mixture-existence collision estimate so the t/t_inj/t_ind subgraph-density interlude (#94) can share it:

theorem Graphon.card_not_injective_le (k m : ) :
{f : Fin kFin m | ¬Function.Injective f}.card k * k * m ^ (k - 1)

The union (birthday) bound: at most a k²/m proportion of vertex maps Fin k → Fin m are non-injective.

theorem Graphon.inv_pow_eq_card_inv (n k : ) :
(↑(n + 1))⁻¹ ^ k = (↑(Fintype.card (Fin kFin (n + 1))))⁻¹

The inverse-power sampling weight is the reciprocal vertex-map count.

theorem Graphon.card_noninjective_div_card_le (n k : ) :
{f : Fin kFin (n + 1) | ¬Function.Injective f}.card / (Fintype.card (Fin kFin (n + 1))) k * k / (n + 1)

The non-injective proportion of vertex maps is at most k²/(n + 1) (birthday bound plus arithmetic).

The injective-map count is the descending factorial: there are exactly n.descFactorial k injective maps Fin k → Fin n — the normalizer of the injective and induced subgraph densities.

The non-injective map count is the complement of the descending factorial.