A Typed Language for Truthful One-Dimensional Mechanism Design

We first introduce a very simple typed language for expressing allocation algorithms that allows automatic verification that an algorithm is monotonic and therefore truthful. The analysis of truthfulness is accomplished using a syntax-directed transformation which constructs a proof of monotonicity based on an exhaustive critical-value analysis of the algorithm. We then define a more high-level, general-purpose programming language with typical constructs, such as those for defining recursive functions, along with primitives that match allocation algorithm combinators found in the work of Mu’alem and Nisan [10]. We demonstrate how this language can be used to combine both primitive and user-defined combinators, allowing it to capture a collection of basic truthful allocation algorithms. In addition to demonstrating the value of programming language design techniques in application to a specific domain, this work suggests a blueprint for interactive tools that can be used to teach the simple principles of truthful mechanism design.

[1]  Tuomas Sandholm,et al.  Expressive commerce and its application to sourcing: how we conducted $35 billion of generalized combinatorial auctions , 2007, AI Mag..

[2]  Catherine Parent-Vigouroux Verifying programs in the calculus of inductive constructions , 2005, Formal Aspects of Computing.

[3]  Anna R. Karlin,et al.  Competitive auctions , 2006, Games Econ. Behav..

[4]  Simon L. Peyton Jones,et al.  Composing contracts: an adventure in financial engineering (functional pearl) , 2000, ICFP '00.

[5]  Michel Gendreau,et al.  Combinatorial auctions , 2007, Ann. Oper. Res..

[6]  Paul Hudak,et al.  Modular domain specific languages and tools , 1998, Proceedings. Fifth International Conference on Software Reuse (Cat. No.98TB100203).

[7]  Paul Hudak,et al.  Building domain-specific embedded languages , 1996, CSUR.

[8]  Benjamin C. Pierce,et al.  Types and programming languages: the next generation , 2003, 18th Annual IEEE Symposium of Logic in Computer Science, 2003. Proceedings..

[9]  Daniel Jackson,et al.  Alloy: a lightweight object modelling notation , 2002, TSEM.

[10]  Luís Pinto,et al.  Type-based termination of recursive definitions , 2004, Mathematical Structures in Computer Science.

[11]  Noam Nisan,et al.  Truthful approximation mechanisms for restricted combinatorial auctions , 2008, Games Econ. Behav..

[12]  Frank Guerin,et al.  Verifying Dominant Strategy Equilibria in Auctions , 2007, CEEMAS.

[13]  Peter Aczel Notes on the Simply Typed Lambda Calculus , 1999 .

[14]  Arie van Deursen,et al.  Domain-specific languages: an annotated bibliography , 2000, SIGP.

[15]  Daniel Jackson,et al.  Automating first-order relational logic , 2000, SIGSOFT '00/FSE-8.