LMCAS
Lamina Computer Algebra System
载入中...
搜索中...
未找到
residual_verification.hpp
浏览该文件的文档.
1#pragma once
2
5#include "proof_outcome.hpp"
6#include "result.hpp"
7#include "symbolic.hpp"
8
9#include <variant>
10
11namespace LMCAS {
12
13
14/** @brief 在表达式的原公共定义域上认证值相等;点值定义域与分母条件需另行证明。 */
18
19/**
20 * @brief 证明残差在原公共定义域上非恒零,例如非零有理多项式。
21 * 残差仍可能在特定参数值处为零;点值不等性、定义域及上下文假设下的非零性均需另行证明。
22 */
26
30
31using ResidualCheck = std::variant<
35
37
38/**
39 * @brief 成功时返回恒等、非恒等或未知分类,计算错误由外层 Result 返回。
40 * 假设可辅助恒等规则;形式非恒等与点值事实分别判定,未知分类仍属成功返回。
41 */
42
44 const ExprPtr& residual,
46 const LMCAS::EqvOptions& options = {});
47
49 const ExprPtr& left,
50 const ExprPtr& right,
52 const LMCAS::EqvOptions& options = {});
53
54} // namespace LMCAS
#define LMCAS_API
const std::vector< Polynomial< BigInt > > const BigInt ComputationContext & context
ResidualCheckResult check_equivalent(const ExprPtr &left, const ExprPtr &right, ComputationContext &context, const LMCAS::EqvOptions &options)
std::variant< ByConstructionProof, ExactNormalizationProof, ExactResidualProof, ExactRoundTripProof > ProofCertificate
const std::string ComputationContext const SolveOptions & options
Result< ResidualCheck > ResidualCheckResult
std::shared_ptr< SymbolicExpr > ExprPtr
std::variant< ProvedZeroResidual, ProvedNonIdentityResidual, UnprovedResidual > ResidualCheck
const ExprPtr & right
ResidualCheckResult check_zero_residual(const ExprPtr &residual, ComputationContext &context, const LMCAS::EqvOptions &options)
在表达式的原公共定义域上认证值相等;点值定义域与分母条件需另行证明。
证明残差在原公共定义域上非恒零,例如非零有理多项式。 残差仍可能在特定参数值处为零;点值不等性、定义域及上下文假设下的非零性均需另行证明。
符号表达式主类 SymbolicExpr 及其工厂方法,运算接口.