.PHONY: all
all:
$(MAKE) -C $(SRC)/AST
- $(MAKE) -C $(SRC)/sat simp
+ $(MAKE) -C $(SRC)/sat core
+# $(MAKE) -C $(SRC)/sat simp
+# $(MAKE) -C $(SRC)/sat unsound
$(MAKE) -C $(SRC)/simplifier
$(MAKE) -C $(SRC)/bitvec
$(MAKE) -C $(SRC)/c_interface
$(MAKE) -C $(SRC)/constantbv
$(MAKE) -C $(SRC)/parser
- $(AR) rc libstp.a $(SRC)/AST/*.o $(SRC)/sat/*.a $(SRC)/simplifier/*.o $(SRC)/bitvec/*.o $(SRC)/constantbv/*.o \
+ $(AR) rc libstp.a $(SRC)/AST/*.o $(SRC)/AST/printer/*.o $(SRC)/sat/*.or $(SRC)/simplifier/*.o $(SRC)/bitvec/*.o $(SRC)/constantbv/*.o \
$(SRC)/c_interface/*.o $(SRC)/parser/let-funcs.o $(SRC)/parser/parseCVC.o $(SRC)/parser/lexCVC.o
$(RANLIB) libstp.a
@mkdir -p lib
.PHONY: all
all:
$(MAKE) -C $(SRC)/AST
- $(MAKE) -C $(SRC)/sat simp
+ $(MAKE) -C $(SRC)/sat core
+# $(MAKE) -C $(SRC)/sat simp
+# $(MAKE) -C $(SRC)/sat unsound
$(MAKE) -C $(SRC)/simplifier
$(MAKE) -C $(SRC)/bitvec
$(MAKE) -C $(SRC)/c_interface
$(MAKE) -C $(SRC)/constantbv
$(MAKE) -C $(SRC)/parser
- $(AR) rc libstp.a $(SRC)/AST/*.o $(SRC)/sat/*.a $(SRC)/simplifier/*.o $(SRC)/bitvec/*.o $(SRC)/constantbv/*.o \
+ $(AR) rc libstp.a $(SRC)/AST/*.o $(SRC)/AST/printer/*.o $(SRC)/sat/*.or $(SRC)/simplifier/*.o $(SRC)/bitvec/*.o $(SRC)/constantbv/*.o \
$(SRC)/c_interface/*.o $(SRC)/parser/let-funcs.o $(SRC)/parser/parseCVC.o $(SRC)/parser/lexCVC.o
$(RANLIB) libstp.a
@mkdir -p lib
#include <algorithm>
#include "ASTUtil.h"
#include "ASTKind.h"
-//#include "../sat/core/Solver.h"
-#include "../sat/simp/SimpSolver.h"
+#include "../sat/core/Solver.h"
+//#include "../sat/simp/SimpSolver.h"
+//#include "../sat/unsound/UnsoundSimpSolver.h"
#include "../sat/core/SolverTypes.h"
#include <stdlib.h>
#ifndef NATIVE_C_ARITH
#Please refer LICENSE FILE in the home directory for licensing information
-# name minkids maxkids cat1 cat2 ...
+# name minkids maxkids category1 category2
Categories: Term Form
# Leaf nodes.
XOR 1 - Form
IFF 1 - Form
IMPLIES 2 2 Form
+FOR 4 4 Form
# array operations
READ 2 2 Term
//PrintActivityLevels_Of_SATVars("Before SAT:",newS);
//ChangeActivityLevels_Of_SATVars(newS);
//PrintActivityLevels_Of_SATVars("Before SAT and after initial bias:",newS);
+ //newS.solve();
newS.solve();
//PrintActivityLevels_Of_SATVars("After SAT",newS);
int res;
//solver instantiated here
- MINISAT::SimpSolver newS;
+ MINISAT::Solver newS;
+ //MINISAT::SimpSolver newS;
+ //MINISAT::UnsoundSimpSolver newS;
if (arrayread_refinement_flag)
{
counterexample_checking_during_refinement = true;
"NAND" { return NAND_TOK;}
"NOR" { return NOR_TOK;}
"NOT" { return NOT_TOK; }
+"FOR" { return FOR_TOK; }
"OR" { return OR_TOK; }
"/=" { return NEQ_TOK; }
":=" { return ASSIGN_TOK;}
%token AND_TOK "AND"
%token OR_TOK "OR"
%token NOT_TOK "NOT"
+%token FOR_TOK "FOR"
%token XOR_TOK "XOR"
%token NAND_TOK "NAND"
%token NOR_TOK "NOR"
delete $1;
delete $3;
}
+ | FOR_TOK '(' Formula ';' Formula ';' Formula ')' '{' Formula '}'
+ {
+ //Allows a compact representation of
+ //parameterized set of formulas
+ //
+ //$1 is the initialization (this is an AND of
+ //formulas of the form var = constant)
+ //
+ //$2 is the constant bounding (this is an AND
+ //of formulas of the form var < constant).
+ //
+ //$3 is the increment (this is an AND of
+ //formulas of the form var = var + constant).
+ //
+ //$4 is the parameterized formula
+ }
| NOT_TOK Formula
{
$$ = new BEEV::ASTNode(BEEV::globalBeevMgr_for_parser->CreateNode(BEEV::NOT, *$2));
SRCS = lexCVC.cpp parseCVC.cpp parseSMT.cpp lexSMT.cpp let-funcs.cpp main.cpp
OBJS = $(SRCS:.cpp=.o)
-LIBS = -L../AST -last -L../sat/core -L../sat/simp -lminisat -L../simplifier -lsimplifier -L../bitvec -lconsteval -L../constantbv -lconstantbv
-CFLAGS += -I../sat/mtl -I../sat/core -I../sat/simp
+LIBS = -L../AST -last -L../sat -lminisat -L../simplifier -lsimplifier -L../bitvec -lconsteval -L../constantbv -lconstantbv
+#CFLAGS += -I../sat/mtl -I../sat/core -I../sat/simp
+CFLAGS += -I../sat/mtl -I../sat/core -I../sat/unsound
all: parseSMT.cpp lexSMT.cpp parseCVC.cpp lexCVC.cpp let-funcs.cpp parser parseCVC.o lexCVC.o let-funcs.o
.PHONY: simp
simp:
$(MAKE) -C simp lib all
-
.PHONY: unsound
unsound:
$(MAKE) -C unsound lib all
rm -rf *~ libminisat.a
$(MAKE) -C core clean
$(MAKE) -C simp clean
- #$(MAKE) -C unsound clean
+ $(MAKE) -C unsound clean
include ../mtl/template.mk
all:
+ ranlib libminisat.a
+ cp *.or ../
cp libminisat.a ../
\ No newline at end of file
lib$(LIB).a lib$(LIB)d.a lib$(LIB)p.a:
@echo Library: "$@ ( $^ )"
@rm -f $@
- @ar cq $@ $^
+ @ar cq $@ $^
## Clean rule
clean:
include ../mtl/template.mk
all:
- cp libminisat.a ../
\ No newline at end of file
+ ranlib libminisat.a
+ cp *.o ../
+ cp libminisat.a ../
//a is of the form var, and b is const
if ((k1 == READ && a[0].GetKind() == SYMBOL && a[1].GetKind() == BVCONST &&
(k2 == BVCONST)))
-// ||
+ // ||
// k2 == READ && b[0].GetKind() == SYMBOL && b[1].GetKind() == BVCONST)))
return 1;
Expr a_of_i = vc_bvSignExtend(vc,
vc_readExpr(vc,cvcl_array,i32),
32);
- Expr a_of_i_eq_11 = vc_eqExpr(vc, a_of_i,
- vc_bvConstExprFromInt(vc, 32, 11));
+ Expr a_of_i_eq_11 = vc_eqExpr(vc,
+ vc_bvConcatExpr(vc,i32,a_of_i),
+ vc_bvConstExprFromInt(vc, 64, 11));
vc_assertFormula(vc, in_bounds);
vc_assertFormula(vc, a_of_i_eq_11);