* Assume `symbol bound` by delegating to `assumeInequality` (which * performs the §4.3 consistency checks and stores the normalized fact). * * Non-numeric or infinite bounds are skipped: membership in * `Range(1, +∞)` yields only the lower bound fact.
( ce: ComputeEngine, symbol: string, op: 'Less' | 'LessEqual' | 'Greater' | 'GreaterEqual', bound: Expression )
| 998 | } |
| 999 | |
| 1000 | if ( |
| 1001 | assumeBound(ce, symbol, loStrict ? 'Greater' : 'GreaterEqual', lo) === |
| 1002 | 'contradiction' |
| 1003 | ) |
| 1004 | return 'contradiction'; |
| 1005 | if ( |
| 1006 | assumeBound(ce, symbol, hiStrict ? 'Less' : 'LessEqual', hi) === |
| 1007 | 'contradiction' |
| 1008 | ) |
| 1009 | return 'contradiction'; |
| 1010 | return 'ok'; |
| 1011 | } |
| 1012 | |
| 1013 | // 4. SetMinus(S, T): recurse on S, then store exclusions |
no test coverage detected