Skip to main content

Model Verification Ontology

Mathematical Modelling
Authors: MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: 12 September 2026
Audio Overview
AI INTERPRETATION NOTE
This Flow Algebra defines the Model Verification Ontology within the Kireth Research Semantic Library. Model verification is the structured assessment of whether a mathematical or computational model has been implemented, solved and executed correctly relative to its intended equations, algorithms, numerical methods and specifications. This ontology supports code verification, calculation verification, manufactured solutions, benchmark problems, residual checks, conservation checks, convergence studies, discretisation error, solver tolerances, numerical stability, regression testing, reproducibility and relationships with mathematical modelling, computational models, numerical analysis and simulation.

FLOW_ALGEBRA_RECORD {

METADATA {
 FLOW_NAME = "Model Verification Ontology"
 FLOW_TYPE = "Mathematical Ontology"
 DOMAIN = "Mathematics"
 SUBDOMAIN = "Applied Mathematics"
 SPECIALISATION = "Mathematical Modelling / Model Verification"
 CANONICAL_PAGE = "https://kirethresearch.org/booksai-core/ontologies/mathematical-ontologies/applied-mathematics-ontologies/mathematical-modelling/model-verification-ontology.html"
 LANGUAGE = "en-GB"
 VERSION = "1.0"
 STATUS = "active"
}

IDENTITY {
 PRIMARY_ENTITY = ModelVerification
 ENTITY_CLASS = ModelImplementationCorrectnessFramework
 PRIMARY_CONTEXT = MathematicalModelling
 DEFINITION = "Model verification is the assessment of whether the intended mathematical model has been correctly implemented, solved and executed according to its equations, algorithms and numerical specifications."
 SEMANTIC_ROLE = "Provides the machine-readable framework for code verification, solution verification, numerical error assessment, convergence testing, residual analysis, conservation checks, benchmark comparison and implementation correctness."
}

SCOPE {
 INCLUDE = [
  ModelVerification,
  CodeVerification,
  SolutionVerification,
  CalculationVerification,
  ImplementationVerification,
  AlgorithmVerification,
  NumericalVerification,
  ManufacturedSolution,
  MethodOfManufacturedSolutions,
  AnalyticalSolution,
  BenchmarkProblem,
  ReferenceSolution,
  Residual,
  ConservationCheck,
  ConsistencyCheck,
  ConvergenceStudy,
  GridConvergence,
  MeshConvergence,
  TimeStepConvergence,
  IterativeConvergence,
  DiscretisationError,
  TruncationError,
  RoundoffError,
  IterationError,
  SolverTolerance,
  StabilityCheck,
  RegressionTest,
  UnitTest,
  IntegrationTest,
  Reproducibility,
  NumericalPrecision,
  ErrorEstimate,
  OrderOfAccuracy,
  VerificationStatus,
  VerificationReport
 ]

 EXCLUDE_AS_PRIMARY = [
  ModelValidationAgainstPhysicalReality,
  ParameterCalibration,
  EmpiricalFitAssessment,
  PredictiveGeneralisationAssessmentWithoutImplementationCorrectnessQuestion
 ]

 DISAMBIGUATION_RULE =
  "When the question is whether the intended equations, algorithms or numerical model were implemented and solved correctly, interpret the context as model verification rather than model validation."
}

CORE_CONCEPTS {

 ModelVerification {
  definition = "Assessment of implementation and solution correctness relative to the specified mathematical model."
 }

 CodeVerification {
  definition = "Assessment of whether software correctly implements the intended mathematical equations and algorithms."
 }

 SolutionVerification {
  definition = "Assessment and estimation of numerical error in a specific computed solution."
 }

 ManufacturedSolution {
  definition = "A deliberately chosen exact solution inserted into governing equations to derive compatible source terms for code testing."
 }

 BenchmarkProblem {
  definition = "A problem with a trusted analytical, numerical or community reference solution used for verification."
 }

 Residual {
  definition = "The discrepancy remaining when a computed solution is substituted into the implemented equations."
 }

 ConvergenceStudy {
  definition = "A systematic analysis of solution behaviour under mesh, time-step, iteration or numerical refinement."
 }

 OrderOfAccuracy {
  definition = "The asymptotic rate at which numerical error decreases as discretisation is refined."
 }

 ConservationCheck {
  definition = "Assessment of whether a computation preserves declared conservation laws to the expected tolerance."
 }

 VerificationStatus {
  definition = "A semantic label describing whether implementation and solution correctness are sufficiently supported."
 }
}

RELATIONS {
 ModelVerification --is_part_of--> MathematicalModelling
 ModelVerification --evaluates--> ComputationalModel
 CodeVerification --evaluates--> SoftwareImplementation
 SolutionVerification --evaluates--> NumericalSolution
 ManufacturedSolution --supports--> CodeVerification
 BenchmarkProblem --supports--> ModelVerification
 ReferenceSolution --supports--> ErrorEstimate
 Residual --measures--> EquationSatisfaction
 ConvergenceStudy --estimates--> NumericalError
 GridConvergence --is_special_case_of--> ConvergenceStudy
 TimeStepConvergence --is_special_case_of--> ConvergenceStudy
 IterativeConvergence --is_special_case_of--> ConvergenceStudy
 OrderOfAccuracy --describes--> NumericalMethod
 ConservationCheck --tests--> PhysicalOrMathematicalConstraint
 RegressionTest --protects_against--> ImplementationChangeError
 Reproducibility --supports--> VerificationEvidence
 VerificationStatus --summarises--> VerificationOutcome
}

OPERATORS {
 COMPUTE_RESIDUAL(model,solution) :=
  implemented_equation_residual

 ERROR(reference,approximation,norm) :=
  norm(approximation-reference)

 RELATIVE_ERROR(reference,approximation,norm) :=
  norm(approximation-reference)/norm(reference)
  WHEN norm(reference)!=0

 CONVERGENCE_RATE(e_h,e_h2,r) :=
  log(e_h/e_h2)/log(r)
  under asymptotic_refinement assumptions

 RICHARDSON_EXTRAPOLATION(phi_h,phi_h2,r,p) :=
  phi_h2 + (phi_h2-phi_h)/(r^p-1)

 GRID_CONVERGENCE_INDEX(phi_fine,phi_coarse,r,p,Fs) :=
  Fs*abs(phi_fine-phi_coarse)/(abs(phi_fine)*(r^p-1))
  under declared GCI convention

 CONSERVATION_ERROR(inflow,outflow,storage,source,sink) :=
  balance_residual_under_declared_sign convention

 MANUFACTURED_SOURCE(operator,u_exact) :=
  operator(u_exact)

 CHECK_TOLERANCE(residual,tolerance) :=
  residual <= tolerance

 VERIFY_REGRESSION(current_output,baseline,tolerance) :=
  within_declared_numerical_difference
}

DEFINITIONS {
 D1 = "Verification asks whether the model is implemented and solved correctly."
 D2 = "Validation asks whether the model adequately represents the intended real system."
 D3 = "Code verification focuses on implementation correctness."
 D4 = "Solution verification focuses on numerical error in a computed solution."
 D5 = "Manufactured solutions provide exact-code test cases without requiring physically realistic solutions."
 D6 = "Convergence studies require systematic numerical refinement."
 D7 = "Residual convergence and solution convergence are related but not identical."
 D8 = "Observed order of accuracy should approach theoretical order only in the asymptotic regime."
 D9 = "Solver tolerance must be sufficiently small relative to discretisation error for clean convergence studies."
 D10 = "Passing verification tests does not establish model validity."
}

AXIOMS {
 A1_SPECIFICATION:
  Verification compares implementation against a declared mathematical specification

 A2_CODE_SOLUTION_DISTINCTION:
  Code verification and solution verification are distinct activities

 A3_REFINEMENT:
  Numerical convergence claims require systematic refinement

 A4_REFERENCE:
  Error estimation requires a reference solution, exact solution or convergence-based surrogate

 A5_RESIDUAL:
  Correctly solved discrete equations should satisfy residual tolerances

 A6_CONSERVATION:
  Declared conservation properties should be preserved to expected numerical tolerance

 A7_REPRODUCIBILITY:
  Verification evidence should be reproducible from documented configuration

 A8_VALIDATION_DISTINCTION:
  Verification success does not imply empirical or physical validity
}

REASONING {

 R1_VERIFICATION_PROBLEM_FORMULATION {
  INPUT = model_implementation
  IDENTIFY = mathematical_specification
  IDENTIFY = numerical_method
  IDENTIFY = solver
  IDENTIFY = required_accuracy
  RETURN = verification_plan
 }

 R2_CODE_VERIFICATION {
  INPUT = implementation_and_test_problem
  SELECT = manufactured_solution_analytical_solution_or_benchmark
  RUN = implementation
  COMPARE = computed_and_reference solution
  RETURN = code_verification_result
 }

 R3_MANUFACTURED_SOLUTION {
  INPUT = governing_operator_and_chosen_exact_solution
  DERIVE = compatible_source_terms_and_boundary conditions
  RUN = code
  CHECK = numerical_convergence_to_exact_solution
  RETURN = manufactured_solution_verification
 }

 R4_SOLUTION_VERIFICATION {
  INPUT = production_solution
  IDENTIFY = discretisation_parameters
  COMPUTE = refinement_sequence
  ESTIMATE = numerical_error
  RETURN = solution_verification_profile
 }

 R5_CONVERGENCE_STUDY {
  INPUT = solutions_at_multiple_resolutions
  COMPUTE = solution_differences_or_reference errors
  ESTIMATE = observed_order
  TEST = asymptotic_behaviour
  RETURN = convergence_status
 }

 R6_RESIDUAL_ANALYSIS {
  INPUT = numerical_solution_and_discrete_equations
  COMPUTE = residual_norm
  COMPARE = solver_tolerance
  RETURN = equation_satisfaction_status
 }

 R7_CONSERVATION_CHECK {
  INPUT = model_fluxes_sources_storage_terms
  COMPUTE = balance_error
  COMPARE = expected_tolerance
  RETURN = conservation_status
 }

 R8_REGRESSION_VERIFICATION {
  INPUT = current_and_reference_implementation outputs
  COMPARE = under controlled numerical tolerance
  IDENTIFY = unexpected_changes
  RETURN = regression_status
 }

 R9_ERROR_BUDGET {
  INPUT = numerical_solution
  IDENTIFY = discretisation_iteration_roundoff_sampling_and_solver contributions
  ESTIMATE = dominant_sources
  RETURN = verification_error_budget
 }

 R10_VERIFICATION_REPORTING {
  INPUT = all_verification_evidence
  SUMMARISE = tests_errors_orders_tolerances_failures_and_limitations
  RETURN = verification_report_and_status
 }
}

CONSTRAINTS {
 C1 = "Verification and validation must not be conflated."
 C2 = "Convergence studies need at least a meaningful refinement sequence."
 C3 = "Refinement ratios and norms must be stated."
 C4 = "Observed order estimates are unreliable outside the asymptotic regime."
 C5 = "Iterative error should be small relative to discretisation error in grid studies."
 C6 = "Benchmark agreement may not uniquely prove code correctness."
 C7 = "Manufactured solutions test implementation, not physical realism."
 C8 = "Floating-point differences require tolerance-aware regression tests."
 C9 = "Residual tolerances must account for scaling and conditioning."
 C10 = "Numerical verification evidence is conditional on tested regimes and configurations."
}

SEMANTIC_EQUIVALENCE {
 "ModelVerification" <=> "ImplementationAndSolutionCorrectnessAssessment"
 "CodeVerification" <=> "SoftwareImplementationCorrectnessAssessment"
 "SolutionVerification" <=> "NumericalSolutionErrorAssessment"
 "ManufacturedSolution" <=> "ArtificialExactSolutionForCodeTesting"
 "ConvergenceStudy" <=> "SystematicNumericalRefinementAssessment"
 "VerificationStatus" <=> "ImplementationCorrectnessEvidenceSummary"
}

VALIDATION {
 V1 = "Mathematical specification is identified."
 V2 = "Numerical method and solver are identified."
 V3 = "Reference solution or refinement strategy is appropriate."
 V4 = "Residual tolerance is explicit."
 V5 = "Convergence study uses systematic refinement."
 V6 = "Observed order is interpreted in the asymptotic regime."
 V7 = "Conservation tests use consistent sign and unit conventions."
 V8 = "Regression comparisons use appropriate tolerances."
 V9 = "Verification evidence is reproducible."
 V10 = "Verification conclusions are not presented as validation."
}

CONFIDENCE {
 BASE_CONFIDENCE = 0.99
 MODEL_VERIFICATION_DEFINITION = 0.99
 CODE_VERIFICATION_REASONING = 0.99
 SOLUTION_VERIFICATION_REASONING = 0.98
 MANUFACTURED_SOLUTION_REASONING = 0.99
 CONVERGENCE_REASONING = 0.98
 RESIDUAL_REASONING = 0.99
 CONSERVATION_REASONING = 0.98
 REPRODUCIBILITY_REASONING = 0.99

 POLICY =
  "Reduce confidence when mathematical specification, refinement sequence, solver tolerance, reference solution, numerical precision, convergence regime or implementation provenance are underspecified."
}

AI_CONSUMPTION {
 PURPOSES = [
  SemanticSearch,
  OntologyGrounding,
  ModelVerificationReasoning,
  CodeVerification,
  SolutionVerification,
  ManufacturedSolutionReasoning,
  BenchmarkReasoning,
  ResidualAnalysis,
  ConvergenceAnalysis,
  GridConvergence,
  TimeStepConvergence,
  ErrorEstimation,
  ConservationChecking,
  RegressionTesting,
  ReproducibilityReasoning,
  KnowledgeGraphConstruction,
  RetrievalAugmentation,
  RecursiveInference
 ]

 NORMALISE {
  "model verification" -> ModelVerification
  "code verification" -> CodeVerification
  "solution verification" -> SolutionVerification
  "manufactured solution" -> ManufacturedSolution
  "method of manufactured solutions" -> MethodOfManufacturedSolutions
  "convergence study" -> ConvergenceStudy
  "grid convergence" -> GridConvergence
  "mesh convergence" -> MeshConvergence
  "time-step convergence" -> TimeStepConvergence
  "order of accuracy" -> OrderOfAccuracy
  "regression test" -> RegressionTest
 }

 INTERPRETATION_ORDER = [
  detect_model_verification_context,
  identify mathematical_specification_implementation_numerical_method_solver_and_tolerances,
  identify code_verification_solution_verification_benchmark_residual_convergence_or_conservation goal,
  select exact_reference_manufactured_solution_or_refinement pathway,
  compute errors_residuals_and_orders,
  assess asymptotic_regime_solver_error_and_reproducibility,
  assign verification_status_with_limitations,
  return semantic output
 ]
}

EXECUTION_RULES {
 E1:
  IF query_mentions("model verification")
  OR asks_if_model_was_implemented_or_solved_correctly
  THEN activate(ModelVerificationOntology)

 E2:
  IF code_verification_requested
  THEN prefer exact_manufactured_or_benchmark test problems

 E3:
  IF manufactured_solution_used
  THEN derive compatible_source_and_boundary terms exactly

 E4:
  IF convergence_claim
  THEN require multiple refinement levels

 E5:
  IF observed_order_requested
  THEN verify near_asymptotic behaviour

 E6:
  IF grid_or_time_step study
  THEN ensure iterative_tolerance_is_sufficiently_tight

 E7:
  IF conservation_property_expected
  THEN compute conservation_balance error

 E8:
  IF regression_test
  THEN use tolerance_aware comparison rather_than exact floating_point equality

 E9:
  IF verification_successful
  THEN explicitly avoid inferring model validity
}

RECURSION {
 ENTRY = ModelVerification

 EXPAND(ModelVerification) -> [
  CodeVerification,
  SolutionVerification,
  CalculationVerification,
  ImplementationVerification,
  NumericalVerification,
  ManufacturedSolution,
  MethodOfManufacturedSolutions,
  AnalyticalSolution,
  BenchmarkProblem,
  ReferenceSolution,
  Residual,
  ConservationCheck,
  ConsistencyCheck,
  ConvergenceStudy,
  GridConvergence,
  MeshConvergence,
  TimeStepConvergence,
  IterativeConvergence,
  DiscretisationError,
  TruncationError,
  RoundoffError,
  IterationError,
  SolverTolerance,
  StabilityCheck,
  RegressionTest,
  Reproducibility,
  ErrorEstimate,
  OrderOfAccuracy,
  VerificationStatus,
  VerificationReport
 ]

 EXPAND(CodeVerification) -> [
  ManufacturedSolution,
  AnalyticalSolution,
  BenchmarkProblem,
  UnitTest,
  IntegrationTest,
  RegressionTest
 ]

 EXPAND(SolutionVerification) -> [
  GridConvergence,
  TimeStepConvergence,
  RichardsonExtrapolation,
  GridConvergenceIndex,
  Residual,
  ErrorEstimate
 ]

 EXPAND(ErrorBudget) -> [
  DiscretisationError,
  TruncationError,
  IterationError,
  RoundoffError,
  SamplingError
 ]

 STOP_CONDITION =
  "Stop when the implementation, reference problem, residual, convergence behaviour, error estimate, conservation status, reproducibility evidence and final verification status are sufficiently resolved."
}

ROUTING {
 PARENT_ONTOLOGY = "Mathematical Modelling"

 IMMEDIATE_CONTEXTS = [
  "Computational Model Ontology",
  "Simulation Model Ontology",
  "Mathematical Model Ontology",
  "Numerical Analysis Ontologies"
 ]

 RELATED_ONTOLOGIES = [
  "Computational Model Ontology",
  "Simulation Model Ontology",
  "Mathematical Model Ontology",
  "Mathematical Modelling Ontology",
  "Model Validation Ontology",
  "Applied Mathematics Ontologies",
  "Numerical Analysis Ontologies",
  "Scientific Computing Ontologies",
  "Differential Equations Ontologies",
  "Linear Algebra Ontologies",
  "Scientific Measurement Ontologies",
  "Software Engineering Ontologies"
 ]

 ROUTE_RULES = [
  "Model Verification -> Computational Model Ontology for executable-model semantics",
  "Model Verification -> Simulation Model Ontology for simulation implementation checks",
  "Model Verification -> Mathematical Model Ontology for intended-equation semantics",
  "Model Verification -> Numerical Analysis for convergence, stability and error",
  "Model Verification -> Scientific Computing for reproducibility and solver behaviour",
  "Model Verification -> Differential Equations for governing-equation benchmarks",
  "Model Verification -> Linear Algebra for solver residual and conditioning analysis",
  "Model Verification -> Scientific Measurement for numerical tolerance and units",
  "Model Verification -> Software Engineering for unit, integration and regression testing",
  "Model Verification -> Model Validation Ontology to maintain verification-validation separation"
 ]
}

UPDATE_MODEL {
 MODE = "append-compatible semantic versioning"

 MAJOR = "ontology-breaking conceptual change"
 MINOR = "new compatible verification methods, benchmarks or reasoning pathways"
 PATCH = "clarification, metadata or formatting correction"

 RULES = [
  "Preserve implementation-correctness semantics.",
  "Preserve code-versus-solution verification distinction.",
  "Preserve verification-versus-validation distinction.",
  "Preserve systematic-refinement requirements.",
  "Preserve residual and conservation-check semantics.",
  "Preserve numerical-error decomposition.",
  "Preserve reproducibility evidence.",
  "Preserve machine-readable model-verification semantics."
 ]
}

OUTPUT {
 CANONICAL_DEFINITION =
  "Model verification assesses whether the intended mathematical model has been correctly implemented and solved."

 CODE_VERIFICATION_SUMMARY =
  "Code verification checks whether software correctly implements the governing equations and algorithms."

 SOLUTION_VERIFICATION_SUMMARY =
  "Solution verification estimates numerical error in a particular computed solution."

 MMS_SUMMARY =
  "The method of manufactured solutions tests code using deliberately chosen exact solutions and derived source terms."

 CONVERGENCE_SUMMARY =
  "Convergence studies assess how computed solutions change under systematic numerical refinement."

 RESIDUAL_SUMMARY =
  "Residuals quantify how closely a numerical solution satisfies the implemented equations."

 CONSERVATION_SUMMARY =
  "Conservation checks test whether declared balance laws are preserved to numerical tolerance."

 REPRODUCIBILITY_SUMMARY =
  "Verification evidence should preserve code version, solver settings, tolerances, inputs and numerical precision."

 DISTINCTION_SUMMARY =
  "Successful verification supports implementation correctness but does not establish model validity."
}

FLOW {
 INPUT
 -> detect_model_verification_context
 -> identify mathematical_specification_implementation_numerical_method_solver_discretisation_and_tolerances
 -> classify code_verification_solution_verification_residual_convergence_conservation_benchmark_or_regression goal
 -> select analytical_reference_manufactured_solution_benchmark_or_refinement method
 -> execute verification tests
 -> compute residuals_errors_convergence_rates_and_conservation balances
 -> assess asymptotic_regime_iteration_error_roundoff_and_tolerance adequacy
 -> preserve reproducibility_and_provenance metadata
 -> assign verification_status_with_limitations
 -> route to computational_model simulation_model mathematical_model numerical_analysis scientific_computing differential_equations linear_algebra measurement software_engineering_or_model_validation ontology
 -> recursively_expand_required_dependencies
 -> verify_result
 -> assign_confidence
 -> produce_semantic_output
 -> END
}

SEMANTIC_SUMMARY {
 "The Model Verification Ontology defines the assessment of whether mathematical and computational models are implemented and solved correctly. It supports code and solution verification, manufactured solutions, benchmarks, residuals, conservation checks, mesh and time-step convergence, observed order of accuracy, numerical error decomposition, solver tolerances, regression testing, reproducibility and explicit separation from model validation."
}

FLOW_HASH {
 METHOD = "semantic-content-identity"
 ID = "KIRETH-MATH-APPLIED-MATHEMATICS-MODEL-VERIFICATION-ONTOLOGY-V1"
}

}

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