-- THIS FILE WAS AUTOMATICALLY GENERATED BY AENEAS -- [curve25519]: external functions. -- This is a template file: rename it to "FunsExternal.lean" and fill the holes. import Aeneas import CurveField.Types open Aeneas Aeneas.Std Result ControlFlow Error set_option linter.dupNamespace false set_option linter.hashCommand false set_option linter.unusedVariables false /- You can set the `maxHeartbeats` value with the `-max-heartbeats` CLI option -/ set_option maxHeartbeats 1000000 /- You can set the `maxRecDepth` value with the `-max-recdepth` CLI option -/ set_option maxRecDepth 2048 open curve25519 /-- [core::fmt::{impl core::fmt::Debug for [T]}::fmt]: Source: '/rustc/library/core/src/fmt/mod.rs', lines 3122:4-3122:50 Name pattern: [core::fmt::{core::fmt::Debug<[@T]>}::fmt] Visibility: public -/ @[rust_fun "core::fmt::{core::fmt::Debug<[@T]>}::fmt"] axiom Slice.Insts.CoreFmtDebug.fmt {T : Type} (DebugInst : core.fmt.Debug T) : Slice T → core.fmt.Formatter → Result ((core.result.Result Unit core.fmt.Error) × core.fmt.Formatter) /-- [core::slice::index::{impl core::slice::index::SliceIndex<[T], [T]> for core::ops::range::RangeFull}::index_mut]: Source: '/rustc/library/core/src/slice/index.rs', lines 660:4-660:51 Name pattern: [core::slice::index::{core::slice::index::SliceIndex}::index_mut] Visibility: public -/ @[rust_fun "core::slice::index::{core::slice::index::SliceIndex}::index_mut"] axiom core.ops.range.RangeFull.Insts.CoreSliceIndexSliceIndexSliceSlice.index_mut {T : Type} : core.ops.range.RangeFull → Slice T → Result ((Slice T) × (Slice T → Slice T)) /-- [core::slice::index::{impl core::slice::index::SliceIndex<[T], [T]> for core::ops::range::RangeFull}::index]: Source: '/rustc/library/core/src/slice/index.rs', lines 655:4-655:39 Name pattern: [core::slice::index::{core::slice::index::SliceIndex}::index] Visibility: public -/ @[rust_fun "core::slice::index::{core::slice::index::SliceIndex}::index"] axiom core.ops.range.RangeFull.Insts.CoreSliceIndexSliceIndexSliceSlice.index {T : Type} : core.ops.range.RangeFull → Slice T → Result (Slice T) /-- [core::slice::index::{impl core::slice::index::SliceIndex<[T], [T]> for core::ops::range::RangeFull}::get_unchecked_mut]: Source: '/rustc/library/core/src/slice/index.rs', lines 650:4-650:66 Name pattern: [core::slice::index::{core::slice::index::SliceIndex}::get_unchecked_mut] Visibility: public -/ @[rust_fun "core::slice::index::{core::slice::index::SliceIndex}::get_unchecked_mut"] axiom core.ops.range.RangeFull.Insts.CoreSliceIndexSliceIndexSliceSlice.get_unchecked_mut {T : Type} : core.ops.range.RangeFull → MutRawPtr (Slice T) → Result (MutRawPtr (Slice T)) /-- [core::slice::index::{impl core::slice::index::SliceIndex<[T], [T]> for core::ops::range::RangeFull}::get_unchecked]: Source: '/rustc/library/core/src/slice/index.rs', lines 645:4-645:66 Name pattern: [core::slice::index::{core::slice::index::SliceIndex}::get_unchecked] Visibility: public -/ @[rust_fun "core::slice::index::{core::slice::index::SliceIndex}::get_unchecked"] axiom core.ops.range.RangeFull.Insts.CoreSliceIndexSliceIndexSliceSlice.get_unchecked {T : Type} : core.ops.range.RangeFull → ConstRawPtr (Slice T) → Result (ConstRawPtr (Slice T)) /-- [core::slice::index::{impl core::slice::index::SliceIndex<[T], [T]> for core::ops::range::RangeFull}::get_mut]: Source: '/rustc/library/core/src/slice/index.rs', lines 640:4-640:57 Name pattern: [core::slice::index::{core::slice::index::SliceIndex}::get_mut] Visibility: public -/ @[rust_fun "core::slice::index::{core::slice::index::SliceIndex}::get_mut"] axiom core.ops.range.RangeFull.Insts.CoreSliceIndexSliceIndexSliceSlice.get_mut {T : Type} : core.ops.range.RangeFull → Slice T → Result ((Option (Slice T)) × (Option (Slice T) → Slice T)) /-- [core::slice::index::{impl core::slice::index::SliceIndex<[T], [T]> for core::ops::range::RangeFull}::get]: Source: '/rustc/library/core/src/slice/index.rs', lines 635:4-635:45 Name pattern: [core::slice::index::{core::slice::index::SliceIndex}::get] Visibility: public -/ @[rust_fun "core::slice::index::{core::slice::index::SliceIndex}::get"] axiom core.ops.range.RangeFull.Insts.CoreSliceIndexSliceIndexSliceSlice.get {T : Type} : core.ops.range.RangeFull → Slice T → Result (Option (Slice T)) /-- [subtle::{impl core::convert::From for bool}::from]: Source: '/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/subtle-2.6.1/src/lib.rs', lines 153:4-153:35 Name pattern: [subtle::{core::convert::From}::from] Visibility: public -/ @[rust_fun "subtle::{core::convert::From}::from"] axiom Bool.Insts.CoreConvertFromChoice.from : subtle.Choice → Result Bool /-- [subtle::{impl core::ops::bit::BitOr for subtle::Choice}::bitor]: Source: '/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/subtle-2.6.1/src/lib.rs', lines 177:4-177:41 Name pattern: [subtle::{core::ops::bit::BitOr}::bitor] Visibility: public -/ @[rust_fun "subtle::{core::ops::bit::BitOr}::bitor"] axiom subtle.Choice.Insts.CoreOpsBitBitOrChoiceChoice.bitor : subtle.Choice → subtle.Choice → Result subtle.Choice /-- [subtle::{impl core::convert::From for subtle::Choice}::from]: Source: '/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/subtle-2.6.1/src/lib.rs', lines 238:4-238:32 Name pattern: [subtle::{core::convert::From}::from] Visibility: public -/ @[rust_fun "subtle::{core::convert::From}::from"] axiom subtle.Choice.Insts.CoreConvertFromU8.from : Std.U8 → Result subtle.Choice /-- [subtle::{impl subtle::ConstantTimeEq for [T]}::ct_eq]: Source: '/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/subtle-2.6.1/src/lib.rs', lines 313:4-313:41 Name pattern: [subtle::{subtle::ConstantTimeEq<[@T]>}::ct_eq] Visibility: public -/ @[rust_fun "subtle::{subtle::ConstantTimeEq<[@T]>}::ct_eq"] axiom Slice.Insts.SubtleConstantTimeEq.ct_eq {T : Type} (ConstantTimeEqInst : subtle.ConstantTimeEq T) : Slice T → Slice T → Result subtle.Choice /-- [subtle::{impl subtle::ConstantTimeEq for u8}::ct_eq]: Source: '/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/subtle-2.6.1/src/lib.rs', lines 348:12-348:51 Name pattern: [subtle::{subtle::ConstantTimeEq}::ct_eq] Visibility: public -/ @[rust_fun "subtle::{subtle::ConstantTimeEq}::ct_eq"] axiom U8.Insts.SubtleConstantTimeEq.ct_eq : Std.U8 → Std.U8 → Result subtle.Choice /-- [subtle::ConditionallySelectable::conditional_assign]: Source: '/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/subtle-2.6.1/src/lib.rs', lines 442:4-442:66 Name pattern: [subtle::ConditionallySelectable::conditional_assign] Visibility: public -/ @[rust_fun "subtle::ConditionallySelectable::conditional_assign"] axiom subtle.ConditionallySelectable.conditional_assign.default {Self : Type} (ConditionallySelectableInst : subtle.ConditionallySelectable Self) : Self → Self → subtle.Choice → Result Self /-- [subtle::ConditionallySelectable::conditional_swap]: Source: '/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/subtle-2.6.1/src/lib.rs', lines 469:4-469:67 Name pattern: [subtle::ConditionallySelectable::conditional_swap] Visibility: public -/ @[rust_fun "subtle::ConditionallySelectable::conditional_swap"] axiom subtle.ConditionallySelectable.conditional_swap.default {Self : Type} (ConditionallySelectableInst : subtle.ConditionallySelectable Self) : Self → Self → subtle.Choice → Result (Self × Self) /-- [subtle::{impl subtle::ConditionallySelectable for u64}::conditional_select]: Source: '/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/subtle-2.6.1/src/lib.rs', lines 513:12-513:77 Name pattern: [subtle::{subtle::ConditionallySelectable}::conditional_select] Visibility: public -/ @[rust_fun "subtle::{subtle::ConditionallySelectable}::conditional_select"] axiom U64.Insts.SubtleConditionallySelectable.conditional_select : Std.U64 → Std.U64 → subtle.Choice → Result Std.U64 /-- [subtle::{impl subtle::ConditionallySelectable for u64}::conditional_assign]: Source: '/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/subtle-2.6.1/src/lib.rs', lines 521:12-521:74 Name pattern: [subtle::{subtle::ConditionallySelectable}::conditional_assign] Visibility: public -/ @[rust_fun "subtle::{subtle::ConditionallySelectable}::conditional_assign"] axiom U64.Insts.SubtleConditionallySelectable.conditional_assign : Std.U64 → Std.U64 → subtle.Choice → Result Std.U64 /-- [subtle::{impl subtle::ConditionallySelectable for u64}::conditional_swap]: Source: '/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/subtle-2.6.1/src/lib.rs', lines 529:12-529:75 Name pattern: [subtle::{subtle::ConditionallySelectable}::conditional_swap] Visibility: public -/ @[rust_fun "subtle::{subtle::ConditionallySelectable}::conditional_swap"] axiom U64.Insts.SubtleConditionallySelectable.conditional_swap : Std.U64 → Std.U64 → subtle.Choice → Result (Std.U64 × Std.U64) /-- [curve25519::field::{curve25519::backend::serial::u64::field::FieldElement51}::internal_invert_batch]: Source: 'curve25519/solana-ed25519/src/field.rs', lines 216:4-270:5 -/ axiom field.FieldElement51.internal_invert_batch : Slice backend.serial.u64.field.FieldElement51 → Slice backend.serial.u64.field.FieldElement51 → Result ((Slice backend.serial.u64.field.FieldElement51) × (Slice backend.serial.u64.field.FieldElement51))