A Rewriting-based, Abstract Symbolic Contract Synthesizer
We have tested Kindspec on an Intel Core2 Quad CPU Q9300(2.50GHz) computer with 6 Gigabytes of RAM running K v3.4 on Maude v2.6, for inference tasks.
The following table summarizes our experimental results for benchmark programs that contain both cyclic and acyclic data structures.
Program | LOC | Function | #Observers | #Paths explored | #Extracted axioms | #Candidate axioms | Final contract | Output |
---|---|---|---|---|---|---|---|---|
cyclic_lists.c | 95 | collapseC | 3 | 22 | 8 | 2 | 4 | Contract |
insert.c | 120 | insert | 5 | 17 | 10 | 3 | 5 | Contract |
insert.c | 90 | insert | 5 | 16 | 9 | 3 | 4 | Contract |
deallocate.c | 59 | deallocate | 2 | 5 | 5 | 1 | 2 | Contract |
reverse.c | 70 | reverse | 4 | 7 | 6 | 1 | 3 | Contract |
delete_circular.c | 69 | delCircular | 3 | 13 | 7 | 1 | 4 | Contract |
append.c | 60 | append | 3 | 32 | 32 | 10 | 4 | Contract |
All benchmark examples are available for download here.