mirror of
https://github.com/saymrwulf/fips205-slhdsa-verified.git
synced 2026-09-06 20:20:50 +00:00
104 lines
4.5 KiB
Text
104 lines
4.5 KiB
Text
|
|
-- THIS FILE WAS AUTOMATICALLY GENERATED BY AENEAS
|
|||
|
|
-- [fips205]: external functions.
|
|||
|
|
-- This is a template file: rename it to "FunsExternal.lean" and fill the holes.
|
|||
|
|
import Aeneas
|
|||
|
|
import SlhVerify.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 fips205
|
|||
|
|
|
|||
|
|
/-- [core::iter::range::{impl core::iter::range::Step for u32}::backward_checked]:
|
|||
|
|
Source: '/rustc/library/core/src/iter/range.rs', lines 290:16-290:74
|
|||
|
|
Name pattern: [core::iter::range::{core::iter::range::Step<u32>}::backward_checked]
|
|||
|
|
Visibility: public -/
|
|||
|
|
@[rust_fun
|
|||
|
|
"core::iter::range::{core::iter::range::Step<u32>}::backward_checked"]
|
|||
|
|
axiom U32.Insts.CoreIterRangeStep.backward_checked
|
|||
|
|
: Std.U32 → Std.Usize → Result (Option Std.U32)
|
|||
|
|
|
|||
|
|
/-- [core::iter::range::{impl core::iter::range::Step for u32}::forward_checked]:
|
|||
|
|
Source: '/rustc/library/core/src/iter/range.rs', lines 282:16-282:73
|
|||
|
|
Name pattern: [core::iter::range::{core::iter::range::Step<u32>}::forward_checked]
|
|||
|
|
Visibility: public -/
|
|||
|
|
@[rust_fun
|
|||
|
|
"core::iter::range::{core::iter::range::Step<u32>}::forward_checked"]
|
|||
|
|
axiom U32.Insts.CoreIterRangeStep.forward_checked
|
|||
|
|
: Std.U32 → Std.Usize → Result (Option Std.U32)
|
|||
|
|
|
|||
|
|
/-- [core::iter::range::{impl core::iter::range::Step for u32}::steps_between]:
|
|||
|
|
Source: '/rustc/library/core/src/iter/range.rs', lines 271:16-271:84
|
|||
|
|
Name pattern: [core::iter::range::{core::iter::range::Step<u32>}::steps_between]
|
|||
|
|
Visibility: public -/
|
|||
|
|
@[rust_fun "core::iter::range::{core::iter::range::Step<u32>}::steps_between"]
|
|||
|
|
axiom U32.Insts.CoreIterRangeStep.steps_between
|
|||
|
|
: Std.U32 → Std.U32 → Result (Std.Usize × (Option Std.Usize))
|
|||
|
|
|
|||
|
|
/-- [zeroize::{impl zeroize::Zeroize for Z}::zeroize]:
|
|||
|
|
Source: '/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zeroize-1.9.0/src/lib.rs', lines 274:4-274:25
|
|||
|
|
Name pattern: [zeroize::{zeroize::Zeroize<@Z>}::zeroize]
|
|||
|
|
Visibility: public -/
|
|||
|
|
@[rust_fun "zeroize::{zeroize::Zeroize<@Z>}::zeroize"]
|
|||
|
|
axiom zeroize.Zeroize.Blanket.zeroize
|
|||
|
|
{Z : Type} (DefaultIsZeroesInst : zeroize.DefaultIsZeroes Z) : Z → Result Z
|
|||
|
|
|
|||
|
|
/-- [zeroize::{impl zeroize::Zeroize for [Z; N]}::zeroize]:
|
|||
|
|
Source: '/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zeroize-1.9.0/src/lib.rs', lines 346:4-346:25
|
|||
|
|
Name pattern: [zeroize::{zeroize::Zeroize<[@Z; @N]>}::zeroize]
|
|||
|
|
Visibility: public -/
|
|||
|
|
@[rust_fun "zeroize::{zeroize::Zeroize<[@Z; @N]>}::zeroize"]
|
|||
|
|
axiom Array.Insts.ZeroizeZeroize.zeroize
|
|||
|
|
{Z : Type} {N : Std.Usize} (ZeroizeInst : zeroize.Zeroize Z) :
|
|||
|
|
Array Z N → Result (Array Z N)
|
|||
|
|
|
|||
|
|
/-- [zeroize::__internal::{impl zeroize::__internal::AssertZeroize for T}::zeroize_or_on_drop]:
|
|||
|
|
Source: '/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zeroize-1.9.0/src/lib.rs', lines 846:8-846:40
|
|||
|
|
Name pattern: [zeroize::__internal::{zeroize::__internal::AssertZeroize<@T>}::zeroize_or_on_drop]
|
|||
|
|
Visibility: public -/
|
|||
|
|
@[rust_fun
|
|||
|
|
"zeroize::__internal::{zeroize::__internal::AssertZeroize<@T>}::zeroize_or_on_drop"]
|
|||
|
|
axiom zeroize.__internal.AssertZeroize.Blanket.zeroize_or_on_drop
|
|||
|
|
{T : Type} (ZeroizeInst : zeroize.Zeroize T) : T → Result T
|
|||
|
|
|
|||
|
|
/-- [fips205::verify_mono::oracle::f]:
|
|||
|
|
Source: 'src/verify_mono.rs', lines 49:4-51:5 -/
|
|||
|
|
axiom verify_mono.oracle.f
|
|||
|
|
(N : Std.Usize) :
|
|||
|
|
Slice Std.U8 → types.Adrs → Slice Std.U8 → Result (Array Std.U8 N)
|
|||
|
|
|
|||
|
|
/-- [fips205::verify_mono::oracle::h]:
|
|||
|
|
Source: 'src/verify_mono.rs', lines 54:4-56:5 -/
|
|||
|
|
axiom verify_mono.oracle.h
|
|||
|
|
(N : Std.Usize) :
|
|||
|
|
Slice Std.U8 → types.Adrs → Slice Std.U8 → Slice Std.U8 → Result
|
|||
|
|
(Array Std.U8 N)
|
|||
|
|
|
|||
|
|
/-- [fips205::verify_mono::oracle::t_l]:
|
|||
|
|
Source: 'src/verify_mono.rs', lines 60:4-64:5 -/
|
|||
|
|
axiom verify_mono.oracle.t_l
|
|||
|
|
{X : Std.Usize} {N : Std.Usize} :
|
|||
|
|
Slice Std.U8 → types.Adrs → Array (Array Std.U8 N) X → Result (Array
|
|||
|
|
Std.U8 N)
|
|||
|
|
|
|||
|
|
/-- [fips205::verify_mono::oracle::t_len]:
|
|||
|
|
Source: 'src/verify_mono.rs', lines 69:4-73:5 -/
|
|||
|
|
axiom verify_mono.oracle.t_len
|
|||
|
|
{X : Std.Usize} {N : Std.Usize} :
|
|||
|
|
Slice Std.U8 → types.Adrs → Array (Array Std.U8 N) X → Result (Array
|
|||
|
|
Std.U8 N)
|
|||
|
|
|
|||
|
|
/-- [fips205::verify_mono::oracle::h_msg]:
|
|||
|
|
Source: 'src/verify_mono.rs', lines 81:4-85:5 -/
|
|||
|
|
axiom verify_mono.oracle.h_msg
|
|||
|
|
(M : Std.Usize) :
|
|||
|
|
Slice Std.U8 → Slice Std.U8 → Slice Std.U8 → Slice Std.U8 → Result
|
|||
|
|
(Array Std.U8 M)
|
|||
|
|
|