LMCAS
Lamina Computer Algebra System
载入中...
搜索中...
未找到
assumption.hpp
浏览该文件的文档.
1/**
2 * @file assumption.hpp
3 * @brief Core enumerations and forward declarations for the Assumption System.
4 *
5 * Defines Domain, Sign, Parity, Boundedness, and Tribool enumerations used
6 * throughout the assumption-based reasoning layers (PropertyStore, RelationStore,
7 * InferenceEngine, AssumptionContext, QueryInterface).
8 */
9#pragma once
10
11namespace LMCAS {
12
13/// Mathematical domain hierarchy (least specific → most specific).
14/// Complex ⊃ Real ⊃ Algebraic ⊃ Rational ⊃ Integer ⊃ Natural ⊃ PositiveInt
15enum class Domain {
16 Complex, ///< Complex numbers (default, least specific)
17 Real, ///< Real numbers
18 Algebraic, ///< Algebraic numbers (roots of polynomials with rational coefficients)
19 Rational, ///< Rational numbers
20 Integer, ///< Integers
21 Natural, ///< Non-negative integers (0, 1, 2, ...)
22 PositiveInt ///< Positive integers (1, 2, 3, ...)
23};
24
25/// Sign classification for symbols and expressions.
26enum class Sign {
27 Positive, ///< > 0
28 Negative, ///< < 0
29 NonNegative, ///< >= 0
30 NonPositive, ///< <= 0
31 Zero, ///< == 0
32 NonZero ///< != 0
33};
34
35/// Integer parity classification.
36enum class Parity {
37 Even, ///< Even integer
38 Odd, ///< Odd integer
39 Unknown ///< Parity not determined
40};
41
42/// Boundedness classification for symbols.
43enum class Boundedness {
44 Bounded, ///< Symbol has finite bounds
45 Unbounded, ///< Symbol is unbounded
46 Unknown ///< Boundedness not determined
47};
48
49/// Tri-state logic value for property queries.
50enum class Tribool {
51 True, ///< Property definitely holds
52 False, ///< Property definitely does not hold
53 Unknown ///< Property cannot be determined
54};
55
56/// Monotonicity classification for functions over intervals.
57enum class Monotonicity {
58 Increasing, ///< Strictly increasing
59 Decreasing, ///< Strictly decreasing
60 NonDecreasing, ///< Non-decreasing (weakly increasing)
61 NonIncreasing, ///< Non-increasing (weakly decreasing)
62 Unknown ///< Monotonicity not determined
63};
64
65/// Matrix definiteness classification.
66enum class Definiteness {
67 PositiveDefinite, ///< All eigenvalues positive
68 PositiveSemiDefinite, ///< All eigenvalues non-negative
69 NegativeDefinite, ///< All eigenvalues negative
70 NegativeSemiDefinite, ///< All eigenvalues non-positive
71 Indefinite, ///< Mixed eigenvalue signs
72 Unknown ///< Definiteness not determined
73};
74
75/// Finiteness classification for limits and sequences.
76enum class Finiteness {
77 Finite, ///< Has a finite value or limit
78 Divergent, ///< Diverges to infinity or oscillates
79 Unknown ///< Finiteness not determined
80};
81
82// Forward declarations for assumption system components
83class PropertyStore;
84class RelationStore;
85class InferenceEngine;
86class AssumptionContext;
87class QueryInterface;
88
89} // namespace LMCAS
Domain
Mathematical domain hierarchy (least specific → most specific). Complex ⊃ Real ⊃ Algebraic ⊃ Rational...
@ Natural
Non-negative integers (0, 1, 2, ...)
@ Real
Real numbers
@ PositiveInt
Positive integers (1, 2, 3, ...)
Boundedness
Boundedness classification for symbols.
@ Unbounded
Symbol is unbounded
@ Bounded
Symbol has finite bounds
Tribool
Tri-state logic value for property queries.
@ True
Property definitely holds
@ False
Property definitely does not hold
Monotonicity
Monotonicity classification for functions over intervals.
@ NonDecreasing
Non-decreasing (weakly increasing)
@ Decreasing
Strictly decreasing
@ NonIncreasing
Non-increasing (weakly decreasing)
@ Increasing
Strictly increasing
Definiteness
Matrix definiteness classification.
@ NegativeSemiDefinite
All eigenvalues non-positive
@ NegativeDefinite
All eigenvalues negative
@ PositiveSemiDefinite
All eigenvalues non-negative
@ PositiveDefinite
All eigenvalues positive
@ Indefinite
Mixed eigenvalue signs
Finiteness
Finiteness classification for limits and sequences.
@ Finite
Has a finite value or limit
@ Divergent
Diverges to infinity or oscillates
Parity
Integer parity classification.
@ Even
Even integer
@ Unknown
Parity not determined
Sign
Sign classification for symbols and expressions.