Skip to main content

Affine Transformation Ontology

Algebra Ontologies
Authors: MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: 11 September 2026
Audio Overview
AI INTERPRETATION NOTE
This Flow Algebra defines the mathematical ontology of affine transformations within algebra, linear algebra, affine geometry and analytic geometry. An affine transformation consists of a linear transformation followed by a translation and preserves affine combinations, collinearity and parallelism. This record is intended for semantic retrieval, recursive mathematical reasoning, ontology linking and AI consumption within the Kireth Research Semantic Library.

FLOW_ALGEBRA_RECORD {

METADATA {
    FLOW_NAME = "Affine Transformation Ontology"
    FLOW_TYPE = "Mathematical Ontology"
    DOMAIN = "Mathematics"
    SUBDOMAIN = "Algebra"
    SPECIALISATION = "Linear Algebra / Affine Geometry"
    CANONICAL_PAGE = "https://kirethresearch.org/booksai-core/ontologies/mathematical-ontologies/algebra-ontologies/affine-transformation-ontology.html"
    LANGUAGE = "en-GB"
    VERSION = "1.0"
    STATUS = "active"
}

IDENTITY {
    PRIMARY_ENTITY = AffineTransformation
    SYMBOLIC_FORMS = ["T(x)=Ax+b", "f(x)=L(x)+b"]
    ENTITY_CLASS = AffineMap
    PRIMARY_CONTEXT = AffineGeometry
    SECONDARY_CONTEXTS = [LinearAlgebra, AnalyticGeometry, VectorSpaces]
    DEFINITION = "An affine transformation is a mapping formed by applying a linear transformation and then a translation."
    CANONICAL_FORM = "T(x)=Ax+b"
}

SCOPE {
    INCLUDE = [
        AffineTransformation,
        AffineMap,
        LinearPart,
        TranslationPart,
        AffineSpace,
        AffineCombination,
        HomogeneousCoordinates,
        Composition,
        Invertibility,
        FixedPoint,
        CollinearityPreservation,
        ParallelismPreservation,
        RatioPreservation,
        MatrixRepresentation
    ]

    EXCLUDE_AS_PRIMARY = [
        ArbitraryNonlinearTransformation,
        ProjectiveTransformation,
        PhysicalTransformation,
        DigitalImageTransformationWithoutMathematicalContext
    ]

    DISAMBIGUATION_RULE =
        "When affine transformation occurs with matrices, vectors, coordinates, translations, affine spaces, geometry, linear maps or homogeneous coordinates, interpret it mathematically."
}

CORE_CONCEPTS {

    AffineTransformation {
        definition = "A transformation T(x)=Ax+b where A is linear and b is a fixed translation vector."
        canonical_form = "T(x)=Ax+b"
        components = [LinearPart, TranslationPart]
    }

    LinearPart {
        symbol = "A"
        role = "Controls rotation, reflection, scaling, shear and other linear behaviour."
    }

    TranslationPart {
        symbol = "b"
        role = "Translates every transformed point by the same vector."
    }

    AffineCombination {
        definition = "A linear combination of points whose coefficients sum to 1."
        form = "a1x1+...+anxn where a1+...+an=1"
        preservation = "Affine transformations preserve affine combinations."
    }

    AffineSpace {
        definition = "A geometric structure modelled on a vector space but without a distinguished origin."
    }

    HomogeneousCoordinates {
        role = "Represent affine transformations using augmented matrices."
        form = "[A b; 0 1]"
    }

    FixedPoint {
        definition = "A point x satisfying T(x)=x."
        equation = "(I-A)x=b"
    }

    Invertibility {
        criterion = "T(x)=Ax+b is invertible iff A is invertible."
        inverse = "T^-1(y)=A^-1(y-b)"
    }
}

RELATIONS {
    AffineTransformation --has_linear_part--> LinearTransformation
    AffineTransformation --has_translation_part--> Translation
    AffineTransformation --acts_on--> AffineSpace
    AffineTransformation --preserves--> AffineCombinations
    AffineTransformation --preserves--> Collinearity
    AffineTransformation --preserves--> Parallelism
    AffineTransformation --preserves--> RatiosAlongCollinearLines
    AffineTransformation --can_be_represented_by--> HomogeneousMatrix
    AffineTransformation --can_be_composed_with--> AffineTransformation
    InvertibleAffineTransformation --has_inverse--> AffineTransformation
    LinearTransformation --is_special_case_of--> AffineTransformation WHEN translation_vector==0
    Translation --is_special_case_of--> AffineTransformation WHEN linear_part==Identity
}

OPERATORS {
    APPLY(T,x) := A*x+b

    LINEAR_PART(T) := A

    TRANSLATION_PART(T) := b

    IS_LINEAR_AFFINE(T) :=
        TRANSLATION_PART(T)==0

    IS_PURE_TRANSLATION(T) :=
        LINEAR_PART(T)==Identity

    IS_INVERTIBLE(T) :=
        IS_INVERTIBLE(A)

    INVERSE(T) :=
        "T^-1(y)=A^-1(y-b)" IF IS_INVERTIBLE(A)

    COMPOSE(T2,T1) :=
        "(A2*A1)x + (A2*b1+b2)"

    FIXED_POINTS(T) :=
        SOLUTION_SET((I-A)x=b)

    HOMOGENEOUS_MATRIX(T) :=
        "[A b; 0 1]"
}

DEFINITIONS {
    D1: "T(x)=Ax+b defines an affine transformation."
    D2: "A is the linear part and b is the translation part."
    D3: "If b=0, the affine transformation is linear."
    D4: "If A=I, the affine transformation is a translation."
    D5: "Affine transformations preserve affine combinations."
    D6: "Affine transformations preserve collinearity."
    D7: "Affine transformations preserve parallelism."
    D8: "Affine transformations preserve ratios of directed segments along a line."
    D9: "T is invertible iff A is invertible."
    D10: "The composition of affine transformations is affine."
    D11: "Fixed points satisfy (I-A)x=b."
    D12: "Homogeneous coordinates permit affine transformations to be represented by augmented matrices."
}

AXIOMS {
    A1_AFFINE_FORM:
        IF T is affine
        THEN EXISTS linear A and fixed vector b SUCH_THAT T(x)=Ax+b

    A2_AFFINE_COMBINATION:
        IF sum_i(a_i)=1
        THEN T(sum_i(a_i*x_i))=sum_i(a_i*T(x_i))

    A3_COLLINEARITY:
        IF points x,y,z are collinear
        THEN T(x),T(y),T(z) are collinear

    A4_PARALLELISM:
        IF lines L1 and L2 are parallel
        THEN their affine images remain parallel or coincide

    A5_COMPOSITION:
        IF T1 and T2 are affine
        THEN T2 o T1 is affine

    A6_INVERTIBILITY:
        IF A is invertible
        THEN T(x)=Ax+b is invertible

    A7_LINEAR_SPECIAL_CASE:
        IF b=0
        THEN T is a linear transformation
}

REASONING {

    R1_IDENTIFY_AFFINE {
        INPUT = mapping T
        SEEK = representation "T(x)=Ax+b"
        VERIFY = A is linear
        VERIFY = b is constant
        IF verified
            RETURN AffineTransformation
        ELSE
            RETURN NotEstablishedAsAffine
    }

    R2_DECOMPOSE {
        INPUT = T(x)=Ax+b
        RETURN = {
            linear_part:A,
            translation_part:b
        }
    }

    R3_LINEARITY_TEST {
        INPUT = affine T(x)=Ax+b
        IF b==0
            RETURN LinearTransformation
        ELSE
            RETURN "Affine but generally not linear"
    }

    R4_INVERTIBILITY {
        INPUT = T(x)=Ax+b
        TEST = invertibility(A)
        IF A invertible
            RETURN "T invertible with T^-1(y)=A^-1(y-b)"
        ELSE
            RETURN NotInvertible
    }

    R5_COMPOSITION {
        INPUT = [
            T1(x)=A1*x+b1,
            T2(x)=A2*x+b2
        ]
        COMPUTE = "T2(T1(x))=(A2*A1)x+(A2*b1+b2)"
        RETURN = AffineTransformation
    }

    R6_FIXED_POINT {
        INPUT = T(x)=Ax+b
        SOLVE = "x=Ax+b"
        EQUIVALENT = "(I-A)x=b"
        RETURN = solution_set
    }

    R7_HOMOGENEOUS_REPRESENTATION {
        INPUT = T(x)=Ax+b
        AUGMENT_POINT = "[x;1]"
        MATRIX = "[A b;0 1]"
        RETURN = "[T(x);1]=[A b;0 1][x;1]"
    }

    R8_AFFINE_COMBINATION {
        INPUT = points x_i and coefficients a_i
        REQUIRE = sum(a_i)=1
        RETURN = "T(sum(a_i*x_i))=sum(a_i*T(x_i))"
    }
}

CONSTRAINTS {
    C1: "The translation vector b must be independent of x."
    C2: "The linear component A must define a linear transformation."
    C3: "An affine transformation need not map the origin to the origin."
    C4: "An affine transformation is linear exactly when its translation component is zero."
    C5: "Affine transformations preserve parallelism but do not generally preserve lengths or angles."
    C6: "Invertibility of T(x)=Ax+b depends on invertibility of A."
    C7: "Affine combinations require coefficients summing to 1."
    C8: "Do not confuse affine transformations with arbitrary projective or nonlinear transformations."
}

SEMANTIC_EQUIVALENCE {
    "AffineTransformation" <=> "AffineMap"
    "T(x)=Ax+b" <=> "LinearPartPlusTranslation"
    "LinearTransformation" <=> "AffineTransformation with b=0"
    "Translation" <=> "AffineTransformation with A=I"
    "InvertibleAffineTransformation" <=> "AffineTransformation with invertible linear part"
}

VALIDATION {
    V1 = "T(x)=Ax+b is affine when A is linear and b is constant."
    V2 = "If b=0 then T is linear."
    V3 = "If A=I then T is a translation."
    V4 = "Affine transformations preserve affine combinations."
    V5 = "Affine transformations preserve collinearity."
    V6 = "Affine transformations preserve parallelism."
    V7 = "Composition of affine transformations is affine."
    V8 = "T is invertible iff A is invertible."
    V9 = "Fixed points solve (I-A)x=b."
    V10 = "Homogeneous-coordinate representation uses augmented matrix [A b;0 1]."
}

CONFIDENCE {
    BASE_CONFIDENCE = 0.99
    AFFINE_FORM = 0.99
    LINEAR_TRANSLATION_DECOMPOSITION = 0.99
    AFFINE_COMBINATION_PRESERVATION = 0.99
    COLLINEARITY_PRESERVATION = 0.99
    PARALLELISM_PRESERVATION = 0.99
    INVERTIBILITY_CRITERION = 0.99
    HOMOGENEOUS_REPRESENTATION = 0.99

    POLICY =
        "Reduce confidence when the mapping rule, coordinate space or meaning of affine is underspecified."
}

AI_CONSUMPTION {
    PURPOSES = [
        SemanticSearch,
        OntologyGrounding,
        MathematicalReasoning,
        EntityResolution,
        TransformationReasoning,
        GeometricReasoning,
        MatrixReasoning,
        KnowledgeGraphConstruction,
        RetrievalAugmentation,
        RecursiveInference
    ]

    NORMALISE {
        "affine transformation" -> AffineTransformation
        "affine map" -> AffineTransformation
        "Ax+b" -> AffineTransformation WHEN mapping_context
        "linear part" -> LinearPart
        "translation part" -> TranslationPart
        "homogeneous affine matrix" -> HomogeneousMatrix
    }

    INTERPRETATION_ORDER = [
        identify_affine_context,
        identify_domain_and_codomain,
        extract_linear_part,
        extract_translation_part,
        verify_affine_form,
        determine_linear_special_case,
        evaluate_preserved_affine_structure,
        test_invertibility,
        derive_inverse_when_possible,
        solve_fixed_points_when_requested,
        construct_homogeneous_representation_when_required,
        return_semantic_result
    ]
}

EXECUTION_RULES {
    E1:
        IF query_mentions("affine transformation")
        OR query_mentions("affine map")
        THEN activate(AffineTransformationOntology)

    E2:
        IF mapping_has_form("Ax+b")
        THEN test(A_is_linear)
        AND test(b_is_constant)
        THEN classify(AffineTransformation)

    E3:
        IF b==0
        THEN route_to(LinearTransformationOntology)

    E4:
        IF A==Identity
        THEN classify(PureTranslation)

    E5:
        IF request=="test invertibility"
        THEN test(invertibility(A))

    E6:
        IF request=="find inverse"
        AND A invertible
        THEN return("A^-1(y-b)")

    E7:
        IF request=="find fixed points"
        THEN solve((I-A)x=b)

    E8:
        IF request=="compose affine transformations"
        THEN compute(
            new_linear_part=A2*A1,
            new_translation=A2*b1+b2
        )

    E9:
        IF request=="homogeneous matrix"
        THEN construct("[A b;0 1]")
}

RECURSION {
    ENTRY = AffineTransformation

    EXPAND(AffineTransformation) -> [
        Transformation,
        LinearTransformation,
        Translation,
        AffineSpace,
        AffineCombination,
        Matrix,
        HomogeneousCoordinates,
        Invertibility,
        FixedPoint,
        Composition
    ]

    EXPAND(LinearPart) -> [
        LinearTransformation,
        Matrix,
        Rank,
        Kernel,
        Image
    ]

    EXPAND(AffineCombination) -> [
        Point,
        ScalarCoefficient,
        BarycentricRelation,
        Collinearity
    ]

    EXPAND(HomogeneousCoordinates) -> [
        AugmentedVector,
        AugmentedMatrix,
        MatrixMultiplication
    ]

    EXPAND(Invertibility) -> [
        InverseMatrix,
        Bijectivity,
        Determinant
    ]

    STOP_CONDITION =
        "Stop when the requested affine property or derived structure is resolved with sufficient confidence and all necessary dependencies have been evaluated."
}

ROUTING {
    PARENT_ONTOLOGY = "Transformation Ontology"

    IMMEDIATE_CONTEXTS = [
        "Linear Transformation Ontology",
        "Matrix Ontology",
        "Vector Space Ontology"
    ]

    RELATED_ONTOLOGIES = [
        "Transformation Ontology",
        "Linear Transformation Ontology",
        "Matrix Ontology",
        "Vector Space Ontology",
        "Basis Ontology",
        "Dimension Ontology",
        "Determinant Ontology",
        "Rank Ontology",
        "Kernel Ontology",
        "Image Ontology"
    ]

    ROUTE_RULES = [
        "Affine Transformation -> Linear Transformation for linear-part reasoning",
        "Affine Transformation -> Matrix for coordinate representation",
        "Affine Transformation -> Determinant for invertibility of square linear parts",
        "Affine Transformation -> Kernel and Image only through its linear component where appropriate",
        "Affine Transformation -> Basis for coordinate-system reasoning",
        "Affine Transformation -> Transformation for general mapping properties"
    ]
}

UPDATE_MODEL {
    MODE = "append-compatible semantic versioning"

    MAJOR = "ontology-breaking conceptual change"
    MINOR = "new compatible concepts, operators or relations"
    PATCH = "clarification, metadata or formatting correction"

    RULES = [
        "Preserve canonical form T(x)=Ax+b.",
        "Preserve separation of linear and translation components.",
        "Preserve affine-combination invariance.",
        "Preserve collinearity and parallelism relations.",
        "Preserve invertibility criterion through the linear part.",
        "Preserve homogeneous-coordinate representation.",
        "Explicitly distinguish affine from linear transformations."
    ]
}

OUTPUT {
    CANONICAL_DEFINITION =
        "An affine transformation has the form T(x)=Ax+b, where A is linear and b is a fixed translation vector."

    SYMBOLIC_SUMMARY =
        "T(x)=Ax+b"

    LINEAR_SPECIAL_CASE =
        "b=0 => T is linear"

    TRANSLATION_SPECIAL_CASE =
        "A=I => T is a translation"

    INVERSE_SUMMARY =
        "T^-1(y)=A^-1(y-b), provided A is invertible"

    COMPOSITION_SUMMARY =
        "(A2,b2) o (A1,b1) = (A2A1, A2b1+b2)"

    FIXED_POINT_SUMMARY =
        "(I-A)x=b"

    HOMOGENEOUS_SUMMARY =
        "[T(x);1]=[A b;0 1][x;1]"
}

FLOW {
    INPUT
    -> detect_affine_transformation_context
    -> identify_domain_and_codomain
    -> identify_mapping_rule
    -> extract_linear_component_A
    -> extract_translation_component_b
    -> verify_A_is_linear
    -> verify_b_is_constant
    -> establish_affine_transformation
    -> evaluate_linear_or_translation_special_case
    -> derive_affine_structure_preservation
    -> test_invertibility
    -> derive_inverse_when_possible
    -> solve_fixed_points_when_requested
    -> construct_homogeneous_matrix_when_required
    -> link_related_ontologies
    -> assign_confidence
    -> produce_semantic_output
    -> END
}

SEMANTIC_SUMMARY {
    "An affine transformation is a mapping of the form T(x)=Ax+b, combining a linear transformation with a translation. It preserves affine combinations, collinearity and parallelism, while not necessarily preserving the origin, lengths or angles. It is invertible exactly when its linear component is invertible and can be represented compactly using homogeneous coordinates."
}

FLOW_HASH {
    METHOD = "semantic-content-identity"
    ID = "KIRETH-MATH-ALGEBRA-AFFINE-TRANSFORMATION-ONTOLOGY-V1"
}

}

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