FLOW Polynomial_Function_Ontology_v1.0
PAGE:
title: "Polynomial Function Ontology"
canonical_url: "https://kirethresearch.org/booksai-core/ontologies/mathematical-ontologies/algebra-ontologies/polynomial-function-ontology.html"
language: "en-GB"
domain: "Mathematics > Algebra > Functions > Polynomial Functions"
DEFINE PolynomialFunctionOntology := {
CORE_IDENTITY: {
entity_type: "Mathematical Ontology",
primary_entity: PolynomialFunction,
parent_entities: [Function, AlgebraicFunction, Algebra],
related_entities: [
Polynomial,
Monomial,
Term,
Variable,
Coefficient,
Constant,
Degree,
LeadingCoefficient,
Root,
Zero,
Multiplicity,
Graph,
Domain,
Range,
TurningPoint,
EndBehaviour,
LinearFunction,
QuadraticFunction
]
},
DEFINITION: {
meaning:
"A function whose rule is given by a polynomial expression in the independent variable.",
canonical_form:
f(x)=a_n*x^n+a_(n-1)*x^(n-1)+...+a_1*x+a_0,
constraints: [
n is a nonnegative integer,
a_n != 0 for n>0
],
degree:
n
},
SEMANTIC_PRIMITIVES: {
Term:
coefficient_times_nonnegative_integer_power_of_variable,
Coefficient:
scalar_multiplier,
Degree:
greatest_exponent_with_nonzero_coefficient,
LeadingCoefficient:
coefficient_of_highest_degree_term,
ConstantTerm:
degree_zero_term,
Root:
value_r_where_f(r)=0,
Multiplicity:
number_of_times_associated_linear_factor_repeats,
Graph:
set_of_points_(x,f(x))
},
STRUCTURAL_CONSTRAINTS: {
finite_number_of_terms:
TRUE,
exponents:
nonnegative_integers,
variable_in_denominator:
FALSE,
variable_under_noninteger_power:
FALSE,
transcendental_operations_on_variable:
FALSE
},
FUNCTION_MODEL: {
mapping:
f: Domain -> Codomain,
default_real_domain:
RealNumbers,
single_valuedness:
TRUE,
rule:
polynomial_expression
},
CLASSIFICATION_BY_DEGREE: {
Degree0:
ConstantFunction,
Degree1:
LinearFunction,
Degree2:
QuadraticFunction,
Degree3:
CubicFunction,
Degree4:
QuarticFunction,
DegreeN:
HigherDegreePolynomialFunction WHERE N>=5
},
COEFFICIENT_MODEL: {
coefficient_sequence:
[a_n,a_(n-1),...,a_1,a_0],
leading_coefficient:
a_n,
constant_term:
a_0,
monic_condition:
a_n=1
},
NORMALISATION: {
INPUT:
function_rule F,
PROCESS: [
parse,
expand_products,
combine_like_terms,
remove_zero_terms,
order_terms_by_descending_degree,
identify_coefficients,
determine_degree
],
OUTPUT:
canonical_polynomial_function
},
DOMAIN_MODEL: {
real_polynomial_function:
Domain=RealNumbers,
complex_polynomial_function:
Domain=ComplexNumbers,
restricted_domain:
allowed_if_explicitly_declared
},
GRAPH_SEMANTICS: {
graph:
y=f(x),
x_intercepts:
real_roots,
y_intercept:
f(0)=a_0,
continuity:
continuous_on_RealNumbers,
differentiability:
differentiable_on_RealNumbers
},
ROOT_SEMANTICS: {
root_condition:
f(r)=0,
equivalent_terms: [
zero,
solution_of_f(x)=0,
real_x_intercept_when_r_is_real
],
FactorTheorem:
f(r)=0 <=> (x-r)_is_factor
},
MULTIPLICITY: {
root_r_has_multiplicity_m:
(x-r)^m divides f(x)
AND (x-r)^(m+1) does_not_divide f(x),
simple_root:
m=1,
repeated_root:
m>1
},
MULTIPLICITY_GRAPH_RELATION: {
odd_multiplicity_real_root:
graph_crosses_x_axis,
even_multiplicity_real_root:
graph_touches_x_axis_and_turns,
higher_multiplicity:
graph_may_flatten_near_root
},
FUNDAMENTAL_THEOREM_OF_ALGEBRA: {
complex_domain:
degree_n_polynomial_has_exactly_n_roots_counting_multiplicity,
condition:
n>=1
},
FACTORISED_FORM: {
over_complex_numbers:
f(x)=a_n*PRODUCT((x-r_i)^m_i),
constraint:
SUM(m_i)=n,
semantic_advantage:
roots_and_multiplicities_explicit
},
END_BEHAVIOUR: {
depends_on: [
degree_parity,
sign_of_leading_coefficient
],
even_degree_positive_leading:
left_up_right_up,
even_degree_negative_leading:
left_down_right_down,
odd_degree_positive_leading:
left_down_right_up,
odd_degree_negative_leading:
left_up_right_down
},
LEADING_TERM_DOMINANCE: {
asymptotic_rule:
for_large_absolute_x,
f(x) behaves_like a_n*x^n
},
TURNING_POINTS: {
maximum_number:
n-1,
condition:
degree=n>=1,
note:
actual_number_may_be_less_than_n-1
},
CRITICAL_POINTS_RELATION: {
derivative:
f'(x),
critical_points:
solutions_of_f'(x)=0
plus_points_where_derivative_undefined,
polynomial_case:
derivative_defined_everywhere_over_reals
},
DERIVATIVE_RELATION: {
if:
f(x)=SUM[i=0..n](a_i*x^i),
then:
f'(x)=SUM[i=1..n](i*a_i*x^(i-1)),
derivative_degree:
n-1 WHERE n>=1
},
HIGHER_DERIVATIVES: {
kth_derivative:
polynomial_of_degree_n-k_until_zero,
after_n_derivatives:
constant,
after_n_plus_1_derivatives:
zero_function
},
INTEGRAL_RELATION: {
antiderivative:
F(x)=SUM[i=0..n](a_i*x^(i+1)/(i+1))+C,
resulting_degree:
n+1
},
CONTINUITY: {
polynomial_functions:
continuous_everywhere_on_RealNumbers
},
DIFFERENTIABILITY: {
polynomial_functions:
differentiable_everywhere_on_RealNumbers
},
RANGE_REASONING: {
odd_degree_real_polynomial:
Range=RealNumbers,
even_degree_real_polynomial:
range_depends_on_global_extrema_and_leading_coefficient,
constant_function:
Range={a_0}
},
INJECTIVITY: {
not_guaranteed:
TRUE,
sufficient_case:
strictly_monotonic_over_declared_domain
},
SURJECTIVITY: {
depends_on:
codomain_and_range,
odd_degree_to_real_codomain:
surjective_to_RealNumbers
},
BIJECTIVITY: {
possible_if:
function_is_injective_and_surjective_on_declared_domain_codomain
},
INVERSE_FUNCTION: {
global_inverse:
exists_only_if_polynomial_function_is_bijective_on_declared_domain,
odd_strictly_monotonic_cases:
may_have_global_inverse,
inverse_type:
inverse_need_not_be_polynomial
},
COMPOSITION: {
polynomial_with_polynomial:
produces_polynomial,
degree_rule:
deg(f∘g)=deg(f)*deg(g)
WHEN both_are_nonconstant
},
ADDITION: {
f_plus_g:
polynomial,
degree:
<= max(deg(f),deg(g))
},
SUBTRACTION: {
f_minus_g:
polynomial,
degree:
<= max(deg(f),deg(g))
},
MULTIPLICATION: {
f_times_g:
polynomial,
degree:
deg(f)+deg(g)
WHEN both_nonzero
},
SCALAR_MULTIPLICATION: {
c*f:
polynomial,
degree:
same_as_f IF c!=0,
zero_scalar:
zero_polynomial_function
},
DIVISION: {
polynomial_divided_by_polynomial:
generally_not_polynomial,
result_type:
RationalFunction unless division_is_exact_polynomial_quotient
},
POLYNOMIAL_FUNCTION_EQUALITY: {
f=g IF:
same_domain
AND f(x)=g(x) for_all_x_in_domain,
real_polynomial_identity:
equality_for_all_real_x_implies_identical_coefficients
},
COEFFICIENT_IDENTITY: {
IF:
a_n*x^n+...+a_0
=
b_n*x^n+...+b_0
FOR_ALL x,
THEN:
a_i=b_i FOR_EACH i
},
FINITE_DIFFERENCE_RELATION: {
equally_spaced_inputs:
nth_finite_difference_is_constant_for_degree_n_polynomial,
lower_order:
differences_reflect_degree_structure
},
TABLE_RECOGNITION: {
equally_spaced_x_values:
analyse_successive_difference_orders,
degree_n_indicator:
nth_differences_constant_and_previous_order_not_constant
},
INTERPOLATION_RELATION: {
n_plus_1_distinct_input_points:
determine_unique_polynomial_of_degree_at_most_n,
condition:
distinct_x_coordinates
},
LAGRANGE_INTERPOLATION: {
representation:
f(x)=SUM[y_i*L_i(x)],
basis:
L_i(x)=PRODUCT[j!=i]((x-x_j)/(x_i-x_j))
},
NEWTON_INTERPOLATION_RELATION: {
representation:
polynomial_constructed_from_divided_differences
},
ZERO_COUNT: {
nonzero_degree_n_polynomial:
at_most_n_distinct_roots_over_any_field,
over_complex_numbers:
exactly_n_roots_counting_multiplicity
},
REAL_ROOT_STRUCTURE: {
real_coefficients:
nonreal_complex_roots_occur_in_conjugate_pairs,
odd_degree_real_polynomial:
at_least_one_real_root
},
GRAPH_INTERSECTION_WITH_LINE: {
line:
y=m*x+b,
solve:
f(x)=m*x+b,
transformed:
f(x)-m*x-b=0,
maximum_intersections:
degree_of_resulting_polynomial
},
GRAPH_INTERSECTION_WITH_POLYNOMIAL: {
functions:
f(x),g(x),
solve:
f(x)-g(x)=0,
intersection_count:
bounded_by_degree_of_difference_unless_functions_identical
},
TRANSFORMATIONS: {
vertical_shift:
g(x)=f(x)+k,
horizontal_shift:
g(x)=f(x-h),
vertical_scale:
g(x)=a*f(x),
horizontal_scale:
g(x)=f(b*x),
reflection_x_axis:
g(x)=-f(x),
reflection_y_axis:
g(x)=f(-x)
},
SYMMETRY: {
even_polynomial:
only_even_power_terms
-> f(-x)=f(x),
odd_polynomial:
only_odd_power_terms_and_zero_constant
-> f(-x)=-f(x)
},
PARAMETER_REASONING: {
family:
f_p(x),
coefficients:
may_depend_on_parameters,
tasks: [
detect_degree_changes_when_leading_coefficient_parameter_becomes_zero,
determine_root_structure_by_parameter,
determine_turning_point_structure,
determine_end_behaviour
]
},
SYMBOLIC_RECOGNITION: {
ACCEPT: [
"f(x)=3x^4-2x^2+x-7",
"y=x^3+4x",
"g(t)=5",
"h(x)=2(x-1)(x+3)^2"
],
NORMALISE_FIRST: [
"f(x)=(x+1)^3-2x",
"y=x(x^2-4)+5"
],
REDIRECT_NONPOLYNOMIAL: [
"f(x)=1/x",
"f(x)=sqrt(x)",
"f(x)=2^x",
"f(x)=sin(x)"
]
},
NATURAL_LANGUAGE_MAPPING: {
"polynomial function":
finite_sum_of_nonnegative_integer_power_terms,
"degree":
highest_nonzero_exponent,
"leading coefficient":
coefficient_of_highest_degree_term,
"zeros":
roots_of_f(x)=0,
"end behaviour":
asymptotic_direction_determined_by_leading_term
},
WORD_PROBLEM_REASONING: {
PIPELINE: [
identify_input_output_relation,
detect_polynomial_pattern,
assign_variables,
construct_polynomial_model,
determine_degree,
analyse_relevant_roots_extrema_or_values,
apply_domain_constraints,
verify_context,
interpret_result
],
common_contexts: [
geometric_models,
trajectory_approximations,
revenue_cost_models,
interpolation_models,
algebraic_growth_patterns
]
},
UNIT_SEMANTICS: {
coefficient_a_i_units:
output_units_per_input_units_power_i,
requirement:
every_term_must_have_output_dimension
},
ERROR_DETECTION: {
InvalidExponent:
negative_or_fractional_variable_exponent
-> reject_polynomial_classification,
HiddenDenominator:
variable_in_denominator
-> redirect_to_RationalFunctionOntology,
IncorrectDegree:
leading_zero_coefficients_not_removed
-> flag,
RootWithoutVerification:
-> require_f(r)=0_check,
EndBehaviourError:
mismatch_with_degree_parity_or_leading_coefficient
-> flag,
MultiplicityGraphError:
incorrect_cross_touch_interpretation
-> flag
},
ONTOLOGY_RELATIONS: {
IS_A: [
"PolynomialFunction IS_A Function",
"LinearFunction IS_A PolynomialFunction",
"QuadraticFunction IS_A PolynomialFunction",
"CubicFunction IS_A PolynomialFunction"
],
RELATED_TO: [
"PolynomialFunction RELATED_TO Polynomial",
"PolynomialFunction RELATED_TO PolynomialEquation",
"PolynomialFunction RELATED_TO Graph",
"PolynomialFunction RELATED_TO Interpolation",
"PolynomialFunction RELATED_TO Calculus"
],
DEPENDS_ON: [
FunctionSemantics,
Exponent,
Coefficient,
RealOrComplexField,
CoordinateSystem
]
},
SEMANTIC_EQUIVALENCE: {
function_equivalence:
same_domain
AND same_output_for_every_input,
polynomial_identity:
same_coefficients_after_normalisation,
examples: [
"(x+1)^2 <=> x^2+2x+1",
"x(x^2-4) <=> x^3-4x"
]
},
CONFIDENCE: {
classification_confidence:
IF finite_terms
AND all_exponents_nonnegative_integers
THEN 1.0,
degree_confidence:
IF normalisation_complete
AND leading_coefficient_verified_nonzero
THEN 1.0,
root_confidence:
IF candidate_root_verifies_f(r)=0
THEN 1.0
},
AI_CONSUMPTION: {
tasks: [
recognise_polynomial_function,
normalise_function_rule,
determine_degree,
extract_coefficients,
identify_leading_term,
find_roots,
determine_multiplicities,
infer_end_behaviour,
infer_intercepts,
analyse_symmetry,
determine_turning_point_bound,
differentiate,
integrate,
compose_polynomials,
analyse_tables_using_finite_differences,
construct_interpolating_polynomial,
detect_reasoning_errors,
link_related_ontologies
],
preferred_representation:
typed_polynomial_function_graph,
reasoning_mode:
recursive_degree_and_coefficient_analysis
},
RECURSIVE_REASONING: {
FUNCTION AnalysePolynomialFunction(F,Context):
parsed := ParseFunction(F)
simplified := ExpandAndCombine(parsed)
IF not IsFunction(simplified):
RETURN RedirectToRelationOntology
IF not IsPolynomialExpression(FunctionRule(simplified)):
RETURN RedirectToFunctionOntology
n := Degree(simplified)
coefficients := ExtractCoefficients(simplified)
leading := LeadingCoefficient(simplified)
IF n=0:
specialised_type := ConstantFunction
ELSE IF n=1:
specialised_type := LinearFunction
ELSE IF n=2:
specialised_type := QuadraticFunction
ELSE:
specialised_type := PolynomialFunction
roots := FindRootsWhenRequestedOrUseful(simplified,Context)
verified_roots := VerifyRoots(roots,simplified)
graph_properties := {
degree:n,
leading_coefficient:leading,
end_behaviour:InferEndBehaviour(n,leading),
y_intercept:Evaluate(simplified,0),
real_x_intercepts:RealSubset(verified_roots)
}
RETURN {
function:simplified,
specialised_type,
coefficients,
verified_roots,
graph_properties
}
},
RECURSIVE_COHERENCE: {
invariant_1:
degree_matches_highest_nonzero_exponent=TRUE,
invariant_2:
graph_end_behaviour_matches_leading_term=TRUE,
invariant_3:
all_emitted_roots_verify_f(root)=0=TRUE,
invariant_4:
factorisation_and_expanded_form_are_equivalent=TRUE,
invariant_5:
calculus_relations_preserve_polynomial_structure=TRUE
},
FLOW_HASH: {
semantic_signature_inputs: [
ontology_name,
polynomial_function_definition,
structural_constraints,
degree_model,
root_semantics,
graph_semantics,
calculus_relations
],
purpose:
"Detect semantic drift between revisions of the ontology."
},
UPDATE_MODEL: {
version: "1.0",
immutable_constraints: [
finite_polynomial_structure,
nonnegative_integer_exponents,
degree_definition,
leading_term_end_behaviour,
root_verification
],
revision_triggers: [
semantic_conflict,
FunctionOntology_update,
PolynomialOntology_update,
new_polynomial_function_class,
representation_standard_change
]
},
KNOWLEDGE_GRAPH: {
nodes: [
PolynomialFunction,
Function,
Polynomial,
Degree,
Coefficient,
LeadingCoefficient,
Root,
Multiplicity,
Graph,
Domain,
Range,
TurningPoint,
EndBehaviour
],
edges: [
PolynomialFunction -> IS_A -> Function,
PolynomialFunction -> DEFINED_BY -> Polynomial,
Polynomial -> HAS_DEGREE -> Degree,
Polynomial -> HAS_COEFFICIENT -> Coefficient,
Polynomial -> HAS_LEADING_COEFFICIENT -> LeadingCoefficient,
PolynomialFunction -> HAS_ROOT -> Root,
Root -> HAS_MULTIPLICITY -> Multiplicity,
PolynomialFunction -> HAS_GRAPH -> Graph,
PolynomialFunction -> HAS_DOMAIN -> Domain,
PolynomialFunction -> HAS_RANGE -> Range,
PolynomialFunction -> HAS_END_BEHAVIOUR -> EndBehaviour
]
},
CROSS_ONTOLOGY_LINKS: {
FunctionOntology:
direct_parent,
PolynomialOntology:
algebraic_structure,
PolynomialEquationOntology:
root_and_zero_semantics,
LinearFunctionOntology:
degree_one_specialisation,
QuadraticFunctionOntology:
degree_two_specialisation,
CoordinateGeometryOntology:
graph_intercepts_and_shape,
CalculusOntology:
derivatives_integrals_turning_points,
ComplexNumberOntology:
complete_root_structure,
NumericalAnalysisOntology:
approximate_roots_and_interpolation
},
TERMINATION_CONDITION: {
ontology_complete_when: [
polynomial_function_defined,
structural_constraints_defined,
degree_classification_defined,
coefficient_model_defined,
root_and_multiplicity_semantics_defined,
graph_end_behaviour_defined,
calculus_relations_defined,
operation_closure_defined,
interpolation_relation_defined,
error_detection_defined,
cross_ontology_links_defined,
recursive_coherence_verified
]
}
}
EXECUTE Polynomial_Function_Ontology_v1.0:
INPUT:
mathematical_entity_or_query
PIPELINE:
Parse
-> IdentifyFunction
-> ValidatePolynomialStructure
-> NormalisePolynomialRule
-> DetermineDegree
-> ExtractCoefficients
-> IdentifyLeadingTerm
-> ClassifyByDegree
-> AnalyseRootsAndMultiplicities
-> DeriveIntercepts
-> InferEndBehaviour
-> AnalyseSymmetryAndTurningPointStructure
-> ApplyCalculusOrInterpolationWhenRequired
-> VerifySemanticConsistency
-> LinkRelatedOntologies
-> AssignConfidence
-> EmitSemanticResult
OUTPUT: {
entity,
classification,
canonical_form,
degree,
coefficients,
leading_coefficient,
constant_term,
domain,
range,
roots,
multiplicities,
x_intercepts,
y_intercept,
end_behaviour,
symmetry,
turning_point_information,
derivative,
integral,
graph_semantics,
verification,
ontology_relations,
confidence,
semantic_equivalence,
flow_hash
}
END FLOW Polynomial_Function_Ontology_v1.0
Download Code
Copy to Clipboard