Skip to main content

Bifurcation Ontology

Dynamical Systems
Authors: MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: 24 September 2026
Audio Overview
flow "BifurcationOntology" v1.0

# BIFURCATION ONTOLOGY — FLOW ALGEBRA
SOURCE_URL := "https://kirethresearch.org/booksai-core/ontologies/calculus-analysis-ontologies/dynamical-systems/bifurcation-ontology-2.html"
DOMAIN := "Mathematical Ontologies"
CATEGORY := "Calculus and Analysis Ontologies"
SUBCATEGORY := "Dynamical Systems"
ENTITY := "Bifurcation"

BIFURCATION := {
 type: QualitativeDynamicsTransition,
 domain: DynamicalSystems,
 purpose: "Represent a qualitative change in the structure or stability of a dynamical system as one or more parameters pass through critical values."
}

CONCEPTS := {
 BIFURCATION,
 PARAMETER,
 CRITICAL_VALUE,
 EQUILIBRIUM,
 FIXED_POINT,
 STABILITY,
 EIGENVALUE,
 SADDLE_NODE_BIFURCATION,
 TRANSCRITICAL_BIFURCATION,
 PITCHFORK_BIFURCATION,
 HOPF_BIFURCATION,
 PERIOD_DOUBLING_BIFURCATION,
 BIFURCATION_DIAGRAM,
 NORMAL_FORM,
 CENTER_MANIFOLD,
 CODIMENSION
}

# ---------- PARAMETERISED SYSTEM ----------
continuous system:

dx/dt
 =
f(x,mu)

or discrete system:

x_(n+1)
 =
F(x_n,mu)

mu
 -> CONTROL_PARAMETER

BIFURCATION
 -> occurs_at(CRITICAL_PARAMETER_VALUE_mu_c)

# ---------- QUALITATIVE CHANGE ----------
as

mu
 -> crosses(mu_c)

system may change:

NUMBER_OF_EQUILIBRIA
STABILITY_OF_EQUILIBRIA
NUMBER_OF_PERIODIC_ORBITS
STABILITY_OF_PERIODIC_ORBITS
ATTRACTOR_STRUCTURE
TOPOLOGY_OF_INVARIANT_SETS

BIFURCATION
 -> qualitative_not_merely_quantitative_change

# ---------- EQUILIBRIUM BRANCH ----------
equilibria satisfy:

f(x,mu)
 =
0

solution branch:

x_star
 =
x_star(mu)

BIFURCATION_DIAGRAM
 -> plots(EQUILIBRIUM_OR_ORBIT_MEASURE_VS_PARAMETER)

STABILITY
 -> encoded_along(BRANCHES)

# ---------- LINEARISATION ----------
at equilibrium:

A(mu)
 :=
D_x f(
 x_star(mu),
 mu
)

EIGENVALUES
 -> determine(LOCAL_LINEAR_STABILITY)

BIFURCATION
 -> commonly_occurs_when(HYPERBOLICITY_IS_LOST)

# ---------- NONHYPERBOLIC CONDITION ----------
continuous equilibrium:

eigenvalue
 -> crosses(IMAGINARY_AXIS)

discrete fixed point:

multiplier
 -> crosses(UNIT_CIRCLE)

LOSS_OF_HYPERBOLICITY
 -> candidate_bifurcation_condition

but
 -/> sufficient_without(NONLINEAR_NONDEGENERACY_CONDITIONS)

# ---------- SADDLE NODE ----------
normal form:

dx/dt
 =
mu - x^2

equilibria:

x_star
 =
plus_or_minus(sqrt(mu))

for
 mu>0

at
 mu=0

two equilibria
 -> collide

SADDLE_NODE_BIFURCATION
 -> creation_or_annihilation_of(EQUILIBRIUM_PAIR)

# ---------- SADDLE NODE CONDITIONS ----------
typical local conditions:

f(x_c,mu_c)=0

partial_f/partial_x
 =0

partial_squared_f/partial_x_squared
 !=0

partial_f/partial_mu
 !=0

under scalar normal-form setting

NONDEGENERACY
 -> ensures(GENERIC_SADDLE_NODE)

# ---------- TRANSCRITICAL ----------
normal form:

dx/dt
 =
mu*x
-
x^2

equilibria:

x=0

and

x=mu

branches
 -> cross

and commonly
 -> exchange_stability

TRANSCRITICAL_BIFURCATION
 -> equilibrium_branch_intersection

# ---------- PITCHFORK ----------
supercritical normal form:

dx/dt
 =
mu*x
-
x^3

equilibrium:

x=0

and for mu>0:

x
 =
plus_or_minus(sqrt(mu))

PITCHFORK_BIFURCATION
 -> symmetry_related_branch_splitting

# ---------- SUPERCRITICAL PITCHFORK ----------
central branch
 -> loses_stability

two stable branches
 -> emerge

in canonical supercritical normal form

SUPERCRITICAL
 -> stable_new_branches

# ---------- SUBCRITICAL PITCHFORK ----------
canonical form:

dx/dt
 =
mu*x
+
x^3

near transition:

unstable_side_branches
 -> involved

SUBCRITICAL_PITCHFORK
 -> different_stability_geometry

exact orientation
 -> parameter_convention_dependent

# ---------- HOPF BIFURCATION ----------
pair of complex conjugate eigenvalues:

lambda(mu)
 =
alpha(mu)
 plus_or_minus
 i*omega(mu)

at
 mu=mu_c:

alpha(mu_c)=0

omega(mu_c)!=0

if crossing and nondegeneracy conditions hold:

PERIODIC_ORBIT
 -> may_emerge_or_disappear

HOPF_BIFURCATION
 -> equilibrium_to_oscillation_transition

# ---------- SUPERCRITICAL HOPF ----------
canonical context:

stable small-amplitude limit cycle
 -> emerges

as equilibrium
 -> loses stability

SUPERCRITICAL_HOPF
 -> continuous_onset_of(STABLE_OSCILLATION)

# ---------- SUBCRITICAL HOPF ----------
unstable periodic orbit
 -> involved_near_transition

SUBCRITICAL_HOPF
 -> may_produce(ABRUPT_TRANSITION_AND_HYSTERESIS)

system-specific global structure
 -> determines(actual_outcome)

# ---------- DISCRETE FIXED POINT ----------
fixed point:

F(x_star,mu)
 =
x_star

Jacobian:

J
 :=
D_x F(x_star,mu)

multipliers
 -> eigenvalues_of(J)

DISCRETE_BIFURCATION
 -> multiplier_crosses(UNIT_CIRCLE)

# ---------- PERIOD DOUBLING ----------
critical multiplier:

lambda
 =
-1

under generic conditions

fixed point or periodic orbit
 -> changes_stability

new orbit
 -> period_doubles

PERIOD_DOUBLING_BIFURCATION
 -> FLIP_BIFURCATION

# ---------- SADDLE NODE OF MAP ----------
critical multiplier:

lambda
 =
+1

under suitable conditions

two fixed points
 -> created_or_destroyed

FOLD_BIFURCATION
 -> discrete_saddle_node

# ---------- NEIMARK-SACKER ----------
complex conjugate multipliers
 -> cross(UNIT_CIRCLE)

away from
 +1 and -1

under generic conditions

INVARIANT_CLOSED_CURVE
 -> may_emerge

NEIMARK_SACKER
 -> discrete_analogue_of(HOPF_BIFURCATION)

# ---------- BIFURCATION DIAGRAM ----------
horizontal_axis
 -> PARAMETER

vertical_axis
 -> STATE_OR_ORBIT_STATISTIC

branches
 -> EQUILIBRIA_OR_PERIODIC_STATES

line_style_or_annotation
 -> may_encode(STABILITY)

BIFURCATION_DIAGRAM
 -> visual_summary_of(PARAMETER_DEPENDENT_DYNAMICS)

# ---------- NORMAL FORM ----------
near bifurcation:

coordinate_transform
 +
parameter_transform

-> simplify_system_to(NORMAL_FORM)

NORMAL_FORM
 -> retains(ESSENTIAL_LOCAL_DYNAMICS)

higher_order_terms
 -> removed_when_nondynamically_essential
    under normal-form transformations

# ---------- CENTER MANIFOLD ----------
at nonhyperbolic equilibrium:

state space
 -> decomposes_into(
 STABLE_DIRECTIONS,
 UNSTABLE_DIRECTIONS,
 CENTER_DIRECTIONS
)

CENTER_MANIFOLD
 -> tangent_to(CENTER_SUBSPACE)

local bifurcation dynamics
 -> reducible_to(CENTER_MANIFOLD)

CENTER_MANIFOLD_REDUCTION
 -> lowers(DIMENSION_OF_ANALYSIS)

# ---------- CODIMENSION ----------
CODIMENSION
 -> number_of_independent_conditions_or_parameters_needed_for_bifurcation

generic one-parameter local bifurcations
 -> CODIMENSION_ONE

higher codimension
 -> requires(MULTIPLE_PARAMETER_TUNING)

# ---------- CUSP ----------
CUSP_BIFURCATION
 -> codimension_two_singularity

normal-form family
 -> organises(SADDLE_NODE_CURVES)

CUSP
 -> may_generate(HYSTERESIS_REGION)

# ---------- BOGDANOV-TAKENS ----------
equilibrium
 -> double_zero_eigenvalue

under nondegeneracy conditions

BOGDANOV_TAKENS
 -> codimension_two_bifurcation

can organise:
 SADDLE_NODE
 HOPF
 HOMOCLINIC
 dynamics

# ---------- GLOBAL BIFURCATION ----------
LOCAL_BIFURCATION
 -> determined_near(INVARIANT_OBJECT)

GLOBAL_BIFURCATION
 -> involves(GLOBAL_PHASE_SPACE_GEOMETRY)

examples:
 HOMOCLINIC_BIFURCATION
 HETEROCLINIC_BIFURCATION
 CRISIS

GLOBAL_BIFURCATION
 -> cannot_be_fully_detected_from_local_eigenvalues_alone

# ---------- HOMOCLINIC ----------
stable_manifold
 and
unstable_manifold

of same saddle object

-> form_or_destroy(HOMOCLINIC_CONNECTION)

HOMOCLINIC_BIFURCATION
 -> may_generate(COMPLEX_OR_CHAOTIC_DYNAMICS)

# ---------- HYSTERESIS ----------
multiple stable states
 -> coexist_over(PARAMETER_RANGE)

forward_parameter_sweep
 and
reverse_parameter_sweep

-> follow_different_branches

HYSTERESIS
 -> history_dependent_transition

SUBCRITICAL_OR_FOLD_STRUCTURES
 -> may_support(HYSTERESIS)

# ---------- CATASTROPHIC TRANSITION ----------
small parameter change
 -> large state change

when stable branch
 -> disappears_or_loses_accessibility

TIPPING_POINT
 -> may_correspond_to(BIFURCATION)
 but
 -/> every abrupt transition is necessarily local bifurcation

# ---------- CHAOS ROUTES ----------
BIFURCATION_SEQUENCE
 -> may_lead_to(CHAOS)

routes:
 PERIOD_DOUBLING_CASCADE
 INTERMITTENCY
 QUASIPERIODIC_BREAKDOWN
 HOMOCLINIC_TANGLE

CHAOS
 -> parameter-dependent_complex_dynamics

# ---------- NUMERICAL CONTINUATION ----------
known solution at mu_0

-> predict solution at nearby parameter
-> correct using nonlinear solver
-> repeat

CONTINUATION_METHOD
 -> traces(SOLUTION_BRANCH)

PSEUDO_ARCLENGTH_CONTINUATION
 -> passes(FOLD_POINTS)

# ---------- BIFURCATION DETECTION ----------
monitor:

EIGENVALUES
FLOQUET_MULTIPLIERS
JACOBIAN_SINGULARITY
BRANCH_TURNING
PERIOD_CHANGE

DETECTION
 -> identifies(CANDIDATE_CRITICAL_POINTS)

then

NORMAL_FORM_OR_NONDEGENERACY_ANALYSIS
 -> classifies(BIFURCATION)

# ---------- APPLICATIONS ----------
BIFURCATION
 -> applied_to(NONLINEAR_DYNAMICS)
 -> applied_to(CONTROL_SYSTEMS)
 -> applied_to(BIOLOGICAL_SYSTEMS)
 -> applied_to(FLUID_DYNAMICS)
 -> applied_to(CLIMATE_SYSTEMS)
 -> applied_to(ELECTRICAL_CIRCUITS)
 -> applied_to(CHEMICAL_OSCILLATORS)
 -> applied_to(ECONOMIC_MODELS)

# ---------- RELATION GRAPH ----------
PARAMETER
 -> controls(DYNAMICAL_SYSTEM)

CRITICAL_VALUE
 -> marks(BIFURCATION)

LINEARISATION
 -> detects(LOSS_OF_HYPERBOLICITY)

NORMAL_FORM
 -> classifies(LOCAL_BIFURCATION)

CENTER_MANIFOLD
 -> reduces(NONHYPERBOLIC_DYNAMICS)

HOPF_BIFURCATION
 -> creates_or_destroys(PERIODIC_ORBIT)

PERIOD_DOUBLING
 -> changes(ORBIT_PERIOD)

BIFURCATION_DIAGRAM
 -> represents(PARAMETER_DEPENDENT_BRANCHES)

# ---------- SEMANTIC EQUIVALENCE ----------
SEMANTIC_EQUIVALENCE := {
 "bifurcation" ~= "qualitative change in dynamical behaviour caused by parameter variation",
 "critical parameter" ~= "parameter value at which dynamical structure changes",
 "saddle-node bifurcation" ~= "generic collision and creation or annihilation of two equilibria or fixed points",
 "Hopf bifurcation" ~= "local transition involving an equilibrium and periodic oscillation through a complex eigenvalue crossing",
 "period-doubling bifurcation" ~= "bifurcation producing an orbit with twice the original period",
 "normal form" ~= "simplified local dynamical representation preserving essential bifurcation structure"
}

# ---------- CONSTRAINTS ----------
CONSTRAINTS := {
 eigenvalue_crossing_is_candidate_condition_not_always_sufficient_for_bifurcation: true,
 nondegeneracy_and_transversality_conditions_must_be_checked: true,
 local_and_global_bifurcations_are_distinct: true,
 continuous_and_discrete_bifurcation_spectral_conditions_are_distinct: true,
 branch_stability_must_be_analysed_separately_from_branch_existence: true,
 numerical_bifurcation_diagram_requires_resolution_and_continuation_validation: true,
 tipping_point_and_bifurcation_are_related_but_not_synonymous: true
}

# ---------- CONFIDENCE ----------
CONFIDENCE := {
 core_definition: 0.99,
 saddle_node_relation: 0.99,
 pitchfork_transcritical_relation: 0.99,
 Hopf_relation: 0.99,
 discrete_bifurcation_relation: 0.99,
 continuation_relation: 0.98,
 semantic_equivalence: 0.97
}

# ---------- RECURSIVE REASONING ----------
RECURSIVE_REASONING(query):
 identify(parameterised_system_and_control_parameters)
 -> compute(equilibria_fixed_points_or_periodic_branches)
 -> analyse(branch_stability)
 -> detect(loss_of_hyperbolicity_or_multiplier_crossing)
 -> verify(transversality_and_nondegeneracy_conditions)
 -> reduce_to(center_manifold_if_needed)
 -> derive_or_identify(normal_form)
 -> classify(local_or_global_bifurcation)
 -> trace(branches_with_continuation_if_numerical)
 -> analyse(hysteresis_multistability_or_route_to_chaos_if_relevant)
 -> validate(parameter_orientation_resolution_and_global_assumptions)
 -> return(semantic_result)

# ---------- AI CONSUMPTION ----------
AI_CONSUMPTION := {
 parse_as: "typed bifurcation semantic graph",
 primary_entity: BIFURCATION,
 preserve: [
  dynamical_system,
  parameters,
  critical_values,
  equilibrium_or_orbit_branch,
  eigenvalues_or_multipliers,
  stability,
  dimension,
  numerical_resolution
 ],
 infer_through: [
  saddle_node_bifurcations,
  transcritical_bifurcations,
  pitchfork_bifurcations,
  Hopf_bifurcations,
  period_doubling,
  center_manifolds,
  normal_forms,
  continuation
 ],
 avoid: [
  declaring_bifurcation_from_eigenvalue_crossing_alone,
  mixing_continuous_eigenvalues_with discrete multipliers,
  assuming_branch_exists_only_where stable,
  confusing_local_and global bifurcations,
  inferring_Hopf_without complex_pair_and_nondegeneracy,
  treating_sparse_parameter_scan_as complete bifurcation diagram
 ]
}

# ---------- UPDATE MODEL ----------
UPDATE_MODEL(new_information):
 validate(new_information)
 -> identify(bifurcation_context)
 -> compare(existing_relations)
 -> preserve(system_parameter_branch_stability_and_criticality_invariants)
 -> update(affected_entities)
 -> update(affected_edges)
 -> recompute(CONFIDENCE)
 -> regenerate(FLOW_HASH)

# ---------- FLOW HASH ----------
FLOW_HASH := hash(
 SOURCE_URL
 + ENTITY
 + CONCEPTS
 + BIFURCATION
 + PARAMETER
 + CRITICAL_VALUE
 + EQUILIBRIUM
 + STABILITY
 + SADDLE_NODE_BIFURCATION
 + PITCHFORK_BIFURCATION
 + HOPF_BIFURCATION
 + PERIOD_DOUBLING_BIFURCATION
 + NORMAL_FORM
 + CENTER_MANIFOLD
 + SEMANTIC_EQUIVALENCE
 + CONSTRAINTS
)

# ---------- EXECUTION ----------
INPUT(query)
 -> BIFURCATION
 -> SYSTEM_PARAMETER_IDENTIFICATION
 -> BRANCH_COMPUTATION
 -> STABILITY_ANALYSIS
 -> CRITICALITY_DETECTION
 -> NONDEGENERACY_VALIDATION
 -> CENTER_MANIFOLD_REDUCTION
 -> NORMAL_FORM_ANALYSIS
 -> BIFURCATION_CLASSIFICATION
 -> CONTINUATION_ANALYSIS
 -> GLOBAL_DYNAMICS_ANALYSIS
 -> HYPOTHESIS_VALIDATION
 -> RECURSIVE_REASONING(query)
 -> CONFIDENCE
 -> OUTPUT(semantic_result)

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