Skip to main content

Polynomial Equation Ontology

Algebra Ontologies
Authors: MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: 20 September 2026
Audio Overview
FLOW Polynomial_Equation_Ontology_v1.0

PAGE:
  title: "Polynomial Equation Ontology"
  canonical_url: "https://kirethresearch.org/booksai-core/ontologies/mathematical-ontologies/algebra-ontologies/polynomial-equation-ontology.html"
  language: "en-GB"
  domain: "Mathematics > Algebra > Equations > Polynomial Equations"

DEFINE PolynomialEquationOntology := {

  CORE_IDENTITY: {
    primary_entity: PolynomialEquation,
    parent_entities: [Equation, AlgebraicEquation, Algebra],
    related_entities: [Polynomial, PolynomialExpression, Monomial, Variable,
      Coefficient, Degree, LeadingCoefficient, Root, SolutionSet, Factor,
      Multiplicity, PolynomialFunction, ComplexNumber]
  },

  DEFINITION: {
    meaning: "An equation involving polynomial expressions, normally reduced to one polynomial equal to zero.",
    canonical_form: P(x)=0,
    expanded_form: a_n*x^n + a_(n-1)*x^(n-1) + ... + a_1*x + a_0 = 0,
    constraints: [n>=0, a_n!=0],
    degree: n
  },

  STRUCTURAL_CONSTRAINTS: {
    terms: finite,
    exponents: nonnegative_integers,
    variable_in_denominator: FALSE,
    fractional_variable_exponents: FALSE,
    transcendental_variable_operations: FALSE
  },

  NORMALISATION: {
    INPUT: equation E,
    PROCESS: [parse, expand, transpose_to_zero, combine_like_terms,
      remove_zero_terms, order_by_descending_degree, determine_degree,
      identify_leading_coefficient],
    OUTPUT: P(x)=0
  },

  DEGREE_CLASSIFICATION: {
    degree_0: ConstantEquation,
    degree_1: LinearEquation,
    degree_2: QuadraticEquation,
    degree_3: CubicEquation,
    degree_4: QuarticEquation,
    degree_n_where_n>=5: HigherDegreePolynomialEquation
  },

  COEFFICIENT_MODEL: {
    polynomial: SUM[i=0..n](a_i*x^i),
    coefficient_sequence: [a_n,...,a_1,a_0],
    leading_coefficient: a_n,
    constant_term: a_0,
    monic_condition: a_n=1
  },

  ROOT_SEMANTICS: {
    root_condition: P(r)=0,
    equivalent_terms: [root, zero, solution],
    FactorTheorem: P(r)=0 <=> (x-r)_divides_P(x),
    RemainderTheorem: remainder(P(x)/(x-r))=P(r)
  },

  FUNDAMENTAL_THEOREM_OF_ALGEBRA: {
    domain: ComplexNumbers,
    condition: degree>=1,
    rule: degree_n_polynomial_has_n_roots_counting_multiplicity
  },

  MULTIPLICITY: {
    root_r_has_multiplicity_m:
      (x-r)^m_divides_P AND (x-r)^(m+1)_does_not_divide_P,
    simple_root: m=1,
    repeated_root: m>1,
    total_complex_multiplicity: degree
  },

  FACTORISED_FORM: {
    representation: P(x)=a_n*PRODUCT((x-r_i)^m_i),
    constraint: SUM(m_i)=n,
    equation: a_n*PRODUCT((x-r_i)^m_i)=0
  },

  ZERO_PRODUCT_REASONING: {
    INPUT: F1(x)*F2(x)*...*Fk(x)=0,
    INFER: one_or_more_factors_equal_zero,
    OUTPUT: union_of_factor_solution_sets
  },

  SOLVING_STRATEGIES: {
    degree_1: LinearEquationOntology,
    degree_2: QuadraticEquationOntology,
    degree_3: [factorisation, rational_root_search, cubic_methods],
    degree_4: [factorisation, substitution, quartic_methods],
    degree_5_plus: [factorisation, substitution, rational_root_theorem,
      synthetic_division, exact_symbolic_methods_when_available,
      numerical_root_finding]
  },

  RATIONAL_ROOT_THEOREM: {
    precondition: integer_coefficients,
    candidate: p/q,
    p_divides: constant_term,
    q_divides: leading_coefficient,
    requirement: verify_candidate_in_original_polynomial
  },

  SYNTHETIC_DIVISION: {
    INPUT: [P(x), candidate_root_r],
    divisor: x-r,
    OUTPUT: [quotient_Q(x), remainder_P(r)],
    IF remainder=0: x-r_is_factor,
    recursion: solve_Q(x)=0
  },

  DERIVATIVE_RELATION: {
    repeated_root_test: P(r)=0 AND P'(r)=0,
    higher_multiplicity:
      successive_derivatives_may_also_vanish_at_r
  },

  REAL_COMPLEX_ROOT_RELATIONS: {
    real_coefficients:
      nonreal_roots_occur_in_conjugate_pairs,
    odd_real_degree:
      at_least_one_real_root,
    maximum_distinct_roots:
      degree
  },

  GRAPH_SEMANTICS: {
    associated_function: y=P(x),
    x_intercepts: real_roots,
    y_intercept: P(0)=a_0,
    end_behaviour_depends_on: [degree_parity, leading_coefficient_sign],
    root_multiplicity_behaviour: {
      even_multiplicity: touches_x_axis_and_typically_turns,
      odd_multiplicity: crosses_x_axis
    }
  },

  END_BEHAVIOUR: {
    even_degree_positive_leading: both_ends_up,
    even_degree_negative_leading: both_ends_down,
    odd_degree_positive_leading: left_down_right_up,
    odd_degree_negative_leading: left_up_right_down
  },

  EQUIVALENCE_RULES: {
    add_same_expression_to_both_sides: valid,
    subtract_same_expression_from_both_sides: valid,
    multiply_both_sides_by_nonzero_constant: valid,
    divide_both_sides_by_nonzero_constant: valid,
    polynomial_identity_replacement: valid,
    warning:
      multiplying_or_dividing_by_variable_expression_requires_solution_set_analysis
  },

  TRANSFORMATION_GRAPH: {
    nodes: [OriginalEquation, ExpandedEquation, NormalisedPolynomialEquation,
      FactoredEquation, ReducedDegreeEquation, CandidateRoots, VerifiedSolutionSet],
    edges: [expand, simplify, transpose, combine_like_terms, factor,
      synthetic_division, reduce_degree, substitute, solve, verify],
    invariant: valid_transformations_preserve_equation_semantics
  },

  DOMAIN_REASONING: {
    domains: [Integers, RationalNumbers, RealNumbers, ComplexNumbers],
    default_continuous_domain: RealNumbers,
    algebraic_completion_domain: ComplexNumbers,
    solution_set_depends_on_domain: TRUE
  },

  SYMBOLIC_RECOGNITION: {
    ACCEPT: [
      "x^3-4x+1=0",
      "2x^4+x^2-7=0",
      "x^5=3x+2",
      "(x-1)(x+2)(x-4)=0"
    ],
    NORMALISE_FIRST: [
      "x(x^2+2)=5",
      "(x+1)^3=2x",
      "3x^2=x^4-1"
    ],
    REDIRECT_NONPOLYNOMIAL: [
      "1/x+x=2",
      "sqrt(x)+x=4",
      "2^x=8",
      "sin(x)=0"
    ]
  },

  AMBIGUITY_RESOLUTION: {
    rule_1: determine_degree_after_valid_simplification,
    rule_2: cancellation_of_leading_terms_may_reduce_degree,
    rule_3: distinguish_intrinsic_polynomial_from_polynomial_in_substitution,
    rule_4: distinguish_PolynomialEquation_from_PolynomialExpression,
    rule_5: distinguish_PolynomialEquation_from_PolynomialFunction
  },

  POLYNOMIAL_IN_FORM: {
    example: x^6-5*x^3+4=0,
    substitution: u=x^3,
    transformed: u^2-5*u+4=0,
    requirement: solve_u_then_back_substitute_and_verify
  },

  VERIFICATION: {
    INPUT: candidate_root_r,
    METHOD: substitute_into_original_equation,
    normalised_test: P(r)=0,
    ACCEPT_IF: original_equality_is_true
  },

  ERROR_DETECTION: {
    incorrect_degree: flag,
    missing_zero_coefficients_in_algorithm: flag,
    invalid_factorisation: expand_and_compare,
    illegal_division_by_zero: reject,
    lost_roots_from_dividing_by_variable_factor: flag,
    unverified_candidate: require_verification,
    extraneous_root: reject
  },

  NATURAL_LANGUAGE_MAPPING: {
    "zeros of polynomial P": solve_P(x)=0,
    "roots of P": solve_P(x)=0,
    "x-intercepts of polynomial graph": real_roots,
    "factor polynomial to solve": factor_then_apply_zero_product_property
  },

  WORD_PROBLEM_REASONING: {
    PIPELINE: [identify_quantities, assign_variables, construct_polynomial_relation,
      normalise, determine_degree, solve_or_approximate, apply_context_constraints,
      verify, interpret_with_units],
    rule: context_can_restrict_mathematically_valid_roots
  },

  ONTOLOGY_RELATIONS: {
    IS_A: [
      "PolynomialEquation IS_A AlgebraicEquation",
      "LinearEquation IS_A PolynomialEquation",
      "QuadraticEquation IS_A PolynomialEquation",
      "CubicEquation IS_A PolynomialEquation"
    ],
    RELATED_TO: [Polynomial, PolynomialFunction, Factorisation,
      ComplexNumbers, NumericalAnalysis, CoordinateGeometry],
    DEPENDS_ON: [Exponent, Degree, Equality, ArithmeticOperations, FieldStructure]
  },

  SEMANTIC_EQUIVALENCE: {
    equation_equivalence:
      SolutionSet(E1)=SolutionSet(E2),
    polynomial_identity:
      P(x)=Q(x)_for_all_values_in_domain,
    distinction:
      equation_equivalence_and_polynomial_identity_are_not_always_identical_concepts
  },

  CONFIDENCE: {
    classification:
      IF valid_polynomial_structure AND degree_identified THEN 1.0,
    root:
      IF candidate_verifies_in_original THEN 1.0,
    factorisation:
      IF expanded_factors_equal_original_polynomial THEN 1.0
  },

  AI_CONSUMPTION: {
    tasks: [recognise_polynomial_equation, normalise, determine_degree,
      extract_coefficients, classify_by_degree, generate_root_candidates,
      factorise, synthetic_divide, reduce_degree, solve_exactly,
      approximate_when_required, verify_roots, infer_graph_behaviour,
      detect_reasoning_errors, link_related_ontologies],
    representation: structured_symbolic_semantic_graph,
    reasoning_mode: recursive_degree_reduction_with_constraint_preservation
  },

  RECURSIVE_REASONING: {
    FUNCTION SolvePolynomialEquation(E,Domain):
      parsed := Parse(E)
      normalised := NormaliseToZero(parsed)

      IF not IsPolynomial(normalised):
        RETURN RedirectNonPolynomialOntology

      n := Degree(normalised)

      IF n=0:
        RETURN EvaluateConstantEquation

      IF n=1:
        RETURN LinearEquationOntology.Solve(normalised)

      IF n=2:
        RETURN QuadraticEquationOntology.Solve(normalised)

      factors := FindFactors(normalised)

      IF factors_found:
        subproblems := SetEachFactorEqualZero(factors)
        roots := RecursiveSolve(subproblems,Domain)
      ELSE:
        roots := ExactOrNumericalPolynomialSolver(normalised,Domain)

      verified := VerifyAll(roots,E,Domain)

      RETURN {
        degree:n,
        roots:verified,
        solution_set:Set(verified)
      }
  },

  RECURSIVE_COHERENCE: {
    invariant_1: degree_matches_normalised_polynomial=TRUE,
    invariant_2: factorisation_reconstructs_polynomial=TRUE,
    invariant_3: root_factor_relation_consistent=TRUE,
    invariant_4: complex_root_multiplicity_matches_degree=TRUE,
    invariant_5: all_emitted_roots_verify_in_original=TRUE
  },

  FLOW_HASH: {
    semantic_signature_inputs: [ontology_name, definition, structural_constraints,
      degree_model, root_semantics, factor_rules, solving_strategy,
      verification_rules],
    purpose: "Detect semantic drift between ontology revisions."
  },

  UPDATE_MODEL: {
    version: "1.0",
    immutable_constraints: [finite_polynomial_structure,
      nonnegative_integer_exponents, degree_definition,
      factor_theorem, root_verification],
    revision_triggers: [semantic_conflict, parent_ontology_update,
      new_polynomial_relation, representation_standard_change]
  },

  KNOWLEDGE_GRAPH: {
    nodes: [PolynomialEquation, AlgebraicEquation, Polynomial, Degree,
      Coefficient, Root, Factor, Multiplicity, SolutionSet,
      PolynomialFunction, ComplexNumber],
    edges: [
      PolynomialEquation -> IS_A -> AlgebraicEquation,
      PolynomialEquation -> HAS_POLYNOMIAL -> Polynomial,
      Polynomial -> HAS_DEGREE -> Degree,
      Polynomial -> HAS_COEFFICIENT -> Coefficient,
      PolynomialEquation -> HAS_ROOT -> Root,
      Root -> HAS_MULTIPLICITY -> Multiplicity,
      Root -> CORRESPONDS_TO -> Factor,
      PolynomialEquation -> HAS_SOLUTION_SET -> SolutionSet,
      PolynomialEquation -> ASSOCIATED_WITH -> PolynomialFunction
    ]
  },

  CROSS_ONTOLOGY_LINKS: {
    EquationOntology: parent,
    PolynomialOntology: polynomial_structure,
    MonomialOntology: term_structure,
    AlgebraicExpressionOntology: -expression_structure,
    LinearEquationOntology: degree_one_specialisation,
    QuadraticEquationOntology: degree_two_specialisation,
    ComplexNumberOntology: complete_root_domain,
    NumericalAnalysisOntology: approximate_root_methods
  },

  TERMINATION_CONDITION: {
    ontology_complete_when: [
      entity_defined,
      polynomial_structure_valid,
      degree_model_defined,
      root_semantics_defined,
      factor_relations_defined,
      solving_strategy_defined,
      verification_defined,
      graph_semantics_defined,
      cross_ontology_links_defined,
      recursive_coherence_verified
    ]
  }

}

EXECUTE Polynomial_Equation_Ontology_v1.0:

  INPUT:
    mathematical_entity_or_query

  PIPELINE:
    Parse
    -> IdentifyEquation
    -> ValidatePolynomialStructure
    -> NormaliseToZero
    -> DetermineDegree
    -> ExtractCoefficients
    -> ClassifyByDegree
    -> AnalyseFactorsAndRoots
    -> SelectSolvingStrategy
    -> SolveOrApproximate
    -> VerifySolutions
    -> DeriveGraphSemantics
    -> LinkRelatedOntologies
    -> AssignConfidence
    -> EmitSemanticResult

  OUTPUT: {
    entity,
    classification,
    canonical_form,
    degree,
    coefficients,
    leading_coefficient,
    factors,
    roots,
    multiplicities,
    solution_set,
    graph_semantics,
    transformations,
    verification,
    ontology_relations,
    confidence,
    semantic_equivalence,
    flow_hash
  }

END FLOW Polynomial_Equation_Ontology_v1.0
Kireth Research
38 Thorndale Croft, Wetwang, Driffield
East Riding of Yorkshire YO25 9XZ