proofs.rs

Report #14 — num-conv 0.2.2 integer conversion correctness

Aeneas be86ab0f1989d04944292b345b24c435be3ad10a

5 verified claims · 0 findings

Recorded by the author; proofs.rs has not re-run it. How to read a report

MasWag · 2026-11-03 11:01 UTC

Revision v1

Overview

For every input of each source-declared concrete integer pair, the five public
conversion methods execute successfully and satisfy these contracts. Widen and deprecated extend preserve the integer value. Truncate keeps
the destination-width low bits, interpreted as signed for signed destinations.
Saturating truncate clamps to the destination range; checked truncate returns
Some of the unchanged value exactly when it fits, and None otherwise. Each
contract requires successful execution for every value of its source type.

Findings (0)

No findings reported.

APIs (5)

Trait implementations

impl num_conv::Extend for T

pub fn extend<U>(self: Self) -> U where T: ExtendTarget<U>

impl num_conv::Truncate for T

pub fn checked_truncate<U>(self: Self) -> Option<U> where T: TruncateTarget<U>
pub fn saturating_truncate<U>(self: Self) -> U where T: TruncateTarget<U>
pub fn truncate<U>(self: Self) -> U where T: TruncateTarget<U>

impl num_conv::Widen for T

pub fn widen<U>(self: Self) -> U where T: WidenTarget<U>

Evidence

https://github.com/MasWag/crate-proofs/tree/2397fd7bc9744b8d6cdd350e1dd714d92f8aef2c

Reproduce

Toolchain source metadata: not recorded.

Run locally

git clone -- https://github.com/MasWag/crate-proofs report-14-source-1
git -C report-14-source-1 checkout --detach 2397fd7bc9744b8d6cdd350e1dd714d92f8aef2c
git -C report-14-source-1 submodule update --init --recursive --checkout
cd report-14-source-1/num-conv/0.2.2/.work/build/default/aarch64-apple-darwin/proofs

lake build +Contracts

printf '%s' 'import Aeneas
import Contracts
set_option pp.all true
set_option pp.universes true
set_option pp.explicit true
set_option pp.fullNames true
set_option pp.notation false
set_option pp.proofs true
set_option pp.deepTerms true
set_option pp.maxSteps 10000000
-- proofs.rs adapter for Lean 4.35.0 / Aeneas be86ab0f.
-- Uses Lean'\''s environment, Meta telescope and pretty-printer, never source parsing.
open Lean Meta Elab Command
namespace ProofsProbe
meta def moduleOf (env : Environment) (n : Name) : String :=
  match env.getModuleIdxFor? n with
  | some idx => env.header.moduleNames[idx.toNat]!.toString
  | none => ""
meta def pretty (e : Expr) : MetaM String := do
  let s := (← ppExpr e).pretty
  if s.contains '\''⋯'\'' then
    throwError "Lean display contains an omission marker (or literal ⋯); refusing an incomplete proposition"
  if s.utf8ByteSize > 1000000 then throwError "Proposition exceeds 1,000,000-byte recording limit"
  return s
-- The full statement stays explicit; the inspection view uses Lean notation.
meta def readable (e : Expr) : MetaM String :=
  withOptions (fun o =>
    let o := o.setBool `pp.all false
    let o := o.setBool `pp.explicit false
    let o := o.setBool `pp.universes false
    o.setBool `pp.notation true) (pretty e)
-- Only a constant'\''s own tag grants a link; names in plain text are never guessed.
partial def segments (code : Widget.CodeWithInfos) (ref : Option Name := none) : Array Json :=
  match code with
  | .text text => #[Json.mkObj (([("text", toJson text)]) ++
      (ref.toList.map fun n => ("ref", toJson n.toString)))]
  | .append parts => parts.foldl (fun acc part => acc ++ segments part ref) #[]
  | .tag info part =>
    let ref := match info.info.val.info with
      | .ofTermInfo ti => ti.expr.constName?
      | _ => none
    segments part ref
meta def readableFields (key : String) (e : Expr) : MetaM (List (String × Json)) := do
  let text ← readable e
  let base := [(key, toJson text)]
  try
    let code ← withOptions (fun o =>
      let o := o.setBool `pp.all false
      let o := o.setBool `pp.explicit false
      let o := o.setBool `pp.universes false
      let o := o.setBool `pp.notation true
      o.setBool `pp.tagAppFns true) (Widget.ppExprTagged e)
    let parts := segments code
    let joined := String.join (parts.toList.map fun j =>
      (j.getObjValAs? String "text").toOption.getD "")
    if joined != text || parts.size > 10000 || joined.utf8ByteSize > 1000000 then
      return base
    return base ++ [(key ++ "_segments", toJson parts)]
  catch _ => return base
meta def inspect (n : Name) (ty : Expr) (manual : Bool) : MetaM (Option Json) := do
  let env ← getEnv
  forallTelescope ty fun xs conclusion => do
    let programExpr ← try
      let normalized ← Aeneas.Utils.normalizeLetBindings conclusion
      let (expr, _) ← Aeneas.Step.getStepSpecFunArgsExpr normalized
      pure (some expr)
    catch _ => pure none
    if programExpr.isNone && !manual then return none
    let full ← pretty ty
    let program ← match programExpr with
      | some expr => pure (toJson (← readable expr))
      | none => pure Json.null
    let head := toJson (programExpr.bind (·.getAppFn.constName?) |>.map Name.toString)
    let mut binders := #[]
    for x in xs do
      let d ← x.fvarId!.getDecl
      let prop ← isProp d.type
      binders := binders.push (Json.mkObj ((← readableFields "type" d.type) ++ [
        ("name", toJson d.userName.toString),
        ("kind", toJson (if d.binderInfo.isInstImplicit then "instance" else if prop then "hypothesis" else "variable")),
        ("binder", toJson (if d.binderInfo.isInstImplicit then "instance" else if d.binderInfo.isExplicit then "explicit" else "implicit"))]))
    if binders.size > 1000 then throwError "More than 1000 binders"
    let some ranges ← findDeclarationRanges? n | throwError "Missing theorem source range: {n}"
    let axioms ← Lean.collectAxioms n
    let constants := ty.getUsedConstants
    let mut definitions := #[]
    for nm in constants.extract 0 100 do
      let ranges ← findDeclarationRanges? nm
      definitions := definitions.push (Json.mkObj [
        ("name", toJson nm.toString), ("module", toJson (moduleOf env nm)),
        ("source", match ranges with
          | some r => Json.mkObj [("first_line", toJson r.range.pos.line), ("last_line", toJson r.range.endPos.line)]
          | none => Json.null)])
    return some (Json.mkObj ((← readableFields "conclusion" conclusion) ++ [
      ("version", toJson (1 : Nat)), ("theorem", toJson n.toString),
      ("module", toJson (moduleOf env n)), ("statement", toJson full),
      ("binders", toJson binders),
      ("program", program), ("program_head", head),
      ("axioms", toJson (axioms.map Name.toString)),
      ("first_line", toJson ranges.range.pos.line), ("last_line", toJson ranges.range.endPos.line),
      ("definitions", toJson definitions), ("definitions_truncated", toJson (decide (constants.size > 100))),
      ("translation_rerun", toJson false)]))
end ProofsProbe

run_cmd do
  let manual : Array Name := #[`NumConvProof.widen_all_spec, `NumConvProof.extend_all_spec, `NumConvProof.truncate_all_spec, `NumConvProof.saturating_truncate_all_spec, `NumConvProof.checked_truncate_all_spec]
  let localModules : Array String := #[]
  let roots : Array Name := #[]
  let env ← getEnv
  let mut closure : Array Name := #[]
  let mut pending := roots.toList
  while !pending.isEmpty do
    let m := pending.head!
    pending := pending.tail!
    if !closure.contains m then
      closure := closure.push m
      if let some idx := env.header.moduleNames.findIdx? (· == m) then
        pending := (env.header.moduleData[idx]!.imports.toList.map (·.module)) ++ pending
  let scope := closure.filter (fun m => localModules.contains m.toString)
  for n in manual do
    match env.find? n with
    | some (.thmInfo _) => pure ()
    | _ => throwError "Expected a theorem: {n}"
  for (n, ci) in env.constants.toList do
    let explicit := manual.contains n
    if explicit || scope.contains (ProofsProbe.moduleOf env n).toName then
      if let .thmInfo th := ci then
        let result ← liftTermElabM <| ProofsProbe.inspect n th.type explicit
        if let some value := result then
          liftIO <| IO.println ("proofs.rs:formal:" ++ value.compress)

run_cmd do
  let theorem_name := `NumConvProof.extend_all_spec
  match (← getEnv).find? theorem_name with
  | some (.thmInfo _) => pure ()
  | _ => throwError "Expected a theorem: NumConvProof.extend_all_spec"
  let axioms ← Lean.collectAxioms theorem_name
  for ax in axioms do
    unless [``propext, ``Classical.choice, ``Quot.sound].contains ax do
      throwError "Unapproved axiom in NumConvProof.extend_all_spec: {ax}"
  liftIO <| IO.println "proofs.rs:checked:NumConvProof.extend_all_spec"

run_cmd do
  let theorem_name := `NumConvProof.checked_truncate_all_spec
  match (← getEnv).find? theorem_name with
  | some (.thmInfo _) => pure ()
  | _ => throwError "Expected a theorem: NumConvProof.checked_truncate_all_spec"
  let axioms ← Lean.collectAxioms theorem_name
  for ax in axioms do
    unless [``propext, ``Classical.choice, ``Quot.sound].contains ax do
      throwError "Unapproved axiom in NumConvProof.checked_truncate_all_spec: {ax}"
  liftIO <| IO.println "proofs.rs:checked:NumConvProof.checked_truncate_all_spec"

run_cmd do
  let theorem_name := `NumConvProof.saturating_truncate_all_spec
  match (← getEnv).find? theorem_name with
  | some (.thmInfo _) => pure ()
  | _ => throwError "Expected a theorem: NumConvProof.saturating_truncate_all_spec"
  let axioms ← Lean.collectAxioms theorem_name
  for ax in axioms do
    unless [``propext, ``Classical.choice, ``Quot.sound].contains ax do
      throwError "Unapproved axiom in NumConvProof.saturating_truncate_all_spec: {ax}"
  liftIO <| IO.println "proofs.rs:checked:NumConvProof.saturating_truncate_all_spec"

run_cmd do
  let theorem_name := `NumConvProof.truncate_all_spec
  match (← getEnv).find? theorem_name with
  | some (.thmInfo _) => pure ()
  | _ => throwError "Expected a theorem: NumConvProof.truncate_all_spec"
  let axioms ← Lean.collectAxioms theorem_name
  for ax in axioms do
    unless [``propext, ``Classical.choice, ``Quot.sound].contains ax do
      throwError "Unapproved axiom in NumConvProof.truncate_all_spec: {ax}"
  liftIO <| IO.println "proofs.rs:checked:NumConvProof.truncate_all_spec"

run_cmd do
  let theorem_name := `NumConvProof.widen_all_spec
  match (← getEnv).find? theorem_name with
  | some (.thmInfo _) => pure ()
  | _ => throwError "Expected a theorem: NumConvProof.widen_all_spec"
  let axioms ← Lean.collectAxioms theorem_name
  for ax in axioms do
    unless [``propext, ``Classical.choice, ``Quot.sound].contains ax do
      throwError "Unapproved axiom in NumConvProof.widen_all_spec: {ax}"
  liftIO <| IO.println "proofs.rs:checked:NumConvProof.widen_all_spec"
' | lake env lean --stdin

Checks out the recorded source commit from GitHub. Install the report’s tool version before running.

Source on GitHub · SARIF with logs (.json)

Recorded run

Completed · 5 checks passed · 0 failed

2026-11-03T10:53:49.527752+00:00 · 116.8 seconds · Exit code 0

Recorded on the author’s machine.

CheckResultClaim
Lean checked theorem NumConvProof.extend_all_spec; axioms limited to propext, Classical.choice, Quot.sound
NumConvProof.extend_all_spec
PassedClaim #2
Lean checked theorem NumConvProof.checked_truncate_all_spec; axioms limited to propext, Classical.choice, Quot.sound
NumConvProof.checked_truncate_all_spec
PassedClaim #5
Lean checked theorem NumConvProof.saturating_truncate_all_spec; axioms limited to propext, Classical.choice, Quot.sound
NumConvProof.saturating_truncate_all_spec
PassedClaim #4
Lean checked theorem NumConvProof.truncate_all_spec; axioms limited to propext, Classical.choice, Quot.sound
NumConvProof.truncate_all_spec
PassedClaim #3
Lean checked theorem NumConvProof.widen_all_spec; axioms limited to propext, Classical.choice, Quot.sound
NumConvProof.widen_all_spec
PassedClaim #1
Execution details
Started
2026-11-03T10:53:49.527752+00:00
Finished
2026-11-03T10:55:46.373132+00:00
Platform
macos aarch64
Rust compiler
rustc 1.91.1 (ed61e7d7e 2025-11-07) binary: rustc commit-hash: ed61e7d7e242494fb7057f2657300d9e77bb4fcb commit-date: 2025-11-07 host: aarch64-apple-darwin release: 1.91.1 LLVM version: 21.1.2
Working directory
num-conv/0.2.2/.work/build/default/aarch64-apple-darwin/proofs
Environment overrides
None recorded
Git repository
https://github.com/MasWag/crate-proofs
Git commit
2397fd7bc9744b8d6cdd350e1dd714d92f8aef2c
Diagnostics & logs
=== stdout ===
✔ [1796/1801] Built Specs (3.3s)
✔ [1797/1801] Built NumConvVerificationApi (18s)
✔ [1798/1801] Built ScalarLemmas (15s)
✔ [1799/1801] Built Operations (15s)
⚠ [1800/1801] Built Proofs (7.3s)
warning: Proofs.lean:28:161: This simp argument is unused:
  IScalarTy.numBits

Hint: Omit it from the simp argument list.
  [apply] simp_all [UScalarTy.numBits]

Note: This linter can be disabled with `set_option linter.unusedSimpArgs false`
warning: Proofs.lean:34:161: This simp argument is unused:
  IScalarTy.numBits

Hint: Omit it from the simp argument list.
  [apply] simp_all [UScalarTy.numBits]

Note: This linter can be disabled with `set_option linter.unusedSimpArgs false`
warning: Proofs.lean:46:161: This simp argument is unused:
  IScalarTy.numBits

Hint: Omit it from the simp argument list.
  [apply] simp_all [UScalarTy.numBits]

Note: This linter can be disabled with `set_option linter.unusedSimpArgs false`
warning: Proofs.lean:52:161: This simp argument is unused:
  IScalarTy.numBits

Hint: Omit it from the simp argument list.
  [apply] simp_all [UScalarTy.numBits]

Note: This linter can be disabled with `set_option linter.unusedSimpArgs false`
warning: Proofs.lean:64:161: This simp argument is unused:
  IScalarTy.numBits

Hint: Omit it from the simp argument list.
  [apply] simp_all [UScalarTy.numBits]

Note: This linter can be disabled with `set_option linter.unusedSimpArgs false`
warning: Proofs.lean:70:161: This simp argument is unused:
  IScalarTy.numBits

Hint: Omit it from the simp argument list.
  [apply] simp_all [UScalarTy.numBits]

Note: This linter can be disabled with `set_option linter.unusedSimpArgs false`
warning: Proofs.lean:82:162: This simp argument is unused:
  IScalarTy.numBits

Hint: Omit it from the simp argument list.
  [apply] simp_all [UScalarTy.numBits]

Note: This linter can be disabled with `set_option linter.unusedSimpArgs false`
warning: Proofs.lean:88:162: This simp argument is unused:
  IScalarTy.numBits

Hint: Omit it from the simp argument list.
  [apply] simp_all [UScalarTy.numBits]

Note: This linter can be disabled with `set_option linter.unusedSimpArgs false`
warning: Proofs.lean:100:163: This simp argument is unused:
  IScalarTy.numBits

Hint: Omit it from the simp argument list.
  [apply] simp_all [UScalarTy.numBits]

Note: This linter can be disabled with `set_option linter.unusedSimpArgs false`
warning: Proofs.lean:106:163: This simp argument is unused:
  IScalarTy.numBits

Hint: Omit it from the simp argument list.
  [apply] simp_all [UScalarTy.numBits]

Note: This linter can be disabled with `set_option linter.unusedSimpArgs false`
warning: Proofs.lean:134:161: This simp argument is unused:
  IScalarTy.numBits

Hint: Omit it from the simp argument list.
  [apply] simp_all [UScalarTy.numBits]

Note: This linter can be disabled with `set_option linter.unusedSimpArgs false`
warning: Proofs.lean:140:161: This simp argument is unused:
  IScalarTy.numBits

Hint: Omit it from the simp argument list.
  [apply] simp_all [UScalarTy.numBits]

Note: This linter can be disabled with `set_option linter.unusedSimpArgs false`
warning: Proofs.lean:152:161: This simp argument is unused:
  IScalarTy.numBits

Hint: Omit it from the simp argument list.
  [apply] simp_all [UScalarTy.numBits]

Note: This linter can be disabled with `set_option linter.unusedSimpArgs false`
warning: Proofs.lean:158:161: This simp argument is unused:
  IScalarTy.numBits

Hint: Omit it from the simp argument list.
  [apply] simp_all [UScalarTy.numBits]

Note: This linter can be disabled with `set_option linter.unusedSimpArgs false`
warning: Proofs.lean:170:162: This simp argument is unused:
  IScalarTy.numBits

Hint: Omit it from the simp argument list.
  [apply] simp_all [UScalarTy.numBits]

Note: This linter can be disabled with `set_option linter.unusedSimpArgs false`
warning: Proofs.lean:176:162: This simp argument is unused:
  IScalarTy.numBits

Hint: Omit it from the simp argument list.
  [apply] simp_all [UScalarTy.numBits]

Note: This linter can be disabled with `set_option linter.unusedSimpArgs false`
warning: Proofs.lean:188:163: This simp argument is unused:
  IScalarTy.numBits

Hint: Omit it from the simp argument list.
  [apply] simp_all [UScalarTy.numBits]

Note: This linter can be disabled with `set_option linter.unusedSimpArgs false`
warning: Proofs.lean:194:163: This simp argument is unused:
  IScalarTy.numBits

Hint: Omit it from the simp argument list.
  [apply] simp_all [UScalarTy.numBits]

Note: This linter can be disabled with `set_option linter.unusedSimpArgs false`
warning: Proofs.lean:222:161: This simp argument is unused:
  IScalarTy.numBits

Hint: Omit it from the simp argument list.
  [apply] simp_all [UScalarTy.numBits]

Note: This linter can be disabled with `set_option linter.unusedSimpArgs false`
warning: Proofs.lean:228:161: This simp argument is unused:
  IScalarTy.numBits

Hint: Omit it from the simp argument list.
  [apply] simp_all [UScalarTy.numBits]

Note: This linter can be disabled with `set_option linter.unusedSimpArgs false`
warning: Proofs.lean:240:162: This simp argument is unused:
  IScalarTy.numBits

Hint: Omit it from the simp argument list.
  [apply] simp_all [UScalarTy.numBits]

Note: This linter can be disabled with `set_option linter.unusedSimpArgs false`
warning: Proofs.lean:246:162: This simp argument is unused:
  IScalarTy.numBits

Hint: Omit it from the simp argument list.
  [apply] simp_all [UScalarTy.numBits]

Note: This linter can be disabled with `set_option linter.unusedSimpArgs false`
warning: Proofs.lean:274:162: This simp argument is unused:
  IScalarTy.numBits

Hint: Omit it from the simp argument list.
  [apply] simp_all [UScalarTy.numBits]

Note: This linter can be disabled with `set_option linter.unusedSimpArgs false`
warning: Proofs.lean:280:162: This simp argument is unused:
  IScalarTy.numBits

Hint: Omit it from the simp argument list.
  [apply] simp_all [UScalarTy.numBits]

Note: This linter can be disabled with `set_option linter.unusedSimpArgs false`
warning: Proofs.lean:331:103: This simp argument is unused:
  UScalarTy.numBits

Hint: Omit it from the simp argument list.
  [apply] simp_all [IScalarTy.numBits]

Note: This linter can be disabled with `set_option linter.unusedSimpArgs false`
warning: Proofs.lean:340:114: This simp argument is unused:
  UScalarTy.numBits

Hint: Omit it from the simp argument list.
  [apply] simp_all [IScalarTy.numBits]

Note: This linter can be disabled with `set_option linter.unusedSimpArgs false`
warning: Proofs.lean:346:114: This simp argument is unused:
  UScalarTy.numBits

Hint: Omit it from the simp argument list.
  [apply] simp_all [IScalarTy.numBits]

Note: This linter can be disabled with `set_option linter.unusedSimpArgs false`
warning: Proofs.lean:350:124: This simp argument is unused:
  UScalarTy.numBits

Hint: Omit it from the simp argument list.
  [apply] simp_all [IScalarTy.numBits]

Note: This linter can be disabled with `set_option linter.unusedSimpArgs false`
warning: Proofs.lean:358:114: This simp argument is unused:
  UScalarTy.numBits

Hint: Omit it from the simp argument list.
  [apply] simp_all [IScalarTy.numBits]

Note: This linter can be disabled with `set_option linter.unusedSimpArgs false`
warning: Proofs.lean:364:114: This simp argument is unused:
  UScalarTy.numBits

Hint: Omit it from the simp argument list.
  [apply] simp_all [IScalarTy.numBits]

Note: This linter can be disabled with `set_option linter.unusedSimpArgs false`
warning: Proofs.lean:368:124: This simp argument is unused:
  UScalarTy.numBits

Hint: Omit it from the simp argument list.
  [apply] simp_all [IScalarTy.numBits]

Note: This linter can be disabled with `set_option linter.unusedSimpArgs false`
warning: Proofs.lean:376:114: This simp argument is unused:
  UScalarTy.numBits

Hint: Omit it from the simp argument list.
  [apply] simp_all [IScalarTy.numBits]

Note: This linter can be disabled with `set_option linter.unusedSimpArgs false`
warning: Proofs.lean:382:114: This simp argument is unused:
  UScalarTy.numBits

Hint: Omit it from the simp argument list.
  [apply] simp_all [IScalarTy.numBits]

Note: This linter can be disabled with `set_option linter.unusedSimpArgs false`
warning: Proofs.lean:386:124: This simp argument is unused:
  UScalarTy.numBits

Hint: Omit it from the simp argument list.
  [apply] simp_all [IScalarTy.numBits]

Note: This linter can be disabled with `set_option linter.unusedSimpArgs false`
warning: Proofs.lean:394:115: This simp argument is unused:
  UScalarTy.numBits

Hint: Omit it from the simp argument list.
  [apply] simp_all [IScalarTy.numBits]

Note: This linter can be disabled with `set_option linter.unusedSimpArgs false`
warning: Proofs.lean:400:115: This simp argument is unused:
  UScalarTy.numBits

Hint: Omit it from the simp argument list.
  [apply] simp_all [IScalarTy.numBits]

Note: This linter can be disabled with `set_option linter.unusedSimpArgs false`
warning: Proofs.lean:404:124: This simp argument is unused:
  UScalarTy.numBits

Hint: Omit it from the simp argument list.
  [apply] simp_all [IScalarTy.numBits]

Note: This linter can be disabled with `set_option linter.unusedSimpArgs false`
warning: Proofs.lean:412:116: This simp argument is unused:
  UScalarTy.numBits

Hint: Omit it from the simp argument list.
  [apply] simp_all [IScalarTy.numBits]

Note: This linter can be disabled with `set_option linter.unusedSimpArgs false`
warning: Proofs.lean:418:116: This simp argument is unused:
  UScalarTy.numBits

Hint: Omit it from the simp argument list.
  [apply] simp_all [IScalarTy.numBits]

Note: This linter can be disabled with `set_option linter.unusedSimpArgs false`
warning: Proofs.lean:422:124: This simp argument is unused:
  UScalarTy.numBits

Hint: Omit it from the simp argument list.
  [apply] simp_all [IScalarTy.numBits]

Note: This linter can be disabled with `set_option linter.unusedSimpArgs false`
warning: Proofs.lean:437:104: This simp argument is unused:
  UScalarTy.numBits

Hint: Omit it from the simp argument list.
  [apply] simp_all [IScalarTy.numBits]

Note: This linter can be disabled with `set_option linter.unusedSimpArgs false`
warning: Proofs.lean:446:114: This simp argument is unused:
  UScalarTy.numBits

Hint: Omit it from the simp argument list.
  [apply] simp_all [IScalarTy.numBits]

Note: This linter can be disabled with `set_option linter.unusedSimpArgs false`
warning: Proofs.lean:452:114: This simp argument is unused:
  UScalarTy.numBits

Hint: Omit it from the simp argument list.
  [apply] simp_all [IScalarTy.numBits]

Note: This linter can be disabled with `set_option linter.unusedSimpArgs false`
warning: Proofs.lean:456:126: This simp argument is unused:
  UScalarTy.numBits

Hint: Omit it from the simp argument list.
  [apply] simp_all [IScalarTy.numBits]

Note: This linter can be disabled with `set_option linter.unusedSimpArgs false`
warning: Proofs.lean:464:114: This simp argument is unused:
  UScalarTy.numBits

Hint: Omit it from the simp argument list.
  [apply] simp_all [IScalarTy.numBits]

Note: This linter can be disabled with `set_option linter.unusedSimpArgs false`
warning: Proofs.lean:470:114: This simp argument is unused:
  UScalarTy.numBits

Hint: Omit it from the simp argument list.
  [apply] simp_all [IScalarTy.numBits]

Note: This linter can be disabled with `set_option linter.unusedSimpArgs false`
warning: Proofs.lean:474:126: This simp argument is unused:
  UScalarTy.numBits

Hint: Omit it from the simp argument list.
  [apply] simp_all [IScalarTy.numBits]

Note: This linter can be disabled with `set_option linter.unusedSimpArgs false`
warning: Proofs.lean:482:115: This simp argument is unused:
  UScalarTy.numBits

Hint: Omit it from the simp argument list.
  [apply] simp_all [IScalarTy.numBits]

Note: This linter can be disabled with `set_option linter.unusedSimpArgs false`
warning: Proofs.lean:488:115: This simp argument is unused:
  UScalarTy.numBits

Hint: Omit it from the simp argument list.
  [apply] simp_all [IScalarTy.numBits]

Note: This linter can be disabled with `set_option linter.unusedSimpArgs false`
warning: Proofs.lean:492:126: This simp argument is unused:
  UScalarTy.numBits

Hint: Omit it from the simp argument list.
  [apply] simp_all [IScalarTy.numBits]

Note: This linter can be disabled with `set_option linter.unusedSimpArgs false`
warning: Proofs.lean:500:116: This simp argument is unused:
  UScalarTy.numBits

Hint: Omit it from the simp argument list.
  [apply] simp_all [IScalarTy.numBits]

Note: This linter can be disabled with `set_option linter.unusedSimpArgs false`
warning: Proofs.lean:506:116: This simp argument is unused:
  UScalarTy.numBits

Hint: Omit it from the simp argument list.
  [apply] simp_all [IScalarTy.numBits]

Note: This linter can be disabled with `set_option linter.unusedSimpArgs false`
warning: Proofs.lean:510:126: This simp argument is unused:
  UScalarTy.numBits

Hint: Omit it from the simp argument list.
  [apply] simp_all [IScalarTy.numBits]

Note: This linter can be disabled with `set_option linter.unusedSimpArgs false`
warning: Proofs.lean:525:104: This simp argument is unused:
  UScalarTy.numBits

Hint: Omit it from the simp argument list.
  [apply] simp_all [IScalarTy.numBits]

Note: This linter can be disabled with `set_option linter.unusedSimpArgs false`
warning: Proofs.lean:534:114: This simp argument is unused:
  UScalarTy.numBits

Hint: Omit it from the simp argument list.
  [apply] simp_all [IScalarTy.numBits]

Note: This linter can be disabled with `set_option linter.unusedSimpArgs false`
warning: Proofs.lean:540:114: This simp argument is unused:
  UScalarTy.numBits

Hint: Omit it from the simp argument list.
  [apply] simp_all [IScalarTy.numBits]

Note: This linter can be disabled with `set_option linter.unusedSimpArgs false`
warning: Proofs.lean:544:126: This simp argument is unused:
  UScalarTy.numBits

Hint: Omit it from the simp argument list.
  [apply] simp_all [IScalarTy.numBits]

Note: This linter can be disabled with `set_option linter.unusedSimpArgs false`
warning: Proofs.lean:552:115: This simp argument is unused:
  UScalarTy.numBits

Hint: Omit it from the simp argument list.
  [apply] simp_all [IScalarTy.numBits]

Note: This linter can be disabled with `set_option linter.unusedSimpArgs false`
warning: Proofs.lean:558:115: This simp argument is unused:
  UScalarTy.numBits

Hint: Omit it from the simp argument list.
  [apply] simp_all [IScalarTy.numBits]

Note: This linter can be disabled with `set_option linter.unusedSimpArgs false`
warning: Proofs.lean:562:126: This simp argument is unused:
  UScalarTy.numBits

Hint: Omit it from the simp argument list.
  [apply] simp_all [IScalarTy.numBits]

Note: This linter can be disabled with `set_option linter.unusedSimpArgs false`
warning: Proofs.lean:577:104: This simp argument is unused:
  UScalarTy.numBits

Hint: Omit it from the simp argument list.
  [apply] simp_all [IScalarTy.numBits]

Note: This linter can be disabled with `set_option linter.unusedSimpArgs false`
warning: Proofs.lean:586:115: This simp argument is unused:
  UScalarTy.numBits

Hint: Omit it from the simp argument list.
  [apply] simp_all [IScalarTy.numBits]

Note: This linter can be disabled with `set_option linter.unusedSimpArgs false`
warning: Proofs.lean:592:115: This simp argument is unused:
  UScalarTy.numBits

Hint: Omit it from the simp argument list.
  [apply] simp_all [IScalarTy.numBits]

Note: This linter can be disabled with `set_option linter.unusedSimpArgs false`
warning: Proofs.lean:596:126: This simp argument is unused:
  UScalarTy.numBits

Hint: Omit it from the simp argument list.
  [apply] simp_all [IScalarTy.numBits]

Note: This linter can be disabled with `set_option linter.unusedSimpArgs false`
warning: Proofs.lean:611:105: This simp argument is unused:
  UScalarTy.numBits

Hint: Omit it from the simp argument list.
  [apply] simp_all [IScalarTy.numBits]

Note: This linter can be disabled with `set_option linter.unusedSimpArgs false`
warning: Proofs.lean:627:106: This simp argument is unused:
  UScalarTy.numBits

Hint: Omit it from the simp argument list.
  [apply] simp_all [IScalarTy.numBits]

Note: This linter can be disabled with `set_option linter.unusedSimpArgs false`
✔ [1801/1801] Built Contracts (7.4s)
Build completed successfully (1801 jobs).

$ lake env lean --stdin (proofs.rs formal extraction and axiom audit)
proofs.rs:formal:{"axioms":["propext","Classical.choice","Quot.sound"],"binders":[],"conclusion":"(∀ (x : Aeneas.Std.U8),\n    ∃ out, num_conv_verification_api.extend_u8_u8 x = Aeneas.Std.Result.ok out ∧ NumConvSpec.preservesValue ↑↑x ↑↑out) ∧\n  (∀ (x : Aeneas.Std.U8),\n      ∃ out,\n        num_conv_verification_api.extend_u8_u16 x = Aeneas.Std.Result.ok out ∧ NumConvSpec.preservesValue ↑↑x ↑↑out) ∧\n    (∀ (x : Aeneas.Std.U8),\n        ∃ out,\n          num_conv_verification_api.extend_u8_u32 x = Aeneas.Std.Result.ok out ∧ NumConvSpec.preservesValue ↑↑x ↑↑out) ∧\n      (∀ (x : Aeneas.Std.U8),\n          ∃ out,\n            num_conv_verification_api.extend_u8_u64 x = Aeneas.Std.Result.ok out ∧\n              NumConvSpec.preservesValue ↑↑x ↑↑out) ∧\n        (∀ (x : Aeneas.Std.U8),\n            ∃ out,\n              num_conv_verification_api.extend_u8_u128 x = Aeneas.Std.Result.ok out ∧\n                NumConvSpec.preservesValue ↑↑x ↑↑out) ∧\n          (∀ (x : Aeneas.Std.U8),\n              ∃ out,\n                num_conv_verification_api.extend_u8_usize x = Aeneas.Std.Result.ok out ∧\n                  NumConvSpec.preservesValue ↑↑x ↑↑out) ∧\n            (∀ (x : Aeneas.Std.U16),\n                ∃ out,\n                  num_conv_verification_api.extend_u16_u16 x = Aeneas.Std.Result.ok out ∧\n                    NumConvSpec.preservesValue ↑↑x ↑↑out) ∧\n              (∀ (x : Aeneas.Std.U16),\n                  ∃ out,\n                    num_conv_verification_api.extend_u16_u32 x = Aeneas.Std.Result.ok out ∧\n                      NumConvSpec.preservesValue ↑↑x ↑↑out) ∧\n                (∀ (x : Aeneas.Std.U16),\n                    ∃ out,\n                      num_conv_verification_api.extend_u16_u64 x = Aeneas.Std.Result.ok out ∧\n                        NumConvSpec.preservesValue ↑↑x ↑↑out) ∧\n                  (∀ (x : Aeneas.Std.U16),\n                      ∃ out,\n                        num_conv_verification_api.extend_u16_u128 x = Aeneas.Std.Result.ok out ∧\n                          NumConvSpec.preservesValue ↑↑x ↑↑out) ∧\n                    (∀ (x : Aeneas.Std.U16),\n                        ∃ out,\n                          num_conv_verification_api.extend_u16_usize x = Aeneas.Std.Result.ok out ∧\n                            NumConvSpec.preservesValue ↑↑x ↑↑out) ∧\n                      (∀ (x : Aeneas.Std.U32),\n                          ∃ out,\n                            num_conv_verification_api.extend_u32_u32 x = Aeneas.Std.Result.ok out ∧\n                              NumConvSpec.preservesValue ↑↑x ↑↑out) ∧\n                        (∀ (x : Aeneas.Std.U32),\n                            ∃ out,\n                              num_conv_verification_api.extend_u32_u64 x = Aeneas.Std.Result.ok out ∧\n                                NumConvSpec.preservesValue ↑↑x ↑↑out) ∧\n                          (∀ (x : Aeneas.Std.U32),\n                              ∃ out,\n                                num_conv_verification_api.extend_u32_u128 x = Aeneas.Std.Result.ok out ∧\n                                  NumConvSpec.preservesValue ↑↑x ↑↑out) ∧\n                            (∀ (x : Aeneas.Std.U64),\n                                ∃ out,\n                                  num_conv_verification_api.extend_u64_u64 x = Aeneas.Std.Result.ok out ∧\n                                    NumConvSpec.preservesValue ↑↑x ↑↑out) ∧\n                              (∀ (x : Aeneas.Std.U64),\n                                  ∃ out,\n                                    num_conv_verification_api.extend_u64_u128 x = Aeneas.Std.Result.ok out ∧\n                                      NumConvSpec.preservesValue ↑↑x ↑↑out) ∧\n                                (∀ (x : Aeneas.Std.U128),\n                                    ∃ out,\n                                      num_conv_verification_api.extend_u128_u128 x = Aeneas.Std.Result.ok out ∧\n                                        NumConvSpec.preservesValue ↑↑x ↑↑out) ∧\n                                  (∀ (x : Aeneas.Std.Usize),\n                                      ∃ out,\n                                        num_conv_verification_api.extend_usize_usize x = Aeneas.Std.Result.ok out ∧\n                                          NumConvSpec.preservesValue ↑↑x ↑↑out) ∧\n                                    (∀ (x : Aeneas.Std.I8),\n                                        ∃ out,\n                                          num_conv_verification_api.extend_i8_i8 x = Aeneas.Std.Result.ok out ∧\n                                            NumConvSpec.preservesValue ↑x ↑out) ∧\n                                      (∀ (x : Aeneas.Std.I8),\n                                          ∃ out,\n                                            num_conv_verification_api.extend_i8_i16 x = Aeneas.Std.Result.ok out ∧\n                                              NumConvSpec.preservesValue ↑x ↑out) ∧\n                                        (∀ (x : Aeneas.Std.I8),\n                                            ∃ out,\n                                              num_conv_verification_api.extend_i8_i32 x = Aeneas.Std.Result.ok out ∧\n                                                NumConvSpec.preservesValue ↑x ↑out) ∧\n                                          (∀ (x : Aeneas.Std.I8),\n                                              ∃ out,\n                                                num_conv_verification_api.extend_i8_i64 x = Aeneas.Std.Result.ok out ∧\n                                                  NumConvSpec.preservesValue ↑x ↑out) ∧\n                                            (∀ (x : Aeneas.Std.I8),\n                                                ∃ out,\n                                                  num_conv_verification_api.extend_i8_i128 x =\n                                                      Aeneas.Std.Result.ok out ∧\n                                                    NumConvSpec.preservesValue ↑x ↑out) ∧\n                                              (∀ (x : Aeneas.Std.I8),\n                                                  ∃ out,\n                                                    num_conv_verification_api.extend_i8_isize x =\n                                                        Aeneas.Std.Result.ok out ∧\n                                                      NumConvSpec.preservesValue ↑x ↑out) ∧\n                                                (∀ (x : Aeneas.Std.I16),\n                                                    ∃ out,\n                                                      num_conv_verification_api.extend_i16_i16 x =\n                                                          Aeneas.Std.Result.ok out ∧\n                                                        NumConvSpec.preservesValue ↑x ↑out) ∧\n                                                  (∀ (x : Aeneas.Std.I16),\n                                                      ∃ out,\n                                                        num_conv_verification_api.extend_i16_i32 x =\n                                                            Aeneas.Std.Result.ok out ∧\n                                                          NumConvSpec.preservesValue ↑x ↑out) ∧\n                                                    (∀ (x : Aeneas.Std.I16),\n                                                        ∃ out,\n                                                          num_conv_verification_api.extend_i16_i64 x =\n                                                              Aeneas.Std.Result.ok out ∧\n                                                            NumConvSpec.preservesValue ↑x ↑out) ∧\n                                                      (∀ (x : Aeneas.Std.I16),\n                                                          ∃ out,\n                                                            num_conv_verification_api.extend_i16_i128 x =\n                                                                Aeneas.Std.Result.ok out ∧\n                                                              NumConvSpec.preservesValue ↑x ↑out) ∧\n                                                        (∀ (x : Aeneas.Std.I16),\n                                                            ∃ out,\n                                                              num_conv_verification_api.extend_i16_isize x =\n                                                                  Aeneas.Std.Result.ok out ∧\n                                                                NumConvSpec.preservesValue ↑x ↑out) ∧\n                                                          (∀ (x : Aeneas.Std.I32),\n                                                              ∃ out,\n                                                                num_conv_verification_api.extend_i32_i32 x =\n                                                                    Aeneas.Std.Result.ok out ∧\n                                                                  NumConvSpec.preservesValue ↑x ↑out) ∧\n                                                            (∀ (x : Aeneas.Std.I32),\n                                                                ∃ out,\n                                                                  num_conv_verification_api.extend_i32_i64 x =\n                                                                      Aeneas.Std.Result.ok out ∧\n                                                                    NumConvSpec.preservesValue ↑x ↑out) ∧\n                                                              (∀ (x : Aeneas.Std.I32),\n                                                                  ∃ out,\n                                                                    num_conv_verification_api.extend_i32_i128 x =\n                                                                        Aeneas.Std.Result.ok out ∧\n                                                                      NumConvSpec.preservesValue ↑x ↑out) ∧\n                                                                (∀ (x : Aeneas.Std.I64),\n                                                                    ∃ out,\n                                                                      num_conv_verification_api.extend_i64_i64 x =\n                                                                          Aeneas.Std.Result.ok out ∧\n                                                                        NumConvSpec.preservesValue ↑x ↑out) ∧\n                                                                  (∀ (x : Aeneas.Std.I64),\n                                                                      ∃ out,\n                                                                        num_conv_verification_api.extend_i64_i128 x =\n                                                                            Aeneas.Std.Result.ok out ∧\n                                                                          NumConvSpec.preservesValue ↑x ↑out) ∧\n                                                                    (∀ (x : Aeneas.Std.I128),\n                                                                        ∃ out,\n                                                                          num_conv_verification_api.extend_i128_i128 x =\n                                                                              Aeneas.Std.Result.ok out ∧\n                                                                            NumConvSpec.preservesValue ↑x ↑out) ∧\n                                                                      ∀ (x : Aeneas.Std.Isize),\n                                                                        ∃ out,\n                                                                          num_conv_verification_api.extend_isize_isize\n                                                                                x =\n                                                                              Aeneas.Std.Result.ok out ∧\n                                                                            NumConvSpec.preservesValue ↑x ↑out","conclusion_segments":[{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.U8","text":"Aeneas.Std.U8"},{"text":"),\n    "},{"text":"∃ "},{"text":"out"},{"text":", "},{"ref":"num_conv_verification_api.extend_u8_u8","text":"num_conv_verification_api.extend_u8_u8"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧ "},{"ref":"NumConvSpec.preservesValue","text":"NumConvSpec.preservesValue"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n  "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.U8","text":"Aeneas.Std.U8"},{"text":"),\n      "},{"text":"∃ "},{"text":"out"},{"text":",\n        "},{"ref":"num_conv_verification_api.extend_u8_u16","text":"num_conv_verification_api.extend_u8_u16"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧ "},{"ref":"NumConvSpec.preservesValue","text":"NumConvSpec.preservesValue"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n    "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.U8","text":"Aeneas.Std.U8"},{"text":"),\n        "},{"text":"∃ "},{"text":"out"},{"text":",\n          "},{"ref":"num_conv_verification_api.extend_u8_u32","text":"num_conv_verification_api.extend_u8_u32"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧ "},{"ref":"NumConvSpec.preservesValue","text":"NumConvSpec.preservesValue"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n      "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.U8","text":"Aeneas.Std.U8"},{"text":"),\n          "},{"text":"∃ "},{"text":"out"},{"text":",\n            "},{"ref":"num_conv_verification_api.extend_u8_u64","text":"num_conv_verification_api.extend_u8_u64"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n              "},{"ref":"NumConvSpec.preservesValue","text":"NumConvSpec.preservesValue"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n        "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.U8","text":"Aeneas.Std.U8"},{"text":"),\n            "},{"text":"∃ "},{"text":"out"},{"text":",\n              "},{"ref":"num_conv_verification_api.extend_u8_u128","text":"num_conv_verification_api.extend_u8_u128"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                "},{"ref":"NumConvSpec.preservesValue","text":"NumConvSpec.preservesValue"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n          "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.U8","text":"Aeneas.Std.U8"},{"text":"),\n              "},{"text":"∃ "},{"text":"out"},{"text":",\n                "},{"ref":"num_conv_verification_api.extend_u8_usize","text":"num_conv_verification_api.extend_u8_usize"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                  "},{"ref":"NumConvSpec.preservesValue","text":"NumConvSpec.preservesValue"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n            "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.U16","text":"Aeneas.Std.U16"},{"text":"),\n                "},{"text":"∃ "},{"text":"out"},{"text":",\n                  "},{"ref":"num_conv_verification_api.extend_u16_u16","text":"num_conv_verification_api.extend_u16_u16"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                    "},{"ref":"NumConvSpec.preservesValue","text":"NumConvSpec.preservesValue"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n              "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.U16","text":"Aeneas.Std.U16"},{"text":"),\n                  "},{"text":"∃ "},{"text":"out"},{"text":",\n                    "},{"ref":"num_conv_verification_api.extend_u16_u32","text":"num_conv_verification_api.extend_u16_u32"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                      "},{"ref":"NumConvSpec.preservesValue","text":"NumConvSpec.preservesValue"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.U16","text":"Aeneas.Std.U16"},{"text":"),\n                    "},{"text":"∃ "},{"text":"out"},{"text":",\n                      "},{"ref":"num_conv_verification_api.extend_u16_u64","text":"num_conv_verification_api.extend_u16_u64"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                        "},{"ref":"NumConvSpec.preservesValue","text":"NumConvSpec.preservesValue"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                  "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.U16","text":"Aeneas.Std.U16"},{"text":"),\n                      "},{"text":"∃ "},{"text":"out"},{"text":",\n                        "},{"ref":"num_conv_verification_api.extend_u16_u128","text":"num_conv_verification_api.extend_u16_u128"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                          "},{"ref":"NumConvSpec.preservesValue","text":"NumConvSpec.preservesValue"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                    "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.U16","text":"Aeneas.Std.U16"},{"text":"),\n                        "},{"text":"∃ "},{"text":"out"},{"text":",\n                          "},{"ref":"num_conv_verification_api.extend_u16_usize","text":"num_conv_verification_api.extend_u16_usize"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                            "},{"ref":"NumConvSpec.preservesValue","text":"NumConvSpec.preservesValue"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                      "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.U32","text":"Aeneas.Std.U32"},{"text":"),\n                          "},{"text":"∃ "},{"text":"out"},{"text":",\n                            "},{"ref":"num_conv_verification_api.extend_u32_u32","text":"num_conv_verification_api.extend_u32_u32"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                              "},{"ref":"NumConvSpec.preservesValue","text":"NumConvSpec.preservesValue"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                        "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.U32","text":"Aeneas.Std.U32"},{"text":"),\n                            "},{"text":"∃ "},{"text":"out"},{"text":",\n                              "},{"ref":"num_conv_verification_api.extend_u32_u64","text":"num_conv_verification_api.extend_u32_u64"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                "},{"ref":"NumConvSpec.preservesValue","text":"NumConvSpec.preservesValue"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                          "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.U32","text":"Aeneas.Std.U32"},{"text":"),\n                              "},{"text":"∃ "},{"text":"out"},{"text":",\n                                "},{"ref":"num_conv_verification_api.extend_u32_u128","text":"num_conv_verification_api.extend_u32_u128"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                  "},{"ref":"NumConvSpec.preservesValue","text":"NumConvSpec.preservesValue"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                            "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.U64","text":"Aeneas.Std.U64"},{"text":"),\n                                "},{"text":"∃ "},{"text":"out"},{"text":",\n                                  "},{"ref":"num_conv_verification_api.extend_u64_u64","text":"num_conv_verification_api.extend_u64_u64"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                    "},{"ref":"NumConvSpec.preservesValue","text":"NumConvSpec.preservesValue"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                              "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.U64","text":"Aeneas.Std.U64"},{"text":"),\n                                  "},{"text":"∃ "},{"text":"out"},{"text":",\n                                    "},{"ref":"num_conv_verification_api.extend_u64_u128","text":"num_conv_verification_api.extend_u64_u128"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                      "},{"ref":"NumConvSpec.preservesValue","text":"NumConvSpec.preservesValue"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                                "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.U128","text":"Aeneas.Std.U128"},{"text":"),\n                                    "},{"text":"∃ "},{"text":"out"},{"text":",\n                                      "},{"ref":"num_conv_verification_api.extend_u128_u128","text":"num_conv_verification_api.extend_u128_u128"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                        "},{"ref":"NumConvSpec.preservesValue","text":"NumConvSpec.preservesValue"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                                  "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.Usize","text":"Aeneas.Std.Usize"},{"text":"),\n                                      "},{"text":"∃ "},{"text":"out"},{"text":",\n                                        "},{"ref":"num_conv_verification_api.extend_usize_usize","text":"num_conv_verification_api.extend_usize_usize"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                          "},{"ref":"NumConvSpec.preservesValue","text":"NumConvSpec.preservesValue"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                                    "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.I8","text":"Aeneas.Std.I8"},{"text":"),\n                                        "},{"text":"∃ "},{"text":"out"},{"text":",\n                                          "},{"ref":"num_conv_verification_api.extend_i8_i8","text":"num_conv_verification_api.extend_i8_i8"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                            "},{"ref":"NumConvSpec.preservesValue","text":"NumConvSpec.preservesValue"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                                      "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.I8","text":"Aeneas.Std.I8"},{"text":"),\n                                          "},{"text":"∃ "},{"text":"out"},{"text":",\n                                            "},{"ref":"num_conv_verification_api.extend_i8_i16","text":"num_conv_verification_api.extend_i8_i16"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                              "},{"ref":"NumConvSpec.preservesValue","text":"NumConvSpec.preservesValue"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                                        "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.I8","text":"Aeneas.Std.I8"},{"text":"),\n                                            "},{"text":"∃ "},{"text":"out"},{"text":",\n                                              "},{"ref":"num_conv_verification_api.extend_i8_i32","text":"num_conv_verification_api.extend_i8_i32"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                                "},{"ref":"NumConvSpec.preservesValue","text":"NumConvSpec.preservesValue"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                                          "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.I8","text":"Aeneas.Std.I8"},{"text":"),\n                                              "},{"text":"∃ "},{"text":"out"},{"text":",\n                                                "},{"ref":"num_conv_verification_api.extend_i8_i64","text":"num_conv_verification_api.extend_i8_i64"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                                  "},{"ref":"NumConvSpec.preservesValue","text":"NumConvSpec.preservesValue"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                                            "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.I8","text":"Aeneas.Std.I8"},{"text":"),\n                                                "},{"text":"∃ "},{"text":"out"},{"text":",\n                                                  "},{"ref":"num_conv_verification_api.extend_i8_i128","text":"num_conv_verification_api.extend_i8_i128"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" =\n                                                      "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                                    "},{"ref":"NumConvSpec.preservesValue","text":"NumConvSpec.preservesValue"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                                              "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.I8","text":"Aeneas.Std.I8"},{"text":"),\n                                                  "},{"text":"∃ "},{"text":"out"},{"text":",\n                                                    "},{"ref":"num_conv_verification_api.extend_i8_isize","text":"num_conv_verification_api.extend_i8_isize"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" =\n                                                        "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                                      "},{"ref":"NumConvSpec.preservesValue","text":"NumConvSpec.preservesValue"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                                                "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.I16","text":"Aeneas.Std.I16"},{"text":"),\n                                                    "},{"text":"∃ "},{"text":"out"},{"text":",\n                                                      "},{"ref":"num_conv_verification_api.extend_i16_i16","text":"num_conv_verification_api.extend_i16_i16"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" =\n                                                          "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                                        "},{"ref":"NumConvSpec.preservesValue","text":"NumConvSpec.preservesValue"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                                                  "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.I16","text":"Aeneas.Std.I16"},{"text":"),\n                                                      "},{"text":"∃ "},{"text":"out"},{"text":",\n                                                        "},{"ref":"num_conv_verification_api.extend_i16_i32","text":"num_conv_verification_api.extend_i16_i32"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" =\n                                                            "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                                          "},{"ref":"NumConvSpec.preservesValue","text":"NumConvSpec.preservesValue"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                                                    "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.I16","text":"Aeneas.Std.I16"},{"text":"),\n                                                        "},{"text":"∃ "},{"text":"out"},{"text":",\n                                                          "},{"ref":"num_conv_verification_api.extend_i16_i64","text":"num_conv_verification_api.extend_i16_i64"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" =\n                                                              "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                                            "},{"ref":"NumConvSpec.preservesValue","text":"NumConvSpec.preservesValue"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                                                      "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.I16","text":"Aeneas.Std.I16"},{"text":"),\n                                                          "},{"text":"∃ "},{"text":"out"},{"text":",\n                                                            "},{"ref":"num_conv_verification_api.extend_i16_i128","text":"num_conv_verification_api.extend_i16_i128"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" =\n                                                                "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                                              "},{"ref":"NumConvSpec.preservesValue","text":"NumConvSpec.preservesValue"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                                                        "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.I16","text":"Aeneas.Std.I16"},{"text":"),\n                                                            "},{"text":"∃ "},{"text":"out"},{"text":",\n                                                              "},{"ref":"num_conv_verification_api.extend_i16_isize","text":"num_conv_verification_api.extend_i16_isize"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" =\n                                                                  "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                                                "},{"ref":"NumConvSpec.preservesValue","text":"NumConvSpec.preservesValue"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                                                          "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.I32","text":"Aeneas.Std.I32"},{"text":"),\n                                                              "},{"text":"∃ "},{"text":"out"},{"text":",\n                                                                "},{"ref":"num_conv_verification_api.extend_i32_i32","text":"num_conv_verification_api.extend_i32_i32"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" =\n                                                                    "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                                                  "},{"ref":"NumConvSpec.preservesValue","text":"NumConvSpec.preservesValue"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                                                            "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.I32","text":"Aeneas.Std.I32"},{"text":"),\n                                                                "},{"text":"∃ "},{"text":"out"},{"text":",\n                                                                  "},{"ref":"num_conv_verification_api.extend_i32_i64","text":"num_conv_verification_api.extend_i32_i64"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" =\n                                                                      "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                                                    "},{"ref":"NumConvSpec.preservesValue","text":"NumConvSpec.preservesValue"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                                                              "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.I32","text":"Aeneas.Std.I32"},{"text":"),\n                                                                  "},{"text":"∃ "},{"text":"out"},{"text":",\n                                                                    "},{"ref":"num_conv_verification_api.extend_i32_i128","text":"num_conv_verification_api.extend_i32_i128"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" =\n                                                                        "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                                                      "},{"ref":"NumConvSpec.preservesValue","text":"NumConvSpec.preservesValue"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                                                                "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.I64","text":"Aeneas.Std.I64"},{"text":"),\n                                                                    "},{"text":"∃ "},{"text":"out"},{"text":",\n                                                                      "},{"ref":"num_conv_verification_api.extend_i64_i64","text":"num_conv_verification_api.extend_i64_i64"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" =\n                                                                          "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                                                        "},{"ref":"NumConvSpec.preservesValue","text":"NumConvSpec.preservesValue"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                                                                  "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.I64","text":"Aeneas.Std.I64"},{"text":"),\n                                                                      "},{"text":"∃ "},{"text":"out"},{"text":",\n                                                                        "},{"ref":"num_conv_verification_api.extend_i64_i128","text":"num_conv_verification_api.extend_i64_i128"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" =\n                                                                            "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                                                          "},{"ref":"NumConvSpec.preservesValue","text":"NumConvSpec.preservesValue"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                                                                    "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.I128","text":"Aeneas.Std.I128"},{"text":"),\n                                                                        "},{"text":"∃ "},{"text":"out"},{"text":",\n                                                                          "},{"ref":"num_conv_verification_api.extend_i128_i128","text":"num_conv_verification_api.extend_i128_i128"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" =\n                                                                              "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                                                            "},{"ref":"NumConvSpec.preservesValue","text":"NumConvSpec.preservesValue"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                                                                      "},{"text":"∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.Isize","text":"Aeneas.Std.Isize"},{"text":"),\n                                                                        "},{"text":"∃ "},{"text":"out"},{"text":",\n                                                                          "},{"ref":"num_conv_verification_api.extend_isize_isize","text":"num_conv_verification_api.extend_isize_isize"},{"text":"\n                                                                                "},{"text":"x"},{"ref":"Eq","text":" =\n                                                                              "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                                                            "},{"ref":"NumConvSpec.preservesValue","text":"NumConvSpec.preservesValue"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"out"}],"definitions":[{"module":"Init.Prelude","name":"And","source":{"first_line":645,"last_line":659}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.U8","source":{"first_line":669,"last_line":669}},{"module":"Init.Core","name":"Exists","source":{"first_line":313,"last_line":341}},{"module":"Init.Prelude","name":"Eq","source":{"first_line":46,"last_line":76}},{"module":"Aeneas.Std.Primitives","name":"Aeneas.Std.Result","source":{"first_line":67,"last_line":68}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.extend_u8_u8","source":{"first_line":4155,"last_line":4161}},{"module":"Aeneas.Std.Primitives","name":"Aeneas.Std.Result.ok","source":{"first_line":72,"last_line":72}},{"module":"Specs","name":"NumConvSpec.preservesValue","source":{"first_line":28,"last_line":28}},{"module":"Init.Data.Cast","name":"Nat.cast","source":{"first_line":69,"last_line":71}},{"module":"Init.Data.Int.Basic","name":"Int","source":{"first_line":35,"last_line":58}},{"module":"Init.Data.Int.Basic","name":"instNatCastInt","source":{"first_line":63,"last_line":63}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.UScalar.val","source":{"first_line":76,"last_line":76}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.UScalarTy.U8","source":{"first_line":33,"last_line":33}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.U16","source":{"first_line":670,"last_line":670}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.extend_u8_u16","source":{"first_line":4195,"last_line":4201}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.UScalarTy.U16","source":{"first_line":34,"last_line":34}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.U32","source":{"first_line":671,"last_line":671}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.extend_u8_u32","source":{"first_line":4235,"last_line":4241}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.UScalarTy.U32","source":{"first_line":35,"last_line":35}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.U64","source":{"first_line":672,"last_line":672}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.extend_u8_u64","source":{"first_line":4275,"last_line":4281}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.UScalarTy.U64","source":{"first_line":36,"last_line":36}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.U128","source":{"first_line":673,"last_line":673}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.extend_u8_u128","source":{"first_line":4315,"last_line":4321}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.UScalarTy.U128","source":{"first_line":37,"last_line":37}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.Usize","source":{"first_line":668,"last_line":668}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.extend_u8_usize","source":{"first_line":4355,"last_line":4361}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.UScalarTy.Usize","source":{"first_line":32,"last_line":32}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.extend_u16_u16","source":{"first_line":4395,"last_line":4401}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.extend_u16_u32","source":{"first_line":4435,"last_line":4441}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.extend_u16_u64","source":{"first_line":4475,"last_line":4481}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.extend_u16_u128","source":{"first_line":4515,"last_line":4521}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.extend_u16_usize","source":{"first_line":4555,"last_line":4561}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.extend_u32_u32","source":{"first_line":4595,"last_line":4601}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.extend_u32_u64","source":{"first_line":4635,"last_line":4641}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.extend_u32_u128","source":{"first_line":4675,"last_line":4681}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.extend_u64_u64","source":{"first_line":4715,"last_line":4721}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.extend_u64_u128","source":{"first_line":4755,"last_line":4761}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.extend_u128_u128","source":{"first_line":4795,"last_line":4801}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.extend_usize_usize","source":{"first_line":4835,"last_line":4841}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.I8","source":{"first_line":675,"last_line":675}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.extend_i8_i8","source":{"first_line":4876,"last_line":4882}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.IScalar.val","source":{"first_line":84,"last_line":84}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.IScalarTy.I8","source":{"first_line":43,"last_line":43}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.I16","source":{"first_line":676,"last_line":676}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.extend_i8_i16","source":{"first_line":4916,"last_line":4922}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.IScalarTy.I16","source":{"first_line":44,"last_line":44}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.I32","source":{"first_line":677,"last_line":677}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.extend_i8_i32","source":{"first_line":4956,"last_line":4962}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.IScalarTy.I32","source":{"first_line":45,"last_line":45}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.I64","source":{"first_line":678,"last_line":678}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.extend_i8_i64","source":{"first_line":4996,"last_line":5002}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.IScalarTy.I64","source":{"first_line":46,"last_line":46}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.I128","source":{"first_line":679,"last_line":679}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.extend_i8_i128","source":{"first_line":5036,"last_line":5042}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.IScalarTy.I128","source":{"first_line":47,"last_line":47}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.Isize","source":{"first_line":674,"last_line":674}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.extend_i8_isize","source":{"first_line":5076,"last_line":5082}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.IScalarTy.Isize","source":{"first_line":42,"last_line":42}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.extend_i16_i16","source":{"first_line":5116,"last_line":5122}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.extend_i16_i32","source":{"first_line":5156,"last_line":5162}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.extend_i16_i64","source":{"first_line":5196,"last_line":5202}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.extend_i16_i128","source":{"first_line":5236,"last_line":5242}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.extend_i16_isize","source":{"first_line":5276,"last_line":5282}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.extend_i32_i32","source":{"first_line":5316,"last_line":5322}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.extend_i32_i64","source":{"first_line":5356,"last_line":5362}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.extend_i32_i128","source":{"first_line":5396,"last_line":5402}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.extend_i64_i64","source":{"first_line":5436,"last_line":5442}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.extend_i64_i128","source":{"first_line":5476,"last_line":5482}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.extend_i128_i128","source":{"first_line":5516,"last_line":5522}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.extend_isize_isize","source":{"first_line":5556,"last_line":5562}}],"definitions_truncated":false,"first_line":46,"last_line":85,"module":"Contracts","program":null,"program_head":null,"statement":"And\n  (∀ (x : Aeneas.Std.U8),\n    @Exists.{1} Aeneas.Std.U8 fun (out : Aeneas.Std.U8) =>\n      And\n        (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.U8) (num_conv_verification_api.extend_u8_u8 x)\n          (@Aeneas.Std.Result.ok.{0} Aeneas.Std.U8 out))\n        (NumConvSpec.preservesValue\n          (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U8 x))\n          (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U8 out))))\n  (And\n    (∀ (x : Aeneas.Std.U8),\n      @Exists.{1} Aeneas.Std.U16 fun (out : Aeneas.Std.U16) =>\n        And\n          (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.U16) (num_conv_verification_api.extend_u8_u16 x)\n            (@Aeneas.Std.Result.ok.{0} Aeneas.Std.U16 out))\n          (NumConvSpec.preservesValue\n            (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U8 x))\n            (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U16 out))))\n    (And\n      (∀ (x : Aeneas.Std.U8),\n        @Exists.{1} Aeneas.Std.U32 fun (out : Aeneas.Std.U32) =>\n          And\n            (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.U32) (num_conv_verification_api.extend_u8_u32 x)\n              (@Aeneas.Std.Result.ok.{0} Aeneas.Std.U32 out))\n            (NumConvSpec.preservesValue\n              (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U8 x))\n              (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U32 out))))\n      (And\n        (∀ (x : Aeneas.Std.U8),\n          @Exists.{1} Aeneas.Std.U64 fun (out : Aeneas.Std.U64) =>\n            And\n              (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.U64) (num_conv_verification_api.extend_u8_u64 x)\n                (@Aeneas.Std.Result.ok.{0} Aeneas.Std.U64 out))\n              (NumConvSpec.preservesValue\n                (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U8 x))\n                (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U64 out))))\n        (And\n          (∀ (x : Aeneas.Std.U8),\n            @Exists.{1} Aeneas.Std.U128 fun (out : Aeneas.Std.U128) =>\n              And\n                (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.U128) (num_conv_verification_api.extend_u8_u128 x)\n                  (@Aeneas.Std.Result.ok.{0} Aeneas.Std.U128 out))\n                (NumConvSpec.preservesValue\n                  (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U8 x))\n                  (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U128 out))))\n          (And\n            (∀ (x : Aeneas.Std.U8),\n              @Exists.{1} Aeneas.Std.Usize fun (out : Aeneas.Std.Usize) =>\n                And\n                  (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.Usize) (num_conv_verification_api.extend_u8_usize x)\n                    (@Aeneas.Std.Result.ok.{0} Aeneas.Std.Usize out))\n                  (NumConvSpec.preservesValue\n                    (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U8 x))\n                    (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.Usize out))))\n            (And\n              (∀ (x : Aeneas.Std.U16),\n                @Exists.{1} Aeneas.Std.U16 fun (out : Aeneas.Std.U16) =>\n                  And\n                    (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.U16) (num_conv_verification_api.extend_u16_u16 x)\n                      (@Aeneas.Std.Result.ok.{0} Aeneas.Std.U16 out))\n                    (NumConvSpec.preservesValue\n                      (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U16 x))\n                      (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U16 out))))\n              (And\n                (∀ (x : Aeneas.Std.U16),\n                  @Exists.{1} Aeneas.Std.U32 fun (out : Aeneas.Std.U32) =>\n                    And\n                      (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.U32) (num_conv_verification_api.extend_u16_u32 x)\n                        (@Aeneas.Std.Result.ok.{0} Aeneas.Std.U32 out))\n                      (NumConvSpec.preservesValue\n                        (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U16 x))\n                        (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U32 out))))\n                (And\n                  (∀ (x : Aeneas.Std.U16),\n                    @Exists.{1} Aeneas.Std.U64 fun (out : Aeneas.Std.U64) =>\n                      And\n                        (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.U64) (num_conv_verification_api.extend_u16_u64 x)\n                          (@Aeneas.Std.Result.ok.{0} Aeneas.Std.U64 out))\n                        (NumConvSpec.preservesValue\n                          (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U16 x))\n                          (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U64 out))))\n                  (And\n                    (∀ (x : Aeneas.Std.U16),\n                      @Exists.{1} Aeneas.Std.U128 fun (out : Aeneas.Std.U128) =>\n                        And\n                          (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.U128) (num_conv_verification_api.extend_u16_u128 x)\n                            (@Aeneas.Std.Result.ok.{0} Aeneas.Std.U128 out))\n                          (NumConvSpec.preservesValue\n                            (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U16 x))\n                            (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U128 out))))\n                    (And\n                      (∀ (x : Aeneas.Std.U16),\n                        @Exists.{1} Aeneas.Std.Usize fun (out : Aeneas.Std.Usize) =>\n                          And\n                            (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.Usize)\n                              (num_conv_verification_api.extend_u16_usize x)\n                              (@Aeneas.Std.Result.ok.{0} Aeneas.Std.Usize out))\n                            (NumConvSpec.preservesValue\n                              (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U16 x))\n                              (@Nat.cast.{0} Int instNatCastInt\n                                (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.Usize out))))\n                      (And\n                        (∀ (x : Aeneas.Std.U32),\n                          @Exists.{1} Aeneas.Std.U32 fun (out : Aeneas.Std.U32) =>\n                            And\n                              (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.U32)\n                                (num_conv_verification_api.extend_u32_u32 x)\n                                (@Aeneas.Std.Result.ok.{0} Aeneas.Std.U32 out))\n                              (NumConvSpec.preservesValue\n                                (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U32 x))\n                                (@Nat.cast.{0} Int instNatCastInt\n                                  (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U32 out))))\n                        (And\n                          (∀ (x : Aeneas.Std.U32),\n                            @Exists.{1} Aeneas.Std.U64 fun (out : Aeneas.Std.U64) =>\n                              And\n                                (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.U64)\n                                  (num_conv_verification_api.extend_u32_u64 x)\n                                  (@Aeneas.Std.Result.ok.{0} Aeneas.Std.U64 out))\n                                (NumConvSpec.preservesValue\n                                  (@Nat.cast.{0} Int instNatCastInt\n                                    (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U32 x))\n                                  (@Nat.cast.{0} Int instNatCastInt\n                                    (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U64 out))))\n                          (And\n                            (∀ (x : Aeneas.Std.U32),\n                              @Exists.{1} Aeneas.Std.U128 fun (out : Aeneas.Std.U128) =>\n                                And\n                                  (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.U128)\n                                    (num_conv_verification_api.extend_u32_u128 x)\n                                    (@Aeneas.Std.Result.ok.{0} Aeneas.Std.U128 out))\n                                  (NumConvSpec.preservesValue\n                                    (@Nat.cast.{0} Int instNatCastInt\n                                      (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U32 x))\n                                    (@Nat.cast.{0} Int instNatCastInt\n                                      (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U128 out))))\n                            (And\n                              (∀ (x : Aeneas.Std.U64),\n                                @Exists.{1} Aeneas.Std.U64 fun (out : Aeneas.Std.U64) =>\n                                  And\n                                    (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.U64)\n                                      (num_conv_verification_api.extend_u64_u64 x)\n                                      (@Aeneas.Std.Result.ok.{0} Aeneas.Std.U64 out))\n                                    (NumConvSpec.preservesValue\n                                      (@Nat.cast.{0} Int instNatCastInt\n                                        (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U64 x))\n                                      (@Nat.cast.{0} Int instNatCastInt\n                                        (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U64 out))))\n                              (And\n                                (∀ (x : Aeneas.Std.U64),\n                                  @Exists.{1} Aeneas.Std.U128 fun (out : Aeneas.Std.U128) =>\n                                    And\n                                      (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.U128)\n                                        (num_conv_verification_api.extend_u64_u128 x)\n                                        (@Aeneas.Std.Result.ok.{0} Aeneas.Std.U128 out))\n                                      (NumConvSpec.preservesValue\n                                        (@Nat.cast.{0} Int instNatCastInt\n                                          (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U64 x))\n                                        (@Nat.cast.{0} Int instNatCastInt\n                                          (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U128 out))))\n                                (And\n                                  (∀ (x : Aeneas.Std.U128),\n                                    @Exists.{1} Aeneas.Std.U128 fun (out : Aeneas.Std.U128) =>\n                                      And\n                                        (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.U128)\n                                          (num_conv_verification_api.extend_u128_u128 x)\n                                          (@Aeneas.Std.Result.ok.{0} Aeneas.Std.U128 out))\n                                        (NumConvSpec.preservesValue\n                                          (@Nat.cast.{0} Int instNatCastInt\n                                            (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U128 x))\n                                          (@Nat.cast.{0} Int instNatCastInt\n                                            (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U128 out))))\n                                  (And\n                                    (∀ (x : Aeneas.Std.Usize),\n                                      @Exists.{1} Aeneas.Std.Usize fun (out : Aeneas.Std.Usize) =>\n                                        And\n                                          (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.Usize)\n                                            (num_conv_verification_api.extend_usize_usize x)\n                                            (@Aeneas.Std.Result.ok.{0} Aeneas.Std.Usize out))\n                                          (NumConvSpec.preservesValue\n                                            (@Nat.cast.{0} Int instNatCastInt\n                                              (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.Usize x))\n                                            (@Nat.cast.{0} Int instNatCastInt\n                                              (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.Usize out))))\n                                    (And\n                                      (∀ (x : Aeneas.Std.I8),\n                                        @Exists.{1} Aeneas.Std.I8 fun (out : Aeneas.Std.I8) =>\n                                          And\n                                            (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.I8)\n                                              (num_conv_verification_api.extend_i8_i8 x)\n                                              (@Aeneas.Std.Result.ok.{0} Aeneas.Std.I8 out))\n                                            (NumConvSpec.preservesValue\n                                              (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I8 x)\n                                              (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I8 out)))\n                                      (And\n                                        (∀ (x : Aeneas.Std.I8),\n                                          @Exists.{1} Aeneas.Std.I16 fun (out : Aeneas.Std.I16) =>\n                                            And\n                                              (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.I16)\n                                                (num_conv_verification_api.extend_i8_i16 x)\n                                                (@Aeneas.Std.Result.ok.{0} Aeneas.Std.I16 out))\n                                              (NumConvSpec.preservesValue\n                                                (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I8 x)\n                                                (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I16 out)))\n                                        (And\n                                          (∀ (x : Aeneas.Std.I8),\n                                            @Exists.{1} Aeneas.Std.I32 fun (out : Aeneas.Std.I32) =>\n                                              And\n                                                (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.I32)\n                                                  (num_conv_verification_api.extend_i8_i32 x)\n                                                  (@Aeneas.Std.Result.ok.{0} Aeneas.Std.I32 out))\n                                                (NumConvSpec.preservesValue\n                                                  (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I8 x)\n                                                  (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I32 out)))\n                                          (And\n                                            (∀ (x : Aeneas.Std.I8),\n                                              @Exists.{1} Aeneas.Std.I64 fun (out : Aeneas.Std.I64) =>\n                                                And\n                                                  (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.I64)\n                                                    (num_conv_verification_api.extend_i8_i64 x)\n                                                    (@Aeneas.Std.Result.ok.{0} Aeneas.Std.I64 out))\n                                                  (NumConvSpec.preservesValue\n                                                    (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I8 x)\n                                                    (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I64 out)))\n                                            (And\n                                              (∀ (x : Aeneas.Std.I8),\n                                                @Exists.{1} Aeneas.Std.I128 fun (out : Aeneas.Std.I128) =>\n                                                  And\n                                                    (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.I128)\n                                                      (num_conv_verification_api.extend_i8_i128 x)\n                                                      (@Aeneas.Std.Result.ok.{0} Aeneas.Std.I128 out))\n                                                    (NumConvSpec.preservesValue\n                                                      (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I8 x)\n                                                      (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I128 out)))\n                                              (And\n                                                (∀ (x : Aeneas.Std.I8),\n                                                  @Exists.{1} Aeneas.Std.Isize fun (out : Aeneas.Std.Isize) =>\n                                                    And\n                                                      (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.Isize)\n                                                        (num_conv_verification_api.extend_i8_isize x)\n                                                        (@Aeneas.Std.Result.ok.{0} Aeneas.Std.Isize out))\n                                                      (NumConvSpec.preservesValue\n                                                        (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I8 x)\n                                                        (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.Isize out)))\n                                                (And\n                                                  (∀ (x : Aeneas.Std.I16),\n                                                    @Exists.{1} Aeneas.Std.I16 fun (out : Aeneas.Std.I16) =>\n                                                      And\n                                                        (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.I16)\n                                                          (num_conv_verification_api.extend_i16_i16 x)\n                                                          (@Aeneas.Std.Result.ok.{0} Aeneas.Std.I16 out))\n                                                        (NumConvSpec.preservesValue\n                                                          (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I16 x)\n                                                          (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I16 out)))\n                                                  (And\n                                                    (∀ (x : Aeneas.Std.I16),\n                                                      @Exists.{1} Aeneas.Std.I32 fun (out : Aeneas.Std.I32) =>\n                                                        And\n                                                          (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.I32)\n                                                            (num_conv_verification_api.extend_i16_i32 x)\n                                                            (@Aeneas.Std.Result.ok.{0} Aeneas.Std.I32 out))\n                                                          (NumConvSpec.preservesValue\n                                                            (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I16 x)\n                                                            (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I32 out)))\n                                                    (And\n                                                      (∀ (x : Aeneas.Std.I16),\n                                                        @Exists.{1} Aeneas.Std.I64 fun (out : Aeneas.Std.I64) =>\n                                                          And\n                                                            (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.I64)\n                                                              (num_conv_verification_api.extend_i16_i64 x)\n                                                              (@Aeneas.Std.Result.ok.{0} Aeneas.Std.I64 out))\n                                                            (NumConvSpec.preservesValue\n                                                              (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I16 x)\n                                                              (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I64 out)))\n                                                      (And\n                                                        (∀ (x : Aeneas.Std.I16),\n                                                          @Exists.{1} Aeneas.Std.I128 fun (out : Aeneas.Std.I128) =>\n                                                            And\n                                                              (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.I128)\n                                                                (num_conv_verification_api.extend_i16_i128 x)\n                                                                (@Aeneas.Std.Result.ok.{0} Aeneas.Std.I128 out))\n                                                              (NumConvSpec.preservesValue\n                                                                (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I16 x)\n                                                                (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I128\n                                                                  out)))\n                                                        (And\n                                                          (∀ (x : Aeneas.Std.I16),\n                                                            @Exists.{1} Aeneas.Std.Isize fun (out : Aeneas.Std.Isize) =>\n                                                              And\n                                                                (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.Isize)\n                                                                  (num_conv_verification_api.extend_i16_isize x)\n                                                                  (@Aeneas.Std.Result.ok.{0} Aeneas.Std.Isize out))\n                                                                (NumConvSpec.preservesValue\n                                                                  (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I16 x)\n                                                                  (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.Isize\n                                                                    out)))\n                                                          (And\n                                                            (∀ (x : Aeneas.Std.I32),\n                                                              @Exists.{1} Aeneas.Std.I32 fun (out : Aeneas.Std.I32) =>\n                                                                And\n                                                                  (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.I32)\n                                                                    (num_conv_verification_api.extend_i32_i32 x)\n                                                                    (@Aeneas.Std.Result.ok.{0} Aeneas.Std.I32 out))\n                                                                  (NumConvSpec.preservesValue\n                                                                    (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I32 x)\n                                                                    (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I32\n                                                                      out)))\n                                                            (And\n                                                              (∀ (x : Aeneas.Std.I32),\n                                                                @Exists.{1} Aeneas.Std.I64 fun (out : Aeneas.Std.I64) =>\n                                                                  And\n                                                                    (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.I64)\n                                                                      (num_conv_verification_api.extend_i32_i64 x)\n                                                                      (@Aeneas.Std.Result.ok.{0} Aeneas.Std.I64 out))\n                                                                    (NumConvSpec.preservesValue\n                                                                      (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I32\n                                                                        x)\n                                                                      (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I64\n                                                                        out)))\n                                                              (And\n                                                                (∀ (x : Aeneas.Std.I32),\n                                                                  @Exists.{1} Aeneas.Std.I128\n                                                                    fun (out : Aeneas.Std.I128) =>\n                                                                    And\n                                                                      (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.I128)\n                                                                        (num_conv_verification_api.extend_i32_i128 x)\n                                                                        (@Aeneas.Std.Result.ok.{0} Aeneas.Std.I128 out))\n                                                                      (NumConvSpec.preservesValue\n                                                                        (@Aeneas.Std.IScalar.val\n                                                                          Aeneas.Std.IScalarTy.I32 x)\n                                                                        (@Aeneas.Std.IScalar.val\n                                                                          Aeneas.Std.IScalarTy.I128 out)))\n                                                                (And\n                                                                  (∀ (x : Aeneas.Std.I64),\n                                                                    @Exists.{1} Aeneas.Std.I64\n                                                                      fun (out : Aeneas.Std.I64) =>\n                                                                      And\n                                                                        (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.I64)\n                                                                          (num_conv_verification_api.extend_i64_i64 x)\n                                                                          (@Aeneas.Std.Result.ok.{0} Aeneas.Std.I64\n                                                                            out))\n                                                                        (NumConvSpec.preservesValue\n                                                                          (@Aeneas.Std.IScalar.val\n                                                                            Aeneas.Std.IScalarTy.I64 x)\n                                                                          (@Aeneas.Std.IScalar.val\n                                                                            Aeneas.Std.IScalarTy.I64 out)))\n                                                                  (And\n                                                                    (∀ (x : Aeneas.Std.I64),\n                                                                      @Exists.{1} Aeneas.Std.I128\n                                                                        fun (out : Aeneas.Std.I128) =>\n                                                                        And\n                                                                          (@Eq.{1}\n                                                                            (Aeneas.Std.Result.{0} Aeneas.Std.I128)\n                                                                            (num_conv_verification_api.extend_i64_i128\n                                                                              x)\n                                                                            (@Aeneas.Std.Result.ok.{0} Aeneas.Std.I128\n                                                                              out))\n                                                                          (NumConvSpec.preservesValue\n                                                                            (@Aeneas.Std.IScalar.val\n                                                                              Aeneas.Std.IScalarTy.I64 x)\n                                                                            (@Aeneas.Std.IScalar.val\n                                                                              Aeneas.Std.IScalarTy.I128 out)))\n                                                                    (And\n                                                                      (∀ (x : Aeneas.Std.I128),\n                                                                        @Exists.{1} Aeneas.Std.I128\n                                                                          fun (out : Aeneas.Std.I128) =>\n                                                                          And\n                                                                            (@Eq.{1}\n                                                                              (Aeneas.Std.Result.{0} Aeneas.Std.I128)\n                                                                              (num_conv_verification_api.extend_i128_i128\n                                                                                x)\n                                                                              (@Aeneas.Std.Result.ok.{0} Aeneas.Std.I128\n                                                                                out))\n                                                                            (NumConvSpec.preservesValue\n                                                                              (@Aeneas.Std.IScalar.val\n                                                                                Aeneas.Std.IScalarTy.I128 x)\n                                                                              (@Aeneas.Std.IScalar.val\n                                                                                Aeneas.Std.IScalarTy.I128 out)))\n                                                                      (∀ (x : Aeneas.Std.Isize),\n                                                                        @Exists.{1} Aeneas.Std.Isize\n                                                                          fun (out : Aeneas.Std.Isize) =>\n                                                                          And\n                                                                            (@Eq.{1}\n                                                                              (Aeneas.Std.Result.{0} Aeneas.Std.Isize)\n                                                                              (num_conv_verification_api.extend_isize_isize\n                                                                                x)\n                                                                              (@Aeneas.Std.Result.ok.{0}\n                                                                                Aeneas.Std.Isize out))\n                                                                            (NumConvSpec.preservesValue\n                                                                              (@Aeneas.Std.IScalar.val\n                                                                                Aeneas.Std.IScalarTy.Isize x)\n                                                                              (@Aeneas.Std.IScalar.val\n                                                                                Aeneas.Std.IScalarTy.Isize\n                                                                                out)))))))))))))))))))))))))))))))))))))","theorem":"NumConvProof.extend_all_spec","translation_rerun":false,"version":1}
proofs.rs:formal:{"axioms":["propext","Classical.choice","Quot.sound"],"binders":[],"conclusion":"(∀ (x : Aeneas.Std.U8),\n    ∃ out,\n      num_conv_verification_api.saturating_truncate_u8_u8 x = Aeneas.Std.Result.ok out ∧\n        ↑↑out = NumConvSpec.saturate 0 (NumConvSpec.unsignedMax 8) ↑↑x) ∧\n  (∀ (x : Aeneas.Std.U16),\n      ∃ out,\n        num_conv_verification_api.saturating_truncate_u16_u8 x = Aeneas.Std.Result.ok out ∧\n          ↑↑out = NumConvSpec.saturate 0 (NumConvSpec.unsignedMax 8) ↑↑x) ∧\n    (∀ (x : Aeneas.Std.U32),\n        ∃ out,\n          num_conv_verification_api.saturating_truncate_u32_u8 x = Aeneas.Std.Result.ok out ∧\n            ↑↑out = NumConvSpec.saturate 0 (NumConvSpec.unsignedMax 8) ↑↑x) ∧\n      (∀ (x : Aeneas.Std.U64),\n          ∃ out,\n            num_conv_verification_api.saturating_truncate_u64_u8 x = Aeneas.Std.Result.ok out ∧\n              ↑↑out = NumConvSpec.saturate 0 (NumConvSpec.unsignedMax 8) ↑↑x) ∧\n        (∀ (x : Aeneas.Std.U128),\n            ∃ out,\n              num_conv_verification_api.saturating_truncate_u128_u8 x = Aeneas.Std.Result.ok out ∧\n                ↑↑out = NumConvSpec.saturate 0 (NumConvSpec.unsignedMax 8) ↑↑x) ∧\n          (∀ (x : Aeneas.Std.Usize),\n              ∃ out,\n                num_conv_verification_api.saturating_truncate_usize_u8 x = Aeneas.Std.Result.ok out ∧\n                  ↑↑out = NumConvSpec.saturate 0 (NumConvSpec.unsignedMax 8) ↑↑x) ∧\n            (∀ (x : Aeneas.Std.U16),\n                ∃ out,\n                  num_conv_verification_api.saturating_truncate_u16_u16 x = Aeneas.Std.Result.ok out ∧\n                    ↑↑out = NumConvSpec.saturate 0 (NumConvSpec.unsignedMax 16) ↑↑x) ∧\n              (∀ (x : Aeneas.Std.U32),\n                  ∃ out,\n                    num_conv_verification_api.saturating_truncate_u32_u16 x = Aeneas.Std.Result.ok out ∧\n                      ↑↑out = NumConvSpec.saturate 0 (NumConvSpec.unsignedMax 16) ↑↑x) ∧\n                (∀ (x : Aeneas.Std.U64),\n                    ∃ out,\n                      num_conv_verification_api.saturating_truncate_u64_u16 x = Aeneas.Std.Result.ok out ∧\n                        ↑↑out = NumConvSpec.saturate 0 (NumConvSpec.unsignedMax 16) ↑↑x) ∧\n                  (∀ (x : Aeneas.Std.U128),\n                      ∃ out,\n                        num_conv_verification_api.saturating_truncate_u128_u16 x = Aeneas.Std.Result.ok out ∧\n                          ↑↑out = NumConvSpec.saturate 0 (NumConvSpec.unsignedMax 16) ↑↑x) ∧\n                    (∀ (x : Aeneas.Std.Usize),\n                        ∃ out,\n                          num_conv_verification_api.saturating_truncate_usize_u16 x = Aeneas.Std.Result.ok out ∧\n                            ↑↑out = NumConvSpec.saturate 0 (NumConvSpec.unsignedMax 16) ↑↑x) ∧\n                      (∀ (x : Aeneas.Std.U32),\n                          ∃ out,\n                            num_conv_verification_api.saturating_truncate_u32_u32 x = Aeneas.Std.Result.ok out ∧\n                              ↑↑out = NumConvSpec.saturate 0 (NumConvSpec.unsignedMax 32) ↑↑x) ∧\n                        (∀ (x : Aeneas.Std.U64),\n                            ∃ out,\n                              num_conv_verification_api.saturating_truncate_u64_u32 x = Aeneas.Std.Result.ok out ∧\n                                ↑↑out = NumConvSpec.saturate 0 (NumConvSpec.unsignedMax 32) ↑↑x) ∧\n                          (∀ (x : Aeneas.Std.U128),\n                              ∃ out,\n                                num_conv_verification_api.saturating_truncate_u128_u32 x = Aeneas.Std.Result.ok out ∧\n                                  ↑↑out = NumConvSpec.saturate 0 (NumConvSpec.unsignedMax 32) ↑↑x) ∧\n                            (∀ (x : Aeneas.Std.U64),\n                                ∃ out,\n                                  num_conv_verification_api.saturating_truncate_u64_u64 x = Aeneas.Std.Result.ok out ∧\n                                    ↑↑out = NumConvSpec.saturate 0 (NumConvSpec.unsignedMax 64) ↑↑x) ∧\n                              (∀ (x : Aeneas.Std.U128),\n                                  ∃ out,\n                                    num_conv_verification_api.saturating_truncate_u128_u64 x =\n                                        Aeneas.Std.Result.ok out ∧\n                                      ↑↑out = NumConvSpec.saturate 0 (NumConvSpec.unsignedMax 64) ↑↑x) ∧\n                                (∀ (x : Aeneas.Std.U128),\n                                    ∃ out,\n                                      num_conv_verification_api.saturating_truncate_u128_u128 x =\n                                          Aeneas.Std.Result.ok out ∧\n                                        ↑↑out = NumConvSpec.saturate 0 (NumConvSpec.unsignedMax 128) ↑↑x) ∧\n                                  (∀ (x : Aeneas.Std.Usize),\n                                      ∃ out,\n                                        num_conv_verification_api.saturating_truncate_usize_usize x =\n                                            Aeneas.Std.Result.ok out ∧\n                                          ↑↑out =\n                                            NumConvSpec.saturate 0\n                                              (NumConvSpec.unsignedMax Aeneas.Std.UScalarTy.Usize.numBits) ↑↑x) ∧\n                                    (∀ (x : Aeneas.Std.I8),\n                                        ∃ out,\n                                          num_conv_verification_api.saturating_truncate_i8_i8 x =\n                                              Aeneas.Std.Result.ok out ∧\n                                            ↑out =\n                                              NumConvSpec.saturate (NumConvSpec.signedMin 8) (NumConvSpec.signedMax 8)\n                                                ↑x) ∧\n                                      (∀ (x : Aeneas.Std.I16),\n                                          ∃ out,\n                                            num_conv_verification_api.saturating_truncate_i16_i8 x =\n                                                Aeneas.Std.Result.ok out ∧\n                                              ↑out =\n                                                NumConvSpec.saturate (NumConvSpec.signedMin 8) (NumConvSpec.signedMax 8)\n                                                  ↑x) ∧\n                                        (∀ (x : Aeneas.Std.I32),\n                                            ∃ out,\n                                              num_conv_verification_api.saturating_truncate_i32_i8 x =\n                                                  Aeneas.Std.Result.ok out ∧\n                                                ↑out =\n                                                  NumConvSpec.saturate (NumConvSpec.signedMin 8)\n                                                    (NumConvSpec.signedMax 8) ↑x) ∧\n                                          (∀ (x : Aeneas.Std.I64),\n                                              ∃ out,\n                                                num_conv_verification_api.saturating_truncate_i64_i8 x =\n                                                    Aeneas.Std.Result.ok out ∧\n                                                  ↑out =\n                                                    NumConvSpec.saturate (NumConvSpec.signedMin 8)\n                                                      (NumConvSpec.signedMax 8) ↑x) ∧\n                                            (∀ (x : Aeneas.Std.I128),\n                                                ∃ out,\n                                                  num_conv_verification_api.saturating_truncate_i128_i8 x =\n                                                      Aeneas.Std.Result.ok out ∧\n                                                    ↑out =\n                                                      NumConvSpec.saturate (NumConvSpec.signedMin 8)\n                                                        (NumConvSpec.signedMax 8) ↑x) ∧\n                                              (∀ (x : Aeneas.Std.Isize),\n                                                  ∃ out,\n                                                    num_conv_verification_api.saturating_truncate_isize_i8 x =\n                                                        Aeneas.Std.Result.ok out ∧\n                                                      ↑out =\n                                                        NumConvSpec.saturate (NumConvSpec.signedMin 8)\n                                                          (NumConvSpec.signedMax 8) ↑x) ∧\n                                                (∀ (x : Aeneas.Std.I16),\n                                                    ∃ out,\n                                                      num_conv_verification_api.saturating_truncate_i16_i16 x =\n                                                          Aeneas.Std.Result.ok out ∧\n                                                        ↑out =\n                                                          NumConvSpec.saturate (NumConvSpec.signedMin 16)\n                                                            (NumConvSpec.signedMax 16) ↑x) ∧\n                                                  (∀ (x : Aeneas.Std.I32),\n                                                      ∃ out,\n                                                        num_conv_verification_api.saturating_truncate_i32_i16 x =\n                                                            Aeneas.Std.Result.ok out ∧\n                                                          ↑out =\n                                                            NumConvSpec.saturate (NumConvSpec.signedMin 16)\n                                                              (NumConvSpec.signedMax 16) ↑x) ∧\n                                                    (∀ (x : Aeneas.Std.I64),\n                                                        ∃ out,\n                                                          num_conv_verification_api.saturating_truncate_i64_i16 x =\n                                                              Aeneas.Std.Result.ok out ∧\n                                                            ↑out =\n                                                              NumConvSpec.saturate (NumConvSpec.signedMin 16)\n                                                                (NumConvSpec.signedMax 16) ↑x) ∧\n                                                      (∀ (x : Aeneas.Std.I128),\n                                                          ∃ out,\n                                                            num_conv_verification_api.saturating_truncate_i128_i16 x =\n                                                                Aeneas.Std.Result.ok out ∧\n                                                              ↑out =\n                                                                NumConvSpec.saturate (NumConvSpec.signedMin 16)\n                                                                  (NumConvSpec.signedMax 16) ↑x) ∧\n                                                        (∀ (x : Aeneas.Std.Isize),\n                                                            ∃ out,\n                                                              num_conv_verification_api.saturating_truncate_isize_i16\n                                                                    x =\n                                                                  Aeneas.Std.Result.ok out ∧\n                                                                ↑out =\n                                                                  NumConvSpec.saturate (NumConvSpec.signedMin 16)\n                                                                    (NumConvSpec.signedMax 16) ↑x) ∧\n                                                          (∀ (x : Aeneas.Std.I32),\n                                                              ∃ out,\n                                                                num_conv_verification_api.saturating_truncate_i32_i32\n                                                                      x =\n                                                                    Aeneas.Std.Result.ok out ∧\n                                                                  ↑out =\n                                                                    NumConvSpec.saturate (NumConvSpec.signedMin 32)\n                                                                      (NumConvSpec.signedMax 32) ↑x) ∧\n                                                            (∀ (x : Aeneas.Std.I64),\n                                                                ∃ out,\n                                                                  num_conv_verification_api.saturating_truncate_i64_i32\n                                                                        x =\n                                                                      Aeneas.Std.Result.ok out ∧\n                                                                    ↑out =\n                                                                      NumConvSpec.saturate (NumConvSpec.signedMin 32)\n                                                                        (NumConvSpec.signedMax 32) ↑x) ∧\n                                                              (∀ (x : Aeneas.Std.I128),\n                                                                  ∃ out,\n                                                                    num_conv_verification_api.saturating_truncate_i128_i32\n                                                                          x =\n                                                                        Aeneas.Std.Result.ok out ∧\n                                                                      ↑out =\n                                                                        NumConvSpec.saturate (NumConvSpec.signedMin 32)\n                                                                          (NumConvSpec.signedMax 32) ↑x) ∧\n                                                                (∀ (x : Aeneas.Std.I64),\n                                                                    ∃ out,\n                                                                      num_conv_verification_api.saturating_truncate_i64_i64\n                                                                            x =\n                                                                          Aeneas.Std.Result.ok out ∧\n                                                                        ↑out =\n                                                                          NumConvSpec.saturate\n                                                                            (NumConvSpec.signedMin 64)\n                                                                            (NumConvSpec.signedMax 64) ↑x) ∧\n                                                                  (∀ (x : Aeneas.Std.I128),\n                                                                      ∃ out,\n                                                                        num_conv_verification_api.saturating_truncate_i128_i64\n                                                                              x =\n                                                                            Aeneas.Std.Result.ok out ∧\n                                                                          ↑out =\n                                                                            NumConvSpec.saturate\n                                                                              (NumConvSpec.signedMin 64)\n                                                                              (NumConvSpec.signedMax 64) ↑x) ∧\n                                                                    (∀ (x : Aeneas.Std.I128),\n                                                                        ∃ out,\n                                                                          num_conv_verification_api.saturating_truncate_i128_i128\n                                                                                x =\n                                                                              Aeneas.Std.Result.ok out ∧\n                                                                            ↑out =\n                                                                              NumConvSpec.saturate\n                                                                                (NumConvSpec.signedMin 128)\n                                                                                (NumConvSpec.signedMax 128) ↑x) ∧\n                                                                      ∀ (x : Aeneas.Std.Isize),\n                                                                        ∃ out,\n                                                                          num_conv_verification_api.saturating_truncate_isize_isize\n                                                                                x =\n                                                                              Aeneas.Std.Result.ok out ∧\n                                                                            ↑out =\n                                                                              NumConvSpec.saturate\n                                                                                (NumConvSpec.signedMin\n                                                                                  Aeneas.Std.IScalarTy.Isize.numBits)\n                                                                                (NumConvSpec.signedMax\n                                                                                  Aeneas.Std.IScalarTy.Isize.numBits)\n                                                                                ↑x","conclusion_segments":[{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.U8","text":"Aeneas.Std.U8"},{"text":"),\n    "},{"text":"∃ "},{"text":"out"},{"text":",\n      "},{"ref":"num_conv_verification_api.saturating_truncate_u8_u8","text":"num_conv_verification_api.saturating_truncate_u8_u8"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n        "},{"text":"↑"},{"text":"↑"},{"text":"out"},{"ref":"Eq","text":" = "},{"ref":"NumConvSpec.saturate","text":"NumConvSpec.saturate"},{"text":" "},{"text":"0"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.unsignedMax","text":"NumConvSpec.unsignedMax"},{"text":" "},{"text":"8"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":")"},{"ref":"And","text":" ∧\n  "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.U16","text":"Aeneas.Std.U16"},{"text":"),\n      "},{"text":"∃ "},{"text":"out"},{"text":",\n        "},{"ref":"num_conv_verification_api.saturating_truncate_u16_u8","text":"num_conv_verification_api.saturating_truncate_u16_u8"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n          "},{"text":"↑"},{"text":"↑"},{"text":"out"},{"ref":"Eq","text":" = "},{"ref":"NumConvSpec.saturate","text":"NumConvSpec.saturate"},{"text":" "},{"text":"0"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.unsignedMax","text":"NumConvSpec.unsignedMax"},{"text":" "},{"text":"8"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":")"},{"ref":"And","text":" ∧\n    "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.U32","text":"Aeneas.Std.U32"},{"text":"),\n        "},{"text":"∃ "},{"text":"out"},{"text":",\n          "},{"ref":"num_conv_verification_api.saturating_truncate_u32_u8","text":"num_conv_verification_api.saturating_truncate_u32_u8"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n            "},{"text":"↑"},{"text":"↑"},{"text":"out"},{"ref":"Eq","text":" = "},{"ref":"NumConvSpec.saturate","text":"NumConvSpec.saturate"},{"text":" "},{"text":"0"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.unsignedMax","text":"NumConvSpec.unsignedMax"},{"text":" "},{"text":"8"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":")"},{"ref":"And","text":" ∧\n      "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.U64","text":"Aeneas.Std.U64"},{"text":"),\n          "},{"text":"∃ "},{"text":"out"},{"text":",\n            "},{"ref":"num_conv_verification_api.saturating_truncate_u64_u8","text":"num_conv_verification_api.saturating_truncate_u64_u8"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n              "},{"text":"↑"},{"text":"↑"},{"text":"out"},{"ref":"Eq","text":" = "},{"ref":"NumConvSpec.saturate","text":"NumConvSpec.saturate"},{"text":" "},{"text":"0"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.unsignedMax","text":"NumConvSpec.unsignedMax"},{"text":" "},{"text":"8"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":")"},{"ref":"And","text":" ∧\n        "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.U128","text":"Aeneas.Std.U128"},{"text":"),\n            "},{"text":"∃ "},{"text":"out"},{"text":",\n              "},{"ref":"num_conv_verification_api.saturating_truncate_u128_u8","text":"num_conv_verification_api.saturating_truncate_u128_u8"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                "},{"text":"↑"},{"text":"↑"},{"text":"out"},{"ref":"Eq","text":" = "},{"ref":"NumConvSpec.saturate","text":"NumConvSpec.saturate"},{"text":" "},{"text":"0"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.unsignedMax","text":"NumConvSpec.unsignedMax"},{"text":" "},{"text":"8"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":")"},{"ref":"And","text":" ∧\n          "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.Usize","text":"Aeneas.Std.Usize"},{"text":"),\n              "},{"text":"∃ "},{"text":"out"},{"text":",\n                "},{"ref":"num_conv_verification_api.saturating_truncate_usize_u8","text":"num_conv_verification_api.saturating_truncate_usize_u8"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                  "},{"text":"↑"},{"text":"↑"},{"text":"out"},{"ref":"Eq","text":" = "},{"ref":"NumConvSpec.saturate","text":"NumConvSpec.saturate"},{"text":" "},{"text":"0"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.unsignedMax","text":"NumConvSpec.unsignedMax"},{"text":" "},{"text":"8"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":")"},{"ref":"And","text":" ∧\n            "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.U16","text":"Aeneas.Std.U16"},{"text":"),\n                "},{"text":"∃ "},{"text":"out"},{"text":",\n                  "},{"ref":"num_conv_verification_api.saturating_truncate_u16_u16","text":"num_conv_verification_api.saturating_truncate_u16_u16"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                    "},{"text":"↑"},{"text":"↑"},{"text":"out"},{"ref":"Eq","text":" = "},{"ref":"NumConvSpec.saturate","text":"NumConvSpec.saturate"},{"text":" "},{"text":"0"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.unsignedMax","text":"NumConvSpec.unsignedMax"},{"text":" "},{"text":"16"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":")"},{"ref":"And","text":" ∧\n              "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.U32","text":"Aeneas.Std.U32"},{"text":"),\n                  "},{"text":"∃ "},{"text":"out"},{"text":",\n                    "},{"ref":"num_conv_verification_api.saturating_truncate_u32_u16","text":"num_conv_verification_api.saturating_truncate_u32_u16"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                      "},{"text":"↑"},{"text":"↑"},{"text":"out"},{"ref":"Eq","text":" = "},{"ref":"NumConvSpec.saturate","text":"NumConvSpec.saturate"},{"text":" "},{"text":"0"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.unsignedMax","text":"NumConvSpec.unsignedMax"},{"text":" "},{"text":"16"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":")"},{"ref":"And","text":" ∧\n                "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.U64","text":"Aeneas.Std.U64"},{"text":"),\n                    "},{"text":"∃ "},{"text":"out"},{"text":",\n                      "},{"ref":"num_conv_verification_api.saturating_truncate_u64_u16","text":"num_conv_verification_api.saturating_truncate_u64_u16"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                        "},{"text":"↑"},{"text":"↑"},{"text":"out"},{"ref":"Eq","text":" = "},{"ref":"NumConvSpec.saturate","text":"NumConvSpec.saturate"},{"text":" "},{"text":"0"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.unsignedMax","text":"NumConvSpec.unsignedMax"},{"text":" "},{"text":"16"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":")"},{"ref":"And","text":" ∧\n                  "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.U128","text":"Aeneas.Std.U128"},{"text":"),\n                      "},{"text":"∃ "},{"text":"out"},{"text":",\n                        "},{"ref":"num_conv_verification_api.saturating_truncate_u128_u16","text":"num_conv_verification_api.saturating_truncate_u128_u16"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                          "},{"text":"↑"},{"text":"↑"},{"text":"out"},{"ref":"Eq","text":" = "},{"ref":"NumConvSpec.saturate","text":"NumConvSpec.saturate"},{"text":" "},{"text":"0"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.unsignedMax","text":"NumConvSpec.unsignedMax"},{"text":" "},{"text":"16"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":")"},{"ref":"And","text":" ∧\n                    "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.Usize","text":"Aeneas.Std.Usize"},{"text":"),\n                        "},{"text":"∃ "},{"text":"out"},{"text":",\n                          "},{"ref":"num_conv_verification_api.saturating_truncate_usize_u16","text":"num_conv_verification_api.saturating_truncate_usize_u16"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                            "},{"text":"↑"},{"text":"↑"},{"text":"out"},{"ref":"Eq","text":" = "},{"ref":"NumConvSpec.saturate","text":"NumConvSpec.saturate"},{"text":" "},{"text":"0"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.unsignedMax","text":"NumConvSpec.unsignedMax"},{"text":" "},{"text":"16"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":")"},{"ref":"And","text":" ∧\n                      "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.U32","text":"Aeneas.Std.U32"},{"text":"),\n                          "},{"text":"∃ "},{"text":"out"},{"text":",\n                            "},{"ref":"num_conv_verification_api.saturating_truncate_u32_u32","text":"num_conv_verification_api.saturating_truncate_u32_u32"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                              "},{"text":"↑"},{"text":"↑"},{"text":"out"},{"ref":"Eq","text":" = "},{"ref":"NumConvSpec.saturate","text":"NumConvSpec.saturate"},{"text":" "},{"text":"0"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.unsignedMax","text":"NumConvSpec.unsignedMax"},{"text":" "},{"text":"32"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":")"},{"ref":"And","text":" ∧\n                        "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.U64","text":"Aeneas.Std.U64"},{"text":"),\n                            "},{"text":"∃ "},{"text":"out"},{"text":",\n                              "},{"ref":"num_conv_verification_api.saturating_truncate_u64_u32","text":"num_conv_verification_api.saturating_truncate_u64_u32"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                "},{"text":"↑"},{"text":"↑"},{"text":"out"},{"ref":"Eq","text":" = "},{"ref":"NumConvSpec.saturate","text":"NumConvSpec.saturate"},{"text":" "},{"text":"0"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.unsignedMax","text":"NumConvSpec.unsignedMax"},{"text":" "},{"text":"32"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":")"},{"ref":"And","text":" ∧\n                          "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.U128","text":"Aeneas.Std.U128"},{"text":"),\n                              "},{"text":"∃ "},{"text":"out"},{"text":",\n                                "},{"ref":"num_conv_verification_api.saturating_truncate_u128_u32","text":"num_conv_verification_api.saturating_truncate_u128_u32"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                  "},{"text":"↑"},{"text":"↑"},{"text":"out"},{"ref":"Eq","text":" = "},{"ref":"NumConvSpec.saturate","text":"NumConvSpec.saturate"},{"text":" "},{"text":"0"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.unsignedMax","text":"NumConvSpec.unsignedMax"},{"text":" "},{"text":"32"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":")"},{"ref":"And","text":" ∧\n                            "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.U64","text":"Aeneas.Std.U64"},{"text":"),\n                                "},{"text":"∃ "},{"text":"out"},{"text":",\n                                  "},{"ref":"num_conv_verification_api.saturating_truncate_u64_u64","text":"num_conv_verification_api.saturating_truncate_u64_u64"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                    "},{"text":"↑"},{"text":"↑"},{"text":"out"},{"ref":"Eq","text":" = "},{"ref":"NumConvSpec.saturate","text":"NumConvSpec.saturate"},{"text":" "},{"text":"0"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.unsignedMax","text":"NumConvSpec.unsignedMax"},{"text":" "},{"text":"64"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":")"},{"ref":"And","text":" ∧\n                              "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.U128","text":"Aeneas.Std.U128"},{"text":"),\n                                  "},{"text":"∃ "},{"text":"out"},{"text":",\n                                    "},{"ref":"num_conv_verification_api.saturating_truncate_u128_u64","text":"num_conv_verification_api.saturating_truncate_u128_u64"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" =\n                                        "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                      "},{"text":"↑"},{"text":"↑"},{"text":"out"},{"ref":"Eq","text":" = "},{"ref":"NumConvSpec.saturate","text":"NumConvSpec.saturate"},{"text":" "},{"text":"0"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.unsignedMax","text":"NumConvSpec.unsignedMax"},{"text":" "},{"text":"64"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":")"},{"ref":"And","text":" ∧\n                                "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.U128","text":"Aeneas.Std.U128"},{"text":"),\n                                    "},{"text":"∃ "},{"text":"out"},{"text":",\n                                      "},{"ref":"num_conv_verification_api.saturating_truncate_u128_u128","text":"num_conv_verification_api.saturating_truncate_u128_u128"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" =\n                                          "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                        "},{"text":"↑"},{"text":"↑"},{"text":"out"},{"ref":"Eq","text":" = "},{"ref":"NumConvSpec.saturate","text":"NumConvSpec.saturate"},{"text":" "},{"text":"0"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.unsignedMax","text":"NumConvSpec.unsignedMax"},{"text":" "},{"text":"128"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":")"},{"ref":"And","text":" ∧\n                                  "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.Usize","text":"Aeneas.Std.Usize"},{"text":"),\n                                      "},{"text":"∃ "},{"text":"out"},{"text":",\n                                        "},{"ref":"num_conv_verification_api.saturating_truncate_usize_usize","text":"num_conv_verification_api.saturating_truncate_usize_usize"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" =\n                                            "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                          "},{"text":"↑"},{"text":"↑"},{"text":"out"},{"ref":"Eq","text":" =\n                                            "},{"ref":"NumConvSpec.saturate","text":"NumConvSpec.saturate"},{"text":" "},{"text":"0"},{"text":"\n                                              "},{"text":"("},{"ref":"NumConvSpec.unsignedMax","text":"NumConvSpec.unsignedMax"},{"text":" "},{"ref":"Aeneas.Std.UScalarTy.Usize","text":"Aeneas.Std.UScalarTy.Usize"},{"text":"."},{"ref":"Aeneas.Std.UScalarTy.numBits","text":"numBits"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":")"},{"ref":"And","text":" ∧\n                                    "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.I8","text":"Aeneas.Std.I8"},{"text":"),\n                                        "},{"text":"∃ "},{"text":"out"},{"text":",\n                                          "},{"ref":"num_conv_verification_api.saturating_truncate_i8_i8","text":"num_conv_verification_api.saturating_truncate_i8_i8"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" =\n                                              "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                            "},{"text":"↑"},{"text":"out"},{"ref":"Eq","text":" =\n                                              "},{"ref":"NumConvSpec.saturate","text":"NumConvSpec.saturate"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.signedMin","text":"NumConvSpec.signedMin"},{"text":" "},{"text":"8"},{"text":")"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.signedMax","text":"NumConvSpec.signedMax"},{"text":" "},{"text":"8"},{"text":")"},{"text":"\n                                                "},{"text":"↑"},{"text":"x"},{"text":")"},{"ref":"And","text":" ∧\n                                      "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.I16","text":"Aeneas.Std.I16"},{"text":"),\n                                          "},{"text":"∃ "},{"text":"out"},{"text":",\n                                            "},{"ref":"num_conv_verification_api.saturating_truncate_i16_i8","text":"num_conv_verification_api.saturating_truncate_i16_i8"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" =\n                                                "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                              "},{"text":"↑"},{"text":"out"},{"ref":"Eq","text":" =\n                                                "},{"ref":"NumConvSpec.saturate","text":"NumConvSpec.saturate"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.signedMin","text":"NumConvSpec.signedMin"},{"text":" "},{"text":"8"},{"text":")"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.signedMax","text":"NumConvSpec.signedMax"},{"text":" "},{"text":"8"},{"text":")"},{"text":"\n                                                  "},{"text":"↑"},{"text":"x"},{"text":")"},{"ref":"And","text":" ∧\n                                        "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.I32","text":"Aeneas.Std.I32"},{"text":"),\n                                            "},{"text":"∃ "},{"text":"out"},{"text":",\n                                              "},{"ref":"num_conv_verification_api.saturating_truncate_i32_i8","text":"num_conv_verification_api.saturating_truncate_i32_i8"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" =\n                                                  "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                                "},{"text":"↑"},{"text":"out"},{"ref":"Eq","text":" =\n                                                  "},{"ref":"NumConvSpec.saturate","text":"NumConvSpec.saturate"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.signedMin","text":"NumConvSpec.signedMin"},{"text":" "},{"text":"8"},{"text":")"},{"text":"\n                                                    "},{"text":"("},{"ref":"NumConvSpec.signedMax","text":"NumConvSpec.signedMax"},{"text":" "},{"text":"8"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":")"},{"ref":"And","text":" ∧\n                                          "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.I64","text":"Aeneas.Std.I64"},{"text":"),\n                                              "},{"text":"∃ "},{"text":"out"},{"text":",\n                                                "},{"ref":"num_conv_verification_api.saturating_truncate_i64_i8","text":"num_conv_verification_api.saturating_truncate_i64_i8"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" =\n                                                    "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                                  "},{"text":"↑"},{"text":"out"},{"ref":"Eq","text":" =\n                                                    "},{"ref":"NumConvSpec.saturate","text":"NumConvSpec.saturate"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.signedMin","text":"NumConvSpec.signedMin"},{"text":" "},{"text":"8"},{"text":")"},{"text":"\n                                                      "},{"text":"("},{"ref":"NumConvSpec.signedMax","text":"NumConvSpec.signedMax"},{"text":" "},{"text":"8"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":")"},{"ref":"And","text":" ∧\n                                            "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.I128","text":"Aeneas.Std.I128"},{"text":"),\n                                                "},{"text":"∃ "},{"text":"out"},{"text":",\n                                                  "},{"ref":"num_conv_verification_api.saturating_truncate_i128_i8","text":"num_conv_verification_api.saturating_truncate_i128_i8"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" =\n                                                      "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                                    "},{"text":"↑"},{"text":"out"},{"ref":"Eq","text":" =\n                                                      "},{"ref":"NumConvSpec.saturate","text":"NumConvSpec.saturate"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.signedMin","text":"NumConvSpec.signedMin"},{"text":" "},{"text":"8"},{"text":")"},{"text":"\n                                                        "},{"text":"("},{"ref":"NumConvSpec.signedMax","text":"NumConvSpec.signedMax"},{"text":" "},{"text":"8"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":")"},{"ref":"And","text":" ∧\n                                              "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.Isize","text":"Aeneas.Std.Isize"},{"text":"),\n                                                  "},{"text":"∃ "},{"text":"out"},{"text":",\n                                                    "},{"ref":"num_conv_verification_api.saturating_truncate_isize_i8","text":"num_conv_verification_api.saturating_truncate_isize_i8"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" =\n                                                        "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                                      "},{"text":"↑"},{"text":"out"},{"ref":"Eq","text":" =\n                                                        "},{"ref":"NumConvSpec.saturate","text":"NumConvSpec.saturate"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.signedMin","text":"NumConvSpec.signedMin"},{"text":" "},{"text":"8"},{"text":")"},{"text":"\n                                                          "},{"text":"("},{"ref":"NumConvSpec.signedMax","text":"NumConvSpec.signedMax"},{"text":" "},{"text":"8"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":")"},{"ref":"And","text":" ∧\n                                                "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.I16","text":"Aeneas.Std.I16"},{"text":"),\n                                                    "},{"text":"∃ "},{"text":"out"},{"text":",\n                                                      "},{"ref":"num_conv_verification_api.saturating_truncate_i16_i16","text":"num_conv_verification_api.saturating_truncate_i16_i16"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" =\n                                                          "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                                        "},{"text":"↑"},{"text":"out"},{"ref":"Eq","text":" =\n                                                          "},{"ref":"NumConvSpec.saturate","text":"NumConvSpec.saturate"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.signedMin","text":"NumConvSpec.signedMin"},{"text":" "},{"text":"16"},{"text":")"},{"text":"\n                                                            "},{"text":"("},{"ref":"NumConvSpec.signedMax","text":"NumConvSpec.signedMax"},{"text":" "},{"text":"16"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":")"},{"ref":"And","text":" ∧\n                                                  "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.I32","text":"Aeneas.Std.I32"},{"text":"),\n                                                      "},{"text":"∃ "},{"text":"out"},{"text":",\n                                                        "},{"ref":"num_conv_verification_api.saturating_truncate_i32_i16","text":"num_conv_verification_api.saturating_truncate_i32_i16"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" =\n                                                            "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                                          "},{"text":"↑"},{"text":"out"},{"ref":"Eq","text":" =\n                                                            "},{"ref":"NumConvSpec.saturate","text":"NumConvSpec.saturate"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.signedMin","text":"NumConvSpec.signedMin"},{"text":" "},{"text":"16"},{"text":")"},{"text":"\n                                                              "},{"text":"("},{"ref":"NumConvSpec.signedMax","text":"NumConvSpec.signedMax"},{"text":" "},{"text":"16"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":")"},{"ref":"And","text":" ∧\n                                                    "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.I64","text":"Aeneas.Std.I64"},{"text":"),\n                                                        "},{"text":"∃ "},{"text":"out"},{"text":",\n                                                          "},{"ref":"num_conv_verification_api.saturating_truncate_i64_i16","text":"num_conv_verification_api.saturating_truncate_i64_i16"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" =\n                                                              "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                                            "},{"text":"↑"},{"text":"out"},{"ref":"Eq","text":" =\n                                                              "},{"ref":"NumConvSpec.saturate","text":"NumConvSpec.saturate"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.signedMin","text":"NumConvSpec.signedMin"},{"text":" "},{"text":"16"},{"text":")"},{"text":"\n                                                                "},{"text":"("},{"ref":"NumConvSpec.signedMax","text":"NumConvSpec.signedMax"},{"text":" "},{"text":"16"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":")"},{"ref":"And","text":" ∧\n                                                      "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.I128","text":"Aeneas.Std.I128"},{"text":"),\n                                                          "},{"text":"∃ "},{"text":"out"},{"text":",\n                                                            "},{"ref":"num_conv_verification_api.saturating_truncate_i128_i16","text":"num_conv_verification_api.saturating_truncate_i128_i16"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" =\n                                                                "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                                              "},{"text":"↑"},{"text":"out"},{"ref":"Eq","text":" =\n                                                                "},{"ref":"NumConvSpec.saturate","text":"NumConvSpec.saturate"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.signedMin","text":"NumConvSpec.signedMin"},{"text":" "},{"text":"16"},{"text":")"},{"text":"\n                                                                  "},{"text":"("},{"ref":"NumConvSpec.signedMax","text":"NumConvSpec.signedMax"},{"text":" "},{"text":"16"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":")"},{"ref":"And","text":" ∧\n                                                        "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.Isize","text":"Aeneas.Std.Isize"},{"text":"),\n                                                            "},{"text":"∃ "},{"text":"out"},{"text":",\n                                                              "},{"ref":"num_conv_verification_api.saturating_truncate_isize_i16","text":"num_conv_verification_api.saturating_truncate_isize_i16"},{"text":"\n                                                                    "},{"text":"x"},{"ref":"Eq","text":" =\n                                                                  "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                                                "},{"text":"↑"},{"text":"out"},{"ref":"Eq","text":" =\n                                                                  "},{"ref":"NumConvSpec.saturate","text":"NumConvSpec.saturate"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.signedMin","text":"NumConvSpec.signedMin"},{"text":" "},{"text":"16"},{"text":")"},{"text":"\n                                                                    "},{"text":"("},{"ref":"NumConvSpec.signedMax","text":"NumConvSpec.signedMax"},{"text":" "},{"text":"16"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":")"},{"ref":"And","text":" ∧\n                                                          "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.I32","text":"Aeneas.Std.I32"},{"text":"),\n                                                              "},{"text":"∃ "},{"text":"out"},{"text":",\n                                                                "},{"ref":"num_conv_verification_api.saturating_truncate_i32_i32","text":"num_conv_verification_api.saturating_truncate_i32_i32"},{"text":"\n                                                                      "},{"text":"x"},{"ref":"Eq","text":" =\n                                                                    "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                                                  "},{"text":"↑"},{"text":"out"},{"ref":"Eq","text":" =\n                                                                    "},{"ref":"NumConvSpec.saturate","text":"NumConvSpec.saturate"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.signedMin","text":"NumConvSpec.signedMin"},{"text":" "},{"text":"32"},{"text":")"},{"text":"\n                                                                      "},{"text":"("},{"ref":"NumConvSpec.signedMax","text":"NumConvSpec.signedMax"},{"text":" "},{"text":"32"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":")"},{"ref":"And","text":" ∧\n                                                            "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.I64","text":"Aeneas.Std.I64"},{"text":"),\n                                                                "},{"text":"∃ "},{"text":"out"},{"text":",\n                                                                  "},{"ref":"num_conv_verification_api.saturating_truncate_i64_i32","text":"num_conv_verification_api.saturating_truncate_i64_i32"},{"text":"\n                                                                        "},{"text":"x"},{"ref":"Eq","text":" =\n                                                                      "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                                                    "},{"text":"↑"},{"text":"out"},{"ref":"Eq","text":" =\n                                                                      "},{"ref":"NumConvSpec.saturate","text":"NumConvSpec.saturate"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.signedMin","text":"NumConvSpec.signedMin"},{"text":" "},{"text":"32"},{"text":")"},{"text":"\n                                                                        "},{"text":"("},{"ref":"NumConvSpec.signedMax","text":"NumConvSpec.signedMax"},{"text":" "},{"text":"32"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":")"},{"ref":"And","text":" ∧\n                                                              "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.I128","text":"Aeneas.Std.I128"},{"text":"),\n                                                                  "},{"text":"∃ "},{"text":"out"},{"text":",\n                                                                    "},{"ref":"num_conv_verification_api.saturating_truncate_i128_i32","text":"num_conv_verification_api.saturating_truncate_i128_i32"},{"text":"\n                                                                          "},{"text":"x"},{"ref":"Eq","text":" =\n                                                                        "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                                                      "},{"text":"↑"},{"text":"out"},{"ref":"Eq","text":" =\n                                                                        "},{"ref":"NumConvSpec.saturate","text":"NumConvSpec.saturate"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.signedMin","text":"NumConvSpec.signedMin"},{"text":" "},{"text":"32"},{"text":")"},{"text":"\n                                                                          "},{"text":"("},{"ref":"NumConvSpec.signedMax","text":"NumConvSpec.signedMax"},{"text":" "},{"text":"32"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":")"},{"ref":"And","text":" ∧\n                                                                "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.I64","text":"Aeneas.Std.I64"},{"text":"),\n                                                                    "},{"text":"∃ "},{"text":"out"},{"text":",\n                                                                      "},{"ref":"num_conv_verification_api.saturating_truncate_i64_i64","text":"num_conv_verification_api.saturating_truncate_i64_i64"},{"text":"\n                                                                            "},{"text":"x"},{"ref":"Eq","text":" =\n                                                                          "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                                                        "},{"text":"↑"},{"text":"out"},{"ref":"Eq","text":" =\n                                                                          "},{"ref":"NumConvSpec.saturate","text":"NumConvSpec.saturate"},{"text":"\n                                                                            "},{"text":"("},{"ref":"NumConvSpec.signedMin","text":"NumConvSpec.signedMin"},{"text":" "},{"text":"64"},{"text":")"},{"text":"\n                                                                            "},{"text":"("},{"ref":"NumConvSpec.signedMax","text":"NumConvSpec.signedMax"},{"text":" "},{"text":"64"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":")"},{"ref":"And","text":" ∧\n                                                                  "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.I128","text":"Aeneas.Std.I128"},{"text":"),\n                                                                      "},{"text":"∃ "},{"text":"out"},{"text":",\n                                                                        "},{"ref":"num_conv_verification_api.saturating_truncate_i128_i64","text":"num_conv_verification_api.saturating_truncate_i128_i64"},{"text":"\n                                                                              "},{"text":"x"},{"ref":"Eq","text":" =\n                                                                            "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                                                          "},{"text":"↑"},{"text":"out"},{"ref":"Eq","text":" =\n                                                                            "},{"ref":"NumConvSpec.saturate","text":"NumConvSpec.saturate"},{"text":"\n                                                                              "},{"text":"("},{"ref":"NumConvSpec.signedMin","text":"NumConvSpec.signedMin"},{"text":" "},{"text":"64"},{"text":")"},{"text":"\n                                                                              "},{"text":"("},{"ref":"NumConvSpec.signedMax","text":"NumConvSpec.signedMax"},{"text":" "},{"text":"64"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":")"},{"ref":"And","text":" ∧\n                                                                    "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.I128","text":"Aeneas.Std.I128"},{"text":"),\n                                                                        "},{"text":"∃ "},{"text":"out"},{"text":",\n                                                                          "},{"ref":"num_conv_verification_api.saturating_truncate_i128_i128","text":"num_conv_verification_api.saturating_truncate_i128_i128"},{"text":"\n                                                                                "},{"text":"x"},{"ref":"Eq","text":" =\n                                                                              "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                                                            "},{"text":"↑"},{"text":"out"},{"ref":"Eq","text":" =\n                                                                              "},{"ref":"NumConvSpec.saturate","text":"NumConvSpec.saturate"},{"text":"\n                                                                                "},{"text":"("},{"ref":"NumConvSpec.signedMin","text":"NumConvSpec.signedMin"},{"text":" "},{"text":"128"},{"text":")"},{"text":"\n                                                                                "},{"text":"("},{"ref":"NumConvSpec.signedMax","text":"NumConvSpec.signedMax"},{"text":" "},{"text":"128"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":")"},{"ref":"And","text":" ∧\n                                                                      "},{"text":"∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.Isize","text":"Aeneas.Std.Isize"},{"text":"),\n                                                                        "},{"text":"∃ "},{"text":"out"},{"text":",\n                                                                          "},{"ref":"num_conv_verification_api.saturating_truncate_isize_isize","text":"num_conv_verification_api.saturating_truncate_isize_isize"},{"text":"\n                                                                                "},{"text":"x"},{"ref":"Eq","text":" =\n                                                                              "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                                                            "},{"text":"↑"},{"text":"out"},{"ref":"Eq","text":" =\n                                                                              "},{"ref":"NumConvSpec.saturate","text":"NumConvSpec.saturate"},{"text":"\n                                                                                "},{"text":"("},{"ref":"NumConvSpec.signedMin","text":"NumConvSpec.signedMin"},{"text":"\n                                                                                  "},{"ref":"Aeneas.Std.IScalarTy.Isize","text":"Aeneas.Std.IScalarTy.Isize"},{"text":"."},{"ref":"Aeneas.Std.IScalarTy.numBits","text":"numBits"},{"text":")"},{"text":"\n                                                                                "},{"text":"("},{"ref":"NumConvSpec.signedMax","text":"NumConvSpec.signedMax"},{"text":"\n                                                                                  "},{"ref":"Aeneas.Std.IScalarTy.Isize","text":"Aeneas.Std.IScalarTy.Isize"},{"text":"."},{"ref":"Aeneas.Std.IScalarTy.numBits","text":"numBits"},{"text":")"},{"text":"\n                                                                                "},{"text":"↑"},{"text":"x"}],"definitions":[{"module":"Init.Prelude","name":"And","source":{"first_line":645,"last_line":659}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.U8","source":{"first_line":669,"last_line":669}},{"module":"Init.Core","name":"Exists","source":{"first_line":313,"last_line":341}},{"module":"Init.Prelude","name":"Eq","source":{"first_line":46,"last_line":76}},{"module":"Aeneas.Std.Primitives","name":"Aeneas.Std.Result","source":{"first_line":67,"last_line":68}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.saturating_truncate_u8_u8","source":{"first_line":4171,"last_line":4177}},{"module":"Aeneas.Std.Primitives","name":"Aeneas.Std.Result.ok","source":{"first_line":72,"last_line":72}},{"module":"Init.Data.Int.Basic","name":"Int","source":{"first_line":35,"last_line":58}},{"module":"Init.Data.Cast","name":"Nat.cast","source":{"first_line":69,"last_line":71}},{"module":"Init.Data.Int.Basic","name":"instNatCastInt","source":{"first_line":63,"last_line":63}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.UScalar.val","source":{"first_line":76,"last_line":76}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.UScalarTy.U8","source":{"first_line":33,"last_line":33}},{"module":"Specs","name":"NumConvSpec.saturate","source":{"first_line":36,"last_line":37}},{"module":"Init.Prelude","name":"OfNat.ofNat","source":{"first_line":1393,"last_line":1393}},{"module":"Init.Data.Int.Basic","name":"instOfNat","source":{"first_line":65,"last_line":66}},{"module":"Specs","name":"NumConvSpec.unsignedMax","source":{"first_line":20,"last_line":20}},{"module":"Init.Prelude","name":"Nat","source":{"first_line":1349,"last_line":1371}},{"module":"Init.Prelude","name":"instOfNatNat","source":{"first_line":1395,"last_line":1397}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.U16","source":{"first_line":670,"last_line":670}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.saturating_truncate_u16_u8","source":{"first_line":4211,"last_line":4217}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.UScalarTy.U16","source":{"first_line":34,"last_line":34}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.U32","source":{"first_line":671,"last_line":671}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.saturating_truncate_u32_u8","source":{"first_line":4251,"last_line":4257}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.UScalarTy.U32","source":{"first_line":35,"last_line":35}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.U64","source":{"first_line":672,"last_line":672}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.saturating_truncate_u64_u8","source":{"first_line":4291,"last_line":4297}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.UScalarTy.U64","source":{"first_line":36,"last_line":36}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.U128","source":{"first_line":673,"last_line":673}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.saturating_truncate_u128_u8","source":{"first_line":4331,"last_line":4337}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.UScalarTy.U128","source":{"first_line":37,"last_line":37}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.Usize","source":{"first_line":668,"last_line":668}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.saturating_truncate_usize_u8","source":{"first_line":4371,"last_line":4377}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.UScalarTy.Usize","source":{"first_line":32,"last_line":32}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.saturating_truncate_u16_u16","source":{"first_line":4411,"last_line":4417}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.saturating_truncate_u32_u16","source":{"first_line":4451,"last_line":4457}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.saturating_truncate_u64_u16","source":{"first_line":4491,"last_line":4497}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.saturating_truncate_u128_u16","source":{"first_line":4531,"last_line":4537}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.saturating_truncate_usize_u16","source":{"first_line":4571,"last_line":4577}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.saturating_truncate_u32_u32","source":{"first_line":4611,"last_line":4617}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.saturating_truncate_u64_u32","source":{"first_line":4651,"last_line":4657}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.saturating_truncate_u128_u32","source":{"first_line":4691,"last_line":4697}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.saturating_truncate_u64_u64","source":{"first_line":4731,"last_line":4737}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.saturating_truncate_u128_u64","source":{"first_line":4771,"last_line":4777}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.saturating_truncate_u128_u128","source":{"first_line":4811,"last_line":4817}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.saturating_truncate_usize_usize","source":{"first_line":4851,"last_line":4857}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.UScalarTy.numBits","source":{"first_line":50,"last_line":58}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.I8","source":{"first_line":675,"last_line":675}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.saturating_truncate_i8_i8","source":{"first_line":4892,"last_line":4898}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.IScalar.val","source":{"first_line":84,"last_line":84}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.IScalarTy.I8","source":{"first_line":43,"last_line":43}},{"module":"Specs","name":"NumConvSpec.signedMin","source":{"first_line":22,"last_line":22}},{"module":"Specs","name":"NumConvSpec.signedMax","source":{"first_line":24,"last_line":24}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.I16","source":{"first_line":676,"last_line":676}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.saturating_truncate_i16_i8","source":{"first_line":4932,"last_line":4938}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.IScalarTy.I16","source":{"first_line":44,"last_line":44}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.I32","source":{"first_line":677,"last_line":677}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.saturating_truncate_i32_i8","source":{"first_line":4972,"last_line":4978}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.IScalarTy.I32","source":{"first_line":45,"last_line":45}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.I64","source":{"first_line":678,"last_line":678}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.saturating_truncate_i64_i8","source":{"first_line":5012,"last_line":5018}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.IScalarTy.I64","source":{"first_line":46,"last_line":46}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.I128","source":{"first_line":679,"last_line":679}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.saturating_truncate_i128_i8","source":{"first_line":5052,"last_line":5058}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.IScalarTy.I128","source":{"first_line":47,"last_line":47}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.Isize","source":{"first_line":674,"last_line":674}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.saturating_truncate_isize_i8","source":{"first_line":5092,"last_line":5098}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.IScalarTy.Isize","source":{"first_line":42,"last_line":42}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.saturating_truncate_i16_i16","source":{"first_line":5132,"last_line":5138}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.saturating_truncate_i32_i16","source":{"first_line":5172,"last_line":5178}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.saturating_truncate_i64_i16","source":{"first_line":5212,"last_line":5218}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.saturating_truncate_i128_i16","source":{"first_line":5252,"last_line":5258}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.saturating_truncate_isize_i16","source":{"first_line":5292,"last_line":5298}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.saturating_truncate_i32_i32","source":{"first_line":5332,"last_line":5338}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.saturating_truncate_i64_i32","source":{"first_line":5372,"last_line":5378}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.saturating_truncate_i128_i32","source":{"first_line":5412,"last_line":5418}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.saturating_truncate_i64_i64","source":{"first_line":5452,"last_line":5458}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.saturating_truncate_i128_i64","source":{"first_line":5492,"last_line":5498}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.saturating_truncate_i128_i128","source":{"first_line":5532,"last_line":5538}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.saturating_truncate_isize_isize","source":{"first_line":5572,"last_line":5578}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.IScalarTy.numBits","source":{"first_line":60,"last_line":68}}],"definitions_truncated":false,"first_line":128,"last_line":167,"module":"Contracts","program":null,"program_head":null,"statement":"And\n  (∀ (x : Aeneas.Std.U8),\n    @Exists.{1} Aeneas.Std.U8 fun (out : Aeneas.Std.U8) =>\n      And\n        (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.U8) (num_conv_verification_api.saturating_truncate_u8_u8 x)\n          (@Aeneas.Std.Result.ok.{0} Aeneas.Std.U8 out))\n        (@Eq.{1} Int (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U8 out))\n          (NumConvSpec.saturate (@OfNat.ofNat.{0} Int (nat_lit 0) (@instOfNat (nat_lit 0)))\n            (NumConvSpec.unsignedMax (@OfNat.ofNat.{0} Nat (nat_lit 8) (instOfNatNat (nat_lit 8))))\n            (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U8 x)))))\n  (And\n    (∀ (x : Aeneas.Std.U16),\n      @Exists.{1} Aeneas.Std.U8 fun (out : Aeneas.Std.U8) =>\n        And\n          (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.U8) (num_conv_verification_api.saturating_truncate_u16_u8 x)\n            (@Aeneas.Std.Result.ok.{0} Aeneas.Std.U8 out))\n          (@Eq.{1} Int (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U8 out))\n            (NumConvSpec.saturate (@OfNat.ofNat.{0} Int (nat_lit 0) (@instOfNat (nat_lit 0)))\n              (NumConvSpec.unsignedMax (@OfNat.ofNat.{0} Nat (nat_lit 8) (instOfNatNat (nat_lit 8))))\n              (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U16 x)))))\n    (And\n      (∀ (x : Aeneas.Std.U32),\n        @Exists.{1} Aeneas.Std.U8 fun (out : Aeneas.Std.U8) =>\n          And\n            (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.U8) (num_conv_verification_api.saturating_truncate_u32_u8 x)\n              (@Aeneas.Std.Result.ok.{0} Aeneas.Std.U8 out))\n            (@Eq.{1} Int (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U8 out))\n              (NumConvSpec.saturate (@OfNat.ofNat.{0} Int (nat_lit 0) (@instOfNat (nat_lit 0)))\n                (NumConvSpec.unsignedMax (@OfNat.ofNat.{0} Nat (nat_lit 8) (instOfNatNat (nat_lit 8))))\n                (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U32 x)))))\n      (And\n        (∀ (x : Aeneas.Std.U64),\n          @Exists.{1} Aeneas.Std.U8 fun (out : Aeneas.Std.U8) =>\n            And\n              (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.U8) (num_conv_verification_api.saturating_truncate_u64_u8 x)\n                (@Aeneas.Std.Result.ok.{0} Aeneas.Std.U8 out))\n              (@Eq.{1} Int (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U8 out))\n                (NumConvSpec.saturate (@OfNat.ofNat.{0} Int (nat_lit 0) (@instOfNat (nat_lit 0)))\n                  (NumConvSpec.unsignedMax (@OfNat.ofNat.{0} Nat (nat_lit 8) (instOfNatNat (nat_lit 8))))\n                  (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U64 x)))))\n        (And\n          (∀ (x : Aeneas.Std.U128),\n            @Exists.{1} Aeneas.Std.U8 fun (out : Aeneas.Std.U8) =>\n              And\n                (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.U8) (num_conv_verification_api.saturating_truncate_u128_u8 x)\n                  (@Aeneas.Std.Result.ok.{0} Aeneas.Std.U8 out))\n                (@Eq.{1} Int (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U8 out))\n                  (NumConvSpec.saturate (@OfNat.ofNat.{0} Int (nat_lit 0) (@instOfNat (nat_lit 0)))\n                    (NumConvSpec.unsignedMax (@OfNat.ofNat.{0} Nat (nat_lit 8) (instOfNatNat (nat_lit 8))))\n                    (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U128 x)))))\n          (And\n            (∀ (x : Aeneas.Std.Usize),\n              @Exists.{1} Aeneas.Std.U8 fun (out : Aeneas.Std.U8) =>\n                And\n                  (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.U8)\n                    (num_conv_verification_api.saturating_truncate_usize_u8 x)\n                    (@Aeneas.Std.Result.ok.{0} Aeneas.Std.U8 out))\n                  (@Eq.{1} Int (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U8 out))\n                    (NumConvSpec.saturate (@OfNat.ofNat.{0} Int (nat_lit 0) (@instOfNat (nat_lit 0)))\n                      (NumConvSpec.unsignedMax (@OfNat.ofNat.{0} Nat (nat_lit 8) (instOfNatNat (nat_lit 8))))\n                      (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.Usize x)))))\n            (And\n              (∀ (x : Aeneas.Std.U16),\n                @Exists.{1} Aeneas.Std.U16 fun (out : Aeneas.Std.U16) =>\n                  And\n                    (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.U16)\n                      (num_conv_verification_api.saturating_truncate_u16_u16 x)\n                      (@Aeneas.Std.Result.ok.{0} Aeneas.Std.U16 out))\n                    (@Eq.{1} Int\n                      (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U16 out))\n                      (NumConvSpec.saturate (@OfNat.ofNat.{0} Int (nat_lit 0) (@instOfNat (nat_lit 0)))\n                        (NumConvSpec.unsignedMax (@OfNat.ofNat.{0} Nat (nat_lit 16) (instOfNatNat (nat_lit 16))))\n                        (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U16 x)))))\n              (And\n                (∀ (x : Aeneas.Std.U32),\n                  @Exists.{1} Aeneas.Std.U16 fun (out : Aeneas.Std.U16) =>\n                    And\n                      (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.U16)\n                        (num_conv_verification_api.saturating_truncate_u32_u16 x)\n                        (@Aeneas.Std.Result.ok.{0} Aeneas.Std.U16 out))\n                      (@Eq.{1} Int\n                        (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U16 out))\n                        (NumConvSpec.saturate (@OfNat.ofNat.{0} Int (nat_lit 0) (@instOfNat (nat_lit 0)))\n                          (NumConvSpec.unsignedMax (@OfNat.ofNat.{0} Nat (nat_lit 16) (instOfNatNat (nat_lit 16))))\n                          (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U32 x)))))\n                (And\n                  (∀ (x : Aeneas.Std.U64),\n                    @Exists.{1} Aeneas.Std.U16 fun (out : Aeneas.Std.U16) =>\n                      And\n                        (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.U16)\n                          (num_conv_verification_api.saturating_truncate_u64_u16 x)\n                          (@Aeneas.Std.Result.ok.{0} Aeneas.Std.U16 out))\n                        (@Eq.{1} Int\n                          (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U16 out))\n                          (NumConvSpec.saturate (@OfNat.ofNat.{0} Int (nat_lit 0) (@instOfNat (nat_lit 0)))\n                            (NumConvSpec.unsignedMax (@OfNat.ofNat.{0} Nat (nat_lit 16) (instOfNatNat (nat_lit 16))))\n                            (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U64 x)))))\n                  (And\n                    (∀ (x : Aeneas.Std.U128),\n                      @Exists.{1} Aeneas.Std.U16 fun (out : Aeneas.Std.U16) =>\n                        And\n                          (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.U16)\n                            (num_conv_verification_api.saturating_truncate_u128_u16 x)\n                            (@Aeneas.Std.Result.ok.{0} Aeneas.Std.U16 out))\n                          (@Eq.{1} Int\n                            (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U16 out))\n                            (NumConvSpec.saturate (@OfNat.ofNat.{0} Int (nat_lit 0) (@instOfNat (nat_lit 0)))\n                              (NumConvSpec.unsignedMax (@OfNat.ofNat.{0} Nat (nat_lit 16) (instOfNatNat (nat_lit 16))))\n                              (@Nat.cast.{0} Int instNatCastInt\n                                (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U128 x)))))\n                    (And\n                      (∀ (x : Aeneas.Std.Usize),\n                        @Exists.{1} Aeneas.Std.U16 fun (out : Aeneas.Std.U16) =>\n                          And\n                            (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.U16)\n                              (num_conv_verification_api.saturating_truncate_usize_u16 x)\n                              (@Aeneas.Std.Result.ok.{0} Aeneas.Std.U16 out))\n                            (@Eq.{1} Int\n                              (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U16 out))\n                              (NumConvSpec.saturate (@OfNat.ofNat.{0} Int (nat_lit 0) (@instOfNat (nat_lit 0)))\n                                (NumConvSpec.unsignedMax\n                                  (@OfNat.ofNat.{0} Nat (nat_lit 16) (instOfNatNat (nat_lit 16))))\n                                (@Nat.cast.{0} Int instNatCastInt\n                                  (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.Usize x)))))\n                      (And\n                        (∀ (x : Aeneas.Std.U32),\n                          @Exists.{1} Aeneas.Std.U32 fun (out : Aeneas.Std.U32) =>\n                            And\n                              (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.U32)\n                                (num_conv_verification_api.saturating_truncate_u32_u32 x)\n                                (@Aeneas.Std.Result.ok.{0} Aeneas.Std.U32 out))\n                              (@Eq.{1} Int\n                                (@Nat.cast.{0} Int instNatCastInt\n                                  (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U32 out))\n                                (NumConvSpec.saturate (@OfNat.ofNat.{0} Int (nat_lit 0) (@instOfNat (nat_lit 0)))\n                                  (NumConvSpec.unsignedMax\n                                    (@OfNat.ofNat.{0} Nat (nat_lit 32) (instOfNatNat (nat_lit 32))))\n                                  (@Nat.cast.{0} Int instNatCastInt\n                                    (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U32 x)))))\n                        (And\n                          (∀ (x : Aeneas.Std.U64),\n                            @Exists.{1} Aeneas.Std.U32 fun (out : Aeneas.Std.U32) =>\n                              And\n                                (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.U32)\n                                  (num_conv_verification_api.saturating_truncate_u64_u32 x)\n                                  (@Aeneas.Std.Result.ok.{0} Aeneas.Std.U32 out))\n                                (@Eq.{1} Int\n                                  (@Nat.cast.{0} Int instNatCastInt\n                                    (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U32 out))\n                                  (NumConvSpec.saturate (@OfNat.ofNat.{0} Int (nat_lit 0) (@instOfNat (nat_lit 0)))\n                                    (NumConvSpec.unsignedMax\n                                      (@OfNat.ofNat.{0} Nat (nat_lit 32) (instOfNatNat (nat_lit 32))))\n                                    (@Nat.cast.{0} Int instNatCastInt\n                                      (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U64 x)))))\n                          (And\n                            (∀ (x : Aeneas.Std.U128),\n                              @Exists.{1} Aeneas.Std.U32 fun (out : Aeneas.Std.U32) =>\n                                And\n                                  (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.U32)\n                                    (num_conv_verification_api.saturating_truncate_u128_u32 x)\n                                    (@Aeneas.Std.Result.ok.{0} Aeneas.Std.U32 out))\n                                  (@Eq.{1} Int\n                                    (@Nat.cast.{0} Int instNatCastInt\n                                      (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U32 out))\n                                    (NumConvSpec.saturate (@OfNat.ofNat.{0} Int (nat_lit 0) (@instOfNat (nat_lit 0)))\n                                      (NumConvSpec.unsignedMax\n                                        (@OfNat.ofNat.{0} Nat (nat_lit 32) (instOfNatNat (nat_lit 32))))\n                                      (@Nat.cast.{0} Int instNatCastInt\n                                        (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U128 x)))))\n                            (And\n                              (∀ (x : Aeneas.Std.U64),\n                                @Exists.{1} Aeneas.Std.U64 fun (out : Aeneas.Std.U64) =>\n                                  And\n                                    (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.U64)\n                                      (num_conv_verification_api.saturating_truncate_u64_u64 x)\n                                      (@Aeneas.Std.Result.ok.{0} Aeneas.Std.U64 out))\n                                    (@Eq.{1} Int\n                                      (@Nat.cast.{0} Int instNatCastInt\n                                        (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U64 out))\n                                      (NumConvSpec.saturate (@OfNat.ofNat.{0} Int (nat_lit 0) (@instOfNat (nat_lit 0)))\n                                        (NumConvSpec.unsignedMax\n                                          (@OfNat.ofNat.{0} Nat (nat_lit 64) (instOfNatNat (nat_lit 64))))\n                                        (@Nat.cast.{0} Int instNatCastInt\n                                          (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U64 x)))))\n                              (And\n                                (∀ (x : Aeneas.Std.U128),\n                                  @Exists.{1} Aeneas.Std.U64 fun (out : Aeneas.Std.U64) =>\n                                    And\n                                      (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.U64)\n                                        (num_conv_verification_api.saturating_truncate_u128_u64 x)\n                                        (@Aeneas.Std.Result.ok.{0} Aeneas.Std.U64 out))\n                                      (@Eq.{1} Int\n                                        (@Nat.cast.{0} Int instNatCastInt\n                                          (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U64 out))\n                                        (NumConvSpec.saturate\n                                          (@OfNat.ofNat.{0} Int (nat_lit 0) (@instOfNat (nat_lit 0)))\n                                          (NumConvSpec.unsignedMax\n                                            (@OfNat.ofNat.{0} Nat (nat_lit 64) (instOfNatNat (nat_lit 64))))\n                                          (@Nat.cast.{0} Int instNatCastInt\n                                            (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U128 x)))))\n                                (And\n                                  (∀ (x : Aeneas.Std.U128),\n                                    @Exists.{1} Aeneas.Std.U128 fun (out : Aeneas.Std.U128) =>\n                                      And\n                                        (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.U128)\n                                          (num_conv_verification_api.saturating_truncate_u128_u128 x)\n                                          (@Aeneas.Std.Result.ok.{0} Aeneas.Std.U128 out))\n                                        (@Eq.{1} Int\n                                          (@Nat.cast.{0} Int instNatCastInt\n                                            (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U128 out))\n                                          (NumConvSpec.saturate\n                                            (@OfNat.ofNat.{0} Int (nat_lit 0) (@instOfNat (nat_lit 0)))\n                                            (NumConvSpec.unsignedMax\n                                              (@OfNat.ofNat.{0} Nat (nat_lit 128) (instOfNatNat (nat_lit 128))))\n                                            (@Nat.cast.{0} Int instNatCastInt\n                                              (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U128 x)))))\n                                  (And\n                                    (∀ (x : Aeneas.Std.Usize),\n                                      @Exists.{1} Aeneas.Std.Usize fun (out : Aeneas.Std.Usize) =>\n                                        And\n                                          (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.Usize)\n                                            (num_conv_verification_api.saturating_truncate_usize_usize x)\n                                            (@Aeneas.Std.Result.ok.{0} Aeneas.Std.Usize out))\n                                          (@Eq.{1} Int\n                                            (@Nat.cast.{0} Int instNatCastInt\n                                              (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.Usize out))\n                                            (NumConvSpec.saturate\n                                              (@OfNat.ofNat.{0} Int (nat_lit 0) (@instOfNat (nat_lit 0)))\n                                              (NumConvSpec.unsignedMax\n                                                (Aeneas.Std.UScalarTy.numBits Aeneas.Std.UScalarTy.Usize))\n                                              (@Nat.cast.{0} Int instNatCastInt\n                                                (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.Usize x)))))\n                                    (And\n                                      (∀ (x : Aeneas.Std.I8),\n                                        @Exists.{1} Aeneas.Std.I8 fun (out : Aeneas.Std.I8) =>\n                                          And\n                                            (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.I8)\n                                              (num_conv_verification_api.saturating_truncate_i8_i8 x)\n                                              (@Aeneas.Std.Result.ok.{0} Aeneas.Std.I8 out))\n                                            (@Eq.{1} Int (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I8 out)\n                                              (NumConvSpec.saturate\n                                                (NumConvSpec.signedMin\n                                                  (@OfNat.ofNat.{0} Nat (nat_lit 8) (instOfNatNat (nat_lit 8))))\n                                                (NumConvSpec.signedMax\n                                                  (@OfNat.ofNat.{0} Nat (nat_lit 8) (instOfNatNat (nat_lit 8))))\n                                                (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I8 x))))\n                                      (And\n                                        (∀ (x : Aeneas.Std.I16),\n                                          @Exists.{1} Aeneas.Std.I8 fun (out : Aeneas.Std.I8) =>\n                                            And\n                                              (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.I8)\n                                                (num_conv_verification_api.saturating_truncate_i16_i8 x)\n                                                (@Aeneas.Std.Result.ok.{0} Aeneas.Std.I8 out))\n                                              (@Eq.{1} Int (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I8 out)\n                                                (NumConvSpec.saturate\n                                                  (NumConvSpec.signedMin\n                                                    (@OfNat.ofNat.{0} Nat (nat_lit 8) (instOfNatNat (nat_lit 8))))\n                                                  (NumConvSpec.signedMax\n                                                    (@OfNat.ofNat.{0} Nat (nat_lit 8) (instOfNatNat (nat_lit 8))))\n                                                  (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I16 x))))\n                                        (And\n                                          (∀ (x : Aeneas.Std.I32),\n                                            @Exists.{1} Aeneas.Std.I8 fun (out : Aeneas.Std.I8) =>\n                                              And\n                                                (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.I8)\n                                                  (num_conv_verification_api.saturating_truncate_i32_i8 x)\n                                                  (@Aeneas.Std.Result.ok.{0} Aeneas.Std.I8 out))\n                                                (@Eq.{1} Int (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I8 out)\n                                                  (NumConvSpec.saturate\n                                                    (NumConvSpec.signedMin\n                                                      (@OfNat.ofNat.{0} Nat (nat_lit 8) (instOfNatNat (nat_lit 8))))\n                                                    (NumConvSpec.signedMax\n                                                      (@OfNat.ofNat.{0} Nat (nat_lit 8) (instOfNatNat (nat_lit 8))))\n                                                    (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I32 x))))\n                                          (And\n                                            (∀ (x : Aeneas.Std.I64),\n                                              @Exists.{1} Aeneas.Std.I8 fun (out : Aeneas.Std.I8) =>\n                                                And\n                                                  (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.I8)\n                                                    (num_conv_verification_api.saturating_truncate_i64_i8 x)\n                                                    (@Aeneas.Std.Result.ok.{0} Aeneas.Std.I8 out))\n                                                  (@Eq.{1} Int (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I8 out)\n                                                    (NumConvSpec.saturate\n                                                      (NumConvSpec.signedMin\n                                                        (@OfNat.ofNat.{0} Nat (nat_lit 8) (instOfNatNat (nat_lit 8))))\n                                                      (NumConvSpec.signedMax\n                                                        (@OfNat.ofNat.{0} Nat (nat_lit 8) (instOfNatNat (nat_lit 8))))\n                                                      (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I64 x))))\n                                            (And\n                                              (∀ (x : Aeneas.Std.I128),\n                                                @Exists.{1} Aeneas.Std.I8 fun (out : Aeneas.Std.I8) =>\n                                                  And\n                                                    (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.I8)\n                                                      (num_conv_verification_api.saturating_truncate_i128_i8 x)\n                                                      (@Aeneas.Std.Result.ok.{0} Aeneas.Std.I8 out))\n                                                    (@Eq.{1} Int (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I8 out)\n                                                      (NumConvSpec.saturate\n                                                        (NumConvSpec.signedMin\n                                                          (@OfNat.ofNat.{0} Nat (nat_lit 8) (instOfNatNat (nat_lit 8))))\n                                                        (NumConvSpec.signedMax\n                                                          (@OfNat.ofNat.{0} Nat (nat_lit 8) (instOfNatNat (nat_lit 8))))\n                                                        (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I128 x))))\n                                              (And\n                                                (∀ (x : Aeneas.Std.Isize),\n                                                  @Exists.{1} Aeneas.Std.I8 fun (out : Aeneas.Std.I8) =>\n                                                    And\n                                                      (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.I8)\n                                                        (num_conv_verification_api.saturating_truncate_isize_i8 x)\n                                                        (@Aeneas.Std.Result.ok.{0} Aeneas.Std.I8 out))\n                                                      (@Eq.{1} Int (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I8 out)\n                                                        (NumConvSpec.saturate\n                                                          (NumConvSpec.signedMin\n                                                            (@OfNat.ofNat.{0} Nat (nat_lit 8)\n                                                              (instOfNatNat (nat_lit 8))))\n                                                          (NumConvSpec.signedMax\n                                                            (@OfNat.ofNat.{0} Nat (nat_lit 8)\n                                                              (instOfNatNat (nat_lit 8))))\n                                                          (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.Isize x))))\n                                                (And\n                                                  (∀ (x : Aeneas.Std.I16),\n                                                    @Exists.{1} Aeneas.Std.I16 fun (out : Aeneas.Std.I16) =>\n                                                      And\n                                                        (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.I16)\n                                                          (num_conv_verification_api.saturating_truncate_i16_i16 x)\n                                                          (@Aeneas.Std.Result.ok.{0} Aeneas.Std.I16 out))\n                                                        (@Eq.{1} Int\n                                                          (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I16 out)\n                                                          (NumConvSpec.saturate\n                                                            (NumConvSpec.signedMin\n                                                              (@OfNat.ofNat.{0} Nat (nat_lit 16)\n                                                                (instOfNatNat (nat_lit 16))))\n                                                            (NumConvSpec.signedMax\n                                                              (@OfNat.ofNat.{0} Nat (nat_lit 16)\n                                                                (instOfNatNat (nat_lit 16))))\n                                                            (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I16 x))))\n                                                  (And\n                                                    (∀ (x : Aeneas.Std.I32),\n                                                      @Exists.{1} Aeneas.Std.I16 fun (out : Aeneas.Std.I16) =>\n                                                        And\n                                                          (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.I16)\n                                                            (num_conv_verification_api.saturating_truncate_i32_i16 x)\n                                                            (@Aeneas.Std.Result.ok.{0} Aeneas.Std.I16 out))\n                                                          (@Eq.{1} Int\n                                                            (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I16 out)\n                                                            (NumConvSpec.saturate\n                                                              (NumConvSpec.signedMin\n                                                                (@OfNat.ofNat.{0} Nat (nat_lit 16)\n                                                                  (instOfNatNat (nat_lit 16))))\n                                                              (NumConvSpec.signedMax\n                                                                (@OfNat.ofNat.{0} Nat (nat_lit 16)\n                                                                  (instOfNatNat (nat_lit 16))))\n                                                              (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I32 x))))\n                                                    (And\n                                                      (∀ (x : Aeneas.Std.I64),\n                                                        @Exists.{1} Aeneas.Std.I16 fun (out : Aeneas.Std.I16) =>\n                                                          And\n                                                            (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.I16)\n                                                              (num_conv_verification_api.saturating_truncate_i64_i16 x)\n                                                              (@Aeneas.Std.Result.ok.{0} Aeneas.Std.I16 out))\n                                                            (@Eq.{1} Int\n                                                              (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I16 out)\n                                                              (NumConvSpec.saturate\n                                                                (NumConvSpec.signedMin\n                                                                  (@OfNat.ofNat.{0} Nat (nat_lit 16)\n                                                                    (instOfNatNat (nat_lit 16))))\n                                                                (NumConvSpec.signedMax\n                                                                  (@OfNat.ofNat.{0} Nat (nat_lit 16)\n                                                                    (instOfNatNat (nat_lit 16))))\n                                                                (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I64 x))))\n                                                      (And\n                                                        (∀ (x : Aeneas.Std.I128),\n                                                          @Exists.{1} Aeneas.Std.I16 fun (out : Aeneas.Std.I16) =>\n                                                            And\n                                                              (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.I16)\n                                                                (num_conv_verification_api.saturating_truncate_i128_i16\n                                                                  x)\n                                                                (@Aeneas.Std.Result.ok.{0} Aeneas.Std.I16 out))\n                                                              (@Eq.{1} Int\n                                                                (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I16 out)\n                                                                (NumConvSpec.saturate\n                                                                  (NumConvSpec.signedMin\n                                                                    (@OfNat.ofNat.{0} Nat (nat_lit 16)\n                                                                      (instOfNatNat (nat_lit 16))))\n                                                                  (NumConvSpec.signedMax\n                                                                    (@OfNat.ofNat.{0} Nat (nat_lit 16)\n                                                                      (instOfNatNat (nat_lit 16))))\n                                                                  (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I128\n                                                                    x))))\n                                                        (And\n                                                          (∀ (x : Aeneas.Std.Isize),\n                                                            @Exists.{1} Aeneas.Std.I16 fun (out : Aeneas.Std.I16) =>\n                                                              And\n                                                                (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.I16)\n                                                                  (num_conv_verification_api.saturating_truncate_isize_i16\n                                                                    x)\n                                                                  (@Aeneas.Std.Result.ok.{0} Aeneas.Std.I16 out))\n                                                                (@Eq.{1} Int\n                                                                  (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I16 out)\n                                                                  (NumConvSpec.saturate\n                                                                    (NumConvSpec.signedMin\n                                                                      (@OfNat.ofNat.{0} Nat (nat_lit 16)\n                                                                        (instOfNatNat (nat_lit 16))))\n                                                                    (NumConvSpec.signedMax\n                                                                      (@OfNat.ofNat.{0} Nat (nat_lit 16)\n                                                                        (instOfNatNat (nat_lit 16))))\n                                                                    (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.Isize\n                                                                      x))))\n                                                          (And\n                                                            (∀ (x : Aeneas.Std.I32),\n                                                              @Exists.{1} Aeneas.Std.I32 fun (out : Aeneas.Std.I32) =>\n                                                                And\n                                                                  (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.I32)\n                                                                    (num_conv_verification_api.saturating_truncate_i32_i32\n                                                                      x)\n                                                                    (@Aeneas.Std.Result.ok.{0} Aeneas.Std.I32 out))\n                                                                  (@Eq.{1} Int\n                                                                    (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I32\n                                                                      out)\n                                                                    (NumConvSpec.saturate\n                                                                      (NumConvSpec.signedMin\n                                                                        (@OfNat.ofNat.{0} Nat (nat_lit 32)\n                                                                          (instOfNatNat (nat_lit 32))))\n                                                                      (NumConvSpec.signedMax\n                                                                        (@OfNat.ofNat.{0} Nat (nat_lit 32)\n                                                                          (instOfNatNat (nat_lit 32))))\n                                                                      (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I32\n                                                                        x))))\n                                                            (And\n                                                              (∀ (x : Aeneas.Std.I64),\n                                                                @Exists.{1} Aeneas.Std.I32 fun (out : Aeneas.Std.I32) =>\n                                                                  And\n                                                                    (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.I32)\n                                                                      (num_conv_verification_api.saturating_truncate_i64_i32\n                                                                        x)\n                                                                      (@Aeneas.Std.Result.ok.{0} Aeneas.Std.I32 out))\n                                                                    (@Eq.{1} Int\n                                                                      (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I32\n                                                                        out)\n                                                                      (NumConvSpec.saturate\n                                                                        (NumConvSpec.signedMin\n                                                                          (@OfNat.ofNat.{0} Nat (nat_lit 32)\n                                                                            (instOfNatNat (nat_lit 32))))\n                                                                        (NumConvSpec.signedMax\n                                                                          (@OfNat.ofNat.{0} Nat (nat_lit 32)\n                                                                            (instOfNatNat (nat_lit 32))))\n                                                                        (@Aeneas.Std.IScalar.val\n                                                                          Aeneas.Std.IScalarTy.I64 x))))\n                                                              (And\n                                                                (∀ (x : Aeneas.Std.I128),\n                                                                  @Exists.{1} Aeneas.Std.I32\n                                                                    fun (out : Aeneas.Std.I32) =>\n                                                                    And\n                                                                      (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.I32)\n                                                                        (num_conv_verification_api.saturating_truncate_i128_i32\n                                                                          x)\n                                                                        (@Aeneas.Std.Result.ok.{0} Aeneas.Std.I32 out))\n                                                                      (@Eq.{1} Int\n                                                                        (@Aeneas.Std.IScalar.val\n                                                                          Aeneas.Std.IScalarTy.I32 out)\n                                                                        (NumConvSpec.saturate\n                                                                          (NumConvSpec.signedMin\n                                                                            (@OfNat.ofNat.{0} Nat (nat_lit 32)\n                                                                              (instOfNatNat (nat_lit 32))))\n                                                                          (NumConvSpec.signedMax\n                                                                            (@OfNat.ofNat.{0} Nat (nat_lit 32)\n                                                                              (instOfNatNat (nat_lit 32))))\n                                                                          (@Aeneas.Std.IScalar.val\n                                                                            Aeneas.Std.IScalarTy.I128 x))))\n                                                                (And\n                                                                  (∀ (x : Aeneas.Std.I64),\n                                                                    @Exists.{1} Aeneas.Std.I64\n                                                                      fun (out : Aeneas.Std.I64) =>\n                                                                      And\n                                                                        (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.I64)\n                                                                          (num_conv_verification_api.saturating_truncate_i64_i64\n                                                                            x)\n                                                                          (@Aeneas.Std.Result.ok.{0} Aeneas.Std.I64\n                                                                            out))\n                                                                        (@Eq.{1} Int\n                                                                          (@Aeneas.Std.IScalar.val\n                                                                            Aeneas.Std.IScalarTy.I64 out)\n                                                                          (NumConvSpec.saturate\n                                                                            (NumConvSpec.signedMin\n                                                                              (@OfNat.ofNat.{0} Nat (nat_lit 64)\n                                                                                (instOfNatNat (nat_lit 64))))\n                                                                            (NumConvSpec.signedMax\n                                                                              (@OfNat.ofNat.{0} Nat (nat_lit 64)\n                                                                                (instOfNatNat (nat_lit 64))))\n                                                                            (@Aeneas.Std.IScalar.val\n                                                                              Aeneas.Std.IScalarTy.I64 x))))\n                                                                  (And\n                                                                    (∀ (x : Aeneas.Std.I128),\n                                                                      @Exists.{1} Aeneas.Std.I64\n                                                                        fun (out : Aeneas.Std.I64) =>\n                                                                        And\n                                                                          (@Eq.{1}\n                                                                            (Aeneas.Std.Result.{0} Aeneas.Std.I64)\n                                                                            (num_conv_verification_api.saturating_truncate_i128_i64\n                                                                              x)\n                                                                            (@Aeneas.Std.Result.ok.{0} Aeneas.Std.I64\n                                                                              out))\n                                                                          (@Eq.{1} Int\n                                                                            (@Aeneas.Std.IScalar.val\n                                                                              Aeneas.Std.IScalarTy.I64 out)\n                                                                            (NumConvSpec.saturate\n                                                                              (NumConvSpec.signedMin\n                                                                                (@OfNat.ofNat.{0} Nat (nat_lit 64)\n                                                                                  (instOfNatNat (nat_lit 64))))\n                                                                              (NumConvSpec.signedMax\n                                                                                (@OfNat.ofNat.{0} Nat (nat_lit 64)\n                                                                                  (instOfNatNat (nat_lit 64))))\n                                                                              (@Aeneas.Std.IScalar.val\n                                                                                Aeneas.Std.IScalarTy.I128 x))))\n                                                                    (And\n                                                                      (∀ (x : Aeneas.Std.I128),\n                                                                        @Exists.{1} Aeneas.Std.I128\n                                                                          fun (out : Aeneas.Std.I128) =>\n                                                                          And\n                                                                            (@Eq.{1}\n                                                                              (Aeneas.Std.Result.{0} Aeneas.Std.I128)\n                                                                              (num_conv_verification_api.saturating_truncate_i128_i128\n                                                                                x)\n                                                                              (@Aeneas.Std.Result.ok.{0} Aeneas.Std.I128\n                                                                                out))\n                                                                            (@Eq.{1} Int\n                                                                              (@Aeneas.Std.IScalar.val\n                                                                                Aeneas.Std.IScalarTy.I128 out)\n                                                                              (NumConvSpec.saturate\n                                                                                (NumConvSpec.signedMin\n                                                                                  (@OfNat.ofNat.{0} Nat (nat_lit 128)\n                                                                                    (instOfNatNat (nat_lit 128))))\n                                                                                (NumConvSpec.signedMax\n                                                                                  (@OfNat.ofNat.{0} Nat (nat_lit 128)\n                                                                                    (instOfNatNat (nat_lit 128))))\n                                                                                (@Aeneas.Std.IScalar.val\n                                                                                  Aeneas.Std.IScalarTy.I128 x))))\n                                                                      (∀ (x : Aeneas.Std.Isize),\n                                                                        @Exists.{1} Aeneas.Std.Isize\n                                                                          fun (out : Aeneas.Std.Isize) =>\n                                                                          And\n                                                                            (@Eq.{1}\n                                                                              (Aeneas.Std.Result.{0} Aeneas.Std.Isize)\n                                                                              (num_conv_verification_api.saturating_truncate_isize_isize\n                                                                                x)\n                                                                              (@Aeneas.Std.Result.ok.{0}\n                                                                                Aeneas.Std.Isize out))\n                                                                            (@Eq.{1} Int\n                                                                              (@Aeneas.Std.IScalar.val\n                                                                                Aeneas.Std.IScalarTy.Isize out)\n                                                                              (NumConvSpec.saturate\n                                                                                (NumConvSpec.signedMin\n                                                                                  (Aeneas.Std.IScalarTy.numBits\n                                                                                    Aeneas.Std.IScalarTy.Isize))\n                                                                                (NumConvSpec.signedMax\n                                                                                  (Aeneas.Std.IScalarTy.numBits\n                                                                                    Aeneas.Std.IScalarTy.Isize))\n                                                                                (@Aeneas.Std.IScalar.val\n                                                                                  Aeneas.Std.IScalarTy.Isize\n                                                                                  x))))))))))))))))))))))))))))))))))))))","theorem":"NumConvProof.saturating_truncate_all_spec","translation_rerun":false,"version":1}
proofs.rs:formal:{"axioms":["propext","Classical.choice","Quot.sound"],"binders":[],"conclusion":"(∀ (x : Aeneas.Std.U8),\n    ∃ out, num_conv_verification_api.widen_u8_u8 x = Aeneas.Std.Result.ok out ∧ NumConvSpec.preservesValue ↑↑x ↑↑out) ∧\n  (∀ (x : Aeneas.Std.U8),\n      ∃ out,\n        num_conv_verification_api.widen_u8_u16 x = Aeneas.Std.Result.ok out ∧ NumConvSpec.preservesValue ↑↑x ↑↑out) ∧\n    (∀ (x : Aeneas.Std.U8),\n        ∃ out,\n          num_conv_verification_api.widen_u8_u32 x = Aeneas.Std.Result.ok out ∧ NumConvSpec.preservesValue ↑↑x ↑↑out) ∧\n      (∀ (x : Aeneas.Std.U8),\n          ∃ out,\n            num_conv_verification_api.widen_u8_u64 x = Aeneas.Std.Result.ok out ∧\n              NumConvSpec.preservesValue ↑↑x ↑↑out) ∧\n        (∀ (x : Aeneas.Std.U8),\n            ∃ out,\n              num_conv_verification_api.widen_u8_u128 x = Aeneas.Std.Result.ok out ∧\n                NumConvSpec.preservesValue ↑↑x ↑↑out) ∧\n          (∀ (x : Aeneas.Std.U8),\n              ∃ out,\n                num_conv_verification_api.widen_u8_usize x = Aeneas.Std.Result.ok out ∧\n                  NumConvSpec.preservesValue ↑↑x ↑↑out) ∧\n            (∀ (x : Aeneas.Std.U16),\n                ∃ out,\n                  num_conv_verification_api.widen_u16_u16 x = Aeneas.Std.Result.ok out ∧\n                    NumConvSpec.preservesValue ↑↑x ↑↑out) ∧\n              (∀ (x : Aeneas.Std.U16),\n                  ∃ out,\n                    num_conv_verification_api.widen_u16_u32 x = Aeneas.Std.Result.ok out ∧\n                      NumConvSpec.preservesValue ↑↑x ↑↑out) ∧\n                (∀ (x : Aeneas.Std.U16),\n                    ∃ out,\n                      num_conv_verification_api.widen_u16_u64 x = Aeneas.Std.Result.ok out ∧\n                        NumConvSpec.preservesValue ↑↑x ↑↑out) ∧\n                  (∀ (x : Aeneas.Std.U16),\n                      ∃ out,\n                        num_conv_verification_api.widen_u16_u128 x = Aeneas.Std.Result.ok out ∧\n                          NumConvSpec.preservesValue ↑↑x ↑↑out) ∧\n                    (∀ (x : Aeneas.Std.U16),\n                        ∃ out,\n                          num_conv_verification_api.widen_u16_usize x = Aeneas.Std.Result.ok out ∧\n                            NumConvSpec.preservesValue ↑↑x ↑↑out) ∧\n                      (∀ (x : Aeneas.Std.U32),\n                          ∃ out,\n                            num_conv_verification_api.widen_u32_u32 x = Aeneas.Std.Result.ok out ∧\n                              NumConvSpec.preservesValue ↑↑x ↑↑out) ∧\n                        (∀ (x : Aeneas.Std.U32),\n                            ∃ out,\n                              num_conv_verification_api.widen_u32_u64 x = Aeneas.Std.Result.ok out ∧\n                                NumConvSpec.preservesValue ↑↑x ↑↑out) ∧\n                          (∀ (x : Aeneas.Std.U32),\n                              ∃ out,\n                                num_conv_verification_api.widen_u32_u128 x = Aeneas.Std.Result.ok out ∧\n                                  NumConvSpec.preservesValue ↑↑x ↑↑out) ∧\n                            (∀ (x : Aeneas.Std.U64),\n                                ∃ out,\n                                  num_conv_verification_api.widen_u64_u64 x = Aeneas.Std.Result.ok out ∧\n                                    NumConvSpec.preservesValue ↑↑x ↑↑out) ∧\n                              (∀ (x : Aeneas.Std.U64),\n                                  ∃ out,\n                                    num_conv_verification_api.widen_u64_u128 x = Aeneas.Std.Result.ok out ∧\n                                      NumConvSpec.preservesValue ↑↑x ↑↑out) ∧\n                                (∀ (x : Aeneas.Std.U128),\n                                    ∃ out,\n                                      num_conv_verification_api.widen_u128_u128 x = Aeneas.Std.Result.ok out ∧\n                                        NumConvSpec.preservesValue ↑↑x ↑↑out) ∧\n                                  (∀ (x : Aeneas.Std.Usize),\n                                      ∃ out,\n                                        num_conv_verification_api.widen_usize_usize x = Aeneas.Std.Result.ok out ∧\n                                          NumConvSpec.preservesValue ↑↑x ↑↑out) ∧\n                                    (∀ (x : Aeneas.Std.I8),\n                                        ∃ out,\n                                          num_conv_verification_api.widen_i8_i8 x = Aeneas.Std.Result.ok out ∧\n                                            NumConvSpec.preservesValue ↑x ↑out) ∧\n                                      (∀ (x : Aeneas.Std.I8),\n                                          ∃ out,\n                                            num_conv_verification_api.widen_i8_i16 x = Aeneas.Std.Result.ok out ∧\n                                              NumConvSpec.preservesValue ↑x ↑out) ∧\n                                        (∀ (x : Aeneas.Std.I8),\n                                            ∃ out,\n                                              num_conv_verification_api.widen_i8_i32 x = Aeneas.Std.Result.ok out ∧\n                                                NumConvSpec.preservesValue ↑x ↑out) ∧\n                                          (∀ (x : Aeneas.Std.I8),\n                                              ∃ out,\n                                                num_conv_verification_api.widen_i8_i64 x = Aeneas.Std.Result.ok out ∧\n                                                  NumConvSpec.preservesValue ↑x ↑out) ∧\n                                            (∀ (x : Aeneas.Std.I8),\n                                                ∃ out,\n                                                  num_conv_verification_api.widen_i8_i128 x = Aeneas.Std.Result.ok out ∧\n                                                    NumConvSpec.preservesValue ↑x ↑out) ∧\n                                              (∀ (x : Aeneas.Std.I8),\n                                                  ∃ out,\n                                                    num_conv_verification_api.widen_i8_isize x =\n                                                        Aeneas.Std.Result.ok out ∧\n                                                      NumConvSpec.preservesValue ↑x ↑out) ∧\n                                                (∀ (x : Aeneas.Std.I16),\n                                                    ∃ out,\n                                                      num_conv_verification_api.widen_i16_i16 x =\n                                                          Aeneas.Std.Result.ok out ∧\n                                                        NumConvSpec.preservesValue ↑x ↑out) ∧\n                                                  (∀ (x : Aeneas.Std.I16),\n                                                      ∃ out,\n                                                        num_conv_verification_api.widen_i16_i32 x =\n                                                            Aeneas.Std.Result.ok out ∧\n                                                          NumConvSpec.preservesValue ↑x ↑out) ∧\n                                                    (∀ (x : Aeneas.Std.I16),\n                                                        ∃ out,\n                                                          num_conv_verification_api.widen_i16_i64 x =\n                                                              Aeneas.Std.Result.ok out ∧\n                                                            NumConvSpec.preservesValue ↑x ↑out) ∧\n                                                      (∀ (x : Aeneas.Std.I16),\n                                                          ∃ out,\n                                                            num_conv_verification_api.widen_i16_i128 x =\n                                                                Aeneas.Std.Result.ok out ∧\n                                                              NumConvSpec.preservesValue ↑x ↑out) ∧\n                                                        (∀ (x : Aeneas.Std.I16),\n                                                            ∃ out,\n                                                              num_conv_verification_api.widen_i16_isize x =\n                                                                  Aeneas.Std.Result.ok out ∧\n                                                                NumConvSpec.preservesValue ↑x ↑out) ∧\n                                                          (∀ (x : Aeneas.Std.I32),\n                                                              ∃ out,\n                                                                num_conv_verification_api.widen_i32_i32 x =\n                                                                    Aeneas.Std.Result.ok out ∧\n                                                                  NumConvSpec.preservesValue ↑x ↑out) ∧\n                                                            (∀ (x : Aeneas.Std.I32),\n                                                                ∃ out,\n                                                                  num_conv_verification_api.widen_i32_i64 x =\n                                                                      Aeneas.Std.Result.ok out ∧\n                                                                    NumConvSpec.preservesValue ↑x ↑out) ∧\n                                                              (∀ (x : Aeneas.Std.I32),\n                                                                  ∃ out,\n                                                                    num_conv_verification_api.widen_i32_i128 x =\n                                                                        Aeneas.Std.Result.ok out ∧\n                                                                      NumConvSpec.preservesValue ↑x ↑out) ∧\n                                                                (∀ (x : Aeneas.Std.I64),\n                                                                    ∃ out,\n                                                                      num_conv_verification_api.widen_i64_i64 x =\n                                                                          Aeneas.Std.Result.ok out ∧\n                                                                        NumConvSpec.preservesValue ↑x ↑out) ∧\n                                                                  (∀ (x : Aeneas.Std.I64),\n                                                                      ∃ out,\n                                                                        num_conv_verification_api.widen_i64_i128 x =\n                                                                            Aeneas.Std.Result.ok out ∧\n                                                                          NumConvSpec.preservesValue ↑x ↑out) ∧\n                                                                    (∀ (x : Aeneas.Std.I128),\n                                                                        ∃ out,\n                                                                          num_conv_verification_api.widen_i128_i128 x =\n                                                                              Aeneas.Std.Result.ok out ∧\n                                                                            NumConvSpec.preservesValue ↑x ↑out) ∧\n                                                                      ∀ (x : Aeneas.Std.Isize),\n                                                                        ∃ out,\n                                                                          num_conv_verification_api.widen_isize_isize\n                                                                                x =\n                                                                              Aeneas.Std.Result.ok out ∧\n                                                                            NumConvSpec.preservesValue ↑x ↑out","conclusion_segments":[{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.U8","text":"Aeneas.Std.U8"},{"text":"),\n    "},{"text":"∃ "},{"text":"out"},{"text":", "},{"ref":"num_conv_verification_api.widen_u8_u8","text":"num_conv_verification_api.widen_u8_u8"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧ "},{"ref":"NumConvSpec.preservesValue","text":"NumConvSpec.preservesValue"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n  "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.U8","text":"Aeneas.Std.U8"},{"text":"),\n      "},{"text":"∃ "},{"text":"out"},{"text":",\n        "},{"ref":"num_conv_verification_api.widen_u8_u16","text":"num_conv_verification_api.widen_u8_u16"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧ "},{"ref":"NumConvSpec.preservesValue","text":"NumConvSpec.preservesValue"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n    "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.U8","text":"Aeneas.Std.U8"},{"text":"),\n        "},{"text":"∃ "},{"text":"out"},{"text":",\n          "},{"ref":"num_conv_verification_api.widen_u8_u32","text":"num_conv_verification_api.widen_u8_u32"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧ "},{"ref":"NumConvSpec.preservesValue","text":"NumConvSpec.preservesValue"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n      "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.U8","text":"Aeneas.Std.U8"},{"text":"),\n          "},{"text":"∃ "},{"text":"out"},{"text":",\n            "},{"ref":"num_conv_verification_api.widen_u8_u64","text":"num_conv_verification_api.widen_u8_u64"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n              "},{"ref":"NumConvSpec.preservesValue","text":"NumConvSpec.preservesValue"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n        "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.U8","text":"Aeneas.Std.U8"},{"text":"),\n            "},{"text":"∃ "},{"text":"out"},{"text":",\n              "},{"ref":"num_conv_verification_api.widen_u8_u128","text":"num_conv_verification_api.widen_u8_u128"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                "},{"ref":"NumConvSpec.preservesValue","text":"NumConvSpec.preservesValue"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n          "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.U8","text":"Aeneas.Std.U8"},{"text":"),\n              "},{"text":"∃ "},{"text":"out"},{"text":",\n                "},{"ref":"num_conv_verification_api.widen_u8_usize","text":"num_conv_verification_api.widen_u8_usize"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                  "},{"ref":"NumConvSpec.preservesValue","text":"NumConvSpec.preservesValue"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n            "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.U16","text":"Aeneas.Std.U16"},{"text":"),\n                "},{"text":"∃ "},{"text":"out"},{"text":",\n                  "},{"ref":"num_conv_verification_api.widen_u16_u16","text":"num_conv_verification_api.widen_u16_u16"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                    "},{"ref":"NumConvSpec.preservesValue","text":"NumConvSpec.preservesValue"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n              "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.U16","text":"Aeneas.Std.U16"},{"text":"),\n                  "},{"text":"∃ "},{"text":"out"},{"text":",\n                    "},{"ref":"num_conv_verification_api.widen_u16_u32","text":"num_conv_verification_api.widen_u16_u32"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                      "},{"ref":"NumConvSpec.preservesValue","text":"NumConvSpec.preservesValue"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.U16","text":"Aeneas.Std.U16"},{"text":"),\n                    "},{"text":"∃ "},{"text":"out"},{"text":",\n                      "},{"ref":"num_conv_verification_api.widen_u16_u64","text":"num_conv_verification_api.widen_u16_u64"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                        "},{"ref":"NumConvSpec.preservesValue","text":"NumConvSpec.preservesValue"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                  "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.U16","text":"Aeneas.Std.U16"},{"text":"),\n                      "},{"text":"∃ "},{"text":"out"},{"text":",\n                        "},{"ref":"num_conv_verification_api.widen_u16_u128","text":"num_conv_verification_api.widen_u16_u128"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                          "},{"ref":"NumConvSpec.preservesValue","text":"NumConvSpec.preservesValue"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                    "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.U16","text":"Aeneas.Std.U16"},{"text":"),\n                        "},{"text":"∃ "},{"text":"out"},{"text":",\n                          "},{"ref":"num_conv_verification_api.widen_u16_usize","text":"num_conv_verification_api.widen_u16_usize"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                            "},{"ref":"NumConvSpec.preservesValue","text":"NumConvSpec.preservesValue"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                      "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.U32","text":"Aeneas.Std.U32"},{"text":"),\n                          "},{"text":"∃ "},{"text":"out"},{"text":",\n                            "},{"ref":"num_conv_verification_api.widen_u32_u32","text":"num_conv_verification_api.widen_u32_u32"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                              "},{"ref":"NumConvSpec.preservesValue","text":"NumConvSpec.preservesValue"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                        "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.U32","text":"Aeneas.Std.U32"},{"text":"),\n                            "},{"text":"∃ "},{"text":"out"},{"text":",\n                              "},{"ref":"num_conv_verification_api.widen_u32_u64","text":"num_conv_verification_api.widen_u32_u64"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                "},{"ref":"NumConvSpec.preservesValue","text":"NumConvSpec.preservesValue"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                          "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.U32","text":"Aeneas.Std.U32"},{"text":"),\n                              "},{"text":"∃ "},{"text":"out"},{"text":",\n                                "},{"ref":"num_conv_verification_api.widen_u32_u128","text":"num_conv_verification_api.widen_u32_u128"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                  "},{"ref":"NumConvSpec.preservesValue","text":"NumConvSpec.preservesValue"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                            "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.U64","text":"Aeneas.Std.U64"},{"text":"),\n                                "},{"text":"∃ "},{"text":"out"},{"text":",\n                                  "},{"ref":"num_conv_verification_api.widen_u64_u64","text":"num_conv_verification_api.widen_u64_u64"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                    "},{"ref":"NumConvSpec.preservesValue","text":"NumConvSpec.preservesValue"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                              "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.U64","text":"Aeneas.Std.U64"},{"text":"),\n                                  "},{"text":"∃ "},{"text":"out"},{"text":",\n                                    "},{"ref":"num_conv_verification_api.widen_u64_u128","text":"num_conv_verification_api.widen_u64_u128"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                      "},{"ref":"NumConvSpec.preservesValue","text":"NumConvSpec.preservesValue"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                                "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.U128","text":"Aeneas.Std.U128"},{"text":"),\n                                    "},{"text":"∃ "},{"text":"out"},{"text":",\n                                      "},{"ref":"num_conv_verification_api.widen_u128_u128","text":"num_conv_verification_api.widen_u128_u128"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                        "},{"ref":"NumConvSpec.preservesValue","text":"NumConvSpec.preservesValue"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                                  "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.Usize","text":"Aeneas.Std.Usize"},{"text":"),\n                                      "},{"text":"∃ "},{"text":"out"},{"text":",\n                                        "},{"ref":"num_conv_verification_api.widen_usize_usize","text":"num_conv_verification_api.widen_usize_usize"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                          "},{"ref":"NumConvSpec.preservesValue","text":"NumConvSpec.preservesValue"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                                    "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.I8","text":"Aeneas.Std.I8"},{"text":"),\n                                        "},{"text":"∃ "},{"text":"out"},{"text":",\n                                          "},{"ref":"num_conv_verification_api.widen_i8_i8","text":"num_conv_verification_api.widen_i8_i8"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                            "},{"ref":"NumConvSpec.preservesValue","text":"NumConvSpec.preservesValue"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                                      "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.I8","text":"Aeneas.Std.I8"},{"text":"),\n                                          "},{"text":"∃ "},{"text":"out"},{"text":",\n                                            "},{"ref":"num_conv_verification_api.widen_i8_i16","text":"num_conv_verification_api.widen_i8_i16"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                              "},{"ref":"NumConvSpec.preservesValue","text":"NumConvSpec.preservesValue"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                                        "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.I8","text":"Aeneas.Std.I8"},{"text":"),\n                                            "},{"text":"∃ "},{"text":"out"},{"text":",\n                                              "},{"ref":"num_conv_verification_api.widen_i8_i32","text":"num_conv_verification_api.widen_i8_i32"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                                "},{"ref":"NumConvSpec.preservesValue","text":"NumConvSpec.preservesValue"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                                          "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.I8","text":"Aeneas.Std.I8"},{"text":"),\n                                              "},{"text":"∃ "},{"text":"out"},{"text":",\n                                                "},{"ref":"num_conv_verification_api.widen_i8_i64","text":"num_conv_verification_api.widen_i8_i64"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                                  "},{"ref":"NumConvSpec.preservesValue","text":"NumConvSpec.preservesValue"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                                            "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.I8","text":"Aeneas.Std.I8"},{"text":"),\n                                                "},{"text":"∃ "},{"text":"out"},{"text":",\n                                                  "},{"ref":"num_conv_verification_api.widen_i8_i128","text":"num_conv_verification_api.widen_i8_i128"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                                    "},{"ref":"NumConvSpec.preservesValue","text":"NumConvSpec.preservesValue"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                                              "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.I8","text":"Aeneas.Std.I8"},{"text":"),\n                                                  "},{"text":"∃ "},{"text":"out"},{"text":",\n                                                    "},{"ref":"num_conv_verification_api.widen_i8_isize","text":"num_conv_verification_api.widen_i8_isize"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" =\n                                                        "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                                      "},{"ref":"NumConvSpec.preservesValue","text":"NumConvSpec.preservesValue"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                                                "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.I16","text":"Aeneas.Std.I16"},{"text":"),\n                                                    "},{"text":"∃ "},{"text":"out"},{"text":",\n                                                      "},{"ref":"num_conv_verification_api.widen_i16_i16","text":"num_conv_verification_api.widen_i16_i16"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" =\n                                                          "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                                        "},{"ref":"NumConvSpec.preservesValue","text":"NumConvSpec.preservesValue"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                                                  "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.I16","text":"Aeneas.Std.I16"},{"text":"),\n                                                      "},{"text":"∃ "},{"text":"out"},{"text":",\n                                                        "},{"ref":"num_conv_verification_api.widen_i16_i32","text":"num_conv_verification_api.widen_i16_i32"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" =\n                                                            "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                                          "},{"ref":"NumConvSpec.preservesValue","text":"NumConvSpec.preservesValue"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                                                    "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.I16","text":"Aeneas.Std.I16"},{"text":"),\n                                                        "},{"text":"∃ "},{"text":"out"},{"text":",\n                                                          "},{"ref":"num_conv_verification_api.widen_i16_i64","text":"num_conv_verification_api.widen_i16_i64"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" =\n                                                              "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                                            "},{"ref":"NumConvSpec.preservesValue","text":"NumConvSpec.preservesValue"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                                                      "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.I16","text":"Aeneas.Std.I16"},{"text":"),\n                                                          "},{"text":"∃ "},{"text":"out"},{"text":",\n                                                            "},{"ref":"num_conv_verification_api.widen_i16_i128","text":"num_conv_verification_api.widen_i16_i128"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" =\n                                                                "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                                              "},{"ref":"NumConvSpec.preservesValue","text":"NumConvSpec.preservesValue"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                                                        "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.I16","text":"Aeneas.Std.I16"},{"text":"),\n                                                            "},{"text":"∃ "},{"text":"out"},{"text":",\n                                                              "},{"ref":"num_conv_verification_api.widen_i16_isize","text":"num_conv_verification_api.widen_i16_isize"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" =\n                                                                  "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                                                "},{"ref":"NumConvSpec.preservesValue","text":"NumConvSpec.preservesValue"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                                                          "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.I32","text":"Aeneas.Std.I32"},{"text":"),\n                                                              "},{"text":"∃ "},{"text":"out"},{"text":",\n                                                                "},{"ref":"num_conv_verification_api.widen_i32_i32","text":"num_conv_verification_api.widen_i32_i32"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" =\n                                                                    "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                                                  "},{"ref":"NumConvSpec.preservesValue","text":"NumConvSpec.preservesValue"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                                                            "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.I32","text":"Aeneas.Std.I32"},{"text":"),\n                                                                "},{"text":"∃ "},{"text":"out"},{"text":",\n                                                                  "},{"ref":"num_conv_verification_api.widen_i32_i64","text":"num_conv_verification_api.widen_i32_i64"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" =\n                                                                      "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                                                    "},{"ref":"NumConvSpec.preservesValue","text":"NumConvSpec.preservesValue"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                                                              "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.I32","text":"Aeneas.Std.I32"},{"text":"),\n                                                                  "},{"text":"∃ "},{"text":"out"},{"text":",\n                                                                    "},{"ref":"num_conv_verification_api.widen_i32_i128","text":"num_conv_verification_api.widen_i32_i128"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" =\n                                                                        "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                                                      "},{"ref":"NumConvSpec.preservesValue","text":"NumConvSpec.preservesValue"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                                                                "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.I64","text":"Aeneas.Std.I64"},{"text":"),\n                                                                    "},{"text":"∃ "},{"text":"out"},{"text":",\n                                                                      "},{"ref":"num_conv_verification_api.widen_i64_i64","text":"num_conv_verification_api.widen_i64_i64"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" =\n                                                                          "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                                                        "},{"ref":"NumConvSpec.preservesValue","text":"NumConvSpec.preservesValue"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                                                                  "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.I64","text":"Aeneas.Std.I64"},{"text":"),\n                                                                      "},{"text":"∃ "},{"text":"out"},{"text":",\n                                                                        "},{"ref":"num_conv_verification_api.widen_i64_i128","text":"num_conv_verification_api.widen_i64_i128"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" =\n                                                                            "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                                                          "},{"ref":"NumConvSpec.preservesValue","text":"NumConvSpec.preservesValue"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                                                                    "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.I128","text":"Aeneas.Std.I128"},{"text":"),\n                                                                        "},{"text":"∃ "},{"text":"out"},{"text":",\n                                                                          "},{"ref":"num_conv_verification_api.widen_i128_i128","text":"num_conv_verification_api.widen_i128_i128"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" =\n                                                                              "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                                                            "},{"ref":"NumConvSpec.preservesValue","text":"NumConvSpec.preservesValue"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                                                                      "},{"text":"∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.Isize","text":"Aeneas.Std.Isize"},{"text":"),\n                                                                        "},{"text":"∃ "},{"text":"out"},{"text":",\n                                                                          "},{"ref":"num_conv_verification_api.widen_isize_isize","text":"num_conv_verification_api.widen_isize_isize"},{"text":"\n                                                                                "},{"text":"x"},{"ref":"Eq","text":" =\n                                                                              "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                                                            "},{"ref":"NumConvSpec.preservesValue","text":"NumConvSpec.preservesValue"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"out"}],"definitions":[{"module":"Init.Prelude","name":"And","source":{"first_line":645,"last_line":659}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.U8","source":{"first_line":669,"last_line":669}},{"module":"Init.Core","name":"Exists","source":{"first_line":313,"last_line":341}},{"module":"Init.Prelude","name":"Eq","source":{"first_line":46,"last_line":76}},{"module":"Aeneas.Std.Primitives","name":"Aeneas.Std.Result","source":{"first_line":67,"last_line":68}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.widen_u8_u8","source":{"first_line":4147,"last_line":4153}},{"module":"Aeneas.Std.Primitives","name":"Aeneas.Std.Result.ok","source":{"first_line":72,"last_line":72}},{"module":"Specs","name":"NumConvSpec.preservesValue","source":{"first_line":28,"last_line":28}},{"module":"Init.Data.Cast","name":"Nat.cast","source":{"first_line":69,"last_line":71}},{"module":"Init.Data.Int.Basic","name":"Int","source":{"first_line":35,"last_line":58}},{"module":"Init.Data.Int.Basic","name":"instNatCastInt","source":{"first_line":63,"last_line":63}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.UScalar.val","source":{"first_line":76,"last_line":76}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.UScalarTy.U8","source":{"first_line":33,"last_line":33}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.U16","source":{"first_line":670,"last_line":670}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.widen_u8_u16","source":{"first_line":4187,"last_line":4193}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.UScalarTy.U16","source":{"first_line":34,"last_line":34}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.U32","source":{"first_line":671,"last_line":671}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.widen_u8_u32","source":{"first_line":4227,"last_line":4233}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.UScalarTy.U32","source":{"first_line":35,"last_line":35}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.U64","source":{"first_line":672,"last_line":672}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.widen_u8_u64","source":{"first_line":4267,"last_line":4273}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.UScalarTy.U64","source":{"first_line":36,"last_line":36}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.U128","source":{"first_line":673,"last_line":673}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.widen_u8_u128","source":{"first_line":4307,"last_line":4313}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.UScalarTy.U128","source":{"first_line":37,"last_line":37}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.Usize","source":{"first_line":668,"last_line":668}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.widen_u8_usize","source":{"first_line":4347,"last_line":4353}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.UScalarTy.Usize","source":{"first_line":32,"last_line":32}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.widen_u16_u16","source":{"first_line":4387,"last_line":4393}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.widen_u16_u32","source":{"first_line":4427,"last_line":4433}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.widen_u16_u64","source":{"first_line":4467,"last_line":4473}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.widen_u16_u128","source":{"first_line":4507,"last_line":4513}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.widen_u16_usize","source":{"first_line":4547,"last_line":4553}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.widen_u32_u32","source":{"first_line":4587,"last_line":4593}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.widen_u32_u64","source":{"first_line":4627,"last_line":4633}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.widen_u32_u128","source":{"first_line":4667,"last_line":4673}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.widen_u64_u64","source":{"first_line":4707,"last_line":4713}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.widen_u64_u128","source":{"first_line":4747,"last_line":4753}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.widen_u128_u128","source":{"first_line":4787,"last_line":4793}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.widen_usize_usize","source":{"first_line":4827,"last_line":4833}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.I8","source":{"first_line":675,"last_line":675}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.widen_i8_i8","source":{"first_line":4868,"last_line":4874}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.IScalar.val","source":{"first_line":84,"last_line":84}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.IScalarTy.I8","source":{"first_line":43,"last_line":43}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.I16","source":{"first_line":676,"last_line":676}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.widen_i8_i16","source":{"first_line":4908,"last_line":4914}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.IScalarTy.I16","source":{"first_line":44,"last_line":44}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.I32","source":{"first_line":677,"last_line":677}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.widen_i8_i32","source":{"first_line":4948,"last_line":4954}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.IScalarTy.I32","source":{"first_line":45,"last_line":45}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.I64","source":{"first_line":678,"last_line":678}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.widen_i8_i64","source":{"first_line":4988,"last_line":4994}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.IScalarTy.I64","source":{"first_line":46,"last_line":46}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.I128","source":{"first_line":679,"last_line":679}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.widen_i8_i128","source":{"first_line":5028,"last_line":5034}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.IScalarTy.I128","source":{"first_line":47,"last_line":47}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.Isize","source":{"first_line":674,"last_line":674}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.widen_i8_isize","source":{"first_line":5068,"last_line":5074}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.IScalarTy.Isize","source":{"first_line":42,"last_line":42}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.widen_i16_i16","source":{"first_line":5108,"last_line":5114}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.widen_i16_i32","source":{"first_line":5148,"last_line":5154}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.widen_i16_i64","source":{"first_line":5188,"last_line":5194}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.widen_i16_i128","source":{"first_line":5228,"last_line":5234}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.widen_i16_isize","source":{"first_line":5268,"last_line":5274}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.widen_i32_i32","source":{"first_line":5308,"last_line":5314}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.widen_i32_i64","source":{"first_line":5348,"last_line":5354}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.widen_i32_i128","source":{"first_line":5388,"last_line":5394}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.widen_i64_i64","source":{"first_line":5428,"last_line":5434}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.widen_i64_i128","source":{"first_line":5468,"last_line":5474}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.widen_i128_i128","source":{"first_line":5508,"last_line":5514}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.widen_isize_isize","source":{"first_line":5548,"last_line":5554}}],"definitions_truncated":false,"first_line":5,"last_line":44,"module":"Contracts","program":null,"program_head":null,"statement":"And\n  (∀ (x : Aeneas.Std.U8),\n    @Exists.{1} Aeneas.Std.U8 fun (out : Aeneas.Std.U8) =>\n      And\n        (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.U8) (num_conv_verification_api.widen_u8_u8 x)\n          (@Aeneas.Std.Result.ok.{0} Aeneas.Std.U8 out))\n        (NumConvSpec.preservesValue\n          (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U8 x))\n          (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U8 out))))\n  (And\n    (∀ (x : Aeneas.Std.U8),\n      @Exists.{1} Aeneas.Std.U16 fun (out : Aeneas.Std.U16) =>\n        And\n          (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.U16) (num_conv_verification_api.widen_u8_u16 x)\n            (@Aeneas.Std.Result.ok.{0} Aeneas.Std.U16 out))\n          (NumConvSpec.preservesValue\n            (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U8 x))\n            (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U16 out))))\n    (And\n      (∀ (x : Aeneas.Std.U8),\n        @Exists.{1} Aeneas.Std.U32 fun (out : Aeneas.Std.U32) =>\n          And\n            (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.U32) (num_conv_verification_api.widen_u8_u32 x)\n              (@Aeneas.Std.Result.ok.{0} Aeneas.Std.U32 out))\n            (NumConvSpec.preservesValue\n              (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U8 x))\n              (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U32 out))))\n      (And\n        (∀ (x : Aeneas.Std.U8),\n          @Exists.{1} Aeneas.Std.U64 fun (out : Aeneas.Std.U64) =>\n            And\n              (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.U64) (num_conv_verification_api.widen_u8_u64 x)\n                (@Aeneas.Std.Result.ok.{0} Aeneas.Std.U64 out))\n              (NumConvSpec.preservesValue\n                (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U8 x))\n                (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U64 out))))\n        (And\n          (∀ (x : Aeneas.Std.U8),\n            @Exists.{1} Aeneas.Std.U128 fun (out : Aeneas.Std.U128) =>\n              And\n                (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.U128) (num_conv_verification_api.widen_u8_u128 x)\n                  (@Aeneas.Std.Result.ok.{0} Aeneas.Std.U128 out))\n                (NumConvSpec.preservesValue\n                  (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U8 x))\n                  (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U128 out))))\n          (And\n            (∀ (x : Aeneas.Std.U8),\n              @Exists.{1} Aeneas.Std.Usize fun (out : Aeneas.Std.Usize) =>\n                And\n                  (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.Usize) (num_conv_verification_api.widen_u8_usize x)\n                    (@Aeneas.Std.Result.ok.{0} Aeneas.Std.Usize out))\n                  (NumConvSpec.preservesValue\n                    (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U8 x))\n                    (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.Usize out))))\n            (And\n              (∀ (x : Aeneas.Std.U16),\n                @Exists.{1} Aeneas.Std.U16 fun (out : Aeneas.Std.U16) =>\n                  And\n                    (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.U16) (num_conv_verification_api.widen_u16_u16 x)\n                      (@Aeneas.Std.Result.ok.{0} Aeneas.Std.U16 out))\n                    (NumConvSpec.preservesValue\n                      (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U16 x))\n                      (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U16 out))))\n              (And\n                (∀ (x : Aeneas.Std.U16),\n                  @Exists.{1} Aeneas.Std.U32 fun (out : Aeneas.Std.U32) =>\n                    And\n                      (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.U32) (num_conv_verification_api.widen_u16_u32 x)\n                        (@Aeneas.Std.Result.ok.{0} Aeneas.Std.U32 out))\n                      (NumConvSpec.preservesValue\n                        (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U16 x))\n                        (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U32 out))))\n                (And\n                  (∀ (x : Aeneas.Std.U16),\n                    @Exists.{1} Aeneas.Std.U64 fun (out : Aeneas.Std.U64) =>\n                      And\n                        (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.U64) (num_conv_verification_api.widen_u16_u64 x)\n                          (@Aeneas.Std.Result.ok.{0} Aeneas.Std.U64 out))\n                        (NumConvSpec.preservesValue\n                          (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U16 x))\n                          (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U64 out))))\n                  (And\n                    (∀ (x : Aeneas.Std.U16),\n                      @Exists.{1} Aeneas.Std.U128 fun (out : Aeneas.Std.U128) =>\n                        And\n                          (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.U128) (num_conv_verification_api.widen_u16_u128 x)\n                            (@Aeneas.Std.Result.ok.{0} Aeneas.Std.U128 out))\n                          (NumConvSpec.preservesValue\n                            (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U16 x))\n                            (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U128 out))))\n                    (And\n                      (∀ (x : Aeneas.Std.U16),\n                        @Exists.{1} Aeneas.Std.Usize fun (out : Aeneas.Std.Usize) =>\n                          And\n                            (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.Usize)\n                              (num_conv_verification_api.widen_u16_usize x)\n                              (@Aeneas.Std.Result.ok.{0} Aeneas.Std.Usize out))\n                            (NumConvSpec.preservesValue\n                              (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U16 x))\n                              (@Nat.cast.{0} Int instNatCastInt\n                                (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.Usize out))))\n                      (And\n                        (∀ (x : Aeneas.Std.U32),\n                          @Exists.{1} Aeneas.Std.U32 fun (out : Aeneas.Std.U32) =>\n                            And\n                              (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.U32)\n                                (num_conv_verification_api.widen_u32_u32 x)\n                                (@Aeneas.Std.Result.ok.{0} Aeneas.Std.U32 out))\n                              (NumConvSpec.preservesValue\n                                (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U32 x))\n                                (@Nat.cast.{0} Int instNatCastInt\n                                  (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U32 out))))\n                        (And\n                          (∀ (x : Aeneas.Std.U32),\n                            @Exists.{1} Aeneas.Std.U64 fun (out : Aeneas.Std.U64) =>\n                              And\n                                (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.U64)\n                                  (num_conv_verification_api.widen_u32_u64 x)\n                                  (@Aeneas.Std.Result.ok.{0} Aeneas.Std.U64 out))\n                                (NumConvSpec.preservesValue\n                                  (@Nat.cast.{0} Int instNatCastInt\n                                    (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U32 x))\n                                  (@Nat.cast.{0} Int instNatCastInt\n                                    (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U64 out))))\n                          (And\n                            (∀ (x : Aeneas.Std.U32),\n                              @Exists.{1} Aeneas.Std.U128 fun (out : Aeneas.Std.U128) =>\n                                And\n                                  (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.U128)\n                                    (num_conv_verification_api.widen_u32_u128 x)\n                                    (@Aeneas.Std.Result.ok.{0} Aeneas.Std.U128 out))\n                                  (NumConvSpec.preservesValue\n                                    (@Nat.cast.{0} Int instNatCastInt\n                                      (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U32 x))\n                                    (@Nat.cast.{0} Int instNatCastInt\n                                      (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U128 out))))\n                            (And\n                              (∀ (x : Aeneas.Std.U64),\n                                @Exists.{1} Aeneas.Std.U64 fun (out : Aeneas.Std.U64) =>\n                                  And\n                                    (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.U64)\n                                      (num_conv_verification_api.widen_u64_u64 x)\n                                      (@Aeneas.Std.Result.ok.{0} Aeneas.Std.U64 out))\n                                    (NumConvSpec.preservesValue\n                                      (@Nat.cast.{0} Int instNatCastInt\n                                        (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U64 x))\n                                      (@Nat.cast.{0} Int instNatCastInt\n                                        (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U64 out))))\n                              (And\n                                (∀ (x : Aeneas.Std.U64),\n                                  @Exists.{1} Aeneas.Std.U128 fun (out : Aeneas.Std.U128) =>\n                                    And\n                                      (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.U128)\n                                        (num_conv_verification_api.widen_u64_u128 x)\n                                        (@Aeneas.Std.Result.ok.{0} Aeneas.Std.U128 out))\n                                      (NumConvSpec.preservesValue\n                                        (@Nat.cast.{0} Int instNatCastInt\n                                          (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U64 x))\n                                        (@Nat.cast.{0} Int instNatCastInt\n                                          (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U128 out))))\n                                (And\n                                  (∀ (x : Aeneas.Std.U128),\n                                    @Exists.{1} Aeneas.Std.U128 fun (out : Aeneas.Std.U128) =>\n                                      And\n                                        (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.U128)\n                                          (num_conv_verification_api.widen_u128_u128 x)\n                                          (@Aeneas.Std.Result.ok.{0} Aeneas.Std.U128 out))\n                                        (NumConvSpec.preservesValue\n                                          (@Nat.cast.{0} Int instNatCastInt\n                                            (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U128 x))\n                                          (@Nat.cast.{0} Int instNatCastInt\n                                            (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U128 out))))\n                                  (And\n                                    (∀ (x : Aeneas.Std.Usize),\n                                      @Exists.{1} Aeneas.Std.Usize fun (out : Aeneas.Std.Usize) =>\n                                        And\n                                          (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.Usize)\n                                            (num_conv_verification_api.widen_usize_usize x)\n                                            (@Aeneas.Std.Result.ok.{0} Aeneas.Std.Usize out))\n                                          (NumConvSpec.preservesValue\n                                            (@Nat.cast.{0} Int instNatCastInt\n                                              (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.Usize x))\n                                            (@Nat.cast.{0} Int instNatCastInt\n                                              (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.Usize out))))\n                                    (And\n                                      (∀ (x : Aeneas.Std.I8),\n                                        @Exists.{1} Aeneas.Std.I8 fun (out : Aeneas.Std.I8) =>\n                                          And\n                                            (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.I8)\n                                              (num_conv_verification_api.widen_i8_i8 x)\n                                              (@Aeneas.Std.Result.ok.{0} Aeneas.Std.I8 out))\n                                            (NumConvSpec.preservesValue\n                                              (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I8 x)\n                                              (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I8 out)))\n                                      (And\n                                        (∀ (x : Aeneas.Std.I8),\n                                          @Exists.{1} Aeneas.Std.I16 fun (out : Aeneas.Std.I16) =>\n                                            And\n                                              (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.I16)\n                                                (num_conv_verification_api.widen_i8_i16 x)\n                                                (@Aeneas.Std.Result.ok.{0} Aeneas.Std.I16 out))\n                                              (NumConvSpec.preservesValue\n                                                (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I8 x)\n                                                (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I16 out)))\n                                        (And\n                                          (∀ (x : Aeneas.Std.I8),\n                                            @Exists.{1} Aeneas.Std.I32 fun (out : Aeneas.Std.I32) =>\n                                              And\n                                                (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.I32)\n                                                  (num_conv_verification_api.widen_i8_i32 x)\n                                                  (@Aeneas.Std.Result.ok.{0} Aeneas.Std.I32 out))\n                                                (NumConvSpec.preservesValue\n                                                  (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I8 x)\n                                                  (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I32 out)))\n                                          (And\n                                            (∀ (x : Aeneas.Std.I8),\n                                              @Exists.{1} Aeneas.Std.I64 fun (out : Aeneas.Std.I64) =>\n                                                And\n                                                  (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.I64)\n                                                    (num_conv_verification_api.widen_i8_i64 x)\n                                                    (@Aeneas.Std.Result.ok.{0} Aeneas.Std.I64 out))\n                                                  (NumConvSpec.preservesValue\n                                                    (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I8 x)\n                                                    (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I64 out)))\n                                            (And\n                                              (∀ (x : Aeneas.Std.I8),\n                                                @Exists.{1} Aeneas.Std.I128 fun (out : Aeneas.Std.I128) =>\n                                                  And\n                                                    (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.I128)\n                                                      (num_conv_verification_api.widen_i8_i128 x)\n                                                      (@Aeneas.Std.Result.ok.{0} Aeneas.Std.I128 out))\n                                                    (NumConvSpec.preservesValue\n                                                      (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I8 x)\n                                                      (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I128 out)))\n                                              (And\n                                                (∀ (x : Aeneas.Std.I8),\n                                                  @Exists.{1} Aeneas.Std.Isize fun (out : Aeneas.Std.Isize) =>\n                                                    And\n                                                      (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.Isize)\n                                                        (num_conv_verification_api.widen_i8_isize x)\n                                                        (@Aeneas.Std.Result.ok.{0} Aeneas.Std.Isize out))\n                                                      (NumConvSpec.preservesValue\n                                                        (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I8 x)\n                                                        (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.Isize out)))\n                                                (And\n                                                  (∀ (x : Aeneas.Std.I16),\n                                                    @Exists.{1} Aeneas.Std.I16 fun (out : Aeneas.Std.I16) =>\n                                                      And\n                                                        (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.I16)\n                                                          (num_conv_verification_api.widen_i16_i16 x)\n                                                          (@Aeneas.Std.Result.ok.{0} Aeneas.Std.I16 out))\n                                                        (NumConvSpec.preservesValue\n                                                          (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I16 x)\n                                                          (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I16 out)))\n                                                  (And\n                                                    (∀ (x : Aeneas.Std.I16),\n                                                      @Exists.{1} Aeneas.Std.I32 fun (out : Aeneas.Std.I32) =>\n                                                        And\n                                                          (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.I32)\n                                                            (num_conv_verification_api.widen_i16_i32 x)\n                                                            (@Aeneas.Std.Result.ok.{0} Aeneas.Std.I32 out))\n                                                          (NumConvSpec.preservesValue\n                                                            (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I16 x)\n                                                            (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I32 out)))\n                                                    (And\n                                                      (∀ (x : Aeneas.Std.I16),\n                                                        @Exists.{1} Aeneas.Std.I64 fun (out : Aeneas.Std.I64) =>\n                                                          And\n                                                            (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.I64)\n                                                              (num_conv_verification_api.widen_i16_i64 x)\n                                                              (@Aeneas.Std.Result.ok.{0} Aeneas.Std.I64 out))\n                                                            (NumConvSpec.preservesValue\n                                                              (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I16 x)\n                                                              (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I64 out)))\n                                                      (And\n                                                        (∀ (x : Aeneas.Std.I16),\n                                                          @Exists.{1} Aeneas.Std.I128 fun (out : Aeneas.Std.I128) =>\n                                                            And\n                                                              (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.I128)\n                                                                (num_conv_verification_api.widen_i16_i128 x)\n                                                                (@Aeneas.Std.Result.ok.{0} Aeneas.Std.I128 out))\n                                                              (NumConvSpec.preservesValue\n                                                                (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I16 x)\n                                                                (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I128\n                                                                  out)))\n                                                        (And\n                                                          (∀ (x : Aeneas.Std.I16),\n                                                            @Exists.{1} Aeneas.Std.Isize fun (out : Aeneas.Std.Isize) =>\n                                                              And\n                                                                (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.Isize)\n                                                                  (num_conv_verification_api.widen_i16_isize x)\n                                                                  (@Aeneas.Std.Result.ok.{0} Aeneas.Std.Isize out))\n                                                                (NumConvSpec.preservesValue\n                                                                  (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I16 x)\n                                                                  (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.Isize\n                                                                    out)))\n                                                          (And\n                                                            (∀ (x : Aeneas.Std.I32),\n                                                              @Exists.{1} Aeneas.Std.I32 fun (out : Aeneas.Std.I32) =>\n                                                                And\n                                                                  (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.I32)\n                                                                    (num_conv_verification_api.widen_i32_i32 x)\n                                                                    (@Aeneas.Std.Result.ok.{0} Aeneas.Std.I32 out))\n                                                                  (NumConvSpec.preservesValue\n                                                                    (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I32 x)\n                                                                    (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I32\n                                                                      out)))\n                                                            (And\n                                                              (∀ (x : Aeneas.Std.I32),\n                                                                @Exists.{1} Aeneas.Std.I64 fun (out : Aeneas.Std.I64) =>\n                                                                  And\n                                                                    (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.I64)\n                                                                      (num_conv_verification_api.widen_i32_i64 x)\n                                                                      (@Aeneas.Std.Result.ok.{0} Aeneas.Std.I64 out))\n                                                                    (NumConvSpec.preservesValue\n                                                                      (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I32\n                                                                        x)\n                                                                      (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I64\n                                                                        out)))\n                                                              (And\n                                                                (∀ (x : Aeneas.Std.I32),\n                                                                  @Exists.{1} Aeneas.Std.I128\n                                                                    fun (out : Aeneas.Std.I128) =>\n                                                                    And\n                                                                      (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.I128)\n                                                                        (num_conv_verification_api.widen_i32_i128 x)\n                                                                        (@Aeneas.Std.Result.ok.{0} Aeneas.Std.I128 out))\n                                                                      (NumConvSpec.preservesValue\n                                                                        (@Aeneas.Std.IScalar.val\n                                                                          Aeneas.Std.IScalarTy.I32 x)\n                                                                        (@Aeneas.Std.IScalar.val\n                                                                          Aeneas.Std.IScalarTy.I128 out)))\n                                                                (And\n                                                                  (∀ (x : Aeneas.Std.I64),\n                                                                    @Exists.{1} Aeneas.Std.I64\n                                                                      fun (out : Aeneas.Std.I64) =>\n                                                                      And\n                                                                        (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.I64)\n                                                                          (num_conv_verification_api.widen_i64_i64 x)\n                                                                          (@Aeneas.Std.Result.ok.{0} Aeneas.Std.I64\n                                                                            out))\n                                                                        (NumConvSpec.preservesValue\n                                                                          (@Aeneas.Std.IScalar.val\n                                                                            Aeneas.Std.IScalarTy.I64 x)\n                                                                          (@Aeneas.Std.IScalar.val\n                                                                            Aeneas.Std.IScalarTy.I64 out)))\n                                                                  (And\n                                                                    (∀ (x : Aeneas.Std.I64),\n                                                                      @Exists.{1} Aeneas.Std.I128\n                                                                        fun (out : Aeneas.Std.I128) =>\n                                                                        And\n                                                                          (@Eq.{1}\n                                                                            (Aeneas.Std.Result.{0} Aeneas.Std.I128)\n                                                                            (num_conv_verification_api.widen_i64_i128 x)\n                                                                            (@Aeneas.Std.Result.ok.{0} Aeneas.Std.I128\n                                                                              out))\n                                                                          (NumConvSpec.preservesValue\n                                                                            (@Aeneas.Std.IScalar.val\n                                                                              Aeneas.Std.IScalarTy.I64 x)\n                                                                            (@Aeneas.Std.IScalar.val\n                                                                              Aeneas.Std.IScalarTy.I128 out)))\n                                                                    (And\n                                                                      (∀ (x : Aeneas.Std.I128),\n                                                                        @Exists.{1} Aeneas.Std.I128\n                                                                          fun (out : Aeneas.Std.I128) =>\n                                                                          And\n                                                                            (@Eq.{1}\n                                                                              (Aeneas.Std.Result.{0} Aeneas.Std.I128)\n                                                                              (num_conv_verification_api.widen_i128_i128\n                                                                                x)\n                                                                              (@Aeneas.Std.Result.ok.{0} Aeneas.Std.I128\n                                                                                out))\n                                                                            (NumConvSpec.preservesValue\n                                                                              (@Aeneas.Std.IScalar.val\n                                                                                Aeneas.Std.IScalarTy.I128 x)\n                                                                              (@Aeneas.Std.IScalar.val\n                                                                                Aeneas.Std.IScalarTy.I128 out)))\n                                                                      (∀ (x : Aeneas.Std.Isize),\n                                                                        @Exists.{1} Aeneas.Std.Isize\n                                                                          fun (out : Aeneas.Std.Isize) =>\n                                                                          And\n                                                                            (@Eq.{1}\n                                                                              (Aeneas.Std.Result.{0} Aeneas.Std.Isize)\n                                                                              (num_conv_verification_api.widen_isize_isize\n                                                                                x)\n                                                                              (@Aeneas.Std.Result.ok.{0}\n                                                                                Aeneas.Std.Isize out))\n                                                                            (NumConvSpec.preservesValue\n                                                                              (@Aeneas.Std.IScalar.val\n                                                                                Aeneas.Std.IScalarTy.Isize x)\n                                                                              (@Aeneas.Std.IScalar.val\n                                                                                Aeneas.Std.IScalarTy.Isize\n                                                                                out)))))))))))))))))))))))))))))))))))))","theorem":"NumConvProof.widen_all_spec","translation_rerun":false,"version":1}
proofs.rs:formal:{"axioms":["propext","Classical.choice","Quot.sound"],"binders":[],"conclusion":"(∀ (x : Aeneas.Std.U8),\n    ∃ out,\n      num_conv_verification_api.truncate_u8_u8 x = Aeneas.Std.Result.ok out ∧\n        NumConvSpec.boundedCongruent 8 0 (NumConvSpec.unsignedMax 8) ↑↑x ↑↑out) ∧\n  (∀ (x : Aeneas.Std.U16),\n      ∃ out,\n        num_conv_verification_api.truncate_u16_u8 x = Aeneas.Std.Result.ok out ∧\n          NumConvSpec.boundedCongruent 8 0 (NumConvSpec.unsignedMax 8) ↑↑x ↑↑out) ∧\n    (∀ (x : Aeneas.Std.U32),\n        ∃ out,\n          num_conv_verification_api.truncate_u32_u8 x = Aeneas.Std.Result.ok out ∧\n            NumConvSpec.boundedCongruent 8 0 (NumConvSpec.unsignedMax 8) ↑↑x ↑↑out) ∧\n      (∀ (x : Aeneas.Std.U64),\n          ∃ out,\n            num_conv_verification_api.truncate_u64_u8 x = Aeneas.Std.Result.ok out ∧\n              NumConvSpec.boundedCongruent 8 0 (NumConvSpec.unsignedMax 8) ↑↑x ↑↑out) ∧\n        (∀ (x : Aeneas.Std.U128),\n            ∃ out,\n              num_conv_verification_api.truncate_u128_u8 x = Aeneas.Std.Result.ok out ∧\n                NumConvSpec.boundedCongruent 8 0 (NumConvSpec.unsignedMax 8) ↑↑x ↑↑out) ∧\n          (∀ (x : Aeneas.Std.Usize),\n              ∃ out,\n                num_conv_verification_api.truncate_usize_u8 x = Aeneas.Std.Result.ok out ∧\n                  NumConvSpec.boundedCongruent 8 0 (NumConvSpec.unsignedMax 8) ↑↑x ↑↑out) ∧\n            (∀ (x : Aeneas.Std.U16),\n                ∃ out,\n                  num_conv_verification_api.truncate_u16_u16 x = Aeneas.Std.Result.ok out ∧\n                    NumConvSpec.boundedCongruent 16 0 (NumConvSpec.unsignedMax 16) ↑↑x ↑↑out) ∧\n              (∀ (x : Aeneas.Std.U32),\n                  ∃ out,\n                    num_conv_verification_api.truncate_u32_u16 x = Aeneas.Std.Result.ok out ∧\n                      NumConvSpec.boundedCongruent 16 0 (NumConvSpec.unsignedMax 16) ↑↑x ↑↑out) ∧\n                (∀ (x : Aeneas.Std.U64),\n                    ∃ out,\n                      num_conv_verification_api.truncate_u64_u16 x = Aeneas.Std.Result.ok out ∧\n                        NumConvSpec.boundedCongruent 16 0 (NumConvSpec.unsignedMax 16) ↑↑x ↑↑out) ∧\n                  (∀ (x : Aeneas.Std.U128),\n                      ∃ out,\n                        num_conv_verification_api.truncate_u128_u16 x = Aeneas.Std.Result.ok out ∧\n                          NumConvSpec.boundedCongruent 16 0 (NumConvSpec.unsignedMax 16) ↑↑x ↑↑out) ∧\n                    (∀ (x : Aeneas.Std.Usize),\n                        ∃ out,\n                          num_conv_verification_api.truncate_usize_u16 x = Aeneas.Std.Result.ok out ∧\n                            NumConvSpec.boundedCongruent 16 0 (NumConvSpec.unsignedMax 16) ↑↑x ↑↑out) ∧\n                      (∀ (x : Aeneas.Std.U32),\n                          ∃ out,\n                            num_conv_verification_api.truncate_u32_u32 x = Aeneas.Std.Result.ok out ∧\n                              NumConvSpec.boundedCongruent 32 0 (NumConvSpec.unsignedMax 32) ↑↑x ↑↑out) ∧\n                        (∀ (x : Aeneas.Std.U64),\n                            ∃ out,\n                              num_conv_verification_api.truncate_u64_u32 x = Aeneas.Std.Result.ok out ∧\n                                NumConvSpec.boundedCongruent 32 0 (NumConvSpec.unsignedMax 32) ↑↑x ↑↑out) ∧\n                          (∀ (x : Aeneas.Std.U128),\n                              ∃ out,\n                                num_conv_verification_api.truncate_u128_u32 x = Aeneas.Std.Result.ok out ∧\n                                  NumConvSpec.boundedCongruent 32 0 (NumConvSpec.unsignedMax 32) ↑↑x ↑↑out) ∧\n                            (∀ (x : Aeneas.Std.U64),\n                                ∃ out,\n                                  num_conv_verification_api.truncate_u64_u64 x = Aeneas.Std.Result.ok out ∧\n                                    NumConvSpec.boundedCongruent 64 0 (NumConvSpec.unsignedMax 64) ↑↑x ↑↑out) ∧\n                              (∀ (x : Aeneas.Std.U128),\n                                  ∃ out,\n                                    num_conv_verification_api.truncate_u128_u64 x = Aeneas.Std.Result.ok out ∧\n                                      NumConvSpec.boundedCongruent 64 0 (NumConvSpec.unsignedMax 64) ↑↑x ↑↑out) ∧\n                                (∀ (x : Aeneas.Std.U128),\n                                    ∃ out,\n                                      num_conv_verification_api.truncate_u128_u128 x = Aeneas.Std.Result.ok out ∧\n                                        NumConvSpec.boundedCongruent 128 0 (NumConvSpec.unsignedMax 128) ↑↑x ↑↑out) ∧\n                                  (∀ (x : Aeneas.Std.Usize),\n                                      ∃ out,\n                                        num_conv_verification_api.truncate_usize_usize x = Aeneas.Std.Result.ok out ∧\n                                          NumConvSpec.boundedCongruent Aeneas.Std.UScalarTy.Usize.numBits 0\n                                            (NumConvSpec.unsignedMax Aeneas.Std.UScalarTy.Usize.numBits) ↑↑x ↑↑out) ∧\n                                    (∀ (x : Aeneas.Std.I8),\n                                        ∃ out,\n                                          num_conv_verification_api.truncate_i8_i8 x = Aeneas.Std.Result.ok out ∧\n                                            NumConvSpec.boundedCongruent 8 (NumConvSpec.signedMin 8)\n                                              (NumConvSpec.signedMax 8) ↑x ↑out) ∧\n                                      (∀ (x : Aeneas.Std.I16),\n                                          ∃ out,\n                                            num_conv_verification_api.truncate_i16_i8 x = Aeneas.Std.Result.ok out ∧\n                                              NumConvSpec.boundedCongruent 8 (NumConvSpec.signedMin 8)\n                                                (NumConvSpec.signedMax 8) ↑x ↑out) ∧\n                                        (∀ (x : Aeneas.Std.I32),\n                                            ∃ out,\n                                              num_conv_verification_api.truncate_i32_i8 x = Aeneas.Std.Result.ok out ∧\n                                                NumConvSpec.boundedCongruent 8 (NumConvSpec.signedMin 8)\n                                                  (NumConvSpec.signedMax 8) ↑x ↑out) ∧\n                                          (∀ (x : Aeneas.Std.I64),\n                                              ∃ out,\n                                                num_conv_verification_api.truncate_i64_i8 x = Aeneas.Std.Result.ok out ∧\n                                                  NumConvSpec.boundedCongruent 8 (NumConvSpec.signedMin 8)\n                                                    (NumConvSpec.signedMax 8) ↑x ↑out) ∧\n                                            (∀ (x : Aeneas.Std.I128),\n                                                ∃ out,\n                                                  num_conv_verification_api.truncate_i128_i8 x =\n                                                      Aeneas.Std.Result.ok out ∧\n                                                    NumConvSpec.boundedCongruent 8 (NumConvSpec.signedMin 8)\n                                                      (NumConvSpec.signedMax 8) ↑x ↑out) ∧\n                                              (∀ (x : Aeneas.Std.Isize),\n                                                  ∃ out,\n                                                    num_conv_verification_api.truncate_isize_i8 x =\n                                                        Aeneas.Std.Result.ok out ∧\n                                                      NumConvSpec.boundedCongruent 8 (NumConvSpec.signedMin 8)\n                                                        (NumConvSpec.signedMax 8) ↑x ↑out) ∧\n                                                (∀ (x : Aeneas.Std.I16),\n                                                    ∃ out,\n                                                      num_conv_verification_api.truncate_i16_i16 x =\n                                                          Aeneas.Std.Result.ok out ∧\n                                                        NumConvSpec.boundedCongruent 16 (NumConvSpec.signedMin 16)\n                                                          (NumConvSpec.signedMax 16) ↑x ↑out) ∧\n                                                  (∀ (x : Aeneas.Std.I32),\n                                                      ∃ out,\n                                                        num_conv_verification_api.truncate_i32_i16 x =\n                                                            Aeneas.Std.Result.ok out ∧\n                                                          NumConvSpec.boundedCongruent 16 (NumConvSpec.signedMin 16)\n                                                            (NumConvSpec.signedMax 16) ↑x ↑out) ∧\n                                                    (∀ (x : Aeneas.Std.I64),\n                                                        ∃ out,\n                                                          num_conv_verification_api.truncate_i64_i16 x =\n                                                              Aeneas.Std.Result.ok out ∧\n                                                            NumConvSpec.boundedCongruent 16 (NumConvSpec.signedMin 16)\n                                                              (NumConvSpec.signedMax 16) ↑x ↑out) ∧\n                                                      (∀ (x : Aeneas.Std.I128),\n                                                          ∃ out,\n                                                            num_conv_verification_api.truncate_i128_i16 x =\n                                                                Aeneas.Std.Result.ok out ∧\n                                                              NumConvSpec.boundedCongruent 16 (NumConvSpec.signedMin 16)\n                                                                (NumConvSpec.signedMax 16) ↑x ↑out) ∧\n                                                        (∀ (x : Aeneas.Std.Isize),\n                                                            ∃ out,\n                                                              num_conv_verification_api.truncate_isize_i16 x =\n                                                                  Aeneas.Std.Result.ok out ∧\n                                                                NumConvSpec.boundedCongruent 16\n                                                                  (NumConvSpec.signedMin 16) (NumConvSpec.signedMax 16)\n                                                                  ↑x ↑out) ∧\n                                                          (∀ (x : Aeneas.Std.I32),\n                                                              ∃ out,\n                                                                num_conv_verification_api.truncate_i32_i32 x =\n                                                                    Aeneas.Std.Result.ok out ∧\n                                                                  NumConvSpec.boundedCongruent 32\n                                                                    (NumConvSpec.signedMin 32)\n                                                                    (NumConvSpec.signedMax 32) ↑x ↑out) ∧\n                                                            (∀ (x : Aeneas.Std.I64),\n                                                                ∃ out,\n                                                                  num_conv_verification_api.truncate_i64_i32 x =\n                                                                      Aeneas.Std.Result.ok out ∧\n                                                                    NumConvSpec.boundedCongruent 32\n                                                                      (NumConvSpec.signedMin 32)\n                                                                      (NumConvSpec.signedMax 32) ↑x ↑out) ∧\n                                                              (∀ (x : Aeneas.Std.I128),\n                                                                  ∃ out,\n                                                                    num_conv_verification_api.truncate_i128_i32 x =\n                                                                        Aeneas.Std.Result.ok out ∧\n                                                                      NumConvSpec.boundedCongruent 32\n                                                                        (NumConvSpec.signedMin 32)\n                                                                        (NumConvSpec.signedMax 32) ↑x ↑out) ∧\n                                                                (∀ (x : Aeneas.Std.I64),\n                                                                    ∃ out,\n                                                                      num_conv_verification_api.truncate_i64_i64 x =\n                                                                          Aeneas.Std.Result.ok out ∧\n                                                                        NumConvSpec.boundedCongruent 64\n                                                                          (NumConvSpec.signedMin 64)\n                                                                          (NumConvSpec.signedMax 64) ↑x ↑out) ∧\n                                                                  (∀ (x : Aeneas.Std.I128),\n                                                                      ∃ out,\n                                                                        num_conv_verification_api.truncate_i128_i64 x =\n                                                                            Aeneas.Std.Result.ok out ∧\n                                                                          NumConvSpec.boundedCongruent 64\n                                                                            (NumConvSpec.signedMin 64)\n                                                                            (NumConvSpec.signedMax 64) ↑x ↑out) ∧\n                                                                    (∀ (x : Aeneas.Std.I128),\n                                                                        ∃ out,\n                                                                          num_conv_verification_api.truncate_i128_i128\n                                                                                x =\n                                                                              Aeneas.Std.Result.ok out ∧\n                                                                            NumConvSpec.boundedCongruent 128\n                                                                              (NumConvSpec.signedMin 128)\n                                                                              (NumConvSpec.signedMax 128) ↑x ↑out) ∧\n                                                                      ∀ (x : Aeneas.Std.Isize),\n                                                                        ∃ out,\n                                                                          num_conv_verification_api.truncate_isize_isize\n                                                                                x =\n                                                                              Aeneas.Std.Result.ok out ∧\n                                                                            NumConvSpec.boundedCongruent\n                                                                              Aeneas.Std.IScalarTy.Isize.numBits\n                                                                              (NumConvSpec.signedMin\n                                                                                Aeneas.Std.IScalarTy.Isize.numBits)\n                                                                              (NumConvSpec.signedMax\n                                                                                Aeneas.Std.IScalarTy.Isize.numBits)\n                                                                              ↑x ↑out","conclusion_segments":[{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.U8","text":"Aeneas.Std.U8"},{"text":"),\n    "},{"text":"∃ "},{"text":"out"},{"text":",\n      "},{"ref":"num_conv_verification_api.truncate_u8_u8","text":"num_conv_verification_api.truncate_u8_u8"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n        "},{"ref":"NumConvSpec.boundedCongruent","text":"NumConvSpec.boundedCongruent"},{"text":" "},{"text":"8"},{"text":" "},{"text":"0"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.unsignedMax","text":"NumConvSpec.unsignedMax"},{"text":" "},{"text":"8"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n  "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.U16","text":"Aeneas.Std.U16"},{"text":"),\n      "},{"text":"∃ "},{"text":"out"},{"text":",\n        "},{"ref":"num_conv_verification_api.truncate_u16_u8","text":"num_conv_verification_api.truncate_u16_u8"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n          "},{"ref":"NumConvSpec.boundedCongruent","text":"NumConvSpec.boundedCongruent"},{"text":" "},{"text":"8"},{"text":" "},{"text":"0"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.unsignedMax","text":"NumConvSpec.unsignedMax"},{"text":" "},{"text":"8"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n    "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.U32","text":"Aeneas.Std.U32"},{"text":"),\n        "},{"text":"∃ "},{"text":"out"},{"text":",\n          "},{"ref":"num_conv_verification_api.truncate_u32_u8","text":"num_conv_verification_api.truncate_u32_u8"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n            "},{"ref":"NumConvSpec.boundedCongruent","text":"NumConvSpec.boundedCongruent"},{"text":" "},{"text":"8"},{"text":" "},{"text":"0"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.unsignedMax","text":"NumConvSpec.unsignedMax"},{"text":" "},{"text":"8"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n      "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.U64","text":"Aeneas.Std.U64"},{"text":"),\n          "},{"text":"∃ "},{"text":"out"},{"text":",\n            "},{"ref":"num_conv_verification_api.truncate_u64_u8","text":"num_conv_verification_api.truncate_u64_u8"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n              "},{"ref":"NumConvSpec.boundedCongruent","text":"NumConvSpec.boundedCongruent"},{"text":" "},{"text":"8"},{"text":" "},{"text":"0"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.unsignedMax","text":"NumConvSpec.unsignedMax"},{"text":" "},{"text":"8"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n        "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.U128","text":"Aeneas.Std.U128"},{"text":"),\n            "},{"text":"∃ "},{"text":"out"},{"text":",\n              "},{"ref":"num_conv_verification_api.truncate_u128_u8","text":"num_conv_verification_api.truncate_u128_u8"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                "},{"ref":"NumConvSpec.boundedCongruent","text":"NumConvSpec.boundedCongruent"},{"text":" "},{"text":"8"},{"text":" "},{"text":"0"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.unsignedMax","text":"NumConvSpec.unsignedMax"},{"text":" "},{"text":"8"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n          "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.Usize","text":"Aeneas.Std.Usize"},{"text":"),\n              "},{"text":"∃ "},{"text":"out"},{"text":",\n                "},{"ref":"num_conv_verification_api.truncate_usize_u8","text":"num_conv_verification_api.truncate_usize_u8"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                  "},{"ref":"NumConvSpec.boundedCongruent","text":"NumConvSpec.boundedCongruent"},{"text":" "},{"text":"8"},{"text":" "},{"text":"0"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.unsignedMax","text":"NumConvSpec.unsignedMax"},{"text":" "},{"text":"8"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n            "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.U16","text":"Aeneas.Std.U16"},{"text":"),\n                "},{"text":"∃ "},{"text":"out"},{"text":",\n                  "},{"ref":"num_conv_verification_api.truncate_u16_u16","text":"num_conv_verification_api.truncate_u16_u16"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                    "},{"ref":"NumConvSpec.boundedCongruent","text":"NumConvSpec.boundedCongruent"},{"text":" "},{"text":"16"},{"text":" "},{"text":"0"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.unsignedMax","text":"NumConvSpec.unsignedMax"},{"text":" "},{"text":"16"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n              "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.U32","text":"Aeneas.Std.U32"},{"text":"),\n                  "},{"text":"∃ "},{"text":"out"},{"text":",\n                    "},{"ref":"num_conv_verification_api.truncate_u32_u16","text":"num_conv_verification_api.truncate_u32_u16"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                      "},{"ref":"NumConvSpec.boundedCongruent","text":"NumConvSpec.boundedCongruent"},{"text":" "},{"text":"16"},{"text":" "},{"text":"0"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.unsignedMax","text":"NumConvSpec.unsignedMax"},{"text":" "},{"text":"16"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.U64","text":"Aeneas.Std.U64"},{"text":"),\n                    "},{"text":"∃ "},{"text":"out"},{"text":",\n                      "},{"ref":"num_conv_verification_api.truncate_u64_u16","text":"num_conv_verification_api.truncate_u64_u16"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                        "},{"ref":"NumConvSpec.boundedCongruent","text":"NumConvSpec.boundedCongruent"},{"text":" "},{"text":"16"},{"text":" "},{"text":"0"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.unsignedMax","text":"NumConvSpec.unsignedMax"},{"text":" "},{"text":"16"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                  "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.U128","text":"Aeneas.Std.U128"},{"text":"),\n                      "},{"text":"∃ "},{"text":"out"},{"text":",\n                        "},{"ref":"num_conv_verification_api.truncate_u128_u16","text":"num_conv_verification_api.truncate_u128_u16"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                          "},{"ref":"NumConvSpec.boundedCongruent","text":"NumConvSpec.boundedCongruent"},{"text":" "},{"text":"16"},{"text":" "},{"text":"0"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.unsignedMax","text":"NumConvSpec.unsignedMax"},{"text":" "},{"text":"16"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                    "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.Usize","text":"Aeneas.Std.Usize"},{"text":"),\n                        "},{"text":"∃ "},{"text":"out"},{"text":",\n                          "},{"ref":"num_conv_verification_api.truncate_usize_u16","text":"num_conv_verification_api.truncate_usize_u16"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                            "},{"ref":"NumConvSpec.boundedCongruent","text":"NumConvSpec.boundedCongruent"},{"text":" "},{"text":"16"},{"text":" "},{"text":"0"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.unsignedMax","text":"NumConvSpec.unsignedMax"},{"text":" "},{"text":"16"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                      "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.U32","text":"Aeneas.Std.U32"},{"text":"),\n                          "},{"text":"∃ "},{"text":"out"},{"text":",\n                            "},{"ref":"num_conv_verification_api.truncate_u32_u32","text":"num_conv_verification_api.truncate_u32_u32"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                              "},{"ref":"NumConvSpec.boundedCongruent","text":"NumConvSpec.boundedCongruent"},{"text":" "},{"text":"32"},{"text":" "},{"text":"0"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.unsignedMax","text":"NumConvSpec.unsignedMax"},{"text":" "},{"text":"32"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                        "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.U64","text":"Aeneas.Std.U64"},{"text":"),\n                            "},{"text":"∃ "},{"text":"out"},{"text":",\n                              "},{"ref":"num_conv_verification_api.truncate_u64_u32","text":"num_conv_verification_api.truncate_u64_u32"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                "},{"ref":"NumConvSpec.boundedCongruent","text":"NumConvSpec.boundedCongruent"},{"text":" "},{"text":"32"},{"text":" "},{"text":"0"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.unsignedMax","text":"NumConvSpec.unsignedMax"},{"text":" "},{"text":"32"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                          "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.U128","text":"Aeneas.Std.U128"},{"text":"),\n                              "},{"text":"∃ "},{"text":"out"},{"text":",\n                                "},{"ref":"num_conv_verification_api.truncate_u128_u32","text":"num_conv_verification_api.truncate_u128_u32"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                  "},{"ref":"NumConvSpec.boundedCongruent","text":"NumConvSpec.boundedCongruent"},{"text":" "},{"text":"32"},{"text":" "},{"text":"0"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.unsignedMax","text":"NumConvSpec.unsignedMax"},{"text":" "},{"text":"32"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                            "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.U64","text":"Aeneas.Std.U64"},{"text":"),\n                                "},{"text":"∃ "},{"text":"out"},{"text":",\n                                  "},{"ref":"num_conv_verification_api.truncate_u64_u64","text":"num_conv_verification_api.truncate_u64_u64"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                    "},{"ref":"NumConvSpec.boundedCongruent","text":"NumConvSpec.boundedCongruent"},{"text":" "},{"text":"64"},{"text":" "},{"text":"0"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.unsignedMax","text":"NumConvSpec.unsignedMax"},{"text":" "},{"text":"64"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                              "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.U128","text":"Aeneas.Std.U128"},{"text":"),\n                                  "},{"text":"∃ "},{"text":"out"},{"text":",\n                                    "},{"ref":"num_conv_verification_api.truncate_u128_u64","text":"num_conv_verification_api.truncate_u128_u64"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                      "},{"ref":"NumConvSpec.boundedCongruent","text":"NumConvSpec.boundedCongruent"},{"text":" "},{"text":"64"},{"text":" "},{"text":"0"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.unsignedMax","text":"NumConvSpec.unsignedMax"},{"text":" "},{"text":"64"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                                "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.U128","text":"Aeneas.Std.U128"},{"text":"),\n                                    "},{"text":"∃ "},{"text":"out"},{"text":",\n                                      "},{"ref":"num_conv_verification_api.truncate_u128_u128","text":"num_conv_verification_api.truncate_u128_u128"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                        "},{"ref":"NumConvSpec.boundedCongruent","text":"NumConvSpec.boundedCongruent"},{"text":" "},{"text":"128"},{"text":" "},{"text":"0"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.unsignedMax","text":"NumConvSpec.unsignedMax"},{"text":" "},{"text":"128"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                                  "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.Usize","text":"Aeneas.Std.Usize"},{"text":"),\n                                      "},{"text":"∃ "},{"text":"out"},{"text":",\n                                        "},{"ref":"num_conv_verification_api.truncate_usize_usize","text":"num_conv_verification_api.truncate_usize_usize"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                          "},{"ref":"NumConvSpec.boundedCongruent","text":"NumConvSpec.boundedCongruent"},{"text":" "},{"ref":"Aeneas.Std.UScalarTy.Usize","text":"Aeneas.Std.UScalarTy.Usize"},{"text":"."},{"ref":"Aeneas.Std.UScalarTy.numBits","text":"numBits"},{"text":" "},{"text":"0"},{"text":"\n                                            "},{"text":"("},{"ref":"NumConvSpec.unsignedMax","text":"NumConvSpec.unsignedMax"},{"text":" "},{"ref":"Aeneas.Std.UScalarTy.Usize","text":"Aeneas.Std.UScalarTy.Usize"},{"text":"."},{"ref":"Aeneas.Std.UScalarTy.numBits","text":"numBits"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                                    "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.I8","text":"Aeneas.Std.I8"},{"text":"),\n                                        "},{"text":"∃ "},{"text":"out"},{"text":",\n                                          "},{"ref":"num_conv_verification_api.truncate_i8_i8","text":"num_conv_verification_api.truncate_i8_i8"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                            "},{"ref":"NumConvSpec.boundedCongruent","text":"NumConvSpec.boundedCongruent"},{"text":" "},{"text":"8"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.signedMin","text":"NumConvSpec.signedMin"},{"text":" "},{"text":"8"},{"text":")"},{"text":"\n                                              "},{"text":"("},{"ref":"NumConvSpec.signedMax","text":"NumConvSpec.signedMax"},{"text":" "},{"text":"8"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                                      "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.I16","text":"Aeneas.Std.I16"},{"text":"),\n                                          "},{"text":"∃ "},{"text":"out"},{"text":",\n                                            "},{"ref":"num_conv_verification_api.truncate_i16_i8","text":"num_conv_verification_api.truncate_i16_i8"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                              "},{"ref":"NumConvSpec.boundedCongruent","text":"NumConvSpec.boundedCongruent"},{"text":" "},{"text":"8"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.signedMin","text":"NumConvSpec.signedMin"},{"text":" "},{"text":"8"},{"text":")"},{"text":"\n                                                "},{"text":"("},{"ref":"NumConvSpec.signedMax","text":"NumConvSpec.signedMax"},{"text":" "},{"text":"8"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                                        "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.I32","text":"Aeneas.Std.I32"},{"text":"),\n                                            "},{"text":"∃ "},{"text":"out"},{"text":",\n                                              "},{"ref":"num_conv_verification_api.truncate_i32_i8","text":"num_conv_verification_api.truncate_i32_i8"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                                "},{"ref":"NumConvSpec.boundedCongruent","text":"NumConvSpec.boundedCongruent"},{"text":" "},{"text":"8"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.signedMin","text":"NumConvSpec.signedMin"},{"text":" "},{"text":"8"},{"text":")"},{"text":"\n                                                  "},{"text":"("},{"ref":"NumConvSpec.signedMax","text":"NumConvSpec.signedMax"},{"text":" "},{"text":"8"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                                          "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.I64","text":"Aeneas.Std.I64"},{"text":"),\n                                              "},{"text":"∃ "},{"text":"out"},{"text":",\n                                                "},{"ref":"num_conv_verification_api.truncate_i64_i8","text":"num_conv_verification_api.truncate_i64_i8"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                                  "},{"ref":"NumConvSpec.boundedCongruent","text":"NumConvSpec.boundedCongruent"},{"text":" "},{"text":"8"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.signedMin","text":"NumConvSpec.signedMin"},{"text":" "},{"text":"8"},{"text":")"},{"text":"\n                                                    "},{"text":"("},{"ref":"NumConvSpec.signedMax","text":"NumConvSpec.signedMax"},{"text":" "},{"text":"8"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                                            "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.I128","text":"Aeneas.Std.I128"},{"text":"),\n                                                "},{"text":"∃ "},{"text":"out"},{"text":",\n                                                  "},{"ref":"num_conv_verification_api.truncate_i128_i8","text":"num_conv_verification_api.truncate_i128_i8"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" =\n                                                      "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                                    "},{"ref":"NumConvSpec.boundedCongruent","text":"NumConvSpec.boundedCongruent"},{"text":" "},{"text":"8"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.signedMin","text":"NumConvSpec.signedMin"},{"text":" "},{"text":"8"},{"text":")"},{"text":"\n                                                      "},{"text":"("},{"ref":"NumConvSpec.signedMax","text":"NumConvSpec.signedMax"},{"text":" "},{"text":"8"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                                              "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.Isize","text":"Aeneas.Std.Isize"},{"text":"),\n                                                  "},{"text":"∃ "},{"text":"out"},{"text":",\n                                                    "},{"ref":"num_conv_verification_api.truncate_isize_i8","text":"num_conv_verification_api.truncate_isize_i8"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" =\n                                                        "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                                      "},{"ref":"NumConvSpec.boundedCongruent","text":"NumConvSpec.boundedCongruent"},{"text":" "},{"text":"8"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.signedMin","text":"NumConvSpec.signedMin"},{"text":" "},{"text":"8"},{"text":")"},{"text":"\n                                                        "},{"text":"("},{"ref":"NumConvSpec.signedMax","text":"NumConvSpec.signedMax"},{"text":" "},{"text":"8"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                                                "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.I16","text":"Aeneas.Std.I16"},{"text":"),\n                                                    "},{"text":"∃ "},{"text":"out"},{"text":",\n                                                      "},{"ref":"num_conv_verification_api.truncate_i16_i16","text":"num_conv_verification_api.truncate_i16_i16"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" =\n                                                          "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                                        "},{"ref":"NumConvSpec.boundedCongruent","text":"NumConvSpec.boundedCongruent"},{"text":" "},{"text":"16"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.signedMin","text":"NumConvSpec.signedMin"},{"text":" "},{"text":"16"},{"text":")"},{"text":"\n                                                          "},{"text":"("},{"ref":"NumConvSpec.signedMax","text":"NumConvSpec.signedMax"},{"text":" "},{"text":"16"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                                                  "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.I32","text":"Aeneas.Std.I32"},{"text":"),\n                                                      "},{"text":"∃ "},{"text":"out"},{"text":",\n                                                        "},{"ref":"num_conv_verification_api.truncate_i32_i16","text":"num_conv_verification_api.truncate_i32_i16"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" =\n                                                            "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                                          "},{"ref":"NumConvSpec.boundedCongruent","text":"NumConvSpec.boundedCongruent"},{"text":" "},{"text":"16"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.signedMin","text":"NumConvSpec.signedMin"},{"text":" "},{"text":"16"},{"text":")"},{"text":"\n                                                            "},{"text":"("},{"ref":"NumConvSpec.signedMax","text":"NumConvSpec.signedMax"},{"text":" "},{"text":"16"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                                                    "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.I64","text":"Aeneas.Std.I64"},{"text":"),\n                                                        "},{"text":"∃ "},{"text":"out"},{"text":",\n                                                          "},{"ref":"num_conv_verification_api.truncate_i64_i16","text":"num_conv_verification_api.truncate_i64_i16"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" =\n                                                              "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                                            "},{"ref":"NumConvSpec.boundedCongruent","text":"NumConvSpec.boundedCongruent"},{"text":" "},{"text":"16"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.signedMin","text":"NumConvSpec.signedMin"},{"text":" "},{"text":"16"},{"text":")"},{"text":"\n                                                              "},{"text":"("},{"ref":"NumConvSpec.signedMax","text":"NumConvSpec.signedMax"},{"text":" "},{"text":"16"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                                                      "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.I128","text":"Aeneas.Std.I128"},{"text":"),\n                                                          "},{"text":"∃ "},{"text":"out"},{"text":",\n                                                            "},{"ref":"num_conv_verification_api.truncate_i128_i16","text":"num_conv_verification_api.truncate_i128_i16"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" =\n                                                                "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                                              "},{"ref":"NumConvSpec.boundedCongruent","text":"NumConvSpec.boundedCongruent"},{"text":" "},{"text":"16"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.signedMin","text":"NumConvSpec.signedMin"},{"text":" "},{"text":"16"},{"text":")"},{"text":"\n                                                                "},{"text":"("},{"ref":"NumConvSpec.signedMax","text":"NumConvSpec.signedMax"},{"text":" "},{"text":"16"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                                                        "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.Isize","text":"Aeneas.Std.Isize"},{"text":"),\n                                                            "},{"text":"∃ "},{"text":"out"},{"text":",\n                                                              "},{"ref":"num_conv_verification_api.truncate_isize_i16","text":"num_conv_verification_api.truncate_isize_i16"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" =\n                                                                  "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                                                "},{"ref":"NumConvSpec.boundedCongruent","text":"NumConvSpec.boundedCongruent"},{"text":" "},{"text":"16"},{"text":"\n                                                                  "},{"text":"("},{"ref":"NumConvSpec.signedMin","text":"NumConvSpec.signedMin"},{"text":" "},{"text":"16"},{"text":")"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.signedMax","text":"NumConvSpec.signedMax"},{"text":" "},{"text":"16"},{"text":")"},{"text":"\n                                                                  "},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                                                          "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.I32","text":"Aeneas.Std.I32"},{"text":"),\n                                                              "},{"text":"∃ "},{"text":"out"},{"text":",\n                                                                "},{"ref":"num_conv_verification_api.truncate_i32_i32","text":"num_conv_verification_api.truncate_i32_i32"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" =\n                                                                    "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                                                  "},{"ref":"NumConvSpec.boundedCongruent","text":"NumConvSpec.boundedCongruent"},{"text":" "},{"text":"32"},{"text":"\n                                                                    "},{"text":"("},{"ref":"NumConvSpec.signedMin","text":"NumConvSpec.signedMin"},{"text":" "},{"text":"32"},{"text":")"},{"text":"\n                                                                    "},{"text":"("},{"ref":"NumConvSpec.signedMax","text":"NumConvSpec.signedMax"},{"text":" "},{"text":"32"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                                                            "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.I64","text":"Aeneas.Std.I64"},{"text":"),\n                                                                "},{"text":"∃ "},{"text":"out"},{"text":",\n                                                                  "},{"ref":"num_conv_verification_api.truncate_i64_i32","text":"num_conv_verification_api.truncate_i64_i32"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" =\n                                                                      "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                                                    "},{"ref":"NumConvSpec.boundedCongruent","text":"NumConvSpec.boundedCongruent"},{"text":" "},{"text":"32"},{"text":"\n                                                                      "},{"text":"("},{"ref":"NumConvSpec.signedMin","text":"NumConvSpec.signedMin"},{"text":" "},{"text":"32"},{"text":")"},{"text":"\n                                                                      "},{"text":"("},{"ref":"NumConvSpec.signedMax","text":"NumConvSpec.signedMax"},{"text":" "},{"text":"32"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                                                              "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.I128","text":"Aeneas.Std.I128"},{"text":"),\n                                                                  "},{"text":"∃ "},{"text":"out"},{"text":",\n                                                                    "},{"ref":"num_conv_verification_api.truncate_i128_i32","text":"num_conv_verification_api.truncate_i128_i32"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" =\n                                                                        "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                                                      "},{"ref":"NumConvSpec.boundedCongruent","text":"NumConvSpec.boundedCongruent"},{"text":" "},{"text":"32"},{"text":"\n                                                                        "},{"text":"("},{"ref":"NumConvSpec.signedMin","text":"NumConvSpec.signedMin"},{"text":" "},{"text":"32"},{"text":")"},{"text":"\n                                                                        "},{"text":"("},{"ref":"NumConvSpec.signedMax","text":"NumConvSpec.signedMax"},{"text":" "},{"text":"32"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                                                                "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.I64","text":"Aeneas.Std.I64"},{"text":"),\n                                                                    "},{"text":"∃ "},{"text":"out"},{"text":",\n                                                                      "},{"ref":"num_conv_verification_api.truncate_i64_i64","text":"num_conv_verification_api.truncate_i64_i64"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" =\n                                                                          "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                                                        "},{"ref":"NumConvSpec.boundedCongruent","text":"NumConvSpec.boundedCongruent"},{"text":" "},{"text":"64"},{"text":"\n                                                                          "},{"text":"("},{"ref":"NumConvSpec.signedMin","text":"NumConvSpec.signedMin"},{"text":" "},{"text":"64"},{"text":")"},{"text":"\n                                                                          "},{"text":"("},{"ref":"NumConvSpec.signedMax","text":"NumConvSpec.signedMax"},{"text":" "},{"text":"64"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                                                                  "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.I128","text":"Aeneas.Std.I128"},{"text":"),\n                                                                      "},{"text":"∃ "},{"text":"out"},{"text":",\n                                                                        "},{"ref":"num_conv_verification_api.truncate_i128_i64","text":"num_conv_verification_api.truncate_i128_i64"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" =\n                                                                            "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                                                          "},{"ref":"NumConvSpec.boundedCongruent","text":"NumConvSpec.boundedCongruent"},{"text":" "},{"text":"64"},{"text":"\n                                                                            "},{"text":"("},{"ref":"NumConvSpec.signedMin","text":"NumConvSpec.signedMin"},{"text":" "},{"text":"64"},{"text":")"},{"text":"\n                                                                            "},{"text":"("},{"ref":"NumConvSpec.signedMax","text":"NumConvSpec.signedMax"},{"text":" "},{"text":"64"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                                                                    "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.I128","text":"Aeneas.Std.I128"},{"text":"),\n                                                                        "},{"text":"∃ "},{"text":"out"},{"text":",\n                                                                          "},{"ref":"num_conv_verification_api.truncate_i128_i128","text":"num_conv_verification_api.truncate_i128_i128"},{"text":"\n                                                                                "},{"text":"x"},{"ref":"Eq","text":" =\n                                                                              "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                                                            "},{"ref":"NumConvSpec.boundedCongruent","text":"NumConvSpec.boundedCongruent"},{"text":" "},{"text":"128"},{"text":"\n                                                                              "},{"text":"("},{"ref":"NumConvSpec.signedMin","text":"NumConvSpec.signedMin"},{"text":" "},{"text":"128"},{"text":")"},{"text":"\n                                                                              "},{"text":"("},{"ref":"NumConvSpec.signedMax","text":"NumConvSpec.signedMax"},{"text":" "},{"text":"128"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"out"},{"text":")"},{"ref":"And","text":" ∧\n                                                                      "},{"text":"∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.Isize","text":"Aeneas.Std.Isize"},{"text":"),\n                                                                        "},{"text":"∃ "},{"text":"out"},{"text":",\n                                                                          "},{"ref":"num_conv_verification_api.truncate_isize_isize","text":"num_conv_verification_api.truncate_isize_isize"},{"text":"\n                                                                                "},{"text":"x"},{"ref":"Eq","text":" =\n                                                                              "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                                                            "},{"ref":"NumConvSpec.boundedCongruent","text":"NumConvSpec.boundedCongruent"},{"text":"\n                                                                              "},{"ref":"Aeneas.Std.IScalarTy.Isize","text":"Aeneas.Std.IScalarTy.Isize"},{"text":"."},{"ref":"Aeneas.Std.IScalarTy.numBits","text":"numBits"},{"text":"\n                                                                              "},{"text":"("},{"ref":"NumConvSpec.signedMin","text":"NumConvSpec.signedMin"},{"text":"\n                                                                                "},{"ref":"Aeneas.Std.IScalarTy.Isize","text":"Aeneas.Std.IScalarTy.Isize"},{"text":"."},{"ref":"Aeneas.Std.IScalarTy.numBits","text":"numBits"},{"text":")"},{"text":"\n                                                                              "},{"text":"("},{"ref":"NumConvSpec.signedMax","text":"NumConvSpec.signedMax"},{"text":"\n                                                                                "},{"ref":"Aeneas.Std.IScalarTy.Isize","text":"Aeneas.Std.IScalarTy.Isize"},{"text":"."},{"ref":"Aeneas.Std.IScalarTy.numBits","text":"numBits"},{"text":")"},{"text":"\n                                                                              "},{"text":"↑"},{"text":"x"},{"text":" "},{"text":"↑"},{"text":"out"}],"definitions":[{"module":"Init.Prelude","name":"And","source":{"first_line":645,"last_line":659}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.U8","source":{"first_line":669,"last_line":669}},{"module":"Init.Core","name":"Exists","source":{"first_line":313,"last_line":341}},{"module":"Init.Prelude","name":"Eq","source":{"first_line":46,"last_line":76}},{"module":"Aeneas.Std.Primitives","name":"Aeneas.Std.Result","source":{"first_line":67,"last_line":68}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.truncate_u8_u8","source":{"first_line":4163,"last_line":4169}},{"module":"Aeneas.Std.Primitives","name":"Aeneas.Std.Result.ok","source":{"first_line":72,"last_line":72}},{"module":"Specs","name":"NumConvSpec.boundedCongruent","source":{"first_line":42,"last_line":45}},{"module":"Init.Prelude","name":"OfNat.ofNat","source":{"first_line":1393,"last_line":1393}},{"module":"Init.Prelude","name":"Nat","source":{"first_line":1349,"last_line":1371}},{"module":"Init.Prelude","name":"instOfNatNat","source":{"first_line":1395,"last_line":1397}},{"module":"Init.Data.Int.Basic","name":"Int","source":{"first_line":35,"last_line":58}},{"module":"Init.Data.Int.Basic","name":"instOfNat","source":{"first_line":65,"last_line":66}},{"module":"Specs","name":"NumConvSpec.unsignedMax","source":{"first_line":20,"last_line":20}},{"module":"Init.Data.Cast","name":"Nat.cast","source":{"first_line":69,"last_line":71}},{"module":"Init.Data.Int.Basic","name":"instNatCastInt","source":{"first_line":63,"last_line":63}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.UScalar.val","source":{"first_line":76,"last_line":76}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.UScalarTy.U8","source":{"first_line":33,"last_line":33}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.U16","source":{"first_line":670,"last_line":670}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.truncate_u16_u8","source":{"first_line":4203,"last_line":4209}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.UScalarTy.U16","source":{"first_line":34,"last_line":34}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.U32","source":{"first_line":671,"last_line":671}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.truncate_u32_u8","source":{"first_line":4243,"last_line":4249}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.UScalarTy.U32","source":{"first_line":35,"last_line":35}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.U64","source":{"first_line":672,"last_line":672}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.truncate_u64_u8","source":{"first_line":4283,"last_line":4289}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.UScalarTy.U64","source":{"first_line":36,"last_line":36}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.U128","source":{"first_line":673,"last_line":673}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.truncate_u128_u8","source":{"first_line":4323,"last_line":4329}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.UScalarTy.U128","source":{"first_line":37,"last_line":37}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.Usize","source":{"first_line":668,"last_line":668}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.truncate_usize_u8","source":{"first_line":4363,"last_line":4369}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.UScalarTy.Usize","source":{"first_line":32,"last_line":32}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.truncate_u16_u16","source":{"first_line":4403,"last_line":4409}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.truncate_u32_u16","source":{"first_line":4443,"last_line":4449}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.truncate_u64_u16","source":{"first_line":4483,"last_line":4489}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.truncate_u128_u16","source":{"first_line":4523,"last_line":4529}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.truncate_usize_u16","source":{"first_line":4563,"last_line":4569}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.truncate_u32_u32","source":{"first_line":4603,"last_line":4609}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.truncate_u64_u32","source":{"first_line":4643,"last_line":4649}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.truncate_u128_u32","source":{"first_line":4683,"last_line":4689}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.truncate_u64_u64","source":{"first_line":4723,"last_line":4729}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.truncate_u128_u64","source":{"first_line":4763,"last_line":4769}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.truncate_u128_u128","source":{"first_line":4803,"last_line":4809}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.truncate_usize_usize","source":{"first_line":4843,"last_line":4849}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.UScalarTy.numBits","source":{"first_line":50,"last_line":58}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.I8","source":{"first_line":675,"last_line":675}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.truncate_i8_i8","source":{"first_line":4884,"last_line":4890}},{"module":"Specs","name":"NumConvSpec.signedMin","source":{"first_line":22,"last_line":22}},{"module":"Specs","name":"NumConvSpec.signedMax","source":{"first_line":24,"last_line":24}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.IScalar.val","source":{"first_line":84,"last_line":84}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.IScalarTy.I8","source":{"first_line":43,"last_line":43}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.I16","source":{"first_line":676,"last_line":676}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.truncate_i16_i8","source":{"first_line":4924,"last_line":4930}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.IScalarTy.I16","source":{"first_line":44,"last_line":44}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.I32","source":{"first_line":677,"last_line":677}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.truncate_i32_i8","source":{"first_line":4964,"last_line":4970}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.IScalarTy.I32","source":{"first_line":45,"last_line":45}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.I64","source":{"first_line":678,"last_line":678}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.truncate_i64_i8","source":{"first_line":5004,"last_line":5010}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.IScalarTy.I64","source":{"first_line":46,"last_line":46}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.I128","source":{"first_line":679,"last_line":679}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.truncate_i128_i8","source":{"first_line":5044,"last_line":5050}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.IScalarTy.I128","source":{"first_line":47,"last_line":47}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.Isize","source":{"first_line":674,"last_line":674}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.truncate_isize_i8","source":{"first_line":5084,"last_line":5090}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.IScalarTy.Isize","source":{"first_line":42,"last_line":42}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.truncate_i16_i16","source":{"first_line":5124,"last_line":5130}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.truncate_i32_i16","source":{"first_line":5164,"last_line":5170}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.truncate_i64_i16","source":{"first_line":5204,"last_line":5210}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.truncate_i128_i16","source":{"first_line":5244,"last_line":5250}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.truncate_isize_i16","source":{"first_line":5284,"last_line":5290}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.truncate_i32_i32","source":{"first_line":5324,"last_line":5330}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.truncate_i64_i32","source":{"first_line":5364,"last_line":5370}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.truncate_i128_i32","source":{"first_line":5404,"last_line":5410}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.truncate_i64_i64","source":{"first_line":5444,"last_line":5450}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.truncate_i128_i64","source":{"first_line":5484,"last_line":5490}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.truncate_i128_i128","source":{"first_line":5524,"last_line":5530}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.truncate_isize_isize","source":{"first_line":5564,"last_line":5570}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.IScalarTy.numBits","source":{"first_line":60,"last_line":68}}],"definitions_truncated":false,"first_line":87,"last_line":126,"module":"Contracts","program":null,"program_head":null,"statement":"And\n  (∀ (x : Aeneas.Std.U8),\n    @Exists.{1} Aeneas.Std.U8 fun (out : Aeneas.Std.U8) =>\n      And\n        (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.U8) (num_conv_verification_api.truncate_u8_u8 x)\n          (@Aeneas.Std.Result.ok.{0} Aeneas.Std.U8 out))\n        (NumConvSpec.boundedCongruent (@OfNat.ofNat.{0} Nat (nat_lit 8) (instOfNatNat (nat_lit 8)))\n          (@OfNat.ofNat.{0} Int (nat_lit 0) (@instOfNat (nat_lit 0)))\n          (NumConvSpec.unsignedMax (@OfNat.ofNat.{0} Nat (nat_lit 8) (instOfNatNat (nat_lit 8))))\n          (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U8 x))\n          (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U8 out))))\n  (And\n    (∀ (x : Aeneas.Std.U16),\n      @Exists.{1} Aeneas.Std.U8 fun (out : Aeneas.Std.U8) =>\n        And\n          (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.U8) (num_conv_verification_api.truncate_u16_u8 x)\n            (@Aeneas.Std.Result.ok.{0} Aeneas.Std.U8 out))\n          (NumConvSpec.boundedCongruent (@OfNat.ofNat.{0} Nat (nat_lit 8) (instOfNatNat (nat_lit 8)))\n            (@OfNat.ofNat.{0} Int (nat_lit 0) (@instOfNat (nat_lit 0)))\n            (NumConvSpec.unsignedMax (@OfNat.ofNat.{0} Nat (nat_lit 8) (instOfNatNat (nat_lit 8))))\n            (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U16 x))\n            (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U8 out))))\n    (And\n      (∀ (x : Aeneas.Std.U32),\n        @Exists.{1} Aeneas.Std.U8 fun (out : Aeneas.Std.U8) =>\n          And\n            (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.U8) (num_conv_verification_api.truncate_u32_u8 x)\n              (@Aeneas.Std.Result.ok.{0} Aeneas.Std.U8 out))\n            (NumConvSpec.boundedCongruent (@OfNat.ofNat.{0} Nat (nat_lit 8) (instOfNatNat (nat_lit 8)))\n              (@OfNat.ofNat.{0} Int (nat_lit 0) (@instOfNat (nat_lit 0)))\n              (NumConvSpec.unsignedMax (@OfNat.ofNat.{0} Nat (nat_lit 8) (instOfNatNat (nat_lit 8))))\n              (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U32 x))\n              (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U8 out))))\n      (And\n        (∀ (x : Aeneas.Std.U64),\n          @Exists.{1} Aeneas.Std.U8 fun (out : Aeneas.Std.U8) =>\n            And\n              (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.U8) (num_conv_verification_api.truncate_u64_u8 x)\n                (@Aeneas.Std.Result.ok.{0} Aeneas.Std.U8 out))\n              (NumConvSpec.boundedCongruent (@OfNat.ofNat.{0} Nat (nat_lit 8) (instOfNatNat (nat_lit 8)))\n                (@OfNat.ofNat.{0} Int (nat_lit 0) (@instOfNat (nat_lit 0)))\n                (NumConvSpec.unsignedMax (@OfNat.ofNat.{0} Nat (nat_lit 8) (instOfNatNat (nat_lit 8))))\n                (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U64 x))\n                (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U8 out))))\n        (And\n          (∀ (x : Aeneas.Std.U128),\n            @Exists.{1} Aeneas.Std.U8 fun (out : Aeneas.Std.U8) =>\n              And\n                (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.U8) (num_conv_verification_api.truncate_u128_u8 x)\n                  (@Aeneas.Std.Result.ok.{0} Aeneas.Std.U8 out))\n                (NumConvSpec.boundedCongruent (@OfNat.ofNat.{0} Nat (nat_lit 8) (instOfNatNat (nat_lit 8)))\n                  (@OfNat.ofNat.{0} Int (nat_lit 0) (@instOfNat (nat_lit 0)))\n                  (NumConvSpec.unsignedMax (@OfNat.ofNat.{0} Nat (nat_lit 8) (instOfNatNat (nat_lit 8))))\n                  (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U128 x))\n                  (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U8 out))))\n          (And\n            (∀ (x : Aeneas.Std.Usize),\n              @Exists.{1} Aeneas.Std.U8 fun (out : Aeneas.Std.U8) =>\n                And\n                  (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.U8) (num_conv_verification_api.truncate_usize_u8 x)\n                    (@Aeneas.Std.Result.ok.{0} Aeneas.Std.U8 out))\n                  (NumConvSpec.boundedCongruent (@OfNat.ofNat.{0} Nat (nat_lit 8) (instOfNatNat (nat_lit 8)))\n                    (@OfNat.ofNat.{0} Int (nat_lit 0) (@instOfNat (nat_lit 0)))\n                    (NumConvSpec.unsignedMax (@OfNat.ofNat.{0} Nat (nat_lit 8) (instOfNatNat (nat_lit 8))))\n                    (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.Usize x))\n                    (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U8 out))))\n            (And\n              (∀ (x : Aeneas.Std.U16),\n                @Exists.{1} Aeneas.Std.U16 fun (out : Aeneas.Std.U16) =>\n                  And\n                    (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.U16) (num_conv_verification_api.truncate_u16_u16 x)\n                      (@Aeneas.Std.Result.ok.{0} Aeneas.Std.U16 out))\n                    (NumConvSpec.boundedCongruent (@OfNat.ofNat.{0} Nat (nat_lit 16) (instOfNatNat (nat_lit 16)))\n                      (@OfNat.ofNat.{0} Int (nat_lit 0) (@instOfNat (nat_lit 0)))\n                      (NumConvSpec.unsignedMax (@OfNat.ofNat.{0} Nat (nat_lit 16) (instOfNatNat (nat_lit 16))))\n                      (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U16 x))\n                      (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U16 out))))\n              (And\n                (∀ (x : Aeneas.Std.U32),\n                  @Exists.{1} Aeneas.Std.U16 fun (out : Aeneas.Std.U16) =>\n                    And\n                      (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.U16) (num_conv_verification_api.truncate_u32_u16 x)\n                        (@Aeneas.Std.Result.ok.{0} Aeneas.Std.U16 out))\n                      (NumConvSpec.boundedCongruent (@OfNat.ofNat.{0} Nat (nat_lit 16) (instOfNatNat (nat_lit 16)))\n                        (@OfNat.ofNat.{0} Int (nat_lit 0) (@instOfNat (nat_lit 0)))\n                        (NumConvSpec.unsignedMax (@OfNat.ofNat.{0} Nat (nat_lit 16) (instOfNatNat (nat_lit 16))))\n                        (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U32 x))\n                        (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U16 out))))\n                (And\n                  (∀ (x : Aeneas.Std.U64),\n                    @Exists.{1} Aeneas.Std.U16 fun (out : Aeneas.Std.U16) =>\n                      And\n                        (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.U16) (num_conv_verification_api.truncate_u64_u16 x)\n                          (@Aeneas.Std.Result.ok.{0} Aeneas.Std.U16 out))\n                        (NumConvSpec.boundedCongruent (@OfNat.ofNat.{0} Nat (nat_lit 16) (instOfNatNat (nat_lit 16)))\n                          (@OfNat.ofNat.{0} Int (nat_lit 0) (@instOfNat (nat_lit 0)))\n                          (NumConvSpec.unsignedMax (@OfNat.ofNat.{0} Nat (nat_lit 16) (instOfNatNat (nat_lit 16))))\n                          (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U64 x))\n                          (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U16 out))))\n                  (And\n                    (∀ (x : Aeneas.Std.U128),\n                      @Exists.{1} Aeneas.Std.U16 fun (out : Aeneas.Std.U16) =>\n                        And\n                          (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.U16)\n                            (num_conv_verification_api.truncate_u128_u16 x)\n                            (@Aeneas.Std.Result.ok.{0} Aeneas.Std.U16 out))\n                          (NumConvSpec.boundedCongruent (@OfNat.ofNat.{0} Nat (nat_lit 16) (instOfNatNat (nat_lit 16)))\n                            (@OfNat.ofNat.{0} Int (nat_lit 0) (@instOfNat (nat_lit 0)))\n                            (NumConvSpec.unsignedMax (@OfNat.ofNat.{0} Nat (nat_lit 16) (instOfNatNat (nat_lit 16))))\n                            (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U128 x))\n                            (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U16 out))))\n                    (And\n                      (∀ (x : Aeneas.Std.Usize),\n                        @Exists.{1} Aeneas.Std.U16 fun (out : Aeneas.Std.U16) =>\n                          And\n                            (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.U16)\n                              (num_conv_verification_api.truncate_usize_u16 x)\n                              (@Aeneas.Std.Result.ok.{0} Aeneas.Std.U16 out))\n                            (NumConvSpec.boundedCongruent\n                              (@OfNat.ofNat.{0} Nat (nat_lit 16) (instOfNatNat (nat_lit 16)))\n                              (@OfNat.ofNat.{0} Int (nat_lit 0) (@instOfNat (nat_lit 0)))\n                              (NumConvSpec.unsignedMax (@OfNat.ofNat.{0} Nat (nat_lit 16) (instOfNatNat (nat_lit 16))))\n                              (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.Usize x))\n                              (@Nat.cast.{0} Int instNatCastInt\n                                (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U16 out))))\n                      (And\n                        (∀ (x : Aeneas.Std.U32),\n                          @Exists.{1} Aeneas.Std.U32 fun (out : Aeneas.Std.U32) =>\n                            And\n                              (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.U32)\n                                (num_conv_verification_api.truncate_u32_u32 x)\n                                (@Aeneas.Std.Result.ok.{0} Aeneas.Std.U32 out))\n                              (NumConvSpec.boundedCongruent\n                                (@OfNat.ofNat.{0} Nat (nat_lit 32) (instOfNatNat (nat_lit 32)))\n                                (@OfNat.ofNat.{0} Int (nat_lit 0) (@instOfNat (nat_lit 0)))\n                                (NumConvSpec.unsignedMax\n                                  (@OfNat.ofNat.{0} Nat (nat_lit 32) (instOfNatNat (nat_lit 32))))\n                                (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U32 x))\n                                (@Nat.cast.{0} Int instNatCastInt\n                                  (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U32 out))))\n                        (And\n                          (∀ (x : Aeneas.Std.U64),\n                            @Exists.{1} Aeneas.Std.U32 fun (out : Aeneas.Std.U32) =>\n                              And\n                                (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.U32)\n                                  (num_conv_verification_api.truncate_u64_u32 x)\n                                  (@Aeneas.Std.Result.ok.{0} Aeneas.Std.U32 out))\n                                (NumConvSpec.boundedCongruent\n                                  (@OfNat.ofNat.{0} Nat (nat_lit 32) (instOfNatNat (nat_lit 32)))\n                                  (@OfNat.ofNat.{0} Int (nat_lit 0) (@instOfNat (nat_lit 0)))\n                                  (NumConvSpec.unsignedMax\n                                    (@OfNat.ofNat.{0} Nat (nat_lit 32) (instOfNatNat (nat_lit 32))))\n                                  (@Nat.cast.{0} Int instNatCastInt\n                                    (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U64 x))\n                                  (@Nat.cast.{0} Int instNatCastInt\n                                    (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U32 out))))\n                          (And\n                            (∀ (x : Aeneas.Std.U128),\n                              @Exists.{1} Aeneas.Std.U32 fun (out : Aeneas.Std.U32) =>\n                                And\n                                  (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.U32)\n                                    (num_conv_verification_api.truncate_u128_u32 x)\n                                    (@Aeneas.Std.Result.ok.{0} Aeneas.Std.U32 out))\n                                  (NumConvSpec.boundedCongruent\n                                    (@OfNat.ofNat.{0} Nat (nat_lit 32) (instOfNatNat (nat_lit 32)))\n                                    (@OfNat.ofNat.{0} Int (nat_lit 0) (@instOfNat (nat_lit 0)))\n                                    (NumConvSpec.unsignedMax\n                                      (@OfNat.ofNat.{0} Nat (nat_lit 32) (instOfNatNat (nat_lit 32))))\n                                    (@Nat.cast.{0} Int instNatCastInt\n                                      (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U128 x))\n                                    (@Nat.cast.{0} Int instNatCastInt\n                                      (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U32 out))))\n                            (And\n                              (∀ (x : Aeneas.Std.U64),\n                                @Exists.{1} Aeneas.Std.U64 fun (out : Aeneas.Std.U64) =>\n                                  And\n                                    (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.U64)\n                                      (num_conv_verification_api.truncate_u64_u64 x)\n                                      (@Aeneas.Std.Result.ok.{0} Aeneas.Std.U64 out))\n                                    (NumConvSpec.boundedCongruent\n                                      (@OfNat.ofNat.{0} Nat (nat_lit 64) (instOfNatNat (nat_lit 64)))\n                                      (@OfNat.ofNat.{0} Int (nat_lit 0) (@instOfNat (nat_lit 0)))\n                                      (NumConvSpec.unsignedMax\n                                        (@OfNat.ofNat.{0} Nat (nat_lit 64) (instOfNatNat (nat_lit 64))))\n                                      (@Nat.cast.{0} Int instNatCastInt\n                                        (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U64 x))\n                                      (@Nat.cast.{0} Int instNatCastInt\n                                        (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U64 out))))\n                              (And\n                                (∀ (x : Aeneas.Std.U128),\n                                  @Exists.{1} Aeneas.Std.U64 fun (out : Aeneas.Std.U64) =>\n                                    And\n                                      (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.U64)\n                                        (num_conv_verification_api.truncate_u128_u64 x)\n                                        (@Aeneas.Std.Result.ok.{0} Aeneas.Std.U64 out))\n                                      (NumConvSpec.boundedCongruent\n                                        (@OfNat.ofNat.{0} Nat (nat_lit 64) (instOfNatNat (nat_lit 64)))\n                                        (@OfNat.ofNat.{0} Int (nat_lit 0) (@instOfNat (nat_lit 0)))\n                                        (NumConvSpec.unsignedMax\n                                          (@OfNat.ofNat.{0} Nat (nat_lit 64) (instOfNatNat (nat_lit 64))))\n                                        (@Nat.cast.{0} Int instNatCastInt\n                                          (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U128 x))\n                                        (@Nat.cast.{0} Int instNatCastInt\n                                          (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U64 out))))\n                                (And\n                                  (∀ (x : Aeneas.Std.U128),\n                                    @Exists.{1} Aeneas.Std.U128 fun (out : Aeneas.Std.U128) =>\n                                      And\n                                        (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.U128)\n                                          (num_conv_verification_api.truncate_u128_u128 x)\n                                          (@Aeneas.Std.Result.ok.{0} Aeneas.Std.U128 out))\n                                        (NumConvSpec.boundedCongruent\n                                          (@OfNat.ofNat.{0} Nat (nat_lit 128) (instOfNatNat (nat_lit 128)))\n                                          (@OfNat.ofNat.{0} Int (nat_lit 0) (@instOfNat (nat_lit 0)))\n                                          (NumConvSpec.unsignedMax\n                                            (@OfNat.ofNat.{0} Nat (nat_lit 128) (instOfNatNat (nat_lit 128))))\n                                          (@Nat.cast.{0} Int instNatCastInt\n                                            (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U128 x))\n                                          (@Nat.cast.{0} Int instNatCastInt\n                                            (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U128 out))))\n                                  (And\n                                    (∀ (x : Aeneas.Std.Usize),\n                                      @Exists.{1} Aeneas.Std.Usize fun (out : Aeneas.Std.Usize) =>\n                                        And\n                                          (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.Usize)\n                                            (num_conv_verification_api.truncate_usize_usize x)\n                                            (@Aeneas.Std.Result.ok.{0} Aeneas.Std.Usize out))\n                                          (NumConvSpec.boundedCongruent\n                                            (Aeneas.Std.UScalarTy.numBits Aeneas.Std.UScalarTy.Usize)\n                                            (@OfNat.ofNat.{0} Int (nat_lit 0) (@instOfNat (nat_lit 0)))\n                                            (NumConvSpec.unsignedMax\n                                              (Aeneas.Std.UScalarTy.numBits Aeneas.Std.UScalarTy.Usize))\n                                            (@Nat.cast.{0} Int instNatCastInt\n                                              (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.Usize x))\n                                            (@Nat.cast.{0} Int instNatCastInt\n                                              (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.Usize out))))\n                                    (And\n                                      (∀ (x : Aeneas.Std.I8),\n                                        @Exists.{1} Aeneas.Std.I8 fun (out : Aeneas.Std.I8) =>\n                                          And\n                                            (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.I8)\n                                              (num_conv_verification_api.truncate_i8_i8 x)\n                                              (@Aeneas.Std.Result.ok.{0} Aeneas.Std.I8 out))\n                                            (NumConvSpec.boundedCongruent\n                                              (@OfNat.ofNat.{0} Nat (nat_lit 8) (instOfNatNat (nat_lit 8)))\n                                              (NumConvSpec.signedMin\n                                                (@OfNat.ofNat.{0} Nat (nat_lit 8) (instOfNatNat (nat_lit 8))))\n                                              (NumConvSpec.signedMax\n                                                (@OfNat.ofNat.{0} Nat (nat_lit 8) (instOfNatNat (nat_lit 8))))\n                                              (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I8 x)\n                                              (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I8 out)))\n                                      (And\n                                        (∀ (x : Aeneas.Std.I16),\n                                          @Exists.{1} Aeneas.Std.I8 fun (out : Aeneas.Std.I8) =>\n                                            And\n                                              (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.I8)\n                                                (num_conv_verification_api.truncate_i16_i8 x)\n                                                (@Aeneas.Std.Result.ok.{0} Aeneas.Std.I8 out))\n                                              (NumConvSpec.boundedCongruent\n                                                (@OfNat.ofNat.{0} Nat (nat_lit 8) (instOfNatNat (nat_lit 8)))\n                                                (NumConvSpec.signedMin\n                                                  (@OfNat.ofNat.{0} Nat (nat_lit 8) (instOfNatNat (nat_lit 8))))\n                                                (NumConvSpec.signedMax\n                                                  (@OfNat.ofNat.{0} Nat (nat_lit 8) (instOfNatNat (nat_lit 8))))\n                                                (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I16 x)\n                                                (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I8 out)))\n                                        (And\n                                          (∀ (x : Aeneas.Std.I32),\n                                            @Exists.{1} Aeneas.Std.I8 fun (out : Aeneas.Std.I8) =>\n                                              And\n                                                (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.I8)\n                                                  (num_conv_verification_api.truncate_i32_i8 x)\n                                                  (@Aeneas.Std.Result.ok.{0} Aeneas.Std.I8 out))\n                                                (NumConvSpec.boundedCongruent\n                                                  (@OfNat.ofNat.{0} Nat (nat_lit 8) (instOfNatNat (nat_lit 8)))\n                                                  (NumConvSpec.signedMin\n                                                    (@OfNat.ofNat.{0} Nat (nat_lit 8) (instOfNatNat (nat_lit 8))))\n                                                  (NumConvSpec.signedMax\n                                                    (@OfNat.ofNat.{0} Nat (nat_lit 8) (instOfNatNat (nat_lit 8))))\n                                                  (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I32 x)\n                                                  (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I8 out)))\n                                          (And\n                                            (∀ (x : Aeneas.Std.I64),\n                                              @Exists.{1} Aeneas.Std.I8 fun (out : Aeneas.Std.I8) =>\n                                                And\n                                                  (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.I8)\n                                                    (num_conv_verification_api.truncate_i64_i8 x)\n                                                    (@Aeneas.Std.Result.ok.{0} Aeneas.Std.I8 out))\n                                                  (NumConvSpec.boundedCongruent\n                                                    (@OfNat.ofNat.{0} Nat (nat_lit 8) (instOfNatNat (nat_lit 8)))\n                                                    (NumConvSpec.signedMin\n                                                      (@OfNat.ofNat.{0} Nat (nat_lit 8) (instOfNatNat (nat_lit 8))))\n                                                    (NumConvSpec.signedMax\n                                                      (@OfNat.ofNat.{0} Nat (nat_lit 8) (instOfNatNat (nat_lit 8))))\n                                                    (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I64 x)\n                                                    (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I8 out)))\n                                            (And\n                                              (∀ (x : Aeneas.Std.I128),\n                                                @Exists.{1} Aeneas.Std.I8 fun (out : Aeneas.Std.I8) =>\n                                                  And\n                                                    (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.I8)\n                                                      (num_conv_verification_api.truncate_i128_i8 x)\n                                                      (@Aeneas.Std.Result.ok.{0} Aeneas.Std.I8 out))\n                                                    (NumConvSpec.boundedCongruent\n                                                      (@OfNat.ofNat.{0} Nat (nat_lit 8) (instOfNatNat (nat_lit 8)))\n                                                      (NumConvSpec.signedMin\n                                                        (@OfNat.ofNat.{0} Nat (nat_lit 8) (instOfNatNat (nat_lit 8))))\n                                                      (NumConvSpec.signedMax\n                                                        (@OfNat.ofNat.{0} Nat (nat_lit 8) (instOfNatNat (nat_lit 8))))\n                                                      (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I128 x)\n                                                      (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I8 out)))\n                                              (And\n                                                (∀ (x : Aeneas.Std.Isize),\n                                                  @Exists.{1} Aeneas.Std.I8 fun (out : Aeneas.Std.I8) =>\n                                                    And\n                                                      (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.I8)\n                                                        (num_conv_verification_api.truncate_isize_i8 x)\n                                                        (@Aeneas.Std.Result.ok.{0} Aeneas.Std.I8 out))\n                                                      (NumConvSpec.boundedCongruent\n                                                        (@OfNat.ofNat.{0} Nat (nat_lit 8) (instOfNatNat (nat_lit 8)))\n                                                        (NumConvSpec.signedMin\n                                                          (@OfNat.ofNat.{0} Nat (nat_lit 8) (instOfNatNat (nat_lit 8))))\n                                                        (NumConvSpec.signedMax\n                                                          (@OfNat.ofNat.{0} Nat (nat_lit 8) (instOfNatNat (nat_lit 8))))\n                                                        (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.Isize x)\n                                                        (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I8 out)))\n                                                (And\n                                                  (∀ (x : Aeneas.Std.I16),\n                                                    @Exists.{1} Aeneas.Std.I16 fun (out : Aeneas.Std.I16) =>\n                                                      And\n                                                        (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.I16)\n                                                          (num_conv_verification_api.truncate_i16_i16 x)\n                                                          (@Aeneas.Std.Result.ok.{0} Aeneas.Std.I16 out))\n                                                        (NumConvSpec.boundedCongruent\n                                                          (@OfNat.ofNat.{0} Nat (nat_lit 16)\n                                                            (instOfNatNat (nat_lit 16)))\n                                                          (NumConvSpec.signedMin\n                                                            (@OfNat.ofNat.{0} Nat (nat_lit 16)\n                                                              (instOfNatNat (nat_lit 16))))\n                                                          (NumConvSpec.signedMax\n                                                            (@OfNat.ofNat.{0} Nat (nat_lit 16)\n                                                              (instOfNatNat (nat_lit 16))))\n                                                          (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I16 x)\n                                                          (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I16 out)))\n                                                  (And\n                                                    (∀ (x : Aeneas.Std.I32),\n                                                      @Exists.{1} Aeneas.Std.I16 fun (out : Aeneas.Std.I16) =>\n                                                        And\n                                                          (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.I16)\n                                                            (num_conv_verification_api.truncate_i32_i16 x)\n                                                            (@Aeneas.Std.Result.ok.{0} Aeneas.Std.I16 out))\n                                                          (NumConvSpec.boundedCongruent\n                                                            (@OfNat.ofNat.{0} Nat (nat_lit 16)\n                                                              (instOfNatNat (nat_lit 16)))\n                                                            (NumConvSpec.signedMin\n                                                              (@OfNat.ofNat.{0} Nat (nat_lit 16)\n                                                                (instOfNatNat (nat_lit 16))))\n                                                            (NumConvSpec.signedMax\n                                                              (@OfNat.ofNat.{0} Nat (nat_lit 16)\n                                                                (instOfNatNat (nat_lit 16))))\n                                                            (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I32 x)\n                                                            (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I16 out)))\n                                                    (And\n                                                      (∀ (x : Aeneas.Std.I64),\n                                                        @Exists.{1} Aeneas.Std.I16 fun (out : Aeneas.Std.I16) =>\n                                                          And\n                                                            (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.I16)\n                                                              (num_conv_verification_api.truncate_i64_i16 x)\n                                                              (@Aeneas.Std.Result.ok.{0} Aeneas.Std.I16 out))\n                                                            (NumConvSpec.boundedCongruent\n                                                              (@OfNat.ofNat.{0} Nat (nat_lit 16)\n                                                                (instOfNatNat (nat_lit 16)))\n                                                              (NumConvSpec.signedMin\n                                                                (@OfNat.ofNat.{0} Nat (nat_lit 16)\n                                                                  (instOfNatNat (nat_lit 16))))\n                                                              (NumConvSpec.signedMax\n                                                                (@OfNat.ofNat.{0} Nat (nat_lit 16)\n                                                                  (instOfNatNat (nat_lit 16))))\n                                                              (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I64 x)\n                                                              (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I16 out)))\n                                                      (And\n                                                        (∀ (x : Aeneas.Std.I128),\n                                                          @Exists.{1} Aeneas.Std.I16 fun (out : Aeneas.Std.I16) =>\n                                                            And\n                                                              (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.I16)\n                                                                (num_conv_verification_api.truncate_i128_i16 x)\n                                                                (@Aeneas.Std.Result.ok.{0} Aeneas.Std.I16 out))\n                                                              (NumConvSpec.boundedCongruent\n                                                                (@OfNat.ofNat.{0} Nat (nat_lit 16)\n                                                                  (instOfNatNat (nat_lit 16)))\n                                                                (NumConvSpec.signedMin\n                                                                  (@OfNat.ofNat.{0} Nat (nat_lit 16)\n                                                                    (instOfNatNat (nat_lit 16))))\n                                                                (NumConvSpec.signedMax\n                                                                  (@OfNat.ofNat.{0} Nat (nat_lit 16)\n                                                                    (instOfNatNat (nat_lit 16))))\n                                                                (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I128 x)\n                                                                (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I16 out)))\n                                                        (And\n                                                          (∀ (x : Aeneas.Std.Isize),\n                                                            @Exists.{1} Aeneas.Std.I16 fun (out : Aeneas.Std.I16) =>\n                                                              And\n                                                                (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.I16)\n                                                                  (num_conv_verification_api.truncate_isize_i16 x)\n                                                                  (@Aeneas.Std.Result.ok.{0} Aeneas.Std.I16 out))\n                                                                (NumConvSpec.boundedCongruent\n                                                                  (@OfNat.ofNat.{0} Nat (nat_lit 16)\n                                                                    (instOfNatNat (nat_lit 16)))\n                                                                  (NumConvSpec.signedMin\n                                                                    (@OfNat.ofNat.{0} Nat (nat_lit 16)\n                                                                      (instOfNatNat (nat_lit 16))))\n                                                                  (NumConvSpec.signedMax\n                                                                    (@OfNat.ofNat.{0} Nat (nat_lit 16)\n                                                                      (instOfNatNat (nat_lit 16))))\n                                                                  (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.Isize x)\n                                                                  (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I16\n                                                                    out)))\n                                                          (And\n                                                            (∀ (x : Aeneas.Std.I32),\n                                                              @Exists.{1} Aeneas.Std.I32 fun (out : Aeneas.Std.I32) =>\n                                                                And\n                                                                  (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.I32)\n                                                                    (num_conv_verification_api.truncate_i32_i32 x)\n                                                                    (@Aeneas.Std.Result.ok.{0} Aeneas.Std.I32 out))\n                                                                  (NumConvSpec.boundedCongruent\n                                                                    (@OfNat.ofNat.{0} Nat (nat_lit 32)\n                                                                      (instOfNatNat (nat_lit 32)))\n                                                                    (NumConvSpec.signedMin\n                                                                      (@OfNat.ofNat.{0} Nat (nat_lit 32)\n                                                                        (instOfNatNat (nat_lit 32))))\n                                                                    (NumConvSpec.signedMax\n                                                                      (@OfNat.ofNat.{0} Nat (nat_lit 32)\n                                                                        (instOfNatNat (nat_lit 32))))\n                                                                    (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I32 x)\n                                                                    (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I32\n                                                                      out)))\n                                                            (And\n                                                              (∀ (x : Aeneas.Std.I64),\n                                                                @Exists.{1} Aeneas.Std.I32 fun (out : Aeneas.Std.I32) =>\n                                                                  And\n                                                                    (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.I32)\n                                                                      (num_conv_verification_api.truncate_i64_i32 x)\n                                                                      (@Aeneas.Std.Result.ok.{0} Aeneas.Std.I32 out))\n                                                                    (NumConvSpec.boundedCongruent\n                                                                      (@OfNat.ofNat.{0} Nat (nat_lit 32)\n                                                                        (instOfNatNat (nat_lit 32)))\n                                                                      (NumConvSpec.signedMin\n                                                                        (@OfNat.ofNat.{0} Nat (nat_lit 32)\n                                                                          (instOfNatNat (nat_lit 32))))\n                                                                      (NumConvSpec.signedMax\n                                                                        (@OfNat.ofNat.{0} Nat (nat_lit 32)\n                                                                          (instOfNatNat (nat_lit 32))))\n                                                                      (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I64\n                                                                        x)\n                                                                      (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I32\n                                                                        out)))\n                                                              (And\n                                                                (∀ (x : Aeneas.Std.I128),\n                                                                  @Exists.{1} Aeneas.Std.I32\n                                                                    fun (out : Aeneas.Std.I32) =>\n                                                                    And\n                                                                      (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.I32)\n                                                                        (num_conv_verification_api.truncate_i128_i32 x)\n                                                                        (@Aeneas.Std.Result.ok.{0} Aeneas.Std.I32 out))\n                                                                      (NumConvSpec.boundedCongruent\n                                                                        (@OfNat.ofNat.{0} Nat (nat_lit 32)\n                                                                          (instOfNatNat (nat_lit 32)))\n                                                                        (NumConvSpec.signedMin\n                                                                          (@OfNat.ofNat.{0} Nat (nat_lit 32)\n                                                                            (instOfNatNat (nat_lit 32))))\n                                                                        (NumConvSpec.signedMax\n                                                                          (@OfNat.ofNat.{0} Nat (nat_lit 32)\n                                                                            (instOfNatNat (nat_lit 32))))\n                                                                        (@Aeneas.Std.IScalar.val\n                                                                          Aeneas.Std.IScalarTy.I128 x)\n                                                                        (@Aeneas.Std.IScalar.val\n                                                                          Aeneas.Std.IScalarTy.I32 out)))\n                                                                (And\n                                                                  (∀ (x : Aeneas.Std.I64),\n                                                                    @Exists.{1} Aeneas.Std.I64\n                                                                      fun (out : Aeneas.Std.I64) =>\n                                                                      And\n                                                                        (@Eq.{1} (Aeneas.Std.Result.{0} Aeneas.Std.I64)\n                                                                          (num_conv_verification_api.truncate_i64_i64 x)\n                                                                          (@Aeneas.Std.Result.ok.{0} Aeneas.Std.I64\n                                                                            out))\n                                                                        (NumConvSpec.boundedCongruent\n                                                                          (@OfNat.ofNat.{0} Nat (nat_lit 64)\n                                                                            (instOfNatNat (nat_lit 64)))\n                                                                          (NumConvSpec.signedMin\n                                                                            (@OfNat.ofNat.{0} Nat (nat_lit 64)\n                                                                              (instOfNatNat (nat_lit 64))))\n                                                                          (NumConvSpec.signedMax\n                                                                            (@OfNat.ofNat.{0} Nat (nat_lit 64)\n                                                                              (instOfNatNat (nat_lit 64))))\n                                                                          (@Aeneas.Std.IScalar.val\n                                                                            Aeneas.Std.IScalarTy.I64 x)\n                                                                          (@Aeneas.Std.IScalar.val\n                                                                            Aeneas.Std.IScalarTy.I64 out)))\n                                                                  (And\n                                                                    (∀ (x : Aeneas.Std.I128),\n                                                                      @Exists.{1} Aeneas.Std.I64\n                                                                        fun (out : Aeneas.Std.I64) =>\n                                                                        And\n                                                                          (@Eq.{1}\n                                                                            (Aeneas.Std.Result.{0} Aeneas.Std.I64)\n                                                                            (num_conv_verification_api.truncate_i128_i64\n                                                                              x)\n                                                                            (@Aeneas.Std.Result.ok.{0} Aeneas.Std.I64\n                                                                              out))\n                                                                          (NumConvSpec.boundedCongruent\n                                                                            (@OfNat.ofNat.{0} Nat (nat_lit 64)\n                                                                              (instOfNatNat (nat_lit 64)))\n                                                                            (NumConvSpec.signedMin\n                                                                              (@OfNat.ofNat.{0} Nat (nat_lit 64)\n                                                                                (instOfNatNat (nat_lit 64))))\n                                                                            (NumConvSpec.signedMax\n                                                                              (@OfNat.ofNat.{0} Nat (nat_lit 64)\n                                                                                (instOfNatNat (nat_lit 64))))\n                                                                            (@Aeneas.Std.IScalar.val\n                                                                              Aeneas.Std.IScalarTy.I128 x)\n                                                                            (@Aeneas.Std.IScalar.val\n                                                                              Aeneas.Std.IScalarTy.I64 out)))\n                                                                    (And\n                                                                      (∀ (x : Aeneas.Std.I128),\n                                                                        @Exists.{1} Aeneas.Std.I128\n                                                                          fun (out : Aeneas.Std.I128) =>\n                                                                          And\n                                                                            (@Eq.{1}\n                                                                              (Aeneas.Std.Result.{0} Aeneas.Std.I128)\n                                                                              (num_conv_verification_api.truncate_i128_i128\n                                                                                x)\n                                                                              (@Aeneas.Std.Result.ok.{0} Aeneas.Std.I128\n                                                                                out))\n                                                                            (NumConvSpec.boundedCongruent\n                                                                              (@OfNat.ofNat.{0} Nat (nat_lit 128)\n                                                                                (instOfNatNat (nat_lit 128)))\n                                                                              (NumConvSpec.signedMin\n                                                                                (@OfNat.ofNat.{0} Nat (nat_lit 128)\n                                                                                  (instOfNatNat (nat_lit 128))))\n                                                                              (NumConvSpec.signedMax\n                                                                                (@OfNat.ofNat.{0} Nat (nat_lit 128)\n                                                                                  (instOfNatNat (nat_lit 128))))\n                                                                              (@Aeneas.Std.IScalar.val\n                                                                                Aeneas.Std.IScalarTy.I128 x)\n                                                                              (@Aeneas.Std.IScalar.val\n                                                                                Aeneas.Std.IScalarTy.I128 out)))\n                                                                      (∀ (x : Aeneas.Std.Isize),\n                                                                        @Exists.{1} Aeneas.Std.Isize\n                                                                          fun (out : Aeneas.Std.Isize) =>\n                                                                          And\n                                                                            (@Eq.{1}\n                                                                              (Aeneas.Std.Result.{0} Aeneas.Std.Isize)\n                                                                              (num_conv_verification_api.truncate_isize_isize\n                                                                                x)\n                                                                              (@Aeneas.Std.Result.ok.{0}\n                                                                                Aeneas.Std.Isize out))\n                                                                            (NumConvSpec.boundedCongruent\n                                                                              (Aeneas.Std.IScalarTy.numBits\n                                                                                Aeneas.Std.IScalarTy.Isize)\n                                                                              (NumConvSpec.signedMin\n                                                                                (Aeneas.Std.IScalarTy.numBits\n                                                                                  Aeneas.Std.IScalarTy.Isize))\n                                                                              (NumConvSpec.signedMax\n                                                                                (Aeneas.Std.IScalarTy.numBits\n                                                                                  Aeneas.Std.IScalarTy.Isize))\n                                                                              (@Aeneas.Std.IScalar.val\n                                                                                Aeneas.Std.IScalarTy.Isize x)\n                                                                              (@Aeneas.Std.IScalar.val\n                                                                                Aeneas.Std.IScalarTy.Isize\n                                                                                out)))))))))))))))))))))))))))))))))))))","theorem":"NumConvProof.truncate_all_spec","translation_rerun":false,"version":1}
proofs.rs:formal:{"axioms":["propext","Classical.choice","Quot.sound"],"binders":[],"conclusion":"(∀ (x : Aeneas.Std.U8),\n    ∃ out,\n      num_conv_verification_api.checked_truncate_u8_u8 x = Aeneas.Std.Result.ok out ∧\n        Option.map (fun v => ↑↑v) out = NumConvSpec.checked 0 (NumConvSpec.unsignedMax 8) ↑↑x) ∧\n  (∀ (x : Aeneas.Std.U16),\n      ∃ out,\n        num_conv_verification_api.checked_truncate_u16_u8 x = Aeneas.Std.Result.ok out ∧\n          Option.map (fun v => ↑↑v) out = NumConvSpec.checked 0 (NumConvSpec.unsignedMax 8) ↑↑x) ∧\n    (∀ (x : Aeneas.Std.U32),\n        ∃ out,\n          num_conv_verification_api.checked_truncate_u32_u8 x = Aeneas.Std.Result.ok out ∧\n            Option.map (fun v => ↑↑v) out = NumConvSpec.checked 0 (NumConvSpec.unsignedMax 8) ↑↑x) ∧\n      (∀ (x : Aeneas.Std.U64),\n          ∃ out,\n            num_conv_verification_api.checked_truncate_u64_u8 x = Aeneas.Std.Result.ok out ∧\n              Option.map (fun v => ↑↑v) out = NumConvSpec.checked 0 (NumConvSpec.unsignedMax 8) ↑↑x) ∧\n        (∀ (x : Aeneas.Std.U128),\n            ∃ out,\n              num_conv_verification_api.checked_truncate_u128_u8 x = Aeneas.Std.Result.ok out ∧\n                Option.map (fun v => ↑↑v) out = NumConvSpec.checked 0 (NumConvSpec.unsignedMax 8) ↑↑x) ∧\n          (∀ (x : Aeneas.Std.Usize),\n              ∃ out,\n                num_conv_verification_api.checked_truncate_usize_u8 x = Aeneas.Std.Result.ok out ∧\n                  Option.map (fun v => ↑↑v) out = NumConvSpec.checked 0 (NumConvSpec.unsignedMax 8) ↑↑x) ∧\n            (∀ (x : Aeneas.Std.U16),\n                ∃ out,\n                  num_conv_verification_api.checked_truncate_u16_u16 x = Aeneas.Std.Result.ok out ∧\n                    Option.map (fun v => ↑↑v) out = NumConvSpec.checked 0 (NumConvSpec.unsignedMax 16) ↑↑x) ∧\n              (∀ (x : Aeneas.Std.U32),\n                  ∃ out,\n                    num_conv_verification_api.checked_truncate_u32_u16 x = Aeneas.Std.Result.ok out ∧\n                      Option.map (fun v => ↑↑v) out = NumConvSpec.checked 0 (NumConvSpec.unsignedMax 16) ↑↑x) ∧\n                (∀ (x : Aeneas.Std.U64),\n                    ∃ out,\n                      num_conv_verification_api.checked_truncate_u64_u16 x = Aeneas.Std.Result.ok out ∧\n                        Option.map (fun v => ↑↑v) out = NumConvSpec.checked 0 (NumConvSpec.unsignedMax 16) ↑↑x) ∧\n                  (∀ (x : Aeneas.Std.U128),\n                      ∃ out,\n                        num_conv_verification_api.checked_truncate_u128_u16 x = Aeneas.Std.Result.ok out ∧\n                          Option.map (fun v => ↑↑v) out = NumConvSpec.checked 0 (NumConvSpec.unsignedMax 16) ↑↑x) ∧\n                    (∀ (x : Aeneas.Std.Usize),\n                        ∃ out,\n                          num_conv_verification_api.checked_truncate_usize_u16 x = Aeneas.Std.Result.ok out ∧\n                            Option.map (fun v => ↑↑v) out = NumConvSpec.checked 0 (NumConvSpec.unsignedMax 16) ↑↑x) ∧\n                      (∀ (x : Aeneas.Std.U32),\n                          ∃ out,\n                            num_conv_verification_api.checked_truncate_u32_u32 x = Aeneas.Std.Result.ok out ∧\n                              Option.map (fun v => ↑↑v) out = NumConvSpec.checked 0 (NumConvSpec.unsignedMax 32) ↑↑x) ∧\n                        (∀ (x : Aeneas.Std.U64),\n                            ∃ out,\n                              num_conv_verification_api.checked_truncate_u64_u32 x = Aeneas.Std.Result.ok out ∧\n                                Option.map (fun v => ↑↑v) out =\n                                  NumConvSpec.checked 0 (NumConvSpec.unsignedMax 32) ↑↑x) ∧\n                          (∀ (x : Aeneas.Std.U128),\n                              ∃ out,\n                                num_conv_verification_api.checked_truncate_u128_u32 x = Aeneas.Std.Result.ok out ∧\n                                  Option.map (fun v => ↑↑v) out =\n                                    NumConvSpec.checked 0 (NumConvSpec.unsignedMax 32) ↑↑x) ∧\n                            (∀ (x : Aeneas.Std.U64),\n                                ∃ out,\n                                  num_conv_verification_api.checked_truncate_u64_u64 x = Aeneas.Std.Result.ok out ∧\n                                    Option.map (fun v => ↑↑v) out =\n                                      NumConvSpec.checked 0 (NumConvSpec.unsignedMax 64) ↑↑x) ∧\n                              (∀ (x : Aeneas.Std.U128),\n                                  ∃ out,\n                                    num_conv_verification_api.checked_truncate_u128_u64 x = Aeneas.Std.Result.ok out ∧\n                                      Option.map (fun v => ↑↑v) out =\n                                        NumConvSpec.checked 0 (NumConvSpec.unsignedMax 64) ↑↑x) ∧\n                                (∀ (x : Aeneas.Std.U128),\n                                    ∃ out,\n                                      num_conv_verification_api.checked_truncate_u128_u128 x =\n                                          Aeneas.Std.Result.ok out ∧\n                                        Option.map (fun v => ↑↑v) out =\n                                          NumConvSpec.checked 0 (NumConvSpec.unsignedMax 128) ↑↑x) ∧\n                                  (∀ (x : Aeneas.Std.Usize),\n                                      ∃ out,\n                                        num_conv_verification_api.checked_truncate_usize_usize x =\n                                            Aeneas.Std.Result.ok out ∧\n                                          Option.map (fun v => ↑↑v) out =\n                                            NumConvSpec.checked 0\n                                              (NumConvSpec.unsignedMax Aeneas.Std.UScalarTy.Usize.numBits) ↑↑x) ∧\n                                    (∀ (x : Aeneas.Std.I8),\n                                        ∃ out,\n                                          num_conv_verification_api.checked_truncate_i8_i8 x =\n                                              Aeneas.Std.Result.ok out ∧\n                                            Option.map (fun v => ↑v) out =\n                                              NumConvSpec.checked (NumConvSpec.signedMin 8) (NumConvSpec.signedMax 8)\n                                                ↑x) ∧\n                                      (∀ (x : Aeneas.Std.I16),\n                                          ∃ out,\n                                            num_conv_verification_api.checked_truncate_i16_i8 x =\n                                                Aeneas.Std.Result.ok out ∧\n                                              Option.map (fun v => ↑v) out =\n                                                NumConvSpec.checked (NumConvSpec.signedMin 8) (NumConvSpec.signedMax 8)\n                                                  ↑x) ∧\n                                        (∀ (x : Aeneas.Std.I32),\n                                            ∃ out,\n                                              num_conv_verification_api.checked_truncate_i32_i8 x =\n                                                  Aeneas.Std.Result.ok out ∧\n                                                Option.map (fun v => ↑v) out =\n                                                  NumConvSpec.checked (NumConvSpec.signedMin 8)\n                                                    (NumConvSpec.signedMax 8) ↑x) ∧\n                                          (∀ (x : Aeneas.Std.I64),\n                                              ∃ out,\n                                                num_conv_verification_api.checked_truncate_i64_i8 x =\n                                                    Aeneas.Std.Result.ok out ∧\n                                                  Option.map (fun v => ↑v) out =\n                                                    NumConvSpec.checked (NumConvSpec.signedMin 8)\n                                                      (NumConvSpec.signedMax 8) ↑x) ∧\n                                            (∀ (x : Aeneas.Std.I128),\n                                                ∃ out,\n                                                  num_conv_verification_api.checked_truncate_i128_i8 x =\n                                                      Aeneas.Std.Result.ok out ∧\n                                                    Option.map (fun v => ↑v) out =\n                                                      NumConvSpec.checked (NumConvSpec.signedMin 8)\n                                                        (NumConvSpec.signedMax 8) ↑x) ∧\n                                              (∀ (x : Aeneas.Std.Isize),\n                                                  ∃ out,\n                                                    num_conv_verification_api.checked_truncate_isize_i8 x =\n                                                        Aeneas.Std.Result.ok out ∧\n                                                      Option.map (fun v => ↑v) out =\n                                                        NumConvSpec.checked (NumConvSpec.signedMin 8)\n                                                          (NumConvSpec.signedMax 8) ↑x) ∧\n                                                (∀ (x : Aeneas.Std.I16),\n                                                    ∃ out,\n                                                      num_conv_verification_api.checked_truncate_i16_i16 x =\n                                                          Aeneas.Std.Result.ok out ∧\n                                                        Option.map (fun v => ↑v) out =\n                                                          NumConvSpec.checked (NumConvSpec.signedMin 16)\n                                                            (NumConvSpec.signedMax 16) ↑x) ∧\n                                                  (∀ (x : Aeneas.Std.I32),\n                                                      ∃ out,\n                                                        num_conv_verification_api.checked_truncate_i32_i16 x =\n                                                            Aeneas.Std.Result.ok out ∧\n                                                          Option.map (fun v => ↑v) out =\n                                                            NumConvSpec.checked (NumConvSpec.signedMin 16)\n                                                              (NumConvSpec.signedMax 16) ↑x) ∧\n                                                    (∀ (x : Aeneas.Std.I64),\n                                                        ∃ out,\n                                                          num_conv_verification_api.checked_truncate_i64_i16 x =\n                                                              Aeneas.Std.Result.ok out ∧\n                                                            Option.map (fun v => ↑v) out =\n                                                              NumConvSpec.checked (NumConvSpec.signedMin 16)\n                                                                (NumConvSpec.signedMax 16) ↑x) ∧\n                                                      (∀ (x : Aeneas.Std.I128),\n                                                          ∃ out,\n                                                            num_conv_verification_api.checked_truncate_i128_i16 x =\n                                                                Aeneas.Std.Result.ok out ∧\n                                                              Option.map (fun v => ↑v) out =\n                                                                NumConvSpec.checked (NumConvSpec.signedMin 16)\n                                                                  (NumConvSpec.signedMax 16) ↑x) ∧\n                                                        (∀ (x : Aeneas.Std.Isize),\n                                                            ∃ out,\n                                                              num_conv_verification_api.checked_truncate_isize_i16 x =\n                                                                  Aeneas.Std.Result.ok out ∧\n                                                                Option.map (fun v => ↑v) out =\n                                                                  NumConvSpec.checked (NumConvSpec.signedMin 16)\n                                                                    (NumConvSpec.signedMax 16) ↑x) ∧\n                                                          (∀ (x : Aeneas.Std.I32),\n                                                              ∃ out,\n                                                                num_conv_verification_api.checked_truncate_i32_i32 x =\n                                                                    Aeneas.Std.Result.ok out ∧\n                                                                  Option.map (fun v => ↑v) out =\n                                                                    NumConvSpec.checked (NumConvSpec.signedMin 32)\n                                                                      (NumConvSpec.signedMax 32) ↑x) ∧\n                                                            (∀ (x : Aeneas.Std.I64),\n                                                                ∃ out,\n                                                                  num_conv_verification_api.checked_truncate_i64_i32 x =\n                                                                      Aeneas.Std.Result.ok out ∧\n                                                                    Option.map (fun v => ↑v) out =\n                                                                      NumConvSpec.checked (NumConvSpec.signedMin 32)\n                                                                        (NumConvSpec.signedMax 32) ↑x) ∧\n                                                              (∀ (x : Aeneas.Std.I128),\n                                                                  ∃ out,\n                                                                    num_conv_verification_api.checked_truncate_i128_i32\n                                                                          x =\n                                                                        Aeneas.Std.Result.ok out ∧\n                                                                      Option.map (fun v => ↑v) out =\n                                                                        NumConvSpec.checked (NumConvSpec.signedMin 32)\n                                                                          (NumConvSpec.signedMax 32) ↑x) ∧\n                                                                (∀ (x : Aeneas.Std.I64),\n                                                                    ∃ out,\n                                                                      num_conv_verification_api.checked_truncate_i64_i64\n                                                                            x =\n                                                                          Aeneas.Std.Result.ok out ∧\n                                                                        Option.map (fun v => ↑v) out =\n                                                                          NumConvSpec.checked (NumConvSpec.signedMin 64)\n                                                                            (NumConvSpec.signedMax 64) ↑x) ∧\n                                                                  (∀ (x : Aeneas.Std.I128),\n                                                                      ∃ out,\n                                                                        num_conv_verification_api.checked_truncate_i128_i64\n                                                                              x =\n                                                                            Aeneas.Std.Result.ok out ∧\n                                                                          Option.map (fun v => ↑v) out =\n                                                                            NumConvSpec.checked\n                                                                              (NumConvSpec.signedMin 64)\n                                                                              (NumConvSpec.signedMax 64) ↑x) ∧\n                                                                    (∀ (x : Aeneas.Std.I128),\n                                                                        ∃ out,\n                                                                          num_conv_verification_api.checked_truncate_i128_i128\n                                                                                x =\n                                                                              Aeneas.Std.Result.ok out ∧\n                                                                            Option.map (fun v => ↑v) out =\n                                                                              NumConvSpec.checked\n                                                                                (NumConvSpec.signedMin 128)\n                                                                                (NumConvSpec.signedMax 128) ↑x) ∧\n                                                                      ∀ (x : Aeneas.Std.Isize),\n                                                                        ∃ out,\n                                                                          num_conv_verification_api.checked_truncate_isize_isize\n                                                                                x =\n                                                                              Aeneas.Std.Result.ok out ∧\n                                                                            Option.map (fun v => ↑v) out =\n                                                                              NumConvSpec.checked\n                                                                                (NumConvSpec.signedMin\n                                                                                  Aeneas.Std.IScalarTy.Isize.numBits)\n                                                                                (NumConvSpec.signedMax\n                                                                                  Aeneas.Std.IScalarTy.Isize.numBits)\n                                                                                ↑x","conclusion_segments":[{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.U8","text":"Aeneas.Std.U8"},{"text":"),\n    "},{"text":"∃ "},{"text":"out"},{"text":",\n      "},{"ref":"num_conv_verification_api.checked_truncate_u8_u8","text":"num_conv_verification_api.checked_truncate_u8_u8"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n        "},{"ref":"Option.map","text":"Option.map"},{"text":" "},{"text":"(fun "},{"text":"v"},{"text":" => "},{"text":"↑"},{"text":"↑"},{"text":"v"},{"text":")"},{"text":" "},{"text":"out"},{"ref":"Eq","text":" = "},{"ref":"NumConvSpec.checked","text":"NumConvSpec.checked"},{"text":" "},{"text":"0"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.unsignedMax","text":"NumConvSpec.unsignedMax"},{"text":" "},{"text":"8"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":")"},{"ref":"And","text":" ∧\n  "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.U16","text":"Aeneas.Std.U16"},{"text":"),\n      "},{"text":"∃ "},{"text":"out"},{"text":",\n        "},{"ref":"num_conv_verification_api.checked_truncate_u16_u8","text":"num_conv_verification_api.checked_truncate_u16_u8"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n          "},{"ref":"Option.map","text":"Option.map"},{"text":" "},{"text":"(fun "},{"text":"v"},{"text":" => "},{"text":"↑"},{"text":"↑"},{"text":"v"},{"text":")"},{"text":" "},{"text":"out"},{"ref":"Eq","text":" = "},{"ref":"NumConvSpec.checked","text":"NumConvSpec.checked"},{"text":" "},{"text":"0"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.unsignedMax","text":"NumConvSpec.unsignedMax"},{"text":" "},{"text":"8"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":")"},{"ref":"And","text":" ∧\n    "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.U32","text":"Aeneas.Std.U32"},{"text":"),\n        "},{"text":"∃ "},{"text":"out"},{"text":",\n          "},{"ref":"num_conv_verification_api.checked_truncate_u32_u8","text":"num_conv_verification_api.checked_truncate_u32_u8"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n            "},{"ref":"Option.map","text":"Option.map"},{"text":" "},{"text":"(fun "},{"text":"v"},{"text":" => "},{"text":"↑"},{"text":"↑"},{"text":"v"},{"text":")"},{"text":" "},{"text":"out"},{"ref":"Eq","text":" = "},{"ref":"NumConvSpec.checked","text":"NumConvSpec.checked"},{"text":" "},{"text":"0"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.unsignedMax","text":"NumConvSpec.unsignedMax"},{"text":" "},{"text":"8"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":")"},{"ref":"And","text":" ∧\n      "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.U64","text":"Aeneas.Std.U64"},{"text":"),\n          "},{"text":"∃ "},{"text":"out"},{"text":",\n            "},{"ref":"num_conv_verification_api.checked_truncate_u64_u8","text":"num_conv_verification_api.checked_truncate_u64_u8"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n              "},{"ref":"Option.map","text":"Option.map"},{"text":" "},{"text":"(fun "},{"text":"v"},{"text":" => "},{"text":"↑"},{"text":"↑"},{"text":"v"},{"text":")"},{"text":" "},{"text":"out"},{"ref":"Eq","text":" = "},{"ref":"NumConvSpec.checked","text":"NumConvSpec.checked"},{"text":" "},{"text":"0"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.unsignedMax","text":"NumConvSpec.unsignedMax"},{"text":" "},{"text":"8"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":")"},{"ref":"And","text":" ∧\n        "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.U128","text":"Aeneas.Std.U128"},{"text":"),\n            "},{"text":"∃ "},{"text":"out"},{"text":",\n              "},{"ref":"num_conv_verification_api.checked_truncate_u128_u8","text":"num_conv_verification_api.checked_truncate_u128_u8"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                "},{"ref":"Option.map","text":"Option.map"},{"text":" "},{"text":"(fun "},{"text":"v"},{"text":" => "},{"text":"↑"},{"text":"↑"},{"text":"v"},{"text":")"},{"text":" "},{"text":"out"},{"ref":"Eq","text":" = "},{"ref":"NumConvSpec.checked","text":"NumConvSpec.checked"},{"text":" "},{"text":"0"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.unsignedMax","text":"NumConvSpec.unsignedMax"},{"text":" "},{"text":"8"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":")"},{"ref":"And","text":" ∧\n          "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.Usize","text":"Aeneas.Std.Usize"},{"text":"),\n              "},{"text":"∃ "},{"text":"out"},{"text":",\n                "},{"ref":"num_conv_verification_api.checked_truncate_usize_u8","text":"num_conv_verification_api.checked_truncate_usize_u8"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                  "},{"ref":"Option.map","text":"Option.map"},{"text":" "},{"text":"(fun "},{"text":"v"},{"text":" => "},{"text":"↑"},{"text":"↑"},{"text":"v"},{"text":")"},{"text":" "},{"text":"out"},{"ref":"Eq","text":" = "},{"ref":"NumConvSpec.checked","text":"NumConvSpec.checked"},{"text":" "},{"text":"0"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.unsignedMax","text":"NumConvSpec.unsignedMax"},{"text":" "},{"text":"8"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":")"},{"ref":"And","text":" ∧\n            "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.U16","text":"Aeneas.Std.U16"},{"text":"),\n                "},{"text":"∃ "},{"text":"out"},{"text":",\n                  "},{"ref":"num_conv_verification_api.checked_truncate_u16_u16","text":"num_conv_verification_api.checked_truncate_u16_u16"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                    "},{"ref":"Option.map","text":"Option.map"},{"text":" "},{"text":"(fun "},{"text":"v"},{"text":" => "},{"text":"↑"},{"text":"↑"},{"text":"v"},{"text":")"},{"text":" "},{"text":"out"},{"ref":"Eq","text":" = "},{"ref":"NumConvSpec.checked","text":"NumConvSpec.checked"},{"text":" "},{"text":"0"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.unsignedMax","text":"NumConvSpec.unsignedMax"},{"text":" "},{"text":"16"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":")"},{"ref":"And","text":" ∧\n              "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.U32","text":"Aeneas.Std.U32"},{"text":"),\n                  "},{"text":"∃ "},{"text":"out"},{"text":",\n                    "},{"ref":"num_conv_verification_api.checked_truncate_u32_u16","text":"num_conv_verification_api.checked_truncate_u32_u16"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                      "},{"ref":"Option.map","text":"Option.map"},{"text":" "},{"text":"(fun "},{"text":"v"},{"text":" => "},{"text":"↑"},{"text":"↑"},{"text":"v"},{"text":")"},{"text":" "},{"text":"out"},{"ref":"Eq","text":" = "},{"ref":"NumConvSpec.checked","text":"NumConvSpec.checked"},{"text":" "},{"text":"0"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.unsignedMax","text":"NumConvSpec.unsignedMax"},{"text":" "},{"text":"16"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":")"},{"ref":"And","text":" ∧\n                "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.U64","text":"Aeneas.Std.U64"},{"text":"),\n                    "},{"text":"∃ "},{"text":"out"},{"text":",\n                      "},{"ref":"num_conv_verification_api.checked_truncate_u64_u16","text":"num_conv_verification_api.checked_truncate_u64_u16"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                        "},{"ref":"Option.map","text":"Option.map"},{"text":" "},{"text":"(fun "},{"text":"v"},{"text":" => "},{"text":"↑"},{"text":"↑"},{"text":"v"},{"text":")"},{"text":" "},{"text":"out"},{"ref":"Eq","text":" = "},{"ref":"NumConvSpec.checked","text":"NumConvSpec.checked"},{"text":" "},{"text":"0"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.unsignedMax","text":"NumConvSpec.unsignedMax"},{"text":" "},{"text":"16"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":")"},{"ref":"And","text":" ∧\n                  "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.U128","text":"Aeneas.Std.U128"},{"text":"),\n                      "},{"text":"∃ "},{"text":"out"},{"text":",\n                        "},{"ref":"num_conv_verification_api.checked_truncate_u128_u16","text":"num_conv_verification_api.checked_truncate_u128_u16"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                          "},{"ref":"Option.map","text":"Option.map"},{"text":" "},{"text":"(fun "},{"text":"v"},{"text":" => "},{"text":"↑"},{"text":"↑"},{"text":"v"},{"text":")"},{"text":" "},{"text":"out"},{"ref":"Eq","text":" = "},{"ref":"NumConvSpec.checked","text":"NumConvSpec.checked"},{"text":" "},{"text":"0"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.unsignedMax","text":"NumConvSpec.unsignedMax"},{"text":" "},{"text":"16"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":")"},{"ref":"And","text":" ∧\n                    "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.Usize","text":"Aeneas.Std.Usize"},{"text":"),\n                        "},{"text":"∃ "},{"text":"out"},{"text":",\n                          "},{"ref":"num_conv_verification_api.checked_truncate_usize_u16","text":"num_conv_verification_api.checked_truncate_usize_u16"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                            "},{"ref":"Option.map","text":"Option.map"},{"text":" "},{"text":"(fun "},{"text":"v"},{"text":" => "},{"text":"↑"},{"text":"↑"},{"text":"v"},{"text":")"},{"text":" "},{"text":"out"},{"ref":"Eq","text":" = "},{"ref":"NumConvSpec.checked","text":"NumConvSpec.checked"},{"text":" "},{"text":"0"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.unsignedMax","text":"NumConvSpec.unsignedMax"},{"text":" "},{"text":"16"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":")"},{"ref":"And","text":" ∧\n                      "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.U32","text":"Aeneas.Std.U32"},{"text":"),\n                          "},{"text":"∃ "},{"text":"out"},{"text":",\n                            "},{"ref":"num_conv_verification_api.checked_truncate_u32_u32","text":"num_conv_verification_api.checked_truncate_u32_u32"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                              "},{"ref":"Option.map","text":"Option.map"},{"text":" "},{"text":"(fun "},{"text":"v"},{"text":" => "},{"text":"↑"},{"text":"↑"},{"text":"v"},{"text":")"},{"text":" "},{"text":"out"},{"ref":"Eq","text":" = "},{"ref":"NumConvSpec.checked","text":"NumConvSpec.checked"},{"text":" "},{"text":"0"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.unsignedMax","text":"NumConvSpec.unsignedMax"},{"text":" "},{"text":"32"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":")"},{"ref":"And","text":" ∧\n                        "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.U64","text":"Aeneas.Std.U64"},{"text":"),\n                            "},{"text":"∃ "},{"text":"out"},{"text":",\n                              "},{"ref":"num_conv_verification_api.checked_truncate_u64_u32","text":"num_conv_verification_api.checked_truncate_u64_u32"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                "},{"ref":"Option.map","text":"Option.map"},{"text":" "},{"text":"(fun "},{"text":"v"},{"text":" => "},{"text":"↑"},{"text":"↑"},{"text":"v"},{"text":")"},{"text":" "},{"text":"out"},{"ref":"Eq","text":" =\n                                  "},{"ref":"NumConvSpec.checked","text":"NumConvSpec.checked"},{"text":" "},{"text":"0"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.unsignedMax","text":"NumConvSpec.unsignedMax"},{"text":" "},{"text":"32"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":")"},{"ref":"And","text":" ∧\n                          "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.U128","text":"Aeneas.Std.U128"},{"text":"),\n                              "},{"text":"∃ "},{"text":"out"},{"text":",\n                                "},{"ref":"num_conv_verification_api.checked_truncate_u128_u32","text":"num_conv_verification_api.checked_truncate_u128_u32"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                  "},{"ref":"Option.map","text":"Option.map"},{"text":" "},{"text":"(fun "},{"text":"v"},{"text":" => "},{"text":"↑"},{"text":"↑"},{"text":"v"},{"text":")"},{"text":" "},{"text":"out"},{"ref":"Eq","text":" =\n                                    "},{"ref":"NumConvSpec.checked","text":"NumConvSpec.checked"},{"text":" "},{"text":"0"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.unsignedMax","text":"NumConvSpec.unsignedMax"},{"text":" "},{"text":"32"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":")"},{"ref":"And","text":" ∧\n                            "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.U64","text":"Aeneas.Std.U64"},{"text":"),\n                                "},{"text":"∃ "},{"text":"out"},{"text":",\n                                  "},{"ref":"num_conv_verification_api.checked_truncate_u64_u64","text":"num_conv_verification_api.checked_truncate_u64_u64"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                    "},{"ref":"Option.map","text":"Option.map"},{"text":" "},{"text":"(fun "},{"text":"v"},{"text":" => "},{"text":"↑"},{"text":"↑"},{"text":"v"},{"text":")"},{"text":" "},{"text":"out"},{"ref":"Eq","text":" =\n                                      "},{"ref":"NumConvSpec.checked","text":"NumConvSpec.checked"},{"text":" "},{"text":"0"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.unsignedMax","text":"NumConvSpec.unsignedMax"},{"text":" "},{"text":"64"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":")"},{"ref":"And","text":" ∧\n                              "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.U128","text":"Aeneas.Std.U128"},{"text":"),\n                                  "},{"text":"∃ "},{"text":"out"},{"text":",\n                                    "},{"ref":"num_conv_verification_api.checked_truncate_u128_u64","text":"num_conv_verification_api.checked_truncate_u128_u64"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" = "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                      "},{"ref":"Option.map","text":"Option.map"},{"text":" "},{"text":"(fun "},{"text":"v"},{"text":" => "},{"text":"↑"},{"text":"↑"},{"text":"v"},{"text":")"},{"text":" "},{"text":"out"},{"ref":"Eq","text":" =\n                                        "},{"ref":"NumConvSpec.checked","text":"NumConvSpec.checked"},{"text":" "},{"text":"0"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.unsignedMax","text":"NumConvSpec.unsignedMax"},{"text":" "},{"text":"64"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":")"},{"ref":"And","text":" ∧\n                                "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.U128","text":"Aeneas.Std.U128"},{"text":"),\n                                    "},{"text":"∃ "},{"text":"out"},{"text":",\n                                      "},{"ref":"num_conv_verification_api.checked_truncate_u128_u128","text":"num_conv_verification_api.checked_truncate_u128_u128"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" =\n                                          "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                        "},{"ref":"Option.map","text":"Option.map"},{"text":" "},{"text":"(fun "},{"text":"v"},{"text":" => "},{"text":"↑"},{"text":"↑"},{"text":"v"},{"text":")"},{"text":" "},{"text":"out"},{"ref":"Eq","text":" =\n                                          "},{"ref":"NumConvSpec.checked","text":"NumConvSpec.checked"},{"text":" "},{"text":"0"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.unsignedMax","text":"NumConvSpec.unsignedMax"},{"text":" "},{"text":"128"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":")"},{"ref":"And","text":" ∧\n                                  "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.Usize","text":"Aeneas.Std.Usize"},{"text":"),\n                                      "},{"text":"∃ "},{"text":"out"},{"text":",\n                                        "},{"ref":"num_conv_verification_api.checked_truncate_usize_usize","text":"num_conv_verification_api.checked_truncate_usize_usize"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" =\n                                            "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                          "},{"ref":"Option.map","text":"Option.map"},{"text":" "},{"text":"(fun "},{"text":"v"},{"text":" => "},{"text":"↑"},{"text":"↑"},{"text":"v"},{"text":")"},{"text":" "},{"text":"out"},{"ref":"Eq","text":" =\n                                            "},{"ref":"NumConvSpec.checked","text":"NumConvSpec.checked"},{"text":" "},{"text":"0"},{"text":"\n                                              "},{"text":"("},{"ref":"NumConvSpec.unsignedMax","text":"NumConvSpec.unsignedMax"},{"text":" "},{"ref":"Aeneas.Std.UScalarTy.Usize","text":"Aeneas.Std.UScalarTy.Usize"},{"text":"."},{"ref":"Aeneas.Std.UScalarTy.numBits","text":"numBits"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"↑"},{"text":"x"},{"text":")"},{"ref":"And","text":" ∧\n                                    "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.I8","text":"Aeneas.Std.I8"},{"text":"),\n                                        "},{"text":"∃ "},{"text":"out"},{"text":",\n                                          "},{"ref":"num_conv_verification_api.checked_truncate_i8_i8","text":"num_conv_verification_api.checked_truncate_i8_i8"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" =\n                                              "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                            "},{"ref":"Option.map","text":"Option.map"},{"text":" "},{"text":"(fun "},{"text":"v"},{"text":" => "},{"text":"↑"},{"text":"v"},{"text":")"},{"text":" "},{"text":"out"},{"ref":"Eq","text":" =\n                                              "},{"ref":"NumConvSpec.checked","text":"NumConvSpec.checked"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.signedMin","text":"NumConvSpec.signedMin"},{"text":" "},{"text":"8"},{"text":")"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.signedMax","text":"NumConvSpec.signedMax"},{"text":" "},{"text":"8"},{"text":")"},{"text":"\n                                                "},{"text":"↑"},{"text":"x"},{"text":")"},{"ref":"And","text":" ∧\n                                      "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.I16","text":"Aeneas.Std.I16"},{"text":"),\n                                          "},{"text":"∃ "},{"text":"out"},{"text":",\n                                            "},{"ref":"num_conv_verification_api.checked_truncate_i16_i8","text":"num_conv_verification_api.checked_truncate_i16_i8"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" =\n                                                "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                              "},{"ref":"Option.map","text":"Option.map"},{"text":" "},{"text":"(fun "},{"text":"v"},{"text":" => "},{"text":"↑"},{"text":"v"},{"text":")"},{"text":" "},{"text":"out"},{"ref":"Eq","text":" =\n                                                "},{"ref":"NumConvSpec.checked","text":"NumConvSpec.checked"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.signedMin","text":"NumConvSpec.signedMin"},{"text":" "},{"text":"8"},{"text":")"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.signedMax","text":"NumConvSpec.signedMax"},{"text":" "},{"text":"8"},{"text":")"},{"text":"\n                                                  "},{"text":"↑"},{"text":"x"},{"text":")"},{"ref":"And","text":" ∧\n                                        "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.I32","text":"Aeneas.Std.I32"},{"text":"),\n                                            "},{"text":"∃ "},{"text":"out"},{"text":",\n                                              "},{"ref":"num_conv_verification_api.checked_truncate_i32_i8","text":"num_conv_verification_api.checked_truncate_i32_i8"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" =\n                                                  "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                                "},{"ref":"Option.map","text":"Option.map"},{"text":" "},{"text":"(fun "},{"text":"v"},{"text":" => "},{"text":"↑"},{"text":"v"},{"text":")"},{"text":" "},{"text":"out"},{"ref":"Eq","text":" =\n                                                  "},{"ref":"NumConvSpec.checked","text":"NumConvSpec.checked"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.signedMin","text":"NumConvSpec.signedMin"},{"text":" "},{"text":"8"},{"text":")"},{"text":"\n                                                    "},{"text":"("},{"ref":"NumConvSpec.signedMax","text":"NumConvSpec.signedMax"},{"text":" "},{"text":"8"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":")"},{"ref":"And","text":" ∧\n                                          "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.I64","text":"Aeneas.Std.I64"},{"text":"),\n                                              "},{"text":"∃ "},{"text":"out"},{"text":",\n                                                "},{"ref":"num_conv_verification_api.checked_truncate_i64_i8","text":"num_conv_verification_api.checked_truncate_i64_i8"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" =\n                                                    "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                                  "},{"ref":"Option.map","text":"Option.map"},{"text":" "},{"text":"(fun "},{"text":"v"},{"text":" => "},{"text":"↑"},{"text":"v"},{"text":")"},{"text":" "},{"text":"out"},{"ref":"Eq","text":" =\n                                                    "},{"ref":"NumConvSpec.checked","text":"NumConvSpec.checked"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.signedMin","text":"NumConvSpec.signedMin"},{"text":" "},{"text":"8"},{"text":")"},{"text":"\n                                                      "},{"text":"("},{"ref":"NumConvSpec.signedMax","text":"NumConvSpec.signedMax"},{"text":" "},{"text":"8"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":")"},{"ref":"And","text":" ∧\n                                            "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.I128","text":"Aeneas.Std.I128"},{"text":"),\n                                                "},{"text":"∃ "},{"text":"out"},{"text":",\n                                                  "},{"ref":"num_conv_verification_api.checked_truncate_i128_i8","text":"num_conv_verification_api.checked_truncate_i128_i8"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" =\n                                                      "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                                    "},{"ref":"Option.map","text":"Option.map"},{"text":" "},{"text":"(fun "},{"text":"v"},{"text":" => "},{"text":"↑"},{"text":"v"},{"text":")"},{"text":" "},{"text":"out"},{"ref":"Eq","text":" =\n                                                      "},{"ref":"NumConvSpec.checked","text":"NumConvSpec.checked"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.signedMin","text":"NumConvSpec.signedMin"},{"text":" "},{"text":"8"},{"text":")"},{"text":"\n                                                        "},{"text":"("},{"ref":"NumConvSpec.signedMax","text":"NumConvSpec.signedMax"},{"text":" "},{"text":"8"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":")"},{"ref":"And","text":" ∧\n                                              "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.Isize","text":"Aeneas.Std.Isize"},{"text":"),\n                                                  "},{"text":"∃ "},{"text":"out"},{"text":",\n                                                    "},{"ref":"num_conv_verification_api.checked_truncate_isize_i8","text":"num_conv_verification_api.checked_truncate_isize_i8"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" =\n                                                        "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                                      "},{"ref":"Option.map","text":"Option.map"},{"text":" "},{"text":"(fun "},{"text":"v"},{"text":" => "},{"text":"↑"},{"text":"v"},{"text":")"},{"text":" "},{"text":"out"},{"ref":"Eq","text":" =\n                                                        "},{"ref":"NumConvSpec.checked","text":"NumConvSpec.checked"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.signedMin","text":"NumConvSpec.signedMin"},{"text":" "},{"text":"8"},{"text":")"},{"text":"\n                                                          "},{"text":"("},{"ref":"NumConvSpec.signedMax","text":"NumConvSpec.signedMax"},{"text":" "},{"text":"8"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":")"},{"ref":"And","text":" ∧\n                                                "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.I16","text":"Aeneas.Std.I16"},{"text":"),\n                                                    "},{"text":"∃ "},{"text":"out"},{"text":",\n                                                      "},{"ref":"num_conv_verification_api.checked_truncate_i16_i16","text":"num_conv_verification_api.checked_truncate_i16_i16"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" =\n                                                          "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                                        "},{"ref":"Option.map","text":"Option.map"},{"text":" "},{"text":"(fun "},{"text":"v"},{"text":" => "},{"text":"↑"},{"text":"v"},{"text":")"},{"text":" "},{"text":"out"},{"ref":"Eq","text":" =\n                                                          "},{"ref":"NumConvSpec.checked","text":"NumConvSpec.checked"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.signedMin","text":"NumConvSpec.signedMin"},{"text":" "},{"text":"16"},{"text":")"},{"text":"\n                                                            "},{"text":"("},{"ref":"NumConvSpec.signedMax","text":"NumConvSpec.signedMax"},{"text":" "},{"text":"16"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":")"},{"ref":"And","text":" ∧\n                                                  "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.I32","text":"Aeneas.Std.I32"},{"text":"),\n                                                      "},{"text":"∃ "},{"text":"out"},{"text":",\n                                                        "},{"ref":"num_conv_verification_api.checked_truncate_i32_i16","text":"num_conv_verification_api.checked_truncate_i32_i16"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" =\n                                                            "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                                          "},{"ref":"Option.map","text":"Option.map"},{"text":" "},{"text":"(fun "},{"text":"v"},{"text":" => "},{"text":"↑"},{"text":"v"},{"text":")"},{"text":" "},{"text":"out"},{"ref":"Eq","text":" =\n                                                            "},{"ref":"NumConvSpec.checked","text":"NumConvSpec.checked"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.signedMin","text":"NumConvSpec.signedMin"},{"text":" "},{"text":"16"},{"text":")"},{"text":"\n                                                              "},{"text":"("},{"ref":"NumConvSpec.signedMax","text":"NumConvSpec.signedMax"},{"text":" "},{"text":"16"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":")"},{"ref":"And","text":" ∧\n                                                    "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.I64","text":"Aeneas.Std.I64"},{"text":"),\n                                                        "},{"text":"∃ "},{"text":"out"},{"text":",\n                                                          "},{"ref":"num_conv_verification_api.checked_truncate_i64_i16","text":"num_conv_verification_api.checked_truncate_i64_i16"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" =\n                                                              "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                                            "},{"ref":"Option.map","text":"Option.map"},{"text":" "},{"text":"(fun "},{"text":"v"},{"text":" => "},{"text":"↑"},{"text":"v"},{"text":")"},{"text":" "},{"text":"out"},{"ref":"Eq","text":" =\n                                                              "},{"ref":"NumConvSpec.checked","text":"NumConvSpec.checked"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.signedMin","text":"NumConvSpec.signedMin"},{"text":" "},{"text":"16"},{"text":")"},{"text":"\n                                                                "},{"text":"("},{"ref":"NumConvSpec.signedMax","text":"NumConvSpec.signedMax"},{"text":" "},{"text":"16"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":")"},{"ref":"And","text":" ∧\n                                                      "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.I128","text":"Aeneas.Std.I128"},{"text":"),\n                                                          "},{"text":"∃ "},{"text":"out"},{"text":",\n                                                            "},{"ref":"num_conv_verification_api.checked_truncate_i128_i16","text":"num_conv_verification_api.checked_truncate_i128_i16"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" =\n                                                                "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                                              "},{"ref":"Option.map","text":"Option.map"},{"text":" "},{"text":"(fun "},{"text":"v"},{"text":" => "},{"text":"↑"},{"text":"v"},{"text":")"},{"text":" "},{"text":"out"},{"ref":"Eq","text":" =\n                                                                "},{"ref":"NumConvSpec.checked","text":"NumConvSpec.checked"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.signedMin","text":"NumConvSpec.signedMin"},{"text":" "},{"text":"16"},{"text":")"},{"text":"\n                                                                  "},{"text":"("},{"ref":"NumConvSpec.signedMax","text":"NumConvSpec.signedMax"},{"text":" "},{"text":"16"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":")"},{"ref":"And","text":" ∧\n                                                        "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.Isize","text":"Aeneas.Std.Isize"},{"text":"),\n                                                            "},{"text":"∃ "},{"text":"out"},{"text":",\n                                                              "},{"ref":"num_conv_verification_api.checked_truncate_isize_i16","text":"num_conv_verification_api.checked_truncate_isize_i16"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" =\n                                                                  "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                                                "},{"ref":"Option.map","text":"Option.map"},{"text":" "},{"text":"(fun "},{"text":"v"},{"text":" => "},{"text":"↑"},{"text":"v"},{"text":")"},{"text":" "},{"text":"out"},{"ref":"Eq","text":" =\n                                                                  "},{"ref":"NumConvSpec.checked","text":"NumConvSpec.checked"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.signedMin","text":"NumConvSpec.signedMin"},{"text":" "},{"text":"16"},{"text":")"},{"text":"\n                                                                    "},{"text":"("},{"ref":"NumConvSpec.signedMax","text":"NumConvSpec.signedMax"},{"text":" "},{"text":"16"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":")"},{"ref":"And","text":" ∧\n                                                          "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.I32","text":"Aeneas.Std.I32"},{"text":"),\n                                                              "},{"text":"∃ "},{"text":"out"},{"text":",\n                                                                "},{"ref":"num_conv_verification_api.checked_truncate_i32_i32","text":"num_conv_verification_api.checked_truncate_i32_i32"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" =\n                                                                    "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                                                  "},{"ref":"Option.map","text":"Option.map"},{"text":" "},{"text":"(fun "},{"text":"v"},{"text":" => "},{"text":"↑"},{"text":"v"},{"text":")"},{"text":" "},{"text":"out"},{"ref":"Eq","text":" =\n                                                                    "},{"ref":"NumConvSpec.checked","text":"NumConvSpec.checked"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.signedMin","text":"NumConvSpec.signedMin"},{"text":" "},{"text":"32"},{"text":")"},{"text":"\n                                                                      "},{"text":"("},{"ref":"NumConvSpec.signedMax","text":"NumConvSpec.signedMax"},{"text":" "},{"text":"32"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":")"},{"ref":"And","text":" ∧\n                                                            "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.I64","text":"Aeneas.Std.I64"},{"text":"),\n                                                                "},{"text":"∃ "},{"text":"out"},{"text":",\n                                                                  "},{"ref":"num_conv_verification_api.checked_truncate_i64_i32","text":"num_conv_verification_api.checked_truncate_i64_i32"},{"text":" "},{"text":"x"},{"ref":"Eq","text":" =\n                                                                      "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                                                    "},{"ref":"Option.map","text":"Option.map"},{"text":" "},{"text":"(fun "},{"text":"v"},{"text":" => "},{"text":"↑"},{"text":"v"},{"text":")"},{"text":" "},{"text":"out"},{"ref":"Eq","text":" =\n                                                                      "},{"ref":"NumConvSpec.checked","text":"NumConvSpec.checked"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.signedMin","text":"NumConvSpec.signedMin"},{"text":" "},{"text":"32"},{"text":")"},{"text":"\n                                                                        "},{"text":"("},{"ref":"NumConvSpec.signedMax","text":"NumConvSpec.signedMax"},{"text":" "},{"text":"32"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":")"},{"ref":"And","text":" ∧\n                                                              "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.I128","text":"Aeneas.Std.I128"},{"text":"),\n                                                                  "},{"text":"∃ "},{"text":"out"},{"text":",\n                                                                    "},{"ref":"num_conv_verification_api.checked_truncate_i128_i32","text":"num_conv_verification_api.checked_truncate_i128_i32"},{"text":"\n                                                                          "},{"text":"x"},{"ref":"Eq","text":" =\n                                                                        "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                                                      "},{"ref":"Option.map","text":"Option.map"},{"text":" "},{"text":"(fun "},{"text":"v"},{"text":" => "},{"text":"↑"},{"text":"v"},{"text":")"},{"text":" "},{"text":"out"},{"ref":"Eq","text":" =\n                                                                        "},{"ref":"NumConvSpec.checked","text":"NumConvSpec.checked"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.signedMin","text":"NumConvSpec.signedMin"},{"text":" "},{"text":"32"},{"text":")"},{"text":"\n                                                                          "},{"text":"("},{"ref":"NumConvSpec.signedMax","text":"NumConvSpec.signedMax"},{"text":" "},{"text":"32"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":")"},{"ref":"And","text":" ∧\n                                                                "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.I64","text":"Aeneas.Std.I64"},{"text":"),\n                                                                    "},{"text":"∃ "},{"text":"out"},{"text":",\n                                                                      "},{"ref":"num_conv_verification_api.checked_truncate_i64_i64","text":"num_conv_verification_api.checked_truncate_i64_i64"},{"text":"\n                                                                            "},{"text":"x"},{"ref":"Eq","text":" =\n                                                                          "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                                                        "},{"ref":"Option.map","text":"Option.map"},{"text":" "},{"text":"(fun "},{"text":"v"},{"text":" => "},{"text":"↑"},{"text":"v"},{"text":")"},{"text":" "},{"text":"out"},{"ref":"Eq","text":" =\n                                                                          "},{"ref":"NumConvSpec.checked","text":"NumConvSpec.checked"},{"text":" "},{"text":"("},{"ref":"NumConvSpec.signedMin","text":"NumConvSpec.signedMin"},{"text":" "},{"text":"64"},{"text":")"},{"text":"\n                                                                            "},{"text":"("},{"ref":"NumConvSpec.signedMax","text":"NumConvSpec.signedMax"},{"text":" "},{"text":"64"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":")"},{"ref":"And","text":" ∧\n                                                                  "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.I128","text":"Aeneas.Std.I128"},{"text":"),\n                                                                      "},{"text":"∃ "},{"text":"out"},{"text":",\n                                                                        "},{"ref":"num_conv_verification_api.checked_truncate_i128_i64","text":"num_conv_verification_api.checked_truncate_i128_i64"},{"text":"\n                                                                              "},{"text":"x"},{"ref":"Eq","text":" =\n                                                                            "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                                                          "},{"ref":"Option.map","text":"Option.map"},{"text":" "},{"text":"(fun "},{"text":"v"},{"text":" => "},{"text":"↑"},{"text":"v"},{"text":")"},{"text":" "},{"text":"out"},{"ref":"Eq","text":" =\n                                                                            "},{"ref":"NumConvSpec.checked","text":"NumConvSpec.checked"},{"text":"\n                                                                              "},{"text":"("},{"ref":"NumConvSpec.signedMin","text":"NumConvSpec.signedMin"},{"text":" "},{"text":"64"},{"text":")"},{"text":"\n                                                                              "},{"text":"("},{"ref":"NumConvSpec.signedMax","text":"NumConvSpec.signedMax"},{"text":" "},{"text":"64"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":")"},{"ref":"And","text":" ∧\n                                                                    "},{"text":"(∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.I128","text":"Aeneas.Std.I128"},{"text":"),\n                                                                        "},{"text":"∃ "},{"text":"out"},{"text":",\n                                                                          "},{"ref":"num_conv_verification_api.checked_truncate_i128_i128","text":"num_conv_verification_api.checked_truncate_i128_i128"},{"text":"\n                                                                                "},{"text":"x"},{"ref":"Eq","text":" =\n                                                                              "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                                                            "},{"ref":"Option.map","text":"Option.map"},{"text":" "},{"text":"(fun "},{"text":"v"},{"text":" => "},{"text":"↑"},{"text":"v"},{"text":")"},{"text":" "},{"text":"out"},{"ref":"Eq","text":" =\n                                                                              "},{"ref":"NumConvSpec.checked","text":"NumConvSpec.checked"},{"text":"\n                                                                                "},{"text":"("},{"ref":"NumConvSpec.signedMin","text":"NumConvSpec.signedMin"},{"text":" "},{"text":"128"},{"text":")"},{"text":"\n                                                                                "},{"text":"("},{"ref":"NumConvSpec.signedMax","text":"NumConvSpec.signedMax"},{"text":" "},{"text":"128"},{"text":")"},{"text":" "},{"text":"↑"},{"text":"x"},{"text":")"},{"ref":"And","text":" ∧\n                                                                      "},{"text":"∀ ("},{"text":"x"},{"text":" : "},{"ref":"Aeneas.Std.Isize","text":"Aeneas.Std.Isize"},{"text":"),\n                                                                        "},{"text":"∃ "},{"text":"out"},{"text":",\n                                                                          "},{"ref":"num_conv_verification_api.checked_truncate_isize_isize","text":"num_conv_verification_api.checked_truncate_isize_isize"},{"text":"\n                                                                                "},{"text":"x"},{"ref":"Eq","text":" =\n                                                                              "},{"ref":"Aeneas.Std.Result.ok","text":"Aeneas.Std.Result.ok"},{"text":" "},{"text":"out"},{"ref":"And","text":" ∧\n                                                                            "},{"ref":"Option.map","text":"Option.map"},{"text":" "},{"text":"(fun "},{"text":"v"},{"text":" => "},{"text":"↑"},{"text":"v"},{"text":")"},{"text":" "},{"text":"out"},{"ref":"Eq","text":" =\n                                                                              "},{"ref":"NumConvSpec.checked","text":"NumConvSpec.checked"},{"text":"\n                                                                                "},{"text":"("},{"ref":"NumConvSpec.signedMin","text":"NumConvSpec.signedMin"},{"text":"\n                                                                                  "},{"ref":"Aeneas.Std.IScalarTy.Isize","text":"Aeneas.Std.IScalarTy.Isize"},{"text":"."},{"ref":"Aeneas.Std.IScalarTy.numBits","text":"numBits"},{"text":")"},{"text":"\n                                                                                "},{"text":"("},{"ref":"NumConvSpec.signedMax","text":"NumConvSpec.signedMax"},{"text":"\n                                                                                  "},{"ref":"Aeneas.Std.IScalarTy.Isize","text":"Aeneas.Std.IScalarTy.Isize"},{"text":"."},{"ref":"Aeneas.Std.IScalarTy.numBits","text":"numBits"},{"text":")"},{"text":"\n                                                                                "},{"text":"↑"},{"text":"x"}],"definitions":[{"module":"Init.Prelude","name":"And","source":{"first_line":645,"last_line":659}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.U8","source":{"first_line":669,"last_line":669}},{"module":"Init.Core","name":"Exists","source":{"first_line":313,"last_line":341}},{"module":"Init.Prelude","name":"Option","source":{"first_line":3047,"last_line":3058}},{"module":"Init.Prelude","name":"Eq","source":{"first_line":46,"last_line":76}},{"module":"Aeneas.Std.Primitives","name":"Aeneas.Std.Result","source":{"first_line":67,"last_line":68}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.checked_truncate_u8_u8","source":{"first_line":4179,"last_line":4185}},{"module":"Aeneas.Std.Primitives","name":"Aeneas.Std.Result.ok","source":{"first_line":72,"last_line":72}},{"module":"Init.Data.Int.Basic","name":"Int","source":{"first_line":35,"last_line":58}},{"module":"Init.Prelude","name":"Option.map","source":{"first_line":3082,"last_line":3094}},{"module":"Init.Data.Cast","name":"Nat.cast","source":{"first_line":69,"last_line":71}},{"module":"Init.Data.Int.Basic","name":"instNatCastInt","source":{"first_line":63,"last_line":63}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.UScalar.val","source":{"first_line":76,"last_line":76}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.UScalarTy.U8","source":{"first_line":33,"last_line":33}},{"module":"Specs","name":"NumConvSpec.checked","source":{"first_line":39,"last_line":40}},{"module":"Init.Prelude","name":"OfNat.ofNat","source":{"first_line":1393,"last_line":1393}},{"module":"Init.Data.Int.Basic","name":"instOfNat","source":{"first_line":65,"last_line":66}},{"module":"Specs","name":"NumConvSpec.unsignedMax","source":{"first_line":20,"last_line":20}},{"module":"Init.Prelude","name":"Nat","source":{"first_line":1349,"last_line":1371}},{"module":"Init.Prelude","name":"instOfNatNat","source":{"first_line":1395,"last_line":1397}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.U16","source":{"first_line":670,"last_line":670}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.checked_truncate_u16_u8","source":{"first_line":4219,"last_line":4225}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.UScalarTy.U16","source":{"first_line":34,"last_line":34}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.U32","source":{"first_line":671,"last_line":671}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.checked_truncate_u32_u8","source":{"first_line":4259,"last_line":4265}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.UScalarTy.U32","source":{"first_line":35,"last_line":35}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.U64","source":{"first_line":672,"last_line":672}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.checked_truncate_u64_u8","source":{"first_line":4299,"last_line":4305}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.UScalarTy.U64","source":{"first_line":36,"last_line":36}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.U128","source":{"first_line":673,"last_line":673}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.checked_truncate_u128_u8","source":{"first_line":4339,"last_line":4345}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.UScalarTy.U128","source":{"first_line":37,"last_line":37}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.Usize","source":{"first_line":668,"last_line":668}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.checked_truncate_usize_u8","source":{"first_line":4379,"last_line":4385}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.UScalarTy.Usize","source":{"first_line":32,"last_line":32}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.checked_truncate_u16_u16","source":{"first_line":4419,"last_line":4425}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.checked_truncate_u32_u16","source":{"first_line":4459,"last_line":4465}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.checked_truncate_u64_u16","source":{"first_line":4499,"last_line":4505}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.checked_truncate_u128_u16","source":{"first_line":4539,"last_line":4545}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.checked_truncate_usize_u16","source":{"first_line":4579,"last_line":4585}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.checked_truncate_u32_u32","source":{"first_line":4619,"last_line":4625}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.checked_truncate_u64_u32","source":{"first_line":4659,"last_line":4665}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.checked_truncate_u128_u32","source":{"first_line":4699,"last_line":4705}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.checked_truncate_u64_u64","source":{"first_line":4739,"last_line":4745}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.checked_truncate_u128_u64","source":{"first_line":4779,"last_line":4785}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.checked_truncate_u128_u128","source":{"first_line":4819,"last_line":4825}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.checked_truncate_usize_usize","source":{"first_line":4859,"last_line":4866}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.UScalarTy.numBits","source":{"first_line":50,"last_line":58}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.I8","source":{"first_line":675,"last_line":675}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.checked_truncate_i8_i8","source":{"first_line":4900,"last_line":4906}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.IScalar.val","source":{"first_line":84,"last_line":84}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.IScalarTy.I8","source":{"first_line":43,"last_line":43}},{"module":"Specs","name":"NumConvSpec.signedMin","source":{"first_line":22,"last_line":22}},{"module":"Specs","name":"NumConvSpec.signedMax","source":{"first_line":24,"last_line":24}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.I16","source":{"first_line":676,"last_line":676}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.checked_truncate_i16_i8","source":{"first_line":4940,"last_line":4946}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.IScalarTy.I16","source":{"first_line":44,"last_line":44}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.I32","source":{"first_line":677,"last_line":677}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.checked_truncate_i32_i8","source":{"first_line":4980,"last_line":4986}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.IScalarTy.I32","source":{"first_line":45,"last_line":45}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.I64","source":{"first_line":678,"last_line":678}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.checked_truncate_i64_i8","source":{"first_line":5020,"last_line":5026}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.IScalarTy.I64","source":{"first_line":46,"last_line":46}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.I128","source":{"first_line":679,"last_line":679}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.checked_truncate_i128_i8","source":{"first_line":5060,"last_line":5066}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.IScalarTy.I128","source":{"first_line":47,"last_line":47}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.Isize","source":{"first_line":674,"last_line":674}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.checked_truncate_isize_i8","source":{"first_line":5100,"last_line":5106}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.IScalarTy.Isize","source":{"first_line":42,"last_line":42}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.checked_truncate_i16_i16","source":{"first_line":5140,"last_line":5146}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.checked_truncate_i32_i16","source":{"first_line":5180,"last_line":5186}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.checked_truncate_i64_i16","source":{"first_line":5220,"last_line":5226}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.checked_truncate_i128_i16","source":{"first_line":5260,"last_line":5266}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.checked_truncate_isize_i16","source":{"first_line":5300,"last_line":5306}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.checked_truncate_i32_i32","source":{"first_line":5340,"last_line":5346}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.checked_truncate_i64_i32","source":{"first_line":5380,"last_line":5386}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.checked_truncate_i128_i32","source":{"first_line":5420,"last_line":5426}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.checked_truncate_i64_i64","source":{"first_line":5460,"last_line":5466}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.checked_truncate_i128_i64","source":{"first_line":5500,"last_line":5506}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.checked_truncate_i128_i128","source":{"first_line":5540,"last_line":5546}},{"module":"NumConvVerificationApi","name":"num_conv_verification_api.checked_truncate_isize_isize","source":{"first_line":5580,"last_line":5587}},{"module":"Aeneas.Std.Scalar.Core","name":"Aeneas.Std.IScalarTy.numBits","source":{"first_line":60,"last_line":68}}],"definitions_truncated":false,"first_line":169,"last_line":208,"module":"Contracts","program":null,"program_head":null,"statement":"And\n  (∀ (x : Aeneas.Std.U8),\n    @Exists.{1} (Option.{0} Aeneas.Std.U8) fun (out : Option.{0} Aeneas.Std.U8) =>\n      And\n        (@Eq.{1} (Aeneas.Std.Result.{0} (Option.{0} Aeneas.Std.U8)) (num_conv_verification_api.checked_truncate_u8_u8 x)\n          (@Aeneas.Std.Result.ok.{0} (Option.{0} Aeneas.Std.U8) out))\n        (@Eq.{1} (Option.{0} Int)\n          (@Option.map.{0, 0} Aeneas.Std.U8 Int\n            (fun (v : Aeneas.Std.U8) =>\n              @Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U8 v))\n            out)\n          (NumConvSpec.checked (@OfNat.ofNat.{0} Int (nat_lit 0) (@instOfNat (nat_lit 0)))\n            (NumConvSpec.unsignedMax (@OfNat.ofNat.{0} Nat (nat_lit 8) (instOfNatNat (nat_lit 8))))\n            (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U8 x)))))\n  (And\n    (∀ (x : Aeneas.Std.U16),\n      @Exists.{1} (Option.{0} Aeneas.Std.U8) fun (out : Option.{0} Aeneas.Std.U8) =>\n        And\n          (@Eq.{1} (Aeneas.Std.Result.{0} (Option.{0} Aeneas.Std.U8))\n            (num_conv_verification_api.checked_truncate_u16_u8 x)\n            (@Aeneas.Std.Result.ok.{0} (Option.{0} Aeneas.Std.U8) out))\n          (@Eq.{1} (Option.{0} Int)\n            (@Option.map.{0, 0} Aeneas.Std.U8 Int\n              (fun (v : Aeneas.Std.U8) =>\n                @Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U8 v))\n              out)\n            (NumConvSpec.checked (@OfNat.ofNat.{0} Int (nat_lit 0) (@instOfNat (nat_lit 0)))\n              (NumConvSpec.unsignedMax (@OfNat.ofNat.{0} Nat (nat_lit 8) (instOfNatNat (nat_lit 8))))\n              (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U16 x)))))\n    (And\n      (∀ (x : Aeneas.Std.U32),\n        @Exists.{1} (Option.{0} Aeneas.Std.U8) fun (out : Option.{0} Aeneas.Std.U8) =>\n          And\n            (@Eq.{1} (Aeneas.Std.Result.{0} (Option.{0} Aeneas.Std.U8))\n              (num_conv_verification_api.checked_truncate_u32_u8 x)\n              (@Aeneas.Std.Result.ok.{0} (Option.{0} Aeneas.Std.U8) out))\n            (@Eq.{1} (Option.{0} Int)\n              (@Option.map.{0, 0} Aeneas.Std.U8 Int\n                (fun (v : Aeneas.Std.U8) =>\n                  @Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U8 v))\n                out)\n              (NumConvSpec.checked (@OfNat.ofNat.{0} Int (nat_lit 0) (@instOfNat (nat_lit 0)))\n                (NumConvSpec.unsignedMax (@OfNat.ofNat.{0} Nat (nat_lit 8) (instOfNatNat (nat_lit 8))))\n                (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U32 x)))))\n      (And\n        (∀ (x : Aeneas.Std.U64),\n          @Exists.{1} (Option.{0} Aeneas.Std.U8) fun (out : Option.{0} Aeneas.Std.U8) =>\n            And\n              (@Eq.{1} (Aeneas.Std.Result.{0} (Option.{0} Aeneas.Std.U8))\n                (num_conv_verification_api.checked_truncate_u64_u8 x)\n                (@Aeneas.Std.Result.ok.{0} (Option.{0} Aeneas.Std.U8) out))\n              (@Eq.{1} (Option.{0} Int)\n                (@Option.map.{0, 0} Aeneas.Std.U8 Int\n                  (fun (v : Aeneas.Std.U8) =>\n                    @Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U8 v))\n                  out)\n                (NumConvSpec.checked (@OfNat.ofNat.{0} Int (nat_lit 0) (@instOfNat (nat_lit 0)))\n                  (NumConvSpec.unsignedMax (@OfNat.ofNat.{0} Nat (nat_lit 8) (instOfNatNat (nat_lit 8))))\n                  (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U64 x)))))\n        (And\n          (∀ (x : Aeneas.Std.U128),\n            @Exists.{1} (Option.{0} Aeneas.Std.U8) fun (out : Option.{0} Aeneas.Std.U8) =>\n              And\n                (@Eq.{1} (Aeneas.Std.Result.{0} (Option.{0} Aeneas.Std.U8))\n                  (num_conv_verification_api.checked_truncate_u128_u8 x)\n                  (@Aeneas.Std.Result.ok.{0} (Option.{0} Aeneas.Std.U8) out))\n                (@Eq.{1} (Option.{0} Int)\n                  (@Option.map.{0, 0} Aeneas.Std.U8 Int\n                    (fun (v : Aeneas.Std.U8) =>\n                      @Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U8 v))\n                    out)\n                  (NumConvSpec.checked (@OfNat.ofNat.{0} Int (nat_lit 0) (@instOfNat (nat_lit 0)))\n                    (NumConvSpec.unsignedMax (@OfNat.ofNat.{0} Nat (nat_lit 8) (instOfNatNat (nat_lit 8))))\n                    (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U128 x)))))\n          (And\n            (∀ (x : Aeneas.Std.Usize),\n              @Exists.{1} (Option.{0} Aeneas.Std.U8) fun (out : Option.{0} Aeneas.Std.U8) =>\n                And\n                  (@Eq.{1} (Aeneas.Std.Result.{0} (Option.{0} Aeneas.Std.U8))\n                    (num_conv_verification_api.checked_truncate_usize_u8 x)\n                    (@Aeneas.Std.Result.ok.{0} (Option.{0} Aeneas.Std.U8) out))\n                  (@Eq.{1} (Option.{0} Int)\n                    (@Option.map.{0, 0} Aeneas.Std.U8 Int\n                      (fun (v : Aeneas.Std.U8) =>\n                        @Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U8 v))\n                      out)\n                    (NumConvSpec.checked (@OfNat.ofNat.{0} Int (nat_lit 0) (@instOfNat (nat_lit 0)))\n                      (NumConvSpec.unsignedMax (@OfNat.ofNat.{0} Nat (nat_lit 8) (instOfNatNat (nat_lit 8))))\n                      (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.Usize x)))))\n            (And\n              (∀ (x : Aeneas.Std.U16),\n                @Exists.{1} (Option.{0} Aeneas.Std.U16) fun (out : Option.{0} Aeneas.Std.U16) =>\n                  And\n                    (@Eq.{1} (Aeneas.Std.Result.{0} (Option.{0} Aeneas.Std.U16))\n                      (num_conv_verification_api.checked_truncate_u16_u16 x)\n                      (@Aeneas.Std.Result.ok.{0} (Option.{0} Aeneas.Std.U16) out))\n                    (@Eq.{1} (Option.{0} Int)\n                      (@Option.map.{0, 0} Aeneas.Std.U16 Int\n                        (fun (v : Aeneas.Std.U16) =>\n                          @Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U16 v))\n                        out)\n                      (NumConvSpec.checked (@OfNat.ofNat.{0} Int (nat_lit 0) (@instOfNat (nat_lit 0)))\n                        (NumConvSpec.unsignedMax (@OfNat.ofNat.{0} Nat (nat_lit 16) (instOfNatNat (nat_lit 16))))\n                        (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U16 x)))))\n              (And\n                (∀ (x : Aeneas.Std.U32),\n                  @Exists.{1} (Option.{0} Aeneas.Std.U16) fun (out : Option.{0} Aeneas.Std.U16) =>\n                    And\n                      (@Eq.{1} (Aeneas.Std.Result.{0} (Option.{0} Aeneas.Std.U16))\n                        (num_conv_verification_api.checked_truncate_u32_u16 x)\n                        (@Aeneas.Std.Result.ok.{0} (Option.{0} Aeneas.Std.U16) out))\n                      (@Eq.{1} (Option.{0} Int)\n                        (@Option.map.{0, 0} Aeneas.Std.U16 Int\n                          (fun (v : Aeneas.Std.U16) =>\n                            @Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U16 v))\n                          out)\n                        (NumConvSpec.checked (@OfNat.ofNat.{0} Int (nat_lit 0) (@instOfNat (nat_lit 0)))\n                          (NumConvSpec.unsignedMax (@OfNat.ofNat.{0} Nat (nat_lit 16) (instOfNatNat (nat_lit 16))))\n                          (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U32 x)))))\n                (And\n                  (∀ (x : Aeneas.Std.U64),\n                    @Exists.{1} (Option.{0} Aeneas.Std.U16) fun (out : Option.{0} Aeneas.Std.U16) =>\n                      And\n                        (@Eq.{1} (Aeneas.Std.Result.{0} (Option.{0} Aeneas.Std.U16))\n                          (num_conv_verification_api.checked_truncate_u64_u16 x)\n                          (@Aeneas.Std.Result.ok.{0} (Option.{0} Aeneas.Std.U16) out))\n                        (@Eq.{1} (Option.{0} Int)\n                          (@Option.map.{0, 0} Aeneas.Std.U16 Int\n                            (fun (v : Aeneas.Std.U16) =>\n                              @Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U16 v))\n                            out)\n                          (NumConvSpec.checked (@OfNat.ofNat.{0} Int (nat_lit 0) (@instOfNat (nat_lit 0)))\n                            (NumConvSpec.unsignedMax (@OfNat.ofNat.{0} Nat (nat_lit 16) (instOfNatNat (nat_lit 16))))\n                            (@Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U64 x)))))\n                  (And\n                    (∀ (x : Aeneas.Std.U128),\n                      @Exists.{1} (Option.{0} Aeneas.Std.U16) fun (out : Option.{0} Aeneas.Std.U16) =>\n                        And\n                          (@Eq.{1} (Aeneas.Std.Result.{0} (Option.{0} Aeneas.Std.U16))\n                            (num_conv_verification_api.checked_truncate_u128_u16 x)\n                            (@Aeneas.Std.Result.ok.{0} (Option.{0} Aeneas.Std.U16) out))\n                          (@Eq.{1} (Option.{0} Int)\n                            (@Option.map.{0, 0} Aeneas.Std.U16 Int\n                              (fun (v : Aeneas.Std.U16) =>\n                                @Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U16 v))\n                              out)\n                            (NumConvSpec.checked (@OfNat.ofNat.{0} Int (nat_lit 0) (@instOfNat (nat_lit 0)))\n                              (NumConvSpec.unsignedMax (@OfNat.ofNat.{0} Nat (nat_lit 16) (instOfNatNat (nat_lit 16))))\n                              (@Nat.cast.{0} Int instNatCastInt\n                                (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U128 x)))))\n                    (And\n                      (∀ (x : Aeneas.Std.Usize),\n                        @Exists.{1} (Option.{0} Aeneas.Std.U16) fun (out : Option.{0} Aeneas.Std.U16) =>\n                          And\n                            (@Eq.{1} (Aeneas.Std.Result.{0} (Option.{0} Aeneas.Std.U16))\n                              (num_conv_verification_api.checked_truncate_usize_u16 x)\n                              (@Aeneas.Std.Result.ok.{0} (Option.{0} Aeneas.Std.U16) out))\n                            (@Eq.{1} (Option.{0} Int)\n                              (@Option.map.{0, 0} Aeneas.Std.U16 Int\n                                (fun (v : Aeneas.Std.U16) =>\n                                  @Nat.cast.{0} Int instNatCastInt (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U16 v))\n                                out)\n                              (NumConvSpec.checked (@OfNat.ofNat.{0} Int (nat_lit 0) (@instOfNat (nat_lit 0)))\n                                (NumConvSpec.unsignedMax\n                                  (@OfNat.ofNat.{0} Nat (nat_lit 16) (instOfNatNat (nat_lit 16))))\n                                (@Nat.cast.{0} Int instNatCastInt\n                                  (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.Usize x)))))\n                      (And\n                        (∀ (x : Aeneas.Std.U32),\n                          @Exists.{1} (Option.{0} Aeneas.Std.U32) fun (out : Option.{0} Aeneas.Std.U32) =>\n                            And\n                              (@Eq.{1} (Aeneas.Std.Result.{0} (Option.{0} Aeneas.Std.U32))\n                                (num_conv_verification_api.checked_truncate_u32_u32 x)\n                                (@Aeneas.Std.Result.ok.{0} (Option.{0} Aeneas.Std.U32) out))\n                              (@Eq.{1} (Option.{0} Int)\n                                (@Option.map.{0, 0} Aeneas.Std.U32 Int\n                                  (fun (v : Aeneas.Std.U32) =>\n                                    @Nat.cast.{0} Int instNatCastInt\n                                      (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U32 v))\n                                  out)\n                                (NumConvSpec.checked (@OfNat.ofNat.{0} Int (nat_lit 0) (@instOfNat (nat_lit 0)))\n                                  (NumConvSpec.unsignedMax\n                                    (@OfNat.ofNat.{0} Nat (nat_lit 32) (instOfNatNat (nat_lit 32))))\n                                  (@Nat.cast.{0} Int instNatCastInt\n                                    (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U32 x)))))\n                        (And\n                          (∀ (x : Aeneas.Std.U64),\n                            @Exists.{1} (Option.{0} Aeneas.Std.U32) fun (out : Option.{0} Aeneas.Std.U32) =>\n                              And\n                                (@Eq.{1} (Aeneas.Std.Result.{0} (Option.{0} Aeneas.Std.U32))\n                                  (num_conv_verification_api.checked_truncate_u64_u32 x)\n                                  (@Aeneas.Std.Result.ok.{0} (Option.{0} Aeneas.Std.U32) out))\n                                (@Eq.{1} (Option.{0} Int)\n                                  (@Option.map.{0, 0} Aeneas.Std.U32 Int\n                                    (fun (v : Aeneas.Std.U32) =>\n                                      @Nat.cast.{0} Int instNatCastInt\n                                        (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U32 v))\n                                    out)\n                                  (NumConvSpec.checked (@OfNat.ofNat.{0} Int (nat_lit 0) (@instOfNat (nat_lit 0)))\n                                    (NumConvSpec.unsignedMax\n                                      (@OfNat.ofNat.{0} Nat (nat_lit 32) (instOfNatNat (nat_lit 32))))\n                                    (@Nat.cast.{0} Int instNatCastInt\n                                      (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U64 x)))))\n                          (And\n                            (∀ (x : Aeneas.Std.U128),\n                              @Exists.{1} (Option.{0} Aeneas.Std.U32) fun (out : Option.{0} Aeneas.Std.U32) =>\n                                And\n                                  (@Eq.{1} (Aeneas.Std.Result.{0} (Option.{0} Aeneas.Std.U32))\n                                    (num_conv_verification_api.checked_truncate_u128_u32 x)\n                                    (@Aeneas.Std.Result.ok.{0} (Option.{0} Aeneas.Std.U32) out))\n                                  (@Eq.{1} (Option.{0} Int)\n                                    (@Option.map.{0, 0} Aeneas.Std.U32 Int\n                                      (fun (v : Aeneas.Std.U32) =>\n                                        @Nat.cast.{0} Int instNatCastInt\n                                          (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U32 v))\n                                      out)\n                                    (NumConvSpec.checked (@OfNat.ofNat.{0} Int (nat_lit 0) (@instOfNat (nat_lit 0)))\n                                      (NumConvSpec.unsignedMax\n                                        (@OfNat.ofNat.{0} Nat (nat_lit 32) (instOfNatNat (nat_lit 32))))\n                                      (@Nat.cast.{0} Int instNatCastInt\n                                        (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U128 x)))))\n                            (And\n                              (∀ (x : Aeneas.Std.U64),\n                                @Exists.{1} (Option.{0} Aeneas.Std.U64) fun (out : Option.{0} Aeneas.Std.U64) =>\n                                  And\n                                    (@Eq.{1} (Aeneas.Std.Result.{0} (Option.{0} Aeneas.Std.U64))\n                                      (num_conv_verification_api.checked_truncate_u64_u64 x)\n                                      (@Aeneas.Std.Result.ok.{0} (Option.{0} Aeneas.Std.U64) out))\n                                    (@Eq.{1} (Option.{0} Int)\n                                      (@Option.map.{0, 0} Aeneas.Std.U64 Int\n                                        (fun (v : Aeneas.Std.U64) =>\n                                          @Nat.cast.{0} Int instNatCastInt\n                                            (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U64 v))\n                                        out)\n                                      (NumConvSpec.checked (@OfNat.ofNat.{0} Int (nat_lit 0) (@instOfNat (nat_lit 0)))\n                                        (NumConvSpec.unsignedMax\n                                          (@OfNat.ofNat.{0} Nat (nat_lit 64) (instOfNatNat (nat_lit 64))))\n                                        (@Nat.cast.{0} Int instNatCastInt\n                                          (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U64 x)))))\n                              (And\n                                (∀ (x : Aeneas.Std.U128),\n                                  @Exists.{1} (Option.{0} Aeneas.Std.U64) fun (out : Option.{0} Aeneas.Std.U64) =>\n                                    And\n                                      (@Eq.{1} (Aeneas.Std.Result.{0} (Option.{0} Aeneas.Std.U64))\n                                        (num_conv_verification_api.checked_truncate_u128_u64 x)\n                                        (@Aeneas.Std.Result.ok.{0} (Option.{0} Aeneas.Std.U64) out))\n                                      (@Eq.{1} (Option.{0} Int)\n                                        (@Option.map.{0, 0} Aeneas.Std.U64 Int\n                                          (fun (v : Aeneas.Std.U64) =>\n                                            @Nat.cast.{0} Int instNatCastInt\n                                              (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U64 v))\n                                          out)\n                                        (NumConvSpec.checked (@OfNat.ofNat.{0} Int (nat_lit 0) (@instOfNat (nat_lit 0)))\n                                          (NumConvSpec.unsignedMax\n                                            (@OfNat.ofNat.{0} Nat (nat_lit 64) (instOfNatNat (nat_lit 64))))\n                                          (@Nat.cast.{0} Int instNatCastInt\n                                            (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U128 x)))))\n                                (And\n                                  (∀ (x : Aeneas.Std.U128),\n                                    @Exists.{1} (Option.{0} Aeneas.Std.U128) fun (out : Option.{0} Aeneas.Std.U128) =>\n                                      And\n                                        (@Eq.{1} (Aeneas.Std.Result.{0} (Option.{0} Aeneas.Std.U128))\n                                          (num_conv_verification_api.checked_truncate_u128_u128 x)\n                                          (@Aeneas.Std.Result.ok.{0} (Option.{0} Aeneas.Std.U128) out))\n                                        (@Eq.{1} (Option.{0} Int)\n                                          (@Option.map.{0, 0} Aeneas.Std.U128 Int\n                                            (fun (v : Aeneas.Std.U128) =>\n                                              @Nat.cast.{0} Int instNatCastInt\n                                                (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U128 v))\n                                            out)\n                                          (NumConvSpec.checked\n                                            (@OfNat.ofNat.{0} Int (nat_lit 0) (@instOfNat (nat_lit 0)))\n                                            (NumConvSpec.unsignedMax\n                                              (@OfNat.ofNat.{0} Nat (nat_lit 128) (instOfNatNat (nat_lit 128))))\n                                            (@Nat.cast.{0} Int instNatCastInt\n                                              (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.U128 x)))))\n                                  (And\n                                    (∀ (x : Aeneas.Std.Usize),\n                                      @Exists.{1} (Option.{0} Aeneas.Std.Usize)\n                                        fun (out : Option.{0} Aeneas.Std.Usize) =>\n                                        And\n                                          (@Eq.{1} (Aeneas.Std.Result.{0} (Option.{0} Aeneas.Std.Usize))\n                                            (num_conv_verification_api.checked_truncate_usize_usize x)\n                                            (@Aeneas.Std.Result.ok.{0} (Option.{0} Aeneas.Std.Usize) out))\n                                          (@Eq.{1} (Option.{0} Int)\n                                            (@Option.map.{0, 0} Aeneas.Std.Usize Int\n                                              (fun (v : Aeneas.Std.Usize) =>\n                                                @Nat.cast.{0} Int instNatCastInt\n                                                  (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.Usize v))\n                                              out)\n                                            (NumConvSpec.checked\n                                              (@OfNat.ofNat.{0} Int (nat_lit 0) (@instOfNat (nat_lit 0)))\n                                              (NumConvSpec.unsignedMax\n                                                (Aeneas.Std.UScalarTy.numBits Aeneas.Std.UScalarTy.Usize))\n                                              (@Nat.cast.{0} Int instNatCastInt\n                                                (@Aeneas.Std.UScalar.val Aeneas.Std.UScalarTy.Usize x)))))\n                                    (And\n                                      (∀ (x : Aeneas.Std.I8),\n                                        @Exists.{1} (Option.{0} Aeneas.Std.I8) fun (out : Option.{0} Aeneas.Std.I8) =>\n                                          And\n                                            (@Eq.{1} (Aeneas.Std.Result.{0} (Option.{0} Aeneas.Std.I8))\n                                              (num_conv_verification_api.checked_truncate_i8_i8 x)\n                                              (@Aeneas.Std.Result.ok.{0} (Option.{0} Aeneas.Std.I8) out))\n                                            (@Eq.{1} (Option.{0} Int)\n                                              (@Option.map.{0, 0} Aeneas.Std.I8 Int\n                                                (fun (v : Aeneas.Std.I8) =>\n                                                  @Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I8 v)\n                                                out)\n                                              (NumConvSpec.checked\n                                                (NumConvSpec.signedMin\n                                                  (@OfNat.ofNat.{0} Nat (nat_lit 8) (instOfNatNat (nat_lit 8))))\n                                                (NumConvSpec.signedMax\n                                                  (@OfNat.ofNat.{0} Nat (nat_lit 8) (instOfNatNat (nat_lit 8))))\n                                                (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I8 x))))\n                                      (And\n                                        (∀ (x : Aeneas.Std.I16),\n                                          @Exists.{1} (Option.{0} Aeneas.Std.I8) fun (out : Option.{0} Aeneas.Std.I8) =>\n                                            And\n                                              (@Eq.{1} (Aeneas.Std.Result.{0} (Option.{0} Aeneas.Std.I8))\n                                                (num_conv_verification_api.checked_truncate_i16_i8 x)\n                                                (@Aeneas.Std.Result.ok.{0} (Option.{0} Aeneas.Std.I8) out))\n                                              (@Eq.{1} (Option.{0} Int)\n                                                (@Option.map.{0, 0} Aeneas.Std.I8 Int\n                                                  (fun (v : Aeneas.Std.I8) =>\n                                                    @Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I8 v)\n                                                  out)\n                                                (NumConvSpec.checked\n                                                  (NumConvSpec.signedMin\n                                                    (@OfNat.ofNat.{0} Nat (nat_lit 8) (instOfNatNat (nat_lit 8))))\n                                                  (NumConvSpec.signedMax\n                                                    (@OfNat.ofNat.{0} Nat (nat_lit 8) (instOfNatNat (nat_lit 8))))\n                                                  (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I16 x))))\n                                        (And\n                                          (∀ (x : Aeneas.Std.I32),\n                                            @Exists.{1} (Option.{0} Aeneas.Std.I8)\n                                              fun (out : Option.{0} Aeneas.Std.I8) =>\n                                              And\n                                                (@Eq.{1} (Aeneas.Std.Result.{0} (Option.{0} Aeneas.Std.I8))\n                                                  (num_conv_verification_api.checked_truncate_i32_i8 x)\n                                                  (@Aeneas.Std.Result.ok.{0} (Option.{0} Aeneas.Std.I8) out))\n                                                (@Eq.{1} (Option.{0} Int)\n                                                  (@Option.map.{0, 0} Aeneas.Std.I8 Int\n                                                    (fun (v : Aeneas.Std.I8) =>\n                                                      @Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I8 v)\n                                                    out)\n                                                  (NumConvSpec.checked\n                                                    (NumConvSpec.signedMin\n                                                      (@OfNat.ofNat.{0} Nat (nat_lit 8) (instOfNatNat (nat_lit 8))))\n                                                    (NumConvSpec.signedMax\n                                                      (@OfNat.ofNat.{0} Nat (nat_lit 8) (instOfNatNat (nat_lit 8))))\n                                                    (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I32 x))))\n                                          (And\n                                            (∀ (x : Aeneas.Std.I64),\n                                              @Exists.{1} (Option.{0} Aeneas.Std.I8)\n                                                fun (out : Option.{0} Aeneas.Std.I8) =>\n                                                And\n                                                  (@Eq.{1} (Aeneas.Std.Result.{0} (Option.{0} Aeneas.Std.I8))\n                                                    (num_conv_verification_api.checked_truncate_i64_i8 x)\n                                                    (@Aeneas.Std.Result.ok.{0} (Option.{0} Aeneas.Std.I8) out))\n                                                  (@Eq.{1} (Option.{0} Int)\n                                                    (@Option.map.{0, 0} Aeneas.Std.I8 Int\n                                                      (fun (v : Aeneas.Std.I8) =>\n                                                        @Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I8 v)\n                                                      out)\n                                                    (NumConvSpec.checked\n                                                      (NumConvSpec.signedMin\n                                                        (@OfNat.ofNat.{0} Nat (nat_lit 8) (instOfNatNat (nat_lit 8))))\n                                                      (NumConvSpec.signedMax\n                                                        (@OfNat.ofNat.{0} Nat (nat_lit 8) (instOfNatNat (nat_lit 8))))\n                                                      (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I64 x))))\n                                            (And\n                                              (∀ (x : Aeneas.Std.I128),\n                                                @Exists.{1} (Option.{0} Aeneas.Std.I8)\n                                                  fun (out : Option.{0} Aeneas.Std.I8) =>\n                                                  And\n                                                    (@Eq.{1} (Aeneas.Std.Result.{0} (Option.{0} Aeneas.Std.I8))\n                                                      (num_conv_verification_api.checked_truncate_i128_i8 x)\n                                                      (@Aeneas.Std.Result.ok.{0} (Option.{0} Aeneas.Std.I8) out))\n                                                    (@Eq.{1} (Option.{0} Int)\n                                                      (@Option.map.{0, 0} Aeneas.Std.I8 Int\n                                                        (fun (v : Aeneas.Std.I8) =>\n                                                          @Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I8 v)\n                                                        out)\n                                                      (NumConvSpec.checked\n                                                        (NumConvSpec.signedMin\n                                                          (@OfNat.ofNat.{0} Nat (nat_lit 8) (instOfNatNat (nat_lit 8))))\n                                                        (NumConvSpec.signedMax\n                                                          (@OfNat.ofNat.{0} Nat (nat_lit 8) (instOfNatNat (nat_lit 8))))\n                                                        (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I128 x))))\n                                              (And\n                                                (∀ (x : Aeneas.Std.Isize),\n                                                  @Exists.{1} (Option.{0} Aeneas.Std.I8)\n                                                    fun (out : Option.{0} Aeneas.Std.I8) =>\n                                                    And\n                                                      (@Eq.{1} (Aeneas.Std.Result.{0} (Option.{0} Aeneas.Std.I8))\n                                                        (num_conv_verification_api.checked_truncate_isize_i8 x)\n                                                        (@Aeneas.Std.Result.ok.{0} (Option.{0} Aeneas.Std.I8) out))\n                                                      (@Eq.{1} (Option.{0} Int)\n                                                        (@Option.map.{0, 0} Aeneas.Std.I8 Int\n                                                          (fun (v : Aeneas.Std.I8) =>\n                                                            @Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I8 v)\n                                                          out)\n                                                        (NumConvSpec.checked\n                                                          (NumConvSpec.signedMin\n                                                            (@OfNat.ofNat.{0} Nat (nat_lit 8)\n                                                              (instOfNatNat (nat_lit 8))))\n                                                          (NumConvSpec.signedMax\n                                                            (@OfNat.ofNat.{0} Nat (nat_lit 8)\n                                                              (instOfNatNat (nat_lit 8))))\n                                                          (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.Isize x))))\n                                                (And\n                                                  (∀ (x : Aeneas.Std.I16),\n                                                    @Exists.{1} (Option.{0} Aeneas.Std.I16)\n                                                      fun (out : Option.{0} Aeneas.Std.I16) =>\n                                                      And\n                                                        (@Eq.{1} (Aeneas.Std.Result.{0} (Option.{0} Aeneas.Std.I16))\n                                                          (num_conv_verification_api.checked_truncate_i16_i16 x)\n                                                          (@Aeneas.Std.Result.ok.{0} (Option.{0} Aeneas.Std.I16) out))\n                                                        (@Eq.{1} (Option.{0} Int)\n                                                          (@Option.map.{0, 0} Aeneas.Std.I16 Int\n                                                            (fun (v : Aeneas.Std.I16) =>\n                                                              @Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I16 v)\n                                                            out)\n                                                          (NumConvSpec.checked\n                                                            (NumConvSpec.signedMin\n                                                              (@OfNat.ofNat.{0} Nat (nat_lit 16)\n                                                                (instOfNatNat (nat_lit 16))))\n                                                            (NumConvSpec.signedMax\n                                                              (@OfNat.ofNat.{0} Nat (nat_lit 16)\n                                                                (instOfNatNat (nat_lit 16))))\n                                                            (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I16 x))))\n                                                  (And\n                                                    (∀ (x : Aeneas.Std.I32),\n                                                      @Exists.{1} (Option.{0} Aeneas.Std.I16)\n                                                        fun (out : Option.{0} Aeneas.Std.I16) =>\n                                                        And\n                                                          (@Eq.{1} (Aeneas.Std.Result.{0} (Option.{0} Aeneas.Std.I16))\n                                                            (num_conv_verification_api.checked_truncate_i32_i16 x)\n                                                            (@Aeneas.Std.Result.ok.{0} (Option.{0} Aeneas.Std.I16) out))\n                                                          (@Eq.{1} (Option.{0} Int)\n                                                            (@Option.map.{0, 0} Aeneas.Std.I16 Int\n                                                              (fun (v : Aeneas.Std.I16) =>\n                                                                @Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I16 v)\n                                                              out)\n                                                            (NumConvSpec.checked\n                                                              (NumConvSpec.signedMin\n                                                                (@OfNat.ofNat.{0} Nat (nat_lit 16)\n                                                                  (instOfNatNat (nat_lit 16))))\n                                                              (NumConvSpec.signedMax\n                                                                (@OfNat.ofNat.{0} Nat (nat_lit 16)\n                                                                  (instOfNatNat (nat_lit 16))))\n                                                              (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I32 x))))\n                                                    (And\n                                                      (∀ (x : Aeneas.Std.I64),\n                                                        @Exists.{1} (Option.{0} Aeneas.Std.I16)\n                                                          fun (out : Option.{0} Aeneas.Std.I16) =>\n                                                          And\n                                                            (@Eq.{1} (Aeneas.Std.Result.{0} (Option.{0} Aeneas.Std.I16))\n                                                              (num_conv_verification_api.checked_truncate_i64_i16 x)\n                                                              (@Aeneas.Std.Result.ok.{0} (Option.{0} Aeneas.Std.I16)\n                                                                out))\n                                                            (@Eq.{1} (Option.{0} Int)\n                                                              (@Option.map.{0, 0} Aeneas.Std.I16 Int\n                                                                (fun (v : Aeneas.Std.I16) =>\n                                                                  @Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I16 v)\n                                                                out)\n                                                              (NumConvSpec.checked\n                                                                (NumConvSpec.signedMin\n                                                                  (@OfNat.ofNat.{0} Nat (nat_lit 16)\n                                                                    (instOfNatNat (nat_lit 16))))\n                                                                (NumConvSpec.signedMax\n                                                                  (@OfNat.ofNat.{0} Nat (nat_lit 16)\n                                                                    (instOfNatNat (nat_lit 16))))\n                                                                (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I64 x))))\n                                                      (And\n                                                        (∀ (x : Aeneas.Std.I128),\n                                                          @Exists.{1} (Option.{0} Aeneas.Std.I16)\n                                                            fun (out : Option.{0} Aeneas.Std.I16) =>\n                                                            And\n                                                              (@Eq.{1}\n                                                                (Aeneas.Std.Result.{0} (Option.{0} Aeneas.Std.I16))\n                                                                (num_conv_verification_api.checked_truncate_i128_i16 x)\n                                                                (@Aeneas.Std.Result.ok.{0} (Option.{0} Aeneas.Std.I16)\n                                                                  out))\n                                                              (@Eq.{1} (Option.{0} Int)\n                                                                (@Option.map.{0, 0} Aeneas.Std.I16 Int\n                                                                  (fun (v : Aeneas.Std.I16) =>\n                                                                    @Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I16 v)\n                                                                  out)\n                                                                (NumConvSpec.checked\n                                                                  (NumConvSpec.signedMin\n                                                                    (@OfNat.ofNat.{0} Nat (nat_lit 16)\n                                                                      (instOfNatNat (nat_lit 16))))\n                                                                  (NumConvSpec.signedMax\n                                                                    (@OfNat.ofNat.{0} Nat (nat_lit 16)\n                                                                      (instOfNatNat (nat_lit 16))))\n                                                                  (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I128\n                                                                    x))))\n                                                        (And\n                                                          (∀ (x : Aeneas.Std.Isize),\n                                                            @Exists.{1} (Option.{0} Aeneas.Std.I16)\n                                                              fun (out : Option.{0} Aeneas.Std.I16) =>\n                                                              And\n                                                                (@Eq.{1}\n                                                                  (Aeneas.Std.Result.{0} (Option.{0} Aeneas.Std.I16))\n                                                                  (num_conv_verification_api.checked_truncate_isize_i16\n                                                                    x)\n                                                                  (@Aeneas.Std.Result.ok.{0} (Option.{0} Aeneas.Std.I16)\n                                                                    out))\n                                                                (@Eq.{1} (Option.{0} Int)\n                                                                  (@Option.map.{0, 0} Aeneas.Std.I16 Int\n                                                                    (fun (v : Aeneas.Std.I16) =>\n                                                                      @Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I16\n                                                                        v)\n                                                                    out)\n                                                                  (NumConvSpec.checked\n                                                                    (NumConvSpec.signedMin\n                                                                      (@OfNat.ofNat.{0} Nat (nat_lit 16)\n                                                                        (instOfNatNat (nat_lit 16))))\n                                                                    (NumConvSpec.signedMax\n                                                                      (@OfNat.ofNat.{0} Nat (nat_lit 16)\n                                                                        (instOfNatNat (nat_lit 16))))\n                                                                    (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.Isize\n                                                                      x))))\n                                                          (And\n                                                            (∀ (x : Aeneas.Std.I32),\n                                                              @Exists.{1} (Option.{0} Aeneas.Std.I32)\n                                                                fun (out : Option.{0} Aeneas.Std.I32) =>\n                                                                And\n                                                                  (@Eq.{1}\n                                                                    (Aeneas.Std.Result.{0} (Option.{0} Aeneas.Std.I32))\n                                                                    (num_conv_verification_api.checked_truncate_i32_i32\n                                                                      x)\n                                                                    (@Aeneas.Std.Result.ok.{0}\n                                                                      (Option.{0} Aeneas.Std.I32) out))\n                                                                  (@Eq.{1} (Option.{0} Int)\n                                                                    (@Option.map.{0, 0} Aeneas.Std.I32 Int\n                                                                      (fun (v : Aeneas.Std.I32) =>\n                                                                        @Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I32\n                                                                          v)\n                                                                      out)\n                                                                    (NumConvSpec.checked\n                                                                      (NumConvSpec.signedMin\n                                                                        (@OfNat.ofNat.{0} Nat (nat_lit 32)\n                                                                          (instOfNatNat (nat_lit 32))))\n                                                                      (NumConvSpec.signedMax\n                                                                        (@OfNat.ofNat.{0} Nat (nat_lit 32)\n                                                                          (instOfNatNat (nat_lit 32))))\n                                                                      (@Aeneas.Std.IScalar.val Aeneas.Std.IScalarTy.I32\n                                                                        x))))\n                                                            (And\n                                                              (∀ (x : Aeneas.Std.I64),\n                                                                @Exists.{1} (Option.{0} Aeneas.Std.I32)\n                                                                  fun (out : Option.{0} Aeneas.Std.I32) =>\n                                                                  And\n                                                                    (@Eq.{1}\n                                                                      (Aeneas.Std.Result.{0}\n                                                                        (Option.{0} Aeneas.Std.I32))\n                                                                      (num_conv_verification_api.checked_truncate_i64_i32\n                                                                        x)\n                                                                      (@Aeneas.Std.Result.ok.{0}\n                                                                        (Option.{0} Aeneas.Std.I32) out))\n                                                                    (@Eq.{1} (Option.{0} Int)\n                                                                      (@Option.map.{0, 0} Aeneas.Std.I32 Int\n                                                                        (fun (v : Aeneas.Std.I32) =>\n                                                                          @Aeneas.Std.IScalar.val\n                                                                            Aeneas.Std.IScalarTy.I32 v)\n                                                                        out)\n                                                                      (NumConvSpec.checked\n                                                                        (NumConvSpec.signedMin\n                                                                          (@OfNat.ofNat.{0} Nat (nat_lit 32)\n                                                                            (instOfNatNat (nat_lit 32))))\n                                                                        (NumConvSpec.signedMax\n                                                                          (@OfNat.ofNat.{0} Nat (nat_lit 32)\n                                                                            (instOfNatNat (nat_lit 32))))\n                                                                        (@Aeneas.Std.IScalar.val\n                                                                          Aeneas.Std.IScalarTy.I64 x))))\n                                                              (And\n                                                                (∀ (x : Aeneas.Std.I128),\n                                                                  @Exists.{1} (Option.{0} Aeneas.Std.I32)\n                                                                    fun (out : Option.{0} Aeneas.Std.I32) =>\n                                                                    And\n                                                                      (@Eq.{1}\n                                                                        (Aeneas.Std.Result.{0}\n                                                                          (Option.{0} Aeneas.Std.I32))\n                                                                        (num_conv_verification_api.checked_truncate_i128_i32\n                                                                          x)\n                                                                        (@Aeneas.Std.Result.ok.{0}\n                                                                          (Option.{0} Aeneas.Std.I32) out))\n                                                                      (@Eq.{1} (Option.{0} Int)\n                                                                        (@Option.map.{0, 0} Aeneas.Std.I32 Int\n                                                                          (fun (v : Aeneas.Std.I32) =>\n                                                                            @Aeneas.Std.IScalar.val\n                                                                              Aeneas.Std.IScalarTy.I32 v)\n                                                                          out)\n                                                                        (NumConvSpec.checked\n                                                                          (NumConvSpec.signedMin\n                                                                            (@OfNat.ofNat.{0} Nat (nat_lit 32)\n                                                                              (instOfNatNat (nat_lit 32))))\n                                                                          (NumConvSpec.signedMax\n                                                                            (@OfNat.ofNat.{0} Nat (nat_lit 32)\n                                                                              (instOfNatNat (nat_lit 32))))\n                                                                          (@Aeneas.Std.IScalar.val\n                                                                            Aeneas.Std.IScalarTy.I128 x))))\n                                                                (And\n                                                                  (∀ (x : Aeneas.Std.I64),\n                                                                    @Exists.{1} (Option.{0} Aeneas.Std.I64)\n                                                                      fun (out : Option.{0} Aeneas.Std.I64) =>\n                                                                      And\n                                                                        (@Eq.{1}\n                                                                          (Aeneas.Std.Result.{0}\n                                                                            (Option.{0} Aeneas.Std.I64))\n                                                                          (num_conv_verification_api.checked_truncate_i64_i64\n                                                                            x)\n                                                                          (@Aeneas.Std.Result.ok.{0}\n                                                                            (Option.{0} Aeneas.Std.I64) out))\n                                                                        (@Eq.{1} (Option.{0} Int)\n                                                                          (@Option.map.{0, 0} Aeneas.Std.I64 Int\n                                                                            (fun (v : Aeneas.Std.I64) =>\n                                                                              @Aeneas.Std.IScalar.val\n                                                                                Aeneas.Std.IScalarTy.I64 v)\n                                                                            out)\n                                                                          (NumConvSpec.checked\n                                                                            (NumConvSpec.signedMin\n                                                                              (@OfNat.ofNat.{0} Nat (nat_lit 64)\n                                                                                (instOfNatNat (nat_lit 64))))\n                                                                            (NumConvSpec.signedMax\n                                                                              (@OfNat.ofNat.{0} Nat (nat_lit 64)\n                                                                                (instOfNatNat (nat_lit 64))))\n                                                                            (@Aeneas.Std.IScalar.val\n                                                                              Aeneas.Std.IScalarTy.I64 x))))\n                                                                  (And\n                                                                    (∀ (x : Aeneas.Std.I128),\n                                                                      @Exists.{1} (Option.{0} Aeneas.Std.I64)\n                                                                        fun (out : Option.{0} Aeneas.Std.I64) =>\n                                                                        And\n                                                                          (@Eq.{1}\n                                                                            (Aeneas.Std.Result.{0}\n                                                                              (Option.{0} Aeneas.Std.I64))\n                                                                            (num_conv_verification_api.checked_truncate_i128_i64\n                                                                              x)\n                                                                            (@Aeneas.Std.Result.ok.{0}\n                                                                              (Option.{0} Aeneas.Std.I64) out))\n                                                                          (@Eq.{1} (Option.{0} Int)\n                                                                            (@Option.map.{0, 0} Aeneas.Std.I64 Int\n                                                                              (fun (v : Aeneas.Std.I64) =>\n                                                                                @Aeneas.Std.IScalar.val\n                                                                                  Aeneas.Std.IScalarTy.I64 v)\n                                                                              out)\n                                                                            (NumConvSpec.checked\n                                                                              (NumConvSpec.signedMin\n                                                                                (@OfNat.ofNat.{0} Nat (nat_lit 64)\n                                                                                  (instOfNatNat (nat_lit 64))))\n                                                                              (NumConvSpec.signedMax\n                                                                                (@OfNat.ofNat.{0} Nat (nat_lit 64)\n                                                                                  (instOfNatNat (nat_lit 64))))\n                                                                              (@Aeneas.Std.IScalar.val\n                                                                                Aeneas.Std.IScalarTy.I128 x))))\n                                                                    (And\n                                                                      (∀ (x : Aeneas.Std.I128),\n                                                                        @Exists.{1} (Option.{0} Aeneas.Std.I128)\n                                                                          fun (out : Option.{0} Aeneas.Std.I128) =>\n                                                                          And\n                                                                            (@Eq.{1}\n                                                                              (Aeneas.Std.Result.{0}\n                                                                                (Option.{0} Aeneas.Std.I128))\n                                                                              (num_conv_verification_api.checked_truncate_i128_i128\n                                                                                x)\n                                                                              (@Aeneas.Std.Result.ok.{0}\n                                                                                (Option.{0} Aeneas.Std.I128) out))\n                                                                            (@Eq.{1} (Option.{0} Int)\n                                                                              (@Option.map.{0, 0} Aeneas.Std.I128 Int\n                                                                                (fun (v : Aeneas.Std.I128) =>\n                                                                                  @Aeneas.Std.IScalar.val\n                                                                                    Aeneas.Std.IScalarTy.I128 v)\n                                                                                out)\n                                                                              (NumConvSpec.checked\n                                                                                (NumConvSpec.signedMin\n                                                                                  (@OfNat.ofNat.{0} Nat (nat_lit 128)\n                                                                                    (instOfNatNat (nat_lit 128))))\n                                                                                (NumConvSpec.signedMax\n                                                                                  (@OfNat.ofNat.{0} Nat (nat_lit 128)\n                                                                                    (instOfNatNat (nat_lit 128))))\n                                                                                (@Aeneas.Std.IScalar.val\n                                                                                  Aeneas.Std.IScalarTy.I128 x))))\n                                                                      (∀ (x : Aeneas.Std.Isize),\n                                                                        @Exists.{1} (Option.{0} Aeneas.Std.Isize)\n                                                                          fun (out : Option.{0} Aeneas.Std.Isize) =>\n                                                                          And\n                                                                            (@Eq.{1}\n                                                                              (Aeneas.Std.Result.{0}\n                                                                                (Option.{0} Aeneas.Std.Isize))\n                                                                              (num_conv_verification_api.checked_truncate_isize_isize\n                                                                                x)\n                                                                              (@Aeneas.Std.Result.ok.{0}\n                                                                                (Option.{0} Aeneas.Std.Isize) out))\n                                                                            (@Eq.{1} (Option.{0} Int)\n                                                                              (@Option.map.{0, 0} Aeneas.Std.Isize Int\n                                                                                (fun (v : Aeneas.Std.Isize) =>\n                                                                                  @Aeneas.Std.IScalar.val\n                                                                                    Aeneas.Std.IScalarTy.Isize v)\n                                                                                out)\n                                                                              (NumConvSpec.checked\n                                                                                (NumConvSpec.signedMin\n                                                                                  (Aeneas.Std.IScalarTy.numBits\n                                                                                    Aeneas.Std.IScalarTy.Isize))\n                                                                                (NumConvSpec.signedMax\n                                                                                  (Aeneas.Std.IScalarTy.numBits\n                                                                                    Aeneas.Std.IScalarTy.Isize))\n                                                                                (@Aeneas.Std.IScalar.val\n                                                                                  Aeneas.Std.IScalarTy.Isize\n                                                                                  x))))))))))))))))))))))))))))))))))))))","theorem":"NumConvProof.checked_truncate_all_spec","translation_rerun":false,"version":1}

=== stderr ===
Environment

The source and tool revisions, verification configuration and local evidence
are recorded in the num-conv/0.2.2 workspace. See its results.md for current
status and native test details.

What is trusted

The argument depends on the Aeneas/Charon translation and its integer, cast and
execution models corresponding to Rust, and on Lean and its kernel. The harness
loads the unchanged release source as a module and invokes its public methods;
correspondence with the ordinarily linked release is not separately proved.

Technical limitations

The extraction target is aarch64-apple-darwin; this result does not establish
behavior on another
pointer width or target. Native tests are separate from the formal contracts.

Tool limitations

Lean backend only, requiring cargo-proofs 0.4.0 or later. The version identifies the official Aeneas Git revision pinned in lake-manifest.json (backends/lean); this revision uses Lean 4.35.0. The recorder checks committed Lean theorem declarations and permits only propext, Classical.choice, and Quot.sound as transitive axioms. It rejects sorryAx and custom axioms, including axiomatized external models. Charon/Aeneas extraction is not rerun. The author must review that the committed functional model matches the recorded Rust source, that the named theorem corresponds to the public API, and that the reported precondition matches the theorem. A checked theorem alone does not establish those links or the adequacy of the specification. The current adapter records the default Cargo configuration, with ordinary Lean module paths and a pinned official Git dependency. Other backends, custom Lake source directories, and local-path Aeneas dependencies are unsupported. See https://proofs.rs/book/aeneas.html and https://github.com/AeneasVerif/aeneas/tree/be86ab0f1989d04944292b345b24c435be3ad10a.

Updated 2026-10-16 00:00 UTC

Aeneas be86ab0f1989d04944292b345b24c435be3ad10a — version details

Dependencies (0)

No direct dependencies.

Comments (0)

No comments.

Sign in to comment.