---
title: Function-Correcting Partition Codes (FCPCs)
url: https://www.emergentmind.com/topics/function-correcting-partition-codes-fcpcs
type: topic
---

# Function-Correcting Partition Codes (FCPCs)

Function-correcting partition codes (FCPCs) generalize the framework of function-correcting codes (FCCs) by encoding functions characterized not by their full specification but via partitions of the domain $\mathbb{F}_q^k$. A $t$-error FCPC, also called a $(\mathcal{P},t)$-encoding, maps elements from $\mathbb{F}_q^k$ to codewords in $\mathbb{F}_q^{k+r}$ such that symbols from distinct blocks of a chosen partition cannot be confounded by up to $t$ errors. This approach subsumes classical FCCs as the special case corresponding to partitions derived from the fibers of $f$. Beyond unifying protection for multiple functions and enabling potential bandwidth and privacy advantages, FCPCs support constructions leveraging coset partitions, partition graphs, and block-preserving contractions for optimal or near-optimal redundancy. The structural properties of the underlying domain partitions, as well as their refinements and joins, drive the code construction, redundancy analysis, and privacy guarantees associated with FCPCs [2601.06450].

## 1. Formal Definition and Structural Properties

Given a partition $\mathcal{P} = \{P_1, \ldots, P_E\}$ of $\mathbb{F}_q^k$, a $(\mathcal{P}, t)$-encoding is a systematic mapping
$$
\mathcal{C}_{\mathcal{P}} : \mathbb{F}_q^k \to \mathbb{F}_q^{k+r}
$$
such that for any $u \in P_i$ and $v \in P_j$ with $i \neq j$,
$$
d\big(\mathcal{C}_{\mathcal{P}}(u), \mathcal{C}_{\mathcal{P}}(v)\big) \geq 2t+1
$$
where $d(\cdot, \cdot)$ denotes Hamming distance. The minimum $r$ for which such a map exists is the optimal redundancy $r_{\mathcal{P}}(k, t)$. Under this encoding, up to $t$ errors cannot result in confusion between codewords from distinct partition blocks, enforcing correct function evaluation in the presence of errors.

Any function $f: \mathbb{F}_q^k \to S$ naturally induces its domain partition
$$
\mathcal{P}_f = \{f^{-1}(s)\ :\ s \in \operatorname{Im}(f)\}
$$
and a code $\mathcal{C}$ is an $(f, t)$-FCC if and only if it is a $(\mathcal{P}_f, t)$-encoding. Thus, $r_f(k, t) = r_{\mathcal{P}_f}(k, t)$.

## 2. Simultaneous Protection for Multiple Functions

To protect functions $f^{(1)}, \dots, f^{(K)}$ on $\mathbb{F}_q^k$ simultaneously, FCPCs utilize the join (i.e., common refinement) of their respective domain partitions:
$$
\mathcal{P} = \mathcal{P}_{f^{(1)}} \vee \cdots \vee \mathcal{P}_{f^{(K)}}
$$
where each block of $\mathcal{P}$ is an intersection $P_{i_1, \ldots, i_K} = P^{(1)}_{i_1} \cap \cdots \cap P^{(K)}_{i_K}$. Any $(\mathcal{P}, t)$-encoding is automatically an $(f^{(i)}, t)$-FCC for all $i$ by Lemma 1. Redundancy bounds for the join are given by
$$
\max_{i=1,\ldots,K} r_{\mathcal{P}_{f^{(i)}}}(k, t) \leq r_{\mathcal{P}}(k, t) \leq \min\big(N(q^k, 2t+1) - k, \; \sum_{i=1}^K r_{\mathcal{P}_{f^{(i)}}}(k, t)\big)
$$
where $N(M, d)$ denotes the minimum length of a $q$-ary $(M, d)$ error-correcting code.

Two key metrics introduced are partition redundancy gain and partition rate gain:
- Partition redundancy gain per function:
  $$
  G_{\mathrm{red}} = \frac{1}{K}\Big(\sum_{i=1}^K r_i - r\Big)
  $$
- Partition rate gain:
  $$
  G_{\mathrm{rate}} = \frac{R_{\mathrm{new}}-R_{\mathrm{old}}}{R_{\mathrm{old}}}
  $$
  where $R_{\mathrm{old}}=\frac{k}{k+\sum_i r_i},\, R_{\mathrm{new}}=\frac{k}{k+r}$.

These gains quantify bandwidth savings of simultaneously protecting multiple functions compared to independent FCCs.

## 3. Specialization to Linear Functions and Coset Partitions

When $f: \mathbb{F}_q^k \to \mathbb{F}_q^\ell$ is linear, the domain partition is the coset partition $\mathcal{U} = \{x+\ker(f) : x \in \mathbb{F}_q^k\}$. For linear maps $f^{(1)}, \dotsc, f^{(K)}$, their shared kernel $U = \bigcap_i \ker(f^{(i)})$ defines a coset partition that simultaneously protects all $f^{(i)}$. Specifically, any $(\mathcal{U}, t)$-encoding for these cosets yields a code correcting $t$ errors for all $K$ functions.

For example, taking $f_1(x_1, x_2, x_3)=x_1$, $f_2(x_1, x_2, x_3)=x_2$ over $\mathbb{F}_2^3$ gives $\ker(f_1)\cap\ker(f_2)=\{000,001\}$, with four resulting cosets. The optimal code correcting $t=1$ errors for both functions requires redundancy 3, while applying codes separately would need redundancy 2 for each.

## 4. Partition Graphs, Cliques, and Redundancy Optimization

The computation of $r_{\mathcal{P}}(k, t)$ can be reduced via the notion of the partition graph $G_{\mathcal{P}}$. This is an $E$-partite graph where each vertex is a vector in $\mathbb{F}_q^k$ and edges connect $u \in P_i$, $v \in P_j$ ($i \neq j$) whenever their distance realizes the minimal inter-block distance. A full-size clique is a selection of one representative from each block with all inter-block distances minimized.

If $\{u_1,\ldots,u_E\}$ forms such a clique, the problem reduces to constructing a code for the $E \times E$ partition distance matrix $\mathbb{D}_{\mathcal{P}}(t; u_1, \ldots, u_E)$. Theorem 13 shows this achieves $r_{\mathcal{P}}(k, t)$ precisely.

The following table summarizes full-size clique existence for notable partitions:

| Partition Type   | Clique Construction         | Clique Size |
|------------------|----------------------------|-------------|
| Weight partition | $u_i=(a,\ldots,a,0,\ldots,0)$ | $k+1$       |
| Support partition| $u_A$ with $a$ on $A$         | $2^k$       |

Here, $a \in \mathbb{F}_q^*$ is fixed.

## 5. Block-Preserving Contractions and Generalization beyond Cliques

If $G_{\mathcal{P}}$ admits no full-size clique, block-preserving contractions are employed. A block-preserving contraction consists of a subset $U \subseteq \mathbb{F}_q^k$ and a map $\phi: \mathbb{F}_q^k \to U$ such that $\phi(u)\in P_i$ when $u\in P_i$ and $\forall\;u,v$ from distinct blocks,
$$
d(\phi(u), \phi(v)) \leq d(u,v)
$$
Theorem 20 proves that restricting to $U$ allows calculation of $r_{\mathcal{P}}(k, t)=N(\mathbb{D}_{\mathcal{P}}(t;\,u\in U))$. This reduction may dramatically decrease the code design complexity.

For instance, a 3-block partition of $\mathbb{F}_2^4$ with no 3-clique can be contracted onto a $U$ of size 4 while preserving necessary distance properties.

## 6. Partial Privacy and Function-Class Privacy

FCPCs deliver partial privacy: the transmitter learns only the domain partition $\mathcal{P}_f$, not the function specifics. Therefore, the transmitter cannot distinguish which $f$ among all those inducing $\mathcal{P}_f$ is protected, and only the function class is revealed. The number of such functions for finite $|S|=H\geq E$ is $\frac{H!}{(H-E)!}$. This property—labelled in the original work as function-class privacy—applies to both linear and nonlinear functions.

For example, a 4-block partition of $\mathbb{F}_2^4$ corresponds to multiple linear maps $\mathbb{F}_2^4\to\mathbb{F}_2^2$ as well as many nonlinear functions, all equally protected by the same FCPC without exposing which function is in use.

## 7. Significance, Applications, and Broader Implications

FCPCs generalize and unify error-correcting code design for functional data and facilitate simultaneous correction for multiple functions with potential bandwidth savings as quantified by partition redundancy and rate gain. Their framework naturally extends classical coset constructions and incorporates combinatorial optimization via partition graphs and contractions. Notably, FCPCs' partial privacy is intrinsic and does not rely on cryptographic assumptions, distinguishing functional privacy at the partition level in coding-theoretic contexts [2601.06450].

Source: https://www.emergentmind.com/topics/function-correcting-partition-codes-fcpcs