(theory ArraysEx
:smt-lib-version 2.6
:smt-lib-release "2017-11-24"
:written-by "Cesare Tinelli"
:date "2010-04-28"
:last-updated "2015-04-25"
:update-history
"Note: history only accounts for content changes, not release changes.
2015-04-25 Updated to Version 2.5.
2010-08-15 Minor fix.
"
:sorts ((Array 2))
:funs ((par (X Y) (select (Array X Y) X Y))
(par (X Y) (store (Array X Y) X Y (Array X Y))) )
:notes "A schematic version of the theory of functional arrays with extensionality."
:definition
"For every expanded signature Sigma, the instance of ArraysEx with that signature
is the theory consisting of all Sigma-models that satisfy all axioms of the form
below, for all sorts s1, s2 in Sigma:
- (forall ((a (Array s1 s2)) (i s1) (e s2))
(= (select (store a i e) i) e))
- (forall ((a (Array s1 s2)) (i s1) (j s1) (e s2))
(=> (distinct i j)
(= (select (store a i e) j) (select a j))))
- (forall ((a (Array s1 s2)) (b (Array s1 s2)))
(=> (forall ((i s1)) (= (select a i) (select b i)))
(= a b)))
"
:values
"For all sorts s1, s2 in in the signature, the values of sort (Array s1 s2) are
abstract.
"
)