Lesson 2: Rotation As Addition

A rotation rot(n,k) moves a node by adding a stride k and reducing back into C_n.

Lesson Goal

Learn why motion on a finite circle is modular addition. After this lesson, you should be able to combine two rotations into one rotation by adding their strides.

The Idea

Lesson 1 gave us a finite address space. Now we let a node move. Starting from node x, a stride k sends the node to x + k, then the result is reduced modulo n.

Definition In Words

rot(n,k)(x) means “start at x, add k, and reduce the result in C_n.”

rot(n,k)(x) = (x + k) mod n

Two rotations in a row do not create a new kind of motion. If the first stride is b and the second stride is a, the combined motion lands where a single stride a + b lands.

What This Relearns From Ordinary Math

This lesson is the beginning of algebraic structure. A rotation is a function, and composing rotations is a function-composition law. Later chapters reuse the same habit for quaternions, phase actions, bundles, schedules, and proof-carrying diagrams.

Diagram

The widget compares a two-step route with the one-step route that uses the summed stride.

The widget demonstrates the composition law as an executable reference. It is not a formal proof.

Worked Example

In C_12, start at 8. Move by 5, then by 7.

8 + 5 = 13 -> 1 in C_12
1 + 7 = 8 in C_12

The combined stride is 5 + 7 = 12, and a stride of 12 returns to the same node in C_12.

Common Mistake

Do not treat the drawn path length as the theorem. The law is about address arithmetic modulo n; the picture only helps you see it.

Try It

Use n = 12, start x = 8, stride b = 5, and stride a = 7. Predict the final node before reading the widget output. Then change a and b while keeping a + b fixed; the final node should stay fixed.

Checkpoint

Why should rot(n,a)(rot(n,b)(x)) and rot(n,a+b)(x) land on the same node?

Source Trail

The theorem cards give the exact proof-status trail for identity, composition, and inverse rotation.

Python reference model:

from circle_math.finite import Circle

C = Circle(12)
C.rot(C.rot(8, 5), 7) == C.rot(8, 12)

Paper source: Circle Calculus I