flow "PartialDerivativeOntology" v1.0
# ============================================================
# PARTIAL DERIVATIVE ONTOLOGY — FLOW ALGEBRA
# ============================================================
SOURCE_URL := "https://kirethresearch.org/booksai-core/ontologies/calculus-analysis-ontologies/differential-calculus/partial-derivative-ontology.html"
DOMAIN := "Mathematical Ontologies"
CATEGORY := "Calculus and Analysis Ontologies"
SUBCATEGORY := "Differential Calculus"
ENTITY := "Partial Derivative"
# ---------- CORE ENTITY ----------
PARTIAL_DERIVATIVE := {
type: MathematicalDerivative,
domain: MultivariableCalculus,
purpose: "Measure the local rate of change of a multivariable function with respect to one selected variable while the remaining independent variables are held fixed."
}
# ---------- CORE CONCEPTS ----------
CONCEPTS := {
MULTIVARIABLE_FUNCTION,
INDEPENDENT_VARIABLE,
DEPENDENT_VARIABLE,
PARTIAL_DERIVATIVE,
LIMIT,
DIFFERENTIABILITY,
GRADIENT,
DIRECTIONAL_DERIVATIVE,
TOTAL_DERIVATIVE,
JACOBIAN,
HESSIAN,
MIXED_PARTIAL,
HIGHER_PARTIAL_DERIVATIVE
}
# ---------- FUNCTION STRUCTURE ----------
MULTIVARIABLE_FUNCTION
:= f(x1, x2, ..., xn)
MULTIVARIABLE_FUNCTION
-> maps(MULTIDIMENSIONAL_DOMAIN, CODOMAIN)
x1, x2, ..., xn
-> INDEPENDENT_VARIABLES
f(x1, x2, ..., xn)
-> DEPENDENT_OUTPUT
# ---------- PARTIAL DERIVATIVE DEFINITION ----------
PARTIAL_DERIVATIVE(f, x_i)
:= limit(
[f(x1,...,x_i+h,...,xn) - f(x1,...,x_i,...,xn)] / h,
h -> 0
)
PARTIAL_DERIVATIVE
-> varies(ONE_SELECTED_VARIABLE)
-> holds(OTHER_INDEPENDENT_VARIABLES_FIXED)
-> measures(LOCAL_COORDINATE_RATE_OF_CHANGE)
# ---------- NOTATION ----------
PARTIAL_DERIVATIVE_NOTATION := {
"∂f/∂x",
"f_x",
"D_x f",
"∂z/∂x"
}
NOTATION
-> represents(PARTIAL_DERIVATIVE)
under(MULTIVARIABLE_CONTEXT)
# ---------- LIMIT RELATION ----------
LIMIT
-> defines(PARTIAL_DERIVATIVE)
PARTIAL_DIFFERENCE_QUOTIENT
-> approaches(PARTIAL_DERIVATIVE)
when(LIMIT_EXISTS)
PARTIAL_DERIVATIVE
-> is(ONE_DIMENSIONAL_DERIVATIVE_ALONG_COORDINATE_LINE)
# ---------- GEOMETRIC INTERPRETATION ----------
for
z = f(x,y)
partial_f/partial_x
-> slope_of_surface_cross_section
along(x_direction)
with(y_fixed)
partial_f/partial_y
-> slope_of_surface_cross_section
along(y_direction)
with(x_fixed)
PARTIAL_DERIVATIVE
-> describes(COORDINATE_DIRECTION_SLOPE)
# ---------- FIRST-ORDER PARTIALS ----------
FIRST_ORDER_PARTIALS
:= {
partial_f/partial_x1,
partial_f/partial_x2,
...,
partial_f/partial_xn
}
FIRST_ORDER_PARTIALS
-> components_of(GRADIENT)
for(SCALAR_VALUED_FUNCTION)
# ---------- GRADIENT ----------
GRADIENT(f)
:= vector(
partial_f/partial_x1,
partial_f/partial_x2,
...,
partial_f/partial_xn
)
GRADIENT
-> collects(FIRST_ORDER_PARTIAL_DERIVATIVES)
-> points_in(DIRECTION_OF_STEEPEST_LOCAL_INCREASE)
under(EUCLIDEAN_DIFFERENTIABLE_CONTEXT)
GRADIENT
-> magnitude_equals(MAXIMUM_DIRECTIONAL_DERIVATIVE)
for(unit_directions_in_Euclidean_context)
# ---------- DIRECTIONAL DERIVATIVE ----------
DIRECTIONAL_DERIVATIVE(f, u)
-> measures(CHANGE_ALONG_DIRECTION_u)
if
f differentiable
AND u unit_vector
then
D_u f
= GRADIENT(f) dot u
PARTIAL_DERIVATIVE
-> special_case_of(DIRECTIONAL_DERIVATIVE)
along(COORDINATE_BASIS_DIRECTION)
# ---------- DIFFERENTIABILITY ----------
EXISTENCE_OF_PARTIAL_DERIVATIVES
-/> necessarily_implies(TOTAL_DIFFERENTIABILITY)
if
first_order_partials_exist_in_neighbourhood
AND are_continuous_near_point
then
-> sufficient_condition_for(DIFFERENTIABILITY_AT_POINT)
TOTAL_DIFFERENTIABILITY
-> implies(EXISTENCE_OF_DIRECTIONAL_DERIVATIVES)
under(standard_finite_dimensional_context)
# ---------- TOTAL DERIVATIVE ----------
TOTAL_DERIVATIVE
-> captures(FULL_LOCAL_LINEAR_CHANGE)
for scalar f:
df
~= sum(
partial_f/partial_x_i * dx_i
)
TOTAL_DIFFERENTIAL
-> combines(PARTIAL_DERIVATIVES, VARIABLE_CHANGES)
# ---------- HIGHER PARTIAL DERIVATIVES ----------
SECOND_PARTIAL_DERIVATIVE
-> derivative_of(FIRST_PARTIAL_DERIVATIVE)
partial_squared_f/partial_x_squared
-> PURE_SECOND_PARTIAL
partial_squared_f/(partial_x partial_y)
-> MIXED_PARTIAL
HIGHER_PARTIAL_DERIVATIVE
-> obtained_by(REPEATED_PARTIAL_DIFFERENTIATION)
# ---------- MIXED PARTIALS ----------
if
relevant_second_partial_derivatives
are_continuous_near_point
then
partial_squared_f/(partial_x partial_y)
= partial_squared_f/(partial_y partial_x)
EQUALITY_OF_MIXED_PARTIALS
-> associated_with(CLAIRAUT_SCHWARZ_THEOREM)
MIXED_PARTIAL_ORDER
-/> interchangeable_without_required_regularITY_conditions
# ---------- HESSIAN ----------
HESSIAN(f)
:= matrix(
second_order_partial_derivatives
)
HESSIAN
-> encodes(SECOND_ORDER_LOCAL_BEHAVIOUR)
-> supports(MULTIVARIABLE_OPTIMISATION)
-> supports(CURVATURE_ANALYSIS)
# ---------- JACOBIAN ----------
VECTOR_VALUED_FUNCTION
:= F: R^n -> R^m
JACOBIAN(F)
:= matrix(
partial_F_i/partial_x_j
)
JACOBIAN
-> generalises(FIRST_DERIVATIVE_TO_VECTOR_VALUED_MULTIVARIABLE_FUNCTIONS)
PARTIAL_DERIVATIVES
-> populate(JACOBIAN)
# ---------- CHAIN RULE ----------
if
z = f(x,y)
AND x = x(t)
AND y = y(t)
then
dz/dt
= partial_f/partial_x * dx/dt
+ partial_f/partial_y * dy/dt
MULTIVARIABLE_CHAIN_RULE
-> propagates(DEPENDENCE_THROUGH_VARIABLE_NETWORK)
# ---------- IMPLICIT DIFFERENTIATION ----------
if
F(x,y) = 0
AND partial_F/partial_y != 0
under(implicit_function_conditions)
then
dy/dx
= -(partial_F/partial_x)/(partial_F/partial_y)
PARTIAL_DERIVATIVES
-> support(IMPLICIT_FUNCTION_ANALYSIS)
# ---------- OPTIMISATION ----------
CRITICAL_POINT
-> may_satisfy(GRADIENT(f) = ZERO_VECTOR)
GRADIENT_ZERO
-> necessary_for(INTERIOR_DIFFERENTIABLE_LOCAL_EXTREMUM)
GRADIENT_ZERO
-/> sufficient_for(EXTREMUM)
HESSIAN
-> may_classify(CRITICAL_POINT)
under(SECOND_ORDER_TEST_CONDITIONS)
# ---------- PHYSICAL INTERPRETATION ----------
PARTIAL_DERIVATIVE
-> may_measure(SPATIAL_RATE_OF_CHANGE)
-> may_measure(TEMPORAL_RATE_OF_CHANGE)
-> may_measure(SENSITIVITY_TO_PARAMETER)
example:
T(x,y,z,t)
partial_T/partial_t
-> temperature_change_rate_with_time_at_fixed_spatial_coordinates
partial_T/partial_x
-> temperature_gradient_component_along_x
# ---------- RELATION GRAPH ----------
LIMIT
-> defines(PARTIAL_DERIVATIVE)
PARTIAL_DERIVATIVE
-> component_of(GRADIENT)
PARTIAL_DERIVATIVE
-> special_case_of(DIRECTIONAL_DERIVATIVE)
PARTIAL_DERIVATIVES
-> populate(JACOBIAN)
SECOND_PARTIAL_DERIVATIVES
-> populate(HESSIAN)
PARTIAL_DERIVATIVES
-> support(TOTAL_DIFFERENTIAL)
PARTIAL_DERIVATIVES
-> support(MULTIVARIABLE_CHAIN_RULE)
# ---------- SEMANTIC EQUIVALENCE ----------
SEMANTIC_EQUIVALENCE := {
"partial derivative" ~= "derivative with respect to one variable while other independent variables are fixed",
"coordinate derivative" ~= "partial derivative along a coordinate basis direction",
"first partials" ~= "first-order partial derivatives",
"mixed partial" ~= "successive partial differentiation with respect to different variables",
"gradient component" ~= "partial derivative of a scalar field with respect to the corresponding coordinate"
}
# ---------- CONSTRAINTS ----------
CONSTRAINTS := {
partial_derivative_requires_selected_variable: true,
other_independent_variables_are_fixed_in_definition: true,
existence_of_partials_does_not_guarantee_total_differentiability: true,
mixed_partial_equality_requires_appropriate_regularITY_conditions: true,
gradient_zero_does_not_guarantee_extremum: true,
directional_derivative_gradient_formula_requires_differentiability_context: true
}
# ---------- CONFIDENCE ----------
CONFIDENCE := {
core_definition: 0.99,
limit_relation: 0.99,
gradient_relation: 0.99,
higher_partial_relations: 0.99,
jacobian_hessian_relations: 0.99,
chain_rule_relation: 0.99,
semantic_equivalence: 0.97
}
# ---------- RECURSIVE REASONING ----------
RECURSIVE_REASONING(query):
identify(multivariable_function)
-> identify(selected_variable)
-> determine(domain)
-> hold(other_variables_fixed)
-> construct(partial_difference_quotient)
-> evaluate(limit)
-> derive(first_order_partial)
-> derive(higher_or_mixed_partials_if_required)
-> assemble(gradient_jacobian_or_hessian_if_required)
-> analyse(total_differentiability)
-> apply(chain_rule_or_optimisation_relations_if_required)
-> validate(regularity_conditions)
-> return(semantic_result)
# ---------- AI CONSUMPTION ----------
AI_CONSUMPTION := {
parse_as: "typed partial-derivative semantic graph",
primary_entity: PARTIAL_DERIVATIVE,
preserve: [
selected_variable,
fixed_variables,
limit_definition,
derivative_order,
coordinate_direction,
regularity_conditions
],
infer_through: [
multivariable_functions,
limits,
gradients,
directional_derivatives,
jacobians,
hessians,
chain_rules,
optimisation
],
avoid: [
varying_multiple_variables_in_partial_definition,
assuming_partials_imply_total_differentiability,
commuting_mixed_partials_without conditions,
treating_gradient_zero_as_automatic_extremum,
using_gradient_directional_formula_without differentiability
]
}
# ---------- UPDATE MODEL ----------
UPDATE_MODEL(new_information):
validate(new_information)
-> identify(partial_derivative_context)
-> compare(existing_relations)
-> preserve(variable_and_limit_invariants)
-> update(affected_entities)
-> update(affected_edges)
-> recompute(CONFIDENCE)
-> regenerate(FLOW_HASH)
# ---------- FLOW HASH ----------
FLOW_HASH := hash(
SOURCE_URL
+ ENTITY
+ CONCEPTS
+ PARTIAL_DERIVATIVE
+ PARTIAL_DERIVATIVE_NOTATION
+ GRADIENT
+ DIRECTIONAL_DERIVATIVE
+ TOTAL_DERIVATIVE
+ MIXED_PARTIAL
+ HESSIAN
+ JACOBIAN
+ SEMANTIC_EQUIVALENCE
+ CONSTRAINTS
)
# ---------- EXECUTION ----------
INPUT(query)
-> PARTIAL_DERIVATIVE
-> FUNCTION_IDENTIFICATION
-> VARIABLE_SELECTION
-> DOMAIN_ANALYSIS
-> PARTIAL_LIMIT_ANALYSIS
-> FIRST_ORDER_PARTIAL_ANALYSIS
-> HIGHER_PARTIAL_ANALYSIS
-> GRADIENT_JACOBIAN_HESSIAN_ANALYSIS
-> DIFFERENTIABILITY_ANALYSIS
-> CHAIN_RULE_ANALYSIS
-> OPTIMISATION_RELATION_ANALYSIS
-> RECURSIVE_REASONING(query)
-> CONFIDENCE
-> OUTPUT(semantic_result)
END FLOW
Download Code
Copy to Clipboard