//! strata-ext β tier 4: structural traits.
//!
//! traits for specific algebraic structures that not every field needs.
//!
//! ## Extension
//!
//! tower fields: F_p β Fp2 β Fp3 β Fp4 (nebu extensions), or
//! Fβ β FβΒ² β Fββ΄ β ... β FβΒΉΒ²βΈ (kuro tower). an extension field
//! has a base field, a degree, and a Frobenius endomorphism.
//!
//! ## Batch
//!
//! Montgomery's trick: invert N elements with 1 inversion + 3(N-1)
//! multiplications. nebu and kuro both implement this independently β
//! this trait unifies the interface.
//!
//! ## Blind
//!
//! timing-safe operations for privacy-critical code. genies (CSIDH)
//! requires constant-time arithmetic β no branches on secret data.
//! other algebras may implement this for defense in depth.
use Field;
/// an extension field over a base field.
///
/// E is an extension of B if B β E and E is a vector space over B.
/// the extension degree [E:B] = dim_B(E) β how many base elements
/// represent one extension element.
///
/// examples:
/// - Fp2 over Goldilocks: degree 2, Frobenius is conjugation
/// - FβΒΉΒ²βΈ over FββΆβ΄: degree 2, defined by xΒ² + x + Ξ±
/// - FβΒΉΒ²βΈ over Fβ: degree 128, Frobenius is squaring
/// batch operations via Montgomery's trick.
///
/// invert N elements using 1 inversion + 3(N-1) multiplications.
/// prefix products β invert the product β back-propagate individual inverses.
/// constant-time operations for privacy-critical arithmetic.
///
/// genies (CSIDH) requires this: isogeny walks on secret exponents
/// must not leak timing information. no branches on secret data,
/// no variable-time memory access, no early exits.
extern crate alloc;