Skip to main content

Differential Equation Ontology

Differential Equations
Authors: MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: 23 September 2026
Audio Overview
flow "DifferentialEquationOntology" v1.0

# ============================================================
# DIFFERENTIAL EQUATION ONTOLOGY — FLOW ALGEBRA
# ============================================================

SOURCE_URL := "https://kirethresearch.org/booksai-core/ontologies/calculus-analysis-ontologies/differential-equations/differential-equation-ontology.html"
DOMAIN := "Mathematical Ontologies"
CATEGORY := "Calculus and Analysis Ontologies"
SUBCATEGORY := "Differential Equations"
ENTITY := "Differential Equation"

# ---------- CORE ENTITY ----------
DIFFERENTIAL_EQUATION := {
    type: MathematicalEquation,
    domain: DifferentialEquations,
    purpose: "Represent a relation involving an unknown function and one or more of its derivatives, describing how a quantity changes with respect to one or more independent variables."
}

# ---------- CORE CONCEPTS ----------
CONCEPTS := {
    DIFFERENTIAL_EQUATION,
    UNKNOWN_FUNCTION,
    INDEPENDENT_VARIABLE,
    DEPENDENT_VARIABLE,
    DERIVATIVE,
    ORDINARY_DIFFERENTIAL_EQUATION,
    PARTIAL_DIFFERENTIAL_EQUATION,
    ORDER,
    DEGREE,
    LINEARITY,
    INITIAL_CONDITION,
    BOUNDARY_CONDITION,
    SOLUTION,
    GENERAL_SOLUTION,
    PARTICULAR_SOLUTION
}

# ---------- GENERAL FORM ----------
DIFFERENTIAL_EQUATION
    := relation(
        independent_variables,
        unknown_function,
        derivatives_of_unknown_function
    )

general_ODE_form:

F(
    x,
    y,
    y_prime,
    y_double_prime,
    ...,
    y^(n)
) = 0

general_PDE_form:

F(
    x1,...,xm,
    u,
    partial_derivatives_of_u
) = 0

# ---------- UNKNOWN FUNCTION ----------
UNKNOWN_FUNCTION
    -> mathematical_object_to_be_determined

DEPENDENT_VARIABLE
    -> represented_by(UNKNOWN_FUNCTION)

INDEPENDENT_VARIABLE
    -> variable_with_respect_to_which_derivatives_are_taken

# ---------- ODE CLASSIFICATION ----------
ORDINARY_DIFFERENTIAL_EQUATION
    -> derivatives_with_respect_to(ONE_INDEPENDENT_VARIABLE)

ODE
    ~= ORDINARY_DIFFERENTIAL_EQUATION

example:

dy/dx
    = f(x,y)

# ---------- PDE CLASSIFICATION ----------
PARTIAL_DIFFERENTIAL_EQUATION
    -> partial_derivatives_with_respect_to(MULTIPLE_INDEPENDENT_VARIABLES)

PDE
    ~= PARTIAL_DIFFERENTIAL_EQUATION

example:

partial_u/partial_t
    = alpha * partial_squared_u/partial_x_squared

# ---------- ORDER ----------
ORDER
    := highest_derivative_order_present

example:

y_triple_prime
    + y_prime
    + y
    = 0

ORDER
    = 3

ORDER
    -> structural_property_of(DIFFERENTIAL_EQUATION)

# ---------- DEGREE ----------
DEGREE
    := exponent_of(HIGHEST_ORDER_DERIVATIVE)
       when(EQUATION_IS_POLYNOMIAL_IN_DERIVATIVES)

DEGREE
    -> may_be(UNDEFINED)
       for(NONPOLYNOMIAL_DERIVATIVE_EXPRESSIONS)

ORDER
    -/> equivalent_to(DEGREE)

# ---------- LINEARITY ----------
LINEAR_DIFFERENTIAL_EQUATION
    -> unknown_function_and_derivatives_appear_to_FIRST_POWER
    -> no_products_between(UNKNOWN_FUNCTION_OR_ITS_DERIVATIVES)
    -> coefficients_may_depend_on(INDEPENDENT_VARIABLES)

general_linear_ODE:

a_n(x)y^(n)
+
...
+
a_1(x)y_prime
+
a_0(x)y
=
g(x)

# ---------- NONLINEARITY ----------
NONLINEAR_DIFFERENTIAL_EQUATION
    -> violates(LINEARITY_CONDITIONS)

examples_of_nonlinearity:
    y*y_prime
    (y_prime)^2
    sin(y)
    exp(y)

NONLINEARITY
    -> may_produce(COMPLEX_DYNAMICS)

# ---------- HOMOGENEOUS LINEAR EQUATION ----------
if
    g(x) = 0
then

LINEAR_DIFFERENTIAL_EQUATION
    -> HOMOGENEOUS

HOMOGENEOUS_LINEAR_SOLUTION_SET
    -> closed_under(LINEAR_COMBINATION)

# ---------- NONHOMOGENEOUS LINEAR EQUATION ----------
if
    g(x) != 0
then

LINEAR_DIFFERENTIAL_EQUATION
    -> NONHOMOGENEOUS

GENERAL_SOLUTION
    =
HOMOGENEOUS_SOLUTION
+
PARTICULAR_SOLUTION

# ---------- SOLUTION ----------
SOLUTION
    := function_that_satisfies(
        DIFFERENTIAL_EQUATION
    )
       on(RELEVANT_DOMAIN)

SOLUTION_VERIFICATION
    -> substitute(function_and_derivatives_into_equation)

if
    equation_identity_holds
then

candidate
    -> VALID_SOLUTION

# ---------- GENERAL SOLUTION ----------
GENERAL_SOLUTION
    -> family_of(SOLUTIONS)
    -> may_contain(ARBITRARY_CONSTANTS)

number_of_arbitrary_constants
    -> often_related_to(ORDER)
       for(REGULAR_ODE_CONTEXTS)

# ---------- PARTICULAR SOLUTION ----------
PARTICULAR_SOLUTION
    -> specific_member_of(SOLUTION_FAMILY)

INITIAL_OR_BOUNDARY_CONDITIONS
    -> may_select(PARTICULAR_SOLUTION)

# ---------- INITIAL VALUE PROBLEM ----------
INITIAL_VALUE_PROBLEM
    := DIFFERENTIAL_EQUATION
       + INITIAL_CONDITIONS

example:

y_prime = f(x,y)
y(x_0) = y_0

INITIAL_CONDITION
    -> specifies(SOLUTION_DATA_AT_INITIAL_POINT)

# ---------- BOUNDARY VALUE PROBLEM ----------
BOUNDARY_VALUE_PROBLEM
    := DIFFERENTIAL_EQUATION
       + BOUNDARY_CONDITIONS

BOUNDARY_CONDITION
    -> imposed_at(BOUNDARY_POINTS_OR_SURFACES)

types:
    DIRICHLET
    NEUMANN
    ROBIN
    MIXED

# ---------- EXISTENCE ----------
EXISTENCE
    -> asks(Whether_at_least_one_solution_exists)

EXISTENCE_THEOREM
    -> requires(HYPOTHESES)

SOLUTION
    -/> assumed_to_exist_without(VALIDATION)

# ---------- UNIQUENESS ----------
UNIQUENESS
    -> asks(Whether_only_one_solution_satisfies_problem_data)

PICARD_LINDELOF_THEOREM
    -> provides(LOCAL_EXISTENCE_AND_UNIQUENESS)
       for certain first-order ODEs
       under(CONTINUITY_AND_LIPSCHITZ_CONDITIONS)

# ---------- ANALYTICAL SOLUTION ----------
ANALYTICAL_SOLUTION
    -> expressed_in(CLOSED_OR_SYMBOLIC_FORM)

METHODS := {
    SEPARATION_OF_VARIABLES,
    INTEGRATING_FACTOR,
    CHARACTERISTIC_EQUATION,
    SUBSTITUTION,
    TRANSFORMS,
    POWER_SERIES,
    GREEN_FUNCTIONS
}

METHOD_SELECTION
    -> depends_on(EQUATION_STRUCTURE)

# ---------- NUMERICAL SOLUTION ----------
NUMERICAL_SOLUTION
    -> approximate_solution

METHODS_NUMERICAL := {
    EULER_METHOD,
    RUNGE_KUTTA_METHODS,
    FINITE_DIFFERENCE_METHOD,
    FINITE_ELEMENT_METHOD,
    FINITE_VOLUME_METHOD
}

NUMERICAL_METHOD
    -> discretises(CONTINUOUS_PROBLEM)

# ---------- AUTONOMOUS EQUATION ----------
AUTONOMOUS_ODE
    := y_prime = f(y)

INDEPENDENT_VARIABLE
    -> absent_explicitly_from(RIGHT_HAND_SIDE)

AUTONOMOUS_SYSTEM
    -> supports(PHASE_SPACE_ANALYSIS)

# ---------- SYSTEM FORM ----------
SYSTEM_OF_ODES
    := x_prime = F(t,x)

HIGHER_ORDER_ODE
    -> convertible_to(FIRST_ORDER_SYSTEM)

STATE_VECTOR
    -> stores(DEPENDENT_VARIABLES_AND_REQUIRED_DERIVATIVES)

# ---------- EQUILIBRIUM ----------
for autonomous system:

x_prime
    = F(x)

EQUILIBRIUM_POINT
    := x_star
       where
       F(x_star) = 0

EQUILIBRIUM
    -> constant_solution

# ---------- STABILITY ----------
STABILITY
    -> describes(RESPONSE_TO_PERTURBATIONS)

JACOBIAN_AT_EQUILIBRIUM
    -> supports(LOCAL_LINEAR_STABILITY_ANALYSIS)

EIGENVALUES
    -> inform(LOCAL_BEHAVIOUR)
       under(APPROPRIATE_CONDITIONS)

# ---------- APPLICATIONS ----------
DIFFERENTIAL_EQUATION
    -> models(MOTION)
    -> models(POPULATION_CHANGE)
    -> models(HEAT_FLOW)
    -> models(WAVES)
    -> models(ELECTRICAL_SYSTEMS)
    -> models(CHEMICAL_REACTIONS)
    -> models(FLUID_FLOW)
    -> models(CONTROL_SYSTEMS)

# ---------- RELATION GRAPH ----------
UNKNOWN_FUNCTION
    -> constrained_by(DIFFERENTIAL_EQUATION)

DERIVATIVES
    -> encode(CHANGE)

HIGHEST_DERIVATIVE
    -> determines(ORDER)

LINEARITY
    -> determines(SUPERPOSITION_PROPERTIES)

INITIAL_CONDITIONS
    -> define(INITIAL_VALUE_PROBLEM)

BOUNDARY_CONDITIONS
    -> define(BOUNDARY_VALUE_PROBLEM)

SOLUTION
    -> verified_by(SUBSTITUTION)

NUMERICAL_METHOD
    -> approximates(SOLUTION)

# ---------- SEMANTIC EQUIVALENCE ----------
SEMANTIC_EQUIVALENCE := {
    "differential equation" ~= "equation involving an unknown function and its derivatives",
    "ODE" ~= "ordinary differential equation",
    "PDE" ~= "partial differential equation",
    "general solution" ~= "family of solutions containing arbitrary parameters where appropriate",
    "particular solution" ~= "specific solution satisfying selected conditions",
    "initial value problem" ~= "differential equation with initial data"
}

# ---------- CONSTRAINTS ----------
CONSTRAINTS := {
    differential_equation_must_involve_derivative_information: true,
    order_is_highest_derivative_order: true,
    degree_not_defined_for_all_equations: true,
    linearity_has_specific_structural_requirements: true,
    solution_must_satisfy_equation_on_domain: true,
    existence_and_uniqueness_require_hypotheses: true,
    numerical_solution_is_approximate_unless_exactness_is_proven: true
}

# ---------- CONFIDENCE ----------
CONFIDENCE := {
    core_definition: 0.99,
    ode_pde_relation: 0.99,
    order_degree_relation: 0.99,
    linearity_relation: 0.99,
    solution_structure: 0.99,
    existence_uniqueness_relation: 0.98,
    semantic_equivalence: 0.97
}

# ---------- RECURSIVE REASONING ----------
RECURSIVE_REASONING(query):
    identify(equation)
    -> identify(unknown_function)
    -> identify(independent_variables)
    -> classify(ode_or_pde)
    -> determine(order)
    -> determine(degree_if_defined)
    -> determine(linearity)
    -> identify(initial_or_boundary_conditions)
    -> classify(equation_type)
    -> select(solution_method)
    -> solve_or_approximate()
    -> verify(solution_by_substitution)
    -> analyse(existence_uniqueness_or_stability_if_requested)
    -> return(semantic_result)

# ---------- AI CONSUMPTION ----------
AI_CONSUMPTION := {
    parse_as: "typed differential-equation semantic graph",
    primary_entity: DIFFERENTIAL_EQUATION,
    preserve: [
        unknown_function,
        independent_variables,
        derivative_orders,
        coefficients,
        linearity,
        domain,
        initial_conditions,
        boundary_conditions
    ],
    infer_through: [
        ode_classification,
        pde_classification,
        solution_methods,
        existence_uniqueness,
        numerical_methods,
        dynamical_systems,
        stability
    ],
    avoid: [
        confusing_order_with_degree,
        assigning_degree_when undefined,
        applying_superposition_to nonlinear equations,
        assuming_solution_exists uniquely,
        ignoring initial_or_boundary conditions,
        treating numerical approximation as exact solution
    ]
}

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

# ---------- FLOW HASH ----------
FLOW_HASH := hash(
    SOURCE_URL
    + ENTITY
    + CONCEPTS
    + DIFFERENTIAL_EQUATION
    + ORDINARY_DIFFERENTIAL_EQUATION
    + PARTIAL_DIFFERENTIAL_EQUATION
    + ORDER
    + DEGREE
    + LINEAR_DIFFERENTIAL_EQUATION
    + INITIAL_VALUE_PROBLEM
    + BOUNDARY_VALUE_PROBLEM
    + SOLUTION
    + SEMANTIC_EQUIVALENCE
    + CONSTRAINTS
)

# ---------- EXECUTION ----------
INPUT(query)
    -> DIFFERENTIAL_EQUATION
    -> EQUATION_IDENTIFICATION
    -> FUNCTION_VARIABLE_IDENTIFICATION
    -> ODE_PDE_CLASSIFICATION
    -> ORDER_DEGREE_ANALYSIS
    -> LINEARITY_ANALYSIS
    -> CONDITION_ANALYSIS
    -> EQUATION_TYPE_CLASSIFICATION
    -> METHOD_SELECTION
    -> SOLUTION_OR_APPROXIMATION
    -> SOLUTION_VALIDATION
    -> EXISTENCE_UNIQUENESS_STABILITY_ANALYSIS
    -> RECURSIVE_REASONING(query)
    -> CONFIDENCE
    -> OUTPUT(semantic_result)

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