Connect++ 0.3.0
A fast, readable connection prover for first-order logic.
Loading...
Searching...
No Matches
Parameters.hpp
1/*
2
3Copyright © 2023-24 Sean Holden. All rights reserved.
4
5*/
6/*
7
8This file is part of Connect++.
9
10Connect++ is free software: you can redistribute it and/or modify it
11under the terms of the GNU General Public License as published by the
12Free Software Foundation, either version 3 of the License, or (at your
13option) any later version.
14
15Connect++ is distributed in the hope that it will be useful, but WITHOUT
16ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
17FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
18more details.
19
20You should have received a copy of the GNU General Public License along
21with Connect++. If not, see <https://www.gnu.org/licenses/>.
22
23*/
24
25#ifndef PARAMETERS_HPP
26#define PARAMETERS_HPP
27
28#include <cstdint>
29#include <filesystem>
30
45struct params {
46 //------------------------------------------------------------------
47 // Cosmetic output options.
48 //------------------------------------------------------------------
49 static uint8_t verbosity;
50 static bool use_colours;
51 static uint8_t indent_size;
52 static uint8_t output_width;
53 static uint32_t output_frequency;
54 static bool output_terms_with_substitution; // Only applies to the use of
55 // operator<<
56 static std::string problem_name;
57 static bool write_output_summary;
58 static std::string definitional_predicate_prefix;
59 static std::string unique_var_prefix;
60 static std::string unique_skolem_prefix;
61 //------------------------------------------------------------------
62 // CNF conversion.
63 //------------------------------------------------------------------
64 static bool miniscope;
65 static bool all_definitional;
66 static bool no_definitional;
67 //------------------------------------------------------------------
68 // Equality axioms.
69 //------------------------------------------------------------------
70 static bool add_equality_axioms;
71 static bool equality_axioms_at_start;
72 static bool all_distinct_objects;
73 static bool no_distinct_objects;
74 //------------------------------------------------------------------
75 // Reordering
76 //------------------------------------------------------------------
77 static unsigned random_seed;
78 static uint32_t boost_random_seed;
79 static bool deterministic_reorder;
80 static uint32_t number_of_reorders;
81 static bool random_reorder;
82 //------------------------------------------------------------------
83 // Timeout.
84 //------------------------------------------------------------------
85 static bool timeout;
86 static uint32_t timeout_value;
87 //------------------------------------------------------------------
88 // Use of schedule.
89 //------------------------------------------------------------------
90 // Positive/negative representation.
91 //------------------------------------------------------------------
92 static bool positive_representation;
93 //------------------------------------------------------------------
94 static bool use_schedule;
95 //------------------------------------------------------------------
96 // Deepening.
97 //------------------------------------------------------------------
98 static uint32_t start_depth;
99 static uint32_t depth_limit;
100 static uint32_t depth_increment;
101 static bool limit_by_tree_depth;
102 //------------------------------------------------------------------
103 // Start clauses.
104 //------------------------------------------------------------------
105 static bool all_start;
106 static bool all_pos_neg_start;
107 static bool conjecture_start;
108 static bool restrict_start;
109 //------------------------------------------------------------------
110 // Use of regularity test.
111 //------------------------------------------------------------------
112 static bool use_regularity_test;
113 //------------------------------------------------------------------
114 // Various basic limitations of search.
115 //------------------------------------------------------------------
116 static bool use_lemmata;
117 static bool limit_lemmata;
118 static bool limit_reductions;
119 static bool limit_extensions;
120 static bool limit_bt_all;
121 static bool limit_bt_lemmas;
122 static bool limit_bt_reductions;
123 static bool limit_bt_extensions;
124 static bool limit_bt_extensions_left_tree;
125 static bool hard_prune;
126 //------------------------------------------------------------------
127 // Move to a complete search.
128 //------------------------------------------------------------------
129 static uint32_t switch_to_complete;
130 //------------------------------------------------------------------
131 // Generation of proof for output.
132 //------------------------------------------------------------------
133 static bool verify_proof_verbose;
134 static bool verify_proof;
135 static bool build_proof;
136 static bool generate_LaTeX_proof;
137 static bool sub_LaTeX_proof;
138 static int latex_truncation_length;
139 static bool latex_tiny_proof;
140 static bool latex_include_matrix;
141 static bool generate_Prolog_proof;
142 static bool generate_tptp_proof;
143 static std::string tptp_conversion_string;
144 //------------------------------------------------------------------
145 // Assorted file paths.
146 //------------------------------------------------------------------
147 static std::filesystem::path LaTeX_proof_path;
148 static std::filesystem::path Prolog_matrix_path;
149 static std::filesystem::path Prolog_proof_path;
150 static std::filesystem::path output_summary_path;
151 static std::filesystem::path schedule_path;
152 static std::filesystem::path tptp_path;
153 static std::filesystem::path pwd_path;
154 static std::filesystem::path connectpp_path;
155 static std::filesystem::path full_problem_path;
156 //------------------------------------------------------------------
157 // Default schedule.
158 //------------------------------------------------------------------
159 static std::string default_schedule;
160 static void set_default_schedule();
161 //------------------------------------------------------------------
162 // Other output options.
163 //------------------------------------------------------------------
164 static bool show_clauses;
176 static void set_complete_parameters();
180 static bool search_is_complete();
184 static void set_all_backtrack();
188 static bool no_start_options();
192 static void correct_missing_start_options();
196 static void set_all_start();
197};
198
199#endif
Structure containing all the command line and other options.
static void set_default_schedule_parameters()
Self-explanatory.
static void set_all_backtrack()
Self-explanatory.
static void set_all_start()
Self-explanatory.
static void set_complete_parameters()
Change the parameters to make the search complete.
static bool no_start_options()
Self-explanatory.
static void correct_missing_start_options()
Self-explanatory.
static bool search_is_complete()
Self-explanatory.