diff options
author | Morgan Deters <mdeters@cs.nyu.edu> | 2014-07-02 16:22:13 -0400 |
---|---|---|
committer | Morgan Deters <mdeters@cs.nyu.edu> | 2014-07-12 20:49:47 -0400 |
commit | 5d736412de07fc555130746fc58a9224d0891105 (patch) | |
tree | 7b8e755444ba0f30187e04790a0fff692b52eb22 /src/theory/arrays/kinds | |
parent | 4f3c678ba0b74bfe73472c6ba068e2bf712d1bb9 (diff) |
Fix a bug in Boolean terms and arrays. Thanks to Jean-Christophe Filliatre for the report.
Diffstat (limited to 'src/theory/arrays/kinds')
-rw-r--r-- | src/theory/arrays/kinds | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/theory/arrays/kinds b/src/theory/arrays/kinds index 0bc973de9..c18492a58 100644 --- a/src/theory/arrays/kinds +++ b/src/theory/arrays/kinds @@ -41,10 +41,18 @@ constant STORE_ALL \ # used internally by array theory operator ARR_TABLE_FUN 4 "array table function (internal-only symbol)" +# used internally for substitutions in models (e.g. the Boolean terms converter) +# The (single) argument is a lambda(x:T):U. Type of the array lambda is +# Array T of U. Thus ARRAY_LAMBDA LAMBDA(x:INT) . (read a x) is the same array +# as a. ARRAY_LAMBDA LAMBDA(x:INT) . (read a (- x 1)) is the same array as +# as a shifted over one. +operator ARRAY_LAMBDA 1 "array lambda (internal-only symbol)" + typerule SELECT ::CVC4::theory::arrays::ArraySelectTypeRule typerule STORE ::CVC4::theory::arrays::ArrayStoreTypeRule typerule STORE_ALL ::CVC4::theory::arrays::ArrayStoreTypeRule typerule ARR_TABLE_FUN ::CVC4::theory::arrays::ArrayTableFunTypeRule +typerule ARRAY_LAMBDA ::CVC4::theory::arrays::ArrayLambdaTypeRule # store operations that are ordered (by index) over a store-all are constant construle STORE ::CVC4::theory::arrays::ArrayStoreTypeRule |