val known_certificateStatusType_as_enum_key
      (x:
          certificateStatusType
            { norm [delta; zeta; iota; primops]
                (LP.list_mem x (LP.list_map fst certificateStatusType_enum)) ==
              true })
    : LP.enum_key certificateStatusType_enum
val known_certificateStatusType_as_enum_key
      (x:
          certificateStatusType
            { norm [delta; zeta; iota; primops]
                (LP.list_mem x (LP.list_map fst certificateStatusType_enum)) ==
              true })
    : LP.enum_key certificateStatusType_enum
let known_certificateStatusType_as_enum_key
  (x: certificateStatusType { norm [delta; zeta; iota; primops] (LP.list_mem x (LP.list_map fst certificateStatusType_enum)) == true })
  : LP.enum_key certificateStatusType_enum =
  [@inline_let] let _ = norm_spec [delta; zeta; iota; primops] (LP.list_mem x (LP.list_map fst certificateStatusType_enum)) in x
module MiTLS.Parsers.CertificateStatus

(* This file has been automatically generated by EverParse. *)
open FStar.Bytes
module U8 = FStar.UInt8
module U16 = FStar.UInt16
module U32 = FStar.UInt32
module U64 = FStar.UInt64
module LP = LowParse.Spec
module LT = LowParse.TacLib
module LS = LowParse.SLow
module LSZ = LowParse.SLow
module LPI = LowParse.Spec.AllIntegers
module LL = LowParse.Low
module L = FStar.List.Tot
module B = LowStar.Buffer
module BY = FStar.Bytes
module HS = FStar.HyperStack
module HST = FStar.HyperStack.ST

#reset-options "--using_facts_from '* -FStar.Tactics -FStar.Reflection' --z3rlimit 16 --z3cliopt smt.arith.nl=false --max_fuel 2 --max_ifuel 2"

friend MiTLS.Parsers.CertificateStatusType

// Need high Z3 limits for large sum types
#set-options "--z3rlimit 60"
/
prims.fst.checked MiTLS.Parsers.CertificateStatusType.fst.checked LowStar.Buffer.fst.checked LowParse.TacLib.fst.checked LowParse.Spec.AllIntegers.fst.checked LowParse.Spec.fst.checked LowParse.SLow.fst.checked LowParse.Low.fst.checked FStar.UInt8.fsti.checked FStar.UInt64.fsti.checked FStar.UInt32.fsti.checked FStar.UInt16.fsti.checked FStar.Tactics.Effect.fsti.checked FStar.Seq.fst.checked FStar.Pervasives.fsti.checked FStar.List.Tot.fst.checked FStar.HyperStack.ST.fsti.checked FStar.HyperStack.fst.checked FStar.Bytes.fsti.checked
MiTLS.Parsers.CertificateStatus.fst

    x:
      MiTLS.Parsers.CertificateStatusType.certificateStatusType
        { FStar.Pervasives.norm [
              FStar.Pervasives.delta;
              FStar.Pervasives.zeta;
              FStar.Pervasives.iota;
              FStar.Pervasives.primops
            ]
            (LowParse.Spec.Enum.list_mem x
                (LowParse.Spec.Enum.list_map FStar.Pervasives.Native.fst
                    MiTLS.Parsers.CertificateStatusType.certificateStatusType_enum)) ==
          true }
  -> LowParse.Spec.Enum.enum_key MiTLS.Parsers.CertificateStatusType.certificateStatusType_enum
MiTLS.Parsers.CertificateStatusType.certificateStatusType Prims.eq2 Prims.bool FStar.Pervasives.norm Prims.Cons FStar.Pervasives.norm_step FStar.Pervasives.delta FStar.Pervasives.zeta FStar.Pervasives.iota FStar.Pervasives.primops Prims.Nil LowParse.Spec.Enum.list_mem LowParse.Spec.Enum.list_map FStar.Pervasives.Native.tuple2 FStar.UInt8.t FStar.Pervasives.Native.fst MiTLS.Parsers.CertificateStatusType.certificateStatusType_enum Prims.unit FStar.Pervasives.norm_spec Prims.l_iff FStar.List.Tot.Base.mem LowParse.Spec.Enum.enum_key
let known_certificateStatusType_as_enum_key
      (x:
          certificateStatusType
            { norm [delta; zeta; iota; primops]
                (LP.list_mem x (LP.list_map fst certificateStatusType_enum)) ==
              true })
    : LP.enum_key certificateStatusType_enum =
  
[@@ inline_let ]let _ =
  norm_spec [delta; zeta; iota; primops]
    (LP.list_mem x (LP.list_map fst certificateStatusType_enum))
in
x