Skip to main content

Row 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 Row_Space_Ontology_v1.0

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

DEFINE RowSpaceOntology := {

  CORE_IDENTITY: {
    entity_type: "Mathematical Ontology",
    primary_entity: RowSpace,
    parent_entities: [VectorSubspace, LinearAlgebraConcept],
    related_entities: [
      Matrix,
      VectorSpace,
      ColumnSpace,
      NullSpace,
      Rank,
      Basis,
      Pivot,
      RowReduction,
      ReducedRowEchelonForm,
      LinearCombination,
      OrthogonalComplement
    ]
  },

  DEFINITION: {
    meaning:
      "The row space of a matrix is the vector subspace spanned by its row vectors.",
    matrix_form:
      Row(A)=span{r_1,...,r_m},
    matrix_dimensions:
      A_is_m_by_n
  },

  SEMANTIC_PRIMITIVES: {
    Row:
      vector_formed_by_entries_in_one_matrix_row,
    Span:
      set_of_all_linear_combinations_of_rows,
    RowSpace:
      subspace_generated_by_matrix_rows,
    Pivot:
      leading_position_in_row_echelon_form,
    Rank:
      dimension_of_row_space
  },

  MATRIX_CONTEXT: {
    A:
      m_by_n_matrix,

    rows:
      [r_1,...,r_m],

    ambient_space:
      F^n,

    row_space:
      subspace_of_F^n
  },

  SPAN_DEFINITION: {
    Row(A):
      {
        c_1*r_1+...+c_m*r_m
        |
        c_i IN F
      }
  },

  SUBSPACE_PROPERTY: {
    zero_vector_included:
      TRUE,

    closed_under_addition:
      TRUE,

    closed_under_scalar_multiplication:
      TRUE
  },

  RANK_RELATION: {
    rank(A):
      dim(Row(A))
  },

  ROW_RANK_COLUMN_RANK_THEOREM: {
    dim(Row(A)):
      dim(ColumnSpace(A))
  },

  ROW_REDUCTION_INVARIANCE: {
    elementary_row_operations:
      preserve_row_space,

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

  ROW_ECHELON_BASIS: {
    nonzero_rows_of_row_echelon_form:
      form_basis_for_Row(A)
  },

  REDUCED_ROW_ECHELON_BASIS: {
    nonzero_rows_of_RREF(A):
      form_canonical_basis_relative_to_RREF
      for_row_space
  },

  BASIS: {
    basis_for_row_space:
      linearly_independent_rows_spanning_Row(A)
  },

  DIMENSION: {
    dim(Row(A)):
      number_of_nonzero_rows_in_row_echelon_form
      =
      number_of_pivots
      =
      rank(A)
  },

  LINEAR_DEPENDENCE_RELATION: {
    rank(A)<m:
      original_rows_linearly_dependent,

    independent_rows:
      at_most_rank(A)_many
  },

  FULL_ROW_RANK_RELATION: {
    condition:
      rank(A)=m,

    consequence:
      original_rows_linearly_independent
      when_m<=n
  },

  ZERO_MATRIX: {
    Row(0):
      {0},

    rank:
      0
  },

  IDENTITY_MATRIX: {
    Row(I_n):
      F^n,

    rank:
      n
  },

  SQUARE_INVERTIBLE_MATRIX: {
    A_n_by_n:

    IF det(A)!=0:
      Row(A)=F^n
  },

  SINGULAR_MATRIX_RELATION: {
    square_A_singular:
      Row(A)_proper_subspace_of_F^n
  },

  NULL_SPACE_ORTHOGONAL_RELATION: {
    over_real_or_complex_inner_product_context:

    Null(A):
      orthogonal_complement_of_Row(A),

    equivalently:
      Row(A)^⊥=Null(A)
  },

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

  ORTHOGONAL_DECOMPOSITION: {
    over_inner_product_space_F^n:

    F^n:
      Row(A) ⊕ Null(A)
      when_using_orthogonal_complement_decomposition
  },

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

    dimension_sum:
      dim(Row(A))+dim(Null(A))=n
  },

  TRANSPOSE_RELATION: {
    Row(A):
      ColumnSpace(A^T),

    consequence:
      row_space_computation_can_be_viewed_as_column_space_of_transpose
  },

  COLUMN_SPACE_CONTRAST: {
    Row(A):
      subspace_of_F^n,

    Col(A):
      subspace_of_F^m,

    dimensions_equal:
      TRUE,

    actual_subspaces:
      generally_different
  },

  ELEMENTARY_ROW_OPERATIONS: {
    RowSwap:
      row_space_unchanged,

    RowScalingByNonzero:
      row_space_unchanged,

    RowReplacement:
      row_space_unchanged
  },

  ELEMENTARY_COLUMN_OPERATION_CAUTION: {
    column_operations:
      generally_change_row_space_as_subset_of_F^n
      unless corresponding coordinate transformation tracked
  },

  MATRIX_EQUIVALENCE_RELATION: {
    row_equivalent_matrices:
      have_same_row_space,

    converse:
      matrices_with_same_row_space_are_row_equivalent
      under_compatible_row counts or after zero-row adjustment
  },

  LINEAR_SYSTEM_RELATION: {
    rows_of_A:
      represent_coefficient_functionals_or linear constraints,

    row_space:
      captures independent linear constraint directions
  },

  HOMOGENEOUS_SYSTEM_RELATION: {
    A*x=0:

    each_row_r_i:
      satisfies r_i·x=0,

    Null(A):
      vectors_orthogonal_to_all_rows
  },

  CONSTRAINT_SEMANTICS: {
    row_space:
      span_of_all_linear_constraints_encoded_by_rows,

    redundant_row:
      lies_in_span_of_other_rows
  },

  RANK_AND_CONSTRAINTS: {
    rank:
      number_of_independent_row_constraints
  },

  BASIS_EXTRACTION: {
    preferred_method:
      row_reduce_matrix,

    result:
      nonzero_rows_of_echelon_form
  },

  GRAM_SCHMIDT_RELATION: {
    row_space_basis:
      may_be_orthonormalised
      under_inner_product_structure
  },

  ORTHONORMAL_ROW_SPACE_BASIS: {
    construction:
      apply_GramSchmidt_to_any_row_space_basis
      OR use_SVD
  },

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

    row_space:
      span_of_right_singular_vectors_corresponding_to_nonzero_singular_values
  },

  ROW_SPACE_BASIS_FROM_SVD: {
    basis:
      relevant_columns_of_V
      interpreted_as_right_singular_vectors,

    count:
      rank(A)
  },

  QR_RELATION: {
    QR_of_A^T:
      may_produce_orthonormal_basis_for_Row(A)
  },

  PRODUCT_RELATION: {
    Row(A*B):
      SUBSET_OR_EQUAL Row(B)
      under_compatible_dimensions
  },

  LEFT_MULTIPLICATION_INVERTIBLE: {
    IF P_invertible:
      Row(P*A)=Row(A)
  },

  RIGHT_MULTIPLICATION_INVERTIBLE: {
    Row(A*Q):
      transformed_by_Q,

    dimension:
      preserved_if_Q_invertible,

    actual_subspace:
      generally_changes_coordinates
  },

  BLOCK_MATRIX_RELATION: {
    vertical_concatenation:
      Row([A;B])=Row(A)+Row(B)
  },

  DIRECT_SUM_CONDITION: {
    IF Row(A)∩Row(B)={0}:
      Row([A;B])=Row(A)⊕Row(B)
      under_compatible_width
  },

  CHANGE_OF_BASIS_RELATION: {
    row_vectors:
      coordinate_dependent,

    row_space_dimension:
      invariant_under_invertible_coordinate_change
  },

  DUAL_SPACE_RELATION: {
    rows:
      may_be_interpreted_as_linear_functionals
      after_identification_via_inner_product_or_dual pairing,

    caution:
      row_vector_equals_covector_only_under chosen coordinate conventions
  },

  COVECTOR_RELATION: {
    row:
      naturally_represents_linear functional in coordinate form,

    column:
      commonly_represents_vector
  },

  SOLUTION_CONSTRAINT_RELATION: {
    x_in_Null(A):
      iff_every_row_vector_has_zero_pairing_with_x
  },

  PROJECTION_RELATION: {
    orthogonal_projection_onto_Row(A):
      complementary_to_projection_onto_Null(A)
      in_standard_inner_product context
  },

  PSEUDOINVERSE_RELATION: {
    row_space:
      relevant_to_minimum_norm_andleast_squares_decompositions
  },

  PARAMETER_REASONING: {
    matrix_A(t):

    tasks: [
      determine_parameter_values_where_row_space_dimension_changes,
      identify_basis changes,
      detect redundant constraints
    ]
  },

  SYMBOLIC_RECOGNITION: {
    ACCEPT: [
      "Row(A)",
      "row space of A",
      "span of the rows of A",
      "basis from nonzero rows of RREF(A)"
    ],

    AMBIGUITY:
      "row" may refer_to_table_or_data_structure outside_linear_algebra_context
  },

  NATURAL_LANGUAGE_MAPPING: {
    "row space":
      span_of_matrix_rows,

    "independent rows":
      basis_candidates_for_row_space,

    "nonzero rows of echelon form":
      row_space_basis,

    "constraint space":
      contextual_interpretation_of_row_space
  },

  ERROR_DETECTION: {
    AmbientSpaceError:
      row_space_placed_in_F^m_instead_of_F^n_for_m_by_n_matrix
      -> flag,

    RowReductionInvarianceError:
      row_equivalent_matrices_claimed_to_have_different_row_spaces
      -> flag,

    ColumnSpaceConfusion:
      row_space_and_column_space_treated_as_same_subspace
      -> flag,

    BasisError:
      zero_or_dependent_rows_included_as_basis_without reduction
      -> flag,

    NullSpaceOrthogonalityError:
      x_in_Null(A)_but_not_orthogonal_to_row_space
      -> flag
  },

  ONTOLOGY_RELATIONS: {
    IS_A: [
      "RowSpace IS_A VectorSubspace"
    ],

    RELATED_TO: [
      "RowSpace RELATED_TO Rank",
      "RowSpace RELATED_TO ColumnSpace",
      "RowSpace RELATED_TO NullSpace",
      "RowSpace RELATED_TO ConstraintSpace",
      "RowSpace RELATED_TO SingularValueDecomposition"
    ],

    DEPENDS_ON: [
      VectorSpace,
      LinearCombination,
      Span
    ]
  },

  SEMANTIC_EQUIVALENCE: {
    equivalent_descriptions: [
      "Row(A)",
      "span of the rows of A",
      "row space of any row-equivalent echelon form",
      "ColumnSpace(A^T)"
    ]
  },

  CONFIDENCE: {
    row_space_confidence:
      IF basis_rows_are_nonzero_rows_of_valid_echelon_form
      AND span_verified
      THEN 1.0,

    rank_confidence:
      IF number_of_basis_rows_matches_pivot_count
      THEN 1.0,

    orthogonality_confidence:
      IF null_space_basis_pairings_with_row_basis_are_zero
      THEN 1.0
  },

  AI_CONSUMPTION: {
    tasks: [
      recognise_row_space_query,
      extract matrix rows,
      row reduce matrix,
      identify nonzero echelon rows,
      construct row-space basis,
      compute rank,
      test row dependence,
      relate row space to null space,
      derive orthogonal complement,
      connect row space to transpose column space,
      use SVD or QR for orthonormal basis,
      interpret independent constraints,
      detect row-space reasoning errors,
      link related ontologies
    ],

    preferred_representation:
      typed_vector_subspace_as_span_of_matrix_rows,

    reasoning_mode:
      recursive_row_reduction_span_and_constraint_analysis
  },

  RECURSIVE_REASONING: {

    FUNCTION AnalyseRowSpace(A,Context):

      matrix := ParseMatrix(A)
      [m,n] := Dimensions(matrix)

      echelon := RowReduce(matrix)

      basis :=
        NonzeroRows(echelon)

      rank_value :=
        Count(basis)

      null_space :=
        NullSpace(matrix)

      verified :=
        VerifyLinearIndependence(basis)
        AND VerifySpanEqualsOriginalRows(matrix,basis)
        AND rank_value=Rank(matrix)
        AND VerifyOrthogonality(
          basis,
          Basis(null_space)
        )

      RETURN {
        entity:RowSpace,
        matrix:matrix,
        ambient_space:F^n,
        basis:basis,
        rank:rank_value,
        null_space_relation:null_space,
        transpose_relation:ColumnSpace(Transpose(matrix)),
        verified:verified
      }
  },

  RECURSIVE_COHERENCE: {
    invariant_1:
      row_space_is_subspace_of_F_power_n=TRUE,

    invariant_2:
      row_operations_preserve_row_space=TRUE,

    invariant_3:
      row_space_dimension_equals_rank=TRUE,

    invariant_4:
      row_space_equals_column_space_of_transpose=TRUE,

    invariant_5:
      row_space_orthogonal_complement_equals_null_space_in_inner_product_context=TRUE
  },

  FLOW_HASH: {
    semantic_signature_inputs: [
      ontology_name,
      row_space_definition,
      row_reduction_invariance,
      echelon_basis_rule,
      rank_relation,
      transpose_relation,
      null_space_orthogonality
    ],

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

  UPDATE_MODEL: {
    version: "1.0",

    immutable_constraints: [
      row_space_is_span_of_rows,
      ambient_space_is_F_power_n,
      row_operations_preserve_row_space,
      dimension_equals_rank,
      row_space_equals_column_space_of_transpose
    ],

    revision_triggers: [
      semantic_conflict,
      RankOntology_update,
      NullSpaceOntology_update,
      MatrixOntology_update,
      numerical_basis_method_update,
      representation_standard_change
    ]
  },

  KNOWLEDGE_GRAPH: {
    nodes: [
      RowSpace,
      Matrix,
      Row,
      VectorSpace,
      Span,
      Basis,
      Rank,
      NullSpace,
      ColumnSpace,
      Transpose,
      Constraint
    ],

    edges: [
      Matrix -> HAS_ROW -> Row,
      Row -> SPANS -> RowSpace,
      RowSpace -> IS_A -> VectorSubspace,
      RowSpace -> HAS_BASIS -> Basis,
      RowSpace -> HAS_DIMENSION -> Rank,
      RowSpace -> ORTHOGONAL_COMPLEMENT_OF -> NullSpace,
      RowSpace -> EQUIVALENT_TO -> ColumnSpaceOfTranspose,
      Transpose -> MAPS_ROW_STRUCTURE_TO -> ColumnStructure,
      RowSpace -> REPRESENTS -> IndependentConstraintDirections
    ]
  },

  CROSS_ONTOLOGY_LINKS: {
    VectorSpaceOntology:
      subspace structure,

    RankOntology:
      dimension relation,

    MatrixOntology:
      row representation,

    NullSpaceOntology:
      orthogonal complement relation,

    ColumnSpaceOntology:
      equal dimension and transpose relation,

    LinearTransformationOntology:
      coordinate representation context,

    SingularValueDecompositionOntology:
      orthonormal row-space basis,

    SystemOfEquationsOntology:
      independent linear constraints
  },

  TERMINATION_CONDITION: {
    ontology_complete_when: [
      row_space_defined,
      ambient_space_defined,
      subspace properties defined,
      row reduction invariance defined,
      echelon basis method defined,
      rank relation defined,
      transpose column-space relation defined,
      null-space orthogonal relation defined,
      SVD and QR relations defined,
      constraint semantics defined,
      error detection defined,
      cross ontology links defined,
      recursive coherence verified
    ]
  }

}

EXECUTE Row_Space_Ontology_v1.0:

  INPUT:
    mathematical_entity_or_query

  PIPELINE:
    Parse
    -> IdentifyMatrix
    -> ResolveAmbientSpace
    -> ExtractRows
    -> RowReduceMatrix
    -> IdentifyNonzeroEchelonRows
    -> ConstructRowSpaceBasis
    -> ComputeRank
    -> AnalyseRowDependence
    -> DeriveTransposeColumnSpaceRelation
    -> DeriveNullSpaceOrthogonalComplementRelation
    -> InterpretIndependentConstraintDirections
    -> VerifySpanAndIndependence
    -> LinkRelatedOntologies
    -> AssignConfidence
    -> EmitSemanticResult

  OUTPUT: {
    entity,
    classification,
    matrix,
    ambient_space,
    rows,
    row_reduced_form,
    basis,
    rank,
    row_dependence,
    null_space_relation,
    orthogonal_complement_relation,
    transpose_relation,
    column_space_relation,
    constraint_semantics,
    orthonormal_basis,
    verification,
    ontology_relations,
    confidence,
    semantic_equivalence,
    flow_hash
  }

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