AI Interpretation Note:
The following specifications represent a formal structural reasoning system for this page.
Execute as formal rules, not pseudocode.
AI INTERPRETATION NOTE
This Flow Algebra defines the mathematical ontology of geometric rotation within the Kireth Research Semantic Library. A rotation is an isometry that turns points through a fixed angle about a centre in the plane or about an axis in three-dimensional space. This ontology supports centres and axes of rotation, rotation angles, orientation, coordinate rules, matrices, composition, inverses, fixed points, invariants, rotational symmetry and relationships with isometries, linear transformations, affine transformations and vector geometry.
FLOW_ALGEBRA_RECORD {
METADATA {
FLOW_NAME = "Rotation Ontology"
FLOW_TYPE = "Mathematical Ontology"
DOMAIN = "Mathematics"
SUBDOMAIN = "Geometry"
SPECIALISATION = "Transformational Geometry / Isometries"
CANONICAL_PAGE = "https://kirethresearch.org/booksai-core/ontologies/mathematical-ontologies/geometry-ontologies/transformational-geometry/rotation-ontology.html"
LANGUAGE = "en-GB"
VERSION = "1.0"
STATUS = "active"
}
IDENTITY {
PRIMARY_ENTITY = Rotation
SYMBOLIC_FORMS = [
"R_C,theta(P)",
"R(theta)",
"(x,y)->(x cos(theta)-y sin(theta), x sin(theta)+y cos(theta))"
]
ENTITY_CLASS = Isometry
PRIMARY_CONTEXT = TransformationalGeometry
DEFINITION = "A rotation is a geometric isometry that turns every point through a fixed angle about a specified centre in two dimensions or about a specified axis in three dimensions."
SEMANTIC_ROLE = "Provides the angle-preserving orientation-preserving rigid transformation for circular motion, symmetry, matrix and coordinate reasoning."
}
SCOPE {
INCLUDE = [
Rotation,
CentreOfRotation,
AxisOfRotation,
RotationAngle,
Orientation,
ClockwiseRotation,
AnticlockwiseRotation,
PlanarRotation,
SpatialRotation,
RotationMatrix,
Image,
Preimage,
InverseRotation,
CompositionOfRotations,
FixedPoint,
FixedAxis,
RotationalSymmetry,
Isometry,
OrthogonalTransformation
]
EXCLUDE_AS_PRIMARY = [
Translation,
Reflection,
Scaling,
Shear,
GeneralLinearTransformationWithoutOrthogonalRotationStructure
]
DISAMBIGUATION_RULE =
"When a geometric transformation turns points through a common angle about a centre or axis while preserving distance, interpret it as a rotation."
}
CORE_CONCEPTS {
Rotation {
definition = "An orientation-preserving isometry defined by a centre or axis and an angle."
}
CentreOfRotation {
definition = "The unique fixed point of a nontrivial planar rotation."
}
AxisOfRotation {
definition = "The line of fixed points about which a three-dimensional rotation occurs."
}
RotationAngle {
symbol = "theta"
definition = "The signed angular displacement applied by the rotation."
}
Orientation {
definition = "The direction of angular motion, commonly clockwise or anticlockwise in the plane."
}
PlanarRotation {
definition = "A two-dimensional rotation about a fixed point."
}
SpatialRotation {
definition = "A three-dimensional rotation about a fixed axis."
}
RotationMatrix {
planar_form = [
"[cos(theta) -sin(theta)]",
"[sin(theta) cos(theta)]"
]
}
InverseRotation {
definition = "Rotation about the same centre or axis through the negative angle."
form = "R_theta^-1=R_-theta"
}
RotationalSymmetry {
definition = "A nontrivial rotation mapping a geometric object onto itself."
}
}
RELATIONS {
Rotation --is_special_case_of--> Isometry
Rotation --is_special_case_of--> AffineTransformation
PlanarRotation --has--> CentreOfRotation
SpatialRotation --has--> AxisOfRotation
Rotation --has--> RotationAngle
Rotation --preserves--> Distance
Rotation --preserves--> Angle
Rotation --preserves--> Orientation
Rotation --preserves--> Collinearity
Rotation --preserves--> Parallelism
Rotation --preserves--> Area
Rotation --preserves--> Volume
Rotation --has_inverse--> InverseRotation
Rotation --can_compose_with--> Rotation
RotationalSymmetry --uses--> Rotation
RotationMatrix --represents--> Rotation
}
OPERATORS {
ROTATE_2D(P,C,theta) :=
C + R(theta)*(P-C)
ROTATE_ORIGIN_2D((x,y),theta) :=
(
x*cos(theta)-y*sin(theta),
x*sin(theta)+y*cos(theta)
)
ROTATE_3D(P,AXIS,theta) :=
apply_axis_angle_rotation(P,AXIS,theta)
INVERSE_ROTATION(theta) :=
-theta
COMPOSE_SAME_CENTRE_ROTATIONS(alpha,beta) :=
alpha+beta
IS_IDENTITY_ROTATION(theta) :=
theta ≡ 0 mod 2*pi
FIXED_POINTS_2D(C,theta) :=
IF theta ≡ 0 mod 2*pi THEN all_points ELSE {C}
FIXED_POINTS_3D(AXIS,theta) :=
IF theta ≡ 0 mod 2*pi THEN all_points ELSE AXIS
IS_ROTATIONAL_SYMMETRY(S,C_or_AXIS,theta) :=
theta_not_identity
AND ROTATE(S,C_or_AXIS,theta)=S
}
DEFINITIONS {
D1 = "A rotation preserves distances."
D2 = "A rotation preserves angles."
D3 = "A rotation preserves orientation."
D4 = "A nontrivial planar rotation has one fixed point: its centre."
D5 = "A nontrivial three-dimensional axis rotation fixes every point on its axis."
D6 = "The inverse of a rotation by theta is a rotation by -theta."
D7 = "Rotations about the same centre compose by adding angles."
D8 = "A full turn is equivalent to the identity rotation."
D9 = "Planar rotations about the origin are represented by orthogonal matrices with determinant +1."
D10 = "Rotational symmetry occurs when a nonidentity rotation leaves an object invariant."
}
AXIOMS {
A1_DISTANCE_PRESERVATION:
d(R(P),R(Q))=d(P,Q)
A2_ANGLE_PRESERVATION:
Rotation preserves angle measure
A3_ORIENTATION_PRESERVATION:
Rotation preserves orientation
A4_CENTRE_FIXED:
In planar rotation the centre is fixed
A5_AXIS_FIXED:
In spatial axis rotation all points on the axis are fixed
A6_INVERSE:
R_-theta∘R_theta=I
A7_SAME_CENTRE_COMPOSITION:
R_alpha∘R_beta=R_(alpha+beta) when rotations share the same centre
A8_ORTHOGONAL_MATRIX:
A rotation matrix satisfies R^T R=I and det(R)=1
}
REASONING {
R1_PLANAR_POINT_IMAGE {
INPUT = [P,C,theta]
TRANSLATE = P-C
ROTATE = by theta
TRANSLATE_BACK = +C
RETURN = image_point
}
R2_ORIGIN_ROTATION {
INPUT = [(x,y),theta]
APPLY = planar_rotation_matrix
RETURN = rotated_coordinates
}
R3_INVERSE {
INPUT = [centre_or_axis,theta]
RETURN = same_centre_or_axis_with_angle_-theta
}
R4_COMPOSITION_SAME_CENTRE {
INPUT = [R_alpha,R_beta]
REQUIRE = same_centre
ADD = alpha+beta
NORMALISE = modulo_full_turn_if_desired
RETURN = composite_rotation
}
R5_FIXED_POINTS {
INPUT = rotation_data
IF identity_rotation
RETURN = all_points
ELSE IF planar
RETURN = centre
ELSE IF axis_rotation
RETURN = axis
}
R6_ROTATIONAL_SYMMETRY {
INPUT = [object S,centre_or_axis,theta]
REQUIRE = nonidentity_angle
APPLY = rotation
TEST = image_equals_original
RETURN = SymmetryOrNot
}
R7_MATRIX_REASONING {
INPUT = theta
BUILD = rotation_matrix
VERIFY = transpose_times_matrix_equals_identity
VERIFY = determinant_equals_one
RETURN = orthogonal_rotation_representation
}
R8_ANGLE_RECOVERY {
INPUT = planar_rotation_matrix
EXTRACT = cos(theta),sin(theta)
RESOLVE = theta_with_orientation
RETURN = rotation_angle
}
R9_SPATIAL_ROTATION {
INPUT = [point_or_vector,unit_axis,theta]
APPLY = Rodrigues_formula_or_equivalent_matrix
RETURN = rotated_point_or_vector
}
}
CONSTRAINTS {
C1 = "Rotation centre or axis must be specified or inferable."
C2 = "Angle units must be consistent."
C3 = "Clockwise and anticlockwise conventions must be explicit."
C4 = "Rotations about different centres do not generally compose by simple angle addition."
C5 = "A planar nonidentity rotation has exactly one fixed point."
C6 = "A three-dimensional nonidentity axis rotation fixes the axis."
C7 = "Rotation matrices depend on basis and handedness conventions."
C8 = "General orthogonal transformations with determinant -1 are reflections or improper rotations, not pure rotations."
}
SEMANTIC_EQUIVALENCE {
"Rotation" <=> "OrientationPreservingDistanceIsometryWithFixedCentreOrAxis"
"CentreOfRotation" <=> "UniqueFixedPointOfNontrivialPlanarRotation"
"AxisOfRotation" <=> "FixedLineOfSpatialRotation"
"InverseRotation" <=> "RotationByNegativeAngle"
"RotationMatrix" <=> "OrthogonalMatrixWithDeterminantPlusOne"
}
VALIDATION {
V1 = "Distances are preserved."
V2 = "Angles are preserved."
V3 = "Orientation is preserved."
V4 = "Planar centre is fixed."
V5 = "Spatial axis is fixed."
V6 = "Inverse angle is -theta."
V7 = "Same-centre composition adds angles."
V8 = "Rotation matrix is orthogonal with determinant +1."
V9 = "Rotational symmetry uses a nonidentity angle."
}
CONFIDENCE {
BASE_CONFIDENCE = 0.99
ROTATION_DEFINITION = 0.99
PLANAR_ROTATION_REASONING = 0.99
SPATIAL_ROTATION_REASONING = 0.99
INVERSE_REASONING = 0.99
COMPOSITION_REASONING = 0.98
FIXED_POINT_REASONING = 0.99
MATRIX_REASONING = 0.99
SYMMETRY_REASONING = 0.99
POLICY =
"Reduce confidence when centre, axis, angle, direction convention, coordinate basis or handedness are underspecified."
}
AI_CONSUMPTION {
PURPOSES = [
SemanticSearch,
OntologyGrounding,
RotationReasoning,
IsometryReasoning,
CoordinateReasoning,
MatrixReasoning,
VectorReasoning,
CompositionReasoning,
InverseReasoning,
FixedPointReasoning,
SymmetryReasoning,
CongruenceReasoning,
KnowledgeGraphConstruction,
RetrievalAugmentation,
RecursiveInference
]
NORMALISE {
"rotation" -> Rotation WHEN geometry_context
"geometric rotation" -> Rotation
"centre of rotation" -> CentreOfRotation
"axis of rotation" -> AxisOfRotation
"rotation angle" -> RotationAngle
"rotational symmetry" -> RotationalSymmetry
"rotation matrix" -> RotationMatrix
}
INTERPRETATION_ORDER = [
detect_rotation_context,
identify dimension,
identify centre_or_axis,
identify rotation_angle_and_orientation,
identify coordinate_basis_when_matrix_or_coordinates_used,
compute image_inverse_composition_fixed_set_or_symmetry as requested,
verify isometry_orientation_and_matrix constraints,
return semantic output
]
}
EXECUTION_RULES {
E1:
IF query_mentions("rotation")
AND geometry_context
THEN activate(RotationOntology)
E2:
IF planar_point_centre_and_angle_given
THEN apply translate_rotate_translate_back procedure
E3:
IF origin_centred_2D_rotation
THEN use standard 2x2 rotation matrix
E4:
IF inverse_requested
THEN negate angle
E5:
IF composition_requested
AND same_centre_or_axis
THEN add angles
E6:
IF fixed_points_requested
THEN return centre_for_nontrivial_planar_rotation
OR axis_for_nontrivial_spatial_rotation
E7:
IF rotational_symmetry_requested
THEN require nonidentity_angle
AND test object_invariance
E8:
IF 3D_axis_angle_context
THEN use Rodrigues_formula_or_equivalent_rotation_matrix
}
RECURSION {
ENTRY = Rotation
EXPAND(Rotation) -> [
CentreOfRotation,
AxisOfRotation,
RotationAngle,
Orientation,
PlanarRotation,
SpatialRotation,
RotationMatrix,
Image,
Preimage,
InverseRotation,
CompositionOfRotations,
FixedPoint,
FixedAxis,
RotationalSymmetry,
Isometry
]
EXPAND(PlanarRotation) -> [
CentreOfRotation,
SignedAngle,
RotationMatrix,
CoordinateFormula,
FixedPoint
]
EXPAND(SpatialRotation) -> [
AxisOfRotation,
UnitAxisVector,
AxisAngleRepresentation,
RodriguesFormula,
RotationMatrix,
FixedAxis
]
EXPAND(RotationalSymmetry) -> [
OrderOfRotation,
FundamentalAngle,
SymmetryGroup,
RegularPolygonSymmetry,
SolidRotationalSymmetry
]
STOP_CONDITION =
"Stop when the rotation's centre or axis, angle, image, inverse, composition, fixed set, matrix representation or symmetry property is sufficiently resolved."
}
ROUTING {
PARENT_ONTOLOGY = "Transformational Geometry"
IMMEDIATE_CONTEXTS = [
"Transformation Ontology 2",
"Translation Ontology",
"Vector Geometry Ontology",
"Linear Transformation Ontology"
]
RELATED_ONTOLOGIES = [
"Transformational Geometry",
"Transformation Ontology 2",
"Translation Ontology",
"Reflection Ontology",
"Coordinate Geometry Ontology",
"Cartesian Coordinate Ontology",
"Vector Geometry Ontology",
"Linear Transformation Ontology",
"Affine Transformation Ontology",
"Matrix Ontology",
"Automorphism Ontology"
]
ROUTE_RULES = [
"Rotation -> Transformation Ontology 2 for general mapping semantics",
"Rotation -> Vector Geometry for axis and direction reasoning",
"Rotation -> Coordinate Geometry for coordinate rules",
"Rotation -> Linear Transformation for origin-centred rotations",
"Rotation -> Affine Transformation for rotations about nonorigin centres",
"Rotation -> Matrix for computational representation",
"Rotation -> Automorphism when acting as a structure-preserving self-map",
"Rotation -> Reflection for composition comparisons in isometry groups"
]
}
UPDATE_MODEL {
MODE = "append-compatible semantic versioning"
MAJOR = "ontology-breaking conceptual change"
MINOR = "new compatible rotation representations, invariants or reasoning pathways"
PATCH = "clarification, metadata or formatting correction"
RULES = [
"Preserve distance-preserving rotation semantics.",
"Preserve centre-or-axis fixed-set semantics.",
"Preserve orientation preservation.",
"Preserve inverse-by-angle-negation relation.",
"Preserve same-centre composition-by-angle-addition.",
"Preserve orthogonal determinant-plus-one matrix semantics.",
"Preserve machine-readable rotation semantics."
]
}
OUTPUT {
CANONICAL_DEFINITION =
"A rotation is an isometry that turns every point through a fixed angle about a specified centre or axis."
PLANAR_FORM_SUMMARY =
"(x,y)->(x cos(theta)-y sin(theta), x sin(theta)+y cos(theta)) for origin-centred rotation."
INVERSE_SUMMARY =
"R_theta^-1=R_-theta"
COMPOSITION_SUMMARY =
"For rotations about the same centre, R_alpha∘R_beta=R_(alpha+beta)."
FIXED_POINT_SUMMARY =
"A nontrivial planar rotation fixes exactly its centre."
FIXED_AXIS_SUMMARY =
"A nontrivial three-dimensional axis rotation fixes every point on the axis."
MATRIX_SUMMARY =
"Rotation matrices satisfy R^T R=I and det(R)=1."
INVARIANT_SUMMARY =
"Rotations preserve distance, angle, orientation, collinearity, parallelism, area and volume."
}
FLOW {
INPUT
-> detect_rotation_context
-> identify planar_or_spatial_dimension
-> identify centre_or_axis
-> identify rotation_angle_orientation_and_units
-> identify coordinate_or_matrix_representation_when_relevant
-> compute image_inverse_composition_fixed_set_or_symmetry
-> verify distance_angle_orientation_and_orthogonality invariants
-> route to transformation vector coordinate linear affine matrix or symmetry ontology
-> recursively_expand_required_dependencies
-> verify_result
-> assign_confidence
-> produce_semantic_output
-> END
}
SEMANTIC_SUMMARY {
"The Rotation Ontology defines the orientation-preserving isometry that turns points through a fixed angle about a centre in the plane or an axis in three-dimensional space. It supports coordinate and matrix representations, images and inverses, fixed-point and fixed-axis reasoning, same-centre composition, rotational symmetry and links to vector, linear and affine transformation geometry."
}
FLOW_HASH {
METHOD = "semantic-content-identity"
ID = "KIRETH-MATH-GEOMETRY-ROTATION-ONTOLOGY-V1"
}
}
END_FLOW