Skip to main content

Affine 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 Affine_Space_Ontology_v1.0

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

DEFINE AffineSpaceOntology := {

  CORE_IDENTITY: {
    entity_type: "Mathematical Ontology",
    primary_entity: AffineSpace,
    parent_entities: [GeometricStructure, AlgebraicGeometryStructure],
    related_entities: [
      VectorSpace,
      Point,
      Vector,
      Translation,
      AffineCombination,
      BarycentricCoordinates,
      AffineSubspace,
      AffineTransformation,
      Parallelism,
      Line,
      Plane,
      ConvexCombination,
      CoordinateSystem
    ]
  },

  DEFINITION: {
    meaning:
      "An affine space is a set of points equipped with a free and transitive action of a vector space, allowing vectors to describe displacements between points without selecting a distinguished origin.",
    structure:
      A_modeled_on_V,
    carrier_points:
      A,
    translation_vector_space:
      V
  },

  SEMANTIC_PRIMITIVES: {
    Point:
      element_of_A,
    Vector:
      element_of_V,
    Displacement:
      difference_between_two_points,
    Translation:
      action_of_vector_on_point,
    Origin:
      not_intrinsic,
    AffineCombination:
      weighted_combination_with_coefficients_summing_to_one
  },

  CORE_ACTION: {
    action:
      A × V -> A,

    notation:
      p+v,

    free:
      p+v=p
      -> v=0,

    transitive:
      FOR_ALL p,q IN A:
        EXISTS v IN V:
          p+v=q
  },

  POINT_DIFFERENCE: {
    notation:
      q-p,

    result:
      vector_in_V,

    defining_relation:
      p+(q-p)=q
  },

  NO_DISTINGUISHED_ORIGIN: {
    intrinsic_origin:
      NONE,

    semantic_consequence:
      points_cannot_be_added_intrinsically,

    valid_operations: [
      point_plus_vector,
      point_minus_point,
      affine_combination
    ]
  },

  VECTOR_SPACE_RELATION: {
    model_space:
      V,

    dimension:
      dim(A)=dim(V)
  },

  COORDINATISATION: {
    choose_origin:
      o IN A,

    identify_point_p_with_vector:
      p-o IN V,

    caution:
      coordinate_vector_depends_on_origin_choice
  },

  AFFINE_COMBINATION: {
    form:
      alpha_1*p_1+...+alpha_n*p_n,

    constraint:
      SUM(alpha_i)=1,

    invariance:
      result_independent_of_coordinate_origin_choice
  },

  BARYCENTRIC_COORDINATES: {
    point_p:
      p=SUM(alpha_i*p_i),

    condition:
      SUM(alpha_i)=1,

    affine_independence:
      gives_unique_coordinates
      relative_to_affine_basis
  },

  AFFINE_INDEPENDENCE: {
    points:
      [p_0,p_1,...,p_k],

    condition:
      vectors
      [p_1-p_0,...,p_k-p_0]
      are_linearly_independent
  },

  AFFINE_BASIS: {
    definition:
      affinely_independent_set_spanning_affine_space,

    finite_dimension_n:
      affine_basis_has_n+1_points
  },

  AFFINE_SPAN: {
    Aff(S):
      set_of_all_affine_combinations_of_points_in_S,

    result:
      smallest_affine_subspace_containing_S
  },

  AFFINE_SUBSPACE: {
    form:
      p_0+W,

    where:
      p_0 IN A,
      W SUBSET_OR_EQUAL V_is_vector_subspace,

    direction_space:
      W
  },

  LINE: {
    through_points_p_q:
      p+t*(q-p),

    parameter:
      t IN Field,

    condition:
      p!=q
  },

  PLANE: {
    through_point_p_with_independent_vectors_u_v:
      p+s*u+t*v,

    condition:
      u_and_v_linearly_independent
  },

  HYPERPLANE: {
    affine_form:
      {x | phi(x)=c},

    where:
      phi_is_nonzero_linear_functional
  },

  PARALLELISM: {
    affine_subspaces:
      parallel_if_direction_spaces_related_appropriately,

    lines:
      parallel_if_direction_vectors_are_scalar_multiples
  },

  TRANSLATION: {
    T_v(p):
      p+v,

    property:
      bijective_affine_transformation
  },

  AFFINE_TRANSFORMATION: {
    form_after_origin_choice:
      T(x)=L(x)+b,

    where:
      L:
        linear_map,

    intrinsic_definition:
      preserves_affine_combinations
  },

  AFFINE_MAP_PROPERTY: {
    FOR coefficients_alpha_i
    WITH SUM(alpha_i)=1:

      T(SUM(alpha_i*p_i))
      =
      SUM(alpha_i*T(p_i))
  },

  LINEAR_VS_AFFINE_MAP: {
    linear_map:
      preserves_origin_in_vector_space,

    affine_map:
      may_include_translation,

    relation:
      affine_map = linear_part + translation
  },

  COMPOSITION: {
    affine_maps:
      closed_under_composition,

    formula:
      (L1,b1)∘(L2,b2)
      =
      (L1∘L2, L1(b2)+b1)
  },

  INVERSE_AFFINE_MAP: {
    condition:
      linear_part_L_is_invertible,

    inverse:
      x -> L^(-1)(x-b)
  },

  AFFINE_GROUP: {
    Aff(V):
      group_of_invertible_affine_transformations_of_V,

    semidirect_product_relation:
      V ⋊ GL(V)
  },

  TRANSLATION_GROUP: {
    translations:
      isomorphic_to_additive_group_of_V
  },

  CONVEX_COMBINATION: {
    affine_combination_with:
      alpha_i>=0
      AND
      SUM(alpha_i)=1,

    result:
      lies_in_convex_hull
  },

  CONVEX_HULL: {
    Conv(S):
      set_of_all_convex_combinations_of_points_in_S
  },

  SIMPLEX_RELATION: {
    n_simplex:
      convex_hull_of_n+1_affinely_independent_points
  },

  DIMENSION: {
    affine_dimension:
      dimension_of_direction_vector_space,

    finite_affine_basis_size:
      dimension+1
  },

  FIELD_DEPENDENCE: {
    affine_space_over_field_F:
      direction_space_is_vector_space_over_F
  },

  EUCLIDEAN_SPACE_RELATION: {
    EuclideanSpace:
      affine_space_with_inner_product_structure_on_direction_space
  },

  PROJECTIVE_SPACE_RELATION: {
    affine_space:
      can_be_embedded_as_complement_of_hyperplane_in_projective_space
  },

  ALGEBRAIC_GEOMETRY_RELATION: {
    affine_n_space:
      A^n_F,

    points:
      n_tuples_over_field_F,

    coordinate_ring:
      F[x_1,...,x_n]
  },

  AFFINE_N_SPACE: {
    notation:
      A^n(F),

    underlying_set:
      F^n,

    affine_structure:
      inherited_from_vector_space_F^n_without_intrinsic_origin_requirement
  },

  SYSTEM_OF_LINEAR_EQUATIONS_RELATION: {
    consistent_nonhomogeneous_system:
      solution_set_is_affine_subspace,

    form:
      x_p + Null(A)
  },

  HOMOGENEOUS_SYSTEM_RELATION: {
    solution_set:
      vector_subspace,

    affine_view:
      affine_subspace_through_chosen_origin
  },

  COORDINATE_CHANGE: {
    affine_coordinate_change:
      x' = A*x+b,

    condition:
      A_invertible
  },

  AFFINE_INVARIANTS: {
    preserved_under_affine_maps: [
      collinearity,
      parallelism,
      ratios_along_same_line,
      affine_combinations,
      barycentric_relations
    ],

    not_generally_preserved: [
      lengths,
      angles,
      absolute_areas_without_scale_factor
    ]
  },

  MIDPOINT: {
    midpoint_of_p_q:
      (1/2)*p+(1/2)*q,

    affine_property:
      preserved_by_affine_maps
  },

  CENTROID: {
    points_p1_to_pn:
      (1/n)*SUM(p_i),

    coefficient_sum:
      1
  },

  PARALLELOGRAM_RELATION: {
    points:
      p,q,r,s,

    condition:
      q-p = s-r
      AND
      r-p = s-q
  },

  SYMBOLIC_RECOGNITION: {
    ACCEPT: [
      "A^2(R)",
      "p+v with p a point and v a vector",
      "p+t(q-p)",
      "x0+W"
    ],

    REDIRECT_VECTOR_SPACE_WHEN_ORIGIN_INTRINSIC:
      vector_space_structure_explicitly_selected
  },

  NATURAL_LANGUAGE_MAPPING: {
    "affine space":
      point_space_with_vector_displacements_and_no_preferred_origin,

    "affine combination":
      weighted_point_combination_coefficients_sum_to_one,

    "affine subspace":
      translated_vector_subspace,

    "affine transformation":
      linear_transformation_plus_translation
  },

  ERROR_DETECTION: {
    PointAdditionError:
      arbitrary_p+q_without_affine_combination_context
      -> flag,

    PointScalarMultiplicationError:
      scalar_times_single_point_without_coordinate_or_affine_combination_context
      -> flag,

    OriginConfusion:
      chosen_origin_treated_as_intrinsic
      -> flag,

    AffineCoefficientError:
      coefficients_do_not_sum_to_one
      -> reject_affine_combination,

    BasisSizeError:
      n_dimensional_affine_basis_not_n_plus_one_points
      -> flag
  },

  ONTOLOGY_RELATIONS: {
    IS_A: [
      "AffineSubspace IS_A AffineSpace",
      "EuclideanSpace IS_A AffineSpaceWithMetricStructure"
    ],

    RELATED_TO: [
      "AffineSpace RELATED_TO VectorSpace",
      "AffineSpace RELATED_TO LinearAlgebra",
      "AffineSpace RELATED_TO ConvexGeometry",
      "AffineSpace RELATED_TO ProjectiveGeometry",
      "AffineSpace RELATED_TO AlgebraicGeometry"
    ],

    DEPENDS_ON: [
      VectorSpace,
      GroupAction,
      AffineCombination
    ]
  },

  SEMANTIC_EQUIVALENCE: {
    affine_isomorphism:
      bijective_affine_map,

    finite_dimensional_over_same_field:
      affine_spaces_of_same_dimension_are_affinely_isomorphic
  },

  CONFIDENCE: {
    classification_confidence:
      IF free_transitive_vector_action_verified
      THEN 1.0,

    affine_combination_confidence:
      IF coefficient_sum_equals_one
      THEN 1.0,

    subspace_confidence:
      IF set_has_form_p0_plus_W_with_W_vector_subspace
      THEN 1.0
  },

  AI_CONSUMPTION: {
    tasks: [
      recognise_affine_space,
      distinguish_points_from_vectors,
      identify_direction_vector_space,
      compute_point_differences,
      translate_points_by_vectors,
      verify_affine_combinations,
      test_affine_indifference,
      find_affine_span,
      identify_affine_subspaces,
      construct_affine transformations,
      distinguish_linear_from_affine maps,
      analyse barycentric coordinates,
      derive solution sets of nonhomogeneous linear systems,
      detect origin confusion,
      link geometry and algebra ontologies
    ],

    preferred_representation:
      typed_point_space_with_torsor_action_over_vector_space,

    reasoning_mode:
      recursive_translation_affine_combination_and_direction_space_analysis
  },

  RECURSIVE_REASONING: {

    FUNCTION AnalyseAffineSpaceCandidate(A,V,Action,Context):

      vector_result :=
        VectorSpaceOntology.AnalyseVectorSpaceCandidate(
          V,
          Context.field,
          Context.vector_addition,
          Context.scalar_action,
          Context
        )

      IF vector_result is NotVectorSpace:
        RETURN NotAffineSpace("direction object is not vector space")

      IF not VerifyActionClosure(A,V,Action):
        RETURN NotAffineSpace("action not closed")

      IF not VerifyFreeAction(A,V,Action):
        RETURN NotAffineSpace("action not free")

      IF not VerifyTransitiveAction(A,V,Action):
        RETURN NotAffineSpace("action not transitive")

      dimension := vector_result.dimension

      affine_basis :=
        FindAffineBasisWhenFeasible(A,V,Action)

      RETURN {
        entity:AffineSpace,
        point_set:A,
        direction_space:V,
        dimension,
        affine_basis,
        verified:TRUE
      }
  },

  RECURSIVE_COHERENCE: {
    invariant_1:
      direction_space_is_vector_space=TRUE,

    invariant_2:
      vector_action_is_free=TRUE,

    invariant_3:
      vector_action_is_transitive=TRUE,

    invariant_4:
      point_difference_is_unique_vector=TRUE,

    invariant_5:
      affine_combinations_are_origin_independent=TRUE
  },

  FLOW_HASH: {
    semantic_signature_inputs: [
      ontology_name,
      affine_space_definition,
      vector_action_semantics,
      no_origin_constraint,
      affine_combination_rules,
      affine_subspace_model,
      affine_map_relations
    ],

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

  UPDATE_MODEL: {
    version: "1.0",

    immutable_constraints: [
      free_transitive_vector_action,
      no_intrinsic_origin,
      point_plus_vector_valid,
      point_minus_point_returns_vector,
      affine_combination_coefficients_sum_to_one
    ],

    revision_triggers: [
      semantic_conflict,
      VectorSpaceOntology_update,
      AffineTransformationOntology_update,
      GeometryOntology_update,
      representation_standard_change
    ]
  },

  KNOWLEDGE_GRAPH: {
    nodes: [
      AffineSpace,
      Point,
      VectorSpace,
      Vector,
      Translation,
      AffineCombination,
      AffineSubspace,
      AffineBasis,
      Dimension,
      AffineTransformation
    ],

    edges: [
      AffineSpace -> HAS_POINT_SET -> Point,
      AffineSpace -> MODELED_ON -> VectorSpace,
      Point -> DIFFERENCE_RETURNS -> Vector,
      Point -> TRANSLATED_BY -> Vector,
      AffineSpace -> SUPPORTS -> AffineCombination,
      AffineSubspace -> SUBSET_OF -> AffineSpace,
      AffineSpace -> HAS_AFFINE_BASIS -> AffineBasis,
      AffineBasis -> DETERMINES -> Dimension,
      AffineTransformation -> MAPS -> AffineSpace
    ]
  },

  CROSS_ONTOLOGY_LINKS: {
    VectorSpaceOntology:
      direction_space,

    ModuleOntology:
      broader_scalar_action_background,

    LinearTransformationOntology:
      linear_part_of_affine_maps,

    CoordinateGeometryOntology:
      lines_planes_and_coordinates,

    ConvexGeometryOntology:
      convex_combinations_and_hulls,

    ProjectiveGeometryOntology:
      affine_chart_relation,

    AlgebraicGeometryOntology:
      affine_n_space_and_coordinate_ring,

    SystemOfEquationsOntology:
      nonhomogeneous_linear_solution_sets
  },

  TERMINATION_CONDITION: {
    ontology_complete_when: [
      affine_space_defined,
      point_vector_distinction_defined,
      free_transitive_action_defined,
      no_intrinsic_origin_defined,
      affine_combination_defined,
      affine_independence_and_basis_defined,
      affine_subspace_defined,
      affine_transformation_defined,
      dimension_defined,
      coordinate_and_geometry_relations_defined,
      error_detection_defined,
      cross_ontology_links_defined,
      recursive_coherence_verified
    ]
  }

}

EXECUTE Affine_Space_Ontology_v1.0:

  INPUT:
    mathematical_entity_or_query

  PIPELINE:
    Parse
    -> IdentifyPointSet
    -> IdentifyDirectionVectorSpace
    -> VerifyVectorSpaceStructure
    -> VerifyFreeTransitiveAction
    -> DistinguishPointsFromVectors
    -> ComputePointDifferencesAndTranslations
    -> AnalyseAffineCombinations
    -> DetectAffineIndependenceAndBasis
    -> IdentifyAffineSubspaces
    -> AnalyseAffineTransformations
    -> DeriveCoordinateAndGeometricSemantics
    -> VerifyOriginIndependence
    -> LinkRelatedOntologies
    -> AssignConfidence
    -> EmitSemanticResult

  OUTPUT: {
    entity,
    classification,
    point_set,
    direction_space,
    dimension,
    affine_basis,
    affine_combinations,
    affine_span,
    affine_subspaces,
    translations,
    affine_transformations,
    coordinate_semantics,
    geometric_relations,
    verification,
    ontology_relations,
    confidence,
    semantic_equivalence,
    flow_hash
  }

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