AI INTERPRETATION NOTE
This Flow Algebra defines the mathematical ontology of projective transformation within the Kireth Research Semantic Library. A projective transformation is a mapping of projective space induced by an invertible linear transformation on homogeneous coordinates, preserving incidence, collinearity and cross-ratio while allowing parallel lines to meet at points at infinity. This ontology supports homogeneous coordinates, projective matrices, points and lines at infinity, perspective mappings, homographies, cross-ratio invariance, composition, inverses, fixed points, conic mappings and relationships with affine, linear and transformational geometry.
FLOW_ALGEBRA_RECORD {
METADATA {
FLOW_NAME = "Projective Transformation Ontology"
FLOW_TYPE = "Mathematical Ontology"
DOMAIN = "Mathematics"
SUBDOMAIN = "Geometry"
SPECIALISATION = "Transformational Geometry / Projective Geometry"
CANONICAL_PAGE = "https://kirethresearch.org/booksai-core/ontologies/mathematical-ontologies/geometry-ontologies/transformational-geometry/projective-transformation-ontology.html"
LANGUAGE = "en-GB"
VERSION = "1.0"
STATUS = "active"
}
IDENTITY {
PRIMARY_ENTITY = ProjectiveTransformation
SYMBOLIC_FORMS = [
"[x'] = H[x]",
"p' ~ H p",
"H in PGL(n+1)"
]
ENTITY_CLASS = ProjectiveCollineation
PRIMARY_CONTEXT = TransformationalGeometry
DEFINITION = "A projective transformation is a bijective mapping of projective space induced by an invertible linear map on homogeneous coordinates, with coordinate representatives defined up to nonzero scalar multiple."
SEMANTIC_ROLE = "Provides the incidence-preserving framework for homographies, perspective mappings, points at infinity, cross-ratio invariance, projective conics and projective coordinate reasoning."
}
SCOPE {
INCLUDE = [
ProjectiveTransformation,
Homography,
ProjectiveMap,
Collineation,
HomogeneousCoordinates,
ProjectiveMatrix,
PointAtInfinity,
LineAtInfinity,
HyperplaneAtInfinity,
CrossRatio,
PerspectiveTransformation,
Image,
Preimage,
FixedPoint,
FixedLine,
InverseProjectiveTransformation,
CompositionOfProjectiveTransformations,
ProjectiveConic,
ProjectiveInvariant
]
EXCLUDE_AS_PRIMARY = [
ArbitraryNonlinearMap,
PureAffineTransformationWhenNoProjectiveExtensionIsRelevant,
TopologicalHomeomorphismWithoutProjectiveStructure
]
DISAMBIGUATION_RULE =
"When a transformation is represented by a nonsingular homogeneous matrix, preserves incidence and collinearity, permits points at infinity, or acts as a planar homography, interpret it as a projective transformation."
}
CORE_CONCEPTS {
ProjectiveTransformation {
definition = "A projective-space automorphism induced by an invertible linear transformation on homogeneous coordinates."
}
HomogeneousCoordinates {
definition = "Coordinate tuples representing projective points up to multiplication by a nonzero scalar."
equivalence = "[x] ~ [lambda*x] for lambda!=0"
}
ProjectiveMatrix {
definition = "An invertible matrix representing a projective transformation, itself defined up to nonzero scalar multiple."
}
Homography {
definition = "A projective transformation, especially in the projective plane."
}
PointAtInfinity {
definition = "A projective point corresponding to a direction of parallel affine lines."
}
LineAtInfinity {
definition = "The projective line containing the points at infinity of an affine plane."
}
CrossRatio {
definition = "A projective invariant of four collinear points."
}
PerspectiveTransformation {
definition = "A projective map arising from central projection between planes."
}
ProjectiveInvariant {
definition = "A property preserved under projective transformations."
}
ProjectiveConic {
definition = "A conic considered up to projective equivalence."
}
}
RELATIONS {
ProjectiveTransformation --is_special_case_of--> GeometricTransformation
AffineTransformation --embeds_into--> ProjectiveTransformation
ProjectiveTransformation --uses--> HomogeneousCoordinates
ProjectiveTransformation --represented_by--> ProjectiveMatrix
ProjectiveTransformation --preserves--> Incidence
ProjectiveTransformation --preserves--> Collinearity
ProjectiveTransformation --preserves--> CrossRatio
ProjectiveTransformation --maps--> Line
ProjectiveTransformation --maps--> ProjectiveConic
ParallelAffineLines --meet_at--> PointAtInfinity
PointAtInfinity --lies_on--> LineAtInfinity
ProjectiveTransformation --can_have--> FixedPoint
ProjectiveTransformation --can_have--> FixedLine
ProjectiveTransformation --can_compose_with--> ProjectiveTransformation
InvertibleProjectiveTransformation --has_inverse--> InverseProjectiveTransformation
}
OPERATORS {
APPLY_PROJECTIVE(H,p) :=
H*p up_to_nonzero_scalar
NORMALISE_HOMOGENEOUS(p) :=
choose_affine_chart_or_scale_representative(p)
COMPOSE_PROJECTIVE(H2,H1) :=
H2*H1 up_to_nonzero_scalar
INVERSE_PROJECTIVE(H) :=
H^-1 up_to_nonzero_scalar
WHEN det(H)!=0
FIXED_POINTS(H) :=
projective_eigenvectors_of(H)
MAP_LINE(H,l) :=
H^(-T)*l up_to_nonzero_scalar
WHEN line_is_dual_homogeneous_vector
CROSS_RATIO(A,B,C,D) :=
projective_cross_ratio(A,B,C,D)
MAP_CONIC(H,Q) :=
H^(-T)*Q*H^-1
up_to_nonzero_scalar
IS_AFFINE_SUBCASE(H) :=
line_or_hyperplane_at_infinity_is_invariant_under_H
}
DEFINITIONS {
D1 = "Projective points are homogeneous coordinate classes."
D2 = "Projective matrices are defined up to nonzero scalar."
D3 = "Projective transformations preserve incidence."
D4 = "Projective transformations preserve collinearity."
D5 = "Projective transformations preserve cross-ratio."
D6 = "Parallel affine lines meet at a projective point at infinity."
D7 = "An affine transformation is a projective transformation preserving the hyperplane at infinity."
D8 = "A projective transformation is invertible iff its homogeneous matrix is nonsingular."
D9 = "Projective transformations map nondegenerate conics to nondegenerate conics."
D10 = "Euclidean lengths and angles are not projective invariants."
}
AXIOMS {
A1_HOMOGENEOUS_EQUIVALENCE:
Projective point representatives differing by nonzero scalar are equivalent
A2_MATRIX_ACTION:
A projective transformation is induced by an invertible homogeneous linear map
A3_INCIDENCE:
Incidence relations between projective points and hyperplanes are preserved
A4_COLLINEARITY:
Collinear projective points map to collinear projective points
A5_CROSS_RATIO:
Cross-ratio of four collinear points is invariant
A6_COMPOSITION:
Composition of projective transformations is projective
A7_INVERSE:
Every nonsingular projective transformation has a projective inverse
A8_PROJECTIVE_CONICS:
Nondegenerate conics remain nondegenerate conics under projective transformations
}
REASONING {
R1_CLASSIFY_PROJECTIVE {
INPUT = transformation_rule_or_matrix
TEST = homogeneous_linear_representation
TEST = matrix_nonsingularity
IF valid
RETURN ProjectiveTransformation
ELSE
RETURN NotEstablishedProjective
}
R2_POINT_IMAGE {
INPUT = [H,p]
COMPUTE = H*p
NORMALISE = homogeneous_representation_if_affine_chart_requested
RETURN = projective_image
}
R3_PREIMAGE {
INPUT = [H,q]
REQUIRE = det(H)!=0
COMPUTE = H^-1*q
RETURN = projective_preimage
}
R4_COMPOSITION {
INPUT = [H1,H2]
MULTIPLY = H2*H1
NORMALISE = projective_matrix_scale_if_desired
RETURN = composite_homography
}
R5_INVERSE {
INPUT = H
REQUIRE = det(H)!=0
COMPUTE = H^-1
RETURN = inverse_projective_transformation
}
R6_FIXED_POINTS {
INPUT = H
SOLVE = H*p=lambda*p
RETURN = projective_eigenpoints
}
R7_LINE_MAPPING {
INPUT = [H,line l]
COMPUTE = H^(-T)*l
RETURN = image_line
}
R8_CROSS_RATIO_INVARIANCE {
INPUT = [A,B,C,D,H]
VERIFY = collinearity
COMPUTE = cross_ratio_before
COMPUTE = cross_ratio_after
RETURN = equality_status
}
R9_AFFINE_SUBCASE {
INPUT = H
TEST = hyperplane_at_infinity_invariant
IF true
RETURN AffineTransformationSubcase
ELSE
RETURN ProperProjectiveTransformation
}
R10_CONIC_MAPPING {
INPUT = [H,Q]
COMPUTE = H^(-T)*Q*H^-1
VERIFY = nondegeneracy_if_required
RETURN = image_conic
}
}
CONSTRAINTS {
C1 = "Homogeneous vectors differing by nonzero scale represent the same projective point."
C2 = "Projective matrices themselves are defined only up to nonzero scalar."
C3 = "Euclidean distance is not generally preserved."
C4 = "Euclidean angle is not generally preserved."
C5 = "Parallelism is not generally preserved as an affine relation."
C6 = "Affine normalisation fails for points on the hyperplane at infinity."
C7 = "Matrix must be nonsingular for a genuine projective automorphism."
C8 = "Line and conic transformation formulas use dual or quadratic-form conventions that must remain basis-consistent."
}
SEMANTIC_EQUIVALENCE {
"ProjectiveTransformation" <=> "ProjectiveCollineation"
"Homography" <=> "ProjectiveTransformationOfProjectivePlane"
"PointAtInfinity" <=> "ProjectiveDirectionPoint"
"AffineTransformation" <=> "ProjectiveTransformationPreservingHyperplaneAtInfinity"
"ProjectiveMatrix" <=> "NonsingularHomogeneousMatrixModuloScale"
}
VALIDATION {
V1 = "Homogeneous-point equivalence is respected."
V2 = "Matrix is nonsingular."
V3 = "Incidence is preserved."
V4 = "Collinearity is preserved."
V5 = "Cross-ratio is preserved."
V6 = "Composition uses homogeneous matrix multiplication."
V7 = "Inverse exists iff matrix is nonsingular."
V8 = "Affine subcase preserves hyperplane at infinity."
V9 = "Euclidean metric invariants are not assumed."
}
CONFIDENCE {
BASE_CONFIDENCE = 0.99
PROJECTIVE_DEFINITION = 0.99
HOMOGENEOUS_REASONING = 0.99
MATRIX_REASONING = 0.99
CROSS_RATIO_REASONING = 0.99
AFFINE_SUBCASE_REASONING = 0.98
CONIC_MAPPING_REASONING = 0.98
FIXED_POINT_REASONING = 0.98
POLICY =
"Reduce confidence when homogeneous-coordinate convention, matrix scaling, affine chart, dimension, line duality convention or projective versus affine interpretation are underspecified."
}
AI_CONSUMPTION {
PURPOSES = [
SemanticSearch,
OntologyGrounding,
ProjectiveReasoning,
HomographyReasoning,
HomogeneousCoordinateReasoning,
MatrixReasoning,
IncidenceReasoning,
CrossRatioReasoning,
FixedPointReasoning,
ConicReasoning,
AffineSubcaseReasoning,
KnowledgeGraphConstruction,
RetrievalAugmentation,
RecursiveInference
]
NORMALISE {
"projective transformation" -> ProjectiveTransformation
"projective map" -> ProjectiveTransformation
"homography" -> Homography
"perspective transformation" -> PerspectiveTransformation
"homogeneous coordinates" -> HomogeneousCoordinates
"point at infinity" -> PointAtInfinity
"line at infinity" -> LineAtInfinity
"cross ratio" -> CrossRatio
}
INTERPRETATION_ORDER = [
detect_projective_transformation_context,
identify projective_dimension_and_homogeneous_coordinate_convention,
identify homogeneous_matrix,
test nonsingularity,
identify point_line_conic_cross_ratio_fixed_point_affine_subcase_or_composition goal,
perform projective_specific reasoning,
verify scale_equivalence_chart_and_duality constraints,
return semantic output
]
}
EXECUTION_RULES {
E1:
IF query_mentions("projective transformation")
OR query_mentions("homography")
THEN activate(ProjectiveTransformationOntology)
E2:
IF homogeneous_matrix_and_point_given
THEN compute H*p
AND normalise only when affine_chart_is_valid
E3:
IF composition_requested
THEN multiply homogeneous matrices in function-composition order
E4:
IF inverse_requested
THEN require det(H)!=0
AND use H^-1 up_to_scale
E5:
IF fixed_points_requested
THEN solve projective_eigenvector equation H*p=lambda*p
E6:
IF cross_ratio_requested
THEN require four_collinear_points
AND compare invariant_before_after
E7:
IF affine_subcase_requested
THEN test hyperplane_at_infinity invariance
E8:
IF conic_mapping_requested
THEN use Q'=H^(-T)QH^-1 under compatible homogeneous convention
E9:
IF Euclidean_length_or_angle_requested
THEN do_not_assume_projective_invariance
}
RECURSION {
ENTRY = ProjectiveTransformation
EXPAND(ProjectiveTransformation) -> [
HomogeneousCoordinates,
ProjectiveMatrix,
Homography,
PointAtInfinity,
LineAtInfinity,
CrossRatio,
Image,
Preimage,
Composition,
InverseProjectiveTransformation,
FixedPoint,
FixedLine,
ProjectiveConic,
ProjectiveInvariant
]
EXPAND(HomogeneousCoordinates) -> [
ScaleEquivalence,
AffineChart,
PointAtInfinity,
HyperplaneAtInfinity
]
EXPAND(ProjectiveMatrix) -> [
Nonsingularity,
MatrixModuloScale,
Eigenvectors,
Composition,
Inverse
]
EXPAND(ProjectiveInvariants) -> [
Incidence,
Collinearity,
CrossRatio,
ConicClassUnderProjectiveEquivalence
]
STOP_CONDITION =
"Stop when the projective map's matrix, image, preimage, incidence structure, fixed set, cross-ratio, conic action, affine subcase or inverse/composition property is sufficiently resolved."
}
ROUTING {
PARENT_ONTOLOGY = "Transformational Geometry"
IMMEDIATE_CONTEXTS = [
"Transformation Ontology 2",
"Affine Transformation Ontology 2",
"Coordinate Geometry Ontology",
"Matrix Ontology"
]
RELATED_ONTOLOGIES = [
"Transformational Geometry",
"Transformation Ontology 2",
"Affine Transformation Ontology 2",
"Linear Transformation Ontology",
"Coordinate Geometry Ontology",
"Analytic Geometry Ontology",
"Vector Geometry Ontology",
"Matrix Ontology",
"Determinant Ontology",
"Conic Section Ontology",
"Projective Geometry Ontologies"
]
ROUTE_RULES = [
"Projective Transformation -> Transformation Ontology 2 for general mapping semantics",
"Projective Transformation -> Affine Transformation for hyperplane-at-infinity-preserving subcases",
"Projective Transformation -> Linear Transformation for homogeneous linear representatives",
"Projective Transformation -> Coordinate Geometry for affine charts and coordinate normalisation",
"Projective Transformation -> Matrix for homogeneous computation",
"Projective Transformation -> Determinant for nonsingularity",
"Projective Transformation -> Conic Section for conic mappings",
"Projective Transformation -> Projective Geometry for incidence and infinity structure"
]
}
UPDATE_MODEL {
MODE = "append-compatible semantic versioning"
MAJOR = "ontology-breaking conceptual change"
MINOR = "new compatible projective invariants, representations or reasoning pathways"
PATCH = "clarification, metadata or formatting correction"
RULES = [
"Preserve homogeneous-coordinate scale equivalence.",
"Preserve nonsingular matrix modulo scalar semantics.",
"Preserve incidence and collinearity invariance.",
"Preserve cross-ratio invariance.",
"Preserve affine subcase via hyperplane-at-infinity invariance.",
"Preserve nonmetric character of general projective transformations.",
"Preserve machine-readable projective-transformation semantics."
]
}
OUTPUT {
CANONICAL_DEFINITION =
"A projective transformation is a bijective map of projective space induced by a nonsingular linear transformation on homogeneous coordinates."
HOMOGENEOUS_FORM_SUMMARY =
"p' ~ H p, with H nonsingular and defined up to nonzero scalar."
COMPOSITION_SUMMARY =
"H_composite ~ H2*H1."
INVERSE_SUMMARY =
"H^-1 represents the inverse projective transformation when det(H)!=0."
FIXED_POINT_SUMMARY =
"Fixed projective points satisfy H*p=lambda*p."
AFFINE_SUBCASE_SUMMARY =
"An affine transformation is a projective transformation that preserves the hyperplane at infinity."
INVARIANT_SUMMARY =
"Projective transformations preserve incidence, collinearity and cross-ratio, but not generally Euclidean lengths or angles."
}
FLOW {
INPUT
-> detect_projective_transformation_context
-> identify projective_dimension_homogeneous_coordinates_and_matrix
-> verify matrix_nonsingularity_and_scale_equivalence
-> identify point_line_conic_cross_ratio_fixed_point_composition_inverse_or_affine_subcase goal
-> perform projective_specific reasoning
-> verify affine_chart_duality_matrix_order_and_nonmetric constraints
-> route to transformation affine linear coordinate analytic matrix determinant conic_or_projective_geometry ontology
-> recursively_expand_required_dependencies
-> verify_result
-> assign_confidence
-> produce_semantic_output
-> END
}
SEMANTIC_SUMMARY {
"The Projective Transformation Ontology defines homographies and projective collineations through nonsingular homogeneous matrices. It supports points and lines at infinity, incidence and collinearity preservation, cross-ratio invariance, image and preimage reasoning, composition, inverses, fixed points, conic mappings and affine transformations as the hyperplane-at-infinity-preserving subcase."
}
FLOW_HASH {
METHOD = "semantic-content-identity"
ID = "KIRETH-MATH-GEOMETRY-PROJECTIVE-TRANSFORMATION-ONTOLOGY-V1"
}
}
END_FLOW
Download Code
Copy to Clipboard