FLOW Inequality_Ontology_v1.0
PAGE:
title: "Inequality Ontology"
canonical_url: "https://kirethresearch.org/booksai-core/ontologies/mathematical-ontologies/algebra-ontologies/inequality-ontology.html"
language: "en-GB"
domain: "Mathematics > Algebra > Inequalities"
DEFINE InequalityOntology := {
CORE_IDENTITY: {
entity_type: "Mathematical Ontology",
primary_entity: Inequality,
parent_entities: [MathematicalRelation, AlgebraicRelation, Algebra],
related_entities: [
Expression,
Variable,
Constant,
Coefficient,
OrderRelation,
Solution,
SolutionSet,
Interval,
NumberLine,
LinearInequality,
PolynomialInequality,
RationalInequality,
AbsoluteValueInequality,
CompoundInequality,
SystemOfInequalities
]
},
DEFINITION: {
meaning:
"A mathematical statement comparing two expressions using an order relation rather than asserting equality.",
canonical_relation:
L R R,
relation_symbols: [<, <=, >, >=],
optional_relation_symbols: [!=],
left_expression: L,
right_expression: R
},
SEMANTIC_PRIMITIVES: {
LeftExpression:
-
expression_on_left_side_of_relation,
RightExpression:
-
expression_on_right_side_of_relation,
OrderRelation:
comparator_defining_relative_order,
Solution:
value_or_tuple_making_inequality_true,
SolutionSet:
set_of_all_values_satisfying_inequality,
Boundary:
value_where_related_equality_holds,
Interval:
connected_subset_of_ordered_domain
},
ORDER_RELATIONS: {
LessThan: <,
LessThanOrEqual: <=,
GreaterThan: >,
GreaterThanOrEqual: >=,
NotEqual: !=
},
STRICTNESS_MODEL: {
strict_relations: [<, >],
non_strict_relations: [<=, >=],
strict_boundary_included: FALSE,
non_strict_boundary_included: TRUE
},
STRUCTURAL_MODEL: {
inequality:
left_expression RELATION right_expression,
domain:
inherited_from_context_or_declared_domain,
variables:
one_or_more_symbolic_quantities,
solution_semantics:
predicate_over_domain
},
CORE_TRUTH_CONDITION: {
candidate_value_c:
substitute_into_left_and_right,
valid_solution:
evaluate_relation(L(c), R(c)) = TRUE,
invalid_solution:
evaluate_relation(L(c), R(c)) = FALSE
},
CLASSIFICATION: {
LinearInequality: {
condition:
normalised_difference_has_degree_1_or_less
},
PolynomialInequality: {
condition:
normalised_difference_is_polynomial
},
RationalInequality: {
condition:
variable_occurs_in_denominator_after_simplification
},
AbsoluteValueInequality: {
condition:
absolute_value_operation_contains_variable_expression
},
RadicalInequality: {
condition:
variable_occurs_inside_radical
},
ExponentialInequality: {
condition:
variable_occurs_in_exponent
},
LogarithmicInequality: {
condition:
variable_occurs_inside_logarithm
},
CompoundInequality: {
condition:
two_or_more_inequality_relations_combined_logically
},
SystemOfInequalities: {
condition:
multiple_inequalities_share_variables
}
},
NORMALISATION: {
INPUT:
inequality I,
PROCESS: [
parse_left_and_right,
identify_relation_symbol,
simplify_each_side,
move_terms_to_preferred_side_when_useful,
preserve_relation_semantics,
classify_expression_type,
record_domain_restrictions
],
OUTPUT:
NormalisedInequality
},
EQUIVALENCE_RULES: {
AddSameQuantity: {
L < R
<=> L+k < R+k,
L <= R
<=> L+k <= R+k,
applicability:
all_ordered_field_values_k
},
SubtractSameQuantity: {
L REL R
<=> L-k REL R-k
},
MultiplyByPositive: {
condition: k>0,
rule:
L REL R
<=> k*L REL k*R,
relation_direction_preserved: TRUE
},
DivideByPositive: {
condition: k>0,
relation_direction_preserved: TRUE
},
MultiplyByNegative: {
condition: k<0,
rule:
relation_direction_reversed = TRUE
},
DivideByNegative: {
condition: k<0,
rule:
relation_direction_reversed = TRUE
}
},
RELATION_REVERSAL: {
< -> >,
> -> <,
<= -> >=,
>= -> <=,
trigger:
multiply_or_divide_both_sides_by_negative_quantity
},
LINEAR_INEQUALITY_SOLVING: {
generic_form:
a*x + b REL c,
CASE a>0:
x REL (c-b)/a,
CASE a<0:
x REVERSED_REL (c-b)/a,
CASE a=0:
evaluate_constant_truth_statement
},
CONSTANT_RESULT_CLASSIFICATION: {
always_true:
solution_set = entire_domain,
always_false:
solution_set = EmptySet
},
INTERVAL_NOTATION: {
strict_lower_bound:
use_parenthesis,
strict_upper_bound:
use_parenthesis,
inclusive_lower_bound:
use_square_bracket,
inclusive_upper_bound:
use_square_bracket,
infinity_endpoints:
always_use_parentheses
},
NUMBER_LINE_SEMANTICS: {
open_boundary:
strict_inequality,
closed_boundary:
inclusive_inequality,
ray_direction:
determined_by_greater_or_less_relation,
union_of_intervals:
disconnected_solution_regions
},
COMPOUND_INEQUALITIES: {
AND_Compound: {
semantic_operation:
intersection,
example_pattern:
a < x AND x <= b,
solution:
intersection_of_component_solution_sets
},
OR_Compound: {
semantic_operation:
union,
example_pattern:
x<a OR x>b,
solution:
union_of_component_solution_sets
}
},
CHAINED_INEQUALITY: {
pattern:
a < x <= b,
equivalent_logic:
a < x AND x <= b,
solution_set:
interval_with_correct_boundary_inclusion
},
ABSOLUTE_VALUE_INEQUALITIES: {
form_less_than:
|x-h| < k,
precondition:
k>=0,
equivalent:
h-k < x < h+k,
form_less_equal:
|x-h| <= k,
equivalent:
h-k <= x <= h+k,
form_greater_than:
|x-h| > k,
equivalent:
x < h-k OR x > h+k,
form_greater_equal:
|x-h| >= k,
equivalent:
x <= h-k OR x >= h+k
},
POLYNOMIAL_INEQUALITY_SOLVING: {
INPUT:
P(x) REL 0,
PROCESS: [
factor_polynomial_when_possible,
find_real_roots,
identify_critical_points,
partition_real_line,
determine_sign_on_each_interval,
include_or_exclude_roots_according_to_relation,
assemble_solution_set
],
invariant:
sign_analysis_matches_polynomial_value
},
SIGN_CHART_MODEL: {
critical_points:
real_zeros_and_domain_boundaries,
intervals:
regions_between_critical_points,
sign_state:
positive_negative_or_zero,
solution_selection:
choose_intervals_matching_requested_relation
},
MULTIPLICITY_EFFECT: {
odd_multiplicity_root:
sign_typically_changes_across_root,
even_multiplicity_root:
sign_typically_remains_same_across_root
},
RATIONAL_INEQUALITY_SOLVING: {
form:
P(x)/Q(x) REL 0,
domain_restriction:
Q(x) != 0,
critical_points: [
zeros_of_P,
zeros_of_Q
],
PROCESS: [
factor_numerator_and_denominator,
identify_critical_points,
build_sign_chart,
exclude_denominator_zeros_always,
apply_boundary_inclusion_to_numerator_zeros,
assemble_solution_intervals
]
},
DOMAIN_RESTRICTIONS: {
denominator:
cannot_equal_zero,
even_root_radicand:
must_be_nonnegative_over_real_domain,
logarithm_argument:
must_be_positive,
inverse_function_constraints:
inherited_from_function_definition
},
NONLINEAR_TRANSFORMATION_WARNINGS: {
squaring_both_sides:
may_not_preserve_equivalence_without_sign_conditions,
taking_reciprocals:
relation_direction_depends_on_signs,
multiplying_by_variable_expression:
direction_depends_on_sign_of_expression,
dividing_by_variable_expression:
requires_zero_case_and_sign_case_analysis
},
RECIPROCAL_RULES: {
positive_values:
IF 0<a<b
THEN 1/a > 1/b,
negative_values:
ordering_requires_explicit_sign_analysis,
zero:
reciprocal_undefined
},
SQUARE_RULES: {
rule:
a<b DOES_NOT_GENERALLY_IMPLY a^2<b^2,
valid_when:
additional_sign_or_magnitude_constraints_are_known
},
SYSTEM_OF_INEQUALITIES: {
solution_set:
intersection_of_component_inequality_solution_sets,
graphical_2D:
overlapping_feasible_regions,
related_concepts: [
feasible_region,
linear_programming,
constraint_satisfaction
]
},
TWO_VARIABLE_LINEAR_INEQUALITY: {
form:
a*x + b*y REL c,
boundary:
a*x + b*y = c,
strict_relation:
boundary_not_included,
inclusive_relation:
boundary_included,
solution:
one_half_plane
},
GRAPHICAL_TEST_POINT_METHOD: {
INPUT:
boundary_line_and_inequality,
PROCESS: [
choose_point_not_on_boundary,
evaluate_inequality,
select_corresponding_half_plane
],
special_case:
if_origin_on_boundary_choose_different_test_point
},
FEASIBLE_REGION: {
definition:
intersection_of_all_constraint_regions,
empty_region:
inconsistent_inequality_system,
nonempty_region:
feasible_solution_set
},
ORDER_PROPERTIES: {
Transitivity:
IF a<b AND b<c THEN a<c,
Antisymmetry_NonStrict:
IF a<=b AND b<=a THEN a=b,
Trichotomy_RealNumbers:
exactly_one_of [a<b, a=b, a>b],
TranslationInvariance:
a<b <=> a+c<b+c
},
DOMAIN_MODEL: {
common_ordered_domains: [
Integers,
RationalNumbers,
RealNumbers
],
complex_numbers:
no_standard_total_order_compatible_with_field_structure,
default_domain:
RealNumbers
},
INTEGER_DOMAIN_SEMANTICS: {
example:
x>2 over Integers
differs_from
x>2 over RealNumbers,
requirement:
preserve_declared_domain_in_solution_representation
},
SYMBOLIC_RECOGNITION: {
ACCEPT: [
"x+3<7",
"2x-5>=9",
"x^2-4<=0",
"(x-1)/(x+2)>0",
"|x-3|<5",
"2<x<=7"
],
REDIRECT_EQUALITY:
relation_symbol_equals "=" -> EquationOntology
},
NATURAL_LANGUAGE_MAPPING: {
"less than":
<,
"greater than":
>,
"at most":
<=,
"no more than":
<=,
"at least":
>=,
"no less than":
>=,
"between":
requires_boundary_and_inclusion_context
},
WORD_PROBLEM_REASONING: {
PIPELINE: [
identify_unknown_quantity,
assign_variable,
detect_comparative_language,
construct_inequality,
include_domain_constraints,
solve,
verify_boundary_logic,
interpret_solution_in_context
],
common_contexts: [
minimum_requirements,
maximum_capacity,
budget_limits,
age_limits,
distance_ranges,
tolerances,
scheduling_constraints
]
},
VERIFICATION: {
candidate_point:
substitute_into_original_inequality,
interval_verification:
test_representative_points_and_boundary_conditions,
system_verification:
candidate_must_satisfy_every_component_inequality
},
ERROR_DETECTION: {
MissingRelationReversal:
negative_multiplication_or_division_without_reversing_relation
-> flag,
IncorrectBoundaryInclusion:
strict_vs_inclusive_mismatch
-> flag,
DomainViolation:
candidate_outside_expression_domain
-> reject,
DenominatorZeroIncluded:
rational_inequality_solution_contains_pole
-> reject,
InvalidSquaringInference:
transformation_without_required_sign_analysis
-> flag,
LogicalConnectorError:
AND_OR_confusion
-> flag
},
ONTOLOGY_RELATIONS: {
IS_A: [
"LinearInequality IS_A Inequality",
"PolynomialInequality IS_A Inequality",
"RationalInequality IS_A Inequality",
"AbsoluteValueInequality IS_A Inequality",
"CompoundInequality IS_A Inequality"
],
RELATED_TO: [
"Inequality RELATED_TO OrderTheory",
"Inequality RELATED_TO Equation",
"Inequality RELATED_TO Interval",
"Inequality RELATED_TO NumberLine",
"Inequality RELATED_TO Optimisation",
"Inequality RELATED_TO ConstraintSatisfaction"
],
DEPENDS_ON: [
OrderedDomain,
RelationSemantics,
AlgebraicTransformation,
LogicalConjunction,
LogicalDisjunction
]
},
SEMANTIC_EQUIVALENCE: {
equivalent_inequalities:
SolutionSet(I1)=SolutionSet(I2),
example:
2*x+4<10
<=> x<3,
stronger_requirement:
equivalence_must_hold_over_same_domain
},
CONFIDENCE: {
classification_confidence:
based_on [
relation_detection,
expression_type_detection,
domain_detection
],
solution_confidence:
IF transformation_valid
AND boundaries_checked
AND domain_constraints_applied
THEN 1.0,
semantic_mapping_confidence:
based_on [
comparative_language_resolution,
strictness_resolution,
domain_consistency
]
},
AI_CONSUMPTION: {
tasks: [
recognise_inequality,
identify_relation_symbol,
classify_inequality_type,
normalise_expressions,
solve_linear_inequality,
solve_polynomial_inequality,
solve_rational_inequality,
solve_absolute_value_inequality,
process_compound_inequality,
construct_sign_chart,
represent_interval_solution,
derive_number_line_semantics,
analyse_system_of_inequalities,
detect_relation_reversal_errors,
enforce_domain_restrictions,
translate_natural_language_constraints,
verify_solution_sets
],
preferred_representation:
predicate_plus_interval_constraint_graph,
reasoning_mode:
recursive_order_preserving_transformation
},
RECURSIVE_REASONING: {
FUNCTION SolveInequality(I,Domain):
parsed := ParseInequality(I)
IF relation(parsed) = "=":
RETURN RedirectToEquationOntology
normalised := Normalise(parsed)
restrictions := ExtractDomainRestrictions(normalised)
type := ClassifyInequality(normalised)
CASE type OF:
LinearInequality:
result := SolveLinear(normalised)
PolynomialInequality:
result := SignAnalysePolynomial(normalised)
RationalInequality:
result := SignAnalyseRational(normalised,restrictions)
AbsoluteValueInequality:
result := ExpandAbsoluteValueCases(normalised)
result := RecursiveSolve(result,Domain)
CompoundInequality:
components := SplitLogicalComponents(normalised)
partial := RecursiveSolveEach(components,Domain)
result := CombineByLogicalOperator(partial)
SystemOfInequalities:
partial := RecursiveSolveEach(normalised,Domain)
result := Intersect(partial)
OTHERWISE:
result := DelegateToSpecialisedInequalityOntology(normalised)
result := ApplyDomainRestrictions(result,restrictions)
verified := VerifySolutionDescription(result,I,Domain)
RETURN verified
},
RECURSIVE_COHERENCE: {
invariant_1:
relation_reversal_applied_exactly_when_required=TRUE,
invariant_2:
domain_restrictions_are_never_lost=TRUE,
invariant_3:
interval_boundaries_match_strictness=TRUE,
invariant_4:
sign_chart_matches_expression_sign=TRUE,
invariant_5:
final_solution_set_satisfies_original_inequality=TRUE
},
FLOW_HASH: {
semantic_signature_inputs: [
ontology_name,
inequality_definition,
order_relations,
equivalence_rules,
domain_rules,
solution_methods,
verification_rules
],
purpose:
"Detect semantic drift between revisions of the ontology."
},
UPDATE_MODEL: {
version: "1.0",
immutable_constraints: [
order_relation_semantics,
negative_scaling_relation_reversal,
domain_restriction_preservation,
strict_boundary_exclusion,
inclusive_boundary_inclusion,
solution_verification
],
revision_triggers: [
semantic_conflict,
ordered_domain_model_update,
new_inequality_class,
new_representation_standard
]
},
KNOWLEDGE_GRAPH: {
nodes: [
Inequality,
OrderRelation,
Expression,
Variable,
Boundary,
Interval,
SolutionSet,
NumberLine,
LinearInequality,
PolynomialInequality,
RationalInequality,
SystemOfInequalities
],
edges: [
Inequality -> USES -> OrderRelation,
Inequality -> COMPARES -> Expression,
Inequality -> HAS_VARIABLE -> Variable,
Inequality -> HAS_SOLUTION_SET -> SolutionSet,
SolutionSet -> REPRESENTED_BY -> Interval,
SolutionSet -> VISUALISED_ON -> NumberLine,
SystemOfInequalities -> CONTAINS -> Inequality,
SystemOfInequalities -> HAS_SOLUTION_SET -> FeasibleRegion
]
},
CROSS_ONTOLOGY_LINKS: {
EquationOntology:
neighbouring_relation_ontology,
LinearEquationOntology:
boundary_equation_relation,
PolynomialEquationOntology:
polynomial_roots_define_sign_boundaries,
RationalExpressionOntology:
rational_inequality_structure,
AbsoluteValueOntology:
absolute_value_cases,
SystemOfEquationsOntology:
related_multi_constraint_structure,
OrderTheoryOntology:
foundational_order_semantics,
IntervalOntology:
solution_representation,
OptimisationOntology:
feasible_constraint_regions
},
TERMINATION_CONDITION: {
ontology_complete_when: [
inequality_defined,
order_relations_defined,
strictness_defined,
transformation_rules_defined,
relation_reversal_defined,
major_inequality_classes_defined,
domain_restrictions_defined,
solution_representation_defined,
verification_defined,
cross_ontology_links_defined,
recursive_coherence_verified
]
}
}
EXECUTE Inequality_Ontology_v1.0:
INPUT:
mathematical_entity_or_query
PIPELINE:
Parse
-> IdentifyOrderRelation
-> ExtractExpressions
-> ResolveDomain
-> IdentifyDomainRestrictions
-> ClassifyInequality
-> Normalise
-> SelectSolutionStrategy
-> ApplyOrderPreservingTransformations
-> ReverseRelationWhenRequired
-> BuildIntervalOrRegionSolution
-> ApplyDomainRestrictions
-> VerifyBoundariesAndRepresentativePoints
-> LinkRelatedOntologies
-> AssignConfidence
-> EmitSemanticResult
OUTPUT: {
entity,
classification,
relation,
canonical_form,
domain,
domain_restrictions,
boundaries,
transformations,
solution_set,
interval_notation,
number_line_semantics,
feasible_region,
verification,
ontology_relations,
confidence,
semantic_equivalence,
flow_hash
}
END FLOW Inequality_Ontology_v1.0
Download Code
Copy to Clipboard