summaryrefslogtreecommitdiff
path: root/src/expr
AgeCommit message (Collapse)Author
2014-06-17Another fix for the CASC stuff.Morgan Deters
2014-06-17For casc : print models of functions rewritten by sort inference.ajreynol
2014-06-16Clean up some compiler warnings on 32-bit.Morgan Deters
2014-06-06option to hide stats which are zero (off by default), also some aliasesKshitij Bansal
2014-06-06Sets translate, and other short fixesKshitij Bansal
- $ is a simple symbol is smt2. - ever found yourself counting in kind.h? no longer. - expose parser "logic is set" state for smt/smt2 (any better way?) - a more helpful assertion message in smt_engine
2014-05-27Some fixes to GC order in Java.Morgan Deters
2014-05-27Fix typo in Java destruction code; should fix some recent bug reports of ↵Morgan Deters
crashes in Java.
2014-05-24Some cleanup, fix warnings raised by Debian packager.Morgan Deters
2014-05-11More preparation for CASC proofs. Minor fix for sort inference (rewrite new ↵Andrew Reynolds
assertions). Bug fix for ambqi : simplify correctly for multi-sorted case. Bug fix for fmc : only do exh-simplification for uninterpreted sorts, ensure reps are enumerated for quantification over Real.
2014-05-09Add variable ordering to ambqi. Bug fix to macros. More preparation for ↵Andrew Reynolds
CASC proofs.
2014-04-28nodemanager robust skolem numberingKshitij Bansal
2014-04-17simplify mkSkolem naming system: don't use $$Kshitij Bansal
Short summary: By default NODEID is appeneded, just continue doing what you were, just don't add the _$$ at the end. Long summary: Before this commit there were four (yes!) ways to specify the names for new skolems, which result in names as given below 1) mkSkolem("name", ..., SKOLEM_FLAG_DEFAULT) -> "name_NODEID" 2) mkSkolem("name", ..., SKOLEM_EXACT_NAME) -> "name" 3) mkSkolem("name_$$", ..., SKOLEM_FLAG_DEFAULT) -> "name_NODEID" 4) mkSkolem("na_$$_me", ..., SKOLEM_FLAG_DEFAULT) -> "na_NODEID_me" After this commit, only 1) and 2) stay. 90% usage is of 1) or 3), which results in exact same behavior (and looking at the source code it doesn't look like everyone realized that the _$$ is just redundant). Almost no one used 4), which is the only reason to even have $$. Post this commit if you really want a number in the middle, manually construct the name and use the SKOLEM_EXACT_NAME flag.
2014-04-09Minor change to better support parameterized partial/total kinds (for ↵Morgan Deters
upcoming datatypes work).
2014-03-20Merge pull request #22 from kbansal/sets-modelKshitij Bansal
Sets model
2014-03-20push subtyping for sets to the element typeKshitij Bansal
for eg, (Set Int) is subtype of (Set Real) if Int is subtype of Real
2014-03-11Minor cleanup.Morgan Deters
* Reenable parts of bvsimple test * Fix typo in #endif comment
2014-03-07Remove --ite-remove-quant; support pulling ground ITEs out of quantifier ↵Morgan Deters
bodies; fix bug 551, improper ITE removal under quantifiers.
2014-03-04More useful error message when someone tries mkExpr(VARIABLE).Morgan Deters
2014-02-21Merge branch '1.3.x'Morgan Deters
2014-02-21Fix two variants of Node::substitute().Morgan Deters
Node::substitute() is overloaded. One version was properly substituting operators (e.g. the "f" in f(x) could be substituted). The others were ignoring anything in function position. Fixed. Thanks to Wei Wang for pointing this out.
2014-02-21portfolio: fix export of emptysetKshitij Bansal
2014-02-21add new theory (sets)Kshitij Bansal
Specification (smt2) -- as per this commit, subject to change - Parameterized sort Set, e.g. (Set Int) - Empty set constant (typed), use with "as" to specify the type, e.g. (as emptyset (Set Int)) - Create a singleton set (setenum X (Set X)) : creates singleton set - Functions/operators (union (Set X) (Set X) (Set X)) (intersection (Set X) (Set X) (Set X)) (setminus (Set X) (Set X) (Set X)) - Predicates (in X (Set X) Bool) : membership (subseteq (Set X) (Set X) Bool) : set containment
2014-01-02Update copyright year.Morgan Deters
2013-12-24Better automatic handling of output language setting.Morgan Deters
2013-12-24Minor code cleanup.Morgan Deters
2013-12-10Fix warning.Morgan Deters
2013-12-07fix bug 542Kshitij Bansal
2013-12-05Fix NodeValue bitfields for 32-bit; fix comment.Morgan Deters
2013-12-05Update copyrights, add missing file-level documentation; fix perms.Morgan Deters
2013-12-04Minor cleanup.Morgan Deters
2013-12-03Some fixes for swig warnings.Morgan Deters
2013-12-02SExpr pretty-printing for :all-options and :all-statistics.Morgan Deters
2013-12-02Minor cleanup.Morgan Deters
2013-12-02Support for parametric datatype subtyping, so that e.g. (Pair Int Int) is a ↵Morgan Deters
subtype of (Pair Real Real). Resolves bug #541.
2013-12-02Another fix to Java destruction order issues. Thanks to Zheng Manchun for ↵Morgan Deters
the report.
2013-11-27General pre-release cleanup commitMorgan Deters
* Rename {model,util_model}.{h,cpp} files to match class names * Fix alreadyVisited() issue in TheoryEngine * Remove spurious Message that causes compliance issues * Update copyrights, fix public/private markings in headers * minor comment fixes * remove EXTRACT_OP as a special-case in typechecker * note about rewriters in theoryskel readme * Clean up some compiler warnings * Code typos and spacing
2013-11-27Add missing template instanatiation in Java bindingsMorgan Deters
2013-11-26Fix Java destruction order issue; thanks to Zheng Manchun for reporting this ↵Morgan Deters
bug.
2013-11-26Minor fix for swig bindings.Morgan Deters
2013-11-25Substantial Changes:Tim King
-ITE Simplification -- Moved the utilities in src/theory/ite_simplifier.{h,cpp} to ite_utilities. -- Separated simpWithCare from simpITE. -- Disabled ite simplification on repeat simplification by default. Currently, ite simplification cannot help unless we internally make new constant leaf ites equal to constants. -- simplifyWithCare() is now only run on QF_AUFBV by default. Speeds up nec benchmarks dramatically. -- Added a new compress ites pass that is only run on QF_LIA by default. This targets the perverse structure of ites generated during ite simplification on nec benchmarks. -- After ite simplification, if the ite simplifier was used many times and the NodeManager's node pool is large enough, this garbage collects: zombies from the NodeManager repeatedly, the ite simplification caches, and the theory rewrite caches. - TheoryEngine -- Added TheoryEngine::donePPSimpITE() which orchestrates a number of ite simplifications above. -- Switched UnconstrainedSimplifier to a pointer. - RemoveITEs -- Added a heuristic for checking whether or not a node contains term ites and if not, not bothering to invoke the rest of RemoveITE::run(). This safely changes the type of the cache used on misses of run. This cache can be cleared in the future. Currently disabled pending additional testing. - TypeChecker -- added a neverIsConst() rule to the typechecker. Operators that cannot be used in constructing constant expressions by computeIsConst() can now avoid caching on Node::isConst() calls. - Theory Bool Rewriter -- Added additional simplifications for boolean ites. Minor Changes: - TheoryModel -- Removed vestigial copy of the ITESimplifier. - AttributeManager -- Fixed a garbage collection bug when deleting the node table caused the NodeManager to reclaimZombies() which caused memory corruption by deleting from the attributeManager. - TypeChecker -- added a neverIsConst() rule to the typechecker. Operators that cannot be used in constructing constant expressions by computeIsConst() can now avoid caching on Node::isConst() calls. -NodeManager -- Added additional functions for reclaiming zombies. -- Exposed the size of the node pool for heuristics that worry about memory consumption. - NaryBuilder -- Added convenience classes for constructing associative and commutative n-ary operators. -- Added a pass that turns associative and commutative n-ary operators into binary operators. (Mostly for printing expressions for strict parsers.)
2013-11-21Adding the changes needed to delete rewriter attributes. This includes ↵Tim King
being able to list attributes. Additionally, added debugging hooks to node manager and attribute manager.
2013-11-20Changing the number of bits allocated per field in node values.Tim King
2013-11-10Minor fixups to last commitMorgan Deters
2013-11-10Flatten libcvc4 build structure; remove some #include interdependencesMorgan Deters
2013-09-13Documentation fixes, some code typo fixes, file perms, other minor things.Morgan Deters
2013-09-13Merge branch 'master' of https://github.com/CVC4/CVC4Kshitij Bansal
2013-09-12fix bug 534: portfolio define-fun duplicate modelKshitij Bansal
2013-09-11Theory of strings.Tianyi Liang
Signed-off-by: Morgan Deters <mdeters@cs.nyu.edu>
2013-09-09Fix declare-datatypes dumping bug (bug 385).Morgan Deters
2013-09-09Support per-command verbosity settings.Morgan Deters
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback