val lemma_serialize_x509_version_payload_size_exact
  (x: x509_version_payload_t)
: Lemma (length_of_opaque_serialization serialize_x509_version_payload x == 3)
val lemma_serialize_x509_version_payload_size_exact
  (x: x509_version_payload_t)
: Lemma (length_of_opaque_serialization serialize_x509_version_payload x == 3)
let lemma_serialize_x509_version_payload_size_exact x
= lemma_serialize_asn1_integer_TLV_size x;
  assert (length_of_opaque_serialization serialize_x509_version_payload x == length_of_asn1_primitive_TLV #INTEGER x)
module X509.BasicFields.Version

open LowParse.Low.Base

open ASN1.Spec
open ASN1.Low

open X509.Base

open FStar.Integers

#set-options "--z3rlimit 32 --fuel 0 --ifuel 0"

let parse_x509_version_payload
= parse_asn1_TLV_of_type INTEGER
  `parse_filter`
  filter_x509_version

let serialize_x509_version_payload
= serialize_asn1_TLV_of_type INTEGER
  `serialize_filter`
  filter_x509_version
/
X509.Base.fst.checked prims.fst.checked LowParse.Low.Base.fst.checked FStar.UInt8.fsti.checked FStar.Pervasives.fsti.checked FStar.Integers.fst.checked FStar.Int32.fsti.checked ASN1.Spec.fst.checked ASN1.Low.fst.checked
X509.BasicFields.Version.fst
x: X509.BasicFields.Version.x509_version_payload_t
  -> FStar.Pervasives.Lemma
    (ensures
      ASN1.Spec.Base.length_of_opaque_serialization X509.BasicFields.Version.serialize_x509_version_payload
        x ==
      3)
X509.BasicFields.Version.x509_version_payload_t Prims._assert Prims.eq2 Prims.nat ASN1.Spec.Base.length_of_opaque_serialization X509.BasicFields.Version.parse_x509_version_payload_kind X509.BasicFields.Version.parse_x509_version_payload X509.BasicFields.Version.serialize_x509_version_payload ASN1.Spec.TLV.length_of_asn1_primitive_TLV ASN1.Base.INTEGER Prims.unit ASN1.Spec.Value.INTEGER.lemma_serialize_asn1_integer_TLV_size
let lemma_serialize_x509_version_payload_size_exact x =
  
lemma_serialize_asn1_integer_TLV_size x;
assert (length_of_opaque_serialization serialize_x509_version_payload x ==
    length_of_asn1_primitive_TLV #INTEGER x)