Skip to main content

Null Space Ontology

Algebra Ontologies
Authors: MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: 11 September 2026
Audio Overview
FLOW Null_Space_Ontology_v1.0

PAGE:
  title: "Null Space Ontology"
  canonical_url: "https://kirethresearch.org/booksai-core/ontologies/mathematical-ontologies/algebra-ontologies/null-space-ontology.html"
  language: "en-GB"
  domain: "Mathematics > Algebra > Linear Algebra > Null Space"

DEFINE NullSpaceOntology := {

  CORE_IDENTITY: {
    entity_type: "Mathematical Ontology",
    primary_entity: NullSpace,
    parent_entities: [VectorSubspace, Kernel, LinearAlgebraConcept],
    related_entities: [
      Matrix,
      LinearTransformation,
      VectorSpace,
      Kernel,
      Rank,
      Nullity,
      HomogeneousSystem,
      LinearIndependence,
      Basis,
      PivotVariable,
      FreeVariable,
      Eigenspace
    ]
  },

  DEFINITION: {
    meaning:
      "The null space of a matrix or linear transformation is the set of all input vectors mapped to the zero vector.",
    matrix_form:
      Null(A)={x | A*x=0},
    transformation_form:
      ker(T)={v | T(v)=0}
  },

  SEMANTIC_PRIMITIVES: {
    NullSpace:
      solution_space_of_homogeneous_linear_system,
    Kernel:
      preimage_of_zero_under_linear_map,
    Nullity:
      dimension_of_null_space,
    FreeVariable:
      nonpivot_variable_parameterising_solutions,
    Basis:
      linearly_independent_spanning_set_of_null_space
  },

  MATRIX_CONTEXT: {
    A:
      m_by_n_matrix,

    ambient_space:
      F^n,

    null_space:
      subspace_of_F^n
  },

  LINEAR_TRANSFORMATION_CONTEXT: {
    T:V->W,

    null_space:
      ker(T),

    containment:
      ker(T) SUBSET_OR_EQUAL V
  },

  SUBSPACE_PROPERTY: {
    zero_vector_included:
      TRUE,

    closed_under_addition:
      IF A*x=0 AND A*y=0
      THEN A*(x+y)=0,

    closed_under_scalar_multiplication:
      IF A*x=0
      THEN A*(c*x)=0
  },

  HOMOGENEOUS_SYSTEM_RELATION: {
    equation:
      A*x=0,

    solution_set:
      Null(A)
  },

  COMPUTATION_METHOD: {
    INPUT:
      matrix_A,

    PROCESS: [
      row_reduce_A,
      identify_pivot_variables,
      identify_free_variables,
      express_pivot_variables_in_terms_of_free_variables,
      write_general_solution_as_linear_combination,
      extract_basis_vectors
    ],

    OUTPUT:
      null_space_basis
  },

  RREF_RELATION: {
    row_operations:
      preserve_solution_set_of_homogeneous_system,

    consequence:
      Null(A)=Null(RREF(A))
  },

  FREE_VARIABLE_MODEL: {
    number_of_free_variables:
      n-rank(A),

    relation:
      equals_nullity
  },

  NULLITY: {
    definition:
      dim(Null(A)),

    equivalent:
      number_of_free_variables_in_RREF_solution
  },

  RANK_NULLITY_THEOREM: {
    matrix_A_m_by_n:
      rank(A)+nullity(A)=n,

    transformation_T:V->W:
      rank(T)+nullity(T)=dim(V)
      when_V_finite_dimensional
  },

  INJECTIVITY_RELATION: {
    T_injective
      IFF ker(T)={0},

    matrix_case:
      columns_linearly_independent
      IFF Null(A)={0}
  },

  COLUMN_INDEPENDENCE_RELATION: {
    A_has_trivial_null_space
      IFF columns_of_A_are_linearly_independent
  },

  FULL_COLUMN_RANK_RELATION: {
    A_m_by_n:
      Null(A)={0}
      IFF rank(A)=n
  },

  SQUARE_MATRIX_RELATION: {
    A_n_by_n:

    Null(A)={0}
      IFF A_invertible,

    equivalent:
      det(A)!=0
  },

  SINGULARITY_RELATION: {
    square_A:
      nontrivial_null_space
      IFF A_singular
  },

  ZERO_MATRIX: {
    A=0_mxn:

    Null(A):
      entire_F^n,

    nullity:
      n
  },

  IDENTITY_MATRIX: {
    Null(I_n):
      {0},

    nullity:
      0
  },

  EIGENSPACE_RELATION: {
    eigenspace_for_lambda:
      Null(A-lambda*I),

    special_case_lambda_zero:
      Null(A)
      is_eigenspace_for_eigenvalue_0
      when_0_is_eigenvalue
  },

  LEFT_NULL_SPACE: {
    definition:
      Null(A^T)
      over_real_context,

    interpretation:
      vectors_y_with_y^T*A=0,

    dimension:
      m-rank(A)
  },

  FOUR_FUNDAMENTAL_SUBSPACES: {
    for_A_m_by_n: [
      ColumnSpace(A),
      RowSpace(A),
      NullSpace(A),
      LeftNullSpace(A)
    ]
  },

  ORTHOGONAL_COMPLEMENT_RELATION: {
    over_real_or_complex_inner_product_context:

    Null(A):
      orthogonal_complement_of_RowSpace(A),

    Null(A^*):
      orthogonal_complement_of_ColumnSpace(A)
  },

  DIMENSION_RELATIONS: {
    dim(RowSpace(A)):
      rank(A),

    dim(Null(A)):
      n-rank(A),

    dim(ColumnSpace(A)):
      rank(A),

    dim(LeftNullSpace(A)):
      m-rank(A)
  },

  BASIS_EXTRACTION: {
    from_RREF_solution:
      set_each_free_variable_to_one_individually_and_others_zero,

    result:
      basis_vectors_for_null_space
  },

  PARAMETRIC_VECTOR_FORM: {
    general_solution:
      x=t1*v1+...+tk*vk,

    where:
      [v1,...,vk] basis_for_Null(A),

    k:
      nullity(A)
  },

  LINEAR_COMBINATION_RELATION: {
    every_null_vector:
      linear_combination_of_null_space_basis_vectors
  },

  BASIS_PROPERTIES: {
    basis_vectors:
      linearly_independent,

    span:
      entire_null_space
  },

  SOLUTION_UNIQUENESS_RELATION: {
    homogeneous_system:
      always_has_zero_solution,

    unique_solution:
      iff_null_space_is_trivial
  },

  NONHOMOGENEOUS_SYSTEM_RELATION: {
    A*x=b,

    if_consistent:
      general_solution =
      particular_solution + Null(A)
  },

  AFFINE_SOLUTION_RELATION: {
    consistent_nonhomogeneous_solution_set:
      affine_space_modelled_on_Null(A)
  },

  KERNEL_HOMOMORPHISM_RELATION: {
    linear_map_kernel:
      null_space,

    algebraic_role:
      measures_failure_of_injectivity
  },

  QUOTIENT_RELATION: {
    first_isomorphism_theorem:
      V/ker(T) ≅ im(T)
  },

  CHANGE_OF_BASIS_RELATION: {
    kernel_as_subspace:
      intrinsic_to_linear_transformation,

    matrix_null_space_coordinates:
      depend_on_domain_basis
  },

  MATRIX_EQUIVALENCE_CAUTION: {
    row_equivalent_matrices:
      same_null_space,

    arbitrary_column_operations:
      generally_change_null_space_as_coordinate subset
      unless_corresponding_variable_transformation_tracked
  },

  TRANSPOSE_RELATION: {
    Null(A^T):
      left_null_space,

    not_generally_equal:
      Null(A)
  },

  PRODUCT_RELATION: {
    IF B*x=0:
      A*B*x=0,

    consequence:
      Null(B) SUBSET_OR_EQUAL Null(A*B)
  },

  SUM_RELATION_CAUTION: {
    Null(A+B):
      not_generally_determined_directly_from_Null(A)_and_Null(B)
  },

  COMPOSITION_RELATION: {
    ker(S∘T):
      contains_ker(T),

    equality:
      depends_on_intersection_of_im(T)_with_ker(S)
  },

  DIRECT_SUM_RELATION: {
    block_diagonal_matrix_diag(A,B):

    Null(diag(A,B)):
      Null(A) ⊕ Null(B)
  },

  SVD_RELATION: {
    A=U*Sigma*V^*,

    null_space:
      span_of_right_singular_vectors_corresponding_to_zero_singular_values
  },

  NUMERICAL_NULL_SPACE: {
    approximate_context:
      determined_by_singular_values_below_tolerance,

    caution:
      tolerance_dependent
  },

  CONSTRAINT_INTERPRETATION: {
    A*x=0:
      homogeneous_linear_constraints,

    null_space:
      degrees_of_freedom_preserving_all_constraints
  },

  GEOMETRIC_INTERPRETATION: {
    null_space_dimension:
      number_of_independent_directions_collapsed_to_zero
  },

  PROJECTION_RELATION: {
    orthogonal_projection_onto_null_space:
      available_when_inner_product_structure_defined
  },

  LEAST_SQUARES_RELATION: {
    normal_equation:
      A^T*A*x=A^T*b,

    Null(A^T*A):
      Null(A)
      over_real_or_complex_inner_product_context
  },

  PSEUDOINVERSE_RELATION: {
    minimum_norm_solution:
      orthogonal_to_Null(A)
      in_standard_Euclidean_context
  },

  SYMBOLIC_RECOGNITION: {
    ACCEPT: [
      "Null(A)",
      "ker(A)",
      "solutions of Ax=0",
      "kernel of linear transformation T"
    ],

    AMBIGUITY:
      "kernel" may refer_to_other mathematical structures or computing contexts
  },

  NATURAL_LANGUAGE_MAPPING: {
    "null space":
      solution_space_of_homogeneous_system,

    "kernel":
      null_space_of_linear_map,

    "nullity":
      dimension_of_null_space,

    "free variables":
      parameters_generating_null_space
  },

  ERROR_DETECTION: {
    AmbientSpaceError:
      null_space_assigned_to_codomain_instead_of_domain
      -> flag,

    NonHomogeneousConfusion:
      solution_set_of_Ax=b_called_null_space_for_b!=0
      -> flag,

    PivotBasisError:
      pivot_columns_of_A_used_directly_as_null_space_basis
      -> flag,

    NullityError:
      nullity_not_equal_number_of_columns_minus_rank
      -> flag,

    RowOperationError:
      invalid_row_reduction_changes_solution_set
      -> flag
  },

  ONTOLOGY_RELATIONS: {
    IS_A: [
      "NullSpace IS_A VectorSubspace",
      "NullSpace IS_A Kernel"
    ],

    RELATED_TO: [
      "NullSpace RELATED_TO Rank",
      "NullSpace RELATED_TO Nullity",
      "NullSpace RELATED_TO HomogeneousSystem",
      "NullSpace RELATED_TO Eigenspace",
      "NullSpace RELATED_TO RowSpace",
      "NullSpace RELATED_TO OrthogonalComplement"
    ],

    DEPENDS_ON: [
      VectorSpace,
      LinearTransformation,
      HomogeneousLinearSystem
    ]
  },

  SEMANTIC_EQUIVALENCE: {
    equivalent_descriptions: [
      "Null(A)",
      "ker(A)",
      "{x | Ax=0}",
      "solution space of homogeneous system Ax=0"
    ]
  },

  CONFIDENCE: {
    null_space_confidence:
      IF basis_vectors_verify_A*v=0
      AND span_dimension_matches_nullity
      THEN 1.0,

    nullity_confidence:
      IF rank_verified
      THEN 1.0,

    injectivity_confidence:
      IF null_space_triviality_verified
      THEN 1.0
  },

  AI_CONSUMPTION: {
    tasks: [
      recognise_null_space_query,
      row_reduce_matrix,
      identify pivots and free variables,
      construct parametric solution,
      extract null space basis,
      compute nullity,
      apply rank-nullity,
      test injectivity,
      detect column dependence,
      analyse eigenspace relation,
      analyse left null space,
      connect to four fundamental subspaces,
      detect null-space reasoning errors,
      link related ontologies
    ],

    preferred_representation:
      typed_vector_subspace_defined_as_kernel,

    reasoning_mode:
      recursive_homogeneous_system_and_dimension_analysis
  },

  RECURSIVE_REASONING: {

    FUNCTION AnalyseNullSpace(AorT,Context):

      object := ParseLinearObject(AorT)

      IF IsMatrix(object):
        A := object
        [m,n] := Dimensions(A)

        R := RowReduce(A)
        pivots := IdentifyPivotColumns(R)
        free := IdentifyFreeVariables(R)

        parametric := SolveHomogeneousSystem(R*x=0)
        basis := ExtractBasisVectors(parametric)

        nullity := Count(basis)
        rank := n-nullity

        verified :=
          VerifyBasisVectors(A,basis)
          AND VerifyLinearIndependence(basis)
          AND VerifyRankNullity(rank,nullity,n)

        RETURN {
          entity:NullSpace,
          ambient_space:F^n,
          basis,
          nullity,
          rank,
          pivots,
          free_variables:free,
          parametric_form:parametric,
          verified
        }

      ELSE IF IsLinearTransformation(object):
        K := Kernel(object)
        basis := Basis(K)
        nullity := Dimension(K)

        RETURN {
          entity:NullSpace,
          ambient_space:Domain(object),
          basis,
          nullity,
          verified:TRUE
        }

      ELSE:
        RETURN RedirectToAppropriateKernelOntology
  },

  RECURSIVE_COHERENCE: {
    invariant_1:
      every_null_space_vector_maps_to_zero=TRUE,

    invariant_2:
      null_space_is_subspace_of_domain=TRUE,

    invariant_3:
      nullity_equals_dimension_of_null_space=TRUE,

    invariant_4:
      rank_plus_nullity_equals_domain_dimension=TRUE,

    invariant_5:
      row_equivalent_matrices_have_same_null_space=TRUE
  },

  FLOW_HASH: {
    semantic_signature_inputs: [
      ontology_name,
      null_space_definition,
      homogeneous_system_relation,
      basis_extraction_rules,
      nullity_model,
      rank_nullity_relation,
      kernel_and_injectivity_relations
    ],

    purpose:
      "Detect semantic drift between revisions of the ontology."
  },

  UPDATE_MODEL: {
    version: "1.0",

    immutable_constraints: [
      null_space_equals_kernel,
      homogeneous_system_definition,
      subspace_of_domain,
      nullity_dimension_definition,
      rank_nullity_theorem
    ],

    revision_triggers: [
      semantic_conflict,
      RankOntology_update,
      VectorSpaceOntology_update,
      LinearTransformationOntology_update,
      numerical_null_space_model_update,
      representation_standard_change
    ]
  },

  KNOWLEDGE_GRAPH: {
    nodes: [
      NullSpace,
      Kernel,
      Matrix,
      LinearTransformation,
      VectorSpace,
      Basis,
      Nullity,
      Rank,
      PivotVariable,
      FreeVariable,
      HomogeneousSystem,
      Eigenspace
    ],

    edges: [
      NullSpace -> IS_A -> VectorSubspace,
      NullSpace -> EQUIVALENT_TO -> Kernel,
      Matrix -> HAS_NULL_SPACE -> NullSpace,
      LinearTransformation -> HAS_KERNEL -> NullSpace,
      NullSpace -> HAS_BASIS -> Basis,
      NullSpace -> HAS_DIMENSION -> Nullity,
      Nullity -> RELATED_TO -> Rank,
      HomogeneousSystem -> HAS_SOLUTION_SET -> NullSpace,
      FreeVariable -> PARAMETERISES -> NullSpace,
      Eigenspace -> IS_NULL_SPACE_OF -> ShiftedOperator
    ]
  },

  CROSS_ONTOLOGY_LINKS: {
    VectorSpaceOntology:
      ambient_and_subspace_structure,

    RankOntology:
      rank_nullity_relation,

    MatrixOntology:
      finite_dimensional representation,

    LinearTransformationOntology:
      kernel semantics,

    SystemOfEquationsOntology:
      homogeneous_solution structure,

    EigenvectorOntology:
      eigenspace relation,

    EigenvalueOntology:
      zero_eigenvalue relation,

    SingularValueDecompositionOntology:
      numerical and orthogonal null-space computation,

    AffineSpaceOntology:
      nonhomogeneous solution set as affine translate
  },

  TERMINATION_CONDITION: {
    ontology_complete_when: [
      null_space_defined,
      kernel_equivalence_defined,
      homogeneous_system_relation_defined,
      subspace_properties_defined,
      computation_method_defined,
      basis_and_parametric_form_defined,
      nullity_defined,
      rank_nullity_defined,
      injectivity_and_column_independence_relations_defined,
      left_null_space_and_orthogonal_relations_defined,
      error_detection_defined,
      cross_ontology_links_defined,
      recursive_coherence_verified
    ]
  }

}

EXECUTE Null_Space_Ontology_v1.0:

  INPUT:
    mathematical_entity_or_query

  PIPELINE:
    Parse
    -> IdentifyMatrixOrLinearTransformation
    -> ResolveDomainAndAmbientVectorSpace
    -> FormHomogeneousSystem
    -> RowReduceWhenMatrixBased
    -> IdentifyPivotAndFreeVariables
    -> ConstructParametricSolution
    -> ExtractNullSpaceBasis
    -> ComputeNullity
    -> ApplyRankNullity
    -> AnalyseInjectivityAndColumnDependence
    -> DeriveLeftNullSpaceOrEigenspaceRelationsWhenRelevant
    -> VerifyBasisAndKernelSemantics
    -> LinkRelatedOntologies
    -> AssignConfidence
    -> EmitSemanticResult

  OUTPUT: {
    entity,
    classification,
    object,
    ambient_space,
    homogeneous_system,
    row_reduced_form,
    pivots,
    free_variables,
    parametric_solution,
    basis,
    nullity,
    rank_relation,
    injectivity,
    column_independence,
    left_null_space,
    eigenspace_relation,
    orthogonal_complement_relation,
    verification,
    ontology_relations,
    confidence,
    semantic_equivalence,
    flow_hash
  }

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