pub struct KaniGlue {
pub e1: Curve2,
pub e2: Curve2,
pub degree: u64,
pub torsion_order: u64,
pub basis: (Point2, Point2),
pub images: (Point2, Point2),
}Expand description
A Kani glue kernel: the graph {(T, φ(T))} of an isogeny on the N-torsion, the candidate kernel of
an (N,N)-isogeny of the abelian surface E × E'.
Fields§
§e1: Curve2§e2: Curve2§degree: u64§torsion_order: u64§basis: (Point2, Point2)§images: (Point2, Point2)Implementations§
Source§impl KaniGlue
impl KaniGlue
Sourcepub fn glue_pairing(&self) -> Option<Fp2>
pub fn glue_pairing(&self) -> Option<Fp2>
The product Weil pairing on the graph generators (P,φP) and (Q,φQ).
Sourcepub fn verify(&self) -> bool
pub fn verify(&self) -> bool
Re-check Kani’s gluing relation: the graph pairing equals e_N(P,Q)^{1+deg φ}. This is what makes
the isotropy of the glue kernel decidable, and it re-derives the pairings from scratch.
Sourcepub fn is_lagrangian(&self) -> bool
pub fn is_lagrangian(&self) -> bool
Whether the glue kernel is Lagrangian (isotropic) — i.e. an (N,N)-isogeny of E × E' exists
with this kernel. True exactly when the graph pairing is trivial, i.e. deg φ ≡ −1 (mod N).
Trait Implementations§
Auto Trait Implementations§
impl Freeze for KaniGlue
impl RefUnwindSafe for KaniGlue
impl Send for KaniGlue
impl Sync for KaniGlue
impl Unpin for KaniGlue
impl UnsafeUnpin for KaniGlue
impl UnwindSafe for KaniGlue
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more