Skip to content

core.choptyuk_formula

choptyuk_formula

Unified Choptyuk formula: b-C correction, a-C correction, and combined results.

The Choptyuk formula unifies two spinor corrections on the Klein quartic:

  1. b-C correction (Berry phase, 1st order): Delta_bC = lambda_1(D²_sigma_0) + delta_C^2 / 2

  2. a-C correction (braking, 2nd order): gamma = delta_C^4 / k, k = b_2(K3) = 22 delta_eff = delta_C * gamma = delta_C^5 / 22 (approximately 1/1200)

  3. Unified formula (base): Delta_Ch = lambda_1(D²_sigma_0) + delta_C^2/2 - delta_C^5/22

  4. With higher-order corrections: Delta_Ch = base + C4delta_C^4 + C6delta_C^6 where C4 = 1/8, C6 = 1/2

  5. Choptyuk constant: b_Ch = 1 - cos(2pi/7) = 2sin^2(pi/7) ≈ 0.377

ChoptyukFormula

ChoptyukFormula(lambda_D2_triv: float = 3.338, delta_C: float | None = None, k_struct: int = 22, c4: float = 0.125, c6: float = 0.5, delta_obs: float = 3.443, b_ch_obs: float = 0.377)

Unified Choptyuk formula with b-C and a-C corrections.

All parameters are customizable for hypothesis testing.

Source code in src/core/choptyuk_formula.py
def __init__(self, lambda_D2_triv: float = 3.338,
             delta_C: float | None = None,
             k_struct: int = 22,
             c4: float = 0.125,
             c6: float = 0.5,
             delta_obs: float = 3.443,
             b_ch_obs: float = 0.377):
    self.lambda_D2_triv = lambda_D2_triv
    self.delta_C = delta_C if delta_C is not None else np.pi / 7
    self.k_struct = k_struct
    self.c4 = c4
    self.c6 = c6
    self.delta_obs = delta_obs
    self.b_ch_obs = b_ch_obs
    logger.info(
        f"Choptyuk formula: λ₁(D²_σ₀)={lambda_D2_triv}, δ_C={self.delta_C:.6f}, "
        f"k={k_struct}, C4={c4}, C6={c6}"
    )
imaginary_correction property
imaginary_correction: float

Imaginary correction factor: 1 - δ_C / π².

This factor appears in the imaginary part of the QNM frequency correction on the Klein curve.

einstein_qnm_correction property
einstein_qnm_correction: float

Einstein GR / QNM correction: δ_eff / π².

The effective spinorial braking phase δ_eff = (π/7)⁵/22 divided by π² gives the relative QNM frequency correction.

This is approximately 8.4 × 10⁻⁵, corresponding to a multiplicative correction factor of ≈ 0.999916.

compute
compute() -> ChoptyukResult

Compute all Choptyuk formula values.

Returns:

Type Description
ChoptyukResult

ChoptyukResult with all computed constants and deviations.

Source code in src/core/choptyuk_formula.py
def compute(self) -> ChoptyukResult:
    """Compute all Choptyuk formula values.

    Returns:
        ChoptyukResult with all computed constants and deviations.
    """
    dC = self.delta_C

    # b-C correction (1st order)
    delta_bc = self.lambda_D2_triv + dC**2 / 2
    logger.info(f"Δ_bC = {self.lambda_D2_triv} + {dC**2/2:.6f} = {delta_bc:.6f}")

    # a-C correction (2nd order, braking)
    gamma = dC**4 / self.k_struct
    delta_eff = dC * gamma  # = dC^5 / k
    logger.info(f"γ = δ_C⁴/k = {gamma:.8f}, δ_eff = {delta_eff:.8f}")
    logger.info(f"δ_eff ≈ 1/1200 = {1/1200:.8f}, deviation = {abs(delta_eff - 1/1200)/(1/1200)*100:.3f}%")

    # Base Choptyuk formula
    delta_ch_base = delta_bc - delta_eff
    logger.info(f"Δ_Ch(base) = {delta_ch_base:.6f}")

    # With higher orders
    delta_ch_full = delta_ch_base + self.c4 * dC**4 + self.c6 * dC**6
    logger.info(f"Δ_Ch(full) = {delta_ch_full:.6f}")

    # Choptyuk constant
    b_ch = 1 - np.cos(2 * np.pi / 7)
    logger.info(f"b_Ch = 1 - cos(2π/7) = {b_ch:.6f}")

    # Deviations from observed
    deviation_bc = abs(delta_bc - self.delta_obs) / self.delta_obs * 100
    deviation_ch = abs(delta_ch_base - self.delta_obs) / self.delta_obs * 100
    deviation_full = abs(delta_ch_full - self.delta_obs) / self.delta_obs * 100
    deviation_b_ch = abs(b_ch - self.b_ch_obs) / self.b_ch_obs * 100

    result = ChoptyukResult(
        lambda_D2_triv=self.lambda_D2_triv,
        delta_C=dC,
        delta_bc=delta_bc,
        gamma=gamma,
        delta_eff=delta_eff,
        delta_ch_base=delta_ch_base,
        delta_ch_full=delta_ch_full,
        b_ch=b_ch,
        deviation_bc=deviation_bc,
        deviation_ch=deviation_ch,
        deviation_full=deviation_full,
        deviation_b_ch=deviation_b_ch,
    )
    logger.info(
        f"Deviations: b-C={deviation_bc:.3f}%, Ch(base)={deviation_ch:.3f}%, "
        f"Ch(full)={deviation_full:.3f}%, b_Ch={deviation_b_ch:.3f}%"
    )
    return result
as_dict
as_dict() -> dict

Serialize formula parameters.

Source code in src/core/choptyuk_formula.py
def as_dict(self) -> dict:
    """Serialize formula parameters."""
    return {
        "lambda_D2_triv": self.lambda_D2_triv,
        "delta_C": self.delta_C,
        "k_struct": self.k_struct,
        "c4": self.c4,
        "c6": self.c6,
        "delta_obs": self.delta_obs,
        "b_ch_obs": self.b_ch_obs,
    }
kahler_correction
kahler_correction() -> float

Kähler surface correction for K3 surfaces.

Returns the Berry phase correction on Kähler surfaces

Δλ₁ = δ_C² / 2 - δ_C⁵ / 22

For the K3 surface this equals the difference between the b-C correction and the a-C (braking) correction.

Returns:

Type Description
float

The Kähler correction value.

Source code in src/core/choptyuk_formula.py
def kahler_correction(self) -> float:
    """Kähler surface correction for K3 surfaces.

    Returns the Berry phase correction on Kähler surfaces:
      Δλ₁ = δ_C² / 2 - δ_C⁵ / 22

    For the K3 surface this equals the difference between
    the b-C correction and the a-C (braking) correction.

    Returns:
        The Kähler correction value.
    """
    return self.delta_C**2 / 2 - self.delta_C**5 / self.k_struct
tyukovsky_correction
tyukovsky_correction(delta_0: float) -> float

Tyukovsky equation critical exponent correction.

Corrects the bare critical exponent δ₀ using the spinorial corrections from the Klein curve:

δ_corr = δ₀ + δ_C² / 2 - δ_C⁵ / 22

Parameters:

Name Type Description Default
delta_0 float

Bare critical exponent.

required

Returns:

Type Description
float

Corrected critical exponent.

Source code in src/core/choptyuk_formula.py
def tyukovsky_correction(self, delta_0: float) -> float:
    """Tyukovsky equation critical exponent correction.

    Corrects the bare critical exponent δ₀ using the
    spinorial corrections from the Klein curve:

      δ_corr = δ₀ + δ_C² / 2 - δ_C⁵ / 22

    Args:
        delta_0: Bare critical exponent.

    Returns:
        Corrected critical exponent.
    """
    return delta_0 + self.delta_C**2 / 2 - self.delta_C**5 / self.k_struct