LMCAS
Lamina Computer Algebra System
载入中...
搜索中...
未找到
conditional_result.hpp
浏览该文件的文档.
1#pragma once
2
3#include <cstddef>
4#include <memory>
5#include <string>
6#include <utility>
7#include <variant>
8#include <vector>
9
10#include "proof_outcome.hpp"
11#include "result.hpp"
12
13namespace LMCAS {
14
15class SymbolicExpr;
16
17
18
19using ExprPtr = std::shared_ptr<SymbolicExpr>;
20
21/**
22 * @brief conditions 是在操作上下文假设下须同时满足的条件。
23 * 空条件保留原表达式定义域且不增加约束;整数参数遍历全体整数。
24 */
27 std::size_t multiplicity = 1;
28 std::vector<ExprPtr> conditions;
29};
30
34 bool lower_closed = true;
35 bool upper_closed = true;
36 std::vector<ExprPtr> conditions;
37};
38
41 std::vector<std::string> integer_parameters;
42 std::vector<ExprPtr> conditions;
43};
44
46 std::string variable;
48 std::vector<ExprPtr> conditions;
49};
50
54 std::vector<FiniteSolution> values;
55};
57 std::vector<IntervalSolution> values;
58};
63 std::vector<ParametricSolution> values;
64};
65
66/**
67 * @brief 成功的 SolveResult 表示操作定义域内的完整解集。
68 * 完备性未决时返回外层 Inconclusive 错误;EmptySolutions 表示已证明的空解集。
69 */
70using SolutionSet = std::variant<
78
79/**
80 * @brief 受检变换成功时返回在 conditions 和收敛域 roc 条件下有效的已求值表达式。
81 * 支持性未决或收敛条件无法表示时,返回外层 Inconclusive 错误。
82 */
85 std::vector<ExprPtr> conditions;
86 std::vector<ExprPtr> roc;
87};
89
90} // namespace LMCAS
std::vector< IntervalSolution > values
std::vector< ExprPtr > conditions
Result< SolutionSet > SolveResult
std::vector< std::string > integer_parameters
std::vector< FiniteSolution > values
std::vector< ExprPtr > conditions
std::shared_ptr< SymbolicExpr > ExprPtr
Result< Verified< EvaluatedTransform > > TransformEngineResult
std::variant< EmptySolutions, UniversalSolutions, FiniteSolutions, IntervalSolutions, ConditionalSolutions, ParametricSolutions > SolutionSet
成功的 SolveResult 表示操作定义域内的完整解集。 完备性未决时返回外层 Inconclusive 错误;EmptySolutions 表示已证明的空解集。
std::vector< ExprPtr > conditions
std::vector< ParametricSolution > values
conditions 是在操作上下文假设下须同时满足的条件。 空条件保留原表达式定义域且不增加约束;整数参数遍历全体整数。
受检变换成功时返回在 conditions 和收敛域 roc 条件下有效的已求值表达式。 支持性未决或收敛条件无法表示时,返回外层 Inconclusive 错误。