12578c01f1d409005643dc28afe1099d2d10bc21
1 /******************************************************************************
2 * Top contributors (to current version):
5 * This file is part of the cvc5 project.
7 * Copyright (c) 2009-2021 by the authors listed in the file AUTHORS
8 * in the top-level source directory and their institutional affiliations.
9 * All rights reserved. See the file COPYING in the top-level source
10 * directory for licensing information.
11 * ****************************************************************************
13 * Arrays skolem cache.
16 #include "cvc5_private.h"
18 #ifndef CVC5__THEORY__ARRAYS__SKOLEM_CACHE_H
19 #define CVC5__THEORY__ARRAYS__SKOLEM_CACHE_H
21 #include "expr/node.h"
28 * The arrays skolem cache, which provides static methods for constructing
29 * skolems with witness forms.
38 * Get the skolem correspoding to the index that witnesses the disequality
39 * deq between arrays a and b. The witness form of this skolem is:
40 * (witness ((x T)) (=> (not (= a b)) (not (= (select a x) (select b x)))))
41 * This skolem is unique for deq, calling this method will always return the
42 * same skolem over the lifetime of deq.
44 static Node
getExtIndexSkolem(Node deq
);
48 * Get the bound variable x of the witness term above for disequality deq
51 static Node
getExtIndexVar(Node deq
);