/usr/include/cvc4/options/quantifiers_modes.h is in libcvc4-dev 1.5-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 | /********************* */
/*! \file quantifiers_modes.h
** \verbatim
** Top contributors (to current version):
** Andrew Reynolds, Tim King, Morgan Deters
** This file is part of the CVC4 project.
** Copyright (c) 2009-2017 by the authors listed in the file AUTHORS
** in the top-level source directory) and their institutional affiliations.
** All rights reserved. See the file COPYING in the top-level source
** directory for licensing information.\endverbatim
**
** \brief [[ Add one-line brief description here ]]
**
** [[ Add lengthier description here ]]
** \todo document this file
**/
#include <cvc4/cvc4_public.h>
#ifndef __CVC4__BASE__QUANTIFIERS_MODES_H
#define __CVC4__BASE__QUANTIFIERS_MODES_H
#include <iostream>
namespace CVC4 {
namespace theory {
namespace quantifiers {
enum InstWhenMode {
/** Apply instantiation round before full effort (possibly at standard effort) */
INST_WHEN_PRE_FULL,
/** Apply instantiation round at full effort or above */
INST_WHEN_FULL,
/** Apply instantiation round at full effort, after all other theories finish, or above */
INST_WHEN_FULL_DELAY,
/** Apply instantiation round at full effort half the time, and last call always */
INST_WHEN_FULL_LAST_CALL,
/** Apply instantiation round at full effort after all other theories finish half the time, and last call always */
INST_WHEN_FULL_DELAY_LAST_CALL,
/** Apply instantiation round at last call only */
INST_WHEN_LAST_CALL,
};
enum LiteralMatchMode {
/** Do not consider polarity of patterns */
LITERAL_MATCH_NONE,
/** Conservatively consider polarity of patterns */
LITERAL_MATCH_USE,
/** Aggressively consider polarity of Boolean predicates */
LITERAL_MATCH_AGG_PREDICATE,
/** Aggressively consider polarity of all terms */
LITERAL_MATCH_AGG,
};
enum MbqiMode {
/** mbqi from CADE 24 paper */
MBQI_GEN_EVAL,
/** no mbqi */
MBQI_NONE,
/** default, mbqi from Section 5.4.2 of AJR thesis */
MBQI_FMC,
/** mbqi with integer intervals */
MBQI_FMC_INTERVAL,
/** abstract mbqi algorithm */
MBQI_ABS,
/** mbqi trust (produce no instantiations) */
MBQI_TRUST,
};
enum QcfWhenMode {
/** default, apply at full effort */
QCF_WHEN_MODE_DEFAULT,
/** apply at last call */
QCF_WHEN_MODE_LAST_CALL,
/** apply at standard effort */
QCF_WHEN_MODE_STD,
/** apply based on heuristics */
QCF_WHEN_MODE_STD_H,
};
enum QcfMode {
/** default, use qcf for conflicts only */
QCF_CONFLICT_ONLY,
/** use qcf for conflicts and propagations */
QCF_PROP_EQ,
/** use qcf for conflicts, propagations and heuristic instantiations */
QCF_PARTIAL,
};
enum UserPatMode {
/** use but do not trust */
USER_PAT_MODE_USE,
/** default, if patterns are supplied for a quantifier, use only those */
USER_PAT_MODE_TRUST,
/** resort to user patterns only when necessary */
USER_PAT_MODE_RESORT,
/** ignore user patterns */
USER_PAT_MODE_IGNORE,
/** interleave use/resort for user patterns */
USER_PAT_MODE_INTERLEAVE,
};
enum TriggerSelMode {
/** only consider minimal terms for triggers */
TRIGGER_SEL_MIN,
/** only consider maximal terms for triggers */
TRIGGER_SEL_MAX,
/** consider minimal terms for single triggers, maximal for non-single */
TRIGGER_SEL_MIN_SINGLE_MAX,
/** consider minimal terms for single triggers, all for non-single */
TRIGGER_SEL_MIN_SINGLE_ALL,
/** consider all terms for triggers */
TRIGGER_SEL_ALL,
};
enum TriggerActiveSelMode {
/** always use all triggers */
TRIGGER_ACTIVE_SEL_ALL,
/** only use triggers with minimal # of ground terms */
TRIGGER_ACTIVE_SEL_MIN,
/** only use triggers with maximal # of ground terms */
TRIGGER_ACTIVE_SEL_MAX,
};
enum CVC4_PUBLIC PrenexQuantMode {
/** do not prenex */
PRENEX_QUANT_NONE,
/** prenex same sign quantifiers */
PRENEX_QUANT_SIMPLE,
/** aggressive prenex, disjunctive prenex normal form */
PRENEX_QUANT_DISJ_NORMAL,
/** prenex normal form */
PRENEX_QUANT_NORMAL,
};
enum CegqiFairMode {
/** enforce fairness by UF corresponding to datatypes size */
CEGQI_FAIR_UF_DT_SIZE,
/** enforce fairness by datatypes size */
CEGQI_FAIR_DT_SIZE,
/** enforce fairness by datatypes height bound */
CEGQI_FAIR_DT_HEIGHT_PRED,
/** enforce fairness by datatypes size bound */
CEGQI_FAIR_DT_SIZE_PRED,
/** do not use fair strategy for CEGQI */
CEGQI_FAIR_NONE,
};
enum TermDbMode {
/** consider all terms in master equality engine */
TERM_DB_ALL,
/** consider only relevant terms */
TERM_DB_RELEVANT,
};
enum IteLiftQuantMode {
/** do not lift ITEs in quantified formulas */
ITE_LIFT_QUANT_MODE_NONE,
/** only lift ITEs in quantified formulas if reduces the term size */
ITE_LIFT_QUANT_MODE_SIMPLE,
/** lift ITEs */
ITE_LIFT_QUANT_MODE_ALL,
};
enum CegqiSingleInvMode {
/** do not use single invocation techniques */
CEGQI_SI_MODE_NONE,
/** use single invocation techniques */
CEGQI_SI_MODE_USE,
/** always use single invocation techniques, abort if solution reconstruction will fail */
CEGQI_SI_MODE_ALL_ABORT,
/** always use single invocation techniques */
CEGQI_SI_MODE_ALL,
};
enum SygusInvTemplMode {
/** synthesize I( x ) */
SYGUS_INV_TEMPL_MODE_NONE,
/** synthesize ( pre( x ) V I( x ) ) */
SYGUS_INV_TEMPL_MODE_PRE,
/** synthesize ( post( x ) ^ I( x ) ) */
SYGUS_INV_TEMPL_MODE_POST,
};
enum MacrosQuantMode {
/** infer all definitions */
MACROS_QUANT_MODE_ALL,
/** infer ground definitions */
MACROS_QUANT_MODE_GROUND,
/** infer ground uf definitions */
MACROS_QUANT_MODE_GROUND_UF,
};
enum QuantDSplitMode {
/** never do quantifiers splitting */
QUANT_DSPLIT_MODE_NONE,
/** default */
QUANT_DSPLIT_MODE_DEFAULT,
/** do quantifiers splitting aggressively */
QUANT_DSPLIT_MODE_AGG,
};
enum QuantRepMode {
/** let equality engine choose representatives */
QUANT_REP_MODE_EE,
/** default, choose representatives that appear first */
QUANT_REP_MODE_FIRST,
/** choose representatives that have minimal depth */
QUANT_REP_MODE_DEPTH,
};
enum FmfBoundMinMode {
/** do not minimize bounds */
FMF_BOUND_MIN_NONE,
/** default, minimize integer ranges */
FMF_BOUND_MIN_INT_RANGE,
/** minimize set cardinality ranges */
FMF_BOUND_MIN_SET_CARD,
/** minimize all bounds */
FMF_BOUND_MIN_ALL,
};
}/* CVC4::theory::quantifiers namespace */
}/* CVC4::theory namespace */
std::ostream& operator<<(std::ostream& out, theory::quantifiers::InstWhenMode mode) CVC4_PUBLIC;
}/* CVC4 namespace */
#endif /* __CVC4__BASE__QUANTIFIERS_MODES_H */
|