A function f(x1xd) , where each input is an integer from 1 to n and output is a real number, is Lipschitz if changing one of the inputs by 1 changes the output by at most 1. In other words, Lipschitz functions are not very sensitive to small changes in the input.
Our main result is an efficient tester for the Lipschitz property of functions f:[n]dZ, where (01] and Z is the set of integer multiples of . A property tester is given an oracle access to a function f and a proximity parameter , and it has to distinguish, with high probability, functions that have the property from functions that differ on at least an fraction of values from every function with the property. The Lipschitz property was first studied by Jha and Raskhodnikova (FOCS'11) who motivated it by applications to data privacy and program verification. They presented efficient testers for the Lipschitz property of functions on the domains 01d and [n]. Our tester for functions on the more general domain [n]d runs in time O(d15nlogn) for constant and .
The main tool in the analysis of our tester is a smoothing procedure that makes a function Lipschitz by modifying it at a few points. Its analysis is already nontrivial for the 1-dimensional version, which we call Bubble Smooth, in analogy to Bubble Sort. In one step, Bubble Smooth modifies two values that violate the Lipschitz property, namely,differ by more than 1, by transferring units from the larger to the smaller. We define a transfer graph to keep track of the transfers, and use it to show that the 1 distance between f and BubbleSmooth(f) is at most twice the 1 distance from f to the nearest Lipschitz function. Bubble Smooth has severalother important properties, which allow us to obtain a dimension reduction, i.e., a reduction from testing functions on multidimensional domains to testing functions on the 1-dimensional domain, that incurs only a small multiplicative overhead in the running time and thus avoids the exponential dependence on the dimension