diff options
author | Andres Noetzli <andres.noetzli@gmail.com> | 2018-09-04 14:59:19 -0700 |
---|---|---|
committer | Andrew Reynolds <andrew.j.reynolds@gmail.com> | 2018-09-04 16:59:19 -0500 |
commit | 747a9a248da073911e1c0da34c38f0648421a087 (patch) | |
tree | 98449a71c66d0ad427b8c8dc6f0ed1b9fbccdfbe /src/bindings | |
parent | 29bf7d6a937ab50c4dd92a30d7beb36a4001ead6 (diff) |
Remove CVC3 compatibility layer (#2418)
Diffstat (limited to 'src/bindings')
78 files changed, 0 insertions, 12385 deletions
diff --git a/src/bindings/Makefile.am b/src/bindings/Makefile.am index fcfcb9409..9de484d1c 100644 --- a/src/bindings/Makefile.am +++ b/src/bindings/Makefile.am @@ -19,8 +19,6 @@ AM_CPPFLAGS = \ -I@builddir@/.. -I@srcdir@/../include -I@srcdir@/.. AM_CXXFLAGS = -Wall -SUBDIRS = compat - # any binding-specific flags to pass to swig java_cpp_SWIGFLAGS = -package edu.nyu.acsys.CVC4 diff --git a/src/bindings/compat/Makefile b/src/bindings/compat/Makefile deleted file mode 100644 index 3efa36c74..000000000 --- a/src/bindings/compat/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -topdir = ../../.. -srcdir = src/bindings/compat - -include $(topdir)/Makefile.subdir diff --git a/src/bindings/compat/Makefile.am b/src/bindings/compat/Makefile.am deleted file mode 100644 index 327da7fae..000000000 --- a/src/bindings/compat/Makefile.am +++ /dev/null @@ -1,9 +0,0 @@ -AM_CPPFLAGS = \ - -D__BUILDING_CVC4BINDINGSLIB \ - -I@builddir@/../.. -I@srcdir@/../../include -I@srcdir@/../.. -AM_CXXFLAGS = -Wall - -if CVC4_BUILD_LIBCOMPAT -SUBDIRS = c java -endif - diff --git a/src/bindings/compat/c/Makefile b/src/bindings/compat/c/Makefile deleted file mode 100644 index f7b224652..000000000 --- a/src/bindings/compat/c/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -topdir = ../../../.. -srcdir = src/bindings/compat/c - -include $(topdir)/Makefile.subdir diff --git a/src/bindings/compat/c/Makefile.am b/src/bindings/compat/c/Makefile.am deleted file mode 100644 index 4ec4626c6..000000000 --- a/src/bindings/compat/c/Makefile.am +++ /dev/null @@ -1,36 +0,0 @@ -# LIBCVC4BINDINGS_VERSION (-version-info) is in the form current:revision:age -# -# current - -# increment if interfaces have been added, removed or changed -# revision - -# increment if source code has changed -# set to zero if current is incremented -# age - -# increment if interfaces have been added -# set to zero if interfaces have been removed -# or changed -# -LIBCVC4BINDINGS_VERSION = @CVC4_BINDINGS_LIBRARY_VERSION@ - -AM_CPPFLAGS = \ - -D__BUILDING_CVC4BINDINGSLIB \ - -I@builddir@/../../.. -I@srcdir@/../../../include -I@srcdir@/../../.. -AM_CXXFLAGS = -Wall -Wno-return-type - -lib_LTLIBRARIES = - -if CVC4_LANGUAGE_BINDING_C - -lib_LTLIBRARIES += libcvc4bindings_c_compat.la -libcvc4bindings_c_compat_la_LDFLAGS = \ - -version-info $(LIBCVC4BINDINGS_VERSION) -libcvc4bindings_c_compat_la_LIBADD = \ - @builddir@/../../../compat/libcvc4compat.la \ - @builddir@/../../../libcvc4.la - -endif - -libcvc4bindings_c_compat_la_SOURCES = \ - c_interface_defs.h \ - c_interface.h \ - c_interface.cpp diff --git a/src/bindings/compat/c/c_interface.cpp b/src/bindings/compat/c/c_interface.cpp deleted file mode 100644 index 8219d5169..000000000 --- a/src/bindings/compat/c/c_interface.cpp +++ /dev/null @@ -1,2881 +0,0 @@ -/*****************************************************************************/ -/*! - * \file c_interface.cpp - * - * Authors: Clark Barrett - * Cristian Cadar - * - * Created: Thu Jun 5 10:34:02 2003 - * - * <hr> - * - * License to use, copy, modify, sell and/or distribute this software - * and its documentation for any purpose is hereby granted without - * royalty, subject to the terms and conditions defined in the \ref - * LICENSE file provided with this distribution. - * - * <hr> - * - */ -/*****************************************************************************/ - - -#include <strings.h> -#include "bindings/compat/c/c_interface_defs.h" -#include "compat/cvc3_compat.h" -//#include "vc.h" -//#include "command_line_flags.h" -//#include "parser.h" -//#include "vc_cmd.h" -//#include "theory_bitvector.h" -//#include "fdstream.h" -#include <string> -#include <cassert> -#include <cerrno> -#include <unistd.h> - -#ifdef CVC4_DEBUG -# define DebugAssert(cond, str) assert(cond) -# define IF_DEBUG(x) x -#else -# define DebugAssert(...) -# define IF_DEBUG(x) -#endif - -using namespace std; - - -// ------------------------------------------------------------------------- -// Debugging -// ------------------------------------------------------------------------- - -// + will mean OK -// - will mean error -int c_interface_error_flag = 1; -const int error_int = -100; -const char* c_interface_error_message = "An Exception Occured: System in a compromised state."; -string c_interface_error_string; -// Used to return char* values. Note that the value is only good until -// the next call to a function returning char* -static string tmpString; - -void signal_error(const char* message,int flag_val,CVC3::Exception ex){ - ostringstream ss; - ss << c_interface_error_message << endl; - ss << "Message: " << message << endl; - ss << "Exception: " << ex << endl; - IF_DEBUG(cerr << ss.str();) - c_interface_error_string = ss.str(); - c_interface_error_flag = flag_val; -} - -extern "C" int vc_get_error_status(){ - return c_interface_error_flag; -} - -extern "C" void vc_reset_error_status(){ - c_interface_error_flag = 1; - c_interface_error_string = ""; -} - -extern "C" char* vc_get_error_string() { - return (char*) (c_interface_error_string.c_str()); -} - - -// Private to implementation - -class CInterface { -public: - static CVC3::Type fromType(Type t); - static Type toType(const CVC3::Type& t); - static CVC3::Expr fromExpr(Expr e); - static Expr toExpr(const CVC3::Expr& e); - static CVC3::Op fromOp(Op op); - static Op toOp(VC vc, const CVC3::Op& op); - // static CVC3::Proof fromProof(Proof proof); - // static Proof toProof(const CVC3::Proof& proof); - static void deleteExpr(Expr e); - static void deleteType(Type t); - static void deleteVector(Expr* vec); -}; - - -CVC3::Type CInterface::fromType(Type t) -{ - return *(CVC3::Type*)t; -} - - -Type CInterface::toType(const CVC3::Type& t) -{ - if(t.isNull()) return NULL; - return Type(new CVC3::Type(t)); -} - - -CVC3::Expr CInterface::fromExpr(Expr e) -{ - return *(CVC3::Expr*)e; -} - - -Expr CInterface::toExpr(const CVC3::Expr& e) -{ - if(e.isNull()) return NULL; - return Expr(new CVC3::Expr(e)); -} - - -CVC3::Op CInterface::fromOp(Op op) -{ - return *(CVC3::Op*)op; -} - - -Op CInterface::toOp(VC vc, const CVC3::Op& op) -{ - if (op.isNull()) return NULL; - return Op(new CVC3::Op(op)); -} - - -// CVC3::Proof CInterface::fromProof(Proof proof) -// { -// return CVC3::Proof(fromExpr(proof)); -// } - - -// Proof CInterface::toProof(const CVC3::Proof& proof) -// { -// return toExpr(proof.getExpr()); -// } - - -void CInterface::deleteExpr(Expr e) -{ - if (e) delete (CVC3::Expr*)e; -} - -void CInterface::deleteType(Type t) -{ - if (t) delete (CVC3::Type*)t; -} - -void CInterface::deleteVector(Expr* e) -{ - if (e) delete [] e; -} - - -static CVC3::Type fromType(Type t) { return CInterface::fromType(t); } -static Type toType(const CVC3::Type& t) { return CInterface::toType(t); } -static CVC3::Expr fromExpr(Expr e) { return CInterface::fromExpr(e); } -static Expr toExpr(const CVC3::Expr& e) { return CInterface::toExpr(e); } -static CVC3::Op fromOp(Op op) { return CInterface::fromOp(op); } -static Op toOp(VC vc, const CVC3::Op& op) { return CInterface::toOp(vc, op); } -// static CVC3::Proof fromProof(Proof proof) { return CInterface::fromProof(proof); } -// static Proof toProof(const CVC3::Proof& proof) { return CInterface::toProof(proof); } - - -static char *val_to_binary_str(unsigned nbits, unsigned long val) { - char s[65]; - - assert(nbits < sizeof s); - strcpy(s, ""); - while(nbits-- > 0) { - if((val >> nbits) & 1) - strcat(s, "1"); - else - strcat(s, "0"); - } - return strdup(s); -} - - -/////////////////////////////////////////////////////////////////////////// -// Begin implementation of C interface // -/////////////////////////////////////////////////////////////////////////// - - -extern "C" VC vc_createValidityChecker(Flags flags) { - try{ - CVC3::CLFlags f = (flags==NULL)? CVC3::ValidityChecker::createFlags() - : *((CVC3::CLFlags*)flags); - return (VC)CVC3::ValidityChecker::create(f); - } catch (CVC3::Exception ex){ - signal_error("vc_createValidityChecker",error_int,ex); - return NULL; - } -} - - -extern "C" Flags vc_createFlags() { - try{ - return new CVC3::CLFlags(CVC3::ValidityChecker::createFlags()); - } catch (CVC3::Exception ex){ - signal_error("vc_createFlags",error_int,ex); - return NULL; - } -} - - -extern "C" void vc_destroyValidityChecker(VC vc) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - delete cvc; - } catch (CVC3::Exception ex){ - signal_error("vc_destroyVelidityChecker",error_int,ex); - } -} - - -extern "C" void vc_deleteFlags(Flags flags) { - try{ - delete ((CVC3::CLFlags*)flags); - } catch (CVC3::Exception ex){ - signal_error("vc_deleteFlags",error_int,ex); - } -} - - -extern "C" void vc_deleteExpr(Expr e) -{ - try{ - CInterface::deleteExpr(e); - } catch (CVC3::Exception ex){ - signal_error("vc_deleteExpr",error_int,ex); - } -} - - -extern "C" void vc_deleteType(Type t) -{ - try{ - CInterface::deleteType(t); - } catch (CVC3::Exception ex){ - signal_error("vc_deleteType",error_int,ex); - } -} - - -extern "C" void vc_deleteOp(Op op) -{ - vc_deleteExpr(op); -} - - -extern "C" void vc_deleteVector(Expr* e) -{ - try{ - CInterface::deleteVector(e); - } catch (CVC3::Exception ex){ - signal_error("vc_deleteVector",error_int,ex); - } -} - - -extern "C" void vc_deleteTypeVector(Type* e) -{ - vc_deleteVector(e); -} - - -extern "C" void vc_setBoolFlag(Flags flags, char* name, int val) { - try{ - CVC3::CLFlags& f = *((CVC3::CLFlags*)flags); - f.setFlag(name, (val!=0)); - } catch (CVC3::Exception ex){ - signal_error("vc_setBoolFlag",error_int,ex); - } -} - - -extern "C" void vc_setIntFlag(Flags flags, char* name, int val) { - try{ - CVC3::CLFlags& f = *((CVC3::CLFlags*)flags); - f.setFlag(name, val); - } catch (CVC3::Exception ex){ - signal_error("vc_setIntFlag",error_int,ex); - } -} - - -extern "C" void vc_setStringFlag(Flags flags, char* name, char* val) { - try{ - CVC3::CLFlags& f = *((CVC3::CLFlags*)flags); - f.setFlag(name, string(val)); - } catch (CVC3::Exception ex){ - signal_error("vc_setStringFlag",error_int,ex); - } -} - - -extern "C" void vc_setStrSeqFlag(Flags flags, char* name, char* str, int val) { - try{ - CVC3::CLFlags& f = *((CVC3::CLFlags*)flags); - f.setFlag(name, pair<string,bool>(string(str), val!=0)); - } catch (CVC3::Exception ex){ - signal_error("vc_setStrSeqFlag",error_int,ex); - } -} - - -extern "C" Type vc_boolType(VC vc) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toType(cvc->boolType()); - } catch (CVC3::Exception ex){ - signal_error("vc_boolType",error_int,ex); - return NULL; - } -} - - -extern "C" Type vc_realType(VC vc) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toType(cvc->realType()); - }catch (CVC3::Exception ex){ - signal_error("vc_realType",error_int,ex); - return NULL; - } -} - - -extern "C" Type vc_intType(VC vc) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toType(cvc->intType()); - }catch (CVC3::Exception ex){ - signal_error("vc_intType",error_int,ex); - return NULL; - } -} - - -extern "C" Type vc_subRangeType(VC vc, int lowerEnd, int upperEnd) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toType(cvc->subrangeType(cvc->ratExpr(lowerEnd), - cvc->ratExpr(upperEnd))); - }catch (CVC3::Exception &ex){ - signal_error("vc_subRangeType",error_int,ex); - return NULL; - } -} - - -extern "C" Type vc_subtypeType(VC vc, Expr pred, Expr witness) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toType(cvc->subtypeType(fromExpr(pred), fromExpr(witness))); - }catch (CVC3::Exception &ex){ - signal_error("vc_subtypeType",error_int,ex); - return NULL; - } -} - - -extern "C" Type vc_tupleType2(VC vc, Type type0, Type type1) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toType(cvc->tupleType(fromType(type0), fromType(type1))); - }catch (CVC3::Exception ex){ - signal_error("vc_tupleType2",error_int,ex); - return NULL; - } -} - - -extern "C" Type vc_tupleType3(VC vc, Type type0, Type type1, Type type2) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toType(cvc->tupleType(fromType(type0), fromType(type1), - fromType(type2))); - }catch (CVC3::Exception ex){ - signal_error("vc_tupleType3",error_int,ex); - return NULL; - } -} - - -extern "C" Type vc_tupleTypeN(VC vc, Type* types, int numTypes) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - vector<CVC3::Type> cvcTypes; - for (int i = 0; i < numTypes; ++i) { - cvcTypes.push_back(fromType(types[i])); - } - return toType(cvc->tupleType(cvcTypes)); - }catch(CVC3::Exception ex){ - signal_error("vc_tupleTypeN",error_int,ex); - return NULL; - } -} - - -extern "C" Type vc_recordType1(VC vc, char* field, Type type) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toType(cvc->recordType(field, fromType(type))); - }catch(CVC3::Exception ex){ - signal_error("vc_recordType1",error_int,ex); - return NULL; - } -} - - -extern "C" Type vc_recordType2(VC vc, char* field0, Type type0, - char* field1, Type type1) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toType(cvc->recordType(field0, fromType(type0), - field1, fromType(type1))); - }catch(CVC3::Exception ex){ - signal_error("vc_recordType2",error_int,ex); - return NULL; - } -} - - -extern "C" Type vc_recordType3(VC vc, char* field0, Type type0, - char* field1, Type type1, - char* field2, Type type2) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toType(cvc->recordType(field0, fromType(type0), - field1, fromType(type1), - field2, fromType(type2))); - }catch(CVC3::Exception ex){ - signal_error("vc_recordType3",error_int,ex); - return NULL; - } -} - - -extern "C" Type vc_recordTypeN(VC vc, char** fields, Type* types, - int numFields) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - vector<std::string> cvcFields; - vector<CVC3::Type> cvcTypes; - for (int i = 0; i < numFields; ++i) { - cvcFields.push_back(fields[i]); - cvcTypes.push_back(fromType(types[i])); - } - return toType(cvc->recordType(cvcFields, cvcTypes)); - }catch(CVC3::Exception ex){ - signal_error("vc_recordTypeN",error_int,ex); - return NULL; - } -} - - -extern "C" Type vc_dataType1(VC vc, char* name, char* constructor, int arity, - char** selectors, Expr* types) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - string cvcName(name); - string cvcConstructor(constructor); - vector<string> cvcSelectors; - vector<CVC3::Expr> cvcTypes; - for (int i = 0; i < arity; ++i) { - cvcSelectors.push_back(selectors[i]); - cvcTypes.push_back(fromExpr(types[i])); - } - return toType(cvc->dataType(cvcName, cvcConstructor, cvcSelectors, cvcTypes)); - }catch(CVC3::Exception ex){ - signal_error("vc_dataType1",error_int,ex); - return NULL; - } -} - - -extern "C" Type vc_dataTypeN(VC vc, char* name, int numCons, char** constructors, - int* arities, char*** selectors, Expr** types) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - string cvcName(name); - vector<string> cvcConstructors; - vector<vector<string> > cvcSelectors(numCons); - vector<vector<CVC3::Expr> > cvcTypes(numCons); - for (int i = 0; i < numCons; ++i) { - cvcConstructors.push_back(constructors[i]); - for (int j = 0; j < arities[i]; ++j) { - cvcSelectors[i].push_back(selectors[i][j]); - cvcTypes[i].push_back(fromExpr(types[i][j])); - } - } - return toType(cvc->dataType(cvcName, cvcConstructors, - cvcSelectors, cvcTypes)); - }catch(CVC3::Exception ex){ - signal_error("vc_dataTypeN",error_int,ex); - return NULL; - } -} - - -extern "C" Type* vc_dataTypeMN(VC vc, int numTypes, char** names, - int* numCons, char*** constructors, - int** arities, char**** selectors, - Expr*** types) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - vector<string> cvcNames; - vector<vector<string> > cvcConstructors(numTypes); - vector<vector<vector<string> > > cvcSelectors(numTypes); - vector<vector<vector<CVC3::Expr> > > cvcTypes(numTypes); - int i; - for (i = 0; i < numTypes; ++i) { - cvcNames.push_back(names[i]); - cvcSelectors[i].resize(numCons[i]); - cvcTypes[i].resize(numCons[i]); - for (int j = 0; i < numCons[i]; ++j) { - cvcConstructors[i].push_back(constructors[i][j]); - for (int k = 0; k < arities[i][j]; ++k) { - cvcSelectors[i][j].push_back(selectors[i][j][k]); - cvcTypes[i][j].push_back(fromExpr(types[i][j][k])); - } - } - } - vector<CVC3::Type> cvcReturnTypes; - cvc->dataType(cvcNames, cvcConstructors, - cvcSelectors, cvcTypes, cvcReturnTypes); - Type* returnTypes = new Type[numTypes]; - for (i = 0; i < numTypes; ++i) { - returnTypes[i] = toType(cvcReturnTypes[i]); - } - return returnTypes; - }catch(CVC3::Exception ex){ - signal_error("vc_dataTypeN",error_int,ex); - return NULL; - } -} - - -extern "C" Type vc_arrayType(VC vc, Type typeIndex, Type typeData) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toType(cvc->arrayType(fromType(typeIndex), fromType(typeData))); - }catch(CVC3::Exception ex){ - signal_error("vc_arrayType",error_int,ex); - return NULL; - } -} - - -extern "C" Type vc_bvType(VC vc, int n) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toType(cvc->bitvecType(n)); - }catch (CVC3::Exception ex){ - signal_error("vc_bvType",error_int,ex); - return NULL; - } -} - - -extern "C" Type vc_funType1(VC vc, Type typeDom, Type typeRan) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toType(cvc->funType(fromType(typeDom), fromType(typeRan))); - }catch(CVC3::Exception ex){ - signal_error("vc_funType1",error_int,ex); - return NULL; - } -} - - -extern "C" Type vc_funType2(VC vc, Type a1, Type a2, Type typeRan) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - vector<CVC3::Type> args; - args.push_back(fromType(a1)); - args.push_back(fromType(a2)); - return toType(cvc->funType(args, fromType(typeRan))); - }catch(CVC3::Exception ex){ - signal_error("vc_funType2",error_int,ex); - return NULL; - } -} - - -extern "C" Type vc_funType3(VC vc, Type a1, Type a2, Type a3, Type typeRan) -{ - try { - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - vector<CVC3::Type> args; - args.push_back(fromType(a1)); - args.push_back(fromType(a2)); - args.push_back(fromType(a3)); - return toType(cvc->funType(args, fromType(typeRan))); - } catch(CVC3::Exception ex){ - signal_error("vc_funType3",error_int,ex); - return NULL; - } -} - - -extern "C" Type vc_funTypeN(VC vc, Type* a, Type typeRan, int numArgs) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - vector<CVC3::Type> args; - for(int i=0; i<numArgs; ++i) - args.push_back(fromType(*(a+i))); - return toType(cvc->funType(args, fromType(typeRan))); - }catch(CVC3::Exception ex){ - signal_error("vc_funTypeN",error_int,ex); - return NULL; - } -} - - -extern "C" Type vc_createType(VC vc, char* typeName) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toType(cvc->createType(typeName)); - }catch(CVC3::Exception ex){ - signal_error("vc_createType",error_int,ex); - return NULL; - } -} - - -extern "C" Type vc_lookupType(VC vc, char* typeName) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toType(cvc->lookupType(typeName)); - }catch(CVC3::Exception ex){ - signal_error("vc_lookupType",error_int,ex); - return NULL; - } -} - - -///////////////////////////////////////////////////////////////////////////// -// Expr manipulation methods // -///////////////////////////////////////////////////////////////////////////// - - -extern "C" ExprManager vc_getEM(VC vc) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return (ExprManager)cvc->getEM(); - }catch(CVC3::Exception ex){ - signal_error("vc_getEM",error_int,ex); - return NULL; - } -} - - -extern "C" Expr vc_varExpr(VC vc, char* name, Type type) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toExpr(cvc->varExpr(name, fromType(type))); - }catch(CVC3::Exception ex){ - signal_error("vc_varExpr",error_int,ex); - return NULL; - } -} - - -extern "C" Expr vc_varExprDef(VC vc, char* name, Type type, Expr def) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toExpr(cvc->varExpr(name, fromType(type), fromExpr(def))); - }catch(CVC3::Exception ex){ - signal_error("vc_varExprDef",error_int,ex); - return NULL; - } -} - - -extern "C" Expr vc_lookupVar(VC vc, char* name, Type* type) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - CVC3::Type t; - Expr e = toExpr(cvc->lookupVar(name, &t)); - *type = toType(t); - return e; - }catch(CVC3::Exception ex){ - signal_error("vc_lookupVar",error_int,ex); - return NULL; - } -} - - -extern "C" Type vc_getType(VC vc, Expr e) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toType(cvc->getType(fromExpr(e))); - }catch(CVC3::Exception ex){ - signal_error("vc_getType",error_int,ex); - return NULL; - } -} - - -extern "C" Type vc_getBaseType(VC vc, Expr e) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toType(cvc->getBaseType(fromExpr(e))); - }catch(CVC3::Exception ex){ - signal_error("vc_getBaseType",error_int,ex); - return NULL; - } -} - - -extern "C" Type vc_getBaseTypeOfType(VC vc, Type t) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toType(cvc->getBaseType(fromType(t))); - }catch(CVC3::Exception ex){ - signal_error("vc_getBaseTypeOfType",error_int,ex); - return NULL; - } -} - - -extern "C" Expr vc_getTypePred(VC vc, Type t, Expr e) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toExpr(cvc->getTypePred(fromType(t), fromExpr(e))); - }catch(CVC3::Exception ex){ - signal_error("vc_getTypePred",error_int,ex); - return NULL; - } -} - - -extern "C" Expr vc_stringExpr(VC vc, char* str) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toExpr(cvc->stringExpr(str)); - }catch(CVC3::Exception ex){ - signal_error("vc_stringExpr",error_int,ex); - return NULL; - } -} - - -extern "C" Expr vc_idExpr(VC vc, char* str) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toExpr(cvc->idExpr(str)); - }catch(CVC3::Exception ex){ - signal_error("vc_idExpr",error_int,ex); - return NULL; - } -} - - -extern "C" Expr vc_listExpr(VC vc, int numKids, Expr* kids) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - vector<CVC3::Expr> args; - for(int i=0; i<numKids; ++i) - args.push_back(fromExpr(kids[i])); - return toExpr(cvc->listExpr(args)); - }catch(CVC3::Exception ex){ - signal_error("vc_listExpr",error_int,ex); - return NULL; - } -} - - -extern "C" void vc_printExpr(VC vc, Expr e) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - cvc->printExpr(fromExpr(e)); - }catch(CVC3::Exception ex){ - signal_error("vc_printExpr",error_int,ex); - } -} - - -extern "C" char* vc_printExprString(VC vc, Expr e) -{ - try{ - ostringstream os; - string aa; - char* result; - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - cvc->printExpr(fromExpr(e), os); - os.flush(); - aa=os.str(); - result=new char[aa.length()+1]; - strcpy(result,aa.c_str()); - return result; - } catch(CVC3::Exception ex) { - signal_error("vc_printExprString",error_int,ex); - return NULL; - } -} - - -extern "C" void vc_deleteString(char* str) -{ - if (str) delete [] str; -} - - -extern "C" void vc_printExprFile(VC vc, Expr e, int fd) -{ - try { - stringstream ss; - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - cvc->printExpr(fromExpr(e), ss); - string s = ss.str(); - ssize_t e = write(fd, s.c_str(), s.size()); - if(e < 0) { - IF_DEBUG(cerr << "write() failed, errno == " << errno << endl;) - c_interface_error_string = "write() failed"; - c_interface_error_flag = errno; - } - } catch(CVC3::Exception ex) { - signal_error("vc_printExpr",error_int,ex); - } -} - - -extern "C" Expr vc_importExpr(VC vc, Expr e) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toExpr(cvc->importExpr(fromExpr(e))); - }catch(CVC3::Exception ex){ - signal_error("vc_importExpr",error_int,ex); - return NULL; - } -} - - -extern "C" Type vc_importType(VC vc, Type e) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toType(cvc->importType(fromType(e))); - }catch(CVC3::Exception ex){ - signal_error("vc_importType",error_int,ex); - return NULL; - } -} - - -extern "C" Expr vc_eqExpr(VC vc, Expr child0, Expr child1) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toExpr(cvc->eqExpr(fromExpr(child0), fromExpr(child1))); - }catch(CVC3::Exception ex){ - signal_error("vc_eqExpr",error_int,ex); - return NULL; - } -} - -extern "C" Expr vc_distinctExpr(VC vc, Expr* children, int numChildren) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - vector<CVC3::Expr> cvcExprs; - for (int i = 0; i < numChildren; ++i) { - cvcExprs.push_back(fromExpr(children[i])); - } - return toExpr(cvc->distinctExpr(cvcExprs)); - }catch(CVC3::Exception ex){ - signal_error("vc_distinctExpr",error_int,ex); - return NULL; - } -} - - -extern "C" Expr vc_trueExpr(VC vc) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toExpr(cvc->trueExpr()); - }catch(CVC3::Exception ex){ - signal_error("vc_trueExpr",error_int,ex); - return NULL; - } -} - - -extern "C" Expr vc_falseExpr(VC vc) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toExpr(cvc->falseExpr()); - }catch(CVC3::Exception ex){ - signal_error("vc_falseExpr",error_int,ex); - return NULL; - } -} - - -extern "C" Expr vc_notExpr(VC vc, Expr child) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toExpr(cvc->notExpr(fromExpr(child))); - }catch(CVC3::Exception ex){ - signal_error("vc_notExpr",error_int,ex); - return NULL; - } -} - - -extern "C" Expr vc_andExpr(VC vc, Expr left, Expr right) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toExpr(cvc->andExpr(fromExpr(left), fromExpr(right))); - }catch(CVC3::Exception ex){ - signal_error("vc_andExpr",error_int,ex); - return NULL; - } -} - - -extern "C" Expr vc_andExprN(VC vc, Expr* children, int numChildren) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - vector<CVC3::Expr> cvcExprs; - for (int i = 0; i < numChildren; ++i) { - cvcExprs.push_back(fromExpr(children[i])); - } - return toExpr(cvc->andExpr(cvcExprs)); - }catch(CVC3::Exception ex){ - signal_error("vc_andExprN",error_int,ex); - return NULL; - } -} - - -extern "C" Expr vc_orExpr(VC vc, Expr left, Expr right) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toExpr(cvc->orExpr(fromExpr(left), fromExpr(right))); - }catch(CVC3::Exception ex){ - signal_error("vc_orExpr",error_int,ex); - return NULL; - } -} - - -extern "C" Expr vc_orExprN(VC vc, Expr* children, int numChildren) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - vector<CVC3::Expr> cvcExprs; - for (int i = 0; i < numChildren; ++i) { - cvcExprs.push_back(fromExpr(children[i])); - } - return toExpr(cvc->orExpr(cvcExprs)); - }catch(CVC3::Exception ex){ - signal_error("vc_orExprN",error_int,ex); - return NULL; - } -} - - -extern "C" Expr vc_impliesExpr(VC vc, Expr hyp, Expr conc) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toExpr(cvc->impliesExpr(fromExpr(hyp), fromExpr(conc))); - }catch(CVC3::Exception ex){ - signal_error("vc_impliesExpr",error_int,ex); - return NULL; - } -} - - -extern "C" Expr vc_iffExpr(VC vc, Expr left, Expr right) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toExpr(cvc->iffExpr(fromExpr(left), fromExpr(right))); - }catch(CVC3::Exception ex){ - signal_error("vc_iffExpr",error_int,ex); - return NULL; - } -} - - -extern "C" Expr vc_iteExpr(VC vc, Expr ifpart, Expr thenpart, Expr elsepart) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toExpr(cvc->iteExpr(fromExpr(ifpart), fromExpr(thenpart), - fromExpr(elsepart))); - }catch(CVC3::Exception ex){ - signal_error("vc_iteExpr",error_int,ex); - return NULL; - } -} - - -extern "C" Expr vc_substExpr(VC vc, Expr e, - Expr* oldTerms, int numOldTerms, - Expr* newTerms, int numNewTerms) -{ - try{ - vector<CVC3::Expr> oldExprs, newExprs; - CVC3::Expr ex = fromExpr(e); - //CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - for (int i = 0; i < numOldTerms; ++i) { - oldExprs.push_back(fromExpr(oldTerms[i])); - } - for (int i = 0; i < numNewTerms; ++i) { - newExprs.push_back(fromExpr(newTerms[i])); - } - return toExpr(ex.substExpr(oldExprs, newExprs)); - }catch(CVC3::Exception ex){ - signal_error("vc_substExpr",error_int,ex); - return NULL; - } -} - - - -extern "C" Op vc_createOp(VC vc, char* name, Type type) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toOp(vc, cvc->createOp(name, fromType(type))); - }catch(CVC3::Exception ex){ - signal_error("vc_createOp",error_int,ex); - return NULL; - } -} - - -extern "C" Op vc_createOpDef(VC vc, char* name, Type type, Expr def) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toOp(vc, cvc->createOp(name, fromType(type), fromExpr(def))); - }catch(CVC3::Exception ex){ - signal_error("vc_createOpDef",error_int,ex); - return NULL; - } -} - - -extern "C" Op vc_lookupOp(VC vc, char* name, Type* type) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - CVC3::Type t; - Op op = toOp(vc, cvc->lookupOp(name, &t)); - *type = toType(t); - return op; - } catch(CVC3::Exception ex){ - signal_error("vc_lookupOp",error_int,ex); - return NULL; - } -} - - -extern "C" Expr vc_funExpr1(VC vc, Op op, Expr child) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toExpr(cvc->funExpr(fromOp(op), fromExpr(child))); - }catch(CVC3::Exception ex){ - signal_error("vc_funExpr1",error_int,ex); - return NULL; - } -} - - -extern "C" Expr vc_funExpr2(VC vc, Op op, Expr left, Expr right) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toExpr(cvc->funExpr(fromOp(op), fromExpr(left), fromExpr(right))); - }catch(CVC3::Exception ex){ - signal_error("vc_funExpr2",error_int,ex); - return NULL; - } -} - - -extern "C" Expr vc_funExpr3(VC vc, Op op, Expr child0, Expr child1, - Expr child2) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toExpr(cvc->funExpr(fromOp(op), fromExpr(child0), fromExpr(child1), - fromExpr(child2))); - }catch(CVC3::Exception ex){ - signal_error("vc_funExpr3",error_int,ex); - return NULL; - } -} - - -extern "C" Expr vc_funExprN(VC vc, Op op, Expr* children, int numChildren) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - vector<CVC3::Expr> cvcExprs; - for (int i = 0; i < numChildren; ++i) { - cvcExprs.push_back(fromExpr(children[i])); - } - return toExpr(cvc->funExpr(fromOp(op), cvcExprs)); - }catch(CVC3::Exception ex){ - signal_error("vc_funExprN",error_int,ex); - return NULL; - } -} - - -extern "C" Expr vc_ratExpr(VC vc, int n, int d) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toExpr(cvc->ratExpr(n, d)); - }catch(CVC3::Exception ex){ - signal_error("vc_ratExpr",error_int,ex); - return NULL; - } -} - - -extern "C" Expr vc_ratExprFromStr(VC vc, char* n, char* d, int base) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toExpr(cvc->ratExpr(n, d, base)); - }catch(CVC3::Exception ex){ - signal_error("vc_ratExprFromStr",error_int,ex); - return NULL; - } -} - - -extern "C" Expr vc_ratExprFromStr1(VC vc, char* n, int base) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toExpr(cvc->ratExpr(n, base)); - }catch(CVC3::Exception ex){ - signal_error("vc_ratExprFromStr1",error_int,ex); - return NULL; - } -} - - -extern "C" Expr vc_uminusExpr(VC vc, Expr child) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toExpr(cvc->uminusExpr(fromExpr(child))); - }catch(CVC3::Exception ex){ - signal_error("vc_uminusExpr",error_int,ex); - return NULL; - } -} - - -extern "C" Expr vc_plusExpr(VC vc, Expr left, Expr right) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toExpr(cvc->plusExpr(fromExpr(left), fromExpr(right))); - }catch(CVC3::Exception ex){ - signal_error("vc_plusExpr",error_int,ex); - return NULL; - } -} - -extern "C" Expr vc_plusExprN(VC vc, Expr* children, int numChildren) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - vector<CVC3::Expr> cvcExprs; - for (int i = 0; i < numChildren; ++i) { - cvcExprs.push_back(fromExpr(children[i])); - } - return toExpr(cvc->plusExpr(cvcExprs)); - }catch(CVC3::Exception ex){ - signal_error("vc_plusExprN",error_int,ex); - return NULL; - } -} - - -extern "C" Expr vc_minusExpr(VC vc, Expr left, Expr right) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toExpr(cvc->minusExpr(fromExpr(left), fromExpr(right))); - }catch(CVC3::Exception ex){ - signal_error("vc_minusExpr",error_int,ex); - return NULL; - } -} - - -extern "C" Expr vc_multExpr(VC vc, Expr left, Expr right) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toExpr(cvc->multExpr(fromExpr(left), fromExpr(right))); - }catch(CVC3::Exception ex){ - signal_error("vc_multExpr",error_int,ex); - return NULL; - } -} - - -extern "C" Expr vc_powExpr(VC vc, Expr pow, Expr base) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toExpr(cvc->powExpr(fromExpr(pow), fromExpr(base))); - }catch(CVC3::Exception ex){ - signal_error("vc_powExpr",error_int,ex); - return NULL; - } -} - - -extern "C" Expr vc_divideExpr(VC vc, Expr numerator, Expr denominator) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toExpr(cvc->divideExpr(fromExpr(numerator), fromExpr(denominator))); - }catch(CVC3::Exception ex){ - signal_error("vc_divideExpr",error_int,ex); - return NULL; - } -} - - -extern "C" Expr vc_ltExpr(VC vc, Expr left, Expr right) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toExpr(cvc->ltExpr(fromExpr(left), fromExpr(right))); - }catch(CVC3::Exception ex){ - signal_error("vc_ltExpr",error_int,ex); - return NULL; - } -} - - -extern "C" Expr vc_leExpr(VC vc, Expr left, Expr right) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toExpr(cvc->leExpr(fromExpr(left), fromExpr(right))); - }catch(CVC3::Exception ex){ - signal_error("vc_leExpr",error_int,ex); - return NULL; - } -} - - -extern "C" Expr vc_gtExpr(VC vc, Expr left, Expr right) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toExpr(cvc->gtExpr(fromExpr(left), fromExpr(right))); - }catch(CVC3::Exception ex){ - signal_error("vc_gtExpr",error_int,ex); - return NULL; - } -} - - -extern "C" Expr vc_geExpr(VC vc, Expr left, Expr right) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toExpr(cvc->geExpr(fromExpr(left), fromExpr(right))); - }catch(CVC3::Exception ex){ - signal_error("vc_geExpr",error_int,ex); - return NULL; - } -} - - -extern "C" Expr vc_recordExpr1(VC vc, char* field, Expr expr) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toExpr(cvc->recordExpr(field, fromExpr(expr))); - }catch(CVC3::Exception ex){ - signal_error("vc_recordExpr1",error_int,ex); - return NULL; - } -} - - -extern "C" Expr vc_recordExpr2(VC vc, char* field0, Expr expr0, - char* field1, Expr expr1) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toExpr(cvc->recordExpr(field0, fromExpr(expr0), - field1, fromExpr(expr1))); - }catch(CVC3::Exception ex){ - signal_error("vc_recordExpr2",error_int,ex); - return NULL; - } -} - - -extern "C" Expr vc_recordExpr3(VC vc, char* field0, Expr expr0, - char* field1, Expr expr1, - char* field2, Expr expr2) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toExpr(cvc->recordExpr(field0, fromExpr(expr0), - field1, fromExpr(expr1), - field2, fromExpr(expr2))); - }catch(CVC3::Exception ex){ - signal_error("vc_recordExpr3",error_int,ex); - return NULL; - } -} - - -extern "C" Expr vc_recordExprN(VC vc, char** fields, Expr* exprs, - int numFields) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - vector<std::string> cvcFields; - vector<CVC3::Expr> cvcExprs; - for (int i = 0; i < numFields; ++i) { - cvcFields.push_back(fields[i]); - cvcExprs.push_back(fromExpr(exprs[i])); - } - return toExpr(cvc->recordExpr(cvcFields, cvcExprs)); - }catch(CVC3::Exception ex){ - signal_error("vc_recordExprN",error_int,ex); - return NULL; - } -} - - -extern "C" Expr vc_recSelectExpr(VC vc, Expr record, char* field) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toExpr(cvc->recSelectExpr(fromExpr(record), field)); - }catch(CVC3::Exception ex){ - signal_error("vc_recSelectExpr",error_int,ex); - return NULL; - } -} - - -extern "C" Expr vc_recUpdateExpr(VC vc, Expr record, char* field, - Expr newValue) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toExpr(cvc->recUpdateExpr(fromExpr(record), field, - fromExpr(newValue))); - }catch(CVC3::Exception ex){ - signal_error("vc_recUpdateExpr",error_int,ex); - return NULL; - } -} - - -extern "C" Expr vc_readExpr(VC vc, Expr array, Expr index) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toExpr(cvc->readExpr(fromExpr(array), fromExpr(index))); - }catch(CVC3::Exception ex){ - signal_error("vc_readExpr",error_int,ex); - return NULL; - } -} - - -extern "C" Expr vc_writeExpr(VC vc, Expr array, Expr index, Expr newValue) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toExpr(cvc->writeExpr(fromExpr(array), fromExpr(index), - fromExpr(newValue))); - }catch(CVC3::Exception ex){ - signal_error("vc_writeExpr",error_int,ex); - return NULL; - } -} - - -extern "C" Type vc_bv32Type(VC vc) -{ - return vc_bvType(vc, 32); -} - - -extern "C" Expr vc_bvConstExprFromStr(VC vc, char* binary_repr) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toExpr(cvc->parseExpr(cvc->listExpr("_BVCONST", cvc->stringExpr(binary_repr)))); - }catch(CVC3::Exception ex){ - signal_error("vc_bvConstExpr",error_int, ex); - return NULL; - } -} - - -extern "C" Expr vc_bvConstExprFromInt(VC vc, int n_bits, unsigned int value) -{ - char* s = val_to_binary_str(n_bits, value); - return vc_bvConstExprFromStr(vc, s); -} - - -extern "C" Expr vc_bv32ConstExprFromInt(VC vc, unsigned int value) -{ - return vc_bvConstExprFromInt(vc, 32, value); -} - - -extern "C" Expr vc_bvConstExprFromLL(VC vc, int n_bits, unsigned long value) -{ - char* s = val_to_binary_str(n_bits, value); - return vc_bvConstExprFromStr(vc, s); -} - - -extern "C" Expr vc_bvConcatExpr(VC vc, Expr left, Expr right) { - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toExpr(cvc->newConcatExpr(fromExpr(left), fromExpr(right))); - }catch(CVC3::Exception &ex){ - signal_error("vc_bvConcatExpr",error_int,ex); - return NULL; - } -} - - -extern "C" Expr vc_bvConcatExprN(VC vc, Expr* children, int numChildren) { - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - vector<CVC3::Expr> cvcExprs; - for (int i = 0; i < numChildren; ++i) { - cvcExprs.push_back(fromExpr(children[i])); - } - return toExpr(cvc->newConcatExpr(cvcExprs)); - }catch(CVC3::Exception &ex){ - signal_error("vc_concatExprN",error_int,ex); - return NULL; - } -} - - -extern "C" Expr vc_bvExtract(VC vc, Expr child, int high_bit_no, int low_bit_no) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toExpr(cvc->newBVExtractExpr(fromExpr(child), high_bit_no, low_bit_no)); - }catch(CVC3::Exception ex){ - signal_error("vc_bvExtract",error_int,ex); - return NULL; - } -} - - -extern "C" Expr vc_bvBoolExtract(VC vc, Expr child, int bit_no) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - CVC3::Expr lExpr = cvc->listExpr("_BOOLEXTRACT", fromExpr(child), cvc->ratExpr(bit_no)); - return toExpr(cvc->parseExpr(lExpr)); - - }catch(CVC3::Exception ex){ - signal_error("vc_bvBoolExtract",error_int,ex); - return NULL; - } -} - - -extern "C" Expr vc_bvNotExpr(VC vc, Expr child) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toExpr(cvc->newBVNegExpr(fromExpr(child))); - }catch(CVC3::Exception ex){ - signal_error("vc_bvNotExpr",error_int,ex); - return NULL; - } -} - - -extern "C" Expr vc_bvAndExpr(VC vc, Expr left, Expr right) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toExpr(cvc->newBVAndExpr(fromExpr(left), fromExpr(right))); - }catch(CVC3::Exception ex){ - signal_error("vc_bvAndExpr",error_int,ex); - return NULL; - } -} - - -extern "C" Expr vc_bvOrExpr(VC vc, Expr left, Expr right) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toExpr(cvc->newBVOrExpr(fromExpr(left), fromExpr(right))); - }catch(CVC3::Exception ex){ - signal_error("vc_bvOrExpr",error_int,ex); - return NULL; - } -} - - -extern "C" Expr vc_bvXorExpr(VC vc, Expr left, Expr right) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toExpr(cvc->newBVXorExpr(fromExpr(left), fromExpr(right))); - }catch(CVC3::Exception ex){ - signal_error("vc_bvXorExpr",error_int,ex); - return NULL; - } -} - - -extern "C" Expr vc_bvLtExpr(VC vc, Expr left, Expr right) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toExpr(cvc->newBVLTExpr(fromExpr(left), fromExpr(right))); - }catch(CVC3::Exception ex){ - signal_error("vc_bvLtExpr",error_int,ex); - return NULL; - } -} - - -extern "C" Expr vc_bvLeExpr(VC vc, Expr left, Expr right) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toExpr(cvc->newBVLEExpr(fromExpr(left), fromExpr(right))); - }catch(CVC3::Exception ex){ - signal_error("vc_bvLeExpr",error_int,ex); - return NULL; - } -} - - -extern "C" Expr vc_bvGtExpr(VC vc, Expr left, Expr right) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - CVC3::Expr lExpr = cvc->listExpr("_BVGT", fromExpr(left), fromExpr(right)); - return toExpr(cvc->parseExpr(lExpr)); - - }catch(CVC3::Exception ex){ - signal_error("vc_bvGtExpr",error_int,ex); - return NULL; - } -} - - -extern "C" Expr vc_bvGeExpr(VC vc, Expr left, Expr right) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - CVC3::Expr lExpr = cvc->listExpr("_BVGE", fromExpr(left), fromExpr(right)); - return toExpr(cvc->parseExpr(lExpr)); - - }catch(CVC3::Exception ex){ - signal_error("vc_bvGeExpr",error_int,ex); - return NULL; - } -} - - -extern "C" Expr vc_bvSLtExpr(VC vc, Expr left, Expr right) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toExpr(cvc->newBVSLTExpr(fromExpr(left), fromExpr(right))); - }catch(CVC3::Exception ex){ - signal_error("vc_bvSLtExpr",error_int,ex); - return NULL; - } -} - - -extern "C" Expr vc_bvSLeExpr(VC vc, Expr left, Expr right) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toExpr(cvc->newBVSLEExpr(fromExpr(left), fromExpr(right))); - }catch(CVC3::Exception ex){ - signal_error("vc_bvSLeExpr",error_int,ex); - return NULL; - } -} - - -extern "C" Expr vc_bvSGtExpr(VC vc, Expr left, Expr right) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - CVC3::Expr lExpr = cvc->listExpr("_BVSGT", fromExpr(left), fromExpr(right)); - return toExpr(cvc->parseExpr(lExpr)); - - }catch(CVC3::Exception ex){ - signal_error("vc_bvSGtExpr",error_int,ex); - return NULL; - } -} - - -extern "C" Expr vc_bvSGeExpr(VC vc, Expr left, Expr right) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - CVC3::Expr lExpr = cvc->listExpr("_BVSGE", fromExpr(left), fromExpr(right)); - return toExpr(cvc->parseExpr(lExpr)); - - }catch(CVC3::Exception ex){ - signal_error("vc_bvSGeExpr",error_int,ex); - return NULL; - } -} - - -extern "C" Expr vc_bvSignExtend(VC vc, Expr child, int nbits) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toExpr(cvc->newSXExpr(fromExpr(child), nbits)); - }catch(CVC3::Exception ex){ - signal_error("vc_bvSignExtend",error_int,ex); - return NULL; - } -} - - -extern "C" Expr vc_bvUMinusExpr(VC vc, Expr child) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toExpr(cvc->newBVUminusExpr(fromExpr(child))); - }catch(CVC3::Exception ex){ - signal_error("vc_bvUMinusExpr",error_int,ex); - return NULL; - } -} - - -extern "C" Expr vc_bvPlusExpr(VC vc, int n_bits, Expr left, Expr right) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - vector<CVC3::Expr> args; - args.push_back(fromExpr(left)); - args.push_back(fromExpr(right)); - return toExpr(cvc->newBVPlusExpr(n_bits, args)); - }catch(CVC3::Exception ex){ - signal_error("vc_bvPlusExpr",error_int,ex); - return NULL; - } -} - - -extern "C" Expr vc_bv32PlusExpr(VC vc, Expr left, Expr right) -{ - return vc_bvPlusExpr(vc, 32, left, right); -} - - -extern "C" Expr vc_bvMinusExpr(VC vc, int n_bits, Expr left, Expr right) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - CVC3::Expr lExpr = cvc->listExpr("_BVSUB", cvc->ratExpr(n_bits), fromExpr(left), fromExpr(right)); - return toExpr(cvc->parseExpr(lExpr)); - }catch(CVC3::Exception ex){ - signal_error("vc_bvMinusExpr",error_int,ex); - return NULL; - } -} - - -extern "C" Expr vc_bv32MinusExpr(VC vc, Expr left, Expr right) -{ - return vc_bvMinusExpr(vc, 32, left, right); -} - - -extern "C" Expr vc_bvMultExpr(VC vc, int n_bits, Expr left, Expr right) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toExpr(cvc->newBVMultExpr(n_bits, fromExpr(left), fromExpr(right))); - }catch(CVC3::Exception ex){ - signal_error("vc_bvMultExpr",error_int,ex); - return NULL; - } -} - - -extern "C" Expr vc_bv32MultExpr(VC vc, Expr left, Expr right) -{ - return vc_bvMultExpr(vc, 32, left, right); -} - - -extern "C" Expr vc_bvLeftShiftExpr(VC vc, int sh_amt, Expr child) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toExpr(cvc->newFixedLeftShiftExpr(fromExpr(child), sh_amt)); - }catch(CVC3::Exception ex){ - signal_error("vc_bvLeftShiftExpr",error_int,ex); - return NULL; - } -} - - -extern "C" Expr vc_bvRightShiftExpr(VC vc, int sh_amt, Expr child) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toExpr(cvc->newFixedRightShiftExpr(fromExpr(child), sh_amt)); - }catch(CVC3::Exception ex){ - signal_error("vc_bvRightShiftExpr",error_int,ex); - return NULL; - } -} - -extern "C" Expr vc_bvUDivExpr(VC vc, Expr left, Expr right) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toExpr(cvc->newBVUDivExpr(fromExpr(left), fromExpr(right))); - }catch(CVC3::Exception ex){ - signal_error("vc_bvUDivExpr",error_int,ex); - return NULL; - } -} - -extern "C" Expr vc_bvURemExpr(VC vc, Expr left, Expr right) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toExpr(cvc->newBVURemExpr(fromExpr(left), fromExpr(right))); - }catch(CVC3::Exception ex){ - signal_error("vc_bvURemExpr",error_int,ex); - return NULL; - } -} - -extern "C" Expr vc_bvSDivExpr(VC vc, Expr left, Expr right) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toExpr(cvc->newBVSDivExpr(fromExpr(left), fromExpr(right))); - }catch(CVC3::Exception ex){ - signal_error("vc_bvSDivExpr",error_int,ex); - return NULL; - } -} - -extern "C" Expr vc_bvSRemExpr(VC vc, Expr left, Expr right) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toExpr(cvc->newBVSRemExpr(fromExpr(left), fromExpr(right))); - }catch(CVC3::Exception ex){ - signal_error("vc_bvSRemExpr",error_int,ex); - return NULL; - } -} - -extern "C" Expr vc_bvSModExpr(VC vc, Expr left, Expr right) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toExpr(cvc->newBVSModExpr(fromExpr(left), fromExpr(right))); - }catch(CVC3::Exception ex){ - signal_error("vc_bvSModExpr",error_int,ex); - return NULL; - } -} - - -/* Same as vc_bvLeftShift only that the answer in 32 bits long */ -extern "C" Expr vc_bv32LeftShiftExpr(VC vc, int sh_amt, Expr child) { - return vc_bvExtract(vc, vc_bvLeftShiftExpr(vc, sh_amt, child), 31, 0); -} - - -/* Same as vc_bvRightShift only that the answer in 32 bits long */ -extern "C" Expr vc_bv32RightShiftExpr(VC vc, int sh_amt, Expr child) { - return vc_bvExtract(vc, vc_bvRightShiftExpr(vc, sh_amt, child), 31, 0); -} - -extern "C" Expr vc_bvVar32LeftShiftExpr(VC vc, Expr sh_amt, Expr child) { - try{ - Expr ifpart; - Expr thenpart; - Expr elsepart = vc_trueExpr(vc); - Expr ite = vc_trueExpr(vc); - - for(int count=32; count >= 0; count--){ - if(count != 32) { - ifpart = vc_eqExpr(vc, sh_amt, - vc_bvConstExprFromInt(vc, 32, count)); - thenpart = vc_bvExtract(vc, - vc_bvLeftShiftExpr(vc, count, child), - 31, 0); - - ite = vc_iteExpr(vc,ifpart,thenpart,elsepart); - elsepart = ite; - } else { - elsepart = vc_bvConstExprFromInt(vc,32, 0); - } - } - return ite; - }catch(CVC3::Exception ex){ - signal_error("vc_bvVar32LeftShiftExpr",error_int,ex); - return NULL; - } -} - - -extern "C" Expr vc_bvVar32DivByPowOfTwoExpr(VC vc, Expr child, Expr rhs) { - try{ - Expr ifpart; - Expr thenpart; - Expr elsepart = vc_trueExpr(vc); - Expr ite = vc_trueExpr(vc); - - for(int count=32; count >= 0; count--){ - if(count != 32) { - ifpart = vc_eqExpr(vc, rhs, - vc_bvConstExprFromInt(vc, 32, 1 << count)); - thenpart = vc_bvRightShiftExpr(vc, count, child); - ite = vc_iteExpr(vc,ifpart,thenpart,elsepart); - elsepart = ite; - } else { - elsepart = vc_bvConstExprFromInt(vc,32, 0); - } - } - return ite; - }catch(CVC3::Exception ex){ - signal_error("vc_bvVar32DivByPowOfTwoExpr",error_int,ex); - return NULL; - } -} - - -extern "C" Expr vc_bvVar32RightShiftExpr(VC vc, Expr sh_amt, Expr child) -{ - try{ - Expr ifpart; - Expr thenpart; - Expr elsepart = vc_trueExpr(vc); - Expr ite = vc_trueExpr(vc); - - for(int count=32; count >= 0; count--){ - if(count != 32) { - ifpart = vc_eqExpr(vc, sh_amt, - vc_bvConstExprFromInt(vc, 32, count)); - thenpart = vc_bvRightShiftExpr(vc, count, child); - ite = vc_iteExpr(vc,ifpart,thenpart,elsepart); - elsepart = ite; - } else { - elsepart = vc_bvConstExprFromInt(vc,32, 0); - } - } - return ite; - }catch(CVC3::Exception ex){ - signal_error("vc_bvVar32LeftShiftExpr",error_int,ex); - return NULL; - } -} - - -/* C pointer support: C interface to support C memory arrays in CVC3 */ -extern "C" Expr vc_bvCreateMemoryArray(VC vc, char * arrayName) { - Type bv8 = vc_bvType(vc,8); - Type bv32 = vc_bvType(vc,32); - - Type malloced_mem0 = vc_arrayType(vc,bv32,bv8); - return vc_varExpr(vc, arrayName, malloced_mem0); -} - -/*OLD VERSIONS C pointer theory functions. DO NOT DELETE */ - -// //Warning: Type checking needed to ensure that the function is run -// //correctly is not being done. it is assumed that the function -// //recieves inputs of the correct types -// extern "C" Expr vc_bvReadMemoryArray(VC vc, -// Expr array, -// Expr byteIndex, int newBitsPerElem) { -// DebugAssert(newBitsPerElem%8 == 0, -// "new bits per element must be a multiple of 8\n"); - -// Expr numerator = vc_bvMultExpr(vc,32, -// vc_bvConstExprFromInt(vc,32,newBitsPerElem), -// byteIndex); -// int numOfBytes = newBitsPerElem/8; -// DebugAssert(numOfBytes > 0, -// "numOfBytes must be greater than 0"); - -// if(numOfBytes == 1) -// return vc_readExpr(vc,array,numerator); -// else { -// int count = 1; -// Expr a = vc_readExpr(vc,array,numerator); -// while(--numOfBytes > 0) { -// Expr b = vc_readExpr(vc,array, -// vc_bvPlusExpr(vc,32,numerator,vc_bvConstExprFromInt(vc,32,count))); -// a = vc_bvConcatExpr(vc,a,b); -// count++; -// } -// return a; -// } -// } - -// extern "C" Expr vc_bvWriteToMemoryArray(VC vc, -// Expr array, Expr byteIndex, -// Expr element, int newBitsPerElem) { -// DebugAssert(newBitsPerElem%8 == 0, -// "new bits per element must be a multiple of 8\n"); - -// Expr numerator = vc_bvMultExpr(vc,32, -// vc_bvConstExprFromInt(vc,32,newBitsPerElem), -// byteIndex); -// int numOfBytes = newBitsPerElem/8; -// DebugAssert(numOfBytes > 0, -// "numOfBytes must be greater than 0"); - -// if(numOfBytes == 1) -// return vc_writeExpr(vc,array,numerator, element); -// else { -// int count = 1; -// int hi = newBitsPerElem - 1; -// int low = newBitsPerElem - 8; -// Expr c = vc_bvExtract(vc,element,hi,low); -// Expr newarray = vc_writeExpr(vc,array,numerator,c); -// while(--numOfBytes > 0) { -// hi = low-1; -// low = low-8; -// c = vc_bvExtract(vc,element,hi,low); -// newarray = vc_writeExpr(vc,newarray,numerator,c); -// count++; -// } -// return newarray; -// } -// } - - -extern "C" Expr vc_bvReadMemoryArray(VC vc, - Expr array, - Expr byteIndex, int numOfBytes) { - - DebugAssert(0 < numOfBytes, - "number of Bytes must be greater than 0\n"); - - if(numOfBytes == 1) - return vc_readExpr(vc,array,byteIndex); - else { - int count = 1; - Expr a = vc_readExpr(vc,array,byteIndex); - while(--numOfBytes > 0) { - Expr b = vc_readExpr(vc,array, - /*vc_simplify(vc, */ - vc_bvPlusExpr(vc, 32, - byteIndex, - vc_bvConstExprFromInt(vc,32,count)))/*)*/; - a = vc_bvConcatExpr(vc,b,a); - count++; - } - return a; - } -} - - -extern "C" Expr vc_bvWriteToMemoryArray(VC vc, - Expr array, Expr byteIndex, - Expr element, int numOfBytes) { - DebugAssert(numOfBytes > 0, - "numOfBytes must be greater than 0"); - - //int newBitsPerElem = numOfBytes*8; - if(numOfBytes == 1) - return vc_writeExpr(vc, array, byteIndex, element); - else { - int count = 1; - //int hi = newBitsPerElem - 1; - //int low = newBitsPerElem - 8; - int low_elem = 0; - int hi_elem = low_elem + 7; - Expr c = vc_bvExtract(vc, element, hi_elem, low_elem); - Expr newarray = vc_writeExpr(vc, array, byteIndex, c); - while(--numOfBytes > 0) { - //hi = low-1; - //low = low-8; - - low_elem = low_elem + 8; - hi_elem = low_elem + 7; - - c = vc_bvExtract(vc, element, hi_elem, low_elem); - newarray = - vc_writeExpr(vc, newarray, - vc_bvPlusExpr(vc, 32, byteIndex, vc_bvConstExprFromInt(vc,32,count)), - c); - count++; - } - return newarray; - } -} - -extern "C" Expr vc_tupleExprN(VC vc, Expr* children, int numChildren) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - vector<CVC3::Expr> cvcExprs; - for (int i = 0; i < numChildren; ++i) { - cvcExprs.push_back(fromExpr(children[i])); - } - return toExpr(cvc->tupleExpr(cvcExprs)); - }catch(CVC3::Exception ex){ - signal_error("vc_tupleExprN",error_int,ex); - return NULL; - } -} - - -extern "C" Expr vc_tupleSelectExpr(VC vc, Expr tuple, int index) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toExpr(cvc->tupleSelectExpr(fromExpr(tuple), index)); - }catch(CVC3::Exception ex){ - signal_error("vc_tupleSelectExpr",error_int,ex); - return NULL; - } -} - - -extern "C" Expr vc_tupleUpdateExpr(VC vc, Expr tuple, int index, Expr newValue) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toExpr(cvc->tupleUpdateExpr(fromExpr(tuple), index, - fromExpr(newValue))); - }catch(CVC3::Exception ex){ - signal_error("vc_tupleUpdateExpr",error_int,ex); - return NULL; - } -} - - -extern "C" Expr vc_datatypeConsExpr(VC vc, char* constructor, - int numArgs, Expr* args) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - vector<CVC3::Expr> cvcArgs; - for (int i = 0; i < numArgs; ++i) { - cvcArgs.push_back(fromExpr(args[i])); - } - return toExpr(cvc->datatypeConsExpr(constructor, cvcArgs)); - }catch(CVC3::Exception ex){ - signal_error("vc_datatypeConsExpr",error_int,ex); - return NULL; - } -} - - -extern "C" Expr vc_datatypeSelExpr(VC vc, char* selector, Expr arg) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toExpr(cvc->datatypeSelExpr(selector, fromExpr(arg))); - }catch(CVC3::Exception ex){ - signal_error("vc_datatypeSelExpr",error_int,ex); - return NULL; - } -} - - -extern "C" Expr vc_datatypeTestExpr(VC vc, char* constructor, Expr arg) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toExpr(cvc->datatypeTestExpr(constructor, fromExpr(arg))); - }catch(CVC3::Exception ex){ - signal_error("vc_datatypeTestExpr",error_int,ex); - return NULL; - } -} - - -extern "C" Expr vc_boundVarExpr(VC vc, char* name, char *uid, Type type) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toExpr(cvc->boundVarExpr(name, uid, fromType(type))); - }catch(CVC3::Exception ex){ - signal_error("vc_getEM",error_int,ex); - return NULL; - } -} - - -extern "C" Type vc_forallExpr(VC vc, Expr* Bvars, int numBvars, Expr f) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - vector<CVC3::Expr> cvcBvars; - for (int i = 0; i < numBvars; ++i) { - cvcBvars.push_back(fromExpr(Bvars[i])); - } - return toExpr(cvc->forallExpr(cvcBvars,fromExpr(f))); - }catch(CVC3::Exception ex){ - signal_error("vc_forallExpr",error_int,ex); - return NULL; - } -} - -// triggers must be an array of listExpr -// each listExpr represent a trigger -// if a listExpr contains more than one Expr, then it is a multi-trigger -extern "C" void vc_setTriggers(VC vc, Expr e, int numTrigs, Expr* triggers) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - vector<vector<CVC3::Expr> >cvcTriggers; - for (int i = 0; i < numTrigs; ++i) { - vector<CVC3::Expr> curTrig; - CVC3::Expr trigExpr = fromExpr(triggers[i]); - if(trigExpr.isRawList()){ - for(int j = 0 ; j < trigExpr.arity(); j++){ - curTrig.push_back(trigExpr[j]); - } - } - else{ - curTrig.push_back(trigExpr); - } - cvcTriggers.push_back(curTrig); - } - - cvc->setTriggers(fromExpr(e), cvcTriggers); - }catch(CVC3::Exception ex){ - signal_error("vc_setTriggers",error_int,ex); - } -} - - -extern "C" Expr vc_existsExpr(VC vc, Expr* Bvars, int numBvars, Expr f) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - vector<CVC3::Expr> cvcBvars; - for (int i = 0; i < numBvars; ++i) { - cvcBvars.push_back(fromExpr(Bvars[i])); - } - return toExpr(cvc->existsExpr(cvcBvars,fromExpr(f))); - }catch(CVC3::Exception ex){ - signal_error("vc_existsExpr",error_int,ex); - return NULL; - } -} - - -extern "C" Op vc_lambdaExpr(VC vc, int numVars, Expr* vars, Expr body) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - vector<CVC3::Expr> cvcVars; - for (int i = 0; i < numVars; ++i) { - cvcVars.push_back(fromExpr(vars[i])); - } - return toOp(vc, cvc->lambdaExpr(cvcVars, fromExpr(body))); - }catch(CVC3::Exception ex){ - signal_error("vc_lambdaExpr",error_int,ex); - return NULL; - } -} - - -///////////////////////////////////////////////////////////////////////////// -// Context-related methods // -///////////////////////////////////////////////////////////////////////////// - - -extern "C" void vc_setResourceLimit(VC vc, unsigned limit) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - cvc->setResourceLimit(limit); - }catch(CVC3::Exception ex){ - signal_error("vc_setResourceLimit",error_int,ex); - } -} - - -extern "C" void vc_assertFormula(VC vc, Expr e) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - cvc->assertFormula(fromExpr(e)); - }catch(CVC3::Exception ex){ - signal_error("vc_assertFormula",error_int,ex); - } -} - - -extern "C" void vc_registerAtom(VC vc, Expr e) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - cvc->registerAtom(fromExpr(e)); - }catch(CVC3::Exception ex){ - signal_error("vc_registerAtom",error_int,ex); - } -} - - -extern "C" Expr vc_getImpliedLiteral(VC vc) -{ - try { - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toExpr(cvc->getImpliedLiteral()); - } catch(CVC3::Exception ex){ - signal_error("vc_getImpliedLiteral",error_int,ex); - return NULL; - } -} - - -extern "C" Expr vc_simplify(VC vc, Expr e) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toExpr(cvc->simplify(fromExpr(e))); - }catch(CVC3::Exception ex){ - signal_error("vc_simplify",error_int,ex); - return NULL; - } -} - - -extern "C" int vc_query(VC vc, Expr e) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return (int)cvc->query(fromExpr(e)); - }catch(CVC3::Exception ex){ - signal_error("vc_query",error_int,ex); - return error_int; - } -} - - -extern "C" int vc_checkContinue(VC vc) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return (int)cvc->checkContinue(); - }catch(CVC3::Exception ex){ - signal_error("vc_checkContinue",error_int,ex); - return error_int; - } -} - - -extern "C" int vc_restart(VC vc, Expr e) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return (int)cvc->restart(fromExpr(e)); - }catch(CVC3::Exception ex){ - signal_error("vc_restart",error_int,ex); - return error_int; - } -} - - -extern "C" void vc_returnFromCheck(VC vc) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - cvc->returnFromCheck(); - }catch(CVC3::Exception ex){ - signal_error("vc_returnFromCheck",error_int,ex); - } -} - - -extern "C" Expr* vc_getUserAssumptions(VC vc, int* size) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - vector<CVC3::Expr> cvcAssumptions; - cvc->getUserAssumptions(cvcAssumptions); - Expr* assumptions = new Expr[cvcAssumptions.size()]; - unsigned n = 0; - for (; n < cvcAssumptions.size(); ++n) { - assumptions[n] = toExpr(cvcAssumptions[n]); - } - *size = int(n); - return assumptions; - }catch(CVC3::Exception ex){ - signal_error("vc_getUserAssumptions",error_int,ex); - return NULL; - } -} - - -extern "C" Expr* vc_getInternalAssumptions(VC vc, int* size) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - vector<CVC3::Expr> cvcAssumptions; - cvc->getInternalAssumptions(cvcAssumptions); - Expr* assumptions = new Expr[cvcAssumptions.size()]; - unsigned n = 0; - for (; n < cvcAssumptions.size(); ++n) { - assumptions[n] = toExpr(cvcAssumptions[n]); - } - *size = int(n); - return assumptions; - }catch(CVC3::Exception ex){ - signal_error("vc_getInternalAssumptions",error_int,ex); - return NULL; - } -} - - -extern "C" Expr* vc_getAssumptions(VC vc, int* size) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - vector<CVC3::Expr> cvcAssumptions; - cvc->getAssumptions(cvcAssumptions); - Expr* assumptions = new Expr[cvcAssumptions.size()]; - unsigned n = 0; - for (; n < cvcAssumptions.size(); ++n) { - assumptions[n] = toExpr(cvcAssumptions[n]); - } - *size = int(n); - return assumptions; - }catch(CVC3::Exception ex){ - signal_error("vc_getAssumptions",error_int,ex); - return NULL; - } -} - -//yeting, this is for proof translation, -extern "C" Expr vc_getProofAssumptions(VC vc) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - vector<CVC3::Expr> cvcAssumptions; - cvc->getUserAssumptions(cvcAssumptions); - return toExpr(cvc->listExpr(cvcAssumptions)); - }catch(CVC3::Exception ex){ - signal_error("vc_getProofAssumptions",error_int,ex); - return NULL; - } -} - -//yeting, this is for proof translation -extern "C" Expr vc_getProofQuery(VC vc) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toExpr(cvc->getProofQuery()); - }catch(CVC3::Exception ex){ - signal_error("vc_getProofQuery",error_int,ex); - return NULL; - } -} - - -extern "C" Expr* vc_getAssumptionsUsed(VC vc, int* size) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - vector<CVC3::Expr> cvcAssumptions; - cvc->getAssumptionsUsed(cvcAssumptions); - Expr* assumptions = new Expr[cvcAssumptions.size()]; - unsigned n = 0; - for (; n < cvcAssumptions.size(); ++n) { - assumptions[n] = toExpr(cvcAssumptions[n]); - } - *size = int(n); - return assumptions; - }catch(CVC3::Exception ex){ - signal_error("vc_getAssumptionsUsed",error_int,ex); - return NULL; - } -} - - -extern "C" Expr* vc_getCounterExample(VC vc, int* size) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - vector<CVC3::Expr> cvcAssumptions; - cvc->getCounterExample(cvcAssumptions); - Expr* assumptions = new Expr[cvcAssumptions.size()]; - unsigned n = 0; - for (; n < cvcAssumptions.size(); ++n) { - assumptions[n] = toExpr(cvcAssumptions[n]); - } - *size = int(n); - return assumptions; - }catch(CVC3::Exception ex){ - signal_error("vc_getCounterExample",error_int,ex); - return NULL; - } -} - - -extern "C" Expr* vc_getConcreteModel(VC vc, int* size) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - CVC3::ExprMap<CVC3::Expr> assertions; - cvc->getConcreteModel(assertions); - Expr* locAssumptions = new Expr[assertions.size()]; - int n = 0; - CVC3::ExprMap<CVC3::Expr>::iterator it = assertions.begin(), end = assertions.end(); - for (; it != end; it++) { - locAssumptions[n] = toExpr(cvc->eqExpr(it->first, it->second)); - n++; - } - *size = n; - return locAssumptions; - }catch(CVC3::Exception ex){ - signal_error("vc_getConcreteModel",error_int,ex); - return NULL; - } -} - - -extern "C" int vc_inconsistent(VC vc, Expr** assumptions, int* size) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - vector<CVC3::Expr> assertions; - bool ret = cvc->inconsistent(assertions); - Expr* locAssumptions = new Expr[assertions.size()]; - for (unsigned i = 0; i < assertions.size(); ++i) { - locAssumptions[i] = toExpr(assertions[i]); - } - *assumptions = locAssumptions; - *size = assertions.size(); - return (int)ret; - }catch(CVC3::Exception ex){ - signal_error("vc_inconsistent",error_int,ex); - return 0; - } -} - - -extern "C" char* vc_incomplete(VC vc) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - vector<string> reasons; - bool ret = cvc->incomplete(reasons); - if (!ret) return NULL; - string allReasons = ""; - for (unsigned i = 0; i < reasons.size(); ++i) { - allReasons += '\n'; - allReasons += reasons[i]; - } - char* retStr = new char[allReasons.length()+1]; - allReasons.copy(retStr, allReasons.length()); - retStr[allReasons.length()] = '\0'; - return retStr; - }catch(CVC3::Exception ex){ - signal_error("vc_incomplete",error_int,ex); - return NULL; - } -} - - -extern "C" Expr vc_getProof(VC vc) -{ - signal_error("vc_getProofTCC",error_int,CVC3::Exception("Unimplemented")); - return NULL; -} - - -extern "C" Expr vc_getProofOfFile(VC vc, char* fileName){ - signal_error("vc_getProofTCC",error_int,CVC3::Exception("Unimplemented")); - return NULL; -} - - -extern "C" Expr vc_getTCC(VC vc) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toExpr(cvc->getTCC()); - }catch(CVC3::Exception ex){ - signal_error("vc_getTCC",error_int,ex); - return NULL; - } -} - - -extern "C" Expr* vc_getAssumptionsTCC(VC vc, int* size) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - vector<CVC3::Expr> cvcAssumptions; - cvc->getAssumptionsTCC(cvcAssumptions); - Expr* assumptions = new Expr[cvcAssumptions.size()]; - unsigned n = 0; - for (; n < cvcAssumptions.size(); ++n) { - assumptions[n] = toExpr(cvcAssumptions[n]); - } - *size = int(n); - return assumptions; - }catch(CVC3::Exception ex){ - signal_error("vc_getAssumptionsTCC",error_int,ex); - return NULL; - } -} - - -extern "C" Expr vc_getProofTCC(VC vc) -{ - signal_error("vc_getProofTCC",error_int,CVC3::Exception("Unimplemented")); - return NULL; -} - - -extern "C" Expr vc_getClosure(VC vc) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return toExpr(cvc->getClosure()); - }catch(CVC3::Exception ex){ - signal_error("vc_getClosure",error_int,ex); - return NULL; - } -} - - -extern "C" Expr vc_getProofClosure(VC vc) -{ - signal_error("vc_getProofTCC",error_int,CVC3::Exception("Unimplemented")); - return NULL; -} - - -extern "C" int vc_stackLevel(VC vc) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return cvc->stackLevel(); - }catch(CVC3::Exception ex){ - signal_error("vc_stackLevel",error_int,ex); - return 0; - } -} - - -extern "C" void vc_push(VC vc) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - cvc->push(); - }catch(CVC3::Exception ex){ - signal_error("vc_push",error_int,ex); - } -} - - -extern "C" void vc_pop(VC vc) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - cvc->pop(); - }catch(CVC3::Exception ex){ - signal_error("vc_pop",error_int,ex); - } -} - - -extern "C" void vc_popto(VC vc, int stackLevel) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - cvc->popto(stackLevel); - }catch(CVC3::Exception ex){ - signal_error("vc_popto",error_int,ex); - } -} - - -extern "C" Context vc_getCurrentContext(VC vc) -{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return (Context)cvc->getCurrentContext(); -} - - -// ------------------------------------------------------------------------- -// Util -// ------------------------------------------------------------------------- - - -extern "C" int vc_compare_exprs(Expr e1,Expr e2){ - try{ - return (compare(fromExpr(e1),fromExpr(e2))); - } catch (CVC3::Exception ex){ - signal_error("vc_compare_exprs",error_int,ex); - return error_int; - } -} - - -extern "C" const char* vc_exprString(Expr e){ - try{ - tmpString =(fromExpr(e)).toString(); - return tmpString.c_str(); - } catch (CVC3::Exception ex){ - signal_error("vc_exprString",error_int,ex); - return "ERROR"; - } -} - - -extern "C" const char* vc_typeString(Type t){ - try{ - tmpString = (fromExpr(t)).toString(); - return tmpString.c_str(); - } catch (CVC3::Exception ex){ - signal_error("vc_typeString",error_int,ex); - return "ERROR"; - } -} - - -extern "C" bool vc_isClosure(Expr e){ - signal_error("vc_isClosure",error_int,CVC3::Exception("Unimplemented")); - return false; -} - - -extern "C" bool vc_isQuantifier(Expr e){ - signal_error("vc_isQuantifier",error_int,CVC3::Exception("Unimplemented")); - return false; -} - - -extern "C" bool vc_isLambda(Expr e){ - signal_error("vc_isLambda",error_int,CVC3::Exception("Unimplemented")); - return false; -} - - -extern "C" bool vc_isVar(Expr e){ - try{ - return (fromExpr(e)).isVar(); - } catch (CVC3::Exception ex){ - signal_error("vc_isVar",error_int,ex); - return false; - } -} - - -extern "C" int vc_arity(Expr e){ - try{ - return (fromExpr(e)).arity(); - } catch (CVC3::Exception ex){ - signal_error("vc_arity",error_int,ex); - return error_int; - } -} - - -extern "C" int vc_getKind(Expr e){ - try{ - return (fromExpr(e)).getKind(); - } catch (CVC3::Exception ex){ - signal_error("vc_getKind",error_int,ex); - return error_int; - } -} - - -extern "C" Expr vc_getChild(Expr e, int i){ - try{ - return toExpr(((fromExpr(e))[i])); - } catch (CVC3::Exception ex){ - signal_error("vc_getChild",error_int,ex); - return NULL; - } -} - - -extern "C" int vc_getNumVars(Expr e){ - signal_error("vc_getNumVars",error_int,CVC3::Exception("Unimplemented")); - return 0; -} - - -extern "C" Expr vc_getVar(Expr e, int i){ - signal_error("vc_getVar",error_int,CVC3::Exception("Unimplemented")); - return 0; -} - - -extern "C" Expr vc_getBody(Expr e){ - signal_error("vc_getBody",error_int,CVC3::Exception("Unimplemented")); - return 0; -} - -extern "C" Expr vc_getExistential(Expr e){ - signal_error("vc_getExistential",error_int,CVC3::Exception("Unimplemented")); - return 0; -} - - -extern "C" Expr vc_getFun(VC vc, Expr e) -{ - try{ - return toExpr((fromExpr(e)).getOp().getExpr()); - }catch(CVC3::Exception ex){ - signal_error("vc_getFun",error_int,ex); - return NULL; - } -} - - -extern "C" Expr vc_toExpr(Type t){ - try{ - return toExpr(fromExpr(t)); - } catch (CVC3::Exception ex){ - signal_error("vc_toExpr",error_int,ex); - return NULL; - } -} - - -extern "C" const char* vc_getKindString(VC vc,int kind) -{ - try{ - tmpString = CVC4::kind::kindToString(CVC4::Kind(kind)); - return tmpString.c_str(); - } catch (CVC3::Exception ex){ - signal_error("vc_getKindString",error_int,ex); - return NULL; - } -} - - -extern "C" int vc_getKindInt(VC vc,char* kind_name) -{ - signal_error("vc_getKindInt",error_int,CVC3::Exception("Unimplemented")); - return 0; -} - - -extern "C" int vc_getInt(Expr e){ - try{ - CVC3::Expr ex = fromExpr(e); - return int(ex.getConst<CVC3::Rational>().getNumerator().getLong()); - } catch (CVC3::Exception ex){ - signal_error("vc_getInt",error_int,ex); - return error_int; - } -} - - -extern "C" int vc_getBVInt(VC vc, Expr e){ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return int(cvc->computeBVConst(fromExpr(e)).getNumerator().getLong()); - } catch (CVC3::Exception ex){ - signal_error("vc_getBVInt",error_int,ex); - return 0; - } -} - - -extern "C" unsigned int vc_getBVUnsigned(VC vc, Expr e){ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - return unsigned(cvc->computeBVConst(fromExpr(e)).getNumerator().getUnsignedLong()); - } catch (CVC3::Exception ex){ - signal_error("vc_getBVUnsigned",error_int,ex); - return 0; - } -} - - -extern "C" void vc_print_statistics(VC vc) -{ - try{ - CVC3::ValidityChecker* cvc = (CVC3::ValidityChecker*) vc; - cvc->printStatistics(); - } catch (CVC3::Exception ex){ - signal_error("vc_print_statistics",error_int,ex); - } -} diff --git a/src/bindings/compat/c/c_interface.h b/src/bindings/compat/c/c_interface.h deleted file mode 100644 index 379097c27..000000000 --- a/src/bindings/compat/c/c_interface.h +++ /dev/null @@ -1,702 +0,0 @@ -/*****************************************************************************/ -/*! - * \file c_interface.h - * - * Authors: Clark Barrett - * Cristian Cadar - * - * Created: Thu Jun 5 10:34:02 2003 - * - * <hr> - * - * License to use, copy, modify, sell and/or distribute this software - * and its documentation for any purpose is hereby granted without - * royalty, subject to the terms and conditions defined in the \ref - * COPYING file provided with this distribution. - * - * <hr> - * - */ -/*****************************************************************************/ - -#include "cvc4_public.h" - -#ifndef _cvc3__include__c_interface_h_ -#define _cvc3__include__c_interface_h_ - -#include "bindings/compat/c/c_interface_defs.h" - -//! Flags can be NULL -VC vc_createValidityChecker(Flags flags); -//! Create validity checker's flags -Flags vc_createFlags(); -//! Destroy the validity checker. -/*! Must be called after all other objects are deleted, except the flags */ -void vc_destroyValidityChecker(VC vc); -//! Delete the flags -void vc_deleteFlags(Flags flags); -//! Delete type -void vc_deleteType(Type t); -//! Delete expression -void vc_deleteExpr(Expr e); -//! Delete operator -void vc_deleteOp(Op op); -//! Delete vector of expressions -void vc_deleteVector(Expr* e); -//! Delete vector of types -void vc_deleteTypeVector(Type* e); - -// Setting the flags -//! Set a boolean flag to true or false -void vc_setBoolFlag(Flags flags, char* name, int val); -//! Set an integer flag to the given value -void vc_setIntFlag(Flags flags, char* name, int val); -//! Set a string flag to the given value -void vc_setStringFlag(Flags flags, char* name, char* val); -//! Add a (string, bool) pair to the multy-string flag -void vc_setStrSeqFlag(Flags flags, char* name, char* str, int val); - -// Basic types -Type vc_boolType(VC vc); -Type vc_realType(VC vc); -Type vc_intType(VC vc); - -//! Create a subrange type -Type vc_subRangeType(VC vc, int lowerEnd, int upperEnd); - -//! Creates a subtype defined by the given predicate -/*! - * \param vc the validity checker - * - * \param pred is a predicate taking one argument of type T and returning - * Boolean. The resulting type is a subtype of T whose elements x are those - * satisfying the predicate pred(x). - * - * \param witness is an expression of type T for which pred holds (if a Null - * expression is passed as a witness, cvc will try to prove \f$\exists x. pred(x))\f$. - * if the witness check fails, a TypecheckException is thrown. - */ -Type vc_subtypeType(VC vc, Expr pred, Expr witness); - -// Tuple types -Type vc_tupleType2(VC vc, Type type0, Type type1); -Type vc_tupleType3(VC vc, Type type0, Type type1, Type type2); -//! Create a tuple type. 'types' is an array of types of length numTypes. -Type vc_tupleTypeN(VC vc, Type* types, int numTypes); - -// Record types -Type vc_recordType1(VC vc, char* field, Type type); -Type vc_recordType2(VC vc, char* field0, Type type0, - char* field1, Type type1); -Type vc_recordType3(VC vc, char* field0, Type type0, - char* field1, Type type1, - char* field2, Type type2); -//! Create a record type. -/*! 'fields' and 'types' are arrays of length numFields. */ -Type vc_recordTypeN(VC vc, char** fields, Type* types, int numFields); - -// Datatypes - -//! Single datatype, single constructor -/*! The types are either type exressions (obtained from a type with - * getExpr()) or string expressions containing the name of (one of) the - * dataType(s) being defined. */ -Type vc_dataType1(VC vc, char* name, char* constructor, int arity, - char** selectors, Expr* types); - -//! Single datatype, multiple constructors -/*! The types are either type exressions (obtained from a type with - * getExpr()) or string expressions containing the name of (one of) the - * dataType(s) being defined. */ -Type vc_dataTypeN(VC vc, char* name, int numCons, char** constructors, - int* arities, char*** selectors, Expr** types); - -//! Multiple datatypes -/*! The types are either type exressions (obtained from a type with - * getExpr()) or string expressions containing the name of (one of) the - * dataType(s) being defined. - * Returns an array of size numTypes which must be freed by calling - * vc_deleteTypeVector. - */ -Type* vc_dataTypeMN(VC vc, int numTypes, char** names, - int* numCons, char*** constructors, - int** arities, char**** selectors, - Expr*** types); - -//! Create an array type -Type vc_arrayType(VC vc, Type typeIndex, Type typeData); - -//! Create a bitvector type of length n -Type vc_bvType(VC vc, int n); - -//! Create a function type with 1 argument -Type vc_funType1(VC vc, Type a1, Type typeRan); -//! Create a function type with 2 arguments -Type vc_funType2(VC vc, Type a1, Type a2, Type typeRan); -//! Create a function type with 3 arguments -Type vc_funType3(VC vc, Type a1, Type a2, Type a3, Type typeRan); -//! Create a function type with N arguments -Type vc_funTypeN(VC vc, Type* args, Type typeRan, int numArgs); - -// User-defined types - -//! Create an uninterpreted named type -Type vc_createType(VC vc, char* typeName); -//! Lookup a user-defined (uninterpreted) type by name -Type vc_lookupType(VC vc, char* typeName); - -///////////////////////////////////////////////////////////////////////////// -// Expr manipulation methods // -///////////////////////////////////////////////////////////////////////////// - -//! Return the ExprManager -ExprManager* vc_getEM(VC vc); - -//! Create a variable with a given name and type -/*! The type cannot be a function type. */ -Expr vc_varExpr(VC vc, char* name, Type type); - -//! Create a variable with a given name, type, and value -Expr vc_varExprDef(VC vc, char* name, Type type, - Expr def); - -//! Get the expression and type associated with a name. -/*! If there is no such Expr, a NULL Expr is returned. */ -Expr vc_lookupVar(VC vc, char* name, Type* type); - -//! Get the type of the Expr. -Type vc_getType(VC vc, Expr e); - -//! Get the largest supertype of the Expr. -Type vc_getBaseType(VC vc, Expr e); - -//! Get the largest supertype of the Type. -Type vc_getBaseTypeOfType(VC vc, Type t); - -//! Get the subtype predicate -Expr vc_getTypePred(VC vc, Type t, Expr e); - -//! Create a string Expr -Expr vc_stringExpr(VC vc, char* str); - -//! Create an ID Expr -Expr vc_idExpr(VC vc, char* name); - -//! Create a list Expr -/*! Intermediate representation for DP-specific expressions. - * Normally, the first element of the list is a string Expr - * representing an operator, and the rest of the list are the - * arguments. For example, - * - * kids.push_back(vc->stringExpr("PLUS")); - * kids.push_back(x); // x and y are previously created Exprs - * kids.push_back(y); - * Expr lst = vc->listExpr(kids); - * - * Or, alternatively (using its overloaded version): - * - * Expr lst = vc->listExpr("PLUS", x, y); - * - * or - * - * vector<Expr> summands; - * summands.push_back(x); summands.push_back(y); ... - * Expr lst = vc->listExpr("PLUS", summands); - */ -Expr vc_listExpr(VC vc, int numKids, Expr* kids); - -// Expr I/O -//! Expr vc_parseExpr(VC vc, char* s); -void vc_printExpr(VC vc, Expr e); -//! Print e into a char* -/*! Note that the ownership of the char* is given to the caller - which should free the memory when it is done with it. This - can be done by calling vc_deleteString. */ -char* vc_printExprString(VC vc, Expr e); -//! Delete char* returned by previous function -void vc_deleteString(char* str); -//! Print 'e' into an open file descriptor -void vc_printExprFile(VC vc, Expr e, int fd); - -//! Import the Expr from another instance of VC -/*! When expressions need to be passed among several instances of - * VC, they need to be explicitly imported into the - * corresponding instance using this method. The return result is - * an identical expression that belongs to the current instance of - * VC, and can be safely used as part of more complex - * expressions from the same instance. - \param vc is the instance to be imported into - \param e is the expression created using a different (not vc) instance - */ -Expr vc_importExpr(VC vc, Expr e); - -//! Import the Type from another instance of VC -/*! \sa vc_importExpr() */ -Type vc_importType(Type t); - -//! Create an equality expression. The two children must have the same type. -Expr vc_eqExpr(VC vc, Expr child0, Expr child1); - -//! Create an all distinct expression. All children must ahve the same type. -Expr vc_distinctExpr(VC vc, Expr* children, int numChildren); - -// Boolean expressions - -// The following functions create Boolean expressions. The children provided -// as arguments must be of type Boolean. -Expr vc_trueExpr(VC vc); -Expr vc_falseExpr(VC vc); -Expr vc_notExpr(VC vc, Expr child); -Expr vc_andExpr(VC vc, Expr left, Expr right); -Expr vc_andExprN(VC vc, Expr* children, int numChildren); -Expr vc_orExpr(VC vc, Expr left, Expr right); -Expr vc_orExprN(VC vc, Expr* children, int numChildren); -Expr vc_impliesExpr(VC vc, Expr hyp, Expr conc); -Expr vc_iffExpr(VC vc, Expr left, Expr right); -Expr vc_iteExpr(VC vc, Expr ifpart, Expr thenpart, Expr elsepart); - -// Substitution - -// Substitutes oldTerms for newTerms in e. -// This function doesn't actually exist in ValidityChecker interface, -// but it does in Expr, and its functionality is needed in the C interface. -// For consistency, it is represented here as if it were in ValidityChecker. -Expr vc_substExpr(VC vc, Expr e, - Expr* oldTerms, int numOldTerms, - Expr* newTerms, int numNewTerms); - -// User-defined (uninterpreted) functions. - -//! Create an operator from a function with a given name and type. -/*! Name is given as an ID Expr, and the type must be a function type. */ -Op vc_createOp(VC vc, char* name, Type type); - -//! Create a named user-defined function with a given type -Op vc_createOpDef(VC vc, char* name, Type type, Expr def); - -//! Lookup an operator by name. -/*! Returns the operator and the type if the operator exists. - * Returns NULL otherwise - */ -Op vc_lookupOp(VC vc, char* name, Type* type); - -//! Create expressions with a user-defined operator. -/*! op must have a function type. */ -Expr vc_funExpr1(VC vc, Op op, Expr child); -Expr vc_funExpr2(VC vc, Op op, Expr left, Expr right); -Expr vc_funExpr3(VC vc, Op op, Expr child0, Expr child1, Expr child2); -Expr vc_funExprN(VC vc, Op op, Expr* children, int numChildren); - -// Arithmetic - -//! Create a rational number with numerator n and denominator d. -/*! d cannot be 0. */ -Expr vc_ratExpr(VC vc, int n, int d); - -//! Create a rational number n/d; n and d are given as strings -/*! n and d are converted to arbitrary-precision integers according to - * the given base. d cannot be 0. */ -Expr vc_ratExprFromStr(VC vc, char* n, char* d, int base); - -//! Create a rational from a single string. -/*! - \param vc the validity checker - \param n can be a string containing an integer, a pair of integers - "nnn/ddd", or a number in the fixed or floating point format. - \param base is the base in which to interpret the string. -*/ -Expr vc_ratExprFromStr1(VC vc, char* n, int base); - -//! Unary minus. Child must have a numeric type. -Expr vc_uminusExpr(VC vc, Expr child); - -// plus, minus, mult. Children must have numeric types. -Expr vc_plusExpr(VC vc, Expr left, Expr right); -Expr vc_plusExprN(VC vc, Expr* children, int numChildren); -Expr vc_minusExpr(VC vc, Expr left, Expr right); -Expr vc_multExpr(VC vc, Expr left, Expr right); -Expr vc_powExpr(VC vc, Expr pow, Expr base); -Expr vc_divideExpr(VC vc, Expr numerator, Expr denominator); - -// The following functions create less-than, less-than or equal, -// greater-than, and greater-than or equal expressions of type Boolean. -// Their arguments must be of numeric types. -Expr vc_ltExpr(VC vc, Expr left, Expr right); -Expr vc_leExpr(VC vc, Expr left, Expr right); -Expr vc_gtExpr(VC vc, Expr left, Expr right); -Expr vc_geExpr(VC vc, Expr left, Expr right); - -// Records - -// Create record literals; -Expr vc_recordExpr1(VC vc, char* field, Expr expr); -Expr vc_recordExpr2(VC vc, char* field0, Expr expr0, - char* field1, Expr expr1); -Expr vc_recordExpr3(VC vc, char* field0, Expr expr0, - char* field1, Expr expr1, - char* field2, Expr expr2); -Expr vc_recordExprN(VC vc, char** fields, Expr* exprs, int numFields); - -//! Create an expression representing the selection of a field from a record. -Expr vc_recSelectExpr(VC vc, Expr record, char* field); - -//! Record update; equivalent to "record WITH .field := newValue" -Expr vc_recUpdateExpr(VC vc, Expr record, char* field, Expr newValue); - -// Arrays - -//! Create an expression for the value of array at the given index -Expr vc_readExpr(VC vc, Expr array, Expr index); - -//! Array update; equivalent to "array WITH [index] := newValue" -Expr vc_writeExpr(VC vc, Expr array, Expr index, Expr newValue); - -// Bitvectors -// Additional type constructor -Type vc_bv32Type(VC vc); - -// Bitvector constants -Expr vc_bvConstExprFromStr(VC vc, char* binary_repr); -Expr vc_bvConstExprFromInt(VC vc, int n_bits, unsigned int value); -Expr vc_bv32ConstExprFromInt(VC vc, unsigned int value); -Expr vc_bvConstExprFromLL(VC vc, int n_bits, unsigned long value); - -// Concat and extract -Expr vc_bvConcatExpr(VC vc, Expr left, Expr right); -Expr vc_bvConcatExprN(VC vc, Expr* children, int numChildren); -Expr vc_bvExtract(VC vc, Expr child, int high_bit_no, int low_bit_no); -Expr vc_bvBoolExtract(VC vc, Expr child, int bit_no); - -// Bitwise Boolean operators: Negation, And, Or, Xor -Expr vc_bvNotExpr(VC vc, Expr child); -Expr vc_bvAndExpr(VC vc, Expr left, Expr right); -Expr vc_bvOrExpr(VC vc, Expr left, Expr right); -Expr vc_bvXorExpr(VC vc, Expr left, Expr right); - -// Unsigned bitvector inequalities -Expr vc_bvLtExpr(VC vc, Expr left, Expr right); -Expr vc_bvLeExpr(VC vc, Expr left, Expr right); -Expr vc_bvGtExpr(VC vc, Expr left, Expr right); -Expr vc_bvGeExpr(VC vc, Expr left, Expr right); - -// Signed bitvector inequalities -Expr vc_bvSLtExpr(VC vc, Expr left, Expr right); -Expr vc_bvSLeExpr(VC vc, Expr left, Expr right); -Expr vc_bvSGtExpr(VC vc, Expr left, Expr right); -Expr vc_bvSGeExpr(VC vc, Expr left, Expr right); - -// Sign-extend child to a total of nbits bits -Expr vc_bvSignExtend(VC vc, Expr child, int nbits); - -// Bitvector arithmetic: unary minus, plus, subtract, multiply -Expr vc_bvUMinusExpr(VC vc, Expr child); -Expr vc_bvPlusExpr(VC vc, int n_bits, Expr left, Expr right); -Expr vc_bv32PlusExpr(VC vc, Expr left, Expr right); -Expr vc_bvMinusExpr(VC vc, int n_bits, Expr left, Expr right); -Expr vc_bv32MinusExpr(VC vc, Expr left, Expr right); -Expr vc_bvMultExpr(VC vc, int n_bits, Expr left, Expr right); -Expr vc_bv32MultExpr(VC vc, Expr left, Expr right); -Expr vc_bvUDivExpr(VC vc, Expr left, Expr right); -Expr vc_bvURemExpr(VC vc, Expr left, Expr right); -Expr vc_bvSDivExpr(VC vc, Expr left, Expr right); -Expr vc_bvSRemExpr(VC vc, Expr left, Expr right); -Expr vc_bvSModExpr(VC vc, Expr left, Expr right); - -// Shift operators -Expr vc_bvLeftShiftExpr(VC vc, int sh_amt, Expr child); -Expr vc_bvRightShiftExpr(VC vc, int sh_amt, Expr child); -Expr vc_bv32LeftShiftExpr(VC vc, int sh_amt, Expr child); -Expr vc_bv32RightShiftExpr(VC vc, int sh_amt, Expr child); -Expr vc_bvVar32LeftShiftExpr(VC vc, Expr sh_amt, Expr child); -Expr vc_bvVar32RightShiftExpr(VC vc, Expr sh_amt, Expr child); -Expr vc_bvVar32DivByPowOfTwoExpr(VC vc, Expr child, Expr rhs); - -/*C pointer support: C interface to support C memory arrays in CVC3 */ -Expr vc_bvCreateMemoryArray(VC vc, char * arrayName); -Expr vc_bvReadMemoryArray(VC vc, - Expr array, Expr byteIndex, int numOfBytes); -Expr vc_bvWriteToMemoryArray(VC vc, - Expr array, Expr byteIndex, - Expr element, int numOfBytes); - -// Tuples - -//! Create a tuple expression -/*! 'children' is an array of elements of length numChildren */ -Expr vc_tupleExprN(VC vc, Expr* children, int numChildren); - -//! Tuple select; equivalent to "tuple.n", where n is an numeral (e.g. tup.5) -Expr vc_tupleSelectExpr(VC vc, Expr tuple, int index); - -//! Tuple update; equivalent to "tuple WITH index := newValue" -Expr vc_tupleUpdateExpr(VC vc, Expr tuple, int index, Expr newValue); - -// Datatypes - -//! Datatype constructor expression -Expr vc_datatypeConsExpr(VC vc, char* constructor, int numArgs, Expr* args); - -//! Datatype selector expression -Expr vc_datatypeSelExpr(VC vc, char* selector, Expr arg); - -//! Datatype tester expression -Expr vc_datatypeTestExpr(VC vc, char* constructor, Expr arg); - -// Quantifiers - -//! Create a bound variable. -/*! \param vc the validity checker - * \param name - * \param uid is a fresh unique string to distinguish this variable - * from other bound variables with the same name - * \param type - */ -Expr vc_boundVarExpr(VC vc, char* name, char *uid, Type type); - -//! Create a FORALL quantifier. -/*! Bvars is an array of bound variables of length numBvars. */ -Type vc_forallExpr(VC vc, Expr* Bvars, int numBvars, Expr f); - -//! Set triggers for a forallExpr -void vc_setTriggers(VC vc, Expr e, int numTrigs, Expr* triggers); - -//! Create an EXISTS quantifier. -/*! Bvars is an array of bound variables of length numBvars. */ -Expr vc_existsExpr(VC vc, Expr* Bvars, int numBvars, Expr f); - -//! Lambda-expression -Op vc_lambdaExpr(VC vc, int numVars, Expr* vars, Expr body); - -///////////////////////////////////////////////////////////////////////////// -// Context-related methods // -///////////////////////////////////////////////////////////////////////////// - -//! Set the resource limit (0==unlimited, 1==exhausted). -/*! Currently, the limit is the total number of processed facts. */ -void vc_setResourceLimit(VC vc, unsigned limit); - -//! Assert a new formula in the current context. -/*! The formula must have Boolean type. */ -void vc_assertFormula(VC vc, Expr e); - -//! Register an atomic formula of interest. -/*! Registered atoms are tracked by the decision procedures. If one of them - is deduced to be true or false, it is added to a list of implied literals. - Implied literals can be retrieved with the getImpliedLiteral function */ -void vc_registerAtom(VC vc, Expr e); - -//! Return next literal implied by last assertion. Null if none. -/*! Returned literals are either registered atomic formulas or their negation - */ -Expr vc_getImpliedLiteral(VC vc); - -//! Simplify e with respect to the current context -Expr vc_simplify(VC vc, Expr e); - -//! Check validity of e in the current context. -/*! Possible results are: 0 = invalid, 1 = valid, 2 = abort, 3 = unknown, - * -100 = exception (type error, internal error, etc). - * If the result is 1, then the resulting context is the same as - * the starting context. If the result is 0 or 3, then the resulting - * context is a context in which e is false (though the context may be - * inconsistent in the case of an unknown result). e must have Boolean - * type. In the case of a result of -100, refer to vc_get_error_string() - * to see what went wrong. */ -int vc_query(VC vc, Expr e); - -//! Get the next model -/*! This method should only be called after a query which returns - 0. Its return values are as for vc_query(). */ -int vc_checkContinue(VC vc); - -//! Restart the most recent query with e as an additional assertion. -/*! This method should only be called after a query which returns - 0. Its return values are as for vc_query(). */ -int vc_restart(VC vc, Expr e); - -//! Returns to context immediately before last invalid query. -/*! This method should only be called after a query which returns 0. - */ -void vc_returnFromCheck(VC vc); - -//! Get assumptions made by the user in this and all previous contexts. -/*! User assumptions are created either by calls to assertFormula or by a - * call to query. In the latter case, the negated query is added as an - * assumption. The caller is responsible for freeing the array when - * finished with it. - */ -Expr* vc_getUserAssumptions(VC vc, int* size); - -//! Get assumptions made internally in this and all previous contexts. -/*! Internal assumptions are literals assumed by the sat solver. - * The caller is responsible for freeing the array when finished with it by - * calling vc_deleteVector. - */ -Expr* vc_getInternalAssumptions(VC vc, int* size); - -//! Get all assumptions made in this and all previous contexts. -/*! - * The caller is responsible for freeing the array when finished with it by - * calling vc_deleteVector. - */ -Expr* vc_getAssumptions(VC vc, int* size); - -//yeting, for proof translation, get the assumptions used. -//the assumptions used are different from the user assumptions. -//the assumptions used are preprocessed if 'preprocess' is ena -Expr vc_getProofAssumptions(VC vc); - -//yeting, for proof translation, -Expr vc_getProofQuery(VC vc); - -//! Returns the set of assumptions used in the proof of queried formula. -/*! It returns a subset of getAssumptions(). If the last query was false - * or there has not yet been a query, it does nothing. - * The caller is responsible for freeing the array when finished with it by - * calling vc_deleteVector. - */ -Expr* vc_getAssumptionsUsed(VC vc, int* size); - -//! Return the counterexample after a failed query. -/*! This method should only be called after a query which returns - * false. It will try to return the simplest possible set of - * assertions which are sufficient to make the queried expression - * false. The caller is responsible for freeing the array when finished with - * it by calling vc_deleteVector. - */ -Expr* vc_getCounterExample(VC vc, int* size); - -//! Will assign concrete values to all user created variables -/*! This function should only be called after a query which return false. - * Returns an array of Exprs with size *size. - * The caller is responsible for freeing the array when finished with it by - * calling vc_deleteVector. - */ -Expr* vc_getConcreteModel(VC vc, int* size); - -// Returns true if the current context is inconsistent. -/*! Also returns a minimal set of assertions used to determine the - * inconsistency. The caller is responsible for freeing the array when finished - * with it by calling vc_deleteVector. - */ -int vc_inconsistent(VC vc, Expr** assumptions, int* size); - -//! Returns non-NULL if the invalid result from last query() is imprecise -/*! - * The return value is filled with the reasons for incompleteness (it - * is intended to be shown to the end user). The caller is responsible for - * freeing the string returned by calling vc_deleteString. - */ -char* vc_incomplete(VC vc); - -//! Returns the proof for the last proven query -Expr vc_getProof(VC vc); - -//! Returns the proof of a .cvc file, if it is valid. -Expr vc_getProofOfFile(VC vc, char * filename); - -//! Returns the TCC of the last assumption or query -/*! Returns Null Expr if no assumptions or queries were performed. */ -Expr vc_getTCC(VC vc); - -//! Return the set of assumptions used in the proof of the last TCC -/*! The caller is responsible for freeing the array when finished with it by - * calling vc_deleteVector. - */ -Expr* vc_getAssumptionsTCC(VC vc, int* size); - -//! Returns the proof of TCC of the last assumption or query -/*! Returns Null Expr if no assumptions or queries were performed. */ -Expr vc_getProofTCC(VC vc); - -//! After successful query, return its closure |- Gamma => phi -/*! Turn a valid query Gamma |- phi into an implication - * |- Gamma => phi. - * - * Returns Null Expr if last query was invalid. - */ -Expr vc_getClosure(VC vc); - -//! Construct a proof of the query closure |- Gamma => phi -/*! Returns Null if last query was Invalid. */ -Expr vc_getProofClosure(VC vc); - -//! Returns the current stack level. Initial level is 0. -int vc_stackLevel(VC vc); - -//! Checkpoint the current context and increase the scope level -void vc_push(VC vc); - -//! Restore the current context to its state at the last checkpoint -void vc_pop(VC vc); - -//! Restore the current context to the given stackLevel. -/*! stackLevel must be less than or equal to the current stack level. - */ -void vc_popto(VC vc, int stackLevel); - -//! Get the current context -Context* vc_getCurrentContext(VC vc); - -/* ---------------------------------------------------------------------- */ -/* Util */ -/* ---------------------------------------------------------------------- */ - -// Order - -//! Compares two expressions -/*! If e1 < e2, e1==e2, and e1 > e2, it returns -1, 0, 1 - * respectively. A return value of -100 signals an error (refer to - * vc_get_error_string() for details). - * - * Can't be 'compare' because already defined in ocaml */ -int vc_compare_exprs(Expr e1,Expr e2); - -// Printing - -//! Convert Expr to string -char* vc_exprString(Expr e); -//! Convert Type to string -char* vc_typeString(Type t); - -// What kind of Expr? -int vc_isClosure(Expr e); -int vc_isQuantifier(Expr e); -int vc_isLambda(Expr e); -Expr vc_isVar(Expr e); - -int vc_arity(Expr e); -int vc_getKind(Expr e); -Expr vc_getChild(Expr e, int i); -int vc_getNumVars(Expr e); -Expr vc_getVar(Expr e, int i); -Expr vc_getBody(Expr e); -Expr vc_getExistential(Expr e); -Expr vc_getFun(VC vc, Expr e); -Expr vc_toExpr(Type t); - -//! Translate a kind int to a string -const char* vc_getKindString(VC vc,int kind); - -//! Translate a kind string to an int -int vc_getKindInt(VC vc,char* kind_name); - -//! Return an int from a rational expression -int vc_getInt(Expr e); - -//! Return an int from a constant bitvector expression -int vc_getBVInt(VC vc, Expr e); -//! Return an unsigned int from a constant bitvector expression -unsigned int vc_getBVUnsigned(VC vc, Expr e); - -// Debug -int vc_get_error_status(); -void vc_reset_error_status(); -char* vc_get_error_string(); - -//! Print statistics -void vc_print_statistics(VC vc); - -#endif - - diff --git a/src/bindings/compat/c/c_interface_defs.h b/src/bindings/compat/c/c_interface_defs.h deleted file mode 100644 index 0f0155324..000000000 --- a/src/bindings/compat/c/c_interface_defs.h +++ /dev/null @@ -1,53 +0,0 @@ -/*****************************************************************************/ -/*! - * \file c_interface_defs.h - * - * Author: Clark Barrett - * - * Created: Thu Jun 5 13:16:26 2003 - * - * <hr> - * - * License to use, copy, modify, sell and/or distribute this software - * and its documentation for any purpose is hereby granted without - * royalty, subject to the terms and conditions defined in the \ref - * COPYING file provided with this distribution. - * - * <hr> - * - */ -/*****************************************************************************/ - -#include "cvc4_public.h" - -#ifndef _cvc3__include__c_interface_defs_h_ -#define _cvc3__include__c_interface_defs_h_ - -//#include "kinds.h" - -#ifdef CVC3_STRONG_TYPING - - typedef struct _cvc_VC *VC; - typedef struct _cvc_Context *Context; - typedef struct _cvc_ExprManager *ExprManager; - typedef struct _cvc_Flags *Flags; - - typedef struct _cvc_Expr * Expr; - typedef struct _cvc_Op * Op; - typedef struct _cvc_Type* Type; -#else - - //This gives absolutely no static pointer typing. - typedef void* VC; - typedef void* Context; - typedef void* ExprManager; - typedef void* Flags; - - typedef void* Expr; - typedef void* Op; - typedef void* Type; - typedef void* Proof; - -#endif -#endif - diff --git a/src/bindings/compat/java/Cvc3_manifest b/src/bindings/compat/java/Cvc3_manifest deleted file mode 100644 index 904ce0374..000000000 --- a/src/bindings/compat/java/Cvc3_manifest +++ /dev/null @@ -1,2 +0,0 @@ -Main-Class: cvc3/Cvc3 -Class-Path: libcvc3.jar diff --git a/src/bindings/compat/java/Makefile b/src/bindings/compat/java/Makefile deleted file mode 100644 index 894b945fa..000000000 --- a/src/bindings/compat/java/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -topdir = ../../../.. -srcdir = src/bindings/compat/java - -include $(topdir)/Makefile.subdir diff --git a/src/bindings/compat/java/Makefile.am b/src/bindings/compat/java/Makefile.am deleted file mode 100644 index c3c256e8b..000000000 --- a/src/bindings/compat/java/Makefile.am +++ /dev/null @@ -1,155 +0,0 @@ -# LIBCVC4BINDINGS_VERSION (-version-info) is in the form current:revision:age -# -# current - -# increment if interfaces have been added, removed or changed -# revision - -# increment if source code has changed -# set to zero if current is incremented -# age - -# increment if interfaces have been added -# set to zero if interfaces have been removed -# or changed -# -LIBCVC4BINDINGS_VERSION = @CVC4_BINDINGS_LIBRARY_VERSION@ - -AM_CPPFLAGS = \ - -D__BUILDING_CVC4BINDINGSLIB \ - -I@builddir@/../../.. -I@srcdir@/../../../include -I@srcdir@/../../.. \ - -I@builddir@/cvc3 -I@srcdir@/include/cvc3 -AM_CXXFLAGS = -Wall -Wno-unused-variable - -javadatadir = $(datadir)/java -javalibdir = $(libdir)/jni -javadata_DATA = -javalib_LTLIBRARIES= -BUILT_SOURCES = - -if CVC4_LANGUAGE_BINDING_JAVA - -javalib_LTLIBRARIES += libcvc4compatjni.la -javadata_DATA += CVC4compat.jar -libcvc4compatjni_la_LDFLAGS = \ - -no-undefined \ - -module \ - -shrext $(CVC4_JAVA_MODULE_EXT) \ - -version-info $(LIBCVC4BINDINGS_VERSION) -libcvc4compatjni_la_LIBADD = \ - @builddir@/../../../compat/libcvc4compat.la \ - @builddir@/../../../libcvc4.la -BUILT_SOURCES += $(JNI_CPP_FILES) - -endif - -# source files -# java files of the library wrapper -LIB_FILES = \ - Cvc3Exception \ - TypecheckException \ - SoundException \ - EvalException \ - CLException \ - ParserException \ - SmtlibException \ - DebugException \ - Embedded \ - EmbeddedManager \ - InputLanguage \ - QueryResult \ - SatResult \ - FormulaValue \ - Expr \ - ExprMut \ - ExprManager \ - ExprManagerMut \ - Type \ - TypeMut \ - Op \ - OpMut \ - Rational \ - RationalMut \ - Theorem \ - TheoremMut \ - Proof \ - ProofMut \ - Context \ - ContextMut \ - Flag \ - Flags \ - FlagsMut \ - Statistics \ - StatisticsMut \ - ValidityChecker - -# java files of the test program -TEST_FILES = Test -# java files of the stand alone program -PROG_FILES = TimeoutHandler Cvc3 -# all java files, library and stand alone -JAVA_FILES = JniUtils $(LIB_FILES) $(TEST_FILES) $(PROG_FILES) -# generated files -JNI_CPP_FILES = \ - EmbeddedManager.cpp \ - Expr.cpp \ - ExprMut.cpp \ - ExprManager.cpp \ - ValidityChecker.cpp -# Type.cpp \ -# TypeMut.cpp \ -# Op.cpp \ -# OpMut.cpp \ -# Rational.cpp \ -# RationalMut.cpp \ -# Theorem.cpp \ -# TheoremMut.cpp \ -# Proof.cpp \ -# ProofMut.cpp \ -# Context.cpp \ -# ContextMut.cpp \ -# Flag.cpp \ -# Flags.cpp \ -# FlagsMut.cpp \ -# Statistics.cpp \ -# StatisticsMut.cpp \ -# non-generated files -SRC_CPP_FILES = src/cvc3/JniUtils.cpp -# all cpp files (to compile) -CPP_FILES = $(SRC_CPP_FILES) $(JNI_CPP_FILES) - -dist_libcvc4compatjni_la_SOURCES = $(SRC_CPP_FILES) include/cvc3/JniUtils.h -nodist_libcvc4compatjni_la_SOURCES = $(JNI_CPP_FILES) - -EXTRA_DIST = \ - formula_value.h \ - create_impl.py \ - Cvc3_manifest \ - $(JNI_CPP_FILES:%.cpp=src/cvc3/%_impl.cpp) \ - $(JAVA_FILES:%=src/cvc3/%.java) - -# compile each cpp file -$(JNI_CPP_FILES): %.cpp: src/cvc3/%_impl.cpp $(builddir)/cvc3/%.h include/cvc3/JniUtils.h - $(AM_V_GEN)$(PYTHON) $(srcdir)/create_impl.py \ - cvc3/$*.h \ - $(srcdir)/src/cvc3/$*_impl.cpp \ - $*.cpp - -JniUtils.lo: src/cvc3/JniUtils.cpp .headers - $(AM_V_CXX)$(LTCXXCOMPILE) -c $(JAVA_INCLUDES) $(JAVA_CPPFLAGS) -I . -o $@ $< -%.lo: %.cpp .headers - $(AM_V_CXX)$(LTCXXCOMPILE) -c $(JAVA_INCLUDES) $(JAVA_CPPFLAGS) -I . -o $@ $< - -$(LIB_FILES:%=classes/cvc3/%.class) classes/cvc3/JniUtils.class: .classes -.classes: - $(AM_V_GEN)mkdir -p classes && $(JAVAC) -source 1.6 -target 1.6 -sourcepath $(srcdir)/src -d classes $(LIB_FILES:%=$(srcdir)/src/cvc3/%.java) - @touch .classes -.headers: $(LIB_FILES:%=cvc3/%.h) - @touch .headers -$(LIB_FILES:%=cvc3/%.h): %.h: classes/%.class .cvc3dir - $(AM_V_GEN)$(JAVAH) -jni -force -classpath classes -o $@ cvc3.$(@:cvc3/%.h=%) -.cvc3dir: - @mkdir -p cvc3 && touch $@ -CVC4compat.jar: $(LIB_FILES:%=classes/cvc3/%.class) classes/cvc3/JniUtils.class - $(AM_V_GEN)$(JAR) cf $@ -C classes . - -clean-local: - rm -fr classes cvc3 -MOSTLYCLEANFILES = .cvc3dir .classes .headers CVC4compat.jar $(JNI_CPP_FILES) diff --git a/src/bindings/compat/java/create_impl.py b/src/bindings/compat/java/create_impl.py deleted file mode 100644 index 875c8dd45..000000000 --- a/src/bindings/compat/java/create_impl.py +++ /dev/null @@ -1,432 +0,0 @@ -#!/usr/bin/env python - -import sys -import os -import re - - -### output cpp file - -# qualifiers: -# c : embedded constant -# m : embedded mutable -# n : native -# plus: -# v : vector -# vv : vector vector -# vvv : vector vector vector - -# types: -# - native: void, bool, int, string -# - objects: the rest - -def is_native(arg_qual): - return (arg_qual[0] == 'n') - -def is_mutable(arg_qual): - return (arg_qual[0] == 'm') - -def is_const(arg_qual): - return (arg_qual[0] == 'c') - -def forall(p, s): - for x in s: - if not p(s): - return False - - return True - -def check_arg_qual(arg_qual): - return \ - (is_native(arg_qual) or is_mutable(arg_qual) or is_const(arg_qual)) \ - and \ - forall(lambda q: q == 'v', arg_qual[1:]) - -def is_vector(arg_qual): - return (len(arg_qual) > 1 and arg_qual[1] == 'v') - -def is_vector2(arg_qual): - return (is_vector(arg_qual) and len(arg_qual) > 2 and arg_qual[2] == 'v') - -def is_vector3(arg_qual): - return (is_vector2(arg_qual) and len(arg_qual) > 3 and arg_qual[3] == 'v') - - -# returns the jni type corresponding to the pseudo type signature -def arg_type_to_java(arg): - arg_qual, arg_type, arg_name = arg - check_arg_qual(arg_qual); - if arg_type == "jobject": - if (not is_native(arg_qual)) or is_vector(arg_qual): - print("Error: native defined in implementation with qualifier: " + arg_qual) - sys.exit(1) - return "jobject" - elif arg_type == "bool": - if not is_native(arg_qual): - print("Error: bool defined in implementation with qualifier: " + arg_qual) - sys.exit(1) - if is_vector(arg_qual): - return "jbooleanArray" - else: - return "jboolean" - elif arg_type == "int": - if not is_native(arg_qual): - print("Error: int defined in implementation with qualifier: " + arg_qual) - sys.exit(1) - if is_vector(arg_qual): - return "jintArray" - else: - return "jint" - elif arg_type == "string": - if not is_native(arg_qual): - print("Error: string defined in implementation with qualifier: " + arg_qual) - sys.exit(1) - if is_vector(arg_qual): - return "jobjectArray" - else: - return "jstring" - else: - if is_vector(arg_qual): - return "jobjectArray" - else: - return "jobject" - -def print_unembed_arg(cpp_file, arg): - arg_qual, arg_type, arg_name = arg - check_arg_qual(arg_qual); - if arg_type == "jobject": - () - elif arg_type == "bool": - if is_vector3(arg_qual): - cpp_file.write(" vector<vector<vector<bool> > > " + arg_name \ - + "(toCppVVV(env, j" + arg_name + "));\n"); - elif is_vector2(arg_qual): - cpp_file.write(" vector<vector<bool> > " + arg_name \ - + "(toCppVV(env, j" + arg_name + "));\n"); - elif is_vector(arg_qual): - cpp_file.write(" vector<bool> " + arg_name \ - + "(toCppV(env, j" + arg_name + "));\n"); - else: - cpp_file.write(" bool " + arg_name + "(j" + arg_name + ");\n"); - elif arg_type == "int": - if is_vector3(arg_qual): - cpp_file.write(" vector<vector<vector<int> > > " + arg_name \ - + "(toCppVVV(env, j" + arg_name + "));\n"); - elif is_vector2(arg_qual): - cpp_file.write(" vector<vector<int> > " + arg_name \ - + "(toCppVV(env, j" + arg_name + "));\n"); - elif is_vector(arg_qual): - cpp_file.write(" vector<int> " + arg_name \ - + "(toCppV(env, j" + arg_name + "));\n"); - else: - cpp_file.write(" int " + arg_name + "(j" + arg_name + ");\n"); - elif arg_type == "string": - if is_vector3(arg_qual): - cpp_file.write(" vector<vector<vector<string> > > " + arg_name \ - + "(toCppVVV(env, j" + arg_name + "));\n"); - elif is_vector2(arg_qual): - cpp_file.write(" vector<vector<string> > " + arg_name \ - + "(toCppVV(env, j" + arg_name + "));\n"); - elif is_vector(arg_qual): - cpp_file.write(" vector<string> " + arg_name \ - + "(toCppV(env, j" + arg_name + "));\n"); - else: - cpp_file.write(" string " + arg_name + "(toCpp(env, j" + arg_name + "));\n"); - else: - if is_vector3(arg_qual): - cpp_file.write(" vector<vector<vector<" + arg_type + "> > > " + arg_name \ - + "(toCppVVV<" + arg_type + ">(env, j" + arg_name + "));\n"); - elif is_vector2(arg_qual): - cpp_file.write(" vector<vector<" + arg_type + "> > " + arg_name \ - + "(toCppVV<" + arg_type + ">(env, j" + arg_name + "));\n"); - elif is_vector(arg_qual): - cpp_file.write(" vector<" + arg_type + "> " + arg_name \ - + "(toCppV<" + arg_type + ">(env, j" + arg_name + "));\n"); - elif is_const(arg_qual): - cpp_file.write(" const " + arg_type + "* " + arg_name \ - + " = unembed_const<" + arg_type + ">(env, j" + arg_name + ");\n"); - else: - cpp_file.write(" " + arg_type + "* " + arg_name \ - + " = unembed_mut<" + arg_type + ">(env, j" + arg_name + ");\n"); - -def print_unembed_args(cpp_file, args): - for arg in args: - print_unembed_arg(cpp_file, arg) - - -# check that declaration and definition signatures match -def match_signatures(decl, defn): - decl_result, decl_args = decl - def_result, def_args, _ = defn - if decl_result != def_result or len(decl_args) != len(def_args): - return False - for i in range(0, len(decl_args)): - java_type = arg_type_to_java(def_args[i]) - #print java_type - if decl_args[i] != java_type: - return False - return True - -def print_header(cpp_file, includes): - cpp_file.writelines(map(lambda name: "#include " + name + "\n", includes)) - - cpp_file.writelines( - [ - "#include \"JniUtils.h\"\n", - "\n", - "using namespace std;\n", - "using namespace Java_cvc3_JniUtils;\n", - "using namespace CVC3;\n", - "\n" - ]) - -def print_signature(cpp_file, name, result, args): - arg_strings = ["JNIEnv* env", "jclass"] - arg_strings.extend( \ - map(lambda arg: \ - arg_type_to_java(arg) \ - + " j" + arg[2], args)) - cpp_file.writelines([ - "JNIEXPORT " + result + " JNICALL " + name + "\n", - "(" + ", ".join(arg_strings) + ")\n"]) - -def print_definition(cpp_file, name, defn): - result, args, body = defn - cpp_file.writelines(["extern \"C\"\n"]) - print_signature(cpp_file, name, result, args) - cpp_file.writelines([ - "{\n", - " try {\n"]) - print_unembed_args(cpp_file, args) - cpp_file.writelines([ - " " + " ".join(body), - " } catch (const Exception& e) {\n", - " toJava(env, e);\n"]) - if result in [ "jobject", "jobjectArray", "jstring" ]: - cpp_file.writelines([" return NULL;\n"]) - elif result == "jboolean": - cpp_file.writelines([" return false;\n"]) - elif result == "jint": - cpp_file.writelines([" return -1;\n"]) - elif result != "void": - print("BUG: return type " + result + " is not handled in print_definition") - sys.exit(1) - cpp_file.writelines([" };\n", - "}\n\n"]) - -def print_cpp(cpp_name, declarations, definitions, includes): - try: - cpp_file = open(cpp_name, 'w') - - print_header(cpp_file, includes) - - #names = declarations.keys() - #names.sort() - for name in declarations[0]: - if name not in definitions: - #continue - print("Error: " + name + " is declared in header" \ - + " but not defined in implementation.") - sys.exit(1) - - declaration = declarations[1][name] - definition = definitions[name] - definitions.pop(name) - if not match_signatures(declaration, definition): - print("Error: signature for " + name \ - + " in definition and implementation do not match:") - print(declaration) - print (definition[0], definition[1]) - sys.exit(1) - - print_definition(cpp_file, name, definition) - - if not len(definitions) == 0: - print("Error: found definitions in implementation" \ - " without declaration in header file:") - print(definitions) - sys.exit(1) - - - except IOError as err: - error_nr, error_string = err - print ("Couldn't open " + cpp_name + ": " + error_string) - sys.exit(1) - - -### header file function declarations - -# header file function declaration: -# - name: function name -# - result: result type -# - args: list of argument types, except for the first two (JNIEnv*, jclass) -def register_declaration(declarations, name, result, args): - assert(name not in declarations[1]); - declarations[0].append(name) - declarations[1][name] = (result, args) - -# extract function signatures from generated JNI header file -def read_header(header_name): - # 0.: names of declared functions in same order as in input - # 1.: map from names to signature - declarations = ([], {}) - try: - header_file = open(header_name) - - line = header_file.readline() - while (line): - # look for start of signature - # declaration will look like: - # JNIEXPORT <result> JNICALL <name> (JNIENV *env, jclass, jobject); - # with an optional linebreak before the parameter list, and - # perhaps missing the "env" - if re.search("^JNIEXPORT", line): - # extract name and return type - elements = re.sub('[,();]+',' ',line).split(); - assert(elements[0] == "JNIEXPORT"); - assert(elements[2] == "JNICALL"); - name = elements[3] - result = elements[1] - - # If there are no more elements on this line, - # read and tokenize the next line - if len(elements) > 4: - elements = elements[4:] - else: - line = header_file.readline () - elements = re.sub('[,();]+',' ',line).split(); - - # extract argument types - assert(elements[0] == "JNIEnv"); - assert(elements[1] == "*" or elements[1] == "*env"); - assert(elements[2] == "jclass") - args = elements[3:] - - register_declaration(declarations, name, result, args) - - line = header_file.readline () - - header_file.close() - - - except IOError as err: - error_nr, error_string = err - print ("Couldn't open " + header_name + ": " + error_string) - sys.exit(1) - - return declarations - - - - -# function definitions: - -# cpp file function definition: -# - name: function name -# - result: result type -# - args: list of pairs of argument types and argument names, -# except for the first two (JNIEnv*, jclass) -def register_definition(definitions, name, result, args, body): - if name in definitions: - print("Error: redefinition of " + name + " in implementation.") - sys.exit(1) - - definitions[name] = (result, args, body) - #print_definition(name, declarations[name]) - -# extract function definition from implementation file -def read_impl(impl_name): - definitions = {} - includes = [] - try: - impl_file = open(impl_name) - - line = impl_file.readline() - while (line): - # look for include - if re.search("^INCLUDE:", line): - elements = line.split(); - assert(len(elements) == 2); - assert(elements[0] == "INCLUDE:") - includes.append(elements[1]) - line = impl_file.readline() - - #print line - # look for start of definition - elif re.search("^DEFINITION:", line): - #print line, - # get name - elements = line.split(); - if not (len(elements) == 2): - print("Error: misformed signature: " + line) - sys.exit(1) - - assert(elements[0] == "DEFINITION:") - name = elements[1] - - # get signature - line = impl_file.readline () - elements = line.split(); - assert(len(elements) > 0); - if not (len(elements) % 3 == 1): - print("Error: misformed signature for: " + name) - print(line) - sys.exit(1) - result = elements.pop(0) - args = [] - while len(elements) > 0: - argQual = elements.pop(0) - argType = elements.pop(0) - argName = elements.pop(0) - args.append((argQual, argType, argName)) - - # get body - body = [] - line = impl_file.readline () - while line and not re.search("^DEFINITION:", line): - body.append(line) - line = impl_file.readline() - - while body and body[len(body) - 1] == "\n": - body.pop(len(body) - 1) - assert(len(body) > 0) - - register_definition(definitions, name, result, args, body) - - else: - line = impl_file.readline() - - impl_file.close() - - except IOError as err: - error_nr, error_string = err - print ("Couldn't open " + impl_name + ": " + error_string) - sys.exit(1) - - return definitions, includes - - -# read name of input file -if (len(sys.argv) != 4): - print("Expected path to header, implementation, and target file.") - print("") - print("./create_impl.py <H_FILE> <IMPL_FILE> <CPP_FILE>") - - sys.exit(0) - -else: - #print(sys.argv) - header_name = sys.argv[1] - impl_name = sys.argv[2] - cpp_file = sys.argv[3] - - # extract information from header - declarations = read_header(header_name) - #print declarations - - # extract information from template - definitions, includes = read_impl(impl_name) - #print definitions - - # create implementation - print_cpp(cpp_file, declarations, definitions, includes) diff --git a/src/bindings/compat/java/formula_value.h b/src/bindings/compat/java/formula_value.h deleted file mode 100644 index efcd32eea..000000000 --- a/src/bindings/compat/java/formula_value.h +++ /dev/null @@ -1,39 +0,0 @@ -/*****************************************************************************/ -/*! - *\file formula_value.h - *\brief enumerated type for value of formulas - * - * Author: Alexander Fuchs - * - * Created: Fri Dec 07 08:00:00 2007 - * - * <hr> - * - * License to use, copy, modify, sell and/or distribute this software - * and its documentation for any purpose is hereby granted without - * royalty, subject to the terms and conditions defined in the \ref - * LICENSE file provided with this distribution. - * - * <hr> - */ -/*****************************************************************************/ - -#ifndef _cvc3__include__formulavalue_h_ -#define _cvc3__include__formulavalue_h_ - -namespace CVC3 { - -/*****************************************************************************/ -/* - * Type for truth value of formulas. - */ -/*****************************************************************************/ -typedef enum FormulaValue { - TRUE_VAL, - FALSE_VAL, - UNKNOWN_VAL -} FormulaValue; - -} - -#endif diff --git a/src/bindings/compat/java/include/cvc3/JniUtils.h b/src/bindings/compat/java/include/cvc3/JniUtils.h deleted file mode 100644 index 404774c62..000000000 --- a/src/bindings/compat/java/include/cvc3/JniUtils.h +++ /dev/null @@ -1,292 +0,0 @@ -#ifndef _java__cvc3__jni_utils_h_ -#define _java__cvc3__jni_utils_h_ - -#include <cassert> -#include <string> -#include <jni.h> -#include <typeinfo> -#include "compat/cvc3_compat.h" -//#include "vcl.h" -//#include "hash_map.h" -//#include "exception.h" - -#define DebugAssert(cond, str) assert(cond) - -namespace Java_cvc3_JniUtils { - - /// Embedding of c++ objects in java objects - - // generic delete function for any type T - template <class T> class DeleteEmbedded { - public: - static void deleteEmbedded(void* cobj) { - delete (T*) cobj; - } - }; - - typedef void (*TDeleteEmbedded)(void*); - - - // Encapsulates a c++ object so that: - // - (un)embedding casting is type safe - // - deallocation is automatic (if needed) - // This has probably quit a bit of overhead, because now for each - // wrapper object (even if only a temporary reference) an instance - // of Embedded is created. - // But considering the above two benefits it should be worth it - // because it should simplify maintenance quite a bit, - // as changes in the cvc API should lead to assertion failures - // instead of strange bugs. - class Embedded { - private: - // the actual embedded c++ object, - // as void* to make Embedded independent of its type - void* d_cobj; - - // the type info of d_cobj, - // to make sure that later unembeddings are type safe - // actually only needed in debugging, so might be guarded with IF_DEBUG - const std::type_info& d_typeInfo; - - // the type correct delete function for d_cobj, - // or NULL if this embedding is merely a reference - // and not responsible for its deallocation - TDeleteEmbedded d_delete; - - public: - Embedded(void* cobj, const std::type_info& ti, TDeleteEmbedded del) : - d_cobj(cobj), d_typeInfo(ti), d_delete(del) { - assert(d_cobj != NULL); - } - - ~Embedded() { - assert(d_cobj != NULL); - if (d_delete != NULL) d_delete(d_cobj); - } - - const void* getCObj() const { - return d_cobj; - } - - const std::type_info& getType() const { - return d_typeInfo; - } - }; - - - - // embed functions - - // embeds a c++ object of type T into a jobject - // by first wrapping it into an Embedded object. - template <class T> jobject embed(JNIEnv* env, T* cobj, const std::type_info& ti, - TDeleteEmbedded del) { - DebugAssert(cobj != NULL, "JniUtils::embed: null object given"); - Embedded* embedded = new Embedded((void*)cobj, ti, del); - return (jobject)env->NewDirectByteBuffer(embedded, sizeof(Embedded)); - } - - // embeds a constant reference to a c++ object into a jobject - template <class T> jobject embed_const_ref(JNIEnv* env, const T* cobj) { - DebugAssert(cobj != NULL, "JniUtils::embed_const: null object given"); - return embed<T>(env, (T*) cobj, typeid(cobj), NULL); - } - - // embeds a mutable reference to a c++ object into a jobject - template <class T> jobject embed_mut_ref(JNIEnv* env, T* cobj) { - DebugAssert(cobj != NULL, "JniUtils::embed_mut_ref: null object given"); - return embed<T>(env, (T*) cobj, typeid(cobj), NULL); - } - - // embeds a fresh copy of a (probably temporary) c++ object into a jobject - template <class T> jobject embed_copy(JNIEnv* env, const T& cobj) { - DebugAssert(&cobj != NULL, "JniUtils::embed_copy: null object given"); - T* copy = new T(cobj); - assert(copy != NULL); - return embed<T>(env, copy, typeid(copy), &DeleteEmbedded<T>::deleteEmbedded); - } - - // embeds a c++ object into a jobject, - // and takes over the responsibility to deallocate it - template <class T> jobject embed_own(JNIEnv* env, T* cobj) { - DebugAssert(cobj != NULL, "JniUtils::embed_own: null object given"); - return embed<T>(env, cobj, typeid(cobj), &DeleteEmbedded<T>::deleteEmbedded); - } - - - // unembed functions - - // extract Embedded* from a jobject - Embedded* unembed(JNIEnv* env, jobject jobj); - - // extract a constant c++ object of type T from a jobject - template <class T> const T* unembed_const(JNIEnv* env, jobject jobj) { - Embedded* embedded = unembed(env, jobj); - return (const T*) embedded->getCObj(); - } - - // extract a mutable c++ object of type T from a jobject - template <class T> T* unembed_mut(JNIEnv* env, jobject jobj) { - Embedded* embedded = unembed(env, jobj); - // check that the wrapped object is not const - DebugAssert(embedded->getType() == typeid(T*), - "JniUtils::unembed_mut: type mismatch"); - return (T*) embedded->getCObj(); - } - - - // delete embedded - - // delete the Embedded object contained in a jobject, - // and also destruct the wrapped c++ object if necessary. - void deleteEmbedded(JNIEnv* env, jobject jobj); - - - - - /// Conversions between c++ and java - - // bool - bool toCpp(jboolean j); - - // string - jstring toJava(JNIEnv* env, const std::string& cstring); - jstring toJava(JNIEnv* env, const char* cstring); - std::string toCpp(JNIEnv* env, const jstring& string); - - // enums - jstring toJava(JNIEnv* env, CVC3::QueryResult result); - jstring toJava(JNIEnv* env, CVC3::FormulaValue result); - jstring toJava(JNIEnv* env, CVC3::InputLanguage result); - CVC3::InputLanguage toCppInputLanguage(JNIEnv* env, const std::string& lang); - - // exceptions - void toJava(JNIEnv* env, const CVC3::Exception& e); - - // vectors - template <class T> jobjectArray toJavaVCopy(JNIEnv* env, const std::vector<T>& v) { - jobjectArray jarray = (jobjectArray) - env->NewObjectArray( - v.size(), - env->FindClass("java/lang/Object"), - NULL); - - for (size_t i = 0; i < v.size(); ++i) { - env->SetObjectArrayElement(jarray, i, embed_copy<T>(env, v[i])); - } - - return jarray; - } - - template <class T> jobjectArray toJavaVConstRef(JNIEnv* env, const std::vector<T>& v) { - jobjectArray jarray = (jobjectArray) - env->NewObjectArray( - v.size(), - env->FindClass("java/lang/Object"), - NULL); - - for (size_t i = 0; i < v.size(); ++i) { - env->SetObjectArrayElement(jarray, i, embed_const_ref<T>(env, &v[i])); - } - - return jarray; - } - - template<class T> - jobjectArray - toJavaVVConstRef(JNIEnv* env, const std::vector<std::vector<T> >& v) - { - jobjectArray jarray = (jobjectArray) env->NewObjectArray(v.size(), - env->FindClass("[Ljava/lang/Object;"), NULL); - for (size_t i = 0; i < v.size(); ++i) - { - env->SetObjectArrayElement(jarray, i, toJavaVConstRef(env, v[i])); - } - return jarray; - } - - template <class T> std::vector<T> toCppV(JNIEnv* env, const jobjectArray& jarray) { - std::vector<T> v; - int length = env->GetArrayLength(jarray); - for (int i = 0; i < length; ++i) { - v.push_back(*unembed_const<T>(env, env->GetObjectArrayElement(jarray, i))); - } - return v; - } - - template <class T> std::vector<std::vector<T> > toCppVV(JNIEnv* env, const jobjectArray& jarray) { - std::vector<std::vector<T> > v; - int length = env->GetArrayLength(jarray); - for (int i = 0; i < length; ++i) { - jobjectArray jsub = static_cast<jobjectArray>(env->GetObjectArrayElement(jarray, i)); - v.push_back(toCppV<T>(env, jsub)); - } - return v; - } - - template <class T> std::vector<std::vector<std::vector<T> > > - toCppVVV(JNIEnv* env, const jobjectArray& jarray) { - std::vector<std::vector<std::vector<T> > > v; - int length = env->GetArrayLength(jarray); - for (int i = 0; i < length; ++i) { - jobjectArray jsub = static_cast<jobjectArray>(env->GetObjectArrayElement(jarray, i)); - v.push_back(toCppVV<T>(env, jsub)); - } - return v; - } - - // string vectors - std::vector<std::string> toCppV(JNIEnv* env, const jobjectArray& jarray); - std::vector<std::vector<std::string> > toCppVV(JNIEnv* env, const jobjectArray& jarray); - std::vector<std::vector<std::vector<std::string> > > toCppVVV(JNIEnv* env, const jobjectArray& jarray); - jobjectArray toJavaV(JNIEnv* env, const std::vector<std::string>& v); - - // primitive vectors - std::vector<bool> toCppV(JNIEnv* env, const jbooleanArray& jarray); - - - // hash map - /*template <class K, class V> jobjectArray toJavaHCopy(JNIEnv* env, const Hash::hash_map<K, V>& hm) { - jobjectArray jarray = (jobjectArray) - env->NewObjectArray( - hm.size() * 2, - env->FindClass("java/lang/Object"), - NULL); - - int i = 0; - typename Hash::hash_map<K, V>::const_iterator it; - for (it = hm.begin(); it != hm.end(); ++it) { - assert(i < env->GetArrayLength(jarray)); - env->SetObjectArrayElement(jarray, i, embed_copy<K>(env, it->first)); - ++i; - assert(i < env->GetArrayLength(jarray)); - env->SetObjectArrayElement(jarray, i, embed_copy<V>(env, it->second)); - ++i; - } - return jarray; - }*/ - - template <class V> jobjectArray toJavaHCopy(JNIEnv* env, const CVC3::ExprMap<V>& hm) { - jobjectArray jarray = (jobjectArray) - env->NewObjectArray( - hm.size() * 2, - env->FindClass("java/lang/Object"), - NULL); - - int i = 0; - typename CVC3::ExprMap<V>::const_iterator it; - for (it = hm.begin(); it != hm.end(); ++it) { - assert(i < env->GetArrayLength(jarray)); - env->SetObjectArrayElement(jarray, i, embed_copy<CVC3::Expr>(env, it->first)); - ++i; - assert(i < env->GetArrayLength(jarray)); - env->SetObjectArrayElement(jarray, i, embed_copy<V>(env, it->second)); - ++i; - } - return jarray; - } - -} - - -#endif diff --git a/src/bindings/compat/java/src/cvc3/CLException.java b/src/bindings/compat/java/src/cvc3/CLException.java deleted file mode 100644 index 5c1305006..000000000 --- a/src/bindings/compat/java/src/cvc3/CLException.java +++ /dev/null @@ -1,13 +0,0 @@ -package cvc3; - -import java.util.*; - -/** mirrors CVC3::CLException */ -class CLException extends Cvc3Exception { - - private final static long serialVersionUID = 1L; - - public CLException(String message) { - super(message); - } -} diff --git a/src/bindings/compat/java/src/cvc3/Context.java b/src/bindings/compat/java/src/cvc3/Context.java deleted file mode 100644 index 7c3dc5fa5..000000000 --- a/src/bindings/compat/java/src/cvc3/Context.java +++ /dev/null @@ -1,17 +0,0 @@ -package cvc3; - -import java.util.*; - -public class Context extends Embedded { - // jni methods - - /// Constructor - - public Context(Object Context, EmbeddedManager embeddedManager) { - super(Context, embeddedManager); - } - - - /// API (immutable) - -} diff --git a/src/bindings/compat/java/src/cvc3/ContextMut.java b/src/bindings/compat/java/src/cvc3/ContextMut.java deleted file mode 100644 index eadd3932d..000000000 --- a/src/bindings/compat/java/src/cvc3/ContextMut.java +++ /dev/null @@ -1,18 +0,0 @@ -package cvc3; - -import java.util.*; - -public class ContextMut extends Context { - // jni methods - - - /// Constructor - - // create embedded object - public ContextMut(Object ContextMut, EmbeddedManager embeddedManager) { - super(ContextMut, embeddedManager); - } - - - /// API (mutable) -} diff --git a/src/bindings/compat/java/src/cvc3/ContextMut_impl.cpp b/src/bindings/compat/java/src/cvc3/ContextMut_impl.cpp deleted file mode 100644 index e69de29bb..000000000 --- a/src/bindings/compat/java/src/cvc3/ContextMut_impl.cpp +++ /dev/null diff --git a/src/bindings/compat/java/src/cvc3/Context_impl.cpp b/src/bindings/compat/java/src/cvc3/Context_impl.cpp deleted file mode 100644 index e69de29bb..000000000 --- a/src/bindings/compat/java/src/cvc3/Context_impl.cpp +++ /dev/null diff --git a/src/bindings/compat/java/src/cvc3/Cvc3.java b/src/bindings/compat/java/src/cvc3/Cvc3.java deleted file mode 100644 index f0a80aba3..000000000 --- a/src/bindings/compat/java/src/cvc3/Cvc3.java +++ /dev/null @@ -1,222 +0,0 @@ -package cvc3; - -import java.util.*; - -class Cvc3 { - static boolean useObjManager = false; - - static void timeoutHandler(Object o) { - System.out.println("self-timeout."); - System.exit(1); - } - - public static void main(String args[]) throws Cvc3Exception { - - ValidityChecker vc = null; - FlagsMut flags = null; - try { - flags = ValidityChecker.createFlags(null); - - // parse input - String fileName = ""; - try { - fileName = parse_args(args, flags); - } catch(CLException e) { - System.err.print("*** " + e); - System.err.println("\n\nRun with -help option for usage information."); - System.exit(1); - } - - // Set the timeout, if given in the command line options - int timeout = flags.getFlag("timeout").getInt(); - if (timeout > 0) { - new Timer().schedule(new TimeoutHandler(), timeout * 1000); - } - - /* - * Create and run the validity checker - */ - - // Debugging code may throw an exception - vc = ValidityChecker.create(flags); - flags.delete(); - - // -h flag sets "help" to false (+h would make it true, but that's - // not what the user normally types in). - if(!vc.getFlags().getFlag("help").getBool()) { - String programName = "cvc3"; //:TODO: - printUsage(vc.getFlags(), programName); - System.exit(0); - } - - // Similarly, -version sets the flag "version" to false - if(!vc.getFlags().getFlag("version").getBool()) { - System.out.println("This is CVC3 version " + "UNKNOWN"); //:TODO: - System.out.println("Copyright (C) 2003-2006 by the Board of Trustees of Leland Stanford Junior"); - System.out.println("University, New York University, and the University of Iowa."); - System.out.println(); - System.out.print("THIS SOFTWARE PROVIDED AS-IS, WITHOUT ANY WARRANTIES. "); - System.out.println("USE IT AT YOUR OWN RISK."); - System.out.println(); - System.exit(0); - } - - // Test if the output language is correctly specified; if not, an - // exception will be thrown - vc.getExprManager().getOutputLanguage(); - // Read the input file - vc.loadFile(fileName, vc.getExprManager().getInputLanguage()); - - // Print statistics - if (vc.getFlags().getFlag("stats").getBool()) { - vc.printStatistics(); - } - } catch (Cvc3Exception e) { - System.err.println("*** Fatal exception: " + e); - System.exit(1); - } finally { - if (flags != null) flags.delete(); - if (vc != null) vc.delete(); - } - - // to avoid waiting for timer to finish - System.exit(0); - } - - - - // evaluates command line flags, returns problem file name - public static String parse_args(String[] args, FlagsMut flags) throws Cvc3Exception { - // keep track that exactly one file name is given - String fileName = ""; - boolean seenFileName = false; - - // iterate over the arguments - for (int i = 0; i < args.length; ++i) { - String arg = args[i]; - - // A command-line option - if (arg.startsWith("-") || arg.startsWith("+")) { - List names = flags.getFlags(arg.substring(1)); - - // no match - if (names.size() == 0) - throw new CLException(arg + " does not match any known option"); - - // ambiguous - else if (names.size() > 1) { - StringBuffer s = new StringBuffer(); - s.append(arg + " is ambiguous. Possible matches are:\n"); - for (Iterator name = names.iterator(); name.hasNext(); ) { - s.append(" " + name.next() + "\n"); - } - throw new CLException(s.toString()); - } - - // Single match; process the option by name, type, and parameters - else { - String name = (String) names.iterator().next(); - boolean val = arg.startsWith("+"); - Flag flag = flags.getFlag(name); - - if (flag.isBool()) { - flags.setFlag(name, val); - } - - else if (flag.isInt()) { - ++i; - if (i >= args.length) - throw new CLException (arg + " (-" + name + ") expects an integer argument."); - int parameter = Integer.parseInt(args[i]); - flags.setFlag(name, parameter); - } - - else if (flag.isString()) { - ++i; - if (i >= args.length) - throw new CLException (arg + " (-" + name + ") expects a string argument."); - flags.setFlag(name, args[i]); - } - - // else if (flag.isStringVec()) - // { - // bool hasMore = iter.MoveNext(); - // if (!hasMore) - // { - // throw new CLException - // (arg + " (-" + name + ") expects a string argument."); - // } - // flags.setFlag(name, (string)iter.Current, val); - // } - - else { - throw new CLException("parse_args: Bad flag : " + name); - } - } - } - - // no flag, so should be a file name - // second no flag argument - else if(seenFileName) { - throw new CLException("More than one file name given: " + fileName + " and " + arg); - } - - // first no flag argument - else { - fileName = arg; - seenFileName = true; - } - } - - return fileName; - } - - - public static void printUsage(Flags flags, String programName) throws Cvc3Exception { - System.out.println("Usage: " + programName + " [options]"); - System.out.println(programName + " will read the input from STDIN and "); - System.out.println("print the result on STDOUT."); - System.out.println("Boolean (b) options are set 'on' by +option and 'off' by -option"); - System.out.println("(for instance, +sat or -sat)."); - System.out.println("Integer (i), string (s) and vector (v) options "); - System.out.println("require a parameter, e.g. -width 80"); - System.out.println("Also, (v) options can appear multiple times setting args on and off,"); - System.out.println("as in +trace \"enable this\" -trace \"disable that\"."); - System.out.println("Option names can be abbreviated to the shortest unambiguous prefix."); - System.out.println(); - System.out.println("The options are:"); - - // Get all the names of options (they all match the empty string) - List names = flags.getFlags(""); - for (Iterator i = names.iterator(); i.hasNext(); ) { - String name = (String) i.next(); - Flag flag = flags.getFlag(name); - String prefix = ""; - if (flag.isNull()) { - prefix = " (null)"; - } - else if (flag.isBool()) { - String enabled = flag.getBool() ? "+" : "-"; - prefix = " (b) " + enabled + name; - } - else if (flag.isInt()) { - prefix = " (i) -" + name + " " + flag.getInt(); - } - else if (flag.isString()) { - prefix = " (s) -" + name + " " + flag.getString(); - } - else if (flag.isStringVec()) { - prefix = " (s) -" + name; - } - else { - assert(false); - } - - while (prefix.length() < 21) { - prefix += " "; - } - System.out.println(prefix + " " + flag.getHelp()); - } - System.out.println(); - } -} diff --git a/src/bindings/compat/java/src/cvc3/Cvc3Exception.java b/src/bindings/compat/java/src/cvc3/Cvc3Exception.java deleted file mode 100644 index bd189a1a1..000000000 --- a/src/bindings/compat/java/src/cvc3/Cvc3Exception.java +++ /dev/null @@ -1,12 +0,0 @@ -package cvc3; - - -/** mirrors CVC3::Exception */ -public class Cvc3Exception extends RuntimeException { - - private final static long serialVersionUID = 1L; - - public Cvc3Exception(String message) { - super(message); - } -} diff --git a/src/bindings/compat/java/src/cvc3/DebugException.java b/src/bindings/compat/java/src/cvc3/DebugException.java deleted file mode 100644 index bc711a030..000000000 --- a/src/bindings/compat/java/src/cvc3/DebugException.java +++ /dev/null @@ -1,13 +0,0 @@ -package cvc3; - -import java.util.*; - -/** mirrors CVC3::DebugException */ -public class DebugException extends Cvc3Exception { - - private final static long serialVersionUID = 1L; - - public DebugException(String message) { - super(message); - } -} diff --git a/src/bindings/compat/java/src/cvc3/Embedded.java b/src/bindings/compat/java/src/cvc3/Embedded.java deleted file mode 100644 index 742e128d8..000000000 --- a/src/bindings/compat/java/src/cvc3/Embedded.java +++ /dev/null @@ -1,114 +0,0 @@ -package cvc3; - -import java.util.*; -import java.io.*; - -/** Wrapper for a c++ object as a java Object. - - see README for details on garbage collection, - i.e. interplay of delete, finalize, and EmbeddedManager to destruct - the embedded c++ object. */ -public abstract class Embedded { - - // load jni c++ library - static { - System.loadLibrary("cvc4"); - System.loadLibrary("cvc4parser"); - System.loadLibrary("cvc4compatjni"); - - /* - // for debugging: stop here by waiting for a key press, - // and attach c++ debugger - System.out.println("Loadded cvc3jni"); - - try { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - br.readLine(); - } catch (IOException ioe) { - } - */ - } - - - /// Attributes - - - // embedded object - protected Object d_embedded; - - // embedded object manager - private final EmbeddedManager d_embeddedManager; - - - /// Constructor - - - // initialize with embedded object and EmbeddedManager - // if EmbeddedManager is null then delete must be called before - // Embedded is garbage collected - protected Embedded(Object Embedded, EmbeddedManager embeddedManager) { - //System.out.println("Create: Embedded"); - assert(Embedded != null); - d_embedded = Embedded; - d_embeddedManager = embeddedManager; - } - - // access to embedded c++ object - public synchronized Object embedded() { - return d_embedded; - } - - // access to EmbeddedManager (might be null if none used) - public EmbeddedManager embeddedManager() { - return d_embeddedManager; - } - - // check if already destructed - // (or queued for destruction in embeddedManager) - public synchronized boolean isDeleted() { - return (d_embedded == null); - } - - // delete embedded object or enqueue it for deletion - public synchronized void delete() throws Cvc3Exception { - if (isDeleted()) return; - - // no embedded manager, so should be in main thread: - // destruct right away - if (d_embeddedManager == null) { - EmbeddedManager.jniDelete(d_embedded); - } - // could be in finalizer, so queue in embeddedManager; - // unless the embeddedManager is already deleted, - // then its (and this') ValidityChecker has been delete. - // assuming this is an Expr or a Theorem it's embedded object - // has then already been deleted as well. - else { - synchronized(d_embeddedManager) { - if (!d_embeddedManager.isDeleted()) { - d_embeddedManager.register(this); - } - } - } - d_embedded = null; - } - - // ensure that delete is called if finalization occurs - public void finalize() throws Throwable { - try { - // no embeddedManager, so deleted should have been called - if (d_embeddedManager == null) { - if (d_embedded != null) { - assert(false); -// System.out.println("Embedded.Finalizer: should never be called"); - throw new Error("Embedded.Finalizer: should never be called"); - } - } - else if (!d_embeddedManager.isDeleted()) { - delete(); - } - } finally { - super.finalize(); - } - } -} diff --git a/src/bindings/compat/java/src/cvc3/EmbeddedManager.java b/src/bindings/compat/java/src/cvc3/EmbeddedManager.java deleted file mode 100644 index 70b364adf..000000000 --- a/src/bindings/compat/java/src/cvc3/EmbeddedManager.java +++ /dev/null @@ -1,78 +0,0 @@ -package cvc3; - -import java.util.*; - -/** Helps to enforce deallocation of a set of embedded objects - - See also Embedded.java - - Cvc3 requires on the C++ level that the ValidityChecker is destructed - last, after all other Cvc3 objects (i.e. subclasses of Embedded). - - A 'simple' (but not too cheap) way to achieve this effect of deterministic - deallocation in Java without introducing much error prone code is to - register all embedded objects (except for the ValidityChecker) - with an EmbeddedManager. - - When the ValidityChecker is deleted/finalized it uses the EmbeddedManager - to destruct all other Cvc3 objects first. -*/ -public class EmbeddedManager { - // jni methods - - // call the destructor of the c++ object - public static native void jniDelete(Object Embedded) throws Cvc3Exception; - - - // c++ objects which have been registered for deletion - private List d_deleted; - - - /// Constructor - - // delete must be called before EmbeddedManager is garbage collected - public EmbeddedManager() { - d_deleted = new ArrayList(); - } - - - /// Methods - - // true iff delete has been called - public synchronized boolean isDeleted() { - return (d_deleted == null); - } - - // signals that the ValidityChecker destructs itself - public synchronized void delete() throws Cvc3Exception { - d_deleted = null; - } - - // registers a c++ object for deletion - public synchronized void register(Embedded embedded) { - d_deleted.add(embedded.embedded()); - } - - // destruct all registered objects - public synchronized void cleanUp() throws Cvc3Exception { - assert(!isDeleted()); - Iterator i = d_deleted.iterator(); - while (i.hasNext()) { - jniDelete(i.next()); - } - d_deleted.clear(); - } - - // ensure that all embedded objects are deallocated eventually - public void finalize() throws Throwable { - try { - if (!isDeleted()) { - assert(false); -// System.out.println("EmbeddedManager.Finalizer: should never be called"); - throw new Error("EmbeddedManager.Finalizer: should never be called"); - } - } finally { - super.finalize(); - } - } -} diff --git a/src/bindings/compat/java/src/cvc3/EmbeddedManager_impl.cpp b/src/bindings/compat/java/src/cvc3/EmbeddedManager_impl.cpp deleted file mode 100644 index 9f01b9969..000000000 --- a/src/bindings/compat/java/src/cvc3/EmbeddedManager_impl.cpp +++ /dev/null @@ -1,3 +0,0 @@ -DEFINITION: Java_cvc3_EmbeddedManager_jniDelete -void n jobject obj -deleteEmbedded(env, jobj); diff --git a/src/bindings/compat/java/src/cvc3/EvalException.java b/src/bindings/compat/java/src/cvc3/EvalException.java deleted file mode 100644 index 6b85d92d8..000000000 --- a/src/bindings/compat/java/src/cvc3/EvalException.java +++ /dev/null @@ -1,13 +0,0 @@ -package cvc3; - -import java.util.*; - -/** mirrors CVC3::EvalException */ -public class EvalException extends Cvc3Exception { - - private final static long serialVersionUID = 1L; - - public EvalException(String message) { - super(message); - } -} diff --git a/src/bindings/compat/java/src/cvc3/Expr.java b/src/bindings/compat/java/src/cvc3/Expr.java deleted file mode 100644 index 409319963..000000000 --- a/src/bindings/compat/java/src/cvc3/Expr.java +++ /dev/null @@ -1,573 +0,0 @@ -package cvc3; - -import java.util.*; - -public class Expr extends Embedded { - // jni methods - private static native boolean - jniEquals(Object Expr1, Object Expr2) throws Cvc3Exception; - private static native String - jniToString(Object Expr) throws Cvc3Exception; - private static native void - jniPrint(Object Expr, String InputLanguage, boolean dagify) throws Cvc3Exception; - private static native int - jniHash(Object Expr) throws Cvc3Exception; - - private static native String - jniGetKind(Object Expr) throws Cvc3Exception; - - private static native boolean - jniIsFalse(Object Expr) throws Cvc3Exception; - private static native boolean - jniIsTrue(Object Expr) throws Cvc3Exception; - private static native boolean - jniIsBoolConst(Object Expr) throws Cvc3Exception; - private static native boolean - jniIsVar(Object Expr) throws Cvc3Exception; - private static native boolean - jniIsBoundVar(Object Expr) throws Cvc3Exception; - private static native boolean - jniIsString(Object Expr) throws Cvc3Exception; - private static native boolean - jniIsClosure(Object Expr) throws Cvc3Exception; - private static native boolean - jniIsQuantifier(Object Expr) throws Cvc3Exception; - private static native boolean - jniIsLambda(Object Expr) throws Cvc3Exception; - private static native boolean - jniIsApply(Object Expr) throws Cvc3Exception; - private static native boolean - jniIsSymbol(Object Expr) throws Cvc3Exception; - private static native boolean - jniIsTheorem(Object Expr) throws Cvc3Exception; - private static native boolean - jniIsType(Object Expr) throws Cvc3Exception; - private static native boolean - jniIsTerm(Object Expr) throws Cvc3Exception; - private static native boolean - jniIsAtomic(Object Expr) throws Cvc3Exception; - private static native boolean - jniIsAtomicFormula(Object Expr) throws Cvc3Exception; - private static native boolean - jniIsAbsAtomicFormula(Object Expr) throws Cvc3Exception; - private static native boolean - jniIsLiteral(Object Expr) throws Cvc3Exception; - private static native boolean - jniIsAbsLiteral(Object Expr) throws Cvc3Exception; - private static native boolean - jniIsBoolConnective(Object Expr) throws Cvc3Exception; - private static native boolean - jniIsPropAtom(Object Expr) throws Cvc3Exception; - private static native boolean - jniIsPropLiteral(Object Expr) throws Cvc3Exception; - private static native boolean - jniIsArrayLiteral(Object Expr) throws Cvc3Exception; - private static native boolean - jniIsEq(Object Expr) throws Cvc3Exception; - private static native boolean - jniIsNot(Object Expr) throws Cvc3Exception; - private static native boolean - jniIsAnd(Object Expr) throws Cvc3Exception; - private static native boolean - jniIsOr(Object Expr) throws Cvc3Exception; - private static native boolean - jniIsITE(Object Expr) throws Cvc3Exception; - private static native boolean - jniIsIff(Object Expr) throws Cvc3Exception; - private static native boolean - jniIsImpl(Object Expr) throws Cvc3Exception; - private static native boolean - jniIsXor(Object Expr) throws Cvc3Exception; - private static native boolean - jniIsForall(Object Expr) throws Cvc3Exception; - private static native boolean - jniIsExists(Object Expr) throws Cvc3Exception; - private static native boolean - jniIsRational(Object Expr) throws Cvc3Exception; - private static native boolean - jniIsUminus(Object Expr) throws Cvc3Exception; - private static native boolean - jniIsPlus(Object Expr) throws Cvc3Exception; - private static native boolean - jniIsMinus(Object Expr) throws Cvc3Exception; - private static native boolean - jniIsMult(Object Expr) throws Cvc3Exception; - private static native boolean - jniIsPow(Object Expr) throws Cvc3Exception; - private static native boolean - jniIsDivide(Object Expr) throws Cvc3Exception; - private static native boolean - jniIsLt(Object Expr) throws Cvc3Exception; - private static native boolean - jniIsLe(Object Expr) throws Cvc3Exception; - private static native boolean - jniIsGt(Object Expr) throws Cvc3Exception; - private static native boolean - jniIsGe(Object Expr) throws Cvc3Exception; - private static native boolean - jniIsSkolem(Object Expr) throws Cvc3Exception; - private static native boolean - jniIsRead(Object Expr) throws Cvc3Exception; - private static native boolean - jniIsWrite(Object Expr) throws Cvc3Exception; - - private static native String - jniGetName(Object Expr) throws Cvc3Exception; - private static native String - jniGetUid(Object Expr) throws Cvc3Exception; - private static native String - jniGetString(Object Expr) throws Cvc3Exception; - private static native Object[] - jniGetVars(Object Expr) throws Cvc3Exception; - private static native Object - jniGetExistential(Object Expr) throws Cvc3Exception; - private static native int - jniGetBoundIndex(Object Expr) throws Cvc3Exception; - private static native Object - jniGetBody(Object Expr) throws Cvc3Exception; - private static native Object - jniGetRational(Object Expr) throws Cvc3Exception; - private static native Object[][] - jniGetTriggers(Object Expr) throws Cvc3Exception; - private static native Object - jniGetTheorem(Object Expr) throws Cvc3Exception; - private static native Object - jniGetType(Object Expr) throws Cvc3Exception; - private static native Object - jniMkOp(Object Expr) throws Cvc3Exception; - private static native Object - jniGetOp(Object Expr) throws Cvc3Exception; - private static native Object - jniGetOpExpr(Object Expr) throws Cvc3Exception; - - private static native boolean - jniIsNull(Object Expr) throws Cvc3Exception; - private static native int - jniArity(Object Expr) throws Cvc3Exception; - private static native Object - jniGetKid(Object Expr, int i) throws Cvc3Exception; - private static native Object[] - jniGetKids(Object Expr) throws Cvc3Exception; - - private static native Object - jniSubstExpr(Object Expr, Object[] oldExprs, Object[] newExprs) throws Cvc3Exception; - - private static native boolean - jniIsBvLt(Object Expr) throws Cvc3Exception; - private static native boolean - jniIsBvLe(Object Expr) throws Cvc3Exception; - private static native boolean - jniIsBvGt(Object Expr) throws Cvc3Exception; - private static native boolean - jniIsBvGe(Object Expr) throws Cvc3Exception; - private static native boolean - jniIsBvPlus(Object Expr) throws Cvc3Exception; - private static native boolean - jniIsBvSub(Object Expr) throws Cvc3Exception; - private static native boolean - jniIsBvConst(Object Expr) throws Cvc3Exception; - private static native boolean - jniIsBvExtract(Object Expr) throws Cvc3Exception; - private static native boolean - jniIsBvConcat(Object Expr) throws Cvc3Exception; - - - /// Constructor - - public Expr(Object Expr, EmbeddedManager embeddedManager) { - super(Expr, embeddedManager); - } - - - /// API (immutable) - - - // 'Problem' with equals/hashCode: - // this is based on the wrapped c++ expressions. - // as a consequence two Expr objects are equal iff - // the wrapped expression is equal, - // and are indistinguishable for example in a HashMap. - - public boolean equals(Object o) { - if (this == o) return true; - - if (!(o instanceof Expr)) return false; - boolean result = false; - try { - result = jniEquals(embedded(), ((Embedded)o).embedded()); - } catch (Cvc3Exception e) { - assert(false); - } - return result; - } - - // must return the same hash code for two objects if equals returns true - public int hashCode() { - try { - if (!jniIsNull(embedded())) { - return jniHash(embedded()); - } - } catch (Cvc3Exception e) { - assert(false); - } - assert(false); - return 0; - } - - public Expr subst(List oldExprs, List newExprs) throws Cvc3Exception { - assert(JniUtils.listInstanceof(oldExprs, Expr.class)); - assert(JniUtils.listInstanceof(newExprs, Expr.class)); - return new Expr(jniSubstExpr(embedded(), JniUtils.unembedList(oldExprs), - JniUtils.unembedList(newExprs)), embeddedManager()); - } - - public String toString() { - String result = ""; - try { - result = jniToString(embedded()); - } catch (Cvc3Exception e) { - assert(false); - } - return result; - } - - public void print(InputLanguage lang, boolean dagify) throws Cvc3Exception { - jniPrint(embedded(), lang.toString(), dagify); - } - - public void print(boolean dagify) throws Cvc3Exception { - print(InputLanguage.PRESENTATION, dagify); - } - - public void print() throws Cvc3Exception { - print(false); - } - - public String getKind() throws Cvc3Exception { - return jniGetKind(embedded()); - } - - // Core expression testers - - - public boolean isFalse() throws Cvc3Exception { - return jniIsFalse(embedded()); - } - - public boolean isTrue() throws Cvc3Exception { - return jniIsTrue(embedded()); - } - - public boolean isBooleanConst() throws Cvc3Exception { - return jniIsBoolConst(embedded()); - } - - public boolean isVar() throws Cvc3Exception { - return jniIsVar(embedded()); - } - - public boolean isBoundVar() throws Cvc3Exception { - return jniIsBoundVar(embedded()); - } - - public boolean isString() throws Cvc3Exception { - return jniIsString(embedded()); - } - - public boolean isClosure() throws Cvc3Exception { - return jniIsClosure(embedded()); - } - - public boolean isQuantifier() throws Cvc3Exception { - return jniIsQuantifier(embedded()); - } - - public boolean isLambda() throws Cvc3Exception { - return jniIsLambda(embedded()); - } - - public boolean isApply() throws Cvc3Exception { - return jniIsApply(embedded()); - } - - public boolean isSymbol() throws Cvc3Exception { - return jniIsSymbol(embedded()); - } - - public boolean isTheorem() throws Cvc3Exception { - return jniIsTheorem(embedded()); - } - - public boolean isType() throws Cvc3Exception { - return jniIsType(embedded()); - } - - - - - public boolean isTerm() throws Cvc3Exception { - return jniIsTerm(embedded()); - } - - public boolean isAtomic() throws Cvc3Exception { - return jniIsAtomic(embedded()); - } - - public boolean isAtomicFormula() throws Cvc3Exception { - return jniIsAtomicFormula(embedded()); - } - - public boolean isAbsAtomicFormula() throws Cvc3Exception { - return jniIsAbsAtomicFormula(embedded()); - } - - public boolean isLiteral() throws Cvc3Exception { - return jniIsLiteral(embedded()); - } - - public boolean isAbsLiteral() throws Cvc3Exception { - return jniIsAbsLiteral(embedded()); - } - - public boolean isBoolConnective() throws Cvc3Exception { - return jniIsBoolConnective(embedded()); - } - - public boolean isPropAtom() throws Cvc3Exception { - return jniIsPropAtom(embedded()); - } - - public boolean isPropLiteral() throws Cvc3Exception { - return jniIsPropLiteral(embedded()); - } - - public boolean isArrayLiteral() throws Cvc3Exception { - return jniIsArrayLiteral(embedded()); - } - - public boolean isEq() throws Cvc3Exception { - return jniIsEq(embedded()); - } - - public boolean isNot() throws Cvc3Exception { - return jniIsNot(embedded()); - } - - - public boolean isAnd() throws Cvc3Exception { - return jniIsAnd(embedded()); - } - - - public boolean isOr() throws Cvc3Exception { - return jniIsOr(embedded()); - } - - - public boolean isITE() throws Cvc3Exception { - return jniIsITE(embedded()); - } - - - public boolean isIff() throws Cvc3Exception { - return jniIsIff(embedded()); - } - - - public boolean isImpl() throws Cvc3Exception { - return jniIsImpl(embedded()); - } - - - public boolean isXor() throws Cvc3Exception { - return jniIsXor(embedded()); - } - - - public boolean isForall() throws Cvc3Exception { - return jniIsForall(embedded()); - } - - - public boolean isExists() throws Cvc3Exception { - return jniIsExists(embedded()); - } - - - public boolean isRational() throws Cvc3Exception { - return jniIsRational(embedded()); - } - - public boolean isUminus() throws Cvc3Exception { - return jniIsUminus(embedded()); - } - - public boolean isPlus() throws Cvc3Exception { - return jniIsPlus(embedded()); - } - - public boolean isMinus() throws Cvc3Exception { - return jniIsMinus(embedded()); - } - - public boolean isMult() throws Cvc3Exception { - return jniIsMult(embedded()); - } - - public boolean isPow() throws Cvc3Exception { - return jniIsPow(embedded()); - } - - public boolean isDivide() throws Cvc3Exception { - return jniIsDivide(embedded()); - } - - public boolean isLt() throws Cvc3Exception { - return jniIsLt(embedded()); - } - - public boolean isLe() throws Cvc3Exception { - return jniIsLe(embedded()); - } - - public boolean isGt() throws Cvc3Exception { - return jniIsGt(embedded()); - } - - public boolean isGe() throws Cvc3Exception { - return jniIsGe(embedded()); - } - - public boolean isSkolem() throws Cvc3Exception { - return jniIsSkolem(embedded()); - } - - public boolean isRead() throws Cvc3Exception { - return jniIsRead(embedded()); - } - - public boolean isWrite() throws Cvc3Exception { - return jniIsWrite(embedded()); - } - - public boolean isBvLe() throws Cvc3Exception { - return jniIsBvLe(embedded()); - } - - public boolean isBvLt() throws Cvc3Exception { - return jniIsBvLt(embedded()); - } - - public boolean isBvGe() throws Cvc3Exception { - return jniIsBvGe(embedded()); - } - - public boolean isBvGt() throws Cvc3Exception { - return jniIsBvGt(embedded()); - } - - public boolean isBvPlus() throws Cvc3Exception { - return jniIsBvPlus(embedded()); - } - - public boolean isBvSub() throws Cvc3Exception { - return jniIsBvSub(embedded()); - } - - public boolean isBvConstant() throws Cvc3Exception { - return jniIsBvConst(embedded()); - } - - public boolean isBvConcat() throws Cvc3Exception { - return jniIsBvConcat(embedded()); - } - - public boolean isBvExtract() throws Cvc3Exception { - return jniIsBvExtract(embedded()); - } - - - public String getName() throws Cvc3Exception { - assert(!jniIsNull(embedded())); - return jniGetName(embedded()); - } - - public String getUid() throws Cvc3Exception { - assert(jniIsBoundVar(embedded())); - return jniGetUid(embedded()); - } - - public String getString() throws Cvc3Exception { - assert(jniIsString(embedded())); - return jniGetString(embedded()); - } - - public List getVars() throws Cvc3Exception { - assert(jniIsClosure(embedded())); - Object[] vars = jniGetVars(embedded()); - return JniUtils.embedList(vars, Expr.class, embeddedManager()); - } - - public List getTriggers() throws Cvc3Exception { - assert (jniIsClosure(embedded())); - return JniUtils.embedListList(jniGetTriggers(embedded()), Expr.class, embeddedManager()); - } - - public Expr getExistential() throws Cvc3Exception { - assert(jniIsSkolem(embedded())); - return new Expr(jniGetExistential(embedded()), embeddedManager()); - } - - public int getBoundIndex() throws Cvc3Exception { - assert(jniIsSkolem(embedded())); - return jniGetBoundIndex(embedded()); - } - - public Expr getBody() throws Cvc3Exception { - assert(jniIsClosure(embedded())); - return new Expr(jniGetBody(embedded()), embeddedManager()); - } - - public Rational getRational() throws Cvc3Exception { - assert(isRational()); - return new Rational(jniGetRational(embedded()), embeddedManager()); - } - - public Theorem getTheorem() throws Cvc3Exception { - assert(jniIsTheorem(embedded())); - return new Theorem(jniGetTheorem(embedded()), embeddedManager()); - } - - public TypeMut getType() throws Cvc3Exception { - return new TypeMut(jniGetType(embedded()), embeddedManager()); - } - - public OpMut mkOp() throws Cvc3Exception { - return new OpMut(jniMkOp(embedded()), embeddedManager()); - } - - public OpMut getOp() throws Cvc3Exception { - return new OpMut(jniGetOp(embedded()), embeddedManager()); - } - - public ExprMut getOpExpr() throws Cvc3Exception { - return new ExprMut(jniGetOpExpr(embedded()), embeddedManager()); - } - - public boolean isNull() throws Cvc3Exception { - return jniIsNull(embedded()); - } - - public int arity() throws Cvc3Exception { - return jniArity(embedded()); - } - - public Expr getChild(int i) throws Cvc3Exception { - assert(i >= 0 && i < arity()); - return new Expr(jniGetKid(embedded(), i), embeddedManager()); - } - - public List getChildren() throws Cvc3Exception { - return JniUtils.embedList(jniGetKids(embedded()), Expr.class, embeddedManager()); - } -} diff --git a/src/bindings/compat/java/src/cvc3/ExprManager.java b/src/bindings/compat/java/src/cvc3/ExprManager.java deleted file mode 100644 index a7d809f18..000000000 --- a/src/bindings/compat/java/src/cvc3/ExprManager.java +++ /dev/null @@ -1,26 +0,0 @@ -package cvc3; - -import java.util.*; - -public class ExprManager extends Embedded { - // jni methods - private static native String jniGetInputLanguage(Object ExprManager) throws Cvc3Exception; - private static native String jniGetOutputLanguage(Object ExprManager) throws Cvc3Exception; - - /// Constructor - - public ExprManager(Object ExprManager, EmbeddedManager embeddedManager) { - super(ExprManager, embeddedManager); - } - - - /// API (immutable) - - public InputLanguage getInputLanguage() throws Cvc3Exception { - return InputLanguage.get(jniGetInputLanguage(embedded())); - } - - public InputLanguage getOutputLanguage() throws Cvc3Exception { - return InputLanguage.get(jniGetOutputLanguage(embedded())); - } -} diff --git a/src/bindings/compat/java/src/cvc3/ExprManagerMut.java b/src/bindings/compat/java/src/cvc3/ExprManagerMut.java deleted file mode 100644 index 92b53ba59..000000000 --- a/src/bindings/compat/java/src/cvc3/ExprManagerMut.java +++ /dev/null @@ -1,16 +0,0 @@ -package cvc3; - -import java.util.*; - -public class ExprManagerMut extends ExprManager { - // jni methods - - /// Constructor - - public ExprManagerMut(Object ExprManagerMut, EmbeddedManager embeddedManager) { - super(ExprManagerMut, embeddedManager); - } - - - /// API (mutable) -} diff --git a/src/bindings/compat/java/src/cvc3/ExprManager_impl.cpp b/src/bindings/compat/java/src/cvc3/ExprManager_impl.cpp deleted file mode 100644 index b96053c7a..000000000 --- a/src/bindings/compat/java/src/cvc3/ExprManager_impl.cpp +++ /dev/null @@ -1,7 +0,0 @@ -DEFINITION: Java_cvc3_ExprManager_jniGetInputLanguage -jstring c ExprManager exprManager -return toJava(env, exprManager->getInputLang()); - -DEFINITION: Java_cvc3_ExprManager_jniGetOutputLanguage -jstring c ExprManager exprManager -return toJava(env, exprManager->getOutputLang()); diff --git a/src/bindings/compat/java/src/cvc3/ExprMut.java b/src/bindings/compat/java/src/cvc3/ExprMut.java deleted file mode 100644 index 65f0c924c..000000000 --- a/src/bindings/compat/java/src/cvc3/ExprMut.java +++ /dev/null @@ -1,18 +0,0 @@ -package cvc3; - -import java.util.*; - -public class ExprMut extends Expr { - // jni methods - - - /// Constructor - - // create embedded object - public ExprMut(Object ExprMut, EmbeddedManager embeddedManager) { - super(ExprMut, embeddedManager); - } - - - /// API (mutable) -} diff --git a/src/bindings/compat/java/src/cvc3/ExprMut_impl.cpp b/src/bindings/compat/java/src/cvc3/ExprMut_impl.cpp deleted file mode 100644 index e69de29bb..000000000 --- a/src/bindings/compat/java/src/cvc3/ExprMut_impl.cpp +++ /dev/null diff --git a/src/bindings/compat/java/src/cvc3/Expr_impl.cpp b/src/bindings/compat/java/src/cvc3/Expr_impl.cpp deleted file mode 100644 index 8addc3230..000000000 --- a/src/bindings/compat/java/src/cvc3/Expr_impl.cpp +++ /dev/null @@ -1,329 +0,0 @@ -//INCLUDE: <expr.h> -//INCLUDE: <theory_array.h> -//INCLUDE: <theory_arith.h> -//INCLUDE: <theory_bitvector.h> - -DEFINITION: Java_cvc3_Expr_jniEquals -jboolean c Expr expr1 c Expr expr2 -return *expr1 == *expr2; - -DEFINITION: Java_cvc3_Expr_jniToString -jstring c Expr expr -return toJava(env, expr->toString()); - -DEFINITION: Java_cvc3_Expr_jniPrint -void c Expr expr n string lang n bool dagify -dagify ? expr->pprint() : expr->pprintnodag(); - -DEFINITION: Java_cvc3_Expr_jniHash -jint c Expr expr -return expr->hash(); - -DEFINITION: Java_cvc3_Expr_jniGetKind -jstring c Expr expr -return toJava(env, expr->getEM()->getKindName( expr->getKind() )); - -DEFINITION: Java_cvc3_Expr_jniIsFalse -jboolean c Expr expr -return expr->isFalse(); - -DEFINITION: Java_cvc3_Expr_jniIsTrue -jboolean c Expr expr -return expr->isTrue(); - -DEFINITION: Java_cvc3_Expr_jniIsBoolConst -jboolean c Expr expr -return expr->isBoolConst(); - -DEFINITION: Java_cvc3_Expr_jniIsVar -jboolean c Expr expr -return expr->isVar(); - -DEFINITION: Java_cvc3_Expr_jniIsBoundVar -jboolean c Expr expr -return expr->isBoundVar(); - -DEFINITION: Java_cvc3_Expr_jniIsString -jboolean c Expr expr -return expr->isString(); - -DEFINITION: Java_cvc3_Expr_jniIsClosure -jboolean c Expr expr -return expr->isClosure(); - -DEFINITION: Java_cvc3_Expr_jniIsQuantifier -jboolean c Expr expr -return expr->isQuantifier(); - -DEFINITION: Java_cvc3_Expr_jniIsLambda -jboolean c Expr expr -return expr->isLambda(); - -DEFINITION: Java_cvc3_Expr_jniIsApply -jboolean c Expr expr -return expr->isApply(); - -DEFINITION: Java_cvc3_Expr_jniIsSymbol -jboolean c Expr expr -return expr->isSymbol(); - -DEFINITION: Java_cvc3_Expr_jniIsTheorem -jboolean c Expr expr -return expr->isTheorem(); - -DEFINITION: Java_cvc3_Expr_jniIsType -jboolean c Expr expr -return expr->isType(); - - - -DEFINITION: Java_cvc3_Expr_jniIsTerm -jboolean c Expr expr -return expr->isTerm(); - -DEFINITION: Java_cvc3_Expr_jniIsAtomic -jboolean c Expr expr -return expr->isAtomic(); - -DEFINITION: Java_cvc3_Expr_jniIsAtomicFormula -jboolean c Expr expr -return expr->isAtomicFormula(); - -DEFINITION: Java_cvc3_Expr_jniIsAbsAtomicFormula -jboolean c Expr expr -return expr->isAbsAtomicFormula(); - -DEFINITION: Java_cvc3_Expr_jniIsLiteral -jboolean c Expr expr -return expr->isLiteral(); - -DEFINITION: Java_cvc3_Expr_jniIsAbsLiteral -jboolean c Expr expr -return expr->isAbsLiteral(); - -DEFINITION: Java_cvc3_Expr_jniIsBoolConnective -jboolean c Expr expr -return expr->isBoolConnective(); - -DEFINITION: Java_cvc3_Expr_jniIsPropAtom -jboolean c Expr expr -return expr->isPropAtom(); - -DEFINITION: Java_cvc3_Expr_jniIsPropLiteral -jboolean c Expr expr -return expr->isPropLiteral(); - -DEFINITION: Java_cvc3_Expr_jniIsArrayLiteral -jboolean c Expr expr -return CVC3::isArrayLiteral(*expr); - - -DEFINITION: Java_cvc3_Expr_jniIsEq -jboolean c Expr expr -return expr->isEq(); - -DEFINITION: Java_cvc3_Expr_jniIsNot -jboolean c Expr expr -return expr->isNot(); - -DEFINITION: Java_cvc3_Expr_jniIsAnd -jboolean c Expr expr -return expr->isAnd(); - -DEFINITION: Java_cvc3_Expr_jniIsOr -jboolean c Expr expr -return expr->isOr(); - -DEFINITION: Java_cvc3_Expr_jniIsITE -jboolean c Expr expr -return expr->isITE(); - -DEFINITION: Java_cvc3_Expr_jniIsIff -jboolean c Expr expr -return expr->isIff(); - -DEFINITION: Java_cvc3_Expr_jniIsImpl -jboolean c Expr expr -return expr->isImpl(); - -DEFINITION: Java_cvc3_Expr_jniIsXor -jboolean c Expr expr -return expr->isXor(); - -DEFINITION: Java_cvc3_Expr_jniIsForall -jboolean c Expr expr -return expr->isForall(); - -DEFINITION: Java_cvc3_Expr_jniIsExists -jboolean c Expr expr -return expr->isExists(); - -DEFINITION: Java_cvc3_Expr_jniIsRational -jboolean c Expr expr -return expr->isRational(); - -DEFINITION: Java_cvc3_Expr_jniIsUminus -jboolean c Expr expr -return expr->getKind() == UMINUS; - -DEFINITION: Java_cvc3_Expr_jniIsPlus -jboolean c Expr expr -return expr->getKind() == PLUS; - -DEFINITION: Java_cvc3_Expr_jniIsMinus -jboolean c Expr expr -return expr->getKind() == MINUS; - -DEFINITION: Java_cvc3_Expr_jniIsMult -jboolean c Expr expr -return expr->getKind() == MULT; - -DEFINITION: Java_cvc3_Expr_jniIsPow -jboolean c Expr expr -return expr->getKind() == POW; - -DEFINITION: Java_cvc3_Expr_jniIsDivide -jboolean c Expr expr -return expr->getKind() == DIVIDE; - -DEFINITION: Java_cvc3_Expr_jniIsLt -jboolean c Expr expr -return expr->getKind() == LT; - -DEFINITION: Java_cvc3_Expr_jniIsLe -jboolean c Expr expr -return expr->getKind() == LE; - -DEFINITION: Java_cvc3_Expr_jniIsGt -jboolean c Expr expr -return expr->getKind() == GT; - -DEFINITION: Java_cvc3_Expr_jniIsGe -jboolean c Expr expr -return expr->getKind() == GE; - -DEFINITION: Java_cvc3_Expr_jniIsSkolem -jboolean c Expr expr -return expr->isSkolem(); - - -DEFINITION: Java_cvc3_Expr_jniIsRead -jboolean c Expr expr -return expr->getKind() == READ; - -DEFINITION: Java_cvc3_Expr_jniIsWrite -jboolean c Expr expr -return expr->getKind() == WRITE; - - -DEFINITION: Java_cvc3_Expr_jniGetName -jstring c Expr expr -return toJava(env, expr->getName()); - -DEFINITION: Java_cvc3_Expr_jniGetUid -jstring c Expr expr -return toJava(env, expr->getUid()); - -DEFINITION: Java_cvc3_Expr_jniGetString -jstring c Expr expr -return toJava(env, expr->getString()); - -DEFINITION: Java_cvc3_Expr_jniGetVars -jobjectArray c Expr expr -return toJavaVConstRef(env, expr->getVars()); - -DEFINITION: Java_cvc3_Expr_jniGetExistential -jobject c Expr expr -return embed_copy<Expr>(env, expr->getExistential()); - -DEFINITION: Java_cvc3_Expr_jniGetBoundIndex -jint c Expr expr -return expr->getBoundIndex(); - -DEFINITION: Java_cvc3_Expr_jniGetBody -jobject c Expr expr -return embed_copy<Expr>(env, expr->getBody()); - -DEFINITION: Java_cvc3_Expr_jniGetRational -jobject c Expr expr -return embed_const_ref<Rational>(env, &expr->getRational()); - -DEFINITION: Java_cvc3_Expr_jniGetTriggers -jobjectArray c Expr expr -return toJavaVVConstRef(env, expr->getTriggers()); - -DEFINITION: Java_cvc3_Expr_jniGetTheorem -jobject c Expr expr -return embed_copy<Theorem>(env, expr->getTheorem()); - -DEFINITION: Java_cvc3_Expr_jniGetType -jobject c Expr expr -return embed_copy<Type>(env, expr->getType()); - -DEFINITION: Java_cvc3_Expr_jniMkOp -jobject c Expr expr -return embed_copy<Op>(env, expr->mkOp()); - -DEFINITION: Java_cvc3_Expr_jniGetOp -jobject c Expr expr -return embed_copy<Op>(env, expr->getOp()); - -DEFINITION: Java_cvc3_Expr_jniGetOpExpr -jobject c Expr expr -return embed_copy<Expr>(env, expr->getOpExpr()); - -DEFINITION: Java_cvc3_Expr_jniIsNull -jboolean c Expr expr -return expr->isNull(); - -DEFINITION: Java_cvc3_Expr_jniArity -jint c Expr expr -return expr->arity(); - -DEFINITION: Java_cvc3_Expr_jniGetKid -jobject c Expr expr n int i -return embed_copy<Expr>(env, (*expr)[ji]); - -DEFINITION: Java_cvc3_Expr_jniGetKids -jobjectArray c Expr expr -return toJavaVConstRef(env, expr->getKids()); - -DEFINITION: Java_cvc3_Expr_jniSubstExpr -jobject c Expr e cv Expr oldExprs cv Expr newExprs -return embed_copy(env, e->substExpr(oldExprs,newExprs)); - -DEFINITION: Java_cvc3_Expr_jniIsBvLt -jboolean c Expr expr -return expr->getKind() == BVLT; - -DEFINITION: Java_cvc3_Expr_jniIsBvLe -jboolean c Expr expr -return expr->getKind() == BVLE; - -DEFINITION: Java_cvc3_Expr_jniIsBvGt -jboolean c Expr expr -return expr->getKind() == BVGT; - -DEFINITION: Java_cvc3_Expr_jniIsBvGe -jboolean c Expr expr -return expr->getKind() == BVGE; - -DEFINITION: Java_cvc3_Expr_jniIsBvPlus -jboolean c Expr expr -return expr->getKind() == BVPLUS; - -DEFINITION: Java_cvc3_Expr_jniIsBvSub -jboolean c Expr expr -return expr->getKind() == BVSUB; - -DEFINITION: Java_cvc3_Expr_jniIsBvConst -jboolean c Expr expr -return expr->getKind() == BVCONST; - -DEFINITION: Java_cvc3_Expr_jniIsBvExtract -jboolean c Expr expr -return expr->getKind() == EXTRACT; - -DEFINITION: Java_cvc3_Expr_jniIsBvConcat -jboolean c Expr expr -return expr->getKind() == CONCAT; diff --git a/src/bindings/compat/java/src/cvc3/Flag.java b/src/bindings/compat/java/src/cvc3/Flag.java deleted file mode 100644 index 82230c095..000000000 --- a/src/bindings/compat/java/src/cvc3/Flag.java +++ /dev/null @@ -1,63 +0,0 @@ -package cvc3; - -import java.util.*; - -public class Flag extends Embedded { - // jni methods - private static native boolean jniIsNull(Object Flag) throws Cvc3Exception; - private static native boolean jniIsBool(Object Flag) throws Cvc3Exception; - private static native boolean jniIsInt(Object Flag) throws Cvc3Exception; - private static native boolean jniIsString(Object Flag) throws Cvc3Exception; - private static native boolean jniIsStringVec(Object Flag) throws Cvc3Exception; - private static native boolean jniGetBool(Object Flag) throws Cvc3Exception; - private static native int jniGetInt(Object Flag) throws Cvc3Exception; - private static native String jniGetString(Object Flag) throws Cvc3Exception; - private static native String jniGetHelp(Object Flag) throws Cvc3Exception; - - - /// Constructor - - // create embedded object - public Flag(Object Flag, EmbeddedManager embeddedManager) { - super(Flag, embeddedManager); - } - - - /// API immutable - - boolean isNull() throws Cvc3Exception { - return jniIsNull(embedded()); - } - - boolean isBool() throws Cvc3Exception { - return jniIsBool(embedded()); - } - - boolean isInt() throws Cvc3Exception { - return jniIsInt(embedded()); - } - - boolean isString() throws Cvc3Exception { - return jniIsString(embedded()); - } - - boolean isStringVec() throws Cvc3Exception { - return jniIsStringVec(embedded()); - } - - boolean getBool() throws Cvc3Exception { - return jniGetBool(embedded()); - } - - int getInt() throws Cvc3Exception { - return jniGetInt(embedded()); - } - - String getString() throws Cvc3Exception { - return jniGetString(embedded()); - } - - String getHelp() throws Cvc3Exception { - return jniGetHelp(embedded()); - } -} diff --git a/src/bindings/compat/java/src/cvc3/FlagException.java b/src/bindings/compat/java/src/cvc3/FlagException.java deleted file mode 100644 index b873d2619..000000000 --- a/src/bindings/compat/java/src/cvc3/FlagException.java +++ /dev/null @@ -1,12 +0,0 @@ -package cvc3; - -import java.util.*; - -public class FlagException extends Cvc3Exception { - - private final static long serialVersionUID = 1L; - - public FlagException(String message) { - super(message); - } -} diff --git a/src/bindings/compat/java/src/cvc3/Flag_impl.cpp b/src/bindings/compat/java/src/cvc3/Flag_impl.cpp deleted file mode 100644 index e41badb60..000000000 --- a/src/bindings/compat/java/src/cvc3/Flag_impl.cpp +++ /dev/null @@ -1,36 +0,0 @@ -DEFINITION: Java_cvc3_Flag_jniIsNull -jboolean c CLFlag flag -return (flag->getType() == CLFLAG_NULL); - -DEFINITION: Java_cvc3_Flag_jniIsBool -jboolean c CLFlag flag -return (flag->getType() == CLFLAG_BOOL); - -DEFINITION: Java_cvc3_Flag_jniIsInt -jboolean c CLFlag flag -return (flag->getType() == CLFLAG_INT); - -DEFINITION: Java_cvc3_Flag_jniIsString -jboolean c CLFlag flag -return (flag->getType() == CLFLAG_STRING); - -DEFINITION: Java_cvc3_Flag_jniIsStringVec -jboolean c CLFlag flag -return (flag->getType() == CLFLAG_STRVEC); - - -DEFINITION: Java_cvc3_Flag_jniGetBool -jboolean c CLFlag flag -return flag->getBool(); - -DEFINITION: Java_cvc3_Flag_jniGetInt -jint c CLFlag flag -return flag->getInt(); - -DEFINITION: Java_cvc3_Flag_jniGetString -jstring c CLFlag flag -return toJava(env, flag->getString()); - -DEFINITION: Java_cvc3_Flag_jniGetHelp -jstring c CLFlag flag -return toJava(env, flag->getHelp()); diff --git a/src/bindings/compat/java/src/cvc3/Flags.java b/src/bindings/compat/java/src/cvc3/Flags.java deleted file mode 100644 index 957a6f294..000000000 --- a/src/bindings/compat/java/src/cvc3/Flags.java +++ /dev/null @@ -1,32 +0,0 @@ -package cvc3; - -import java.util.*; - -public abstract class Flags extends Embedded { - // jni methods - private static native Object[] jniGetFlags(Object Flags, String prefix) throws Cvc3Exception; - private static native Object jniGetFlag(Object Flags, String name) throws Cvc3Exception; - - - /// Constructor - - // create embedded object - public Flags(Object Flags, EmbeddedManager embeddedManager) { - super(Flags, embeddedManager); - } - - /// API (immutable) - - - // get names of all flags starting with prefix - public List getFlags(String prefix) throws Cvc3Exception { - Object[] flags = jniGetFlags(embedded(), prefix); - assert(flags instanceof String[]); - return Arrays.asList(flags); - } - - // get the value of a flag by name (without prefix -/+) - public Flag getFlag(String name) throws Cvc3Exception { - return new Flag(jniGetFlag(embedded(), name), embeddedManager()); - } -} diff --git a/src/bindings/compat/java/src/cvc3/FlagsMut.java b/src/bindings/compat/java/src/cvc3/FlagsMut.java deleted file mode 100644 index cb0431d6d..000000000 --- a/src/bindings/compat/java/src/cvc3/FlagsMut.java +++ /dev/null @@ -1,39 +0,0 @@ -package cvc3; - -import java.util.*; - -public class FlagsMut extends Flags { - // jni methods - private static native void jniSetFlag1(Object Flags, String name, boolean value) throws Cvc3Exception; - private static native void jniSetFlag2(Object Flags, String name, int value) throws Cvc3Exception; - private static native void jniSetFlag3(Object Flags, String name, String value) throws Cvc3Exception; - private static native void jniSetFlag4(Object Flags, String map, String name, boolean value) throws Cvc3Exception; - - - /// Constructor - - // create embedded object - public FlagsMut(Object FlagsMut, EmbeddedManager embeddedManager) { - super(FlagsMut, embeddedManager); - } - - - /// API (mutable) - - public void setFlag(String name, boolean value) throws Cvc3Exception { - jniSetFlag1(embedded(), name, value); - } - - public void setFlag(String name, int value) throws Cvc3Exception { - jniSetFlag2(embedded(), name, value); - } - - public void setFlag(String name, String value) throws Cvc3Exception { - jniSetFlag3(embedded(), name, value); - } - - // flag representing set of options, e.g. trace - public void setFlag(String map, String name, boolean value) throws Cvc3Exception { - jniSetFlag4(embedded(), map, name, value); - } -} diff --git a/src/bindings/compat/java/src/cvc3/FlagsMut_impl.cpp b/src/bindings/compat/java/src/cvc3/FlagsMut_impl.cpp deleted file mode 100644 index c6273194b..000000000 --- a/src/bindings/compat/java/src/cvc3/FlagsMut_impl.cpp +++ /dev/null @@ -1,15 +0,0 @@ -DEFINITION: Java_cvc3_FlagsMut_jniSetFlag1 -void m CLFlags flags n string name n bool value -flags->setFlag(name, value); - -DEFINITION: Java_cvc3_FlagsMut_jniSetFlag2 -void m CLFlags flags n string name n int value -flags->setFlag(name, value); - -DEFINITION: Java_cvc3_FlagsMut_jniSetFlag3 -void m CLFlags flags n string name n string value -flags->setFlag(name, value); - -DEFINITION: Java_cvc3_FlagsMut_jniSetFlag4 -void m CLFlags flags n string map n string name n bool value -flags->setFlag(map, std::make_pair(name, value)); diff --git a/src/bindings/compat/java/src/cvc3/Flags_impl.cpp b/src/bindings/compat/java/src/cvc3/Flags_impl.cpp deleted file mode 100644 index 169cc76a8..000000000 --- a/src/bindings/compat/java/src/cvc3/Flags_impl.cpp +++ /dev/null @@ -1,13 +0,0 @@ -DEFINITION: Java_cvc3_Flags_jniGetFlags -jobjectArray c CLFlags flags n string prefix - -// get flag names -vector<string> names; -flags->countFlags(prefix, names); -return toJavaV(env, names); - - -DEFINITION: Java_cvc3_Flags_jniGetFlag -jobject c CLFlags flags n string name -const CLFlag& flag = flags->getFlag(name); -return embed_const_ref(env, &flag); diff --git a/src/bindings/compat/java/src/cvc3/FormulaValue.java b/src/bindings/compat/java/src/cvc3/FormulaValue.java deleted file mode 100644 index c04259334..000000000 --- a/src/bindings/compat/java/src/cvc3/FormulaValue.java +++ /dev/null @@ -1,36 +0,0 @@ -package cvc3; - -import java.util.*; - -/** A truth value of a formula. */ -public class FormulaValue { - private final String d_result; - - protected FormulaValue(String result) { - d_result = result; - } - - - // names of c++ enum values - public static final FormulaValue TRUE = new FormulaValue("TRUE_VAL"); - public static final FormulaValue FALSE = new FormulaValue("FALSE_VAL"); - public static final FormulaValue UNKNOWN = new FormulaValue("UNKNOWN_VAL"); - - // the FormulaValue corresponding to a c++ enum value by name - public static FormulaValue get(String value) throws DebugException { - if (value.equals(TRUE.toString())) { - return TRUE; - } else if (value.equals(FALSE.toString())) { - return FALSE; - } else if (value.equals(UNKNOWN.toString())) { - return UNKNOWN; - } else { - throw new DebugException("FormulaValue.constructor: unknown enum value: " + value); - } - } - - // the FormulaValue's c++ enum value - public String toString() { - return d_result; - } -} diff --git a/src/bindings/compat/java/src/cvc3/InputLanguage.java b/src/bindings/compat/java/src/cvc3/InputLanguage.java deleted file mode 100644 index 46cf09a61..000000000 --- a/src/bindings/compat/java/src/cvc3/InputLanguage.java +++ /dev/null @@ -1,36 +0,0 @@ -package cvc3; - -import java.util.*; - -/** See comments about mapping c++ enums to java in QueryResult */ -public class InputLanguage { - private final String d_lang; - - private InputLanguage(String lang) { - d_lang = lang; - } - - - // names of c++ enum values - public static final InputLanguage PRESENTATION = new InputLanguage("PRESENTATION"); - public static final InputLanguage SMTLIB = new InputLanguage("SMTLIB"); - public static final InputLanguage LISP = new InputLanguage("LISP"); - - // the InputLanguage corresponding to a c++ enum value by name - public static InputLanguage get(String value) throws DebugException { - if (value.equals(PRESENTATION.toString())) { - return PRESENTATION; - } else if (value.equals(SMTLIB.toString())) { - return SMTLIB; - } else if (value.equals(LISP.toString())) { - return LISP; - } else { - throw new DebugException("InputLanguage.constructor: unknown enum value: " + value); - } - } - - // the InputLanguage's c++ enum value - public String toString() { - return d_lang; - } -} diff --git a/src/bindings/compat/java/src/cvc3/JniUtils.cpp b/src/bindings/compat/java/src/cvc3/JniUtils.cpp deleted file mode 100644 index ddab66546..000000000 --- a/src/bindings/compat/java/src/cvc3/JniUtils.cpp +++ /dev/null @@ -1,194 +0,0 @@ -#include "JniUtils.h" - -// for CVC4: removed; don't need these -//#include <typecheck_exception.h> -//#include <sound_exception.h> -//#include <eval_exception.h> -//#include <command_line_exception.h> -//#include <parser_exception.h> -//#include <smtlib_exception.h> - -// for CVC4: need these for compatibility layer -#include "compat/cvc3_compat.h" -#include "Embedded.h" - -using namespace std; -using namespace CVC3; - -namespace Java_cvc3_JniUtils { - - /// Embedding of c++ objects in java objects - - Embedded* unembed(JNIEnv* env, jobject jobj) { - Embedded* embedded = (Embedded*) env->GetDirectBufferAddress(jobj); - DebugAssert(embedded != NULL, "JniUtils::unembed: embedded object is NULL"); - return embedded; - } - - void deleteEmbedded(JNIEnv* env, jobject jobj) { - Embedded* embedded = unembed(env, jobj); - DebugAssert(embedded != NULL, "JniUtils::deleteEmbedded: embedded object is NULL"); - delete embedded; - } - - - - /// Conversions between c++ and java - - bool toCpp(jboolean j) { - return (bool)j; - } - - jstring toJava(JNIEnv* env, const string& cstring) { - return env->NewStringUTF(cstring.c_str()); - } - - jstring toJava(JNIEnv* env, const char* cstring) { - return env->NewStringUTF(cstring); - } - - string toCpp(JNIEnv* env, const jstring& jstring) { - const char* cstring = env->GetStringUTFChars(jstring, NULL); - string string(cstring); - env->ReleaseStringUTFChars(jstring, cstring); - return string; - } - - jstring toJava(JNIEnv* env, CVC3::QueryResult result) { - switch (result) { - case SATISFIABLE: return toJava(env, "SATISFIABLE"); - case UNSATISFIABLE: return toJava(env, "UNSATISFIABLE"); - case ABORT: return toJava(env, "ABORT"); - case UNKNOWN: return toJava(env, "UNKNOWN"); - } - - DebugAssert(false, "JniUtils::toJava(QueryResult): unreachable"); - return toJava(env, ""); // to avoid compiler warning - } - - jstring toJava(JNIEnv* env, CVC3::FormulaValue result) { - switch (result) { - case TRUE_VAL: return toJava(env, "TRUE_VAL"); - case FALSE_VAL: return toJava(env, "FALSE_VAL"); - case UNKNOWN_VAL: return toJava(env, "UNKNOWN_VAL"); - } - - DebugAssert(false, "JniUtils::toJava(FormulaValue): unreachable"); - return toJava(env, "UNDEFINED"); - } - - jstring toJava(JNIEnv* env, CVC3::InputLanguage lang) { - switch (lang) { - case PRESENTATION_LANG: return toJava(env, "PRESENTATION"); - case SMTLIB_LANG: return toJava(env, "SMTLIB"); - case SMTLIB_V2_LANG: return toJava(env, "SMTLIB_V2"); - //case LISP_LANG: return toJava(env, "LISP"); - default: /* fall through */; - } - - DebugAssert(false, "JniUtils::toJava(InputLanguage): unreachable"); - return toJava(env, "UNDEFINED"); - } - - InputLanguage toCppInputLanguage(JNIEnv* env, const string& lang) { - if (lang.compare("PRESENTATION") == 0) { - return PRESENTATION_LANG; - } else if (lang.compare("SMTLIB") == 0) { - return SMTLIB_LANG; - } else if (lang.compare("SMTLIB_V2") == 0) { - return SMTLIB_V2_LANG; - /* - } else if (lang.compare("LISP") == 0) { - return LISP_LANG; - */ - } - - DebugAssert(false, "JniUtils::toCpp(InputLanguage): unreachable"); - return CVC4::language::input::LANG_MAX; - } - - void toJava(JNIEnv* env, const Exception& e) { - /* for CVC4: don't worry about legacy exception mapping - string exceptionName("cvc3/"); - if (dynamic_cast<const TypecheckException*>(&e) != NULL) { - exceptionName += "TypecheckException"; - } else if (dynamic_cast<const CVC3::SoundException*>(&e) != NULL) { - exceptionName += "SoundException"; - } else if (dynamic_cast<const CVC3::EvalException*>(&e) != NULL) { - exceptionName += "EvalException"; - } else if (dynamic_cast<const CVC3::CLException*>(&e) != NULL) { - exceptionName += "CLException"; - } else if (dynamic_cast<const CVC3::ParserException*>(&e) != NULL) { - exceptionName += "ParserException"; - } else if (dynamic_cast<const CVC3::SmtlibException*>(&e) != NULL) { - exceptionName += "SmtlibException"; - } else if (dynamic_cast<const CVC3::DebugException*>(&e) != NULL) { - exceptionName += "DebugException"; - } else { - exceptionName += "Cvc3Exception"; - } - */ - - jclass exceptionClass = env->FindClass("java/lang/RuntimeException"); - // queues up the exception in the Java layer - env->ThrowNew(exceptionClass, e.toString().c_str()); - } - - - vector<string> toCppV(JNIEnv* env, const jobjectArray& jarray) { - vector<string> v; - int length = env->GetArrayLength(jarray); - for (int i = 0; i < length; ++i) { - v.push_back(toCpp(env, (jstring)env->GetObjectArrayElement(jarray, i))); - } - return v; - } - - vector<vector<string> > toCppVV(JNIEnv* env, const jobjectArray& jarray) { - vector<vector<string> > v; - int length = env->GetArrayLength(jarray); - for (int i = 0; i < length; ++i) { - jobjectArray jsub = static_cast<jobjectArray>(env->GetObjectArrayElement(jarray, i)); - v.push_back(toCppV(env, jsub)); - } - return v; - } - - vector<vector<vector<string> > > toCppVVV(JNIEnv* env, const jobjectArray& jarray) { - vector<vector<vector<string> > > v; - int length = env->GetArrayLength(jarray); - for (int i = 0; i < length; ++i) { - jobjectArray jsub = static_cast<jobjectArray>(env->GetObjectArrayElement(jarray, i)); - v.push_back(toCppVV(env, jsub)); - } - return v; - } - - jobjectArray toJavaV(JNIEnv* env, const vector<string>& v) { - jobjectArray jarray = (jobjectArray) - env->NewObjectArray( - v.size(), - env->FindClass("java/lang/String"), - env->NewStringUTF("")); - - for(unsigned i = 0; i < v.size(); ++i) { - env->SetObjectArrayElement(jarray, i, toJava(env, v[i])); - } - - return jarray; - } - - - vector<bool> toCppV(JNIEnv* env, const jbooleanArray& jarray) { - int length = env->GetArrayLength(jarray); - jboolean* jboolean = env->GetBooleanArrayElements(jarray, NULL); - - vector<bool> v; - for (int i = 0; i < length; ++i) { - v.push_back(jboolean[i]); - } - env->ReleaseBooleanArrayElements(jarray, jboolean, JNI_ABORT); - - return v; - } -} diff --git a/src/bindings/compat/java/src/cvc3/JniUtils.java b/src/bindings/compat/java/src/cvc3/JniUtils.java deleted file mode 100644 index 6c1376f89..000000000 --- a/src/bindings/compat/java/src/cvc3/JniUtils.java +++ /dev/null @@ -1,227 +0,0 @@ -package cvc3; - -import java.util.*; -import java.lang.reflect.Constructor; - -public class JniUtils { - - // check that list is an instance of a class - - // generics would avoid that - public static boolean listInstanceof(List list, Class c) { - Iterator i = list.iterator(); - while (i.hasNext()) { - if (!(c.isInstance(i.next()))) return false; - } - return true; - } - - public static boolean listListInstanceof(List listList, Class c) { - Iterator i = listList.iterator(); - while (i.hasNext()) { - Object list = i.next(); - assert(list instanceof List); - if (!(listInstanceof((List)list, c))) return false; - } - return true; - } - - public static boolean listListListInstanceof(List listListList, Class c) { - Iterator i = listListList.iterator(); - while (i.hasNext()) { - Object list = i.next(); - assert(list instanceof List); - if (!(listListInstanceof((List)list, c))) return false; - } - return true; - } - - - // embed an array of c++ objects in a list - public static List embedList(Object[] cobjects, Class c, EmbeddedManager embeddedManager) { - List embedded = new ArrayList(); - - try { - Class[] argsC = new Class[2]; - argsC[0] = Object.class; - argsC[1] = EmbeddedManager.class; - Constructor constr = c.getConstructor(argsC); - - Object[] args = new Object[2]; - for (int i = 0; i < cobjects.length; ++i) { - args[0] = cobjects[i]; - args[1] = embeddedManager; - embedded.add(constr.newInstance(args)); - } - } catch (NoSuchMethodException e) { - System.out.println(e); - assert(false); - } catch (InstantiationException e) { - System.out.println(e); - assert(false); - } catch (IllegalAccessException e) { - System.out.println(e); - assert(false); - } catch (java.lang.reflect.InvocationTargetException e) { - System.out.println(e); - assert(false); - } - return embedded; - } - - public static List embedListList(Object[][] cobjects, Class c, EmbeddedManager embeddedManager) { - List embedded = new ArrayList(cobjects.length); - for (int i = 0; i < cobjects.length; ++i) { - Object[] cobject = cobjects[i]; - embedded.add( embedList(cobject,c,embeddedManager) ); - } - return embedded; - } - - // embed an array of c++ objects in a hash map - public static HashMap embedHashMap(Object[] cobjects, Class ck, Class cv, - EmbeddedManager embeddedManager) { - HashMap embedded = new HashMap(cobjects.length / 2); - - try { - Class[] argsCK = new Class[2]; - argsCK[0] = Object.class; - argsCK[1] = EmbeddedManager.class; - Constructor constrK = ck.getConstructor(argsCK); - - Class[] argsCV = new Class[2]; - argsCV[0] = Object.class; - argsCV[1] = EmbeddedManager.class; - Constructor constrV = cv.getConstructor(argsCV); - - Object[] argsK = new Object[2]; - Object[] argsV = new Object[2]; - for (int i = 0; i < cobjects.length; ++i) { - argsK[0] = cobjects[i]; - argsK[1] = embeddedManager; - - ++i; - assert(i < cobjects.length); - argsV[0] = cobjects[i]; - argsV[1] = embeddedManager; - - embedded.put(constrK.newInstance(argsK), constrV.newInstance(argsV)); - } - } catch (NoSuchMethodException e) { - System.out.println(e); - assert(false); - } catch (InstantiationException e) { - System.out.println(e); - assert(false); - } catch (IllegalAccessException e) { - System.out.println(e); - assert(false); - } catch (java.lang.reflect.InvocationTargetException e) { - System.out.println(e); - assert(false); - } - return embedded; - } - - - // unembed a list of Embedded objects to a list - public static Object[] unembedList(List embedded) { - Object[] unembedded = new Object[embedded.size()]; - - for (int i = 0; i < embedded.size(); ++i) { - assert(embedded.get(i) instanceof Embedded); - unembedded[i] = ((Embedded)embedded.get(i)).embedded(); - } - - return unembedded; - } - - public static Object[][] unembedListList(List embedded) { - Object[][] unembedded = new Object[embedded.size()][]; - - for (int i = 0; i < embedded.size(); ++i) { - Object list = embedded.get(i); - assert(list instanceof List); - unembedded[i] = unembedList((List)list); - } - - return unembedded; - } - - public static Object[][][] unembedListListList(List embedded) { - Object[][][] unembedded = new Object[embedded.size()][][]; - - for (int i = 0; i < embedded.size(); ++i) { - Object list = embedded.get(i); - assert(list instanceof List); - unembedded[i] = unembedListList((List)list); - } - - return unembedded; - } - - - // unembed a list of Embedded objects to a list - public static Object[] unembedArray(Object[] embedded) { - Object[] unembedded = new Object[embedded.length]; - - for (int i = 0; i < embedded.length; ++i) { - assert(embedded[i] instanceof Embedded); - unembedded[i] = ((Embedded)embedded[i]).embedded(); - } - - return unembedded; - } - - public static Object[] unembedArrayArray(Object[][] embedded) { - Object[] unembedded = new Object[embedded.length]; - - for (int i = 0; i < embedded.length; ++i) { - unembedded[i] = unembedArray(embedded[i]); - } - - return unembedded; - } - - public static Object[] unembedArrayArrayArray(Object[][][] embedded) { - Object[] unembedded = new Object[embedded.length]; - - for (int i = 0; i < embedded.length; ++i) { - unembedded[i] = unembedArrayArray(embedded[i]); - } - - return unembedded; - } - - - // copy a list of strings to a list - public static Object[] toArray(List list) { - assert(listInstanceof(list, String.class)); - assert(list.isEmpty() || !listInstanceof(list, Embedded.class)); - return list.toArray(); - } - - public static Object[] toArrayArray(List listList) { - Object[] arrayArray = new Object[listList.size()]; - - for (int i = 0; i < listList.size(); ++i) { - Object list = listList.get(i); - assert(list instanceof List); - arrayArray[i] = toArray(((List)list)); - } - - return arrayArray; - } - - public static Object[] toArrayArrayArray(List listListList) { - Object[] arrayArrayArray = new Object[listListList.size()]; - - for (int i = 0; i < listListList.size(); ++i) { - Object list = listListList.get(i); - assert(list instanceof List); - arrayArrayArray[i] = toArrayArray((List)list); - } - - return arrayArrayArray; - } -} - diff --git a/src/bindings/compat/java/src/cvc3/Op.java b/src/bindings/compat/java/src/cvc3/Op.java deleted file mode 100644 index 7893d95a5..000000000 --- a/src/bindings/compat/java/src/cvc3/Op.java +++ /dev/null @@ -1,66 +0,0 @@ -package cvc3; - -import java.util.*; - -public class Op extends Embedded { - // jni methods - private static native boolean - jniEquals(Object Expr1, Object Expr2) throws Cvc3Exception; - private static native String - jniToString(Object Expr) throws Cvc3Exception; - - private static native Object - jniGetExpr(Object op) throws Cvc3Exception; - private static native boolean - jniIsNull(Object Op) throws Cvc3Exception; - - /// Constructor - - public Op(Object Op, EmbeddedManager embeddedManager) { - super(Op, embeddedManager); - } - - - /// API (immutable) - - public boolean equals(Object o) { - if (this == o) return true; - - if (!(o instanceof Op)) return false; - boolean result = false; - try { - result = jniEquals(embedded(), ((Embedded)o).embedded()); - } catch (Cvc3Exception e) { - assert(false); - } - return result; - } - - // must return the same hash code for two objects if equals returns true - public int hashCode() { - try { - return getExpr().hashCode(); - } catch (Cvc3Exception e) { - assert(false); - } - return 0; - } - - public String toString() { - String result = ""; - try { - result = jniToString(embedded()); - } catch (Cvc3Exception e) { - assert(false); - } - return result; - } - - public ExprMut getExpr() throws Cvc3Exception { - return new ExprMut(jniGetExpr(embedded()), embeddedManager()); - } - - public boolean isNull() throws Cvc3Exception { - return jniIsNull(embedded()); - } -} diff --git a/src/bindings/compat/java/src/cvc3/OpMut.java b/src/bindings/compat/java/src/cvc3/OpMut.java deleted file mode 100644 index c609c16be..000000000 --- a/src/bindings/compat/java/src/cvc3/OpMut.java +++ /dev/null @@ -1,18 +0,0 @@ -package cvc3; - -import java.util.*; - -public class OpMut extends Op { - // jni methods - - - /// Constructor - - // create embedded object - public OpMut(Object OpMut, EmbeddedManager embeddedManager) { - super(OpMut, embeddedManager); - } - - - /// API (mutable) -} diff --git a/src/bindings/compat/java/src/cvc3/OpMut_impl.cpp b/src/bindings/compat/java/src/cvc3/OpMut_impl.cpp deleted file mode 100644 index e69de29bb..000000000 --- a/src/bindings/compat/java/src/cvc3/OpMut_impl.cpp +++ /dev/null diff --git a/src/bindings/compat/java/src/cvc3/Op_impl.cpp b/src/bindings/compat/java/src/cvc3/Op_impl.cpp deleted file mode 100644 index 0d124fe19..000000000 --- a/src/bindings/compat/java/src/cvc3/Op_impl.cpp +++ /dev/null @@ -1,18 +0,0 @@ -INCLUDE: <expr_op.h> - -DEFINITION: Java_cvc3_Op_jniEquals -jboolean c Op op1 c Op op2 -return *op1 == *op2; - -DEFINITION: Java_cvc3_Op_jniToString -jstring c Op op -return toJava(env, op->toString()); - - -DEFINITION: Java_cvc3_Op_jniGetExpr -jobject c Op op -return embed_const_ref<Expr>(env, &op->getExpr()); - -DEFINITION: Java_cvc3_Op_jniIsNull -jboolean c Op op -return op->isNull(); diff --git a/src/bindings/compat/java/src/cvc3/ParserException.java b/src/bindings/compat/java/src/cvc3/ParserException.java deleted file mode 100644 index 50f7e2a03..000000000 --- a/src/bindings/compat/java/src/cvc3/ParserException.java +++ /dev/null @@ -1,13 +0,0 @@ -package cvc3; - -import java.util.*; - -/** mirrors CVC3::ParserException */ -public class ParserException extends Cvc3Exception { - - private final static long serialVersionUID = 1L; - - public ParserException(String message) { - super(message); - } -} diff --git a/src/bindings/compat/java/src/cvc3/Proof.java b/src/bindings/compat/java/src/cvc3/Proof.java deleted file mode 100644 index a57cb75c8..000000000 --- a/src/bindings/compat/java/src/cvc3/Proof.java +++ /dev/null @@ -1,17 +0,0 @@ -package cvc3; - -import java.util.*; - -public class Proof extends Embedded { - // jni methods - - /// Constructor - - public Proof(Object Proof, EmbeddedManager embeddedManager) { - super(Proof, embeddedManager); - } - - - /// API (immutable) - -} diff --git a/src/bindings/compat/java/src/cvc3/ProofMut.java b/src/bindings/compat/java/src/cvc3/ProofMut.java deleted file mode 100644 index a4f528723..000000000 --- a/src/bindings/compat/java/src/cvc3/ProofMut.java +++ /dev/null @@ -1,18 +0,0 @@ -package cvc3; - -import java.util.*; - -public class ProofMut extends Proof { - // jni methods - - - /// Constructor - - // create embedded object - public ProofMut(Object ProofMut, EmbeddedManager embeddedManager) { - super(ProofMut, embeddedManager); - } - - - /// API (mutable) -} diff --git a/src/bindings/compat/java/src/cvc3/ProofMut_impl.cpp b/src/bindings/compat/java/src/cvc3/ProofMut_impl.cpp deleted file mode 100644 index e69de29bb..000000000 --- a/src/bindings/compat/java/src/cvc3/ProofMut_impl.cpp +++ /dev/null diff --git a/src/bindings/compat/java/src/cvc3/Proof_impl.cpp b/src/bindings/compat/java/src/cvc3/Proof_impl.cpp deleted file mode 100644 index e69de29bb..000000000 --- a/src/bindings/compat/java/src/cvc3/Proof_impl.cpp +++ /dev/null diff --git a/src/bindings/compat/java/src/cvc3/QueryResult.java b/src/bindings/compat/java/src/cvc3/QueryResult.java deleted file mode 100644 index afb2996cc..000000000 --- a/src/bindings/compat/java/src/cvc3/QueryResult.java +++ /dev/null @@ -1,51 +0,0 @@ -package cvc3; - -import java.util.*; - -/** - * QueryResult is an enum in Cvc3, but as we have to use java 1.4 we have to - * use one of the usual tricks instead of java's Enum. - * - * To be independent of changes of the actual values of the c++ enum elements - * they are passed by name from the JNI interface, so that changing them will - * violently break the code (though unfortunately only at runtime). - */ -public class QueryResult { - private final String d_result; - - private QueryResult(String result) { - d_result = result; - } - - // value constants - public static final QueryResult INVALID = new QueryResult("INVALID"); - public static final QueryResult VALID = new QueryResult("VALID"); - public static final QueryResult ABORT = new QueryResult("ABORT"); - public static final QueryResult UNKNOWN = new QueryResult("UNKNOWN"); - - // names of c++ enum values, CVC3 maps INVALID->SAT and VALID->UNSAT - private static Map valueMap = new HashMap() { - { - put("SATISFIABLE", INVALID); - put("UNSATISFIABLE", VALID); - put("UNKNOWN", UNKNOWN); - put("ABORT", ABORT); - } - - public static final long serialVersionUID = 1L; - }; - - // the QueryResult corresponding to a c++ enum value by name - public static QueryResult get(String value) throws DebugException { - QueryResult queryResult = (QueryResult) valueMap.get(value); - if (queryResult == null) { - throw new DebugException("QueryResult.constructor: unknown enum value: " - + value); - } - return queryResult; - } - - public String toString() { - return d_result; - } -} diff --git a/src/bindings/compat/java/src/cvc3/Rational.java b/src/bindings/compat/java/src/cvc3/Rational.java deleted file mode 100644 index 96a8dd60a..000000000 --- a/src/bindings/compat/java/src/cvc3/Rational.java +++ /dev/null @@ -1,218 +0,0 @@ -package cvc3; - -import java.util.*; - -public class Rational extends Embedded { - // jni methods - private static native Object - jniRational1(int n, int d) throws Cvc3Exception; - private static native Object - jniRational2(String n, int base) throws Cvc3Exception; - private static native Object - jniRational3(String n, String d, int base) throws Cvc3Exception; - - private static native boolean - jniEquals(Object Rational1, Object Rational2) throws Cvc3Exception; - private static native String - jniToString(Object Rational) throws Cvc3Exception; - private static native int - jniHash(Object Rational) throws Cvc3Exception; - - private static native boolean - jniIsLe(Object Rational1, Object Rational2) throws Cvc3Exception; - private static native boolean - jniIsLt(Object Rational1, Object Rational2) throws Cvc3Exception; - private static native boolean - jniIsGe(Object Rational1, Object Rational2) throws Cvc3Exception; - private static native boolean - jniIsGt(Object Rational1, Object Rational2) throws Cvc3Exception; - - private static native Object - jniPlus(Object Rational1, Object Rational2) throws Cvc3Exception; - private static native Object - jniMinus(Object Rational1, Object Rational2) throws Cvc3Exception; - private static native Object - jniMult(Object Rational1, Object Rational2) throws Cvc3Exception; - private static native Object - jniDivide(Object Rational1, Object Rational2) throws Cvc3Exception; - private static native Object - jniMod(Object Rational1, Object Rational2) throws Cvc3Exception; - - - private static native Object - jniGetNumerator(Object Rational) throws Cvc3Exception; - private static native Object - jniGetDenominator(Object Rational) throws Cvc3Exception; - private static native boolean - jniIsInteger(Object Rational) throws Cvc3Exception; - private static native int - jniGetInteger(Object Rational) throws Cvc3Exception; - - - private static native Object - jniGcd(Object Rational1, Object Rational2) throws Cvc3Exception; - private static native Object - jniLcm(Object Rational1, Object Rational2) throws Cvc3Exception; - private static native Object - jniAbs(Object Rational) throws Cvc3Exception; - private static native Object - jniFloor(Object Rational) throws Cvc3Exception; - private static native Object - jniCeil(Object Rational) throws Cvc3Exception; - - /// Constructor - - public Rational(Object Rational, EmbeddedManager embeddedManager) { - super(Rational, embeddedManager); - } - - - public Rational(int n, EmbeddedManager embeddedManager) throws Cvc3Exception { - this(jniRational1(n, 10), embeddedManager); - } - - public Rational(int n, int d, EmbeddedManager embeddedManager) throws Cvc3Exception { - this(jniRational1(n, d), embeddedManager); - } - - public Rational(String n, EmbeddedManager embeddedManager) throws Cvc3Exception { - this(jniRational2(n, 10), embeddedManager); - } - - public Rational(String n, int base, EmbeddedManager embeddedManager) throws Cvc3Exception { - this(jniRational2(n, base), embeddedManager); - } - - public Rational(String n, String d, EmbeddedManager embeddedManager) throws Cvc3Exception { - this(jniRational3(n, d, 10), embeddedManager); - } - - public Rational(String n, String d, int base, EmbeddedManager embeddedManager) throws Cvc3Exception { - this(jniRational3(n, d, base), embeddedManager); - } - - - - /// API (immutable) - - // 'Problem' with equals/hashCode: - // this is based on the wrapped c++ expressions. - // as a consequence two Expr objects are equal iff - // the wrapped expression is equal, - // and are indistinguishable for example in a HashMap. - - public boolean equals(Object o) { - if (this == o) return true; - - if (!(o instanceof Rational)) return false; - boolean result = false; - try { - result = jniEquals(embedded(), ((Embedded)o).embedded()); - } catch (Cvc3Exception e) { - assert(false); - } - return result; - } - - // must return the same hash code for two objects if equals returns true - public int hashCode() { - try { - return jniHash(embedded()); - } catch (Cvc3Exception e) { - assert(false); - } - assert(false); - return 0; - } - - - public String toString() { - String result = ""; - try { - result = jniToString(embedded()); - } catch (Cvc3Exception e) { - assert(false); - } - return result; - } - - - public boolean isLt(Rational r) throws Cvc3Exception { - return jniIsLt(embedded(), r.embedded()); - } - - public boolean isLe(Rational r) throws Cvc3Exception { - return jniIsLe(embedded(), r.embedded()); - } - - public boolean isGt(Rational r) throws Cvc3Exception { - return jniIsGt(embedded(), r.embedded()); - } - - public boolean isGe(Rational r) throws Cvc3Exception { - return jniIsGe(embedded(), r.embedded()); - } - - - - public Rational plus(Rational r) throws Cvc3Exception { - return new Rational(jniPlus(embedded(), r.embedded()), embeddedManager()); - } - - public Rational minus(Rational r) throws Cvc3Exception { - return new Rational(jniPlus(embedded(), r.embedded()), embeddedManager()); - } - - public Rational mult(Rational r) throws Cvc3Exception { - return new Rational(jniPlus(embedded(), r.embedded()), embeddedManager()); - } - - public Rational divide(Rational r) throws Cvc3Exception { - return new Rational(jniPlus(embedded(), r.embedded()), embeddedManager()); - } - - public Rational mod(Rational r) throws Cvc3Exception { - return new Rational(jniPlus(embedded(), r.embedded()), embeddedManager()); - } - - - - public Rational getNumerator() throws Cvc3Exception { - return new Rational(jniGetNumerator(embedded()), embeddedManager()); - } - - public Rational getDenominator() throws Cvc3Exception { - return new Rational(jniGetDenominator(embedded()), embeddedManager()); - } - - public boolean isInteger() throws Cvc3Exception { - return jniIsInteger(embedded()); - } - - public int getInteger() throws Cvc3Exception { - assert(isInteger()); - return jniGetInteger(embedded()); - } - - - - public Rational gcd(Rational r) throws Cvc3Exception { - return new Rational(jniGcd(embedded(), r.embedded()), embeddedManager()); - } - - public Rational lcm(Rational r) throws Cvc3Exception { - return new Rational(jniLcm(embedded(), r.embedded()), embeddedManager()); - } - - public Rational abs() throws Cvc3Exception { - return new Rational(jniAbs(embedded()), embeddedManager()); - } - - public Rational floor() throws Cvc3Exception { - return new Rational(jniFloor(embedded()), embeddedManager()); - } - - public Rational ceil() throws Cvc3Exception { - return new Rational(jniCeil(embedded()), embeddedManager()); - } -} diff --git a/src/bindings/compat/java/src/cvc3/RationalMut.java b/src/bindings/compat/java/src/cvc3/RationalMut.java deleted file mode 100644 index 28592403a..000000000 --- a/src/bindings/compat/java/src/cvc3/RationalMut.java +++ /dev/null @@ -1,18 +0,0 @@ -package cvc3; - -import java.util.*; - -public class RationalMut extends Rational { - // jni methods - - - /// Constructor - - // create embedded object - public RationalMut(Object RationalMut, EmbeddedManager embeddedManager) { - super(RationalMut, embeddedManager); - } - - - /// API (mutable) -} diff --git a/src/bindings/compat/java/src/cvc3/RationalMut_impl.cpp b/src/bindings/compat/java/src/cvc3/RationalMut_impl.cpp deleted file mode 100644 index e69de29bb..000000000 --- a/src/bindings/compat/java/src/cvc3/RationalMut_impl.cpp +++ /dev/null diff --git a/src/bindings/compat/java/src/cvc3/Rational_impl.cpp b/src/bindings/compat/java/src/cvc3/Rational_impl.cpp deleted file mode 100644 index 4b92ac5ca..000000000 --- a/src/bindings/compat/java/src/cvc3/Rational_impl.cpp +++ /dev/null @@ -1,105 +0,0 @@ -INCLUDE: <rational.h> - -DEFINITION: Java_cvc3_Rational_jniRational1 -jobject n int n n int d -return embed_copy(env, Rational(n, d)); - -DEFINITION: Java_cvc3_Rational_jniRational2 -jobject n string n n int d -return embed_copy(env, Rational(n, d)); - -DEFINITION: Java_cvc3_Rational_jniRational3 -jobject n string n n string d n int base -return embed_copy(env, Rational(n, d, base)); - - - -DEFINITION: Java_cvc3_Rational_jniEquals -jboolean c Rational r1 c Rational r2 -return *r1 == *r2; - -DEFINITION: Java_cvc3_Rational_jniToString -jstring c Rational r -return toJava(env, r->toString()); - -DEFINITION: Java_cvc3_Rational_jniHash -jint c Rational r -return r->hash(); - - - -DEFINITION: Java_cvc3_Rational_jniIsLt -jboolean c Rational r1 c Rational r2 -return *r1 < *r2; - -DEFINITION: Java_cvc3_Rational_jniIsLe -jboolean c Rational r1 c Rational r2 -return *r1 <= *r2; - -DEFINITION: Java_cvc3_Rational_jniIsGt -jboolean c Rational r1 c Rational r2 -return *r1 > *r2; - -DEFINITION: Java_cvc3_Rational_jniIsGe -jboolean c Rational r1 c Rational r2 -return *r1 >= *r2; - - - -DEFINITION: Java_cvc3_Rational_jniPlus -jobject c Rational r1 c Rational r2 -return embed_copy(env, *r1 + *r2); - -DEFINITION: Java_cvc3_Rational_jniMinus -jobject c Rational r1 c Rational r2 -return embed_copy(env, *r1 + *r2); - -DEFINITION: Java_cvc3_Rational_jniMult -jobject c Rational r1 c Rational r2 -return embed_copy(env, *r1 + *r2); - -DEFINITION: Java_cvc3_Rational_jniDivide -jobject c Rational r1 c Rational r2 -return embed_copy(env, *r1 + *r2); - -DEFINITION: Java_cvc3_Rational_jniMod -jobject c Rational r1 c Rational r2 -return embed_copy(env, *r1 % *r2); - - - -DEFINITION: Java_cvc3_Rational_jniGetNumerator -jobject c Rational r -return embed_copy(env, r->getNumerator()); - -DEFINITION: Java_cvc3_Rational_jniGetDenominator -jobject c Rational r -return embed_copy(env, r->getDenominator()); - -DEFINITION: Java_cvc3_Rational_jniIsInteger -jboolean c Rational r -return r->isInteger(); - -DEFINITION: Java_cvc3_Rational_jniGetInteger -jint c Rational r -return r->getInt(); - -DEFINITION: Java_cvc3_Rational_jniGcd -jobject c Rational r1 c Rational r2 -return embed_copy(env, gcd(*r1, *r2)); - -DEFINITION: Java_cvc3_Rational_jniLcm -jobject c Rational r1 c Rational r2 -return embed_copy(env, lcm(*r1, *r2)); - -DEFINITION: Java_cvc3_Rational_jniAbs -jobject c Rational r -return embed_copy(env, abs(*r)); - -DEFINITION: Java_cvc3_Rational_jniFloor -jobject c Rational r -return embed_copy(env, floor(*r)); - -DEFINITION: Java_cvc3_Rational_jniCeil -jobject c Rational r -return embed_copy(env, ceil(*r)); diff --git a/src/bindings/compat/java/src/cvc3/SatResult.java b/src/bindings/compat/java/src/cvc3/SatResult.java deleted file mode 100644 index 2aabb2fee..000000000 --- a/src/bindings/compat/java/src/cvc3/SatResult.java +++ /dev/null @@ -1,46 +0,0 @@ -package cvc3; - -import java.util.*; - -/** - * SatResult is derived from the QueryResult enum in Cvc3, but as we have to - * use java 1.4 we have to use one of the usual tricks instead of java's Enum. - * - * To be independent of changes of the actual values of the c++ enum elements - * they are passed by name from the JNI interface, so that changing them will - * violently break the code (though unfortunately only at runtime). - */ -public class SatResult { - private final String d_result; - - private SatResult(String result) { - d_result = result; - } - - // names of c++ enum values - public static final SatResult SATISFIABLE = new SatResult("SATISFIABLE"); - public static final SatResult UNSATISFIABLE = new SatResult("UNSATISFIABLE"); - public static final SatResult ABORT = new SatResult("ABORT"); - public static final SatResult UNKNOWN = new SatResult("UNKNOWN"); - - // the SatResult corresponding to a c++ enum value by name - public static SatResult get(String value) throws DebugException { - if (value.equals(SATISFIABLE.toString())) { - return SATISFIABLE; - } else if (value.equals(UNSATISFIABLE.toString())) { - return UNSATISFIABLE; - } else if (value.equals(ABORT.toString())) { - return ABORT; - } else if (value.equals(UNKNOWN.toString())) { - return UNKNOWN; - } else { - throw new DebugException("SatResult.constructor: unknown enum value: " - + value); - } - } - - // the SatResult's c++ enum value - public String toString() { - return d_result; - } -} diff --git a/src/bindings/compat/java/src/cvc3/SmtlibException.java b/src/bindings/compat/java/src/cvc3/SmtlibException.java deleted file mode 100644 index 0601342ad..000000000 --- a/src/bindings/compat/java/src/cvc3/SmtlibException.java +++ /dev/null @@ -1,13 +0,0 @@ -package cvc3; - -import java.util.*; - -/** mirrors CVC3::SmtlibException */ -public class SmtlibException extends Cvc3Exception { - - private final static long serialVersionUID = 1L; - - public SmtlibException(String message) { - super(message); - } -} diff --git a/src/bindings/compat/java/src/cvc3/SoundException.java b/src/bindings/compat/java/src/cvc3/SoundException.java deleted file mode 100644 index 607433d63..000000000 --- a/src/bindings/compat/java/src/cvc3/SoundException.java +++ /dev/null @@ -1,13 +0,0 @@ -package cvc3; - -import java.util.*; - -/** mirrors CVC3::SoundException */ -public class SoundException extends Cvc3Exception { - - private final static long serialVersionUID = 1L; - - public SoundException(String message) { - super(message); - } -} diff --git a/src/bindings/compat/java/src/cvc3/Statistics.java b/src/bindings/compat/java/src/cvc3/Statistics.java deleted file mode 100644 index 75b7b3156..000000000 --- a/src/bindings/compat/java/src/cvc3/Statistics.java +++ /dev/null @@ -1,17 +0,0 @@ -package cvc3; - -import java.util.*; - -public class Statistics extends Embedded { - // jni methods - - /// Constructor - - public Statistics(Object Statistics, EmbeddedManager embeddedManager) { - super(Statistics, embeddedManager); - } - - - /// API (immutable) - -} diff --git a/src/bindings/compat/java/src/cvc3/StatisticsMut.java b/src/bindings/compat/java/src/cvc3/StatisticsMut.java deleted file mode 100644 index 30a5dda37..000000000 --- a/src/bindings/compat/java/src/cvc3/StatisticsMut.java +++ /dev/null @@ -1,18 +0,0 @@ -package cvc3; - -import java.util.*; - -public class StatisticsMut extends Statistics { - // jni methods - - - /// Constructor - - // create embedded object - public StatisticsMut(Object StatisticsMut, EmbeddedManager embeddedManager) { - super(StatisticsMut, embeddedManager); - } - - - /// API (mutable) -} diff --git a/src/bindings/compat/java/src/cvc3/StatisticsMut_impl.cpp b/src/bindings/compat/java/src/cvc3/StatisticsMut_impl.cpp deleted file mode 100644 index e69de29bb..000000000 --- a/src/bindings/compat/java/src/cvc3/StatisticsMut_impl.cpp +++ /dev/null diff --git a/src/bindings/compat/java/src/cvc3/Statistics_impl.cpp b/src/bindings/compat/java/src/cvc3/Statistics_impl.cpp deleted file mode 100644 index e69de29bb..000000000 --- a/src/bindings/compat/java/src/cvc3/Statistics_impl.cpp +++ /dev/null diff --git a/src/bindings/compat/java/src/cvc3/Test.java b/src/bindings/compat/java/src/cvc3/Test.java deleted file mode 100644 index 8d4c0af03..000000000 --- a/src/bindings/compat/java/src/cvc3/Test.java +++ /dev/null @@ -1,2082 +0,0 @@ -package cvc3; - -import java.util.*; - -class Test { - - public static void main(String args[]) { - int regressLevel = 3; - if (args.length > 1) { - regressLevel = Integer.parseInt(args[0]); - } - - boolean allPassed = true; - System.out.println("Running API test, regress level = " + regressLevel); - try { - System.out.println("\ntest():"); - allPassed = test() && allPassed; - System.out.println("\n}\ntest1():"); - allPassed = test1() && allPassed; - System.out.println("\n}\ntest2():"); - allPassed = test2() && allPassed; - System.out.println("\n}\ntest3():"); - allPassed = test3() && allPassed; - System.out.println("\n}\ntest4():"); - allPassed = test4() && allPassed; - if (regressLevel > 0) { - System.out.println("\n}\n\ntest5():"); - allPassed = test5() && allPassed; - } - System.out.println("\n}\ntest6():"); - allPassed = test6() && allPassed; - System.out.println("\n}\ntest7():"); - allPassed = test7() && allPassed; - System.out.println("\n}\ntest8():"); - allPassed = test8() && allPassed; - System.out.println("\n}\ntest9():"); - allPassed = test9(10 * regressLevel + 10) && allPassed; - System.out.println("\n}\nbvtest9():"); - allPassed = bvtest9(regressLevel*3+2) && allPassed; - - // Test for obvious memory leaks - int limit = 100 * regressLevel + 10; - for (int i = 0; i < limit; ++i) { - if (i % 100 == 0) System.out.println("test10[" + i + "]"); - allPassed = test10() && allPassed; - } - - System.out.println("\n}\ntest11():"); - allPassed = test11() && allPassed; - System.out.println("\n}\ntest12():"); - allPassed = test12() && allPassed; - System.out.println("\n}\ntest13():"); - allPassed = test13() && allPassed; - System.out.println("\n}\ntest14():"); - allPassed = test14() && allPassed; - System.out.println("\n}\ntest15():"); - allPassed = test15() && allPassed; - System.out.println("\n}\ntest16():"); - allPassed = test16() && allPassed; - System.out.println("\n}\ntest17():"); - allPassed = test17() && allPassed; - System.out.println("\n}\ntest18():"); - allPassed = test18() && allPassed; - System.out.println("\n}\ntest19():"); - allPassed = test19() && allPassed; - System.out.println("\n}\ntest22():"); - allPassed = test22() && allPassed; - System.out.println("\n}\ntest23():"); - allPassed = test23() && allPassed; - /* :TODO: - if (regressLevel > 1) { - System.out.println("\n}\ntestgeorge1():"); - George.testgeorge1(); - System.out.println("\n}\ntestgeorge2():"); - George.testgeorge2(); - System.out.println("\n}\ntestgeorge3():"); - George.testgeorge3(); - System.out.println("\n}\ntestgeorge4():"); - George.testgeorge4(); - System.out.println("\n}\ntestgeorge5():"); - George.testgeorge5(); - } - */ - System.out.println("\n}\ntestNonlinearBV():"); - allPassed = testNonlinearBV() && allPassed; - System.out.println("\n}\ntestDistinct():"); - allPassed = testDistinct() && allPassed; - System.out.println("\n}"); - } catch (Exception e) { - System.out.println("*** Exception caught: \n" + e); - e.printStackTrace(System.out); - allPassed = false; - } - - if (allPassed) { - System.out.println("Program exits successfully."); - } - else { - System.out.println("Program exits with error status = " + allPassed + "."); - } - System.exit(allPassed ? 0 : 1); - } - - - public static void DebugAssert(boolean condition, String message) throws Cvc3Exception { - if (!condition) { - throw new DebugException(message); - } - } - - // Check whether e is valid - public static boolean check(ValidityChecker vc, Expr e) throws Cvc3Exception { - return check(vc, e, true); - } - - public static boolean check(ValidityChecker vc, Expr e, boolean verbose) throws Cvc3Exception { - if(verbose) { - System.out.println("Query: " + e.toString()); - } - QueryResult result = vc.query(e); - if (result == QueryResult.VALID) { - if (verbose) System.out.println("Valid\n"); - return true; - } - else if (result == QueryResult.INVALID) { - if (verbose) System.out.println("Invalid\n"); - return false; - } - if (verbose) System.out.println("Returned neither valid nor invalid\n"); - return false; - } - - public static void printResult(QueryResult result) throws Cvc3Exception { - if (result == QueryResult.VALID) { - System.out.println("Result Valid"); - } - else if (result == QueryResult.INVALID) { - System.out.println("Result Invalid"); - } - else if (result == QueryResult.UNKNOWN) { - System.out.println("Result Unknown"); - } - else if (result == QueryResult.ABORT) { - System.out.println("Aborted"); - } else { - assert(false); - } - } - - // Make a new assertion - disposes expression - public static void newAssertion(ValidityChecker vc, Expr e) throws Cvc3Exception { - System.out.println("Assert: " + e); - vc.assertFormula(e); - } - - - - public static boolean test() throws Cvc3Exception { - ValidityChecker vc = null; - try { - vc = ValidityChecker.create(); - - Type it = vc.intType(); //int - Op f = vc.createOp("f", vc.funType(it, it)); - Expr z = vc.varExpr("z", it); - Expr e = vc.funExpr(f, vc.funExpr(f, z)); - e = e.getChild(0); - Expr f2 = vc.funExpr(f, e); - Expr f3 = vc.funExpr(f, f2); - - DebugAssert(!e.equals(f2) && !e.equals(f3), "Refcount problems"); - - Expr x = vc.boundVarExpr("x", "0", it); //x0:int - List xs = new ArrayList(); - xs.add(x); //<x0:int> - Op lxsx = vc.lambdaExpr(xs, x); //\<x0:int>. x0:int - Expr y = vc.ratExpr(1, 1); //1 - List ys = new ArrayList(); - ys.add(y); //<1> - Expr lxsxy = vc.funExpr(lxsx, y); //(\<x0:int>. x0:int)1 - Expr lxsxys = vc.funExpr(lxsx, ys); //(\<x0:int>. x0:int)<1> - System.out.println("Lambda application: " + lxsxy); - System.out.println("Simplified: " + vc.simplify(lxsxy)); - return true; - } catch (Exception e) { - System.out.println("*** Exception caught in test(): \n" + e); - e.printStackTrace(System.out); - return false; - } finally { - if (vc != null) vc.delete(); - } - } - - public static boolean test1() throws Cvc3Exception { - // It is important that all Expr objects are deleted before vc is - // deleted. Therefore, we enclose them in a scope of try{ }catch - // block. - // - // Also, vc methods may throw an Exception, and we want to delete vc - // even in those exceptional cases. - ValidityChecker vc = null; - FlagsMut flags = null; - try { - flags = ValidityChecker.createFlags(null); - flags.setFlag("dagify-exprs",false); - flags.setFlag("dump-log", ".test1.cvc"); - vc = ValidityChecker.create(flags); - - boolean b = check(vc, vc.trueExpr()); - DebugAssert(b, "Should be valid"); - - vc.push(); - b = check(vc, vc.falseExpr()); - DebugAssert(!b, "Should be invalid"); - vc.pop(); - - // Check p OR ~p - - Expr p = vc.varExpr("p", vc.boolType()); - Expr e = vc.orExpr(p, vc.notExpr(p)); - - b = check(vc, e); - DebugAssert(b, "Should be valid"); - - // Check x = y . f(x) = f(y) - - Expr x = vc.varExpr("x", vc.realType()); - Expr y = vc.varExpr("y", vc.realType()); - - Type real2real = vc.funType(vc.realType(), vc.realType()); - Op f = vc.createOp("f", real2real); - Expr fx = vc.funExpr(f, x); - Expr fy = vc.funExpr(f, y); - - e = vc.impliesExpr(vc.eqExpr(x,y),vc.eqExpr(fx, fy)); - b = check(vc, e); - DebugAssert(b, "Should be valid"); - - // Check f(x) = f(y) . x = y - - e = vc.impliesExpr(vc.eqExpr(fx,fy),vc.eqExpr(x, y)); - int scopeLevel = vc.scopeLevel(); - vc.push(); - b = check(vc, e); - DebugAssert(!b, "Should be invalid"); - - // Get counter-example - - System.out.println("Scope level: " + vc.scopeLevel()); - System.out.println("Counter-example:"); - List assertions = vc.getCounterExample(); - for (int i = 0; i < assertions.size(); ++i) { - System.out.println((Expr)assertions.get(i)); - } - System.out.println("End of counter-example"); - System.out.println(); - - // Reset to initial scope - System.out.println("Resetting"); - vc.pop(); - DebugAssert(scopeLevel == vc.scopeLevel(), "scope error"); - System.out.println("Scope level: " + vc.scopeLevel()); - System.out.println(); - - // Check w = x & x = y & y = z & f(x) = f(y) & x = 1 & z = 2 - - Expr w = vc.varExpr("w", vc.realType()); - Expr z = vc.varExpr("z", vc.realType()); - - System.out.println("Push Scope"); - System.out.println(); - vc.push(); - - newAssertion(vc, vc.eqExpr(w, x)); - newAssertion(vc, vc.eqExpr(x, y)); - newAssertion(vc, vc.eqExpr(y, z)); - newAssertion(vc, vc.eqExpr(fx, fy)); - newAssertion(vc, vc.eqExpr(x, vc.ratExpr(1))); - - System.out.println("simplify(w) = " + vc.simplify(w)); - DebugAssert(vc.simplify(w).equals(vc.ratExpr(1)), "Expected simplify(w) = 1"); - - newAssertion(vc, vc.eqExpr(z, vc.ratExpr(2))); - System.out.println("Inconsistent?: " + vc.inconsistent()); - - System.out.println("Assumptions Used:"); - assertions = vc.inconsistentReasons(); - for (int i = 0; i < assertions.size(); ++i) { - System.out.println((Expr)assertions.get(i)); - } - - System.out.println("Pop Scope"); - System.out.println(); - vc.pop(); - - System.out.println("simplify(w) = " + vc.simplify(w)); - DebugAssert(vc.simplify(w).equals(w), "Expected simplify(w) = w"); - - System.out.println("Inconsistent?: " + vc.inconsistent()); - - return true; - } catch (Exception e) { - System.out.println("*** Exception caught in test1(): \n" + e); - e.printStackTrace(System.out); - return false; - } finally { - if (vc != null) vc.delete(); - if (flags != null) flags.delete(); - } - } - - - public static boolean test2() throws Cvc3Exception { - ValidityChecker vc = null; - FlagsMut flags = null; - try { - flags = ValidityChecker.createFlags(null); - flags.setFlag("dagify-exprs",false); - vc = ValidityChecker.create(flags); - - Expr bexpr = vc.varExpr("b", vc.intType()); - vc.assertFormula(vc.ltExpr(bexpr, vc.ratExpr(10))); - - Expr c = vc.varExpr("c", vc.intType()); - vc.assertFormula(vc.orExpr(vc.eqExpr(c, vc.ratExpr(0)), vc.eqExpr(c, vc.ratExpr(1)))); - - boolean b = check(vc, vc.leExpr(bexpr, vc.ratExpr(10))); - DebugAssert(b, "Should be valid"); - - b = check(vc, vc.falseExpr()); - DebugAssert(!b, "Should be invalid"); - vc.returnFromCheck(); - - // Check x = y . g(x,y) = g(y,x) - - Expr x = vc.varExpr("x", vc.realType()); - Expr y = vc.varExpr("y", vc.realType()); - - Type real = vc.realType(); - List RxR = new ArrayList(); - RxR.add(real); - RxR.add(real); - - Type realxreal2real = vc.funType(RxR, real); - Op g = vc.createOp("g", realxreal2real); - - Expr gxy = vc.funExpr(g, x, y); - Expr gyx = vc.funExpr(g, y, x); - - Expr e = vc.impliesExpr(vc.eqExpr(x,y),vc.eqExpr(gxy, gyx)); - b = check(vc, e); - DebugAssert(b, "Should be valid"); - - Op h = vc.createOp("h", realxreal2real); - - Expr hxy = vc.funExpr(h, x, y); - Expr hyx = vc.funExpr(h, y, x); - - e = vc.impliesExpr(vc.eqExpr(x,y),vc.eqExpr(hxy, hyx)); - b = check(vc, e); - DebugAssert(b, "Should be valid"); - - return true; - } catch (Exception e) { - System.out.println("*** Exception caught in test2(): \n" + e); - e.printStackTrace(System.out); - return false; - } finally { - if (vc != null) vc.delete(); - if (flags != null) flags.delete(); - } - } - - - public static ExprMut ltLex(ValidityChecker vc, Expr i1, Expr i2, Expr j1, Expr j2) throws Cvc3Exception { - Expr res = vc.ltExpr(i1, j1); - return vc.orExpr(res, vc.andExpr(vc.eqExpr(i1, j1), vc.ltExpr(i2, j2))); - } - - public static ExprMut createTestFormula(ValidityChecker vc, Expr i1, Expr i2, Expr r1, Expr r2) - throws Cvc3Exception { - Expr lt1 = ltLex(vc, r1, r2, i1, i2); - Expr lt2 = ltLex(vc, i2, i1, r2, r1); - return vc.andExpr(lt1, lt2); - } - - public static boolean test3() throws Cvc3Exception { - ValidityChecker vc = null; - FlagsMut flags = null; - try { - flags = ValidityChecker.createFlags(null); - flags.setFlag("dagify-exprs",false); - vc = ValidityChecker.create(flags); - - Expr i = vc.varExpr("i", vc.realType()); - Expr j = vc.varExpr("j", vc.realType()); - Expr k = vc.varExpr("k", vc.realType()); - - Expr one = vc.ratExpr(1); - - Expr test = createTestFormula(vc, i, j, - vc.minusExpr(i, one), vc.minusExpr(j, k)); - - System.out.println("Trying test: " + test); - - vc.push(); - QueryResult result = vc.query(test); - if (result == QueryResult.VALID) { - System.out.println("Test Valid"); - vc.pop(); - } - else { - List assertions = vc.getCounterExample(); - System.out.println("Test Invalid Under Conditions:"); - for (int index = 0; index < assertions.size(); ++index) { - System.out.println(assertions.get(index)); - } - - // Try assertions one by one - for (int index = 0; index < assertions.size(); ++index) { - Expr condition = vc.notExpr((Expr)assertions.get(index)); - System.out.println("Trying test under condition: " + condition); - vc.pop(); - vc.push(); - printResult(vc.query(vc.impliesExpr(condition, test))); - } - } - - return true; - } catch (Exception e) { - System.out.println("*** Exception caught in test3(): \n" + e); - e.printStackTrace(System.out); - return false; - } finally { - if (vc != null) vc.delete(); - if (flags != null) flags.delete(); - } - } - - - public static boolean test4() throws Cvc3Exception { - ValidityChecker vc = null; - FlagsMut flags = null; - try { - flags = ValidityChecker.createFlags(null); - flags.setFlag("dagify-exprs",false); - vc = ValidityChecker.create(flags); - - Expr i = vc.varExpr("i", vc.realType()); - Expr j = vc.varExpr("j", vc.realType()); - Expr k = vc.varExpr("k", vc.realType()); - - Expr one = vc.ratExpr(1); - - Expr test = createTestFormula(vc, i, j, - vc.minusExpr(i, one), vc.minusExpr(j, k)); - - System.out.println("Trying test: " + test); - - vc.push(); - QueryResult result = vc.query(test); - if (result == QueryResult.VALID) { - System.out.println("Test Valid"); - } - else { - List assertions = vc.getCounterExample(); - System.out.println("Test Invalid Under Conditions:"); - for (int index = 0; index < assertions.size(); ++index) { - System.out.println(assertions.get(index)); - } - - // Try assertions one by one - for (int index = 0; index < assertions.size(); ++index) { - Expr condition = vc.notExpr((Expr)assertions.get(index)); - System.out.println("Trying test under condition: " + condition); - vc.pop(); - vc.push(); - printResult(vc.query(vc.impliesExpr(condition, test))); - } - } - - return true; - } catch (Exception e) { - System.out.println("*** Exception caught in test4(): \n" + e); - e.printStackTrace(System.out); - return false; - } finally { - if (vc != null) vc.delete(); - if (flags != null) flags.delete(); - } - } - - - public static void findLeaves(Expr e, List l) throws Cvc3Exception { - int ar = e.arity(); - if (ar > 0) { - for (int i = 0; i < ar; ++i) { - findLeaves(e.getChild(i), l); - } - return; - } - l.add(e); - } - - public static boolean hasij(Expr e, Expr i, Expr j) throws Cvc3Exception { - int ar = e.arity(); - if (ar > 0) { - for (int k = 0; k < ar; ++k) - if (hasij(e.getChild(k), i, j)) return true; - return false; - } - if (e.equals(i) || e.equals(j)) return true; - return false; - } - - public static Expr plusExpr(ValidityChecker vc, List kids) throws Cvc3Exception { - if (kids.size() == 0) return vc.ratExpr(0); - else if (kids.size() == 1) return (Expr)kids.get(0); - else if (kids.size() == 2) return vc.plusExpr((Expr)kids.get(0), (Expr)kids.get(1)); - else { - Expr r = (Expr)kids.get(kids.size() - 1); - kids.remove(kids.size() - 1); - return vc.plusExpr(plusExpr(vc, kids), r); - } - } - - public static boolean test5() throws Cvc3Exception { - ValidityChecker vc = null; - FlagsMut flags = null; - try { - flags = ValidityChecker.createFlags(null); - flags.setFlag("dagify-exprs",false); - vc = ValidityChecker.create(flags); - - Expr i = vc.varExpr("i1", vc.realType()); - Expr j = vc.varExpr("i2", vc.realType()); - Expr p = vc.varExpr("p", vc.realType()); - Expr q = vc.varExpr("q", vc.realType()); - Expr r = vc.varExpr("r", vc.realType()); - Expr a = vc.varExpr("arb_addr", vc.realType()); - Expr N = vc.varExpr("N", vc.realType()); - - Expr M = vc.varExpr("M", vc.arrayType(vc.realType(), vc.realType())); - - Expr M2 = vc.writeExpr(M, vc.plusExpr(q, i), vc.readExpr(M, vc.plusExpr(r, i))); - - Expr M1 = vc.writeExpr(M, vc.plusExpr(p, j), vc.readExpr(M, vc.plusExpr(r, j))); - - Expr e = vc.eqExpr(vc.readExpr(vc.writeExpr(M2, vc.plusExpr(p, j), - vc.readExpr(M2, vc.plusExpr(r, j))), a), - vc.readExpr(vc.writeExpr(M1, vc.plusExpr(q, i), - vc.readExpr(M1, vc.plusExpr(r, i))), a)); - - Expr one = vc.ratExpr(1); - Expr zero = vc.ratExpr(0); - - Expr qmp = vc.minusExpr(q, p); - Expr qmr = vc.minusExpr(q, r); - - List hyp = new ArrayList(); - hyp.add(vc.ltExpr(i, j)); - // hyp.add(vc.orExpr(vc.geExpr(qmp, N), vc.leExpr(qmp, zero))); - // hyp.add(vc.orExpr(vc.geExpr(qmr, N), vc.leExpr(qmr, zero))); - - Expr test = vc.impliesExpr(vc.andExpr(hyp), e); - Expr query; - - System.out.println("Checking verification condition:" + test); - - vc.push(); - QueryResult result = vc.query(test); - if (result == QueryResult.VALID) { - System.out.println("Test Valid"); - } - else { - List conditions = new ArrayList(); - int req; - - List assertions = vc.getCounterExample(); - - System.out.println("Invalid Under Conditions:"); - for (int index = 0; index < assertions.size(); ++index) { - if (((Expr)assertions.get(index)).equals(vc.notExpr(test))) { - for (; index < assertions.size()-1; ++index) { - assertions.set(index, assertions.get(index+1)); - } - assertions.remove(assertions.size() - 1); - break; - } - } - for (int index = 0; index < assertions.size(); ++index) { - System.out.println(assertions.get(index)); - } - - System.out.println(); - - // Try assertions one by one - for (int index = 0; index < assertions.size(); ++index) { - e = (Expr)assertions.get(index); - - // Check condition for eligibility - if (e.isNot()) { - System.out.println("Condition ineligible: negation: " + e); - System.out.println(); - continue; - } - if (e.isEq()) { - req = 2; - } - else req = 1; - - List leaves = new ArrayList(); - findLeaves(e, leaves); - for (int index2 = 0; index2 < leaves.size(); ++index2) { - if (!((Expr)leaves.get(index2)).isVar() || - ((Expr)leaves.get(index2)).equals(i) || - ((Expr)leaves.get(index2)).equals(j) || - ((Expr)leaves.get(index2)).equals(a)) - continue; - req--; - } - if (req > 0) { - System.out.println("Condition ineligible: not enough non-loop variables: " + e); - System.out.println(); - continue; - } - - System.out.println("Condition selected: " + e); - System.out.println(); - - conditions.add(vc.notExpr(e)); - System.out.println("Trying verification condition with hypothesis: " - + vc.andExpr(conditions)); - vc.pop(); - vc.push(); - query = vc.impliesExpr(vc.andExpr(conditions), test); - result = vc.query(test); - if (result == QueryResult.VALID) { - System.out.println("Result Valid"); - break; - } - else { - assertions = vc.getCounterExample(); - - System.out.println("Invalid Under Conditions:"); - for (int index2 = 0; index2 < assertions.size(); ++index2) { - if (((Expr)assertions.get(index2)).equals(vc.notExpr(query))) { - for (; index2 < assertions.size()-1; ++index2) { - assertions.set(index2, assertions.get(index2+1)); - } - assertions.remove(assertions.size() - 1); - break; - } - } - - for (int index2 = 0; index2 < assertions.size(); ++index2) { - System.out.println(assertions.get(index2)); - } - System.out.println(); - index = assertions.size(); - } - } - - System.out.println(); - System.out.println("Attempting to remove loop variables"); - // replace loop variables in conditions - List newConditions = new ArrayList(); - List newPlus = new ArrayList(); - boolean foundi, foundj, negi, negj; - Expr minusone = vc.ratExpr(-1); - int index; - for (index = 0; index < conditions.size(); ++index) { - if (((Expr)conditions.get(index)).getChild(0).isEq()) { - e = vc.simplify( - vc.minusExpr(((Expr)conditions.get(index)).getChild(0).getChild(0), - ((Expr)conditions.get(index)).getChild(0).getChild(1))); - if (hasij(e, i, j)) { - if (e.isPlus()) { - newPlus.clear(); - newPlus.add(e.getChild(0)); - foundi = foundj = negi = negj = false; - for (int index2 = 1; index2 < e.arity(); index2++) { - Expr term = e.getChild(index2); - if (term.equals(i) && !foundi) foundi = true; - else if (term.equals(j) && !foundj) { - foundj = true; - negj = true; - } - else if (term.isMult() - && term.getChild(0).equals(minusone) - && term.getChild(1).equals(i) - && !foundi) { - foundi = true; - negi = true; - } - else if (term.isMult() - && term.getChild(0).equals(minusone) - && term.getChild(1).equals(j) - && !foundj) - foundj = true; - else newPlus.add(term); - } - if (foundi && foundj && (negi && negj || (!negi && !negj))) { - e = plusExpr(vc, newPlus); - if (negi && negj) e = vc.uminusExpr(e); - e = vc.simplify(e); - if (!hasij(e, i, j)) { - newConditions.add(vc.orExpr(vc.geExpr(e, N), vc.leExpr(e, zero))); - continue; - } - } - } - System.out.println("Unable to remove loop variables:" + e); - break; - } - } - newConditions.add(conditions.get(index)); - } - if (index == conditions.size()) { - System.out.println("Loop variables successfully removed:"); - Expr cond = (newConditions.size()>0)? - vc.andExpr(newConditions) : vc.trueExpr(); - System.out.println(cond); - - List loopConditions = new ArrayList(); - loopConditions.add(cond); - loopConditions.add(vc.geExpr(i, one)); - loopConditions.add(vc.geExpr(j, one)); - loopConditions.add(vc.leExpr(i, N)); - loopConditions.add(vc.leExpr(j, N)); - vc.pop(); - vc.push(); - System.out.println("Final query"); - printResult(vc.query(vc.impliesExpr(vc.andExpr(loopConditions), test))); - } - } - - return true; - } catch (Exception e) { - System.out.println("*** Exception caught in test5(): \n" + e); - e.printStackTrace(System.out); - return false; - } finally { - if (vc != null) vc.delete(); - if (flags != null) flags.delete(); - } - } - - - - public static boolean test6() throws Cvc3Exception { - ValidityChecker vc1 = null; - ValidityChecker vc2 = null; - try { - vc1 = ValidityChecker.create(); - vc2 = ValidityChecker.create(); - - Type real1 = vc1.realType(); - - Expr x1 = vc1.varExpr("x", real1); - Expr y1 = vc1.boundVarExpr("y", "0", real1); - - System.out.println("vc1 variables: " + x1 + ", " + y1); - - Expr x2 = vc2.varExpr("x", vc2.importType(real1)); - Expr y2 = vc2.boundVarExpr("y", "0", vc2.realType()); - - System.out.println("vc2 variables: " + x2 + ", " + y2); - System.out.println("vars imported to vc2 from vc1: " - + vc2.importExpr(x1) + ", " + vc2.importExpr(y1)); - Expr t1 = vc1.trueExpr(); - Expr and1 = vc1.andExpr(t1, vc1.falseExpr()); - Op f1 = vc1.createOp("f", vc1.funType(real1, real1)); - Expr fx1 = vc1.funExpr(f1, x1); - Expr f5_1 = vc1.funExpr(f1, vc1.ratExpr(5,1)); - Type rt1 = vc1.recordType("foo", real1, "bar", real1); - Expr r1 = vc1.recordExpr("foo", fx1, "bar", f5_1); - Expr r1_eq = vc1.eqExpr(r1, vc1.recUpdateExpr(r1, "foo", f5_1)); - Type art1 = vc1.arrayType(real1, rt1); - Expr ar1 = vc1.varExpr("ar", art1); - Expr ar_eq1 = vc1.eqExpr(vc1.writeExpr(ar1, x1, r1), ar1); - Expr query1 = vc1.eqExpr(vc1.recSelectExpr(vc1.readExpr(ar1, x1), "foo"), - vc1.recSelectExpr(r1, "bar")); - - System.out.println("*** VC #1:"); - newAssertion(vc1, r1_eq); - newAssertion(vc1, ar_eq1); - check(vc1, query1); - - System.out.println("*** VC #2:"); - newAssertion(vc2, vc2.importExpr(r1_eq)); - newAssertion(vc2, vc2.importExpr(ar_eq1)); - check(vc2, vc2.importExpr(query1)); - - return true; - } catch (Exception e) { - System.out.println("*** Exception caught in test6(): \n" + e); - e.printStackTrace(System.out); - return false; - } finally { - if (vc1 != null) vc1.delete(); - if (vc2 != null) vc2.delete(); - } - } - - - - public static boolean test7() throws Cvc3Exception { - ValidityChecker vc1 = null; - ValidityChecker vc2 = null; - try { - vc1 = ValidityChecker.create(); - vc2 = ValidityChecker.create(); - - Expr e1 = vc1.varExpr("e1", vc1.realType()); - Expr e2 = vc2.varExpr("e2", vc2.realType()); - newAssertion(vc2, vc2.eqExpr(vc2.importExpr(e1), e2)); - - return true; - } catch (Exception e) { - System.out.println("*** Exception caught in test7(): \n" + e); - e.printStackTrace(System.out); - return false; - } finally { - if (vc1 != null) vc1.delete(); - if (vc2 != null) vc2.delete(); - } - } - - - - public static boolean test8() throws Cvc3Exception { - ValidityChecker vc = null; - try { - vc = ValidityChecker.create(); - - List vec = new ArrayList(); - vec.add(vc.boundVarExpr("x", "x", vc.realType())); - Expr lambda = vc.lambdaExpr(vec, vc.falseExpr()).getExpr(); - try { - Type t = vc.subtypeType(lambda, vc.nullExpr()); - DebugAssert(false, "Typechecking exception expected"); - } catch(TypecheckException e) { - // fall through - } - - return true; - } catch (Exception e) { - System.out.println("*** Exception caught in test5(): \n" + e); - e.printStackTrace(System.out); - return false; - } finally { - if (vc != null) vc.delete(); - } - } - - - - public static ExprMut adder(ValidityChecker vc, Expr a, Expr b, Expr c) throws Cvc3Exception { - return vc.notExpr(vc.iffExpr(vc.notExpr(vc.iffExpr(a,b)),c)); - } - - public static ExprMut carry(ValidityChecker vc, Expr a, Expr b, Expr c) throws Cvc3Exception { - return vc.orExpr(vc.andExpr(a,b), vc.orExpr(vc.andExpr(b,c),vc.andExpr(a,c))); - } - - public static List add(ValidityChecker vc, List a, List b) throws Cvc3Exception { - int N = a.size(); - Expr c = vc.falseExpr(); - - List sum = new ArrayList(); - for (int i = 0; i < N; i++) { - sum.add(adder(vc,(Expr)a.get(i),(Expr)b.get(i),c)); - c = carry(vc,(Expr)a.get(i),(Expr)b.get(i),c); - } - return sum; - } - - public static ExprMut vectorEq(ValidityChecker vc, List a, List b) throws Cvc3Exception { - int N = a.size(); - ExprMut result = vc.trueExpr(); - - for (int i = 0; i < N; i++) { - result = vc.andExpr(result, vc.iffExpr((Expr)a.get(i), (Expr)b.get(i))); - } - return result; - } - - - public static boolean test9(int N) throws Cvc3Exception { - ValidityChecker vc = null; - try { - vc = ValidityChecker.create(); - - int i; - List a = new ArrayList(); - List b = new ArrayList(); - - for (i=0; i < N; i++) { - a.add(vc.varExpr("a" + Integer.toString(i), vc.boolType())); - b.add(vc.varExpr("b" + Integer.toString(i), vc.boolType())); - } - - List sum1 = add(vc,a,b); - List sum2 = add(vc,b,a); - - Expr q = vectorEq(vc,sum1,sum2); - - check(vc, q); - - // Proof p = vc.getProof(); - - return true; - } catch (Exception e) { - System.out.println("*** Exception caught in test9(): \n" + e); - e.printStackTrace(System.out); - return false; - } finally { - if (vc != null) vc.delete(); - } - } - - - public static boolean test22() throws Cvc3Exception { - ValidityChecker vc = null; - - try { - vc = ValidityChecker.create(); - Type intType = vc.intType(); - Type fType = vc.funType(intType, intType); - - Op f = vc.createOp("f", fType); - Expr x = vc.varExpr("x", intType); - Expr fx = vc.exprFromString("f(x)"); - - Expr p = vc.exprFromString("FORALL (x:INT) : x < f(x)"); - - List patternvv = new ArrayList(); - List patternv = new ArrayList(); - patternv.add(fx); - patternvv.add(patternv); - - vc.setTriggers(p, patternv); - DebugAssert(patternvv.equals(p.getTriggers()), - "Expected p.getTriggers() == patternvv: " + p.toString()); - - vc.setMultiTriggers(p, patternvv); - - DebugAssert(patternvv.equals(p.getTriggers()), - "Expected p.getTriggers() == patternvv: " + p.toString()); - - List vars = new ArrayList(); - vars.add(x); - Expr r = vc.forallExpr(vars, vc.ltExpr(x, fx), patternv); - - DebugAssert(patternvv.equals(r.getTriggers()), - "Expected r.getTriggers() == patternvv: " + r.toString()); - - Expr s = vc.exprFromString("FORALL (x:INT) : x > f(x)"); - vc.setTrigger(s, fx); - - List trigsvv = s.getTriggers(); - DebugAssert(trigsvv.size() == 1, "Expected s.getTriggers().size() == 1: " - + trigsvv.size()); - - List trigsv = (List)trigsvv.get(0); - DebugAssert(trigsv.size() == 1, "Expected s.getTriggers()[0].size() == 1: " - + trigsv.size()); - - DebugAssert(fx.equals(trigsv.get(0)), - "Expected s.getTriggers()[0][0] == fx: " + (trigsv.get(0))); - - Expr t = vc.exprFromString("FORALL (x:INT) : x > f(x)"); - vc.setMultiTrigger(t, patternv); - trigsvv = t.getTriggers(); - DebugAssert(trigsvv.size() == 1, "Expected t.getTriggers().size() == 1: " - + trigsvv.size()); - - trigsv = (List)trigsvv.get(0); - DebugAssert(trigsv.size() == 1, "Expected t.getTriggers()[0].size() == 1: " - + trigsv.size()); - - DebugAssert(fx.equals(trigsv.get(0)), - "Expected t.getTriggers()[0][0] == fx: " + (trigsv.get(0))); - - Expr u = vc.forallExprMultiTriggers(vars, vc.ltExpr(x, fx), patternvv); - - DebugAssert(patternvv.equals(u.getTriggers()), - "Expected u.getTriggers() == patternvv: " + u.toString()); - - } catch (Exception e) { - System.out.println("*** Exception caught in test22(): \n" + e); - e.printStackTrace(System.out); - return false; - } finally { - if (vc != null) - vc.delete(); - } - return true; - } - - private static boolean test23() throws Cvc3Exception { - ValidityChecker vc = null; - - try { - vc = ValidityChecker.create(); - Type intType = vc.intType(); - - Expr x = vc.varExpr("x",intType); - Expr y= vc.varExpr("y",intType); - Expr a = vc.varExpr("a",intType); - Expr b = vc.varExpr("b",intType); - - Expr s = vc.exprFromString("x < y"); - Expr t = vc.exprFromString("a < b"); - - System.out.println( "s=" + s + "\nt=" + t ); - - List oldExprs = new ArrayList(), newExprs = new ArrayList(); - oldExprs.add(x); - oldExprs.add(y); - newExprs.add(a); - newExprs.add(b); - - Expr u = s.subst(oldExprs,newExprs); - System.out.println( "u=" + u ); - - DebugAssert( t.equals(u), "Expected t==u" ); - } catch(Throwable e) { - System.out.println( "*** Exception caught in test23(): "); - e.printStackTrace(System.out); - return false; - } finally { - if (vc != null) - vc.delete(); - } - return true; - } - - public static ExprMut bvadder(ValidityChecker vc, Expr a, Expr b, Expr c) throws Cvc3Exception { - return vc.newBVXorExpr(a, vc.newBVXorExpr(b, c)); - } - - - public static ExprMut bvcarry(ValidityChecker vc, Expr a, Expr b, Expr c) throws Cvc3Exception { - return vc.newBVOrExpr(vc.newBVAndExpr(a,b), vc.newBVOrExpr(vc.newBVAndExpr(b,c),vc.newBVAndExpr(a,c))); - } - - public static List bvadd(ValidityChecker vc, List a, List b) throws Cvc3Exception { - int N=a.size(); - Expr c = vc.newBVConstExpr(new Rational(0, vc.embeddedManager()), 1); - - List sum = new ArrayList(); - for (int i = 0; i < N; i++) { - sum.add(bvadder(vc,(Expr)a.get(i),(Expr)b.get(i),c)); - c = bvcarry(vc,(Expr)a.get(i),(Expr)b.get(i),c); - } - return sum; - } - - - public static ExprMut bvvectorEq(ValidityChecker vc, List a, List b) throws Cvc3Exception { - int N = a.size(); - ExprMut result = vc.newBVConstExpr("1"); - - for (int i = 0; i < N; i++) { - result = vc.newBVAndExpr(result, vc.newBVXnorExpr((Expr)a.get(i), (Expr)b.get(i))); - } - return result; - } - - - public static boolean bvtest9(int N) throws Cvc3Exception { - ValidityChecker vc = null; - try { - vc = ValidityChecker.create(); - - Expr a, b, sum1; - a = vc.varExpr("a", vc.bitvecType(N)); - b = vc.varExpr("b", vc.bitvecType(N)); - List kids = new ArrayList(); - kids.add(a); - kids.add(b); - sum1 = vc.newBVPlusExpr(N, kids); - - List avec = new ArrayList(); - List bvec = new ArrayList(); - List sum1vec = new ArrayList(); - for (int i = 0; i < N; i++) { - avec.add(vc.newBVExtractExpr(a, i, i)); - bvec.add(vc.newBVExtractExpr(b, i, i)); - sum1vec.add(vc.newBVExtractExpr(sum1, i, i)); - } - - List sum2 = bvadd(vc,avec,bvec); - - Expr q = bvvectorEq(vc,sum1vec,sum2); - - check(vc, vc.eqExpr(q,vc.newBVConstExpr("1"))); - - return true; - } catch (Exception e) { - System.out.println("*** Exception caught in bvtest9(): \n" + e); - e.printStackTrace(System.out); - return false; - } finally { - if (vc != null) vc.delete(); - } - } - - - public static boolean test10() throws Cvc3Exception { - ValidityChecker vc = null; - try { - vc = ValidityChecker.create(); - - Expr x = vc.varExpr("x", vc.realType()); - Expr y = vc.varExpr("y", vc.realType()); - - Type real = vc.realType(); - List RxR = new ArrayList(); - RxR.add(real); - RxR.add(real); - - Type realxreal2real = vc.funType(RxR, real); - Op g = vc.createOp("g", realxreal2real); - - Expr gxy = vc.funExpr(g, x, y); - Expr gyx = vc.funExpr(g, y, x); - - Expr ia = vc.eqExpr(x,y); - Expr ib = vc.eqExpr(gxy, gyx); - - Expr e = vc.impliesExpr(vc.eqExpr(x,y),vc.eqExpr(gxy, gyx)); - check(vc, e, false); - - Op h = vc.createOp("h", realxreal2real); - - Expr hxy = vc.funExpr(h, x, y); - Expr hyx = vc.funExpr(h, y, x); - - e = vc.impliesExpr(vc.eqExpr(x,y),vc.eqExpr(hxy, hyx)); - check(vc, e, false); - - return true; - } catch (Exception e) { - System.out.println("*** Exception caught in test10(): \n" + e); - e.printStackTrace(System.out); - return false; - } finally { - if (vc != null) vc.delete(); - } - } - - - - public static int printImpliedLiterals(ValidityChecker vc) throws Cvc3Exception { - int count = 0; - System.out.println("Implied Literals:"); - Expr impLit = vc.getImpliedLiteral(); - while (!impLit.isNull()) { - ++count; - System.out.println(impLit); - impLit = vc.getImpliedLiteral(); - } - return count; - } - - public static boolean test11() throws Cvc3Exception { - ValidityChecker vc = null; - try { - vc = ValidityChecker.create(); - - Expr x = vc.varExpr("x", vc.realType()); - Expr y = vc.varExpr("y", vc.realType()); - Expr z = vc.varExpr("z", vc.realType()); - - Type real = vc.realType(); - Type real2real = vc.funType(real, real); - Type real2bool = vc.funType(real, vc.boolType()); - Op f = vc.createOp("f", real2real); - Op p = vc.createOp("p", real2bool); - - Expr fx = vc.funExpr(f, x); - Expr fy = vc.funExpr(f, y); - - Expr px = vc.funExpr(p, x); - Expr py = vc.funExpr(p, y); - - Expr xeqy = vc.eqExpr(x, y); - Expr yeqx = vc.eqExpr(y, x); - Expr xeqz = vc.eqExpr(x, z); - Expr zeqx = vc.eqExpr(z, x); - Expr yeqz = vc.eqExpr(y, z); - Expr zeqy = vc.eqExpr(z, y); - - int c; - - vc.registerAtom(vc.eqExpr(x,vc.ratExpr(0,1))); - vc.registerAtom(xeqy); - vc.registerAtom(yeqx); - vc.registerAtom(xeqz); - vc.registerAtom(zeqx); - vc.registerAtom(yeqz); - vc.registerAtom(zeqy); - vc.registerAtom(px); - vc.registerAtom(py); - vc.registerAtom(vc.eqExpr(fx, fy)); - - System.out.println("Push"); - vc.push(); - - System.out.println("Assert x = y"); - vc.assertFormula(xeqy); - c = printImpliedLiterals(vc); - DebugAssert(c==3,"Implied literal error 0"); - - System.out.println("Push"); - vc.push(); - System.out.println("Assert x /= z"); - vc.assertFormula(vc.notExpr(xeqz)); - c = printImpliedLiterals(vc); - DebugAssert(c==4,"Implied literal error 1"); - System.out.println("Pop"); - vc.pop(); - - System.out.println("Push"); - vc.push(); - System.out.println("Assert y /= z"); - vc.assertFormula(vc.notExpr(yeqz)); - c = printImpliedLiterals(vc); - DebugAssert(c==4,"Implied literal error 2"); - System.out.println("Pop"); - vc.pop(); - - System.out.println("Push"); - vc.push(); - System.out.println("Assert p(x)"); - vc.assertFormula(px); - c = printImpliedLiterals(vc); - DebugAssert(c==2,"Implied literal error 3"); - System.out.println("Pop"); - vc.pop(); - - System.out.println("Push"); - vc.push(); - System.out.println("Assert p(y)"); - vc.assertFormula(py); - c = printImpliedLiterals(vc); - DebugAssert(c==2,"Implied literal error 4"); - System.out.println("Pop"); - vc.pop(); - - System.out.println("Pop"); - vc.pop(); - - System.out.println("Push"); - vc.push(); - System.out.println("Assert y = x"); - vc.assertFormula(yeqx); - c = printImpliedLiterals(vc); - DebugAssert(c==3,"Implied literal error 5"); - System.out.println("Pop"); - vc.pop(); - - System.out.println("Push"); - vc.push(); - System.out.println("Assert p(x)"); - vc.assertFormula(px); - c = printImpliedLiterals(vc); - DebugAssert(c==1,"Implied literal error 6"); - System.out.println("Assert x = y"); - vc.assertFormula(xeqy); - c = printImpliedLiterals(vc); - DebugAssert(c==4,"Implied literal error 7"); - System.out.println("Pop"); - vc.pop(); - - System.out.println("Push"); - vc.push(); - System.out.println("Assert NOT p(x)"); - vc.assertFormula(vc.notExpr(px)); - c = printImpliedLiterals(vc); - DebugAssert(c==1,"Implied literal error 8"); - System.out.println("Assert x = y"); - vc.assertFormula(xeqy); - c = printImpliedLiterals(vc); - DebugAssert(c==4,"Implied literal error 9"); - System.out.println("Pop"); - vc.pop(); - - return true; - } catch (Exception e) { - System.out.println("*** Exception caught in test11(): \n" + e); - e.printStackTrace(System.out); - return false; - } finally { - if (vc != null) vc.delete(); - } - } - - - public static boolean test12() throws Cvc3Exception { - ValidityChecker vc = null; - try { - vc = ValidityChecker.create(); - - Type realType = vc.realType(); - Type intType = vc.intType(); - Type boolType = vc.boolType(); - vc.push(); - int initial_layer = vc.stackLevel(); - int initial_scope = vc.scopeLevel(); - Expr exprObj_trueID = vc.trueExpr(); - Expr exprObj_falseID = vc.notExpr(vc.trueExpr()); - vc.popTo(initial_layer); - DebugAssert(vc.scopeLevel() == initial_scope, "Expected no change"); - DebugAssert(vc.stackLevel() == initial_layer, "Expected no change"); - // TODO: what happens if we push and then popscope? - - return true; - } catch (Exception e) { - System.out.println("*** Exception caught in test12(): \n" + e); - e.printStackTrace(System.out); - return false; - } finally { - if (vc != null) vc.delete(); - } - } - - - public static boolean test13() throws Cvc3Exception { - ValidityChecker vc = null; - FlagsMut flags = null; - try { - flags = ValidityChecker.createFlags(null); - flags.setFlag("dagify-exprs",false); - flags.setFlag("dump-log", ".test13.cvc"); - vc = ValidityChecker.create(flags); - - Expr rat_one = vc.ratExpr(1); - Expr rat_two = vc.ratExpr(2); - Expr rat_minus_one = vc.ratExpr(-1); - - QueryResult query_result; - query_result = vc.query(vc.eqExpr(rat_two,rat_one)); - System.out.println("2=1 " + query_result); - query_result = vc.query(vc.eqExpr(rat_two,rat_minus_one)); - System.out.println("2=-1 " + query_result); - - return true; - } catch (Exception e) { - System.out.println("*** Exception caught in test13(): \n" + e); - e.printStackTrace(System.out); - return false; - } finally { - if (vc != null) vc.delete(); - if (flags != null) flags.delete(); - } - } - - - public static Expr func1(ValidityChecker vc) throws Cvc3Exception { - // local Expr 'tmp' - Expr tmp = vc.varExpr("tmp", vc.boolType()); - return vc.trueExpr(); - } - - - public static boolean test14() throws Cvc3Exception { - ValidityChecker vc = null; - try { - vc = ValidityChecker.create(); - - // func call: ok - Expr test1 = func1(vc); - - // func call: fail - Expr test2 = func1(vc); - - return true; - } catch (Exception e) { - System.out.println("*** Exception caught in test13(): \n" + e); - e.printStackTrace(System.out); - return false; - } finally { - if (vc != null) vc.delete(); - } - } - - - public static boolean test15() throws Cvc3Exception { - ValidityChecker vc = null; - FlagsMut flags = null; - try { - flags = ValidityChecker.createFlags(null); - flags.setFlag("dagify-exprs",false); - vc = ValidityChecker.create(flags); - - /***************************************************** - * array declaration * - *****************************************************/ - - // array: index type - Type index_type = vc.subrangeType(vc.ratExpr(0), - vc.ratExpr(3)); - // array: data type - Type data_type = vc.subrangeType(vc.ratExpr(0), - vc.ratExpr(3)); - // array type: [0 .. 3] of 0 .. 3 - Type array_type = vc.arrayType(index_type, data_type); - Expr arr = vc.varExpr("array", array_type); - - // array: [1,1,0,0] - arr = vc.writeExpr(arr, vc.ratExpr(0), vc.ratExpr(1)); - arr = vc.writeExpr(arr, vc.ratExpr(1), vc.ratExpr(1)); - arr = vc.writeExpr(arr, vc.ratExpr(2), vc.ratExpr(0)); - arr = vc.writeExpr(arr, vc.ratExpr(3), vc.ratExpr(0)); - - - - /***************************************************** - * forall Expr * - *****************************************************/ - - // for loop: index - Expr id = vc.boundVarExpr("id", "0", vc.subrangeType(vc.ratExpr(0), - vc.ratExpr(2))); - List vars = new ArrayList(); - vars.add(id); - - // for loop: body - Expr for_body = vc.leExpr(vc.readExpr(arr, id), - vc.readExpr(arr, vc.plusExpr(id, vc.ratExpr(1)))); - // forall expr - Expr forall_expr = vc.forallExpr(vars, for_body); - - vc.push(); - check(vc, forall_expr); - - System.out.println("Scope level: " + vc.scopeLevel()); - System.out.println("Counter-example:"); - List assertions = vc.getCounterExample(); - for (int i = 0; i < assertions.size(); ++i) { - System.out.println(assertions.get(i)); - } - System.out.println("End of counter-example"); - System.out.println(""); - vc.pop(); - - /***************************************************** - * manual expansion * - *****************************************************/ - - Expr e1 = vc.leExpr(vc.readExpr(arr, vc.ratExpr(0)), - vc.readExpr(arr, vc.ratExpr(1))); - Expr e2 = vc.leExpr(vc.readExpr(arr, vc.ratExpr(1)), - vc.readExpr(arr, vc.ratExpr(2))); - Expr e3 = vc.leExpr(vc.readExpr(arr, vc.ratExpr(2)), - vc.readExpr(arr, vc.ratExpr(3))); - Expr manual_expr = vc.andExpr(e1, vc.andExpr(e2, e3)); - - - - /***************************************************** - * exists Expr * - *****************************************************/ - - // exists: index - Expr id_ex = vc.varExpr("id_ex", vc.subrangeType(vc.ratExpr(0), - vc.ratExpr(2))); - List vars_ex = new ArrayList(); - vars_ex.add(id_ex); - - // exists: body - Expr ex_body = vc.gtExpr(vc.readExpr(arr, id_ex), - vc.readExpr(arr, vc.plusExpr(id_ex, vc.ratExpr(1)))); - // exists expr - Expr ex_expr = vc.existsExpr(vars_ex, ex_body); - - - - - /***************************************************** - * ??? forall <==> manual expansion * - *****************************************************/ - System.out.println("Checking forallExpr <==> manual expansion ..."); - if (vc.query(vc.iffExpr(forall_expr, manual_expr)) == QueryResult.VALID) - System.out.println(" -- yes."); - else { - System.out.println(" -- no, with counter examples as "); - - List assert1 = vc.getCounterExample(); - for (int i = 0; i < assert1.size(); i ++) - System.out.println(assert1.get(i)); - } - System.out.println(); - - - - /***************************************************** - * ??? !forall <==> existsExpr * - *****************************************************/ - System.out.println(); - System.out.println("Checking !forallExpr <==> existsExpr ..."); - if (vc.query(vc.iffExpr(vc.notExpr(forall_expr), ex_expr)) == QueryResult.VALID) - System.out.println(" -- yes."); - else if (vc.incomplete()) { - System.out.println(" -- incomplete:"); - List reasons = vc.incompleteReasons(); - for (int i = 0; i < reasons.size(); ++i) - System.out.println(reasons.get(i)); - } - else { - System.out.println(" -- no, with counter examples as "); - - List assert2 = vc.getCounterExample(); - for (int i = 0; i < assert2.size(); i ++) - System.out.println(assert2.get(i)); - } - - System.out.println(); - System.out.println("End of testcases."); - System.out.println(); - - return true; - } catch (Exception e) { - System.out.println("*** Exception caught in test15(): \n" + e); - e.printStackTrace(System.out); - return false; - } finally { - if (vc != null) vc.delete(); - if (flags != null) flags.delete(); - } - } - - - public static boolean test16() throws Cvc3Exception { - ValidityChecker vc = null; - try { - vc = ValidityChecker.create(); - - Type zto100 = vc.subrangeType(vc.ratExpr(0), vc.ratExpr(100)); - Expr mem = vc.varExpr("mem", vc.arrayType(zto100, vc.intType())); - Expr a = vc.varExpr("a", zto100); - Expr b = vc.varExpr("b", zto100); - - Expr lhs = vc.readExpr(vc.writeExpr(mem, a, vc.ratExpr(30)), b); - Expr rhs = vc.readExpr(vc.writeExpr(mem, b, vc.ratExpr(40)), a); - - Expr q = vc.impliesExpr(vc.notExpr(vc.eqExpr(a, b)), vc.eqExpr(lhs, rhs)); - - check(vc, q); - - System.out.println("Scope level: " + vc.scopeLevel()); - System.out.println("Counter-example:"); - List assertions = vc.getCounterExample(); - DebugAssert(assertions.size() > 0, "Expected non-empty counter-example"); - for (int i = 0; i < assertions.size(); ++i) { - System.out.println(assertions.get(i)); - } - System.out.println("End of counter-example"); - System.out.println(); - - HashMap m = vc.getConcreteModel(); - if(m.isEmpty()) - System.out.println(" Did not find concrete model for any vars"); - else { - System.out.println("%Satisfiable Variable Assignment: %"); - Iterator it = m.entrySet().iterator(); - while(it.hasNext()) { - Map.Entry next = (Map.Entry)it.next(); - Expr eq; - Expr key = (Expr)next.getKey(); - Expr value = (Expr)next.getValue(); - if (key.getType().isBoolean()) { - DebugAssert(value.isBooleanConst(), - "Bad variable assignement: e = "+ key - +"\n\n val = "+ value); - if(value.isTrue()) - eq = key; - else - eq = vc.notExpr(key); - } - else - eq = vc.eqExpr(key, value); - //:TODO:System.out.println(Expr(ASSERT, eq)); - System.out.println(eq); - } - } - - return true; - } catch (Exception e) { - System.out.println("*** Exception caught in test16(): \n" + e); - e.printStackTrace(System.out); - return false; - } finally { - if (vc != null) vc.delete(); - } - } - - - public static boolean test17() throws Cvc3Exception { - ValidityChecker vc = null; - try { - vc = ValidityChecker.create(); - try { - List selectors = new ArrayList(); - List types = new ArrayList(); - - selectors.add("car"); - types.add(vc.intType().getExpr()); - selectors.add("cdr"); - types.add(vc.stringExpr("list")); - - Type badList = vc.dataType("list", "cons", selectors, types); - DebugAssert(false, "Typechecking exception expected"); - } catch(TypecheckException e) { - // fall through - } - - vc.delete(); - - vc = ValidityChecker.create(); - { - List constructors = new ArrayList(); - List selectors = new ArrayList(); - List selectors0 = new ArrayList(); - List selectors1 = new ArrayList(); - selectors.add(selectors0); - selectors.add(selectors1); - List types = new ArrayList(); - List types0 = new ArrayList(); - List types1 = new ArrayList(); - types.add(types0); - types.add(types1); - - constructors.add("cons"); - selectors0.add("car"); - types0.add(vc.intType().getExpr()); - selectors0.add("cdr"); - types0.add(vc.stringExpr("list")); - constructors.add("null"); - - Type list = vc.dataType("list", constructors, selectors, types); - - Expr x = vc.varExpr("x", vc.intType()); - Expr y = vc.varExpr("y", list); - - List args = new ArrayList(); - args.add(x); - args.add(y); - Expr cons = vc.datatypeConsExpr("cons", args); - - Expr sel = vc.datatypeSelExpr("car", cons); - boolean b = check(vc, vc.eqExpr(sel, x)); - DebugAssert(b, "Should be valid"); - } - vc.delete(); - - vc = ValidityChecker.create(); - try { - List names = new ArrayList(); - List constructors = new ArrayList(); - List constructors0 = new ArrayList(); - List constructors1 = new ArrayList(); - constructors.add(constructors0); - constructors.add(constructors1); - List selectors = new ArrayList(); - List selectors0 = new ArrayList(); - List selectors1 = new ArrayList(); - List selectors00 = new ArrayList(); - List selectors10 = new ArrayList(); - selectors.add(selectors0); - selectors0.add(selectors00); - selectors.add(selectors1); - selectors1.add(selectors10); - List types = new ArrayList(); - List types0 = new ArrayList(); - List types1 = new ArrayList(); - List types00 = new ArrayList(); - List types10 = new ArrayList(); - types.add(types0); - types0.add(types00); - types.add(types1); - types1.add(types10); - - names.add("list1"); - - constructors0.add("cons1"); - selectors00.add("car1"); - types00.add(vc.intType().getExpr()); - selectors00.add("cdr1"); - types00.add(vc.stringExpr("list2")); - - names.add("list2"); - - constructors1.add("cons2"); - selectors10.add("car2"); - types10.add(vc.intType().getExpr()); - selectors10.add("cdr2"); - types10.add(vc.stringExpr("list1")); - constructors1.add("null"); - - List returnTypes = vc.dataType(names, constructors, selectors, types); - - Type list1 = (Type)returnTypes.get(0); - Type list2 = (Type)returnTypes.get(1); - - Expr x = vc.varExpr("x", vc.intType()); - Expr y = vc.varExpr("y", list2); - Expr z = vc.varExpr("z", list1); - - List args = new ArrayList(); - args.add(x); - args.add(y); - Expr cons1 = vc.datatypeConsExpr("cons1", args); - - Expr isnull = vc.datatypeTestExpr("null", y); - Expr hyp = vc.andExpr(vc.eqExpr(z, cons1), isnull); - - Expr nullE = vc.datatypeConsExpr("null", new ArrayList()); - - args = new ArrayList(); - args.add(x); - args.add(nullE); - Expr cons1_2 = vc.datatypeConsExpr("cons1", args); - - boolean b = check(vc, vc.impliesExpr(hyp, vc.eqExpr(z, cons1_2))); - DebugAssert(b, "Should be valid"); - } catch(TypecheckException e) { - // fall through - } - - vc.delete(); - - vc = ValidityChecker.create(); - { - List constructors = new ArrayList(); - List selectors = new ArrayList(); - selectors.add(new ArrayList()); - selectors.add(new ArrayList()); - List types = new ArrayList(); - types.add(new ArrayList()); - types.add(new ArrayList()); - - constructors.add("A"); - constructors.add("B"); - - Type two = vc.dataType("two", constructors, selectors, types); - - Expr x = vc.varExpr("x", two); - Expr y = vc.varExpr("y", two); - Expr z = vc.varExpr("z", two); - - List args = new ArrayList(); - args.add(vc.notExpr(vc.eqExpr(x,y))); - args.add(vc.notExpr(vc.eqExpr(y,z))); - args.add(vc.notExpr(vc.eqExpr(x,z))); - - boolean b = check(vc, vc.notExpr(vc.andExpr(args))); - DebugAssert(b, "Should be valid"); - } - return true; - } catch (Exception e) { - System.out.println("*** Exception caught in test17(): \n" + e); - e.printStackTrace(System.out); - return false; - } finally { - if (vc != null) vc.delete(); - } - } - - - public static boolean test18() throws Cvc3Exception { - ValidityChecker vc = null; - FlagsMut flags = null; - try { - flags = ValidityChecker.createFlags(null); - flags.setFlag("tcc", true); - vc = ValidityChecker.create(flags); - - List names = new ArrayList(); - List constructors = new ArrayList(); - List constructors0 = new ArrayList(); - List constructors1 = new ArrayList(); - List constructors2 = new ArrayList(); - constructors.add(constructors0); - constructors.add(constructors1); - constructors.add(constructors2); - List selectors = new ArrayList(); - List selectors0 = new ArrayList(); - List selectors1 = new ArrayList(); - List selectors2 = new ArrayList(); - List selectors00 = new ArrayList(); - List selectors01 = new ArrayList(); - List selectors10 = new ArrayList(); - List selectors11 = new ArrayList(); - List selectors20 = new ArrayList(); - List selectors21 = new ArrayList(); - selectors.add(selectors0); - selectors0.add(selectors00); - selectors0.add(selectors01); - selectors.add(selectors1); - selectors1.add(selectors10); - selectors1.add(selectors11); - selectors.add(selectors2); - selectors2.add(selectors20); - selectors2.add(selectors21); - List types = new ArrayList(); - List types0 = new ArrayList(); - List types1 = new ArrayList(); - List types2 = new ArrayList(); - List types00 = new ArrayList(); - List types01 = new ArrayList(); - List types10 = new ArrayList(); - List types11 = new ArrayList(); - List types20 = new ArrayList(); - List types21 = new ArrayList(); - types.add(types0); - types0.add(types00); - types0.add(types01); - types.add(types1); - types1.add(types10); - types1.add(types11); - types.add(types2); - types2.add(types20); - types2.add(types21); - - names.add("nat"); - - constructors0.add("zero"); - constructors0.add("succ"); - selectors01.add("pred"); - types01.add(vc.stringExpr("nat")); - - names.add("list"); - - constructors1.add("cons"); - selectors10.add("car"); - types10.add(vc.stringExpr("tree")); - selectors10.add("cdr"); - types10.add(vc.stringExpr("list")); - constructors1.add("null"); - - names.add("tree"); - - constructors2.add("leaf"); - constructors2.add("node"); - selectors21.add("data"); - types21.add(vc.stringExpr("nat")); - selectors21.add("children"); - types21.add(vc.stringExpr("list")); - - List returnTypes = vc.dataType(names, constructors, selectors, types); - - Type nat = (Type)returnTypes.get(0); - Type listType = (Type)returnTypes.get(1); - Type tree = (Type)returnTypes.get(2); - - Expr x = vc.varExpr("x", nat); - - List args = new ArrayList(); - Expr zero = vc.datatypeConsExpr("zero", args); - Expr nullE = vc.datatypeConsExpr("null", args); - Expr leaf = vc.datatypeConsExpr("leaf", args); - - vc.push(); - try { - check(vc, vc.notExpr(vc.eqExpr(zero, nullE))); - DebugAssert(false, "Should have caught tcc exception"); - } catch (TypecheckException e) { } - - vc.pop(); - args.add(vc.datatypeSelExpr("pred",x)); - Expr spx = vc.datatypeConsExpr("succ", args); - Expr spxeqx = vc.eqExpr(spx, x); - vc.push(); - try { - check(vc, spxeqx); - DebugAssert(false, "Should have caught tcc exception"); - } catch(TypecheckException e) { } - - vc.pop(); - boolean b = check(vc, vc.impliesExpr(vc.datatypeTestExpr("succ", x), spxeqx)); - DebugAssert(b, "Should be valid"); - - b = check(vc, vc.orExpr(vc.datatypeTestExpr("zero", x), - vc.datatypeTestExpr("succ", x))); - DebugAssert(b, "Should be valid"); - - Expr y = vc.varExpr("y", nat); - Expr xeqy = vc.eqExpr(x, y); - args.clear(); - args.add(x); - Expr sx = vc.datatypeConsExpr("succ", args); - args.clear(); - args.add(y); - Expr sy = vc.datatypeConsExpr("succ", args); - Expr sxeqsy = vc.eqExpr(sx,sy); - b = check(vc, vc.impliesExpr(xeqy, sxeqsy)); - DebugAssert(b, "Should be valid"); - - b = check(vc, vc.notExpr(vc.eqExpr(sx, zero))); - DebugAssert(b, "Should be valid"); - - b = check(vc, vc.impliesExpr(sxeqsy, xeqy)); - DebugAssert(b, "Should be valid"); - - b = check(vc, vc.notExpr(vc.eqExpr(sx, x))); - DebugAssert(b, "Should be valid"); - - return true; - } catch (Exception e) { - System.out.println("*** Exception caught in test18(): \n" + e); - e.printStackTrace(System.out); - return false; - } finally { - if (vc != null) vc.delete(); - if (flags != null) flags.delete(); - } - } - - - public static boolean test19() throws Cvc3Exception { - ValidityChecker vc = null; - FlagsMut flags = null; - try { - flags = ValidityChecker.createFlags(null); - flags.setFlag("dagify-exprs",false); - vc = ValidityChecker.create(flags); - - Type RealType= vc.realType(); - Type IntType= vc.intType(); - Type BoolType= vc.boolType(); - Type PtrType = RealType; - Type HeapType = vc.arrayType(PtrType, RealType); - - // ----------------- - //ASSERT(FORALL (CVCi: REAL): (Hs[CVCi] = Ht[CVCi])); - //QUERY(Hs[(t6 + (3 * 1))] = Ht[(t6 + (3 * 1))]); - Expr Ad = vc.boundVarExpr("CVCi", "CVCi", RealType); - Expr Hs = vc.varExpr("Hs", HeapType); - Expr Ht = vc.varExpr("Ht", HeapType); - Expr t6 = vc.varExpr("t6", RealType); - - List Vars = new ArrayList(); - Vars.add(Ad); - // Body = (Hs[Ad] = Ht[Ad]) - Expr Body = vc.eqExpr(vc.readExpr(Hs, Ad), vc.readExpr(Ht, Ad)); - - //A = forall (~i:REAL): Body - Expr A = vc.forallExpr(Vars, Body); - - // Q = (Hs[t6] = Ht[t6]) - Expr Q = vc.eqExpr(vc.readExpr(Hs, t6), vc.readExpr(Ht, t6)); - - // ----------- CHECK A . Q - vc.push(); - - vc.assertFormula(A); - - System.out.println("Checking formula " + Q); - System.out.println(" in context " + A); - - QueryResult Succ = vc.query(Q); - - DebugAssert(Succ == QueryResult.VALID, "Expected valid formula"); - - return true; - } catch (Exception e) { - System.out.println("*** Exception caught in test19(): \n" + e); - e.printStackTrace(System.out); - return false; - } finally { - if (vc != null) vc.delete(); - if (flags != null) flags.delete(); - } - } - - public static boolean testNonlinearBV() throws Cvc3Exception { - ValidityChecker vc = null; - FlagsMut flags = null; - try { - flags = ValidityChecker.createFlags(null); - flags.setFlag("dagify-exprs",false); - vc = ValidityChecker.create(flags); - - int bvLength = 8; - - Rational zero = new Rational(0, vc.embeddedManager()); - - Expr x = vc.varExpr("x", vc.bitvecType(bvLength)); - Expr y = vc.varExpr("y", vc.bitvecType(bvLength)); - Expr bv0 = vc.newBVConstExpr(zero, bvLength); - - // BVUDIV - vc.push(); - System.out.println("Checking BVUDIV:"); - Expr udiv = vc.newBVUDivExpr(x, y); - Expr umult = vc.newBVMultExpr(bvLength, udiv, y); - Expr test = vc.eqExpr(bv0, y); - boolean result = check(vc, vc.impliesExpr(vc.notExpr(test), vc.newBVLEExpr(umult, x)), true); - DebugAssert(result, "Expected valid formula"); - vc.pop(); - - // BVUREM - vc.push(); - System.out.println("Checking BVUREM:"); - Expr urem = vc.newBVURemExpr(x, y); - result = check(vc, vc.impliesExpr(vc.notExpr(test), vc.newBVLTExpr(urem, y)), true); - DebugAssert(result, "Expected valid formula"); - vc.pop(); - - // BVSDIV - vc.push(); - System.out.println("Checking BVSDIV:"); - Expr sdiv = vc.newBVSDivExpr(x, y); - Expr smult = vc.newBVMultExpr(bvLength, sdiv, y); - Expr signed_test = vc.newBVSLEExpr(bv0, x); - signed_test = vc.andExpr(signed_test, vc.newBVSLTExpr(bv0, y)); - result = check(vc, vc.impliesExpr(signed_test, vc.newBVSLEExpr(smult, x)), true); - DebugAssert(result, "Expected valid formula"); - vc.pop(); - - // BVSREM - vc.push(); - System.out.println("Checking BVSREM:"); - Expr srem = vc.newBVSRemExpr(x, y); - result = check(vc, vc.impliesExpr(signed_test, vc.newBVLTExpr(srem, y)), true); - DebugAssert(result, "Expected valid formula"); - vc.pop(); - - // BVSMOD - vc.push(); - System.out.println("Checking BVSMOD:"); - Expr smod = vc.newBVSModExpr(x, y); - result = check(vc, vc.impliesExpr(signed_test, vc.newBVLTExpr(smod, y)), true); - DebugAssert(result, "Expected valid formula"); - vc.pop(); - - return true; - } catch (Exception e) { - System.out.println("*** Exception caught in test19(): \n" + e); - e.printStackTrace(System.out); - return false; - } finally { - if (vc != null) vc.delete(); - if (flags != null) flags.delete(); - } - } - - public static boolean testDistinct() throws Cvc3Exception { - ValidityChecker vc = null; - FlagsMut flags = null; - try { - flags = ValidityChecker.createFlags(null); - vc = ValidityChecker.create(flags); - - int bvLength = 2; - int elements_count = bvLength*bvLength + 1; - - List elements = new ArrayList(); - for (int i = 0; i < elements_count; i ++) - elements.add(vc.varExpr("x" + i, vc.bitvecType(bvLength))); - Expr distinct = vc.distinctExpr(elements); - boolean result = check(vc, vc.notExpr(distinct), true); - DebugAssert(result, "Expected valid formula"); - - return true; - } catch (Exception e) { - System.out.println("*** Exception caught in test19(): \n" + e); - e.printStackTrace(System.out); - return false; - } finally { - if (vc != null) vc.delete(); - if (flags != null) flags.delete(); - } - } - -} - diff --git a/src/bindings/compat/java/src/cvc3/Theorem.java b/src/bindings/compat/java/src/cvc3/Theorem.java deleted file mode 100644 index f464ce89b..000000000 --- a/src/bindings/compat/java/src/cvc3/Theorem.java +++ /dev/null @@ -1,17 +0,0 @@ -package cvc3; - -import java.util.*; - -public class Theorem extends Embedded { - // jni methods - - /// Constructor - - public Theorem(Object Theorem, EmbeddedManager embeddedManager) { - super(Theorem, embeddedManager); - } - - - /// API (immutable) - -} diff --git a/src/bindings/compat/java/src/cvc3/TheoremMut.java b/src/bindings/compat/java/src/cvc3/TheoremMut.java deleted file mode 100644 index ee59e8cd0..000000000 --- a/src/bindings/compat/java/src/cvc3/TheoremMut.java +++ /dev/null @@ -1,18 +0,0 @@ -package cvc3; - -import java.util.*; - -public class TheoremMut extends Theorem { - // jni methods - - - /// Constructor - - // create embedded object - public TheoremMut(Object TheoremMut, EmbeddedManager embeddedManager) { - super(TheoremMut, embeddedManager); - } - - - /// API (mutable) -} diff --git a/src/bindings/compat/java/src/cvc3/TheoremMut_impl.cpp b/src/bindings/compat/java/src/cvc3/TheoremMut_impl.cpp deleted file mode 100644 index e69de29bb..000000000 --- a/src/bindings/compat/java/src/cvc3/TheoremMut_impl.cpp +++ /dev/null diff --git a/src/bindings/compat/java/src/cvc3/Theorem_impl.cpp b/src/bindings/compat/java/src/cvc3/Theorem_impl.cpp deleted file mode 100644 index e69de29bb..000000000 --- a/src/bindings/compat/java/src/cvc3/Theorem_impl.cpp +++ /dev/null diff --git a/src/bindings/compat/java/src/cvc3/TimeoutHandler.java b/src/bindings/compat/java/src/cvc3/TimeoutHandler.java deleted file mode 100644 index 7df301815..000000000 --- a/src/bindings/compat/java/src/cvc3/TimeoutHandler.java +++ /dev/null @@ -1,11 +0,0 @@ -package cvc3; - -import java.util.*; - -// used to enforce timeout in class Cvc3 -class TimeoutHandler extends TimerTask { - public void run() { - System.out.println("self-timeout."); - System.exit(1); - } -} diff --git a/src/bindings/compat/java/src/cvc3/Type.java b/src/bindings/compat/java/src/cvc3/Type.java deleted file mode 100644 index 12f92a6a3..000000000 --- a/src/bindings/compat/java/src/cvc3/Type.java +++ /dev/null @@ -1,135 +0,0 @@ -package cvc3; - -public class Type extends Embedded { - // jni methods - private static native boolean - jniIsAny(Object Type) throws Cvc3Exception; - private static native boolean - jniIsArray(Object Type) throws Cvc3Exception; - private static native boolean - jniIsBitvector(Object Type) throws Cvc3Exception; - private static native boolean - jniIsBool(Object Type) throws Cvc3Exception; - private static native boolean - jniIsDatatype(Object Type) throws Cvc3Exception; - private static native boolean - jniIsFunction(Object Type) throws Cvc3Exception; - private static native boolean - jniIsNull(Object Type) throws Cvc3Exception; - private static native boolean - jniIsSubtype(Object Type) throws Cvc3Exception; - - private static native Object - jniGetExpr(Object Type) throws Cvc3Exception; - private static native int - jniArity(Object Type) throws Cvc3Exception; - private static native Type - jniGetChild(Object Type, int i) throws Cvc3Exception; - - private static native boolean - jniEquals(Object Type1, Object Type2) throws Cvc3Exception; - private static native String - jniToString(Object Type) throws Cvc3Exception; - - private static native Object jniConstr(Object expr) throws Cvc3Exception; - - public static Type valueOf(Expr expr) throws Cvc3Exception { - return new Type(jniConstr(expr.embedded()), expr.embeddedManager()); - } - - /// Constructor - - public Type(Object Type, EmbeddedManager embeddedManager) { - super(Type, embeddedManager); - } - - - /// API (immutable) - - public boolean isAny() throws Cvc3Exception { - return jniIsAny(embedded()); - } - - public boolean isArray() throws Cvc3Exception { - return jniIsArray(embedded()); - } - - public boolean isBitvector() throws Cvc3Exception { - return jniIsBitvector(embedded()); - } - - public boolean isBoolean() throws Cvc3Exception { - return jniIsBool(embedded()); - } - - public boolean isDatatype() throws Cvc3Exception { - return jniIsDatatype(embedded()); - } - - public boolean isFunction() throws Cvc3Exception { - return jniIsFunction(embedded()); - } - - public boolean isNull() throws Cvc3Exception { - return jniIsNull(embedded()); - } - - public boolean isSubtype() throws Cvc3Exception { - return jniIsSubtype(embedded()); - } - - - - - - public Expr getExpr() throws Cvc3Exception { - return new Expr(jniGetExpr(embedded()), embeddedManager()); - } - - public int arity() throws Cvc3Exception { - return jniArity(embedded()); - } - - public Type getChild(int i) throws Cvc3Exception { - assert(i >= 0 && i < arity()); - return new Type(jniGetChild(embedded(), i), embeddedManager()); - } - - - // Printing - public String toString() { - String result = ""; - try { - result = jniToString(embedded()); - } catch (Cvc3Exception e) { - System.out.println(e); - assert(false); - } - return result; - } - - public boolean equals(Object o) { - if (this == o) return true; - - if (!(o instanceof Type)) return false; - boolean result = false; - try { - result = jniEquals(embedded(), ((Embedded)o).embedded()); - } catch (Cvc3Exception e) { - assert(false); - } - return result; - } - - // must return the same hash code for two exprs if equals returns true - - public int hashCode() { - try { - return getExpr().hashCode(); - } catch (Cvc3Exception e) { - assert(false); - } - assert(false); - return 0; - } -} diff --git a/src/bindings/compat/java/src/cvc3/TypeMut.java b/src/bindings/compat/java/src/cvc3/TypeMut.java deleted file mode 100644 index fc5f87f7a..000000000 --- a/src/bindings/compat/java/src/cvc3/TypeMut.java +++ /dev/null @@ -1,18 +0,0 @@ -package cvc3; - -import java.util.*; - -public class TypeMut extends Type { - // jni methods - - - /// Constructor - - // create embedded object - public TypeMut(Object TypeMut, EmbeddedManager embeddedManager) { - super(TypeMut, embeddedManager); - } - - - /// API (mutable) -} diff --git a/src/bindings/compat/java/src/cvc3/TypeMut_impl.cpp b/src/bindings/compat/java/src/cvc3/TypeMut_impl.cpp deleted file mode 100644 index e69de29bb..000000000 --- a/src/bindings/compat/java/src/cvc3/TypeMut_impl.cpp +++ /dev/null diff --git a/src/bindings/compat/java/src/cvc3/Type_impl.cpp b/src/bindings/compat/java/src/cvc3/Type_impl.cpp deleted file mode 100644 index 769ce984a..000000000 --- a/src/bindings/compat/java/src/cvc3/Type_impl.cpp +++ /dev/null @@ -1,67 +0,0 @@ -//INCLUDE: "kinds.h" -//INCLUDE: "type.h" -//INCLUDE: "theory_array.h" -//INCLUDE: "theory_bitvector.h" -//INCLUDE: "theory_datatype.h" - -DEFINITION: Java_cvc3_Type_jniConstr -jobject c Expr expr -return embed_copy<Type>(env, Type(*expr)); - -DEFINITION: Java_cvc3_Type_jniIsAny -jboolean c Type type -return type->getExpr().getKind() == ANY_TYPE; - -DEFINITION: Java_cvc3_Type_jniIsArray -jboolean c Type type -return type->getExpr().getKind() == ARRAY; - -DEFINITION: Java_cvc3_Type_jniIsBitvector -jboolean c Type type -return type->getExpr().getKind() == BITVECTOR; - -DEFINITION: Java_cvc3_Type_jniIsBool -jboolean c Type type -return type->isBool(); - -DEFINITION: Java_cvc3_Type_jniIsDatatype -jboolean c Type type -return ::isDatatype(*type); - -DEFINITION: Java_cvc3_Type_jniIsFunction -jboolean c Type type -return type->isFunction(); - -DEFINITION: Java_cvc3_Type_jniIsNull -jboolean c Type type -return type->isNull(); - -DEFINITION: Java_cvc3_Type_jniIsSubtype -jboolean c Type type -return type->isSubtype(); - - - -DEFINITION: Java_cvc3_Type_jniGetExpr -jobject c Type type -return embed_const_ref<Expr>(env, &type->getExpr()); - -DEFINITION: Java_cvc3_Type_jniArity -jint c Type type -return type->arity(); - -DEFINITION: Java_cvc3_Type_jniGetChild -jobject c Type type n int i -return embed_copy<Type>(env, (*type)[i]); - - - - -DEFINITION: Java_cvc3_Type_jniEquals -jboolean c Type type1 c Type type2 -return *type1 == *type2; - -DEFINITION: Java_cvc3_Type_jniToString -jstring c Type type -return toJava(env, type->toString()); - diff --git a/src/bindings/compat/java/src/cvc3/TypecheckException.java b/src/bindings/compat/java/src/cvc3/TypecheckException.java deleted file mode 100644 index c6ed587bd..000000000 --- a/src/bindings/compat/java/src/cvc3/TypecheckException.java +++ /dev/null @@ -1,13 +0,0 @@ -package cvc3; - -import java.util.*; - -/** mirrors CVC3::TypecheckException */ -public class TypecheckException extends Cvc3Exception { - - private final static long serialVersionUID = 1L; - - public TypecheckException(String message) { - super(message); - } -} diff --git a/src/bindings/compat/java/src/cvc3/ValidityChecker.java b/src/bindings/compat/java/src/cvc3/ValidityChecker.java deleted file mode 100644 index 9289a8ae7..000000000 --- a/src/bindings/compat/java/src/cvc3/ValidityChecker.java +++ /dev/null @@ -1,1728 +0,0 @@ -package cvc3; - -import java.util.*; - -import cvc3.Expr; -import cvc3.JniUtils; - -public class ValidityChecker extends Embedded { - // jni methods - private static native Object - jniCreate1() throws Cvc3Exception; - private static native Object - jniCreate2(Object Flags) throws Cvc3Exception; - private static native Object - jniCreateFlags() throws Cvc3Exception; - private static native Object - jniGetFlags(Object ValidityChecker) throws Cvc3Exception; - - - private static native Object - jniBoolType(Object ValidityChecker) throws Cvc3Exception; - private static native Object - jniRealType(Object ValidityChecker) throws Cvc3Exception; - private static native Object - jniIntType(Object ValidityChecker) throws Cvc3Exception; - private static native Object - jniSubrangeType(Object ValidityChecker, Object lExpr, Object rExpr) throws Cvc3Exception; - private static native Object - jniSubtypeType(Object ValidityChecker, Object predExpr, Object witnessExpr) throws Cvc3Exception; - private static native Object - jniTupleType1(Object ValidityChecker, Object Type0, Object Type1) throws Cvc3Exception; - private static native Object - jniTupleType2(Object ValidityChecker, Object Type0, Object Type1, Object Type2) throws Cvc3Exception; - private static native Object - jniTupleType3(Object ValidityChecker, Object[] Types) throws Cvc3Exception; - private static native Object - jniRecordType1(Object ValidityChecker, String field, Object Type) throws Cvc3Exception; - private static native Object - jniRecordType2(Object ValidityChecker, String field0, Object Type0, - String field1, Object Type1) throws Cvc3Exception; - private static native Object - jniRecordType3(Object ValidityChecker, String field0, Object Type0, - String field1, Object Type1, String field2, Object Type2) throws Cvc3Exception; - private static native Object - jniRecordType4(Object ValidityChecker, Object[] fields, Object[] types) throws Cvc3Exception; - private static native Object - jniDataType1(Object ValidityChecker, String name, String constructor, - Object[] selectors, Object[] types) throws Cvc3Exception; - private static native Object - jniDataType2(Object ValidityChecker, String name, Object[] constructors, - Object[] selectors, Object[] types) throws Cvc3Exception; - private static native Object[] - jniDataType3(Object ValidityChecker, Object[] names, Object[] constructors, - Object[] selectors, Object[] types) throws Cvc3Exception; - private static native Object - jniAnyType(Object ValidityChecker) throws Cvc3Exception; - private static native Object - jniArrayLiteral(Object ValidityChecker, Object indexVar, Object bodyExpr) throws Cvc3Exception; - private static native Object - jniArrayType(Object ValidityChecker, Object TypeIndex, Object TypeData) throws Cvc3Exception; - private static native Object - jniBitvecType(Object ValidityChecker, int n) throws Cvc3Exception; - private static native Object - jniFunType1(Object ValidityChecker, Object typeDom, Object TypeRan) throws Cvc3Exception; - private static native Object - jniFunType2(Object ValidityChecker, Object[] typeDom, Object TypeRan) throws Cvc3Exception; - private static native Object - jniCreateType1(Object ValidityChecker, String typeName) throws Cvc3Exception; - private static native Object - jniCreateType2(Object ValidityChecker, String typeName, Object TypeDef) throws Cvc3Exception; - private static native Object - jniLookupType(Object ValidityChecker, String typeName) throws Cvc3Exception; - - - private static native Object - jniGetExprManager(Object ValidityChecker) throws Cvc3Exception; - private static native Object - jniNullExpr(Object ValidityChecker) throws Cvc3Exception; - private static native Object - jniVarExpr1(Object ValidityChecker, String name, Object Type) throws Cvc3Exception; - private static native Object - jniVarExpr2(Object ValidityChecker, String name, Object Type, Object defExpr) throws Cvc3Exception; - private static native Object - jniBoundVarExpr(Object ValidityChecker, String name, String uid, Object Type) throws Cvc3Exception; - /*private static native Object - jniBoundVarExpr2(Object ValidityChecker, Object Type) throws Cvc3Exception; - */ - private static native Object - jniLookupVar(Object ValidityChecker, String name) throws Cvc3Exception; - private static native Object - jniLookupOp(Object ValidityChecker, String name) throws Cvc3Exception; - private static native Object - jniGetType(Object ValidityChecker, Object Expr) throws Cvc3Exception; - private static native Object - jniGetBaseType1(Object ValidityChecker, Object Expr) throws Cvc3Exception; - private static native Object - jniGetBaseType2(Object ValidityChecker, Object Type) throws Cvc3Exception; - private static native Object - jniGetTypePred(Object ValidityChecker, Object Type, Object Expr) throws Cvc3Exception; - private static native Object - jniStringExpr(Object ValidityChecker, String str) throws Cvc3Exception; - private static native Object - jniIdExpr(Object ValidityChecker, String name) throws Cvc3Exception; - private static native Object - jniListExpr1(Object ValidityChecker, Object[] kids) throws Cvc3Exception; - private static native Object - jniListExpr2(Object ValidityChecker, Object Expr1) throws Cvc3Exception; - private static native Object - jniListExpr3(Object ValidityChecker, Object Expr1, Object Expr2) throws Cvc3Exception; - private static native Object - jniListExpr4(Object ValidityChecker, Object Expr1, Object Expr2, Object Expr3) throws Cvc3Exception; - private static native Object - jniListExpr5(Object ValidityChecker, String op, Object[] kids) throws Cvc3Exception; - private static native Object - jniListExpr6(Object ValidityChecker, String op, Object Expr1) throws Cvc3Exception; - private static native Object - jniListExpr7(Object ValidityChecker, String op, Object Expr1, Object Expr2) throws Cvc3Exception; - private static native Object - jniListExpr8(Object ValidityChecker, String op, Object Expr1, Object Expr2, Object Expr3) throws Cvc3Exception; - private static native void - jniPrintExpr(Object ValidityChecker, Object Expr) throws Cvc3Exception; - private static native Object - jniParseExpr(Object ValidityChecker, Object Expr) throws Cvc3Exception; - private static native Object - jniParseType(Object ValidityChecker, Object Expr) throws Cvc3Exception; - private static native Object - jniImportExpr(Object ValidityChecker, Object Expr) throws Cvc3Exception; - private static native Object - jniImportType(Object ValidityChecker, Object Type) throws Cvc3Exception; - private static native void - jniCmdsFromString(Object ValidityChecker, String s) throws Cvc3Exception; - private static native Object - jniExprFromString(Object ValidityChecker, String s) throws Cvc3Exception; - private static native Object - jniTrueExpr(Object ValidityChecker) throws Cvc3Exception; - private static native Object - jniFalseExpr(Object ValidityChecker) throws Cvc3Exception; - private static native Object - jniNotExpr(Object ValidityChecker, Object Expr) throws Cvc3Exception; - private static native Object - jniAndExpr1(Object ValidityChecker, Object ExprLeft, Object ExprRight) throws Cvc3Exception; - private static native Object - jniAndExpr2(Object ValidityChecker, Object[] ExprChildren) throws Cvc3Exception; - private static native Object - jniOrExpr1(Object ValidityChecker, Object ExprLeft, Object ExprRight) throws Cvc3Exception; - private static native Object - jniOrExpr2(Object ValidityChecker, Object[] Exprchildren) throws Cvc3Exception; - private static native Object - jniImpliesExpr(Object ValidityChecker, Object ExprHyp, Object ExprConc) throws Cvc3Exception; - private static native Object - jniIffExpr(Object ValidityChecker, Object ExprLeft, Object ExprRight) throws Cvc3Exception; - private static native Object - jniEqExpr(Object ValidityChecker, Object Expr1, Object Expr2) throws Cvc3Exception; - private static native Object - jniDistinctExpr(Object ValidityChecker, Object[] ExprChildren) throws Cvc3Exception; - private static native Object - jniIteExpr(Object ValidityChecker, Object ExprIf, Object ExprThen, Object ExprElse) throws Cvc3Exception; - private static native Object - jniCreateOp1(Object ValidityChecker, String name, Object Type) throws Cvc3Exception; - private static native Object - jniCreateOp2(Object ValidityChecker, String name, Object Type, Object ExprDef) throws Cvc3Exception; - private static native Object - jniEqOp(Object ValidityChecker) throws Cvc3Exception; - private static native Object - jniLtOp(Object ValidityChecker) throws Cvc3Exception; - private static native Object - jniLeOp(Object ValidityChecker) throws Cvc3Exception; - private static native Object - jniGtOp(Object ValidityChecker) throws Cvc3Exception; - private static native Object - jniGeOp(Object ValidityChecker) throws Cvc3Exception; - private static native Object - jniPlusOp(Object ValidityChecker) throws Cvc3Exception; - private static native Object - jniMinusOp(Object ValidityChecker) throws Cvc3Exception; - private static native Object - jniMultOp(Object ValidityChecker) throws Cvc3Exception; - private static native Object - jniDivideOp(Object ValidityChecker) throws Cvc3Exception; - private static native Object - jniFunExpr1(Object ValidityChecker, Object Op, Object Expr) throws Cvc3Exception; - private static native Object - jniFunExpr2(Object ValidityChecker, Object Op, Object ExprLeft, Object ExprRight) throws Cvc3Exception; - private static native Object - jniFunExpr3(Object ValidityChecker, Object Op, Object Expr1, Object Expr2, Object Expr3) throws Cvc3Exception; - private static native Object - jniFunExpr4(Object ValidityChecker, Object Op, Object[] ExprChildren) throws Cvc3Exception; - private static native Object - jniRatExpr1(Object ValidityChecker, int n, int d) throws Cvc3Exception; - private static native Object - jniRatExpr2(Object ValidityChecker, String n, String d, int base) throws Cvc3Exception; - private static native Object - jniRatExpr3(Object ValidityChecker, String n, int base) throws Cvc3Exception; - private static native Object - jniUminusExpr(Object ValidityChecker, Object Expr) throws Cvc3Exception; - private static native Object - jniPlusExpr1(Object ValidityChecker, Object Exprleft, Object ExprRight) throws Cvc3Exception; - private static native Object - jniPlusExpr2(Object ValidityChecker, Object[] kids) throws Cvc3Exception; - private static native Object - jniMinusExpr(Object ValidityChecker, Object ExprLeft, Object ExprRight) throws Cvc3Exception; - private static native Object - jniMultExpr(Object ValidityChecker, Object ExprLeft, Object ExprRight) throws Cvc3Exception; - private static native Object - jniPowExpr(Object ValidityChecker, Object ExprX, Object ExprN) throws Cvc3Exception; - private static native Object - jniDivideExpr(Object ValidityChecker, Object ExprNumerator, Object ExprDenominator) throws Cvc3Exception; - private static native Object - jniLtExpr(Object ValidityChecker, Object ExprLeft, Object ExprRight) throws Cvc3Exception; - private static native Object - jniLeExpr(Object ValidityChecker, Object ExprLeft, Object ExprRight) throws Cvc3Exception; - private static native Object - jniGtExpr(Object ValidityChecker, Object ExprLeft, Object ExprRight) throws Cvc3Exception; - private static native Object - jniGeExpr(Object ValidityChecker, Object ExprLeft, Object ExprRight) throws Cvc3Exception; - private static native Object - jniRecordExpr1(Object ValidityChecker, String field, Object Expr) throws Cvc3Exception; - private static native Object - jniRecordExpr2(Object ValidityChecker, String field1, Object Expr1, - String field2, Object Expr2) throws Cvc3Exception; - private static native Object - jniRecordExpr3(Object ValidityChecker, String field1, Object Expr1, String field2, Object Expr2, - String field3, Object Expr3) throws Cvc3Exception; - private static native Object - jniRecordExpr4(Object ValidityChecker, Object[] StringFields, Object[] Exprs) throws Cvc3Exception; - private static native Object - jniRecSelectExpr(Object ValidityChecker, Object ExprRecord, String field) throws Cvc3Exception; - private static native Object - jniRecUpdateExpr(Object ValidityChecker, Object ExprRecord, String field, - Object ExprNewValue) throws Cvc3Exception; - private static native Object - jniReadExpr(Object ValidityChecker, Object ExprArray, Object ExprIndex) throws Cvc3Exception; - private static native Object - jniWriteExpr(Object ValidityChecker, Object ExprArray, Object ExprIndex, - Object ExprNewValue) throws Cvc3Exception; - private static native Object - jniNewBVConstExpr1(Object ValidityChecker, String s, int base) throws Cvc3Exception; - private static native Object - jniNewBVConstExpr2(Object ValidityChecker, boolean[] bits) throws Cvc3Exception; - private static native Object - jniNewBVConstExpr3(Object ValidityChecker, Object RationalR, int len) throws Cvc3Exception; - private static native Object - jniNewConcatExpr1(Object ValidityChecker, Object Expr1, Object Expr2) throws Cvc3Exception; - private static native Object - jniNewConcatExpr2(Object ValidityChecker, Object[] Exprkids) throws Cvc3Exception; - private static native Object - jniNewBVExtractExpr(Object ValidityChecker, Object ExprE, int hi, int low) throws Cvc3Exception; - private static native Object - jniNewBVNegExpr(Object ValidityChecker, Object Expr1) throws Cvc3Exception; - private static native Object - jniNewBVAndExpr1(Object ValidityChecker, Object Expr1, Object Expr2) throws Cvc3Exception; - private static native Object - jniNewBVAndExpr2(Object ValidityChecker, Object[] ExprKids) throws Cvc3Exception; - private static native Object - jniNewBVOrExpr1(Object ValidityChecker, Object Expr1, Object Expr2) throws Cvc3Exception; - private static native Object - jniNewBVOrExpr2(Object ValidityChecker, Object[] ExprKids) throws Cvc3Exception; - private static native Object - jniNewBVXorExpr1(Object ValidityChecker, Object Expr1, Object Expr2) throws Cvc3Exception; - private static native Object - jniNewBVXorExpr2(Object ValidityChecker, Object[] ExprKids) throws Cvc3Exception; - private static native Object - jniNewBVXnorExpr1(Object ValidityChecker, Object Expr1, Object Expr2) throws Cvc3Exception; - private static native Object - jniNewBVXnorExpr2(Object ValidityChecker, Object[] ExprKids) throws Cvc3Exception; - private static native Object - jniNewBVNandExpr(Object ValidityChecker, Object Expr1, Object Expr2) throws Cvc3Exception; - private static native Object - jniNewBVNorExpr(Object ValidityChecker, Object Expr1, Object Expr2) throws Cvc3Exception; - private static native Object - jniNewBVLTExpr(Object ValidityChecker, Object Expr1, Object Expr2) throws Cvc3Exception; - private static native Object - jniNewBVLEExpr(Object ValidityChecker, Object Expr1, Object Expr2) throws Cvc3Exception; - private static native Object - jniNewBVSLTExpr(Object ValidityChecker, Object Expr1, Object Expr2) throws Cvc3Exception; - private static native Object - jniNewBVSLEExpr(Object ValidityChecker, Object Expr1, Object Expr2) throws Cvc3Exception; - private static native Object - jniNewSXExpr(Object ValidityChecker, Object Expr1, int len) throws Cvc3Exception; - private static native Object - jniNewBVUminusExpr(Object ValidityChecker, Object Expr) throws Cvc3Exception; - private static native Object - jniNewBVSubExpr(Object ValidityChecker, Object Expr1, Object Expr2) throws Cvc3Exception; - private static native Object - jniNewBVPlusExpr(Object ValidityChecker, int numbits, Object[] ExprK) throws Cvc3Exception; - private static native Object - jniNewBVMultExpr(Object ValidityChecker, int numbits, Object Expr1, Object Expr2) throws Cvc3Exception; - private static native Object - jniNewBVUDivExpr(Object ValidityChecker, Object left, Object right) throws Cvc3Exception; - private static native Object - jniNewBVURemExpr(Object ValidityChecker, Object left, Object right) throws Cvc3Exception; - private static native Object - jniNewBVSDivExpr(Object ValidityChecker, Object left, Object right) throws Cvc3Exception; - private static native Object - jniNewBVSRemExpr(Object ValidityChecker, Object left, Object right) throws Cvc3Exception; - private static native Object - jniNewBVSModExpr(Object ValidityChecker, Object left, Object right) throws Cvc3Exception; - private static native Object - jniNewBVSHL(Object ValidityChecker, Object left, Object right) throws Cvc3Exception; - private static native Object - jniNewBVLSHR(Object ValidityChecker, Object left, Object right) throws Cvc3Exception; - private static native Object - jniNewBVASHR(Object ValidityChecker, Object left, Object right) throws Cvc3Exception; - private static native Object - jniNewFixedLeftShiftExpr(Object ValidityChecker, Object Expr1, int r) throws Cvc3Exception; - private static native Object - jniNewFixedConstWidthLeftShiftExpr(Object ValidityChecker, Object Expr1, int r) throws Cvc3Exception; - private static native Object - jniNewFixedRightShiftExpr(Object ValidityChecker, Object Expr1, int r) throws Cvc3Exception; - private static native Object - jniComputeBVConst(Object ValidityChecker, Object Expr) throws Cvc3Exception; - private static native Object - jniTupleExpr(Object ValidityChecker, Object[] Exprs) throws Cvc3Exception; - private static native Object - jniTupleUpdateExpr(Object ValidityChecker, Object ExprTuple, int index, - Object ExprNewValue) throws Cvc3Exception; - private static native Object - jniDatatypeConsExpr(Object ValidityChecker, String constructor, Object[] ExprArgs) throws Cvc3Exception; - private static native Object - jniDatatypeSelExpr(Object ValidityChecker, String selector, Object ExprArg) throws Cvc3Exception; - private static native Object - jniDatatypeTestExpr(Object ValidityChecker, String constructor, Object ExprArg) throws Cvc3Exception; - private static native Object - jniForallExpr1(Object ValidityChecker, Object[] ExprVars, Object ExprBody) throws Cvc3Exception; - private static native Object - jniForallExpr2(Object ValidityChecker, Object[] ExprVars, Object ExprBody, - Object ExprTrigger) throws Cvc3Exception; - private static native Object - jniForallExpr3(Object ValidityChecker, Object[] ExprVars, Object ExprBody, - Object[] ExprTriggers) throws Cvc3Exception; - private static native Object - jniForallExpr4(Object ValidityChecker, Object[] ExprVars, Object ExprBody, - Object[][] ExprTriggers) throws Cvc3Exception; - private static native void - jniSetTrigger(Object ValidityChecker, Object ExprClosure, Object ExprTrigger) throws Cvc3Exception; - private static native void - jniSetTriggers(Object ValidityChecker, Object ExprClosure, Object[] ExprTriggers) throws Cvc3Exception; - private static native void - jniSetTriggers2(Object ValidityChecker, Object ExprClosure, Object[][] ExprTriggers) throws Cvc3Exception; - private static native void - jniSetMultiTrigger(Object ValidityChecker, Object ExprClosure, Object[] ExprMultiTrigger) throws Cvc3Exception; - private static native Object - jniExistsExpr(Object ValidityChecker, Object[] ExprVars, Object ExprBody) throws Cvc3Exception; - private static native Object - jniLambdaExpr(Object ValidityChecker, Object[] ExprVars, Object ExprBody) throws Cvc3Exception; - private static native Object - jniTransClosure(Object ValidityChecker, Object Op) throws Cvc3Exception; - private static native Object - jniSimulateExpr(Object ValidityChecker, Object ExprF, Object ExprS, - Object[] ExprInputs, Object ExprN) throws Cvc3Exception; - - private static native void - jniSetResourceLimit(Object ValidityChecker, int limit) throws Cvc3Exception; - private static native void - jniAssertFormula(Object ValidityChecker, Object Expr) throws Cvc3Exception; - private static native void - jniRegisterAtom(Object ValidityChecker, Object Expr) throws Cvc3Exception; - private static native Object - jniGetImpliedLiteral(Object ValidityChecker) throws Cvc3Exception; - private static native Object - jniSimplify(Object ValidityChecker, Object Expr) throws Cvc3Exception; - private static native String - jniQuery(Object ValidityChecker, Object Expr) throws Cvc3Exception; - private static native String - jniCheckUnsat(Object ValidityChecker, Object Expr) throws Cvc3Exception; - private static native String - jniCheckContinue(Object ValidityChecker) throws Cvc3Exception; - private static native String - jniRestart(Object ValidityChecker, Object Expr) throws Cvc3Exception; - private static native void - jniReturnFromCheck(Object ValidityChecker) throws Cvc3Exception; - private static native Object[] - jniGetUserAssumptions(Object ValidityChecker) throws Cvc3Exception; - private static native Object[] - jniGetInternalAssumptions(Object ValidityChecker) throws Cvc3Exception; - private static native Object[] - jniGetAssumptions(Object ValidityChecker) throws Cvc3Exception; - private static native Object[] - jniGetAssumptionsUsed(Object ValidityChecker) throws Cvc3Exception; - private static native Object[] - jniGetCounterExample(Object ValidityChecker, boolean inOrder) throws Cvc3Exception; - private static native Object[] - jniGetConcreteModel(Object ValidityChecker) throws Cvc3Exception; - private static native Object - jniGetValue(Object ValidityChecker, Object Expr) throws Cvc3Exception; - private static native String - jniValue(Object ValidityChecker, Object Expr) throws Cvc3Exception; - private static native boolean - jniInconsistent1(Object ValidityChecker) throws Cvc3Exception; - private static native Object[] - jniInconsistent2(Object ValidityChecker) throws Cvc3Exception; - private static native boolean - jniIncomplete1(Object ValidityChecker) throws Cvc3Exception; - private static native Object[] - jniIncomplete2(Object ValidityChecker) throws Cvc3Exception; - private static native Object - jniGetProof(Object ValidityChecker) throws Cvc3Exception; - private static native Object - jniGetTCC(Object ValidityChecker) throws Cvc3Exception; - private static native Object[] - jniGetAssumptionsTCC(Object ValidityChecker) throws Cvc3Exception; - private static native Object - jniGetProofTCC(Object ValidityChecker) throws Cvc3Exception; - private static native Object - jniGetClosure(Object ValidityChecker) throws Cvc3Exception; - private static native Object - jniGetProofClosure(Object ValidityChecker) throws Cvc3Exception; - - private static native int - jniStackLevel(Object ValidityChecker) throws Cvc3Exception; - private static native void - jniPush(Object ValidityChecker) throws Cvc3Exception; - private static native void - jniPop(Object ValidityChecker) throws Cvc3Exception; - private static native void - jniPopTo(Object ValidityChecker, int stackLevel) throws Cvc3Exception; - private static native int - jniScopeLevel(Object ValidityChecker) throws Cvc3Exception; - private static native void - jniPushScope(Object ValidityChecker) throws Cvc3Exception; - private static native void - jniPopScope(Object ValidityChecker) throws Cvc3Exception; - private static native void - jniPopToScope(Object ValidityChecker, int scopeLevel) throws Cvc3Exception; - private static native Object - jniGetCurrentContext(Object ValidityChecker) throws Cvc3Exception; - - private static native void - jniLoadFile1(Object ValidityChecker, String fileName, String lang) throws Cvc3Exception; - - private static native Object - jniGetStatistics(Object ValidityChecker) throws Cvc3Exception; - private static native void - jniPrintStatistics(Object ValidityChecker) throws Cvc3Exception; - - private static native void - jniSetTimeLimit(Object ValidityChecker, int limit) throws Cvc3Exception; - - - - // delete ValidityChecker, all expressions created using it, - // and all embedded objects registered with its embeddedManager - public synchronized void delete() throws Cvc3Exception { - if (isDeleted()) return; - - //:TEST: - embeddedManager().cleanUp(); - - embeddedManager().delete(); - EmbeddedManager.jniDelete(embedded()); - d_embedded = null; - } - - // ensure that all embedded objects are deallocated eventually - public void finalize() throws Throwable { - try { - if (!isDeleted()) { - assert(false); -// System.out.println("ValidityChecker.Finalizer: should never be called"); - throw new Error("ValidityChecker.Finalizer: should never be called"); - } - } finally { - super.finalize(); - } - } - - /// Constructor - - // create embedded object - protected ValidityChecker(Object ValidityChecker) { - super(ValidityChecker, new EmbeddedManager()); - } - - - /// API: ValidityChecker - - - // Creation - - // delete must be called before ValidityChecker is garbage collected - public static ValidityChecker create() throws Cvc3Exception { - return new ValidityChecker(jniCreate1()); - } - - // delete must be called before ValidityChecker is garbage collected - public static ValidityChecker create(Flags flags) throws Cvc3Exception { - return new ValidityChecker(jniCreate2(flags.embedded())); - } - - - // Flags - - // if embeddedManger is null then delete must be called before - // the returned Flags is garbage collected - public static FlagsMut createFlags(EmbeddedManager embeddedManager) throws Cvc3Exception { - return new FlagsMut(jniCreateFlags(), embeddedManager); - } - - public FlagsMut getFlags() throws Cvc3Exception { - return new FlagsMut(jniGetFlags(embedded()), embeddedManager()); - } - - - - // Type-related methods - - public TypeMut boolType() throws Cvc3Exception { - return new TypeMut(jniBoolType(embedded()), embeddedManager()); - } - - public TypeMut realType() throws Cvc3Exception { - return new TypeMut(jniRealType(embedded()), embeddedManager()); - } - - public TypeMut intType() throws Cvc3Exception { - return new TypeMut(jniIntType(embedded()), embeddedManager()); - } - - public TypeMut subrangeType(Expr l, Expr r) throws Cvc3Exception { - return new TypeMut( - jniSubrangeType(embedded(), l.embedded(), r.embedded()), - embeddedManager()); - } - - public TypeMut subtypeType(Expr pred, Expr witness) throws Cvc3Exception { - return new TypeMut( - jniSubtypeType(embedded(), pred.embedded(), witness.embedded()), - embeddedManager()); - } - - public TypeMut tupleType(Type type0, Type type1) throws Cvc3Exception { - return new TypeMut( - jniTupleType1(embedded(), type0.embedded(), type1.embedded()), - embeddedManager()); - } - - public TypeMut tupleType(Type type0, Type type1, Type type2) throws Cvc3Exception { - return new TypeMut( - jniTupleType2(embedded(), type0.embedded(), type1.embedded(), type2.embedded()), - embeddedManager()); - } - - public TypeMut tupleType(List types) throws Cvc3Exception { - return new TypeMut( - jniTupleType3(embedded(), JniUtils.unembedList(types)), - embeddedManager()); - } - - public TypeMut recordType(String field, Type type) throws Cvc3Exception { - return new TypeMut( - jniRecordType1(embedded(), field, type.embedded()), - embeddedManager()); - } - - public TypeMut recordType(String field0, Type type0, String field1, Type type1) throws Cvc3Exception { - return new TypeMut( - jniRecordType2(embedded(), field0, type0.embedded(), field1, type1.embedded()), - embeddedManager()); - } - - public TypeMut recordType(String field0, Type type0, String field1, Type type1, - String field2, Type type2) throws Cvc3Exception { - return new TypeMut( - jniRecordType3(embedded(), field0, type0.embedded(), field1, type1.embedded(), - field2, type2.embedded()), - embeddedManager()); - } - - public TypeMut recordType(List fields, List types) throws Cvc3Exception { - assert(JniUtils.listInstanceof(fields, String.class)); - return new TypeMut( - jniRecordType4(embedded(), JniUtils.toArray(fields), JniUtils.unembedList(types)), - embeddedManager()); - } - - public TypeMut dataType(String name, String constructor, - List selectors, List types) throws Cvc3Exception { - assert(JniUtils.listInstanceof(selectors, String.class)); - assert(JniUtils.listInstanceof(types, Expr.class)); - return new TypeMut( - jniDataType1(embedded(), name, constructor, - JniUtils.toArray(selectors), JniUtils.unembedList(types)), - embeddedManager()); - } - - public TypeMut dataType(String name, String[] constructors, - String[][] selectors, Expr[][] types) throws Cvc3Exception { - return new TypeMut( - jniDataType2(embedded(), name, constructors, selectors, JniUtils.unembedArrayArray(types)), - embeddedManager()); - } - - public TypeMut dataType(String name, List constructors, - List selectors, List types) throws Cvc3Exception { - assert(JniUtils.listInstanceof(constructors, String.class)); - assert(JniUtils.listListInstanceof(selectors, String.class)); - assert(JniUtils.listListInstanceof(types, Expr.class)); - return new TypeMut( - jniDataType2(embedded(), name, JniUtils.toArray(constructors), - JniUtils.toArrayArray(selectors), JniUtils.unembedListList(types)), - embeddedManager()); - } - - public List dataType(List names, List constructors, - List selectors, List types) throws Cvc3Exception { - assert(JniUtils.listInstanceof(names, String.class)); - assert(JniUtils.listListInstanceof(constructors, String.class)); - assert(JniUtils.listListListInstanceof(selectors, String.class)); - assert(JniUtils.listListListInstanceof(types, Expr.class)); - Object[] dataTypes = - jniDataType3(embedded(), JniUtils.toArray(names), JniUtils.toArrayArray(constructors), - JniUtils.toArrayArrayArray(selectors), JniUtils.unembedListListList(types)); - return JniUtils.embedList(dataTypes, TypeMut.class, embeddedManager()); - } - - public ExprMut arrayLiteral(Expr var, Expr body) throws Cvc3Exception { - return new ExprMut(jniArrayLiteral(embedded(), var.embedded(), body.embedded()),embeddedManager()); - } - - public TypeMut anyType() throws Cvc3Exception { - return new TypeMut(jniAnyType(embedded()),embeddedManager()); - } - - public TypeMut arrayType(Type typeIndex, Type typeData) throws Cvc3Exception { - return new TypeMut( - jniArrayType(embedded(), typeIndex.embedded(), typeData.embedded()), - embeddedManager()); - } - - public TypeMut bitvecType(int n) throws Cvc3Exception { - return new TypeMut( - jniBitvecType(embedded(), n), - embeddedManager()); - } - - public TypeMut funType(Type typeDom, Type typeRange) throws Cvc3Exception { - return new TypeMut( - jniFunType1(embedded(), typeDom.embedded(), typeRange.embedded()), - embeddedManager()); - } - - public TypeMut funType(List typeDom, Type typeRange) throws Cvc3Exception { - assert(JniUtils.listInstanceof(typeDom, Type.class)); - return new TypeMut( - jniFunType2(embedded(), JniUtils.unembedList(typeDom), typeRange.embedded()), - embeddedManager()); - } - - public TypeMut createType(String typeName) throws Cvc3Exception { - return new TypeMut( - jniCreateType1(embedded(), typeName), - embeddedManager()); - } - - public TypeMut createType(String typeName, Type typeDef) throws Cvc3Exception { - return new TypeMut( - jniCreateType2(embedded(), typeName, typeDef.embedded()), - embeddedManager()); - } - - public TypeMut lookupType(String typeName) throws Cvc3Exception { - return new TypeMut( - jniLookupType(embedded(), typeName), - embeddedManager()); - } - - - - // Expressions - - public ExprManagerMut getExprManager() throws Cvc3Exception { - return new ExprManagerMut(jniGetExprManager(embedded()), embeddedManager()); - } - - public Expr nullExpr() throws Cvc3Exception { - return new Expr(jniNullExpr(embedded()), embeddedManager()); - } - - public ExprMut varExpr(String name, Type type) throws Cvc3Exception { - return new ExprMut( - jniVarExpr1(embedded(), name, type.embedded()), - embeddedManager()); - } - - public ExprMut varExpr(String name, Type type, Expr def) throws Cvc3Exception { - return new ExprMut( - jniVarExpr2(embedded(), name, type.embedded(), def.embedded()), - embeddedManager()); - } - - public ExprMut boundVarExpr(String name, String uid, Type type) throws Cvc3Exception { - return new ExprMut( - jniBoundVarExpr(embedded(), name, uid, type.embedded()), - embeddedManager()); - } - -/* public ExprMut boundVarExpr(Type type) throws Cvc3Exception { - return new ExprMut( - jniBoundVarExpr(embedded(), type.embedded()), - embeddedManager()); - }*/ - - public ExprMut lookupVar(String name) throws Cvc3Exception { - return new ExprMut( - jniLookupVar(embedded(), name), - embeddedManager()); - } - - public OpMut lookupOp(String name) throws Cvc3Exception { - return new OpMut( - jniLookupOp(embedded(), name), - embeddedManager()); - } - - public TypeMut getType(Expr expr) throws Cvc3Exception { - return new TypeMut( - jniGetType(embedded(), expr.embedded()), - embeddedManager()); - } - - public TypeMut getBaseType(Expr expr) throws Cvc3Exception { - return new TypeMut( - jniGetBaseType1(embedded(), expr.embedded()), - embeddedManager()); - } - - public TypeMut getBaseType(Type type) throws Cvc3Exception { - return new TypeMut( - jniGetBaseType2(embedded(), type.embedded()), - embeddedManager()); - } - - public ExprMut getTypePred(Type type, Expr expr) throws Cvc3Exception { - return new ExprMut( - jniGetTypePred(embedded(), type.embedded(), expr.embedded()), - embeddedManager()); - } - - public ExprMut stringExpr(String str) throws Cvc3Exception { - return new ExprMut( - jniStringExpr(embedded(), str), - embeddedManager()); - } - - public ExprMut idExpr(String name) throws Cvc3Exception { - return new ExprMut( - jniIdExpr(embedded(), name), - embeddedManager()); - } - - public ExprMut listExpr(List kids) throws Cvc3Exception { - assert(JniUtils.listInstanceof(kids, Expr.class)); - return new ExprMut( - jniListExpr1(embedded(), JniUtils.unembedList(kids)), - embeddedManager()); - } - - public ExprMut listExpr(Expr expr1) throws Cvc3Exception { - return new ExprMut( - jniListExpr2(embedded(), expr1.embedded()), - embeddedManager()); - } - - public ExprMut listExpr(Expr expr1, Expr expr2) throws Cvc3Exception { - return new ExprMut( - jniListExpr3(embedded(), expr1.embedded(), expr2.embedded()), - embeddedManager()); - } - - public ExprMut listExpr(Expr expr1, Expr expr2, Expr expr3) throws Cvc3Exception { - return new ExprMut( - jniListExpr4(embedded(), expr1.embedded(), expr2.embedded(), expr3.embedded()), - embeddedManager()); - } - - public ExprMut listExpr(String op, List kids) throws Cvc3Exception { - assert(JniUtils.listInstanceof(kids, Expr.class)); - return new ExprMut( - jniListExpr5(embedded(), op, JniUtils.unembedList(kids)), - embeddedManager()); - } - - public ExprMut listExpr(String op, Expr expr1) throws Cvc3Exception { - return new ExprMut( - jniListExpr6(embedded(), op, expr1.embedded()), - embeddedManager()); - } - - public ExprMut listExpr(String op, Expr expr1, Expr expr2) throws Cvc3Exception { - return new ExprMut( - jniListExpr7(embedded(), op, expr1.embedded(), expr2.embedded()), - embeddedManager()); - } - - public ExprMut listExpr(String op, Expr expr1, Expr expr2, Expr expr3) throws Cvc3Exception { - return new ExprMut( - jniListExpr8(embedded(), op, expr1.embedded(), expr2.embedded(), expr3.embedded()), - embeddedManager()); - } - - public void printExpr(Expr expr) throws Cvc3Exception { - jniPrintExpr(embedded(), expr.embedded()); - } - - public ExprMut parseExpr(Expr expr) throws Cvc3Exception { - return new ExprMut( - jniParseExpr(embedded(), expr.embedded()), - embeddedManager()); - } - - public TypeMut parseType(Expr expr) throws Cvc3Exception { - return new TypeMut( - jniParseType(embedded(), expr.embedded()), - embeddedManager()); - } - - public ExprMut importExpr(Expr expr) throws Cvc3Exception { - return new ExprMut( - jniImportExpr(embedded(), expr.embedded()), - embeddedManager()); - } - - public TypeMut importType(Type type) throws Cvc3Exception { - return new TypeMut( - jniImportType(embedded(), type.embedded()), - embeddedManager()); - } - - public void cmdsFromString(String s) throws Cvc3Exception { - jniCmdsFromString(embedded(), s); - } - - public ExprMut exprFromString(String s) throws Cvc3Exception { - return new ExprMut( jniExprFromString(embedded(), s), embeddedManager() ); - } - - - public ExprMut trueExpr() throws Cvc3Exception { - return new ExprMut(jniTrueExpr(embedded()), embeddedManager()); - } - - public ExprMut falseExpr() throws Cvc3Exception { - return new ExprMut(jniFalseExpr(embedded()), embeddedManager()); - } - - public ExprMut notExpr(Expr expr) throws Cvc3Exception { - return new ExprMut( - jniNotExpr(embedded(), expr.embedded()), - embeddedManager()); - } - - public ExprMut andExpr(Expr expr1, Expr expr2) throws Cvc3Exception { - return new ExprMut( - jniAndExpr1(embedded(), expr1.embedded(), expr2.embedded()), - embeddedManager()); - } - - public ExprMut andExpr(List children) throws Cvc3Exception { - assert(JniUtils.listInstanceof(children, Expr.class)); - return new ExprMut( - jniAndExpr2(embedded(), JniUtils.unembedList(children)), - embeddedManager()); - } - - public ExprMut orExpr(Expr expr1, Expr expr2) throws Cvc3Exception { - return new ExprMut( - jniOrExpr1(embedded(), expr1.embedded(), expr2.embedded()), - embeddedManager()); - } - - public ExprMut orExpr(List children) throws Cvc3Exception { - assert(JniUtils.listInstanceof(children, Expr.class)); - return new ExprMut( - jniOrExpr2(embedded(), JniUtils.unembedList(children)), - embeddedManager()); - } - - public ExprMut impliesExpr(Expr hyp, Expr conc) throws Cvc3Exception { - return new ExprMut( - jniImpliesExpr(embedded(), hyp.embedded(), conc.embedded()), - embeddedManager()); - } - - public ExprMut iffExpr(Expr left, Expr right) throws Cvc3Exception { - return new ExprMut( - jniIffExpr(embedded(), left.embedded(), right.embedded()), - embeddedManager()); - } - - public ExprMut eqExpr(Expr left, Expr right) throws Cvc3Exception { - return new ExprMut( - jniEqExpr(embedded(), left.embedded(), right.embedded()), - embeddedManager()); - } - - public ExprMut distinctExpr(List children) throws Cvc3Exception { - assert(JniUtils.listInstanceof(children, Expr.class)); - return new ExprMut( - jniDistinctExpr(embedded(), JniUtils.unembedList(children)), embeddedManager()); - } - - public ExprMut iteExpr(Expr ifPart, Expr thenPart, Expr elsePart) throws Cvc3Exception { - return new ExprMut( - jniIteExpr(embedded(), ifPart.embedded(), thenPart.embedded(), elsePart.embedded()), - embeddedManager()); - } - - public OpMut createOp(String name, Type type) throws Cvc3Exception { - return new OpMut( - jniCreateOp1(embedded(), name, type.embedded()), - embeddedManager()); - } - - public OpMut createOp(String name, Type type, Expr expr) throws Cvc3Exception { - return new OpMut( - jniCreateOp2(embedded(), name, type.embedded(), expr.embedded()), - embeddedManager()); - } - - // '=' - public OpMut eqOp() throws Cvc3Exception { - return new OpMut(jniEqOp(embedded()), embeddedManager()); - } - - // '<' - public OpMut ltOp() throws Cvc3Exception { - return new OpMut(jniLtOp(embedded()), embeddedManager()); - } - - // '<=' - public OpMut leOp() throws Cvc3Exception { - return new OpMut(jniLeOp(embedded()), embeddedManager()); - } - - // '>' - public OpMut gtOp() throws Cvc3Exception { - return new OpMut(jniGtOp(embedded()), embeddedManager()); - } - - // '>=' - public OpMut geOp() throws Cvc3Exception { - return new OpMut(jniGeOp(embedded()), embeddedManager()); - } - - // '+' - public OpMut plusOp() throws Cvc3Exception { - return new OpMut(jniPlusOp(embedded()), embeddedManager()); - } - - // '-' - public OpMut minusOp() throws Cvc3Exception { - return new OpMut(jniMinusOp(embedded()), embeddedManager()); - } - - // '*' - public OpMut multOp() throws Cvc3Exception { - return new OpMut(jniMultOp(embedded()), embeddedManager()); - } - - // '/' for rationals - public OpMut divideOp() throws Cvc3Exception { - return new OpMut(jniDivideOp(embedded()), embeddedManager()); - } - - public ExprMut funExpr(Op op, Expr expr1) throws Cvc3Exception { - return new ExprMut( - jniFunExpr1(embedded(), op.embedded(), expr1.embedded()), - embeddedManager()); - } - - public ExprMut funExpr(Op op, Expr expr1, Expr expr2) throws Cvc3Exception { - return new ExprMut( - jniFunExpr2(embedded(), op.embedded(), expr1.embedded(), expr2.embedded()), - embeddedManager()); - } - - public ExprMut funExpr(Op op, Expr expr1, Expr expr2, Expr expr3) throws Cvc3Exception { - return new ExprMut( - jniFunExpr3(embedded(), op.embedded(), expr1.embedded(), expr2.embedded(), expr3.embedded()), - embeddedManager()); - } - - public ExprMut funExpr(Op op, List children) throws Cvc3Exception { - assert(JniUtils.listInstanceof(children, Expr.class)); - return new ExprMut( - jniFunExpr4(embedded(), op.embedded(), JniUtils.unembedList(children)), - embeddedManager()); - } - - public ExprMut ratExpr(int n) throws Cvc3Exception { - return ratExpr(n, 1); - } - - public ExprMut ratExpr(int n, int d) throws Cvc3Exception { - return new ExprMut( - jniRatExpr1(embedded(), n, d), - embeddedManager()); - } - - public ExprMut ratExpr(String n, String d, int base) throws Cvc3Exception { - return new ExprMut( - jniRatExpr2(embedded(), n, d, base), - embeddedManager()); - } - - public ExprMut ratExpr(String n) throws Cvc3Exception { - return ratExpr(n, 10); - } - - public ExprMut ratExpr(String n, int base) throws Cvc3Exception { - return new ExprMut( - jniRatExpr3(embedded(), n, base), - embeddedManager()); - } - - public ExprMut uminusExpr(Expr expr) throws Cvc3Exception { - return new ExprMut( - jniUminusExpr(embedded(), expr.embedded()), - embeddedManager()); - } - - public ExprMut plusExpr(Expr left, Expr right) throws Cvc3Exception { - return new ExprMut( - jniPlusExpr1(embedded(), left.embedded(), right.embedded()), - embeddedManager()); - } - - public ExprMut plusExpr(List kids) throws Cvc3Exception { - return new ExprMut( - jniPlusExpr2(embedded(), JniUtils.unembedList(kids)), - embeddedManager()); - } - - public ExprMut minusExpr(Expr left, Expr right) throws Cvc3Exception { - return new ExprMut( - jniMinusExpr(embedded(), left.embedded(), right.embedded()), - embeddedManager()); - } - - public ExprMut multExpr(Expr left, Expr right) throws Cvc3Exception { - return new ExprMut( - jniMultExpr(embedded(), left.embedded(), right.embedded()), - embeddedManager()); - } - - public ExprMut powExpr(Expr x, Expr n) throws Cvc3Exception { - return new ExprMut( - jniPowExpr(embedded(), x.embedded(), n.embedded()), - embeddedManager()); - } - - public ExprMut divideExpr(Expr numerator, Expr denominator) throws Cvc3Exception { - return new ExprMut( - jniDivideExpr(embedded(), numerator.embedded(), denominator.embedded()), - embeddedManager()); - } - - public ExprMut ltExpr(Expr left, Expr right) throws Cvc3Exception { - return new ExprMut( - jniLtExpr(embedded(), left.embedded(), right.embedded()), - embeddedManager()); - } - - public ExprMut leExpr(Expr left, Expr right) throws Cvc3Exception { - return new ExprMut( - jniLeExpr(embedded(), left.embedded(), right.embedded()), - embeddedManager()); - } - - public ExprMut gtExpr(Expr left, Expr right) throws Cvc3Exception { - return new ExprMut( - jniGtExpr(embedded(), left.embedded(), right.embedded()), - embeddedManager()); - } - - public ExprMut geExpr(Expr left, Expr right) throws Cvc3Exception { - return new ExprMut( - jniGeExpr(embedded(), left.embedded(), right.embedded()), - embeddedManager()); - } - - public ExprMut recordExpr(String field, Expr expr) throws Cvc3Exception { - return new ExprMut( - jniRecordExpr1(embedded(), field, expr.embedded()), - embeddedManager()); - } - - public ExprMut recordExpr(String field1, Expr expr1, String field2, Expr expr2) throws Cvc3Exception { - return new ExprMut( - jniRecordExpr2(embedded(), field1, expr1.embedded(), field2, expr2.embedded()), - embeddedManager()); - } - - public ExprMut recordExpr(String field1, Expr expr1, String field2, Expr expr2, - String field3, Expr expr3) throws Cvc3Exception { - return new ExprMut( - jniRecordExpr3(embedded(), field1, expr1.embedded(), field2, expr2.embedded(), - field3, expr3.embedded()), - embeddedManager()); - } - - public ExprMut recordExpr(List fields, List exprs) throws Cvc3Exception { - assert(JniUtils.listInstanceof(fields, String.class)); - assert(JniUtils.listInstanceof(exprs, Expr.class)); - return new ExprMut( - jniRecordExpr4(embedded(), JniUtils.toArray(fields), JniUtils.unembedList(exprs)), - embeddedManager()); - } - - public ExprMut recSelectExpr(Expr record, String field) throws Cvc3Exception { - return new ExprMut( - jniRecSelectExpr(embedded(), record.embedded(), field), - embeddedManager()); - } - - public ExprMut recUpdateExpr(Expr record, String field, Expr newValue) throws Cvc3Exception { - return new ExprMut( - jniRecUpdateExpr(embedded(), record.embedded(), field, newValue.embedded()), - embeddedManager()); - } - - public ExprMut readExpr(Expr array, Expr index) throws Cvc3Exception { - return new ExprMut( - jniReadExpr(embedded(), array.embedded(), index.embedded()), - embeddedManager()); - } - - public ExprMut writeExpr(Expr array, Expr index, Expr newValue) throws Cvc3Exception { - return new ExprMut( - jniWriteExpr(embedded(), array.embedded(), index.embedded(), newValue.embedded()), - embeddedManager()); - } - - public ExprMut newBVConstExpr(String s) throws Cvc3Exception { - return newBVConstExpr(s, 2); - } - - public ExprMut newBVConstExpr(String s, int base) throws Cvc3Exception { - return new ExprMut( - jniNewBVConstExpr1(embedded(), s, base), - embeddedManager()); - } - - public ExprMut newBVConstExpr(boolean[] bits) throws Cvc3Exception { - return new ExprMut( - jniNewBVConstExpr2(embedded(), bits), - embeddedManager()); - } - - public ExprMut newBVConstExpr(Rational r, int len) throws Cvc3Exception { - return new ExprMut( - jniNewBVConstExpr3(embedded(), r.embedded(), len), - embeddedManager()); - } - - public ExprMut newConcatExpr(Expr expr1, Expr expr2) throws Cvc3Exception { - return new ExprMut( - jniNewConcatExpr1(embedded(), expr1.embedded(), expr2.embedded()), - embeddedManager()); - } - - public ExprMut newConcatExpr(List kids) throws Cvc3Exception { - assert(JniUtils.listInstanceof(kids, Expr.class)); - return new ExprMut( - jniNewConcatExpr2(embedded(), JniUtils.unembedList(kids)), - embeddedManager()); - } - - public ExprMut newBVExtractExpr(Expr e, int hi, int low) throws Cvc3Exception { - return new ExprMut( - jniNewBVExtractExpr(embedded(), e.embedded(), hi, low), - embeddedManager()); - } - - public ExprMut newBVNegExpr(Expr expr) throws Cvc3Exception { - return new ExprMut( - jniNewBVNegExpr(embedded(), expr.embedded()), - embeddedManager()); - } - - public ExprMut newBVAndExpr(Expr expr1, Expr expr2) throws Cvc3Exception { - return new ExprMut( - jniNewBVAndExpr1(embedded(), expr1.embedded(), expr2.embedded()), - embeddedManager()); - } - - public ExprMut newBVAndExpr(List kids) throws Cvc3Exception { - assert(JniUtils.listInstanceof(kids, Expr.class)); - return new ExprMut( - jniNewBVAndExpr2(embedded(), JniUtils.unembedList(kids)), - embeddedManager()); - } - - public ExprMut newBVOrExpr(Expr expr1, Expr expr2) throws Cvc3Exception { - return new ExprMut( - jniNewBVOrExpr1(embedded(), expr1.embedded(), expr2.embedded()), - embeddedManager()); - } - - public ExprMut newBVOrExpr(List kids) throws Cvc3Exception { - assert(JniUtils.listInstanceof(kids, Expr.class)); - return new ExprMut( - jniNewBVOrExpr2(embedded(), JniUtils.unembedList(kids)), - embeddedManager()); - } - - public ExprMut newBVXorExpr(Expr expr1, Expr expr2) throws Cvc3Exception { - return new ExprMut( - jniNewBVXorExpr1(embedded(), expr1.embedded(), expr2.embedded()), - embeddedManager()); - } - - public ExprMut newBVXorExpr(List kids) throws Cvc3Exception { - assert(JniUtils.listInstanceof(kids, Expr.class)); - return new ExprMut( - jniNewBVXorExpr2(embedded(), JniUtils.unembedList(kids)), - embeddedManager()); - } - - public ExprMut newBVXnorExpr(Expr expr1, Expr expr2) throws Cvc3Exception { - return new ExprMut( - jniNewBVXnorExpr1(embedded(), expr1.embedded(), expr2.embedded()), - embeddedManager()); - } - - public ExprMut newBVXnorExpr(List kids) throws Cvc3Exception { - assert(JniUtils.listInstanceof(kids, Expr.class)); - return new ExprMut( - jniNewBVXnorExpr2(embedded(), JniUtils.unembedList(kids)), - embeddedManager()); - } - - public ExprMut newBVNandExpr(Expr expr1, Expr expr2) throws Cvc3Exception { - return new ExprMut( - jniNewBVNandExpr(embedded(), expr1.embedded(), expr2.embedded()), - embeddedManager()); - } - - public ExprMut newBVNorExpr(Expr expr1, Expr expr2) throws Cvc3Exception { - return new ExprMut( - jniNewBVNorExpr(embedded(), expr1.embedded(), expr2.embedded()), - embeddedManager()); - } - - public ExprMut newBVLTExpr(Expr expr1, Expr expr2) throws Cvc3Exception { - return new ExprMut( - jniNewBVLTExpr(embedded(), expr1.embedded(), expr2.embedded()), - embeddedManager()); - } - - public ExprMut newBVLEExpr(Expr expr1, Expr expr2) throws Cvc3Exception { - return new ExprMut( - jniNewBVLEExpr(embedded(), expr1.embedded(), expr2.embedded()), - embeddedManager()); - } - - public ExprMut newBVSLTExpr(Expr expr1, Expr expr2) throws Cvc3Exception { - return new ExprMut( - jniNewBVSLTExpr(embedded(), expr1.embedded(), expr2.embedded()), - embeddedManager()); - } - - public ExprMut newBVSLEExpr(Expr expr1, Expr expr2) throws Cvc3Exception { - return new ExprMut( - jniNewBVSLEExpr(embedded(), expr1.embedded(), expr2.embedded()), - embeddedManager()); - } - - public ExprMut newSXExpr(Expr expr, int len) throws Cvc3Exception { - return new ExprMut( - jniNewSXExpr(embedded(), expr.embedded(), len), - embeddedManager()); - } - - public ExprMut newBVUminusExpr(Expr expr) throws Cvc3Exception { - return new ExprMut( - jniNewBVUminusExpr(embedded(), expr.embedded()), - embeddedManager()); - } - - public ExprMut newBVSubExpr(Expr expr1, Expr expr2) throws Cvc3Exception { - return new ExprMut( - jniNewBVSubExpr(embedded(), expr1.embedded(), expr2.embedded()), - embeddedManager()); - } - - public ExprMut newBVPlusExpr(int numbits, List exprs) throws Cvc3Exception { - assert(JniUtils.listInstanceof(exprs, Expr.class)); - return new ExprMut( - jniNewBVPlusExpr(embedded(), numbits, JniUtils.unembedList(exprs)), - embeddedManager()); - } - - public ExprMut newBVMultExpr(int numbits, Expr expr1, Expr expr2) throws Cvc3Exception { - return new ExprMut( - jniNewBVMultExpr(embedded(), numbits, expr1.embedded(), expr2.embedded()), - embeddedManager()); - } - - public ExprMut newBVUDivExpr(Expr left, Expr right) throws Cvc3Exception { - return new ExprMut( - jniNewBVUDivExpr(embedded(), left.embedded(), right.embedded()), - embeddedManager()); - } - - public ExprMut newBVURemExpr(Expr left, Expr right) throws Cvc3Exception { - return new ExprMut( - jniNewBVURemExpr(embedded(), left.embedded(), right.embedded()), - embeddedManager()); - } - - public ExprMut newBVSDivExpr(Expr left, Expr right) throws Cvc3Exception { - return new ExprMut( - jniNewBVSDivExpr(embedded(), left.embedded(), right.embedded()), - embeddedManager()); - } - - public ExprMut newBVSRemExpr(Expr left, Expr right) throws Cvc3Exception { - return new ExprMut( - jniNewBVSRemExpr(embedded(), left.embedded(), right.embedded()), - embeddedManager()); - } - - public ExprMut newBVSModExpr(Expr left, Expr right) throws Cvc3Exception { - return new ExprMut( - jniNewBVSModExpr(embedded(), left.embedded(), right.embedded()), - embeddedManager()); - } - - public ExprMut newBVSHL(Expr left, Expr right) throws Cvc3Exception { - return new ExprMut( - jniNewBVSHL(embedded(), left.embedded(), right.embedded()), - embeddedManager()); - } - - public ExprMut newBVLSHR(Expr left, Expr right) throws Cvc3Exception { - return new ExprMut( - jniNewBVLSHR(embedded(), left.embedded(), right.embedded()), - embeddedManager()); - } - - public ExprMut newBVASHR(Expr left, Expr right) throws Cvc3Exception { - return new ExprMut( - jniNewBVASHR(embedded(), left.embedded(), right.embedded()), - embeddedManager()); - } - - public ExprMut newFixedLeftShiftExpr(Expr expr, int r) throws Cvc3Exception { - return new ExprMut( - jniNewFixedLeftShiftExpr(embedded(), expr.embedded(), r), - embeddedManager()); - } - - public ExprMut newFixedConstWidthLeftShiftExpr(Expr expr, int r) throws Cvc3Exception { - return new ExprMut( - jniNewFixedConstWidthLeftShiftExpr(embedded(), expr.embedded(), r), - embeddedManager()); - } - - public ExprMut newFixedRightShiftExpr(Expr expr, int r) throws Cvc3Exception { - return new ExprMut( - jniNewFixedRightShiftExpr(embedded(), expr.embedded(), r), - embeddedManager()); - } - - public Rational computeBVConst(Expr expr) { - Rational rat = new Rational( - jniComputeBVConst(embedded(),expr.embedded()), - embeddedManager()); - assert( rat.isInteger() ); - return rat; - } - - public ExprMut tupleExpr(List exprs) throws Cvc3Exception { - assert(JniUtils.listInstanceof(exprs, Expr.class)); - return new ExprMut( - jniTupleExpr(embedded(), JniUtils.unembedList(exprs)), - embeddedManager()); - } - - public ExprMut tupleUpdateExpr(Expr tuple, int index, Expr newValue) throws Cvc3Exception { - return new ExprMut( - jniTupleUpdateExpr(embedded(), tuple.embedded(), index, newValue.embedded()), - embeddedManager()); - } - - public ExprMut datatypeConsExpr(String constructor, List exprs) throws Cvc3Exception { - assert(JniUtils.listInstanceof(exprs, Expr.class)); - return new ExprMut( - jniDatatypeConsExpr(embedded(), constructor, JniUtils.unembedList(exprs)), - embeddedManager()); - } - - public ExprMut datatypeSelExpr(String selector, Expr arg) throws Cvc3Exception { - return new ExprMut( - jniDatatypeSelExpr(embedded(), selector, arg.embedded()), - embeddedManager()); - } - - public ExprMut datatypeTestExpr(String constructor, Expr arg) throws Cvc3Exception { - return new ExprMut( - jniDatatypeTestExpr(embedded(), constructor, arg.embedded()), - embeddedManager()); - } - - public ExprMut forallExpr(List vars, Expr body) throws Cvc3Exception { - assert(JniUtils.listInstanceof(vars, Expr.class)); - return new ExprMut( - jniForallExpr1(embedded(), JniUtils.unembedList(vars), body.embedded()), - embeddedManager()); - } - - public ExprMut forallExpr(List vars, Expr body, Expr trigger) throws Cvc3Exception { - assert(JniUtils.listInstanceof(vars, Expr.class)); - return new ExprMut( - jniForallExpr2(embedded(), JniUtils.unembedList(vars), body.embedded(), - trigger.embedded()), - embeddedManager()); - } - - public ExprMut forallExpr(List vars, Expr body, List triggers) throws Cvc3Exception { - assert(JniUtils.listInstanceof(vars, Expr.class)); - assert(JniUtils.listInstanceof(triggers, Expr.class)); - return new ExprMut( - jniForallExpr3(embedded(), JniUtils.unembedList(vars), body.embedded(), - JniUtils.unembedList(triggers)), - embeddedManager()); - } - - public ExprMut forallExprMultiTriggers(List vars, Expr body, List multiTriggers) - throws Cvc3Exception { - assert (JniUtils.listInstanceof(vars, Expr.class)); - assert (JniUtils.listListInstanceof(multiTriggers, Expr.class)); - return new ExprMut(jniForallExpr4(embedded(), JniUtils.unembedList(vars), - body.embedded(), JniUtils.unembedListList(multiTriggers)), - embeddedManager()); - } - - public void setTrigger(Expr closure, Expr trigger) throws Cvc3Exception { - jniSetTrigger(embedded(), closure.embedded(), trigger.embedded()); - } - - public void setTriggers(Expr closure, List triggers) throws Cvc3Exception { - jniSetTriggers(embedded(), closure.embedded(), JniUtils.unembedList(triggers)); - } - - public void setMultiTrigger(Expr closure, List multiTrigger) throws Cvc3Exception { - jniSetMultiTrigger(embedded(), closure.embedded(), JniUtils.unembedList(multiTrigger)); - } - - public void setMultiTriggers(Expr closure, List triggers) throws Cvc3Exception { - jniSetTriggers2(embedded(), closure.embedded(), JniUtils.unembedListList(triggers)); - } - - public ExprMut existsExpr(List vars, Expr body) throws Cvc3Exception { - assert(JniUtils.listInstanceof(vars, Expr.class)); - return new ExprMut( - jniExistsExpr(embedded(), JniUtils.unembedList(vars), body.embedded()), - embeddedManager()); - } - - public OpMut lambdaExpr(List vars, Expr body) throws Cvc3Exception { - assert(JniUtils.listInstanceof(vars, Expr.class)); - return new OpMut( - jniLambdaExpr(embedded(), JniUtils.unembedList(vars), body.embedded()), - embeddedManager()); - } - - public OpMut transClosure(Op p) throws Cvc3Exception { - return new OpMut( - jniTransClosure(embedded(), p.embedded()), - embeddedManager()); - } - - public ExprMut simulateExpr(Expr f, Expr s, List inputs, Expr n) throws Cvc3Exception { - assert(JniUtils.listInstanceof(inputs, Expr.class)); - return new ExprMut( - jniSimulateExpr(embedded(), f.embedded(), s.embedded(), JniUtils.unembedList(inputs), n.embedded()), - embeddedManager()); - } - - - public void setResourceLimit(int limit) throws Cvc3Exception { - jniSetResourceLimit(embedded(), limit); - } - - // Validity checking methods - - public void assertFormula(Expr expr) throws Cvc3Exception { - embeddedManager().cleanUp(); - jniAssertFormula(embedded(), expr.embedded()); - embeddedManager().cleanUp(); - } - - public void registerAtom(Expr expr) throws Cvc3Exception { - jniRegisterAtom(embedded(), expr.embedded()); - } - - public ExprMut getImpliedLiteral() throws Cvc3Exception { - return new ExprMut( - jniGetImpliedLiteral(embedded()), - embeddedManager()); - } - - public ExprMut simplify(Expr expr) throws Cvc3Exception { - return new ExprMut( - jniSimplify(embedded(), expr.embedded()), - embeddedManager()); - } - - public QueryResult query(Expr expr) throws Cvc3Exception { - embeddedManager().cleanUp(); - QueryResult result = QueryResult.get(jniQuery(embedded(), expr.embedded())); - - //:TEST: - embeddedManager().cleanUp(); - return result; - } - - public SatResult checkUnsat(Expr expr) throws Cvc3Exception { - embeddedManager().cleanUp(); - SatResult result = SatResult.get(jniCheckUnsat(embedded(), expr.embedded())); - - //:TEST: - embeddedManager().cleanUp(); - return result; - } - - public QueryResult checkContinue() throws Cvc3Exception { - embeddedManager().cleanUp(); - QueryResult result = QueryResult.get(jniCheckContinue(embedded())); - - //:TEST: - embeddedManager().cleanUp(); - return result; - } - - public QueryResult restart(Expr expr) throws Cvc3Exception { - embeddedManager().cleanUp(); - QueryResult result = QueryResult.get(jniRestart(embedded(), expr.embedded())); - - //:TEST: - embeddedManager().cleanUp(); - return result; - } - - public void returnFromCheck() throws Cvc3Exception { - jniReturnFromCheck(embedded()); - - //:TEST: - embeddedManager().cleanUp(); - } - - public List getUserAssumptions() throws Cvc3Exception { - Object[] assumptions = jniGetUserAssumptions(embedded()); - return JniUtils.embedList(assumptions, ExprMut.class, embeddedManager()); - } - - public List getInternalAssumptions() throws Cvc3Exception { - Object[] assumptions = jniGetInternalAssumptions(embedded()); - return JniUtils.embedList(assumptions, ExprMut.class, embeddedManager()); - } - - public List getAssumptions() throws Cvc3Exception { - Object[] assumptions = jniGetAssumptions(embedded()); - return JniUtils.embedList(assumptions, ExprMut.class, embeddedManager()); - } - - public List getAssumptionsUsed() throws Cvc3Exception { - Object[] assumptions = jniGetAssumptionsUsed(embedded()); - return JniUtils.embedList(assumptions, ExprMut.class, embeddedManager()); - } - - public List getCounterExample() throws Cvc3Exception { - return getCounterExample(true); - } - - public List getCounterExample(boolean inOrder) throws Cvc3Exception { - Object[] assumptions = jniGetCounterExample(embedded(), inOrder); - return JniUtils.embedList(assumptions, ExprMut.class, embeddedManager()); - } - - public HashMap getConcreteModel() throws Cvc3Exception { - Object[] model = jniGetConcreteModel(embedded()); - return JniUtils.embedHashMap(model, Expr.class, Expr.class, embeddedManager()); - } - - public FormulaValue value(Expr expr) throws Cvc3Exception { - return FormulaValue.get(jniValue(embedded(), expr.embedded())); - } - - public Expr getValue(Expr expr) throws Cvc3Exception { - return new ExprMut( - jniGetValue(embedded(), expr.embedded()), - embeddedManager()); - } - - public boolean inconsistent() throws Cvc3Exception { - return jniInconsistent1(embedded()); - } - - // makes only sense if inconsistent is true - public List inconsistentReasons() throws Cvc3Exception { - Object[] assumptions = jniInconsistent2(embedded()); - return JniUtils.embedList(assumptions, ExprMut.class, embeddedManager()); - } - - public boolean incomplete() throws Cvc3Exception { - return jniIncomplete1(embedded()); - } - - // makes only sense if incomplete is true - public List incompleteReasons() throws Cvc3Exception { - Object[] assumptions = jniIncomplete2(embedded()); - return JniUtils.embedList(assumptions, String.class, embeddedManager()); - } - - public ProofMut getProof() throws Cvc3Exception { - return new ProofMut( - jniGetProof(embedded()), - embeddedManager()); - } - - public ExprMut getTCC() throws Cvc3Exception { - return new ExprMut( - jniGetTCC(embedded()), - embeddedManager()); - } - - public List getAssumptionsTCC() throws Cvc3Exception { - Object[] assumptions = jniGetAssumptionsTCC(embedded()); - return JniUtils.embedList(assumptions, ExprMut.class, embeddedManager()); - } - - public ProofMut getProofTCC() throws Cvc3Exception { - return new ProofMut( - jniGetProofTCC(embedded()), - embeddedManager()); - } - - public ExprMut getClosure() throws Cvc3Exception { - return new ExprMut( - jniGetClosure(embedded()), - embeddedManager()); - } - - public ProofMut getProofClosure() throws Cvc3Exception { - return new ProofMut( - jniGetProofClosure(embedded()), - embeddedManager()); - } - - - - - // Context Methods - - public int stackLevel() throws Cvc3Exception { - return jniStackLevel(embedded()); - } - - public void push() throws Cvc3Exception { - jniPush(embedded()); - } - - public void pop() throws Cvc3Exception { - jniPop(embedded()); - //:TEST: - embeddedManager().cleanUp(); - } - - public void popTo(int stackLevel) throws Cvc3Exception { - jniPopTo(embedded(), stackLevel); - //:TEST: - embeddedManager().cleanUp(); - } - - public int scopeLevel() throws Cvc3Exception { - return jniScopeLevel(embedded()); - } - - public void pushScope() throws Cvc3Exception { - jniPushScope(embedded()); - } - - public void popScope() throws Cvc3Exception { - jniPopScope(embedded()); - } - - public void popToScope(int scopeLevel) throws Cvc3Exception { - jniPopToScope(embedded(), scopeLevel); - } - - public ContextMut getCurrentContext() throws Cvc3Exception { - return new ContextMut( - jniGetCurrentContext(embedded()), - embeddedManager()); - } - - - - - // Reading Files - - public void loadFile(String fileName) throws Cvc3Exception { - loadFile(fileName, InputLanguage.PRESENTATION); - } - - public void loadFile(String fileName, InputLanguage lang) throws Cvc3Exception { - jniLoadFile1(embedded(), fileName, lang.toString()); - } - - // Reporting Statistics - - public void printStatistics() throws Cvc3Exception { - jniPrintStatistics(embedded()); - } - - public StatisticsMut getStatistics() throws Cvc3Exception { - return new StatisticsMut( - jniGetStatistics(embedded()), - embeddedManager()); - } - - public void setTimeLimit(int limit) throws Cvc3Exception { - jniSetTimeLimit(embedded(), limit); - } -} diff --git a/src/bindings/compat/java/src/cvc3/ValidityChecker_impl.cpp b/src/bindings/compat/java/src/cvc3/ValidityChecker_impl.cpp deleted file mode 100644 index 6c6a9f8cb..000000000 --- a/src/bindings/compat/java/src/cvc3/ValidityChecker_impl.cpp +++ /dev/null @@ -1,857 +0,0 @@ -INCLUDE: <sstream> -//INCLUDE: <theory_arith.h> -//INCLUDE: <theory_array.h> - -DEFINITION: Java_cvc3_ValidityChecker_jniCreate1 -jobject -return embed_own<ValidityChecker>(env, ValidityChecker::create()); - -DEFINITION: Java_cvc3_ValidityChecker_jniCreate2 -jobject c CLFlags flags -return embed_own<ValidityChecker>(env, ValidityChecker::create(*flags)); - - - -DEFINITION: Java_cvc3_ValidityChecker_jniCreateFlags -jobject -return embed_copy(env, ValidityChecker::createFlags()); - -DEFINITION: Java_cvc3_ValidityChecker_jniGetFlags -jobject c ValidityChecker vc -return embed_mut_ref(env, &vc->getFlags()); - - - -DEFINITION: Java_cvc3_ValidityChecker_jniBoolType -jobject m ValidityChecker vc -return embed_copy(env, vc->boolType()); - -DEFINITION: Java_cvc3_ValidityChecker_jniRealType -jobject m ValidityChecker vc -return embed_copy(env, vc->realType()); - -DEFINITION: Java_cvc3_ValidityChecker_jniIntType -jobject m ValidityChecker vc -return embed_copy(env, vc->intType()); - -DEFINITION: Java_cvc3_ValidityChecker_jniSubrangeType -jobject m ValidityChecker vc c Expr l c Expr r -return embed_copy(env, vc->subrangeType(*l, *r)); - -DEFINITION: Java_cvc3_ValidityChecker_jniSubtypeType -jobject m ValidityChecker vc c Expr pred c Expr witness -return embed_copy(env, vc->subtypeType(*pred, *witness)); - -DEFINITION: Java_cvc3_ValidityChecker_jniTupleType1 -jobject m ValidityChecker vc c Type type0 c Type type1 -return embed_copy(env, vc->tupleType(*type0, *type1)); - -DEFINITION: Java_cvc3_ValidityChecker_jniTupleType2 -jobject m ValidityChecker vc c Type type0 c Type type1 c Type type2 -return embed_copy(env, vc->tupleType(*type0, *type1, *type2)); - -DEFINITION: Java_cvc3_ValidityChecker_jniTupleType3 -jobject m ValidityChecker vc cv Type types -return embed_copy(env, vc->tupleType(types)); - -DEFINITION: Java_cvc3_ValidityChecker_jniRecordType1 -jobject m ValidityChecker vc n string field c Type type -return embed_copy(env, vc->recordType(field, *type)); - -DEFINITION: Java_cvc3_ValidityChecker_jniRecordType2 -jobject m ValidityChecker vc n string field0 c Type type0 n string field1 c Type type1 -return embed_copy(env, vc->recordType(field0, *type0, field1, *type1)); - -DEFINITION: Java_cvc3_ValidityChecker_jniRecordType3 -jobject m ValidityChecker vc n string field0 c Type type0 n string field1 c Type type1 n string field2 c Type type2 -return embed_copy(env, vc->recordType(field0, *type0, field1, *type1, field2, *type2)); - -DEFINITION: Java_cvc3_ValidityChecker_jniRecordType4 -jobject m ValidityChecker vc nv string fields cv Type types -return embed_copy(env, vc->recordType(fields, types)); - -DEFINITION: Java_cvc3_ValidityChecker_jniDataType1 -jobject m ValidityChecker vc n string name n string constructor nv string selectors cv Expr types -return embed_copy(env, vc->dataType(name, constructor, selectors, types)); - -DEFINITION: Java_cvc3_ValidityChecker_jniDataType2 -jobject m ValidityChecker vc n string name nv string constructors nvv string selectors cvv Expr types -return embed_copy(env, vc->dataType(name, constructors, selectors, types)); - -DEFINITION: Java_cvc3_ValidityChecker_jniDataType3 -jobjectArray m ValidityChecker vc nv string names nvv string constructors nvvv string selectors cvvv Expr types -vector<Type> result; -vc->dataType(names, constructors, selectors, types, result); -return toJavaVCopy(env, result); - -DEFINITION: Java_cvc3_ValidityChecker_jniAnyType -jobject m ValidityChecker vc -assert(false);// Unimplemented -return NULL; - -DEFINITION: Java_cvc3_ValidityChecker_jniArrayLiteral -jobject m ValidityChecker vc c Expr indexVar c Expr bodyExpr -assert(false);// Unimplemented -return NULL; - -DEFINITION: Java_cvc3_ValidityChecker_jniArrayType -jobject m ValidityChecker vc c Type typeIndex c Type typeData -return embed_copy(env, vc->arrayType(*typeIndex, *typeData)); - -DEFINITION: Java_cvc3_ValidityChecker_jniBitvecType -jobject m ValidityChecker vc n int n -return embed_copy(env, vc->bitvecType(n)); - -DEFINITION: Java_cvc3_ValidityChecker_jniFunType1 -jobject m ValidityChecker vc c Type typeDom c Type typeRange -return embed_copy(env, vc->funType(*typeDom, *typeRange)); - -DEFINITION: Java_cvc3_ValidityChecker_jniFunType2 -jobject m ValidityChecker vc cv Type typeDom c Type typeRange -return embed_copy(env, vc->funType(typeDom, *typeRange)); - -DEFINITION: Java_cvc3_ValidityChecker_jniCreateType1 -jobject m ValidityChecker vc n string typeName -return embed_copy(env, vc->createType(typeName)); - -DEFINITION: Java_cvc3_ValidityChecker_jniCreateType2 -jobject m ValidityChecker vc n string typeName c Type typeDef -return embed_copy(env, vc->createType(typeName, *typeDef)); - -DEFINITION: Java_cvc3_ValidityChecker_jniLookupType -jobject m ValidityChecker vc n string typeName -return embed_copy(env, vc->lookupType(typeName)); - - - -DEFINITION: Java_cvc3_ValidityChecker_jniGetExprManager -jobject m ValidityChecker vc -return embed_mut_ref(env, vc->getEM()); - -DEFINITION: Java_cvc3_ValidityChecker_jniNullExpr -jobject m ValidityChecker vc -return embed_copy(env, Expr()); - -DEFINITION: Java_cvc3_ValidityChecker_jniVarExpr1 -jobject m ValidityChecker vc n string name c Type type -return embed_copy(env, vc->varExpr(name, *type)); - -DEFINITION: Java_cvc3_ValidityChecker_jniVarExpr2 -jobject m ValidityChecker vc n string name c Type type c Expr def -return embed_copy(env, vc->varExpr(name, *type, *def)); - -DEFINITION: Java_cvc3_ValidityChecker_jniBoundVarExpr -jobject m ValidityChecker vc n string name n string uid c Type type -return embed_copy(env, vc->boundVarExpr(name, uid, *type)); - -DEFINITION: Java_cvc3_ValidityChecker_jniLookupVar -jobject m ValidityChecker vc n string name -Type* type = new Type; -jobject result = embed_copy(env, vc->lookupVar(name, type)); -delete type; -return result; - -DEFINITION: Java_cvc3_ValidityChecker_jniLookupOp -jobject m ValidityChecker vc n string name -Type* type = new Type; -jobject result = embed_copy(env, vc->lookupOp(name, type)); -delete type; -return result; - -DEFINITION: Java_cvc3_ValidityChecker_jniGetType -jobject m ValidityChecker vc c Expr expr -return embed_copy(env, vc->getType(*expr)); - -DEFINITION: Java_cvc3_ValidityChecker_jniGetBaseType1 -jobject m ValidityChecker vc c Expr expr -return embed_copy(env, vc->getBaseType(*expr)); - -DEFINITION: Java_cvc3_ValidityChecker_jniGetBaseType2 -jobject m ValidityChecker vc c Type type -return embed_copy(env, vc->getBaseType(*type)); - -DEFINITION: Java_cvc3_ValidityChecker_jniGetTypePred -jobject m ValidityChecker vc c Type type c Expr expr -return embed_copy(env, vc->getTypePred(*type, *expr)); - -DEFINITION: Java_cvc3_ValidityChecker_jniStringExpr -jobject m ValidityChecker vc n string str -return embed_copy(env, vc->stringExpr(str)); - -DEFINITION: Java_cvc3_ValidityChecker_jniIdExpr -jobject m ValidityChecker vc n string name -return embed_copy(env, vc->idExpr(name)); - -DEFINITION: Java_cvc3_ValidityChecker_jniListExpr1 -jobject m ValidityChecker vc cv Expr kids -return embed_copy(env, vc->listExpr(kids)); - -DEFINITION: Java_cvc3_ValidityChecker_jniListExpr2 -jobject m ValidityChecker vc c Expr expr1 -return embed_copy(env, vc->listExpr(*expr1)); - -DEFINITION: Java_cvc3_ValidityChecker_jniListExpr3 -jobject m ValidityChecker vc c Expr expr1 c Expr expr2 -return embed_copy(env, vc->listExpr(*expr1, *expr2)); - -DEFINITION: Java_cvc3_ValidityChecker_jniListExpr4 -jobject m ValidityChecker vc c Expr expr1 c Expr expr2 c Expr expr3 -return embed_copy(env, vc->listExpr(*expr1, *expr2, *expr3)); - -DEFINITION: Java_cvc3_ValidityChecker_jniListExpr5 -jobject m ValidityChecker vc n string op cv Expr kids -return embed_copy(env, vc->listExpr(op, kids)); - -DEFINITION: Java_cvc3_ValidityChecker_jniListExpr6 -jobject m ValidityChecker vc n string op c Expr expr1 -return embed_copy(env, vc->listExpr(op, *expr1)); - -DEFINITION: Java_cvc3_ValidityChecker_jniListExpr7 -jobject m ValidityChecker vc n string op c Expr expr1 c Expr expr2 -return embed_copy(env, vc->listExpr(op, *expr1, *expr2)); - -DEFINITION: Java_cvc3_ValidityChecker_jniListExpr8 -jobject m ValidityChecker vc n string op c Expr expr1 c Expr expr2 c Expr expr3 -return embed_copy(env, vc->listExpr(op, *expr1, *expr2, *expr3)); - - -DEFINITION: Java_cvc3_ValidityChecker_jniPrintExpr -void m ValidityChecker vc c Expr expr -vc->printExpr(*expr); - -DEFINITION: Java_cvc3_ValidityChecker_jniParseExpr -jobject m ValidityChecker vc c Expr expr -return embed_copy(env, vc->parseExpr(*expr)); - -DEFINITION: Java_cvc3_ValidityChecker_jniParseType -jobject m ValidityChecker vc c Expr expr -return embed_copy(env, vc->parseType(*expr)); - -DEFINITION: Java_cvc3_ValidityChecker_jniImportExpr -jobject m ValidityChecker vc c Expr expr -return embed_copy(env, vc->importExpr(*expr)); - -DEFINITION: Java_cvc3_ValidityChecker_jniImportType -jobject m ValidityChecker vc c Type type -return embed_copy(env, vc->importType(*type)); - -DEFINITION: Java_cvc3_ValidityChecker_jniCmdsFromString -void m ValidityChecker vc n string s -vc->cmdsFromString(s); - -DEFINITION: Java_cvc3_ValidityChecker_jniExprFromString -jobject m ValidityChecker vc n string s -return embed_copy<Expr>(env, vc->exprFromString(s)); - -DEFINITION: Java_cvc3_ValidityChecker_jniTrueExpr -jobject m ValidityChecker vc -return embed_copy<Expr>(env, vc->trueExpr()); - -DEFINITION: Java_cvc3_ValidityChecker_jniFalseExpr -jobject m ValidityChecker vc -return embed_copy<Expr>(env, vc->falseExpr()); - -DEFINITION: Java_cvc3_ValidityChecker_jniNotExpr -jobject m ValidityChecker vc c Expr expr -return embed_copy(env, vc->notExpr(*expr)); - -DEFINITION: Java_cvc3_ValidityChecker_jniAndExpr1 -jobject m ValidityChecker vc c Expr expr1 c Expr expr2 -return embed_copy(env, vc->andExpr(*expr1, *expr2)); - -DEFINITION: Java_cvc3_ValidityChecker_jniAndExpr2 -jobject m ValidityChecker vc cv Expr children -return embed_copy(env, vc->andExpr(children)); - -DEFINITION: Java_cvc3_ValidityChecker_jniOrExpr1 -jobject m ValidityChecker vc c Expr expr1 c Expr expr2 -return embed_copy(env, vc->orExpr(*expr1, *expr2)); - -DEFINITION: Java_cvc3_ValidityChecker_jniOrExpr2 -jobject m ValidityChecker vc cv Expr children -return embed_copy(env, vc->orExpr(children)); - -DEFINITION: Java_cvc3_ValidityChecker_jniImpliesExpr -jobject m ValidityChecker vc c Expr expr1 c Expr expr2 -return embed_copy(env, vc->impliesExpr(*expr1, *expr2)); - -DEFINITION: Java_cvc3_ValidityChecker_jniIffExpr -jobject m ValidityChecker vc c Expr expr1 c Expr expr2 -return embed_copy(env, vc->iffExpr(*expr1, *expr2)); - -DEFINITION: Java_cvc3_ValidityChecker_jniEqExpr -jobject m ValidityChecker vc c Expr expr1 c Expr expr2 -return embed_copy(env, vc->eqExpr(*expr1, *expr2)); - -DEFINITION: Java_cvc3_ValidityChecker_jniDistinctExpr -jobject m ValidityChecker vc cv Expr children -return embed_copy(env, vc->distinctExpr(children)); - -DEFINITION: Java_cvc3_ValidityChecker_jniIteExpr -jobject m ValidityChecker vc c Expr expr1 c Expr expr2 c Expr expr3 -return embed_copy(env, vc->iteExpr(*expr1, *expr2, *expr3)); - -DEFINITION: Java_cvc3_ValidityChecker_jniCreateOp1 -jobject m ValidityChecker vc n string name c Type type -return embed_copy(env, vc->createOp(name, *type)); - -DEFINITION: Java_cvc3_ValidityChecker_jniCreateOp2 -jobject m ValidityChecker vc n string name c Type type c Expr expr -return embed_copy(env, vc->createOp(name, *type, *expr)); - -DEFINITION: Java_cvc3_ValidityChecker_jniEqOp -jobject m ValidityChecker vc -return embed_copy<Op>(env, Op(vc->getEM(), EQ)); - -DEFINITION: Java_cvc3_ValidityChecker_jniLtOp -jobject m ValidityChecker vc -return embed_copy<Op>(env, Op(vc->getEM(), LT)); - -DEFINITION: Java_cvc3_ValidityChecker_jniLeOp -jobject m ValidityChecker vc -return embed_copy<Op>(env, Op(vc->getEM(), LE)); - -DEFINITION: Java_cvc3_ValidityChecker_jniGtOp -jobject m ValidityChecker vc -return embed_copy<Op>(env, Op(vc->getEM(), GT)); - -DEFINITION: Java_cvc3_ValidityChecker_jniGeOp -jobject m ValidityChecker vc -return embed_copy<Op>(env, Op(vc->getEM(), GE)); - -DEFINITION: Java_cvc3_ValidityChecker_jniPlusOp -jobject m ValidityChecker vc -return embed_copy<Op>(env, Op(vc->getEM(), PLUS)); - -DEFINITION: Java_cvc3_ValidityChecker_jniMinusOp -jobject m ValidityChecker vc -return embed_copy<Op>(env, Op(vc->getEM(), MINUS)); - -DEFINITION: Java_cvc3_ValidityChecker_jniMultOp -jobject m ValidityChecker vc -return embed_copy<Op>(env, Op(vc->getEM(), MULT)); - -DEFINITION: Java_cvc3_ValidityChecker_jniDivideOp -jobject m ValidityChecker vc -return embed_copy<Op>(env, Op(vc->getEM(), DIVIDE)); - - -DEFINITION: Java_cvc3_ValidityChecker_jniFunExpr1 -jobject m ValidityChecker vc c Op op c Expr expr1 -return embed_copy(env, vc->funExpr(*op, *expr1)); - -DEFINITION: Java_cvc3_ValidityChecker_jniFunExpr2 -jobject m ValidityChecker vc c Op op c Expr expr1 c Expr expr2 -return embed_copy(env, vc->funExpr(*op, *expr1, *expr2)); - -DEFINITION: Java_cvc3_ValidityChecker_jniFunExpr3 -jobject m ValidityChecker vc c Op op c Expr expr1 c Expr expr2 c Expr expr3 -return embed_copy(env, vc->funExpr(*op, *expr1, *expr2, *expr3)); - -DEFINITION: Java_cvc3_ValidityChecker_jniFunExpr4 -jobject m ValidityChecker vc c Op op cv Expr children -return embed_copy(env, vc->funExpr(*op, children)); - -DEFINITION: Java_cvc3_ValidityChecker_jniRatExpr1 -jobject m ValidityChecker vc n int n n int d -return embed_copy(env, vc->ratExpr(n, d)); - -DEFINITION: Java_cvc3_ValidityChecker_jniRatExpr2 -jobject m ValidityChecker vc n string n n string d n int base -return embed_copy(env, vc->ratExpr(n, d, base)); - -DEFINITION: Java_cvc3_ValidityChecker_jniRatExpr3 -jobject m ValidityChecker vc n string n n int base -return embed_copy(env, vc->ratExpr(n, base)); - -DEFINITION: Java_cvc3_ValidityChecker_jniUminusExpr -jobject m ValidityChecker vc c Expr expr -return embed_copy(env, vc->uminusExpr(*expr)); - -DEFINITION: Java_cvc3_ValidityChecker_jniPlusExpr1 -jobject m ValidityChecker vc c Expr expr1 c Expr expr2 -return embed_copy(env, vc->plusExpr(*expr1, *expr2)); - -DEFINITION: Java_cvc3_ValidityChecker_jniPlusExpr2 -jobject m ValidityChecker vc cv Expr kids -return embed_copy(env, vc->plusExpr(kids)); - -DEFINITION: Java_cvc3_ValidityChecker_jniMinusExpr -jobject m ValidityChecker vc c Expr expr1 c Expr expr2 -return embed_copy(env, vc->minusExpr(*expr1, *expr2)); - -DEFINITION: Java_cvc3_ValidityChecker_jniMultExpr -jobject m ValidityChecker vc c Expr expr1 c Expr expr2 -return embed_copy(env, vc->multExpr(*expr1, *expr2)); - -DEFINITION: Java_cvc3_ValidityChecker_jniPowExpr -jobject m ValidityChecker vc c Expr expr1 c Expr expr2 -return embed_copy(env, vc->powExpr(*expr1, *expr2)); - -DEFINITION: Java_cvc3_ValidityChecker_jniDivideExpr -jobject m ValidityChecker vc c Expr expr1 c Expr expr2 -return embed_copy(env, vc->divideExpr(*expr1, *expr2)); - -DEFINITION: Java_cvc3_ValidityChecker_jniLtExpr -jobject m ValidityChecker vc c Expr expr1 c Expr expr2 -return embed_copy(env, vc->ltExpr(*expr1, *expr2)); - -DEFINITION: Java_cvc3_ValidityChecker_jniLeExpr -jobject m ValidityChecker vc c Expr expr1 c Expr expr2 -return embed_copy(env, vc->leExpr(*expr1, *expr2)); - -DEFINITION: Java_cvc3_ValidityChecker_jniGtExpr -jobject m ValidityChecker vc c Expr expr1 c Expr expr2 -return embed_copy(env, vc->gtExpr(*expr1, *expr2)); - -DEFINITION: Java_cvc3_ValidityChecker_jniGeExpr -jobject m ValidityChecker vc c Expr expr1 c Expr expr2 -return embed_copy(env, vc->geExpr(*expr1, *expr2)); - -DEFINITION: Java_cvc3_ValidityChecker_jniRecordExpr1 -jobject m ValidityChecker vc n string field c Expr expr -return embed_copy(env, vc->recordExpr(field, *expr)); - -DEFINITION: Java_cvc3_ValidityChecker_jniRecordExpr2 -jobject m ValidityChecker vc n string field1 c Expr expr1 n string field2 c Expr expr2 -return embed_copy(env, vc->recordExpr(field1, *expr1, field2, *expr2)); - -DEFINITION: Java_cvc3_ValidityChecker_jniRecordExpr3 -jobject m ValidityChecker vc n string field1 c Expr expr1 n string field2 c Expr expr2 n string field3 c Expr expr3 -return embed_copy(env, vc->recordExpr(field1, *expr1, field2, *expr2, field3, *expr3)); - -DEFINITION: Java_cvc3_ValidityChecker_jniRecordExpr4 -jobject m ValidityChecker vc nv string fields cv Expr exprs -return embed_copy(env, vc->recordExpr(fields, exprs)); - -DEFINITION: Java_cvc3_ValidityChecker_jniRecSelectExpr -jobject m ValidityChecker vc c Expr record n string field -return embed_copy(env, vc->recSelectExpr(*record, field)); - -DEFINITION: Java_cvc3_ValidityChecker_jniRecUpdateExpr -jobject m ValidityChecker vc c Expr record n string field c Expr update -return embed_copy(env, vc->recUpdateExpr(*record, field, *update)); - -DEFINITION: Java_cvc3_ValidityChecker_jniReadExpr -jobject m ValidityChecker vc c Expr array c Expr index -return embed_copy(env, vc->readExpr(*array, *index)); - -DEFINITION: Java_cvc3_ValidityChecker_jniWriteExpr -jobject m ValidityChecker vc c Expr array c Expr index c Expr value -return embed_copy(env, vc->writeExpr(*array, *index, *value)); - -DEFINITION: Java_cvc3_ValidityChecker_jniNewBVConstExpr1 -jobject m ValidityChecker vc n string s n int base -return embed_copy(env, vc->newBVConstExpr(s, jbase)); - -DEFINITION: Java_cvc3_ValidityChecker_jniNewBVConstExpr2 -jobject m ValidityChecker vc nv bool bits -return embed_copy(env, vc->newBVConstExpr(bits)); - -DEFINITION: Java_cvc3_ValidityChecker_jniNewBVConstExpr3 -jobject m ValidityChecker vc c Rational rational n int len -return embed_copy(env, vc->newBVConstExpr(*rational, len)); - -DEFINITION: Java_cvc3_ValidityChecker_jniNewConcatExpr1 -jobject m ValidityChecker vc c Expr expr1 c Expr expr2 -return embed_copy(env, vc->newConcatExpr(*expr1, *expr2)); - -DEFINITION: Java_cvc3_ValidityChecker_jniNewConcatExpr2 -jobject m ValidityChecker vc cv Expr kids -return embed_copy(env, vc->newConcatExpr(kids)); - -DEFINITION: Java_cvc3_ValidityChecker_jniNewBVExtractExpr -jobject m ValidityChecker vc c Expr expr n int hi n int low -return embed_copy(env, vc->newBVExtractExpr(*expr, hi, low)); - -DEFINITION: Java_cvc3_ValidityChecker_jniNewBVNegExpr -jobject m ValidityChecker vc c Expr expr -return embed_copy(env, vc->newBVNegExpr(*expr)); - -DEFINITION: Java_cvc3_ValidityChecker_jniNewBVAndExpr1 -jobject m ValidityChecker vc c Expr expr1 c Expr expr2 -return embed_copy(env, vc->newBVAndExpr(*expr1, *expr2)); - -DEFINITION: Java_cvc3_ValidityChecker_jniNewBVAndExpr2 -jobject m ValidityChecker vc cv Expr kids -return embed_copy(env, vc->newBVAndExpr(kids)); - -DEFINITION: Java_cvc3_ValidityChecker_jniNewBVOrExpr1 -jobject m ValidityChecker vc c Expr expr1 c Expr expr2 -return embed_copy(env, vc->newBVOrExpr(*expr1, *expr2)); - -DEFINITION: Java_cvc3_ValidityChecker_jniNewBVOrExpr2 -jobject m ValidityChecker vc cv Expr kids -return embed_copy(env, vc->newBVOrExpr(kids)); - -DEFINITION: Java_cvc3_ValidityChecker_jniNewBVXorExpr1 -jobject m ValidityChecker vc c Expr expr1 c Expr expr2 -return embed_copy(env, vc->newBVXorExpr(*expr1, *expr2)); - -DEFINITION: Java_cvc3_ValidityChecker_jniNewBVXorExpr2 -jobject m ValidityChecker vc cv Expr kids -return embed_copy(env, vc->newBVXorExpr(kids)); - -DEFINITION: Java_cvc3_ValidityChecker_jniNewBVXnorExpr1 -jobject m ValidityChecker vc c Expr expr1 c Expr expr2 -return embed_copy(env, vc->newBVXnorExpr(*expr1, *expr2)); - -DEFINITION: Java_cvc3_ValidityChecker_jniNewBVXnorExpr2 -jobject m ValidityChecker vc cv Expr kids -return embed_copy(env, vc->newBVXnorExpr(kids)); - -DEFINITION: Java_cvc3_ValidityChecker_jniNewBVNandExpr -jobject m ValidityChecker vc c Expr expr1 c Expr expr2 -return embed_copy(env, vc->newBVNandExpr(*expr1, *expr2)); - -DEFINITION: Java_cvc3_ValidityChecker_jniNewBVNorExpr -jobject m ValidityChecker vc c Expr expr1 c Expr expr2 -return embed_copy(env, vc->newBVNorExpr(*expr1, *expr2)); - -DEFINITION: Java_cvc3_ValidityChecker_jniNewBVLTExpr -jobject m ValidityChecker vc c Expr expr1 c Expr expr2 -return embed_copy(env, vc->newBVLTExpr(*expr1, *expr2)); - -DEFINITION: Java_cvc3_ValidityChecker_jniNewBVLEExpr -jobject m ValidityChecker vc c Expr expr1 c Expr expr2 -return embed_copy(env, vc->newBVLEExpr(*expr1, *expr2)); - -DEFINITION: Java_cvc3_ValidityChecker_jniNewBVSLTExpr -jobject m ValidityChecker vc c Expr expr1 c Expr expr2 -return embed_copy(env, vc->newBVSLTExpr(*expr1, *expr2)); - -DEFINITION: Java_cvc3_ValidityChecker_jniNewBVSLEExpr -jobject m ValidityChecker vc c Expr expr1 c Expr expr2 -return embed_copy(env, vc->newBVSLEExpr(*expr1, *expr2)); - -DEFINITION: Java_cvc3_ValidityChecker_jniNewSXExpr -jobject m ValidityChecker vc c Expr expr n int len -return embed_copy(env, vc->newSXExpr(*expr, len)); - -DEFINITION: Java_cvc3_ValidityChecker_jniNewBVUminusExpr -jobject m ValidityChecker vc c Expr expr -return embed_copy(env, vc->newBVUminusExpr(*expr)); - -DEFINITION: Java_cvc3_ValidityChecker_jniNewBVSubExpr -jobject m ValidityChecker vc c Expr expr1 c Expr expr2 -return embed_copy(env, vc->newBVSubExpr(*expr1, *expr2)); - -DEFINITION: Java_cvc3_ValidityChecker_jniNewBVPlusExpr -jobject m ValidityChecker vc n int numbits cv Expr exprs -return embed_copy(env, vc->newBVPlusExpr(numbits, exprs)); - -DEFINITION: Java_cvc3_ValidityChecker_jniNewBVMultExpr -jobject m ValidityChecker vc n int numbits c Expr expr1 c Expr expr2 -return embed_copy(env, vc->newBVMultExpr(numbits, *expr1, *expr2)); - -DEFINITION: Java_cvc3_ValidityChecker_jniNewBVUDivExpr -jobject m ValidityChecker vc c Expr expr1 c Expr expr2 -return embed_copy(env, vc->newBVUDivExpr(*expr1, *expr2)); - -DEFINITION: Java_cvc3_ValidityChecker_jniNewBVURemExpr -jobject m ValidityChecker vc c Expr expr1 c Expr expr2 -return embed_copy(env, vc->newBVURemExpr(*expr1, *expr2)); - -DEFINITION: Java_cvc3_ValidityChecker_jniNewBVSDivExpr -jobject m ValidityChecker vc c Expr expr1 c Expr expr2 -return embed_copy(env, vc->newBVSDivExpr(*expr1, *expr2)); - -DEFINITION: Java_cvc3_ValidityChecker_jniNewBVSRemExpr -jobject m ValidityChecker vc c Expr expr1 c Expr expr2 -return embed_copy(env, vc->newBVSRemExpr(*expr1, *expr2)); - -DEFINITION: Java_cvc3_ValidityChecker_jniNewBVSModExpr -jobject m ValidityChecker vc c Expr expr1 c Expr expr2 -return embed_copy(env, vc->newBVSModExpr(*expr1, *expr2)); - -DEFINITION: Java_cvc3_ValidityChecker_jniNewBVSHL -jobject m ValidityChecker vc c Expr expr1 c Expr expr2 -return embed_copy(env, vc->newBVSHL(*expr1, *expr2)); - -DEFINITION: Java_cvc3_ValidityChecker_jniNewBVLSHR -jobject m ValidityChecker vc c Expr expr1 c Expr expr2 -return embed_copy(env, vc->newBVLSHR(*expr1, *expr2)); - -DEFINITION: Java_cvc3_ValidityChecker_jniNewBVASHR -jobject m ValidityChecker vc c Expr expr1 c Expr expr2 -return embed_copy(env, vc->newBVASHR(*expr1, *expr2)); - -DEFINITION: Java_cvc3_ValidityChecker_jniNewFixedLeftShiftExpr -jobject m ValidityChecker vc c Expr expr n int r -return embed_copy(env, vc->newFixedLeftShiftExpr(*expr, r)); - -DEFINITION: Java_cvc3_ValidityChecker_jniNewFixedConstWidthLeftShiftExpr -jobject m ValidityChecker vc c Expr expr n int r -return embed_copy(env, vc->newFixedConstWidthLeftShiftExpr(*expr, r)); - -DEFINITION: Java_cvc3_ValidityChecker_jniNewFixedRightShiftExpr -jobject m ValidityChecker vc c Expr expr n int r -return embed_copy(env, vc->newFixedRightShiftExpr(*expr, r)); - -DEFINITION: Java_cvc3_ValidityChecker_jniComputeBVConst -jobject m ValidityChecker vc c Expr expr -return embed_copy(env, vc->computeBVConst(*expr)); - -DEFINITION: Java_cvc3_ValidityChecker_jniTupleExpr -jobject m ValidityChecker vc cv Expr exprs -return embed_copy(env, vc->tupleExpr(exprs)); - -DEFINITION: Java_cvc3_ValidityChecker_jniTupleUpdateExpr -jobject m ValidityChecker vc c Expr tuple n int index c Expr value -return embed_copy(env, vc->tupleUpdateExpr(*tuple, index, *value)); - -DEFINITION: Java_cvc3_ValidityChecker_jniDatatypeConsExpr -jobject m ValidityChecker vc n string constructor cv Expr exprs -return embed_copy(env, vc->datatypeConsExpr(constructor, exprs)); - -DEFINITION: Java_cvc3_ValidityChecker_jniDatatypeSelExpr -jobject m ValidityChecker vc n string selector c Expr expr -return embed_copy(env, vc->datatypeSelExpr(selector, *expr)); - -DEFINITION: Java_cvc3_ValidityChecker_jniDatatypeTestExpr -jobject m ValidityChecker vc n string constructor c Expr expr -return embed_copy(env, vc->datatypeTestExpr(constructor, *expr)); - -DEFINITION: Java_cvc3_ValidityChecker_jniForallExpr1 -jobject m ValidityChecker vc cv Expr vars c Expr body -return embed_copy(env, vc->forallExpr(vars, *body)); - -DEFINITION: Java_cvc3_ValidityChecker_jniForallExpr2 -jobject m ValidityChecker vc cv Expr vars c Expr body c Expr trigger -return embed_copy(env, vc->forallExpr(vars, *body, *trigger)); - -DEFINITION: Java_cvc3_ValidityChecker_jniForallExpr3 -jobject m ValidityChecker vc cv Expr vars c Expr body cv Expr triggers -return embed_copy(env, vc->forallExpr(vars, *body, triggers)); - -DEFINITION: Java_cvc3_ValidityChecker_jniForallExpr4 -jobject m ValidityChecker vc cv Expr vars c Expr body cvv Expr triggers -return embed_copy(env, vc->forallExpr(vars, *body, triggers)); - -DEFINITION: Java_cvc3_ValidityChecker_jniSetTrigger -void m ValidityChecker vc c Expr closure c Expr trigger -vc->setTrigger(*closure, *trigger); - -DEFINITION: Java_cvc3_ValidityChecker_jniSetTriggers -void m ValidityChecker vc c Expr closure cv Expr triggers -vc->setTriggers(*closure, triggers); - -DEFINITION: Java_cvc3_ValidityChecker_jniSetTriggers2 -void m ValidityChecker vc c Expr closure cvv Expr triggers -vc->setTriggers(*closure, triggers); - -DEFINITION: Java_cvc3_ValidityChecker_jniSetMultiTrigger -void m ValidityChecker vc c Expr closure cv Expr multiTrigger -vc->setMultiTrigger(*closure, multiTrigger); - -DEFINITION: Java_cvc3_ValidityChecker_jniExistsExpr -jobject m ValidityChecker vc cv Expr vars c Expr body -return embed_copy(env, vc->existsExpr(vars, *body)); - -DEFINITION: Java_cvc3_ValidityChecker_jniLambdaExpr -jobject m ValidityChecker vc cv Expr vars c Expr body -return embed_copy(env, vc->lambdaExpr(vars, *body)); - -DEFINITION: Java_cvc3_ValidityChecker_jniTransClosure -jobject m ValidityChecker vc c Op p -return embed_copy(env, vc->transClosure(*p)); - -DEFINITION: Java_cvc3_ValidityChecker_jniSimulateExpr -jobject m ValidityChecker vc c Expr f c Expr s cv Expr inputs c Expr n -return embed_copy(env, vc->simulateExpr(*f, *s, inputs, *n)); - - -DEFINITION: Java_cvc3_ValidityChecker_jniSetResourceLimit -void m ValidityChecker vc n int limit -vc->setResourceLimit(limit); - -DEFINITION: Java_cvc3_ValidityChecker_jniAssertFormula -void m ValidityChecker vc c Expr expr -vc->assertFormula(*expr); - -DEFINITION: Java_cvc3_ValidityChecker_jniRegisterAtom -void m ValidityChecker vc c Expr expr -vc->registerAtom(*expr); - -DEFINITION: Java_cvc3_ValidityChecker_jniGetImpliedLiteral -jobject m ValidityChecker vc -return embed_copy(env, vc->getImpliedLiteral()); - -DEFINITION: Java_cvc3_ValidityChecker_jniSimplify -jobject m ValidityChecker vc c Expr expr -return embed_copy(env, vc->simplify(*expr)); - -DEFINITION: Java_cvc3_ValidityChecker_jniQuery -jstring m ValidityChecker vc c Expr expr -return toJava(env, vc->query(*expr)); - -DEFINITION: Java_cvc3_ValidityChecker_jniCheckUnsat -jstring m ValidityChecker vc c Expr expr -return toJava(env, vc->checkUnsat(*expr)); - -DEFINITION: Java_cvc3_ValidityChecker_jniCheckContinue -jstring m ValidityChecker vc -return toJava(env, vc->checkContinue()); - -DEFINITION: Java_cvc3_ValidityChecker_jniRestart -jstring m ValidityChecker vc c Expr expr -return toJava(env, vc->restart(*expr)); - -DEFINITION: Java_cvc3_ValidityChecker_jniReturnFromCheck -void m ValidityChecker vc -vc->returnFromCheck(); - -DEFINITION: Java_cvc3_ValidityChecker_jniGetUserAssumptions -jobjectArray m ValidityChecker vc -vector<Expr> result; -vc->getUserAssumptions(result); -return toJavaVCopy(env, result); - -DEFINITION: Java_cvc3_ValidityChecker_jniGetInternalAssumptions -jobjectArray m ValidityChecker vc -vector<Expr> result; -vc->getInternalAssumptions(result); -return toJavaVCopy(env, result); - -DEFINITION: Java_cvc3_ValidityChecker_jniGetAssumptions -jobjectArray m ValidityChecker vc -vector<Expr> result; -vc->getAssumptions(result); -return toJavaVCopy(env, result); - -DEFINITION: Java_cvc3_ValidityChecker_jniGetAssumptionsUsed -jobjectArray m ValidityChecker vc -vector<Expr> result; -vc->getAssumptionsUsed(result); -return toJavaVCopy(env, result); - -DEFINITION: Java_cvc3_ValidityChecker_jniGetCounterExample -jobjectArray m ValidityChecker vc n bool inOrder -vector<Expr> result; -vc->getCounterExample(result, inOrder); -return toJavaVCopy(env, result); - -DEFINITION: Java_cvc3_ValidityChecker_jniValue -jstring m ValidityChecker vc c Expr expr -return toJava(env, vc->value(*expr)); - -DEFINITION: Java_cvc3_ValidityChecker_jniGetValue -jobject m ValidityChecker vc c Expr expr -return embed_copy(env, vc->getValue(*expr)); - -DEFINITION: Java_cvc3_ValidityChecker_jniGetConcreteModel -jobjectArray m ValidityChecker vc -ExprMap<Expr> result; -vc->getConcreteModel(result); -return toJavaHCopy(env, result); - -DEFINITION: Java_cvc3_ValidityChecker_jniInconsistent1 -jboolean m ValidityChecker vc -return vc->inconsistent(); - -DEFINITION: Java_cvc3_ValidityChecker_jniInconsistent2 -jobjectArray m ValidityChecker vc -vector<Expr> result; -bool inconsistent = vc->inconsistent(result); -assert(inconsistent); -return toJavaVCopy(env, result); - -DEFINITION: Java_cvc3_ValidityChecker_jniIncomplete1 -jboolean m ValidityChecker vc -return vc->incomplete(); - -DEFINITION: Java_cvc3_ValidityChecker_jniIncomplete2 -jobjectArray m ValidityChecker vc -vector<std::string> result; -bool incomplete = vc->incomplete(result); -assert(incomplete); -return toJavaVCopy(env, result); - -DEFINITION: Java_cvc3_ValidityChecker_jniGetProof -jobject m ValidityChecker vc -return embed_copy(env, vc->getProof()); - -DEFINITION: Java_cvc3_ValidityChecker_jniGetTCC -jobject m ValidityChecker vc -return embed_copy(env, vc->getTCC()); - -DEFINITION: Java_cvc3_ValidityChecker_jniGetAssumptionsTCC -jobjectArray m ValidityChecker vc -vector<Expr> result; -vc->getAssumptionsTCC(result); -return toJavaVCopy(env, result); - -DEFINITION: Java_cvc3_ValidityChecker_jniGetProofTCC -jobject m ValidityChecker vc -return embed_copy(env, vc->getProofTCC()); - -DEFINITION: Java_cvc3_ValidityChecker_jniGetClosure -jobject m ValidityChecker vc -return embed_copy(env, vc->getClosure()); - -DEFINITION: Java_cvc3_ValidityChecker_jniGetProofClosure -jobject m ValidityChecker vc -return embed_copy(env, vc->getProofClosure()); - - - - - - -DEFINITION: Java_cvc3_ValidityChecker_jniStackLevel -jint m ValidityChecker vc -return vc->stackLevel(); - -DEFINITION: Java_cvc3_ValidityChecker_jniPush -void m ValidityChecker vc -vc->push(); - -DEFINITION: Java_cvc3_ValidityChecker_jniPop -void m ValidityChecker vc -vc->pop(); - -DEFINITION: Java_cvc3_ValidityChecker_jniPopTo -void m ValidityChecker vc n int stackLevel -vc->popto(stackLevel); - -DEFINITION: Java_cvc3_ValidityChecker_jniScopeLevel -jint m ValidityChecker vc -return vc->scopeLevel(); - -DEFINITION: Java_cvc3_ValidityChecker_jniPushScope -void m ValidityChecker vc -vc->pushScope(); - -DEFINITION: Java_cvc3_ValidityChecker_jniPopScope -void m ValidityChecker vc -vc->popScope(); - -DEFINITION: Java_cvc3_ValidityChecker_jniPopToScope -void m ValidityChecker vc n int stackLevel -vc->poptoScope(stackLevel); - -DEFINITION: Java_cvc3_ValidityChecker_jniGetCurrentContext -jobject m ValidityChecker vc -return embed_mut_ref(env, vc->getCurrentContext()); - - - - - -DEFINITION: Java_cvc3_ValidityChecker_jniLoadFile1 -void m ValidityChecker vc n string fileName n string lang -vc->loadFile(fileName, toCppInputLanguage(env, lang), false); - - -DEFINITION: Java_cvc3_ValidityChecker_jniGetStatistics -jobject m ValidityChecker vc -return embed_copy(env, vc->getStatistics()); - -DEFINITION: Java_cvc3_ValidityChecker_jniPrintStatistics -void m ValidityChecker vc -vc->printStatistics(); - - -DEFINITION: Java_cvc3_ValidityChecker_jniSetTimeLimit -void m ValidityChecker vc n int n -vc->setTimeLimit((unsigned int)n); |