cvc5.git
12 years agoFixes more problems in bv rewrites
Clark Barrett [Wed, 13 Jun 2012 13:54:14 +0000 (13:54 +0000)]
Fixes more problems in bv rewrites

12 years ago!(*child_it).isConst() assertion fail
Dejan Jovanović [Wed, 13 Jun 2012 11:32:12 +0000 (11:32 +0000)]
!(*child_it).isConst() assertion fail
this is delta minimal with the same assertion

12 years agor2.node == response.node failure
Dejan Jovanović [Wed, 13 Jun 2012 03:58:32 +0000 (03:58 +0000)]
r2.node == response.node failure

12 years agor2.node == response.node failure
Dejan Jovanović [Wed, 13 Jun 2012 03:35:48 +0000 (03:35 +0000)]
r2.node == response.node failure

12 years ago!current[0].isConst() failure
Dejan Jovanović [Wed, 13 Jun 2012 03:30:51 +0000 (03:30 +0000)]
!current[0].isConst() failure

12 years agoFixes lots of problems in bv rewrite rules and adds lots of assertions
Clark Barrett [Wed, 13 Jun 2012 02:49:35 +0000 (02:49 +0000)]
Fixes lots of problems in bv rewrite rules and adds lots of assertions
to catch any that I may have missed

12 years agobenchmark to show that we don't rewrite bvsmod correctly
Dejan Jovanović [Wed, 13 Jun 2012 02:28:46 +0000 (02:28 +0000)]
benchmark to show that we don't rewrite bvsmod correctly
the definition in smtlib was buggy and was changed on 2011-06-15
check http://goedel.cs.uiowa.edu/smtlib/logics/QF_BV.smt2

12 years agoFix some compile warnings (but they never showed up on church)
Morgan Deters [Tue, 12 Jun 2012 21:29:51 +0000 (21:29 +0000)]
Fix some compile warnings (but they never showed up on church)

12 years agoFix to SMT-LIBv1 parser: QF_UF declares sort "U", but other *UF* logics do not (e...
Morgan Deters [Tue, 12 Jun 2012 21:11:15 +0000 (21:11 +0000)]
Fix to SMT-LIBv1 parser: QF_UF declares sort "U", but other *UF* logics do not (e.g. QF_UFLIA).

Also fix a syntax error in a regression test (CVC4 is too lenient to catch it though---CVC3 tripped over it).

Also add additional parts for "make submission" in the top-level makefile

12 years agomissing problems
Dejan Jovanović [Tue, 12 Jun 2012 20:59:13 +0000 (20:59 +0000)]
missing problems

12 years agowrong answer for bv
Dejan Jovanović [Tue, 12 Jun 2012 20:55:02 +0000 (20:55 +0000)]
wrong answer for bv

12 years agoMoved some things around in the preprocessor. Now theory preprocessing gets
Clark Barrett [Tue, 12 Jun 2012 20:35:07 +0000 (20:35 +0000)]
Moved some things around in the preprocessor.  Now theory preprocessing gets
called before ite simplification unless arithrewriteequality is on

12 years agoFixed fuzzing bug
Clark Barrett [Tue, 12 Jun 2012 20:29:28 +0000 (20:29 +0000)]
Fixed fuzzing bug

12 years agoFix to yesterday's change in arithmetic.
Tim King [Tue, 12 Jun 2012 19:57:23 +0000 (19:57 +0000)]
Fix to yesterday's change in arithmetic.

12 years agobv reduced with decision: sat instead of unsat
Kshitij Bansal [Tue, 12 Jun 2012 19:50:25 +0000 (19:50 +0000)]
bv reduced with decision: sat instead of unsat

12 years agoAssert fail equaility_engine.cpp: hasTerm(node) with --decision=justification
Kshitij Bansal [Tue, 12 Jun 2012 19:21:30 +0000 (19:21 +0000)]
Assert fail equaility_engine.cpp: hasTerm(node) with --decision=justification

12 years agobufixes and the bugs
Dejan Jovanović [Tue, 12 Jun 2012 19:09:39 +0000 (19:09 +0000)]
bufixes and the bugs

* array now only propagates thropugh the equality engine
* assertions in the equality rewriting to ensure eq -> { eq, T, F }

12 years agoconflicts from theories are removable
Dejan Jovanović [Tue, 12 Jun 2012 18:53:40 +0000 (18:53 +0000)]
conflicts from theories are removable

12 years agoChanged bitvector theory rewriter so that equalities always get rewritten to
Clark Barrett [Tue, 12 Jun 2012 18:32:42 +0000 (18:32 +0000)]
Changed bitvector theory rewriter so that equalities always get rewritten to
equalities or true or false

12 years agocleanup of exit mechanism when decisionEngine is on\n\n fixes some bugs we were seein...
Kshitij Bansal [Tue, 12 Jun 2012 17:33:29 +0000 (17:33 +0000)]
cleanup of exit mechanism when decisionEngine is on\n\n fixes some bugs we were seeing in quantifiers+decision stuff

12 years agoFixed bug causing QF_LIA/solver_cvc4/incorrect1.smt and QF_LIA/solver_cvc4/incorrect3.smt
Clark Barrett [Tue, 12 Jun 2012 17:31:35 +0000 (17:31 +0000)]
Fixed bug causing QF_LIA/solver_cvc4/incorrect1.smt and QF_LIA/solver_cvc4/incorrect3.smt

12 years agoFixed failing assertion in arrays for bug 347
Clark Barrett [Tue, 12 Jun 2012 17:07:49 +0000 (17:07 +0000)]
Fixed failing assertion in arrays for bug 347

12 years agomore breakage in aufbv
Dejan Jovanović [Tue, 12 Jun 2012 17:02:02 +0000 (17:02 +0000)]
more breakage in aufbv

Assertion `value(l) == (lbool((uint8_t)0))' failed.

and

d_disequalityReasonsMap.find(pair) != d_disequalityReasonsMap.end()

12 years agominor cleanup, and replace a "private:" in equality engine that had been removed...
Morgan Deters [Tue, 12 Jun 2012 16:18:04 +0000 (16:18 +0000)]
minor cleanup, and replace a "private:" in equality engine that had been removed by the quantifiers merge (I had reengineered some things from quantifiers so that the equality engine didn't have to expose internals as public, but then had neglected to re-privatize them)

12 years agoFixed compile error
Clark Barrett [Tue, 12 Jun 2012 16:15:47 +0000 (16:15 +0000)]
Fixed compile error

12 years agoEnabling constant propagation
Clark Barrett [Tue, 12 Jun 2012 16:05:37 +0000 (16:05 +0000)]
Enabling constant propagation

12 years agofix a few compatibility bindings issues
Morgan Deters [Tue, 12 Jun 2012 14:31:16 +0000 (14:31 +0000)]
fix a few compatibility bindings issues

12 years agowrong answer benchmarks
Dejan Jovanović [Tue, 12 Jun 2012 11:35:30 +0000 (11:35 +0000)]
wrong answer benchmarks
these should be simple constant propagation problems

12 years agowrong result benchmark
Dejan Jovanović [Tue, 12 Jun 2012 11:12:36 +0000 (11:12 +0000)]
wrong result benchmark

12 years agotests for the
Dejan Jovanović [Tue, 12 Jun 2012 03:24:45 +0000 (03:24 +0000)]
tests for the

!isEliminated(var(ps[i]))

assert fails

12 years agotest cases for the
Dejan Jovanović [Tue, 12 Jun 2012 03:21:47 +0000 (03:21 +0000)]
test cases for the

d_disequalityReasonsMap.find(pair) != d_disequalityReasonsMap.end()

assertion fail

12 years agoAdding constant propagation code - needs more testing - off by default
Clark Barrett [Tue, 12 Jun 2012 03:01:41 +0000 (03:01 +0000)]
Adding constant propagation code - needs more testing - off by default

12 years agoAdding incorrect qf_lia result.
Tim King [Tue, 12 Jun 2012 00:37:27 +0000 (00:37 +0000)]
Adding incorrect qf_lia result.

12 years agofix ordering issue of --dump-to and --default-dag-thresh. now can be specified in...
Morgan Deters [Tue, 12 Jun 2012 00:32:02 +0000 (00:32 +0000)]
fix ordering issue of --dump-to and --default-dag-thresh.  now can be specified in either order and the DAG threshold takes.

12 years agoFix to term normalization of integer equalities. Adds a regression test that triggere...
Tim King [Mon, 11 Jun 2012 23:40:47 +0000 (23:40 +0000)]
Fix to term normalization of integer equalities. Adds a regression test that triggered it.

12 years agoFixing type comparision assertion in getEqualityStatus().
Tim King [Mon, 11 Jun 2012 22:32:46 +0000 (22:32 +0000)]
Fixing type comparision assertion in getEqualityStatus().

12 years agoanother benchmark that used to fail
Dejan Jovanović [Mon, 11 Jun 2012 21:53:00 +0000 (21:53 +0000)]
another benchmark that used to fail

12 years agofixing bitvector bugs
Dejan Jovanović [Mon, 11 Jun 2012 18:54:38 +0000 (18:54 +0000)]
fixing bitvector bugs
* clauses shouldn't be erased when they could be a reason for outside propagation
* propagation of p and !p is ignored as this must lead to a conflict in the subtheory internally

12 years agomark a quantifiers global var as "static" so we can find it easier later
Morgan Deters [Mon, 11 Jun 2012 18:27:58 +0000 (18:27 +0000)]
mark a quantifiers global var as "static" so we can find it easier later

12 years agoOK, now the rewrite issues are fixed
Clark Barrett [Mon, 11 Jun 2012 17:31:13 +0000 (17:31 +0000)]
OK, now the rewrite issues are fixed

12 years agodistribute an .expect file. fixes a "make check" failure not for svn working dirs...
Morgan Deters [Mon, 11 Jun 2012 17:13:03 +0000 (17:13 +0000)]
distribute an .expect file.  fixes a "make check" failure not for svn working dirs but for distributed tarballs.

12 years agoMerge from quantifiers2-trunkmerge branch.
Morgan Deters [Mon, 11 Jun 2012 16:28:23 +0000 (16:28 +0000)]
Merge from quantifiers2-trunkmerge branch.

Adds TheoryQuantifiers and TheoryRewriteRules, QuantifiersEngine, and other infrastructure.

Adds theory instantiators to many theories.

Adds the UF strong solver.

12 years agoFix for array bug with decision heuristic
Clark Barrett [Mon, 11 Jun 2012 16:14:01 +0000 (16:14 +0000)]
Fix for array bug with decision heuristic
Also fixed one bv rewrite failure (more to come)

12 years agofix issue referred to in bug 352 regarding infinite loop between SubstitutionMap...
Morgan Deters [Mon, 11 Jun 2012 15:36:42 +0000 (15:36 +0000)]
fix issue referred to in bug 352 regarding infinite loop between SubstitutionMap (when debugging tag "substitutions" is on) and DagificationVisitor

12 years agofailing bv examples
Dejan Jovanović [Mon, 11 Jun 2012 13:54:42 +0000 (13:54 +0000)]
failing bv examples

12 years agoFixed bug 352
Clark Barrett [Mon, 11 Jun 2012 11:43:55 +0000 (11:43 +0000)]
Fixed bug 352

12 years agosome failing examples
Dejan Jovanović [Mon, 11 Jun 2012 02:32:04 +0000 (02:32 +0000)]
some failing examples

12 years agoFixed one more bug in rewriter
Clark Barrett [Sun, 10 Jun 2012 15:55:31 +0000 (15:55 +0000)]
Fixed one more bug in rewriter

12 years agoAdded a very fruitful assertion to the rewriter: checks that rewriting after "REWRITE...
Clark Barrett [Sun, 10 Jun 2012 14:43:58 +0000 (14:43 +0000)]
Added a very fruitful assertion to the rewriter: checks that rewriting after "REWRITE_DONE" is idempotent
Found several problems where this is not the case and fixed them

12 years agoadding an assertion to trigger the problem of bug349 and the testcase
Dejan Jovanović [Sun, 10 Jun 2012 06:09:25 +0000 (06:09 +0000)]
adding an assertion to trigger the problem of bug349 and the testcase
bv rewriter apparently deosn't have a proper normal form for equalities

12 years agofixes for bug347
Dejan Jovanović [Sun, 10 Jun 2012 03:03:17 +0000 (03:03 +0000)]
fixes for bug347
it was an issue with constants being merged, which influenced explanations of disequalities. when constants are attempted to be merged, equality engine now enters conflict mode immediately

12 years agoTurning on unconstrained simp for QF_AUFBV
Clark Barrett [Sat, 9 Jun 2012 17:03:22 +0000 (17:03 +0000)]
Turning on unconstrained simp for QF_AUFBV

12 years agoCleanup and comments for the dag-ifier. Also some unit testing for it.
Morgan Deters [Sat, 9 Jun 2012 14:09:39 +0000 (14:09 +0000)]
Cleanup and comments for the dag-ifier.  Also some unit testing for it.

12 years agoDagification of output expressions.
Morgan Deters [Sat, 9 Jun 2012 00:35:38 +0000 (00:35 +0000)]
Dagification of output expressions.

By default, common subexpressions are dagified if they appear > 1 time and are not constants or variables.
This can be changed with --default-expr-dag=N --- N is a threshold such that if the subexpression occurs > N
times, it is dagified; a setting of 0 turns off dagification entirely.

If you notice strange dumping behavior (taking too long to print anything, e.g.), revert to the old behavior
with --default-expr-dag=0 and let me know of the problem.

12 years agoThe option --arith-presolve-lemmas had previously been renamed --unate-lemmas.
Morgan Deters [Fri, 8 Jun 2012 23:35:21 +0000 (23:35 +0000)]
The option --arith-presolve-lemmas had previously been renamed --unate-lemmas.

This commit just renames it in --help documentation, etc.

12 years agoExtend Printer infrastructure also to the "Result" class, meaning that different...
Morgan Deters [Fri, 8 Jun 2012 21:21:42 +0000 (21:21 +0000)]
Extend Printer infrastructure also to the "Result" class, meaning that different output languages can write "sat", "unsat", etc., in different ways.  No output is changed by this commit, but the flexibility is added that Francois wanted at today's meeting.

12 years agominor fixes, for Mac OS
Morgan Deters [Fri, 8 Jun 2012 20:11:22 +0000 (20:11 +0000)]
minor fixes, for Mac OS

12 years agovery small fast example for the bv fail
Dejan Jovanović [Fri, 8 Jun 2012 20:00:13 +0000 (20:00 +0000)]
very small fast example for the bv fail

12 years agoFix SMT-LIBv2 ALL_SUPPORTED logic inference (by inferring it earlier).
Morgan Deters [Fri, 8 Jun 2012 19:00:44 +0000 (19:00 +0000)]
Fix SMT-LIBv2 ALL_SUPPORTED logic inference (by inferring it earlier).

12 years agohandle BitVectorSignExtend in pickler
Kshitij Bansal [Fri, 8 Jun 2012 10:18:01 +0000 (10:18 +0000)]
handle BitVectorSignExtend in pickler

12 years agothreadlocal
Kshitij Bansal [Fri, 8 Jun 2012 09:34:20 +0000 (09:34 +0000)]
threadlocal

12 years agoMerge from decision branch (till r3663)
Kshitij Bansal [Fri, 8 Jun 2012 05:56:08 +0000 (05:56 +0000)]
Merge from decision branch (till r3663)

(no performace or search behavior changes expected)

12 years agosmall fuzz examples where bv fails
Dejan Jovanović [Fri, 8 Jun 2012 05:48:19 +0000 (05:48 +0000)]
small fuzz examples where bv fails

12 years agofixing the wrong results. arrays equality adaptor had a missing case when propagating...
Dejan Jovanović [Thu, 7 Jun 2012 22:19:53 +0000 (22:19 +0000)]
fixing the wrong results. arrays equality adaptor had a missing case when propagating disequalities between shared terms.

12 years agoLogicInfo locking implemented, and some initialization-order issues in SmtEngine...
Morgan Deters [Thu, 7 Jun 2012 20:45:13 +0000 (20:45 +0000)]
LogicInfo locking implemented, and some initialization-order issues in SmtEngine resolved.

ALL_SUPPORTED and QF_ALL_SUPPORTED logics now supported by SMT-LIB parsers.  In SMT-LIBv2, if a (set-logic..) command is missing, ALL_SUPPORTED is assumed, and a warning is issued, as discussed on the cvc4-devel mailing list.

12 years agoFixed performance issue with ite_simplifier on some QF_AUFBV benchmarks
Clark Barrett [Thu, 7 Jun 2012 19:34:21 +0000 (19:34 +0000)]
Fixed performance issue with ite_simplifier on some QF_AUFBV benchmarks

12 years agoAdding EchoCommand and associated printer and parser rules:
Morgan Deters [Thu, 7 Jun 2012 16:16:48 +0000 (16:16 +0000)]
Adding EchoCommand and associated printer and parser rules:

* SMT-LIBv2 parser now supports (echo...).
* Dump() gestures can now dump EchoCommands in CVC and SMT-LIB formats.
  This can make it much easier to interpret output.

12 years agocleaning up the expample for the future
Dejan Jovanović [Thu, 7 Jun 2012 16:12:06 +0000 (16:12 +0000)]
cleaning up the expample for the future

12 years agoAdded small test case for diseq propagation
Clark Barrett [Thu, 7 Jun 2012 15:31:08 +0000 (15:31 +0000)]
Added small test case for diseq propagation

12 years agofixing some bugs in propagation of disequalities
Dejan Jovanović [Thu, 7 Jun 2012 07:11:24 +0000 (07:11 +0000)]
fixing some bugs in propagation of disequalities
still doesnt fix the wrong answers thought :(

12 years agoDon't ever call nonclausalSimplify if simplificationMode = NONE (even if
Clark Barrett [Wed, 6 Jun 2012 21:11:37 +0000 (21:11 +0000)]
Don't ever call nonclausalSimplify if simplificationMode = NONE (even if
repeatSimp is true)

12 years agoFixed assertion failures
Clark Barrett [Wed, 6 Jun 2012 19:29:18 +0000 (19:29 +0000)]
Fixed assertion failures

12 years agoremoving std::cout from trunk
Morgan Deters [Wed, 6 Jun 2012 18:08:28 +0000 (18:08 +0000)]
removing std::cout from trunk

12 years agoalso remove now-incorrect comment from makefile
Morgan Deters [Wed, 6 Jun 2012 17:52:47 +0000 (17:52 +0000)]
also remove now-incorrect comment from makefile

12 years agoFixed broken test case, removed one that is a mistake
Clark Barrett [Wed, 6 Jun 2012 17:49:51 +0000 (17:49 +0000)]
Fixed broken test case, removed one that is a mistake

12 years agounconstrained regressions are now run with "make check", but with --unconstrained...
Morgan Deters [Wed, 6 Jun 2012 17:35:09 +0000 (17:35 +0000)]
unconstrained regressions are now run with "make check", but with --unconstrained-simp option

12 years agoFixing numerous issues with tests and "make dist":
Morgan Deters [Wed, 6 Jun 2012 16:17:19 +0000 (16:17 +0000)]
Fixing numerous issues with tests and "make dist":

* test/regress/regress0/unconstrained wasn't being distributed.  This caused the debian build failure last night.  (It still doesn't run on "make check", but had to be distributed properly.)
* Fixing an issue where a test name was longer than 99 characters and couldn't be distributed in the "old" tar format.  (Told automake to use a newer tar format.)

12 years agodisabling a super-expensive assertions to speed up debug runs
Dejan Jovanović [Wed, 6 Jun 2012 16:03:37 +0000 (16:03 +0000)]
disabling a super-expensive assertions to speed up debug runs

12 years agoChanges to the combination mechanism, lots of details. Not done yet, there are still...
Dejan Jovanović [Wed, 6 Jun 2012 06:12:40 +0000 (06:12 +0000)]
Changes to the combination mechanism, lots of details. Not done yet, there are still the AUFBV wrong results, but it seems better.
http://church.cims.nyu.edu/regress-results/compare_jobs.php?job_id=4382&reference_id=4359&p=5

12 years agoFixed problem causing crash at destruction time
Clark Barrett [Wed, 6 Jun 2012 01:06:15 +0000 (01:06 +0000)]
Fixed problem causing crash at destruction time

12 years agoMore clean-up
Clark Barrett [Tue, 5 Jun 2012 20:40:22 +0000 (20:40 +0000)]
More clean-up

12 years agoFixed a performance issue with unconstrained simplifier
Clark Barrett [Tue, 5 Jun 2012 19:48:30 +0000 (19:48 +0000)]
Fixed a performance issue with unconstrained simplifier

12 years agoAdding missing files...
Clark Barrett [Tue, 5 Jun 2012 14:43:11 +0000 (14:43 +0000)]
Adding missing files...

12 years agoAdded preprocessing pass that propagates unconstrained values - solves all of
Clark Barrett [Mon, 4 Jun 2012 22:26:40 +0000 (22:26 +0000)]
Added preprocessing pass that propagates unconstrained values - solves all of
the unconstrained examples in QF_AUFBV/brummayerbiere3 - should also help
generally on at least BV and maybe others.
Off by default for now - results are mixed and it's hard to evaluate with so
many existing assertion failures and segfaults - will re-evaluate once those
are fixed

12 years agoadd a global user-context push/pop in smt engine, just like clark's addition the...
Morgan Deters [Fri, 1 Jun 2012 20:31:24 +0000 (20:31 +0000)]
add a global user-context push/pop in smt engine, just like clark's addition the other day of a push/pop of the sat context

12 years agoFixed bug in bv: one more case where non-shared equality was getting propagated
Clark Barrett [Thu, 31 May 2012 17:15:02 +0000 (17:15 +0000)]
Fixed bug in bv: one more case where non-shared equality was getting propagated
Added a global push and pop around solving - fixes an assertion failure when
TNodes are still around in a CDHashMap at destruction time.

12 years agosvn:ignore a parallel-tests driver file that automake deposits in config/
Morgan Deters [Thu, 31 May 2012 14:46:38 +0000 (14:46 +0000)]
svn:ignore a parallel-tests driver file that automake deposits in config/

12 years agopass JAVA_CPPFLAGS properly
Morgan Deters [Thu, 31 May 2012 14:45:09 +0000 (14:45 +0000)]
pass JAVA_CPPFLAGS properly

12 years agoAdded BitwiseEq bitvector rewrite
Clark Barrett [Wed, 30 May 2012 20:33:40 +0000 (20:33 +0000)]
Added BitwiseEq bitvector rewrite
Added option "--repeat-simp" which repeats nonclausal simplification: 4 times,
twice before ite removal and twice after
Enabled these options (plus ite-simp) on QF_AUFBV, obtaining significant
speedup on dwp examples

12 years agoFixed problem with array queue growing too large
Clark Barrett [Wed, 30 May 2012 16:16:18 +0000 (16:16 +0000)]
Fixed problem with array queue growing too large

12 years agoremove unused/broken check build target
Morgan Deters [Wed, 30 May 2012 16:14:56 +0000 (16:14 +0000)]
remove unused/broken check build target

12 years agoremoving now-unused TheoryEngine::setLogic() interface function
Morgan Deters [Tue, 29 May 2012 23:12:06 +0000 (23:12 +0000)]
removing now-unused TheoryEngine::setLogic() interface function

12 years agoEnabled SolveEq bv rewrite
Clark Barrett [Tue, 29 May 2012 17:56:51 +0000 (17:56 +0000)]
Enabled SolveEq bv rewrite

12 years agoAdded some BV rewrites, fixed bugs in array theory, made ite simp work with BV
Clark Barrett [Mon, 28 May 2012 16:27:50 +0000 (16:27 +0000)]
Added some BV rewrites, fixed bugs in array theory, made ite simp work with BV

12 years agosome reordering to keep invariants
Dejan Jovanović [Sun, 27 May 2012 16:59:01 +0000 (16:59 +0000)]
some reordering to keep invariants

12 years agoCommitting the work on equality engine, I need to see how it does on the regressions...
Dejan Jovanović [Sun, 27 May 2012 05:44:13 +0000 (05:44 +0000)]
Committing the work on equality engine, I need to see how it does on the regressions. New additions:
* areDisequal(x, y) -> areDisequal(x, y, needProof): when asking for a disequality you must say needProof if you will ask for an explanation later.
* propagation of shared dis-equalities (not yet complete, once case missing)
* changes to the theories that use it, authors should check up on the changes

12 years agoAnother expensive function call in a Debug trace
Clark Barrett [Sun, 27 May 2012 00:39:27 +0000 (00:39 +0000)]
Another expensive function call in a Debug trace

12 years agoAnother expensive function call in a Debug line
Clark Barrett [Sun, 27 May 2012 00:38:30 +0000 (00:38 +0000)]
Another expensive function call in a Debug line

12 years agoinit bug fix
Kshitij Bansal [Fri, 25 May 2012 16:45:21 +0000 (16:45 +0000)]
init bug fix

12 years agoChecking in fix for bug 340 - somehow didn't get checked in earlier
Clark Barrett [Fri, 25 May 2012 00:21:53 +0000 (00:21 +0000)]
Checking in fix for bug 340 - somehow didn't get checked in earlier