summaryrefslogtreecommitdiff
path: root/src/expr
AgeCommit message (Collapse)Author
2017-11-22Converting defined functions and let expressions from Sygus grammars to ↵Haniel Barbosa
lambdas (#1403) This partially solves issue #1344. Definitions are expanded when the grammar normalizer is called. When this becomes default then the code that expands definitions elsewhere will be removed. The PR also contains minor changes to the PrintCallback and SygusGrammarNormalize module.
2017-11-22Sygus Lambda Grammars (#1390)Andrew Reynolds
2017-11-15Sygus print callbacks (#1348)Andrew Reynolds
* Initial infrastructure for sygus printing. * Minor * Minor improvements * Format * Minor * Empty constructor printer. * Format * Minor * Format * Address.
2017-11-15Initializing members of Datatype. Addresses CIDs 1362897, 1362912, 1362923 ↵Tim King
and 1362931. (#1373)
2017-11-10(Documentation-only) datatype.h (#1346)Andrew Reynolds
* Clean and document datatype.h. * More, make TODOs. * More documentation * More * Reference issue. * Format * Fixes and improvements. * Minor * Minor * Minor * Fix * Minor * Format
2017-10-26Op overload no fun variant (#1285)Andrew Reynolds
* Do not allow function variants with operator overloading. * Minor. * New clang format. * Minor improvements.
2017-10-25Use uintptr_t for pointer casts in Swig files (#1278)Andres Noetzli
CVC4's Swig interface files were casting pointers to longs in multiple instances. The problem with that is that on certain platforms *cough* Windows/MinGW *cough* long is only 32-bit even when compiling a 64-bit executable (they use the LLP64 data model). This made the compilation of language bindings fail with MinGW. This commit changes the types to uintptr_t defined in Swig's stdint.i.
2017-10-20Make Sygus conjectures higher-order (#1244)Andrew Reynolds
* Represent sygus synthesis conjectures using higher-order quantification, remove associated hacks. * Minor fix * Fix bug in Node::hasBoundVar for non-ground operators. * Add regression. * Address review. * Apply clang format.
2017-10-10Ho node manager types (#1203)Andrew Reynolds
* Remove restrictions about function types * Introduce notion of first-class type, improve assertions, add comment on equality type rule. * Update comment
2017-10-09Split term database (#1206)Andrew Reynolds
* Move equality query to own file, move equality inference to quantifiers engine. * Move quantifiers attributes out of TermDb and into QuantAttribute. * Move term database sygus to quantifiers engine, move some attributes to quantifiers attributes header. * Split term database into term util. * Partial fix for #1205 that eliminates need for dependency in node.cpp. * Add more references to github issues.
2017-10-04Removing the throw specifier from ArrayStoreAll constructor. (#1182)Tim King
Addresses CIDS: 1457252 and 1379620. Miscellaneous cleanup to ArrayStoreAll.
2017-10-02Unify hash functions for pairs (#1161)Andres Noetzli
CVC4 was implementing multiple, slightly different hash functions for pairs. With pull request #1157, we have a decent generic hash function for pairs. This commit replaces the existing hash function implementations with a typedef of the generic hash function.
2017-10-02Removing throw specifiers from SymbolTable::Implementation. (#1183)Tim King
2017-09-28Update symbol table to support operator overloading (#1154)Andrew Reynolds
2017-09-25Fixing CIDs 1172012 and 1172011: Initiallzing d_exprManager to nullptr in ↵Tim King
const_iterator. (#1140)
2017-09-17Moving the CVC4_PUBLIC attribute to the beginning of operator++. (#1107)Tim King
Removes the following warning when compiling with gcc version 4.8.4 : ../../../../../src/expr/kind_template.h:95:55: warning: '__visibility__' attribute ignored on non-class types [-Wattributes] Tested with clang-3.5.
2017-09-14Add missing CVC4_PUBLIC in kind_template (#1078)makaimann
2017-09-14Remove unhandled subtypes (#1098)Andrew Reynolds
* Remove unhandled subtypes, which consequently makes typing rules uniformly stricter based on weakening the subtype relation. Ensure coercions in the smt2 and cvc parser for Real decimal constants whose type is Integer. Ensure type annotations are computed during preRewrite to ensure rewriting (which does not preserve types) does not impact term construction for parametric datatypes. This fixes issue #1048 (we now give an type exception). * Update unit test for parametric datatypes to reflect new subtyping relation. * Remove deprecated test. * Make array construction for lambdas work with new subtype relations to handle lambdas like (lambda ((x Int) (y Int)) (ite (= x 0) 0.5 0.0)).
2017-09-13Floating point symfpu support (#1093)Martin
Changes needed for the bit-blasting floating-point solver which are outside of it's area and / or applicable independently.
2017-09-13Add isConst check for lambda expressions. (#1084)Andrew Reynolds
Add isConst check for lambda expressions by conversions to and from an Array representation where isConst is implemented. This enables check-model to succeed on higher-order benchmarks. Change the builtin rewriter for lambda to attempt to put lambdas into constant form. Update regression.
2017-09-13Remove unused RecordSelect and TupleSelect (#1087)Andres Noetzli
Commit 62b673a6b8444c14c169a984dd6e3fc8f685851e remove most of the record/tuple infrastructure but did not remove the classes RecordSelect and TupleSelect which lead to issues with Java bindings (the references to the corresponding mkConst implementations could not be resolved). This commit removes the remaining traces of those classes.
2017-08-30Use thread_local instead of compiler extensions (#210)Andres Noetzli
C++11 introduced the thread_local keyword, so we don't need to use non-standard extensions or our custom pthread extension anymore. The behavior was previously introduced as a workaround in commit 753a072c542c1c254d7c6adbf10e091ba585ede5. This commit introduces the macro CVC4_THREAD_LOCAL that can be used to declare variables as thread local. For Swig, this macro is defined to be empty.
2017-08-17Remove unused SubrangeBound(s) classes (#221)Andres Noetzli
As discussed in pull request #220, commit 360d6ee8d3cdd5ddb47c328043eaed3a107b8db1 mostly got rid of SubrangeBound(s). There were still a few mentions of it left in the code, most of them commented out. The occurrences in expr.i and expr_manager.i, however, created issues with the Python wrapper. This commit removes the SubrangeBound(s) implementation and other leftovers.
2017-08-14Minimize includes in expr.h: remove dups, iostream (#219)Andres Noetzli
2017-08-14Move function definitions from metakind.h to cpp (#218)Andres Noetzli
2017-08-14Move function definitions from kind.h to kind.cpp (#217)Andres Noetzli
2017-07-30Fix memory leak in symbol table (#209)Andres Noetzli
Commit 4cab39bd4f166716cd3d357a175c346afb838137 moved d_exprMap, d_typeMap, and d_functions into SymbolTable::Implementation but did not move the deletion of those objects from SymbolTable to the SymbolTable::Implementation desconstructor, resulting in a memory leak. This commit fixes the issue.
2017-07-22Deprecating the unused convenience_node_builders.h (#203)Tim King
2017-07-22Consolidating the opaque pointers in SymbolTable. (#204)Tim King
* Consolidating the opaque pointers in SymbolTable. This removes details about the implementation from a public header. * Removing the guard for SymbolTable for the move constructor.
2017-07-20Moving from the gnu extensions for hash maps to the c++11 hash mapsTim King
* Replacing __gnu_cxx::hash_map with std::unordered_map. * Replacing __gnu_cxx::hash_set with std::unordered_set. * Replacing __gnu_cxx::hash with std::hash. * Adding missing includes.
2017-07-19Removing the unused CDAttribute. This makes CDHashMap::obliterate unused. ↵Tim King
Removing it as well.
2017-07-17Use is_sorted, merge, copy from std (#199)Andres Noetzli
Previously, we were checking whether we should use is_sorted from std or __gnu_cxx. With C++11, std::is_sorted is guaranteed to exist. This commit changes arith/normal_form.{h,cpp} to always use std::is_sorted and also removes the custom implementations for merge and copy by using the std implementations instead.
2017-07-17Remove PtrCloser (#198)Andres Noetzli
With C++11, we don't need PtrCloser anymore because we can just use std::unique_ptr.
2017-07-12Fix .i files from last commit.ajreynol
2017-07-12Make type rules more strict for operators whose type rules involve subtypes. ↵ajreynol
Disable support for subrange and predicate subtypes (which were only partially supported previously).
2017-07-10Separate sygus term utilities to new file, minor cleanup from last commit.ajreynol
2017-07-10Merge datatype shared selectors/sygus comp 2017 branch. Modify the datatypes ↵ajreynol
decision procedure to share selectors of the same type across multiple constructors. Major rewrite of the SyGuS solver. Adds several new strategies for I/O example problems (PBE) and invariant synthesis. Major simplifications to sygus parsing and synthesis conjecture representation. Do not support check-synth in portfolio. Add sygus regressions.
2017-07-07Update copyright headers.Mathias Preiner
2017-05-17Merge pull request #155 from makaimann/conditional_coverageClark Barrett
Conditional coverage
2017-05-15Fix bug 806. Minor fixes to remove term formula pass.ajreynol
2017-05-12Adding VPATH back inmakaimann
2017-05-12Conditional coverage buildmakaimann
2017-05-12Make signal handlers saferAndres Notzli
As reported in bug 769, the signal handlers currently use unsafe functions such as dynamic memory allocations and fprintf. This commit fixes the issue by introducing functions for printing statistics in signal handlers (functions with the `safe` prefix). It also avoids copying statistics, which further avoids dynamic memory allocation. The safe printing of statistics has some limitations (it does not support SExprStats or printing CVC4::Result), which should not matter much in practice. Printing statistics in a non-signal handler is not affected by these changes as that uses a separate code path (the functions without the `safe` prefix). Additional changes: - Remove ListStat as it is not used anywhere - Add unit test for safe printing statistics
2017-04-21Handle subtypes in sets. Bug fixes for tuples with subtypes.ajreynol
2017-04-18Coverage fixmakaimann
Forcing some make variables to be absolute paths lcov does not (officially) support relative paths src/expr and src/options in particular were breaking it
2017-04-14Actively split for upwards closusure intersection. Minor clean up, add ↵ajreynol
regressions.
2017-04-14Fix bug related to portfolio with nullary operators.ajreynol
2017-04-14Fix nullary operator printers, minor.ajreynol
2017-04-12Add nullary operator metakind.ajreynol
2017-04-04Do not solve for 0-ary non-constant symbols (for which isVar returns true), ↵ajreynol
add regressions.
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback