/*********************                                                        */
/** options.h
 **
 ** Copyright 2011-2014  New York University and The University of Iowa,
 ** and as below.
 **
 ** This file automatically generated by:
 **
 **     /home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/mkoptions /home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/base_options_template.h ../theory/bv/options.h
 **
 ** for the CVC4 project.
 **/

/* THIS FILE IS AUTOMATICALLY GENERATED, DO NOT EDIT ! */
/* THIS FILE IS AUTOMATICALLY GENERATED, DO NOT EDIT ! */
/* THIS FILE IS AUTOMATICALLY GENERATED, DO NOT EDIT ! */
/* THIS FILE IS AUTOMATICALLY GENERATED, DO NOT EDIT ! */
/* THIS FILE IS AUTOMATICALLY GENERATED, DO NOT EDIT ! */
/* THIS FILE IS AUTOMATICALLY GENERATED, DO NOT EDIT ! */

/* THIS FILE IS AUTOMATICALLY GENERATED, DO NOT EDIT ! */
/* THIS FILE IS AUTOMATICALLY GENERATED, DO NOT EDIT ! */
/* THIS FILE IS AUTOMATICALLY GENERATED, DO NOT EDIT ! */
/* THIS FILE IS AUTOMATICALLY GENERATED, DO NOT EDIT ! */
/* THIS FILE IS AUTOMATICALLY GENERATED, DO NOT EDIT ! */
/* THIS FILE IS AUTOMATICALLY GENERATED, DO NOT EDIT ! */

/* Edit the template file instead.                     */

/*********************                                                        */
/*! \file base_options_template.h
 ** \verbatim
 ** Original author: Morgan Deters
 ** Major contributors: none
 ** Minor contributors (to current version): none
 ** This file is part of the CVC4 project.
 ** Copyright (c) 2009-2014  New York University and The University of Iowa
 ** See the file COPYING in the top-level source directory for licensing
 ** information.\endverbatim
 **
 ** \brief Contains code for handling command-line options.
 **
 ** Contains code for handling command-line options
 **/

#include <cvc4/cvc4_public.h>

#ifndef __CVC4__OPTIONS__BV_H
#define __CVC4__OPTIONS__BV_H

#include <cvc4/options/options.h>

#line 10 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
#include <cvc4/theory/bv/bitblast_mode.h>
#line 29 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
#include <cvc4/theory/bv/bitblast_mode.h>

#line 26 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/base_options_template.h"

#define CVC4_OPTIONS__BV__FOR_OPTION_HOLDER \
  bitblastMode__option_t::type bitblastMode; \
  bool bitblastMode__setByUser__; \
  bitvectorAig__option_t::type bitvectorAig; \
  bool bitvectorAig__setByUser__; \
  bitvectorAigSimplifications__option_t::type bitvectorAigSimplifications; \
  bool bitvectorAigSimplifications__setByUser__; \
  bitvectorPropagate__option_t::type bitvectorPropagate; \
  bool bitvectorPropagate__setByUser__; \
  bitvectorEqualitySolver__option_t::type bitvectorEqualitySolver; \
  bool bitvectorEqualitySolver__setByUser__; \
  bitvectorEqualitySlicer__option_t::type bitvectorEqualitySlicer; \
  bool bitvectorEqualitySlicer__setByUser__; \
  bitvectorInequalitySolver__option_t::type bitvectorInequalitySolver; \
  bool bitvectorInequalitySolver__setByUser__; \
  bitvectorAlgebraicSolver__option_t::type bitvectorAlgebraicSolver; \
  bool bitvectorAlgebraicSolver__setByUser__; \
  bitvectorAlgebraicBudget__option_t::type bitvectorAlgebraicBudget; \
  bool bitvectorAlgebraicBudget__setByUser__; \
  bitvectorToBool__option_t::type bitvectorToBool; \
  bool bitvectorToBool__setByUser__; \
  bitvectorDivByZeroConst__option_t::type bitvectorDivByZeroConst; \
  bool bitvectorDivByZeroConst__setByUser__; \
  bvAbstraction__option_t::type bvAbstraction; \
  bool bvAbstraction__setByUser__; \
  skolemizeArguments__option_t::type skolemizeArguments; \
  bool skolemizeArguments__setByUser__; \
  bvNumFunc__option_t::type bvNumFunc; \
  bool bvNumFunc__setByUser__; \
  bvEagerExplanations__option_t::type bvEagerExplanations; \
  bool bvEagerExplanations__setByUser__; \
  bitvectorQuickXplain__option_t::type bitvectorQuickXplain; \
  bool bitvectorQuickXplain__setByUser__; \
  bvIntroducePow2__option_t::type bvIntroducePow2; \
  bool bvIntroducePow2__setByUser__;

#line 30 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/base_options_template.h"

namespace CVC4 {

namespace options {


#line 10 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
extern struct CVC4_PUBLIC bitblastMode__option_t { typedef CVC4::theory::bv::BitblastMode type; type operator()() const; bool wasSetByUser() const; void set(const type& v); } bitblastMode CVC4_PUBLIC;
#line 15 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
extern struct CVC4_PUBLIC bitvectorAig__option_t { typedef bool type; type operator()() const; bool wasSetByUser() const; void set(const type& v); } bitvectorAig CVC4_PUBLIC;
#line 18 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
extern struct CVC4_PUBLIC bitvectorAigSimplifications__option_t { typedef std::string type; type operator()() const; bool wasSetByUser() const; void set(const type& v); } bitvectorAigSimplifications CVC4_PUBLIC;
#line 23 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
extern struct CVC4_PUBLIC bitvectorPropagate__option_t { typedef bool type; type operator()() const; bool wasSetByUser() const; void set(const type& v); } bitvectorPropagate CVC4_PUBLIC;
#line 26 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
extern struct CVC4_PUBLIC bitvectorEqualitySolver__option_t { typedef bool type; type operator()() const; bool wasSetByUser() const; void set(const type& v); } bitvectorEqualitySolver CVC4_PUBLIC;
#line 29 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
extern struct CVC4_PUBLIC bitvectorEqualitySlicer__option_t { typedef CVC4::theory::bv::BvSlicerMode type; type operator()() const; bool wasSetByUser() const; void set(const type& v); } bitvectorEqualitySlicer CVC4_PUBLIC;
#line 32 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
extern struct CVC4_PUBLIC bitvectorInequalitySolver__option_t { typedef bool type; type operator()() const; bool wasSetByUser() const; void set(const type& v); } bitvectorInequalitySolver CVC4_PUBLIC;
#line 35 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
extern struct CVC4_PUBLIC bitvectorAlgebraicSolver__option_t { typedef bool type; type operator()() const; bool wasSetByUser() const; void set(const type& v); } bitvectorAlgebraicSolver CVC4_PUBLIC;
#line 38 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
extern struct CVC4_PUBLIC bitvectorAlgebraicBudget__option_t { typedef unsigned type; type operator()() const; bool wasSetByUser() const; void set(const type& v); } bitvectorAlgebraicBudget CVC4_PUBLIC;
#line 43 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
extern struct CVC4_PUBLIC bitvectorToBool__option_t { typedef bool type; type operator()() const; bool wasSetByUser() const; void set(const type& v); } bitvectorToBool CVC4_PUBLIC;
#line 46 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
extern struct CVC4_PUBLIC bitvectorDivByZeroConst__option_t { typedef bool type; type operator()() const; bool wasSetByUser() const; } bitvectorDivByZeroConst CVC4_PUBLIC;
#line 49 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
extern struct CVC4_PUBLIC bvAbstraction__option_t { typedef bool type; type operator()() const; bool wasSetByUser() const; void set(const type& v); } bvAbstraction CVC4_PUBLIC;
#line 52 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
extern struct CVC4_PUBLIC skolemizeArguments__option_t { typedef bool type; type operator()() const; bool wasSetByUser() const; void set(const type& v); } skolemizeArguments CVC4_PUBLIC;
#line 55 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
extern struct CVC4_PUBLIC bvNumFunc__option_t { typedef unsigned type; type operator()() const; bool wasSetByUser() const; } bvNumFunc CVC4_PUBLIC;
#line 58 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
extern struct CVC4_PUBLIC bvEagerExplanations__option_t { typedef bool type; type operator()() const; bool wasSetByUser() const; void set(const type& v); } bvEagerExplanations CVC4_PUBLIC;
#line 61 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
extern struct CVC4_PUBLIC bitvectorQuickXplain__option_t { typedef bool type; type operator()() const; bool wasSetByUser() const; } bitvectorQuickXplain CVC4_PUBLIC;
#line 64 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
extern struct CVC4_PUBLIC bvIntroducePow2__option_t { typedef bool type; type operator()() const; bool wasSetByUser() const; } bvIntroducePow2 CVC4_PUBLIC;

#line 38 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/base_options_template.h"

}/* CVC4::options namespace */


#line 10 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
template <> void Options::set(options::bitblastMode__option_t, const options::bitblastMode__option_t::type& x);
#line 10 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
template <> const options::bitblastMode__option_t::type& Options::operator[](options::bitblastMode__option_t) const;
#line 10 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
template <> bool Options::wasSetByUser(options::bitblastMode__option_t) const;
#line 10 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
template <> void Options::assign(options::bitblastMode__option_t, std::string option, std::string value, SmtEngine* smt);
#line 15 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
template <> void Options::set(options::bitvectorAig__option_t, const options::bitvectorAig__option_t::type& x);
#line 15 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
template <> const options::bitvectorAig__option_t::type& Options::operator[](options::bitvectorAig__option_t) const;
#line 15 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
template <> bool Options::wasSetByUser(options::bitvectorAig__option_t) const;
#line 15 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
template <> void Options::assignBool(options::bitvectorAig__option_t, std::string option, bool value, SmtEngine* smt);
#line 18 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
template <> void Options::set(options::bitvectorAigSimplifications__option_t, const options::bitvectorAigSimplifications__option_t::type& x);
#line 18 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
template <> const options::bitvectorAigSimplifications__option_t::type& Options::operator[](options::bitvectorAigSimplifications__option_t) const;
#line 18 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
template <> bool Options::wasSetByUser(options::bitvectorAigSimplifications__option_t) const;
#line 18 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
template <> void Options::assign(options::bitvectorAigSimplifications__option_t, std::string option, std::string value, SmtEngine* smt);
#line 23 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
template <> void Options::set(options::bitvectorPropagate__option_t, const options::bitvectorPropagate__option_t::type& x);
#line 23 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
template <> const options::bitvectorPropagate__option_t::type& Options::operator[](options::bitvectorPropagate__option_t) const;
#line 23 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
template <> bool Options::wasSetByUser(options::bitvectorPropagate__option_t) const;
#line 23 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
template <> void Options::assignBool(options::bitvectorPropagate__option_t, std::string option, bool value, SmtEngine* smt);
#line 26 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
template <> void Options::set(options::bitvectorEqualitySolver__option_t, const options::bitvectorEqualitySolver__option_t::type& x);
#line 26 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
template <> const options::bitvectorEqualitySolver__option_t::type& Options::operator[](options::bitvectorEqualitySolver__option_t) const;
#line 26 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
template <> bool Options::wasSetByUser(options::bitvectorEqualitySolver__option_t) const;
#line 26 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
template <> void Options::assignBool(options::bitvectorEqualitySolver__option_t, std::string option, bool value, SmtEngine* smt);
#line 29 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
template <> void Options::set(options::bitvectorEqualitySlicer__option_t, const options::bitvectorEqualitySlicer__option_t::type& x);
#line 29 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
template <> const options::bitvectorEqualitySlicer__option_t::type& Options::operator[](options::bitvectorEqualitySlicer__option_t) const;
#line 29 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
template <> bool Options::wasSetByUser(options::bitvectorEqualitySlicer__option_t) const;
#line 29 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
template <> void Options::assign(options::bitvectorEqualitySlicer__option_t, std::string option, std::string value, SmtEngine* smt);
#line 32 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
template <> void Options::set(options::bitvectorInequalitySolver__option_t, const options::bitvectorInequalitySolver__option_t::type& x);
#line 32 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
template <> const options::bitvectorInequalitySolver__option_t::type& Options::operator[](options::bitvectorInequalitySolver__option_t) const;
#line 32 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
template <> bool Options::wasSetByUser(options::bitvectorInequalitySolver__option_t) const;
#line 32 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
template <> void Options::assignBool(options::bitvectorInequalitySolver__option_t, std::string option, bool value, SmtEngine* smt);
#line 35 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
template <> void Options::set(options::bitvectorAlgebraicSolver__option_t, const options::bitvectorAlgebraicSolver__option_t::type& x);
#line 35 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
template <> const options::bitvectorAlgebraicSolver__option_t::type& Options::operator[](options::bitvectorAlgebraicSolver__option_t) const;
#line 35 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
template <> bool Options::wasSetByUser(options::bitvectorAlgebraicSolver__option_t) const;
#line 35 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
template <> void Options::assignBool(options::bitvectorAlgebraicSolver__option_t, std::string option, bool value, SmtEngine* smt);
#line 38 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
template <> void Options::set(options::bitvectorAlgebraicBudget__option_t, const options::bitvectorAlgebraicBudget__option_t::type& x);
#line 38 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
template <> const options::bitvectorAlgebraicBudget__option_t::type& Options::operator[](options::bitvectorAlgebraicBudget__option_t) const;
#line 38 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
template <> bool Options::wasSetByUser(options::bitvectorAlgebraicBudget__option_t) const;
#line 38 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
template <> void Options::assign(options::bitvectorAlgebraicBudget__option_t, std::string option, std::string value, SmtEngine* smt);
#line 43 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
template <> void Options::set(options::bitvectorToBool__option_t, const options::bitvectorToBool__option_t::type& x);
#line 43 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
template <> const options::bitvectorToBool__option_t::type& Options::operator[](options::bitvectorToBool__option_t) const;
#line 43 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
template <> bool Options::wasSetByUser(options::bitvectorToBool__option_t) const;
#line 43 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
template <> void Options::assignBool(options::bitvectorToBool__option_t, std::string option, bool value, SmtEngine* smt);
#line 46 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
template <> const options::bitvectorDivByZeroConst__option_t::type& Options::operator[](options::bitvectorDivByZeroConst__option_t) const;
#line 46 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
template <> bool Options::wasSetByUser(options::bitvectorDivByZeroConst__option_t) const;
#line 46 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
template <> void Options::assignBool(options::bitvectorDivByZeroConst__option_t, std::string option, bool value, SmtEngine* smt);
#line 49 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
template <> void Options::set(options::bvAbstraction__option_t, const options::bvAbstraction__option_t::type& x);
#line 49 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
template <> const options::bvAbstraction__option_t::type& Options::operator[](options::bvAbstraction__option_t) const;
#line 49 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
template <> bool Options::wasSetByUser(options::bvAbstraction__option_t) const;
#line 49 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
template <> void Options::assignBool(options::bvAbstraction__option_t, std::string option, bool value, SmtEngine* smt);
#line 52 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
template <> void Options::set(options::skolemizeArguments__option_t, const options::skolemizeArguments__option_t::type& x);
#line 52 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
template <> const options::skolemizeArguments__option_t::type& Options::operator[](options::skolemizeArguments__option_t) const;
#line 52 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
template <> bool Options::wasSetByUser(options::skolemizeArguments__option_t) const;
#line 52 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
template <> void Options::assignBool(options::skolemizeArguments__option_t, std::string option, bool value, SmtEngine* smt);
#line 55 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
template <> const options::bvNumFunc__option_t::type& Options::operator[](options::bvNumFunc__option_t) const;
#line 55 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
template <> bool Options::wasSetByUser(options::bvNumFunc__option_t) const;
#line 55 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
template <> void Options::assign(options::bvNumFunc__option_t, std::string option, std::string value, SmtEngine* smt);
#line 58 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
template <> void Options::set(options::bvEagerExplanations__option_t, const options::bvEagerExplanations__option_t::type& x);
#line 58 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
template <> const options::bvEagerExplanations__option_t::type& Options::operator[](options::bvEagerExplanations__option_t) const;
#line 58 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
template <> bool Options::wasSetByUser(options::bvEagerExplanations__option_t) const;
#line 58 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
template <> void Options::assignBool(options::bvEagerExplanations__option_t, std::string option, bool value, SmtEngine* smt);
#line 61 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
template <> const options::bitvectorQuickXplain__option_t::type& Options::operator[](options::bitvectorQuickXplain__option_t) const;
#line 61 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
template <> bool Options::wasSetByUser(options::bitvectorQuickXplain__option_t) const;
#line 61 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
template <> void Options::assignBool(options::bitvectorQuickXplain__option_t, std::string option, bool value, SmtEngine* smt);
#line 64 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
template <> const options::bvIntroducePow2__option_t::type& Options::operator[](options::bvIntroducePow2__option_t) const;
#line 64 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
template <> bool Options::wasSetByUser(options::bvIntroducePow2__option_t) const;
#line 64 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
template <> void Options::assignBool(options::bvIntroducePow2__option_t, std::string option, bool value, SmtEngine* smt);

#line 44 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/base_options_template.h"

namespace options {


#line 10 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
inline bitblastMode__option_t::type bitblastMode__option_t::operator()() const { return Options::current()[*this]; }
#line 10 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
inline bool bitblastMode__option_t::wasSetByUser() const { return Options::current().wasSetByUser(*this); }
#line 10 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
inline void bitblastMode__option_t::set(const bitblastMode__option_t::type& v) { Options::current().set(*this, v); }

#line 15 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
inline bitvectorAig__option_t::type bitvectorAig__option_t::operator()() const { return Options::current()[*this]; }
#line 15 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
inline bool bitvectorAig__option_t::wasSetByUser() const { return Options::current().wasSetByUser(*this); }
#line 15 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
inline void bitvectorAig__option_t::set(const bitvectorAig__option_t::type& v) { Options::current().set(*this, v); }

#line 18 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
inline bitvectorAigSimplifications__option_t::type bitvectorAigSimplifications__option_t::operator()() const { return Options::current()[*this]; }
#line 18 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
inline bool bitvectorAigSimplifications__option_t::wasSetByUser() const { return Options::current().wasSetByUser(*this); }
#line 18 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
inline void bitvectorAigSimplifications__option_t::set(const bitvectorAigSimplifications__option_t::type& v) { Options::current().set(*this, v); }

#line 23 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
inline bitvectorPropagate__option_t::type bitvectorPropagate__option_t::operator()() const { return Options::current()[*this]; }
#line 23 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
inline bool bitvectorPropagate__option_t::wasSetByUser() const { return Options::current().wasSetByUser(*this); }
#line 23 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
inline void bitvectorPropagate__option_t::set(const bitvectorPropagate__option_t::type& v) { Options::current().set(*this, v); }

#line 26 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
inline bitvectorEqualitySolver__option_t::type bitvectorEqualitySolver__option_t::operator()() const { return Options::current()[*this]; }
#line 26 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
inline bool bitvectorEqualitySolver__option_t::wasSetByUser() const { return Options::current().wasSetByUser(*this); }
#line 26 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
inline void bitvectorEqualitySolver__option_t::set(const bitvectorEqualitySolver__option_t::type& v) { Options::current().set(*this, v); }

#line 29 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
inline bitvectorEqualitySlicer__option_t::type bitvectorEqualitySlicer__option_t::operator()() const { return Options::current()[*this]; }
#line 29 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
inline bool bitvectorEqualitySlicer__option_t::wasSetByUser() const { return Options::current().wasSetByUser(*this); }
#line 29 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
inline void bitvectorEqualitySlicer__option_t::set(const bitvectorEqualitySlicer__option_t::type& v) { Options::current().set(*this, v); }

#line 32 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
inline bitvectorInequalitySolver__option_t::type bitvectorInequalitySolver__option_t::operator()() const { return Options::current()[*this]; }
#line 32 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
inline bool bitvectorInequalitySolver__option_t::wasSetByUser() const { return Options::current().wasSetByUser(*this); }
#line 32 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
inline void bitvectorInequalitySolver__option_t::set(const bitvectorInequalitySolver__option_t::type& v) { Options::current().set(*this, v); }

#line 35 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
inline bitvectorAlgebraicSolver__option_t::type bitvectorAlgebraicSolver__option_t::operator()() const { return Options::current()[*this]; }
#line 35 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
inline bool bitvectorAlgebraicSolver__option_t::wasSetByUser() const { return Options::current().wasSetByUser(*this); }
#line 35 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
inline void bitvectorAlgebraicSolver__option_t::set(const bitvectorAlgebraicSolver__option_t::type& v) { Options::current().set(*this, v); }

#line 38 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
inline bitvectorAlgebraicBudget__option_t::type bitvectorAlgebraicBudget__option_t::operator()() const { return Options::current()[*this]; }
#line 38 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
inline bool bitvectorAlgebraicBudget__option_t::wasSetByUser() const { return Options::current().wasSetByUser(*this); }
#line 38 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
inline void bitvectorAlgebraicBudget__option_t::set(const bitvectorAlgebraicBudget__option_t::type& v) { Options::current().set(*this, v); }

#line 43 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
inline bitvectorToBool__option_t::type bitvectorToBool__option_t::operator()() const { return Options::current()[*this]; }
#line 43 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
inline bool bitvectorToBool__option_t::wasSetByUser() const { return Options::current().wasSetByUser(*this); }
#line 43 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
inline void bitvectorToBool__option_t::set(const bitvectorToBool__option_t::type& v) { Options::current().set(*this, v); }

#line 46 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
inline bitvectorDivByZeroConst__option_t::type bitvectorDivByZeroConst__option_t::operator()() const { return Options::current()[*this]; }
#line 46 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
inline bool bitvectorDivByZeroConst__option_t::wasSetByUser() const { return Options::current().wasSetByUser(*this); }

#line 49 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
inline bvAbstraction__option_t::type bvAbstraction__option_t::operator()() const { return Options::current()[*this]; }
#line 49 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
inline bool bvAbstraction__option_t::wasSetByUser() const { return Options::current().wasSetByUser(*this); }
#line 49 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
inline void bvAbstraction__option_t::set(const bvAbstraction__option_t::type& v) { Options::current().set(*this, v); }

#line 52 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
inline skolemizeArguments__option_t::type skolemizeArguments__option_t::operator()() const { return Options::current()[*this]; }
#line 52 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
inline bool skolemizeArguments__option_t::wasSetByUser() const { return Options::current().wasSetByUser(*this); }
#line 52 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
inline void skolemizeArguments__option_t::set(const skolemizeArguments__option_t::type& v) { Options::current().set(*this, v); }

#line 55 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
inline bvNumFunc__option_t::type bvNumFunc__option_t::operator()() const { return Options::current()[*this]; }
#line 55 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
inline bool bvNumFunc__option_t::wasSetByUser() const { return Options::current().wasSetByUser(*this); }

#line 58 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
inline bvEagerExplanations__option_t::type bvEagerExplanations__option_t::operator()() const { return Options::current()[*this]; }
#line 58 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
inline bool bvEagerExplanations__option_t::wasSetByUser() const { return Options::current().wasSetByUser(*this); }
#line 58 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
inline void bvEagerExplanations__option_t::set(const bvEagerExplanations__option_t::type& v) { Options::current().set(*this, v); }

#line 61 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
inline bitvectorQuickXplain__option_t::type bitvectorQuickXplain__option_t::operator()() const { return Options::current()[*this]; }
#line 61 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
inline bool bitvectorQuickXplain__option_t::wasSetByUser() const { return Options::current().wasSetByUser(*this); }

#line 64 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
inline bvIntroducePow2__option_t::type bvIntroducePow2__option_t::operator()() const { return Options::current()[*this]; }
#line 64 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/../theory/bv/options"
inline bool bvIntroducePow2__option_t::wasSetByUser() const { return Options::current().wasSetByUser(*this); }

#line 50 "/home/mdeters/cvc4/builds/x86_64-unknown-linux-gnu/production/../../../src/options/base_options_template.h"

}/* CVC4::options namespace */

}/* CVC4 namespace */

#endif /* __CVC4__OPTIONS__BV_H */
