3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-08 18:31:49 +00:00
z3/lib/sat_config.h
Leonardo de Moura e9eab22e5c Z3 sources
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2012-10-02 11:35:25 -07:00

92 lines
2.1 KiB
C++

/*++
Copyright (c) 2011 Microsoft Corporation
Module Name:
sat_config.h
Abstract:
SAT main configuration options.
Sub-components have their own options.
Author:
Leonardo de Moura (leonardo) 2011-05-21.
Revision History:
--*/
#ifndef _SAT_CONFIG_H_
#define _SAT_CONFIG_H_
#include"params.h"
namespace sat {
enum phase_selection {
PS_ALWAYS_TRUE,
PS_ALWAYS_FALSE,
PS_CACHING,
PS_RANDOM
};
enum restart_strategy {
RS_GEOMETRIC,
RS_LUBY
};
enum gc_strategy {
GC_DYN_PSM,
GC_PSM,
GC_GLUE,
GC_GLUE_PSM,
GC_PSM_GLUE
};
struct config {
unsigned long long m_max_memory;
phase_selection m_phase;
unsigned m_phase_caching_on;
unsigned m_phase_caching_off;
restart_strategy m_restart;
unsigned m_restart_initial;
double m_restart_factor; // for geometric case
double m_random_freq;
unsigned m_burst_search;
unsigned m_max_conflicts;
unsigned m_simplify_mult1;
double m_simplify_mult2;
unsigned m_simplify_max;
gc_strategy m_gc_strategy;
unsigned m_gc_initial;
unsigned m_gc_increment;
unsigned m_gc_small_lbd;
unsigned m_gc_k;
bool m_minimize_lemmas;
bool m_dyn_sub_res;
symbol m_always_true;
symbol m_always_false;
symbol m_caching;
symbol m_random;
symbol m_geometric;
symbol m_luby;
symbol m_dyn_psm;
symbol m_psm;
symbol m_glue;
symbol m_glue_psm;
symbol m_psm_glue;
config(params_ref const & p);
void updt_params(params_ref const & p);
static void collect_param_descrs(param_descrs & d);
};
};
#endif