---
title: Finitely Supported Functions
url: https://www.emergentmind.com/topics/finitely-supported-functions
type: topic
---

# Finitely Supported Functions

Finitely supported functions are functions whose nonzero behavior is confined to a restricted support, but the exact restriction depends on context. In the pointed-set and programming-language formulation of "Finite Functional Programming," a function \(f:A\to P\) has support \(\mathrm{supp}(f)=\{a\in A\mid f(a)\neq \mathrm{nil}_P\}\), and it is finitely supported when this set is finite; the resulting objects \(A\rightharpoonup P\) serve as finite maps that can be represented as input-output tables [2604.26161]. In the approximation-theoretic formulation of "Approximation by Finite Supported Functions," one considers measurable real-valued functions on \(\mathbb{R}\) and calls a function \(\sigma\)-supported, or finitely supported, when the Lebesgue measure of its support is less than \(\sigma\); approximation by such functions generates the spaces \(A^\alpha_{p,q}\), which are identified with interpolation and Lorentz spaces [1707.00824]. The shared theme is that support restriction turns nonlinear structure into an analyzable finite or finite-measure object.

## 1. Basic definitions and terminological scope

In the finite-functional setting, the ambient codomain is a pointed set \(P=(|P|,\mathrm{nil}_P)\), namely a set equipped with a distinguished element \(\mathrm{nil}_P\). For any function \(f:A\to P\), its support is defined by
\[
\mathrm{supp}(f)=\{a\in A\mid f(a)\neq \mathrm{nil}_P\}.
\]
The function is finitely supported precisely when \(\mathrm{supp}(f)\) is finite, and the class of all such functions is written
\[
A\rightharpoonup P=\{f:A\to P\mid \mathrm{supp}(f)\ \text{finite}\},
\]
itself a pointed set with everywhere-zero element \((\mathrm{nil}_P)^+=\lambda a.\mathrm{nil}_P\) [2604.26161].

In the approximation-theoretic setting, one instead starts from the class \(M\) of real-valued Lebesgue-measurable functions on \(\mathbb{R}\) that are finite almost everywhere. For \(f\in M\), the support is
\[
\mathrm{supp}\,f=\{x\in\mathbb{R}:f(x)\neq 0\}.
\]
For \(\sigma>0\), the class
\[
E_\sigma=\{g\in M:m(\mathrm{supp}\,g)<\sigma\},
\]
where \(m(\cdot)\) is Lebesgue measure, consists of the \(\sigma\)-supported functions, which the paper also calls finitely supported functions [1707.00824].

A common source of ambiguity is therefore terminological rather than mathematical. In one usage, finite support means finite cardinality of the nonzero locus; in the other, it means support of finite measure bounded by a parameter \(\sigma\). The two frameworks are distinct, though both isolate functions by controlling where they differ from zero.

## 2. Finite maps, predicates, and pointed-set structure

When \(P=\mathrm{bool}\) is regarded as a pointed set with \(\mathrm{nil}_{\mathrm{bool}}=\mathrm{false}\), the type \(A\rightharpoonup \mathrm{bool}\) is the type of finite Boolean predicates on \(A\), equivalently finite relations whose true cases can be listed. This viewpoint makes Datalog an instance of finitely supported Boolean-function programming. The example
```text
follows(john,mary).
follows(mary,john).
mutuals(X,Y) :- follows(X,Y), follows(Y,X).
```
is interpreted semantically by viewing
\[
\mathrm{follows}: \mathrm{User}\times \mathrm{User}\rightharpoonup \mathrm{bool}
\]
as the finite map with support \(\{(\mathrm{john},\mathrm{mary}),(\mathrm{mary},\mathrm{john})\}\), and the rule for \(\mathrm{mutuals}\) as the smash-product composition
\[
\mathrm{mutuals}=\mathrm{and}\circ (\mathrm{follows}\otimes \mathrm{follows}),
\qquad
\mathrm{mutuals}(x,y)=\mathrm{follows}(x,y)\wedge \mathrm{follows}(y,x).
\]
Because \(\mathrm{follows}\) has finite support, \(\mathrm{mutuals}\) also has finite support and can be enumerated [2604.26161].

The paper generalizes this Boolean case to arbitrary pointed sets. It introduces the direct product \(P+Q\), with underlying set \(\{\mathrm{inl}\ p\mid p\in P\}\cup\{\mathrm{inr}\ q\mid q\in Q\}\) and zero given as \(\mathrm{inl}\ \mathrm{nil}_P\) or \(\mathrm{inr}\ \mathrm{nil}_Q\), and the smash product \(P\otimes Q\), defined as
\[
(P\times Q)\big/\{(p,\mathrm{nil}_Q)\sim(\mathrm{nil}_P,q)\},
\]
with zero the equivalence class of any pair containing \(\mathrm{nil}\). A point-preserving map \(f:P\to Q\) satisfies \(f(\mathrm{nil}_P)=\mathrm{nil}_Q\), and such maps form the morphisms of the category \(\mathbf{Pt}\). For any set \(A\), the assignment \(P\mapsto A\rightharpoonup P\) is functorial in \(\mathbf{Pt}\): a point-preserving \(g:P\to Q\) sends \(f\in A\rightharpoonup P\) to \(g\circ f\in A\rightharpoonup Q\), and finite support is preserved because \(g(\mathrm{nil}_P)=\mathrm{nil}_Q\) [2604.26161].

The significance of this formulation is that relational data, Boolean predicates, and weighted annotations can all be treated uniformly as finitely supported functions into a pointed codomain.

## 3. Type-theoretic control of finiteness

Finite functional programming distinguishes three contexts:
\[
\Gamma,\quad \Delta,\quad \Theta,
\]
where \(\Gamma\) contains ordinary variables \(x:A\) for ordinary functions \(A\to B\), \(\Delta\) contains pointed-set variables \(p:P\) for point-preserving maps \(P\to Q\), and \(\Theta\) contains finite-map variables \(m:A\rightharpoonup P\). It also distinguishes two syntactic classes: \(e\) for ordinary functions and \(t\) for point-preserving and finitely supported terms [2604.26161].

The ordinary function rules are the expected introduction and elimination rules:
\[
\infer{\Gamma,x:A;\Delta;\Theta\vdash e:B}
      {\Gamma;\Delta;\Theta\vdash \lambda x.e:A\to B}
\qquad
\infer{\Gamma;\Delta;\Theta\vdash e_1:A\to B\quad \Gamma;\Delta;\Theta\vdash e_2:A}
      {\Gamma;\Delta;\Theta\vdash e_1\,e_2:B}.
\]
For finite maps, the abstraction rule is
\[
\infer{\Gamma;\Delta;\Theta,x:A\vdash t:P}
      {\Gamma;\Delta;\Theta\vdash \lambda^{A\rightharpoonup P}x.\,t:A\rightharpoonup P},
\]
and the application rule is
\[
\infer{\Gamma;\Delta;\Theta\vdash m:A\rightharpoonup P\quad \Gamma;\Delta;\emptyset\vdash e:A}
      {\Gamma;\Delta;\Theta\vdash m\,e:P}.
\]
The side condition that \(e\) be typable in the empty finite-map context ensures that all finite-map variables remain finite [2604.26161].

Two additional rules encode the algebra of joins. For the smash-product introduction,
\[
\infer{\Gamma;\Delta;\Theta_1\vdash t:P \quad \Gamma;\Delta;\Theta_2,\Theta_1\vdash u:Q}
      {\Gamma;\Delta;\Theta_1\cup\Theta_2\vdash (t,u):P\otimes Q},
\]
the rule is asymmetric: finite-map variables grounded in \(t\) become available for free in \(u\), but not conversely. The paper states that this asymmetry ensures no circular infinite support. For the direct-product introduction,
\[
\infer{\Gamma;\Delta;\Theta\vdash t:P \quad \Gamma;\Delta;\Theta\vdash u:Q}
      {\Gamma;\Delta;\Theta\vdash \{t,u\}:P+Q},
\]
both terms must use exactly the same finite-map context, because a zero in the direct product requires both components to be zero [2604.26161].

Within the paper’s framework, the type system is the mechanism that checks finite support. Its stated role is to guarantee at compile-time that every declared finite map truly has finite support while allowing non-finite ordinary functions to interoperate safely.

## 4. Aggregation, weighted logic programming, and higher-order structure

The passage from Boolean predicates to general pointed sets allows aggregation and weighted logic programming to be expressed in the same language. For Boolean-valued finite maps, existential quantification is presented as
\[
\mathrm{exists}:(A\rightharpoonup \mathrm{bool})\to \mathrm{bool},
\qquad
\mathrm{exists}(m)=\bigoplus_{x\in \mathrm{supp}\,m}\mathrm{true}=(\mathrm{supp}\,m\neq \emptyset).
\]
For \(\mathbb{N}_0\)-valued finite maps, summation is
\[
\mathrm{sum}:(A\rightharpoonup \mathbb{N}_0)\to \mathbb{N}_0,
\qquad
\mathrm{sum}(m)=\sum_{x\in \mathrm{supp}\,m} m(x).
\]
These are finite because the support is finite [2604.26161].

Matrix multiplication appears as a weighted join followed by aggregation:
\[
\mathit{matMul}:(A\times B\rightharpoonup \mathbb{N}_0)\to (B\times C\rightharpoonup \mathbb{N}_0)\to (A\times C\rightharpoonup \mathbb{N}_0),
\]
\[
\mathit{matMul}\;m\;n\;(i,k)=\sum_{j\in B} m(i,j)\times n(j,k).
\]
The finiteness claim is explicit: because \(m\) and \(n\) each have finite support, each output pair \((i,k)\) only sums over the finite set of \(j\) for which both \(m(i,j)\) and \(n(j,k)\) are non-zero [2604.26161].

The same pattern is abstracted to any commutative monoid \((P,\oplus,\mathrm{nil}_P)\) on a pointed set:
\[
\bigoplus_P:(A\rightharpoonup P)\to P,
\qquad
\bigoplus_P(m)=\bigoplus_{x\in \mathrm{supp}\,m} m(x).
\]
With a second monoid \((P,\otimes,1_P)\) distributing over \(\oplus\), the paper states that one recovers weighted logic over a semiring. This unification is summarized by the distinction between data and code: data are finitely supported maps \(A\rightharpoonup P\), representable as finite key-value tables, while code consists of point-preserving higher-order functions \(P\to Q\) and combinators such as \(\otimes\), \(\oplus\), and bind for \(A\rightharpoonup P\). The paper further states that this supports enumeration and set-theoretic joins exactly as in Datalog, aggregation and weighted logic as extensions of Boolean joins, and higher-order programming through map, fold, and monad-like interfaces [2604.26161].

## 5. Approximation by \(\sigma\)-supported functions in \(L^p\)

In the analytic setting, finitely supported functions are used as nonlinear approximants. For \(0<p<\infty\), \(f\in M\), and \(\sigma>0\), the \(L^p\)-approximation error by \(\sigma\)-supported functions is defined by
\[
E_\sigma(f)_p=\inf\{\|f-g\|_{L^p}:g\in E_\sigma\}.
\]
Given \(\alpha>0\) and \(0<q\leq \infty\), the approximation space \(A^\alpha_{p,q}\) is defined by the quasinorm
\[
\|f\|_{A^\alpha_{p,q}}
=
\left(\int_0^\infty [\sigma^\alpha E_\sigma(f)_p]^q\,\frac{d\sigma}{\sigma}\right)^{1/q}
\quad\text{if }0<q<\infty,
\]
and
\[
\|f\|_{A^\alpha_{p,\infty}}=\sup_{\sigma>0}\sigma^\alpha E_\sigma(f)_p
\quad\text{if }q=\infty.
\]
The space is then
\[
A^\alpha_{p,q}=\{f\in M:\|f\|_{A^\alpha_{p,q}}<\infty\}.
\]
The paper states that \(\|\cdot\|_{A^\alpha_{p,q}}\) is a quasinorm and that \(A^\alpha_{p,q}\) is complete and homogeneous [1707.00824].

A key formula expresses the optimal error through the non-increasing rearrangement \(f^*\). A best approximant is
\[
g_\sigma(x)=f(x)\cdot 1_{\{|f(x)|>f^*(\sigma)\}},
\]
and consequently
\[
E_\sigma(f)_p=\left(\int_\sigma^\infty [f^*(t)]^p\,dt\right)^{1/p}.
\]
The paper’s practical summary is that one approximates \(f\) by trimming off the smallest \(\sigma\)-measure part of its support, and the decay of the rearrangement tail determines the approximation order [1707.00824].

This analytic notion differs from finite support in the pointed-set sense: the support need not be finite as a set, only controlled in measure. The common feature is that approximation is organized by restricting the region on which the approximant can be nonzero.

## 6. Interpolation, Lorentz-space characterizations, and rates

The approximation spaces generated by \(\sigma\)-supported functions are identified with Lorentz spaces. For the case \(q=\infty\), if \(0<p<\infty\), \(\alpha>0\), and \(p_1>p\) is chosen so that
\[
\alpha=1-\frac{p}{p_1},
\qquad\text{equivalently}\qquad
\frac{1}{p_1}=\frac{1}{p}-\alpha,
\]
then
\[
A^\alpha_{p,\infty}=L_{p_1,\infty},
\]
with the two-sided estimate
\[
c_1\|f\|_{L_{p_1,\infty}}
\leq
\sup_{\sigma>0}\sigma^\alpha E_\sigma(f)_p
\leq
c_2\|f\|_{L_{p_1,\infty}},
\]
where
\[
c_2=(\alpha p)^{-1/p},
\qquad
c_1=2^{\alpha+1/p}.
\]
Equivalently, if \(f\in L_{p_1,\infty}\), then
\[
E_\sigma(f)_p\leq (\alpha p)^{-1/p}\sigma^{-\alpha}\|f\|_{L_{p_1,\infty}},
\]
and conversely, from \(E_\sigma(f)_p\leq C\sigma^{-\alpha}\) one obtains
\[
\|f\|_{L_{p_1,\infty}}\leq 2^{\alpha+1/p}\,C
\]
[1707.00824].

For the general case \(0<q<\infty\), the paper introduces the \(K\)-functional
\[
K(f,t;L^p,L_{p_1,\infty})
=
\inf\{\|g\|_{L^p}+t\|h\|_{L_{p_1,\infty}}:f=g+h\},
\]
with \(r=1-p/p_1=\alpha\), and proves the direct-inverse estimates
\[
E_\sigma(f)_p \lesssim K(f,\sigma^{-r};L^p,L_{p_1,\infty}),
\]
\[
K(f,\sigma^{-r};L^p,L_{p_1,\infty})
\lesssim
\sigma^{-r}
\left[\sum_{k\in \mathbb{Z}}(2^{kr}E_{2^k}(f)_p)^p\right]^{1/p}.
\]
By real interpolation,
\[
A^\alpha_{p,q}=(L^p,L_{p_1,\infty})_{\theta,q},
\qquad \theta=\alpha/r=1,\quad 0<\alpha<1,
\]
and then, by the interpolation theorem for Lorentz spaces cited in the paper,
\[
A^\alpha_{p,q}=L_{p_2,q},
\]
where \(p_2>p\) is determined by
\[
\alpha=1-\frac{p}{p_2},
\qquad\text{equivalently}\qquad
\frac{1}{p_2}=\frac{1}{p}-\alpha
\]
[1707.00824].

The paper also gives an explicit rate example. If
\[
f^*(t)\lesssim C\, t^{-\gamma},
\qquad \gamma>\frac{1}{p},
\]
then
\[
E_\sigma(f)_p\asymp \sigma^{-\gamma+1/p},
\]
so \(\alpha=\gamma-1/p\), and hence \(f\in A^\alpha_{p,q}=L_{p_2,q}\) with \(1/p_2=1/p-\alpha\) [1707.00824]. This identifies the decay of approximation error by finite-support cutoffs with Lorentz-space membership.

Taken together, the two arXiv treatments show that finitely supported functions form a bridge between discrete finite-map semantics and nonlinear analytic approximation. In one direction, finite support enables Datalog-style enumeration, joins, aggregation, and weighted logic inside a higher-order functional setting; in the other, approximation by \(\sigma\)-supported cutoffs reproduces the scale of Lorentz spaces through rearrangement estimates and interpolation theory [2604.26161].

Source: https://www.emergentmind.com/topics/finitely-supported-functions