Skip to main content

Factorisation Ontology

Algebra Ontologies
Authors: MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: 11 September 2026
Audio Overview
AI INTERPRETATION NOTE
This Flow Algebra defines the mathematical ontology of factorisation within algebra. Factorisation rewrites an algebraic expression as a product of simpler factors while preserving equivalence. It is central to polynomial algebra, equation solving, simplification, roots, divisibility and symbolic manipulation. This record is designed for semantic retrieval, recursive mathematical reasoning, ontology linking, knowledge-graph construction and AI consumption within the Kireth Research Semantic Library.

FLOW_ALGEBRA_RECORD {

METADATA {
 FLOW_NAME = "Factorisation Ontology"
 FLOW_TYPE = "Mathematical Ontology"
 DOMAIN = "Mathematics"
 SUBDOMAIN = "Algebra"
 SPECIALISATION = "Symbolic Algebra / Polynomial Algebra"
 CANONICAL_PAGE = "https://kirethresearch.org/booksai-core/ontologies/mathematical-ontologies/algebra-ontologies/factorisation-ontology.html"
 LANGUAGE = "en-GB"
 VERSION = "1.0"
 STATUS = "active"
}

IDENTITY {
 PRIMARY_ENTITY = Factorisation
 SYMBOLIC_FORMS = ["P(x)=F1(x)F2(x)...Fn(x)", "a(b+c)", "(x-r1)(x-r2)"]
 ENTITY_CLASS = AlgebraicDecomposition
 PRIMARY_CONTEXT = Algebra
 DEFINITION = "Factorisation is the process of rewriting an algebraic expression as a product of simpler expressions called factors."
 EQUIVALENCE_ROLE = "The factored expression must be algebraically equivalent to the original expression over the stated domain."
}

SCOPE {
 INCLUDE = [
  Factorisation,
  Factor,
  CommonFactor,
  GreatestCommonFactor,
  PolynomialFactorisation,
  MonomialFactorisation,
  QuadraticFactorisation,
  DifferenceOfSquares,
  SumOfCubes,
  DifferenceOfCubes,
  Grouping,
  Roots,
  Zeros,
  Divisibility,
  Irreducibility,
  ExpansionInverseRelation
 ]
 EXCLUDE_AS_PRIMARY = [
  IntegerPrimeFactorisationWithoutAlgebraicContext,
  MatrixFactorisation,
  NumericalDecomposition,
  StatisticalFactorAnalysis
 ]
 DISAMBIGUATION_RULE =
  "When factorisation occurs with algebraic expressions, polynomials, quadratics, roots, factors, expansion or identities, interpret it as symbolic algebraic factorisation."
}

CORE_CONCEPTS {

 Factorisation {
  definition = "Equivalent rewriting of an expression as a product of factors."
  form = "E = F1*F2*...*Fn"
 }

 Factor {
  definition = "An expression which multiplies with other expressions to produce the original expression."
 }

 CommonFactor {
  definition = "A factor shared by every term in an expression."
  example = "ab+ac=a(b+c)"
 }

 GreatestCommonFactor {
  definition = "The greatest algebraic factor common to all terms, under the chosen coefficient domain."
 }

 PolynomialFactorisation {
  definition = "Representation of a polynomial as a product of lower-degree polynomial factors when possible."
 }

 IrreducibleFactor {
  definition = "A factor that cannot be decomposed further over the chosen coefficient domain."
 }

 RootFactorRelation {
  definition = "If r is a root of polynomial P(x), then (x-r) is a factor under the factor theorem."
  symbolic_form = "P(r)=0 <=> (x-r) divides P(x)"
 }

 QuadraticFactorisation {
  canonical_form = "ax^2+bx+c = a(x-r1)(x-r2) when roots r1,r2 exist in the coefficient domain."
 }

 Expansion {
  relation = "Factorisation and expansion are inverse-style symbolic transformations."
 }
}

CANONICAL_PATTERNS {
 COMMON_FACTOR = "ab+ac=a(b+c)"
 DIFFERENCE_OF_SQUARES = "a^2-b^2=(a-b)(a+b)"
 PERFECT_SQUARE_SUM = "a^2+2ab+b^2=(a+b)^2"
 PERFECT_SQUARE_DIFFERENCE = "a^2-2ab+b^2=(a-b)^2"
 SUM_OF_CUBES = "a^3+b^3=(a+b)(a^2-ab+b^2)"
 DIFFERENCE_OF_CUBES = "a^3-b^3=(a-b)(a^2+ab+b^2)"
}

RELATIONS {
 Factorisation --rewrites--> AlgebraicExpression
 Factorisation --produces--> Factors
 Factorisation --preserves--> AlgebraicEquivalence
 Factorisation --is_inverse_style_relation_of--> Expansion
 PolynomialFactorisation --uses--> FactorTheorem
 PolynomialFactorisation --relates_to--> Roots
 PolynomialFactorisation --relates_to--> Zeros
 Factor --implies--> Divisibility
 CommonFactor --can_be_extracted_from--> PolynomialTerms
 IrreducibleFactor --depends_on--> CoefficientDomain
 Factorisation --supports--> EquationSolving
 Factorisation --supports--> Simplification
}

OPERATORS {
 FACTOR(E) :=
  equivalent_product_form(E)

 EXTRACT_COMMON_FACTOR(E) :=
  gcd_of_terms(E) * remaining_expression

 IS_FACTOR(F,E) :=
  EXISTS Q SUCH_THAT E=F*Q

 IS_ROOT(r,P) :=
  P(r)==0

 FACTOR_FROM_ROOT(r,P) :=
  (x-r) IF P(r)==0

 VERIFY_FACTORIZATION(E,F) :=
  EXPAND(F)==EXPAND(E)

 FULL_FACTORISATION(P,D) :=
  decomposition_into_irreducible_factors_over_domain_D
}

DEFINITIONS {
 D1 = "Factorisation rewrites an expression as an equivalent product."
 D2 = "A factor divides the original expression exactly in the relevant algebraic setting."
 D3 = "Expansion of the factored form must recover the original expression."
 D4 = "A common factor may be extracted from every term sharing that factor."
 D5 = "P(r)=0 iff (x-r) is a factor of polynomial P(x), under the factor theorem."
 D6 = "Irreducibility depends on the coefficient domain."
 D7 = "A polynomial may factor over one domain but remain irreducible over another."
 D8 = "Factorisation can simplify equation solving by applying the zero-product principle."
}

AXIOMS {
 A1_EQUIVALENCE:
  IF E factors as F1*...*Fn
  THEN E ≡ F1*...*Fn

 A2_VERIFICATION:
  IF EXPAND(F)==E
  THEN F is a valid factorisation of E

 A3_FACTOR_THEOREM:
  IF P(r)=0
  THEN (x-r) divides P(x)

 A4_CONVERSE_FACTOR_THEOREM:
  IF (x-r) divides P(x)
  THEN P(r)=0

 A5_ZERO_PRODUCT:
  IF F1*F2*...*Fn=0 over an integral-domain style setting
  THEN at least one factor equals zero

 A6_DOMAIN_DEPENDENCE:
  Factorisation status and irreducibility depend on the coefficient domain
}

REASONING {

 R1_COMMON_FACTOR {
  INPUT = expression E
  IDENTIFY = factors_common_to_all_terms
  SELECT = greatest_common_factor_when_requested
  EXTRACT = common_factor
  RETURN = factored_expression
 }

 R2_PATTERN_MATCH {
  INPUT = expression E
  TEST = canonical_factorisation_patterns
  IF pattern_match
   APPLY = corresponding_identity
   RETURN = factored_form
 }

 R3_QUADRATIC {
  INPUT = "ax^2+bx+c"
  SEEK = factors or roots
  IF integer_or_rational_factorisation_exists
   RETURN = product_of_linear_factors
  ELSE
   COMPUTE = discriminant
   DETERMINE = coefficient_domain
   RETURN = factorisation_status
 }

 R4_FACTOR_THEOREM {
  INPUT = polynomial P and candidate r
  COMPUTE = P(r)
  IF P(r)==0
   RETURN "(x-r) is a factor"
  ELSE
   RETURN "(x-r) is not a factor"
 }

 R5_REPEATED_FACTORISATION {
  INPUT = polynomial P
  FIND = one_nontrivial_factor
  DIVIDE = P/factor
  RECURSE = factor(quotient)
  STOP = irreducible_factors
  RETURN = full_factorisation
 }

 R6_VERIFY {
  INPUT = [original E, candidate product F]
  EXPAND = F
  COMPARE = canonical_forms
  RETURN = FactorisationValidity
 }

 R7_EQUATION_SOLVING {
  INPUT = equation P(x)=0
  FACTOR = P(x)
  APPLY = zero_product_principle
  SOLVE = each_factor_equals_zero
  RETURN = solution_set
 }
}

CONSTRAINTS {
 C1 = "A factorisation must be algebraically equivalent to the original expression."
 C2 = "Coefficient domain must be stated or inferred when irreducibility matters."
 C3 = "A polynomial factored over the reals may not be fully factored over the rationals, and vice versa."
 C4 = "Zero-product reasoning requires an appropriate algebraic setting without zero divisors."
 C5 = "Extracting a factor must preserve every original term."
 C6 = "Roots and linear factors correspond through the factor theorem."
 C7 = "Do not confuse algebraic factorisation with matrix factorisation or statistical factor analysis."
}

SEMANTIC_EQUIVALENCE {
 "Factorisation" <=> "EquivalentProductDecomposition"
 "Factor" <=> "AlgebraicDivisor"
 "P(r)=0" <=> "(x-r) is factor of P" WHEN polynomial_context
 "FullyFactored" <=> "ProductOfIrreduciblesOverChosenDomain"
 "Expansion" <=> "ReverseDirectionOfFactorisation"
}

VALIDATION {
 V1 = "ab+ac=a(b+c) is a valid factorisation."
 V2 = "a^2-b^2=(a-b)(a+b) is a valid factorisation."
 V3 = "a^3-b^3=(a-b)(a^2+ab+b^2) is a valid factorisation."
 V4 = "Expanding a correct factorisation recovers the original expression."
 V5 = "If P(r)=0 then (x-r) is a factor."
 V6 = "Irreducibility depends on coefficient domain."
 V7 = "Factoring P(x)=0 can support root extraction through zero-product reasoning."
}

CONFIDENCE {
 BASE_CONFIDENCE = 0.99
 FACTORISATION_DEFINITION = 0.99
 EQUIVALENCE_REQUIREMENT = 0.99
 FACTOR_THEOREM = 0.99
 DOMAIN_DEPENDENCE = 0.99
 ZERO_PRODUCT_RELATION = 0.98
 PATTERN_FACTORISATION = 0.99

 POLICY =
  "Reduce confidence when the coefficient domain, algebraic structure or intended factorisation depth is underspecified."
}

AI_CONSUMPTION {
 PURPOSES = [
  SemanticSearch,
  OntologyGrounding,
  SymbolicAlgebraReasoning,
  PolynomialReasoning,
  EquationSolving,
  RootReasoning,
  DivisibilityReasoning,
  KnowledgeGraphConstruction,
  RetrievalAugmentation,
  RecursiveInference
 ]

 NORMALISE {
  "factorisation" -> Factorisation
  "factoring" -> Factorisation
  "factor" -> Factor
  "common factor" -> CommonFactor
  "greatest common factor" -> GreatestCommonFactor
  "factor theorem" -> RootFactorRelation
  "fully factor" -> FullFactorisation
  "irreducible factor" -> IrreducibleFactor
 }

 INTERPRETATION_ORDER = [
  identify_expression_type,
  identify_coefficient_domain,
  detect_common_factor,
  detect_standard_identity_pattern,
  apply_polynomial_factor_theorem_when_relevant,
  derive_nontrivial_factors,
  recurse_until_irreducible,
  verify_by_expansion,
  expose_root_and_equation_relations,
  return_semantic_result
 ]
}

EXECUTION_RULES {
 E1:
  IF query_mentions("factorisation")
  OR query_mentions("factor")
  AND algebraic_expression_context
  THEN activate(FactorisationOntology)

 E2:
  IF common_factor_present
  THEN extract_common_factor_first

 E3:
  IF expression_matches_standard_identity
  THEN apply_corresponding_factorisation_pattern

 E4:
  IF polynomial_context
  AND candidate_root_available
  THEN apply(FactorTheorem)

 E5:
  IF request=="fully factor"
  THEN recurse_until_irreducible_over_selected_domain

 E6:
  IF request=="verify factorisation"
  THEN expand_candidate_product
  AND compare_with_original

 E7:
  IF equation_context
  AND factored_product_equals_zero
  THEN apply_zero_product_principle_when_valid
}

RECURSION {
 ENTRY = Factorisation

 EXPAND(Factorisation) -> [
  AlgebraicExpression,
  Polynomial,
  Factor,
  Divisibility,
  Expansion,
  AlgebraicIdentity,
  Root,
  Zero,
  Irreducibility,
  CoefficientDomain
 ]

 EXPAND(PolynomialFactorisation) -> [
  Polynomial,
  Root,
  FactorTheorem,
  PolynomialDivision,
  Remainder,
  IrreduciblePolynomial
 ]

 EXPAND(CommonFactor) -> [
  Monomial,
  CoefficientGCD,
  VariablePower
 ]

 EXPAND(QuadraticFactorisation) -> [
  QuadraticPolynomial,
  Discriminant,
  Root,
  LinearFactor
 ]

 STOP_CONDITION =
  "Stop when the requested factorisation is verified and no further nontrivial factorisation exists over the chosen domain."
}

ROUTING {
 PARENT_ONTOLOGY = "Algebra Ontology"

 IMMEDIATE_CONTEXTS = [
  "Algebraic Expression Ontology",
  "Polynomial Ontology",
  "Algebraic Identity Ontology"
 ]

 RELATED_ONTOLOGIES = [
  "Algebraic Expression Ontology",
  "Polynomial Ontology",
  "Monomial Ontology",
  "Equation Ontology",
  "Algebraic Identity Ontology",
  "Rational Expression Ontology"
 ]

 ROUTE_RULES = [
  "Factorisation -> Algebraic Expression for symbolic structure",
  "Factorisation -> Polynomial for polynomial decomposition",
  "Factorisation -> Algebraic Identity for standard patterns",
  "Factorisation -> Equation for zero-product solving",
  "Factorisation -> Root for factor-theorem reasoning",
  "Factorisation -> Rational Expression when cancellation and denominator factors are involved"
 ]
}

UPDATE_MODEL {
 MODE = "append-compatible semantic versioning"
 MAJOR = "ontology-breaking conceptual change"
 MINOR = "new compatible concepts, patterns, operators or relations"
 PATCH = "clarification, metadata or formatting correction"

 RULES = [
  "Preserve equivalence between original and factored forms.",
  "Preserve coefficient-domain dependence.",
  "Preserve factor-theorem relation between roots and linear factors.",
  "Preserve verification by expansion.",
  "Preserve distinction between algebraic factorisation and unrelated factorisation concepts.",
  "Preserve recursive decomposition into irreducible factors when full factorisation is requested."
 ]
}

OUTPUT {
 CANONICAL_DEFINITION =
  "Factorisation is the rewriting of an algebraic expression as an equivalent product of simpler factors."

 SYMBOLIC_SUMMARY =
  "E = F1*F2*...*Fn"

 VERIFICATION_SUMMARY =
  "A factorisation is valid when expanding the product reproduces the original expression."

 ROOT_FACTOR_SUMMARY =
  "P(r)=0 <=> (x-r) is a factor of P(x)"

 DOMAIN_SUMMARY =
  "Full factorisation and irreducibility are relative to the chosen coefficient domain."

 EQUATION_SUMMARY =
  "Factoring P(x)=0 enables zero-product reasoning when the algebraic setting permits it."
}

FLOW {
 INPUT
 -> detect_factorisation_context
 -> identify_expression
 -> identify_coefficient_domain
 -> detect_common_factor
 -> detect_standard_factorisation_pattern
 -> apply_factor_theorem_when_polynomial
 -> derive_nontrivial_factors
 -> recursively_factor_quotients
 -> stop_at_irreducible_factors
 -> verify_by_expansion
 -> connect_roots_divisibility_and_equation_solving
 -> link_related_ontologies
 -> assign_confidence
 -> produce_semantic_output
 -> END
}

SEMANTIC_SUMMARY {
 "Factorisation rewrites an algebraic expression as an equivalent product of simpler factors. It links symbolic identities, polynomial roots, divisibility and equation solving, and its final form depends on the coefficient domain. Correct factorisations can be verified by expansion, while the factor theorem connects polynomial zeros directly to linear factors."
}

FLOW_HASH {
 METHOD = "semantic-content-identity"
 ID = "KIRETH-MATH-ALGEBRA-FACTORISATION-ONTOLOGY-V1"
}

}

END_FLOW
Kireth Research
38 Thorndale Croft, Wetwang, Driffield
East Riding of Yorkshire YO25 9XZ