[TYPES/announce] Verified Software Competition

Natarajan Shankar shankar at csl.sri.com
Sat Apr 6 22:42:31 EDT 2013

VSTTE Competition 2013
20-22 April 2013
Organizers: Joseph Kiniry, Hannes Mehnert, Dan Zimmerman

This edition of the VSTTE programming contest is an experiment of a
different kind, as it is more about software engineering than
programming.  It is not a contest to see who can write and verify
small problems as quickly as possible, but instead how can a team
create a quality piece of code, using any tools and techniques (not
just verification), in a short period of time.

Quality software is about more than just verified data types and
algorithms at the source code level.  Unlike previous
competitions [1], this year's VSComp will focus on a rigorously
engineered software system.  Contestants will be evaluated for all of
the software engineering artifacts that they produce, not just for
verifying their implementations.

Consequently, teams that competed in previous competitions are
encouraged to recruit new team members whose skills complement those
of the existing team members.  For example, perhaps the current team
is great at low-level design and verification, but is weak in writing
requirements or in rigorous validation/testing.

The aims of the competition are:

- to bring together those interested in rigorous software engineering
   and formal verification, and to provide an engaging, hands-on, and
   fun opportunity for competition and mutual-learning,
- to evaluate the usability of a variety of software engineering
   tools, not the least of which are logic-based program verification
   tools, in a controlled experiment that could be easily repeated by

The contest takes place over a two-day period.  The system that
contestants must develop is secret until the moment the contest
starts.  The system will be decomposed for the contestants into
an architecture, whose constituent pieces are the sub-problems of the
contest.  Thus, by solving all sub-problems, one writes the entire
application.  What's more, the architecture is specified in such a
way that independent solutions to sub-problems submitted by competing
teams should compose into the final system.

The kinds of software engineering concepts mentioned in the contest
include: requirements, domain analysis, design, architecture, formal
specifications, implementation, validation, verification, and
traceablity.  A well-prepared team will have a methodology prepared
for each of these facets.  The submission of a solution for a
sub-problem need not include any of these facets in particular---i.e.,
running, verified code is neither necessary nor sufficient to win the

There are no restrictions on concepts, tools, and technologies used.
Teams whose focus in on "early" (i.e., requirements or domain
analysis) or "late" (validation/testing or evolution) phases of the
software engineering process are very welcome.  There is no limit
on team size, but the results will be normalized by team size.

We particularly encourage participation of:
  - student teams (this includes PhD students),
  - non-developer teams using a tool someone else developed, and
  - several teams using the same tool

A panel of judges will evaluate contest entries to score sub-problems
and determine the winner.  Solutions will be judged for correctness,
completeness and elegance.  All submitted artifacts will be made
public immediately after the contest ends so that contestants can
comment upon each other's submissions.  We expect that a paper will be
co-authored by all interested contestants about the contest's results,
as in several previous contests.

The contest begins at 9:00 GMT on Sat 20 April and ends at 9:00 GMT on 
Mon 22

Prizes will be awarded in the following categories:
  - best team
  - best student team
  - tool used most effectively by the most teams

Questions or comments about the contest should be sent to Joe Kiniry
(kiniry at acm.org).


[1] Past VSComp Competitions Summary

The first edition of the competition was a half-day live contest that
took place at VSTTE in August 2010 and was organized by Shankar and
Peter Mueller.  Small teams focused on simple algorithms specified via 
language and pseudo-code.  The algorithms were sum & max, inverting an
injection, searching a linked list, the N-Queens problem, and an
amortized queue.


The 2011 competition was organized by Marieke Huisman, Vladimir 
Klebanov, and
Rosemary Monaghan.
It was a live competition that took place over a half day in October
2011 at FoVeOSS 2011.  Small teams focused on simple algorithms
specified using Java code.  The algorithms were max of an array, max
of a tree, finding two duplets in an array, and deciding on the
cyclicity of a list.


The 2012 VSTTE competition was organized by Jean-Christophe Filliatre, 
Paskevich, and Aaron Stump and was an online competition that took place 
over a 48 hour
period in November 2011.  It focused on somewhat more advanced
algorithms than earlier competitions including two-way sort, an S & K
combinator interpreter, a queue implemented with a ring buffer, tree
reconstruction, and breadth-first search.


The VerifyThis competition was a two day affair that took place at FM
2012.  It was organized by Marieke, Vladimir, and Rosemary.  Teams of
up to two people focused on three problems: longest common prefix of
two arrays, prefix sum of an array, and iterative deletion in a binary
search tree.


More information about the Types-announce mailing list