Angle analysis and winding number invariance #
Defines angle functions for fdPolygonRadialCircle and circleParamCW, analyzes the branch cut crossing on segment 4, constructs a lifted angle that tracks the full -2π rotation, and proves center-translation invariance of the winding number.
angleOnCircle,fdPolygonRadialCircleAngle— angle of radial projectiontL— time when vector crosses negative real axis on seg4fdPolygonRadialCircleAngleLifted— lifted angle accounting for branch cutrefP₀— reference point on imaginary axiswinding_fdPolygon_center_invariant— winding number preserved under center translation
The angle of a point on the unit circle around p.
Equations
- RectHomotopyProof.angleOnCircle p z = (z - p).arg
Instances For
The angle function for fdPolygonRadialCircle.
Equations
Instances For
Lifted angle function that accounts for branch cut crossing.
Equations
Instances For
fdPolygon is periodic with period 5.
The raw angle at 5 equals the raw angle at 0.
theorem
RectHomotopyProof.fdPolygonRadialCircle_wrapCount
(p : ℂ)
(hp_norm : ‖p‖ > 1)
(hp_re : |p.re| < 1 / 2)
(hp_im_pos : 0 < p.im)
(hp_im : p.im < HHeight)
:
∃ (θ₀ : ℝ), fdPolygonRadialCircleAngleLifted p 0 = θ₀ ∧ fdPolygonRadialCircleAngleLifted p 5 = θ₀ - 2 * Real.pi
Wrap count for the lifted angle function.
circleParamCW also makes exactly one clockwise loop.
Reference Y-coordinate on imaginary axis.
Equations
Instances For
The reference point p₀ = I * Y₀ on the imaginary axis.
Instances For
theorem
RectHomotopyProof.winding_fdPolygon_center_invariant
(p₁ p₂ : ℂ)
(_hp₁_norm : ‖p₁‖ > 1)
(_hp₁_re : |p₁.re| < 1 / 2)
(_hp₁_im : p₁.im < HHeight)
(_hp₂_norm : ‖p₂‖ > 1)
(_hp₂_re : |p₂.re| < 1 / 2)
(_hp₂_im : p₂.im < HHeight)
(havoid : ∀ s ∈ Set.Icc 0 1, ∀ t ∈ Set.Icc 0 5, fdPolygon t ≠ (1 - ↑s) * p₁ + ↑s * p₂)
:
Center-translation homotopy invariance of winding number.