A program equivalence checker

This is a companion page of “Functional Statisfaction”.

Description

The tar ball zyva.tar.gz contains source code and exemples for the program equivalence checker.

After uncompressing (using gunzip) and untaring (using tar xf), build is done by simply typing “make”, this produces the checker “zyva”.

Benchmark

Timings are wall-clock times in seconds, measured on a lightly loaded 1GHz PC, running Linux Red-Had 7.2. One program in directory inputs is compared with the (equivalent) program with the same name in directory opt.

For some of the inputs used during the contest judging phase, the following table shows its approximate size and the number of variables in it, and the running times of zyva, both with optimizations enabled and disabled.
  alpha2 ifjarboe ifparrot mips0 pentium sim-intel.rtl0 sim-sparc.rtl0 sparc3
Size (Kb) 96 24 8 40 2936 1044 140 136
nvars 13 3 8 16 25 609 1112 12
zyva -O 0.05 0.01 0.01 0.05 8.14 0.54 0.31 0.08
zyva 0.23 0.01 0.01 7.95 N/A 0.81 N/A 527.24

Only some signifant timings are shown above, here are the timings of another run of the checker (with optimizations enabled) on all contest inputs:
alpha0.icfp: 0.00
alpha1.icfp: 0.00
alpha2.icfp: 0.05
busker.icfp: 0.01
cat.icfp: 0.00
ifbusker.icfp: 0.01
ifcat.icfp: 0.01
ifjarboe.icfp: 0.01
ifparrot.icfp: 0.01
jarboe.icfp: 0.01
mips0.icfp: 0.05
parrot.icfp: 0.01
pentium0.icfp: 0.00
pentium1.icfp: 0.00
pentium2.icfp: 0.00
pentium3.icfp: 0.01
pentium4.icfp: 0.00
pentium.icfp: 8.14
pessbusker.icfp: 0.01
pesscat.icfp: 0.01
pessjarboe.icfp: 0.04
pessparrot.icfp: 0.02
sim-intel.rtl0.icfp: 0.54
sim-sparc.rtl0.icfp: 0.31
sim-sparc.rtl1.icfp: 0.01
sim-sparc.rtl2.icfp: 0.01
sparc0.icfp: 0.00
sparc1.icfp: 0.00
sparc2.icfp: 0.00
sparc3.icfp: 0.08
xs.rtl0.icfp: 0.01
xs.rtl0.mc.icfp: 0.01

This document was translated from LATEX by HEVEA.