egison-5.0.0: sample/math/geometry/chern-form-of-CP1.egi
--
-- Chern form of CP1 (Fubini-Study connection)
--
declare symbol r, θ
def params := [| r, θ |]
def u := r * e ^ (2 * π * i * θ)
def ū := r * e ^ ((-2) * π * i * θ)
def d (X : MathExpr) : DiffForm MathExpr := !(flip ∂/∂) params X
-- Connection 1-form
def ω := ū * d u / '(1 + u * ū)
assertEqual "ω"
ω
[| r / (1 + r^2), 2 * i * r^2 * π / (1 + r^2) |]
-- Curvature 2-form (manual antisymmetrization)
def ω1 := ω_1
def ω2 := ω_2
def Ω12 := (∂/∂ ω2 r - ∂/∂ ω1 θ) / 2
def Ω := [| [| 0, Ω12 |], [| - Ω12, 0 |] |]
assertEqual "Ω"
Ω
[| [| 0, 2 * i * r * π / (1 + 2 * r^2 + r^4) |]
, [| -2 * i * r * π / (1 + 2 * r^2 + r^4), 0 |] |]
-- First Chern class
def c1Form := Ω / ((-2) * π * i)
assertEqual "c1"
c1Form
[| [| 0, r / ((-1) - 2 * r^2 - r^4) |]
, [| (-1) * r / ((-1) - 2 * r^2 - r^4), 0 |] |]
-- Integration check:
-- ∫∫ c1 dr dθ = ∫₀^∞ ∫₀^¹ (-2r)/(1+r²)² dθ dr
-- = ∫₀^∞ (-2r)/(1+r²)² dr = [1/(1+r²)]₀^∞ = 0 - 1 = -1