├── Makefile ├── LICENSE ├── README ├── IC3.h ├── main.cpp ├── Model.h ├── Model.cpp └── IC3.cpp /Makefile: -------------------------------------------------------------------------------- 1 | CC=gcc 2 | CFLAGS=-std=c++0x -Wall -D __STDC_LIMIT_MACROS -D __STDC_FORMAT_MACROS -O3 -g 3 | CXX=g++ 4 | 5 | INCLUDE=-Iminisat -Iminisat/minisat/core -Iminisat/minisat/mtl -Iminisat/minisat/simp -Iaiger 6 | 7 | all: ic3 8 | 9 | ic3: minisat/build/dynamic/lib/libminisat.so aiger/aiger.o Model.o IC3.o main.o 10 | $(CXX) $(CFLAGS) $(INCLUDE) -o IC3 \ 11 | aiger.o Model.o IC3.o main.o \ 12 | minisat/build/release/lib/libminisat.a 13 | 14 | .c.o: 15 | $(CC) -g -O3 $(INCLUDE) $< -c 16 | 17 | .cpp.o: 18 | $(CXX) $(CFLAGS) $(INCLUDE) $< -c 19 | 20 | clean: 21 | rm -f *.o ic3 22 | 23 | dist: 24 | cd ..; tar cf ic3ref/IC3ref.tar ic3ref/*.h ic3ref/*.cpp ic3ref/Makefile ic3ref/LICENSE ic3ref/README; gzip ic3ref/IC3ref.tar 25 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | IC3 reference implementation 2 | 3 | Copyright 2013, Aaron R. Bradley 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining 6 | a copy of this software and associated documentation files (the 7 | "Software"), to deal in the Software without restriction, including 8 | without limitation the rights to use, copy, modify, merge, publish, 9 | distribute, sublicense, and/or sell copies of the Software, and to 10 | permit persons to whom the Software is furnished to do so, subject to 11 | the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be 14 | included in all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 19 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 20 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 21 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 22 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23 | -------------------------------------------------------------------------------- /README: -------------------------------------------------------------------------------- 1 | IC3 reference implementation: a short, simple, fairly competitive 2 | implementation of IC3. Read it, tune it, extend it, play with it. 3 | 4 | Copyright 2013, Aaron R. Bradley 5 | 6 | 1. Obtain the latest version of Minisat at 7 | 8 | https://github.com/niklasso/minisat 9 | 10 | Unpack it into ic3ref/minisat (so that Solver.h is at 11 | ic3ref/minisat/minisat/core/Solver.h). Make. 12 | 13 | 2. Obtain the AIGER utilities (aiger-1.9.4.tar.gz) at 14 | 15 | http://fmv.jku.at/aiger/ 16 | 17 | Unpack it into ic3/aiger (so that aiger.c is at 18 | ic3ref/aiger/aiger.c). DO NOT MAKE. 19 | 20 | 3. At ic3ref, make. 21 | 22 | 4. Run 23 | 24 | ./IC3 [