diff --git a/engine/backends/coq/coq/coq_backend.ml b/engine/backends/coq/coq/coq_backend.ml index 0040f9cbc..d99821928 100644 --- a/engine/backends/coq/coq/coq_backend.ml +++ b/engine/backends/coq/coq/coq_backend.ml @@ -94,8 +94,8 @@ module CoqNamePolicy = struct let named_field_prefix = Some `TypeName let struct_constructor_prefix = Some "Build_t_" - let enum_constructor_prefix = Some "AABBCC" - let union_constructor_prefix = Some "DDEEFF" + (* let enum_constructor_prefix = Some "AABBCC" *) + (* let union_constructor_prefix = Some "DDEEFF" *) let prefix__constructors_with_type = true let prefix_struct_constructors_with_type = true let prefix_enum_constructors_with_type = true @@ -126,6 +126,10 @@ let hardcoded_coq_headers = module BasePrinter = Generic_printer.Make (InputLanguage) +let module_name_from_path path = + String.concat ~sep:"_" + (List.map ~f:(map_first_letter String.uppercase) path) + module Make (Default : sig val default : string -> string @@ -193,6 +197,9 @@ struct object (self) inherit BasePrinter.base + val concrete_ident_view : (module Concrete_ident.RENDER_API) = + (module Concrete_ident.MakeRenderAPI (CoqNamePolicy)) + method private primitive_to_string (id : primitive_ident) : document = match id with | Deref -> default_document_for "(TODO: Deref)" @@ -435,7 +442,16 @@ struct method impl_ident ~goal ~name:_ = goal#p method impl_item ~ii_span:_ ~ii_generics:_ ~ii_v ~ii_ident ~ii_attrs:_ = - ii_ident#p ^^ space ^^ string ":=" ^^ space ^^ ii_v#p ^^ semi + string + ((* if local *) + (* then (RenderId.render ii_ident#v).name *) + (* else *) + match String.chop_prefix ~prefix:"impl__" (RenderId.render ii_ident#v).name with + | Some chopped -> + chopped + | None -> (RenderId.render ii_ident#v).name + ) ^^ + (* ii_ident#v ^^ *) space ^^ string ":=" ^^ space ^^ ii_v#p ^^ semi method impl_item'_IIFn ~body ~params = if List.length params == 0 then body#p @@ -570,7 +586,7 @@ struct if Attrs.is_erased super.attrs then empty else CoqNotation.instance - (name#p ^^ string "_" + (string (RenderId.render name#v).name ^^ string "_" ^^ string (Int.to_string ([%hash: item] super))) generics#p [] (name#p ^^ concat_map_with ~pre:space (fun x -> parens x#p) args) @@ -579,8 +595,11 @@ struct (concat_map_with ~pre: (break 1 - ^^ string ("implaabbcc_" ^ (RenderId.render name#v).name) - ^^ !^"_") + ^^ string (module_name_from_path (RenderId.render name#v).path) ^^ !^"." + ^^ string (match String.chop_prefix ~prefix:"t_" (RenderId.render name#v).name with + | Some chopped -> chopped + | _ -> (RenderId.render name#v).name) + ^^ !^"__") (fun x -> x#p) items) ^^ break 1)) @@ -996,25 +1015,22 @@ struct arguments ^^ space ^^ string "->" ^^ space ^^ string "_" + method concrete_ident ~local (id : Concrete_ident_render_sig.rendered) : + document = + string + (if local + then id.name + else + module_name_from_path id.path ^ "." ^ id.name + (* String.concat ~sep:self#module_path_separator *) + (* (id.path) ^ self#module_name_separator ^ [ id.name ] *) + ) + (** [concrete_ident ~local id] prints a name without path if [local] is + true, otherwise it prints the full path, separated by + `module_path_separator`. *) + (* method quote (quote : quote) : document = empty *) method module_path_separator = "." - - method concrete_ident ~local:_ id : document = - match id.name with - | "not" -> !^"negb" - | "eq" -> !^"PartialEq_f_eq" - | "lt" -> !^"PartialOrd_f_lt" - | "gt" -> !^"PartialOrd_f_gt" - | "le" -> !^"PartialOrd_f_le" - | "ge" -> !^"PartialOrd_f_ge" - | "rem" -> !^"Rem_f_rem" - | "add" -> !^"Add_f_add" - | "sub" -> !^"Sub_f_sub" - | "mul" -> !^"Mul_f_mul" - | "div" -> !^"Div_f_div" - | "index" -> !^"Index_f_index" - | "f_to_string" -> CoqNotation.comment !^"f_to_string" - | x -> !^x end let new_printer : BasePrinter.finalized_printer = @@ -1046,10 +1062,7 @@ let translate m _ ~bundles:_ (items : AST.item list) : Types.file list = in (groupped_items |> List.map ~f:(fun (ns, items) -> - let mod_name = - String.concat ~sep:"_" - (List.map ~f:(map_first_letter String.uppercase) ns) - in + let mod_name = module_name_from_path ns in let sourcemap, contents = let annotated = my_printer#entrypoint_modul items in let open Generic_printer.AnnotatedString in diff --git a/engine/lib/concrete_ident/concrete_ident.ml b/engine/lib/concrete_ident/concrete_ident.ml index 70d50e82f..bbefe9c2d 100644 --- a/engine/lib/concrete_ident/concrete_ident.ml +++ b/engine/lib/concrete_ident/concrete_ident.ml @@ -578,16 +578,13 @@ module MakeRenderAPI (NP : NAME_POLICY) : RENDER_API = struct * Types.impl_infos option*) | `AssociatedItem ((`Type n | `Const n | `Fn n), `Impl (d, `Trait, impl_infos)) - when not final -> + when (not final) || NP.prefix_associated_item_with_trait_name -> Concat - (prefix "f" (dstr n), render_impl_name ~always:true d impl_infos) + ( render_impl_name ~always:(not final) d impl_infos, + prefix "f" (dstr n) ) (* Print the name of an associated item in a trait impl *) - | `AssociatedItem - ((`Type n | `Const n | `Fn n), `Impl (d, `Trait, impl_infos)) -> - if NP.prefix_associated_item_with_trait_name then - Concat - (render_impl_name ~always:true d impl_infos, prefix "f" (dstr n)) - else prefix "f" (dstr n) + | `AssociatedItem ((`Type n | `Const n | `Fn n), `Impl (_, `Trait, _)) -> + prefix "f" (dstr n) | `AssociatedItem ((`Type n | `Const n | `Fn n), `Trait (trait_name, _)) -> if NP.prefix_associated_item_with_trait_name then diff --git a/examples/coverage/proofs/coq/extraction/Coverage.v b/examples/coverage/proofs/coq/extraction/Coverage.v new file mode 100644 index 000000000..36026ddcd --- /dev/null +++ b/examples/coverage/proofs/coq/extraction/Coverage.v @@ -0,0 +1,16 @@ +(* File automatically generated by Hacspec *) +From Coq Require Import ZArith. +Require Import List. +Import List.ListNotations. +Open Scope Z_scope. +Open Scope bool_scope. +Require Import Ascii. +Require Import String. +Require Import Coq.Floats.Floats. +From RecordUpdate Require Import RecordSet. +Import RecordSetNotations. +From Core Require Import Core. + + + +(* NotImplementedYet *) diff --git a/examples/coverage/proofs/coq/extraction/Coverage_Test_enum.v b/examples/coverage/proofs/coq/extraction/Coverage_Test_enum.v new file mode 100644 index 000000000..b233ff7da --- /dev/null +++ b/examples/coverage/proofs/coq/extraction/Coverage_Test_enum.v @@ -0,0 +1,121 @@ +(* File automatically generated by Hacspec *) +From Coq Require Import ZArith. +Require Import List. +Import List.ListNotations. +Open Scope Z_scope. +Open Scope bool_scope. +Require Import Ascii. +Require Import String. +Require Import Coq.Floats.Floats. +From RecordUpdate Require Import RecordSet. +Import RecordSetNotations. +From Core Require Import Core. + +(* NotImplementedYet *) + +Record C_test__Foo_Qux_record (v_T : Type) (v_N : t_usize) `{Core_Marker.t_Sized (v_T)} : Type := + { + C_test__Foo_Qux_test__f_Foo_x : v_T; + C_test__Foo_Qux_test__f_Foo_y : t_Array (v_T) (v_N); + C_test__Foo_Qux_test__f_Foo_z : t_u8; + }. +Arguments Build_C_test__Foo_Qux_record {_} {_} {_}. +Arguments C_test__Foo_Qux_test__f_Foo_x {_} {_} {_}. +Arguments C_test__Foo_Qux_test__f_Foo_y {_} {_} {_}. +Arguments C_test__Foo_Qux_test__f_Foo_z {_} {_} {_}. +#[export] Instance settable_C_test__Foo_Qux_record `{v_T : Type} `{v_N : t_usize} `{Core_Marker.t_Sized (v_T)} : Settable _ := + settable! (Build_C_test__Foo_Qux_record (v_T := v_T) (v_N := v_N)) . +Inductive test__t_Foo (v_T : Type) (v_N : t_usize) `{Core_Marker.t_Sized (v_T)} : Type := +| C_test__Foo_Bar : t_u8 -> _ +| C_test__Foo_Baz +| C_test__Foo_Qux : C_test__Foo_Qux_record v_T v_N -> _. +Arguments C_test__Foo_Bar {_} {_} {_}. +Arguments C_test__Foo_Baz {_} {_} {_}. +Arguments C_test__Foo_Qux {_} {_} {_}. + +Inductive test__t_AnimalA : Type := +| C_test__AnimalA_Dog +| C_test__AnimalA_Cat. + + + +Definition test__t_AnimalA_cast_to_repr (x : test__t_AnimalA) : t_isize := + match x with + | C_test__AnimalA_Dog => + (0 : t_isize) + | C_test__AnimalA_Cat => + (1 : t_isize) + end. + +Record C_test__AnimalB_Cat_record : Type := + { + C_test__AnimalB_Cat_test__f_AnimalB_name : Alloc_String.t_String; + C_test__AnimalB_Cat_test__f_AnimalB_weight : float; + }. + + + +#[export] Instance settable_C_test__AnimalB_Cat_record : Settable _ := + settable! (Build_C_test__AnimalB_Cat_record) . +Inductive test__t_AnimalB : Type := +| C_test__AnimalB_Dog : Alloc_String.t_String -> float -> _ +| C_test__AnimalB_Cat : C_test__AnimalB_Cat_record -> _. + + + +Record C_test__Examples_StructLike_record : Type := + { + C_test__Examples_StructLike_test__f_Examples_value : t_i32; + }. + + +#[export] Instance settable_C_test__Examples_StructLike_record : Settable _ := + settable! (Build_C_test__Examples_StructLike_record) . +Inductive test__t_Examples : Type := +| C_test__Examples_UnitLike +| C_test__Examples_TupleLike : t_i32 -> _ +| C_test__Examples_StructLike : C_test__Examples_StructLike_record -> _. + + + + +Definition test '(_ : unit) : unit := + let x : test__t_Foo ((t_u8)) ((12 : t_usize)) := C_test__Foo_Baz in + let _ := tt in + let a : test__t_AnimalA := C_test__AnimalA_Dog in + let a := C_test__AnimalA_Cat in + let _ := tt in + let a : test__t_AnimalB := C_test__AnimalB_Dog (Alloc_String.ToString__f_to_string (("Cocoa"%string : string))) ((37.2%float : float)) in + let a := C_test__AnimalB_Cat {| C_test__AnimalB_Cat_test__f_AnimalB_name := (Alloc_String.ToString__f_to_string (("Spotty"%string : string))); C_test__AnimalB_Cat_test__f_AnimalB_weight := ((2.7%float : float)) |} in + let _ := tt in + let x := C_test__Examples_UnitLike in + let x := C_test__Examples_UnitLike in + let y := C_test__Examples_TupleLike ((123 : t_i32)) in + let y := C_test__Examples_TupleLike ((123 : t_i32)) in + let z := C_test__Examples_StructLike {| C_test__Examples_StructLike_test__f_Examples_value := ((123 : t_i32)) |} in + let _ := tt in + tt. + +Record C_test__Enum_Struct_record : Type := + { + C_test__Enum_Struct_test__f_Enum_a : t_u8; + C_test__Enum_Struct_test__f_Enum_b : t_u16; + }. + + + +#[export] Instance settable_C_test__Enum_Struct_record : Settable _ := + settable! (Build_C_test__Enum_Struct_record) . +Inductive test__t_Enum : Type := +| C_test__Enum_Unit +| C_test__Enum_Tuple : t_u16 -> _ +| C_test__Enum_Struct : C_test__Enum_Struct_record -> _. + + + + +Definition test__Enum_Unit__anon_const_0 : t_u8 := + (3 : t_u8). + +Definition test__Enum_Struct__anon_const_0 : t_u8 := + (1 : t_u8). diff --git a/examples/coverage/proofs/coq/extraction/Coverage_Test_primitives.v b/examples/coverage/proofs/coq/extraction/Coverage_Test_primitives.v new file mode 100644 index 000000000..fe7e69c06 --- /dev/null +++ b/examples/coverage/proofs/coq/extraction/Coverage_Test_primitives.v @@ -0,0 +1,35 @@ +(* File automatically generated by Hacspec *) +From Coq Require Import ZArith. +Require Import List. +Import List.ListNotations. +Open Scope Z_scope. +Open Scope bool_scope. +Require Import Ascii. +Require Import String. +Require Import Coq.Floats.Floats. +From RecordUpdate Require Import RecordSet. +Import RecordSetNotations. +From Core Require Import Core. + +(* NotImplementedYet *) + +Definition test_primtives '(_ : unit) : unit := + let _ : bool := (false : bool) in + let _ : bool := (true : bool) in + let _ : t_u8 := (12 : t_u8) in + let _ : t_u16 := (123 : t_u16) in + let _ : t_u32 := (1234 : t_u32) in + let _ : t_u64 := (12345 : t_u64) in + let _ : t_u128 := (123456 : t_u128) in + let _ : t_usize := (32 : t_usize) in + let _ : t_i8 := (-12 : t_i8) in + let _ : t_i16 := (123 : t_i16) in + let _ : t_i32 := (-1234 : t_i32) in + let _ : t_i64 := (12345 : t_i64) in + let _ : t_i128 := (123456 : t_i128) in + let _ : t_isize := (-32 : t_isize) in + let _ : float := (1.2%float : float) in + let _ : float := ((-1.23)%float : float) in + let _ : ascii := ("c"%char : ascii) in + let _ : string := ("hello world"%string : string) in + tt. diff --git a/examples/coverage/proofs/coq/extraction/Makefile b/examples/coverage/proofs/coq/extraction/Makefile new file mode 100644 index 000000000..07b55a111 --- /dev/null +++ b/examples/coverage/proofs/coq/extraction/Makefile @@ -0,0 +1,965 @@ +########################################################################## +## # The Rocq Prover / The Rocq Development Team ## +## v # Copyright INRIA, CNRS and contributors ## +## /dev/null 2>/dev/null; echo $$?)) +STDTIME?=command time -f $(TIMEFMT) +else +ifeq (0,$(shell gtime -f "" true >/dev/null 2>/dev/null; echo $$?)) +STDTIME?=gtime -f $(TIMEFMT) +else +STDTIME?=command time +endif +endif +else +STDTIME?=command time -f $(TIMEFMT) +endif + +COQBIN?= +ifneq (,$(COQBIN)) +# add an ending / +COQBIN:=$(COQBIN)/ +endif + +# Coq binaries +ROCQ ?= "$(COQBIN)rocq" +COQC ?= "$(COQBIN)rocq" c +COQTOP ?= "$(COQBIN)rocq" repl +COQCHK ?= "$(COQBIN)rocqchk" +COQNATIVE ?= "$(COQBIN)rocq" native-precompile +COQDEP ?= "$(COQBIN)rocq" dep +COQDOC ?= "$(COQBIN)rocq" doc +COQPP ?= "$(COQBIN)rocq" pp-mlg +COQMKFILE ?= "$(COQBIN)rocq" makefile +OCAMLLIBDEP ?= "$(COQBIN)ocamllibdep" + +# Timing scripts +COQMAKE_ONE_TIME_FILE ?= "$(COQCORELIB)/tools/make-one-time-file.py" +COQMAKE_BOTH_TIME_FILES ?= "$(COQCORELIB)/tools/make-both-time-files.py" +COQMAKE_BOTH_SINGLE_TIMING_FILES ?= "$(COQCORELIB)/tools/make-both-single-timing-files.py" +BEFORE ?= +AFTER ?= + +# OCaml binaries +CAMLC ?= "$(OCAMLFIND)" ocamlc -c +CAMLOPTC ?= "$(OCAMLFIND)" opt -c +CAMLLINK ?= "$(OCAMLFIND)" ocamlc -linkall +CAMLOPTLINK ?= "$(OCAMLFIND)" opt -linkall +CAMLDOC ?= "$(OCAMLFIND)" ocamldoc +CAMLDEP ?= "$(OCAMLFIND)" ocamldep -slash -ml-synonym .mlpack + +# DESTDIR is prepended to all installation paths +DESTDIR ?= + +# Debug builds, typically -g to OCaml, -debug to Rocq. +CAMLDEBUG ?= +COQDEBUG ?= + +# Extra packages to be linked in (as in findlib -package) +CAMLPKGS ?= +FINDLIBPKGS = -package rocq-runtime.plugins.ltac $(CAMLPKGS) + +# Option for making timing files +TIMING?= +# Option for changing sorting of timing output file +TIMING_SORT_BY ?= auto +# Option for changing the fuzz parameter on the output file +TIMING_FUZZ ?= 0 +# Option for changing whether to use real or user time for timing tables +TIMING_REAL?= +# Option for including the memory column(s) +TIMING_INCLUDE_MEM?= +# Option for sorting by the memory column +TIMING_SORT_BY_MEM?= +# Output file names for timed builds +TIME_OF_BUILD_FILE ?= time-of-build.log +TIME_OF_BUILD_BEFORE_FILE ?= time-of-build-before.log +TIME_OF_BUILD_AFTER_FILE ?= time-of-build-after.log +TIME_OF_PRETTY_BUILD_FILE ?= time-of-build-pretty.log +TIME_OF_PRETTY_BOTH_BUILD_FILE ?= time-of-build-both.log +TIME_OF_PRETTY_BUILD_EXTRA_FILES ?= - # also output to the command line + +TGTS ?= + +# Retro compatibility (DESTDIR is standard on Unix, DSTROOT is not) +ifdef DSTROOT +DESTDIR := $(DSTROOT) +endif + +# Substitution of the path by appending $(DESTDIR) if needed. +# The variable $(COQMF_WINDRIVE) can be needed for Cygwin environments. +windrive_path = $(if $(COQMF_WINDRIVE),$(subst $(COQMF_WINDRIVE),/,$(1)),$(1)) +destination_path = $(if $(DESTDIR),$(DESTDIR)/$(call windrive_path,$(1)),$(1)) + +# Installation paths of libraries and documentation. +COQLIBINSTALL ?= $(call destination_path,$(COQLIB)/user-contrib) +COQDOCINSTALL ?= $(call destination_path,$(DOCDIR)/coq/user-contrib) +COQPLUGININSTALL ?= $(call destination_path,$(COQCORELIB)/..) +COQTOPINSTALL ?= $(call destination_path,$(COQLIB)/toploop) # FIXME: Unused variable? + +# findlib files installation +FINDLIBPREINST= mkdir -p "$(COQPLUGININSTALL)/" +FINDLIBDESTDIR= -destdir "$(COQPLUGININSTALL)/" + +# we need to move out of sight $(METAFILE) otherwise findlib thinks the +# package is already installed +findlib_install = \ + $(HIDE)if [ "$(METAFILE)" ]; then \ + $(FINDLIBPREINST) && \ + mv "$(METAFILE)" "$(METAFILE).skip" ; \ + "$(OCAMLFIND)" install $(2) $(FINDLIBDESTDIR) $(FINDLIBPACKAGE) $(1); \ + rc=$$?; \ + mv "$(METAFILE).skip" "$(METAFILE)"; \ + exit $$rc; \ + fi +findlib_remove = \ + $(HIDE)if [ ! -z "$(METAFILE)" ]; then\ + "$(OCAMLFIND)" remove $(FINDLIBDESTDIR) $(FINDLIBPACKAGE); \ + fi + + +########## End of parameters ################################################## +# What follows may be relevant to you only if you need to +# extend this Makefile. If so, look for 'Extension point' here and +# put in Makefile.local double colon rules accordingly. +# E.g. to perform some work after the all target completes you can write +# +# post-all:: +# echo "All done!" +# +# in Makefile.local +# +############################################################################### + + + + +# Flags ####################################################################### +# +# We define a bunch of variables combining the parameters. +# To add additional flags to coq, coqchk or coqdoc, set the +# {COQ,COQCHK,COQDOC}EXTRAFLAGS variable to whatever you want to add. +# To overwrite the default choice and set your own flags entirely, set the +# {COQ,COQCHK,COQDOC}FLAGS variable. + +SHOW := $(if $(VERBOSE),@true "",@echo "") +HIDE := $(if $(VERBOSE),,@) + +TIMER=$(if $(TIMED), $(STDTIME), $(TIMECMD)) + +OPT?= + +# The DYNLIB variable is used by "coqdep -dyndep var" in .v.d +ifeq '$(OPT)' '-byte' +USEBYTE:=true +DYNLIB:=.cma +else +USEBYTE:= +DYNLIB:=.cmxs +endif + +# these variables are meant to be overridden if you want to add *extra* flags +COQEXTRAFLAGS?= +COQCHKEXTRAFLAGS?= +COQDOCEXTRAFLAGS?= + +# Find the last argument of the form "-native-compiler FLAG" +COQUSERNATIVEFLAG:=$(strip \ +$(subst -native-compiler-,,\ +$(lastword \ +$(filter -native-compiler-%,\ +$(subst -native-compiler ,-native-compiler-,\ +$(strip $(COQEXTRAFLAGS))))))) + +COQFILTEREDEXTRAFLAGS:=$(strip \ +$(filter-out -native-compiler-%,\ +$(subst -native-compiler ,-native-compiler-,\ +$(strip $(COQEXTRAFLAGS))))) + +COQACTUALNATIVEFLAG:=$(lastword $(COQMF_COQ_NATIVE_COMPILER_DEFAULT) $(COQMF_COQPROJECTNATIVEFLAG) $(COQUSERNATIVEFLAG)) + +ifeq '$(COQACTUALNATIVEFLAG)' 'yes' + COQNATIVEFLAG="-w" "-deprecated-native-compiler-option" "-native-compiler" "ondemand" + COQDONATIVE="yes" +else +ifeq '$(COQACTUALNATIVEFLAG)' 'ondemand' + COQNATIVEFLAG="-w" "-deprecated-native-compiler-option" "-native-compiler" "ondemand" + COQDONATIVE="no" +else + COQNATIVEFLAG="-w" "-deprecated-native-compiler-option" "-native-compiler" "no" + COQDONATIVE="no" +endif +endif + +# these flags do NOT contain the libraries, to make them easier to overwrite +COQFLAGS?=-q $(OTHERFLAGS) $(COQFILTEREDEXTRAFLAGS) $(COQNATIVEFLAG) +COQCHKFLAGS?=-silent -o $(COQCHKEXTRAFLAGS) +COQDOCFLAGS?=-interpolate -utf8 $(COQDOCEXTRAFLAGS) + +COQDOCLIBS?=$(COQLIBS_NOML) + +# The version of Coq being run and the version of rocq makefile that +# generated this makefile +# NB --print-version is not in the rocq shim +COQ_VERSION:=$(shell $(ROCQ) c --print-version | cut -d " " -f 1) +COQMAKEFILE_VERSION:=9.0.0 + +# COQ_SRC_SUBDIRS is for user-overriding, usually to add +# `user-contrib/Foo` to the includes, we keep COQCORE_SRC_SUBDIRS for +# Coq's own core libraries, which should be replaced by ocamlfind +# options at some point. +COQ_SRC_SUBDIRS?= +COQSRCLIBS?= $(foreach d,$(COQ_SRC_SUBDIRS), -I "$(COQLIB)/$(d)") + +CAMLFLAGS+=$(OCAMLLIBS) $(COQSRCLIBS) +# ocamldoc fails with unknown argument otherwise +CAMLDOCFLAGS:=$(filter-out -annot, $(filter-out -bin-annot, $(CAMLFLAGS))) +CAMLFLAGS+=$(OCAMLWARN) + +ifneq (,$(TIMING)) + ifeq (after,$(TIMING)) + TIMING_EXT=after-timing + else + ifeq (before,$(TIMING)) + TIMING_EXT=before-timing + else + TIMING_EXT=timing + endif + endif + TIMING_ARG=-time-file $<.$(TIMING_EXT) +else + TIMING_ARG= +endif + +ifneq (,$(PROFILING)) + PROFILE_ARG=-profile $@.prof.json + PROFILE_ZIP=gzip -f $@.prof.json +else + PROFILE_ARG= + PROFILE_ZIP=true +endif + +# Files ####################################################################### +# +# We here define a bunch of variables about the files being part of the +# Rocq project in order to ease the writing of build target and build rules + +VDFILE := .Makefile.d + +ALLSRCFILES := \ + $(MLGFILES) \ + $(MLFILES) \ + $(MLPACKFILES) \ + $(MLLIBFILES) \ + $(MLIFILES) + +# helpers +vo_to_obj = $(addsuffix .o,\ + $(filter-out Warning: Error:,\ + $(shell $(COQTOP) -q -noinit -batch -quiet -print-mod-uid $(1)))) +strip_dotslash = $(patsubst ./%,%,$(1)) + +# without this we get undefined variables in the expansion for the +# targets of the [deprecated,use-mllib-or-mlpack] rule +with_undef = $(if $(filter-out undefined, $(origin $(1))),$($(1))) + +VO = vo +VOS = vos + +VOFILES = $(VFILES:.v=.$(VO)) +GLOBFILES = $(VFILES:.v=.glob) +HTMLFILES = $(VFILES:.v=.html) +GHTMLFILES = $(VFILES:.v=.g.html) +BEAUTYFILES = $(addsuffix .beautified,$(VFILES)) +TEXFILES = $(VFILES:.v=.tex) +GTEXFILES = $(VFILES:.v=.g.tex) +CMOFILES = \ + $(MLGFILES:.mlg=.cmo) \ + $(MLFILES:.ml=.cmo) \ + $(MLPACKFILES:.mlpack=.cmo) +CMXFILES = $(CMOFILES:.cmo=.cmx) +OFILES = $(CMXFILES:.cmx=.o) +CMAFILES = $(MLLIBFILES:.mllib=.cma) $(MLPACKFILES:.mlpack=.cma) +CMXAFILES = $(CMAFILES:.cma=.cmxa) +CMIFILES = \ + $(CMOFILES:.cmo=.cmi) \ + $(MLIFILES:.mli=.cmi) +# the /if/ is because old _CoqProject did not list a .ml(pack|lib) but just +# a .mlg file +CMXSFILES = \ + $(MLPACKFILES:.mlpack=.cmxs) \ + $(CMXAFILES:.cmxa=.cmxs) \ + $(if $(MLPACKFILES)$(CMXAFILES),,\ + $(MLGFILES:.mlg=.cmxs) $(MLFILES:.ml=.cmxs)) + +# files that are packed into a plugin (no extension) +PACKEDFILES = \ + $(call strip_dotslash, \ + $(foreach lib, \ + $(call strip_dotslash, \ + $(MLPACKFILES:.mlpack=_MLPACK_DEPENDENCIES)),$(call with_undef,$(lib)))) +# files that are archived into a .cma (mllib) +LIBEDFILES = \ + $(call strip_dotslash, \ + $(foreach lib, \ + $(call strip_dotslash, \ + $(MLLIBFILES:.mllib=_MLLIB_DEPENDENCIES)),$(call with_undef,$(lib)))) +CMIFILESTOINSTALL = $(filter-out $(addsuffix .cmi,$(PACKEDFILES)),$(CMIFILES)) +CMOFILESTOINSTALL = $(filter-out $(addsuffix .cmo,$(PACKEDFILES)),$(CMOFILES)) +OBJFILES = $(call vo_to_obj,$(VOFILES)) +ALLNATIVEFILES = \ + $(OBJFILES:.o=.cmi) \ + $(OBJFILES:.o=.cmx) \ + $(OBJFILES:.o=.cmxs) +FINDLIBPACKAGE=$(patsubst .%,%,$(suffix $(METAFILE))) + +# trick: wildcard filters out non-existing files, so that `install` doesn't show +# warnings and `clean` doesn't pass to rm a list of files that is too long for +# the shell. +NATIVEFILES = $(wildcard $(ALLNATIVEFILES)) +FILESTOINSTALL = \ + $(VOFILES) \ + $(VFILES) \ + $(GLOBFILES) \ + $(NATIVEFILES) +FINDLIBFILESTOINSTALL = \ + $(CMIFILESTOINSTALL) +ifeq '$(HASNATDYNLINK)' 'true' +DO_NATDYNLINK = yes +FINDLIBFILESTOINSTALL += $(CMXSFILES) $(CMXAFILES) $(CMOFILESTOINSTALL:.cmo=.cmx) +else +DO_NATDYNLINK = +endif + +ALLDFILES = $(addsuffix .d,$(ALLSRCFILES)) $(VDFILE) + +# Compilation targets ######################################################### + +all: + $(HIDE)$(MAKE) --no-print-directory -f "$(SELF)" pre-all + $(HIDE)$(MAKE) --no-print-directory -f "$(SELF)" real-all + $(HIDE)$(MAKE) --no-print-directory -f "$(SELF)" post-all +.PHONY: all + +all.timing.diff: + $(HIDE)$(MAKE) --no-print-directory -f "$(SELF)" pre-all + $(HIDE)$(MAKE) --no-print-directory -f "$(SELF)" real-all.timing.diff TIME_OF_PRETTY_BUILD_EXTRA_FILES="" + $(HIDE)$(MAKE) --no-print-directory -f "$(SELF)" post-all +.PHONY: all.timing.diff + +ifeq (0,$(TIMING_REAL)) +TIMING_REAL_ARG := +TIMING_USER_ARG := --user +else +ifeq (1,$(TIMING_REAL)) +TIMING_REAL_ARG := --real +TIMING_USER_ARG := +else +TIMING_REAL_ARG := +TIMING_USER_ARG := +endif +endif + +ifeq (0,$(TIMING_INCLUDE_MEM)) +TIMING_INCLUDE_MEM_ARG := --no-include-mem +else +TIMING_INCLUDE_MEM_ARG := +endif + +ifeq (1,$(TIMING_SORT_BY_MEM)) +TIMING_SORT_BY_MEM_ARG := --sort-by-mem +else +TIMING_SORT_BY_MEM_ARG := +endif + +make-pretty-timed-before:: TIME_OF_BUILD_FILE=$(TIME_OF_BUILD_BEFORE_FILE) +make-pretty-timed-after:: TIME_OF_BUILD_FILE=$(TIME_OF_BUILD_AFTER_FILE) +make-pretty-timed make-pretty-timed-before make-pretty-timed-after:: + $(HIDE)rm -f pretty-timed-success.ok + $(HIDE)($(MAKE) --no-print-directory -f "$(PARENT)" $(TGTS) TIMED=1 2>&1 && touch pretty-timed-success.ok) | tee -a $(TIME_OF_BUILD_FILE) + $(HIDE)rm pretty-timed-success.ok # must not be -f; must fail if the touch failed +print-pretty-timed:: + $(HIDE)$(COQMAKE_ONE_TIME_FILE) $(TIMING_INCLUDE_MEM_ARG) $(TIMING_SORT_BY_MEM_ARG) $(TIMING_REAL_ARG) $(TIME_OF_BUILD_FILE) $(TIME_OF_PRETTY_BUILD_FILE) $(TIME_OF_PRETTY_BUILD_EXTRA_FILES) +print-pretty-timed-diff:: + $(HIDE)$(COQMAKE_BOTH_TIME_FILES) --sort-by=$(TIMING_SORT_BY) $(TIMING_INCLUDE_MEM_ARG) $(TIMING_SORT_BY_MEM_ARG) $(TIMING_REAL_ARG) $(TIME_OF_BUILD_AFTER_FILE) $(TIME_OF_BUILD_BEFORE_FILE) $(TIME_OF_PRETTY_BOTH_BUILD_FILE) $(TIME_OF_PRETTY_BUILD_EXTRA_FILES) +ifeq (,$(BEFORE)) +print-pretty-single-time-diff:: + @echo 'Error: Usage: $(MAKE) print-pretty-single-time-diff AFTER=path/to/file.v.after-timing BEFORE=path/to/file.v.before-timing' + $(HIDE)false +else +ifeq (,$(AFTER)) +print-pretty-single-time-diff:: + @echo 'Error: Usage: $(MAKE) print-pretty-single-time-diff AFTER=path/to/file.v.after-timing BEFORE=path/to/file.v.before-timing' + $(HIDE)false +else +print-pretty-single-time-diff:: + $(HIDE)$(COQMAKE_BOTH_SINGLE_TIMING_FILES) --fuzz=$(TIMING_FUZZ) --sort-by=$(TIMING_SORT_BY) $(TIMING_USER_ARG) $(AFTER) $(BEFORE) $(TIME_OF_PRETTY_BUILD_FILE) $(TIME_OF_PRETTY_BUILD_EXTRA_FILES) +endif +endif +pretty-timed: + $(HIDE)$(MAKE) --no-print-directory -f "$(PARENT)" make-pretty-timed + $(HIDE)$(MAKE) --no-print-directory -f "$(SELF)" print-pretty-timed +.PHONY: pretty-timed make-pretty-timed make-pretty-timed-before make-pretty-timed-after print-pretty-timed print-pretty-timed-diff print-pretty-single-time-diff + +# Extension points for actions to be performed before/after the all target +pre-all:: + @# Extension point + $(HIDE)if [ "$(COQMAKEFILE_VERSION)" != "$(COQ_VERSION)" ]; then\ + echo "W: This Makefile was generated by Rocq/Coq $(COQMAKEFILE_VERSION)";\ + echo "W: while the current Rocq version is $(COQ_VERSION)";\ + fi +.PHONY: pre-all + +post-all:: + @# Extension point +.PHONY: post-all + +real-all: $(VOFILES) $(if $(USEBYTE),bytefiles,optfiles) +.PHONY: real-all + +real-all.timing.diff: $(VOFILES:.vo=.v.timing.diff) +.PHONY: real-all.timing.diff + +bytefiles: $(CMOFILES) $(CMAFILES) +.PHONY: bytefiles + +optfiles: $(if $(DO_NATDYNLINK),$(CMXSFILES)) +.PHONY: optfiles + +vos: $(VOFILES:%.vo=%.vos) +.PHONY: vos + +vok: $(VOFILES:%.vo=%.vok) +.PHONY: vok + +validate: $(VOFILES) + $(TIMER) $(COQCHK) $(COQCHKFLAGS) $(COQLIBS_NOML) $(PROFILE_ARG) $^ + $(HIDE)$(PROFILE_ZIP) +.PHONY: validate + +only: $(TGTS) +.PHONY: only + +# Documentation targets ####################################################### + +html: $(GLOBFILES) $(VFILES) + $(SHOW)'COQDOC -d html $(GAL)' + $(HIDE)mkdir -p html + $(HIDE)$(COQDOC) \ + -toc $(COQDOCFLAGS) -html $(GAL) $(COQDOCLIBS) -d html $(VFILES) + +mlihtml: $(MLIFILES:.mli=.cmi) + $(SHOW)'CAMLDOC -d $@' + $(HIDE)mkdir $@ || rm -rf $@/* + $(HIDE)$(CAMLDOC) -html \ + -d $@ -m A $(CAMLDEBUG) $(CAMLDOCFLAGS) $(MLIFILES) $(FINDLIBPKGS) + +all-mli.tex: $(MLIFILES:.mli=.cmi) + $(SHOW)'CAMLDOC -latex $@' + $(HIDE)$(CAMLDOC) -latex \ + -o $@ -m A $(CAMLDEBUG) $(CAMLDOCFLAGS) $(MLIFILES) $(FINDLIBPKGS) + +all.ps: $(VFILES) + $(SHOW)'COQDOC -ps $(GAL)' + $(HIDE)$(COQDOC) \ + -toc $(COQDOCFLAGS) -ps $(GAL) $(COQDOCLIBS) \ + -o $@ `$(COQDEP) -sort $(VFILES)` + +all.pdf: $(VFILES) + $(SHOW)'COQDOC -pdf $(GAL)' + $(HIDE)$(COQDOC) \ + -toc $(COQDOCFLAGS) -pdf $(GAL) $(COQDOCLIBS) \ + -o $@ `$(COQDEP) -sort $(VFILES)` + +# FIXME: not quite right, since the output name is different +gallinahtml: GAL=-g +gallinahtml: html + +all-gal.ps: GAL=-g +all-gal.ps: all.ps + +all-gal.pdf: GAL=-g +all-gal.pdf: all.pdf + +# ? +beautify: $(BEAUTYFILES) + for file in $^; do mv $${file%.beautified} $${file%beautified}old && mv $${file} $${file%.beautified}; done + @echo 'Do not do "make clean" until you are sure that everything went well!' + @echo 'If there were a problem, execute "for file in $$(find . -name \*.v.old -print); do mv $${file} $${file%.old}; done" in your shell/' +.PHONY: beautify + +# Installation targets ######################################################## +# +# There rules can be extended in Makefile.local +# Extensions can't assume when they run. + +# We use $(file) to avoid generating a very long command string to pass to the shell +# (cf https://coq.zulipchat.com/#narrow/stream/250632-Coq-Platform-devs-.26-users/topic/Strange.20command.20length.20limit.20on.20Linux) +# However Apple ships old make which doesn't have $(file) so we need a fallback +$(file >.hasfile,1) +HASFILE:=$(shell if [ -e .hasfile ]; then echo 1; rm .hasfile; fi) + +MKFILESTOINSTALL= $(if $(HASFILE),$(file >.filestoinstall,$(FILESTOINSTALL)),\ + $(shell rm -f .filestoinstall) \ + $(foreach x,$(FILESTOINSTALL),$(shell printf '%s\n' "$x" >> .filestoinstall))) + +# findlib needs the package to not be installed, so we remove it before +# installing it (see the call to findlib_remove) +install: META + @$(MKFILESTOINSTALL) + $(HIDE)code=0; for f in $$(cat .filestoinstall); do\ + if ! [ -f "$$f" ]; then >&2 echo $$f does not exist; code=1; fi \ + done; exit $$code + $(HIDE)for f in $$(cat .filestoinstall); do\ + df="`$(COQMKFILE) -destination-of "$$f" $(COQLIBS)`";\ + if [ "$$?" != "0" -o -z "$$df" ]; then\ + echo SKIP "$$f" since it has no logical path;\ + else\ + install -d "$(COQLIBINSTALL)/$$df" &&\ + install -m 0644 "$$f" "$(COQLIBINSTALL)/$$df" &&\ + echo INSTALL "$$f" "$(COQLIBINSTALL)/$$df";\ + fi;\ + done + $(call findlib_remove) + $(call findlib_install, META $(FINDLIBFILESTOINSTALL)) + $(HIDE)$(MAKE) install-extra -f "$(SELF)" + @rm -f .filestoinstall +install-extra:: + @# Extension point +.PHONY: install install-extra + +META: $(METAFILE) + $(HIDE)if [ "$(METAFILE)" ]; then \ + cat "$(METAFILE)" | grep -v 'directory.*=.*' > META; \ + fi + +install-byte: + $(call findlib_install, $(CMAFILES) $(CMOFILESTOINSTALL), -add) + +install-doc:: html mlihtml + @# Extension point + $(HIDE)install -d "$(COQDOCINSTALL)/$(INSTALLCOQDOCROOT)/html" + $(HIDE)for i in html/*; do \ + dest="$(COQDOCINSTALL)/$(INSTALLCOQDOCROOT)/$$i";\ + install -m 0644 "$$i" "$$dest";\ + echo INSTALL "$$i" "$$dest";\ + done + $(HIDE)install -d \ + "$(COQDOCINSTALL)/$(INSTALLCOQDOCROOT)/mlihtml" + $(HIDE)for i in mlihtml/*; do \ + dest="$(COQDOCINSTALL)/$(INSTALLCOQDOCROOT)/$$i";\ + install -m 0644 "$$i" "$$dest";\ + echo INSTALL "$$i" "$$dest";\ + done +.PHONY: install-doc + +uninstall:: + @# Extension point + @$(MKFILESTOINSTALL) + $(call findlib_remove) + $(HIDE)for f in $$(cat .filestoinstall); do \ + df="`$(COQMKFILE) -destination-of "$$f" $(COQLIBS)`" &&\ + instf="$(COQLIBINSTALL)/$$df/`basename $$f`" &&\ + rm -f "$$instf" &&\ + echo RM "$$instf" ;\ + done + $(HIDE)for f in $$(cat .filestoinstall); do \ + df="`$(COQMKFILE) -destination-of "$$f" $(COQLIBS)`" &&\ + echo RMDIR "$(COQLIBINSTALL)/$$df/" &&\ + (rmdir "$(COQLIBINSTALL)/$$df/" 2>/dev/null || true); \ + done + @rm -f .filestoinstall + +.PHONY: uninstall + +uninstall-doc:: + @# Extension point + $(SHOW)'RM $(COQDOCINSTALL)/$(INSTALLCOQDOCROOT)/html' + $(HIDE)rm -rf "$(COQDOCINSTALL)/$(INSTALLCOQDOCROOT)/html" + $(SHOW)'RM $(COQDOCINSTALL)/$(INSTALLCOQDOCROOT)/mlihtml' + $(HIDE)rm -rf "$(COQDOCINSTALL)/$(INSTALLCOQDOCROOT)/mlihtml" + $(HIDE) rmdir "$(COQDOCINSTALL)/$(INSTALLCOQDOCROOT)/" || true +.PHONY: uninstall-doc + +# Cleaning #################################################################### +# +# There rules can be extended in Makefile.local +# Extensions can't assume when they run. + +clean:: + @# Extension point + $(SHOW)'CLEAN' + $(HIDE)rm -f $(CMOFILES) + $(HIDE)rm -f $(CMIFILES) + $(HIDE)rm -f $(CMAFILES) + $(HIDE)rm -f $(CMXFILES) + $(HIDE)rm -f $(CMXAFILES) + $(HIDE)rm -f $(CMXSFILES) + $(HIDE)rm -f $(OFILES) + $(HIDE)rm -f $(CMXAFILES:.cmxa=.a) + $(HIDE)rm -f $(MLGFILES:.mlg=.ml) + $(HIDE)rm -f $(CMXFILES:.cmx=.cmt) + $(HIDE)rm -f $(MLIFILES:.mli=.cmti) + $(HIDE)rm -f $(ALLDFILES) + $(HIDE)rm -f $(NATIVEFILES) + $(HIDE)find . -name .coq-native -type d -empty -delete + $(HIDE)rm -f $(VOFILES) + $(HIDE)rm -f $(VOFILES:.vo=.vos) + $(HIDE)rm -f $(VOFILES:.vo=.vok) + $(HIDE)rm -f $(VOFILES:.vo=.v.prof.json) + $(HIDE)rm -f $(VOFILES:.vo=.v.prof.json.gz) + $(HIDE)rm -f $(BEAUTYFILES) $(VFILES:=.old) + $(HIDE)rm -f all.ps all-gal.ps all.pdf all-gal.pdf all.glob all-mli.tex + $(HIDE)rm -f $(VFILES:.v=.glob) + $(HIDE)rm -f $(VFILES:.v=.tex) + $(HIDE)rm -f $(VFILES:.v=.g.tex) + $(HIDE)rm -f pretty-timed-success.ok + $(HIDE)rm -f META + $(HIDE)rm -rf html mlihtml +.PHONY: clean + +cleanall:: clean + @# Extension point + $(SHOW)'CLEAN *.aux *.timing' + $(HIDE)rm -f $(foreach f,$(VFILES:.v=),$(dir $(f)).$(notdir $(f)).aux) + $(HIDE)rm -f $(TIME_OF_BUILD_FILE) $(TIME_OF_BUILD_BEFORE_FILE) $(TIME_OF_BUILD_AFTER_FILE) $(TIME_OF_PRETTY_BUILD_FILE) $(TIME_OF_PRETTY_BOTH_BUILD_FILE) + $(HIDE)rm -f $(VOFILES:.vo=.v.timing) + $(HIDE)rm -f $(VOFILES:.vo=.v.before-timing) + $(HIDE)rm -f $(VOFILES:.vo=.v.after-timing) + $(HIDE)rm -f $(VOFILES:.vo=.v.timing.diff) + $(HIDE)rm -f .lia.cache .nia.cache +.PHONY: cleanall + +archclean:: + @# Extension point + $(SHOW)'CLEAN *.cmx *.o' + $(HIDE)rm -f $(NATIVEFILES) + $(HIDE)rm -f $(CMOFILES:%.cmo=%.cmx) +.PHONY: archclean + + +# Compilation rules ########################################################### + +$(MLIFILES:.mli=.cmi): %.cmi: %.mli + $(SHOW)'CAMLC -c $<' + $(HIDE)$(TIMER) $(CAMLC) $(CAMLDEBUG) $(CAMLFLAGS) $(FINDLIBPKGS) $< + +$(MLGFILES:.mlg=.ml): %.ml: %.mlg + $(SHOW)'COQPP $<' + $(HIDE)$(COQPP) $< + +# Stupid hack around a deficient syntax: we cannot concatenate two expansions +$(filter %.cmo, $(MLFILES:.ml=.cmo) $(MLGFILES:.mlg=.cmo)): %.cmo: %.ml + $(SHOW)'CAMLC -c $<' + $(HIDE)$(TIMER) $(CAMLC) $(CAMLDEBUG) $(CAMLFLAGS) $(FINDLIBPKGS) $< + +# Same hack +$(filter %.cmx, $(MLFILES:.ml=.cmx) $(MLGFILES:.mlg=.cmx)): %.cmx: %.ml + $(SHOW)'CAMLOPT -c $(FOR_PACK) $<' + $(HIDE)$(TIMER) $(CAMLOPTC) $(CAMLDEBUG) $(CAMLFLAGS) $(FINDLIBPKGS) $(FOR_PACK) $< + + +$(MLLIBFILES:.mllib=.cmxs): %.cmxs: %.cmxa + $(SHOW)'CAMLOPT -shared -o $@' + $(HIDE)$(TIMER) $(CAMLOPTLINK) $(CAMLDEBUG) $(CAMLFLAGS) $(FINDLIBPKGS) \ + -shared -o $@ $< + +$(MLLIBFILES:.mllib=.cma): %.cma: | %.mllib + $(SHOW)'CAMLC -a -o $@' + $(HIDE)$(TIMER) $(CAMLLINK) $(CAMLDEBUG) $(CAMLFLAGS) $(FINDLIBPKGS) -a -o $@ $^ + +$(MLLIBFILES:.mllib=.cmxa): %.cmxa: | %.mllib + $(SHOW)'CAMLOPT -a -o $@' + $(HIDE)$(TIMER) $(CAMLOPTLINK) $(CAMLDEBUG) $(CAMLFLAGS) $(FINDLIBPKGS) -a -o $@ $^ + + +$(MLPACKFILES:.mlpack=.cmxs): %.cmxs: %.cmxa + $(SHOW)'CAMLOPT -shared -o $@' + $(HIDE)$(TIMER) $(CAMLOPTLINK) $(CAMLDEBUG) $(CAMLFLAGS) $(FINDLIBPKGS) \ + -shared -o $@ $< + +$(MLPACKFILES:.mlpack=.cmxa): %.cmxa: %.cmx | %.mlpack + $(SHOW)'CAMLOPT -a -o $@' + $(HIDE)$(TIMER) $(CAMLOPTLINK) $(CAMLDEBUG) $(CAMLFLAGS) $(FINDLIBPKGS) -a -o $@ $< + +$(MLPACKFILES:.mlpack=.cma): %.cma: %.cmo | %.mlpack + $(SHOW)'CAMLC -a -o $@' + $(HIDE)$(TIMER) $(CAMLLINK) $(CAMLDEBUG) $(CAMLFLAGS) $(FINDLIBPKGS) -a -o $@ $^ + +$(MLPACKFILES:.mlpack=.cmo): %.cmo: | %.mlpack + $(SHOW)'CAMLC -pack -o $@' + $(HIDE)$(TIMER) $(CAMLLINK) $(CAMLDEBUG) $(CAMLFLAGS) $(FINDLIBPKGS) -pack -o $@ $^ + +$(MLPACKFILES:.mlpack=.cmx): %.cmx: | %.mlpack + $(SHOW)'CAMLOPT -pack -o $@' + $(HIDE)$(TIMER) $(CAMLOPTLINK) $(CAMLDEBUG) $(CAMLFLAGS) $(FINDLIBPKGS) -pack -o $@ $^ + +# This rule is for _CoqProject with no .mllib nor .mlpack +$(filter-out $(MLLIBFILES:.mllib=.cmxs) $(MLPACKFILES:.mlpack=.cmxs) $(addsuffix .cmxs,$(PACKEDFILES)) $(addsuffix .cmxs,$(LIBEDFILES)),$(MLFILES:.ml=.cmxs) $(MLGFILES:.mlg=.cmxs)): %.cmxs: %.cmx + $(SHOW)'[deprecated,use-mllib-or-mlpack] CAMLOPT -shared -o $@' + $(HIDE)$(TIMER) $(CAMLOPTLINK) $(CAMLDEBUG) $(CAMLFLAGS) $(FINDLIBPKGS) \ + -shared -o $@ $< + +# can't make +# https://www.gnu.org/software/make/manual/make.html#Static-Pattern +# work with multiple target rules +# so use eval in a loop instead +# with grouped targets https://www.gnu.org/software/make/manual/make.html#Multiple-Targets +# if available (GNU Make >= 4.3) +ifneq (,$(filter grouped-target,$(.FEATURES))) +define globvorule= + +# take care to $$ variables using $< etc + $(1).vo $(1).glob &: $(1).v | $$(VDFILE) + $$(SHOW)ROCQ compile $(1).v + $$(HIDE)$$(TIMER) $$(ROCQ) compile $$(COQDEBUG) $$(TIMING_ARG) $$(PROFILE_ARG) $$(COQFLAGS) $$(COQLIBS) $(1).v + $$(HIDE)$$(PROFILE_ZIP) +ifeq ($(COQDONATIVE), "yes") + $$(SHOW)COQNATIVE $(1).vo + $$(HIDE)$$(call TIMER,$(1).vo.native) $$(COQNATIVE) $$(COQLIBS) $(1).vo +endif + +endef +else + +$(VOFILES): %.vo: %.v | $(VDFILE) + $(SHOW)ROCQ compile $< + $(HIDE)$(TIMER) $(ROCQ) compile $(COQDEBUG) $(TIMING_ARG) $(PROFILE_ARG) $(COQFLAGS) $(COQLIBS) $< + $(HIDE)$(PROFILE_ZIP) +ifeq ($(COQDONATIVE), "yes") + $(SHOW)COQNATIVE $@ + $(HIDE)$(call TIMER,$@.native) $(COQNATIVE) $(COQLIBS) $@ +endif + +# this is broken :( todo fix if we ever find a solution that doesn't need grouped targets +$(GLOBFILES): %.glob: %.v + $(SHOW)'ROCQ compile $< (for .glob)' + $(HIDE)$(TIMER) $(ROCQ) compile $(COQDEBUG) $(COQFLAGS) $(COQLIBS) $< + +endif + +$(foreach vfile,$(VFILES:.v=),$(eval $(call globvorule,$(vfile)))) + +$(VFILES:.v=.vos): %.vos: %.v + $(SHOW)ROCQ compile -vos $< + $(HIDE)$(TIMER) $(ROCQ) compile -vos $(COQDEBUG) $(COQFLAGS) $(COQLIBS) $< + +$(VFILES:.v=.vok): %.vok: %.v + $(SHOW)ROCQ compile -vok $< + $(HIDE)$(TIMER) $(ROCQ) compile -vok $(COQDEBUG) $(COQFLAGS) $(COQLIBS) $< + +$(addsuffix .timing.diff,$(VFILES)): %.timing.diff : %.before-timing %.after-timing + $(SHOW)PYTHON TIMING-DIFF $*.{before,after}-timing + $(HIDE)$(MAKE) --no-print-directory -f "$(SELF)" print-pretty-single-time-diff BEFORE=$*.before-timing AFTER=$*.after-timing TIME_OF_PRETTY_BUILD_FILE="$@" + +$(BEAUTYFILES): %.v.beautified: %.v + $(SHOW)'BEAUTIFY $<' + $(HIDE)$(TIMER) $(ROCQ) compile $(COQDEBUG) $(COQFLAGS) $(COQLIBS) -beautify $< + +$(TEXFILES): %.tex: %.v + $(SHOW)'COQDOC -latex $<' + $(HIDE)$(COQDOC) $(COQDOCFLAGS) -latex $< -o $@ + +$(GTEXFILES): %.g.tex: %.v + $(SHOW)'COQDOC -latex -g $<' + $(HIDE)$(COQDOC) $(COQDOCFLAGS) -latex -g $< -o $@ + +$(HTMLFILES): %.html: %.v %.glob + $(SHOW)'COQDOC -html $<' + $(HIDE)$(COQDOC) $(COQDOCFLAGS) -html $< -o $@ + +$(GHTMLFILES): %.g.html: %.v %.glob + $(SHOW)'COQDOC -html -g $<' + $(HIDE)$(COQDOC) $(COQDOCFLAGS) -html -g $< -o $@ + +# Dependency files ############################################################ + +ifndef MAKECMDGOALS + -include $(ALLDFILES) +else + ifneq ($(filter-out archclean clean cleanall printenv make-pretty-timed make-pretty-timed-before make-pretty-timed-after print-pretty-timed print-pretty-timed-diff print-pretty-single-time-diff,$(MAKECMDGOALS)),) + -include $(ALLDFILES) + endif +endif + +.SECONDARY: $(ALLDFILES) + +redir_if_ok = > "$@" || ( RV=$$?; rm -f "$@"; exit $$RV ) + +GENMLFILES:=$(MLGFILES:.mlg=.ml) +$(addsuffix .d,$(ALLSRCFILES)): $(GENMLFILES) + +$(addsuffix .d,$(MLIFILES)): %.mli.d: %.mli + $(SHOW)'CAMLDEP $<' + $(HIDE)$(CAMLDEP) $(OCAMLLIBS) "$<" $(redir_if_ok) + +$(addsuffix .d,$(MLGFILES)): %.mlg.d: %.ml + $(SHOW)'CAMLDEP $<' + $(HIDE)$(CAMLDEP) $(OCAMLLIBS) "$<" $(redir_if_ok) + +$(addsuffix .d,$(MLFILES)): %.ml.d: %.ml + $(SHOW)'CAMLDEP $<' + $(HIDE)$(CAMLDEP) $(OCAMLLIBS) "$<" $(redir_if_ok) + +$(addsuffix .d,$(MLLIBFILES)): %.mllib.d: %.mllib + $(SHOW)'OCAMLLIBDEP $<' + $(HIDE)$(OCAMLLIBDEP) -c $(OCAMLLIBS) "$<" $(redir_if_ok) + +$(addsuffix .d,$(MLPACKFILES)): %.mlpack.d: %.mlpack + $(SHOW)'OCAMLLIBDEP $<' + $(HIDE)$(OCAMLLIBDEP) -c $(OCAMLLIBS) "$<" $(redir_if_ok) + +# If this makefile is created using a _CoqProject we have coqdep get +# options from it. This avoids argument length limits for pathological +# projects. Note that extra options might be on the command line. +VDFILE_FLAGS:=$(if _CoqProject,-f _CoqProject,) $(CMDLINE_COQLIBS) $(CMDLINE_VFILES) + +$(VDFILE): _CoqProject $(VFILES) + $(SHOW)'ROCQ DEP VFILES' + $(HIDE)$(TIMER) $(COQDEP) -vos -dyndep var $(VDFILE_FLAGS) $(redir_if_ok) + +# Misc ######################################################################## + +byte: + $(HIDE)$(MAKE) all "OPT:=-byte" -f "$(SELF)" +.PHONY: byte + +opt: + $(HIDE)$(MAKE) all "OPT:=-opt" -f "$(SELF)" +.PHONY: opt + +# This is deprecated. To extend this makefile use +# extension points and Makefile.local +printenv:: + $(warning printenv is deprecated) + $(warning write extensions in Makefile.local or include Makefile.conf) + @echo 'COQLIB = $(COQLIB)' + @echo 'COQCORELIB = $(COQCORELIB)' + @echo 'DOCDIR = $(DOCDIR)' + @echo 'OCAMLFIND = $(OCAMLFIND)' + @echo 'HASNATDYNLINK = $(HASNATDYNLINK)' + @echo 'SRC_SUBDIRS = $(SRC_SUBDIRS)' + @echo 'COQ_SRC_SUBDIRS = $(COQ_SRC_SUBDIRS)' + @echo 'COQCORE_SRC_SUBDIRS = $(COQCORE_SRC_SUBDIRS)' + @echo 'OCAMLFIND = $(OCAMLFIND)' + @echo 'PP = $(PP)' + @echo 'COQFLAGS = $(COQFLAGS)' + @echo 'COQLIB = $(COQLIBS)' + @echo 'COQLIBINSTALL = $(COQLIBINSTALL)' + @echo 'COQDOCINSTALL = $(COQDOCINSTALL)' +.PHONY: printenv + +# Generate a .merlin file. If you need to append directives to this +# file you can extend the merlin-hook target in Makefile.local +.merlin: + $(SHOW)'FILL .merlin' + $(HIDE)echo 'FLG $(COQMF_CAMLFLAGS)' > .merlin + $(HIDE)echo 'B $(COQCORELIB)' >> .merlin + $(HIDE)echo 'S $(COQCORELIB)' >> .merlin + $(HIDE)$(foreach d,$(COQCORE_SRC_SUBDIRS), \ + echo 'B $(COQCORELIB)$(d)' >> .merlin;) + $(HIDE)$(foreach d,$(COQ_SRC_SUBDIRS), \ + echo 'S $(COQLIB)$(d)' >> .merlin;) + $(HIDE)$(foreach d,$(SRC_SUBDIRS), echo 'B $(d)' >> .merlin;) + $(HIDE)$(foreach d,$(SRC_SUBDIRS), echo 'S $(d)' >> .merlin;) + $(HIDE)$(MAKE) merlin-hook -f "$(SELF)" +.PHONY: merlin + +merlin-hook:: + @# Extension point +.PHONY: merlin-hook + +# prints all variables +debug: + $(foreach v,\ + $(sort $(filter-out $(INITIAL_VARS) INITIAL_VARS,\ + $(.VARIABLES))),\ + $(info $(v) = $($(v)))) +.PHONY: debug + +.DEFAULT_GOAL := all + +# Users can create Makefile.local-late to hook into double-colon rules +# or add other needed Makefile code, using defined +# variables if necessary. +-include Makefile.local-late + +# Local Variables: +# mode: makefile-gmake +# End: diff --git a/hax-lib/proof-libs/coq/coq/generated-core/_CoqProject b/hax-lib/proof-libs/coq/coq/generated-core/_CoqProject index e02d03ddd..196825c65 100644 --- a/hax-lib/proof-libs/coq/coq/generated-core/_CoqProject +++ b/hax-lib/proof-libs/coq/coq/generated-core/_CoqProject @@ -45,11 +45,11 @@ ./src/Core_Ops_Bit.v ./src/Core_Ops_Arith.v -./src/Core_Ops_Range.v +# ./src/Core_Ops_Range.v -./src/Core_Iter_Traits_Iterator.v +# ./src/Core_Iter_Traits_Iterator.v -./src/Core_Ops_Index_range.v +# ./src/Core_Ops_Index_range.v ./src/Core_Ops.v @@ -57,17 +57,17 @@ ./src/Core_Base_interface_Int.v -./src/Core_Base_interface.v +# ./src/Core_Base_interface.v -./src/Core_Num_Uint_macros.v # Empty -./src/Core_Num_Int_macros.v # Empty +# ./src/Core_Num_Uint_macros.v # Empty +# ./src/Core_Num_Int_macros.v # Empty -./src/Core_Result.v +# ./src/Core_Result.v -./phase_library/ControlFlow.v +# ./phase_library/ControlFlow.v # Bundles: Core_Primitive.v, -./src/Core_Array_Rec_bundle_579704328.v +./src/Core_Bundle.v # ./src/Core_Primitive_Number_conversion.v # ./src/Core_Primitive_Number_conversion_i.v @@ -77,85 +77,85 @@ ./phase_library/NumberNotation.v ./phase_library/TODO.v -./src/Core_Intrinsics.v +# ./src/Core_Intrinsics.v -./src/Core_Num.v # Broken? +# ./src/Core_Num.v # Broken? -./src/Core_Slice_Iter.v -./src/Core_Slice.v +# ./src/Core_Slice_Iter.v +# ./src/Core_Slice.v -./src/Core_Array_Iter.v -./src/Core_Array.v +# ./src/Core_Array_Iter.v +# ./src/Core_Array.v ./src/Core.v -# # Extra - -# Core_Slice_Iter_Macros.v -# ----- Core_Slice_Iter.v -# Core_Slice_Index_Private_slice_index.v -# Core_Slice_Index.v -# ----- Core_Slice.v -# ----- Core_Result.v -# ----- Core_Primitive_Number_conversion_i.v -# ----- Core_Primitive_Number_conversion.v -# ----- Core_Primitive.v -# ----- Core_Panicking.v -# ----- Core_Option.v -# ----- Core_Ops_Range.v -# Core_Ops_Index_range.v -# ----- Core_Ops_Index.v -# Core_Ops_Function.v -# Core_Ops_Bit_Impls_for_prims.v -# ----- Core_Ops_Bit.v -# Core_Ops_Arith_Impls_for_prims.v -# ----- Core_Ops_Arith.v -# ----- Core_Ops.v -# ----- Core_Num_Uint_macros.v -# ----- Core_Num_Int_macros.v -# ----- Core_Num.v -# ----- Core_Marker.v -# Core_Iter_Traits_Marker.v -# Core_Iter_Traits_Iterator.v -# Core_Iter_Traits_Exact_size.v -# Core_Iter_Traits_Collect.v -# Core_Iter_Traits.v -# Core_Iter_Range.v -# Core_Iter.v -# ----- Core_Intrinsics.v -# Core_Fmt.v -# ----- Core_Convert.v -# ----- Core_Cmp.v -# ----- Core_Clone.v -# Core_Base_interface_Int_U8_proofs.v -# Core_Base_interface_Int_U64_proofs.v -# Core_Base_interface_Int_U32_proofs.v -# Core_Base_interface_Int_U16_proofs.v -# Core_Base_interface_Int_U128_proofs.v -# Core_Base_interface_Int_I8_proofs.v -# Core_Base_interface_Int_I64_proofs.v -# Core_Base_interface_Int_I32_proofs.v -# Core_Base_interface_Int_I16_proofs.v -# Core_Base_interface_Int_I128_proofs.v -# ----- Core_Base_interface_Int.v -# ----- Core_Base_interface_Coerce.v -# ----- Core_Base_interface.v -# ----- Core_Base_Z.v -# ----- Core_Base_Spec_Z.v -# ----- Core_Base_Spec_Unary.v -# ----- Core_Base_Spec_Seq.v -# ----- Core_Base_Spec_Haxint.v -# ----- Core_Base_Spec_Constants.v -# ----- Core_Base_Spec_Binary_Positive.v -# ----- Core_Base_Spec_Binary_Pos.v -# ----- Core_Base_Spec_Binary.v -# ----- Core_Base_Spec.v -# ----- Core_Base_Seq.v -# ----- Core_Base_Pos.v -# Core_Base_Number_conversion.v -# ----- Core_Base_Binary.v -# ----- Core_Base.v -# ----- Core_Array_Rec_bundle_579704328.v -# ----- Core_Array_Iter.v -# ----- Core_Array.v -# ----- Core.v \ No newline at end of file +# # # Extra + +# # Core_Slice_Iter_Macros.v +# # ----- Core_Slice_Iter.v +# # Core_Slice_Index_Private_slice_index.v +# # Core_Slice_Index.v +# # ----- Core_Slice.v +# # ----- Core_Result.v +# # ----- Core_Primitive_Number_conversion_i.v +# # ----- Core_Primitive_Number_conversion.v +# # ----- Core_Primitive.v +# # ----- Core_Panicking.v +# # ----- Core_Option.v +# # ----- Core_Ops_Range.v +# # Core_Ops_Index_range.v +# # ----- Core_Ops_Index.v +# # Core_Ops_Function.v +# # Core_Ops_Bit_Impls_for_prims.v +# # ----- Core_Ops_Bit.v +# # Core_Ops_Arith_Impls_for_prims.v +# # ----- Core_Ops_Arith.v +# # ----- Core_Ops.v +# # ----- Core_Num_Uint_macros.v +# # ----- Core_Num_Int_macros.v +# # ----- Core_Num.v +# # ----- Core_Marker.v +# # Core_Iter_Traits_Marker.v +# # Core_Iter_Traits_Iterator.v +# # Core_Iter_Traits_Exact_size.v +# # Core_Iter_Traits_Collect.v +# # Core_Iter_Traits.v +# # Core_Iter_Range.v +# # Core_Iter.v +# # ----- Core_Intrinsics.v +# # Core_Fmt.v +# # ----- Core_Convert.v +# # ----- Core_Cmp.v +# # ----- Core_Clone.v +# # Core_Base_interface_Int_U8_proofs.v +# # Core_Base_interface_Int_U64_proofs.v +# # Core_Base_interface_Int_U32_proofs.v +# # Core_Base_interface_Int_U16_proofs.v +# # Core_Base_interface_Int_U128_proofs.v +# # Core_Base_interface_Int_I8_proofs.v +# # Core_Base_interface_Int_I64_proofs.v +# # Core_Base_interface_Int_I32_proofs.v +# # Core_Base_interface_Int_I16_proofs.v +# # Core_Base_interface_Int_I128_proofs.v +# # ----- Core_Base_interface_Int.v +# # ----- Core_Base_interface_Coerce.v +# # ----- Core_Base_interface.v +# # ----- Core_Base_Z.v +# # ----- Core_Base_Spec_Z.v +# # ----- Core_Base_Spec_Unary.v +# # ----- Core_Base_Spec_Seq.v +# # ----- Core_Base_Spec_Haxint.v +# # ----- Core_Base_Spec_Constants.v +# # ----- Core_Base_Spec_Binary_Positive.v +# # ----- Core_Base_Spec_Binary_Pos.v +# # ----- Core_Base_Spec_Binary.v +# # ----- Core_Base_Spec.v +# # ----- Core_Base_Seq.v +# # ----- Core_Base_Pos.v +# # Core_Base_Number_conversion.v +# # ----- Core_Base_Binary.v +# # ----- Core_Base.v +# # ----- Core_Array_Rec_bundle_579704328.v +# # ----- Core_Array_Iter.v +# # ----- Core_Array.v +# # ----- Core.v \ No newline at end of file diff --git a/hax-lib/proof-libs/coq/coq/generated-core/phase_library/TODO.v b/hax-lib/proof-libs/coq/coq/generated-core/phase_library/TODO.v index 253bad01a..6dcbc5a53 100644 --- a/hax-lib/proof-libs/coq/coq/generated-core/phase_library/TODO.v +++ b/hax-lib/proof-libs/coq/coq/generated-core/phase_library/TODO.v @@ -13,31 +13,33 @@ Import RecordSetNotations. Require Import Core_Primitive. Export Core_Primitive. -(* Array coercions *) -Coercion Build_t_Array : t_Slice >-> t_Array. -Coercion Build_t_Slice : list >-> t_Slice. +(* (* Array coercions *) *) +(* Coercion Build_t_Array : t_Slice >-> t_Array. *) +(* Coercion Build_t_Slice : list >-> t_Slice. *) -Definition unsize {A} (x : A) := x. -Definition repeat {v_T} (a : v_T) b : t_Array v_T b := List.repeat a (N.to_nat (U64_f_v (usize_0 b))). +(* Definition unsize {A} (x : A) := x. *) +(* Definition repeat {v_T} (a : v_T) b : t_Array v_T b := List.repeat a (N.to_nat (U64_f_v (usize_0 b))). *) Definition t_String := string. -Definition ToString_f_to_string (x : string) : string := x. +Notation "Alloc_String.t_String" := t_String. +Definition ToString__f_to_string (x : string) : string := x. +Notation "Alloc_String.ToString__f_to_string" := ToString__f_to_string. -Definition assert (b : bool) (* `{H_assert : b = true} *) : unit := tt. -(* Inductive globality := | t_Global. *) -(* Definition t_Vec T (_ : globality) : Type := list T. *) -(* Definition impl_1__append {T} l1 l2 : list T * list T := (app l1 l2, l2). *) -(* Definition impl_1__len {A} (l : list A) := Z.of_nat (List.length l). *) -(* Definition impl__new {A} (_ : Datatypes.unit) : list A := nil. *) -(* Definition impl__with_capacity {A} (_ : Z) : list A := nil. *) -(* Definition impl_1__push {A} l (x : A) := cons l x. *) -(* Definition impl__to_vec {T} (x : t_Slice T) : t_Vec T t_Global := {| x |}. *) -(* Definition from_elem {A} (x : A) (l : Z) := repeat x (Z.to_nat l). *) +(* Definition assert (b : bool) (* `{H_assert : b = true} *) : unit := tt. *) +(* (* Inductive globality := | t_Global. *) *) +(* (* Definition t_Vec T (_ : globality) : Type := list T. *) *) +(* (* Definition impl_1__append {T} l1 l2 : list T * list T := (app l1 l2, l2). *) *) +(* (* Definition impl_1__len {A} (l : list A) := Z.of_nat (List.length l). *) *) +(* (* Definition impl__new {A} (_ : Datatypes.unit) : list A := nil. *) *) +(* (* Definition impl__with_capacity {A} (_ : Z) : list A := nil. *) *) +(* (* Definition impl_1__push {A} l (x : A) := cons l x. *) *) +(* (* Definition impl__to_vec {T} (x : t_Slice T) : t_Vec T t_Global := {| x |}. *) *) +(* (* Definition from_elem {A} (x : A) (l : Z) := repeat x (Z.to_nat l). *) *) -Fixpoint build_range (l : nat) (f : nat) (a : list t_usize) : list t_usize := - match f with - | 0%nat => a - | (S n)%nat => build_range (S l) n (cons a (Build_t_usize (Build_t_U64 (unary_to_int l)))) - end. +(* Fixpoint build_range (l : nat) (f : nat) (a : list t_usize) : list t_usize := *) +(* match f with *) +(* | 0%nat => a *) +(* | (S n)%nat => build_range (S l) n (cons a (Build_t_usize (Build_t_U64 (unary_to_int l)))) *) +(* end. *) -Definition fold_range {A : Type} (l : t_usize) (u : t_usize) (_ : A -> t_usize -> bool) (x : A) (f : A -> t_usize -> A) : A := List.fold_left f (build_range (unary_from_int (U64_f_v (usize_0 l))) (unary_from_int (U64_f_v (usize_0 (Sub_f_sub u l)))) nil) x. +(* Definition fold_range {A : Type} (l : t_usize) (u : t_usize) (_ : A -> t_usize -> bool) (x : A) (f : A -> t_usize -> A) : A := List.fold_left f (build_range (unary_from_int (U64_f_v (usize_0 l))) (unary_from_int (U64_f_v (usize_0 (Sub_f_sub u l)))) nil) x. *) diff --git a/hax-lib/proof-libs/coq/coq/generated-core/spec/Core_Base_Spec_Binary_Pos.v b/hax-lib/proof-libs/coq/coq/generated-core/spec/Core_Base_Spec_Binary_Pos.v index 14df02f75..97b1a820b 100644 --- a/hax-lib/proof-libs/coq/coq/generated-core/spec/Core_Base_Spec_Binary_Pos.v +++ b/hax-lib/proof-libs/coq/coq/generated-core/spec/Core_Base_Spec_Binary_Pos.v @@ -22,4 +22,8 @@ Notation "'t_POS'" := N. Notation "'POS_ZERO'" := N0. Notation "'POS_POS'" := Npos. +Notation "'Core_Base_Spec_Binary_Pos.t_POS'" := N. +Notation "'Core_Base_Spec_Binary_Pos.POS_ZERO'" := N0. +Notation "'Core_Base_Spec_Binary_Pos.POS_POS'" := Npos. + Definition match_pos (s : t_HaxInt) : t_POS := s. diff --git a/hax-lib/proof-libs/coq/coq/generated-core/spec/Core_Base_Spec_Binary_Positive.v b/hax-lib/proof-libs/coq/coq/generated-core/spec/Core_Base_Spec_Binary_Positive.v index 717f41626..d3d28ff8b 100644 --- a/hax-lib/proof-libs/coq/coq/generated-core/spec/Core_Base_Spec_Binary_Positive.v +++ b/hax-lib/proof-libs/coq/coq/generated-core/spec/Core_Base_Spec_Binary_Positive.v @@ -24,6 +24,12 @@ Notation "'POSITIVE_XH'" := xH. Notation "'POSITIVE_XO'" := xO. Notation "'POSITIVE_XI'" := xI. +Notation "'Core_Base_Spec_Binary_Positive.t_Positive'" := positive. +Notation "'Core_Base_Spec_Binary_Positive.t_POSITIVE'" := positive. +Notation "'Core_Base_Spec_Binary_Positive.POSITIVE_XH'" := xH. +Notation "'Core_Base_Spec_Binary_Positive.POSITIVE_XO'" := xO. +Notation "'Core_Base_Spec_Binary_Positive.POSITIVE_XI'" := xI. + Definition positive_from_int (x : t_HaxInt) `{Hpos : x <> N0} : t_Positive := match x return x <> N0 -> _ with | N0 => fun Hpos => False_rect _ (Hpos eq_refl) | Npos p => fun _ => p end Hpos. diff --git a/hax-lib/proof-libs/coq/coq/generated-core/spec/Core_Base_Spec_Haxint.v b/hax-lib/proof-libs/coq/coq/generated-core/spec/Core_Base_Spec_Haxint.v index f8a6f8f1d..2061ae404 100644 --- a/hax-lib/proof-libs/coq/coq/generated-core/spec/Core_Base_Spec_Haxint.v +++ b/hax-lib/proof-libs/coq/coq/generated-core/spec/Core_Base_Spec_Haxint.v @@ -13,6 +13,7 @@ Import RecordSetNotations. (* From Core Require Import Core. *) Notation "'t_HaxInt'" := N. +Notation "'Core_Base_Spec_Haxint.t_HaxInt'" := N. Definition v_HaxInt_ONE : t_HaxInt := 1. Definition v_HaxInt_TWO : t_HaxInt := 2. diff --git a/hax-lib/proof-libs/coq/coq/generated-core/spec/Core_Base_Spec_Seq.v b/hax-lib/proof-libs/coq/coq/generated-core/spec/Core_Base_Spec_Seq.v index 949c1ed96..31546e124 100644 --- a/hax-lib/proof-libs/coq/coq/generated-core/spec/Core_Base_Spec_Seq.v +++ b/hax-lib/proof-libs/coq/coq/generated-core/spec/Core_Base_Spec_Seq.v @@ -15,10 +15,19 @@ Import RecordSetNotations. Notation "'t_Seq'" := list. Notation "'t_LIST'" := list. -Notation "'LIST_NIL'" := nil. -Notation "'LIST_CONS'" := cons. +Notation "'LIST_NIL'" := List.nil. +Notation "'LIST_CONS'" := List.cons. -Notation "'nil'" := nil. -Notation "'cons'" := (fun x y => cons y x). +Notation "'nil'" := List.nil. +Notation "'cons'" := (fun x y => List.cons y x). + +Notation "'Core_Base_Spec_Seq.t_Seq'" := list. + +Notation "'Core_Base_Spec_Seq.t_LIST'" := list. +Notation "'Core_Base_Spec_Seq.LIST_NIL'" := List.nil. +Notation "'Core_Base_Spec_Seq.LIST_CONS'" := List.cons. + +Notation "'Core_Base_Spec_Seq.nil'" := List.nil. +Notation "'Core_Base_Spec_Seq.cons'" := (fun x y => List.cons y x). Definition match_list {T} (x : t_Seq T) : t_LIST T := x. diff --git a/hax-lib/proof-libs/coq/coq/generated-core/spec/Core_Base_Spec_Unary.v b/hax-lib/proof-libs/coq/coq/generated-core/spec/Core_Base_Spec_Unary.v index cb2b64daf..fab5f7462 100644 --- a/hax-lib/proof-libs/coq/coq/generated-core/spec/Core_Base_Spec_Unary.v +++ b/hax-lib/proof-libs/coq/coq/generated-core/spec/Core_Base_Spec_Unary.v @@ -21,6 +21,12 @@ Notation "'t_UNARY'" := nat. Notation "'UNARY_ZERO'" := O. Notation "'UNARY_SUCC'" := S. +Notation "'Core_Base_Spec_Unary.t_Unary'" := nat. + +Notation "'Core_Base_Spec_Unary.t_UNARY'" := nat. +Notation "'Core_Base_Spec_Unary.UNARY_ZERO'" := O. +Notation "'Core_Base_Spec_Unary.UNARY_SUCC'" := S. + Definition unary_from_int (x : t_HaxInt) : t_Unary := N.to_nat x. Definition unary_to_int (s : t_Unary) : t_HaxInt := N.of_nat s. diff --git a/hax-lib/proof-libs/coq/coq/generated-core/spec/Core_Base_Spec_Z.v b/hax-lib/proof-libs/coq/coq/generated-core/spec/Core_Base_Spec_Z.v index ee42b1435..431f8c83d 100644 --- a/hax-lib/proof-libs/coq/coq/generated-core/spec/Core_Base_Spec_Z.v +++ b/hax-lib/proof-libs/coq/coq/generated-core/spec/Core_Base_Spec_Z.v @@ -20,5 +20,10 @@ Notation "'Z_NEG'" := Zneg. Notation "'Z_ZERO'" := Z0. Notation "'Z_POS'" := Zpos. +Notation "'Core_Base_Spec_Z.t_Z'" := Z. +Notation "'Core_Base_Spec_Z.Z_NEG'" := Zneg. +Notation "'Core_Base_Spec_Z.Z_ZERO'" := Z0. +Notation "'Core_Base_Spec_Z.Z_POS'" := Zpos. + Definition v_Z_ONE : t_Z := 1%Z. Definition v_Z_TWO : t_Z := 2%Z. diff --git a/hax-lib/proof-libs/coq/coq/generated-core/src/Core.v b/hax-lib/proof-libs/coq/coq/generated-core/src/Core.v index 3965e9d91..efd408180 100644 --- a/hax-lib/proof-libs/coq/coq/generated-core/src/Core.v +++ b/hax-lib/proof-libs/coq/coq/generated-core/src/Core.v @@ -9,31 +9,9 @@ Require Import String. Require Import Coq.Floats.Floats. From RecordUpdate Require Import RecordSet. Import RecordSetNotations. - (* From Core Require Import Core. *) -From Core Require Import Core_Primitive. -Export Core_Primitive. - -(* NotImplementedYet *) - -(* NotImplementedYet *) - -(* NotImplementedYet *) - -(* NotImplementedYet *) - -(* NotImplementedYet *) - -(* NotImplementedYet *) - -(* NotImplementedYet *) - -(* NotImplementedYet *) - -(* NotImplementedYet *) -(* NotImplementedYet *) (* NotImplementedYet *) @@ -45,27 +23,15 @@ Export Core_Primitive. (* NotImplementedYet *) -(* NotImplementedYet *) -(* NotImplementedYet *) - -(* NotImplementedYet *) - -(* NotImplementedYet *) - -(* NotImplementedYet *) - -(* NotImplementedYet *) - -(* NotImplementedYet *) - -(* NotImplementedYet *) +From Core Require Import Core_Marker. +Export Core_Marker. From Core Require Import Core_Option. Export Core_Option. -From Core Require Import Core_Array_Rec_bundle_579704328. -Export Core_Array_Rec_bundle_579704328. +(* From Core Require Import Core_Array_Rec_bundle_579704328. *) +(* Export Core_Array_Rec_bundle_579704328. *) From Core Require Import Core_Ops. Export Core_Ops. diff --git a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Array.v b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Array.v index c59a39ce4..69b75ce06 100644 --- a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Array.v +++ b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Array.v @@ -9,29 +9,40 @@ Require Import String. Require Import Coq.Floats.Floats. From RecordUpdate Require Import RecordSet. Import RecordSetNotations. +From Core Require Import Core. -(* From Core Require Import Core. *) +(* NotImplementedYet *) -From Core Require Import Core_Ops_Index. -Export Core_Ops_Index. -(* From Core Require Import Core_Ops_IndexMut. *) -(* Export Core_Ops (t_IndexMut). *) -From Core Require Import Core_Primitive. -Export Core_Primitive. -From Core Require Import Core_Array_Iter. -Export Core_Array_Iter. -Notation "'t_TryFromSliceError'" := (t_TryFromSliceError). -Notation "'TryFromSliceError_0'" := (TryFromSliceError_0). -(* NotImplementedYet *) -(* Notation "'impl_2'" := (impl_2). *) -(* Notation "'impl_1'" := (impl_1). *) -(* Notation "'impl'" := (impl). *) + + + + + +Notation "'t_TryFromSliceError'" := (Core_Bundle.t_TryFromSliceError). + +Notation "'TryFromSliceError_TryFromSliceError'" := (Core_Bundle.TryFromSliceError_TryFromSliceError). + +Notation "'impl_6'" := (Core_Bundle.impl_6). + +Notation "'impl_7'" := (Core_Bundle.impl_7). + +Notation "'impl_8'" := (Core_Bundle.impl_8). + +Notation "'impl'" := (Core_Bundle.impl). + +Notation "'impl_1'" := (Core_Bundle.impl_1). + +Notation "'impl_2'" := (Core_Bundle.impl_2). + +Notation "'impl_3'" := (Core_Bundle.impl_3). + +Notation "'impl_4'" := (Core_Bundle.impl_4). diff --git a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Array_Iter.v b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Array_Iter.v index 3ee71113d..b41c4db7d 100644 --- a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Array_Iter.v +++ b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Array_Iter.v @@ -9,42 +9,35 @@ Require Import String. Require Import Coq.Floats.Floats. From RecordUpdate Require Import RecordSet. Import RecordSetNotations. +From Core Require Import Core. -(* From Core Require Import Core. *) +(* NotImplementedYet *) -From Core Require Import Core_Num. -Export Core_Num. -From Core Require Import Core_Ops_Index_range. -Export Core_Ops_Index_range. -From Core Require Import Core_Ops_Range. -Export Core_Ops_Range. -From Core Require Import Core_Primitive. -Export Core_Primitive. -(* From Core Require Import Core_Iter (t_IntoIterator). *) -(* Export Core_Iter (t_IntoIterator). *) -From Core Require Import Core_Clone. -Export Core_Clone. -From Core Require Import Core_Base. -Export Core_Base. -(* From Core Require Import hax_lib. *) -(* Export hax_lib. *) -Record t_IntoIter (v_T : Type) (v_N : t_usize) `{t_Sized (v_T)} : Type := + + + + + + + + +Record IntoIter_IntoIter_record (v_T : Type) (v_N : t_usize) `{Core_Marker.t_Sized (v_T)} : Type := { - IntoIter_f_data : t_Array ((v_T)) (v_N); - IntoIter_f_alive : t_IndexRange; + IntoIter_IntoIter_f_IntoIter_data : Core_Primitive_Primitive_definitions.t_Array ((v_T)) (v_N); + IntoIter_IntoIter_f_IntoIter_alive : Core_Ops_Index_range.t_IndexRange; }. -Arguments Build_t_IntoIter (_) (_) {_}. -Arguments IntoIter_f_data {_} {_} {_}. -Arguments IntoIter_f_alive {_} {_} {_}. -#[export] Instance settable_t_IntoIter `{v_T : Type} `{v_N : t_usize} `{t_Sized (v_T)} : Settable _ := - settable! (Build_t_IntoIter v_T v_N) . +Arguments Build_IntoIter_IntoIter_record {_} {_} {_}. +Arguments IntoIter_IntoIter_f_IntoIter_data {_} {_} {_}. +Arguments IntoIter_IntoIter_f_IntoIter_alive {_} {_} {_}. +#[export] Instance settable_IntoIter_IntoIter_record `{v_T : Type} `{v_N : t_usize} `{Core_Marker.t_Sized (v_T)} : Settable _ := + settable! (Build_IntoIter_IntoIter_record (v_T := v_T) (v_N := v_N)) . diff --git a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Array_Rec_bundle_579704328.v b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Array_Rec_bundle_579704328.v deleted file mode 100644 index da8881a39..000000000 --- a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Array_Rec_bundle_579704328.v +++ /dev/null @@ -1,4554 +0,0 @@ -(* File automatically generated by Hacspec *) -From Coq Require Import ZArith. -Require Import List. -Import List.ListNotations. -Open Scope Z_scope. -Open Scope bool_scope. -Require Import Ascii. -Require Import String. -Require Import Coq.Floats.Floats. -From RecordUpdate Require Import RecordSet. -Import RecordSetNotations. - -(* From Core Require Import Core. *) - -From Core Require Import Core_Marker. - -From Core Require Import Core_Convert. - -From Core Require Import Core_Base_interface_Int. - -From Core Require Import ControlFlow. - -Record t_i128 : Type := - { - i128_0 : t_I128; - }. -Arguments Build_t_i128. -Arguments i128_0. -#[export] Instance settable_t_i128 : Settable _ := - settable! (Build_t_i128) . -Notation "'i128'" := Build_t_i128. - -#[global] Instance t_Clone_173398349 : t_Clone ((t_i128)) := - { - Clone_f_clone := fun (self : t_i128)=> self; - }. - -Record t_i16 : Type := - { - i16_0 : t_I16; - }. -Arguments Build_t_i16. -Arguments i16_0. -#[export] Instance settable_t_i16 : Settable _ := - settable! (Build_t_i16) . -Notation "'i16'" := Build_t_i16. - -#[global] Instance t_Clone_192670426 : t_Clone ((t_i16)) := - { - Clone_f_clone := fun (self : t_i16)=> - Build_t_i16 (Clone_f_clone (i16_0 self)); - }. - -Record t_i32 : Type := - { - i32_0 : t_I32; - }. -Arguments Build_t_i32. -Arguments i32_0. -#[export] Instance settable_t_i32 : Settable _ := - settable! (Build_t_i32) . -Notation "'i32'" := Build_t_i32. - -#[global] Instance t_Clone_502683757 : t_Clone ((t_i32)) := - { - Clone_f_clone := fun (self : t_i32)=> - Build_t_i32 (Clone_f_clone (i32_0 self)); - }. - -Record t_i64 : Type := - { - i64_0 : t_I64; - }. -Arguments Build_t_i64. -Arguments i64_0. -#[export] Instance settable_t_i64 : Settable _ := - settable! (Build_t_i64) . -Notation "'i64'" := Build_t_i64. - -#[global] Instance t_Clone_208076318 : t_Clone ((t_i64)) := - { - Clone_f_clone := fun (self : t_i64)=> - Build_t_i64 (Clone_f_clone (i64_0 self)); - }. - -Record t_i8 : Type := - { - i8_0 : t_I8; - }. -Arguments Build_t_i8. -Arguments i8_0. -#[export] Instance settable_t_i8 : Settable _ := - settable! (Build_t_i8) . -Notation "'i8'" := Build_t_i8. - -#[global] Instance t_Clone_654126073 : t_Clone ((t_i8)) := - { - Clone_f_clone := fun (self : t_i8)=> - Build_t_i8 (Clone_f_clone (i8_0 self)); - }. - -Record t_isize : Type := - { - isize_0 : t_I64; - }. -Arguments Build_t_isize. -Arguments isize_0. -#[export] Instance settable_t_isize : Settable _ := - settable! (Build_t_isize) . -Notation "'isize'" := Build_t_isize. - -#[global] Instance t_Clone_36465747 : t_Clone ((t_isize)) := - { - Clone_f_clone := fun (self : t_isize)=> - Build_t_isize (Clone_f_clone (isize_0 self)); - }. - -#[global] Instance t_From_200584765 : t_From ((t_isize)) ((t_i64)) := - { - From_f_from := fun (x : t_i64)=> - Build_t_isize (Into_f_into (i64_0 x)); - }. - -#[global] Instance t_From_705632684 : t_From ((t_i64)) ((t_isize)) := - { - From_f_from := fun (x : t_isize)=> - Build_t_i64 (Into_f_into (isize_0 x)); - }. - -Record t_u128 : Type := - { - u128_0 : t_U128; - }. -Arguments Build_t_u128. -Arguments u128_0. -#[export] Instance settable_t_u128 : Settable _ := - settable! (Build_t_u128) . -Notation "'u128'" := Build_t_u128. - -Definition from_le715594649 (x : t_u128) : t_u128 := - x. - -Definition to_le902648378 (self : t_u128) : t_u128 := - self. - -Record t_u16 : Type := - { - u16_0 : t_U16; - }. -Arguments Build_t_u16. -Arguments u16_0. -#[export] Instance settable_t_u16 : Settable _ := - settable! (Build_t_u16) . -Notation "'u16'" := Build_t_u16. - -Definition from_le793045973 (x : t_u16) : t_u16 := - x. - -Definition to_le1012469456 (self : t_u16) : t_u16 := - self. - -Record t_u32 : Type := - { - u32_0 : t_U32; - }. -Arguments Build_t_u32. -Arguments u32_0. -#[export] Instance settable_t_u32 : Settable _ := - settable! (Build_t_u32) . -Notation "'u32'" := Build_t_u32. - -Definition from_le706338679 (x : t_u32) : t_u32 := - x. - -Definition to_le724624277 (self : t_u32) : t_u32 := - self. - -Record t_u64 : Type := - { - u64_0 : t_U64; - }. -Arguments Build_t_u64. -Arguments u64_0. -#[export] Instance settable_t_u64 : Settable _ := - settable! (Build_t_u64) . -Notation "'u64'" := Build_t_u64. - -Definition from_le435089922 (x : t_u64) : t_u64 := - x. - -Definition to_le2703875 (self : t_u64) : t_u64 := - self. - -Record t_u8 : Type := - { - u8_0 : t_U8; - }. -Arguments Build_t_u8. -Arguments u8_0. -#[export] Instance settable_t_u8 : Settable _ := - settable! (Build_t_u8) . -Notation "'u8'" := Build_t_u8. - -Definition from_le529489651 (x : t_u8) : t_u8 := - x. - -Definition to_le523556665 (self : t_u8) : t_u8 := - self. - -Record t_usize : Type := - { - usize_0 : t_U64; - }. -Arguments Build_t_usize. -Arguments usize_0. -#[export] Instance settable_t_usize : Settable _ := - settable! (Build_t_usize) . -Notation "'usize'" := Build_t_usize. - -Definition from_le418743864 (x : t_usize) : t_usize := - x. - -Definition to_le946822077 (self : t_usize) : t_usize := - self. - -#[global] Instance t_From_1035345737 : t_From ((t_usize)) ((t_u64)) := - { - From_f_from := fun (x : t_u64)=> - Build_t_usize (Into_f_into (u64_0 x)); - }. - -#[global] Instance t_From_478985084 : t_From ((t_u64)) ((t_usize)) := - { - From_f_from := fun (x : t_usize)=> - Build_t_u64 (Into_f_into (usize_0 x)); - }. - -Class v_Sealed (v_Self : Type) : Type := - { - }. -Arguments v_Sealed (_). - -#[global] Instance v_Sealed_639968800 : v_Sealed ((t_usize)) := - { - }. - -#[global] Instance v_Sealed_740757788 : v_Sealed ((t_Range ((t_usize)))) := - { - }. - -(* Instance v_Sealed_1056036517 : v_Sealed ((t_RangeTo ((t_usize)))) := *) -(* { *) -(* }. *) - -(* Instance v_Sealed_277245654 : v_Sealed ((t_RangeFrom ((t_usize)))) := *) -(* { *) -(* }. *) - -(* Instance v_Sealed_1032594188 : v_Sealed ((t_RangeFull)) := *) -(* { *) -(* }. *) - -(* Instance v_Sealed_135080564 : v_Sealed ((t_RangeInclusive ((t_usize)))) := *) -(* { *) -(* }. *) - -(* Instance v_Sealed_919294089 : v_Sealed ((t_RangeToInclusive ((t_usize)))) := *) -(* { *) -(* }. *) - -(* Instance v_Sealed_254412259 : v_Sealed (((t_Bound ((t_usize))*t_Bound ((t_usize))))) := *) -(* { *) -(* }. *) - -(* Instance v_Sealed_463870686 : v_Sealed ((t_IndexRange)) := *) -(* { *) -(* }. *) - -Definition v_BITS80497669 : t_u32 := - Build_t_u32 (impl_97__BITS). - -Definition v_MAX626626007 : t_i8 := - Build_t_i8 (Constants_f_MAX). - -Definition v_MIN19747349 : t_i8 := - Build_t_i8 (Constants_f_MIN). - -Definition v_BITS421056295 : t_u32 := - Build_t_u32 (impl_83__BITS). - -Definition v_MAX474501300 : t_i16 := - Build_t_i16 (Constants_f_MAX). - -Definition v_MIN776391606 : t_i16 := - Build_t_i16 (Constants_f_MIN). - -Definition v_BITS465526498 : t_u32 := - Build_t_u32 (impl_69__BITS). - -Definition v_MAX106630818 : t_i32 := - Build_t_i32 (Constants_f_MAX). - -Definition v_MIN682967538 : t_i32 := - Build_t_i32 (Constants_f_MIN). - -Definition v_BITS419886578 : t_u32 := - Build_t_u32 (impl_55__BITS). - -Definition v_MAX527043787 : t_i64 := - Build_t_i64 (Constants_f_MAX). - -Definition v_MIN654206259 : t_i64 := - Build_t_i64 (Constants_f_MIN). - -Definition v_BITS992667165 : t_u32 := - Build_t_u32 (impl_41__BITS). - -Definition v_MAX375377319 : t_i128 := - Build_t_i128 (Constants_f_MAX). - -Definition v_MIN79612531 : t_i128 := - Build_t_i128 (Constants_f_MIN). - -Definition v_BITS211584016 : t_u32 := - Build_t_u32 (impl_55__BITS). - -Definition v_MAX937003029 : t_isize := - Build_t_isize (Constants_f_MAX). - -Definition v_MIN1017039533 : t_isize := - Build_t_isize (Constants_f_MIN). - -Definition v_BITS690311813 : t_u32 := - Build_t_u32 (impl_219__BITS). - -Definition v_MAX310118176 : t_u8 := - Build_t_u8 (Constants_f_MAX). - -Definition v_MIN41851434 : t_u8 := - Build_t_u8 (Constants_f_MIN). - -Definition v_BITS277333551 : t_u32 := - Build_t_u32 (impl_192__BITS). - -Definition v_MAX487295910 : t_u16 := - Build_t_u16 (Constants_f_MAX). - -Definition v_MIN592300287 : t_u16 := - Build_t_u16 (Constants_f_MIN). - -Definition v_BITS473478051 : t_u32 := - Build_t_u32 (impl_165__BITS). - -Definition v_MAX826434525 : t_u32 := - Build_t_u32 (Constants_f_MAX). - -Definition v_MIN932777089 : t_u32 := - Build_t_u32 (Constants_f_MIN). - -Definition v_BITS177666292 : t_u32 := - Build_t_u32 (impl_138__BITS). - -Definition v_MAX815180633 : t_u64 := - Build_t_u64 (Constants_f_MAX). - -Definition v_MIN631333594 : t_u64 := - Build_t_u64 (Constants_f_MIN). - -Definition v_BITS136999051 : t_u32 := - Build_t_u32 (impl_111__BITS). - -Definition v_MAX404543799 : t_u128 := - Build_t_u128 (Constants_f_MAX). - -Definition v_MIN668621698 : t_u128 := - Build_t_u128 (Constants_f_MIN). - -Definition v_BITS229952196 : t_u32 := - Build_t_u32 (impl_138__BITS). - -Definition v_MAX750570916 : t_usize := - Build_t_usize (Constants_f_MAX). - -Definition v_MIN861571008 : t_usize := - Build_t_usize (Constants_f_MIN). - -#[global] Instance t_Clone_832469823 : t_Clone ((t_u8)) := - { - Clone_f_clone := fun (self : t_u8)=> - Build_t_u8 (Clone_f_clone (u8_0 self)); - }. - -#[global] Instance t_Clone_562622454 : t_Clone ((t_u16)) := - { - Clone_f_clone := fun (self : t_u16)=> - Build_t_u16 (Clone_f_clone (u16_0 self)); - }. - -#[global] Instance t_Clone_1034302141 : t_Clone ((t_u32)) := - { - Clone_f_clone := fun (self : t_u32)=> - Build_t_u32 (Clone_f_clone (u32_0 self)); - }. - -#[global] Instance t_Clone_189576787 : t_Clone ((t_u64)) := - { - Clone_f_clone := fun (self : t_u64)=> - Build_t_u64 (Clone_f_clone (u64_0 self)); - }. - -#[global] Instance t_Clone_296673181 : t_Clone ((t_u128)) := - { - Clone_f_clone := fun (self : t_u128)=> - Build_t_u128 (Clone_f_clone (u128_0 self)); - }. - -#[global] Instance t_Clone_466142540 : t_Clone ((t_usize)) := - { - Clone_f_clone := fun (self : t_usize)=> - Build_t_usize (Clone_f_clone (usize_0 self)); - }. - -Class v_SliceIndex (v_Self : Type) (v_T : Type) `{v_Sealed (v_Self)} : Type := - { - SliceIndex_f_Output : Type; - SliceIndex_f_index : v_Self -> v_T -> SliceIndex_f_Output; - }. -Arguments v_SliceIndex (_) (_) {_}. - -#[global] Instance t_PartialEq_234431236 : t_PartialEq ((t_u8)) ((t_u8)) := - { - PartialEq_f_eq := fun (self : t_u8) (rhs : t_u8)=> - PartialEq_f_eq (u8_0 self) (u8_0 rhs); - PartialEq_f_ne := fun (self : t_u8) (rhs : t_u8)=> - negb (PartialEq_f_eq (u8_0 self) (u8_0 rhs)); - }. - -#[global] Instance t_PartialOrd_835131600 : t_PartialOrd ((t_u8)) ((t_u8)) := - { - PartialOrd_f_partial_cmp := fun (self : t_u8) (rhs : t_u8)=> - PartialOrd_f_partial_cmp (u8_0 self) (u8_0 rhs); - PartialOrd_f_lt := fun (self : t_u8) (rhs : t_u8)=> - match PartialOrd_f_partial_cmp (u8_0 self) (u8_0 rhs) with - | Option_Some (Ordering_Less) => - true - | _ => - false - end; - PartialOrd_f_le := fun (self : t_u8) (rhs : t_u8)=> - match PartialOrd_f_partial_cmp (u8_0 self) (u8_0 rhs) with - | Option_Some (Ordering_Less - | Ordering_Equal) => - true - | _ => - false - end; - PartialOrd_f_gt := fun (self : t_u8) (rhs : t_u8)=> - match PartialOrd_f_partial_cmp (u8_0 self) (u8_0 rhs) with - | Option_Some (Ordering_Greater) => - true - | _ => - false - end; - PartialOrd_f_ge := fun (self : t_u8) (rhs : t_u8)=> - match PartialOrd_f_partial_cmp (u8_0 self) (u8_0 rhs) with - | Option_Some (Ordering_Greater - | Ordering_Equal) => - true - | _ => - false - end; - }. - -#[global] Instance t_PartialEq_965259828 : t_PartialEq ((t_u16)) ((t_u16)) := - { - PartialEq_f_eq := fun (self : t_u16) (rhs : t_u16)=> - PartialEq_f_eq (u16_0 self) (u16_0 rhs); - PartialEq_f_ne := fun (self : t_u16) (rhs : t_u16)=> - negb (PartialEq_f_eq (u16_0 self) (u16_0 rhs)); - }. - -#[global] Instance t_PartialOrd_116974173 : t_PartialOrd ((t_u16)) ((t_u16)) := - { - PartialOrd_f_partial_cmp := fun (self : t_u16) (rhs : t_u16)=> - PartialOrd_f_partial_cmp (u16_0 self) (u16_0 rhs); - PartialOrd_f_lt := fun (self : t_u16) (rhs : t_u16)=> - match PartialOrd_f_partial_cmp (u16_0 self) (u16_0 rhs) with - | Option_Some (Ordering_Less) => - true - | _ => - false - end; - PartialOrd_f_le := fun (self : t_u16) (rhs : t_u16)=> - match PartialOrd_f_partial_cmp (u16_0 self) (u16_0 rhs) with - | Option_Some (Ordering_Less - | Ordering_Equal) => - true - | _ => - false - end; - PartialOrd_f_gt := fun (self : t_u16) (rhs : t_u16)=> - match PartialOrd_f_partial_cmp (u16_0 self) (u16_0 rhs) with - | Option_Some (Ordering_Greater) => - true - | _ => - false - end; - PartialOrd_f_ge := fun (self : t_u16) (rhs : t_u16)=> - match PartialOrd_f_partial_cmp (u16_0 self) (u16_0 rhs) with - | Option_Some (Ordering_Greater - | Ordering_Equal) => - true - | _ => - false - end; - }. - -#[global] Instance t_PartialEq_739399974 : t_PartialEq ((t_u32)) ((t_u32)) := - { - PartialEq_f_eq := fun (self : t_u32) (rhs : t_u32)=> - PartialEq_f_eq (u32_0 self) (u32_0 rhs); - PartialEq_f_ne := fun (self : t_u32) (rhs : t_u32)=> - negb (PartialEq_f_eq (u32_0 self) (u32_0 rhs)); - }. - -#[global] Instance t_PartialOrd_553141371 : t_PartialOrd ((t_u32)) ((t_u32)) := - { - PartialOrd_f_partial_cmp := fun (self : t_u32) (rhs : t_u32)=> - PartialOrd_f_partial_cmp (u32_0 self) (u32_0 rhs); - PartialOrd_f_lt := fun (self : t_u32) (rhs : t_u32)=> - match PartialOrd_f_partial_cmp (u32_0 self) (u32_0 rhs) with - | Option_Some (Ordering_Less) => - true - | _ => - false - end; - PartialOrd_f_le := fun (self : t_u32) (rhs : t_u32)=> - match PartialOrd_f_partial_cmp (u32_0 self) (u32_0 rhs) with - | Option_Some (Ordering_Less - | Ordering_Equal) => - true - | _ => - false - end; - PartialOrd_f_gt := fun (self : t_u32) (rhs : t_u32)=> - match PartialOrd_f_partial_cmp (u32_0 self) (u32_0 rhs) with - | Option_Some (Ordering_Greater) => - true - | _ => - false - end; - PartialOrd_f_ge := fun (self : t_u32) (rhs : t_u32)=> - match PartialOrd_f_partial_cmp (u32_0 self) (u32_0 rhs) with - | Option_Some (Ordering_Greater - | Ordering_Equal) => - true - | _ => - false - end; - }. - -#[global] Instance t_PartialEq_464367537 : t_PartialEq ((t_u64)) ((t_u64)) := - { - PartialEq_f_eq := fun (self : t_u64) (rhs : t_u64)=> - PartialEq_f_eq (u64_0 self) (u64_0 rhs); - PartialEq_f_ne := fun (self : t_u64) (rhs : t_u64)=> - negb (PartialEq_f_eq (u64_0 self) (u64_0 rhs)); - }. - -#[global] Instance t_PartialOrd_207997255 : t_PartialOrd ((t_u64)) ((t_u64)) := - { - PartialOrd_f_partial_cmp := fun (self : t_u64) (rhs : t_u64)=> - PartialOrd_f_partial_cmp (u64_0 self) (u64_0 rhs); - PartialOrd_f_lt := fun (self : t_u64) (rhs : t_u64)=> - match PartialOrd_f_partial_cmp (u64_0 self) (u64_0 rhs) with - | Option_Some (Ordering_Less) => - true - | _ => - false - end; - PartialOrd_f_le := fun (self : t_u64) (rhs : t_u64)=> - match PartialOrd_f_partial_cmp (u64_0 self) (u64_0 rhs) with - | Option_Some (Ordering_Less - | Ordering_Equal) => - true - | _ => - false - end; - PartialOrd_f_gt := fun (self : t_u64) (rhs : t_u64)=> - match PartialOrd_f_partial_cmp (u64_0 self) (u64_0 rhs) with - | Option_Some (Ordering_Greater) => - true - | _ => - false - end; - PartialOrd_f_ge := fun (self : t_u64) (rhs : t_u64)=> - match PartialOrd_f_partial_cmp (u64_0 self) (u64_0 rhs) with - | Option_Some (Ordering_Greater - | Ordering_Equal) => - true - | _ => - false - end; - }. - -#[global] Instance t_PartialEq_876938738 : t_PartialEq ((t_u128)) ((t_u128)) := - { - PartialEq_f_eq := fun (self : t_u128) (rhs : t_u128)=> - PartialEq_f_eq (u128_0 self) (u128_0 rhs); - PartialEq_f_ne := fun (self : t_u128) (rhs : t_u128)=> - negb (PartialEq_f_eq (u128_0 self) (u128_0 rhs)); - }. - -#[global] Instance t_PartialOrd_566729496 : t_PartialOrd ((t_u128)) ((t_u128)) := - { - PartialOrd_f_partial_cmp := fun (self : t_u128) (rhs : t_u128)=> - PartialOrd_f_partial_cmp (u128_0 self) (u128_0 rhs); - PartialOrd_f_lt := fun (self : t_u128) (rhs : t_u128)=> - match PartialOrd_f_partial_cmp (u128_0 self) (u128_0 rhs) with - | Option_Some (Ordering_Less) => - true - | _ => - false - end; - PartialOrd_f_le := fun (self : t_u128) (rhs : t_u128)=> - match PartialOrd_f_partial_cmp (u128_0 self) (u128_0 rhs) with - | Option_Some (Ordering_Less - | Ordering_Equal) => - true - | _ => - false - end; - PartialOrd_f_gt := fun (self : t_u128) (rhs : t_u128)=> - match PartialOrd_f_partial_cmp (u128_0 self) (u128_0 rhs) with - | Option_Some (Ordering_Greater) => - true - | _ => - false - end; - PartialOrd_f_ge := fun (self : t_u128) (rhs : t_u128)=> - match PartialOrd_f_partial_cmp (u128_0 self) (u128_0 rhs) with - | Option_Some (Ordering_Greater - | Ordering_Equal) => - true - | _ => - false - end; - }. - -#[global] Instance t_PartialEq_1011013145 : t_PartialEq ((t_usize)) ((t_usize)) := - { - PartialEq_f_eq := fun (self : t_usize) (rhs : t_usize)=> - PartialEq_f_eq (usize_0 self) (usize_0 rhs); - PartialEq_f_ne := fun (self : t_usize) (rhs : t_usize)=> - negb (PartialEq_f_eq (usize_0 self) (usize_0 rhs)); - }. - -#[global] Instance t_PartialOrd_917114071 : t_PartialOrd ((t_usize)) ((t_usize)) := - { - PartialOrd_f_partial_cmp := fun (self : t_usize) (rhs : t_usize)=> - PartialOrd_f_partial_cmp (usize_0 self) (usize_0 rhs); - PartialOrd_f_lt := fun (self : t_usize) (rhs : t_usize)=> - match PartialOrd_f_partial_cmp (usize_0 self) (usize_0 rhs) with - | Option_Some (Ordering_Less) => - true - | _ => - false - end; - PartialOrd_f_le := fun (self : t_usize) (rhs : t_usize)=> - match PartialOrd_f_partial_cmp (usize_0 self) (usize_0 rhs) with - | Option_Some (Ordering_Less - | Ordering_Equal) => - true - | _ => - false - end; - PartialOrd_f_gt := fun (self : t_usize) (rhs : t_usize)=> - match PartialOrd_f_partial_cmp (usize_0 self) (usize_0 rhs) with - | Option_Some (Ordering_Greater) => - true - | _ => - false - end; - PartialOrd_f_ge := fun (self : t_usize) (rhs : t_usize)=> - match PartialOrd_f_partial_cmp (usize_0 self) (usize_0 rhs) with - | Option_Some (Ordering_Greater - | Ordering_Equal) => - true - | _ => - false - end; - }. - -#[global] Instance t_PartialEq_515285814 : t_PartialEq ((t_i8)) ((t_i8)) := - { - PartialEq_f_eq := fun (self : t_i8) (rhs : t_i8)=> - PartialEq_f_eq (i8_0 self) (i8_0 rhs); - PartialEq_f_ne := fun (self : t_i8) (rhs : t_i8)=> - negb (PartialEq_f_eq (i8_0 self) (i8_0 rhs)); - }. - -#[global] Instance t_PartialOrd_610141491 : t_PartialOrd ((t_i8)) ((t_i8)) := - { - PartialOrd_f_partial_cmp := fun (self : t_i8) (rhs : t_i8)=> - PartialOrd_f_partial_cmp (i8_0 self) (i8_0 rhs); - PartialOrd_f_lt := fun (self : t_i8) (rhs : t_i8)=> - match PartialOrd_f_partial_cmp (i8_0 self) (i8_0 rhs) with - | Option_Some (Ordering_Less) => - true - | _ => - false - end; - PartialOrd_f_le := fun (self : t_i8) (rhs : t_i8)=> - match PartialOrd_f_partial_cmp (i8_0 self) (i8_0 rhs) with - | Option_Some (Ordering_Less - | Ordering_Equal) => - true - | _ => - false - end; - PartialOrd_f_gt := fun (self : t_i8) (rhs : t_i8)=> - match PartialOrd_f_partial_cmp (i8_0 self) (i8_0 rhs) with - | Option_Some (Ordering_Greater) => - true - | _ => - false - end; - PartialOrd_f_ge := fun (self : t_i8) (rhs : t_i8)=> - match PartialOrd_f_partial_cmp (i8_0 self) (i8_0 rhs) with - | Option_Some (Ordering_Greater - | Ordering_Equal) => - true - | _ => - false - end; - }. - -#[global] Instance t_PartialEq_341364762 : t_PartialEq ((t_i16)) ((t_i16)) := - { - PartialEq_f_eq := fun (self : t_i16) (rhs : t_i16)=> - PartialEq_f_eq (i16_0 self) (i16_0 rhs); - PartialEq_f_ne := fun (self : t_i16) (rhs : t_i16)=> - negb (PartialEq_f_eq (i16_0 self) (i16_0 rhs)); - }. - -#[global] Instance t_PartialOrd_685280672 : t_PartialOrd ((t_i16)) ((t_i16)) := - { - PartialOrd_f_partial_cmp := fun (self : t_i16) (rhs : t_i16)=> - PartialOrd_f_partial_cmp (i16_0 self) (i16_0 rhs); - PartialOrd_f_lt := fun (self : t_i16) (rhs : t_i16)=> - match PartialOrd_f_partial_cmp (i16_0 self) (i16_0 rhs) with - | Option_Some (Ordering_Less) => - true - | _ => - false - end; - PartialOrd_f_le := fun (self : t_i16) (rhs : t_i16)=> - match PartialOrd_f_partial_cmp (i16_0 self) (i16_0 rhs) with - | Option_Some (Ordering_Less - | Ordering_Equal) => - true - | _ => - false - end; - PartialOrd_f_gt := fun (self : t_i16) (rhs : t_i16)=> - match PartialOrd_f_partial_cmp (i16_0 self) (i16_0 rhs) with - | Option_Some (Ordering_Greater) => - true - | _ => - false - end; - PartialOrd_f_ge := fun (self : t_i16) (rhs : t_i16)=> - match PartialOrd_f_partial_cmp (i16_0 self) (i16_0 rhs) with - | Option_Some (Ordering_Greater - | Ordering_Equal) => - true - | _ => - false - end; - }. - -#[global] Instance t_PartialEq_335582486 : t_PartialEq ((t_i32)) ((t_i32)) := - { - PartialEq_f_eq := fun (self : t_i32) (rhs : t_i32)=> - PartialEq_f_eq (i32_0 self) (i32_0 rhs); - PartialEq_f_ne := fun (self : t_i32) (rhs : t_i32)=> - negb (PartialEq_f_eq (i32_0 self) (i32_0 rhs)); - }. - -#[global] Instance t_PartialOrd_776800970 : t_PartialOrd ((t_i32)) ((t_i32)) := - { - PartialOrd_f_partial_cmp := fun (self : t_i32) (rhs : t_i32)=> - PartialOrd_f_partial_cmp (i32_0 self) (i32_0 rhs); - PartialOrd_f_lt := fun (self : t_i32) (rhs : t_i32)=> - match PartialOrd_f_partial_cmp (i32_0 self) (i32_0 rhs) with - | Option_Some (Ordering_Less) => - true - | _ => - false - end; - PartialOrd_f_le := fun (self : t_i32) (rhs : t_i32)=> - match PartialOrd_f_partial_cmp (i32_0 self) (i32_0 rhs) with - | Option_Some (Ordering_Less - | Ordering_Equal) => - true - | _ => - false - end; - PartialOrd_f_gt := fun (self : t_i32) (rhs : t_i32)=> - match PartialOrd_f_partial_cmp (i32_0 self) (i32_0 rhs) with - | Option_Some (Ordering_Greater) => - true - | _ => - false - end; - PartialOrd_f_ge := fun (self : t_i32) (rhs : t_i32)=> - match PartialOrd_f_partial_cmp (i32_0 self) (i32_0 rhs) with - | Option_Some (Ordering_Greater - | Ordering_Equal) => - true - | _ => - false - end; - }. - -#[global] Instance t_PartialEq_1019995697 : t_PartialEq ((t_i64)) ((t_i64)) := - { - PartialEq_f_eq := fun (self : t_i64) (rhs : t_i64)=> - PartialEq_f_eq (i64_0 self) (i64_0 rhs); - PartialEq_f_ne := fun (self : t_i64) (rhs : t_i64)=> - negb (PartialEq_f_eq (i64_0 self) (i64_0 rhs)); - }. - -#[global] Instance t_PartialOrd_354028907 : t_PartialOrd ((t_i64)) ((t_i64)) := - { - PartialOrd_f_partial_cmp := fun (self : t_i64) (rhs : t_i64)=> - PartialOrd_f_partial_cmp (i64_0 self) (i64_0 rhs); - PartialOrd_f_lt := fun (self : t_i64) (rhs : t_i64)=> - match PartialOrd_f_partial_cmp (i64_0 self) (i64_0 rhs) with - | Option_Some (Ordering_Less) => - true - | _ => - false - end; - PartialOrd_f_le := fun (self : t_i64) (rhs : t_i64)=> - match PartialOrd_f_partial_cmp (i64_0 self) (i64_0 rhs) with - | Option_Some (Ordering_Less - | Ordering_Equal) => - true - | _ => - false - end; - PartialOrd_f_gt := fun (self : t_i64) (rhs : t_i64)=> - match PartialOrd_f_partial_cmp (i64_0 self) (i64_0 rhs) with - | Option_Some (Ordering_Greater) => - true - | _ => - false - end; - PartialOrd_f_ge := fun (self : t_i64) (rhs : t_i64)=> - match PartialOrd_f_partial_cmp (i64_0 self) (i64_0 rhs) with - | Option_Some (Ordering_Greater - | Ordering_Equal) => - true - | _ => - false - end; - }. - -#[global] Instance t_PartialEq_476424898 : t_PartialEq ((t_i128)) ((t_i128)) := - { - PartialEq_f_eq := fun (self : t_i128) (rhs : t_i128)=> - PartialEq_f_eq (i128_0 self) (i128_0 rhs); - PartialEq_f_ne := fun (self : t_i128) (rhs : t_i128)=> - negb (PartialEq_f_eq (i128_0 self) (i128_0 rhs)); - }. - -#[global] Instance t_PartialOrd_532073533 : t_PartialOrd ((t_i128)) ((t_i128)) := - { - PartialOrd_f_partial_cmp := fun (self : t_i128) (rhs : t_i128)=> - PartialOrd_f_partial_cmp (i128_0 self) (i128_0 rhs); - PartialOrd_f_lt := fun (self : t_i128) (rhs : t_i128)=> - match PartialOrd_f_partial_cmp (i128_0 self) (i128_0 rhs) with - | Option_Some (Ordering_Less) => - true - | _ => - false - end; - PartialOrd_f_le := fun (self : t_i128) (rhs : t_i128)=> - match PartialOrd_f_partial_cmp (i128_0 self) (i128_0 rhs) with - | Option_Some (Ordering_Less - | Ordering_Equal) => - true - | _ => - false - end; - PartialOrd_f_gt := fun (self : t_i128) (rhs : t_i128)=> - match PartialOrd_f_partial_cmp (i128_0 self) (i128_0 rhs) with - | Option_Some (Ordering_Greater) => - true - | _ => - false - end; - PartialOrd_f_ge := fun (self : t_i128) (rhs : t_i128)=> - match PartialOrd_f_partial_cmp (i128_0 self) (i128_0 rhs) with - | Option_Some (Ordering_Greater - | Ordering_Equal) => - true - | _ => - false - end; - }. - -#[global] Instance t_PartialEq_675022234 : t_PartialEq ((t_isize)) ((t_isize)) := - { - PartialEq_f_eq := fun (self : t_isize) (rhs : t_isize)=> - PartialEq_f_eq (isize_0 self) (isize_0 rhs); - PartialEq_f_ne := fun (self : t_isize) (rhs : t_isize)=> - negb (PartialEq_f_eq (isize_0 self) (isize_0 rhs)); - }. - -#[global] Instance t_PartialOrd_661215608 : t_PartialOrd ((t_isize)) ((t_isize)) := - { - PartialOrd_f_partial_cmp := fun (self : t_isize) (rhs : t_isize)=> - PartialOrd_f_partial_cmp (isize_0 self) (isize_0 rhs); - PartialOrd_f_lt := fun (self : t_isize) (rhs : t_isize)=> - match PartialOrd_f_partial_cmp (isize_0 self) (isize_0 rhs) with - | Option_Some (Ordering_Less) => - true - | _ => - false - end; - PartialOrd_f_le := fun (self : t_isize) (rhs : t_isize)=> - match PartialOrd_f_partial_cmp (isize_0 self) (isize_0 rhs) with - | Option_Some (Ordering_Less - | Ordering_Equal) => - true - | _ => - false - end; - PartialOrd_f_gt := fun (self : t_isize) (rhs : t_isize)=> - match PartialOrd_f_partial_cmp (isize_0 self) (isize_0 rhs) with - | Option_Some (Ordering_Greater) => - true - | _ => - false - end; - PartialOrd_f_ge := fun (self : t_isize) (rhs : t_isize)=> - match PartialOrd_f_partial_cmp (isize_0 self) (isize_0 rhs) with - | Option_Some (Ordering_Greater - | Ordering_Equal) => - true - | _ => - false - end; - }. - -#[global] Instance t_From_number_i8 : t_From t_i8 Z := - { - From_f_from (x : Z) := Build_t_i8 (Build_t_I8 x) - }. - -#[global] Instance t_From_number_i16 : t_From t_i16 Z := - { - From_f_from (x : Z) := Build_t_i16 (Build_t_I16 x) - }. - -#[global] Instance t_From_number_i32 : t_From t_i32 Z := - { - From_f_from (x : Z) := Build_t_i32 (Build_t_I32 x) - }. - -#[global] Instance t_From_number_i64 : t_From t_i64 Z := - { - From_f_from (x : Z) := Build_t_i64 (Build_t_I64 x) - }. - -#[global] Instance t_From_number_i128 : t_From t_i128 Z := - { - From_f_from (x : Z) := Build_t_i128 (Build_t_I128 x) - }. - -#[global] Instance t_From_number_isize : t_From t_isize Z := - { - From_f_from (x : Z) := Build_t_isize (Build_t_I64 x) - }. - -#[global] Instance t_From_number_Zi8 : t_From Z t_i8 := - { - From_f_from (x : t_i8) := I8_f_v (i8_0 x) - }. - -#[global] Instance t_From_number_Zi16 : t_From Z t_i16 := - { - From_f_from (x : t_i16) := I16_f_v (i16_0 x) - }. - -#[global] Instance t_From_number_Zi32 : t_From Z t_i32 := - { - From_f_from (x : t_i32) := I32_f_v (i32_0 x) - }. - -#[global] Instance t_From_number_Zi64 : t_From Z t_i64 := - { - From_f_from (x : t_i64) := I64_f_v (i64_0 x) - }. - -#[global] Instance t_From_number_Zi128 : t_From Z t_i128 := - { - From_f_from (x : t_i128) := I128_f_v (i128_0 x) - }. - -#[global] Instance t_From_number_Zisize : t_From Z t_isize := - { - From_f_from (x : t_isize) := I64_f_v (isize_0 x) - }. - -Definition is_negative350273175 (self : t_i8) : bool := - PartialOrd_f_lt (self) (Into_f_into (0)). - -Definition is_positive286955196 (self : t_i8) : bool := - PartialOrd_f_gt (self) (Into_f_into (0)). - -Definition signum721334203 (self : t_i8) : t_i8 := - if - PartialOrd_f_lt (Clone_f_clone (self)) (Into_f_into (0)) - then - Into_f_into (-1) - else - if - PartialEq_f_eq (self) (Into_f_into (0)) - then - Into_f_into (0) - else - Into_f_into (1). - -Instance t_From_687588567 : t_From ((t_i8)) ((t_i8)) := - { - From_f_from := fun (x : t_i8)=> - Into_f_into (I8_f_v (i8_0 x)); - }. - -Instance t_From_257005484 : t_From ((t_i16)) ((t_i16)) := - { - From_f_from := fun (x : t_i16)=> - Build_t_i16 (Build_t_I16 (Into_f_into (x))); - }. - -Definition is_negative477067241 (self : t_i16) : bool := - PartialOrd_f_lt (self) (Into_f_into (0)). - -Definition is_positive821581438 (self : t_i16) : bool := - PartialOrd_f_gt (self) (Into_f_into (0)). - -Definition signum243706004 (self : t_i16) : t_i16 := - if - PartialOrd_f_lt (Clone_f_clone (self)) (Into_f_into (0)) - then - Into_f_into (-1) - else - if - PartialEq_f_eq (self) (Into_f_into (0)) - then - Into_f_into (0) - else - Into_f_into (1). - -(* Instance t_From_560870163 : t_From ((t_i16)) ((t_i16)) := *) -(* { *) -(* From_f_from := fun (x : t_i16)=> *) -(* Into_f_into (I16_f_v (i16_0 x)); *) -(* }. *) - -(* Instance t_From_17641682 : t_From ((t_i32)) ((t_i32)) := *) -(* { *) -(* From_f_from := fun (x : t_i32)=> *) -(* t_i32 (Build_t_I32 (Into_f_into (x))); *) -(* }. *) - -Definition is_negative1035644813 (self : t_i32) : bool := - PartialOrd_f_lt (self) (Into_f_into (0)). - -Definition is_positive401652342 (self : t_i32) : bool := - PartialOrd_f_gt (self) (Into_f_into (0)). - -Definition signum323641039 (self : t_i32) : t_i32 := - if - PartialOrd_f_lt (Clone_f_clone (self)) (Into_f_into (0)) - then - Into_f_into (-1) - else - if - PartialEq_f_eq (self) (Into_f_into (0)) - then - Into_f_into (0) - else - Into_f_into (1). - -(* Instance t_From_865467252 : t_From ((t_i32)) ((t_i32)) := *) -(* { *) -(* From_f_from := fun (x : t_i32)=> *) -(* Into_f_into (I32_f_v (i32_0 x)); *) -(* }. *) - -(* Instance t_From_881024429 : t_From ((t_i64)) ((t_i64)) := *) -(* { *) -(* From_f_from := fun (x : t_i64)=> *) -(* t_i64 (Build_t_I64 (Into_f_into (x))); *) -(* }. *) - -Definition is_negative1066124578 (self : t_i64) : bool := - PartialOrd_f_lt (self) (Into_f_into (0)). - -Definition is_positive16569358 (self : t_i64) : bool := - PartialOrd_f_gt (self) (Into_f_into (0)). - -Definition signum582963664 (self : t_i64) : t_i64 := - if - PartialOrd_f_lt (Clone_f_clone (self)) (Into_f_into (0)) - then - Into_f_into (-1) - else - if - PartialEq_f_eq (self) (Into_f_into (0)) - then - Into_f_into (0) - else - Into_f_into (1). - -(* Instance t_From_101582575 : t_From ((t_i64)) ((t_i64)) := *) -(* { *) -(* From_f_from := fun (x : t_i64)=> *) -(* Into_f_into (I64_f_v i64_0 x); *) -(* }. *) - -(* Instance t_From_954204920 : t_From ((t_i128)) ((t_i128)) := *) -(* { *) -(* From_f_from := fun (x : t_i128)=> *) -(* t_i128 (Build_t_I128 (Into_f_into (x))); *) -(* }. *) - -Definition is_negative221698470 (self : t_i128) : bool := - PartialOrd_f_lt (self) (Into_f_into (0)). - -Definition is_positive883218309 (self : t_i128) : bool := - PartialOrd_f_gt (self) (Into_f_into (0)). - -Definition signum408800799 (self : t_i128) : t_i128 := - if - PartialOrd_f_lt (Clone_f_clone (self)) (Into_f_into (0)) - then - Into_f_into (-1) - else - if - PartialEq_f_eq (self) (Into_f_into (0)) - then - Into_f_into (0) - else - Into_f_into (1). - -(* Instance t_From_515435087 : t_From ((t_i128)) ((t_i128)) := *) -(* { *) -(* From_f_from := fun (x : t_i128)=> *) -(* Into_f_into (I128_f_v i128_0 x); *) -(* }. *) - -(* Instance t_From_1044036214 : t_From ((t_isize)) ((t_isize)) := *) -(* { *) -(* From_f_from := fun (x : t_isize)=> *) -(* t_isize (Build_t_I64 (Into_f_into (x))); *) -(* }. *) - -Definition is_negative693446369 (self : t_isize) : bool := - PartialOrd_f_lt (self) (Into_f_into (0)). - -Definition is_positive169998680 (self : t_isize) : bool := - PartialOrd_f_gt (self) (Into_f_into (0)). - -Definition signum91486536 (self : t_isize) : t_isize := - if - PartialOrd_f_lt (Clone_f_clone (self)) (Into_f_into (0)) - then - Into_f_into (-1) - else - if - PartialEq_f_eq (self) (Into_f_into (0)) - then - Into_f_into (0) - else - Into_f_into (1). - -#[global] Instance t_From_202441647 : t_From ((t_isize)) ((t_isize)) := - { - From_f_from := fun (x : t_isize)=> - Into_f_into (I64_f_v (isize_0 x)); - }. - -#[global] Instance t_From_100016775 : t_From ((t_i16)) ((t_i8)) := - { - From_f_from := fun (x : t_i8)=> - Build_t_i16 (Into_f_into (i8_0 x)); - }. - -#[global] Instance t_From_964712142 : t_From ((t_i32)) ((t_i8)) := - { - From_f_from := fun (x : t_i8)=> - Build_t_i32 (Into_f_into (i8_0 x)); - }. - -#[global] Instance t_From_512166668 : t_From ((t_i64)) ((t_i8)) := - { - From_f_from := fun (x : t_i8)=> - Build_t_i64 (Into_f_into (i8_0 x)); - }. - -#[global] Instance t_From_95828634 : t_From ((t_i128)) ((t_i8)) := - { - From_f_from := fun (x : t_i8)=> - Build_t_i128 (Into_f_into (i8_0 x)); - }. - -#[global] Instance t_From_48986939 : t_From ((t_isize)) ((t_i8)) := - { - From_f_from := fun (x : t_i8)=> - Build_t_isize (Into_f_into (i8_0 x)); - }. - -#[global] Instance t_From_325010041 : t_From ((t_i8)) ((t_i16)) := - { - From_f_from := fun (x : t_i16)=> - Build_t_i8 (Into_f_into (i16_0 x)); - }. - -#[global] Instance t_From_64357194 : t_From ((t_i32)) ((t_i16)) := - { - From_f_from := fun (x : t_i16)=> - Build_t_i32 (Into_f_into (i16_0 x)); - }. - -#[global] Instance t_From_840335964 : t_From ((t_i64)) ((t_i16)) := - { - From_f_from := fun (x : t_i16)=> - Build_t_i64 (Into_f_into (i16_0 x)); - }. - -#[global] Instance t_From_601385454 : t_From ((t_i128)) ((t_i16)) := - { - From_f_from := fun (x : t_i16)=> - Build_t_i128 (Into_f_into (i16_0 x)); - }. - -#[global] Instance t_From_755383497 : t_From ((t_isize)) ((t_i16)) := - { - From_f_from := fun (x : t_i16)=> - Build_t_isize (Into_f_into (i16_0 x)); - }. - -#[global] Instance t_From_926112880 : t_From ((t_i8)) ((t_i32)) := - { - From_f_from := fun (x : t_i32)=> - Build_t_i8 (Into_f_into (i32_0 x)); - }. - -#[global] Instance t_From_81353160 : t_From ((t_i16)) ((t_i32)) := - { - From_f_from := fun (x : t_i32)=> - Build_t_i16 (Into_f_into (i32_0 x)); - }. - -#[global] Instance t_From_549703007 : t_From ((t_i64)) ((t_i32)) := - { - From_f_from := fun (x : t_i32)=> - Build_t_i64 (Into_f_into (i32_0 x)); - }. - -#[global] Instance t_From_1001458175 : t_From ((t_i128)) ((t_i32)) := - { - From_f_from := fun (x : t_i32)=> - Build_t_i128 (Into_f_into (i32_0 x)); - }. - -#[global] Instance t_From_329934859 : t_From ((t_isize)) ((t_i32)) := - { - From_f_from := fun (x : t_i32)=> - Build_t_isize (Into_f_into (i32_0 x)); - }. - -#[global] Instance t_From_381441019 : t_From ((t_i8)) ((t_i64)) := - { - From_f_from := fun (x : t_i64)=> - Build_t_i8 (Into_f_into (i64_0 x)); - }. - -#[global] Instance t_From_728811179 : t_From ((t_i16)) ((t_i64)) := - { - From_f_from := fun (x : t_i64)=> - Build_t_i16 (Into_f_into (i64_0 x)); - }. - -#[global] Instance t_From_1003839356 : t_From ((t_i32)) ((t_i64)) := - { - From_f_from := fun (x : t_i64)=> - Build_t_i32 (Into_f_into (i64_0 x)); - }. - -#[global] Instance t_From_625109732 : t_From ((t_i128)) ((t_i64)) := - { - From_f_from := fun (x : t_i64)=> - Build_t_i128 (Into_f_into (i64_0 x)); - }. - -#[global] Instance t_From_34424521 : t_From ((t_i8)) ((t_i128)) := - { - From_f_from := fun (x : t_i128)=> - Build_t_i8 (Into_f_into (i128_0 x)); - }. - -#[global] Instance t_From_603602239 : t_From ((t_i16)) ((t_i128)) := - { - From_f_from := fun (x : t_i128)=> - Build_t_i16 (Into_f_into (i128_0 x)); - }. - -#[global] Instance t_From_479038908 : t_From ((t_i32)) ((t_i128)) := - { - From_f_from := fun (x : t_i128)=> - Build_t_i32 (Into_f_into (i128_0 x)); - }. - -#[global] Instance t_From_299745195 : t_From ((t_i64)) ((t_i128)) := - { - From_f_from := fun (x : t_i128)=> - Build_t_i64 (Into_f_into (i128_0 x)); - }. - -#[global] Instance t_From_615821455 : t_From ((t_isize)) ((t_i128)) := - { - From_f_from := fun (x : t_i128)=> - Build_t_isize (Into_f_into (i128_0 x)); - }. - -#[global] Instance t_From_376191918 : t_From ((t_i8)) ((t_isize)) := - { - From_f_from := fun (x : t_isize)=> - Build_t_i8 (Into_f_into (isize_0 x)); - }. - -#[global] Instance t_From_649927535 : t_From ((t_i16)) ((t_isize)) := - { - From_f_from := fun (x : t_isize)=> - Build_t_i16 (Into_f_into (isize_0 x)); - }. - -#[global] Instance t_From_395262437 : t_From ((t_i32)) ((t_isize)) := - { - From_f_from := fun (x : t_isize)=> - Build_t_i32 (Into_f_into (isize_0 x)); - }. - -#[global] Instance t_From_218237752 : t_From ((t_i128)) ((t_isize)) := - { - From_f_from := fun (x : t_isize)=> - Build_t_i128 (Into_f_into (isize_0 x)); - }. - -Definition add_with_overflow_i128 (x : t_i128) (y : t_i128) : (t_i128*bool) := - let overflow := z_add (Abstraction_f_lift (i128_0 x)) (Abstraction_f_lift (i128_0 y)) in - let res : t_I128 := Concretization_f_concretize (Clone_f_clone (overflow)) in - (Build_t_i128 (Clone_f_clone (res)),z_lt (Abstraction_f_lift (res)) (overflow)). - -Definition add_with_overflow_i16 (x : t_i16) (y : t_i16) : (t_i16*bool) := - let overflow := z_add (Abstraction_f_lift (i16_0 x)) (Abstraction_f_lift (i16_0 y)) in - let res : t_I16 := Concretization_f_concretize (Clone_f_clone (overflow)) in - (Build_t_i16 (Clone_f_clone (res)),z_lt (Abstraction_f_lift (res)) (overflow)). - -Definition add_with_overflow_i32 (x : t_i32) (y : t_i32) : (t_i32*bool) := - let overflow := z_add (Abstraction_f_lift (i32_0 x)) (Abstraction_f_lift (i32_0 y)) in - let res : t_I32 := Concretization_f_concretize (Clone_f_clone (overflow)) in - (Build_t_i32 (Clone_f_clone (res)),z_lt (Abstraction_f_lift (res)) (overflow)). - -Definition add_with_overflow_i64 (x : t_i64) (y : t_i64) : (t_i64*bool) := - let overflow := z_add (Abstraction_f_lift (i64_0 x)) (Abstraction_f_lift (i64_0 y)) in - let res : t_I64 := Concretization_f_concretize (Clone_f_clone (overflow)) in - (Build_t_i64 (Clone_f_clone (res)),z_lt (Abstraction_f_lift (res)) (overflow)). - -Definition add_with_overflow_i8 (x : t_i8) (y : t_i8) : (t_i8*bool) := - let overflow := z_add (Abstraction_f_lift (i8_0 x)) (Abstraction_f_lift (i8_0 y)) in - let res : t_I8 := Concretization_f_concretize (Clone_f_clone (overflow)) in - (Build_t_i8 (Clone_f_clone (res)),z_lt (Abstraction_f_lift (res)) (overflow)). - -Definition add_with_overflow_isize (x : t_isize) (y : t_isize) : (t_isize*bool) := - let overflow := z_add (Abstraction_f_lift (isize_0 x)) (Abstraction_f_lift (isize_0 y)) in - let res : t_I64 := Concretization_f_concretize (Clone_f_clone (overflow)) in - (Build_t_isize (Clone_f_clone (res)),z_lt (Abstraction_f_lift (res)) (overflow)). - -Definition unchecked_add_i128 (x : t_i128) (y : t_i128) : t_i128 := - Build_t_i128 (Build_t_I128 (z_add (Abstraction_f_lift (i128_0 x)) (Abstraction_f_lift (i128_0 y)))). - -Definition unchecked_add_i16 (x : t_i16) (y : t_i16) : t_i16 := - Build_t_i16 (Build_t_I16 (z_add (Abstraction_f_lift (i16_0 x)) (Abstraction_f_lift (i16_0 y)))). - -Definition unchecked_add_i32 (x : t_i32) (y : t_i32) : t_i32 := - Build_t_i32 (Build_t_I32 (z_add (Abstraction_f_lift (i32_0 x)) (Abstraction_f_lift (i32_0 y)))). - -Definition unchecked_add_i64 (x : t_i64) (y : t_i64) : t_i64 := - Build_t_i64 (Build_t_I64 (z_add (Abstraction_f_lift (i64_0 x)) (Abstraction_f_lift (i64_0 y)))). - -Definition unchecked_add_i8 (x : t_i8) (y : t_i8) : t_i8 := - Build_t_i8 (Build_t_I8 (z_add (Abstraction_f_lift (i8_0 x)) (Abstraction_f_lift (i8_0 y)))). - -Definition unchecked_add_isize (x : t_isize) (y : t_isize) : t_isize := - Build_t_isize (Build_t_I64 (z_add (Abstraction_f_lift (isize_0 x)) (Abstraction_f_lift (isize_0 y)))). - -Definition unchecked_add_u128 (x : t_u128) (y : t_u128) : t_u128 := - Build_t_u128 (Build_t_U128 (haxint_add (Abstraction_f_lift (u128_0 x)) (Abstraction_f_lift (u128_0 y)))). - -Definition unchecked_add_u16 (x : t_u16) (y : t_u16) : t_u16 := - Build_t_u16 (Build_t_U16 (haxint_add (Abstraction_f_lift (u16_0 x)) (Abstraction_f_lift (u16_0 y)))). - -Definition unchecked_add_u32 (x : t_u32) (y : t_u32) : t_u32 := - Build_t_u32 (Build_t_U32 (haxint_add (Abstraction_f_lift (u32_0 x)) (Abstraction_f_lift (u32_0 y)))). - -Definition unchecked_add_u64 (x : t_u64) (y : t_u64) : t_u64 := - Build_t_u64 (Build_t_U64 (haxint_add (Abstraction_f_lift (u64_0 x)) (Abstraction_f_lift (u64_0 y)))). - -Definition unchecked_add_u8 (x : t_u8) (y : t_u8) : t_u8 := - Build_t_u8 (Build_t_U8 (haxint_add (Abstraction_f_lift (u8_0 x)) (Abstraction_f_lift (u8_0 y)))). - -Definition unchecked_add_usize (x : t_usize) (y : t_usize) : t_usize := - Build_t_usize (Build_t_U64 (haxint_add (Abstraction_f_lift (usize_0 x)) (Abstraction_f_lift (usize_0 y)))). - -Definition checked_add268751055 (self : t_u8) (rhs : t_u8) : t_Option ((t_u8)) := - Option_Some (unchecked_add_u8 (self) (rhs)). - -Definition checked_add132377399 (self : t_u16) (rhs : t_u16) : t_Option ((t_u16)) := - Option_Some (unchecked_add_u16 (self) (rhs)). - -Definition checked_add985437730 (self : t_u32) (rhs : t_u32) : t_Option ((t_u32)) := - Option_Some (unchecked_add_u32 (self) (rhs)). - -Definition checked_add586246465 (self : t_u64) (rhs : t_u64) : t_Option ((t_u64)) := - Option_Some (unchecked_add_u64 (self) (rhs)). - -Definition checked_add218978451 (self : t_u128) (rhs : t_u128) : t_Option ((t_u128)) := - Option_Some (unchecked_add_u128 (self) (rhs)). - -Definition checked_add984013567 (self : t_usize) (rhs : t_usize) : t_Option ((t_usize)) := - Option_Some (unchecked_add_usize (self) (rhs)). - -Definition add_with_overflow_u128 (x : t_u128) (y : t_u128) : (t_u128*bool) := - let overflow := haxint_add (Abstraction_f_lift (u128_0 x)) (Abstraction_f_lift (u128_0 y)) in - let res : t_U128 := Concretization_f_concretize (Clone_f_clone (overflow)) in - (Build_t_u128 (Clone_f_clone (res)),haxint_lt (Abstraction_f_lift (res)) (overflow)). - -Definition add_with_overflow_u16 (x : t_u16) (y : t_u16) : (t_u16*bool) := - let overflow := haxint_add (Abstraction_f_lift (u16_0 x)) (Abstraction_f_lift (u16_0 y)) in - let res : t_U16 := Concretization_f_concretize (Clone_f_clone (overflow)) in - (Build_t_u16 (Clone_f_clone (res)),haxint_lt (Abstraction_f_lift (res)) (overflow)). - -Definition add_with_overflow_u32 (x : t_u32) (y : t_u32) : (t_u32*bool) := - let overflow := haxint_add (Abstraction_f_lift (u32_0 x)) (Abstraction_f_lift (u32_0 y)) in - let res : t_U32 := Concretization_f_concretize (Clone_f_clone (overflow)) in - (Build_t_u32 (Clone_f_clone (res)),haxint_lt (Abstraction_f_lift (res)) (overflow)). - -Definition add_with_overflow_u64 (x : t_u64) (y : t_u64) : (t_u64*bool) := - let overflow := haxint_add (Abstraction_f_lift (u64_0 x)) (Abstraction_f_lift (u64_0 y)) in - let res : t_U64 := Concretization_f_concretize (Clone_f_clone (overflow)) in - (Build_t_u64 (Clone_f_clone (res)),haxint_lt (Abstraction_f_lift (res)) (overflow)). - -Definition add_with_overflow_u8 (x : t_u8) (y : t_u8) : (t_u8*bool) := - let overflow := haxint_add (Abstraction_f_lift (u8_0 x)) (Abstraction_f_lift (u8_0 y)) in - let res : t_U8 := Concretization_f_concretize (Clone_f_clone (overflow)) in - (Build_t_u8 (Clone_f_clone (res)),haxint_lt (Abstraction_f_lift (res)) (overflow)). - -Definition add_with_overflow_usize (x : t_usize) (y : t_usize) : (t_usize*bool) := - let overflow := haxint_add (Abstraction_f_lift (usize_0 x)) (Abstraction_f_lift (usize_0 y)) in - let res : t_U64 := Concretization_f_concretize (Clone_f_clone (overflow)) in - (Build_t_usize (Clone_f_clone (res)),haxint_lt (Abstraction_f_lift (res)) (overflow)). - -Definition unchecked_div_u128 (x : t_u128) (y : t_u128) : t_u128 := - Build_t_u128 (Build_t_U128 (haxint_div (Abstraction_f_lift (u128_0 x)) (Abstraction_f_lift (u128_0 y)))). - -Definition unchecked_div_u16 (x : t_u16) (y : t_u16) : t_u16 := - Build_t_u16 (Build_t_U16 (haxint_div (Abstraction_f_lift (u16_0 x)) (Abstraction_f_lift (u16_0 y)))). - -Definition unchecked_div_u32 (x : t_u32) (y : t_u32) : t_u32 := - Build_t_u32 (Build_t_U32 (haxint_div (Abstraction_f_lift (u32_0 x)) (Abstraction_f_lift (u32_0 y)))). - -Definition unchecked_div_u64 (x : t_u64) (y : t_u64) : t_u64 := - Build_t_u64 (Build_t_U64 (haxint_div (Abstraction_f_lift (u64_0 x)) (Abstraction_f_lift (u64_0 y)))). - -Definition unchecked_div_u8 (x : t_u8) (y : t_u8) : t_u8 := - Build_t_u8 (Build_t_U8 (haxint_div (Abstraction_f_lift (u8_0 x)) (Abstraction_f_lift (u8_0 y)))). - -Definition unchecked_div_usize (x : t_usize) (y : t_usize) : t_usize := - Build_t_usize (Build_t_U64 (haxint_div (Abstraction_f_lift (usize_0 x)) (Abstraction_f_lift (usize_0 y)))). - -Definition wrapping_add_i128 (a : t_i128) (b : t_i128) : t_i128 := - Build_t_i128 (Add_f_add (i128_0 a) (i128_0 b)). - -Definition wrapping_add_i16 (a : t_i16) (b : t_i16) : t_i16 := - Build_t_i16 (Add_f_add (i16_0 a) (i16_0 b)). - -Definition wrapping_add_i32 (a : t_i32) (b : t_i32) : t_i32 := - Build_t_i32 (Add_f_add (i32_0 a) (i32_0 b)). - -Definition wrapping_add_i64 (a : t_i64) (b : t_i64) : t_i64 := - Build_t_i64 (Add_f_add (i64_0 a) (i64_0 b)). - -Definition wrapping_add_i8 (a : t_i8) (b : t_i8) : t_i8 := - Build_t_i8 (Add_f_add (i8_0 a) (i8_0 b)). - -Definition wrapping_add_isize (a : t_isize) (b : t_isize) : t_isize := - Build_t_isize (Add_f_add (isize_0 a) (isize_0 b)). - -Definition wrapping_sub_i128 (a : t_i128) (b : t_i128) : t_i128 := - Build_t_i128 (Sub_f_sub (i128_0 a) (i128_0 b)). - -Definition wrapping_sub_i16 (a : t_i16) (b : t_i16) : t_i16 := - Build_t_i16 (Sub_f_sub (i16_0 a) (i16_0 b)). - -Definition wrapping_sub_i32 (a : t_i32) (b : t_i32) : t_i32 := - Build_t_i32 (Sub_f_sub (i32_0 a) (i32_0 b)). - -Definition wrapping_sub_i64 (a : t_i64) (b : t_i64) : t_i64 := - Build_t_i64 (Sub_f_sub (i64_0 a) (i64_0 b)). - -Definition wrapping_sub_i8 (a : t_i8) (b : t_i8) : t_i8 := - Build_t_i8 (Sub_f_sub (i8_0 a) (i8_0 b)). - -Definition wrapping_sub_isize (a : t_isize) (b : t_isize) : t_isize := - Build_t_isize (Sub_f_sub (isize_0 a) (isize_0 b)). - -Definition wrapping_add634491935 (self : t_i8) (rhs : t_i8) : t_i8 := - wrapping_add_i8 (self) (rhs). - -Definition wrapping_sub973428293 (self : t_i8) (rhs : t_i8) : t_i8 := - wrapping_sub_i8 (self) (rhs). - -Definition wrapping_neg400701205 (self : t_i8) : t_i8 := - wrapping_sub973428293 (Into_f_into (0)) (self). - -Definition wrapping_abs400396545 (self : t_i8) : t_i8 := - if - is_negative350273175 (Clone_f_clone (self)) - then - wrapping_neg400701205 (self) - else - self. - -Definition wrapping_add868559108 (self : t_i16) (rhs : t_i16) : t_i16 := - wrapping_add_i16 (self) (rhs). - -Definition wrapping_sub189469152 (self : t_i16) (rhs : t_i16) : t_i16 := - wrapping_sub_i16 (self) (rhs). - -Definition wrapping_neg860505723 (self : t_i16) : t_i16 := - wrapping_sub189469152 (Into_f_into (0)) (self). - -Definition wrapping_abs229076826 (self : t_i16) : t_i16 := - if - is_negative477067241 (Clone_f_clone (self)) - then - wrapping_neg860505723 (self) - else - self. - -Definition wrapping_add475006616 (self : t_i32) (rhs : t_i32) : t_i32 := - wrapping_add_i32 (self) (rhs). - -Definition wrapping_sub298337071 (self : t_i32) (rhs : t_i32) : t_i32 := - wrapping_sub_i32 (self) (rhs). - -Definition wrapping_neg636433078 (self : t_i32) : t_i32 := - wrapping_sub298337071 (Into_f_into (0)) (self). - -Definition wrapping_abs729536875 (self : t_i32) : t_i32 := - if - is_negative1035644813 (Clone_f_clone (self)) - then - wrapping_neg636433078 (self) - else - self. - -Definition wrapping_add590074241 (self : t_i64) (rhs : t_i64) : t_i64 := - wrapping_add_i64 (self) (rhs). - -Definition wrapping_sub334584751 (self : t_i64) (rhs : t_i64) : t_i64 := - wrapping_sub_i64 (self) (rhs). - -Definition wrapping_neg868282938 (self : t_i64) : t_i64 := - wrapping_sub334584751 (Into_f_into (0)) (self). - -Definition wrapping_abs285829312 (self : t_i64) : t_i64 := - if - is_negative1066124578 (Clone_f_clone (self)) - then - wrapping_neg868282938 (self) - else - self. - -Definition wrapping_add251385439 (self : t_i128) (rhs : t_i128) : t_i128 := - wrapping_add_i128 (self) (rhs). - -Definition wrapping_sub681598071 (self : t_i128) (rhs : t_i128) : t_i128 := - wrapping_sub_i128 (self) (rhs). - -Definition wrapping_neg446546984 (self : t_i128) : t_i128 := - wrapping_sub681598071 (Into_f_into (0)) (self). - -Definition wrapping_abs281925696 (self : t_i128) : t_i128 := - if - is_negative221698470 (Clone_f_clone (self)) - then - wrapping_neg446546984 (self) - else - self. - -Definition wrapping_add226040243 (self : t_isize) (rhs : t_isize) : t_isize := - wrapping_add_isize (self) (rhs). - -Definition wrapping_sub698035192 (self : t_isize) (rhs : t_isize) : t_isize := - wrapping_sub_isize (self) (rhs). - -Definition wrapping_neg912291768 (self : t_isize) : t_isize := - wrapping_sub698035192 (Into_f_into (0)) (self). - -Definition wrapping_abs347300819 (self : t_isize) : t_isize := - if - is_negative693446369 (Clone_f_clone (self)) - then - wrapping_neg912291768 (self) - else - self. - -#[global] Instance f_into_t_u8 : t_From t_u8 N := - { - From_f_from (x : N) := Build_t_u8 (Build_t_U8 x) - }. - -#[global] Instance f_into_t_u16 : t_From t_u16 N := - { - From_f_from (x : N) := Build_t_u16 (Build_t_U16 x) - }. - -#[global] Instance f_into_t_u32 : t_From t_u32 N := - { - From_f_from (x : N) := Build_t_u32 (Build_t_U32 x) - }. - -#[global] Instance f_into_t_u64 : t_From t_u64 N := - { - From_f_from (x : N) := Build_t_u64 (Build_t_U64 x) - }. - -#[global] Instance f_into_t_u128 : t_From t_u128 N := - { - From_f_from (x : N) := Build_t_u128 (Build_t_U128 x) - }. - -#[global] Instance f_into_t_usize : t_From t_usize N := - { - From_f_from (x : N) := Build_t_usize (Build_t_U64 x) - }. - -Definition checked_div508301931 (self : t_u8) (rhs : t_u8) : t_Option ((t_u8)) := - if - PartialEq_f_eq (rhs) (Into_f_into 0%N) - then - Option_None - else - Option_Some (unchecked_div_u8 (self) (rhs)). - -Definition overflowing_add708890057 (self : t_u8) (rhs : t_u8) : (t_u8*bool) := - add_with_overflow_u8 (self) (rhs). - -Definition checked_div614920780 (self : t_u16) (rhs : t_u16) : t_Option ((t_u16)) := - if - PartialEq_f_eq (rhs) (Into_f_into (0%N)) - then - Option_None - else - Option_Some (unchecked_div_u16 (self) (rhs)). - -Definition overflowing_add1023344178 (self : t_u16) (rhs : t_u16) : (t_u16*bool) := - add_with_overflow_u16 (self) (rhs). - -Definition checked_div979383477 (self : t_u32) (rhs : t_u32) : t_Option ((t_u32)) := - if - PartialEq_f_eq (rhs) (Into_f_into (0%N)) - then - Option_None - else - Option_Some (unchecked_div_u32 (self) (rhs)). - -Definition overflowing_add905744292 (self : t_u32) (rhs : t_u32) : (t_u32*bool) := - add_with_overflow_u32 (self) (rhs). - -Definition checked_div988689127 (self : t_u64) (rhs : t_u64) : t_Option ((t_u64)) := - if - PartialEq_f_eq (rhs) (Into_f_into (0%N)) - then - Option_None - else - Option_Some (unchecked_div_u64 (self) (rhs)). - -Definition overflowing_add581983607 (self : t_u64) (rhs : t_u64) : (t_u64*bool) := - add_with_overflow_u64 (self) (rhs). - -Definition checked_div344106746 (self : t_u128) (rhs : t_u128) : t_Option ((t_u128)) := - if - PartialEq_f_eq (rhs) (Into_f_into (0%N)) - then - Option_None - else - Option_Some (unchecked_div_u128 (self) (rhs)). - -Definition overflowing_add458293681 (self : t_u128) (rhs : t_u128) : (t_u128*bool) := - add_with_overflow_u128 (self) (rhs). - -Definition checked_div80223906 (self : t_usize) (rhs : t_usize) : t_Option ((t_usize)) := - if - PartialEq_f_eq (rhs) (Into_f_into (0%N)) - then - Option_None - else - Option_Some (unchecked_div_usize (self) (rhs)). - -Definition overflowing_add682280407 (self : t_usize) (rhs : t_usize) : (t_usize*bool) := - add_with_overflow_usize (self) (rhs). - -Check t_Neg. -#[global] Instance t_Neg_125588538 : t_Neg ((t_i8)) := - { - Neg_f_Output := t_i8; - Neg_f_neg := fun (self : t_i8)=> - Build_t_i8 (Neg_f_neg (i8_0 self)); - }. - -Definition abs945505614 (self : t_i8) : t_i8 := - if - is_negative350273175 (Clone_f_clone (self)) - then - Neg_f_neg (self) - else - self. - -#[global] Instance t_Neg_977573626 : t_Neg ((t_i16)) := - { - Neg_f_Output := t_i16; - Neg_f_neg := fun (self : t_i16)=> - Build_t_i16 (Neg_f_neg (i16_0 self)); - }. - -Definition abs581170970 (self : t_i16) : t_i16 := - if - is_negative477067241 (Clone_f_clone (self)) - then - Neg_f_neg (self) - else - self. - -#[global] Instance t_Neg_289824503 : t_Neg ((t_i32)) := - { - Neg_f_Output := t_i32; - Neg_f_neg := fun (self : t_i32)=> - Build_t_i32 (Neg_f_neg (i32_0 self)); - }. - -Definition abs590464694 (self : t_i32) : t_i32 := - if - is_negative1035644813 (Clone_f_clone (self)) - then - Neg_f_neg (self) - else - self. - -#[global] Instance t_Neg_895800448 : t_Neg ((t_i64)) := - { - Neg_f_Output := t_i64; - Neg_f_neg := fun (self : t_i64)=> - Build_t_i64 (Neg_f_neg (i64_0 self)); - }. - -Definition abs654781043 (self : t_i64) : t_i64 := - if - is_negative1066124578 (Clone_f_clone (self)) - then - Neg_f_neg (self) - else - self. - -#[global] Instance t_Neg_830237431 : t_Neg ((t_i128)) := - { - Neg_f_Output := t_i128; - Neg_f_neg := fun (self : t_i128)=> - Build_t_i128 (Neg_f_neg (i128_0 self)); - }. - -Definition abs204417539 (self : t_i128) : t_i128 := - if - is_negative221698470 (Clone_f_clone (self)) - then - Neg_f_neg (self) - else - self. - -#[global] Instance t_Neg_693499423 : t_Neg ((t_isize)) := - { - Neg_f_Output := t_isize; - Neg_f_neg := fun (self : t_isize)=> - Build_t_isize (Neg_f_neg (isize_0 self)); - }. - -Definition abs220926056 (self : t_isize) : t_isize := - if - is_negative693446369 (Clone_f_clone (self)) - then - Neg_f_neg (self) - else - self. - -#[global] Instance t_BitOr_174929276 : t_BitOr ((t_i8)) ((t_i8)) := - { - BitOr_f_Output := t_i8; - BitOr_f_bitor := fun (self : t_i8) (other : t_i8)=> - Build_t_i8 (BitOr_f_bitor (i8_0 self) (i8_0 other)); - }. - -#[global] Instance t_BitOr_162600380 : t_BitOr ((t_i16)) ((t_i16)) := - { - BitOr_f_Output := t_i16; - BitOr_f_bitor := fun (self : t_i16) (other : t_i16)=> - Build_t_i16 (BitOr_f_bitor (i16_0 self) (i16_0 other)); - }. - -#[global] Instance t_BitOr_64689421 : t_BitOr ((t_i32)) ((t_i32)) := - { - BitOr_f_Output := t_i32; - BitOr_f_bitor := fun (self : t_i32) (other : t_i32)=> - Build_t_i32 (BitOr_f_bitor (i32_0 self) (i32_0 other)); - }. - -#[global] Instance t_BitOr_348780956 : t_BitOr ((t_i64)) ((t_i64)) := - { - BitOr_f_Output := t_i64; - BitOr_f_bitor := fun (self : t_i64) (other : t_i64)=> - Build_t_i64 (BitOr_f_bitor (i64_0 self) (i64_0 other)); - }. - -#[global] Instance t_BitOr_643690063 : t_BitOr ((t_i128)) ((t_i128)) := - { - BitOr_f_Output := t_i128; - BitOr_f_bitor := fun (self : t_i128) (other : t_i128)=> - Build_t_i128 (BitOr_f_bitor (i128_0 self) (i128_0 other)); - }. - -#[global] Instance t_BitOr_1027404433 : t_BitOr ((t_isize)) ((t_isize)) := - { - BitOr_f_Output := t_isize; - BitOr_f_bitor := fun (self : t_isize) (other : t_isize)=> - Build_t_isize (BitOr_f_bitor (isize_0 self) (isize_0 other)); - }. - -#[global] Instance t_From_124503227 : t_From ((t_u16)) ((t_u8)) := - { - From_f_from := fun (x : t_u8)=> - Build_t_u16 (Into_f_into (u8_0 x)); - }. - -#[global] Instance t_From_499390246 : t_From ((t_u32)) ((t_u8)) := - { - From_f_from := fun (x : t_u8)=> - Build_t_u32 (Into_f_into (u8_0 x)); - }. - -#[global] Instance t_From_1040523499 : t_From ((t_u64)) ((t_u8)) := - { - From_f_from := fun (x : t_u8)=> - Build_t_u64 (Into_f_into (u8_0 x)); - }. - -#[global] Instance t_From_827336555 : t_From ((t_u128)) ((t_u8)) := - { - From_f_from := fun (x : t_u8)=> - Build_t_u128 (Into_f_into (u8_0 x)); - }. - -#[global] Instance t_From_1002852925 : t_From ((t_usize)) ((t_u8)) := - { - From_f_from := fun (x : t_u8)=> - Build_t_usize (Into_f_into (u8_0 x)); - }. - -#[global] Instance t_From_476851440 : t_From ((t_u8)) ((t_u16)) := - { - From_f_from := fun (x : t_u16)=> - Build_t_u8 (Into_f_into (u16_0 x)); - }. - -#[global] Instance t_From_590504350 : t_From ((t_u32)) ((t_u16)) := - { - From_f_from := fun (x : t_u16)=> - Build_t_u32 (Into_f_into (u16_0 x)); - }. - -#[global] Instance t_From_786143320 : t_From ((t_u64)) ((t_u16)) := - { - From_f_from := fun (x : t_u16)=> - Build_t_u64 (Into_f_into (u16_0 x)); - }. - -#[global] Instance t_From_98507156 : t_From ((t_u128)) ((t_u16)) := - { - From_f_from := fun (x : t_u16)=> - Build_t_u128 (Into_f_into (u16_0 x)); - }. - -#[global] Instance t_From_427149512 : t_From ((t_usize)) ((t_u16)) := - { - From_f_from := fun (x : t_u16)=> - Build_t_usize (Into_f_into (u16_0 x)); - }. - -#[global] Instance t_From_306676060 : t_From ((t_u8)) ((t_u32)) := - { - From_f_from := fun (x : t_u32)=> - Build_t_u8 (Into_f_into (u32_0 x)); - }. - -#[global] Instance t_From_55624543 : t_From ((t_u16)) ((t_u32)) := - { - From_f_from := fun (x : t_u32)=> - Build_t_u16 (Into_f_into (u32_0 x)); - }. - -#[global] Instance t_From_863285405 : t_From ((t_u64)) ((t_u32)) := - { - From_f_from := fun (x : t_u32)=> - Build_t_u64 (Into_f_into (u32_0 x)); - }. - -#[global] Instance t_From_675130423 : t_From ((t_u128)) ((t_u32)) := - { - From_f_from := fun (x : t_u32)=> - Build_t_u128 (Into_f_into (u32_0 x)); - }. - -#[global] Instance t_From_295642421 : t_From ((t_usize)) ((t_u32)) := - { - From_f_from := fun (x : t_u32)=> - Build_t_usize (Into_f_into (u32_0 x)); - }. - -#[global] Instance t_From_690942554 : t_From ((t_u8)) ((t_u64)) := - { - From_f_from := fun (x : t_u64)=> - Build_t_u8 (Into_f_into (u64_0 x)); - }. - -#[global] Instance t_From_956877210 : t_From ((t_u16)) ((t_u64)) := - { - From_f_from := fun (x : t_u64)=> - Build_t_u16 (Into_f_into (u64_0 x)); - }. - -#[global] Instance t_From_124072492 : t_From ((t_u32)) ((t_u64)) := - { - From_f_from := fun (x : t_u64)=> - Build_t_u32 (Into_f_into (u64_0 x)); - }. - -#[global] Instance t_From_882228220 : t_From ((t_u128)) ((t_u64)) := - { - From_f_from := fun (x : t_u64)=> - Build_t_u128 (Into_f_into (u64_0 x)); - }. - -#[global] Instance t_From_1060762174 : t_From ((t_u8)) ((t_u128)) := - { - From_f_from := fun (x : t_u128)=> - Build_t_u8 (Into_f_into (u128_0 x)); - }. - -#[global] Instance t_From_437123664 : t_From ((t_u16)) ((t_u128)) := - { - From_f_from := fun (x : t_u128)=> - Build_t_u16 (Into_f_into (u128_0 x)); - }. - -#[global] Instance t_From_685712174 : t_From ((t_u32)) ((t_u128)) := - { - From_f_from := fun (x : t_u128)=> - Build_t_u32 (Into_f_into (u128_0 x)); - }. - -#[global] Instance t_From_239215567 : t_From ((t_u64)) ((t_u128)) := - { - From_f_from := fun (x : t_u128)=> - Build_t_u64 (Into_f_into (u128_0 x)); - }. - -#[global] Instance t_From_583993496 : t_From ((t_usize)) ((t_u128)) := - { - From_f_from := fun (x : t_u128)=> - Build_t_usize (Into_f_into (u128_0 x)); - }. - -#[global] Instance t_From_1069835847 : t_From ((t_u8)) ((t_usize)) := - { - From_f_from := fun (x : t_usize)=> - Build_t_u8 (Into_f_into (usize_0 x)); - }. - -#[global] Instance t_From_976343396 : t_From ((t_u16)) ((t_usize)) := - { - From_f_from := fun (x : t_usize)=> - Build_t_u16 (Into_f_into (usize_0 x)); - }. - -#[global] Instance t_From_448121712 : t_From ((t_u32)) ((t_usize)) := - { - From_f_from := fun (x : t_usize)=> - Build_t_u32 (Into_f_into (usize_0 x)); - }. - -#[global] Instance t_From_448032498 : t_From ((t_u128)) ((t_usize)) := - { - From_f_from := fun (x : t_usize)=> - Build_t_u128 (Into_f_into (usize_0 x)); - }. - -Definition unchecked_div_i128 (x : t_i128) (y : t_i128) : t_i128 := - Build_t_i128 (Build_t_I128 (z_div (Abstraction_f_lift (i128_0 x)) (Abstraction_f_lift (i128_0 y)))). - -Definition unchecked_div_i16 (x : t_i16) (y : t_i16) : t_i16 := - Build_t_i16 (Build_t_I16 (z_div (Abstraction_f_lift (i16_0 x)) (Abstraction_f_lift (i16_0 y)))). - -Definition unchecked_div_i32 (x : t_i32) (y : t_i32) : t_i32 := - Build_t_i32 (Build_t_I32 (z_div (Abstraction_f_lift (i32_0 x)) (Abstraction_f_lift (i32_0 y)))). - -Definition unchecked_div_i64 (x : t_i64) (y : t_i64) : t_i64 := - Build_t_i64 (Build_t_I64 (z_div (Abstraction_f_lift (i64_0 x)) (Abstraction_f_lift (i64_0 y)))). - -Definition unchecked_div_i8 (x : t_i8) (y : t_i8) : t_i8 := - Build_t_i8 (Build_t_I8 (z_div (Abstraction_f_lift (i8_0 x)) (Abstraction_f_lift (i8_0 y)))). - -Definition unchecked_div_isize (x : t_isize) (y : t_isize) : t_isize := - Build_t_isize (Build_t_I64 (z_div (Abstraction_f_lift (isize_0 x)) (Abstraction_f_lift (isize_0 y)))). - -Definition wrapping_add_u128 (a : t_u128) (b : t_u128) : t_u128 := - Build_t_u128 (Add_f_add (u128_0 a) (u128_0 b)). - -Definition wrapping_add_u16 (a : t_u16) (b : t_u16) : t_u16 := - Build_t_u16 (Add_f_add (u16_0 a) (u16_0 b)). - -Definition wrapping_add_u32 (a : t_u32) (b : t_u32) : t_u32 := - Build_t_u32 (Add_f_add (u32_0 a) (u32_0 b)). - -Definition wrapping_add_u64 (a : t_u64) (b : t_u64) : t_u64 := - Build_t_u64 (Add_f_add (u64_0 a) (u64_0 b)). - -Definition wrapping_add_u8 (a : t_u8) (b : t_u8) : t_u8 := - Build_t_u8 (Add_f_add (u8_0 a) (u8_0 b)). - -Definition wrapping_add_usize (a : t_usize) (b : t_usize) : t_usize := - Build_t_usize (Add_f_add (usize_0 a) (usize_0 b)). - -Definition wrapping_mul_i128 (a : t_i128) (b : t_i128) : t_i128 := - Build_t_i128 (Mul_f_mul (i128_0 a) (i128_0 b)). - -Definition wrapping_mul_i16 (a : t_i16) (b : t_i16) : t_i16 := - Build_t_i16 (Mul_f_mul (i16_0 a) (i16_0 b)). - -Definition wrapping_mul_i32 (a : t_i32) (b : t_i32) : t_i32 := - Build_t_i32 (Mul_f_mul (i32_0 a) (i32_0 b)). - -Definition wrapping_mul_i64 (a : t_i64) (b : t_i64) : t_i64 := - Build_t_i64 (Mul_f_mul (i64_0 a) (i64_0 b)). - -Definition wrapping_mul_i8 (a : t_i8) (b : t_i8) : t_i8 := - Build_t_i8 (Mul_f_mul (i8_0 a) (i8_0 b)). - -Definition wrapping_mul_isize (a : t_isize) (b : t_isize) : t_isize := - Build_t_isize (Mul_f_mul (isize_0 a) (isize_0 b)). - -Definition wrapping_mul_u128 (a : t_u128) (b : t_u128) : t_u128 := - Build_t_u128 (Mul_f_mul (u128_0 a) (u128_0 b)). - -Definition wrapping_mul_u16 (a : t_u16) (b : t_u16) : t_u16 := - Build_t_u16 (Mul_f_mul (u16_0 a) (u16_0 b)). - -Definition wrapping_mul_u32 (a : t_u32) (b : t_u32) : t_u32 := - Build_t_u32 (Mul_f_mul (u32_0 a) (u32_0 b)). - -Definition wrapping_mul_u64 (a : t_u64) (b : t_u64) : t_u64 := - Build_t_u64 (Mul_f_mul (u64_0 a) (u64_0 b)). - -Definition wrapping_mul_u8 (a : t_u8) (b : t_u8) : t_u8 := - Build_t_u8 (Mul_f_mul (u8_0 a) (u8_0 b)). - -Definition wrapping_mul_usize (a : t_usize) (b : t_usize) : t_usize := - Build_t_usize (Mul_f_mul (usize_0 a) (usize_0 b)). - -Definition wrapping_add480603777 (self : t_u8) (rhs : t_u8) : t_u8 := - wrapping_add_u8 (self) (rhs). - -Definition wrapping_mul885216284 (self : t_u8) (rhs : t_u8) : t_u8 := - wrapping_mul_u8 (self) (rhs). - -Definition wrapping_add124432709 (self : t_u16) (rhs : t_u16) : t_u16 := - wrapping_add_u16 (self) (rhs). - -Definition wrapping_mul14465189 (self : t_u16) (rhs : t_u16) : t_u16 := - wrapping_mul_u16 (self) (rhs). - -Definition wrapping_add1049665857 (self : t_u32) (rhs : t_u32) : t_u32 := - wrapping_add_u32 (self) (rhs). - -Definition wrapping_mul203346768 (self : t_u32) (rhs : t_u32) : t_u32 := - wrapping_mul_u32 (self) (rhs). - -Definition wrapping_add865565639 (self : t_u64) (rhs : t_u64) : t_u64 := - wrapping_add_u64 (self) (rhs). - -Definition wrapping_mul742978873 (self : t_u64) (rhs : t_u64) : t_u64 := - wrapping_mul_u64 (self) (rhs). - -Definition wrapping_add40844100 (self : t_u128) (rhs : t_u128) : t_u128 := - wrapping_add_u128 (self) (rhs). - -Definition wrapping_mul294115024 (self : t_u128) (rhs : t_u128) : t_u128 := - wrapping_mul_u128 (self) (rhs). - -Definition wrapping_add427637036 (self : t_usize) (rhs : t_usize) : t_usize := - wrapping_add_usize (self) (rhs). - -Definition wrapping_mul680896953 (self : t_usize) (rhs : t_usize) : t_usize := - wrapping_mul_usize (self) (rhs). - -#[global] Instance t_Add_695878175 : t_Add ((t_i8)) ((t_i8)) := - { - Add_f_Output := t_i8; - Add_f_add := fun (self : t_i8) (other : t_i8)=> - Build_t_i8 (Add_f_add (i8_0 self) (i8_0 other)); - }. - -#[global] Instance t_Add_877139857 : t_Add ((t_i16)) ((t_i16)) := - { - Add_f_Output := t_i16; - Add_f_add := fun (self : t_i16) (other : t_i16)=> - Build_t_i16 (Add_f_add (i16_0 self) (i16_0 other)); - }. - -#[global] Instance t_Add_426581780 : t_Add ((t_i32)) ((t_i32)) := - { - Add_f_Output := t_i32; - Add_f_add := fun (self : t_i32) (other : t_i32)=> - Build_t_i32 (Add_f_add (i32_0 self) (i32_0 other)); - }. - -#[global] Instance t_Add_113633409 : t_Add ((t_i64)) ((t_i64)) := - { - Add_f_Output := t_i64; - Add_f_add := fun (self : t_i64) (other : t_i64)=> - Build_t_i64 (Add_f_add (i64_0 self) (i64_0 other)); - }. - -#[global] Instance t_Add_788236527 : t_Add ((t_i128)) ((t_i128)) := - { - Add_f_Output := t_i128; - Add_f_add := fun (self : t_i128) (other : t_i128)=> - Build_t_i128 (Add_f_add (i128_0 self) (i128_0 other)); - }. - -#[global] Instance t_Add_247333017 : t_Add ((t_isize)) ((t_isize)) := - { - Add_f_Output := t_isize; - Add_f_add := fun (self : t_isize) (other : t_isize)=> - Build_t_isize (Add_f_add (isize_0 self) (isize_0 other)); - }. - -#[global] Instance t_Sub_756206062 : t_Sub ((t_i8)) ((t_i8)) := - { - Sub_f_Output := t_i8; - Sub_f_sub := fun (self : t_i8) (other : t_i8)=> - Build_t_i8 (Sub_f_sub (i8_0 self) (i8_0 other)); - }. - -#[global] Instance t_Sub_618838212 : t_Sub ((t_i16)) ((t_i16)) := - { - Sub_f_Output := t_i16; - Sub_f_sub := fun (self : t_i16) (other : t_i16)=> - Build_t_i16 (Sub_f_sub (i16_0 self) (i16_0 other)); - }. - -#[global] Instance t_Sub_44574118 : t_Sub ((t_i32)) ((t_i32)) := - { - Sub_f_Output := t_i32; - Sub_f_sub := fun (self : t_i32) (other : t_i32)=> - Build_t_i32 (Sub_f_sub (i32_0 self) (i32_0 other)); - }. - -#[global] Instance t_Sub_287793174 : t_Sub ((t_i64)) ((t_i64)) := - { - Sub_f_Output := t_i64; - Sub_f_sub := fun (self : t_i64) (other : t_i64)=> - Build_t_i64 (Sub_f_sub (i64_0 self) (i64_0 other)); - }. - -#[global] Instance t_Sub_837338145 : t_Sub ((t_i128)) ((t_i128)) := - { - Sub_f_Output := t_i128; - Sub_f_sub := fun (self : t_i128) (other : t_i128)=> - Build_t_i128 (Sub_f_sub (i128_0 self) (i128_0 other)); - }. - -#[global] Instance t_Sub_22961567 : t_Sub ((t_isize)) ((t_isize)) := - { - Sub_f_Output := t_isize; - Sub_f_sub := fun (self : t_isize) (other : t_isize)=> - Build_t_isize (Sub_f_sub (isize_0 self) (isize_0 other)); - }. - -Definition wrapping_sub_u128 (a : t_u128) (b : t_u128) : t_u128 := - Build_t_u128 (Sub_f_sub (u128_0 a) (u128_0 b)). - -Definition wrapping_sub_u16 (a : t_u16) (b : t_u16) : t_u16 := - Build_t_u16 (Sub_f_sub (u16_0 a) (u16_0 b)). - -Definition wrapping_sub_u32 (a : t_u32) (b : t_u32) : t_u32 := - Build_t_u32 (Sub_f_sub (u32_0 a) (u32_0 b)). - -Definition wrapping_sub_u64 (a : t_u64) (b : t_u64) : t_u64 := - Build_t_u64 (Sub_f_sub (u64_0 a) (u64_0 b)). - -Definition wrapping_sub_u8 (a : t_u8) (b : t_u8) : t_u8 := - Build_t_u8 (Sub_f_sub (u8_0 a) (u8_0 b)). - -Definition wrapping_sub_usize (a : t_usize) (b : t_usize) : t_usize := - Build_t_usize (Sub_f_sub (usize_0 a) (usize_0 b)). - -Definition wrapping_sub403906422 (self : t_u8) (rhs : t_u8) : t_u8 := - wrapping_sub_u8 (self) (rhs). - -Definition wrapping_neg123212788 (self : t_u8) : t_u8 := - wrapping_sub403906422 (Build_t_u8 (Constants_f_ZERO)) (self). - -Definition wrapping_sub811251034 (self : t_u16) (rhs : t_u16) : t_u16 := - wrapping_sub_u16 (self) (rhs). - -Definition wrapping_neg128555595 (self : t_u16) : t_u16 := - wrapping_sub811251034 (Build_t_u16 (Constants_f_ZERO)) (self). - -Definition wrapping_sub708953500 (self : t_u32) (rhs : t_u32) : t_u32 := - wrapping_sub_u32 (self) (rhs). - -Definition wrapping_neg328220773 (self : t_u32) : t_u32 := - wrapping_sub708953500 (Build_t_u32 (Constants_f_ZERO)) (self). - -Definition wrapping_sub762520851 (self : t_u64) (rhs : t_u64) : t_u64 := - wrapping_sub_u64 (self) (rhs). - -Definition wrapping_neg617136337 (self : t_u64) : t_u64 := - wrapping_sub762520851 (Build_t_u64 (Constants_f_ZERO)) (self). - -Definition wrapping_sub409310259 (self : t_u128) (rhs : t_u128) : t_u128 := - wrapping_sub_u128 (self) (rhs). - -Definition wrapping_neg729451428 (self : t_u128) : t_u128 := - wrapping_sub409310259 (Build_t_u128 (Constants_f_ZERO)) (self). - -Definition wrapping_sub813101882 (self : t_usize) (rhs : t_usize) : t_usize := - wrapping_sub_usize (self) (rhs). - -Definition wrapping_neg342773446 (self : t_usize) : t_usize := - wrapping_sub813101882 (Build_t_usize (Constants_f_ZERO)) (self). - -#[global] Instance t_Add_63222257 : t_Add ((t_u8)) ((t_u8)) := - { - Add_f_Output := t_u8; - Add_f_add := fun (self : t_u8) (other : t_u8)=> - Build_t_u8 (Add_f_add (u8_0 self) (u8_0 other)); - }. - -#[global] Instance t_Add_568595401 : t_Add ((t_u16)) ((t_u16)) := - { - Add_f_Output := t_u16; - Add_f_add := fun (self : t_u16) (other : t_u16)=> - Build_t_u16 (Add_f_add (u16_0 self) (u16_0 other)); - }. - -#[global] Instance t_Add_99427071 : t_Add ((t_u32)) ((t_u32)) := - { - Add_f_Output := t_u32; - Add_f_add := fun (self : t_u32) (other : t_u32)=> - Build_t_u32 (Add_f_add (u32_0 self) (u32_0 other)); - }. - -#[global] Instance t_Add_963057404 : t_Add ((t_u64)) ((t_u64)) := - { - Add_f_Output := t_u64; - Add_f_add := fun (self : t_u64) (other : t_u64)=> - Build_t_u64 (Add_f_add (u64_0 self) (u64_0 other)); - }. - -#[global] Instance t_Add_258013445 : t_Add ((t_u128)) ((t_u128)) := - { - Add_f_Output := t_u128; - Add_f_add := fun (self : t_u128) (other : t_u128)=> - Build_t_u128 (Add_f_add (u128_0 self) (u128_0 other)); - }. - -#[global] Instance t_Add_192585125 : t_Add ((t_usize)) ((t_usize)) := - { - Add_f_Output := t_usize; - Add_f_add := fun (self : t_usize) (other : t_usize)=> - Build_t_usize (Add_f_add (usize_0 self) (usize_0 other)); - }. - -#[global] Instance t_Mul_307943337 : t_Mul ((t_u8)) ((t_u8)) := - { - Mul_f_Output := t_u8; - Mul_f_mul := fun (self : t_u8) (other : t_u8)=> - Build_t_u8 (Mul_f_mul (u8_0 self) (u8_0 other)); - }. - -#[global] Instance t_Mul_579880302 : t_Mul ((t_u16)) ((t_u16)) := - { - Mul_f_Output := t_u16; - Mul_f_mul := fun (self : t_u16) (other : t_u16)=> - Build_t_u16 (Mul_f_mul (u16_0 self) (u16_0 other)); - }. - -#[global] Instance t_Mul_969448321 : t_Mul ((t_u32)) ((t_u32)) := - { - Mul_f_Output := t_u32; - Mul_f_mul := fun (self : t_u32) (other : t_u32)=> - Build_t_u32 (Mul_f_mul (u32_0 self) (u32_0 other)); - }. - -#[global] Instance t_Mul_572333733 : t_Mul ((t_u64)) ((t_u64)) := - { - Mul_f_Output := t_u64; - Mul_f_mul := fun (self : t_u64) (other : t_u64)=> - Build_t_u64 (Mul_f_mul (u64_0 self) (u64_0 other)); - }. - -#[global] Instance t_Mul_904691459 : t_Mul ((t_u128)) ((t_u128)) := - { - Mul_f_Output := t_u128; - Mul_f_mul := fun (self : t_u128) (other : t_u128)=> - Build_t_u128 (Mul_f_mul (u128_0 self) (u128_0 other)); - }. - -#[global] Instance t_Mul_490480124 : t_Mul ((t_usize)) ((t_usize)) := - { - Mul_f_Output := t_usize; - Mul_f_mul := fun (self : t_usize) (other : t_usize)=> - Build_t_usize (Mul_f_mul (usize_0 self) (usize_0 other)); - }. - -#[global] Instance t_Mul_542253756 : t_Mul ((t_i8)) ((t_i8)) := - { - Mul_f_Output := t_i8; - Mul_f_mul := fun (self : t_i8) (other : t_i8)=> - Build_t_i8 (Mul_f_mul (i8_0 self) (i8_0 other)); - }. - -#[global] Instance t_Mul_586956420 : t_Mul ((t_i16)) ((t_i16)) := - { - Mul_f_Output := t_i16; - Mul_f_mul := fun (self : t_i16) (other : t_i16)=> - Build_t_i16 (Mul_f_mul (i16_0 self) (i16_0 other)); - }. - -#[global] Instance t_Mul_622712365 : t_Mul ((t_i32)) ((t_i32)) := - { - Mul_f_Output := t_i32; - Mul_f_mul := fun (self : t_i32) (other : t_i32)=> - Build_t_i32 (Mul_f_mul (i32_0 self) (i32_0 other)); - }. - -#[global] Instance t_Mul_167399285 : t_Mul ((t_i64)) ((t_i64)) := - { - Mul_f_Output := t_i64; - Mul_f_mul := fun (self : t_i64) (other : t_i64)=> - Build_t_i64 (Mul_f_mul (i64_0 self) (i64_0 other)); - }. - -#[global] Instance t_Mul_264435207 : t_Mul ((t_i128)) ((t_i128)) := - { - Mul_f_Output := t_i128; - Mul_f_mul := fun (self : t_i128) (other : t_i128)=> - Build_t_i128 (Mul_f_mul (i128_0 self) (i128_0 other)); - }. - -#[global] Instance t_Mul_9915144 : t_Mul ((t_isize)) ((t_isize)) := - { - Mul_f_Output := t_isize; - Mul_f_mul := fun (self : t_isize) (other : t_isize)=> - Build_t_isize (Mul_f_mul (isize_0 self) (isize_0 other)); - }. - -#[global] Instance t_Div_23426959 : t_Div ((t_u8)) ((t_u8)) := - { - Div_f_Output := t_u8; - Div_f_div := fun (self : t_u8) (other : t_u8)=> - Build_t_u8 (Div_f_div (u8_0 self) (u8_0 other)); - }. - -Definition wrapping_div660080892 (self : t_u8) (rhs : t_u8) : t_u8 := - Div_f_div (self) (rhs). - -Definition wrapping_div_euclid481233436 (self : t_u8) (rhs : t_u8) : t_u8 := - Div_f_div (self) (rhs). - -#[global] Instance t_Div_469212879 : t_Div ((t_u16)) ((t_u16)) := - { - Div_f_Output := t_u16; - Div_f_div := fun (self : t_u16) (other : t_u16)=> - Build_t_u16 (Div_f_div (u16_0 self) (u16_0 other)); - }. - -Definition wrapping_div366977334 (self : t_u16) (rhs : t_u16) : t_u16 := - Div_f_div (self) (rhs). - -Definition wrapping_div_euclid22267888 (self : t_u16) (rhs : t_u16) : t_u16 := - Div_f_div (self) (rhs). - -#[global] Instance t_Div_248596974 : t_Div ((t_u32)) ((t_u32)) := - { - Div_f_Output := t_u32; - Div_f_div := fun (self : t_u32) (other : t_u32)=> - Build_t_u32 (Div_f_div (u32_0 self) (u32_0 other)); - }. - -Definition wrapping_div931150450 (self : t_u32) (rhs : t_u32) : t_u32 := - Div_f_div (self) (rhs). - -Definition wrapping_div_euclid606291997 (self : t_u32) (rhs : t_u32) : t_u32 := - Div_f_div (self) (rhs). - -#[global] Instance t_Div_901268642 : t_Div ((t_u64)) ((t_u64)) := - { - Div_f_Output := t_u64; - Div_f_div := fun (self : t_u64) (other : t_u64)=> - Build_t_u64 (Div_f_div (u64_0 self) (u64_0 other)); - }. - -Definition wrapping_div168427046 (self : t_u64) (rhs : t_u64) : t_u64 := - Div_f_div (self) (rhs). - -Definition wrapping_div_euclid321252086 (self : t_u64) (rhs : t_u64) : t_u64 := - Div_f_div (self) (rhs). - -#[global] Instance t_Div_868602092 : t_Div ((t_u128)) ((t_u128)) := - { - Div_f_Output := t_u128; - Div_f_div := fun (self : t_u128) (other : t_u128)=> - Build_t_u128 (Div_f_div (u128_0 self) (u128_0 other)); - }. - -Definition wrapping_div692427683 (self : t_u128) (rhs : t_u128) : t_u128 := - Div_f_div (self) (rhs). - -Definition wrapping_div_euclid926334515 (self : t_u128) (rhs : t_u128) : t_u128 := - Div_f_div (self) (rhs). - -#[global] Instance t_Div_740920454 : t_Div ((t_usize)) ((t_usize)) := - { - Div_f_Output := t_usize; - Div_f_div := fun (self : t_usize) (other : t_usize)=> - Build_t_usize (Div_f_div (usize_0 self) (usize_0 other)); - }. - -Definition wrapping_div905768546 (self : t_usize) (rhs : t_usize) : t_usize := - Div_f_div (self) (rhs). - -Definition wrapping_div_euclid90317722 (self : t_usize) (rhs : t_usize) : t_usize := - Div_f_div (self) (rhs). - -#[global] Instance t_Rem_485335443 : t_Rem ((t_u8)) ((t_u8)) := - { - Rem_f_Output := t_u8; - Rem_f_rem := fun (self : t_u8) (other : t_u8)=> - Build_t_u8 (Rem_f_rem (u8_0 self) (u8_0 other)); - }. - -Definition wrapping_rem984569721 (self : t_u8) (rhs : t_u8) : t_u8 := - Rem_f_rem (self) (rhs). - -Definition wrapping_rem_euclid946579345 (self : t_u8) (rhs : t_u8) : t_u8 := - Rem_f_rem (self) (rhs). - -#[global] Instance t_Rem_780488465 : t_Rem ((t_u16)) ((t_u16)) := - { - Rem_f_Output := t_u16; - Rem_f_rem := fun (self : t_u16) (other : t_u16)=> - Build_t_u16 (Rem_f_rem (u16_0 self) (u16_0 other)); - }. - -Definition wrapping_rem378598035 (self : t_u16) (rhs : t_u16) : t_u16 := - Rem_f_rem (self) (rhs). - -Definition wrapping_rem_euclid602402638 (self : t_u16) (rhs : t_u16) : t_u16 := - Rem_f_rem (self) (rhs). - -#[global] Instance t_Rem_734014529 : t_Rem ((t_u32)) ((t_u32)) := - { - Rem_f_Output := t_u32; - Rem_f_rem := fun (self : t_u32) (other : t_u32)=> - Build_t_u32 (Rem_f_rem (u32_0 self) (u32_0 other)); - }. - -Definition wrapping_rem292009099 (self : t_u32) (rhs : t_u32) : t_u32 := - Rem_f_rem (self) (rhs). - -Definition wrapping_rem_euclid1020271291 (self : t_u32) (rhs : t_u32) : t_u32 := - Rem_f_rem (self) (rhs). - -#[global] Instance t_Rem_455480749 : t_Rem ((t_u64)) ((t_u64)) := - { - Rem_f_Output := t_u64; - Rem_f_rem := fun (self : t_u64) (other : t_u64)=> - Build_t_u64 (Rem_f_rem (u64_0 self) (u64_0 other)); - }. - -Definition wrapping_rem390602260 (self : t_u64) (rhs : t_u64) : t_u64 := - Rem_f_rem (self) (rhs). - -Definition wrapping_rem_euclid839264546 (self : t_u64) (rhs : t_u64) : t_u64 := - Rem_f_rem (self) (rhs). - -#[global] Instance t_Rem_412060686 : t_Rem ((t_u128)) ((t_u128)) := - { - Rem_f_Output := t_u128; - Rem_f_rem := fun (self : t_u128) (other : t_u128)=> - Build_t_u128 (Rem_f_rem (u128_0 self) (u128_0 other)); - }. - -Definition wrapping_rem332379920 (self : t_u128) (rhs : t_u128) : t_u128 := - Rem_f_rem (self) (rhs). - -Definition wrapping_rem_euclid646122423 (self : t_u128) (rhs : t_u128) : t_u128 := - Rem_f_rem (self) (rhs). - -#[global] Instance t_Rem_796467486 : t_Rem ((t_usize)) ((t_usize)) := - { - Rem_f_Output := t_usize; - Rem_f_rem := fun (self : t_usize) (other : t_usize)=> - Build_t_usize (Rem_f_rem (usize_0 self) (usize_0 other)); - }. - -Definition wrapping_rem333089373 (self : t_usize) (rhs : t_usize) : t_usize := - Rem_f_rem (self) (rhs). - -Definition wrapping_rem_euclid769656504 (self : t_usize) (rhs : t_usize) : t_usize := - Rem_f_rem (self) (rhs). - -#[global] Instance t_Shr_1061808511 : t_Shr ((t_u8)) ((t_u8)) := - { - Shr_f_Output := t_u8; - Shr_f_shr := fun (self : t_u8) (other : t_u8)=> - Build_t_u8 (Shr_f_shr (u8_0 self) (u8_0 other)); - }. - -#[global] Instance t_Shr_590944100 : t_Shr ((t_u8)) ((t_u16)) := - { - Shr_f_Output := t_u8; - Shr_f_shr := fun (self : t_u8) (other : t_u16)=> - Build_t_u8 (Shr_f_shr (u8_0 self) (u16_0 other)); - }. - -#[global] Instance t_Shr_267395304 : t_Shr ((t_u8)) ((t_u32)) := - { - Shr_f_Output := t_u8; - Shr_f_shr := fun (self : t_u8) (other : t_u32)=> - Build_t_u8 (Shr_f_shr (u8_0 self) (u32_0 other)); - }. - -#[global] Instance t_Shr_922719969 : t_Shr ((t_u8)) ((t_u64)) := - { - Shr_f_Output := t_u8; - Shr_f_shr := fun (self : t_u8) (other : t_u64)=> - Build_t_u8 (Shr_f_shr (u8_0 self) (u64_0 other)); - }. - -#[global] Instance t_Shr_138723873 : t_Shr ((t_u8)) ((t_u128)) := - { - Shr_f_Output := t_u8; - Shr_f_shr := fun (self : t_u8) (other : t_u128)=> - Build_t_u8 (Shr_f_shr (u8_0 self) (u128_0 other)); - }. - -#[global] Instance t_Shr_558887005 : t_Shr ((t_u8)) ((t_usize)) := - { - Shr_f_Output := t_u8; - Shr_f_shr := fun (self : t_u8) (other : t_usize)=> - Build_t_u8 (Shr_f_shr (u8_0 self) (usize_0 other)); - }. - -#[global] Instance t_Shr_170693446 : t_Shr ((t_u16)) ((t_u8)) := - { - Shr_f_Output := t_u16; - Shr_f_shr := fun (self : t_u16) (other : t_u8)=> - Build_t_u16 (Shr_f_shr (u16_0 self) (u8_0 other)); - }. - -#[global] Instance t_Shr_899863737 : t_Shr ((t_u16)) ((t_u16)) := - { - Shr_f_Output := t_u16; - Shr_f_shr := fun (self : t_u16) (other : t_u16)=> - Build_t_u16 (Shr_f_shr (u16_0 self) (u16_0 other)); - }. - -#[global] Instance t_Shr_290867596 : t_Shr ((t_u16)) ((t_u32)) := - { - Shr_f_Output := t_u16; - Shr_f_shr := fun (self : t_u16) (other : t_u32)=> - Build_t_u16 (Shr_f_shr (u16_0 self) (u32_0 other)); - }. - -#[global] Instance t_Shr_630800316 : t_Shr ((t_u16)) ((t_u64)) := - { - Shr_f_Output := t_u16; - Shr_f_shr := fun (self : t_u16) (other : t_u64)=> - Build_t_u16 (Shr_f_shr (u16_0 self) (u64_0 other)); - }. - -#[global] Instance t_Shr_51138976 : t_Shr ((t_u16)) ((t_u128)) := - { - Shr_f_Output := t_u16; - Shr_f_shr := fun (self : t_u16) (other : t_u128)=> - Build_t_u16 (Shr_f_shr (u16_0 self) (u128_0 other)); - }. - -#[global] Instance t_Shr_82567397 : t_Shr ((t_u16)) ((t_usize)) := - { - Shr_f_Output := t_u16; - Shr_f_shr := fun (self : t_u16) (other : t_usize)=> - Build_t_u16 (Shr_f_shr (u16_0 self) (usize_0 other)); - }. - -#[global] Instance t_Shr_430948219 : t_Shr ((t_u32)) ((t_u8)) := - { - Shr_f_Output := t_u32; - Shr_f_shr := fun (self : t_u32) (other : t_u8)=> - Build_t_u32 (Shr_f_shr (u32_0 self) (u8_0 other)); - }. - -#[global] Instance t_Shr_157675832 : t_Shr ((t_u32)) ((t_u16)) := - { - Shr_f_Output := t_u32; - Shr_f_shr := fun (self : t_u32) (other : t_u16)=> - Build_t_u32 (Shr_f_shr (u32_0 self) (u16_0 other)); - }. - -#[global] Instance t_Shr_708845947 : t_Shr ((t_u32)) ((t_u32)) := - { - Shr_f_Output := t_u32; - Shr_f_shr := fun (self : t_u32) (other : t_u32)=> - Build_t_u32 (Shr_f_shr (u32_0 self) (u32_0 other)); - }. - -#[global] Instance t_Shr_1060262347 : t_Shr ((t_u32)) ((t_u64)) := - { - Shr_f_Output := t_u32; - Shr_f_shr := fun (self : t_u32) (other : t_u64)=> - Build_t_u32 (Shr_f_shr (u32_0 self) (u64_0 other)); - }. - -#[global] Instance t_Shr_372764217 : t_Shr ((t_u32)) ((t_u128)) := - { - Shr_f_Output := t_u32; - Shr_f_shr := fun (self : t_u32) (other : t_u128)=> - Build_t_u32 (Shr_f_shr (u32_0 self) (u128_0 other)); - }. - -#[global] Instance t_Shr_534962338 : t_Shr ((t_u32)) ((t_usize)) := - { - Shr_f_Output := t_u32; - Shr_f_shr := fun (self : t_u32) (other : t_usize)=> - Build_t_u32 (Shr_f_shr (u32_0 self) (usize_0 other)); - }. - -#[global] Instance t_Shr_45695168 : t_Shr ((t_u64)) ((t_u8)) := - { - Shr_f_Output := t_u64; - Shr_f_shr := fun (self : t_u64) (other : t_u8)=> - Build_t_u64 (Shr_f_shr (u64_0 self) (u8_0 other)); - }. - -#[global] Instance t_Shr_1027310629 : t_Shr ((t_u64)) ((t_u16)) := - { - Shr_f_Output := t_u64; - Shr_f_shr := fun (self : t_u64) (other : t_u16)=> - Build_t_u64 (Shr_f_shr (u64_0 self) (u16_0 other)); - }. - -#[global] Instance t_Shr_357793917 : t_Shr ((t_u64)) ((t_u32)) := - { - Shr_f_Output := t_u64; - Shr_f_shr := fun (self : t_u64) (other : t_u32)=> - Build_t_u64 (Shr_f_shr (u64_0 self) (u32_0 other)); - }. - -#[global] Instance t_Shr_1038705817 : t_Shr ((t_u64)) ((t_u64)) := - { - Shr_f_Output := t_u64; - Shr_f_shr := fun (self : t_u64) (other : t_u64)=> - Build_t_u64 (Shr_f_shr (u64_0 self) (u64_0 other)); - }. - -#[global] Instance t_Shr_567649567 : t_Shr ((t_u64)) ((t_u128)) := - { - Shr_f_Output := t_u64; - Shr_f_shr := fun (self : t_u64) (other : t_u128)=> - Build_t_u64 (Shr_f_shr (u64_0 self) (u128_0 other)); - }. - -#[global] Instance t_Shr_380280894 : t_Shr ((t_u64)) ((t_usize)) := - { - Shr_f_Output := t_u64; - Shr_f_shr := fun (self : t_u64) (other : t_usize)=> - Build_t_u64 (Shr_f_shr (u64_0 self) (usize_0 other)); - }. - -#[global] Instance t_Shr_555027554 : t_Shr ((t_u128)) ((t_u8)) := - { - Shr_f_Output := t_u128; - Shr_f_shr := fun (self : t_u128) (other : t_u8)=> - Build_t_u128 (Shr_f_shr (u128_0 self) (u8_0 other)); - }. - -#[global] Instance t_Shr_225523666 : t_Shr ((t_u128)) ((t_u16)) := - { - Shr_f_Output := t_u128; - Shr_f_shr := fun (self : t_u128) (other : t_u16)=> - Build_t_u128 (Shr_f_shr (u128_0 self) (u16_0 other)); - }. - -#[global] Instance t_Shr_910916464 : t_Shr ((t_u128)) ((t_u32)) := - { - Shr_f_Output := t_u128; - Shr_f_shr := fun (self : t_u128) (other : t_u32)=> - Build_t_u128 (Shr_f_shr (u128_0 self) (u32_0 other)); - }. - -#[global] Instance t_Shr_137291592 : t_Shr ((t_u128)) ((t_u64)) := - { - Shr_f_Output := t_u128; - Shr_f_shr := fun (self : t_u128) (other : t_u64)=> - Build_t_u128 (Shr_f_shr (u128_0 self) (u64_0 other)); - }. - -#[global] Instance t_Shr_1070013296 : t_Shr ((t_u128)) ((t_u128)) := - { - Shr_f_Output := t_u128; - Shr_f_shr := fun (self : t_u128) (other : t_u128)=> - Build_t_u128 (Shr_f_shr (u128_0 self) (u128_0 other)); - }. - -#[global] Instance t_Shr_1009428374 : t_Shr ((t_u128)) ((t_usize)) := - { - Shr_f_Output := t_u128; - Shr_f_shr := fun (self : t_u128) (other : t_usize)=> - Build_t_u128 (Shr_f_shr (u128_0 self) (usize_0 other)); - }. - -#[global] Instance t_Shr_94723353 : t_Shr ((t_usize)) ((t_u8)) := - { - Shr_f_Output := t_usize; - Shr_f_shr := fun (self : t_usize) (other : t_u8)=> - Build_t_usize (Shr_f_shr (usize_0 self) (u8_0 other)); - }. - -#[global] Instance t_Shr_18219058 : t_Shr ((t_usize)) ((t_u16)) := - { - Shr_f_Output := t_usize; - Shr_f_shr := fun (self : t_usize) (other : t_u16)=> - Build_t_usize (Shr_f_shr (usize_0 self) (u16_0 other)); - }. - -#[global] Instance t_Shr_14441839 : t_Shr ((t_usize)) ((t_u32)) := - { - Shr_f_Output := t_usize; - Shr_f_shr := fun (self : t_usize) (other : t_u32)=> - Build_t_usize (Shr_f_shr (usize_0 self) (u32_0 other)); - }. - -#[global] Instance t_Shr_642676920 : t_Shr ((t_usize)) ((t_u64)) := - { - Shr_f_Output := t_usize; - Shr_f_shr := fun (self : t_usize) (other : t_u64)=> - Build_t_usize (Shr_f_shr (usize_0 self) (u64_0 other)); - }. - -#[global] Instance t_Shr_65876869 : t_Shr ((t_usize)) ((t_u128)) := - { - Shr_f_Output := t_usize; - Shr_f_shr := fun (self : t_usize) (other : t_u128)=> - Build_t_usize (Shr_f_shr (usize_0 self) (u128_0 other)); - }. - -#[global] Instance t_Shr_833436714 : t_Shr ((t_usize)) ((t_usize)) := - { - Shr_f_Output := t_usize; - Shr_f_shr := fun (self : t_usize) (other : t_usize)=> - Build_t_usize (Shr_f_shr (usize_0 self) (usize_0 other)); - }. - -#[global] Instance t_Shl_161455974 : t_Shl ((t_u8)) ((t_u8)) := - { - Shl_f_Output := t_u8; - Shl_f_shl := fun (self : t_u8) (other : t_u8)=> - Build_t_u8 (Shl_f_shl (u8_0 self) (u8_0 other)); - }. - -#[global] Instance t_Shl_861055562 : t_Shl ((t_u8)) ((t_u16)) := - { - Shl_f_Output := t_u8; - Shl_f_shl := fun (self : t_u8) (other : t_u16)=> - Build_t_u8 (Shl_f_shl (u8_0 self) (u16_0 other)); - }. - -#[global] Instance t_Shl_479938796 : t_Shl ((t_u8)) ((t_u32)) := - { - Shl_f_Output := t_u8; - Shl_f_shl := fun (self : t_u8) (other : t_u32)=> - Build_t_u8 (Shl_f_shl (u8_0 self) (u32_0 other)); - }. - -#[global] Instance t_Shl_373462431 : t_Shl ((t_u8)) ((t_u64)) := - { - Shl_f_Output := t_u8; - Shl_f_shl := fun (self : t_u8) (other : t_u64)=> - Build_t_u8 (Shl_f_shl (u8_0 self) (u64_0 other)); - }. - -#[global] Instance t_Shl_356733585 : t_Shl ((t_u8)) ((t_u128)) := - { - Shl_f_Output := t_u8; - Shl_f_shl := fun (self : t_u8) (other : t_u128)=> - Build_t_u8 (Shl_f_shl (u8_0 self) (u128_0 other)); - }. - -#[global] Instance t_Shl_138823384 : t_Shl ((t_u8)) ((t_usize)) := - { - Shl_f_Output := t_u8; - Shl_f_shl := fun (self : t_u8) (other : t_usize)=> - Build_t_u8 (Shl_f_shl (u8_0 self) (usize_0 other)); - }. - -#[global] Instance t_Shl_492599436 : t_Shl ((t_u16)) ((t_u8)) := - { - Shl_f_Output := t_u16; - Shl_f_shl := fun (self : t_u16) (other : t_u8)=> - Build_t_u16 (Shl_f_shl (u16_0 self) (u8_0 other)); - }. - -#[global] Instance t_Shl_254997522 : t_Shl ((t_u16)) ((t_u16)) := - { - Shl_f_Output := t_u16; - Shl_f_shl := fun (self : t_u16) (other : t_u16)=> - Build_t_u16 (Shl_f_shl (u16_0 self) (u16_0 other)); - }. - -#[global] Instance t_Shl_840888059 : t_Shl ((t_u16)) ((t_u32)) := - { - Shl_f_Output := t_u16; - Shl_f_shl := fun (self : t_u16) (other : t_u32)=> - Build_t_u16 (Shl_f_shl (u16_0 self) (u32_0 other)); - }. - -#[global] Instance t_Shl_1017206779 : t_Shl ((t_u16)) ((t_u64)) := - { - Shl_f_Output := t_u16; - Shl_f_shl := fun (self : t_u16) (other : t_u64)=> - Build_t_u16 (Shl_f_shl (u16_0 self) (u64_0 other)); - }. - -#[global] Instance t_Shl_751151164 : t_Shl ((t_u16)) ((t_u128)) := - { - Shl_f_Output := t_u16; - Shl_f_shl := fun (self : t_u16) (other : t_u128)=> - Build_t_u16 (Shl_f_shl (u16_0 self) (u128_0 other)); - }. - -#[global] Instance t_Shl_303578486 : t_Shl ((t_u16)) ((t_usize)) := - { - Shl_f_Output := t_u16; - Shl_f_shl := fun (self : t_u16) (other : t_usize)=> - Build_t_u16 (Shl_f_shl (u16_0 self) (usize_0 other)); - }. - -#[global] Instance t_Shl_186069032 : t_Shl ((t_u32)) ((t_u8)) := - { - Shl_f_Output := t_u32; - Shl_f_shl := fun (self : t_u32) (other : t_u8)=> - Build_t_u32 (Shl_f_shl (u32_0 self) (u8_0 other)); - }. - -#[global] Instance t_Shl_320616735 : t_Shl ((t_u32)) ((t_u16)) := - { - Shl_f_Output := t_u32; - Shl_f_shl := fun (self : t_u32) (other : t_u16)=> - Build_t_u32 (Shl_f_shl (u32_0 self) (u16_0 other)); - }. - -#[global] Instance t_Shl_325940784 : t_Shl ((t_u32)) ((t_u32)) := - { - Shl_f_Output := t_u32; - Shl_f_shl := fun (self : t_u32) (other : t_u32)=> - Build_t_u32 (Shl_f_shl (u32_0 self) (u32_0 other)); - }. - -#[global] Instance t_Shl_398883535 : t_Shl ((t_u32)) ((t_u64)) := - { - Shl_f_Output := t_u32; - Shl_f_shl := fun (self : t_u32) (other : t_u64)=> - Build_t_u32 (Shl_f_shl (u32_0 self) (u64_0 other)); - }. - -#[global] Instance t_Shl_700909976 : t_Shl ((t_u32)) ((t_u128)) := - { - Shl_f_Output := t_u32; - Shl_f_shl := fun (self : t_u32) (other : t_u128)=> - Build_t_u32 (Shl_f_shl (u32_0 self) (u128_0 other)); - }. - -#[global] Instance t_Shl_475027367 : t_Shl ((t_u32)) ((t_usize)) := - { - Shl_f_Output := t_u32; - Shl_f_shl := fun (self : t_u32) (other : t_usize)=> - Build_t_u32 (Shl_f_shl (u32_0 self) (usize_0 other)); - }. - -#[global] Instance t_Shl_620046856 : t_Shl ((t_u64)) ((t_u8)) := - { - Shl_f_Output := t_u64; - Shl_f_shl := fun (self : t_u64) (other : t_u8)=> - Build_t_u64 (Shl_f_shl (u64_0 self) (u8_0 other)); - }. - -#[global] Instance t_Shl_158077515 : t_Shl ((t_u64)) ((t_u16)) := - { - Shl_f_Output := t_u64; - Shl_f_shl := fun (self : t_u64) (other : t_u16)=> - Build_t_u64 (Shl_f_shl (u64_0 self) (u16_0 other)); - }. - -#[global] Instance t_Shl_1071441050 : t_Shl ((t_u64)) ((t_u32)) := - { - Shl_f_Output := t_u64; - Shl_f_shl := fun (self : t_u64) (other : t_u32)=> - Build_t_u64 (Shl_f_shl (u64_0 self) (u32_0 other)); - }. - -#[global] Instance t_Shl_581241894 : t_Shl ((t_u64)) ((t_u64)) := - { - Shl_f_Output := t_u64; - Shl_f_shl := fun (self : t_u64) (other : t_u64)=> - Build_t_u64 (Shl_f_shl (u64_0 self) (u64_0 other)); - }. - -#[global] Instance t_Shl_916302310 : t_Shl ((t_u64)) ((t_u128)) := - { - Shl_f_Output := t_u64; - Shl_f_shl := fun (self : t_u64) (other : t_u128)=> - Build_t_u64 (Shl_f_shl (u64_0 self) (u128_0 other)); - }. - -#[global] Instance t_Shl_59609547 : t_Shl ((t_u64)) ((t_usize)) := - { - Shl_f_Output := t_u64; - Shl_f_shl := fun (self : t_u64) (other : t_usize)=> - Build_t_u64 (Shl_f_shl (u64_0 self) (usize_0 other)); - }. - -#[global] Instance t_Shl_308574333 : t_Shl ((t_u128)) ((t_u8)) := - { - Shl_f_Output := t_u128; - Shl_f_shl := fun (self : t_u128) (other : t_u8)=> - Build_t_u128 (Shl_f_shl (u128_0 self) (u8_0 other)); - }. - -#[global] Instance t_Shl_966677877 : t_Shl ((t_u128)) ((t_u16)) := - { - Shl_f_Output := t_u128; - Shl_f_shl := fun (self : t_u128) (other : t_u16)=> - Build_t_u128 (Shl_f_shl (u128_0 self) (u16_0 other)); - }. - -#[global] Instance t_Shl_38932717 : t_Shl ((t_u128)) ((t_u32)) := - { - Shl_f_Output := t_u128; - Shl_f_shl := fun (self : t_u128) (other : t_u32)=> - Build_t_u128 (Shl_f_shl (u128_0 self) (u32_0 other)); - }. - -#[global] Instance t_Shl_108085956 : t_Shl ((t_u128)) ((t_u64)) := - { - Shl_f_Output := t_u128; - Shl_f_shl := fun (self : t_u128) (other : t_u64)=> - Build_t_u128 (Shl_f_shl (u128_0 self) (u64_0 other)); - }. - -#[global] Instance t_Shl_489587677 : t_Shl ((t_u128)) ((t_u128)) := - { - Shl_f_Output := t_u128; - Shl_f_shl := fun (self : t_u128) (other : t_u128)=> - Build_t_u128 (Shl_f_shl (u128_0 self) (u128_0 other)); - }. - -#[global] Instance t_Shl_837150634 : t_Shl ((t_u128)) ((t_usize)) := - { - Shl_f_Output := t_u128; - Shl_f_shl := fun (self : t_u128) (other : t_usize)=> - Build_t_u128 (Shl_f_shl (u128_0 self) (usize_0 other)); - }. - -#[global] Instance t_Shl_736165651 : t_Shl ((t_usize)) ((t_u8)) := - { - Shl_f_Output := t_usize; - Shl_f_shl := fun (self : t_usize) (other : t_u8)=> - Build_t_usize (Shl_f_shl (usize_0 self) (u8_0 other)); - }. - -#[global] Instance t_Shl_740886741 : t_Shl ((t_usize)) ((t_u16)) := - { - Shl_f_Output := t_usize; - Shl_f_shl := fun (self : t_usize) (other : t_u16)=> - Build_t_usize (Shl_f_shl (usize_0 self) (u16_0 other)); - }. - -#[global] Instance t_Shl_683246358 : t_Shl ((t_usize)) ((t_u32)) := - { - Shl_f_Output := t_usize; - Shl_f_shl := fun (self : t_usize) (other : t_u32)=> - Build_t_usize (Shl_f_shl (usize_0 self) (u32_0 other)); - }. - -#[global] Instance t_Shl_436746920 : t_Shl ((t_usize)) ((t_u64)) := - { - Shl_f_Output := t_usize; - Shl_f_shl := fun (self : t_usize) (other : t_u64)=> - Build_t_usize (Shl_f_shl (usize_0 self) (u64_0 other)); - }. - -#[global] Instance t_Shl_527409353 : t_Shl ((t_usize)) ((t_u128)) := - { - Shl_f_Output := t_usize; - Shl_f_shl := fun (self : t_usize) (other : t_u128)=> - Build_t_usize (Shl_f_shl (usize_0 self) (u128_0 other)); - }. - -#[global] Instance t_Shl_982380013 : t_Shl ((t_usize)) ((t_usize)) := - { - Shl_f_Output := t_usize; - Shl_f_shl := fun (self : t_usize) (other : t_usize)=> - Build_t_usize (Shl_f_shl (usize_0 self) (usize_0 other)); - }. - -#[global] Instance t_BitOr_669654947 : t_BitOr ((t_u8)) ((t_u8)) := - { - BitOr_f_Output := t_u8; - BitOr_f_bitor := fun (self : t_u8) (other : t_u8)=> - Build_t_u8 (BitOr_f_bitor (u8_0 self) (u8_0 other)); - }. - -#[global] Instance t_BitOr_892941557 : t_BitOr ((t_u16)) ((t_u16)) := - { - BitOr_f_Output := t_u16; - BitOr_f_bitor := fun (self : t_u16) (other : t_u16)=> - Build_t_u16 (BitOr_f_bitor (u16_0 self) (u16_0 other)); - }. - -#[global] Instance t_BitOr_991330847 : t_BitOr ((t_u32)) ((t_u32)) := - { - BitOr_f_Output := t_u32; - BitOr_f_bitor := fun (self : t_u32) (other : t_u32)=> - Build_t_u32 (BitOr_f_bitor (u32_0 self) (u32_0 other)); - }. - -#[global] Instance t_BitOr_692971983 : t_BitOr ((t_u64)) ((t_u64)) := - { - BitOr_f_Output := t_u64; - BitOr_f_bitor := fun (self : t_u64) (other : t_u64)=> - Build_t_u64 (BitOr_f_bitor (u64_0 self) (u64_0 other)); - }. - -#[global] Instance t_BitOr_227319538 : t_BitOr ((t_u128)) ((t_u128)) := - { - BitOr_f_Output := t_u128; - BitOr_f_bitor := fun (self : t_u128) (other : t_u128)=> - Build_t_u128 (BitOr_f_bitor (u128_0 self) (u128_0 other)); - }. - -#[global] Instance t_BitOr_669787696 : t_BitOr ((t_usize)) ((t_usize)) := - { - BitOr_f_Output := t_usize; - BitOr_f_bitor := fun (self : t_usize) (other : t_usize)=> - Build_t_usize (BitOr_f_bitor (usize_0 self) (usize_0 other)); - }. - -#[global] Instance t_BitXor_327788827 : t_BitXor ((t_u8)) ((t_u8)) := - { - BitXor_f_Output := t_u8; - BitXor_f_bitxor := fun (self : t_u8) (other : t_u8)=> - Build_t_u8 (BitXor_f_bitxor (u8_0 self) (u8_0 other)); - }. - -#[global] Instance t_BitXor_661040931 : t_BitXor ((t_u16)) ((t_u16)) := - { - BitXor_f_Output := t_u16; - BitXor_f_bitxor := fun (self : t_u16) (other : t_u16)=> - Build_t_u16 (BitXor_f_bitxor (u16_0 self) (u16_0 other)); - }. - -#[global] Instance t_BitXor_222957020 : t_BitXor ((t_u32)) ((t_u32)) := - { - BitXor_f_Output := t_u32; - BitXor_f_bitxor := fun (self : t_u32) (other : t_u32)=> - Build_t_u32 (BitXor_f_bitxor (u32_0 self) (u32_0 other)); - }. - -#[global] Instance t_BitXor_530545977 : t_BitXor ((t_u64)) ((t_u64)) := - { - BitXor_f_Output := t_u64; - BitXor_f_bitxor := fun (self : t_u64) (other : t_u64)=> - Build_t_u64 (BitXor_f_bitxor (u64_0 self) (u64_0 other)); - }. - -#[global] Instance t_BitXor_112780081 : t_BitXor ((t_u128)) ((t_u128)) := - { - BitXor_f_Output := t_u128; - BitXor_f_bitxor := fun (self : t_u128) (other : t_u128)=> - Build_t_u128 (BitXor_f_bitxor (u128_0 self) (u128_0 other)); - }. - -#[global] Instance t_BitXor_969810999 : t_BitXor ((t_usize)) ((t_usize)) := - { - BitXor_f_Output := t_usize; - BitXor_f_bitxor := fun (self : t_usize) (other : t_usize)=> - Build_t_usize (BitXor_f_bitxor (usize_0 self) (usize_0 other)); - }. - -#[global] Instance t_BitAnd_126469303 : t_BitAnd ((t_u8)) ((t_u8)) := - { - BitAnd_f_Output := t_u8; - BitAnd_f_bitand := fun (self : t_u8) (other : t_u8)=> - Build_t_u8 (BitAnd_f_bitand (u8_0 self) (u8_0 other)); - }. - -#[global] Instance t_BitAnd_531525101 : t_BitAnd ((t_u16)) ((t_u16)) := - { - BitAnd_f_Output := t_u16; - BitAnd_f_bitand := fun (self : t_u16) (other : t_u16)=> - Build_t_u16 (BitAnd_f_bitand (u16_0 self) (u16_0 other)); - }. - -#[global] Instance t_BitAnd_24728760 : t_BitAnd ((t_u32)) ((t_u32)) := - { - BitAnd_f_Output := t_u32; - BitAnd_f_bitand := fun (self : t_u32) (other : t_u32)=> - Build_t_u32 (BitAnd_f_bitand (u32_0 self) (u32_0 other)); - }. - -#[global] Instance t_BitAnd_35845574 : t_BitAnd ((t_u64)) ((t_u64)) := - { - BitAnd_f_Output := t_u64; - BitAnd_f_bitand := fun (self : t_u64) (other : t_u64)=> - Build_t_u64 (BitAnd_f_bitand (u64_0 self) (u64_0 other)); - }. - -#[global] Instance t_BitAnd_396424214 : t_BitAnd ((t_u128)) ((t_u128)) := - { - BitAnd_f_Output := t_u128; - BitAnd_f_bitand := fun (self : t_u128) (other : t_u128)=> - Build_t_u128 (BitAnd_f_bitand (u128_0 self) (u128_0 other)); - }. - -#[global] Instance t_BitAnd_652458180 : t_BitAnd ((t_usize)) ((t_usize)) := - { - BitAnd_f_Output := t_usize; - BitAnd_f_bitand := fun (self : t_usize) (other : t_usize)=> - Build_t_usize (BitAnd_f_bitand (usize_0 self) (usize_0 other)); - }. - -#[global] Instance t_Sub_81344668 : t_Sub ((t_u8)) ((t_u8)) := - { - Sub_f_Output := t_u8; - Sub_f_sub := fun (self : t_u8) (other : t_u8)=> - Build_t_u8 (Sub_f_sub (u8_0 self) (u8_0 other)); - }. - -#[global] Instance t_Sub_1011801854 : t_Sub ((t_u16)) ((t_u16)) := - { - Sub_f_Output := t_u16; - Sub_f_sub := fun (self : t_u16) (other : t_u16)=> - Build_t_u16 (Sub_f_sub (u16_0 self) (u16_0 other)); - }. - -#[global] Instance t_Sub_1070652436 : t_Sub ((t_u32)) ((t_u32)) := - { - Sub_f_Output := t_u32; - Sub_f_sub := fun (self : t_u32) (other : t_u32)=> - Build_t_u32 (Sub_f_sub (u32_0 self) (u32_0 other)); - }. - -Definition rotate_left_u128 (x : t_u128) (shift : t_u32) : t_u128 := - let shift : t_u32 := Rem_f_rem (shift) (v_BITS136999051) in - let left : t_u128 := Shl_f_shl (Clone_f_clone (x)) (Clone_f_clone (shift)) in - let right : t_u128 := Shr_f_shr (t_Shr := _ : t_Shr _ t_u32) (Clone_f_clone (x)) (Sub_f_sub (v_BITS136999051) (Clone_f_clone (shift))) in - BitOr_f_bitor (left) (right). - -Definition rotate_left_u16 (x : t_u16) (shift : t_u32) : t_u16 := - let shift : t_u32 := Rem_f_rem (shift) (v_BITS277333551) in - let left : t_u16 := Shl_f_shl (Clone_f_clone (x)) (Clone_f_clone (shift)) in - let right : t_u16 := Shr_f_shr (t_Shr := _ : t_Shr _ t_u32) (Clone_f_clone (x)) (Sub_f_sub (v_BITS277333551) (Clone_f_clone (shift))) in - BitOr_f_bitor (left) (right). - -Definition rotate_left_u32 (x : t_u32) (shift : t_u32) : t_u32 := - let shift : t_u32 := Rem_f_rem (shift) (v_BITS473478051) in - let left : t_u32 := Shl_f_shl (Clone_f_clone (x)) (Clone_f_clone (shift)) in - let right : t_u32 := Shr_f_shr (t_Shr := _ : t_Shr _ t_u32) (Clone_f_clone (x)) (Sub_f_sub (v_BITS473478051) (Clone_f_clone (shift))) in - BitOr_f_bitor (left) (right). - -Definition rotate_left_u64 (x : t_u64) (shift : t_u32) : t_u64 := - let shift : t_u32 := Rem_f_rem (shift) (v_BITS177666292) in - let left : t_u64 := Shl_f_shl (Clone_f_clone (x)) (Clone_f_clone (shift)) in - let right : t_u64 := Shr_f_shr (t_Shr := _ : t_Shr _ t_u32) (Clone_f_clone (x)) (Sub_f_sub (v_BITS177666292) (Clone_f_clone (shift))) in - BitOr_f_bitor (left) (right). - -Definition rotate_left_u8 (x : t_u8) (shift : t_u32) : t_u8 := - let shift : t_u32 := Rem_f_rem (shift) (v_BITS690311813) in - let left : t_u8 := Shl_f_shl (Clone_f_clone (x)) (Clone_f_clone (shift)) in - let right : t_u8 := Shr_f_shr (t_Shr := _ : t_Shr _ t_u32) (Clone_f_clone (x)) (Sub_f_sub (v_BITS690311813) (Clone_f_clone (shift))) in - BitOr_f_bitor (left) (right). - -Definition rotate_left_usize (x : t_usize) (shift : t_u32) : t_usize := - let shift : t_u32 := Rem_f_rem (shift) (v_BITS229952196) in - let left : t_usize := Shl_f_shl (Clone_f_clone (x)) (Clone_f_clone (shift)) in - let right : t_usize := Shr_f_shr (t_Shr := _ : t_Shr _ t_u32) (Clone_f_clone (x)) (Sub_f_sub (v_BITS229952196) (Clone_f_clone (shift))) in - BitOr_f_bitor (left) (right). - -Definition rotate_right_u128 (x : t_u128) (shift : t_u32) : t_u128 := - let shift : t_u32 := Rem_f_rem (shift) (v_BITS136999051) in - let left : t_u128 := Shr_f_shr (Clone_f_clone (x)) (Clone_f_clone (shift)) in - let right : t_u128 := Shl_f_shl (t_Shl := _ : t_Shl _ t_u32) (Clone_f_clone (x)) (Sub_f_sub (v_BITS136999051) (Clone_f_clone (shift))) in - BitOr_f_bitor (left) (right). - -Definition rotate_right_u16 (x : t_u16) (shift : t_u32) : t_u16 := - let shift : t_u32 := Rem_f_rem (shift) (v_BITS277333551) in - let left : t_u16 := Shr_f_shr (Clone_f_clone (x)) (Clone_f_clone (shift)) in - let right : t_u16 := Shl_f_shl (t_Shl := _ : t_Shl _ t_u32) (Clone_f_clone (x)) (Sub_f_sub (v_BITS277333551) (Clone_f_clone (shift))) in - BitOr_f_bitor (left) (right). - -Definition rotate_right_u32 (x : t_u32) (shift : t_u32) : t_u32 := - let shift : t_u32 := Rem_f_rem (shift) (v_BITS473478051) in - let left : t_u32 := Shr_f_shr (Clone_f_clone (x)) (Clone_f_clone (shift)) in - let right : t_u32 := Shl_f_shl (t_Shl := _ : t_Shl _ t_u32) (Clone_f_clone (x)) (Sub_f_sub (v_BITS473478051) (Clone_f_clone (shift))) in - BitOr_f_bitor (left) (right). - -Definition rotate_right_u64 (x : t_u64) (shift : t_u32) : t_u64 := - let shift : t_u32 := Rem_f_rem (shift) (v_BITS177666292) in - let left : t_u64 := Shr_f_shr (Clone_f_clone (x)) (Clone_f_clone (shift)) in - let right : t_u64 := Shl_f_shl (t_Shl := _ : t_Shl _ t_u32) (Clone_f_clone (x)) (Sub_f_sub (v_BITS177666292) (Clone_f_clone (shift))) in - BitOr_f_bitor (left) (right). - -Definition rotate_right_u8 (x : t_u8) (shift : t_u32) : t_u8 := - let shift : t_u32 := Rem_f_rem (shift) (v_BITS690311813) in - let left : t_u8 := Shr_f_shr (Clone_f_clone (x)) (Clone_f_clone (shift)) in - let right : t_u8 := Shl_f_shl (t_Shl := _ : t_Shl _ t_u32) (Clone_f_clone (x)) (Sub_f_sub (v_BITS690311813) (Clone_f_clone (shift))) in - BitOr_f_bitor (left) (right). - -Definition rotate_right_usize (x : t_usize) (shift : t_u32) : t_usize := - let shift : t_u32 := Rem_f_rem (shift) (v_BITS229952196) in - let left : t_usize := Shr_f_shr (Clone_f_clone (x)) (Clone_f_clone (shift)) in - let right : t_usize := Shl_f_shl (t_Shl := _ : t_Shl _ t_u32) (Clone_f_clone (x)) (Sub_f_sub (v_BITS229952196) (Clone_f_clone (shift))) in - BitOr_f_bitor (left) (right). - -Program Definition rotate_left792925914 (self : t_u8) (n : t_u32) : t_u8 := - run (letb hoist1 := ControlFlow_Break (rotate_left_u8 (self) (n)) in - ControlFlow_Continue (never_to_any (_ (* hoist1 *)))). -Fail Next Obligation. - -Program Definition rotate_right166090082 (self : t_u8) (n : t_u32) : t_u8 := - run (letb hoist2 := ControlFlow_Break (rotate_right_u8 (self) (n)) in - ControlFlow_Continue (never_to_any (_ (* hoist2 *)))). -Fail Next Obligation. - -Program Definition rotate_left297034175 (self : t_u16) (n : t_u32) : t_u16 := - run (letb hoist3 := ControlFlow_Break (rotate_left_u16 (self) (n)) in - ControlFlow_Continue (never_to_any (_ (* hoist3 *)))). -Fail Next Obligation. - -Program Definition rotate_right138522246 (self : t_u16) (n : t_u32) : t_u16 := - run (letb hoist4 := ControlFlow_Break (rotate_right_u16 (self) (n)) in - ControlFlow_Continue (never_to_any (_ (* hoist4 *)))). -Fail Next Obligation. - -Program Definition rotate_left823573251 (self : t_u32) (n : t_u32) : t_u32 := - run (letb hoist5 := ControlFlow_Break (rotate_left_u32 (self) (n)) in - ControlFlow_Continue (never_to_any (_ (* hoist5 *)))). -Fail Next Obligation. - -Program Definition rotate_right869195717 (self : t_u32) (n : t_u32) : t_u32 := - run (letb hoist6 := ControlFlow_Break (rotate_right_u32 (self) (n)) in - ControlFlow_Continue (never_to_any (_ (* hoist6 *)))). -Fail Next Obligation. - -Program Definition rotate_left618936072 (self : t_u64) (n : t_u32) : t_u64 := - run (letb hoist7 := ControlFlow_Break (rotate_left_u64 (self) (n)) in - ControlFlow_Continue (never_to_any (_ (* hoist7 *)))). -Fail Next Obligation. - -Program Definition rotate_right1041614027 (self : t_u64) (n : t_u32) : t_u64 := - run (letb hoist8 := ControlFlow_Break (rotate_right_u64 (self) (n)) in - ControlFlow_Continue (never_to_any (_ (* hoist8 *)))). -Fail Next Obligation. - -Program Definition rotate_left1065866885 (self : t_u128) (n : t_u32) : t_u128 := - run (letb hoist9 := ControlFlow_Break (rotate_left_u128 (self) (n)) in - ControlFlow_Continue (never_to_any (_ (* hoist9 *)))). -Fail Next Obligation. - -Program Definition rotate_right591112338 (self : t_u128) (n : t_u32) : t_u128 := - run (letb hoist10 := ControlFlow_Break (rotate_right_u128 (self) (n)) in - ControlFlow_Continue (never_to_any (_ (* hoist10 *)))). -Fail Next Obligation. - -Program Definition rotate_left996672710 (self : t_usize) (n : t_u32) : t_usize := - run (letb hoist11 := ControlFlow_Break (rotate_left_usize (self) (n)) in - ControlFlow_Continue (never_to_any (_ (* hoist11 *)))). -Fail Next Obligation. - -Program Definition rotate_right442734174 (self : t_usize) (n : t_u32) : t_usize := - run (letb hoist12 := ControlFlow_Break (rotate_right_usize (self) (n)) in - ControlFlow_Continue (never_to_any (_ (* hoist12 *)))). -Fail Next Obligation. - -#[global] Instance t_Sub_788323603 : t_Sub ((t_u64)) ((t_u64)) := - { - Sub_f_Output := t_u64; - Sub_f_sub := fun (self : t_u64) (other : t_u64)=> - Build_t_u64 (Sub_f_sub (u64_0 self) (u64_0 other)); - }. - -#[global] Instance t_Sub_1046324685 : t_Sub ((t_u128)) ((t_u128)) := - { - Sub_f_Output := t_u128; - Sub_f_sub := fun (self : t_u128) (other : t_u128)=> - Build_t_u128 (Sub_f_sub (u128_0 self) (u128_0 other)); - }. - -#[global] Instance t_Sub_1064369889 : t_Sub ((t_usize)) ((t_usize)) := - { - Sub_f_Output := t_usize; - Sub_f_sub := fun (self : t_usize) (other : t_usize)=> - Build_t_usize (Sub_f_sub (usize_0 self) (usize_0 other)); - }. - -(* Program Definition bswap_u128 (x : t_u128) : t_u128 := *) -(* let count : t_u128 := Into_f_into (0%N) in *) -(* let count := fold_range (Build_t_usize (Build_t_U64 0%N)) (Into_f_into (v_BITS136999051)) (fun count _ => *) -(* true) (count) (fun (count : t_u128) (i : t_usize) => *) -(* let low_bit : t_u128 := (* Into_f_into *) (BitAnd_f_bitand (t_BitAnd := _ : t_BitAnd t_u128 t_u128) (Shr_f_shr (Clone_f_clone (x)) (Into_f_into (i))) (Into_f_into (1%N) : t_u128)) in *) -(* let count : t_u128 := Add_f_add (t_Add := t_Add_258013445 : t_Add t_u128 t_u128) (Shl_f_shl (t_Shl := t_Shl_38932717 : t_Shl t_u128 t_u32) (count) (Into_f_into (1%N) : t_u32)) (low_bit) in *) -(* count) in *) -(* count. *) - -(* Program Definition bswap_u16 (x : t_u16) : t_u16 := *) -(* let count : t_u16 := Into_f_into (0) in *) -(* let count := fold_range (Build_t_usize (Build_t_U64 0%N)) (Into_f_into (v_BITS277333551)) (fun count _ => *) -(* true) (count) (fun (count : t_u16) (i : t_usize) => *) -(* let low_bit : t_u16 := (* Into_f_into *) (BitAnd_f_bitand (t_BitAnd := _ : t_BitAnd t_u16 t_u16) (Shr_f_shr (Clone_f_clone (x)) (Into_f_into (i))) (Into_f_into (1%N) : t_u16)) in *) -(* let count := Add_f_add (t_Add := _ : t_Add _ _) (Shl_f_shl (count) (Into_f_into (1))) (low_bit) in *) -(* count) in *) -(* count. *) - -(* Definition bswap_u32 (x : t_u32) : t_u32 := *) -(* let count : t_u32 := Into_f_into (0) in *) -(* let count := fold_range (0) (Into_f_into (v_BITS473478051)) (fun count _ => *) -(* true) (count) (fun count i => *) -(* let low_bit : t_u32 := Into_f_into (BitAnd_f_bitand (Shr_f_shr (Clone_f_clone (x)) (Into_f_into (i))) (Into_f_into (1))) in *) -(* let count := Add_f_add (Shl_f_shl (count) (Into_f_into (1))) (low_bit) in *) -(* count) in *) -(* count. *) - -(* Definition bswap_u64 (x : t_u64) : t_u64 := *) -(* let count : t_u64 := Into_f_into (0) in *) -(* let count := fold_range (0) (Into_f_into (v_BITS177666292)) (fun count _ => *) -(* true) (count) (fun count i => *) -(* let low_bit : t_u64 := Into_f_into (BitAnd_f_bitand (Shr_f_shr (Clone_f_clone (x)) (Into_f_into (i))) (Into_f_into (1))) in *) -(* let count := Add_f_add (Shl_f_shl (count) (Into_f_into (1))) (low_bit) in *) -(* count) in *) -(* count. *) - -(* Definition bswap_u8 (x : t_u8) : t_u8 := *) -(* let count : t_u8 := Into_f_into (0) in *) -(* let count := fold_range (0) (Into_f_into (v_BITS690311813)) (fun count _ => *) -(* true) (count) (fun count i => *) -(* let low_bit : t_u8 := Into_f_into (BitAnd_f_bitand (Shr_f_shr (Clone_f_clone (x)) (Into_f_into (i))) (Into_f_into (1))) in *) -(* let count := Add_f_add (Shl_f_shl (count) (Into_f_into (1))) (low_bit) in *) -(* count) in *) -(* count. *) - -(* Definition bswap_usize (x : t_usize) : t_usize := *) -(* let count : t_usize := Into_f_into (0) in *) -(* let count := fold_range (0) (Into_f_into (v_BITS229952196)) (fun count _ => *) -(* true) (count) (fun count i => *) -(* let low_bit : t_usize := Into_f_into (BitAnd_f_bitand (Shr_f_shr (Clone_f_clone (x)) (Into_f_into (i))) (Into_f_into (1))) in *) -(* let count := Add_f_add (Shl_f_shl (count) (Into_f_into (1))) (low_bit) in *) -(* count) in *) -(* count. *) - -(* Definition ctlz_u128 (x : t_u128) : t_u32 := *) -(* let count : t_u32 := Into_f_into (0) in *) -(* let done := false in *) -(* let (count,done) := fold_range (0) (Into_f_into (v_BITS136999051)) (fun (count,done) _ => *) -(* true) ((count,done)) (fun (count,done) i => *) -(* let high_bit : t_u32 := Into_f_into (Shr_f_shr (Shl_f_shl (Clone_f_clone (x)) (Into_f_into (i))) (Into_f_into (Sub_f_sub (v_BITS136999051) (Into_f_into (1))))) in *) -(* if *) -(* orb (PartialEq_f_eq (high_bit) (Into_f_into (1))) (done) *) -(* then *) -(* let done := true in *) -(* (count,done) *) -(* else *) -(* let count := Add_f_add (count) (Into_f_into (1)) in *) -(* (count,done)) in *) -(* count. *) - -(* Definition ctlz_u16 (x : t_u16) : t_u32 := *) -(* let count : t_u32 := Into_f_into (0) in *) -(* let done := false in *) -(* let (count,done) := fold_range (0) (Into_f_into (v_BITS277333551)) (fun (count,done) _ => *) -(* true) ((count,done)) (fun (count,done) i => *) -(* let high_bit : t_u32 := Into_f_into (Shr_f_shr (Shl_f_shl (Clone_f_clone (x)) (Into_f_into (i))) (Into_f_into (Sub_f_sub (v_BITS277333551) (Into_f_into (1))))) in *) -(* if *) -(* orb (PartialEq_f_eq (high_bit) (Into_f_into (1))) (done) *) -(* then *) -(* let done := true in *) -(* (count,done) *) -(* else *) -(* let count := Add_f_add (count) (Into_f_into (1)) in *) -(* (count,done)) in *) -(* count. *) - -(* Definition ctlz_u32 (x : t_u32) : t_u32 := *) -(* let count : t_u32 := Into_f_into (0) in *) -(* let done := false in *) -(* let (count,done) := fold_range (0) (Into_f_into (v_BITS473478051)) (fun (count,done) _ => *) -(* true) ((count,done)) (fun (count,done) i => *) -(* let high_bit : t_u32 := Into_f_into (Shr_f_shr (Shl_f_shl (Clone_f_clone (x)) (Into_f_into (i))) (Into_f_into (Sub_f_sub (v_BITS473478051) (Into_f_into (1))))) in *) -(* if *) -(* orb (PartialEq_f_eq (high_bit) (Into_f_into (1))) (done) *) -(* then *) -(* let done := true in *) -(* (count,done) *) -(* else *) -(* let count := Add_f_add (count) (Into_f_into (1)) in *) -(* (count,done)) in *) -(* count. *) - -(* Definition ctlz_u64 (x : t_u64) : t_u32 := *) -(* let count : t_u32 := Into_f_into (0) in *) -(* let done := false in *) -(* let (count,done) := fold_range (0) (Into_f_into (v_BITS177666292)) (fun (count,done) _ => *) -(* true) ((count,done)) (fun (count,done) i => *) -(* let high_bit : t_u32 := Into_f_into (Shr_f_shr (Shl_f_shl (Clone_f_clone (x)) (Into_f_into (i))) (Into_f_into (Sub_f_sub (v_BITS177666292) (Into_f_into (1))))) in *) -(* if *) -(* orb (PartialEq_f_eq (high_bit) (Into_f_into (1))) (done) *) -(* then *) -(* let done := true in *) -(* (count,done) *) -(* else *) -(* let count := Add_f_add (count) (Into_f_into (1)) in *) -(* (count,done)) in *) -(* count. *) - -(* Definition ctlz_u8 (x : t_u8) : t_u32 := *) -(* let count : t_u32 := Into_f_into (0) in *) -(* let done := false in *) -(* let (count,done) := fold_range (0) (Into_f_into (v_BITS690311813)) (fun (count,done) _ => *) -(* true) ((count,done)) (fun (count,done) i => *) -(* let high_bit : t_u32 := Into_f_into (Shr_f_shr (Shl_f_shl (Clone_f_clone (x)) (Into_f_into (i))) (Into_f_into (Sub_f_sub (v_BITS690311813) (Into_f_into (1))))) in *) -(* if *) -(* orb (PartialEq_f_eq (high_bit) (Into_f_into (1))) (done) *) -(* then *) -(* let done := true in *) -(* (count,done) *) -(* else *) -(* let count := Add_f_add (count) (Into_f_into (1)) in *) -(* (count,done)) in *) -(* count. *) - -(* Definition ctlz_usize (x : t_usize) : t_u32 := *) -(* let count : t_u32 := Into_f_into (0) in *) -(* let done := false in *) -(* let (count,done) := fold_range (0) (Into_f_into (v_BITS229952196)) (fun (count,done) _ => *) -(* true) ((count,done)) (fun (count,done) i => *) -(* let high_bit : t_u32 := Into_f_into (Shr_f_shr (Shl_f_shl (Clone_f_clone (x)) (Into_f_into (i))) (Into_f_into (Sub_f_sub (v_BITS229952196) (Into_f_into (1))))) in *) -(* if *) -(* orb (PartialEq_f_eq (high_bit) (Into_f_into (1))) (done) *) -(* then *) -(* let done := true in *) -(* (count,done) *) -(* else *) -(* let count := Add_f_add (count) (Into_f_into (1)) in *) -(* (count,done)) in *) -(* count. *) - -(* Definition ctpop_u128 (x : t_u128) : t_u32 := *) -(* let count : t_u32 := Into_f_into (0) in *) -(* let count := fold_range (0) (Into_f_into (v_BITS136999051)) (fun count _ => *) -(* true) (count) (fun count i => *) -(* Add_f_add (count) (Into_f_into (BitAnd_f_bitand (Shr_f_shr (Clone_f_clone (x)) (Into_f_into (i))) (Into_f_into (1))))) in *) -(* count. *) - -(* Definition ctpop_u16 (x : t_u16) : t_u32 := *) -(* let count : t_u32 := Into_f_into (0) in *) -(* let count := fold_range (0) (Into_f_into (v_BITS277333551)) (fun count _ => *) -(* true) (count) (fun count i => *) -(* Add_f_add (count) (Into_f_into (BitAnd_f_bitand (Shr_f_shr (Clone_f_clone (x)) (Into_f_into (i))) (Into_f_into (1))))) in *) -(* count. *) - -(* Definition ctpop_u32 (x : t_u32) : t_u32 := *) -(* let count : t_u32 := Into_f_into (0) in *) -(* let count := fold_range (0) (Into_f_into (v_BITS473478051)) (fun count _ => *) -(* true) (count) (fun count i => *) -(* Add_f_add (count) (Into_f_into (BitAnd_f_bitand (Shr_f_shr (Clone_f_clone (x)) (Into_f_into (i))) (Into_f_into (1))))) in *) -(* count. *) - -(* Definition ctpop_u64 (x : t_u64) : t_u32 := *) -(* let count : t_u32 := Into_f_into (0) in *) -(* let count := fold_range (0) (Into_f_into (v_BITS177666292)) (fun count _ => *) -(* true) (count) (fun count i => *) -(* Add_f_add (count) (Into_f_into (BitAnd_f_bitand (Shr_f_shr (Clone_f_clone (x)) (Into_f_into (i))) (Into_f_into (1))))) in *) -(* count. *) - -(* Definition ctpop_u8 (x : t_u8) : t_u32 := *) -(* let count : t_u32 := Into_f_into (0) in *) -(* let count := fold_range (0) (Into_f_into (v_BITS690311813)) (fun count _ => *) -(* true) (count) (fun count i => *) -(* Add_f_add (count) (Into_f_into (BitAnd_f_bitand (Shr_f_shr (Clone_f_clone (x)) (Into_f_into (i))) (Into_f_into (1))))) in *) -(* count. *) - -(* Definition ctpop_usize (x : t_usize) : t_u32 := *) -(* let count : t_u32 := Into_f_into (0) in *) -(* let count := fold_range (0) (Into_f_into (v_BITS229952196)) (fun count _ => *) -(* true) (count) (fun count i => *) -(* Add_f_add (count) (Into_f_into (BitAnd_f_bitand (Shr_f_shr (Clone_f_clone (x)) (Into_f_into (i))) (Into_f_into (1))))) in *) -(* count. *) - -(* Definition cttz_u128 (x : t_u128) : t_u32 := *) -(* let count : t_u32 := Into_f_into (0) in *) -(* let done := false in *) -(* let (count,done) := fold_range (0) (Into_f_into (v_BITS136999051)) (fun (count,done) _ => *) -(* true) ((count,done)) (fun (count,done) i => *) -(* let low_bit : t_u32 := Into_f_into (BitAnd_f_bitand (Shr_f_shr (Clone_f_clone (x)) (Into_f_into (i))) (Into_f_into (1))) in *) -(* if *) -(* orb (PartialEq_f_eq (low_bit) (Into_f_into (1))) (done) *) -(* then *) -(* let done := true in *) -(* (count,done) *) -(* else *) -(* let count := Add_f_add (count) (Into_f_into (1)) in *) -(* (count,done)) in *) -(* count. *) - -(* Definition cttz_u16 (x : t_u16) : t_u32 := *) -(* let count : t_u32 := Into_f_into (0) in *) -(* let done := false in *) -(* let (count,done) := fold_range (0) (Into_f_into (v_BITS277333551)) (fun (count,done) _ => *) -(* true) ((count,done)) (fun (count,done) i => *) -(* let low_bit : t_u32 := Into_f_into (BitAnd_f_bitand (Shr_f_shr (Clone_f_clone (x)) (Into_f_into (i))) (Into_f_into (1))) in *) -(* if *) -(* orb (PartialEq_f_eq (low_bit) (Into_f_into (1))) (done) *) -(* then *) -(* let done := true in *) -(* (count,done) *) -(* else *) -(* let count := Add_f_add (count) (Into_f_into (1)) in *) -(* (count,done)) in *) -(* count. *) - -(* Definition cttz_u32 (x : t_u32) : t_u32 := *) -(* let count : t_u32 := Into_f_into (0) in *) -(* let done := false in *) -(* let (count,done) := fold_range (0) (Into_f_into (v_BITS473478051)) (fun (count,done) _ => *) -(* true) ((count,done)) (fun (count,done) i => *) -(* let low_bit : t_u32 := Into_f_into (BitAnd_f_bitand (Shr_f_shr (Clone_f_clone (x)) (Into_f_into (i))) (Into_f_into (1))) in *) -(* if *) -(* orb (PartialEq_f_eq (low_bit) (Into_f_into (1))) (done) *) -(* then *) -(* let done := true in *) -(* (count,done) *) -(* else *) -(* let count := Add_f_add (count) (Into_f_into (1)) in *) -(* (count,done)) in *) -(* count. *) - -(* Definition cttz_u64 (x : t_u64) : t_u32 := *) -(* let count : t_u32 := Into_f_into (0) in *) -(* let done := false in *) -(* let (count,done) := fold_range (0) (Into_f_into (v_BITS177666292)) (fun (count,done) _ => *) -(* true) ((count,done)) (fun (count,done) i => *) -(* let low_bit : t_u32 := Into_f_into (BitAnd_f_bitand (Shr_f_shr (Clone_f_clone (x)) (Into_f_into (i))) (Into_f_into (1))) in *) -(* if *) -(* orb (PartialEq_f_eq (low_bit) (Into_f_into (1))) (done) *) -(* then *) -(* let done := true in *) -(* (count,done) *) -(* else *) -(* let count := Add_f_add (count) (Into_f_into (1)) in *) -(* (count,done)) in *) -(* count. *) - -(* Definition cttz_u8 (x : t_u8) : t_u32 := *) -(* let count : t_u32 := Into_f_into (0) in *) -(* let done := false in *) -(* let (count,done) := fold_range (0) (Into_f_into (v_BITS690311813)) (fun (count,done) _ => *) -(* true) ((count,done)) (fun (count,done) i => *) -(* let low_bit : t_u32 := Into_f_into (BitAnd_f_bitand (Shr_f_shr (Clone_f_clone (x)) (Into_f_into (i))) (Into_f_into (1))) in *) -(* if *) -(* orb (PartialEq_f_eq (low_bit) (Into_f_into (1))) (done) *) -(* then *) -(* let done := true in *) -(* (count,done) *) -(* else *) -(* let count := Add_f_add (count) (Into_f_into (1)) in *) -(* (count,done)) in *) -(* count. *) - -(* Definition cttz_usize (x : t_usize) : t_u32 := *) -(* let count : t_u32 := Into_f_into (0) in *) -(* let done := false in *) -(* let (count,done) := fold_range (0) (Into_f_into (v_BITS229952196)) (fun (count,done) _ => *) -(* true) ((count,done)) (fun (count,done) i => *) -(* let low_bit : t_u32 := Into_f_into (BitAnd_f_bitand (Shr_f_shr (Clone_f_clone (x)) (Into_f_into (i))) (Into_f_into (1))) in *) -(* if *) -(* orb (PartialEq_f_eq (low_bit) (Into_f_into (1))) (done) *) -(* then *) -(* let done := true in *) -(* (count,done) *) -(* else *) -(* let count := Add_f_add (count) (Into_f_into (1)) in *) -(* (count,done)) in *) -(* count. *) - -(* Definition count_ones202509899 (self : t_u8) : t_u32 := *) -(* run (let hoist13 := ControlFlow_Break (ctpop_u8 (self)) in *) -(* ControlFlow_Continue (never_to_any (hoist13))). *) - -(* Definition leading_zeros75047366 (self : t_u8) : t_u32 := *) -(* run (let hoist14 := ControlFlow_Break (ctlz_u8 (self)) in *) -(* ControlFlow_Continue (never_to_any (hoist14))). *) - -(* Definition swap_bytes657156997 (self : t_u8) : t_u8 := *) -(* Into_f_into (bswap_u8 (self)). *) - -(* Definition from_be746282521 (x : t_u8) : t_u8 := *) -(* swap_bytes657156997 (x). *) - -(* Definition to_be972448780 (self : t_u8) : t_u8 := *) -(* swap_bytes657156997 (self). *) - -(* Definition trailing_zeros572929871 (self : t_u8) : t_u32 := *) -(* run (let hoist15 := ControlFlow_Break (cttz_u8 (self)) in *) -(* ControlFlow_Continue (never_to_any (hoist15))). *) - -(* Definition count_ones91875752 (self : t_u16) : t_u32 := *) -(* run (let hoist16 := ControlFlow_Break (ctpop_u16 (self)) in *) -(* ControlFlow_Continue (never_to_any (hoist16))). *) - -(* Definition leading_zeros462412478 (self : t_u16) : t_u32 := *) -(* run (let hoist17 := ControlFlow_Break (ctlz_u16 (self)) in *) -(* ControlFlow_Continue (never_to_any (hoist17))). *) - -(* Definition swap_bytes926722059 (self : t_u16) : t_u16 := *) -(* Into_f_into (bswap_u16 (self)). *) - -(* Definition from_be510959665 (x : t_u16) : t_u16 := *) -(* swap_bytes926722059 (x). *) - -(* Definition to_be551590602 (self : t_u16) : t_u16 := *) -(* swap_bytes926722059 (self). *) - -(* Definition trailing_zeros421474733 (self : t_u16) : t_u32 := *) -(* run (let hoist18 := ControlFlow_Break (cttz_u16 (self)) in *) -(* ControlFlow_Continue (never_to_any (hoist18))). *) - -(* Definition count_ones776185738 (self : t_u32) : t_u32 := *) -(* run (let hoist19 := ControlFlow_Break (ctpop_u32 (self)) in *) -(* ControlFlow_Continue (never_to_any (hoist19))). *) - -(* Definition leading_zeros698221972 (self : t_u32) : t_u32 := *) -(* run (let hoist20 := ControlFlow_Break (ctlz_u32 (self)) in *) -(* ControlFlow_Continue (never_to_any (hoist20))). *) - -(* Definition swap_bytes320480126 (self : t_u32) : t_u32 := *) -(* Into_f_into (bswap_u32 (self)). *) - -(* Definition from_be664756649 (x : t_u32) : t_u32 := *) -(* swap_bytes320480126 (x). *) - -(* Definition to_be82825962 (self : t_u32) : t_u32 := *) -(* swap_bytes320480126 (self). *) - -(* Definition trailing_zeros1061560720 (self : t_u32) : t_u32 := *) -(* run (let hoist21 := ControlFlow_Break (cttz_u32 (self)) in *) -(* ControlFlow_Continue (never_to_any (hoist21))). *) - -(* Definition count_ones235885653 (self : t_u64) : t_u32 := *) -(* run (let hoist22 := ControlFlow_Break (ctpop_u64 (self)) in *) -(* ControlFlow_Continue (never_to_any (hoist22))). *) - -(* Definition leading_zeros338302110 (self : t_u64) : t_u32 := *) -(* run (let hoist23 := ControlFlow_Break (ctlz_u64 (self)) in *) -(* ControlFlow_Continue (never_to_any (hoist23))). *) - -(* Definition swap_bytes722254271 (self : t_u64) : t_u64 := *) -(* Into_f_into (bswap_u64 (self)). *) - -(* Definition from_be16013635 (x : t_u64) : t_u64 := *) -(* swap_bytes722254271 (x). *) - -(* Definition to_be376714729 (self : t_u64) : t_u64 := *) -(* swap_bytes722254271 (self). *) - -(* Definition trailing_zeros188346231 (self : t_u64) : t_u32 := *) -(* run (let hoist24 := ControlFlow_Break (cttz_u64 (self)) in *) -(* ControlFlow_Continue (never_to_any (hoist24))). *) - -(* Definition count_ones926736261 (self : t_u128) : t_u32 := *) -(* run (let hoist25 := ControlFlow_Break (ctpop_u128 (self)) in *) -(* ControlFlow_Continue (never_to_any (hoist25))). *) - -(* Definition leading_zeros19644612 (self : t_u128) : t_u32 := *) -(* run (let hoist26 := ControlFlow_Break (ctlz_u128 (self)) in *) -(* ControlFlow_Continue (never_to_any (hoist26))). *) - -(* Definition swap_bytes420879368 (self : t_u128) : t_u128 := *) -(* Into_f_into (bswap_u128 (self)). *) - -(* Definition from_be191085771 (x : t_u128) : t_u128 := *) -(* swap_bytes420879368 (x). *) - -(* Definition to_be555075987 (self : t_u128) : t_u128 := *) -(* swap_bytes420879368 (self). *) - -(* Definition trailing_zeros821715250 (self : t_u128) : t_u32 := *) -(* run (let hoist27 := ControlFlow_Break (cttz_u128 (self)) in *) -(* ControlFlow_Continue (never_to_any (hoist27))). *) - -(* Definition count_ones441645762 (self : t_usize) : t_u32 := *) -(* run (let hoist28 := ControlFlow_Break (ctpop_usize (self)) in *) -(* ControlFlow_Continue (never_to_any (hoist28))). *) - -(* Definition leading_zeros905233489 (self : t_usize) : t_u32 := *) -(* run (let hoist29 := ControlFlow_Break (ctlz_usize (self)) in *) -(* ControlFlow_Continue (never_to_any (hoist29))). *) - -(* Definition swap_bytes268673424 (self : t_usize) : t_usize := *) -(* Into_f_into (bswap_usize (self)). *) - -(* Definition from_be607978059 (x : t_usize) : t_usize := *) -(* swap_bytes268673424 (x). *) - -(* Definition to_be561847134 (self : t_usize) : t_usize := *) -(* swap_bytes268673424 (self). *) - -(* Definition trailing_zeros42066260 (self : t_usize) : t_u32 := *) -(* run (let hoist30 := ControlFlow_Break (cttz_usize (self)) in *) -(* ControlFlow_Continue (never_to_any (hoist30))). *) - -#[global] Instance t_Div_345870802 : t_Div ((t_i8)) ((t_i8)) := - { - Div_f_Output := t_i8; - Div_f_div := fun (self : t_i8) (other : t_i8)=> - Build_t_i8 (Div_f_div (i8_0 self) (i8_0 other)); - }. - -#[global] Instance t_Div_69196905 : t_Div ((t_i16)) ((t_i16)) := - { - Div_f_Output := t_i16; - Div_f_div := fun (self : t_i16) (other : t_i16)=> - Build_t_i16 (Div_f_div (i16_0 self) (i16_0 other)); - }. - -#[global] Instance t_Div_222178666 : t_Div ((t_i32)) ((t_i32)) := - { - Div_f_Output := t_i32; - Div_f_div := fun (self : t_i32) (other : t_i32)=> - Build_t_i32 (Div_f_div (i32_0 self) (i32_0 other)); - }. - -#[global] Instance t_Div_551701934 : t_Div ((t_i64)) ((t_i64)) := - { - Div_f_Output := t_i64; - Div_f_div := fun (self : t_i64) (other : t_i64)=> - Build_t_i64 (Div_f_div (i64_0 self) (i64_0 other)); - }. - -#[global] Instance t_Div_650346214 : t_Div ((t_i128)) ((t_i128)) := - { - Div_f_Output := t_i128; - Div_f_div := fun (self : t_i128) (other : t_i128)=> - Build_t_i128 (Div_f_div (i128_0 self) (i128_0 other)); - }. - -#[global] Instance t_Div_911978922 : t_Div ((t_isize)) ((t_isize)) := - { - Div_f_Output := t_isize; - Div_f_div := fun (self : t_isize) (other : t_isize)=> - Build_t_isize (Div_f_div (isize_0 self) (isize_0 other)); - }. - -#[global] Instance t_Rem_580678374 : t_Rem ((t_i8)) ((t_i8)) := - { - Rem_f_Output := t_i8; - Rem_f_rem := fun (self : t_i8) (other : t_i8)=> - Build_t_i8 (Rem_f_rem (i8_0 self) (i8_0 other)); - }. - -Definition rem_euclid622298453 (self : t_i8) (rhs : t_i8) : t_i8 := - let r := Rem_f_rem (self) (Clone_f_clone (rhs)) in - if - PartialOrd_f_lt (r) (Into_f_into (0)) - then - wrapping_add634491935 (r) (wrapping_abs400396545 (rhs)) - else - r. - -#[global] Instance t_Rem_532407972 : t_Rem ((t_i16)) ((t_i16)) := - { - Rem_f_Output := t_i16; - Rem_f_rem := fun (self : t_i16) (other : t_i16)=> - Build_t_i16 (Rem_f_rem (i16_0 self) (i16_0 other)); - }. - -Definition rem_euclid158017644 (self : t_i16) (rhs : t_i16) : t_i16 := - let r := Rem_f_rem (self) (Clone_f_clone (rhs)) in - if - PartialOrd_f_lt (r) (Into_f_into (0)) - then - wrapping_add868559108 (r) (wrapping_abs229076826 (rhs)) - else - r. - -#[global] Instance t_Rem_406274620 : t_Rem ((t_i32)) ((t_i32)) := - { - Rem_f_Output := t_i32; - Rem_f_rem := fun (self : t_i32) (other : t_i32)=> - Build_t_i32 (Rem_f_rem (i32_0 self) (i32_0 other)); - }. - -Definition rem_euclid881249982 (self : t_i32) (rhs : t_i32) : t_i32 := - let r := Rem_f_rem (self) (Clone_f_clone (rhs)) in - if - PartialOrd_f_lt (r) (Into_f_into (0)) - then - wrapping_add475006616 (r) (wrapping_abs729536875 (rhs)) - else - r. - -#[global] Instance t_Rem_296096507 : t_Rem ((t_i64)) ((t_i64)) := - { - Rem_f_Output := t_i64; - Rem_f_rem := fun (self : t_i64) (other : t_i64)=> - Build_t_i64 (Rem_f_rem (i64_0 self) (i64_0 other)); - }. - -Definition rem_euclid1057082210 (self : t_i64) (rhs : t_i64) : t_i64 := - let r := Rem_f_rem (self) (Clone_f_clone (rhs)) in - if - PartialOrd_f_lt (r) (Into_f_into (0)) - then - wrapping_add590074241 (r) (wrapping_abs285829312 (rhs)) - else - r. - -#[global] Instance t_Rem_773614977 : t_Rem ((t_i128)) ((t_i128)) := - { - Rem_f_Output := t_i128; - Rem_f_rem := fun (self : t_i128) (other : t_i128)=> - Build_t_i128 (Rem_f_rem (i128_0 self) (i128_0 other)); - }. - -Definition rem_euclid254910751 (self : t_i128) (rhs : t_i128) : t_i128 := - let r := Rem_f_rem (self) (Clone_f_clone (rhs)) in - if - PartialOrd_f_lt (r) (Into_f_into (0)) - then - wrapping_add251385439 (r) (wrapping_abs281925696 (rhs)) - else - r. - -#[global] Instance t_Rem_136872616 : t_Rem ((t_isize)) ((t_isize)) := - { - Rem_f_Output := t_isize; - Rem_f_rem := fun (self : t_isize) (other : t_isize)=> - Build_t_isize (Rem_f_rem (isize_0 self) (isize_0 other)); - }. - -Definition rem_euclid828379367 (self : t_isize) (rhs : t_isize) : t_isize := - let r := Rem_f_rem (self) (Clone_f_clone (rhs)) in - if - PartialOrd_f_lt (r) (Into_f_into (0)) - then - wrapping_add226040243 (r) (wrapping_abs347300819 (rhs)) - else - r. - -#[global] Instance t_Not_500984294 : t_Not ((t_u8)) := - { - Not_f_Output := t_u8; - Not_f_not := fun (self : t_u8)=> - Build_t_u8 (Not_f_not (u8_0 self)); - }. - -(* Definition count_zeros558337492 (self : t_u8) : t_u32 := *) -(* count_ones202509899 (Not_f_not (self)). *) - -(* Definition leading_ones55148479 (self : t_u8) : t_u32 := *) -(* leading_zeros75047366 (Not_f_not (self)). *) - -(* Definition trailing_ones359778731 (self : t_u8) : t_u32 := *) -(* trailing_zeros572929871 (Not_f_not (self)). *) - -#[global] Instance t_Not_560691647 : t_Not ((t_u16)) := - { - Not_f_Output := t_u16; - Not_f_not := fun (self : t_u16)=> - Build_t_u16 (Not_f_not (u16_0 self)); - }. - -(* Definition count_zeros199825317 (self : t_u16) : t_u32 := *) -(* count_ones91875752 (Not_f_not (self)). *) - -(* Definition leading_ones164277656 (self : t_u16) : t_u32 := *) -(* leading_zeros462412478 (Not_f_not (self)). *) - -(* Definition trailing_ones903944727 (self : t_u16) : t_u32 := *) -(* trailing_zeros421474733 (Not_f_not (self)). *) - -#[global] Instance t_Not_220208504 : t_Not ((t_u32)) := - { - Not_f_Output := t_u32; - Not_f_not := fun (self : t_u32)=> - Build_t_u32 (Not_f_not (u32_0 self)); - }. - -(* Definition count_zeros942566041 (self : t_u32) : t_u32 := *) -(* count_ones776185738 (Not_f_not (self)). *) - -(* Definition leading_ones766486760 (self : t_u32) : t_u32 := *) -(* leading_zeros698221972 (Not_f_not (self)). *) - -(* Definition trailing_ones223371510 (self : t_u32) : t_u32 := *) -(* trailing_zeros1061560720 (Not_f_not (self)). *) - -#[global] Instance t_Not_655044209 : t_Not ((t_u64)) := - { - Not_f_Output := t_u64; - Not_f_not := fun (self : t_u64)=> - Build_t_u64 (Not_f_not (u64_0 self)); - }. - -(* Definition count_zeros60346158 (self : t_u64) : t_u32 := *) -(* count_ones235885653 (Not_f_not (self)). *) - -(* Definition leading_ones404666910 (self : t_u64) : t_u32 := *) -(* leading_zeros338302110 (Not_f_not (self)). *) - -(* Definition trailing_ones601201120 (self : t_u64) : t_u32 := *) -(* trailing_zeros188346231 (Not_f_not (self)). *) - -#[global] Instance t_Not_851738617 : t_Not ((t_u128)) := - { - Not_f_Output := t_u128; - Not_f_not := fun (self : t_u128)=> - Build_t_u128 (Not_f_not (u128_0 self)); - }. - -(* Definition count_zeros824862815 (self : t_u128) : t_u32 := *) -(* count_ones926736261 (Not_f_not (self)). *) - -(* Definition leading_ones475503572 (self : t_u128) : t_u32 := *) -(* leading_zeros19644612 (Not_f_not (self)). *) - -(* Definition trailing_ones705845381 (self : t_u128) : t_u32 := *) -(* trailing_zeros821715250 (Not_f_not (self)). *) - -#[global] Instance t_Not_677551814 : t_Not ((t_usize)) := - { - Not_f_Output := t_usize; - Not_f_not := fun (self : t_usize)=> - Build_t_usize (Not_f_not (usize_0 self)); - }. - -(* Definition count_zeros73479642 (self : t_usize) : t_u32 := *) -(* count_ones441645762 (Not_f_not (self)). *) - -(* Definition leading_ones667660708 (self : t_usize) : t_u32 := *) -(* leading_zeros905233489 (Not_f_not (self)). *) - -(* Definition trailing_ones979548463 (self : t_usize) : t_u32 := *) -(* trailing_zeros42066260 (Not_f_not (self)). *) - -Record t_TryFromSliceError : Type := - { - TryFromSliceError_0 : unit; - }. -Arguments Build_t_TryFromSliceError. -Arguments TryFromSliceError_0. -#[export] Instance settable_t_TryFromSliceError : Settable _ := - settable! (Build_t_TryFromSliceError) . -Notation "'TryFromSliceError'" := Build_t_TryFromSliceError. - -Definition t_Seq (v_T : Type) `{t_Sized (v_T)} : Type := list v_T. - -#[global] Instance t_Clone_640571940 `{v_T : Type} `{t_Sized (v_T)} `{t_Clone (v_T)} : t_Clone ((t_Seq ((v_T)))) := - { - Clone_f_clone := fun (self : t_Seq ((v_T)))=> - self; - }. - -Definition t_LIST (v_T : Type) `{t_Sized (v_T)} : Type := list v_T. -Notation "'LIST_NIL'" := nil. -Notation "'LIST_CONS'" := (fun a b => cons b a). - -Definition nil `{v_T : Type} `{t_Sized (v_T)} `{t_Clone (v_T)} '(_ : unit) : t_Seq ((v_T)) := nil. - -Record t_Slice (v_T : Type) `{t_Sized (v_T)} : Type := - { - Slice_f_v : t_Seq ((v_T)); - }. -Arguments Build_t_Slice (_) {_}. -Arguments Slice_f_v {_} {_}. -#[export] Instance settable_t_Slice `{v_T : Type} `{t_Sized (v_T)} : Settable _ := - settable! (Build_t_Slice v_T) . - -(* Instance t_From_692299963 `{v_T : Type} `{t_Sized (v_T)} `{t_Clone (v_T)} : t_From ((t_Slice ((v_T)))) ((t_Slice v_T)) := *) -(* { *) -(* From_f_from := fun (x : t_Slice v_T)=> *) -(* t_Slice (t_Seq (impl__to_vec (x))); *) -(* }. *) - -Record t_Array (v_T : Type) (v_N : t_usize) `{t_Sized (v_T)} : Type := - { - Array_f_v : t_Slice ((v_T)); - }. -Arguments Build_t_Array {_} {_} {_}. -Arguments Array_f_v {_} {_} {_}. -#[export] Instance settable_t_Array `{v_T : Type} `{v_N : t_usize} `{t_Sized (v_T)} : Settable _ := - settable! (@Build_t_Array v_T v_N _) . - -#[global] Instance t_Clone_962303223 `{v_T : Type} `{v_N : t_usize} `{t_Sized (v_T)} `{t_Clone (v_T)} : t_Clone ((t_Array ((v_T)) (v_N))) := - { - Clone_f_clone := fun (self : t_Array ((v_T)) (v_N))=> - Build_t_Array (Clone_f_clone (Array_f_v self)); - }. - -Definition cast `{v_T : Type} `{v_N : t_usize} `{t_Sized (v_T)} `{t_Clone (v_T)} (self : t_Array ((v_T)) (v_N)) : t_Slice ((v_T)) := - Array_f_v self. - -From Core Require Import Core_Ops_Index. - -Instance t_Index_927562605 `{v_T : Type} `{v_I : Type} `{v_N : t_usize} `{t_Sized (v_T)} `{t_Sized (v_I)} `{t_Clone (v_T)} `{t_Index (t_Slice ((v_T))) (v_I)} : t_Index ((t_Array ((v_T)) (v_N))) ((v_I)) := - { - Index_f_Output := Index_f_Output; - Index_f_index := fun (self : t_Array ((v_T)) (v_N)) (index : v_I)=> - Index_f_index (cast (self)) (index); - }. - -(* Instance t_From_684363179 `{v_T : Type} `{v_N : t_usize} `{t_Sized (v_T)} `{t_Clone (v_T)} : t_From ((t_Array (v_T) (v_N))) ((t_Array ((v_T)) (v_N))) := *) -(* { *) -(* From_f_from := fun (x : t_Array ((v_T)) (v_N))=> *) -(* match TryInto_f_try_into (Seq_f_v Slice_f_v Array_f_v x) with *) -(* | Result_Ok (x) => *) -(* x *) -(* | _ => *) -(* never_to_any (panic_fmt (impl_2__new_const (["some error?"%string]))) *) -(* end; *) -(* }. *) - -#[global] Instance t_Index_324031838 `{v_T : Type} `{v_I : Type} `{t_Sized (v_T)} `{t_Sized (v_I)} `{v_SliceIndex (v_I) (t_Slice ((v_T)))} : t_Index ((t_Slice ((v_T)))) ((v_I)) := - { - Index_f_Output := SliceIndex_f_Output; - Index_f_index := fun (self : t_Slice ((v_T))) (index : v_I)=> - SliceIndex_f_index (index) (self); - }. - -Definition cons `{v_T : Type} `{t_Sized (v_T)} `{t_Clone (v_T)} (s : t_Seq ((v_T))) (t : v_T) : t_Seq ((v_T)) := - cons s t. - -(* Instance t_From_1005673342 `{v_T : Type} `{v_N : t_usize} `{t_Sized (v_T)} `{t_Clone (v_T)} : t_From ((t_Array ((v_T)) (v_N))) ((t_Array (v_T) (v_N))) := *) -(* { *) -(* From_f_from := fun (x : t_Array (v_T) (v_N))=> *) -(* t_Array (t_Slice (t_Seq (impl__to_vec (Index_f_index (x) (Build_t_RangeFull))))); *) -(* }. *) - -(* Instance v_SliceIndex_1030023794 `{v_T : Type} `{t_Sized (v_T)} : v_SliceIndex ((t_RangeFull)) ((t_Slice ((v_T)))) := *) -(* { *) -(* SliceIndex_f_Output := t_Slice ((v_T)); *) -(* SliceIndex_f_index := fun (self : t_RangeFull) (slice : t_Slice ((v_T)))=> *) -(* slice; *) -(* }. *) - -(* Instance t_AsRef_175264108 `{v_T : Type} `{v_N : t_usize} `{t_Sized (v_T)} `{t_Clone (v_T)} : t_AsRef ((t_Array ((v_T)) (v_N))) ((t_Slice ((v_T)))) := *) -(* { *) -(* AsRef_f_as_ref := fun (self : t_Array ((v_T)) (v_N))=> *) -(* Index_f_index (self) (Build_t_RangeFull); *) -(* }. *) - -Definition match_list `{v_T : Type} `{t_Sized (v_T)} `{t_Clone (v_T)} (s : t_Seq ((v_T))) : t_LIST ((v_T)) := s. - -(* Fixpoint from_u128_binary (x : t_u128) `{PartialEq_f_ne (x) (0) = true} : t_Positive := *) -(* if *) -(* PartialEq_f_eq (x) (1) *) -(* then *) -(* xH *) -(* else *) -(* if *) -(* PartialEq_f_eq (Rem_f_rem (x) (2)) (0) *) -(* then *) -(* xO (from_u128_binary (Div_f_div (x) (Build_t_u128 (Build_t_U128 2)))) *) -(* else *) -(* xI (from_u128_binary (Div_f_div (x) (2))). *) - -(* Instance t_From_383682059 : t_From ((t_HaxInt)) ((t_u128)) := *) -(* { *) -(* From_f_from := fun (x : t_u128)=> *) -(* if *) -(* PartialEq_f_eq (x) (0) *) -(* then *) -(* v_HaxInt_ZERO *) -(* else *) -(* positive_to_int (from_u128_binary (x)); *) -(* }. *) - -(* Instance t_From_394907254 : t_From ((t_Z)) ((t_i128)) := *) -(* { *) -(* From_f_from := fun (x : t_i128)=> *) -(* match Ord_f_cmp (x) (0) with *) -(* | Ordering_Equal => *) -(* Z_ZERO *) -(* | Ordering_Less => *) -(* Z_NEG (from_u128_binary (impl__i128__unsigned_abs (x))) *) -(* | Ordering_Greater => *) -(* Z_POS (from_u128_binary (impl__i128__unsigned_abs (x))) *) -(* end; *) -(* }. *) - -(* Fixpoint from_u16_binary (x : t_u16) `{ne (x) (0) = true} : t_Positive := *) -(* if *) -(* t_PartialEq_f_eq (x) (1) *) -(* then *) -(* xH *) -(* else *) -(* if *) -(* t_PartialEq_f_eq (t_Rem_f_rem (x) (2)) (0) *) -(* then *) -(* xO (from_u16_binary (t_Div_f_div (x) (2))) *) -(* else *) -(* xI (from_u16_binary (t_Div_f_div (x) (2))). *) - -(* Instance t_From_283547720 : t_From ((t_HaxInt)) ((t_u16)) := *) -(* { *) -(* From_f_from := fun (x : t_u16)=> *) -(* if *) -(* t_PartialEq_f_eq (x) (0) *) -(* then *) -(* v_HaxInt_ZERO *) -(* else *) -(* positive_to_int (from_u16_binary (x)); *) -(* }. *) - -(* Instance t_From_960274744 : t_From ((t_Z)) ((t_i16)) := *) -(* { *) -(* From_f_from := fun (x : t_i16)=> *) -(* match Ord_f_cmp (x) (0) with *) -(* | Ordering_Equal => *) -(* Z_ZERO *) -(* | Ordering_Less => *) -(* Z_NEG (from_u16_binary (impl__i16__unsigned_abs (x))) *) -(* | Ordering_Greater => *) -(* Z_POS (from_u16_binary (impl__i16__unsigned_abs (x))) *) -(* end; *) -(* }. *) - -(* Fixpoint from_u32_binary (x : t_u32) `{ne (x) (0) = true} : t_Positive := *) -(* if *) -(* t_PartialEq_f_eq (x) (1) *) -(* then *) -(* xH *) -(* else *) -(* if *) -(* t_PartialEq_f_eq (t_Rem_f_rem (x) (2)) (0) *) -(* then *) -(* xO (from_u32_binary (t_Div_f_div (x) (2))) *) -(* else *) -(* xI (from_u32_binary (t_Div_f_div (x) (2))). *) - -(* Instance t_From_247317262 : t_From ((t_HaxInt)) ((t_u32)) := *) -(* { *) -(* From_f_from := fun (x : t_u32)=> *) -(* if *) -(* t_PartialEq_f_eq (x) (0) *) -(* then *) -(* v_HaxInt_ZERO *) -(* else *) -(* positive_to_int (from_u32_binary (x)); *) -(* }. *) - -(* Instance t_From_1033810922 : t_From ((t_Z)) ((t_i32)) := *) -(* { *) -(* From_f_from := fun (x : t_i32)=> *) -(* match Ord_f_cmp (x) (0) with *) -(* | Ordering_Equal => *) -(* Z_ZERO *) -(* | Ordering_Less => *) -(* Z_NEG (from_u32_binary (impl__i32__unsigned_abs (x))) *) -(* | Ordering_Greater => *) -(* Z_POS (from_u32_binary (impl__i32__unsigned_abs (x))) *) -(* end; *) -(* }. *) - -(* Fixpoint from_u64_binary (x : t_u64) `{ne (x) (0) = true} : t_Positive := *) -(* if *) -(* t_PartialEq_f_eq (x) (1) *) -(* then *) -(* xH *) -(* else *) -(* if *) -(* t_PartialEq_f_eq (t_Rem_f_rem (x) (2)) (0) *) -(* then *) -(* xO (from_u64_binary (t_Div_f_div (x) (2))) *) -(* else *) -(* xI (from_u64_binary (t_Div_f_div (x) (2))). *) - -(* Instance t_From_703205527 : t_From ((t_HaxInt)) ((t_u64)) := *) -(* { *) -(* From_f_from := fun (x : t_u64)=> *) -(* if *) -(* t_PartialEq_f_eq (x) (0) *) -(* then *) -(* v_HaxInt_ZERO *) -(* else *) -(* positive_to_int (from_u64_binary (x)); *) -(* }. *) - -(* Instance t_From_494553464 : t_From ((t_Z)) ((t_i64)) := *) -(* { *) -(* From_f_from := fun (x : t_i64)=> *) -(* match Ord_f_cmp (x) (0) with *) -(* | Ordering_Equal => *) -(* Z_ZERO *) -(* | Ordering_Less => *) -(* Z_NEG (from_u64_binary (impl__i64__unsigned_abs (x))) *) -(* | Ordering_Greater => *) -(* Z_POS (from_u64_binary (impl__i64__unsigned_abs (x))) *) -(* end; *) -(* }. *) - -(* Fixpoint from_u8_binary (x : t_u8) `{ne (x) (0) = true} : t_Positive := *) -(* if *) -(* t_PartialEq_f_eq (x) (1) *) -(* then *) -(* xH *) -(* else *) -(* if *) -(* t_PartialEq_f_eq (t_Rem_f_rem (x) (2)) (0) *) -(* then *) -(* xO (from_u8_binary (t_Div_f_div (x) (2))) *) -(* else *) -(* xI (from_u8_binary (t_Div_f_div (x) (2))). *) - -(* Instance t_From_421078324 : t_From ((t_HaxInt)) ((t_u8)) := *) -(* { *) -(* From_f_from := fun (x : t_u8)=> *) -(* if *) -(* t_PartialEq_f_eq (x) (0) *) -(* then *) -(* v_HaxInt_ZERO *) -(* else *) -(* positive_to_int (from_u8_binary (x)); *) -(* }. *) - -(* Instance t_From_976104611 : t_From ((t_Z)) ((t_i8)) := *) -(* { *) -(* From_f_from := fun (x : t_i8)=> *) -(* match Ord_f_cmp (x) (0) with *) -(* | Ordering_Equal => *) -(* Z_ZERO *) -(* | Ordering_Less => *) -(* Z_NEG (from_u8_binary (impl__unsigned_abs (x))) *) -(* | Ordering_Greater => *) -(* Z_POS (from_u8_binary (impl__unsigned_abs (x))) *) -(* end; *) -(* }. *) - -(* Fixpoint from_usize_binary (x : t_usize) `{ne (x) (0) = true} : t_Positive := *) -(* if *) -(* t_PartialEq_f_eq (x) (1) *) -(* then *) -(* xH *) -(* else *) -(* if *) -(* t_PartialEq_f_eq (t_Rem_f_rem (x) (2)) (0) *) -(* then *) -(* xO (from_usize_binary (t_Div_f_div (x) (2))) *) -(* else *) -(* xI (from_usize_binary (t_Div_f_div (x) (2))). *) - -(* Instance t_From_226738852 : t_From ((t_HaxInt)) ((t_usize)) := *) -(* { *) -(* From_f_from := fun (x : t_usize)=> *) -(* if *) -(* t_PartialEq_f_eq (x) (0) *) -(* then *) -(* v_HaxInt_ZERO *) -(* else *) -(* positive_to_int (from_usize_binary (x)); *) -(* }. *) - -(* Instance t_From_235021044 : t_From ((t_Z)) ((t_isize)) := *) -(* { *) -(* From_f_from := fun (x : t_isize)=> *) -(* match Ord_f_cmp (x) (0) with *) -(* | Ordering_Equal => *) -(* Z_ZERO *) -(* | Ordering_Less => *) -(* Z_NEG (from_usize_binary (impl__isize__unsigned_abs (x))) *) -(* | Ordering_Greater => *) -(* Z_POS (from_usize_binary (impl__isize__unsigned_abs (x))) *) -(* end; *) -(* }. *) - -(* Fixpoint to_u128_binary (self : t_Positive) : t_u128 := *) -(* match match_positive (self) with *) -(* | POSITIVE_XH => *) -(* 1 *) -(* | POSITIVE_XO (p) => *) -(* t_Mul_f_mul (to_u128_binary (p)) (2) *) -(* | POSITIVE_XI (p) => *) -(* t_Add_f_add (t_Mul_f_mul (to_u128_binary (p)) (2)) (1) *) -(* end. *) - -(* Instance t_From_312029210 : t_From ((t_u128)) ((t_HaxInt)) := *) -(* { *) -(* From_f_from := fun (x : t_HaxInt)=> *) -(* match match_pos (x) with *) -(* | POS_ZERO => *) -(* 0 *) -(* | POS_POS (p) => *) -(* to_u128_binary (p) *) -(* end; *) -(* }. *) - -(* Instance t_From_166626519 : t_From ((t_i128)) ((t_Z)) := *) -(* { *) -(* From_f_from := fun (x : t_Z)=> *) -(* match x with *) -(* | Z_NEG (x) => *) -(* sub (neg (cast (sub (to_u128_binary (x)) (1)))) (1) *) -(* | Z_ZERO => *) -(* 0 *) -(* | Z_POS (x) => *) -(* cast (to_u128_binary (x)) *) -(* end; *) -(* }. *) - -(* Fixpoint to_u16_binary (self : t_Positive) : t_u16 := *) -(* match match_positive (self) with *) -(* | POSITIVE_XH => *) -(* 1 *) -(* | POSITIVE_XO (p) => *) -(* t_Mul_f_mul (to_u16_binary (p)) (2) *) -(* | POSITIVE_XI (p) => *) -(* t_Add_f_add (t_Mul_f_mul (to_u16_binary (p)) (2)) (1) *) -(* end. *) - -(* Instance t_From_863803022 : t_From ((t_u16)) ((t_HaxInt)) := *) -(* { *) -(* From_f_from := fun (x : t_HaxInt)=> *) -(* match match_pos (x) with *) -(* | POS_ZERO => *) -(* 0 *) -(* | POS_POS (p) => *) -(* to_u16_binary (p) *) -(* end; *) -(* }. *) - -(* Instance t_From_217241508 : t_From ((t_i16)) ((t_Z)) := *) -(* { *) -(* From_f_from := fun (x : t_Z)=> *) -(* match x with *) -(* | Z_NEG (x) => *) -(* sub (neg (cast (sub (to_u16_binary (x)) (1)))) (1) *) -(* | Z_ZERO => *) -(* 0 *) -(* | Z_POS (x) => *) -(* cast (to_u16_binary (x)) *) -(* end; *) -(* }. *) - -(* Fixpoint to_u32_binary (self : t_Positive) : t_u32 := *) -(* match match_positive (self) with *) -(* | POSITIVE_XH => *) -(* 1 *) -(* | POSITIVE_XO (p) => *) -(* t_Mul_f_mul (to_u32_binary (p)) (2) *) -(* | POSITIVE_XI (p) => *) -(* t_Add_f_add (t_Mul_f_mul (to_u32_binary (p)) (2)) (1) *) -(* end. *) - -(* Instance t_From_38549956 : t_From ((t_u32)) ((t_HaxInt)) := *) -(* { *) -(* From_f_from := fun (x : t_HaxInt)=> *) -(* match match_pos (x) with *) -(* | POS_ZERO => *) -(* 0 *) -(* | POS_POS (p) => *) -(* to_u32_binary (p) *) -(* end; *) -(* }. *) - -(* Instance t_From_567539816 : t_From ((t_i32)) ((t_Z)) := *) -(* { *) -(* From_f_from := fun (x : t_Z)=> *) -(* match x with *) -(* | Z_NEG (x) => *) -(* sub (neg (cast (sub (to_u32_binary (x)) (1)))) (1) *) -(* | Z_ZERO => *) -(* 0 *) -(* | Z_POS (x) => *) -(* cast (to_u32_binary (x)) *) -(* end; *) -(* }. *) - -(* Fixpoint to_u64_binary (self : t_Positive) : t_u64 := *) -(* match match_positive (self) with *) -(* | POSITIVE_XH => *) -(* 1 *) -(* | POSITIVE_XO (p) => *) -(* t_Mul_f_mul (to_u64_binary (p)) (2) *) -(* | POSITIVE_XI (p) => *) -(* t_Add_f_add (t_Mul_f_mul (to_u64_binary (p)) (2)) (1) *) -(* end. *) - -(* Instance t_From_100316698 : t_From ((t_u64)) ((t_HaxInt)) := *) -(* { *) -(* From_f_from := fun (x : t_HaxInt)=> *) -(* match match_pos (x) with *) -(* | POS_ZERO => *) -(* 0 *) -(* | POS_POS (p) => *) -(* to_u64_binary (p) *) -(* end; *) -(* }. *) - -(* Instance t_From_99611562 : t_From ((t_i64)) ((t_Z)) := *) -(* { *) -(* From_f_from := fun (x : t_Z)=> *) -(* match x with *) -(* | Z_NEG (x) => *) -(* sub (neg (cast (sub (to_u64_binary (x)) (1)))) (1) *) -(* | Z_ZERO => *) -(* 0 *) -(* | Z_POS (x) => *) -(* cast (to_u64_binary (x)) *) -(* end; *) -(* }. *) - -(* Fixpoint to_u8_binary (self : t_Positive) : t_u8 := *) -(* match match_positive (self) with *) -(* | POSITIVE_XH => *) -(* 1 *) -(* | POSITIVE_XO (p) => *) -(* t_Mul_f_mul (to_u8_binary (p)) (2) *) -(* | POSITIVE_XI (p) => *) -(* t_Add_f_add (t_Mul_f_mul (to_u8_binary (p)) (2)) (1) *) -(* end. *) - -(* Instance t_From_360336196 : t_From ((t_u8)) ((t_HaxInt)) := *) -(* { *) -(* From_f_from := fun (x : t_HaxInt)=> *) -(* match match_pos (x) with *) -(* | POS_ZERO => *) -(* 0 *) -(* | POS_POS (p) => *) -(* to_u8_binary (p) *) -(* end; *) -(* }. *) - -(* Instance t_From_168893964 : t_From ((t_i8)) ((t_Z)) := *) -(* { *) -(* From_f_from := fun (x : t_Z)=> *) -(* match x with *) -(* | Z_NEG (x) => *) -(* sub (neg (cast (sub (to_u8_binary (x)) (1)))) (1) *) -(* | Z_ZERO => *) -(* 0 *) -(* | Z_POS (x) => *) -(* cast (to_u8_binary (x)) *) -(* end; *) -(* }. *) - -(* Fixpoint to_usize_binary (self : t_Positive) : t_usize := *) -(* match match_positive (self) with *) -(* | POSITIVE_XH => *) -(* 1 *) -(* | POSITIVE_XO (p) => *) -(* t_Mul_f_mul (to_usize_binary (p)) (2) *) -(* | POSITIVE_XI (p) => *) -(* t_Add_f_add (t_Mul_f_mul (to_usize_binary (p)) (2)) (1) *) -(* end. *) - -(* Instance t_From_545039540 : t_From ((t_usize)) ((t_HaxInt)) := *) -(* { *) -(* From_f_from := fun (x : t_HaxInt)=> *) -(* match match_pos (x) with *) -(* | POS_ZERO => *) -(* 0 *) -(* | POS_POS (p) => *) -(* to_usize_binary (p) *) -(* end; *) -(* }. *) - -(* Instance t_From_931346405 : t_From ((t_isize)) ((t_Z)) := *) -(* { *) -(* From_f_from := fun (x : t_Z)=> *) -(* match x with *) -(* | Z_NEG (x) => *) -(* sub (neg (cast (sub (to_usize_binary (x)) (1)))) (1) *) -(* | Z_ZERO => *) -(* 0 *) -(* | Z_POS (x) => *) -(* cast (to_usize_binary (x)) *) -(* end; *) -(* }. *) - - -(* Instance v_SliceIndex_622480125 `{v_T : Type} `{t_Sized (v_T)} `{t_Clone (v_T)} : v_SliceIndex ((t_usize)) ((t_Slice ((v_T)))) := *) -(* { *) -(* SliceIndex_f_Output := v_T; *) -(* SliceIndex_f_index := fun (self : t_usize) (slice : t_Slice ((v_T)))=> *) -(* let x : t_usize := Into_f_into (U64_f_v (usize_0 self)) in *) -(* Index_f_index (t_Index := _) (slice) (x); *) -(* }. *) diff --git a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base.v b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base.v index 9b6140c14..eb5021068 100644 --- a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base.v +++ b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base.v @@ -9,37 +9,21 @@ Require Import String. Require Import Coq.Floats.Floats. From RecordUpdate Require Import RecordSet. Import RecordSetNotations. - (* From Core Require Import Core. *) +(* NotImplementedYet *) + From Core Require Import Core_Base_Spec. Export Core_Base_Spec. From Core Require Import Core_Base_Binary. Export Core_Base_Binary. - - From Core Require Import Core_Base_Pos. Export Core_Base_Pos. - + From Core Require Import Core_Base_Z. Export Core_Base_Z. -(* From Core Require Import Core_Base_Number_conversion. *) -(* Export Core_Base_Number_conversion. *) - From Core Require Import Core_Base_Seq. Export Core_Base_Seq. - -(* NotImplementedYet *) - -(* NotImplementedYet *) - -(* NotImplementedYet *) - -(* NotImplementedYet *) - -(* NotImplementedYet *) - -(* NotImplementedYet *) diff --git a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_Binary.v b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_Binary.v index c67c519d6..791215b76 100644 --- a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_Binary.v +++ b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_Binary.v @@ -9,154 +9,147 @@ Require Import String. Require Import Coq.Floats.Floats. From RecordUpdate Require Import RecordSet. Import RecordSetNotations. +From Core Require Import Core_Base_Spec_Binary_Positive. +From Core Require Import Core_Cmp. -(* From Core Require Import Core. *) +(* NotImplementedYet *) -From Core Require Import Core_Base_Spec. -Export Core_Base_Spec. -From Core Require Import Core_Cmp. -Export Core_Cmp. -From Core Require Import Core_Option. -Export Core_Option. -From Core Require Import Core_Clone. -Export Core_Clone. -Fixpoint positive_cmp__cmp_binary_cont (x : t_Positive) (y : t_Positive) (r : t_Ordering) : t_Ordering := - match match_positive (x) with - | POSITIVE_XH => - match match_positive (y) with - | POSITIVE_XH => +Fixpoint positive_cmp__cmp_binary_cont (x : Core_Base_Spec_Binary_Positive.t_Positive) (y : Core_Base_Spec_Binary_Positive.t_Positive) (r : Core_Cmp.t_Ordering) : Core_Cmp.t_Ordering := + match Core_Base_Spec_Binary_Positive.match_positive (x) with + | Core_Base_Spec_Binary_Positive.POSITIVE_XH => + match Core_Base_Spec_Binary_Positive.match_positive (y) with + | Core_Base_Spec_Binary_Positive.POSITIVE_XH => r - | POSITIVE_XO (q) - | POSITIVE_XI (q) => - Ordering_Less + | Core_Base_Spec_Binary_Positive.POSITIVE_XO (q) + | Core_Base_Spec_Binary_Positive.POSITIVE_XI (q) => + Core_Cmp.Ordering_Less end - | POSITIVE_XO (p) => - match match_positive (y) with - | POSITIVE_XH => - Ordering_Greater - | POSITIVE_XO (q) => + | Core_Base_Spec_Binary_Positive.POSITIVE_XO (p) => + match Core_Base_Spec_Binary_Positive.match_positive (y) with + | Core_Base_Spec_Binary_Positive.POSITIVE_XH => + Core_Cmp.Ordering_Greater + | Core_Base_Spec_Binary_Positive.POSITIVE_XO (q) => positive_cmp__cmp_binary_cont (p) (q) (r) - | POSITIVE_XI (q) => - positive_cmp__cmp_binary_cont (p) (q) (Ordering_Less) + | Core_Base_Spec_Binary_Positive.POSITIVE_XI (q) => + positive_cmp__cmp_binary_cont (p) (q) (Core_Cmp.Ordering_Less) end - | POSITIVE_XI (p) => - match match_positive (y) with - | POSITIVE_XH => - Ordering_Greater - | POSITIVE_XO (q) => - positive_cmp__cmp_binary_cont (p) (q) (Ordering_Greater) - | POSITIVE_XI (q) => + | Core_Base_Spec_Binary_Positive.POSITIVE_XI (p) => + match Core_Base_Spec_Binary_Positive.match_positive (y) with + | Core_Base_Spec_Binary_Positive.POSITIVE_XH => + Core_Cmp.Ordering_Greater + | Core_Base_Spec_Binary_Positive.POSITIVE_XO (q) => + positive_cmp__cmp_binary_cont (p) (q) (Core_Cmp.Ordering_Greater) + | Core_Base_Spec_Binary_Positive.POSITIVE_XI (q) => positive_cmp__cmp_binary_cont (p) (q) (r) end end. -Definition positive_cmp (lhs : t_Positive) (rhs : t_Positive) : t_Ordering := - positive_cmp__cmp_binary_cont (lhs) (rhs) (Ordering_Equal). - -Definition positive_le (lhs : t_Positive) (rhs : t_Positive) : bool := - match Option_Some (positive_cmp (lhs) (rhs)) with - | Option_Some (Ordering_Less - | Ordering_Equal) => - true - | _ => - false +Fixpoint positive_succ (s : Core_Base_Spec_Binary_Positive.t_Positive) : Core_Base_Spec_Binary_Positive.t_Positive := + match Core_Base_Spec_Binary_Positive.match_positive (s) with + | Core_Base_Spec_Binary_Positive.POSITIVE_XH => + Core_Base_Spec_Binary_Positive.xO (Core_Base_Spec_Binary_Positive.xH) + | Core_Base_Spec_Binary_Positive.POSITIVE_XO (q) => + Core_Base_Spec_Binary_Positive.xI (q) + | Core_Base_Spec_Binary_Positive.POSITIVE_XI (q) => + Core_Base_Spec_Binary_Positive.xO (positive_succ (q)) end. -Fixpoint positive_pred_double (s : t_Positive) : t_Positive := - match match_positive (s) with - | POSITIVE_XH => - xH - | POSITIVE_XO (p) => - xI (positive_pred_double (p)) - | POSITIVE_XI (p) => - xI (xO (p)) +Fixpoint positive_pred_double (s : Core_Base_Spec_Binary_Positive.t_Positive) : Core_Base_Spec_Binary_Positive.t_Positive := + match Core_Base_Spec_Binary_Positive.match_positive (s) with + | Core_Base_Spec_Binary_Positive.POSITIVE_XH => + Core_Base_Spec_Binary_Positive.xH + | Core_Base_Spec_Binary_Positive.POSITIVE_XO (p) => + Core_Base_Spec_Binary_Positive.xI (positive_pred_double (p)) + | Core_Base_Spec_Binary_Positive.POSITIVE_XI (p) => + Core_Base_Spec_Binary_Positive.xI (Core_Base_Spec_Binary_Positive.xO (p)) end. -Fixpoint positive_succ (s : t_Positive) : t_Positive := - match match_positive (s) with - | POSITIVE_XH => - xO (xH) - | POSITIVE_XO (q) => - xI (q) - | POSITIVE_XI (q) => - xO (positive_succ (q)) +Definition positive_cmp (lhs : Core_Base_Spec_Binary_Positive.t_Positive) (rhs : Core_Base_Spec_Binary_Positive.t_Positive) : Core_Cmp.t_Ordering := + positive_cmp__cmp_binary_cont (lhs) (rhs) (Core_Cmp.Ordering_Equal). + +Definition positive_le (lhs : Core_Base_Spec_Binary_Positive.t_Positive) (rhs : Core_Base_Spec_Binary_Positive.t_Positive) : bool := + match Core_Option.Option_Some (positive_cmp (lhs) (rhs)) with + | Core_Option.Option_Some (Core_Cmp.Ordering_Less + | Core_Cmp.Ordering_Equal) => + (true : bool) + | _ => + (false : bool) end. -Fixpoint positive_add__add (lhs : t_Positive) (rhs : t_Positive) : t_Positive := - match match_positive (lhs) with - | POSITIVE_XH => - match match_positive (rhs) with - | POSITIVE_XH => - xO (xH) - | POSITIVE_XO (q) => - xI (q) - | POSITIVE_XI (q) => - xO (positive_succ (q)) +Fixpoint positive_add__add (lhs : Core_Base_Spec_Binary_Positive.t_Positive) (rhs : Core_Base_Spec_Binary_Positive.t_Positive) : Core_Base_Spec_Binary_Positive.t_Positive := + match Core_Base_Spec_Binary_Positive.match_positive (lhs) with + | Core_Base_Spec_Binary_Positive.POSITIVE_XH => + match Core_Base_Spec_Binary_Positive.match_positive (rhs) with + | Core_Base_Spec_Binary_Positive.POSITIVE_XH => + Core_Base_Spec_Binary_Positive.xO (Core_Base_Spec_Binary_Positive.xH) + | Core_Base_Spec_Binary_Positive.POSITIVE_XO (q) => + Core_Base_Spec_Binary_Positive.xI (q) + | Core_Base_Spec_Binary_Positive.POSITIVE_XI (q) => + Core_Base_Spec_Binary_Positive.xO (positive_succ (q)) end - | POSITIVE_XO (p) => - match match_positive (rhs) with - | POSITIVE_XH => - xI (p) - | POSITIVE_XO (q) => - xO (positive_add__add (p) (q)) - | POSITIVE_XI (q) => - xI (positive_add__add (p) (q)) + | Core_Base_Spec_Binary_Positive.POSITIVE_XO (p) => + match Core_Base_Spec_Binary_Positive.match_positive (rhs) with + | Core_Base_Spec_Binary_Positive.POSITIVE_XH => + Core_Base_Spec_Binary_Positive.xI (p) + | Core_Base_Spec_Binary_Positive.POSITIVE_XO (q) => + Core_Base_Spec_Binary_Positive.xO (positive_add__add (p) (q)) + | Core_Base_Spec_Binary_Positive.POSITIVE_XI (q) => + Core_Base_Spec_Binary_Positive.xI (positive_add__add (p) (q)) end - | POSITIVE_XI (p) => - match match_positive (rhs) with - | POSITIVE_XH => - xO (positive_succ (p)) - | POSITIVE_XO (q) => - xI (positive_add__add (p) (q)) - | POSITIVE_XI (q) => - xO (positive_add__add_carry (p) (q)) + | Core_Base_Spec_Binary_Positive.POSITIVE_XI (p) => + match Core_Base_Spec_Binary_Positive.match_positive (rhs) with + | Core_Base_Spec_Binary_Positive.POSITIVE_XH => + Core_Base_Spec_Binary_Positive.xO (positive_succ (p)) + | Core_Base_Spec_Binary_Positive.POSITIVE_XO (q) => + Core_Base_Spec_Binary_Positive.xI (positive_add__add (p) (q)) + | Core_Base_Spec_Binary_Positive.POSITIVE_XI (q) => + Core_Base_Spec_Binary_Positive.xO (positive_add__add_carry (p) (q)) end end - -with positive_add__add_carry (lhs : t_Positive) (rhs : t_Positive) : t_Positive := - match match_positive (lhs) with - | POSITIVE_XH => - match match_positive (rhs) with - | POSITIVE_XH => - xI (xH) - | POSITIVE_XO (q) => - xO (positive_succ (q)) - | POSITIVE_XI (q) => - xI (positive_succ (q)) +with positive_add__add_carry (lhs : Core_Base_Spec_Binary_Positive.t_Positive) (rhs : Core_Base_Spec_Binary_Positive.t_Positive) : Core_Base_Spec_Binary_Positive.t_Positive := + match Core_Base_Spec_Binary_Positive.match_positive (lhs) with + | Core_Base_Spec_Binary_Positive.POSITIVE_XH => + match Core_Base_Spec_Binary_Positive.match_positive (rhs) with + | Core_Base_Spec_Binary_Positive.POSITIVE_XH => + Core_Base_Spec_Binary_Positive.xI (Core_Base_Spec_Binary_Positive.xH) + | Core_Base_Spec_Binary_Positive.POSITIVE_XO (q) => + Core_Base_Spec_Binary_Positive.xO (positive_succ (q)) + | Core_Base_Spec_Binary_Positive.POSITIVE_XI (q) => + Core_Base_Spec_Binary_Positive.xI (positive_succ (q)) end - | POSITIVE_XO (p) => - match match_positive (rhs) with - | POSITIVE_XH => - xO (positive_succ (p)) - | POSITIVE_XO (q) => - xI (positive_add__add (p) (q)) - | POSITIVE_XI (q) => - xO (positive_add__add_carry (p) (q)) + | Core_Base_Spec_Binary_Positive.POSITIVE_XO (p) => + match Core_Base_Spec_Binary_Positive.match_positive (rhs) with + | Core_Base_Spec_Binary_Positive.POSITIVE_XH => + Core_Base_Spec_Binary_Positive.xO (positive_succ (p)) + | Core_Base_Spec_Binary_Positive.POSITIVE_XO (q) => + Core_Base_Spec_Binary_Positive.xI (positive_add__add (p) (q)) + | Core_Base_Spec_Binary_Positive.POSITIVE_XI (q) => + Core_Base_Spec_Binary_Positive.xO (positive_add__add_carry (p) (q)) end - | POSITIVE_XI (p) => - match match_positive (rhs) with - | POSITIVE_XH => - xI (positive_succ (p)) - | POSITIVE_XO (q) => - xO (positive_add__add_carry (p) (q)) - | POSITIVE_XI (q) => - xI (positive_add__add_carry (p) (q)) + | Core_Base_Spec_Binary_Positive.POSITIVE_XI (p) => + match Core_Base_Spec_Binary_Positive.match_positive (rhs) with + | Core_Base_Spec_Binary_Positive.POSITIVE_XH => + Core_Base_Spec_Binary_Positive.xI (positive_succ (p)) + | Core_Base_Spec_Binary_Positive.POSITIVE_XO (q) => + Core_Base_Spec_Binary_Positive.xO (positive_add__add_carry (p) (q)) + | Core_Base_Spec_Binary_Positive.POSITIVE_XI (q) => + Core_Base_Spec_Binary_Positive.xI (positive_add__add_carry (p) (q)) end end. -Definition positive_add (lhs : t_Positive) (rhs : t_Positive) : t_Positive := +Definition positive_add (lhs : Core_Base_Spec_Binary_Positive.t_Positive) (rhs : Core_Base_Spec_Binary_Positive.t_Positive) : Core_Base_Spec_Binary_Positive.t_Positive := positive_add__add (lhs) (rhs). -Fixpoint positive_mul (lhs : t_Positive) (rhs : t_Positive) : t_Positive := - match match_positive (lhs) with - | POSITIVE_XH => +Fixpoint positive_mul (lhs : Core_Base_Spec_Binary_Positive.t_Positive) (rhs : Core_Base_Spec_Binary_Positive.t_Positive) : Core_Base_Spec_Binary_Positive.t_Positive := + match Core_Base_Spec_Binary_Positive.match_positive (lhs) with + | Core_Base_Spec_Binary_Positive.POSITIVE_XH => rhs - | POSITIVE_XO (p) => - xO (positive_mul (p) (rhs)) - | POSITIVE_XI (p) => - positive_add (Clone_f_clone (rhs)) (xO (positive_mul (p) (rhs))) + | Core_Base_Spec_Binary_Positive.POSITIVE_XO (p) => + Core_Base_Spec_Binary_Positive.xO (positive_mul (p) (rhs)) + | Core_Base_Spec_Binary_Positive.POSITIVE_XI (p) => + positive_add (Core_Clone.Clone__f_clone (rhs)) (Core_Base_Spec_Binary_Positive.xO (positive_mul (p) (rhs))) end. diff --git a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_Number_conversion.v b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_Number_conversion.v index 286ef8ce0..bd065683b 100644 --- a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_Number_conversion.v +++ b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_Number_conversion.v @@ -9,94 +9,90 @@ Require Import String. Require Import Coq.Floats.Floats. From RecordUpdate Require Import RecordSet. Import RecordSetNotations. +From Core Require Import Core. + +(* NotImplementedYet *) + + + + -(* From Core Require Import Core. *) -From Core Require Import Core_Base_Spec. -Export Core_Base_Spec. -From Core Require Import Core_Base. -Export Core_Base. -From Core Require Import Core (t_primitive). -Export Core (t_primitive). -From Core Require Import Core (t_cmp). -Export Core (t_cmp). -From Core Require Import Core (t_convert). -Export Core (t_convert). (* NotImplementedYet *) -Notation "'impl_24__from_u128_binary'" := (from_u128_binary). +Notation "'impl_24__from_u8_binary'" := (Core_Bundle.impl_24__from_u8_binary). -Notation "'impl_8'" := (impl_8). +Notation "'impl_24__to_u8_binary'" := (Core_Bundle.impl_24__to_u8_binary). -Notation "'impl_20'" := (impl_20). +Notation "'impl_24__from_u16_binary'" := (Core_Bundle.impl_24__from_u16_binary). -Notation "'impl_24__from_u16_binary'" := (from_u16_binary). +Notation "'impl_24__to_u16_binary'" := (Core_Bundle.impl_24__to_u16_binary). -Notation "'impl_2'" := (impl_2). +Notation "'impl_24__from_u32_binary'" := (Core_Bundle.impl_24__from_u32_binary). -Notation "'impl_14'" := (impl_14). +Notation "'impl_24__to_u32_binary'" := (Core_Bundle.impl_24__to_u32_binary). -Notation "'impl_24__from_u32_binary'" := (from_u32_binary). +Notation "'impl_24__from_u64_binary'" := (Core_Bundle.impl_24__from_u64_binary). -Notation "'impl_4'" := (impl_4). +Notation "'impl_24__to_u64_binary'" := (Core_Bundle.impl_24__to_u64_binary). -Notation "'impl_16'" := (impl_16). +Notation "'impl_24__from_u128_binary'" := (Core_Bundle.impl_24__from_u128_binary). -Notation "'impl_24__from_u64_binary'" := (from_u64_binary). +Notation "'impl_24__to_u128_binary'" := (Core_Bundle.impl_24__to_u128_binary). -Notation "'impl_6'" := (impl_6). +Notation "'impl_24__from_usize_binary'" := (Core_Bundle.impl_24__from_usize_binary). -Notation "'impl_18'" := (impl_18). +Notation "'impl_24__to_usize_binary'" := (Core_Bundle.impl_24__to_usize_binary). -Notation "'impl_24__from_u8_binary'" := (from_u8_binary). +Notation "'impl'" := (Core_Bundle.impl). -Notation "'impl'" := (impl). +Notation "'impl_1'" := (Core_Bundle.impl_1). -Notation "'impl_12'" := (impl_12). +Notation "'impl_2'" := (Core_Bundle.impl_2). -Notation "'impl_24__from_usize_binary'" := (from_usize_binary). +Notation "'impl_3'" := (Core_Bundle.impl_3). -Notation "'impl_10'" := (impl_10). +Notation "'impl_4'" := (Core_Bundle.impl_4). -Notation "'impl_22'" := (impl_22). +Notation "'impl_5'" := (Core_Bundle.impl_5). -Notation "'impl_24__to_u128_binary'" := (to_u128_binary). +Notation "'impl_6'" := (Core_Bundle.impl_6). -Notation "'impl_9'" := (impl_9). +Notation "'impl_7'" := (Core_Bundle.impl_7). -Notation "'impl_21'" := (impl_21). +Notation "'impl_8'" := (Core_Bundle.impl_8). -Notation "'impl_24__to_u16_binary'" := (to_u16_binary). +Notation "'impl_9'" := (Core_Bundle.impl_9). -Notation "'impl_3'" := (impl_3). +Notation "'impl_10'" := (Core_Bundle.impl_10). -Notation "'impl_15'" := (impl_15). +Notation "'impl_11'" := (Core_Bundle.impl_11). -Notation "'impl_24__to_u32_binary'" := (to_u32_binary). +Notation "'impl_12'" := (Core_Bundle.impl_12). -Notation "'impl_5'" := (impl_5). +Notation "'impl_13'" := (Core_Bundle.impl_13). -Notation "'impl_17'" := (impl_17). +Notation "'impl_14'" := (Core_Bundle.impl_14). -Notation "'impl_24__to_u64_binary'" := (to_u64_binary). +Notation "'impl_15'" := (Core_Bundle.impl_15). -Notation "'impl_7'" := (impl_7). +Notation "'impl_16'" := (Core_Bundle.impl_16). -Notation "'impl_19'" := (impl_19). +Notation "'impl_17'" := (Core_Bundle.impl_17). -Notation "'impl_24__to_u8_binary'" := (to_u8_binary). +Notation "'impl_18'" := (Core_Bundle.impl_18). -Notation "'impl_1'" := (impl_1). +Notation "'impl_19'" := (Core_Bundle.impl_19). -Notation "'impl_13'" := (impl_13). +Notation "'impl_20'" := (Core_Bundle.impl_20). -Notation "'impl_24__to_usize_binary'" := (to_usize_binary). +Notation "'impl_21'" := (Core_Bundle.impl_21). -Notation "'impl_11'" := (impl_11). +Notation "'impl_22'" := (Core_Bundle.impl_22). -Notation "'impl_23'" := (impl_23). +Notation "'impl_23'" := (Core_Bundle.impl_23). diff --git a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_Pos.v b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_Pos.v index cfd1242e5..4e8bf21b3 100644 --- a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_Pos.v +++ b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_Pos.v @@ -9,413 +9,431 @@ Require Import String. Require Import Coq.Floats.Floats. From RecordUpdate Require Import RecordSet. Import RecordSetNotations. +From Core Require Import Core_Base_Spec_Binary_Positive. +From Core Require Import Core_Base_Spec_Haxint. +From Core Require Import Core_Cmp. +From Core Require Import Core_Base_Spec_Binary_Pos. +From Core Require Import Core_Base_Binary. +From Core Require Import Core_Base_Spec_Unary. +(* NotImplementedYet *) -(* From Core Require Import Core. *) -From Core Require Import Core_Base_Spec. -Export Core_Base_Spec. -From Core Require Import Core_Base_Binary. -Export Core_Base_Binary. -From Core Require Import Core_Cmp (t_Ordering). -Export Core_Cmp (t_Ordering). -Definition haxint_double (s : t_HaxInt) : t_HaxInt := - match match_pos (s) with - | POS_ZERO => - v_HaxInt_ZERO - | POS_POS (p) => - positive_to_int (xO (p)) - end. -Definition haxint_shr__half (s : t_HaxInt) : t_HaxInt := - match match_pos (s) with - | POS_ZERO => - v_HaxInt_ZERO - | POS_POS (n) => - match match_positive (n) with - | POSITIVE_XH => - v_HaxInt_ZERO - | POSITIVE_XO (p) => - positive_to_int (p) - | POSITIVE_XI (p) => - positive_to_int (p) + +Inductive t_Mask : Type := +| Mask_IsPos : Core_Base_Spec_Binary_Positive.t_Positive -> _ +| Mask_IsNul +| Mask_IsNeg. + + + + +Definition haxint_cmp (lhs : Core_Base_Spec_Haxint.t_HaxInt) (rhs : Core_Base_Spec_Haxint.t_HaxInt) : Core_Cmp.t_Ordering := + match Core_Base_Spec_Binary_Pos.match_pos (lhs) with + | Core_Base_Spec_Binary_Pos.POS_ZERO => + match Core_Base_Spec_Binary_Pos.match_pos (rhs) with + | Core_Base_Spec_Binary_Pos.POS_ZERO => + Core_Cmp.Ordering_Equal + | Core_Base_Spec_Binary_Pos.POS_POS (q) => + Core_Cmp.Ordering_Less + end + | Core_Base_Spec_Binary_Pos.POS_POS (p) => + match Core_Base_Spec_Binary_Pos.match_pos (rhs) with + | Core_Base_Spec_Binary_Pos.POS_ZERO => + Core_Cmp.Ordering_Greater + | Core_Base_Spec_Binary_Pos.POS_POS (q) => + Core_Base_Binary.positive_cmp (p) (q) end end. -Definition haxint_sub__double_mask (lhs : t_HaxInt) : t_HaxInt := - match match_pos (lhs) with - | POS_ZERO => - v_HaxInt_ZERO - | POS_POS (p) => - positive_to_int (xO (p)) +Definition haxint_lt (lhs : Core_Base_Spec_Haxint.t_HaxInt) (rhs : Core_Base_Spec_Haxint.t_HaxInt) : bool := + match Core_Option.Option_Some (haxint_cmp (lhs) (rhs)) with + | Core_Option.Option_Some (Core_Cmp.Ordering_Less) => + (true : bool) + | _ => + (false : bool) end. -Definition haxint_sub__succ_double_mask (lhs : t_HaxInt) : t_HaxInt := - match match_pos (lhs) with - | POS_ZERO => - positive_to_int (xH) - | POS_POS (p) => - positive_to_int (xI (p)) +Definition haxint_le (lhs : Core_Base_Spec_Haxint.t_HaxInt) (rhs : Core_Base_Spec_Haxint.t_HaxInt) : bool := + match Core_Option.Option_Some (haxint_cmp (lhs) (rhs)) with + | Core_Option.Option_Some (Core_Cmp.Ordering_Less + | Core_Cmp.Ordering_Equal) => + (true : bool) + | _ => + (false : bool) end. -Definition haxint_succ_double (s : t_HaxInt) : t_Positive := - match match_pos (s) with - | POS_ZERO => - xH - | POS_POS (p) => - xI (p) +Definition haxint_add (lhs : Core_Base_Spec_Haxint.t_HaxInt) (rhs : Core_Base_Spec_Haxint.t_HaxInt) : Core_Base_Spec_Haxint.t_HaxInt := + match Core_Base_Spec_Binary_Pos.match_pos (lhs) with + | Core_Base_Spec_Binary_Pos.POS_ZERO => + rhs + | Core_Base_Spec_Binary_Pos.POS_POS (p) => + match Core_Base_Spec_Binary_Pos.match_pos (rhs) with + | Core_Base_Spec_Binary_Pos.POS_ZERO => + Core_Base_Spec_Binary_Positive.positive_to_int (p) + | Core_Base_Spec_Binary_Pos.POS_POS (q) => + Core_Base_Spec_Binary_Positive.positive_to_int (Core_Base_Binary.positive_add (p) (q)) + end end. -Fixpoint bitand_binary (lhs : t_Positive) (rhs : t_Positive) : t_HaxInt := - match match_positive (lhs) with - | POSITIVE_XH => - match match_positive (rhs) with - | POSITIVE_XO (q) => - v_HaxInt_ZERO - | POSITIVE_XI (_) - | POSITIVE_XH => - v_HaxInt_ONE - end - | POSITIVE_XO (p) => - match match_positive (rhs) with - | POSITIVE_XH => - v_HaxInt_ZERO - | POSITIVE_XO (q) - | POSITIVE_XI (q) => - haxint_double (bitand_binary (p) (q)) - end - | POSITIVE_XI (p) => - match match_positive (rhs) with - | POSITIVE_XH => - v_HaxInt_ONE - | POSITIVE_XO (q) => - haxint_double (bitand_binary (p) (q)) - | POSITIVE_XI (q) => - positive_to_int (haxint_succ_double (bitand_binary (p) (q))) - end +Definition haxint_sub__double_pred_mask (lhs : Core_Base_Spec_Binary_Positive.t_Positive) : t_Mask := + match Core_Base_Spec_Binary_Positive.match_positive (lhs) with + | Core_Base_Spec_Binary_Positive.POSITIVE_XH => + Mask_IsNul + | Core_Base_Spec_Binary_Positive.POSITIVE_XO (p) => + Mask_IsPos (Core_Base_Spec_Binary_Positive.xO (Core_Base_Binary.positive_pred_double (p))) + | Core_Base_Spec_Binary_Positive.POSITIVE_XI (p) => + Mask_IsPos (Core_Base_Spec_Binary_Positive.xO (Core_Base_Spec_Binary_Positive.xO (p))) end. -Fixpoint bitor_binary (lhs : t_Positive) (rhs : t_Positive) : t_Positive := - match match_positive (lhs) with - | POSITIVE_XH => - match match_positive (rhs) with - | POSITIVE_XO (q) => - xI (q) - | POSITIVE_XH => - xH - | POSITIVE_XI (q) => - xI (q) - end - | POSITIVE_XO (p) => - match match_positive (rhs) with - | POSITIVE_XH => - xI (p) - | POSITIVE_XO (q) => - xO (bitor_binary (p) (q)) - | POSITIVE_XI (q) => - xI (bitor_binary (p) (q)) - end - | POSITIVE_XI (p) => - match match_positive (rhs) with - | POSITIVE_XH => - xI (p) - | POSITIVE_XO (q) - | POSITIVE_XI (q) => - xI (bitor_binary (p) (q)) - end +Definition haxint_sub__succ_double_mask (lhs : t_Mask) : t_Mask := + match lhs with + | Mask_IsNeg => + Mask_IsNeg + | Mask_IsNul => + Mask_IsPos (Core_Base_Spec_Binary_Positive.xH) + | Mask_IsPos (p) => + Mask_IsPos (Core_Base_Spec_Binary_Positive.xI (p)) end. -Definition haxint_bitand (lhs : t_HaxInt) (rhs : t_HaxInt) : t_HaxInt := - match match_pos (lhs) with - | POS_ZERO => - v_HaxInt_ZERO - | POS_POS (p) => - match match_pos (rhs) with - | POS_ZERO => - v_HaxInt_ZERO - | POS_POS (q) => - bitand_binary (p) (q) - end +Definition haxint_sub__double_mask (lhs : t_Mask) : t_Mask := + match lhs with + | Mask_IsNeg => + Mask_IsNeg + | Mask_IsNul => + Mask_IsNul + | Mask_IsPos (p) => + Mask_IsPos (Core_Base_Spec_Binary_Positive.xO (p)) end. -Definition haxint_bitor (lhs : t_HaxInt) (rhs : t_HaxInt) : t_HaxInt := - match match_pos (lhs) with - | POS_ZERO => - rhs - | POS_POS (p) => - match match_pos (rhs) with - | POS_ZERO => - positive_to_int (p) - | POS_POS (q) => - positive_to_int (bitor_binary (p) (q)) - end +Definition haxint_double (s : Core_Base_Spec_Haxint.t_HaxInt) : Core_Base_Spec_Haxint.t_HaxInt := + match Core_Base_Spec_Binary_Pos.match_pos (s) with + | Core_Base_Spec_Binary_Pos.POS_ZERO => + Core_Base_Spec_Haxint.v_HaxInt_ZERO + | Core_Base_Spec_Binary_Pos.POS_POS (p) => + Core_Base_Spec_Binary_Positive.positive_to_int (Core_Base_Spec_Binary_Positive.xO (p)) end. -Fixpoint haxint_bitxor__bitxor_binary (lhs : t_Positive) (rhs : t_Positive) : t_HaxInt := - match match_positive (lhs) with - | POSITIVE_XH => - match match_positive (rhs) with - | POSITIVE_XH => - v_HaxInt_ZERO - | POSITIVE_XO (q) => - positive_to_int (xI (q)) - | POSITIVE_XI (q) => - positive_to_int (xO (q)) - end - | POSITIVE_XO (p) => - match match_positive (rhs) with - | POSITIVE_XH => - positive_to_int (xI (p)) - | POSITIVE_XO (q) => - haxint_double (haxint_bitxor__bitxor_binary (p) (q)) - | POSITIVE_XI (q) => - positive_to_int (haxint_succ_double (haxint_bitxor__bitxor_binary (p) (q))) - end - | POSITIVE_XI (p) => - match match_positive (rhs) with - | POSITIVE_XH => - positive_to_int (xO (p)) - | POSITIVE_XO (q) => - positive_to_int (haxint_succ_double (haxint_bitxor__bitxor_binary (p) (q))) - | POSITIVE_XI (q) => - haxint_double (haxint_bitxor__bitxor_binary (p) (q)) +Definition haxint_succ_double (s : Core_Base_Spec_Haxint.t_HaxInt) : Core_Base_Spec_Binary_Positive.t_Positive := + match Core_Base_Spec_Binary_Pos.match_pos (s) with + | Core_Base_Spec_Binary_Pos.POS_ZERO => + Core_Base_Spec_Binary_Positive.xH + | Core_Base_Spec_Binary_Pos.POS_POS (p) => + Core_Base_Spec_Binary_Positive.xI (p) + end. + +Definition haxint_mul (lhs : Core_Base_Spec_Haxint.t_HaxInt) (rhs : Core_Base_Spec_Haxint.t_HaxInt) : Core_Base_Spec_Haxint.t_HaxInt := + match Core_Base_Spec_Binary_Pos.match_pos (lhs) with + | Core_Base_Spec_Binary_Pos.POS_ZERO => + Core_Base_Spec_Haxint.v_HaxInt_ZERO + | Core_Base_Spec_Binary_Pos.POS_POS (p) => + match Core_Base_Spec_Binary_Pos.match_pos (rhs) with + | Core_Base_Spec_Binary_Pos.POS_ZERO => + Core_Base_Spec_Haxint.v_HaxInt_ZERO + | Core_Base_Spec_Binary_Pos.POS_POS (q) => + Core_Base_Spec_Binary_Positive.positive_to_int (Core_Base_Binary.positive_mul (p) (q)) end end. -Definition haxint_bitxor (lhs : t_HaxInt) (rhs : t_HaxInt) : t_HaxInt := - match match_pos (lhs) with - | POS_ZERO => - rhs - | POS_POS (p) => - match match_pos (rhs) with - | POS_ZERO => - positive_to_int (p) - | POS_POS (q) => - haxint_bitxor__bitxor_binary (p) (q) +Definition haxint_shr__half (s : Core_Base_Spec_Haxint.t_HaxInt) : Core_Base_Spec_Haxint.t_HaxInt := + match Core_Base_Spec_Binary_Pos.match_pos (s) with + | Core_Base_Spec_Binary_Pos.POS_ZERO => + Core_Base_Spec_Haxint.v_HaxInt_ZERO + | Core_Base_Spec_Binary_Pos.POS_POS (n) => + match Core_Base_Spec_Binary_Positive.match_positive (n) with + | Core_Base_Spec_Binary_Positive.POSITIVE_XH => + Core_Base_Spec_Haxint.v_HaxInt_ZERO + | Core_Base_Spec_Binary_Positive.POSITIVE_XO (p) => + Core_Base_Spec_Binary_Positive.positive_to_int (p) + | Core_Base_Spec_Binary_Positive.POSITIVE_XI (p) => + Core_Base_Spec_Binary_Positive.positive_to_int (p) end end. -Definition haxint_cmp (lhs : t_HaxInt) (rhs : t_HaxInt) : t_Ordering := - match match_pos (lhs) with - | POS_ZERO => - match match_pos (rhs) with - | POS_ZERO => - Ordering_Equal - | POS_POS (q) => - Ordering_Less +Fixpoint haxint_sub__sub_binary (lhs : Core_Base_Spec_Binary_Positive.t_Positive) (rhs : Core_Base_Spec_Binary_Positive.t_Positive) : t_Mask := + match Core_Base_Spec_Binary_Positive.match_positive (lhs) with + | Core_Base_Spec_Binary_Positive.POSITIVE_XH => + Mask_IsNeg + | Core_Base_Spec_Binary_Positive.POSITIVE_XO (p) => + match Core_Base_Spec_Binary_Positive.match_positive (rhs) with + | Core_Base_Spec_Binary_Positive.POSITIVE_XH => + Mask_IsPos (Core_Base_Binary.positive_pred_double (p)) + | Core_Base_Spec_Binary_Positive.POSITIVE_XO (q) => + haxint_sub__double_mask (haxint_sub__sub_binary (p) (q)) + | Core_Base_Spec_Binary_Positive.POSITIVE_XI (q) => + haxint_sub__succ_double_mask (haxint_sub__sub_carry (p) (q)) + end + | Core_Base_Spec_Binary_Positive.POSITIVE_XI (p) => + match Core_Base_Spec_Binary_Positive.match_positive (rhs) with + | Core_Base_Spec_Binary_Positive.POSITIVE_XH => + Mask_IsPos (Core_Base_Spec_Binary_Positive.xO (p)) + | Core_Base_Spec_Binary_Positive.POSITIVE_XO (q) => + haxint_sub__succ_double_mask (haxint_sub__sub_binary (p) (q)) + | Core_Base_Spec_Binary_Positive.POSITIVE_XI (q) => + haxint_sub__double_mask (haxint_sub__sub_binary (p) (q)) + end + end +with haxint_sub__sub_carry (lhs : Core_Base_Spec_Binary_Positive.t_Positive) (rhs : Core_Base_Spec_Binary_Positive.t_Positive) : t_Mask := + match Core_Base_Spec_Binary_Positive.match_positive (lhs) with + | Core_Base_Spec_Binary_Positive.POSITIVE_XH => + Mask_IsNeg + | Core_Base_Spec_Binary_Positive.POSITIVE_XO (p) => + match Core_Base_Spec_Binary_Positive.match_positive (rhs) with + | Core_Base_Spec_Binary_Positive.POSITIVE_XH => + haxint_sub__double_pred_mask (p) + | Core_Base_Spec_Binary_Positive.POSITIVE_XO (q) => + haxint_sub__succ_double_mask (haxint_sub__sub_carry (p) (q)) + | Core_Base_Spec_Binary_Positive.POSITIVE_XI (q) => + haxint_sub__double_mask (haxint_sub__sub_carry (p) (q)) end - | POS_POS (p) => - match match_pos (rhs) with - | POS_ZERO => - Ordering_Greater - | POS_POS (q) => - positive_cmp (p) (q) + | Core_Base_Spec_Binary_Positive.POSITIVE_XI (p) => + match Core_Base_Spec_Binary_Positive.match_positive (rhs) with + | Core_Base_Spec_Binary_Positive.POSITIVE_XH => + Mask_IsPos (Core_Base_Binary.positive_pred_double (p)) + | Core_Base_Spec_Binary_Positive.POSITIVE_XO (q) => + haxint_sub__double_mask (haxint_sub__sub_binary (p) (q)) + | Core_Base_Spec_Binary_Positive.POSITIVE_XI (q) => + haxint_sub__succ_double_mask (haxint_sub__sub_carry (p) (q)) end end. -Definition haxint_le (lhs : t_HaxInt) (rhs : t_HaxInt) : bool := - match Option_Some (haxint_cmp (lhs) (rhs)) with - | Option_Some (Ordering_Less - | Ordering_Equal) => - true - | _ => - false +Definition haxint_sub (lhs : Core_Base_Spec_Haxint.t_HaxInt) (rhs : Core_Base_Spec_Haxint.t_HaxInt) : Core_Base_Spec_Haxint.t_HaxInt := + match Core_Base_Spec_Binary_Pos.match_pos (lhs) with + | Core_Base_Spec_Binary_Pos.POS_ZERO => + Core_Base_Spec_Haxint.v_HaxInt_ZERO + | Core_Base_Spec_Binary_Pos.POS_POS (p) => + match Core_Base_Spec_Binary_Pos.match_pos (rhs) with + | Core_Base_Spec_Binary_Pos.POS_ZERO => + Core_Base_Spec_Binary_Positive.positive_to_int (p) + | Core_Base_Spec_Binary_Pos.POS_POS (q) => + match haxint_sub__sub_binary (p) (q) with + | Mask_IsPos (v) => + Core_Base_Spec_Binary_Positive.positive_to_int (v) + | _ => + Core_Base_Spec_Haxint.v_HaxInt_ZERO + end + end end. -Definition haxint_lt (lhs : t_HaxInt) (rhs : t_HaxInt) : bool := - match Option_Some (haxint_cmp (lhs) (rhs)) with - | Option_Some (Ordering_Less) => - true - | _ => - false +Fixpoint power_of_two (s : Core_Base_Spec_Unary.t_Unary) : Core_Base_Spec_Binary_Positive.t_Positive := + match Core_Base_Spec_Unary.match_unary (s) with + | Core_Base_Spec_Unary.UNARY_ZERO => + Core_Base_Spec_Binary_Positive.xH + | Core_Base_Spec_Unary.UNARY_SUCC (x) => + Core_Base_Spec_Binary_Positive.xO (power_of_two (x)) end. -Fixpoint haxint_shl__shl_helper (rhs : t_Unary) (lhs : t_HaxInt) : t_HaxInt := +Fixpoint haxint_shl__shl_helper (rhs : Core_Base_Spec_Unary.t_Unary) (lhs : Core_Base_Spec_Haxint.t_HaxInt) : Core_Base_Spec_Haxint.t_HaxInt := if - is_zero (Clone_f_clone (lhs)) + Core_Base_Spec_Haxint.is_zero (Core_Clone.Clone__f_clone (lhs)) then lhs else - match match_unary (rhs) with - | UNARY_ZERO => + match Core_Base_Spec_Unary.match_unary (rhs) with + | Core_Base_Spec_Unary.UNARY_ZERO => lhs - | UNARY_SUCC (n) => + | Core_Base_Spec_Unary.UNARY_SUCC (n) => haxint_shl__shl_helper (n) (haxint_double (lhs)) end. -Definition haxint_shl (lhs : t_HaxInt) (rhs : t_HaxInt) : t_HaxInt := - haxint_shl__shl_helper (unary_from_int (rhs)) (lhs). - -Fixpoint haxint_shr__shr_helper (rhs : t_Unary) (lhs : t_HaxInt) : t_HaxInt := +Fixpoint haxint_shr__shr_helper (rhs : Core_Base_Spec_Unary.t_Unary) (lhs : Core_Base_Spec_Haxint.t_HaxInt) : Core_Base_Spec_Haxint.t_HaxInt := if - is_zero (Clone_f_clone (lhs)) + Core_Base_Spec_Haxint.is_zero (Core_Clone.Clone__f_clone (lhs)) then lhs else - match match_unary (rhs) with - | UNARY_ZERO => + match Core_Base_Spec_Unary.match_unary (rhs) with + | Core_Base_Spec_Unary.UNARY_ZERO => lhs - | UNARY_SUCC (n) => + | Core_Base_Spec_Unary.UNARY_SUCC (n) => haxint_shr__shr_helper (n) (haxint_shr__half (lhs)) end. -Definition haxint_shr (lhs : t_HaxInt) (rhs : t_HaxInt) : t_HaxInt := - haxint_shr__shr_helper (unary_from_int (rhs)) (lhs). - -Definition haxint_sub__double_pred_mask (lhs : t_Positive) : t_HaxInt := - match match_positive (lhs) with - | POSITIVE_XH => - v_HaxInt_ZERO - | POSITIVE_XO (p) => - positive_to_int (xO (positive_pred_double (p))) - | POSITIVE_XI (p) => - positive_to_int (xO (xO (p))) - end. - -Fixpoint power_of_two (s : t_Unary) : t_Positive := - match match_unary (s) with - | UNARY_ZERO => - xH - | UNARY_SUCC (x) => - xO (power_of_two (x)) +Fixpoint bitxor_binary (lhs : Core_Base_Spec_Binary_Positive.t_Positive) (rhs : Core_Base_Spec_Binary_Positive.t_Positive) : Core_Base_Spec_Haxint.t_HaxInt := + match Core_Base_Spec_Binary_Positive.match_positive (lhs) with + | Core_Base_Spec_Binary_Positive.POSITIVE_XH => + match Core_Base_Spec_Binary_Positive.match_positive (rhs) with + | Core_Base_Spec_Binary_Positive.POSITIVE_XH => + Core_Base_Spec_Haxint.v_HaxInt_ZERO + | Core_Base_Spec_Binary_Positive.POSITIVE_XO (q) => + Core_Base_Spec_Binary_Positive.positive_to_int (Core_Base_Spec_Binary_Positive.xI (q)) + | Core_Base_Spec_Binary_Positive.POSITIVE_XI (q) => + Core_Base_Spec_Binary_Positive.positive_to_int (Core_Base_Spec_Binary_Positive.xO (q)) + end + | Core_Base_Spec_Binary_Positive.POSITIVE_XO (p) => + match Core_Base_Spec_Binary_Positive.match_positive (rhs) with + | Core_Base_Spec_Binary_Positive.POSITIVE_XH => + Core_Base_Spec_Binary_Positive.positive_to_int (Core_Base_Spec_Binary_Positive.xI (p)) + | Core_Base_Spec_Binary_Positive.POSITIVE_XO (q) => + haxint_double (bitxor_binary (p) (q)) + | Core_Base_Spec_Binary_Positive.POSITIVE_XI (q) => + Core_Base_Spec_Binary_Positive.positive_to_int (haxint_succ_double (bitxor_binary (p) (q))) + end + | Core_Base_Spec_Binary_Positive.POSITIVE_XI (p) => + match Core_Base_Spec_Binary_Positive.match_positive (rhs) with + | Core_Base_Spec_Binary_Positive.POSITIVE_XH => + Core_Base_Spec_Binary_Positive.positive_to_int (Core_Base_Spec_Binary_Positive.xO (p)) + | Core_Base_Spec_Binary_Positive.POSITIVE_XO (q) => + Core_Base_Spec_Binary_Positive.positive_to_int (haxint_succ_double (bitxor_binary (p) (q))) + | Core_Base_Spec_Binary_Positive.POSITIVE_XI (q) => + haxint_double (bitxor_binary (p) (q)) + end end. -Definition haxint_add (lhs : t_HaxInt) (rhs : t_HaxInt) : t_HaxInt := - match match_pos (lhs) with - | POS_ZERO => - rhs - | POS_POS (p) => - match match_pos (rhs) with - | POS_ZERO => - positive_to_int (p) - | POS_POS (q) => - positive_to_int (positive_add (p) (q)) +Fixpoint bitand_binary (lhs : Core_Base_Spec_Binary_Positive.t_Positive) (rhs : Core_Base_Spec_Binary_Positive.t_Positive) : Core_Base_Spec_Haxint.t_HaxInt := + match Core_Base_Spec_Binary_Positive.match_positive (lhs) with + | Core_Base_Spec_Binary_Positive.POSITIVE_XH => + match Core_Base_Spec_Binary_Positive.match_positive (rhs) with + | Core_Base_Spec_Binary_Positive.POSITIVE_XO (q) => + Core_Base_Spec_Haxint.v_HaxInt_ZERO + | Core_Base_Spec_Binary_Positive.POSITIVE_XI (_) + | Core_Base_Spec_Binary_Positive.POSITIVE_XH => + Core_Base_Spec_Haxint.v_HaxInt_ONE + end + | Core_Base_Spec_Binary_Positive.POSITIVE_XO (p) => + match Core_Base_Spec_Binary_Positive.match_positive (rhs) with + | Core_Base_Spec_Binary_Positive.POSITIVE_XH => + Core_Base_Spec_Haxint.v_HaxInt_ZERO + | Core_Base_Spec_Binary_Positive.POSITIVE_XO (q) + | Core_Base_Spec_Binary_Positive.POSITIVE_XI (q) => + haxint_double (bitand_binary (p) (q)) + end + | Core_Base_Spec_Binary_Positive.POSITIVE_XI (p) => + match Core_Base_Spec_Binary_Positive.match_positive (rhs) with + | Core_Base_Spec_Binary_Positive.POSITIVE_XH => + Core_Base_Spec_Haxint.v_HaxInt_ONE + | Core_Base_Spec_Binary_Positive.POSITIVE_XO (q) => + haxint_double (bitand_binary (p) (q)) + | Core_Base_Spec_Binary_Positive.POSITIVE_XI (q) => + Core_Base_Spec_Binary_Positive.positive_to_int (haxint_succ_double (bitand_binary (p) (q))) end end. -Fixpoint haxint_sub__sub_binary (lhs : t_Positive) (rhs : t_Positive) : t_HaxInt := - match match_positive (lhs) with - | POSITIVE_XH => - v_HaxInt_ZERO - | POSITIVE_XO (p) => - match match_positive (rhs) with - | POSITIVE_XH => - positive_to_int (positive_pred_double (p)) - | POSITIVE_XO (q) => - haxint_sub__double_mask (haxint_sub__sub_binary (p) (q)) - | POSITIVE_XI (q) => - haxint_sub__succ_double_mask (haxint_sub__sub_carry (p) (q)) +Fixpoint bitor_binary (lhs : Core_Base_Spec_Binary_Positive.t_Positive) (rhs : Core_Base_Spec_Binary_Positive.t_Positive) : Core_Base_Spec_Binary_Positive.t_Positive := + match Core_Base_Spec_Binary_Positive.match_positive (lhs) with + | Core_Base_Spec_Binary_Positive.POSITIVE_XH => + match Core_Base_Spec_Binary_Positive.match_positive (rhs) with + | Core_Base_Spec_Binary_Positive.POSITIVE_XO (q) => + Core_Base_Spec_Binary_Positive.xI (q) + | Core_Base_Spec_Binary_Positive.POSITIVE_XH => + Core_Base_Spec_Binary_Positive.xH + | Core_Base_Spec_Binary_Positive.POSITIVE_XI (q) => + Core_Base_Spec_Binary_Positive.xI (q) end - | POSITIVE_XI (p) => - match match_positive (rhs) with - | POSITIVE_XH => - positive_to_int (xO (p)) - | POSITIVE_XO (q) => - haxint_sub__succ_double_mask (haxint_sub__sub_binary (p) (q)) - | POSITIVE_XI (q) => - haxint_sub__double_mask (haxint_sub__sub_binary (p) (q)) + | Core_Base_Spec_Binary_Positive.POSITIVE_XO (p) => + match Core_Base_Spec_Binary_Positive.match_positive (rhs) with + | Core_Base_Spec_Binary_Positive.POSITIVE_XH => + Core_Base_Spec_Binary_Positive.xI (p) + | Core_Base_Spec_Binary_Positive.POSITIVE_XO (q) => + Core_Base_Spec_Binary_Positive.xO (bitor_binary (p) (q)) + | Core_Base_Spec_Binary_Positive.POSITIVE_XI (q) => + Core_Base_Spec_Binary_Positive.xI (bitor_binary (p) (q)) end - end + | Core_Base_Spec_Binary_Positive.POSITIVE_XI (p) => + match Core_Base_Spec_Binary_Positive.match_positive (rhs) with + | Core_Base_Spec_Binary_Positive.POSITIVE_XH => + Core_Base_Spec_Binary_Positive.xI (p) + | Core_Base_Spec_Binary_Positive.POSITIVE_XO (q) + | Core_Base_Spec_Binary_Positive.POSITIVE_XI (q) => + Core_Base_Spec_Binary_Positive.xI (bitor_binary (p) (q)) + end + end. -with haxint_sub__sub_carry (lhs : t_Positive) (rhs : t_Positive) : t_HaxInt := - match match_positive (lhs) with - | POSITIVE_XH => - v_HaxInt_ZERO - | POSITIVE_XO (p) => - match match_positive (rhs) with - | POSITIVE_XH => - haxint_sub__double_pred_mask (p) - | POSITIVE_XO (q) => - haxint_sub__succ_double_mask (haxint_sub__sub_carry (p) (q)) - | POSITIVE_XI (q) => - haxint_sub__double_mask (haxint_sub__sub_carry (p) (q)) +Definition haxint_shl (lhs : Core_Base_Spec_Haxint.t_HaxInt) (rhs : Core_Base_Spec_Haxint.t_HaxInt) : Core_Base_Spec_Haxint.t_HaxInt := + haxint_shl__shl_helper (Core_Base_Spec_Unary.unary_from_int (rhs)) (lhs). + +Definition haxint_shr (lhs : Core_Base_Spec_Haxint.t_HaxInt) (rhs : Core_Base_Spec_Haxint.t_HaxInt) : Core_Base_Spec_Haxint.t_HaxInt := + haxint_shr__shr_helper (Core_Base_Spec_Unary.unary_from_int (rhs)) (lhs). + +Definition haxint_bitxor (lhs : Core_Base_Spec_Haxint.t_HaxInt) (rhs : Core_Base_Spec_Haxint.t_HaxInt) : Core_Base_Spec_Haxint.t_HaxInt := + match Core_Base_Spec_Binary_Pos.match_pos (lhs) with + | Core_Base_Spec_Binary_Pos.POS_ZERO => + rhs + | Core_Base_Spec_Binary_Pos.POS_POS (p) => + match Core_Base_Spec_Binary_Pos.match_pos (rhs) with + | Core_Base_Spec_Binary_Pos.POS_ZERO => + Core_Base_Spec_Binary_Positive.positive_to_int (p) + | Core_Base_Spec_Binary_Pos.POS_POS (q) => + bitxor_binary (p) (q) end - | POSITIVE_XI (p) => - match match_positive (rhs) with - | POSITIVE_XH => - positive_to_int (positive_pred_double (p)) - | POSITIVE_XO (q) => - haxint_sub__double_mask (haxint_sub__sub_binary (p) (q)) - | POSITIVE_XI (q) => - haxint_sub__succ_double_mask (haxint_sub__sub_carry (p) (q)) + end. + +Definition haxint_bitand (lhs : Core_Base_Spec_Haxint.t_HaxInt) (rhs : Core_Base_Spec_Haxint.t_HaxInt) : Core_Base_Spec_Haxint.t_HaxInt := + match Core_Base_Spec_Binary_Pos.match_pos (lhs) with + | Core_Base_Spec_Binary_Pos.POS_ZERO => + Core_Base_Spec_Haxint.v_HaxInt_ZERO + | Core_Base_Spec_Binary_Pos.POS_POS (p) => + match Core_Base_Spec_Binary_Pos.match_pos (rhs) with + | Core_Base_Spec_Binary_Pos.POS_ZERO => + Core_Base_Spec_Haxint.v_HaxInt_ZERO + | Core_Base_Spec_Binary_Pos.POS_POS (q) => + bitand_binary (p) (q) end end. -Definition haxint_sub (lhs : t_HaxInt) (rhs : t_HaxInt) : t_HaxInt := - match match_pos (lhs) with - | POS_ZERO => - v_HaxInt_ZERO - | POS_POS (p) => - match match_pos (rhs) with - | POS_ZERO => - positive_to_int (p) - | POS_POS (q) => - haxint_sub__sub_binary (p) (q) +Definition haxint_bitor (lhs : Core_Base_Spec_Haxint.t_HaxInt) (rhs : Core_Base_Spec_Haxint.t_HaxInt) : Core_Base_Spec_Haxint.t_HaxInt := + match Core_Base_Spec_Binary_Pos.match_pos (lhs) with + | Core_Base_Spec_Binary_Pos.POS_ZERO => + rhs + | Core_Base_Spec_Binary_Pos.POS_POS (p) => + match Core_Base_Spec_Binary_Pos.match_pos (rhs) with + | Core_Base_Spec_Binary_Pos.POS_ZERO => + Core_Base_Spec_Binary_Positive.positive_to_int (p) + | Core_Base_Spec_Binary_Pos.POS_POS (q) => + Core_Base_Spec_Binary_Positive.positive_to_int (bitor_binary (p) (q)) end end. -Fixpoint haxint_divmod__divmod_binary (a : t_Positive) (b : t_Positive) : (t_HaxInt*t_HaxInt) := - match match_positive (a) with - | POSITIVE_XH => - match match_positive (b) with - | POSITIVE_XH => - (v_HaxInt_ONE,v_HaxInt_ZERO) - | POSITIVE_XO (q) - | POSITIVE_XI (q) => - (v_HaxInt_ZERO,v_HaxInt_ONE) +Fixpoint haxint_divmod__divmod_binary (a : Core_Base_Spec_Binary_Positive.t_Positive) (b : Core_Base_Spec_Binary_Positive.t_Positive) : (Core_Base_Spec_Haxint.t_HaxInt*Core_Base_Spec_Haxint.t_HaxInt) := + match Core_Base_Spec_Binary_Positive.match_positive (a) with + | Core_Base_Spec_Binary_Positive.POSITIVE_XH => + match Core_Base_Spec_Binary_Positive.match_positive (b) with + | Core_Base_Spec_Binary_Positive.POSITIVE_XH => + (Core_Base_Spec_Haxint.v_HaxInt_ONE,Core_Base_Spec_Haxint.v_HaxInt_ZERO) + | Core_Base_Spec_Binary_Positive.POSITIVE_XO (q) + | Core_Base_Spec_Binary_Positive.POSITIVE_XI (q) => + (Core_Base_Spec_Haxint.v_HaxInt_ZERO,Core_Base_Spec_Haxint.v_HaxInt_ONE) end - | POSITIVE_XO (a___) => - let (q,r) := haxint_divmod__divmod_binary (a___) (Clone_f_clone (b)) in - let r___ := haxint_double (r) in + | Core_Base_Spec_Binary_Positive.POSITIVE_XO (a_) => + let (q,r) := haxint_divmod__divmod_binary (a_) (Core_Clone.Clone__f_clone (b)) in + let r_ := haxint_double (r) in if - haxint_le (positive_to_int (Clone_f_clone (b))) (Clone_f_clone (r___)) + haxint_le (Core_Base_Spec_Binary_Positive.positive_to_int (Core_Clone.Clone__f_clone (b))) (Core_Clone.Clone__f_clone (r_)) then - (positive_to_int (haxint_succ_double (q)),haxint_sub (r___) (positive_to_int (b))) + (Core_Base_Spec_Binary_Positive.positive_to_int (haxint_succ_double (q)),haxint_sub (r_) (Core_Base_Spec_Binary_Positive.positive_to_int (b))) else - (haxint_double (q),r___) - | POSITIVE_XI (a___) => - let (q,r) := haxint_divmod__divmod_binary (a___) (Clone_f_clone (b)) in - let r___ := positive_to_int (haxint_succ_double (r)) in + (haxint_double (q),r_) + | Core_Base_Spec_Binary_Positive.POSITIVE_XI (a_) => + let (q,r) := haxint_divmod__divmod_binary (a_) (Core_Clone.Clone__f_clone (b)) in + let r_ := Core_Base_Spec_Binary_Positive.positive_to_int (haxint_succ_double (r)) in if - haxint_le (positive_to_int (Clone_f_clone (b))) (Clone_f_clone (r___)) + haxint_le (Core_Base_Spec_Binary_Positive.positive_to_int (Core_Clone.Clone__f_clone (b))) (Core_Clone.Clone__f_clone (r_)) then - (positive_to_int (haxint_succ_double (q)),haxint_sub (r___) (positive_to_int (b))) + (Core_Base_Spec_Binary_Positive.positive_to_int (haxint_succ_double (q)),haxint_sub (r_) (Core_Base_Spec_Binary_Positive.positive_to_int (b))) else - (haxint_double (q),r___) + (haxint_double (q),r_) end. -Definition haxint_divmod (a : t_HaxInt) (b : t_HaxInt) : (t_HaxInt*t_HaxInt) := - match match_pos (a) with - | POS_ZERO => - (v_HaxInt_ZERO,v_HaxInt_ZERO) - | POS_POS (p) => - match match_pos (b) with - | POS_ZERO => - (v_HaxInt_ZERO,positive_to_int (p)) - | POS_POS (q) => +Definition haxint_divmod (a : Core_Base_Spec_Haxint.t_HaxInt) (b : Core_Base_Spec_Haxint.t_HaxInt) : (Core_Base_Spec_Haxint.t_HaxInt*Core_Base_Spec_Haxint.t_HaxInt) := + match Core_Base_Spec_Binary_Pos.match_pos (a) with + | Core_Base_Spec_Binary_Pos.POS_ZERO => + (Core_Base_Spec_Haxint.v_HaxInt_ZERO,Core_Base_Spec_Haxint.v_HaxInt_ZERO) + | Core_Base_Spec_Binary_Pos.POS_POS (p) => + match Core_Base_Spec_Binary_Pos.match_pos (b) with + | Core_Base_Spec_Binary_Pos.POS_ZERO => + (Core_Base_Spec_Haxint.v_HaxInt_ZERO,Core_Base_Spec_Binary_Positive.positive_to_int (p)) + | Core_Base_Spec_Binary_Pos.POS_POS (q) => haxint_divmod__divmod_binary (p) (q) end end. -Definition haxint_div (lhs : t_HaxInt) (rhs : t_HaxInt) : t_HaxInt := +Definition haxint_div (lhs : Core_Base_Spec_Haxint.t_HaxInt) (rhs : Core_Base_Spec_Haxint.t_HaxInt) : Core_Base_Spec_Haxint.t_HaxInt := let (q,_) := haxint_divmod (lhs) (rhs) in q. -Definition haxint_mul (lhs : t_HaxInt) (rhs : t_HaxInt) : t_HaxInt := - match match_pos (lhs) with - | POS_ZERO => - v_HaxInt_ZERO - | POS_POS (p) => - match match_pos (rhs) with - | POS_ZERO => - v_HaxInt_ZERO - | POS_POS (q) => - positive_to_int (positive_mul (p) (q)) - end - end. - -Definition haxint_rem (lhs : t_HaxInt) (rhs : t_HaxInt) : t_HaxInt := +Definition haxint_rem (lhs : Core_Base_Spec_Haxint.t_HaxInt) (rhs : Core_Base_Spec_Haxint.t_HaxInt) : Core_Base_Spec_Haxint.t_HaxInt := let (_,r) := haxint_divmod (lhs) (rhs) in r. diff --git a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_Seq.v b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_Seq.v index 4e2d5e877..c2cd13346 100644 --- a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_Seq.v +++ b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_Seq.v @@ -9,262 +9,135 @@ Require Import String. Require Import Coq.Floats.Floats. From RecordUpdate Require Import RecordSet. Import RecordSetNotations. - -(* From Core Require Import Core. *) - -From Core Require Import Core_Base_Spec. -Export Core_Base_Spec. - -From Core Require Import Core_Base_Pos. -Export Core_Base_Pos. - -From Core Require Import Core_Clone (t_Clone). -Export Core_Clone (t_Clone). - -From Core Require Import Core_Cmp. -Export Core_Cmp. - -From Core Require Import Core_Marker (t_Sized). -Export Core_Marker (t_Sized). - +From Core Require Import Core_Marker. +From Core Require Import Core_Base_Spec_Seq. From Core Require Import Core_Panicking. -Export Core_Panicking. +From Core Require Import Core_Ops_Bit. +From Core Require Import Core_Base_Spec_Unary. -Definition hd__panic_cold_explicit '(_ : unit) `{HFalse : t_Never} : t_Never := - panic_explicit (tt) HFalse. +(* NotImplementedYet *) -Definition set_index__set_index_unary__panic_cold_explicit '(_ : unit) `{HFalse : t_Never} : t_Never := - panic_explicit (tt) HFalse. -Definition is_empty `{v_T : Type} `{t_Sized (v_T)} `{t_Clone (v_T)} (s : t_Seq ((v_T))) : bool := - match match_list (s) with - | LIST_NIL => - true - | LIST_CONS (_) (_) => - false - end. -Definition hd `{v_T : Type} `{t_Sized (v_T)} `{t_Clone (v_T)} (s : t_Seq ((v_T))) `{Hpre : negb (is_empty (s)) = true} : v_T := - match match_list (s) as s return negb (is_empty (s)) = true -> _ with - | LIST_NIL => - fun HFalse => never_to_any (hd__panic_cold_explicit (tt) (False_rect _ (Bool.diff_false_true HFalse))) - | LIST_CONS (hd) (_) => - fun _ => hd - end Hpre. - -Definition tl `{v_T : Type} `{t_Sized (v_T)} `{t_Clone (v_T)} (s : t_Seq ((v_T))) `{Hpre : negb (is_empty (s)) = true} : t_Seq ((v_T)) := - match match_list (s) with - | LIST_NIL => - nil (* (tt) *) - | LIST_CONS (_) (tl) => - tl - end. - -Fixpoint eq_inner `{v_T : Type} `{t_Sized (v_T)} `{t_Clone (v_T)} `{t_PartialEq (v_T) (v_T)} (s : t_Seq ((v_T))) (other : t_Seq ((v_T))) : bool := - match match_list (Clone_f_clone (s)) with - | LIST_NIL => - is_empty (Clone_f_clone (other)) - | LIST_CONS (x) (xs) => - match match_list (Clone_f_clone (other)) with - | LIST_NIL => - false - | LIST_CONS (y) (ys) => - andb (PartialEq_f_eq (x) (y)) (eq_inner (xs) (ys)) - end - end. -Instance t_PartialEq_126322860 `{v_T : Type} `{t_Sized (v_T)} `{t_Clone (v_T)} `{t_PartialEq (v_T) (v_T)} : t_PartialEq ((t_Seq ((v_T)))) ((t_Seq ((v_T)))) := - { - PartialEq_f_eq := fun (self : t_Seq ((v_T))) (other : t_Seq ((v_T)))=> - eq_inner (Clone_f_clone (self)) (Clone_f_clone (other)); - PartialEq_f_ne := fun (self : t_Seq ((v_T))) (other : t_Seq ((v_T)))=> - negb (eq_inner (Clone_f_clone (self)) (Clone_f_clone (other))); - }. -Fixpoint len__len_unary `{v_T : Type} `{t_Sized (v_T)} `{t_Clone (v_T)} (s : t_Seq ((v_T))) : t_Unary := - match match_list (s) with - | LIST_NIL => - unary_from_int(v_HaxInt_ZERO) - | LIST_CONS (_) (tl) => - succ (len__len_unary (tl)) - end. -Definition len `{v_T : Type} `{t_Sized (v_T)} `{t_Clone (v_T)} (s : t_Seq ((v_T))) : t_HaxInt := - unary_to_int(len__len_unary(s)). -Lemma positive_cmp_is_spec : - forall p q, match positive_cmp p q with | Ordering_Less => Lt | Ordering_Equal => Eq | Ordering_Greater => Gt end = (p ?= q)%positive. - { - clear. - intros. - unfold positive_cmp. - unfold "?="%positive. - set (Ordering_Equal). - pose (match Eq with | Lt => Ordering_Less | Gt => Ordering_Greater | Eq => Ordering_Equal end). - replace t with t0 by reflexivity. - clear t. - assert (forall c p q, c <> Eq -> Pos.compare_cont c p q <> Eq). - { - clear ; intros. - generalize dependent c. - generalize dependent q. - induction p ; intros ; destruct q, c ; (easy || now apply IHp). - } - assert (forall c p q, c <> Ordering_Equal -> positive_cmp__cmp_binary_cont p q c <> Ordering_Equal). - { - clear ; intros. - generalize dependent c. - generalize dependent q. - induction p ; intros ; destruct q, c ; (easy || now apply IHp). - } - subst t0. - set Eq. - generalize dependent c. - generalize dependent q. - induction p ; intros. - - destruct q. - + apply IHp. - + simpl. - rewrite <- IHp. - destruct positive_cmp__cmp_binary_cont eqn:ov. - * reflexivity. - * exfalso. refine (H0 _ p q _ ov). easy. - * reflexivity. - + reflexivity. - - destruct q. - + simpl. - rewrite <- IHp. - destruct positive_cmp__cmp_binary_cont eqn:ov. - * reflexivity. - * exfalso. refine (H0 _ p q _ ov). easy. - * reflexivity. - + apply IHp. - + reflexivity. - - now destruct q, c. - } -Qed. -Lemma haxint_lt_is_spec : forall x y, haxint_lt x y = N.ltb x y. - { - intros. - destruct x as [ | p], y as [ | q]. - - easy. - - easy. - - easy. - - unfold haxint_lt. - unfold haxint_cmp. - simpl. - - unfold N.ltb. - simpl. - - rewrite <- positive_cmp_is_spec. - - now destruct (positive_cmp). - } -Qed. - -Program Fixpoint get_index__get_index_unary `{v_T : Type} `{t_Sized (v_T)} `{t_Clone (v_T)} (l : t_Seq ((v_T))) (i : t_Unary) `{Hpre : haxint_lt(unary_to_int i) (len l) = true} : v_T := - match match_unary (i) with - | UNARY_ZERO => - hd (Hpre := Hpre) (l) - | UNARY_SUCC (n) => - get_index__get_index_unary (tl (Hpre := _) (l)) (n) +Definition is_empty `{v_T : Type} `{Core_Marker.t_Sized (v_T)} `{Core_Clone.t_Clone (v_T)} (s : Core_Base_Spec_Seq.t_Seq ((v_T))) : bool := + match Core_Base_Spec_Seq.match_list (s) with + | Core_Base_Spec_Seq.LIST_NIL => + (true : bool) + | Core_Base_Spec_Seq.LIST_CONS (_) (_) => + (false : bool) end. -Next Obligation. - unfold match_unary in Heq_anonymous. - subst. - now destruct l. -Qed. -Next Obligation. - unfold match_unary in Heq_anonymous. - subst. - now destruct l. -Qed. -Next Obligation. - unfold match_unary in Heq_anonymous. - subst. - destruct l. - - easy. - - simpl. - - rewrite haxint_lt_is_spec. - epose Hpre. - rewrite haxint_lt_is_spec in e. - - apply N.ltb_lt. - apply N.ltb_lt in e. - apply N.succ_lt_mono. - unfold len ; rewrite <- !Nnat.Nat2N.inj_succ. - apply e. -Qed. -Fail Next Obligation. +Definition hd__panic_cold_explicit '(_ : unit) `{HFalse : t_Never} : t_Never := + Core_Panicking.panic_explicit (tt) _ HFalse. -Definition get_index `{v_T : Type} `{t_Sized (v_T)} `{t_Clone (v_T)} (s : t_Seq ((v_T))) (i : t_HaxInt) {Hpre : haxint_lt (i) (len s) = true} : v_T := - get_index__get_index_unary (Hpre := ltac:(now rewrite Nnat.N2Nat.id)) (s) (unary_from_int (i)). +Definition hd `{v_T : Type} `{Core_Marker.t_Sized (v_T)} `{Core_Clone.t_Clone (v_T)} (s : Core_Base_Spec_Seq.t_Seq ((v_T))) `{negb (is_empty (s)) = true} : v_T := + match Core_Base_Spec_Seq.match_list (s) as k return (negb (is_empty k) = true) -> _ with + | Core_Base_Spec_Seq.LIST_NIL => + fun HFalse => never_to_any (hd__panic_cold_explicit (tt) (False_rect _ (Bool.diff_false_true HFalse))) + | Core_Base_Spec_Seq.LIST_CONS (hd) (_) => + fun _ => hd + end H1. -Fixpoint repeat__repeat_unary `{v_T : Type} `{t_Sized (v_T)} `{t_Clone (v_T)} (n : t_Unary) (v : v_T) : t_Seq ((v_T)) := - match match_unary (n) with - | UNARY_ZERO => - nil (* (tt) *) - | UNARY_SUCC (m) => - cons (repeat__repeat_unary (m) (Clone_f_clone (v))) v +Definition tl `{v_T : Type} `{Core_Marker.t_Sized (v_T)} `{Core_Clone.t_Clone (v_T)} (s : Core_Base_Spec_Seq.t_Seq ((v_T))) `{negb (is_empty (s)) = true} : Core_Base_Spec_Seq.t_Seq ((v_T)) := + match Core_Base_Spec_Seq.match_list (s) with + | Core_Base_Spec_Seq.LIST_NIL => + Core_Base_Spec_Seq.nil (* (tt) *) + | Core_Base_Spec_Seq.LIST_CONS (_) (tl) => + tl end. -Definition repeat `{v_T : Type} `{t_Sized (v_T)} `{t_Clone (v_T)} (n : t_HaxInt) (v : v_T) : t_Seq ((v_T)) := - repeat__repeat_unary (unary_from_int (n)) (v). +Definition set_index__set_index_unary__panic_cold_explicit '(_ : unit) `{HFalse : t_Never}: t_Never := + Core_Panicking.panic_explicit (tt) _ HFalse. -Fixpoint rev__rev_accum `{v_T : Type} `{t_Sized (v_T)} `{t_Clone (v_T)} (s : t_Seq ((v_T))) (accum : t_Seq ((v_T))) : t_Seq ((v_T)) := - match match_list (s) with - | LIST_NIL => - accum - | LIST_CONS (hd) (tl) => - rev__rev_accum (tl) (cons (accum) (hd)) +Fixpoint len__len_unary `{v_T : Type} `{Core_Marker.t_Sized (v_T)} `{Core_Clone.t_Clone (v_T)} (s : Core_Base_Spec_Seq.t_Seq ((v_T))) : Core_Base_Spec_Unary.t_Unary := + match Core_Base_Spec_Seq.match_list (s) with + | Core_Base_Spec_Seq.LIST_NIL => + Core_Base_Spec_Unary.unary_from_int (Core_Base_Spec_Haxint.v_HaxInt_ZERO) + | Core_Base_Spec_Seq.LIST_CONS (_) (tl) => + Core_Base_Spec_Unary.succ (len__len_unary (tl)) end. -Definition rev `{v_T : Type} `{t_Sized (v_T)} `{t_Clone (v_T)} (s : t_Seq ((v_T))) : t_Seq ((v_T)) := - rev__rev_accum (s) (nil (* (tt) *)). - -Program Fixpoint set_index__set_index_unary `{v_T : Type} `{t_Sized (v_T)} `{t_Clone (v_T)} (x : t_Seq ((v_T))) (i : t_Unary) (v : v_T) `{Hpre : haxint_lt(unary_to_int i) (len x) = true} : t_Seq ((v_T)) := - match match_list (x) with - | LIST_NIL => - never_to_any (set_index__set_index_unary__panic_cold_explicit (tt) _) - | LIST_CONS (hd) (tl) => - match match_unary (i) with - | UNARY_ZERO => - cons (tl) (v) - | UNARY_SUCC (n) => - cons (set_index__set_index_unary (tl) (n) (v)) (hd) - end +Check cons. + +Fixpoint repeat__repeat_unary `{v_T : Type} `{Core_Marker.t_Sized (v_T)} `{Core_Clone.t_Clone (v_T)} (n : Core_Base_Spec_Unary.t_Unary) (v : v_T) : Core_Base_Spec_Seq.t_Seq ((v_T)) := + match Core_Base_Spec_Unary.match_unary (n) with + | Core_Base_Spec_Unary.UNARY_ZERO => + Core_Base_Spec_Seq.nil (* (tt) *) + | Core_Base_Spec_Unary.UNARY_SUCC (m) => + Core_Base_Spec_Seq.cons (repeat__repeat_unary (m) (Core_Clone.Clone__f_clone (v))) (v) + end. + +(* Fixpoint set_index__set_index_unary `{v_T : Type} `{Core_Marker.t_Sized (v_T)} `{Core_Clone.t_Clone (v_T)} (x : Core_Base_Spec_Seq.t_Seq ((v_T))) (i : Core_Base_Spec_Unary.t_Unary) (v : v_T) : Core_Base_Spec_Seq.t_Seq ((v_T)) := *) +(* match Core_Base_Spec_Seq.match_list (x) with *) +(* | Core_Base_Spec_Seq.LIST_NIL => *) +(* never_to_any (set_index__set_index_unary__panic_cold_explicit (tt) (False_rec _ _)) *) +(* | Core_Base_Spec_Seq.LIST_CONS (hd) (tl) => *) +(* match Core_Base_Spec_Unary.match_unary (i) with *) +(* | Core_Base_Spec_Unary.UNARY_ZERO => *) +(* Core_Base_Spec_Seq.cons (tl) (v) *) +(* | Core_Base_Spec_Unary.UNARY_SUCC (n) => *) +(* Core_Base_Spec_Seq.cons (set_index__set_index_unary (tl) (n) (v)) (hd) *) +(* end *) +(* end. *) + +Fixpoint rev__rev_accum `{v_T : Type} `{Core_Marker.t_Sized (v_T)} `{Core_Clone.t_Clone (v_T)} (s : Core_Base_Spec_Seq.t_Seq ((v_T))) (accum : Core_Base_Spec_Seq.t_Seq ((v_T))) : Core_Base_Spec_Seq.t_Seq ((v_T)) := + match Core_Base_Spec_Seq.match_list (s) with + | Core_Base_Spec_Seq.LIST_NIL => + accum + | Core_Base_Spec_Seq.LIST_CONS (hd) (tl) => + rev__rev_accum (tl) (Core_Base_Spec_Seq.cons (accum) (hd)) end. -Next Obligation. - unfold match_list in Heq_anonymous. - subst. - now destruct i. -Qed. -Next Obligation. - unfold match_unary in Heq_anonymous. - subst. - unfold match_list in Heq_anonymous0. - subst. - - - rewrite haxint_lt_is_spec. - rewrite haxint_lt_is_spec in Hpre. - - apply N.ltb_lt. - apply N.ltb_lt in Hpre. - apply N.succ_lt_mono. - unfold len ; rewrite <- !Nnat.Nat2N.inj_succ. - apply Hpre. -Qed. -Fail Next Obligation. -Definition set_index `{v_T : Type} `{t_Sized (v_T)} `{t_Clone (v_T)} (s : t_Seq ((v_T))) (i : t_HaxInt) (v : v_T) `{haxint_lt (i) (len (s)) = true} : t_Seq ((v_T)) := - set_index__set_index_unary (s) (Hpre := ltac:(now rewrite Nnat.N2Nat.id)) (unary_from_int (i)) (v). +(* Fixpoint eq_inner `{v_T : Type} `{Core_Marker.t_Sized (v_T)} `{Core_Clone.t_Clone (v_T)} `{Core_Cmp.t_PartialEq (v_T) (v_T)} (s : Core_Base_Spec_Seq.t_Seq ((v_T))) (other : Core_Base_Spec_Seq.t_Seq ((v_T))) : bool := *) +(* match Core_Base_Spec_Seq.match_list (Core_Clone.Clone__f_clone (s)) with *) +(* | Core_Base_Spec_Seq.LIST_NIL => *) +(* is_empty (Core_Clone.Clone__f_clone (other)) *) +(* | Core_Base_Spec_Seq.LIST_CONS (x) (xs) => *) +(* match Core_Base_Spec_Seq.match_list (Core_Clone.Clone__f_clone (other)) with *) +(* | Core_Base_Spec_Seq.LIST_NIL => *) +(* (false : bool) *) +(* | Core_Base_Spec_Seq.LIST_CONS (y) (ys) => *) +(* andb (Core_Cmp.PartialEq__f_eq (x) (y)) (eq_inner (xs) (ys)) *) +(* end *) +(* end. *) + +Definition len `{v_T : Type} `{Core_Marker.t_Sized (v_T)} `{Core_Clone.t_Clone (v_T)} (s : Core_Base_Spec_Seq.t_Seq ((v_T))) : Core_Base_Spec_Haxint.t_HaxInt := + Core_Base_Spec_Unary.unary_to_int (len__len_unary (s)). + +Definition repeat `{v_T : Type} `{Core_Marker.t_Sized (v_T)} `{Core_Clone.t_Clone (v_T)} (n : Core_Base_Spec_Haxint.t_HaxInt) (v : v_T) : Core_Base_Spec_Seq.t_Seq ((v_T)) := + repeat__repeat_unary (Core_Base_Spec_Unary.unary_from_int (n)) (v). + +(* Definition set_index `{v_T : Type} `{Core_Marker.t_Sized (v_T)} `{Core_Clone.t_Clone (v_T)} (s : Core_Base_Spec_Seq.t_Seq ((v_T))) (i : Core_Base_Spec_Haxint.t_HaxInt) (v : v_T) `{Core_Base_Pos.haxint_lt (i) (len (s)) = true} : Core_Base_Spec_Seq.t_Seq ((v_T)) := *) +(* set_index__set_index_unary (s) (Core_Base_Spec_Unary.unary_from_int (i)) (v). *) + +(* Definition rev `{v_T : Type} `{Core_Marker.t_Sized (v_T)} `{Core_Clone.t_Clone (v_T)} (s : Core_Base_Spec_Seq.t_Seq ((v_T))) : Core_Base_Spec_Seq.t_Seq ((v_T)) := *) +(* rev__rev_accum (s) (Core_Base_Spec_Seq.nil (tt)). *) + +(* Instance t_PartialEq_377162091 `{v_T : Type} `{Core_Marker.t_Sized (v_T)} `{Core_Clone.t_Clone (v_T)} `{Core_Cmp.t_PartialEq (v_T) (v_T)} : Core_Cmp.t_PartialEq ((Core_Base_Spec_Seq.t_Seq ((v_T)))) ((Core_Base_Spec_Seq.t_Seq ((v_T)))) := *) +(* { *) +(* Core_Cmp.PartialEq_f_eq := fun (self : Core_Base_Spec_Seq.t_Seq ((v_T))) (other : Core_Base_Spec_Seq.t_Seq ((v_T)))=> *) +(* eq_inner (Core_Clone.Clone__f_clone (self)) (Core_Clone.Clone__f_clone (other)); *) +(* Core_Cmp.PartialEq_f_ne := fun (self : Core_Base_Spec_Seq.t_Seq ((v_T))) (other : Core_Base_Spec_Seq.t_Seq ((v_T)))=> *) +(* Core_Ops_Bit.Not__f_not (eq_inner (Core_Clone.Clone__f_clone (self)) (Core_Clone.Clone__f_clone (other))); *) +(* }. *) + +(* Fixpoint get_index_unary `{v_T : Type} `{Core_Marker.t_Sized (v_T)} `{Core_Clone.t_Clone (v_T)} (l : Core_Base_Spec_Seq.t_Seq ((v_T))) (i : Core_Base_Spec_Unary.t_Unary) `{Core_Base_Pos.haxint_lt (Core_Base_Spec_Unary.unary_to_int (i)) (len (l)) = true} : v_T := *) +(* match Core_Base_Spec_Unary.match_unary (i) with *) +(* | Core_Base_Spec_Unary.UNARY_ZERO => *) +(* hd (l) *) +(* | Core_Base_Spec_Unary.UNARY_SUCC (n) => *) +(* get_index_unary (tl (l)) (n) *) +(* end. *) + +(* Definition get_index `{v_T : Type} `{Core_Marker.t_Sized (v_T)} `{Core_Clone.t_Clone (v_T)} (s : Core_Base_Spec_Seq.t_Seq ((v_T))) (i : Core_Base_Spec_Haxint.t_HaxInt) `{Core_Base_Pos.haxint_lt (i) (len (s)) = true} : v_T := *) +(* get_index_unary (s) (Core_Base_Spec_Unary.unary_from_int (i)). *) diff --git a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_Spec.v b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_Spec.v new file mode 100644 index 000000000..e5b0be170 --- /dev/null +++ b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_Spec.v @@ -0,0 +1,28 @@ +(* File automatically generated by Hacspec *) +From Coq Require Import ZArith. +Require Import List. +Import List.ListNotations. +Open Scope Z_scope. +Open Scope bool_scope. +Require Import Ascii. +Require Import String. +Require Import Coq.Floats.Floats. +From RecordUpdate Require Import RecordSet. +Import RecordSetNotations. +From Core Require Import Core. + +(* NotImplementedYet *) + + + + + + + + + + + + + + diff --git a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_Spec_Binary.v b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_Spec_Binary.v new file mode 100644 index 000000000..11e1ce7b8 --- /dev/null +++ b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_Spec_Binary.v @@ -0,0 +1,18 @@ +(* File automatically generated by Hacspec *) +From Coq Require Import ZArith. +Require Import List. +Import List.ListNotations. +Open Scope Z_scope. +Open Scope bool_scope. +Require Import Ascii. +Require Import String. +Require Import Coq.Floats.Floats. +From RecordUpdate Require Import RecordSet. +Import RecordSetNotations. +From Core Require Import Core. + +(* NotImplementedYet *) + + + + diff --git a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_Spec_Binary_Pos.v b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_Spec_Binary_Pos.v new file mode 100644 index 000000000..522fc2bc9 --- /dev/null +++ b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_Spec_Binary_Pos.v @@ -0,0 +1,32 @@ +(* File automatically generated by Hacspec *) +From Coq Require Import ZArith. +Require Import List. +Import List.ListNotations. +Open Scope Z_scope. +Open Scope bool_scope. +Require Import Ascii. +Require Import String. +Require Import Coq.Floats.Floats. +From RecordUpdate Require Import RecordSet. +Import RecordSetNotations. +From Core Require Import Core. + +(* NotImplementedYet *) + + + + + +Inductive t_POS : Type := +| POS_ZERO +| POS_POS : Core_Base_Spec_Binary_Positive.t_Positive -> _. + + + +Definition match_pos (s : Core_Base_Spec_Haxint.t_HaxInt) : t_POS := + if + Core_Base_Spec_Haxint.is_zero (Core_Clone.Clone__f_clone (s)) + then + POS_ZERO + else + POS_POS (Core_Base_Spec_Binary_Positive.positive_from_int (s)). diff --git a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_Spec_Binary_Positive.v b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_Spec_Binary_Positive.v new file mode 100644 index 000000000..49fd3125a --- /dev/null +++ b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_Spec_Binary_Positive.v @@ -0,0 +1,42 @@ +(* File automatically generated by Hacspec *) +From Coq Require Import ZArith. +Require Import List. +Import List.ListNotations. +Open Scope Z_scope. +Open Scope bool_scope. +Require Import Ascii. +Require Import String. +Require Import Coq.Floats.Floats. +From RecordUpdate Require Import RecordSet. +Import RecordSetNotations. +From Core Require Import Core. + +(* NotImplementedYet *) + +From Core Require Import Core_Base_Spec_Haxint. +Export Core_Base_Spec_Haxint. + +From Core Require Import Core_Clone. +Export Core_Clone. + +Notation "'t_Positive'" := positive. +Notation "'t_POSITIVE'" := positive. +Notation "'POSITIVE_XH'" := xH. +Notation "'POSITIVE_XO'" := xO. +Notation "'POSITIVE_XI'" := xI. + +(* Inductive t_POSITIVE : Type := *) +(* | POSITIVE_XH *) +(* | POSITIVE_XO : t_Positive -> _ *) +(* | POSITIVE_XI : t_Positive -> _. *) + +Definition positive_from_int (x : t_HaxInt) `{Hpos : x <> N0} : t_Positive := + match x return x <> N0 -> _ with | N0 => fun Hpos => False_rect _ (Hpos eq_refl) | Npos p => fun _ => p end Hpos. + +(* Definition positive_to_int (s : t_Positive) : Core_Base_Spec_Haxint.t_HaxInt := Npos s. *) + +Definition xH : t_Positive := xH. +Definition xI (s : t_Positive) : t_Positive := xI s. +Definition xO (s : t_Positive) : t_Positive := xO s. + +Definition match_positive (s : t_Positive) : t_POSITIVE := s. diff --git a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_Spec_Constants.v b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_Spec_Constants.v new file mode 100644 index 000000000..ea435979d --- /dev/null +++ b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_Spec_Constants.v @@ -0,0 +1,101 @@ +(* File automatically generated by Hacspec *) +From Coq Require Import ZArith. +Require Import List. +Import List.ListNotations. +Open Scope Z_scope. +Open Scope bool_scope. +Require Import Ascii. +Require Import String. +Require Import Coq.Floats.Floats. +From RecordUpdate Require Import RecordSet. +Import RecordSetNotations. +From Core Require Import Core_Base_Spec_Haxint. + +(* NotImplementedYet *) + + + + + + + +Definition v_WORDSIZE_4_ : Core_Base_Spec_Haxint.t_HaxInt := + Core_Base_Spec_Haxint.HaxInt_HaxInt (Alloc_Borrow.Cow_Borrowed (Rust_primitives.unsize ([(128 : t_u8)]))). + +Definition v_WORDSIZE_8_ : Core_Base_Spec_Haxint.t_HaxInt := + Core_Base_Spec_Haxint.HaxInt_HaxInt (Alloc_Borrow.Cow_Borrowed (Rust_primitives.unsize ([(0 : t_u8); (1 : t_u8)]))). + +Definition v_WORDSIZE_16_ : Core_Base_Spec_Haxint.t_HaxInt := + Core_Base_Spec_Haxint.HaxInt_HaxInt (Alloc_Borrow.Cow_Borrowed (Rust_primitives.unsize ([(0 : t_u8); (0 : t_u8); (1 : t_u8)]))). + +Definition v_WORDSIZE_32_ : Core_Base_Spec_Haxint.t_HaxInt := + Core_Base_Spec_Haxint.HaxInt_HaxInt (Alloc_Borrow.Cow_Borrowed (Rust_primitives.unsize ([(0 : t_u8); (0 : t_u8); (0 : t_u8); (0 : t_u8); (1 : t_u8)]))). + +Definition v_WORDSIZE_64_ : Core_Base_Spec_Haxint.t_HaxInt := + Core_Base_Spec_Haxint.HaxInt_HaxInt (Alloc_Borrow.Cow_Borrowed (Rust_primitives.unsize ([(0 : t_u8); (0 : t_u8); (0 : t_u8); (0 : t_u8); (0 : t_u8); (0 : t_u8); (0 : t_u8); (0 : t_u8); (1 : t_u8)]))). + +Definition v_WORDSIZE_128_ : Core_Base_Spec_Haxint.t_HaxInt := + Core_Base_Spec_Haxint.HaxInt_HaxInt (Alloc_Borrow.Cow_Borrowed (Rust_primitives.unsize ([(0 : t_u8); (0 : t_u8); (0 : t_u8); (0 : t_u8); (0 : t_u8); (0 : t_u8); (0 : t_u8); (0 : t_u8); (0 : t_u8); (0 : t_u8); (0 : t_u8); (0 : t_u8); (0 : t_u8); (0 : t_u8); (0 : t_u8); (0 : t_u8); (1 : t_u8)]))). + +Definition v_WORDSIZE_4_SUB_1_ : Core_Base_Spec_Haxint.t_HaxInt := + Core_Base_Spec_Haxint.HaxInt_HaxInt (Alloc_Borrow.Cow_Borrowed (Rust_primitives.unsize ([(127 : t_u8)]))). + +Definition v_WORDSIZE_8_SUB_1_ : Core_Base_Spec_Haxint.t_HaxInt := + Core_Base_Spec_Haxint.HaxInt_HaxInt (Alloc_Borrow.Cow_Borrowed (Rust_primitives.unsize ([(255 : t_u8)]))). + +Definition v_WORDSIZE_16_SUB_1_ : Core_Base_Spec_Haxint.t_HaxInt := + Core_Base_Spec_Haxint.HaxInt_HaxInt (Alloc_Borrow.Cow_Borrowed (Rust_primitives.unsize ([(255 : t_u8); (255 : t_u8)]))). + +Definition v_WORDSIZE_32_SUB_1_ : Core_Base_Spec_Haxint.t_HaxInt := + Core_Base_Spec_Haxint.HaxInt_HaxInt (Alloc_Borrow.Cow_Borrowed (Rust_primitives.unsize ([(255 : t_u8); (255 : t_u8); (255 : t_u8); (255 : t_u8)]))). + +Definition v_WORDSIZE_64_SUB_1_ : Core_Base_Spec_Haxint.t_HaxInt := + Core_Base_Spec_Haxint.HaxInt_HaxInt (Alloc_Borrow.Cow_Borrowed (Rust_primitives.unsize ([(255 : t_u8); (255 : t_u8); (255 : t_u8); (255 : t_u8); (255 : t_u8); (255 : t_u8); (255 : t_u8); (255 : t_u8)]))). + +Definition v_WORDSIZE_128_SUB_1_ : Core_Base_Spec_Haxint.t_HaxInt := + Core_Base_Spec_Haxint.HaxInt_HaxInt (Alloc_Borrow.Cow_Borrowed (Rust_primitives.unsize ([(255 : t_u8); (255 : t_u8); (255 : t_u8); (255 : t_u8); (255 : t_u8); (255 : t_u8); (255 : t_u8); (255 : t_u8); (255 : t_u8); (255 : t_u8); (255 : t_u8); (255 : t_u8); (255 : t_u8); (255 : t_u8); (255 : t_u8); (255 : t_u8)]))). + +Definition v_BITS_8_ : Core_Base_Spec_Haxint.t_HaxInt := + Core_Base_Spec_Haxint.HaxInt_HaxInt (Alloc_Borrow.Cow_Borrowed (Rust_primitives.unsize ([(8 : t_u8)]))). + +Definition v_BITS_16_ : Core_Base_Spec_Haxint.t_HaxInt := + Core_Base_Spec_Haxint.HaxInt_HaxInt (Alloc_Borrow.Cow_Borrowed (Rust_primitives.unsize ([(16 : t_u8)]))). + +Definition v_BITS_32_ : Core_Base_Spec_Haxint.t_HaxInt := + Core_Base_Spec_Haxint.HaxInt_HaxInt (Alloc_Borrow.Cow_Borrowed (Rust_primitives.unsize ([(32 : t_u8)]))). + +Definition v_BITS_64_ : Core_Base_Spec_Haxint.t_HaxInt := + Core_Base_Spec_Haxint.HaxInt_HaxInt (Alloc_Borrow.Cow_Borrowed (Rust_primitives.unsize ([(64 : t_u8)]))). + +Definition v_BITS_128_ : Core_Base_Spec_Haxint.t_HaxInt := + Core_Base_Spec_Haxint.HaxInt_HaxInt (Alloc_Borrow.Cow_Borrowed (Rust_primitives.unsize ([(128 : t_u8)]))). + +Definition v_NEG_WORDSIZE_8_ : Core_Base_Spec_Z.t_Z := + Core_Base_Spec_Z.Z_NEG (Core_Base_Spec_Binary_Positive.Positive_Positive (v_WORDSIZE_4_)). + +Definition v_NEG_WORDSIZE_16_ : Core_Base_Spec_Z.t_Z := + Core_Base_Spec_Z.Z_NEG (Core_Base_Spec_Binary_Positive.Positive_Positive (v_WORDSIZE_8_)). + +Definition v_NEG_WORDSIZE_32_ : Core_Base_Spec_Z.t_Z := + Core_Base_Spec_Z.Z_NEG (Core_Base_Spec_Binary_Positive.Positive_Positive (v_WORDSIZE_16_)). + +Definition v_NEG_WORDSIZE_64_ : Core_Base_Spec_Z.t_Z := + Core_Base_Spec_Z.Z_NEG (Core_Base_Spec_Binary_Positive.Positive_Positive (v_WORDSIZE_32_)). + +Definition v_NEG_WORDSIZE_128_ : Core_Base_Spec_Z.t_Z := + Core_Base_Spec_Z.Z_NEG (Core_Base_Spec_Binary_Positive.Positive_Positive (v_WORDSIZE_64_)). + +Definition v_POS_WORDSIZE_8_ : Core_Base_Spec_Z.t_Z := + Core_Base_Spec_Z.Z_POS (Core_Base_Spec_Binary_Positive.Positive_Positive (v_WORDSIZE_4_SUB_1_)). + +Definition v_POS_WORDSIZE_16_ : Core_Base_Spec_Z.t_Z := + Core_Base_Spec_Z.Z_POS (Core_Base_Spec_Binary_Positive.Positive_Positive (v_WORDSIZE_8_SUB_1_)). + +Definition v_POS_WORDSIZE_32_ : Core_Base_Spec_Z.t_Z := + Core_Base_Spec_Z.Z_POS (Core_Base_Spec_Binary_Positive.Positive_Positive (v_WORDSIZE_16_SUB_1_)). + +Definition v_POS_WORDSIZE_64_ : Core_Base_Spec_Z.t_Z := + Core_Base_Spec_Z.Z_POS (Core_Base_Spec_Binary_Positive.Positive_Positive (v_WORDSIZE_32_SUB_1_)). + +Definition v_POS_WORDSIZE_128_ : Core_Base_Spec_Z.t_Z := + Core_Base_Spec_Z.Z_POS (Core_Base_Spec_Binary_Positive.Positive_Positive (v_WORDSIZE_64_SUB_1_)). diff --git a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_Spec_Haxint.v b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_Spec_Haxint.v new file mode 100644 index 000000000..d61051348 --- /dev/null +++ b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_Spec_Haxint.v @@ -0,0 +1,24 @@ +(* File automatically generated by Hacspec *) +From Coq Require Import ZArith. +Require Import List. +Import List.ListNotations. +Open Scope Z_scope. +Open Scope bool_scope. +Require Import Ascii. +Require Import String. +Require Import Coq.Floats.Floats. +From RecordUpdate Require Import RecordSet. +Import RecordSetNotations. +(* From Core Require Import Core. *) + +(* NotImplementedYet *) + +Notation "'t_HaxInt'" := N. + +Definition v_HaxInt_ONE : t_HaxInt := 1. +Definition v_HaxInt_TWO : t_HaxInt := 2. +Definition v_HaxInt_ZERO : t_HaxInt := 0. + +Definition is_zero (s : t_HaxInt) : bool := match s with | N0 => true | _ => false end. + +Definition div2 (s : t_HaxInt) : t_HaxInt := s / 2. diff --git a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_Spec_Seq.v b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_Spec_Seq.v new file mode 100644 index 000000000..2ba56ba57 --- /dev/null +++ b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_Spec_Seq.v @@ -0,0 +1,30 @@ +(* File automatically generated by Hacspec *) +From Coq Require Import ZArith. +Require Import List. +Import List.ListNotations. +Open Scope Z_scope. +Open Scope bool_scope. +Require Import Ascii. +Require Import String. +Require Import Coq.Floats.Floats. +From RecordUpdate Require Import RecordSet. +Import RecordSetNotations. +From Core Require Import Core. + +(* NotImplementedYet *) + +Notation "'t_Seq'" := (Core_Bundle.t_Seq). + +Notation "'t_LIST'" := (Core_Bundle.t_LIST). + +Notation "'LIST_NIL'" := (Core_Bundle.LIST_NIL). + +Notation "'LIST_CONS'" := (Core_Bundle.LIST_CONS). + +Notation "'impl'" := (Core_Bundle.impl). + +Notation "'match_list'" := (Core_Bundle.match_list). + +Notation "'nil'" := (Core_Bundle.nil). + +Notation "'cons'" := (Core_Bundle.cons). diff --git a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_Spec_Unary.v b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_Spec_Unary.v new file mode 100644 index 000000000..76f1073fc --- /dev/null +++ b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_Spec_Unary.v @@ -0,0 +1,58 @@ +(* File automatically generated by Hacspec *) +From Coq Require Import ZArith. +Require Import List. +Import List.ListNotations. +Open Scope Z_scope. +Open Scope bool_scope. +Require Import Ascii. +Require Import String. +Require Import Coq.Floats.Floats. +From RecordUpdate Require Import RecordSet. +Import RecordSetNotations. +From Core Require Import Core. + +(* NotImplementedYet *) + + + +Record Unary_Unary_record : Type := + { + Unary_Unary_0 : Core_Base_Spec_Haxint.t_HaxInt; + }. + + +#[export] Instance settable_Unary_Unary_record : Settable _ := + settable! (Build_Unary_Unary_record) . +Notation "'Unary_Unary_record'" := Build_Unary_Unary_record. + +Inductive t_UNARY : Type := +| UNARY_ZERO +| UNARY_SUCC : t_Unary -> _. + + + +Instance t_Clone_648246659 : Core_Clone.t_Clone ((t_Unary)) := + { + Core_Clone.Clone_f_clone := fun (self : t_Unary)=> + Rust_primitives_Hax.never_to_any (Core_Panicking.panic_fmt (Core_Fmt_Rt.impl_1__new_v1 ([("not yet implemented: specification needed"%string : string)]) ([]))); + }. + +Definition unary_to_int (s : t_Unary) : Core_Base_Spec_Haxint.t_HaxInt := + 0 s. + +Definition unary_from_int (x : Core_Base_Spec_Haxint.t_HaxInt) : t_Unary := + Unary_Unary (x). + +Definition succ (x : t_Unary) : t_Unary := + Rust_primitives_Hax.never_to_any (Core_Panicking.panic_fmt (Core_Fmt_Rt.impl_1__new_v1 ([("not yet implemented: specification needed"%string : string)]) ([]))). + +Definition pred (x : t_Unary) : t_Unary := + Rust_primitives_Hax.never_to_any (Core_Panicking.panic_fmt (Core_Fmt_Rt.impl_1__new_v1 ([("not yet implemented: specification needed"%string : string)]) ([]))). + +Definition match_unary (s : t_Unary) : t_UNARY := + if + Core_Base_Spec_Haxint.is_zero (unary_to_int (Core_Clone.Clone__f_clone (s))) + then + UNARY_ZERO + else + UNARY_SUCC (pred (s)). diff --git a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_Spec_Z.v b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_Spec_Z.v new file mode 100644 index 000000000..affa239dd --- /dev/null +++ b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_Spec_Z.v @@ -0,0 +1,34 @@ +(* File automatically generated by Hacspec *) +From Coq Require Import ZArith. +Require Import List. +Import List.ListNotations. +Open Scope Z_scope. +Open Scope bool_scope. +Require Import Ascii. +Require Import String. +Require Import Coq.Floats.Floats. +From RecordUpdate Require Import RecordSet. +Import RecordSetNotations. +From Core Require Import Core. + +(* NotImplementedYet *) + + + +Inductive t_Z : Type := +| Z_NEG : Core_Base_Spec_Binary_Positive.t_Positive -> _ +| Z_ZERO +| Z_POS : Core_Base_Spec_Binary_Positive.t_Positive -> _. + + + + + + + + +Definition v_Z_ONE : t_Z := + Z_POS (Core_Base_Spec_Binary_Positive.xH). + +Definition v_Z_TWO : t_Z := + Z_POS (Core_Base_Spec_Binary_Positive.Positive_Positive (Core_Base_Spec_Haxint.v_HaxInt_TWO)). diff --git a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_Z.v b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_Z.v index 7a3a4585b..7f37cff5b 100644 --- a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_Z.v +++ b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_Z.v @@ -9,369 +9,479 @@ Require Import String. Require Import Coq.Floats.Floats. From RecordUpdate Require Import RecordSet. Import RecordSetNotations. +From Core Require Import Core_Base_Spec_Z. +From Core Require Import Core_Cmp. +From Core Require Import Core_Base_Binary. +From Core Require Import Core_Base_Spec_Unary. +From Core Require Import Core_Base_Pos. -(* From Core Require Import Core. *) +(* NotImplementedYet *) -From Core Require Import Core_Base_Spec. -Export Core_Base_Spec. -From Core Require Import Core_Base_Binary. -Export Core_Base_Binary. -From Core Require Import Core_Cmp (t_Ordering). -Export Core_Cmp (t_Ordering). -From Core Require Import Core_Base_Pos. -Export Core_Base_Pos. -Definition z_neg (x : t_Z) : t_Z := - match x with - | Z_NEG (p) => - Z_POS (p) - | Z_ZERO => - Z_ZERO - | Z_POS (p) => - Z_NEG (p) - end. -Definition z_bitor__n_succ (x : t_POS) : t_Positive := - match x with - | POS_ZERO => - xH - | POS_POS (p) => - positive_from_int (Hpos := ltac:(easy)) (unary_to_int (succ (unary_from_int (positive_to_int (p))))) + + + +Definition z_cmp (lhs : Core_Base_Spec_Z.t_Z) (rhs : Core_Base_Spec_Z.t_Z) : Core_Cmp.t_Ordering := + match lhs with + | Core_Base_Spec_Z.Z_NEG (p) => + match rhs with + | Core_Base_Spec_Z.Z_NEG (q) => + match Core_Base_Binary.positive_cmp (p) (q) with + | Core_Cmp.Ordering_Equal => + Core_Cmp.Ordering_Equal + | Core_Cmp.Ordering_Less => + Core_Cmp.Ordering_Greater + | Core_Cmp.Ordering_Greater => + Core_Cmp.Ordering_Less + end + | _ => + Core_Cmp.Ordering_Less + end + | Core_Base_Spec_Z.Z_ZERO => + match rhs with + | Core_Base_Spec_Z.Z_ZERO => + Core_Cmp.Ordering_Equal + | Core_Base_Spec_Z.Z_POS (_) => + Core_Cmp.Ordering_Less + | Core_Base_Spec_Z.Z_NEG (_) => + Core_Cmp.Ordering_Greater + end + | Core_Base_Spec_Z.Z_POS (p) => + match rhs with + | Core_Base_Spec_Z.Z_POS (q) => + Core_Base_Binary.positive_cmp (p) (q) + | _ => + Core_Cmp.Ordering_Greater + end end. -Definition z_add__z_double (s : t_Z) : t_Z := - match s with - | Z_ZERO => - Z_ZERO - | Z_POS (p) => - Z_POS (xO (p)) - | Z_NEG (p) => - Z_NEG (xO (p)) +Definition z_le (lhs : Core_Base_Spec_Z.t_Z) (rhs : Core_Base_Spec_Z.t_Z) : bool := + match Core_Option.Option_Some (z_cmp (lhs) (rhs)) with + | Core_Option.Option_Some (Core_Cmp.Ordering_Less + | Core_Cmp.Ordering_Equal) => + (true : bool) + | _ => + (false : bool) end. -Definition z_bitor__haxint_ldiff__n_double (x : t_POS) : t_POS := - match x with - | POS_ZERO => - POS_ZERO - | POS_POS (p) => - POS_POS (xO (p)) +Definition z_lt (lhs : Core_Base_Spec_Z.t_Z) (rhs : Core_Base_Spec_Z.t_Z) : bool := + match Core_Option.Option_Some (z_cmp (lhs) (rhs)) with + | Core_Option.Option_Some (Core_Cmp.Ordering_Less) => + (true : bool) + | _ => + (false : bool) end. -Definition z_bitor__haxint_ldiff__n_succ_double (x : t_POS) : t_POS := - match x with - | POS_ZERO => - POS_POS (xH) - | POS_POS (p) => - POS_POS (xI (p)) +Definition z_add__z_pred_double (s : Core_Base_Spec_Z.t_Z) : Core_Base_Spec_Z.t_Z := + match s with + | Core_Base_Spec_Z.Z_ZERO => + Core_Base_Spec_Z.Z_NEG (Core_Base_Spec_Binary_Positive.xH) + | Core_Base_Spec_Z.Z_POS (p) => + Core_Base_Spec_Z.Z_POS (Core_Base_Binary.positive_pred_double (p)) + | Core_Base_Spec_Z.Z_NEG (p) => + Core_Base_Spec_Z.Z_NEG (Core_Base_Spec_Binary_Positive.xI (p)) end. -Definition z_add__z_pred_double (s : t_Z) : t_Z := +Definition z_add__z_double (s : Core_Base_Spec_Z.t_Z) : Core_Base_Spec_Z.t_Z := match s with - | Z_ZERO => - Z_NEG (xH) - | Z_POS (p) => - Z_POS (positive_pred_double (p)) - | Z_NEG (p) => - Z_NEG (xI (p)) + | Core_Base_Spec_Z.Z_ZERO => + Core_Base_Spec_Z.Z_ZERO + | Core_Base_Spec_Z.Z_POS (p) => + Core_Base_Spec_Z.Z_POS (Core_Base_Spec_Binary_Positive.xO (p)) + | Core_Base_Spec_Z.Z_NEG (p) => + Core_Base_Spec_Z.Z_NEG (Core_Base_Spec_Binary_Positive.xO (p)) end. -Definition z_add__z_succ_double (s : t_Z) : t_Z := +Definition z_add__z_succ_double (s : Core_Base_Spec_Z.t_Z) : Core_Base_Spec_Z.t_Z := match s with - | Z_ZERO => - Z_POS (xH) - | Z_POS (p) => - Z_POS (xI (p)) - | Z_NEG (p) => - Z_NEG (positive_pred_double (p)) + | Core_Base_Spec_Z.Z_ZERO => + Core_Base_Spec_Z.Z_POS (Core_Base_Spec_Binary_Positive.xH) + | Core_Base_Spec_Z.Z_POS (p) => + Core_Base_Spec_Z.Z_POS (Core_Base_Spec_Binary_Positive.xI (p)) + | Core_Base_Spec_Z.Z_NEG (p) => + Core_Base_Spec_Z.Z_NEG (Core_Base_Binary.positive_pred_double (p)) end. -Fixpoint z_bitor__haxint_ldiff__positive_ldiff (lhs : t_Positive) (rhs : t_Positive) : t_POS := - match match_positive (lhs) with - | POSITIVE_XH => - match match_positive (rhs) with - | POSITIVE_XH => - POS_ZERO - | POSITIVE_XO (_) => - POS_POS (xH) - | POSITIVE_XI (_) => - POS_ZERO - end - | POSITIVE_XO (p) => - match match_positive (rhs) with - | POSITIVE_XH => - POS_POS (xO (p)) - | POSITIVE_XO (q) => - z_bitor__haxint_ldiff__n_double (z_bitor__haxint_ldiff__positive_ldiff (p) (q)) - | POSITIVE_XI (q) => - z_bitor__haxint_ldiff__n_double (z_bitor__haxint_ldiff__positive_ldiff (p) (q)) - end - | POSITIVE_XI (p) => - match match_positive (rhs) with - | POSITIVE_XH => - POS_POS (xO (p)) - | POSITIVE_XO (q) => - z_bitor__haxint_ldiff__n_succ_double (z_bitor__haxint_ldiff__positive_ldiff (p) (q)) - | POSITIVE_XI (q) => - z_bitor__haxint_ldiff__n_double (z_bitor__haxint_ldiff__positive_ldiff (p) (q)) - end +Definition z_neg (x : Core_Base_Spec_Z.t_Z) : Core_Base_Spec_Z.t_Z := + match x with + | Core_Base_Spec_Z.Z_NEG (p) => + Core_Base_Spec_Z.Z_POS (p) + | Core_Base_Spec_Z.Z_ZERO => + Core_Base_Spec_Z.Z_ZERO + | Core_Base_Spec_Z.Z_POS (p) => + Core_Base_Spec_Z.Z_NEG (p) end. -Definition z_bitor__haxint_ldiff (lhs : t_POS) (rhs : t_POS) : t_POS := +Definition z_mul (lhs : Core_Base_Spec_Z.t_Z) (rhs : Core_Base_Spec_Z.t_Z) : Core_Base_Spec_Z.t_Z := match lhs with - | POS_ZERO => - POS_ZERO - | POS_POS (p) => + | Core_Base_Spec_Z.Z_NEG (p) => + match rhs with + | Core_Base_Spec_Z.Z_NEG (q) => + Core_Base_Spec_Z.Z_POS (Core_Base_Binary.positive_mul (p) (q)) + | Core_Base_Spec_Z.Z_ZERO => + Core_Base_Spec_Z.Z_ZERO + | Core_Base_Spec_Z.Z_POS (q) => + Core_Base_Spec_Z.Z_NEG (Core_Base_Binary.positive_mul (p) (q)) + end + | Core_Base_Spec_Z.Z_ZERO => + Core_Base_Spec_Z.Z_ZERO + | Core_Base_Spec_Z.Z_POS (p) => match rhs with - | POS_ZERO => - POS_POS (p) - | POS_POS (q) => - z_bitor__haxint_ldiff__positive_ldiff (p) (q) + | Core_Base_Spec_Z.Z_NEG (q) => + Core_Base_Spec_Z.Z_NEG (Core_Base_Binary.positive_mul (p) (q)) + | Core_Base_Spec_Z.Z_ZERO => + Core_Base_Spec_Z.Z_ZERO + | Core_Base_Spec_Z.Z_POS (q) => + Core_Base_Spec_Z.Z_POS (Core_Base_Binary.positive_mul (p) (q)) end end. -Definition z_bitor__n_and (lhs : t_POS) (rhs : t_POS) : t_POS := +Definition haxint_ldiff__n_double (x : Core_Base_Spec_Binary_Pos.t_POS) : Core_Base_Spec_Binary_Pos.t_POS := + match x with + | Core_Base_Spec_Binary_Pos.POS_ZERO => + Core_Base_Spec_Binary_Pos.POS_ZERO + | Core_Base_Spec_Binary_Pos.POS_POS (p) => + Core_Base_Spec_Binary_Pos.POS_POS (Core_Base_Spec_Binary_Positive.xO (p)) + end. + +Definition haxint_ldiff__n_succ_double (x : Core_Base_Spec_Binary_Pos.t_POS) : Core_Base_Spec_Binary_Pos.t_POS := + match x with + | Core_Base_Spec_Binary_Pos.POS_ZERO => + Core_Base_Spec_Binary_Pos.POS_POS (Core_Base_Spec_Binary_Positive.xH) + | Core_Base_Spec_Binary_Pos.POS_POS (p) => + Core_Base_Spec_Binary_Pos.POS_POS (Core_Base_Spec_Binary_Positive.xI (p)) + end. + +Definition n_succ (x : Core_Base_Spec_Binary_Pos.t_POS) : Core_Base_Spec_Binary_Positive.t_Positive := + match x with + | Core_Base_Spec_Binary_Pos.POS_ZERO => + Core_Base_Spec_Binary_Positive.xH + | Core_Base_Spec_Binary_Pos.POS_POS (p) => + Core_Base_Spec_Binary_Positive.positive_from_int (Core_Base_Spec_Unary.unary_to_int (Core_Base_Spec_Unary.succ (Core_Base_Spec_Unary.unary_from_int (Core_Base_Spec_Binary_Positive.positive_to_int (p))))) (Hpos := ltac:(easy)) + end. + +Definition positive_pred_N (x : Core_Base_Spec_Binary_Positive.t_Positive) : Core_Base_Spec_Binary_Pos.t_POS := + match Core_Base_Spec_Binary_Positive.match_positive (x) with + | Core_Base_Spec_Binary_Positive.POSITIVE_XH => + Core_Base_Spec_Binary_Pos.POS_ZERO + | Core_Base_Spec_Binary_Positive.POSITIVE_XI (p) => + Core_Base_Spec_Binary_Pos.POS_POS (Core_Base_Spec_Binary_Positive.xO (p)) + | Core_Base_Spec_Binary_Positive.POSITIVE_XO (p) => + Core_Base_Spec_Binary_Pos.POS_POS (Core_Base_Binary.positive_pred_double (p)) + end. + +Definition z_bitor__n_and (lhs : Core_Base_Spec_Binary_Pos.t_POS) (rhs : Core_Base_Spec_Binary_Pos.t_POS) : Core_Base_Spec_Binary_Pos.t_POS := match lhs with - | POS_ZERO => - POS_ZERO - | POS_POS (p) => + | Core_Base_Spec_Binary_Pos.POS_ZERO => + Core_Base_Spec_Binary_Pos.POS_ZERO + | Core_Base_Spec_Binary_Pos.POS_POS (p) => match rhs with - | POS_ZERO => - POS_ZERO - | POS_POS (q) => - match_pos (bitand_binary (p) (q)) + | Core_Base_Spec_Binary_Pos.POS_ZERO => + Core_Base_Spec_Binary_Pos.POS_ZERO + | Core_Base_Spec_Binary_Pos.POS_POS (q) => + Core_Base_Spec_Binary_Pos.match_pos (Core_Base_Pos.bitand_binary (p) (q)) end end. -Definition z_bitor__positive_pred_N (x : t_Positive) : t_POS := - match match_positive (x) with - | POSITIVE_XH => - POS_ZERO - | POSITIVE_XI (p) => - POS_POS (xO (p)) - | POSITIVE_XO (p) => - POS_POS (positive_pred_double (p)) +Definition z_of_n (x : Core_Base_Spec_Binary_Pos.t_POS) : Core_Base_Spec_Z.t_Z := + match x with + | Core_Base_Spec_Binary_Pos.POS_ZERO => + Core_Base_Spec_Z.Z_ZERO + | Core_Base_Spec_Binary_Pos.POS_POS (p) => + Core_Base_Spec_Z.Z_POS (p) end. -Definition z_bitor (lhs : t_Z) (rhs : t_Z) : t_Z := +Definition z_bitand__n_or (lhs : Core_Base_Spec_Binary_Pos.t_POS) (rhs : Core_Base_Spec_Binary_Pos.t_POS) : Core_Base_Spec_Binary_Pos.t_POS := match lhs with - | Z_ZERO => + | Core_Base_Spec_Binary_Pos.POS_ZERO => rhs - | Z_POS (x) => + | Core_Base_Spec_Binary_Pos.POS_POS (p) => match rhs with - | Z_ZERO => - Z_POS (x) - | Z_POS (y) => - Z_POS (bitor_binary (x) (y)) - | Z_NEG (y) => - Z_NEG (z_bitor__n_succ (z_bitor__haxint_ldiff (z_bitor__positive_pred_N (y)) (POS_POS (x)))) - end - | Z_NEG (x) => - match rhs with - | Z_ZERO => - Z_NEG (x) - | Z_POS (y) => - Z_NEG (z_bitor__n_succ (z_bitor__haxint_ldiff (z_bitor__positive_pred_N (x)) (POS_POS (y)))) - | Z_NEG (y) => - Z_NEG (z_bitor__n_succ (z_bitor__n_and (z_bitor__positive_pred_N (x)) (z_bitor__positive_pred_N (y)))) + | Core_Base_Spec_Binary_Pos.POS_ZERO => + Core_Base_Spec_Binary_Pos.POS_POS (p) + | Core_Base_Spec_Binary_Pos.POS_POS (q) => + Core_Base_Spec_Binary_Pos.POS_POS (Core_Base_Pos.bitor_binary (p) (q)) end end. -Definition z_cmp (lhs : t_Z) (rhs : t_Z) : t_Ordering := +Definition z_bitxor__n_xor (lhs : Core_Base_Spec_Binary_Pos.t_POS) (rhs : Core_Base_Spec_Binary_Pos.t_POS) : Core_Base_Spec_Binary_Pos.t_POS := match lhs with - | Z_NEG (p) => + | Core_Base_Spec_Binary_Pos.POS_ZERO => + rhs + | Core_Base_Spec_Binary_Pos.POS_POS (p) => match rhs with - | Z_NEG (q) => - match positive_cmp (p) (q) with - | Ordering_Equal => - Ordering_Equal - | Ordering_Less => - Ordering_Greater - | Ordering_Greater => - Ordering_Less - end - | _ => - Ordering_Less + | Core_Base_Spec_Binary_Pos.POS_ZERO => + Core_Base_Spec_Binary_Pos.POS_POS (p) + | Core_Base_Spec_Binary_Pos.POS_POS (q) => + Core_Base_Spec_Binary_Pos.match_pos (Core_Base_Pos.bitxor_binary (p) (q)) end - | Z_ZERO => + end. + +Definition z_bitxor (lhs : Core_Base_Spec_Z.t_Z) (rhs : Core_Base_Spec_Z.t_Z) : Core_Base_Spec_Z.t_Z := + match lhs with + | Core_Base_Spec_Z.Z_ZERO => + rhs + | Core_Base_Spec_Z.Z_POS (a) => match rhs with - | Z_ZERO => - Ordering_Equal - | Z_POS (_) => - Ordering_Less - | Z_NEG (_) => - Ordering_Greater + | Core_Base_Spec_Z.Z_ZERO => + Core_Base_Spec_Z.Z_POS (a) + | Core_Base_Spec_Z.Z_POS (b) => + z_of_n (Core_Base_Spec_Binary_Pos.match_pos (Core_Base_Pos.bitxor_binary (a) (b))) + | Core_Base_Spec_Z.Z_NEG (b) => + Core_Base_Spec_Z.Z_NEG (n_succ (z_bitxor__n_xor (Core_Base_Spec_Binary_Pos.POS_POS (a)) (positive_pred_N (b)))) end - | Z_POS (p) => + | Core_Base_Spec_Z.Z_NEG (a) => match rhs with - | Z_POS (q) => - positive_cmp (p) (q) - | _ => - Ordering_Greater + | Core_Base_Spec_Z.Z_ZERO => + Core_Base_Spec_Z.Z_NEG (a) + | Core_Base_Spec_Z.Z_POS (b) => + Core_Base_Spec_Z.Z_NEG (n_succ (z_bitxor__n_xor (positive_pred_N (a)) (Core_Base_Spec_Binary_Pos.POS_POS (b)))) + | Core_Base_Spec_Z.Z_NEG (b) => + z_of_n (z_bitxor__n_xor (positive_pred_N (a)) (positive_pred_N (b))) end end. -Definition z_le (lhs : t_Z) (rhs : t_Z) : bool := - match Option_Some (z_cmp (lhs) (rhs)) with - | Option_Some (Ordering_Less - | Ordering_Equal) => - true - | _ => - false +Definition z_shl (lhs : Core_Base_Spec_Z.t_Z) (rhs : Core_Base_Spec_Z.t_Z) : Core_Base_Spec_Z.t_Z := + match rhs with + | Core_Base_Spec_Z.Z_ZERO => + lhs + | Core_Base_Spec_Z.Z_POS (p) => + match lhs with + | Core_Base_Spec_Z.Z_ZERO => + Core_Base_Spec_Z.Z_ZERO + | Core_Base_Spec_Z.Z_POS (q) => + z_of_n (Core_Base_Spec_Binary_Pos.match_pos (Core_Base_Pos.haxint_shl (Core_Base_Spec_Binary_Positive.positive_to_int (q)) (Core_Base_Spec_Binary_Positive.positive_to_int (p)))) + | Core_Base_Spec_Z.Z_NEG (q) => + z_neg (z_of_n (Core_Base_Spec_Binary_Pos.match_pos (Core_Base_Pos.haxint_shl (Core_Base_Spec_Binary_Positive.positive_to_int (q)) (Core_Base_Spec_Binary_Positive.positive_to_int (p))))) + end + | Core_Base_Spec_Z.Z_NEG (p) => + match lhs with + | Core_Base_Spec_Z.Z_ZERO => + Core_Base_Spec_Z.Z_ZERO + | Core_Base_Spec_Z.Z_POS (q) => + z_of_n (Core_Base_Spec_Binary_Pos.match_pos (Core_Base_Pos.haxint_shr (Core_Base_Spec_Binary_Positive.positive_to_int (q)) (Core_Base_Spec_Binary_Positive.positive_to_int (p)))) + | Core_Base_Spec_Z.Z_NEG (q) => + z_neg (z_of_n (Core_Base_Spec_Binary_Pos.match_pos (Core_Base_Pos.haxint_shr (Core_Base_Spec_Binary_Positive.positive_to_int (q)) (Core_Base_Spec_Binary_Positive.positive_to_int (p))))) + end end. -Definition z_lt (lhs : t_Z) (rhs : t_Z) : bool := - match Option_Some (z_cmp (lhs) (rhs)) with - | Option_Some (Ordering_Less) => - true - | _ => - false - end. +Definition z_shr (lhs : Core_Base_Spec_Z.t_Z) (rhs : Core_Base_Spec_Z.t_Z) : Core_Base_Spec_Z.t_Z := + z_shl (lhs) (z_neg (rhs)). -Fixpoint z_add__pos_z_sub (x : t_Positive) (y : t_Positive) : t_Z := - match match_positive (x) with - | POSITIVE_XH => - match match_positive (y) with - | POSITIVE_XH => - Z_ZERO - | POSITIVE_XO (q) => - Z_NEG (positive_pred_double (q)) - | POSITIVE_XI (q) => - Z_NEG (xO (q)) +Fixpoint z_add__pos_z_sub (x : Core_Base_Spec_Binary_Positive.t_Positive) (y : Core_Base_Spec_Binary_Positive.t_Positive) : Core_Base_Spec_Z.t_Z := + match Core_Base_Spec_Binary_Positive.match_positive (x) with + | Core_Base_Spec_Binary_Positive.POSITIVE_XH => + match Core_Base_Spec_Binary_Positive.match_positive (y) with + | Core_Base_Spec_Binary_Positive.POSITIVE_XH => + Core_Base_Spec_Z.Z_ZERO + | Core_Base_Spec_Binary_Positive.POSITIVE_XO (q) => + Core_Base_Spec_Z.Z_NEG (Core_Base_Binary.positive_pred_double (q)) + | Core_Base_Spec_Binary_Positive.POSITIVE_XI (q) => + Core_Base_Spec_Z.Z_NEG (Core_Base_Spec_Binary_Positive.xO (q)) end - | POSITIVE_XO (p) => - match match_positive (y) with - | POSITIVE_XH => - Z_POS (positive_pred_double (p)) - | POSITIVE_XO (q) => + | Core_Base_Spec_Binary_Positive.POSITIVE_XO (p) => + match Core_Base_Spec_Binary_Positive.match_positive (y) with + | Core_Base_Spec_Binary_Positive.POSITIVE_XH => + Core_Base_Spec_Z.Z_POS (Core_Base_Binary.positive_pred_double (p)) + | Core_Base_Spec_Binary_Positive.POSITIVE_XO (q) => z_add__z_double (z_add__pos_z_sub (p) (q)) - | POSITIVE_XI (q) => + | Core_Base_Spec_Binary_Positive.POSITIVE_XI (q) => z_add__z_pred_double (z_add__pos_z_sub (p) (q)) end - | POSITIVE_XI (p) => - match match_positive (y) with - | POSITIVE_XH => - Z_POS (xO (p)) - | POSITIVE_XO (q) => + | Core_Base_Spec_Binary_Positive.POSITIVE_XI (p) => + match Core_Base_Spec_Binary_Positive.match_positive (y) with + | Core_Base_Spec_Binary_Positive.POSITIVE_XH => + Core_Base_Spec_Z.Z_POS (Core_Base_Spec_Binary_Positive.xO (p)) + | Core_Base_Spec_Binary_Positive.POSITIVE_XO (q) => z_add__z_succ_double (z_add__pos_z_sub (p) (q)) - | POSITIVE_XI (q) => + | Core_Base_Spec_Binary_Positive.POSITIVE_XI (q) => z_add__z_double (z_add__pos_z_sub (p) (q)) end end. -Definition z_add (lhs : t_Z) (rhs : t_Z) : t_Z := +Fixpoint haxint_ldiff__positive_ldiff (lhs : Core_Base_Spec_Binary_Positive.t_Positive) (rhs : Core_Base_Spec_Binary_Positive.t_Positive) : Core_Base_Spec_Binary_Pos.t_POS := + match Core_Base_Spec_Binary_Positive.match_positive (lhs) with + | Core_Base_Spec_Binary_Positive.POSITIVE_XH => + match Core_Base_Spec_Binary_Positive.match_positive (rhs) with + | Core_Base_Spec_Binary_Positive.POSITIVE_XH => + Core_Base_Spec_Binary_Pos.POS_ZERO + | Core_Base_Spec_Binary_Positive.POSITIVE_XO (_) => + Core_Base_Spec_Binary_Pos.POS_POS (Core_Base_Spec_Binary_Positive.xH) + | Core_Base_Spec_Binary_Positive.POSITIVE_XI (_) => + Core_Base_Spec_Binary_Pos.POS_ZERO + end + | Core_Base_Spec_Binary_Positive.POSITIVE_XO (p) => + match Core_Base_Spec_Binary_Positive.match_positive (rhs) with + | Core_Base_Spec_Binary_Positive.POSITIVE_XH => + Core_Base_Spec_Binary_Pos.POS_POS (Core_Base_Spec_Binary_Positive.xO (p)) + | Core_Base_Spec_Binary_Positive.POSITIVE_XO (q) => + haxint_ldiff__n_double (haxint_ldiff__positive_ldiff (p) (q)) + | Core_Base_Spec_Binary_Positive.POSITIVE_XI (q) => + haxint_ldiff__n_double (haxint_ldiff__positive_ldiff (p) (q)) + end + | Core_Base_Spec_Binary_Positive.POSITIVE_XI (p) => + match Core_Base_Spec_Binary_Positive.match_positive (rhs) with + | Core_Base_Spec_Binary_Positive.POSITIVE_XH => + Core_Base_Spec_Binary_Pos.POS_POS (Core_Base_Spec_Binary_Positive.xO (p)) + | Core_Base_Spec_Binary_Positive.POSITIVE_XO (q) => + haxint_ldiff__n_succ_double (haxint_ldiff__positive_ldiff (p) (q)) + | Core_Base_Spec_Binary_Positive.POSITIVE_XI (q) => + haxint_ldiff__n_double (haxint_ldiff__positive_ldiff (p) (q)) + end + end. + +Definition z_add (lhs : Core_Base_Spec_Z.t_Z) (rhs : Core_Base_Spec_Z.t_Z) : Core_Base_Spec_Z.t_Z := match lhs with - | Z_NEG (p) => + | Core_Base_Spec_Z.Z_NEG (p) => match rhs with - | Z_NEG (q) => - Z_NEG (positive_add (p) (q)) - | Z_ZERO => - Z_NEG (p) - | Z_POS (q) => + | Core_Base_Spec_Z.Z_NEG (q) => + Core_Base_Spec_Z.Z_NEG (Core_Base_Binary.positive_add (p) (q)) + | Core_Base_Spec_Z.Z_ZERO => + Core_Base_Spec_Z.Z_NEG (p) + | Core_Base_Spec_Z.Z_POS (q) => z_add__pos_z_sub (q) (p) end - | Z_ZERO => + | Core_Base_Spec_Z.Z_ZERO => rhs - | Z_POS (p) => + | Core_Base_Spec_Z.Z_POS (p) => match rhs with - | Z_NEG (q) => + | Core_Base_Spec_Z.Z_NEG (q) => z_add__pos_z_sub (p) (q) - | Z_ZERO => - Z_POS (p) - | Z_POS (q) => - Z_POS (positive_add (p) (q)) + | Core_Base_Spec_Z.Z_ZERO => + Core_Base_Spec_Z.Z_POS (p) + | Core_Base_Spec_Z.Z_POS (q) => + Core_Base_Spec_Z.Z_POS (Core_Base_Binary.positive_add (p) (q)) end end. -Definition z_sub (lhs : t_Z) (rhs : t_Z) : t_Z := +Definition z_sub (lhs : Core_Base_Spec_Z.t_Z) (rhs : Core_Base_Spec_Z.t_Z) : Core_Base_Spec_Z.t_Z := z_add (lhs) (z_neg (rhs)). -Definition z_mul (lhs : t_Z) (rhs : t_Z) : t_Z := +Definition haxint_ldiff (lhs : Core_Base_Spec_Binary_Pos.t_POS) (rhs : Core_Base_Spec_Binary_Pos.t_POS) : Core_Base_Spec_Binary_Pos.t_POS := + match lhs with + | Core_Base_Spec_Binary_Pos.POS_ZERO => + Core_Base_Spec_Binary_Pos.POS_ZERO + | Core_Base_Spec_Binary_Pos.POS_POS (p) => + match rhs with + | Core_Base_Spec_Binary_Pos.POS_ZERO => + Core_Base_Spec_Binary_Pos.POS_POS (p) + | Core_Base_Spec_Binary_Pos.POS_POS (q) => + haxint_ldiff__positive_ldiff (p) (q) + end + end. + +Definition z_bitor (lhs : Core_Base_Spec_Z.t_Z) (rhs : Core_Base_Spec_Z.t_Z) : Core_Base_Spec_Z.t_Z := + match lhs with + | Core_Base_Spec_Z.Z_ZERO => + rhs + | Core_Base_Spec_Z.Z_POS (x) => + match rhs with + | Core_Base_Spec_Z.Z_ZERO => + Core_Base_Spec_Z.Z_POS (x) + | Core_Base_Spec_Z.Z_POS (y) => + Core_Base_Spec_Z.Z_POS (Core_Base_Pos.bitor_binary (x) (y)) + | Core_Base_Spec_Z.Z_NEG (y) => + Core_Base_Spec_Z.Z_NEG (n_succ (haxint_ldiff (positive_pred_N (y)) (Core_Base_Spec_Binary_Pos.POS_POS (x)))) + end + | Core_Base_Spec_Z.Z_NEG (x) => + match rhs with + | Core_Base_Spec_Z.Z_ZERO => + Core_Base_Spec_Z.Z_NEG (x) + | Core_Base_Spec_Z.Z_POS (y) => + Core_Base_Spec_Z.Z_NEG (n_succ (haxint_ldiff (positive_pred_N (x)) (Core_Base_Spec_Binary_Pos.POS_POS (y)))) + | Core_Base_Spec_Z.Z_NEG (y) => + Core_Base_Spec_Z.Z_NEG (n_succ (z_bitor__n_and (positive_pred_N (x)) (positive_pred_N (y)))) + end + end. + +Definition z_bitand (lhs : Core_Base_Spec_Z.t_Z) (rhs : Core_Base_Spec_Z.t_Z) : Core_Base_Spec_Z.t_Z := match lhs with - | Z_NEG (p) => + | Core_Base_Spec_Z.Z_ZERO => + Core_Base_Spec_Z.Z_ZERO + | Core_Base_Spec_Z.Z_POS (a) => match rhs with - | Z_NEG (q) => - Z_POS (positive_mul (p) (q)) - | Z_ZERO => - Z_ZERO - | Z_POS (q) => - Z_NEG (positive_mul (p) (q)) + | Core_Base_Spec_Z.Z_ZERO => + Core_Base_Spec_Z.Z_ZERO + | Core_Base_Spec_Z.Z_POS (b) => + z_of_n (Core_Base_Spec_Binary_Pos.match_pos (Core_Base_Pos.bitand_binary (a) (b))) + | Core_Base_Spec_Z.Z_NEG (b) => + z_of_n (haxint_ldiff (Core_Base_Spec_Binary_Pos.POS_POS (a)) (positive_pred_N (b))) end - | Z_ZERO => - Z_ZERO - | Z_POS (p) => + | Core_Base_Spec_Z.Z_NEG (a) => match rhs with - | Z_NEG (q) => - Z_NEG (positive_mul (p) (q)) - | Z_ZERO => - Z_ZERO - | Z_POS (q) => - Z_POS (positive_mul (p) (q)) + | Core_Base_Spec_Z.Z_ZERO => + Core_Base_Spec_Z.Z_ZERO + | Core_Base_Spec_Z.Z_POS (b) => + z_of_n (haxint_ldiff (Core_Base_Spec_Binary_Pos.POS_POS (b)) (positive_pred_N (a))) + | Core_Base_Spec_Z.Z_NEG (b) => + Core_Base_Spec_Z.Z_NEG (n_succ (z_bitand__n_or (positive_pred_N (a)) (positive_pred_N (b)))) end end. -Fixpoint pos_div_eucl (a : t_Positive) (b : t_Z) : (t_Z*t_Z) := - match match_positive (a) with - | POSITIVE_XH => +Fixpoint pos_div_eucl (a : Core_Base_Spec_Binary_Positive.t_Positive) (b : Core_Base_Spec_Z.t_Z) : (Core_Base_Spec_Z.t_Z*Core_Base_Spec_Z.t_Z) := + match Core_Base_Spec_Binary_Positive.match_positive (a) with + | Core_Base_Spec_Binary_Positive.POSITIVE_XH => if - z_le (v_Z_TWO) (Clone_f_clone (b)) + z_le (Core_Base_Spec_Z.v_Z_TWO) (Core_Clone.Clone__f_clone (b)) then - (Z_ZERO,v_Z_ONE) + (Core_Base_Spec_Z.Z_ZERO,Core_Base_Spec_Z.v_Z_ONE) else - (v_Z_ONE,Z_ZERO) - | POSITIVE_XO (p) => - let (q,r) := pos_div_eucl (p) (Clone_f_clone (b)) in - let r___ := z_mul (v_Z_TWO) (r) in + (Core_Base_Spec_Z.v_Z_ONE,Core_Base_Spec_Z.Z_ZERO) + | Core_Base_Spec_Binary_Positive.POSITIVE_XO (p) => + let (q,r) := pos_div_eucl (p) (Core_Clone.Clone__f_clone (b)) in + let r_ := z_mul (Core_Base_Spec_Z.v_Z_TWO) (r) in if - z_lt (Clone_f_clone (r___)) (Clone_f_clone (b)) + z_lt (Core_Clone.Clone__f_clone (r_)) (Core_Clone.Clone__f_clone (b)) then - (z_mul (v_Z_TWO) (q),r___) + (z_mul (Core_Base_Spec_Z.v_Z_TWO) (q),r_) else - (z_add (z_mul (v_Z_TWO) (q)) (v_Z_ONE),z_sub (r___) (b)) - | POSITIVE_XI (p) => - let (q,r) := pos_div_eucl (p) (Clone_f_clone (b)) in - let r___ := z_add (z_mul (v_Z_TWO) (r)) (v_Z_ONE) in + (z_add (z_mul (Core_Base_Spec_Z.v_Z_TWO) (q)) (Core_Base_Spec_Z.v_Z_ONE),z_sub (r_) (b)) + | Core_Base_Spec_Binary_Positive.POSITIVE_XI (p) => + let (q,r) := pos_div_eucl (p) (Core_Clone.Clone__f_clone (b)) in + let r_ := z_add (z_mul (Core_Base_Spec_Z.v_Z_TWO) (r)) (Core_Base_Spec_Z.v_Z_ONE) in if - z_lt (Clone_f_clone (r___)) (Clone_f_clone (b)) + z_lt (Core_Clone.Clone__f_clone (r_)) (Core_Clone.Clone__f_clone (b)) then - (z_mul (v_Z_TWO) (q),r___) + (z_mul (Core_Base_Spec_Z.v_Z_TWO) (q),r_) else - (z_add (z_mul (v_Z_TWO) (q)) (v_Z_ONE),z_sub (r___) (b)) + (z_add (z_mul (Core_Base_Spec_Z.v_Z_TWO) (q)) (Core_Base_Spec_Z.v_Z_ONE),z_sub (r_) (b)) end. -Definition z_divmod (a : t_Z) (b : t_Z) : (t_Z*t_Z) := +Definition z_divmod (a : Core_Base_Spec_Z.t_Z) (b : Core_Base_Spec_Z.t_Z) : (Core_Base_Spec_Z.t_Z*Core_Base_Spec_Z.t_Z) := match a with - | Z_ZERO => - (Z_ZERO,Z_ZERO) - | Z_POS (a___) => - match Clone_f_clone (b) with - | Z_ZERO => - (Z_ZERO,Z_POS (a___)) - | Z_POS (b___) => - pos_div_eucl (a___) (b) - | Z_NEG (b___) => - let (q,r) := pos_div_eucl (a___) (Z_POS (b___)) in + | Core_Base_Spec_Z.Z_ZERO => + (Core_Base_Spec_Z.Z_ZERO,Core_Base_Spec_Z.Z_ZERO) + | Core_Base_Spec_Z.Z_POS (a_) => + match Core_Clone.Clone__f_clone (b) with + | Core_Base_Spec_Z.Z_ZERO => + (Core_Base_Spec_Z.Z_ZERO,Core_Base_Spec_Z.Z_POS (a_)) + | Core_Base_Spec_Z.Z_POS (b_) => + pos_div_eucl (a_) (b) + | Core_Base_Spec_Z.Z_NEG (b_) => + let (q,r) := pos_div_eucl (a_) (Core_Base_Spec_Z.Z_POS (b_)) in (z_neg (q),r) end - | Z_NEG (a___) => - match Clone_f_clone (b) with - | Z_ZERO => - (Z_ZERO,Z_NEG (a___)) - | Z_POS (_) => - let (q,r) := pos_div_eucl (a___) (Clone_f_clone (b)) in + | Core_Base_Spec_Z.Z_NEG (a_) => + match Core_Clone.Clone__f_clone (b) with + | Core_Base_Spec_Z.Z_ZERO => + (Core_Base_Spec_Z.Z_ZERO,Core_Base_Spec_Z.Z_NEG (a_)) + | Core_Base_Spec_Z.Z_POS (_) => + let (q,r) := pos_div_eucl (a_) (Core_Clone.Clone__f_clone (b)) in (z_neg (q),z_neg (r)) - | Z_NEG (b___) => - let (q,r) := pos_div_eucl (a___) (Z_POS (b___)) in + | Core_Base_Spec_Z.Z_NEG (b_) => + let (q,r) := pos_div_eucl (a_) (Core_Base_Spec_Z.Z_POS (b_)) in (q,z_neg (r)) end end. -Definition z_div (lhs : t_Z) (rhs : t_Z) : t_Z := +Definition z_div (lhs : Core_Base_Spec_Z.t_Z) (rhs : Core_Base_Spec_Z.t_Z) : Core_Base_Spec_Z.t_Z := let (q,_) := z_divmod (lhs) (rhs) in q. -Definition z_rem (lhs : t_Z) (rhs : t_Z) : t_Z := +Definition z_rem (lhs : Core_Base_Spec_Z.t_Z) (rhs : Core_Base_Spec_Z.t_Z) : Core_Base_Spec_Z.t_Z := let (_,r) := z_divmod (lhs) (rhs) in r. diff --git a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_interface.v b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_interface.v index 2b2f1b1c2..11e1ce7b8 100644 --- a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_interface.v +++ b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_interface.v @@ -9,15 +9,10 @@ Require Import String. Require Import Coq.Floats.Floats. From RecordUpdate Require Import RecordSet. Import RecordSetNotations. +From Core Require Import Core. -(* From Core Require Import Core. *) +(* NotImplementedYet *) -From Core Require Import Core_Base_interface_Int. -Export Core_Base_interface_Int. -From Core Require Import Core_Base_interface_Coerce. -Export Core_Base_interface_Coerce. -(* NotImplementedYet *) -(* NotImplementedYet *) diff --git a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_interface_Coerce.v b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_interface_Coerce.v index a08de4901..789238d23 100644 --- a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_interface_Coerce.v +++ b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_interface_Coerce.v @@ -9,22 +9,20 @@ Require Import String. Require Import Coq.Floats.Floats. From RecordUpdate Require Import RecordSet. Import RecordSetNotations. - -(* From Core Require Import Core. *) - From Core Require Import Core_Marker. -Export Core_Marker. -Class t_Concretization (v_Self : Type) (v_T : Type) `{t_Sized (v_T)} : Type := +(* NotImplementedYet *) + +Class t_Concretization (v_Self : Type) (v_T : Type) `{Core_Marker.t_Sized (v_T)} : Type := { - Concretization_f_concretize : v_Self -> v_T; + Concretization__f_concretize : v_Self -> v_T; }. Arguments t_Concretization (_) (_) {_}. Class t_Abstraction (v_Self : Type) : Type := { - Abstraction_f_AbstractType : Type; - _ :: `{t_Sized (Abstraction_f_AbstractType)}; - Abstraction_f_lift : v_Self -> Abstraction_f_AbstractType; + Abstraction__f_AbstractType : Type; + _ :: `{Core_Marker.t_Sized (Abstraction__f_AbstractType)}; + Abstraction__f_lift : v_Self -> Abstraction__f_AbstractType; }. Arguments t_Abstraction (_). diff --git a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_interface_Int.v b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_interface_Int.v index de6d3af4d..9543aa610 100644 --- a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_interface_Int.v +++ b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_interface_Int.v @@ -1,4 +1,3 @@ - (* File automatically generated by Hacspec *) From Coq Require Import ZArith. Require Import List. @@ -10,157 +9,47 @@ Require Import String. Require Import Coq.Floats.Floats. From RecordUpdate Require Import RecordSet. Import RecordSetNotations. - -(* From Core Require Import Core. *) - -From Core Require Import Core_Cmp. -Export Core_Cmp. - -From Core Require Import Core_Ops. -Export Core_Ops. - -From Core Require Import Core_Base. -Export Core_Base. +From Core Require Import Core_Base_Spec_Haxint. +From Core Require Import Core_Base_Spec_Constants. +From Core Require Import Core_Base_interface_Coerce. +From Core Require Import Core_Base_Pos. +From Core Require Import Core_Base_Spec_Z. +(* NotImplementedYet *) -From Core Require Import Core_Base_interface_Coerce. -Export Core_Base_interface_Coerce. -From Core Require Import Core_Option. -Export Core_Option. -From Core Require Import Core_Clone (t_Clone). -Export Core_Clone (t_Clone). -From Core Require Import Core_Convert (t_From). -Export Core_Convert (t_From). -Class t_Constants (v_Self : Type) : Type := - { - Constants_f_ZERO : v_Self; - Constants_f_ONE : v_Self; - Constants_f_MIN : v_Self; - Constants_f_MAX : v_Self; - }. -Arguments t_Constants (_). -Record t_I128 : Type := - { - I128_f_v : t_Z; - }. -Arguments Build_t_I128. -Arguments I128_f_v. -#[export] Instance settable_t_I128 : Settable _ := - settable! (Build_t_I128) . -(* NotImplementedYet *) -Record t_I16 : Type := - { - I16_f_v : t_Z; - }. -Arguments Build_t_I16. -Arguments I16_f_v. -#[export] Instance settable_t_I16 : Settable _ := - settable! (Build_t_I16) . -(* NotImplementedYet *) -Record t_I32 : Type := - { - I32_f_v : t_Z; - }. -Arguments Build_t_I32. -Arguments I32_f_v. -#[export] Instance settable_t_I32 : Settable _ := - settable! (Build_t_I32) . -(* NotImplementedYet *) -Record t_I64 : Type := - { - I64_f_v : t_Z; - }. -Arguments Build_t_I64. -Arguments I64_f_v. -#[export] Instance settable_t_I64 : Settable _ := - settable! (Build_t_I64) . -(* NotImplementedYet *) -Record t_I8 : Type := - { - I8_f_v : t_Z; - }. -Arguments Build_t_I8. -Arguments I8_f_v. -#[export] Instance settable_t_I8 : Settable _ := - settable! (Build_t_I8) . -(* NotImplementedYet *) -Record t_U128 : Type := - { - U128_f_v : t_HaxInt; - }. -Arguments Build_t_U128. -Arguments U128_f_v. -#[export] Instance settable_t_U128 : Settable _ := - settable! (Build_t_U128) . -(* NotImplementedYet *) -Record t_U16 : Type := - { - U16_f_v : t_HaxInt; - }. -Arguments Build_t_U16. -Arguments U16_f_v. -#[export] Instance settable_t_U16 : Settable _ := - settable! (Build_t_U16) . -(* NotImplementedYet *) -Record t_U32 : Type := - { - U32_f_v : t_HaxInt; - }. -Arguments Build_t_U32. -Arguments U32_f_v. -#[export] Instance settable_t_U32 : Settable _ := - settable! (Build_t_U32) . -(* NotImplementedYet *) -Record t_U64 : Type := - { - U64_f_v : t_HaxInt; - }. -Arguments Build_t_U64. -Arguments U64_f_v. -#[export] Instance settable_t_U64 : Settable _ := - settable! (Build_t_U64) . -(* NotImplementedYet *) -Record t_U8 : Type := +Class t_Constants (v_Self : Type) : Type := { - U8_f_v : t_HaxInt; + Constants__f_ZERO : v_Self; + Constants__f_ONE : v_Self; + Constants__f_MIN : v_Self; + Constants__f_MAX : v_Self; }. -Arguments Build_t_U8. -Arguments U8_f_v. -#[export] Instance settable_t_U8 : Settable _ := - settable! (Build_t_U8) . - -(* NotImplementedYet *) - -(* NotImplementedYet *) - -(* NotImplementedYet *) - -(* NotImplementedYet *) +Arguments t_Constants (_). (* NotImplementedYet *) @@ -192,1957 +81,2510 @@ Arguments U8_f_v. (* NotImplementedYet *) -#[global] Instance t_Concretization_407178874 : t_Concretization ((t_Z)) ((t_I128)) := - { - Concretization_f_concretize := fun (self : t_Z)=> - Build_t_I128 (self); - }. - -#[global] Instance t_Clone_960918039 : t_Clone ((t_I128)) := - { - Clone_f_clone := fun (self : t_I128)=> - Build_t_I128 (Clone_f_clone (I128_f_v self)); - }. - -#[global] Instance t_Concretization_1068646878 : t_Concretization ((t_Z)) ((t_I64)) := - { - Concretization_f_concretize := fun (self : t_Z)=> - Build_t_I64 (self); - }. - -#[global] Instance t_Clone_305340151 : t_Clone ((t_I64)) := - { - Clone_f_clone := fun (self : t_I64)=> - Build_t_I64 (Clone_f_clone (I64_f_v self)); - }. - -#[global] Instance t_Concretization_499270091 : t_Concretization ((t_Z)) ((t_I32)) := - { - Concretization_f_concretize := fun (self : t_Z)=> - Build_t_I32 (self); - }. - -#[global] Instance t_Clone_774571516 : t_Clone ((t_I32)) := - { - Clone_f_clone := fun (self : t_I32)=> - Build_t_I32 (Clone_f_clone (I32_f_v self)); - }. - -#[global] Instance t_Concretization_432063162 : t_Concretization ((t_Z)) ((t_I16)) := - { - Concretization_f_concretize := fun (self : t_Z)=> - Build_t_I16 (self); - }. - -#[global] Instance t_Clone_611206751 : t_Clone ((t_I16)) := - { - Clone_f_clone := fun (self : t_I16)=> - Build_t_I16 (Clone_f_clone (I16_f_v self)); - }. - -#[global] Instance t_Concretization_232722110 : t_Concretization ((t_Z)) ((t_I8)) := - { - Concretization_f_concretize := fun (self : t_Z)=> - Build_t_I8 (self); - }. - -#[global] Instance t_Clone_122768833 : t_Clone ((t_I8)) := - { - Clone_f_clone := fun (self : t_I8)=> - Build_t_I8 (Clone_f_clone (I8_f_v self)); - }. - -#[global] Instance t_Constants_572255769 : t_Constants ((t_I128)) := - { - Constants_f_ZERO := Build_t_I128 (Z_ZERO); - Constants_f_ONE := Build_t_I128 (Z_POS (xH)); - Constants_f_MIN := Build_t_I128 (Z_NEG (positive_from_int (Hpos := ltac:(easy)) (v_WORDSIZE_64_))); - Constants_f_MAX := Build_t_I128 (Z_POS (positive_from_int (Hpos := ltac:(easy)) (v_WORDSIZE_64_SUB_1_))); - }. - -Definition impl_41__BITS : t_U32 := - Build_t_U32 (v_BITS_128_). - -Definition impl_41__WORDSIZE : t_HaxInt := - v_WORDSIZE_128_. - -#[global] Instance t_Constants_908090553 : t_Constants ((t_I64)) := - { - Constants_f_ZERO := Build_t_I64 (Z_ZERO); - Constants_f_ONE := Build_t_I64 (Z_POS (xH)); - Constants_f_MIN := Build_t_I64 (Z_NEG (positive_from_int (Hpos := ltac:(easy)) (v_WORDSIZE_32_))); - Constants_f_MAX := Build_t_I64 (Z_POS (positive_from_int (Hpos := ltac:(easy)) (v_WORDSIZE_32_SUB_1_))); - }. - -Definition impl_55__BITS : t_U32 := - Build_t_U32 (v_BITS_64_). - -Definition impl_55__WORDSIZE : t_HaxInt := - v_WORDSIZE_64_. - -#[global] Instance t_Constants_99970330 : t_Constants ((t_I32)) := - { - Constants_f_ZERO := Build_t_I32 (Z_ZERO); - Constants_f_ONE := Build_t_I32 (Z_POS (xH)); - Constants_f_MIN := Build_t_I32 (Z_NEG (positive_from_int (Hpos := ltac:(easy)) (v_WORDSIZE_16_))); - Constants_f_MAX := Build_t_I32 (Z_POS (positive_from_int (Hpos := ltac:(easy)) (v_WORDSIZE_16_SUB_1_))); - }. - -Definition impl_69__BITS : t_U32 := - Build_t_U32 (v_BITS_32_). - -Definition impl_69__WORDSIZE : t_HaxInt := - v_WORDSIZE_32_. - -#[global] Instance t_Constants_687261461 : t_Constants ((t_I16)) := - { - Constants_f_ZERO := Build_t_I16 (Z_ZERO); - Constants_f_ONE := Build_t_I16 (Z_POS (xH)); - Constants_f_MIN := Build_t_I16 (Z_NEG (positive_from_int (Hpos := ltac:(easy)) (v_WORDSIZE_8_))); - Constants_f_MAX := Build_t_I16 (Z_POS (positive_from_int (Hpos := ltac:(easy)) (v_WORDSIZE_8_SUB_1_))); - }. - -Definition impl_83__BITS : t_U32 := - Build_t_U32 (v_BITS_16_). - -Definition impl_83__WORDSIZE : t_HaxInt := - v_WORDSIZE_16_. - -#[global] Instance t_Constants_636847136 : t_Constants ((t_I8)) := - { - Constants_f_ZERO := Build_t_I8 (Z_ZERO); - Constants_f_ONE := Build_t_I8 (Z_POS (xH)); - Constants_f_MIN := Build_t_I8 (Z_NEG (positive_from_int (Hpos := ltac:(easy)) (v_WORDSIZE_4_))); - Constants_f_MAX := Build_t_I8 (Z_POS (positive_from_int (Hpos := ltac:(easy)) (v_WORDSIZE_4_SUB_1_))); - }. - -Definition impl_97__BITS : t_U32 := - Build_t_U32 (v_BITS_8_). - -Definition impl_97__WORDSIZE : t_HaxInt := - v_WORDSIZE_8_. - -#[global] Instance t_Constants_119702187 : t_Constants ((t_U128)) := - { - Constants_f_ZERO := Build_t_U128 (v_HaxInt_ZERO); - Constants_f_ONE := Build_t_U128 (v_HaxInt_ONE); - Constants_f_MIN := Build_t_U128 (v_HaxInt_ZERO); - Constants_f_MAX := Build_t_U128 (v_WORDSIZE_128_SUB_1_); - }. - -Definition impl_111__BITS : t_U32 := - Build_t_U32 (v_BITS_128_). - -Definition impl_111__WORDSIZE : t_HaxInt := - v_WORDSIZE_128_. - -#[global] Instance t_Constants_579677195 : t_Constants ((t_U64)) := +Record t_U8 : Type := { - Constants_f_ZERO := Build_t_U64 (v_HaxInt_ZERO); - Constants_f_ONE := Build_t_U64 (v_HaxInt_ONE); - Constants_f_MIN := Build_t_U64 (v_HaxInt_ZERO); - Constants_f_MAX := Build_t_U64 (v_WORDSIZE_64_SUB_1_); + f_U8_v : Core_Base_Spec_Haxint.t_HaxInt; }. -Definition impl_138__BITS : t_U32 := - Build_t_U32 (v_BITS_64_). -Definition impl_138__WORDSIZE : t_HaxInt := - v_WORDSIZE_64_. +#[export] Instance settable_U8_U8_record : Settable _ := + settable! (Build_t_U8) . -#[global] Instance t_Constants_63564700 : t_Constants ((t_U32)) := - { - Constants_f_ZERO := Build_t_U32 (v_HaxInt_ZERO); - Constants_f_ONE := Build_t_U32 (v_HaxInt_ONE); - Constants_f_MIN := Build_t_U32 (v_HaxInt_ZERO); - Constants_f_MAX := Build_t_U32 (v_WORDSIZE_32_SUB_1_); - }. - -Definition impl_165__BITS : t_U32 := - Build_t_U32 (v_BITS_32_). - -Definition impl_165__WORDSIZE : t_HaxInt := - v_WORDSIZE_32_. +Instance t_U8_Sized : Core_Marker.t_Sized t_U8 := {}. -#[global] Instance t_Constants_221027212 : t_Constants ((t_U16)) := +Instance t_Constants_623735189 : t_Constants ((t_U8)) := { - Constants_f_ZERO := Build_t_U16 (v_HaxInt_ZERO); - Constants_f_ONE := Build_t_U16 (v_HaxInt_ONE); - Constants_f_MIN := Build_t_U16 (v_HaxInt_ZERO); - Constants_f_MAX := Build_t_U16 (v_WORDSIZE_16_SUB_1_); + Core_Base_interface_Int.Constants__f_ZERO := Build_t_U8 (Core_Base_Spec_Haxint.v_HaxInt_ZERO); + Core_Base_interface_Int.Constants__f_ONE := Build_t_U8 (Core_Base_Spec_Haxint.v_HaxInt_ONE); + Core_Base_interface_Int.Constants__f_MIN := Build_t_U8 (Core_Base_Spec_Haxint.v_HaxInt_ZERO); + Core_Base_interface_Int.Constants__f_MAX := Build_t_U8 (Core_Base_Spec_Constants.v_WORDSIZE_8_SUB_1_); }. -Definition impl_192__BITS : t_U32 := - Build_t_U32 (v_BITS_16_). +Definition impl_284__WORDSIZE : Core_Base_Spec_Haxint.t_HaxInt := + Core_Base_Spec_Constants.v_WORDSIZE_8_. -Definition impl_192__WORDSIZE : t_HaxInt := - v_WORDSIZE_16_. - -#[global] Instance t_Constants_932070468 : t_Constants ((t_U8)) := +Instance t_Concretization_776207118 : Core_Base_interface_Coerce.t_Concretization ((Core_Base_Spec_Haxint.t_HaxInt)) ((t_U8)) := { - Constants_f_ZERO := Build_t_U8 (v_HaxInt_ZERO); - Constants_f_ONE := Build_t_U8 (v_HaxInt_ONE); - Constants_f_MIN := Build_t_U8 (v_HaxInt_ZERO); - Constants_f_MAX := Build_t_U8 (v_WORDSIZE_8_SUB_1_); + Core_Base_interface_Coerce.Concretization__f_concretize := fun (self : Core_Base_Spec_Haxint.t_HaxInt)=> + Build_t_U8 (Core_Base_Pos.haxint_rem (self) (Core_Base_Spec_Constants.v_WORDSIZE_8_)); }. -Definition impl_219__BITS : t_U32 := - Build_t_U32 (v_BITS_8_). - -Definition impl_219__WORDSIZE : t_HaxInt := - v_WORDSIZE_8_. +(* Instance t_Clone_486264094 : Core_Clone.t_Clone ((t_U8)) := *) +(* { *) +(* Core_Clone.Clone_impl_307__f_clone := fun (self : t_U8)=> *) +(* U8_U8 (Core_Clone.Clone__f_clone (f_U8_v self)); *) +(* }. *) -#[global] Instance t_Clone_138729312 : t_Clone ((t_U128)) := +Record t_U16 : Type := { - Clone_f_clone := fun (self : t_U128)=> - Build_t_U128 (Clone_f_clone (U128_f_v self)); + f_U16_v : Core_Base_Spec_Haxint.t_HaxInt; }. -#[global] Instance t_Clone_461763462 : t_Clone ((t_U64)) := - { - Clone_f_clone := fun (self : t_U64)=> - Build_t_U64 (Clone_f_clone (U64_f_v self)); - }. -#[global] Instance t_Clone_412151272 : t_Clone ((t_U32)) := - { - Clone_f_clone := fun (self : t_U32)=> - Build_t_U32 (Clone_f_clone (U32_f_v self)); - }. +(* #[export] Instance settable_U16_U16_record : Settable _ := *) +(* settable! (Build_U16_U16_record) . *) -#[global] Instance t_Clone_387504240 : t_Clone ((t_U16)) := - { - Clone_f_clone := fun (self : t_U16)=> - Build_t_U16 (Clone_f_clone (U16_f_v self)); - }. +(* Instance t_Constants_1008862138 : t_Constants ((t_U16)) := *) +(* { *) +(* Core_Base_interface_Int.Constants_impl_256__f_ZERO := U16_U16 (Core_Base_Spec_Haxint.v_HaxInt_ZERO); *) +(* Core_Base_interface_Int.Constants_impl_256__f_ONE := U16_U16 (Core_Base_Spec_Haxint.v_HaxInt_ONE); *) +(* Core_Base_interface_Int.Constants_impl_256__f_MIN := U16_U16 (Core_Base_Spec_Haxint.v_HaxInt_ZERO); *) +(* Core_Base_interface_Int.Constants_impl_256__f_MAX := U16_U16 (Core_Base_Spec_Constants.v_WORDSIZE_16_SUB_1_); *) +(* }. *) -#[global] Instance t_Clone_917943387 : t_Clone ((t_U8)) := - { - Clone_f_clone := fun (self : t_U8)=> - Build_t_U8 (Clone_f_clone (U8_f_v self)); - }. +(* Definition impl_257__WORDSIZE : Core_Base_Spec_Haxint.t_HaxInt := *) +(* Core_Base_Spec_Constants.v_WORDSIZE_16_. *) -#[global] Instance t_Abstraction_970113908 : t_Abstraction ((t_I128)) := - { - Abstraction_f_AbstractType := t_Z; - Abstraction_f_lift := fun (self : t_I128)=> - I128_f_v self; - }. +(* Instance t_Concretization_667551646 : Core_Base_interface_Coerce.t_Concretization ((Core_Base_Spec_Haxint.t_HaxInt)) ((t_U16)) := *) +(* { *) +(* Core_Base_interface_Coerce.Concretization_impl_259__f_concretize := fun (self : Core_Base_Spec_Haxint.t_HaxInt)=> *) +(* U16_U16 (Core_Base_Pos.haxint_rem (self) (Core_Base_Spec_Constants.v_WORDSIZE_16_)); *) +(* }. *) -#[global] Instance t_From_330503528 : t_From ((t_I8)) ((t_I128)) := - { - From_f_from := fun (x : t_I128)=> - Concretization_f_concretize (Abstraction_f_lift (x) : t_Z); - }. +(* Instance t_Clone_716402593 : Core_Clone.t_Clone ((t_U16)) := *) +(* { *) +(* Core_Clone.Clone_impl_280__f_clone := fun (self : t_U16)=> *) +(* U16_U16 (Core_Clone.Clone__f_clone (f_U16_v self)); *) +(* }. *) -#[global] Instance t_From_185067369 : t_From ((t_I16)) ((t_I128)) := +Record t_U32 : Type := { - From_f_from := fun (x : t_I128)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_Z t_I16) (Abstraction_f_lift (x) : t_Z); + f_U32_v : Core_Base_Spec_Haxint.t_HaxInt; }. -#[global] Instance t_From_106548803 : t_From ((t_I32)) ((t_I128)) := - { - From_f_from := fun (x : t_I128)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_Z t_I32) (Abstraction_f_lift (x) : t_Z); - }. -#[global] Instance t_From_237552649 : t_From ((t_I64)) ((t_I128)) := - { - From_f_from := fun (x : t_I128)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_Z t_I64) (Abstraction_f_lift (x) : t_Z); - }. +(* #[export] Instance settable_U32_U32_record : Settable _ := *) +(* settable! (Build_U32_U32_record) . *) -#[global] Instance t_PartialEq_488790252 : t_PartialEq ((t_I128)) ((t_I128)) := - { - PartialEq_f_eq := fun (self : t_I128) (rhs : t_I128)=> - PartialEq_f_eq (z_cmp (Abstraction_f_lift (Clone_f_clone (self))) (Abstraction_f_lift (Clone_f_clone (rhs)))) (Ordering_Equal); - PartialEq_f_ne := fun (self : t_I128) (rhs : t_I128)=> - PartialEq_f_ne (z_cmp (Abstraction_f_lift (Clone_f_clone (self))) (Abstraction_f_lift (Clone_f_clone (rhs)))) (Ordering_Equal); - }. +(* Definition impl_284__BITS : t_U32 := *) +(* U32_U32 (Core_Base_Spec_Constants.v_BITS_8_). *) -#[global] Instance t_PartialOrd_387128921 : t_PartialOrd ((t_I128)) ((t_I128)) := - { - PartialOrd_f_partial_cmp := fun (self : t_I128) (rhs : t_I128)=> - Option_Some (z_cmp (Abstraction_f_lift (Clone_f_clone (self))) (Abstraction_f_lift (Clone_f_clone (rhs)))); - PartialOrd_f_lt := fun (self : t_I128) (rhs : t_I128)=> - match z_cmp (Abstraction_f_lift (Clone_f_clone (self))) (Abstraction_f_lift (Clone_f_clone (rhs))) with - | Ordering_Less => - true - | _ => - false - end; - PartialOrd_f_le := fun (self : t_I128) (rhs : t_I128)=> - match z_cmp (Abstraction_f_lift (Clone_f_clone (self))) (Abstraction_f_lift (Clone_f_clone (rhs))) with - | Ordering_Less - | Ordering_Equal => - true - | _ => - false - end; - PartialOrd_f_gt := fun (self : t_I128) (rhs : t_I128)=> - match z_cmp (Abstraction_f_lift (Clone_f_clone (self))) (Abstraction_f_lift (Clone_f_clone (rhs))) with - | Ordering_Greater => - true - | _ => - false - end; - PartialOrd_f_ge := fun (self : t_I128) (rhs : t_I128)=> - match z_cmp (Abstraction_f_lift (Clone_f_clone (self))) (Abstraction_f_lift (Clone_f_clone (rhs))) with - | Ordering_Greater - | Ordering_Equal => - true - | _ => - false - end; - }. +(* Definition impl_257__BITS : t_U32 := *) +(* U32_U32 (Core_Base_Spec_Constants.v_BITS_16_). *) -#[global] Instance t_Abstraction_692501606 : t_Abstraction ((t_I64)) := - { - Abstraction_f_AbstractType := t_Z; - Abstraction_f_lift := fun (self : t_I64)=> - I64_f_v self; - }. +(* Instance t_Constants_443398799 : t_Constants ((t_U32)) := *) +(* { *) +(* Core_Base_interface_Int.Constants_impl_229__f_ZERO := U32_U32 (Core_Base_Spec_Haxint.v_HaxInt_ZERO); *) +(* Core_Base_interface_Int.Constants_impl_229__f_ONE := U32_U32 (Core_Base_Spec_Haxint.v_HaxInt_ONE); *) +(* Core_Base_interface_Int.Constants_impl_229__f_MIN := U32_U32 (Core_Base_Spec_Haxint.v_HaxInt_ZERO); *) +(* Core_Base_interface_Int.Constants_impl_229__f_MAX := U32_U32 (Core_Base_Spec_Constants.v_WORDSIZE_32_SUB_1_); *) +(* }. *) -#[global] Instance t_From_318313768 : t_From ((t_I8)) ((t_I64)) := - { - From_f_from := fun (x : t_I64)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_Z t_I8) (Abstraction_f_lift (x)); - }. +(* Definition impl_230__BITS : t_U32 := *) +(* U32_U32 (Core_Base_Spec_Constants.v_BITS_32_). *) -#[global] Instance t_From_215423074 : t_From ((t_I16)) ((t_I64)) := - { - From_f_from := fun (x : t_I64)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_Z t_I16) (Abstraction_f_lift (x)); - }. +(* Definition impl_230__WORDSIZE : Core_Base_Spec_Haxint.t_HaxInt := *) +(* Core_Base_Spec_Constants.v_WORDSIZE_32_. *) -#[global] Instance t_From_221659723 : t_From ((t_I32)) ((t_I64)) := - { - From_f_from := fun (x : t_I64)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_Z t_I32) (Abstraction_f_lift (x)); - }. +(* Instance t_Concretization_272579079 : Core_Base_interface_Coerce.t_Concretization ((Core_Base_Spec_Haxint.t_HaxInt)) ((t_U32)) := *) +(* { *) +(* Core_Base_interface_Coerce.Concretization_impl_232__f_concretize := fun (self : Core_Base_Spec_Haxint.t_HaxInt)=> *) +(* U32_U32 (Core_Base_Pos.haxint_rem (self) (Core_Base_Spec_Constants.v_WORDSIZE_32_)); *) +(* }. *) -#[global] Instance t_From_927453474 : t_From ((t_I128)) ((t_I64)) := - { - From_f_from := fun (x : t_I64)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_Z t_I128) (Abstraction_f_lift (x)); - }. +(* Instance t_Clone_974027832 : Core_Clone.t_Clone ((t_U32)) := *) +(* { *) +(* Core_Clone.Clone_impl_253__f_clone := fun (self : t_U32)=> *) +(* U32_U32 (Core_Clone.Clone__f_clone (f_U32_v self)); *) +(* }. *) -#[global] Instance t_PartialEq_474861724 : t_PartialEq ((t_I64)) ((t_I64)) := +Record t_U64 : Type := { - PartialEq_f_eq := fun (self : t_I64) (rhs : t_I64)=> - PartialEq_f_eq (t_PartialEq := _ : t_PartialEq t_Ordering t_Ordering) (z_cmp (Abstraction_f_lift (Clone_f_clone (self))) (Abstraction_f_lift (Clone_f_clone (rhs)))) (Ordering_Equal); - PartialEq_f_ne := fun (self : t_I64) (rhs : t_I64)=> - PartialEq_f_ne (t_PartialEq := _ : t_PartialEq t_Ordering t_Ordering) (z_cmp (Abstraction_f_lift (Clone_f_clone (self))) (Abstraction_f_lift (Clone_f_clone (rhs)))) (Ordering_Equal); + f_U64_v : Core_Base_Spec_Haxint.t_HaxInt; }. -#[global] Instance t_PartialOrd_552634265 : t_PartialOrd ((t_I64)) ((t_I64)) := - { - PartialOrd_f_partial_cmp := fun (self : t_I64) (rhs : t_I64)=> - Option_Some (z_cmp (Abstraction_f_lift (Clone_f_clone (self))) (Abstraction_f_lift (Clone_f_clone (rhs)))); - PartialOrd_f_lt := fun (self : t_I64) (rhs : t_I64)=> - match z_cmp (Abstraction_f_lift (Clone_f_clone (self))) (Abstraction_f_lift (Clone_f_clone (rhs))) with - | Ordering_Less => - true - | _ => - false - end; - PartialOrd_f_le := fun (self : t_I64) (rhs : t_I64)=> - match z_cmp (Abstraction_f_lift (Clone_f_clone (self))) (Abstraction_f_lift (Clone_f_clone (rhs))) with - | Ordering_Less - | Ordering_Equal => - true - | _ => - false - end; - PartialOrd_f_gt := fun (self : t_I64) (rhs : t_I64)=> - match z_cmp (Abstraction_f_lift (Clone_f_clone (self))) (Abstraction_f_lift (Clone_f_clone (rhs))) with - | Ordering_Greater => - true - | _ => - false - end; - PartialOrd_f_ge := fun (self : t_I64) (rhs : t_I64)=> - match z_cmp (Abstraction_f_lift (Clone_f_clone (self))) (Abstraction_f_lift (Clone_f_clone (rhs))) with - | Ordering_Greater - | Ordering_Equal => - true - | _ => - false - end; - }. -#[global] Instance t_Abstraction_493183574 : t_Abstraction ((t_I32)) := - { - Abstraction_f_AbstractType := t_Z; - Abstraction_f_lift := fun (self : t_I32)=> - I32_f_v self; - }. +(* #[export] Instance settable_U64_U64_record : Settable _ := *) +(* settable! (Build_U64_U64_record) . *) -#[global] Instance t_From_573287156 : t_From ((t_I8)) ((t_I32)) := - { - From_f_from := fun (x : t_I32)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_Z t_I8) (Abstraction_f_lift (x)); - }. +(* Instance t_Constants_1057979424 : t_Constants ((t_U64)) := *) +(* { *) +(* Core_Base_interface_Int.Constants_impl_202__f_ZERO := U64_U64 (Core_Base_Spec_Haxint.v_HaxInt_ZERO); *) +(* Core_Base_interface_Int.Constants_impl_202__f_ONE := U64_U64 (Core_Base_Spec_Haxint.v_HaxInt_ONE); *) +(* Core_Base_interface_Int.Constants_impl_202__f_MIN := U64_U64 (Core_Base_Spec_Haxint.v_HaxInt_ZERO); *) +(* Core_Base_interface_Int.Constants_impl_202__f_MAX := U64_U64 (Core_Base_Spec_Constants.v_WORDSIZE_64_SUB_1_); *) +(* }. *) -#[global] Instance t_From_278670998 : t_From ((t_I16)) ((t_I32)) := - { - From_f_from := fun (x : t_I32)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_Z t_I16) (Abstraction_f_lift (x)); - }. +(* Definition impl_203__BITS : t_U32 := *) +(* U32_U32 (Core_Base_Spec_Constants.v_BITS_64_). *) -#[global] Instance t_From_697572388 : t_From ((t_I64)) ((t_I32)) := - { - From_f_from := fun (x : t_I32)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_Z t_I64) (Abstraction_f_lift (x)); - }. +(* Definition impl_203__WORDSIZE : Core_Base_Spec_Haxint.t_HaxInt := *) +(* Core_Base_Spec_Constants.v_WORDSIZE_64_. *) -#[global] Instance t_From_30146175 : t_From ((t_I128)) ((t_I32)) := - { - From_f_from := fun (x : t_I32)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_Z t_I128) (Abstraction_f_lift (x)); - }. +(* Instance t_Concretization_783203595 : Core_Base_interface_Coerce.t_Concretization ((Core_Base_Spec_Haxint.t_HaxInt)) ((t_U64)) := *) +(* { *) +(* Core_Base_interface_Coerce.Concretization_impl_205__f_concretize := fun (self : Core_Base_Spec_Haxint.t_HaxInt)=> *) +(* U64_U64 (Core_Base_Pos.haxint_rem (self) (Core_Base_Spec_Constants.v_WORDSIZE_64_)); *) +(* }. *) -#[global] Instance t_PartialEq_795859780 : t_PartialEq ((t_I32)) ((t_I32)) := - { - PartialEq_f_eq := fun (self : t_I32) (rhs : t_I32)=> - PartialEq_f_eq (t_PartialEq := _ : t_PartialEq t_Ordering t_Ordering) (z_cmp (Abstraction_f_lift (Clone_f_clone (self))) (Abstraction_f_lift (Clone_f_clone (rhs)))) (Ordering_Equal); - PartialEq_f_ne := fun (self : t_I32) (rhs : t_I32)=> - PartialEq_f_ne (t_PartialEq := _ : t_PartialEq t_Ordering t_Ordering) (z_cmp (Abstraction_f_lift (Clone_f_clone (self))) (Abstraction_f_lift (Clone_f_clone (rhs)))) (Ordering_Equal); - }. +(* Instance t_Clone_826195165 : Core_Clone.t_Clone ((t_U64)) := *) +(* { *) +(* Core_Clone.Clone_impl_226__f_clone := fun (self : t_U64)=> *) +(* U64_U64 (Core_Clone.Clone__f_clone (f_U64_v self)); *) +(* }. *) -#[global] Instance t_PartialOrd_126468614 : t_PartialOrd ((t_I32)) ((t_I32)) := +Record t_U128 : Type := { - PartialOrd_f_partial_cmp := fun (self : t_I32) (rhs : t_I32)=> - Option_Some (z_cmp (Abstraction_f_lift (Clone_f_clone (self))) (Abstraction_f_lift (Clone_f_clone (rhs)))); - PartialOrd_f_lt := fun (self : t_I32) (rhs : t_I32)=> - match z_cmp (Abstraction_f_lift (Clone_f_clone (self))) (Abstraction_f_lift (Clone_f_clone (rhs))) with - | Ordering_Less => - true - | _ => - false - end; - PartialOrd_f_le := fun (self : t_I32) (rhs : t_I32)=> - match z_cmp (Abstraction_f_lift (Clone_f_clone (self))) (Abstraction_f_lift (Clone_f_clone (rhs))) with - | Ordering_Less - | Ordering_Equal => - true - | _ => - false - end; - PartialOrd_f_gt := fun (self : t_I32) (rhs : t_I32)=> - match z_cmp (Abstraction_f_lift (Clone_f_clone (self))) (Abstraction_f_lift (Clone_f_clone (rhs))) with - | Ordering_Greater => - true - | _ => - false - end; - PartialOrd_f_ge := fun (self : t_I32) (rhs : t_I32)=> - match z_cmp (Abstraction_f_lift (Clone_f_clone (self))) (Abstraction_f_lift (Clone_f_clone (rhs))) with - | Ordering_Greater - | Ordering_Equal => - true - | _ => - false - end; + f_U128_v : Core_Base_Spec_Haxint.t_HaxInt; }. -#[global] Instance t_Abstraction_8671741 : t_Abstraction ((t_I16)) := - { - Abstraction_f_AbstractType := t_Z; - Abstraction_f_lift := fun (self : t_I16)=> - I16_f_v self; - }. -#[global] Instance t_From_767089390 : t_From ((t_I8)) ((t_I16)) := - { - From_f_from := fun (x : t_I16)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_Z t_I8) (Abstraction_f_lift (x)); - }. +(* #[export] Instance settable_U128_U128_record : Settable _ := *) +(* settable! (Build_U128_U128_record) . *) -#[global] Instance t_From_339600325 : t_From ((t_I32)) ((t_I16)) := - { - From_f_from := fun (x : t_I16)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_Z t_I32) (Abstraction_f_lift (x)); - }. +(* Instance t_Constants_748983978 : t_Constants ((t_U128)) := *) +(* { *) +(* Core_Base_interface_Int.Constants_impl_175__f_ZERO := U128_U128 (Core_Base_Spec_Haxint.v_HaxInt_ZERO); *) +(* Core_Base_interface_Int.Constants_impl_175__f_ONE := U128_U128 (Core_Base_Spec_Haxint.v_HaxInt_ONE); *) +(* Core_Base_interface_Int.Constants_impl_175__f_MIN := U128_U128 (Core_Base_Spec_Haxint.v_HaxInt_ZERO); *) +(* Core_Base_interface_Int.Constants_impl_175__f_MAX := U128_U128 (Core_Base_Spec_Constants.v_WORDSIZE_128_SUB_1_); *) +(* }. *) -#[global] Instance t_From_929749154 : t_From ((t_I64)) ((t_I16)) := - { - From_f_from := fun (x : t_I16)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_Z t_I64) (Abstraction_f_lift (x)); - }. +(* Definition impl_176__BITS : t_U32 := *) +(* U32_U32 (Core_Base_Spec_Constants.v_BITS_128_). *) -#[global] Instance t_From_366897745 : t_From ((t_I128)) ((t_I16)) := - { - From_f_from := fun (x : t_I16)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_Z t_I128) (Abstraction_f_lift (x)); - }. +(* Definition impl_176__WORDSIZE : Core_Base_Spec_Haxint.t_HaxInt := *) +(* Core_Base_Spec_Constants.v_WORDSIZE_128_. *) -#[global] Instance t_PartialEq_359538097 : t_PartialEq ((t_I16)) ((t_I16)) := - { - PartialEq_f_eq := fun (self : t_I16) (rhs : t_I16)=> - PartialEq_f_eq (t_PartialEq := _ : t_PartialEq t_Ordering t_Ordering) (z_cmp (Abstraction_f_lift (Clone_f_clone (self))) (Abstraction_f_lift (Clone_f_clone (rhs)))) (Ordering_Equal); - PartialEq_f_ne := fun (self : t_I16) (rhs : t_I16)=> - PartialEq_f_ne (t_PartialEq := _ : t_PartialEq t_Ordering t_Ordering) (z_cmp (Abstraction_f_lift (Clone_f_clone (self))) (Abstraction_f_lift (Clone_f_clone (rhs)))) (Ordering_Equal); - }. +(* Instance t_Concretization_775057436 : Core_Base_interface_Coerce.t_Concretization ((Core_Base_Spec_Haxint.t_HaxInt)) ((t_U128)) := *) +(* { *) +(* Core_Base_interface_Coerce.Concretization_impl_178__f_concretize := fun (self : Core_Base_Spec_Haxint.t_HaxInt)=> *) +(* U128_U128 (Core_Base_Pos.haxint_rem (self) (Core_Base_Spec_Constants.v_WORDSIZE_128_)); *) +(* }. *) -#[global] Instance t_PartialOrd_524872806 : t_PartialOrd ((t_I16)) ((t_I16)) := - { - PartialOrd_f_partial_cmp := fun (self : t_I16) (rhs : t_I16)=> - Option_Some (z_cmp (Abstraction_f_lift (Clone_f_clone (self))) (Abstraction_f_lift (Clone_f_clone (rhs)))); - PartialOrd_f_lt := fun (self : t_I16) (rhs : t_I16)=> - match z_cmp (Abstraction_f_lift (Clone_f_clone (self))) (Abstraction_f_lift (Clone_f_clone (rhs))) with - | Ordering_Less => - true - | _ => - false - end; - PartialOrd_f_le := fun (self : t_I16) (rhs : t_I16)=> - match z_cmp (Abstraction_f_lift (Clone_f_clone (self))) (Abstraction_f_lift (Clone_f_clone (rhs))) with - | Ordering_Less - | Ordering_Equal => - true - | _ => - false - end; - PartialOrd_f_gt := fun (self : t_I16) (rhs : t_I16)=> - match z_cmp (Abstraction_f_lift (Clone_f_clone (self))) (Abstraction_f_lift (Clone_f_clone (rhs))) with - | Ordering_Greater => - true - | _ => - false - end; - PartialOrd_f_ge := fun (self : t_I16) (rhs : t_I16)=> - match z_cmp (Abstraction_f_lift (Clone_f_clone (self))) (Abstraction_f_lift (Clone_f_clone (rhs))) with - | Ordering_Greater - | Ordering_Equal => - true - | _ => - false - end; - }. +(* Instance t_Clone_684082468 : Core_Clone.t_Clone ((t_U128)) := *) +(* { *) +(* Core_Clone.Clone_impl_199__f_clone := fun (self : t_U128)=> *) +(* U128_U128 (Core_Clone.Clone__f_clone (f_U128_v self)); *) +(* }. *) -#[global] Instance t_Abstraction_78490685 : t_Abstraction ((t_I8)) := - { - Abstraction_f_AbstractType := t_Z; - Abstraction_f_lift := fun (self : t_I8)=> - I8_f_v self; - }. +(* (* NotImplementedYet *) *) -#[global] Instance t_From_995744130 : t_From ((t_I16)) ((t_I8)) := - { - From_f_from := fun (x : t_I8)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_Z t_I16) (Abstraction_f_lift (x)); - }. +(* (* NotImplementedYet *) *) -#[global] Instance t_From_513826093 : t_From ((t_I32)) ((t_I8)) := - { - From_f_from := fun (x : t_I8)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_Z t_I32) (Abstraction_f_lift (x)); - }. +(* (* NotImplementedYet *) *) -#[global] Instance t_From_843443999 : t_From ((t_I64)) ((t_I8)) := +Record t_I8 : Type := { - From_f_from := fun (x : t_I8)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_Z t_I64) (Abstraction_f_lift (x)); + f_I8_v : Core_Base_Spec_Z.t_Z; }. -#[global] Instance t_From_532428771 : t_From ((t_I128)) ((t_I8)) := - { - From_f_from := fun (x : t_I8)=> - Concretization_f_concretize(t_Concretization := _ : t_Concretization t_Z t_I128) (Abstraction_f_lift (x)); - }. -#[global] Instance t_PartialEq_594648758 : t_PartialEq ((t_I8)) ((t_I8)) := - { - PartialEq_f_eq := fun (self : t_I8) (rhs : t_I8)=> - PartialEq_f_eq (t_PartialEq := _ : t_PartialEq t_Ordering t_Ordering) (z_cmp (Abstraction_f_lift (Clone_f_clone (self))) (Abstraction_f_lift (Clone_f_clone (rhs)))) (Ordering_Equal); - PartialEq_f_ne := fun (self : t_I8) (rhs : t_I8)=> - PartialEq_f_ne (t_PartialEq := _ : t_PartialEq t_Ordering t_Ordering) (z_cmp (Abstraction_f_lift (Clone_f_clone (self))) (Abstraction_f_lift (Clone_f_clone (rhs)))) (Ordering_Equal); - }. +(* #[export] Instance settable_I8_I8_record : Settable _ := *) +(* settable! (Build_I8_I8_record) . *) -#[global] Instance t_PartialOrd_221919414 : t_PartialOrd ((t_I8)) ((t_I8)) := - { - PartialOrd_f_partial_cmp := fun (self : t_I8) (rhs : t_I8)=> - Option_Some (z_cmp (Abstraction_f_lift (Clone_f_clone (self))) (Abstraction_f_lift (Clone_f_clone (rhs)))); - PartialOrd_f_lt := fun (self : t_I8) (rhs : t_I8)=> - match z_cmp (Abstraction_f_lift (Clone_f_clone (self))) (Abstraction_f_lift (Clone_f_clone (rhs))) with - | Ordering_Less => - true - | _ => - false - end; - PartialOrd_f_le := fun (self : t_I8) (rhs : t_I8)=> - match z_cmp (Abstraction_f_lift (Clone_f_clone (self))) (Abstraction_f_lift (Clone_f_clone (rhs))) with - | Ordering_Less - | Ordering_Equal => - true - | _ => - false - end; - PartialOrd_f_gt := fun (self : t_I8) (rhs : t_I8)=> - match z_cmp (Abstraction_f_lift (Clone_f_clone (self))) (Abstraction_f_lift (Clone_f_clone (rhs))) with - | Ordering_Greater => - true - | _ => - false - end; - PartialOrd_f_ge := fun (self : t_I8) (rhs : t_I8)=> - match z_cmp (Abstraction_f_lift (Clone_f_clone (self))) (Abstraction_f_lift (Clone_f_clone (rhs))) with - | Ordering_Greater - | Ordering_Equal => - true - | _ => - false - end; - }. +(* Instance t_Constants_54856411 : t_Constants ((t_I8)) := *) +(* { *) +(* Core_Base_interface_Int.Constants_impl_148__f_ZERO := I8_I8 (Core_Base_Spec_Z.Z_ZERO); *) +(* Core_Base_interface_Int.Constants_impl_148__f_ONE := I8_I8 (Core_Base_Spec_Z.Z_POS (Core_Base_Spec_Binary_Positive.xH)); *) +(* Core_Base_interface_Int.Constants_impl_148__f_MIN := I8_I8 (Core_Base_Spec_Constants.v_NEG_WORDSIZE_8_); *) +(* Core_Base_interface_Int.Constants_impl_148__f_MAX := I8_I8 (Core_Base_Spec_Constants.v_POS_WORDSIZE_8_); *) +(* }. *) -#[global] Instance t_Abstraction_133243863 : t_Abstraction ((t_U128)) := - { - Abstraction_f_AbstractType := t_HaxInt; - Abstraction_f_lift := fun (self : t_U128)=> - U128_f_v self; - }. +(* Definition impl_149__BITS : t_U32 := *) +(* U32_U32 (Core_Base_Spec_Constants.v_BITS_8_). *) -#[global] Instance t_PartialEq_792968920 : t_PartialEq ((t_U128)) ((t_U128)) := - { - PartialEq_f_eq := fun (self : t_U128) (rhs : t_U128)=> - PartialEq_f_eq (t_PartialEq := _ : t_PartialEq t_Ordering t_Ordering) (haxint_cmp (Abstraction_f_lift (Clone_f_clone (self))) (Abstraction_f_lift (Clone_f_clone (rhs)))) (Ordering_Equal); - PartialEq_f_ne := fun (self : t_U128) (rhs : t_U128)=> - PartialEq_f_ne (t_PartialEq := _ : t_PartialEq t_Ordering t_Ordering) (haxint_cmp (Abstraction_f_lift (Clone_f_clone (self))) (Abstraction_f_lift (Clone_f_clone (rhs)))) (Ordering_Equal); - }. +(* Definition impl_149__WORDSIZE : Core_Base_Spec_Haxint.t_HaxInt := *) +(* Core_Base_Spec_Constants.v_WORDSIZE_8_. *) -#[global] Instance t_PartialOrd_168269581 : t_PartialOrd ((t_U128)) ((t_U128)) := - { - PartialOrd_f_partial_cmp := fun (self : t_U128) (rhs : t_U128)=> - Option_Some (haxint_cmp (Abstraction_f_lift (Clone_f_clone (self))) (Abstraction_f_lift (Clone_f_clone (rhs)))); - PartialOrd_f_lt := fun (self : t_U128) (rhs : t_U128)=> - match haxint_cmp (Abstraction_f_lift (Clone_f_clone (self))) (Abstraction_f_lift (Clone_f_clone (rhs))) with - | Ordering_Less => - true - | _ => - false - end; - PartialOrd_f_le := fun (self : t_U128) (rhs : t_U128)=> - match haxint_cmp (Abstraction_f_lift (Clone_f_clone (self))) (Abstraction_f_lift (Clone_f_clone (rhs))) with - | Ordering_Less - | Ordering_Equal => - true - | _ => - false - end; - PartialOrd_f_gt := fun (self : t_U128) (rhs : t_U128)=> - match haxint_cmp (Abstraction_f_lift (Clone_f_clone (self))) (Abstraction_f_lift (Clone_f_clone (rhs))) with - | Ordering_Greater => - true - | _ => - false - end; - PartialOrd_f_ge := fun (self : t_U128) (rhs : t_U128)=> - match haxint_cmp (Abstraction_f_lift (Clone_f_clone (self))) (Abstraction_f_lift (Clone_f_clone (rhs))) with - | Ordering_Greater - | Ordering_Equal => - true - | _ => - false - end; - }. +(* Instance t_Concretization_340267805 : Core_Base_interface_Coerce.t_Concretization ((Core_Base_Spec_Z.t_Z)) ((t_I8)) := *) +(* { *) +(* Core_Base_interface_Coerce.Concretization_impl_151__f_concretize := fun (self : Core_Base_Spec_Z.t_Z)=> *) +(* I8_I8 (self); *) +(* }. *) -#[global] Instance t_Abstraction_219241396 : t_Abstraction ((t_U64)) := - { - Abstraction_f_AbstractType := t_HaxInt; - Abstraction_f_lift := fun (self : t_U64)=> - U64_f_v self; - }. +(* Instance t_Clone_597304004 : Core_Clone.t_Clone ((t_I8)) := *) +(* { *) +(* Core_Clone.Clone_impl_172__f_clone := fun (self : t_I8)=> *) +(* I8_I8 (Core_Clone.Clone__f_clone (f_I8_v self)); *) +(* }. *) -#[global] Instance t_PartialEq_162514109 : t_PartialEq ((t_U64)) ((t_U64)) := +Record t_I16 : Type := { - PartialEq_f_eq := fun (self : t_U64) (rhs : t_U64)=> - PartialEq_f_eq (t_PartialEq := _ : t_PartialEq t_Ordering t_Ordering) (haxint_cmp (Abstraction_f_lift (Clone_f_clone (self))) (Abstraction_f_lift (Clone_f_clone (rhs)))) (Ordering_Equal); - PartialEq_f_ne := fun (self : t_U64) (rhs : t_U64)=> - PartialEq_f_ne (t_PartialEq := _ : t_PartialEq t_Ordering t_Ordering) (haxint_cmp (Abstraction_f_lift (Clone_f_clone (self))) (Abstraction_f_lift (Clone_f_clone (rhs)))) (Ordering_Equal); + f_I16_v : Core_Base_Spec_Z.t_Z; }. -#[global] Instance t_PartialOrd_210240032 : t_PartialOrd ((t_U64)) ((t_U64)) := - { - PartialOrd_f_partial_cmp := fun (self : t_U64) (rhs : t_U64)=> - Option_Some (haxint_cmp (Abstraction_f_lift (Clone_f_clone (self))) (Abstraction_f_lift (Clone_f_clone (rhs)))); - PartialOrd_f_lt := fun (self : t_U64) (rhs : t_U64)=> - match haxint_cmp (Abstraction_f_lift (Clone_f_clone (self))) (Abstraction_f_lift (Clone_f_clone (rhs))) with - | Ordering_Less => - true - | _ => - false - end; - PartialOrd_f_le := fun (self : t_U64) (rhs : t_U64)=> - match haxint_cmp (Abstraction_f_lift (Clone_f_clone (self))) (Abstraction_f_lift (Clone_f_clone (rhs))) with - | Ordering_Less - | Ordering_Equal => - true - | _ => - false - end; - PartialOrd_f_gt := fun (self : t_U64) (rhs : t_U64)=> - match haxint_cmp (Abstraction_f_lift (Clone_f_clone (self))) (Abstraction_f_lift (Clone_f_clone (rhs))) with - | Ordering_Greater => - true - | _ => - false - end; - PartialOrd_f_ge := fun (self : t_U64) (rhs : t_U64)=> - match haxint_cmp (Abstraction_f_lift (Clone_f_clone (self))) (Abstraction_f_lift (Clone_f_clone (rhs))) with - | Ordering_Greater - | Ordering_Equal => - true - | _ => - false - end; - }. -#[global] Instance t_Abstraction_517050128 : t_Abstraction ((t_U32)) := - { - Abstraction_f_AbstractType := t_HaxInt; - Abstraction_f_lift := fun (self : t_U32)=> - U32_f_v self; - }. +(* #[export] Instance settable_I16_I16_record : Settable _ := *) +(* settable! (Build_I16_I16_record) . *) -#[global] Instance t_PartialEq_894496962 : t_PartialEq ((t_U32)) ((t_U32)) := - { - PartialEq_f_eq := fun (self : t_U32) (rhs : t_U32)=> - PartialEq_f_eq (t_PartialEq := _ : t_PartialEq t_Ordering t_Ordering) (haxint_cmp (Abstraction_f_lift (Clone_f_clone (self))) (Abstraction_f_lift (Clone_f_clone (rhs)))) (Ordering_Equal); - PartialEq_f_ne := fun (self : t_U32) (rhs : t_U32)=> - PartialEq_f_ne (t_PartialEq := _ : t_PartialEq t_Ordering t_Ordering) (haxint_cmp (Abstraction_f_lift (Clone_f_clone (self))) (Abstraction_f_lift (Clone_f_clone (rhs)))) (Ordering_Equal); - }. +(* Instance t_Constants_583718827 : t_Constants ((t_I16)) := *) +(* { *) +(* Core_Base_interface_Int.Constants_impl_121__f_ZERO := I16_I16 (Core_Base_Spec_Z.Z_ZERO); *) +(* Core_Base_interface_Int.Constants_impl_121__f_ONE := I16_I16 (Core_Base_Spec_Z.Z_POS (Core_Base_Spec_Binary_Positive.xH)); *) +(* Core_Base_interface_Int.Constants_impl_121__f_MIN := I16_I16 (Core_Base_Spec_Constants.v_NEG_WORDSIZE_16_); *) +(* Core_Base_interface_Int.Constants_impl_121__f_MAX := I16_I16 (Core_Base_Spec_Constants.v_POS_WORDSIZE_16_); *) +(* }. *) -#[global] Instance t_PartialOrd_534404445 : t_PartialOrd ((t_U32)) ((t_U32)) := - { - PartialOrd_f_partial_cmp := fun (self : t_U32) (rhs : t_U32)=> - Option_Some (haxint_cmp (Abstraction_f_lift (Clone_f_clone (self))) (Abstraction_f_lift (Clone_f_clone (rhs)))); - PartialOrd_f_lt := fun (self : t_U32) (rhs : t_U32)=> - match haxint_cmp (Abstraction_f_lift (Clone_f_clone (self))) (Abstraction_f_lift (Clone_f_clone (rhs))) with - | Ordering_Less => - true - | _ => - false - end; - PartialOrd_f_le := fun (self : t_U32) (rhs : t_U32)=> - match haxint_cmp (Abstraction_f_lift (Clone_f_clone (self))) (Abstraction_f_lift (Clone_f_clone (rhs))) with - | Ordering_Less - | Ordering_Equal => - true - | _ => - false - end; - PartialOrd_f_gt := fun (self : t_U32) (rhs : t_U32)=> - match haxint_cmp (Abstraction_f_lift (Clone_f_clone (self))) (Abstraction_f_lift (Clone_f_clone (rhs))) with - | Ordering_Greater => - true - | _ => - false - end; - PartialOrd_f_ge := fun (self : t_U32) (rhs : t_U32)=> - match haxint_cmp (Abstraction_f_lift (Clone_f_clone (self))) (Abstraction_f_lift (Clone_f_clone (rhs))) with - | Ordering_Greater - | Ordering_Equal => - true - | _ => - false - end; - }. +(* Definition impl_122__BITS : t_U32 := *) +(* U32_U32 (Core_Base_Spec_Constants.v_BITS_16_). *) -#[global] Instance t_Abstraction_994821584 : t_Abstraction ((t_U16)) := - { - Abstraction_f_AbstractType := t_HaxInt; - Abstraction_f_lift := fun (self : t_U16)=> - U16_f_v self; - }. +(* Definition impl_122__WORDSIZE : Core_Base_Spec_Haxint.t_HaxInt := *) +(* Core_Base_Spec_Constants.v_WORDSIZE_16_. *) -#[global] Instance t_PartialEq_603208302 : t_PartialEq ((t_U16)) ((t_U16)) := - { - PartialEq_f_eq := fun (self : t_U16) (rhs : t_U16)=> - PartialEq_f_eq (t_PartialEq := _ : t_PartialEq t_Ordering t_Ordering) (haxint_cmp (Abstraction_f_lift (Clone_f_clone (self))) (Abstraction_f_lift (Clone_f_clone (rhs)))) (Ordering_Equal); - PartialEq_f_ne := fun (self : t_U16) (rhs : t_U16)=> - PartialEq_f_ne (t_PartialEq := _ : t_PartialEq t_Ordering t_Ordering) (haxint_cmp (Abstraction_f_lift (Clone_f_clone (self))) (Abstraction_f_lift (Clone_f_clone (rhs)))) (Ordering_Equal); - }. +(* Instance t_Concretization_797165207 : Core_Base_interface_Coerce.t_Concretization ((Core_Base_Spec_Z.t_Z)) ((t_I16)) := *) +(* { *) +(* Core_Base_interface_Coerce.Concretization_impl_124__f_concretize := fun (self : Core_Base_Spec_Z.t_Z)=> *) +(* I16_I16 (self); *) +(* }. *) -#[global] Instance t_PartialOrd_595325431 : t_PartialOrd ((t_U16)) ((t_U16)) := - { - PartialOrd_f_partial_cmp := fun (self : t_U16) (rhs : t_U16)=> - Option_Some (haxint_cmp (Abstraction_f_lift (Clone_f_clone (self))) (Abstraction_f_lift (Clone_f_clone (rhs)))); - PartialOrd_f_lt := fun (self : t_U16) (rhs : t_U16)=> - match haxint_cmp (Abstraction_f_lift (Clone_f_clone (self))) (Abstraction_f_lift (Clone_f_clone (rhs))) with - | Ordering_Less => - true - | _ => - false - end; - PartialOrd_f_le := fun (self : t_U16) (rhs : t_U16)=> - match haxint_cmp (Abstraction_f_lift (Clone_f_clone (self))) (Abstraction_f_lift (Clone_f_clone (rhs))) with - | Ordering_Less - | Ordering_Equal => - true - | _ => - false - end; - PartialOrd_f_gt := fun (self : t_U16) (rhs : t_U16)=> - match haxint_cmp (Abstraction_f_lift (Clone_f_clone (self))) (Abstraction_f_lift (Clone_f_clone (rhs))) with - | Ordering_Greater => - true - | _ => - false - end; - PartialOrd_f_ge := fun (self : t_U16) (rhs : t_U16)=> - match haxint_cmp (Abstraction_f_lift (Clone_f_clone (self))) (Abstraction_f_lift (Clone_f_clone (rhs))) with - | Ordering_Greater - | Ordering_Equal => - true - | _ => - false - end; - }. +(* Instance t_Clone_348968053 : Core_Clone.t_Clone ((t_I16)) := *) +(* { *) +(* Core_Clone.Clone_impl_145__f_clone := fun (self : t_I16)=> *) +(* I16_I16 (Core_Clone.Clone__f_clone (f_I16_v self)); *) +(* }. *) -#[global] Instance t_Abstraction_789996186 : t_Abstraction ((t_U8)) := +Record t_I32 : Type := { - Abstraction_f_AbstractType := t_HaxInt; - Abstraction_f_lift := fun (self : t_U8)=> - U8_f_v self; + f_I32_v : Core_Base_Spec_Z.t_Z; }. -#[global] Instance t_PartialEq_774173636 : t_PartialEq ((t_U8)) ((t_U8)) := - { - PartialEq_f_eq := fun (self : t_U8) (rhs : t_U8)=> - PartialEq_f_eq (t_PartialEq := _ : t_PartialEq t_Ordering t_Ordering) (haxint_cmp (Abstraction_f_lift (Clone_f_clone (self))) (Abstraction_f_lift (Clone_f_clone (rhs)))) (Ordering_Equal); - PartialEq_f_ne := fun (self : t_U8) (rhs : t_U8)=> - PartialEq_f_ne (t_PartialEq := _ : t_PartialEq t_Ordering t_Ordering) (haxint_cmp (Abstraction_f_lift (Clone_f_clone (self))) (Abstraction_f_lift (Clone_f_clone (rhs)))) (Ordering_Equal); - }. -#[global] Instance t_PartialOrd_577399304 : t_PartialOrd ((t_U8)) ((t_U8)) := - { - PartialOrd_f_partial_cmp := fun (self : t_U8) (rhs : t_U8)=> - Option_Some (haxint_cmp (Abstraction_f_lift (Clone_f_clone (self))) (Abstraction_f_lift (Clone_f_clone (rhs)))); - PartialOrd_f_lt := fun (self : t_U8) (rhs : t_U8)=> - match haxint_cmp (Abstraction_f_lift (Clone_f_clone (self))) (Abstraction_f_lift (Clone_f_clone (rhs))) with - | Ordering_Less => - true - | _ => - false - end; - PartialOrd_f_le := fun (self : t_U8) (rhs : t_U8)=> - match haxint_cmp (Abstraction_f_lift (Clone_f_clone (self))) (Abstraction_f_lift (Clone_f_clone (rhs))) with - | Ordering_Less - | Ordering_Equal => - true - | _ => - false - end; - PartialOrd_f_gt := fun (self : t_U8) (rhs : t_U8)=> - match haxint_cmp (Abstraction_f_lift (Clone_f_clone (self))) (Abstraction_f_lift (Clone_f_clone (rhs))) with - | Ordering_Greater => - true - | _ => - false - end; - PartialOrd_f_ge := fun (self : t_U8) (rhs : t_U8)=> - match haxint_cmp (Abstraction_f_lift (Clone_f_clone (self))) (Abstraction_f_lift (Clone_f_clone (rhs))) with - | Ordering_Greater - | Ordering_Equal => - true - | _ => - false - end; - }. +(* #[export] Instance settable_I32_I32_record : Settable _ := *) +(* settable! (Build_I32_I32_record) . *) -#[global] Instance t_Neg_375517228 : t_Neg ((t_I128)) := - { - Neg_f_Output := t_I128; - Neg_f_neg := fun (self : t_I128)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_Z t_I128) (z_neg (Abstraction_f_lift (self))); - }. +(* Instance t_Constants_346540654 : t_Constants ((t_I32)) := *) +(* { *) +(* Core_Base_interface_Int.Constants_impl_94__f_ZERO := I32_I32 (Core_Base_Spec_Z.Z_ZERO); *) +(* Core_Base_interface_Int.Constants_impl_94__f_ONE := I32_I32 (Core_Base_Spec_Z.Z_POS (Core_Base_Spec_Binary_Positive.xH)); *) +(* Core_Base_interface_Int.Constants_impl_94__f_MIN := I32_I32 (Core_Base_Spec_Constants.v_NEG_WORDSIZE_32_); *) +(* Core_Base_interface_Int.Constants_impl_94__f_MAX := I32_I32 (Core_Base_Spec_Constants.v_POS_WORDSIZE_32_); *) +(* }. *) -#[global] Instance t_BitOr_938342430 : t_BitOr ((t_I128)) ((t_I128)) := - { - BitOr_f_Output := t_I128; - BitOr_f_bitor := fun (self : t_I128) (rhs : t_I128)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_Z t_I128) (z_bitor (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. +(* Definition impl_95__BITS : t_U32 := *) +(* U32_U32 (Core_Base_Spec_Constants.v_BITS_32_). *) -#[global] Instance t_Neg_210530286 : t_Neg ((t_I64)) := - { - Neg_f_Output := t_I64; - Neg_f_neg := fun (self : t_I64)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_Z t_I64) (z_neg (Abstraction_f_lift (self))); - }. +(* Definition impl_95__WORDSIZE : Core_Base_Spec_Haxint.t_HaxInt := *) +(* Core_Base_Spec_Constants.v_WORDSIZE_32_. *) -#[global] Instance t_BitOr_329754853 : t_BitOr ((t_I64)) ((t_I64)) := - { - BitOr_f_Output := t_I64; - BitOr_f_bitor := fun (self : t_I64) (rhs : t_I64)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_Z t_I64) (z_bitor (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. +(* Instance t_Concretization_142931371 : Core_Base_interface_Coerce.t_Concretization ((Core_Base_Spec_Z.t_Z)) ((t_I32)) := *) +(* { *) +(* Core_Base_interface_Coerce.Concretization_impl_97__f_concretize := fun (self : Core_Base_Spec_Z.t_Z)=> *) +(* I32_I32 (self); *) +(* }. *) -#[global] Instance t_Neg_104016941 : t_Neg ((t_I32)) := - { - Neg_f_Output := t_I32; - Neg_f_neg := fun (self : t_I32)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_Z t_I32) (z_neg (Abstraction_f_lift (self))); - }. +(* Instance t_Clone_552196451 : Core_Clone.t_Clone ((t_I32)) := *) +(* { *) +(* Core_Clone.Clone_impl_118__f_clone := fun (self : t_I32)=> *) +(* I32_I32 (Core_Clone.Clone__f_clone (f_I32_v self)); *) +(* }. *) -#[global] Instance t_BitOr_840483685 : t_BitOr ((t_I32)) ((t_I32)) := +Record t_I64 : Type := { - BitOr_f_Output := t_I32; - BitOr_f_bitor := fun (self : t_I32) (rhs : t_I32)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_Z t_I32) (z_bitor (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); + f_I64_v : Core_Base_Spec_Z.t_Z; }. -#[global] Instance t_Neg_1063990797 : t_Neg ((t_I16)) := - { - Neg_f_Output := t_I16; - Neg_f_neg := fun (self : t_I16)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_Z t_I16) (z_neg (Abstraction_f_lift (self))); - }. -#[global] Instance t_BitOr_450806124 : t_BitOr ((t_I16)) ((t_I16)) := - { - BitOr_f_Output := t_I16; - BitOr_f_bitor := fun (self : t_I16) (rhs : t_I16)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_Z t_I16) (z_bitor (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. +(* #[export] Instance settable_I64_I64_record : Settable _ := *) +(* settable! (Build_I64_I64_record) . *) -#[global] Instance t_Neg_979719905 : t_Neg ((t_I8)) := - { - Neg_f_Output := t_I8; - Neg_f_neg := fun (self : t_I8)=> - Concretization_f_concretize (z_neg (Abstraction_f_lift (self))); - }. +(* Instance t_Constants_545287357 : t_Constants ((t_I64)) := *) +(* { *) +(* Core_Base_interface_Int.Constants_impl_67__f_ZERO := I64_I64 (Core_Base_Spec_Z.Z_ZERO); *) +(* Core_Base_interface_Int.Constants_impl_67__f_ONE := I64_I64 (Core_Base_Spec_Z.Z_POS (Core_Base_Spec_Binary_Positive.xH)); *) +(* Core_Base_interface_Int.Constants_impl_67__f_MIN := I64_I64 (Core_Base_Spec_Constants.v_NEG_WORDSIZE_64_); *) +(* Core_Base_interface_Int.Constants_impl_67__f_MAX := I64_I64 (Core_Base_Spec_Constants.v_POS_WORDSIZE_64_); *) +(* }. *) -#[global] Instance t_BitOr_828862178 : t_BitOr ((t_I8)) ((t_I8)) := - { - BitOr_f_Output := t_I8; - BitOr_f_bitor := fun (self : t_I8) (rhs : t_I8)=> - Concretization_f_concretize (z_bitor (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. +(* Definition impl_68__BITS : t_U32 := *) +(* U32_U32 (Core_Base_Spec_Constants.v_BITS_64_). *) -#[global] Instance t_Add_749575336 : t_Add ((t_I128)) ((t_I128)) := - { - Add_f_Output := t_I128; - Add_f_add := fun (self : t_I128) (rhs : t_I128)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_Z t_I128) (z_add (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. +(* Definition impl_68__WORDSIZE : Core_Base_Spec_Haxint.t_HaxInt := *) +(* Core_Base_Spec_Constants.v_WORDSIZE_64_. *) -#[global] Instance t_Sub_800692471 : t_Sub ((t_I128)) ((t_I128)) := - { - Sub_f_Output := t_I128; - Sub_f_sub := fun (self : t_I128) (rhs : t_I128)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_Z t_I128) (z_sub (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. +(* Instance t_Concretization_181371139 : Core_Base_interface_Coerce.t_Concretization ((Core_Base_Spec_Z.t_Z)) ((t_I64)) := *) +(* { *) +(* Core_Base_interface_Coerce.Concretization_impl_70__f_concretize := fun (self : Core_Base_Spec_Z.t_Z)=> *) +(* I64_I64 (self); *) +(* }. *) -#[global] Instance t_Add_87367909 : t_Add ((t_I64)) ((t_I64)) := - { - Add_f_Output := t_I64; - Add_f_add := fun (self : t_I64) (rhs : t_I64)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_Z t_I64) (z_add (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. +(* Instance t_Clone_301990294 : Core_Clone.t_Clone ((t_I64)) := *) +(* { *) +(* Core_Clone.Clone_impl_91__f_clone := fun (self : t_I64)=> *) +(* I64_I64 (Core_Clone.Clone__f_clone (f_I64_v self)); *) +(* }. *) -#[global] Instance t_Sub_741383133 : t_Sub ((t_I64)) ((t_I64)) := +Record t_I128 : Type := { - Sub_f_Output := t_I64; - Sub_f_sub := fun (self : t_I64) (rhs : t_I64)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_Z t_I64) (z_sub (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Add_574043038 : t_Add ((t_I32)) ((t_I32)) := - { - Add_f_Output := t_I32; - Add_f_add := fun (self : t_I32) (rhs : t_I32)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_Z t_I32) (z_add (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Sub_699874712 : t_Sub ((t_I32)) ((t_I32)) := - { - Sub_f_Output := t_I32; - Sub_f_sub := fun (self : t_I32) (rhs : t_I32)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_Z t_I32) (z_sub (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Add_413164706 : t_Add ((t_I16)) ((t_I16)) := - { - Add_f_Output := t_I16; - Add_f_add := fun (self : t_I16) (rhs : t_I16)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_Z t_I16) (z_add (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Sub_544358249 : t_Sub ((t_I16)) ((t_I16)) := - { - Sub_f_Output := t_I16; - Sub_f_sub := fun (self : t_I16) (rhs : t_I16)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_Z t_I16) (z_sub (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Add_335735231 : t_Add ((t_I8)) ((t_I8)) := - { - Add_f_Output := t_I8; - Add_f_add := fun (self : t_I8) (rhs : t_I8)=> - Concretization_f_concretize (z_add (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Sub_257575332 : t_Sub ((t_I8)) ((t_I8)) := - { - Sub_f_Output := t_I8; - Sub_f_sub := fun (self : t_I8) (rhs : t_I8)=> - Concretization_f_concretize (z_sub (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Concretization_943450188 : t_Concretization ((t_HaxInt)) ((t_U128)) := - { - Concretization_f_concretize := fun (self : t_HaxInt)=> - Build_t_U128 (haxint_rem (self) (v_WORDSIZE_128_)); - }. - -#[global] Instance t_From_355161674 : t_From ((t_U128)) ((t_U8)) := - { - From_f_from := fun (x : t_U8)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_HaxInt t_U128) (Abstraction_f_lift (x)); - }. - -#[global] Instance t_From_739905379 : t_From ((t_U128)) ((t_U16)) := - { - From_f_from := fun (x : t_U16)=> - Concretization_f_concretize(t_Concretization := _ : t_Concretization t_HaxInt t_U128) (Abstraction_f_lift (x)); - }. - -#[global] Instance t_From_487010006 : t_From ((t_U128)) ((t_U32)) := - { - From_f_from := fun (x : t_U32)=> - Concretization_f_concretize(t_Concretization := _ : t_Concretization t_HaxInt t_U128) (Abstraction_f_lift (x)); - }. - -#[global] Instance t_From_665417617 : t_From ((t_U128)) ((t_U64)) := - { - From_f_from := fun (x : t_U64)=> - Concretization_f_concretize(t_Concretization := _ : t_Concretization t_HaxInt t_U128) (Abstraction_f_lift (x)); - }. - -#[global] Instance t_Concretization_10977439 : t_Concretization ((t_HaxInt)) ((t_U64)) := - { - Concretization_f_concretize := fun (self : t_HaxInt)=> - Build_t_U64 (haxint_rem (self) (v_WORDSIZE_64_)); - }. - -#[global] Instance t_From_746191059 : t_From ((t_U64)) ((t_U8)) := - { - From_f_from := fun (x : t_U8)=> - Concretization_f_concretize(t_Concretization := _ : t_Concretization t_HaxInt t_U64) (Abstraction_f_lift (x)); - }. - -#[global] Instance t_From_598353876 : t_From ((t_U64)) ((t_U16)) := - { - From_f_from := fun (x : t_U16)=> - Concretization_f_concretize(t_Concretization := _ : t_Concretization t_HaxInt t_U64) (Abstraction_f_lift (x)); - }. - -#[global] Instance t_From_293255347 : t_From ((t_U64)) ((t_U32)) := - { - From_f_from := fun (x : t_U32)=> - Concretization_f_concretize(t_Concretization := _ : t_Concretization t_HaxInt t_U64) (Abstraction_f_lift (x)); - }. - -#[global] Instance t_From_478031507 : t_From ((t_U64)) ((t_U128)) := - { - From_f_from := fun (x : t_U128)=> - Concretization_f_concretize(t_Concretization := _ : t_Concretization t_HaxInt t_U64) (Abstraction_f_lift (x)); - }. - -#[global] Instance t_Concretization_264065114 : t_Concretization ((t_HaxInt)) ((t_U32)) := - { - Concretization_f_concretize := fun (self : t_HaxInt)=> - Build_t_U32 (haxint_rem (self) (v_WORDSIZE_32_)); - }. - -#[global] Instance t_From_675834555 : t_From ((t_U32)) ((t_U8)) := - { - From_f_from := fun (x : t_U8)=> - Concretization_f_concretize(t_Concretization := _ : t_Concretization t_HaxInt t_U32) (Abstraction_f_lift (x)); - }. - -#[global] Instance t_From_410569540 : t_From ((t_U32)) ((t_U16)) := - { - From_f_from := fun (x : t_U16)=> - Concretization_f_concretize(t_Concretization := _ : t_Concretization t_HaxInt t_U32) (Abstraction_f_lift (x)); - }. - -#[global] Instance t_From_616913228 : t_From ((t_U32)) ((t_U64)) := - { - From_f_from := fun (x : t_U64)=> - Concretization_f_concretize(t_Concretization := _ : t_Concretization t_HaxInt t_U32) (Abstraction_f_lift (x)); - }. - -#[global] Instance t_From_376625380 : t_From ((t_U32)) ((t_U128)) := - { - From_f_from := fun (x : t_U128)=> - Concretization_f_concretize(t_Concretization := _ : t_Concretization t_HaxInt t_U32) (Abstraction_f_lift (x)); - }. - -#[global] Instance t_Concretization_656994795 : t_Concretization ((t_HaxInt)) ((t_U16)) := - { - Concretization_f_concretize := fun (self : t_HaxInt)=> - Build_t_U16 (haxint_rem (self) (v_WORDSIZE_16_)); - }. - -#[global] Instance t_From_352276566 : t_From ((t_U16)) ((t_U8)) := - { - From_f_from := fun (x : t_U8)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_HaxInt t_U16) (Abstraction_f_lift (x)); - }. - -#[global] Instance t_From_699842532 : t_From ((t_U16)) ((t_U32)) := - { - From_f_from := fun (x : t_U32)=> - Concretization_f_concretize(t_Concretization := _ : t_Concretization t_HaxInt t_U16) (Abstraction_f_lift (x)); - }. - -#[global] Instance t_From_326646767 : t_From ((t_U16)) ((t_U64)) := - { - From_f_from := fun (x : t_U64)=> - Concretization_f_concretize(t_Concretization := _ : t_Concretization t_HaxInt t_U16) (Abstraction_f_lift (x)); - }. - -#[global] Instance t_From_604186294 : t_From ((t_U16)) ((t_U128)) := - { - From_f_from := fun (x : t_U128)=> - Concretization_f_concretize(t_Concretization := _ : t_Concretization t_HaxInt t_U16) (Abstraction_f_lift (x)); - }. - -#[global] Instance t_Concretization_492312374 : t_Concretization ((t_HaxInt)) ((t_U8)) := - { - Concretization_f_concretize := fun (self : t_HaxInt)=> - Build_t_U8 (haxint_rem (self) (v_WORDSIZE_8_)); - }. - -#[global] Instance t_From_374313775 : t_From ((t_U8)) ((t_U16)) := - { - From_f_from := fun (x : t_U16)=> - Concretization_f_concretize(t_Concretization := _ : t_Concretization t_HaxInt t_U8) (Abstraction_f_lift (x)); - }. - -#[global] Instance t_From_42776580 : t_From ((t_U8)) ((t_U32)) := - { - From_f_from := fun (x : t_U32)=> - Concretization_f_concretize(t_Concretization := _ : t_Concretization t_HaxInt t_U8) (Abstraction_f_lift (x)); - }. - -#[global] Instance t_From_480314375 : t_From ((t_U8)) ((t_U64)) := - { - From_f_from := fun (x : t_U64)=> - Concretization_f_concretize(t_Concretization := _ : t_Concretization t_HaxInt t_U8) (Abstraction_f_lift (x)); - }. - -#[global] Instance t_From_135782329 : t_From ((t_U8)) ((t_U128)) := - { - From_f_from := fun (x : t_U128)=> - Concretization_f_concretize(t_Concretization := _ : t_Concretization t_HaxInt t_U8) (Abstraction_f_lift (x)); - }. - -#[global] Instance t_Mul_180009375 : t_Mul ((t_I128)) ((t_I128)) := - { - Mul_f_Output := t_I128; - Mul_f_mul := fun (self : t_I128) (rhs : t_I128)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_Z t_I128) (z_mul (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Mul_1051209688 : t_Mul ((t_I64)) ((t_I64)) := - { - Mul_f_Output := t_I64; - Mul_f_mul := fun (self : t_I64) (rhs : t_I64)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_Z t_I64) (z_mul (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Mul_481497752 : t_Mul ((t_I32)) ((t_I32)) := - { - Mul_f_Output := t_I32; - Mul_f_mul := fun (self : t_I32) (rhs : t_I32)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_Z t_I32) (z_mul (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Mul_768005208 : t_Mul ((t_I16)) ((t_I16)) := - { - Mul_f_Output := t_I16; - Mul_f_mul := fun (self : t_I16) (rhs : t_I16)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_Z t_I16) (z_mul (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Mul_1057691929 : t_Mul ((t_I8)) ((t_I8)) := - { - Mul_f_Output := t_I8; - Mul_f_mul := fun (self : t_I8) (rhs : t_I8)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_Z t_I8) (z_mul (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Neg_200638412 : t_Neg ((t_U128)) := - { - Neg_f_Output := t_U128; - Neg_f_neg := fun (self : t_U128)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_HaxInt t_U128) (haxint_sub (v_WORDSIZE_128_) (haxint_rem (Abstraction_f_lift (self)) (v_WORDSIZE_128_))); - }. - -#[global] Instance t_Mul_508073751 : t_Mul ((t_U128)) ((t_U128)) := - { - Mul_f_Output := t_U128; - Mul_f_mul := fun (self : t_U128) (rhs : t_U128)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_HaxInt t_U128) (haxint_mul (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Rem_184769952 : t_Rem ((t_U128)) ((t_U128)) := - { - Rem_f_Output := t_U128; - Rem_f_rem := fun (self : t_U128) (rhs : t_U128)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_HaxInt t_U128) (haxint_rem (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Add_74062568 : t_Add ((t_U128)) ((t_U128)) := - { - Add_f_Output := t_U128; - Add_f_add := fun (self : t_U128) (rhs : t_U128)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_HaxInt t_U128) (haxint_add (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Div_697142148 : t_Div ((t_U128)) ((t_U128)) := - { - Div_f_Output := t_U128; - Div_f_div := fun (self : t_U128) (rhs : t_U128)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_HaxInt t_U128) (haxint_div (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Shl_912131656 : t_Shl ((t_U128)) ((t_U8)) := - { - Shl_f_Output := t_U128; - Shl_f_shl := fun (self : t_U128) (rhs : t_U8)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_HaxInt t_U128) (haxint_shl (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Shl_188720840 : t_Shl ((t_U128)) ((t_U16)) := - { - Shl_f_Output := t_U128; - Shl_f_shl := fun (self : t_U128) (rhs : t_U16)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_HaxInt t_U128) (haxint_shl (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Shl_674581806 : t_Shl ((t_U128)) ((t_U32)) := - { - Shl_f_Output := t_U128; - Shl_f_shl := fun (self : t_U128) (rhs : t_U32)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_HaxInt t_U128) (haxint_shl (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Shl_230523808 : t_Shl ((t_U128)) ((t_U64)) := - { - Shl_f_Output := t_U128; - Shl_f_shl := fun (self : t_U128) (rhs : t_U64)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_HaxInt t_U128) (haxint_shl (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Shl_304350501 : t_Shl ((t_U128)) ((t_U128)) := - { - Shl_f_Output := t_U128; - Shl_f_shl := fun (self : t_U128) (rhs : t_U128)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_HaxInt t_U128) (haxint_shl (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Shr_584068908 : t_Shr ((t_U128)) ((t_U8)) := - { - Shr_f_Output := t_U128; - Shr_f_shr := fun (self : t_U128) (rhs : t_U8)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_HaxInt t_U128) (haxint_shr (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Shr_73833277 : t_Shr ((t_U128)) ((t_U16)) := - { - Shr_f_Output := t_U128; - Shr_f_shr := fun (self : t_U128) (rhs : t_U16)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_HaxInt t_U128) (haxint_shr (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Shr_50912121 : t_Shr ((t_U128)) ((t_U32)) := - { - Shr_f_Output := t_U128; - Shr_f_shr := fun (self : t_U128) (rhs : t_U32)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_HaxInt t_U128) (haxint_shr (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Shr_282345299 : t_Shr ((t_U128)) ((t_U64)) := - { - Shr_f_Output := t_U128; - Shr_f_shr := fun (self : t_U128) (rhs : t_U64)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_HaxInt t_U128) (haxint_shr (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Shr_354892033 : t_Shr ((t_U128)) ((t_U128)) := - { - Shr_f_Output := t_U128; - Shr_f_shr := fun (self : t_U128) (rhs : t_U128)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_HaxInt t_U128) (haxint_shr (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_BitXor_457452962 : t_BitXor ((t_U128)) ((t_U128)) := - { - BitXor_f_Output := t_U128; - BitXor_f_bitxor := fun (self : t_U128) (rhs : t_U128)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_HaxInt t_U128) (haxint_bitxor (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_BitAnd_499214249 : t_BitAnd ((t_U128)) ((t_U128)) := - { - BitAnd_f_Output := t_U128; - BitAnd_f_bitand := fun (self : t_U128) (rhs : t_U128)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_HaxInt t_U128) (haxint_bitand (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_BitOr_579754702 : t_BitOr ((t_U128)) ((t_U128)) := - { - BitOr_f_Output := t_U128; - BitOr_f_bitor := fun (self : t_U128) (rhs : t_U128)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_HaxInt t_U128) (haxint_bitor (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Neg_338880159 : t_Neg ((t_U64)) := - { - Neg_f_Output := t_U64; - Neg_f_neg := fun (self : t_U64)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_HaxInt t_U64) (haxint_sub (v_WORDSIZE_64_) (haxint_rem (Abstraction_f_lift (self)) (v_WORDSIZE_64_))); - }. - -#[global] Instance t_Mul_785129859 : t_Mul ((t_U64)) ((t_U64)) := - { - Mul_f_Output := t_U64; - Mul_f_mul := fun (self : t_U64) (rhs : t_U64)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_HaxInt t_U64) (haxint_mul (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Rem_450198244 : t_Rem ((t_U64)) ((t_U64)) := - { - Rem_f_Output := t_U64; - Rem_f_rem := fun (self : t_U64) (rhs : t_U64)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_HaxInt t_U64) (haxint_rem (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Add_880469818 : t_Add ((t_U64)) ((t_U64)) := - { - Add_f_Output := t_U64; - Add_f_add := fun (self : t_U64) (rhs : t_U64)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_HaxInt t_U64) (haxint_add (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Div_1065913959 : t_Div ((t_U64)) ((t_U64)) := - { - Div_f_Output := t_U64; - Div_f_div := fun (self : t_U64) (rhs : t_U64)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_HaxInt t_U64) (haxint_div (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Shl_307107617 : t_Shl ((t_U64)) ((t_U8)) := - { - Shl_f_Output := t_U64; - Shl_f_shl := fun (self : t_U64) (rhs : t_U8)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_HaxInt t_U64 )(haxint_shl (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Shl_521831749 : t_Shl ((t_U64)) ((t_U16)) := - { - Shl_f_Output := t_U64; - Shl_f_shl := fun (self : t_U64) (rhs : t_U16)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_HaxInt t_U64) (haxint_shl (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Shl_243646433 : t_Shl ((t_U64)) ((t_U32)) := - { - Shl_f_Output := t_U64; - Shl_f_shl := fun (self : t_U64) (rhs : t_U32)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_HaxInt t_U64) (haxint_shl (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Shl_732371970 : t_Shl ((t_U64)) ((t_U64)) := - { - Shl_f_Output := t_U64; - Shl_f_shl := fun (self : t_U64) (rhs : t_U64)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_HaxInt t_U64) (haxint_shl (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Shl_362455113 : t_Shl ((t_U64)) ((t_U128)) := - { - Shl_f_Output := t_U64; - Shl_f_shl := fun (self : t_U64) (rhs : t_U128)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_HaxInt t_U64) (haxint_shl (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Shr_675607391 : t_Shr ((t_U64)) ((t_U8)) := - { - Shr_f_Output := t_U64; - Shr_f_shr := fun (self : t_U64) (rhs : t_U8)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_HaxInt t_U64) (haxint_shr (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Shr_163042579 : t_Shr ((t_U64)) ((t_U16)) := - { - Shr_f_Output := t_U64; - Shr_f_shr := fun (self : t_U64) (rhs : t_U16)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_HaxInt t_U64) (haxint_shr (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Shr_329072619 : t_Shr ((t_U64)) ((t_U32)) := - { - Shr_f_Output := t_U64; - Shr_f_shr := fun (self : t_U64) (rhs : t_U32)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_HaxInt t_U64) (haxint_shr (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Shr_1046321056 : t_Shr ((t_U64)) ((t_U64)) := - { - Shr_f_Output := t_U64; - Shr_f_shr := fun (self : t_U64) (rhs : t_U64)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_HaxInt t_U64) (haxint_shr (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Shr_1027159812 : t_Shr ((t_U64)) ((t_U128)) := - { - Shr_f_Output := t_U64; - Shr_f_shr := fun (self : t_U64) (rhs : t_U128)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_HaxInt t_U64) (haxint_shr (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_BitXor_771705591 : t_BitXor ((t_U64)) ((t_U64)) := - { - BitXor_f_Output := t_U64; - BitXor_f_bitxor := fun (self : t_U64) (rhs : t_U64)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_HaxInt t_U64) (haxint_bitxor (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_BitAnd_61309855 : t_BitAnd ((t_U64)) ((t_U64)) := - { - BitAnd_f_Output := t_U64; - BitAnd_f_bitand := fun (self : t_U64) (rhs : t_U64)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_HaxInt t_U64) (haxint_bitand (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_BitOr_584478327 : t_BitOr ((t_U64)) ((t_U64)) := - { - BitOr_f_Output := t_U64; - BitOr_f_bitor := fun (self : t_U64) (rhs : t_U64)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_HaxInt t_U64) (haxint_bitor (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Neg_660092460 : t_Neg ((t_U32)) := - { - Neg_f_Output := t_U32; - Neg_f_neg := fun (self : t_U32)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_HaxInt t_U32) (haxint_sub (v_WORDSIZE_32_) (haxint_rem (Abstraction_f_lift (self)) (v_WORDSIZE_32_))); - }. - -#[global] Instance t_Mul_907086750 : t_Mul ((t_U32)) ((t_U32)) := - { - Mul_f_Output := t_U32; - Mul_f_mul := fun (self : t_U32) (rhs : t_U32)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_HaxInt t_U32) (haxint_mul (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Rem_754047547 : t_Rem ((t_U32)) ((t_U32)) := - { - Rem_f_Output := t_U32; - Rem_f_rem := fun (self : t_U32) (rhs : t_U32)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_HaxInt t_U32) (haxint_rem (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Add_62760194 : t_Add ((t_U32)) ((t_U32)) := - { - Add_f_Output := t_U32; - Add_f_add := fun (self : t_U32) (rhs : t_U32)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_HaxInt t_U32) (haxint_add (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Div_1036065219 : t_Div ((t_U32)) ((t_U32)) := - { - Div_f_Output := t_U32; - Div_f_div := fun (self : t_U32) (rhs : t_U32)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_HaxInt t_U32) (haxint_div (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Shl_940272829 : t_Shl ((t_U32)) ((t_U8)) := - { - Shl_f_Output := t_U32; - Shl_f_shl := fun (self : t_U32) (rhs : t_U8)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_HaxInt t_U32) (haxint_shl (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Shl_184065944 : t_Shl ((t_U32)) ((t_U16)) := - { - Shl_f_Output := t_U32; - Shl_f_shl := fun (self : t_U32) (rhs : t_U16)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_HaxInt t_U32) (haxint_shl (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Shl_512141775 : t_Shl ((t_U32)) ((t_U32)) := - { - Shl_f_Output := t_U32; - Shl_f_shl := fun (self : t_U32) (rhs : t_U32)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_HaxInt t_U32) (haxint_shl (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Shl_760382167 : t_Shl ((t_U32)) ((t_U64)) := - { - Shl_f_Output := t_U32; - Shl_f_shl := fun (self : t_U32) (rhs : t_U64)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_HaxInt t_U32) (haxint_shl (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Shl_938844716 : t_Shl ((t_U32)) ((t_U128)) := - { - Shl_f_Output := t_U32; - Shl_f_shl := fun (self : t_U32) (rhs : t_U128)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_HaxInt t_U32) (haxint_shl (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Shr_376401556 : t_Shr ((t_U32)) ((t_U8)) := - { - Shr_f_Output := t_U32; - Shr_f_shr := fun (self : t_U32) (rhs : t_U8)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_HaxInt t_U32) (haxint_shr (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Shr_816225657 : t_Shr ((t_U32)) ((t_U16)) := - { - Shr_f_Output := t_U32; - Shr_f_shr := fun (self : t_U32) (rhs : t_U16)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_HaxInt t_U32) (haxint_shr (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Shr_131570199 : t_Shr ((t_U32)) ((t_U32)) := - { - Shr_f_Output := t_U32; - Shr_f_shr := fun (self : t_U32) (rhs : t_U32)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_HaxInt t_U32) (haxint_shr (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Shr_643141508 : t_Shr ((t_U32)) ((t_U64)) := - { - Shr_f_Output := t_U32; - Shr_f_shr := fun (self : t_U32) (rhs : t_U64)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_HaxInt t_U32) (haxint_shr (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Shr_472576920 : t_Shr ((t_U32)) ((t_U128)) := - { - Shr_f_Output := t_U32; - Shr_f_shr := fun (self : t_U32) (rhs : t_U128)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_HaxInt t_U32) (haxint_shr (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_BitXor_568575701 : t_BitXor ((t_U32)) ((t_U32)) := - { - BitXor_f_Output := t_U32; - BitXor_f_bitxor := fun (self : t_U32) (rhs : t_U32)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_HaxInt t_U32) (haxint_bitxor (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_BitAnd_188629984 : t_BitAnd ((t_U32)) ((t_U32)) := - { - BitAnd_f_Output := t_U32; - BitAnd_f_bitand := fun (self : t_U32) (rhs : t_U32)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_HaxInt t_U32) (haxint_bitand (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_BitOr_727300711 : t_BitOr ((t_U32)) ((t_U32)) := - { - BitOr_f_Output := t_U32; - BitOr_f_bitor := fun (self : t_U32) (rhs : t_U32)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_HaxInt t_U32) (haxint_bitor (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Neg_524209972 : t_Neg ((t_U16)) := - { - Neg_f_Output := t_U16; - Neg_f_neg := fun (self : t_U16)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_HaxInt t_U16) (haxint_sub (v_WORDSIZE_16_) (haxint_rem (Abstraction_f_lift (self)) (v_WORDSIZE_16_))); - }. - -#[global] Instance t_Mul_813798593 : t_Mul ((t_U16)) ((t_U16)) := - { - Mul_f_Output := t_U16; - Mul_f_mul := fun (self : t_U16) (rhs : t_U16)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_HaxInt t_U16) (haxint_mul (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Rem_1023129312 : t_Rem ((t_U16)) ((t_U16)) := - { - Rem_f_Output := t_U16; - Rem_f_rem := fun (self : t_U16) (rhs : t_U16)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_HaxInt t_U16) (haxint_rem (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Add_669194837 : t_Add ((t_U16)) ((t_U16)) := - { - Add_f_Output := t_U16; - Add_f_add := fun (self : t_U16) (rhs : t_U16)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_HaxInt t_U16) (haxint_add (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Div_599727096 : t_Div ((t_U16)) ((t_U16)) := - { - Div_f_Output := t_U16; - Div_f_div := fun (self : t_U16) (rhs : t_U16)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_HaxInt t_U16) (haxint_div (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Shl_254354835 : t_Shl ((t_U16)) ((t_U8)) := - { - Shl_f_Output := t_U16; - Shl_f_shl := fun (self : t_U16) (rhs : t_U8)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_HaxInt t_U16) (haxint_shl (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Shl_786190756 : t_Shl ((t_U16)) ((t_U16)) := - { - Shl_f_Output := t_U16; - Shl_f_shl := fun (self : t_U16) (rhs : t_U16)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_HaxInt t_U16) (haxint_shl (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Shl_961613024 : t_Shl ((t_U16)) ((t_U32)) := - { - Shl_f_Output := t_U16; - Shl_f_shl := fun (self : t_U16) (rhs : t_U32)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_HaxInt t_U16) (haxint_shl (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Shl_699049796 : t_Shl ((t_U16)) ((t_U64)) := - { - Shl_f_Output := t_U16; - Shl_f_shl := fun (self : t_U16) (rhs : t_U64)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_HaxInt t_U16) (haxint_shl (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Shl_98667823 : t_Shl ((t_U16)) ((t_U128)) := - { - Shl_f_Output := t_U16; - Shl_f_shl := fun (self : t_U16) (rhs : t_U128)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_HaxInt t_U16) (haxint_shl (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Shr_116990915 : t_Shr ((t_U16)) ((t_U8)) := - { - Shr_f_Output := t_U16; - Shr_f_shr := fun (self : t_U16) (rhs : t_U8)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_HaxInt t_U16) (haxint_shr (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Shr_53270962 : t_Shr ((t_U16)) ((t_U16)) := - { - Shr_f_Output := t_U16; - Shr_f_shr := fun (self : t_U16) (rhs : t_U16)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_HaxInt t_U16) (haxint_shr (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Shr_622272332 : t_Shr ((t_U16)) ((t_U32)) := - { - Shr_f_Output := t_U16; - Shr_f_shr := fun (self : t_U16) (rhs : t_U32)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_HaxInt t_U16) (haxint_shr (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Shr_1061476863 : t_Shr ((t_U16)) ((t_U64)) := - { - Shr_f_Output := t_U16; - Shr_f_shr := fun (self : t_U16) (rhs : t_U64)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_HaxInt t_U16) (haxint_shr (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Shr_148349277 : t_Shr ((t_U16)) ((t_U128)) := - { - Shr_f_Output := t_U16; - Shr_f_shr := fun (self : t_U16) (rhs : t_U128)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_HaxInt t_U16) (haxint_shr (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_BitXor_39308972 : t_BitXor ((t_U16)) ((t_U16)) := - { - BitXor_f_Output := t_U16; - BitXor_f_bitxor := fun (self : t_U16) (rhs : t_U16)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_HaxInt t_U16) (haxint_bitxor (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_BitAnd_100986953 : t_BitAnd ((t_U16)) ((t_U16)) := - { - BitAnd_f_Output := t_U16; - BitAnd_f_bitand := fun (self : t_U16) (rhs : t_U16)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_HaxInt t_U16) (haxint_bitand (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_BitOr_321212552 : t_BitOr ((t_U16)) ((t_U16)) := - { - BitOr_f_Output := t_U16; - BitOr_f_bitor := fun (self : t_U16) (rhs : t_U16)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_HaxInt t_U16) (haxint_bitor (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Neg_410091205 : t_Neg ((t_U8)) := - { - Neg_f_Output := t_U8; - Neg_f_neg := fun (self : t_U8)=> - Concretization_f_concretize (haxint_sub (v_WORDSIZE_8_) (haxint_rem (Abstraction_f_lift (self)) (v_WORDSIZE_8_))); - }. - -#[global] Instance t_Mul_116494850 : t_Mul ((t_U8)) ((t_U8)) := - { - Mul_f_Output := t_U8; - Mul_f_mul := fun (self : t_U8) (rhs : t_U8)=> - Concretization_f_concretize (haxint_mul (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Rem_674469245 : t_Rem ((t_U8)) ((t_U8)) := - { - Rem_f_Output := t_U8; - Rem_f_rem := fun (self : t_U8) (rhs : t_U8)=> - Concretization_f_concretize (haxint_rem (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Add_886374338 : t_Add ((t_U8)) ((t_U8)) := - { - Add_f_Output := t_U8; - Add_f_add := fun (self : t_U8) (rhs : t_U8)=> - Concretization_f_concretize (haxint_add (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Div_7559770 : t_Div ((t_U8)) ((t_U8)) := - { - Div_f_Output := t_U8; - Div_f_div := fun (self : t_U8) (rhs : t_U8)=> - Concretization_f_concretize (haxint_div (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Shl_889664521 : t_Shl ((t_U8)) ((t_U8)) := - { - Shl_f_Output := t_U8; - Shl_f_shl := fun (self : t_U8) (rhs : t_U8)=> - Concretization_f_concretize (haxint_shl (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Shl_268581730 : t_Shl ((t_U8)) ((t_U16)) := - { - Shl_f_Output := t_U8; - Shl_f_shl := fun (self : t_U8) (rhs : t_U16)=> - Concretization_f_concretize (haxint_shl (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Shl_833473770 : t_Shl ((t_U8)) ((t_U32)) := - { - Shl_f_Output := t_U8; - Shl_f_shl := fun (self : t_U8) (rhs : t_U32)=> - Concretization_f_concretize (haxint_shl (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Shl_896563459 : t_Shl ((t_U8)) ((t_U64)) := - { - Shl_f_Output := t_U8; - Shl_f_shl := fun (self : t_U8) (rhs : t_U64)=> - Concretization_f_concretize (haxint_shl (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Shl_595294021 : t_Shl ((t_U8)) ((t_U128)) := - { - Shl_f_Output := t_U8; - Shl_f_shl := fun (self : t_U8) (rhs : t_U128)=> - Concretization_f_concretize (haxint_shl (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Shr_467626732 : t_Shr ((t_U8)) ((t_U8)) := - { - Shr_f_Output := t_U8; - Shr_f_shr := fun (self : t_U8) (rhs : t_U8)=> - Concretization_f_concretize (haxint_shr (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Shr_985367369 : t_Shr ((t_U8)) ((t_U16)) := - { - Shr_f_Output := t_U8; - Shr_f_shr := fun (self : t_U8) (rhs : t_U16)=> - Concretization_f_concretize (haxint_shr (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Shr_868101800 : t_Shr ((t_U8)) ((t_U32)) := - { - Shr_f_Output := t_U8; - Shr_f_shr := fun (self : t_U8) (rhs : t_U32)=> - Concretization_f_concretize (haxint_shr (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Shr_300023283 : t_Shr ((t_U8)) ((t_U64)) := - { - Shr_f_Output := t_U8; - Shr_f_shr := fun (self : t_U8) (rhs : t_U64)=> - Concretization_f_concretize (haxint_shr (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Shr_794091640 : t_Shr ((t_U8)) ((t_U128)) := - { - Shr_f_Output := t_U8; - Shr_f_shr := fun (self : t_U8) (rhs : t_U128)=> - Concretization_f_concretize (haxint_shr (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_BitXor_24738444 : t_BitXor ((t_U8)) ((t_U8)) := - { - BitXor_f_Output := t_U8; - BitXor_f_bitxor := fun (self : t_U8) (rhs : t_U8)=> - Concretization_f_concretize (haxint_bitxor (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_BitAnd_358790390 : t_BitAnd ((t_U8)) ((t_U8)) := - { - BitAnd_f_Output := t_U8; - BitAnd_f_bitand := fun (self : t_U8) (rhs : t_U8)=> - Concretization_f_concretize (haxint_bitand (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_BitOr_349401480 : t_BitOr ((t_U8)) ((t_U8)) := - { - BitOr_f_Output := t_U8; - BitOr_f_bitor := fun (self : t_U8) (rhs : t_U8)=> - Concretization_f_concretize (haxint_bitor (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Rem_998027599 : t_Rem ((t_I128)) ((t_I128)) := - { - Rem_f_Output := t_I128; - Rem_f_rem := fun (self : t_I128) (rhs : t_I128)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_Z t_I128) (z_rem (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Div_865866956 : t_Div ((t_I128)) ((t_I128)) := - { - Div_f_Output := t_I128; - Div_f_div := fun (self : t_I128) (rhs : t_I128)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_Z t_I128) (z_div (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Rem_957489424 : t_Rem ((t_I64)) ((t_I64)) := - { - Rem_f_Output := t_I64; - Rem_f_rem := fun (self : t_I64) (rhs : t_I64)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_Z t_I64) (z_rem (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Div_611785525 : t_Div ((t_I64)) ((t_I64)) := - { - Div_f_Output := t_I64; - Div_f_div := fun (self : t_I64) (rhs : t_I64)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_Z t_I64) (z_div (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Rem_219303214 : t_Rem ((t_I32)) ((t_I32)) := - { - Rem_f_Output := t_I32; - Rem_f_rem := fun (self : t_I32) (rhs : t_I32)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_Z t_I32) (z_rem (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Div_1002924104 : t_Div ((t_I32)) ((t_I32)) := - { - Div_f_Output := t_I32; - Div_f_div := fun (self : t_I32) (rhs : t_I32)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_Z t_I32) (z_div (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Rem_948867246 : t_Rem ((t_I16)) ((t_I16)) := - { - Rem_f_Output := t_I16; - Rem_f_rem := fun (self : t_I16) (rhs : t_I16)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_Z t_I16) (z_rem (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Div_357493436 : t_Div ((t_I16)) ((t_I16)) := - { - Div_f_Output := t_I16; - Div_f_div := fun (self : t_I16) (rhs : t_I16)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_Z t_I16) (z_div (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Rem_228000167 : t_Rem ((t_I8)) ((t_I8)) := - { - Rem_f_Output := t_I8; - Rem_f_rem := fun (self : t_I8) (rhs : t_I8)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_Z t_I8) (z_rem (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Div_470010025 : t_Div ((t_I8)) ((t_I8)) := - { - Div_f_Output := t_I8; - Div_f_div := fun (self : t_I8) (rhs : t_I8)=> - Concretization_f_concretize (t_Concretization := _ : t_Concretization t_Z t_I8) (z_div (Abstraction_f_lift (self)) (Abstraction_f_lift (rhs))); - }. - -#[global] Instance t_Sub_1018502693 : t_Sub ((t_U128)) ((t_U128)) := - { - Sub_f_Output := t_U128; - Sub_f_sub := fun (self : t_U128) (rhs : t_U128)=> - Add_f_add (t_Add := _ : t_Add t_U128 t_U128) (self) (Neg_f_neg (rhs)); - }. - -#[global] Instance t_Not_758360759 : t_Not ((t_U128)) := - { - Not_f_Output := t_U128; - Not_f_not := fun (self : t_U128)=> - BitXor_f_bitxor (self) (Constants_f_MAX); - }. - -#[global] Instance t_Sub_919216830 : t_Sub ((t_U64)) ((t_U64)) := - { - Sub_f_Output := t_U64; - Sub_f_sub := fun (self : t_U64) (rhs : t_U64)=> - Add_f_add (t_Add := _ : t_Add _ t_U64) (self) (Neg_f_neg (rhs)); - }. - -#[global] Instance t_Not_693249901 : t_Not ((t_U64)) := - { - Not_f_Output := t_U64; - Not_f_not := fun (self : t_U64)=> - BitXor_f_bitxor (self) (Constants_f_MAX); - }. - -#[global] Instance t_Sub_22623594 : t_Sub ((t_U32)) ((t_U32)) := - { - Sub_f_Output := t_U32; - Sub_f_sub := fun (self : t_U32) (rhs : t_U32)=> - Add_f_add (t_Add := _ : t_Add _ t_U32) (self) (Neg_f_neg (rhs)); - }. - -#[global] Instance t_Not_183316157 : t_Not ((t_U32)) := - { - Not_f_Output := t_U32; - Not_f_not := fun (self : t_U32)=> - BitXor_f_bitxor (self) (Constants_f_MAX); - }. - -#[global] Instance t_Sub_502320750 : t_Sub ((t_U16)) ((t_U16)) := - { - Sub_f_Output := t_U16; - Sub_f_sub := fun (self : t_U16) (rhs : t_U16)=> - Add_f_add (t_Add := _ : t_Add _ t_U16) (self) (Neg_f_neg (rhs)); - }. - -#[global] Instance t_Not_669226601 : t_Not ((t_U16)) := - { - Not_f_Output := t_U16; - Not_f_not := fun (self : t_U16)=> - BitXor_f_bitxor (self) (Constants_f_MAX); - }. - -#[global] Instance t_Sub_299023787 : t_Sub ((t_U8)) ((t_U8)) := - { - Sub_f_Output := t_U8; - Sub_f_sub := fun (self : t_U8) (rhs : t_U8)=> - Add_f_add (t_Add := _ : t_Add _ t_U8) (self) (Neg_f_neg (rhs)); - }. - -#[global] Instance t_Not_761019181 : t_Not ((t_U8)) := - { - Not_f_Output := t_U8; - Not_f_not := fun (self : t_U8)=> - BitXor_f_bitxor (self) (Constants_f_MAX); - }. + f_I128_v : Core_Base_Spec_Z.t_Z; + }. + + +(* #[export] Instance settable_I128_I128_record : Settable _ := *) +(* settable! (Build_I128_I128_record) . *) + +(* Instance t_Constants_6929165 : t_Constants ((t_I128)) := *) +(* { *) +(* Core_Base_interface_Int.Constants_impl_40__f_ZERO := I128_I128 (Core_Base_Spec_Z.Z_ZERO); *) +(* Core_Base_interface_Int.Constants_impl_40__f_ONE := I128_I128 (Core_Base_Spec_Z.Z_POS (Core_Base_Spec_Binary_Positive.xH)); *) +(* Core_Base_interface_Int.Constants_impl_40__f_MIN := I128_I128 (Core_Base_Spec_Constants.v_NEG_WORDSIZE_128_); *) +(* Core_Base_interface_Int.Constants_impl_40__f_MAX := I128_I128 (Core_Base_Spec_Constants.v_POS_WORDSIZE_128_); *) +(* }. *) + +(* Definition impl_41__BITS : t_U32 := *) +(* U32_U32 (Core_Base_Spec_Constants.v_BITS_128_). *) + +(* Definition impl_41__WORDSIZE : Core_Base_Spec_Haxint.t_HaxInt := *) +(* Core_Base_Spec_Constants.v_WORDSIZE_128_. *) + +(* Instance t_Concretization_673046093 : Core_Base_interface_Coerce.t_Concretization ((Core_Base_Spec_Z.t_Z)) ((t_I128)) := *) +(* { *) +(* Core_Base_interface_Coerce.Concretization_impl_43__f_concretize := fun (self : Core_Base_Spec_Z.t_Z)=> *) +(* I128_I128 (self); *) +(* }. *) + +(* Instance t_Clone_32770525 : Core_Clone.t_Clone ((t_I128)) := *) +(* { *) +(* Core_Clone.Clone_impl_64__f_clone := fun (self : t_I128)=> *) +(* I128_I128 (Core_Clone.Clone__f_clone (f_I128_v self)); *) +(* }. *) + +(* Instance t_Abstraction_694136044 : Core_Base_interface_Coerce.t_Abstraction ((t_U8)) := *) +(* { *) +(* Core_Base_interface_Coerce.Abstraction_impl_285__f_AbstractType := Core_Base_Spec_Haxint.t_HaxInt; *) +(* Core_Base_interface_Coerce.Abstraction_impl_285__f_lift := fun (self : t_U8)=> *) +(* f_U8_v self; *) +(* }. *) + +(* Instance t_Abstraction_882240962 : Core_Base_interface_Coerce.t_Abstraction ((t_U16)) := *) +(* { *) +(* Core_Base_interface_Coerce.Abstraction_impl_258__f_AbstractType := Core_Base_Spec_Haxint.t_HaxInt; *) +(* Core_Base_interface_Coerce.Abstraction_impl_258__f_lift := fun (self : t_U16)=> *) +(* f_U16_v self; *) +(* }. *) + +(* Instance t_Abstraction_362803209 : Core_Base_interface_Coerce.t_Abstraction ((t_U32)) := *) +(* { *) +(* Core_Base_interface_Coerce.Abstraction_impl_231__f_AbstractType := Core_Base_Spec_Haxint.t_HaxInt; *) +(* Core_Base_interface_Coerce.Abstraction_impl_231__f_lift := fun (self : t_U32)=> *) +(* f_U32_v self; *) +(* }. *) + +(* Instance t_Abstraction_219210603 : Core_Base_interface_Coerce.t_Abstraction ((t_U64)) := *) +(* { *) +(* Core_Base_interface_Coerce.Abstraction_impl_204__f_AbstractType := Core_Base_Spec_Haxint.t_HaxInt; *) +(* Core_Base_interface_Coerce.Abstraction_impl_204__f_lift := fun (self : t_U64)=> *) +(* f_U64_v self; *) +(* }. *) + +(* Instance t_Abstraction_282656913 : Core_Base_interface_Coerce.t_Abstraction ((t_U128)) := *) +(* { *) +(* Core_Base_interface_Coerce.Abstraction_impl_177__f_AbstractType := Core_Base_Spec_Haxint.t_HaxInt; *) +(* Core_Base_interface_Coerce.Abstraction_impl_177__f_lift := fun (self : t_U128)=> *) +(* f_U128_v self; *) +(* }. *) + +(* Instance t_Abstraction_598094958 : Core_Base_interface_Coerce.t_Abstraction ((t_I8)) := *) +(* { *) +(* Core_Base_interface_Coerce.Abstraction_impl_150__f_AbstractType := Core_Base_Spec_Z.t_Z; *) +(* Core_Base_interface_Coerce.Abstraction_impl_150__f_lift := fun (self : t_I8)=> *) +(* f_I8_v self; *) +(* }. *) + +(* Instance t_Abstraction_455206451 : Core_Base_interface_Coerce.t_Abstraction ((t_I16)) := *) +(* { *) +(* Core_Base_interface_Coerce.Abstraction_impl_123__f_AbstractType := Core_Base_Spec_Z.t_Z; *) +(* Core_Base_interface_Coerce.Abstraction_impl_123__f_lift := fun (self : t_I16)=> *) +(* f_I16_v self; *) +(* }. *) + +(* Instance t_Abstraction_1031023691 : Core_Base_interface_Coerce.t_Abstraction ((t_I32)) := *) +(* { *) +(* Core_Base_interface_Coerce.Abstraction_impl_96__f_AbstractType := Core_Base_Spec_Z.t_Z; *) +(* Core_Base_interface_Coerce.Abstraction_impl_96__f_lift := fun (self : t_I32)=> *) +(* f_I32_v self; *) +(* }. *) + +(* Instance t_Abstraction_513929121 : Core_Base_interface_Coerce.t_Abstraction ((t_I64)) := *) +(* { *) +(* Core_Base_interface_Coerce.Abstraction_impl_69__f_AbstractType := Core_Base_Spec_Z.t_Z; *) +(* Core_Base_interface_Coerce.Abstraction_impl_69__f_lift := fun (self : t_I64)=> *) +(* f_I64_v self; *) +(* }. *) + +(* Instance t_Abstraction_733551703 : Core_Base_interface_Coerce.t_Abstraction ((t_I128)) := *) +(* { *) +(* Core_Base_interface_Coerce.Abstraction_impl_42__f_AbstractType := Core_Base_Spec_Z.t_Z; *) +(* Core_Base_interface_Coerce.Abstraction_impl_42__f_lift := fun (self : t_I128)=> *) +(* f_I128_v self; *) +(* }. *) + +(* Instance t_From_390804224 : Core_Convert.t_From ((t_U16)) ((t_U8)) := *) +(* { *) +(* Core_Convert.From_f_from := fun (x : t_U8)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_interface_Coerce.Abstraction__f_lift (x)); *) +(* }. *) + +(* Instance t_From_1004883337 : Core_Convert.t_From ((t_U32)) ((t_U8)) := *) +(* { *) +(* Core_Convert.From_impl_1__f_from := fun (x : t_U8)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_interface_Coerce.Abstraction__f_lift (x)); *) +(* }. *) + +(* Instance t_From_88086663 : Core_Convert.t_From ((t_U64)) ((t_U8)) := *) +(* { *) +(* Core_Convert.From_impl_2__f_from := fun (x : t_U8)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_interface_Coerce.Abstraction__f_lift (x)); *) +(* }. *) + +(* Instance t_From_482179413 : Core_Convert.t_From ((t_U128)) ((t_U8)) := *) +(* { *) +(* Core_Convert.From_impl_3__f_from := fun (x : t_U8)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_interface_Coerce.Abstraction__f_lift (x)); *) +(* }. *) + +(* Instance t_From_669109509 : Core_Convert.t_From ((t_U8)) ((t_U16)) := *) +(* { *) +(* Core_Convert.From_impl_4__f_from := fun (x : t_U16)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_interface_Coerce.Abstraction__f_lift (x)); *) +(* }. *) + +(* Instance t_From_227048902 : Core_Convert.t_From ((t_U32)) ((t_U16)) := *) +(* { *) +(* Core_Convert.From_impl_5__f_from := fun (x : t_U16)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_interface_Coerce.Abstraction__f_lift (x)); *) +(* }. *) + +(* Instance t_From_1044732707 : Core_Convert.t_From ((t_U64)) ((t_U16)) := *) +(* { *) +(* Core_Convert.From_impl_6__f_from := fun (x : t_U16)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_interface_Coerce.Abstraction__f_lift (x)); *) +(* }. *) + +(* Instance t_From_964352653 : Core_Convert.t_From ((t_U128)) ((t_U16)) := *) +(* { *) +(* Core_Convert.From_impl_7__f_from := fun (x : t_U16)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_interface_Coerce.Abstraction__f_lift (x)); *) +(* }. *) + +(* Instance t_From_901828890 : Core_Convert.t_From ((t_U8)) ((t_U32)) := *) +(* { *) +(* Core_Convert.From_impl_8__f_from := fun (x : t_U32)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_interface_Coerce.Abstraction__f_lift (x)); *) +(* }. *) + +(* Instance t_From_257173445 : Core_Convert.t_From ((t_U16)) ((t_U32)) := *) +(* { *) +(* Core_Convert.From_impl_9__f_from := fun (x : t_U32)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_interface_Coerce.Abstraction__f_lift (x)); *) +(* }. *) + +(* Instance t_From_589695960 : Core_Convert.t_From ((t_U64)) ((t_U32)) := *) +(* { *) +(* Core_Convert.From_impl_10__f_from := fun (x : t_U32)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_interface_Coerce.Abstraction__f_lift (x)); *) +(* }. *) + +(* Instance t_From_617099116 : Core_Convert.t_From ((t_U128)) ((t_U32)) := *) +(* { *) +(* Core_Convert.From_impl_11__f_from := fun (x : t_U32)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_interface_Coerce.Abstraction__f_lift (x)); *) +(* }. *) + +(* Instance t_From_33882284 : Core_Convert.t_From ((t_U8)) ((t_U64)) := *) +(* { *) +(* Core_Convert.From_impl_12__f_from := fun (x : t_U64)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_interface_Coerce.Abstraction__f_lift (x)); *) +(* }. *) + +(* Instance t_From_204638720 : Core_Convert.t_From ((t_U16)) ((t_U64)) := *) +(* { *) +(* Core_Convert.From_impl_13__f_from := fun (x : t_U64)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_interface_Coerce.Abstraction__f_lift (x)); *) +(* }. *) + +(* Instance t_From_1048202027 : Core_Convert.t_From ((t_U32)) ((t_U64)) := *) +(* { *) +(* Core_Convert.From_impl_14__f_from := fun (x : t_U64)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_interface_Coerce.Abstraction__f_lift (x)); *) +(* }. *) + +(* Instance t_From_510239774 : Core_Convert.t_From ((t_U128)) ((t_U64)) := *) +(* { *) +(* Core_Convert.From_impl_15__f_from := fun (x : t_U64)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_interface_Coerce.Abstraction__f_lift (x)); *) +(* }. *) + +(* Instance t_From_707957356 : Core_Convert.t_From ((t_U8)) ((t_U128)) := *) +(* { *) +(* Core_Convert.From_impl_16__f_from := fun (x : t_U128)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_interface_Coerce.Abstraction__f_lift (x)); *) +(* }. *) + +(* Instance t_From_697340552 : Core_Convert.t_From ((t_U16)) ((t_U128)) := *) +(* { *) +(* Core_Convert.From_impl_17__f_from := fun (x : t_U128)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_interface_Coerce.Abstraction__f_lift (x)); *) +(* }. *) + +(* Instance t_From_1038172637 : Core_Convert.t_From ((t_U32)) ((t_U128)) := *) +(* { *) +(* Core_Convert.From_impl_18__f_from := fun (x : t_U128)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_interface_Coerce.Abstraction__f_lift (x)); *) +(* }. *) + +(* Instance t_From_212792583 : Core_Convert.t_From ((t_U64)) ((t_U128)) := *) +(* { *) +(* Core_Convert.From_impl_19__f_from := fun (x : t_U128)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_interface_Coerce.Abstraction__f_lift (x)); *) +(* }. *) + +(* Instance t_From_415870363 : Core_Convert.t_From ((t_I16)) ((t_I8)) := *) +(* { *) +(* Core_Convert.From_impl_20__f_from := fun (x : t_I8)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_interface_Coerce.Abstraction__f_lift (x)); *) +(* }. *) + +(* Instance t_From_328900970 : Core_Convert.t_From ((t_I32)) ((t_I8)) := *) +(* { *) +(* Core_Convert.From_impl_21__f_from := fun (x : t_I8)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_interface_Coerce.Abstraction__f_lift (x)); *) +(* }. *) + +(* Instance t_From_479541755 : Core_Convert.t_From ((t_I64)) ((t_I8)) := *) +(* { *) +(* Core_Convert.From_impl_22__f_from := fun (x : t_I8)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_interface_Coerce.Abstraction__f_lift (x)); *) +(* }. *) + +(* Instance t_From_927811147 : Core_Convert.t_From ((t_I128)) ((t_I8)) := *) +(* { *) +(* Core_Convert.From_impl_23__f_from := fun (x : t_I8)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_interface_Coerce.Abstraction__f_lift (x)); *) +(* }. *) + +(* Instance t_From_819153677 : Core_Convert.t_From ((t_I8)) ((t_I16)) := *) +(* { *) +(* Core_Convert.From_impl_24__f_from := fun (x : t_I16)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_interface_Coerce.Abstraction__f_lift (x)); *) +(* }. *) + +(* Instance t_From_607481849 : Core_Convert.t_From ((t_I32)) ((t_I16)) := *) +(* { *) +(* Core_Convert.From_impl_25__f_from := fun (x : t_I16)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_interface_Coerce.Abstraction__f_lift (x)); *) +(* }. *) + +(* Instance t_From_514297986 : Core_Convert.t_From ((t_I64)) ((t_I16)) := *) +(* { *) +(* Core_Convert.From_impl_26__f_from := fun (x : t_I16)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_interface_Coerce.Abstraction__f_lift (x)); *) +(* }. *) + +(* Instance t_From_769963634 : Core_Convert.t_From ((t_I128)) ((t_I16)) := *) +(* { *) +(* Core_Convert.From_impl_27__f_from := fun (x : t_I16)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_interface_Coerce.Abstraction__f_lift (x)); *) +(* }. *) + +(* Instance t_From_881854114 : Core_Convert.t_From ((t_I8)) ((t_I32)) := *) +(* { *) +(* Core_Convert.From_impl_28__f_from := fun (x : t_I32)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_interface_Coerce.Abstraction__f_lift (x)); *) +(* }. *) + +(* Instance t_From_39869387 : Core_Convert.t_From ((t_I16)) ((t_I32)) := *) +(* { *) +(* Core_Convert.From_impl_29__f_from := fun (x : t_I32)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_interface_Coerce.Abstraction__f_lift (x)); *) +(* }. *) + +(* Instance t_From_271937612 : Core_Convert.t_From ((t_I64)) ((t_I32)) := *) +(* { *) +(* Core_Convert.From_impl_30__f_from := fun (x : t_I32)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_interface_Coerce.Abstraction__f_lift (x)); *) +(* }. *) + +(* Instance t_From_905182586 : Core_Convert.t_From ((t_I128)) ((t_I32)) := *) +(* { *) +(* Core_Convert.From_impl_31__f_from := fun (x : t_I32)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_interface_Coerce.Abstraction__f_lift (x)); *) +(* }. *) + +(* Instance t_From_161709171 : Core_Convert.t_From ((t_I8)) ((t_I64)) := *) +(* { *) +(* Core_Convert.From_impl_32__f_from := fun (x : t_I64)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_interface_Coerce.Abstraction__f_lift (x)); *) +(* }. *) + +(* Instance t_From_434651441 : Core_Convert.t_From ((t_I16)) ((t_I64)) := *) +(* { *) +(* Core_Convert.From_impl_33__f_from := fun (x : t_I64)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_interface_Coerce.Abstraction__f_lift (x)); *) +(* }. *) + +(* Instance t_From_392339040 : Core_Convert.t_From ((t_I32)) ((t_I64)) := *) +(* { *) +(* Core_Convert.From_impl_34__f_from := fun (x : t_I64)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_interface_Coerce.Abstraction__f_lift (x)); *) +(* }. *) + +(* Instance t_From_901525746 : Core_Convert.t_From ((t_I128)) ((t_I64)) := *) +(* { *) +(* Core_Convert.From_impl_35__f_from := fun (x : t_I64)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_interface_Coerce.Abstraction__f_lift (x)); *) +(* }. *) + +(* Instance t_From_685474488 : Core_Convert.t_From ((t_I8)) ((t_I128)) := *) +(* { *) +(* Core_Convert.From_impl_36__f_from := fun (x : t_I128)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_interface_Coerce.Abstraction__f_lift (x)); *) +(* }. *) + +(* Instance t_From_423551677 : Core_Convert.t_From ((t_I16)) ((t_I128)) := *) +(* { *) +(* Core_Convert.From_impl_37__f_from := fun (x : t_I128)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_interface_Coerce.Abstraction__f_lift (x)); *) +(* }. *) + +(* Instance t_From_341651614 : Core_Convert.t_From ((t_I32)) ((t_I128)) := *) +(* { *) +(* Core_Convert.From_impl_38__f_from := fun (x : t_I128)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_interface_Coerce.Abstraction__f_lift (x)); *) +(* }. *) + +(* Instance t_From_963376985 : Core_Convert.t_From ((t_I64)) ((t_I128)) := *) +(* { *) +(* Core_Convert.From_impl_39__f_from := fun (x : t_I128)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_interface_Coerce.Abstraction__f_lift (x)); *) +(* }. *) + +(* Instance t_PartialEq_99615800 : Core_Cmp.t_PartialEq ((t_U8)) ((t_U8)) := *) +(* { *) +(* Core_Cmp.PartialEq_impl_308__f_eq := fun (self : t_U8) (rhs : t_U8)=> *) +(* Core_Cmp.PartialEq__f_eq (Core_Base_Pos.haxint_cmp (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (self))) (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (rhs)))) (Core_Cmp.Ordering_Equal); *) +(* Core_Cmp.PartialEq_impl_308__f_ne := fun (self : t_U8) (rhs : t_U8)=> *) +(* Core_Cmp.PartialEq__f_ne (Core_Base_Pos.haxint_cmp (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (self))) (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (rhs)))) (Core_Cmp.Ordering_Equal); *) +(* }. *) + +(* Instance t_PartialOrd_553148071 : Core_Cmp.t_PartialOrd ((t_U8)) ((t_U8)) := *) +(* { *) +(* Core_Cmp.PartialOrd_impl_309__f_partial_cmp := fun (self : t_U8) (rhs : t_U8)=> *) +(* Core_Option.Option_Some (Core_Base_Pos.haxint_cmp (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (self))) (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (rhs)))); *) +(* Core_Cmp.PartialOrd_impl_309__f_lt := fun (self : t_U8) (rhs : t_U8)=> *) +(* match Core_Base_Pos.haxint_cmp (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (self))) (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (rhs))) with *) +(* | Core_Cmp.Ordering_Less => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* Core_Cmp.PartialOrd_impl_309__f_le := fun (self : t_U8) (rhs : t_U8)=> *) +(* match Core_Base_Pos.haxint_cmp (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (self))) (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (rhs))) with *) +(* | Core_Cmp.Ordering_Less *) +(* | Core_Cmp.Ordering_Equal => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* Core_Cmp.PartialOrd_impl_309__f_gt := fun (self : t_U8) (rhs : t_U8)=> *) +(* match Core_Base_Pos.haxint_cmp (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (self))) (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (rhs))) with *) +(* | Core_Cmp.Ordering_Greater => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* Core_Cmp.PartialOrd_impl_309__f_ge := fun (self : t_U8) (rhs : t_U8)=> *) +(* match Core_Base_Pos.haxint_cmp (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (self))) (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (rhs))) with *) +(* | Core_Cmp.Ordering_Greater *) +(* | Core_Cmp.Ordering_Equal => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* }. *) + +(* Instance t_PartialEq_40709887 : Core_Cmp.t_PartialEq ((t_U16)) ((t_U16)) := *) +(* { *) +(* Core_Cmp.PartialEq_impl_281__f_eq := fun (self : t_U16) (rhs : t_U16)=> *) +(* Core_Cmp.PartialEq__f_eq (Core_Base_Pos.haxint_cmp (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (self))) (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (rhs)))) (Core_Cmp.Ordering_Equal); *) +(* Core_Cmp.PartialEq_impl_281__f_ne := fun (self : t_U16) (rhs : t_U16)=> *) +(* Core_Cmp.PartialEq__f_ne (Core_Base_Pos.haxint_cmp (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (self))) (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (rhs)))) (Core_Cmp.Ordering_Equal); *) +(* }. *) + +(* Instance t_PartialOrd_579664919 : Core_Cmp.t_PartialOrd ((t_U16)) ((t_U16)) := *) +(* { *) +(* Core_Cmp.PartialOrd_impl_282__f_partial_cmp := fun (self : t_U16) (rhs : t_U16)=> *) +(* Core_Option.Option_Some (Core_Base_Pos.haxint_cmp (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (self))) (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (rhs)))); *) +(* Core_Cmp.PartialOrd_impl_282__f_lt := fun (self : t_U16) (rhs : t_U16)=> *) +(* match Core_Base_Pos.haxint_cmp (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (self))) (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (rhs))) with *) +(* | Core_Cmp.Ordering_Less => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* Core_Cmp.PartialOrd_impl_282__f_le := fun (self : t_U16) (rhs : t_U16)=> *) +(* match Core_Base_Pos.haxint_cmp (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (self))) (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (rhs))) with *) +(* | Core_Cmp.Ordering_Less *) +(* | Core_Cmp.Ordering_Equal => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* Core_Cmp.PartialOrd_impl_282__f_gt := fun (self : t_U16) (rhs : t_U16)=> *) +(* match Core_Base_Pos.haxint_cmp (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (self))) (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (rhs))) with *) +(* | Core_Cmp.Ordering_Greater => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* Core_Cmp.PartialOrd_impl_282__f_ge := fun (self : t_U16) (rhs : t_U16)=> *) +(* match Core_Base_Pos.haxint_cmp (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (self))) (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (rhs))) with *) +(* | Core_Cmp.Ordering_Greater *) +(* | Core_Cmp.Ordering_Equal => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* }. *) + +(* Instance t_PartialEq_758145504 : Core_Cmp.t_PartialEq ((t_U32)) ((t_U32)) := *) +(* { *) +(* Core_Cmp.PartialEq_impl_254__f_eq := fun (self : t_U32) (rhs : t_U32)=> *) +(* Core_Cmp.PartialEq__f_eq (Core_Base_Pos.haxint_cmp (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (self))) (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (rhs)))) (Core_Cmp.Ordering_Equal); *) +(* Core_Cmp.PartialEq_impl_254__f_ne := fun (self : t_U32) (rhs : t_U32)=> *) +(* Core_Cmp.PartialEq__f_ne (Core_Base_Pos.haxint_cmp (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (self))) (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (rhs)))) (Core_Cmp.Ordering_Equal); *) +(* }. *) + +(* Instance t_PartialOrd_142171754 : Core_Cmp.t_PartialOrd ((t_U32)) ((t_U32)) := *) +(* { *) +(* Core_Cmp.PartialOrd_impl_255__f_partial_cmp := fun (self : t_U32) (rhs : t_U32)=> *) +(* Core_Option.Option_Some (Core_Base_Pos.haxint_cmp (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (self))) (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (rhs)))); *) +(* Core_Cmp.PartialOrd_impl_255__f_lt := fun (self : t_U32) (rhs : t_U32)=> *) +(* match Core_Base_Pos.haxint_cmp (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (self))) (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (rhs))) with *) +(* | Core_Cmp.Ordering_Less => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* Core_Cmp.PartialOrd_impl_255__f_le := fun (self : t_U32) (rhs : t_U32)=> *) +(* match Core_Base_Pos.haxint_cmp (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (self))) (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (rhs))) with *) +(* | Core_Cmp.Ordering_Less *) +(* | Core_Cmp.Ordering_Equal => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* Core_Cmp.PartialOrd_impl_255__f_gt := fun (self : t_U32) (rhs : t_U32)=> *) +(* match Core_Base_Pos.haxint_cmp (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (self))) (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (rhs))) with *) +(* | Core_Cmp.Ordering_Greater => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* Core_Cmp.PartialOrd_impl_255__f_ge := fun (self : t_U32) (rhs : t_U32)=> *) +(* match Core_Base_Pos.haxint_cmp (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (self))) (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (rhs))) with *) +(* | Core_Cmp.Ordering_Greater *) +(* | Core_Cmp.Ordering_Equal => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* }. *) + +(* Instance t_PartialEq_476930700 : Core_Cmp.t_PartialEq ((t_U64)) ((t_U64)) := *) +(* { *) +(* Core_Cmp.PartialEq_impl_227__f_eq := fun (self : t_U64) (rhs : t_U64)=> *) +(* Core_Cmp.PartialEq__f_eq (Core_Base_Pos.haxint_cmp (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (self))) (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (rhs)))) (Core_Cmp.Ordering_Equal); *) +(* Core_Cmp.PartialEq_impl_227__f_ne := fun (self : t_U64) (rhs : t_U64)=> *) +(* Core_Cmp.PartialEq__f_ne (Core_Base_Pos.haxint_cmp (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (self))) (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (rhs)))) (Core_Cmp.Ordering_Equal); *) +(* }. *) + +(* Instance t_PartialOrd_107168997 : Core_Cmp.t_PartialOrd ((t_U64)) ((t_U64)) := *) +(* { *) +(* Core_Cmp.PartialOrd_impl_228__f_partial_cmp := fun (self : t_U64) (rhs : t_U64)=> *) +(* Core_Option.Option_Some (Core_Base_Pos.haxint_cmp (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (self))) (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (rhs)))); *) +(* Core_Cmp.PartialOrd_impl_228__f_lt := fun (self : t_U64) (rhs : t_U64)=> *) +(* match Core_Base_Pos.haxint_cmp (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (self))) (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (rhs))) with *) +(* | Core_Cmp.Ordering_Less => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* Core_Cmp.PartialOrd_impl_228__f_le := fun (self : t_U64) (rhs : t_U64)=> *) +(* match Core_Base_Pos.haxint_cmp (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (self))) (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (rhs))) with *) +(* | Core_Cmp.Ordering_Less *) +(* | Core_Cmp.Ordering_Equal => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* Core_Cmp.PartialOrd_impl_228__f_gt := fun (self : t_U64) (rhs : t_U64)=> *) +(* match Core_Base_Pos.haxint_cmp (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (self))) (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (rhs))) with *) +(* | Core_Cmp.Ordering_Greater => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* Core_Cmp.PartialOrd_impl_228__f_ge := fun (self : t_U64) (rhs : t_U64)=> *) +(* match Core_Base_Pos.haxint_cmp (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (self))) (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (rhs))) with *) +(* | Core_Cmp.Ordering_Greater *) +(* | Core_Cmp.Ordering_Equal => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* }. *) + +(* Instance t_PartialEq_394950240 : Core_Cmp.t_PartialEq ((t_U128)) ((t_U128)) := *) +(* { *) +(* Core_Cmp.PartialEq_impl_200__f_eq := fun (self : t_U128) (rhs : t_U128)=> *) +(* Core_Cmp.PartialEq__f_eq (Core_Base_Pos.haxint_cmp (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (self))) (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (rhs)))) (Core_Cmp.Ordering_Equal); *) +(* Core_Cmp.PartialEq_impl_200__f_ne := fun (self : t_U128) (rhs : t_U128)=> *) +(* Core_Cmp.PartialEq__f_ne (Core_Base_Pos.haxint_cmp (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (self))) (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (rhs)))) (Core_Cmp.Ordering_Equal); *) +(* }. *) + +(* Instance t_PartialOrd_204873282 : Core_Cmp.t_PartialOrd ((t_U128)) ((t_U128)) := *) +(* { *) +(* Core_Cmp.PartialOrd_impl_201__f_partial_cmp := fun (self : t_U128) (rhs : t_U128)=> *) +(* Core_Option.Option_Some (Core_Base_Pos.haxint_cmp (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (self))) (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (rhs)))); *) +(* Core_Cmp.PartialOrd_impl_201__f_lt := fun (self : t_U128) (rhs : t_U128)=> *) +(* match Core_Base_Pos.haxint_cmp (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (self))) (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (rhs))) with *) +(* | Core_Cmp.Ordering_Less => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* Core_Cmp.PartialOrd_impl_201__f_le := fun (self : t_U128) (rhs : t_U128)=> *) +(* match Core_Base_Pos.haxint_cmp (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (self))) (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (rhs))) with *) +(* | Core_Cmp.Ordering_Less *) +(* | Core_Cmp.Ordering_Equal => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* Core_Cmp.PartialOrd_impl_201__f_gt := fun (self : t_U128) (rhs : t_U128)=> *) +(* match Core_Base_Pos.haxint_cmp (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (self))) (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (rhs))) with *) +(* | Core_Cmp.Ordering_Greater => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* Core_Cmp.PartialOrd_impl_201__f_ge := fun (self : t_U128) (rhs : t_U128)=> *) +(* match Core_Base_Pos.haxint_cmp (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (self))) (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (rhs))) with *) +(* | Core_Cmp.Ordering_Greater *) +(* | Core_Cmp.Ordering_Equal => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* }. *) + +(* Instance t_PartialEq_881944191 : Core_Cmp.t_PartialEq ((t_I8)) ((t_I8)) := *) +(* { *) +(* Core_Cmp.PartialEq_impl_173__f_eq := fun (self : t_I8) (rhs : t_I8)=> *) +(* Core_Cmp.PartialEq__f_eq (Core_Base_Z.z_cmp (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (self))) (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (rhs)))) (Core_Cmp.Ordering_Equal); *) +(* Core_Cmp.PartialEq_impl_173__f_ne := fun (self : t_I8) (rhs : t_I8)=> *) +(* Core_Cmp.PartialEq__f_ne (Core_Base_Z.z_cmp (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (self))) (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (rhs)))) (Core_Cmp.Ordering_Equal); *) +(* }. *) + +(* Instance t_PartialOrd_17951096 : Core_Cmp.t_PartialOrd ((t_I8)) ((t_I8)) := *) +(* { *) +(* Core_Cmp.PartialOrd_impl_174__f_partial_cmp := fun (self : t_I8) (rhs : t_I8)=> *) +(* Core_Option.Option_Some (Core_Base_Z.z_cmp (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (self))) (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (rhs)))); *) +(* Core_Cmp.PartialOrd_impl_174__f_lt := fun (self : t_I8) (rhs : t_I8)=> *) +(* match Core_Base_Z.z_cmp (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (self))) (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (rhs))) with *) +(* | Core_Cmp.Ordering_Less => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* Core_Cmp.PartialOrd_impl_174__f_le := fun (self : t_I8) (rhs : t_I8)=> *) +(* match Core_Base_Z.z_cmp (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (self))) (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (rhs))) with *) +(* | Core_Cmp.Ordering_Less *) +(* | Core_Cmp.Ordering_Equal => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* Core_Cmp.PartialOrd_impl_174__f_gt := fun (self : t_I8) (rhs : t_I8)=> *) +(* match Core_Base_Z.z_cmp (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (self))) (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (rhs))) with *) +(* | Core_Cmp.Ordering_Greater => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* Core_Cmp.PartialOrd_impl_174__f_ge := fun (self : t_I8) (rhs : t_I8)=> *) +(* match Core_Base_Z.z_cmp (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (self))) (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (rhs))) with *) +(* | Core_Cmp.Ordering_Greater *) +(* | Core_Cmp.Ordering_Equal => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* }. *) + +(* Instance t_PartialEq_166363327 : Core_Cmp.t_PartialEq ((t_I16)) ((t_I16)) := *) +(* { *) +(* Core_Cmp.PartialEq_impl_146__f_eq := fun (self : t_I16) (rhs : t_I16)=> *) +(* Core_Cmp.PartialEq__f_eq (Core_Base_Z.z_cmp (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (self))) (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (rhs)))) (Core_Cmp.Ordering_Equal); *) +(* Core_Cmp.PartialEq_impl_146__f_ne := fun (self : t_I16) (rhs : t_I16)=> *) +(* Core_Cmp.PartialEq__f_ne (Core_Base_Z.z_cmp (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (self))) (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (rhs)))) (Core_Cmp.Ordering_Equal); *) +(* }. *) + +(* Instance t_PartialOrd_1036256246 : Core_Cmp.t_PartialOrd ((t_I16)) ((t_I16)) := *) +(* { *) +(* Core_Cmp.PartialOrd_impl_147__f_partial_cmp := fun (self : t_I16) (rhs : t_I16)=> *) +(* Core_Option.Option_Some (Core_Base_Z.z_cmp (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (self))) (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (rhs)))); *) +(* Core_Cmp.PartialOrd_impl_147__f_lt := fun (self : t_I16) (rhs : t_I16)=> *) +(* match Core_Base_Z.z_cmp (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (self))) (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (rhs))) with *) +(* | Core_Cmp.Ordering_Less => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* Core_Cmp.PartialOrd_impl_147__f_le := fun (self : t_I16) (rhs : t_I16)=> *) +(* match Core_Base_Z.z_cmp (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (self))) (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (rhs))) with *) +(* | Core_Cmp.Ordering_Less *) +(* | Core_Cmp.Ordering_Equal => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* Core_Cmp.PartialOrd_impl_147__f_gt := fun (self : t_I16) (rhs : t_I16)=> *) +(* match Core_Base_Z.z_cmp (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (self))) (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (rhs))) with *) +(* | Core_Cmp.Ordering_Greater => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* Core_Cmp.PartialOrd_impl_147__f_ge := fun (self : t_I16) (rhs : t_I16)=> *) +(* match Core_Base_Z.z_cmp (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (self))) (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (rhs))) with *) +(* | Core_Cmp.Ordering_Greater *) +(* | Core_Cmp.Ordering_Equal => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* }. *) + +(* Instance t_PartialEq_472204838 : Core_Cmp.t_PartialEq ((t_I32)) ((t_I32)) := *) +(* { *) +(* Core_Cmp.PartialEq_impl_119__f_eq := fun (self : t_I32) (rhs : t_I32)=> *) +(* Core_Cmp.PartialEq__f_eq (Core_Base_Z.z_cmp (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (self))) (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (rhs)))) (Core_Cmp.Ordering_Equal); *) +(* Core_Cmp.PartialEq_impl_119__f_ne := fun (self : t_I32) (rhs : t_I32)=> *) +(* Core_Cmp.PartialEq__f_ne (Core_Base_Z.z_cmp (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (self))) (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (rhs)))) (Core_Cmp.Ordering_Equal); *) +(* }. *) + +(* Instance t_PartialOrd_676471310 : Core_Cmp.t_PartialOrd ((t_I32)) ((t_I32)) := *) +(* { *) +(* Core_Cmp.PartialOrd_impl_120__f_partial_cmp := fun (self : t_I32) (rhs : t_I32)=> *) +(* Core_Option.Option_Some (Core_Base_Z.z_cmp (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (self))) (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (rhs)))); *) +(* Core_Cmp.PartialOrd_impl_120__f_lt := fun (self : t_I32) (rhs : t_I32)=> *) +(* match Core_Base_Z.z_cmp (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (self))) (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (rhs))) with *) +(* | Core_Cmp.Ordering_Less => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* Core_Cmp.PartialOrd_impl_120__f_le := fun (self : t_I32) (rhs : t_I32)=> *) +(* match Core_Base_Z.z_cmp (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (self))) (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (rhs))) with *) +(* | Core_Cmp.Ordering_Less *) +(* | Core_Cmp.Ordering_Equal => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* Core_Cmp.PartialOrd_impl_120__f_gt := fun (self : t_I32) (rhs : t_I32)=> *) +(* match Core_Base_Z.z_cmp (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (self))) (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (rhs))) with *) +(* | Core_Cmp.Ordering_Greater => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* Core_Cmp.PartialOrd_impl_120__f_ge := fun (self : t_I32) (rhs : t_I32)=> *) +(* match Core_Base_Z.z_cmp (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (self))) (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (rhs))) with *) +(* | Core_Cmp.Ordering_Greater *) +(* | Core_Cmp.Ordering_Equal => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* }. *) + +(* Instance t_PartialEq_667790166 : Core_Cmp.t_PartialEq ((t_I64)) ((t_I64)) := *) +(* { *) +(* Core_Cmp.PartialEq_impl_92__f_eq := fun (self : t_I64) (rhs : t_I64)=> *) +(* Core_Cmp.PartialEq__f_eq (Core_Base_Z.z_cmp (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (self))) (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (rhs)))) (Core_Cmp.Ordering_Equal); *) +(* Core_Cmp.PartialEq_impl_92__f_ne := fun (self : t_I64) (rhs : t_I64)=> *) +(* Core_Cmp.PartialEq__f_ne (Core_Base_Z.z_cmp (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (self))) (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (rhs)))) (Core_Cmp.Ordering_Equal); *) +(* }. *) + +(* Instance t_PartialOrd_5117809 : Core_Cmp.t_PartialOrd ((t_I64)) ((t_I64)) := *) +(* { *) +(* Core_Cmp.PartialOrd_impl_93__f_partial_cmp := fun (self : t_I64) (rhs : t_I64)=> *) +(* Core_Option.Option_Some (Core_Base_Z.z_cmp (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (self))) (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (rhs)))); *) +(* Core_Cmp.PartialOrd_impl_93__f_lt := fun (self : t_I64) (rhs : t_I64)=> *) +(* match Core_Base_Z.z_cmp (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (self))) (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (rhs))) with *) +(* | Core_Cmp.Ordering_Less => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* Core_Cmp.PartialOrd_impl_93__f_le := fun (self : t_I64) (rhs : t_I64)=> *) +(* match Core_Base_Z.z_cmp (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (self))) (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (rhs))) with *) +(* | Core_Cmp.Ordering_Less *) +(* | Core_Cmp.Ordering_Equal => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* Core_Cmp.PartialOrd_impl_93__f_gt := fun (self : t_I64) (rhs : t_I64)=> *) +(* match Core_Base_Z.z_cmp (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (self))) (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (rhs))) with *) +(* | Core_Cmp.Ordering_Greater => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* Core_Cmp.PartialOrd_impl_93__f_ge := fun (self : t_I64) (rhs : t_I64)=> *) +(* match Core_Base_Z.z_cmp (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (self))) (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (rhs))) with *) +(* | Core_Cmp.Ordering_Greater *) +(* | Core_Cmp.Ordering_Equal => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* }. *) + +(* Instance t_PartialEq_511424149 : Core_Cmp.t_PartialEq ((t_I128)) ((t_I128)) := *) +(* { *) +(* Core_Cmp.PartialEq_impl_65__f_eq := fun (self : t_I128) (rhs : t_I128)=> *) +(* Core_Cmp.PartialEq__f_eq (Core_Base_Z.z_cmp (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (self))) (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (rhs)))) (Core_Cmp.Ordering_Equal); *) +(* Core_Cmp.PartialEq_impl_65__f_ne := fun (self : t_I128) (rhs : t_I128)=> *) +(* Core_Cmp.PartialEq__f_ne (Core_Base_Z.z_cmp (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (self))) (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (rhs)))) (Core_Cmp.Ordering_Equal); *) +(* }. *) + +(* Instance t_PartialOrd_229968400 : Core_Cmp.t_PartialOrd ((t_I128)) ((t_I128)) := *) +(* { *) +(* Core_Cmp.PartialOrd_impl_66__f_partial_cmp := fun (self : t_I128) (rhs : t_I128)=> *) +(* Core_Option.Option_Some (Core_Base_Z.z_cmp (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (self))) (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (rhs)))); *) +(* Core_Cmp.PartialOrd_impl_66__f_lt := fun (self : t_I128) (rhs : t_I128)=> *) +(* match Core_Base_Z.z_cmp (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (self))) (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (rhs))) with *) +(* | Core_Cmp.Ordering_Less => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* Core_Cmp.PartialOrd_impl_66__f_le := fun (self : t_I128) (rhs : t_I128)=> *) +(* match Core_Base_Z.z_cmp (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (self))) (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (rhs))) with *) +(* | Core_Cmp.Ordering_Less *) +(* | Core_Cmp.Ordering_Equal => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* Core_Cmp.PartialOrd_impl_66__f_gt := fun (self : t_I128) (rhs : t_I128)=> *) +(* match Core_Base_Z.z_cmp (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (self))) (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (rhs))) with *) +(* | Core_Cmp.Ordering_Greater => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* Core_Cmp.PartialOrd_impl_66__f_ge := fun (self : t_I128) (rhs : t_I128)=> *) +(* match Core_Base_Z.z_cmp (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (self))) (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (rhs))) with *) +(* | Core_Cmp.Ordering_Greater *) +(* | Core_Cmp.Ordering_Equal => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* }. *) + +(* Instance t_Mul_739468969 : Core_Ops_Arith.t_Mul ((t_U8)) ((t_U8)) := *) +(* { *) +(* Core_Ops_Arith.Mul_impl_290__f_Output := t_U8; *) +(* Core_Ops_Arith.Mul_impl_290__f_mul := fun (self : t_U8) (rhs : t_U8)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_mul (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Rem_11796974 : Core_Ops_Arith.t_Rem ((t_U8)) ((t_U8)) := *) +(* { *) +(* Core_Ops_Arith.Rem_impl_291__f_Output := t_U8; *) +(* Core_Ops_Arith.Rem_impl_291__f_rem := fun (self : t_U8) (rhs : t_U8)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_rem (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Add_722564932 : Core_Ops_Arith.t_Add ((t_U8)) ((t_U8)) := *) +(* { *) +(* Core_Ops_Arith.Add_impl_292__f_Output := t_U8; *) +(* Core_Ops_Arith.Add_impl_292__f_add := fun (self : t_U8) (rhs : t_U8)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_add (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Div_421096087 : Core_Ops_Arith.t_Div ((t_U8)) ((t_U8)) := *) +(* { *) +(* Core_Ops_Arith.Div_impl_293__f_Output := t_U8; *) +(* Core_Ops_Arith.Div_impl_293__f_div := fun (self : t_U8) (rhs : t_U8)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_div (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Neg_119673410 : Core_Ops_Arith.t_Neg ((t_U8)) := *) +(* { *) +(* Core_Ops_Arith.Neg_impl_287__f_Output := t_U8; *) +(* Core_Ops_Arith.Neg_impl_287__f_neg := fun (self : t_U8)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_sub (Core_Base_Spec_Constants.v_WORDSIZE_8_) (Core_Base_Pos.haxint_rem (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_Spec_Constants.v_WORDSIZE_8_))); *) +(* }. *) + +(* Instance t_Shl_147302523 : Core_Ops_Bit.t_Shl ((t_U8)) ((t_U8)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_294__f_Output := t_U8; *) +(* Core_Ops_Bit.Shl_impl_294__f_shl := fun (self : t_U8) (rhs : t_U8)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_shl (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shl_552843641 : Core_Ops_Bit.t_Shl ((t_U8)) ((t_U16)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_295__f_Output := t_U8; *) +(* Core_Ops_Bit.Shl_impl_295__f_shl := fun (self : t_U8) (rhs : t_U16)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_shl (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shl_1029067931 : Core_Ops_Bit.t_Shl ((t_U8)) ((t_U32)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_296__f_Output := t_U8; *) +(* Core_Ops_Bit.Shl_impl_296__f_shl := fun (self : t_U8) (rhs : t_U32)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_shl (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shl_858482607 : Core_Ops_Bit.t_Shl ((t_U8)) ((t_U64)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_297__f_Output := t_U8; *) +(* Core_Ops_Bit.Shl_impl_297__f_shl := fun (self : t_U8) (rhs : t_U64)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_shl (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shl_850374583 : Core_Ops_Bit.t_Shl ((t_U8)) ((t_U128)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_298__f_Output := t_U8; *) +(* Core_Ops_Bit.Shl_impl_298__f_shl := fun (self : t_U8) (rhs : t_U128)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_shl (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shr_649114101 : Core_Ops_Bit.t_Shr ((t_U8)) ((t_U8)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_299__f_Output := t_U8; *) +(* Core_Ops_Bit.Shr_impl_299__f_shr := fun (self : t_U8) (rhs : t_U8)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_shr (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shr_151731961 : Core_Ops_Bit.t_Shr ((t_U8)) ((t_U16)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_300__f_Output := t_U8; *) +(* Core_Ops_Bit.Shr_impl_300__f_shr := fun (self : t_U8) (rhs : t_U16)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_shr (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shr_62999646 : Core_Ops_Bit.t_Shr ((t_U8)) ((t_U32)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_301__f_Output := t_U8; *) +(* Core_Ops_Bit.Shr_impl_301__f_shr := fun (self : t_U8) (rhs : t_U32)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_shr (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shr_1013645823 : Core_Ops_Bit.t_Shr ((t_U8)) ((t_U64)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_302__f_Output := t_U8; *) +(* Core_Ops_Bit.Shr_impl_302__f_shr := fun (self : t_U8) (rhs : t_U64)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_shr (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shr_591801947 : Core_Ops_Bit.t_Shr ((t_U8)) ((t_U128)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_303__f_Output := t_U8; *) +(* Core_Ops_Bit.Shr_impl_303__f_shr := fun (self : t_U8) (rhs : t_U128)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_shr (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_BitXor_467590830 : Core_Ops_Bit.t_BitXor ((t_U8)) ((t_U8)) := *) +(* { *) +(* Core_Ops_Bit.BitXor_impl_304__f_Output := t_U8; *) +(* Core_Ops_Bit.BitXor_impl_304__f_bitxor := fun (self : t_U8) (rhs : t_U8)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_bitxor (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_BitAnd_101789241 : Core_Ops_Bit.t_BitAnd ((t_U8)) ((t_U8)) := *) +(* { *) +(* Core_Ops_Bit.BitAnd_impl_305__f_Output := t_U8; *) +(* Core_Ops_Bit.BitAnd_impl_305__f_bitand := fun (self : t_U8) (rhs : t_U8)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_bitand (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_BitOr_170480459 : Core_Ops_Bit.t_BitOr ((t_U8)) ((t_U8)) := *) +(* { *) +(* Core_Ops_Bit.BitOr_impl_306__f_Output := t_U8; *) +(* Core_Ops_Bit.BitOr_impl_306__f_bitor := fun (self : t_U8) (rhs : t_U8)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_bitor (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Mul_218256686 : Core_Ops_Arith.t_Mul ((t_U16)) ((t_U16)) := *) +(* { *) +(* Core_Ops_Arith.Mul_impl_263__f_Output := t_U16; *) +(* Core_Ops_Arith.Mul_impl_263__f_mul := fun (self : t_U16) (rhs : t_U16)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_mul (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Rem_279097188 : Core_Ops_Arith.t_Rem ((t_U16)) ((t_U16)) := *) +(* { *) +(* Core_Ops_Arith.Rem_impl_264__f_Output := t_U16; *) +(* Core_Ops_Arith.Rem_impl_264__f_rem := fun (self : t_U16) (rhs : t_U16)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_rem (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Add_213069101 : Core_Ops_Arith.t_Add ((t_U16)) ((t_U16)) := *) +(* { *) +(* Core_Ops_Arith.Add_impl_265__f_Output := t_U16; *) +(* Core_Ops_Arith.Add_impl_265__f_add := fun (self : t_U16) (rhs : t_U16)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_add (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Div_3555313 : Core_Ops_Arith.t_Div ((t_U16)) ((t_U16)) := *) +(* { *) +(* Core_Ops_Arith.Div_impl_266__f_Output := t_U16; *) +(* Core_Ops_Arith.Div_impl_266__f_div := fun (self : t_U16) (rhs : t_U16)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_div (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Neg_507469799 : Core_Ops_Arith.t_Neg ((t_U16)) := *) +(* { *) +(* Core_Ops_Arith.Neg_impl_260__f_Output := t_U16; *) +(* Core_Ops_Arith.Neg_impl_260__f_neg := fun (self : t_U16)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_sub (Core_Base_Spec_Constants.v_WORDSIZE_16_) (Core_Base_Pos.haxint_rem (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_Spec_Constants.v_WORDSIZE_16_))); *) +(* }. *) + +(* Instance t_Shl_1039374414 : Core_Ops_Bit.t_Shl ((t_U16)) ((t_U8)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_267__f_Output := t_U16; *) +(* Core_Ops_Bit.Shl_impl_267__f_shl := fun (self : t_U16) (rhs : t_U8)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_shl (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shl_848017981 : Core_Ops_Bit.t_Shl ((t_U16)) ((t_U16)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_268__f_Output := t_U16; *) +(* Core_Ops_Bit.Shl_impl_268__f_shl := fun (self : t_U16) (rhs : t_U16)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_shl (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shl_55981901 : Core_Ops_Bit.t_Shl ((t_U16)) ((t_U32)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_269__f_Output := t_U16; *) +(* Core_Ops_Bit.Shl_impl_269__f_shl := fun (self : t_U16) (rhs : t_U32)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_shl (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shl_642009701 : Core_Ops_Bit.t_Shl ((t_U16)) ((t_U64)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_270__f_Output := t_U16; *) +(* Core_Ops_Bit.Shl_impl_270__f_shl := fun (self : t_U16) (rhs : t_U64)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_shl (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shl_1043221441 : Core_Ops_Bit.t_Shl ((t_U16)) ((t_U128)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_271__f_Output := t_U16; *) +(* Core_Ops_Bit.Shl_impl_271__f_shl := fun (self : t_U16) (rhs : t_U128)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_shl (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shr_15286456 : Core_Ops_Bit.t_Shr ((t_U16)) ((t_U8)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_272__f_Output := t_U16; *) +(* Core_Ops_Bit.Shr_impl_272__f_shr := fun (self : t_U16) (rhs : t_U8)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_shr (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shr_1067566649 : Core_Ops_Bit.t_Shr ((t_U16)) ((t_U16)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_273__f_Output := t_U16; *) +(* Core_Ops_Bit.Shr_impl_273__f_shr := fun (self : t_U16) (rhs : t_U16)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_shr (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shr_319063591 : Core_Ops_Bit.t_Shr ((t_U16)) ((t_U32)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_274__f_Output := t_U16; *) +(* Core_Ops_Bit.Shr_impl_274__f_shr := fun (self : t_U16) (rhs : t_U32)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_shr (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shr_941307102 : Core_Ops_Bit.t_Shr ((t_U16)) ((t_U64)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_275__f_Output := t_U16; *) +(* Core_Ops_Bit.Shr_impl_275__f_shr := fun (self : t_U16) (rhs : t_U64)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_shr (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shr_1003636416 : Core_Ops_Bit.t_Shr ((t_U16)) ((t_U128)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_276__f_Output := t_U16; *) +(* Core_Ops_Bit.Shr_impl_276__f_shr := fun (self : t_U16) (rhs : t_U128)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_shr (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_BitXor_946629289 : Core_Ops_Bit.t_BitXor ((t_U16)) ((t_U16)) := *) +(* { *) +(* Core_Ops_Bit.BitXor_impl_277__f_Output := t_U16; *) +(* Core_Ops_Bit.BitXor_impl_277__f_bitxor := fun (self : t_U16) (rhs : t_U16)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_bitxor (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_BitAnd_988132460 : Core_Ops_Bit.t_BitAnd ((t_U16)) ((t_U16)) := *) +(* { *) +(* Core_Ops_Bit.BitAnd_impl_278__f_Output := t_U16; *) +(* Core_Ops_Bit.BitAnd_impl_278__f_bitand := fun (self : t_U16) (rhs : t_U16)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_bitand (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_BitOr_561260088 : Core_Ops_Bit.t_BitOr ((t_U16)) ((t_U16)) := *) +(* { *) +(* Core_Ops_Bit.BitOr_impl_279__f_Output := t_U16; *) +(* Core_Ops_Bit.BitOr_impl_279__f_bitor := fun (self : t_U16) (rhs : t_U16)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_bitor (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Mul_244794649 : Core_Ops_Arith.t_Mul ((t_U32)) ((t_U32)) := *) +(* { *) +(* Core_Ops_Arith.Mul_impl_236__f_Output := t_U32; *) +(* Core_Ops_Arith.Mul_impl_236__f_mul := fun (self : t_U32) (rhs : t_U32)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_mul (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Rem_932604688 : Core_Ops_Arith.t_Rem ((t_U32)) ((t_U32)) := *) +(* { *) +(* Core_Ops_Arith.Rem_impl_237__f_Output := t_U32; *) +(* Core_Ops_Arith.Rem_impl_237__f_rem := fun (self : t_U32) (rhs : t_U32)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_rem (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Add_187008402 : Core_Ops_Arith.t_Add ((t_U32)) ((t_U32)) := *) +(* { *) +(* Core_Ops_Arith.Add_impl_238__f_Output := t_U32; *) +(* Core_Ops_Arith.Add_impl_238__f_add := fun (self : t_U32) (rhs : t_U32)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_add (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Div_704950227 : Core_Ops_Arith.t_Div ((t_U32)) ((t_U32)) := *) +(* { *) +(* Core_Ops_Arith.Div_impl_239__f_Output := t_U32; *) +(* Core_Ops_Arith.Div_impl_239__f_div := fun (self : t_U32) (rhs : t_U32)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_div (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Neg_768279738 : Core_Ops_Arith.t_Neg ((t_U32)) := *) +(* { *) +(* Core_Ops_Arith.Neg_impl_233__f_Output := t_U32; *) +(* Core_Ops_Arith.Neg_impl_233__f_neg := fun (self : t_U32)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_sub (Core_Base_Spec_Constants.v_WORDSIZE_32_) (Core_Base_Pos.haxint_rem (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_Spec_Constants.v_WORDSIZE_32_))); *) +(* }. *) + +(* Instance t_Shl_734707672 : Core_Ops_Bit.t_Shl ((t_U32)) ((t_U8)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_240__f_Output := t_U32; *) +(* Core_Ops_Bit.Shl_impl_240__f_shl := fun (self : t_U32) (rhs : t_U8)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_shl (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shl_243096202 : Core_Ops_Bit.t_Shl ((t_U32)) ((t_U16)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_241__f_Output := t_U32; *) +(* Core_Ops_Bit.Shl_impl_241__f_shl := fun (self : t_U32) (rhs : t_U16)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_shl (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shl_740009739 : Core_Ops_Bit.t_Shl ((t_U32)) ((t_U32)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_242__f_Output := t_U32; *) +(* Core_Ops_Bit.Shl_impl_242__f_shl := fun (self : t_U32) (rhs : t_U32)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_shl (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shl_126513851 : Core_Ops_Bit.t_Shl ((t_U32)) ((t_U64)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_243__f_Output := t_U32; *) +(* Core_Ops_Bit.Shl_impl_243__f_shl := fun (self : t_U32) (rhs : t_U64)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_shl (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shl_923918929 : Core_Ops_Bit.t_Shl ((t_U32)) ((t_U128)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_244__f_Output := t_U32; *) +(* Core_Ops_Bit.Shl_impl_244__f_shl := fun (self : t_U32) (rhs : t_U128)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_shl (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shr_941707737 : Core_Ops_Bit.t_Shr ((t_U32)) ((t_U8)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_245__f_Output := t_U32; *) +(* Core_Ops_Bit.Shr_impl_245__f_shr := fun (self : t_U32) (rhs : t_U8)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_shr (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shr_207361529 : Core_Ops_Bit.t_Shr ((t_U32)) ((t_U16)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_246__f_Output := t_U32; *) +(* Core_Ops_Bit.Shr_impl_246__f_shr := fun (self : t_U32) (rhs : t_U16)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_shr (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shr_610922320 : Core_Ops_Bit.t_Shr ((t_U32)) ((t_U32)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_247__f_Output := t_U32; *) +(* Core_Ops_Bit.Shr_impl_247__f_shr := fun (self : t_U32) (rhs : t_U32)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_shr (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shr_546064969 : Core_Ops_Bit.t_Shr ((t_U32)) ((t_U64)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_248__f_Output := t_U32; *) +(* Core_Ops_Bit.Shr_impl_248__f_shr := fun (self : t_U32) (rhs : t_U64)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_shr (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shr_879328570 : Core_Ops_Bit.t_Shr ((t_U32)) ((t_U128)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_249__f_Output := t_U32; *) +(* Core_Ops_Bit.Shr_impl_249__f_shr := fun (self : t_U32) (rhs : t_U128)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_shr (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_BitXor_106210830 : Core_Ops_Bit.t_BitXor ((t_U32)) ((t_U32)) := *) +(* { *) +(* Core_Ops_Bit.BitXor_impl_250__f_Output := t_U32; *) +(* Core_Ops_Bit.BitXor_impl_250__f_bitxor := fun (self : t_U32) (rhs : t_U32)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_bitxor (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_BitAnd_880899768 : Core_Ops_Bit.t_BitAnd ((t_U32)) ((t_U32)) := *) +(* { *) +(* Core_Ops_Bit.BitAnd_impl_251__f_Output := t_U32; *) +(* Core_Ops_Bit.BitAnd_impl_251__f_bitand := fun (self : t_U32) (rhs : t_U32)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_bitand (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_BitOr_722198191 : Core_Ops_Bit.t_BitOr ((t_U32)) ((t_U32)) := *) +(* { *) +(* Core_Ops_Bit.BitOr_impl_252__f_Output := t_U32; *) +(* Core_Ops_Bit.BitOr_impl_252__f_bitor := fun (self : t_U32) (rhs : t_U32)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_bitor (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Mul_832015787 : Core_Ops_Arith.t_Mul ((t_U64)) ((t_U64)) := *) +(* { *) +(* Core_Ops_Arith.Mul_impl_209__f_Output := t_U64; *) +(* Core_Ops_Arith.Mul_impl_209__f_mul := fun (self : t_U64) (rhs : t_U64)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_mul (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Rem_472472360 : Core_Ops_Arith.t_Rem ((t_U64)) ((t_U64)) := *) +(* { *) +(* Core_Ops_Arith.Rem_impl_210__f_Output := t_U64; *) +(* Core_Ops_Arith.Rem_impl_210__f_rem := fun (self : t_U64) (rhs : t_U64)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_rem (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Add_398748324 : Core_Ops_Arith.t_Add ((t_U64)) ((t_U64)) := *) +(* { *) +(* Core_Ops_Arith.Add_impl_211__f_Output := t_U64; *) +(* Core_Ops_Arith.Add_impl_211__f_add := fun (self : t_U64) (rhs : t_U64)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_add (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Div_119124993 : Core_Ops_Arith.t_Div ((t_U64)) ((t_U64)) := *) +(* { *) +(* Core_Ops_Arith.Div_impl_212__f_Output := t_U64; *) +(* Core_Ops_Arith.Div_impl_212__f_div := fun (self : t_U64) (rhs : t_U64)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_div (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Neg_1055196925 : Core_Ops_Arith.t_Neg ((t_U64)) := *) +(* { *) +(* Core_Ops_Arith.Neg_impl_206__f_Output := t_U64; *) +(* Core_Ops_Arith.Neg_impl_206__f_neg := fun (self : t_U64)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_sub (Core_Base_Spec_Constants.v_WORDSIZE_64_) (Core_Base_Pos.haxint_rem (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_Spec_Constants.v_WORDSIZE_64_))); *) +(* }. *) + +(* Instance t_Shl_626198177 : Core_Ops_Bit.t_Shl ((t_U64)) ((t_U8)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_213__f_Output := t_U64; *) +(* Core_Ops_Bit.Shl_impl_213__f_shl := fun (self : t_U64) (rhs : t_U8)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_shl (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shl_1053180111 : Core_Ops_Bit.t_Shl ((t_U64)) ((t_U16)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_214__f_Output := t_U64; *) +(* Core_Ops_Bit.Shl_impl_214__f_shl := fun (self : t_U64) (rhs : t_U16)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_shl (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shl_712250 : Core_Ops_Bit.t_Shl ((t_U64)) ((t_U32)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_215__f_Output := t_U64; *) +(* Core_Ops_Bit.Shl_impl_215__f_shl := fun (self : t_U64) (rhs : t_U32)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_shl (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shl_332132599 : Core_Ops_Bit.t_Shl ((t_U64)) ((t_U64)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_216__f_Output := t_U64; *) +(* Core_Ops_Bit.Shl_impl_216__f_shl := fun (self : t_U64) (rhs : t_U64)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_shl (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shl_499060141 : Core_Ops_Bit.t_Shl ((t_U64)) ((t_U128)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_217__f_Output := t_U64; *) +(* Core_Ops_Bit.Shl_impl_217__f_shl := fun (self : t_U64) (rhs : t_U128)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_shl (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shr_380528067 : Core_Ops_Bit.t_Shr ((t_U64)) ((t_U8)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_218__f_Output := t_U64; *) +(* Core_Ops_Bit.Shr_impl_218__f_shr := fun (self : t_U64) (rhs : t_U8)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_shr (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shr_104550441 : Core_Ops_Bit.t_Shr ((t_U64)) ((t_U16)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_219__f_Output := t_U64; *) +(* Core_Ops_Bit.Shr_impl_219__f_shr := fun (self : t_U64) (rhs : t_U16)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_shr (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shr_972891085 : Core_Ops_Bit.t_Shr ((t_U64)) ((t_U32)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_220__f_Output := t_U64; *) +(* Core_Ops_Bit.Shr_impl_220__f_shr := fun (self : t_U64) (rhs : t_U32)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_shr (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shr_222074135 : Core_Ops_Bit.t_Shr ((t_U64)) ((t_U64)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_221__f_Output := t_U64; *) +(* Core_Ops_Bit.Shr_impl_221__f_shr := fun (self : t_U64) (rhs : t_U64)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_shr (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shr_550176806 : Core_Ops_Bit.t_Shr ((t_U64)) ((t_U128)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_222__f_Output := t_U64; *) +(* Core_Ops_Bit.Shr_impl_222__f_shr := fun (self : t_U64) (rhs : t_U128)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_shr (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_BitXor_636393919 : Core_Ops_Bit.t_BitXor ((t_U64)) ((t_U64)) := *) +(* { *) +(* Core_Ops_Bit.BitXor_impl_223__f_Output := t_U64; *) +(* Core_Ops_Bit.BitXor_impl_223__f_bitxor := fun (self : t_U64) (rhs : t_U64)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_bitxor (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_BitAnd_22071289 : Core_Ops_Bit.t_BitAnd ((t_U64)) ((t_U64)) := *) +(* { *) +(* Core_Ops_Bit.BitAnd_impl_224__f_Output := t_U64; *) +(* Core_Ops_Bit.BitAnd_impl_224__f_bitand := fun (self : t_U64) (rhs : t_U64)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_bitand (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_BitOr_624638860 : Core_Ops_Bit.t_BitOr ((t_U64)) ((t_U64)) := *) +(* { *) +(* Core_Ops_Bit.BitOr_impl_225__f_Output := t_U64; *) +(* Core_Ops_Bit.BitOr_impl_225__f_bitor := fun (self : t_U64) (rhs : t_U64)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_bitor (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Mul_122335953 : Core_Ops_Arith.t_Mul ((t_U128)) ((t_U128)) := *) +(* { *) +(* Core_Ops_Arith.Mul_impl_182__f_Output := t_U128; *) +(* Core_Ops_Arith.Mul_impl_182__f_mul := fun (self : t_U128) (rhs : t_U128)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_mul (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Rem_531714227 : Core_Ops_Arith.t_Rem ((t_U128)) ((t_U128)) := *) +(* { *) +(* Core_Ops_Arith.Rem_impl_183__f_Output := t_U128; *) +(* Core_Ops_Arith.Rem_impl_183__f_rem := fun (self : t_U128) (rhs : t_U128)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_rem (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Add_960182017 : Core_Ops_Arith.t_Add ((t_U128)) ((t_U128)) := *) +(* { *) +(* Core_Ops_Arith.Add_impl_184__f_Output := t_U128; *) +(* Core_Ops_Arith.Add_impl_184__f_add := fun (self : t_U128) (rhs : t_U128)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_add (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Div_167702008 : Core_Ops_Arith.t_Div ((t_U128)) ((t_U128)) := *) +(* { *) +(* Core_Ops_Arith.Div_impl_185__f_Output := t_U128; *) +(* Core_Ops_Arith.Div_impl_185__f_div := fun (self : t_U128) (rhs : t_U128)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_div (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Neg_48502464 : Core_Ops_Arith.t_Neg ((t_U128)) := *) +(* { *) +(* Core_Ops_Arith.Neg_impl_179__f_Output := t_U128; *) +(* Core_Ops_Arith.Neg_impl_179__f_neg := fun (self : t_U128)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_sub (Core_Base_Spec_Constants.v_WORDSIZE_128_) (Core_Base_Pos.haxint_rem (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_Spec_Constants.v_WORDSIZE_128_))); *) +(* }. *) + +(* Instance t_Shl_43107595 : Core_Ops_Bit.t_Shl ((t_U128)) ((t_U8)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_186__f_Output := t_U128; *) +(* Core_Ops_Bit.Shl_impl_186__f_shl := fun (self : t_U128) (rhs : t_U8)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_shl (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shl_310395977 : Core_Ops_Bit.t_Shl ((t_U128)) ((t_U16)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_187__f_Output := t_U128; *) +(* Core_Ops_Bit.Shl_impl_187__f_shl := fun (self : t_U128) (rhs : t_U16)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_shl (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shl_377670273 : Core_Ops_Bit.t_Shl ((t_U128)) ((t_U32)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_188__f_Output := t_U128; *) +(* Core_Ops_Bit.Shl_impl_188__f_shl := fun (self : t_U128) (rhs : t_U32)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_shl (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shl_529604166 : Core_Ops_Bit.t_Shl ((t_U128)) ((t_U64)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_189__f_Output := t_U128; *) +(* Core_Ops_Bit.Shl_impl_189__f_shl := fun (self : t_U128) (rhs : t_U64)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_shl (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shl_55456991 : Core_Ops_Bit.t_Shl ((t_U128)) ((t_U128)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_190__f_Output := t_U128; *) +(* Core_Ops_Bit.Shl_impl_190__f_shl := fun (self : t_U128) (rhs : t_U128)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_shl (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shr_318169277 : Core_Ops_Bit.t_Shr ((t_U128)) ((t_U8)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_191__f_Output := t_U128; *) +(* Core_Ops_Bit.Shr_impl_191__f_shr := fun (self : t_U128) (rhs : t_U8)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_shr (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shr_443804107 : Core_Ops_Bit.t_Shr ((t_U128)) ((t_U16)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_192__f_Output := t_U128; *) +(* Core_Ops_Bit.Shr_impl_192__f_shr := fun (self : t_U128) (rhs : t_U16)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_shr (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shr_344515446 : Core_Ops_Bit.t_Shr ((t_U128)) ((t_U32)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_193__f_Output := t_U128; *) +(* Core_Ops_Bit.Shr_impl_193__f_shr := fun (self : t_U128) (rhs : t_U32)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_shr (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shr_573757200 : Core_Ops_Bit.t_Shr ((t_U128)) ((t_U64)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_194__f_Output := t_U128; *) +(* Core_Ops_Bit.Shr_impl_194__f_shr := fun (self : t_U128) (rhs : t_U64)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_shr (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shr_1001493510 : Core_Ops_Bit.t_Shr ((t_U128)) ((t_U128)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_195__f_Output := t_U128; *) +(* Core_Ops_Bit.Shr_impl_195__f_shr := fun (self : t_U128) (rhs : t_U128)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_shr (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_BitXor_74092795 : Core_Ops_Bit.t_BitXor ((t_U128)) ((t_U128)) := *) +(* { *) +(* Core_Ops_Bit.BitXor_impl_196__f_Output := t_U128; *) +(* Core_Ops_Bit.BitXor_impl_196__f_bitxor := fun (self : t_U128) (rhs : t_U128)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_bitxor (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_BitAnd_262162952 : Core_Ops_Bit.t_BitAnd ((t_U128)) ((t_U128)) := *) +(* { *) +(* Core_Ops_Bit.BitAnd_impl_197__f_Output := t_U128; *) +(* Core_Ops_Bit.BitAnd_impl_197__f_bitand := fun (self : t_U128) (rhs : t_U128)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_bitand (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_BitOr_553862406 : Core_Ops_Bit.t_BitOr ((t_U128)) ((t_U128)) := *) +(* { *) +(* Core_Ops_Bit.BitOr_impl_198__f_Output := t_U128; *) +(* Core_Ops_Bit.BitOr_impl_198__f_bitor := fun (self : t_U128) (rhs : t_U128)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Pos.haxint_bitor (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Mul_135460119 : Core_Ops_Arith.t_Mul ((t_I8)) ((t_I8)) := *) +(* { *) +(* Core_Ops_Arith.Mul_impl_153__f_Output := t_I8; *) +(* Core_Ops_Arith.Mul_impl_153__f_mul := fun (self : t_I8) (rhs : t_I8)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_mul (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Rem_14042166 : Core_Ops_Arith.t_Rem ((t_I8)) ((t_I8)) := *) +(* { *) +(* Core_Ops_Arith.Rem_impl_154__f_Output := t_I8; *) +(* Core_Ops_Arith.Rem_impl_154__f_rem := fun (self : t_I8) (rhs : t_I8)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_rem (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Add_520853936 : Core_Ops_Arith.t_Add ((t_I8)) ((t_I8)) := *) +(* { *) +(* Core_Ops_Arith.Add_impl_155__f_Output := t_I8; *) +(* Core_Ops_Arith.Add_impl_155__f_add := fun (self : t_I8) (rhs : t_I8)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_add (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Div_357257531 : Core_Ops_Arith.t_Div ((t_I8)) ((t_I8)) := *) +(* { *) +(* Core_Ops_Arith.Div_impl_156__f_Output := t_I8; *) +(* Core_Ops_Arith.Div_impl_156__f_div := fun (self : t_I8) (rhs : t_I8)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_div (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Neg_832009210 : Core_Ops_Arith.t_Neg ((t_I8)) := *) +(* { *) +(* Core_Ops_Arith.Neg_impl_157__f_Output := t_I8; *) +(* Core_Ops_Arith.Neg_impl_157__f_neg := fun (self : t_I8)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_neg (Core_Base_interface_Coerce.Abstraction__f_lift (self))); *) +(* }. *) + +(* Instance t_Sub_729652689 : Core_Ops_Arith.t_Sub ((t_I8)) ((t_I8)) := *) +(* { *) +(* Core_Ops_Arith.Sub_impl_158__f_Output := t_I8; *) +(* Core_Ops_Arith.Sub_impl_158__f_sub := fun (self : t_I8) (rhs : t_I8)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_sub (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shl_225238942 : Core_Ops_Bit.t_Shl ((t_I8)) ((t_I8)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_159__f_Output := t_I8; *) +(* Core_Ops_Bit.Shl_impl_159__f_shl := fun (self : t_I8) (rhs : t_I8)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_shl (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shl_204151360 : Core_Ops_Bit.t_Shl ((t_I8)) ((t_I16)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_160__f_Output := t_I8; *) +(* Core_Ops_Bit.Shl_impl_160__f_shl := fun (self : t_I8) (rhs : t_I16)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_shl (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shl_508545673 : Core_Ops_Bit.t_Shl ((t_I8)) ((t_I32)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_161__f_Output := t_I8; *) +(* Core_Ops_Bit.Shl_impl_161__f_shl := fun (self : t_I8) (rhs : t_I32)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_shl (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shl_1019695740 : Core_Ops_Bit.t_Shl ((t_I8)) ((t_I64)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_162__f_Output := t_I8; *) +(* Core_Ops_Bit.Shl_impl_162__f_shl := fun (self : t_I8) (rhs : t_I64)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_shl (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shl_752137067 : Core_Ops_Bit.t_Shl ((t_I8)) ((t_I128)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_163__f_Output := t_I8; *) +(* Core_Ops_Bit.Shl_impl_163__f_shl := fun (self : t_I8) (rhs : t_I128)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_shl (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shr_841647917 : Core_Ops_Bit.t_Shr ((t_I8)) ((t_I8)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_164__f_Output := t_I8; *) +(* Core_Ops_Bit.Shr_impl_164__f_shr := fun (self : t_I8) (rhs : t_I8)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_shr (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shr_902850520 : Core_Ops_Bit.t_Shr ((t_I8)) ((t_I16)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_165__f_Output := t_I8; *) +(* Core_Ops_Bit.Shr_impl_165__f_shr := fun (self : t_I8) (rhs : t_I16)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_shr (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shr_464834928 : Core_Ops_Bit.t_Shr ((t_I8)) ((t_I32)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_166__f_Output := t_I8; *) +(* Core_Ops_Bit.Shr_impl_166__f_shr := fun (self : t_I8) (rhs : t_I32)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_shr (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shr_771077753 : Core_Ops_Bit.t_Shr ((t_I8)) ((t_I64)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_167__f_Output := t_I8; *) +(* Core_Ops_Bit.Shr_impl_167__f_shr := fun (self : t_I8) (rhs : t_I64)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_shr (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shr_502209694 : Core_Ops_Bit.t_Shr ((t_I8)) ((t_I128)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_168__f_Output := t_I8; *) +(* Core_Ops_Bit.Shr_impl_168__f_shr := fun (self : t_I8) (rhs : t_I128)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_shr (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_BitXor_232723092 : Core_Ops_Bit.t_BitXor ((t_I8)) ((t_I8)) := *) +(* { *) +(* Core_Ops_Bit.BitXor_impl_169__f_Output := t_I8; *) +(* Core_Ops_Bit.BitXor_impl_169__f_bitxor := fun (self : t_I8) (rhs : t_I8)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_bitxor (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_BitAnd_55639079 : Core_Ops_Bit.t_BitAnd ((t_I8)) ((t_I8)) := *) +(* { *) +(* Core_Ops_Bit.BitAnd_impl_170__f_Output := t_I8; *) +(* Core_Ops_Bit.BitAnd_impl_170__f_bitand := fun (self : t_I8) (rhs : t_I8)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_bitand (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_BitOr_990927128 : Core_Ops_Bit.t_BitOr ((t_I8)) ((t_I8)) := *) +(* { *) +(* Core_Ops_Bit.BitOr_impl_171__f_Output := t_I8; *) +(* Core_Ops_Bit.BitOr_impl_171__f_bitor := fun (self : t_I8) (rhs : t_I8)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_bitor (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Not_601125715 : Core_Ops_Bit.t_Not ((t_I8)) := *) +(* { *) +(* Core_Ops_Bit.Not_impl_152__f_Output := t_I8; *) +(* Core_Ops_Bit.Not_impl_152__f_not := fun (self : t_I8)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_sub (Core_Base_Z.z_neg (Core_Base_interface_Coerce.Abstraction__f_lift (self))) (Core_Base_Spec_Z.v_Z_ONE)); *) +(* }. *) + +(* Instance t_Mul_273911951 : Core_Ops_Arith.t_Mul ((t_I16)) ((t_I16)) := *) +(* { *) +(* Core_Ops_Arith.Mul_impl_126__f_Output := t_I16; *) +(* Core_Ops_Arith.Mul_impl_126__f_mul := fun (self : t_I16) (rhs : t_I16)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_mul (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Rem_576688298 : Core_Ops_Arith.t_Rem ((t_I16)) ((t_I16)) := *) +(* { *) +(* Core_Ops_Arith.Rem_impl_127__f_Output := t_I16; *) +(* Core_Ops_Arith.Rem_impl_127__f_rem := fun (self : t_I16) (rhs : t_I16)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_rem (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Add_855050090 : Core_Ops_Arith.t_Add ((t_I16)) ((t_I16)) := *) +(* { *) +(* Core_Ops_Arith.Add_impl_128__f_Output := t_I16; *) +(* Core_Ops_Arith.Add_impl_128__f_add := fun (self : t_I16) (rhs : t_I16)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_add (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Div_564577343 : Core_Ops_Arith.t_Div ((t_I16)) ((t_I16)) := *) +(* { *) +(* Core_Ops_Arith.Div_impl_129__f_Output := t_I16; *) +(* Core_Ops_Arith.Div_impl_129__f_div := fun (self : t_I16) (rhs : t_I16)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_div (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Neg_655189408 : Core_Ops_Arith.t_Neg ((t_I16)) := *) +(* { *) +(* Core_Ops_Arith.Neg_impl_130__f_Output := t_I16; *) +(* Core_Ops_Arith.Neg_impl_130__f_neg := fun (self : t_I16)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_neg (Core_Base_interface_Coerce.Abstraction__f_lift (self))); *) +(* }. *) + +(* Instance t_Sub_914010601 : Core_Ops_Arith.t_Sub ((t_I16)) ((t_I16)) := *) +(* { *) +(* Core_Ops_Arith.Sub_impl_131__f_Output := t_I16; *) +(* Core_Ops_Arith.Sub_impl_131__f_sub := fun (self : t_I16) (rhs : t_I16)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_sub (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shl_638763785 : Core_Ops_Bit.t_Shl ((t_I16)) ((t_I8)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_132__f_Output := t_I16; *) +(* Core_Ops_Bit.Shl_impl_132__f_shl := fun (self : t_I16) (rhs : t_I8)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_shl (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shl_622821117 : Core_Ops_Bit.t_Shl ((t_I16)) ((t_I16)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_133__f_Output := t_I16; *) +(* Core_Ops_Bit.Shl_impl_133__f_shl := fun (self : t_I16) (rhs : t_I16)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_shl (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shl_997235840 : Core_Ops_Bit.t_Shl ((t_I16)) ((t_I32)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_134__f_Output := t_I16; *) +(* Core_Ops_Bit.Shl_impl_134__f_shl := fun (self : t_I16) (rhs : t_I32)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_shl (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shl_982032177 : Core_Ops_Bit.t_Shl ((t_I16)) ((t_I64)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_135__f_Output := t_I16; *) +(* Core_Ops_Bit.Shl_impl_135__f_shl := fun (self : t_I16) (rhs : t_I64)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_shl (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shl_339202508 : Core_Ops_Bit.t_Shl ((t_I16)) ((t_I128)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_136__f_Output := t_I16; *) +(* Core_Ops_Bit.Shl_impl_136__f_shl := fun (self : t_I16) (rhs : t_I128)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_shl (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shr_39522593 : Core_Ops_Bit.t_Shr ((t_I16)) ((t_I8)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_137__f_Output := t_I16; *) +(* Core_Ops_Bit.Shr_impl_137__f_shr := fun (self : t_I16) (rhs : t_I8)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_shr (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shr_596363530 : Core_Ops_Bit.t_Shr ((t_I16)) ((t_I16)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_138__f_Output := t_I16; *) +(* Core_Ops_Bit.Shr_impl_138__f_shr := fun (self : t_I16) (rhs : t_I16)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_shr (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shr_793399525 : Core_Ops_Bit.t_Shr ((t_I16)) ((t_I32)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_139__f_Output := t_I16; *) +(* Core_Ops_Bit.Shr_impl_139__f_shr := fun (self : t_I16) (rhs : t_I32)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_shr (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shr_373835202 : Core_Ops_Bit.t_Shr ((t_I16)) ((t_I64)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_140__f_Output := t_I16; *) +(* Core_Ops_Bit.Shr_impl_140__f_shr := fun (self : t_I16) (rhs : t_I64)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_shr (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shr_293539279 : Core_Ops_Bit.t_Shr ((t_I16)) ((t_I128)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_141__f_Output := t_I16; *) +(* Core_Ops_Bit.Shr_impl_141__f_shr := fun (self : t_I16) (rhs : t_I128)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_shr (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_BitXor_646543401 : Core_Ops_Bit.t_BitXor ((t_I16)) ((t_I16)) := *) +(* { *) +(* Core_Ops_Bit.BitXor_impl_142__f_Output := t_I16; *) +(* Core_Ops_Bit.BitXor_impl_142__f_bitxor := fun (self : t_I16) (rhs : t_I16)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_bitxor (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_BitAnd_589546786 : Core_Ops_Bit.t_BitAnd ((t_I16)) ((t_I16)) := *) +(* { *) +(* Core_Ops_Bit.BitAnd_impl_143__f_Output := t_I16; *) +(* Core_Ops_Bit.BitAnd_impl_143__f_bitand := fun (self : t_I16) (rhs : t_I16)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_bitand (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_BitOr_929134148 : Core_Ops_Bit.t_BitOr ((t_I16)) ((t_I16)) := *) +(* { *) +(* Core_Ops_Bit.BitOr_impl_144__f_Output := t_I16; *) +(* Core_Ops_Bit.BitOr_impl_144__f_bitor := fun (self : t_I16) (rhs : t_I16)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_bitor (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Not_678376922 : Core_Ops_Bit.t_Not ((t_I16)) := *) +(* { *) +(* Core_Ops_Bit.Not_impl_125__f_Output := t_I16; *) +(* Core_Ops_Bit.Not_impl_125__f_not := fun (self : t_I16)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_sub (Core_Base_Z.z_neg (Core_Base_interface_Coerce.Abstraction__f_lift (self))) (Core_Base_Spec_Z.v_Z_ONE)); *) +(* }. *) + +(* Instance t_Mul_908302232 : Core_Ops_Arith.t_Mul ((t_I32)) ((t_I32)) := *) +(* { *) +(* Core_Ops_Arith.Mul_impl_99__f_Output := t_I32; *) +(* Core_Ops_Arith.Mul_impl_99__f_mul := fun (self : t_I32) (rhs : t_I32)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_mul (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Rem_393249809 : Core_Ops_Arith.t_Rem ((t_I32)) ((t_I32)) := *) +(* { *) +(* Core_Ops_Arith.Rem_impl_100__f_Output := t_I32; *) +(* Core_Ops_Arith.Rem_impl_100__f_rem := fun (self : t_I32) (rhs : t_I32)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_rem (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Add_427383343 : Core_Ops_Arith.t_Add ((t_I32)) ((t_I32)) := *) +(* { *) +(* Core_Ops_Arith.Add_impl_101__f_Output := t_I32; *) +(* Core_Ops_Arith.Add_impl_101__f_add := fun (self : t_I32) (rhs : t_I32)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_add (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Div_384705126 : Core_Ops_Arith.t_Div ((t_I32)) ((t_I32)) := *) +(* { *) +(* Core_Ops_Arith.Div_impl_102__f_Output := t_I32; *) +(* Core_Ops_Arith.Div_impl_102__f_div := fun (self : t_I32) (rhs : t_I32)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_div (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Neg_527623365 : Core_Ops_Arith.t_Neg ((t_I32)) := *) +(* { *) +(* Core_Ops_Arith.Neg_impl_103__f_Output := t_I32; *) +(* Core_Ops_Arith.Neg_impl_103__f_neg := fun (self : t_I32)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_neg (Core_Base_interface_Coerce.Abstraction__f_lift (self))); *) +(* }. *) + +(* Instance t_Sub_872716359 : Core_Ops_Arith.t_Sub ((t_I32)) ((t_I32)) := *) +(* { *) +(* Core_Ops_Arith.Sub_impl_104__f_Output := t_I32; *) +(* Core_Ops_Arith.Sub_impl_104__f_sub := fun (self : t_I32) (rhs : t_I32)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_sub (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shl_730568083 : Core_Ops_Bit.t_Shl ((t_I32)) ((t_I8)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_105__f_Output := t_I32; *) +(* Core_Ops_Bit.Shl_impl_105__f_shl := fun (self : t_I32) (rhs : t_I8)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_shl (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shl_910088866 : Core_Ops_Bit.t_Shl ((t_I32)) ((t_I16)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_106__f_Output := t_I32; *) +(* Core_Ops_Bit.Shl_impl_106__f_shl := fun (self : t_I32) (rhs : t_I16)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_shl (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shl_559763055 : Core_Ops_Bit.t_Shl ((t_I32)) ((t_I32)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_107__f_Output := t_I32; *) +(* Core_Ops_Bit.Shl_impl_107__f_shl := fun (self : t_I32) (rhs : t_I32)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_shl (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shl_278646895 : Core_Ops_Bit.t_Shl ((t_I32)) ((t_I64)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_108__f_Output := t_I32; *) +(* Core_Ops_Bit.Shl_impl_108__f_shl := fun (self : t_I32) (rhs : t_I64)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_shl (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shl_412655554 : Core_Ops_Bit.t_Shl ((t_I32)) ((t_I128)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_109__f_Output := t_I32; *) +(* Core_Ops_Bit.Shl_impl_109__f_shl := fun (self : t_I32) (rhs : t_I128)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_shl (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shr_308848638 : Core_Ops_Bit.t_Shr ((t_I32)) ((t_I8)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_110__f_Output := t_I32; *) +(* Core_Ops_Bit.Shr_impl_110__f_shr := fun (self : t_I32) (rhs : t_I8)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_shr (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shr_393753403 : Core_Ops_Bit.t_Shr ((t_I32)) ((t_I16)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_111__f_Output := t_I32; *) +(* Core_Ops_Bit.Shr_impl_111__f_shr := fun (self : t_I32) (rhs : t_I16)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_shr (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shr_24771957 : Core_Ops_Bit.t_Shr ((t_I32)) ((t_I32)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_112__f_Output := t_I32; *) +(* Core_Ops_Bit.Shr_impl_112__f_shr := fun (self : t_I32) (rhs : t_I32)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_shr (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shr_667254724 : Core_Ops_Bit.t_Shr ((t_I32)) ((t_I64)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_113__f_Output := t_I32; *) +(* Core_Ops_Bit.Shr_impl_113__f_shr := fun (self : t_I32) (rhs : t_I64)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_shr (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shr_233512491 : Core_Ops_Bit.t_Shr ((t_I32)) ((t_I128)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_114__f_Output := t_I32; *) +(* Core_Ops_Bit.Shr_impl_114__f_shr := fun (self : t_I32) (rhs : t_I128)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_shr (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_BitXor_858403630 : Core_Ops_Bit.t_BitXor ((t_I32)) ((t_I32)) := *) +(* { *) +(* Core_Ops_Bit.BitXor_impl_115__f_Output := t_I32; *) +(* Core_Ops_Bit.BitXor_impl_115__f_bitxor := fun (self : t_I32) (rhs : t_I32)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_bitxor (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_BitAnd_296303925 : Core_Ops_Bit.t_BitAnd ((t_I32)) ((t_I32)) := *) +(* { *) +(* Core_Ops_Bit.BitAnd_impl_116__f_Output := t_I32; *) +(* Core_Ops_Bit.BitAnd_impl_116__f_bitand := fun (self : t_I32) (rhs : t_I32)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_bitand (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_BitOr_881580594 : Core_Ops_Bit.t_BitOr ((t_I32)) ((t_I32)) := *) +(* { *) +(* Core_Ops_Bit.BitOr_impl_117__f_Output := t_I32; *) +(* Core_Ops_Bit.BitOr_impl_117__f_bitor := fun (self : t_I32) (rhs : t_I32)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_bitor (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Not_730964962 : Core_Ops_Bit.t_Not ((t_I32)) := *) +(* { *) +(* Core_Ops_Bit.Not_impl_98__f_Output := t_I32; *) +(* Core_Ops_Bit.Not_impl_98__f_not := fun (self : t_I32)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_sub (Core_Base_Z.z_neg (Core_Base_interface_Coerce.Abstraction__f_lift (self))) (Core_Base_Spec_Z.v_Z_ONE)); *) +(* }. *) + +(* Instance t_Mul_598389246 : Core_Ops_Arith.t_Mul ((t_I64)) ((t_I64)) := *) +(* { *) +(* Core_Ops_Arith.Mul_impl_72__f_Output := t_I64; *) +(* Core_Ops_Arith.Mul_impl_72__f_mul := fun (self : t_I64) (rhs : t_I64)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_mul (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Rem_639064997 : Core_Ops_Arith.t_Rem ((t_I64)) ((t_I64)) := *) +(* { *) +(* Core_Ops_Arith.Rem_impl_73__f_Output := t_I64; *) +(* Core_Ops_Arith.Rem_impl_73__f_rem := fun (self : t_I64) (rhs : t_I64)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_rem (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Add_591387563 : Core_Ops_Arith.t_Add ((t_I64)) ((t_I64)) := *) +(* { *) +(* Core_Ops_Arith.Add_impl_74__f_Output := t_I64; *) +(* Core_Ops_Arith.Add_impl_74__f_add := fun (self : t_I64) (rhs : t_I64)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_add (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Div_312372789 : Core_Ops_Arith.t_Div ((t_I64)) ((t_I64)) := *) +(* { *) +(* Core_Ops_Arith.Div_impl_75__f_Output := t_I64; *) +(* Core_Ops_Arith.Div_impl_75__f_div := fun (self : t_I64) (rhs : t_I64)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_div (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Neg_784993849 : Core_Ops_Arith.t_Neg ((t_I64)) := *) +(* { *) +(* Core_Ops_Arith.Neg_impl_76__f_Output := t_I64; *) +(* Core_Ops_Arith.Neg_impl_76__f_neg := fun (self : t_I64)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_neg (Core_Base_interface_Coerce.Abstraction__f_lift (self))); *) +(* }. *) + +(* Instance t_Sub_489165029 : Core_Ops_Arith.t_Sub ((t_I64)) ((t_I64)) := *) +(* { *) +(* Core_Ops_Arith.Sub_impl_77__f_Output := t_I64; *) +(* Core_Ops_Arith.Sub_impl_77__f_sub := fun (self : t_I64) (rhs : t_I64)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_sub (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shl_47817788 : Core_Ops_Bit.t_Shl ((t_I64)) ((t_I8)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_78__f_Output := t_I64; *) +(* Core_Ops_Bit.Shl_impl_78__f_shl := fun (self : t_I64) (rhs : t_I8)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_shl (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shl_244115675 : Core_Ops_Bit.t_Shl ((t_I64)) ((t_I16)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_79__f_Output := t_I64; *) +(* Core_Ops_Bit.Shl_impl_79__f_shl := fun (self : t_I64) (rhs : t_I16)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_shl (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shl_984453638 : Core_Ops_Bit.t_Shl ((t_I64)) ((t_I32)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_80__f_Output := t_I64; *) +(* Core_Ops_Bit.Shl_impl_80__f_shl := fun (self : t_I64) (rhs : t_I32)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_shl (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shl_863585124 : Core_Ops_Bit.t_Shl ((t_I64)) ((t_I64)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_81__f_Output := t_I64; *) +(* Core_Ops_Bit.Shl_impl_81__f_shl := fun (self : t_I64) (rhs : t_I64)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_shl (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shl_570786006 : Core_Ops_Bit.t_Shl ((t_I64)) ((t_I128)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_82__f_Output := t_I64; *) +(* Core_Ops_Bit.Shl_impl_82__f_shl := fun (self : t_I64) (rhs : t_I128)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_shl (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shr_846435395 : Core_Ops_Bit.t_Shr ((t_I64)) ((t_I8)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_83__f_Output := t_I64; *) +(* Core_Ops_Bit.Shr_impl_83__f_shr := fun (self : t_I64) (rhs : t_I8)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_shr (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shr_64104894 : Core_Ops_Bit.t_Shr ((t_I64)) ((t_I16)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_84__f_Output := t_I64; *) +(* Core_Ops_Bit.Shr_impl_84__f_shr := fun (self : t_I64) (rhs : t_I16)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_shr (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shr_692136493 : Core_Ops_Bit.t_Shr ((t_I64)) ((t_I32)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_85__f_Output := t_I64; *) +(* Core_Ops_Bit.Shr_impl_85__f_shr := fun (self : t_I64) (rhs : t_I32)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_shr (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shr_873905561 : Core_Ops_Bit.t_Shr ((t_I64)) ((t_I64)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_86__f_Output := t_I64; *) +(* Core_Ops_Bit.Shr_impl_86__f_shr := fun (self : t_I64) (rhs : t_I64)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_shr (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shr_773411341 : Core_Ops_Bit.t_Shr ((t_I64)) ((t_I128)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_87__f_Output := t_I64; *) +(* Core_Ops_Bit.Shr_impl_87__f_shr := fun (self : t_I64) (rhs : t_I128)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_shr (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_BitXor_235543421 : Core_Ops_Bit.t_BitXor ((t_I64)) ((t_I64)) := *) +(* { *) +(* Core_Ops_Bit.BitXor_impl_88__f_Output := t_I64; *) +(* Core_Ops_Bit.BitXor_impl_88__f_bitxor := fun (self : t_I64) (rhs : t_I64)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_bitxor (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_BitAnd_784589252 : Core_Ops_Bit.t_BitAnd ((t_I64)) ((t_I64)) := *) +(* { *) +(* Core_Ops_Bit.BitAnd_impl_89__f_Output := t_I64; *) +(* Core_Ops_Bit.BitAnd_impl_89__f_bitand := fun (self : t_I64) (rhs : t_I64)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_bitand (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_BitOr_875198672 : Core_Ops_Bit.t_BitOr ((t_I64)) ((t_I64)) := *) +(* { *) +(* Core_Ops_Bit.BitOr_impl_90__f_Output := t_I64; *) +(* Core_Ops_Bit.BitOr_impl_90__f_bitor := fun (self : t_I64) (rhs : t_I64)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_bitor (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Not_626865540 : Core_Ops_Bit.t_Not ((t_I64)) := *) +(* { *) +(* Core_Ops_Bit.Not_impl_71__f_Output := t_I64; *) +(* Core_Ops_Bit.Not_impl_71__f_not := fun (self : t_I64)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_sub (Core_Base_Z.z_neg (Core_Base_interface_Coerce.Abstraction__f_lift (self))) (Core_Base_Spec_Z.v_Z_ONE)); *) +(* }. *) + +(* Instance t_Mul_641825555 : Core_Ops_Arith.t_Mul ((t_I128)) ((t_I128)) := *) +(* { *) +(* Core_Ops_Arith.Mul_impl_45__f_Output := t_I128; *) +(* Core_Ops_Arith.Mul_impl_45__f_mul := fun (self : t_I128) (rhs : t_I128)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_mul (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Rem_996999806 : Core_Ops_Arith.t_Rem ((t_I128)) ((t_I128)) := *) +(* { *) +(* Core_Ops_Arith.Rem_impl_46__f_Output := t_I128; *) +(* Core_Ops_Arith.Rem_impl_46__f_rem := fun (self : t_I128) (rhs : t_I128)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_rem (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Add_926579300 : Core_Ops_Arith.t_Add ((t_I128)) ((t_I128)) := *) +(* { *) +(* Core_Ops_Arith.Add_impl_47__f_Output := t_I128; *) +(* Core_Ops_Arith.Add_impl_47__f_add := fun (self : t_I128) (rhs : t_I128)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_add (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Div_638352727 : Core_Ops_Arith.t_Div ((t_I128)) ((t_I128)) := *) +(* { *) +(* Core_Ops_Arith.Div_impl_48__f_Output := t_I128; *) +(* Core_Ops_Arith.Div_impl_48__f_div := fun (self : t_I128) (rhs : t_I128)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_div (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Neg_507730293 : Core_Ops_Arith.t_Neg ((t_I128)) := *) +(* { *) +(* Core_Ops_Arith.Neg_impl_49__f_Output := t_I128; *) +(* Core_Ops_Arith.Neg_impl_49__f_neg := fun (self : t_I128)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_neg (Core_Base_interface_Coerce.Abstraction__f_lift (self))); *) +(* }. *) + +(* Instance t_Sub_886251542 : Core_Ops_Arith.t_Sub ((t_I128)) ((t_I128)) := *) +(* { *) +(* Core_Ops_Arith.Sub_impl_50__f_Output := t_I128; *) +(* Core_Ops_Arith.Sub_impl_50__f_sub := fun (self : t_I128) (rhs : t_I128)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_sub (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shl_984302111 : Core_Ops_Bit.t_Shl ((t_I128)) ((t_I8)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_51__f_Output := t_I128; *) +(* Core_Ops_Bit.Shl_impl_51__f_shl := fun (self : t_I128) (rhs : t_I8)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_shl (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shl_164997643 : Core_Ops_Bit.t_Shl ((t_I128)) ((t_I16)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_52__f_Output := t_I128; *) +(* Core_Ops_Bit.Shl_impl_52__f_shl := fun (self : t_I128) (rhs : t_I16)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_shl (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shl_1052885176 : Core_Ops_Bit.t_Shl ((t_I128)) ((t_I32)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_53__f_Output := t_I128; *) +(* Core_Ops_Bit.Shl_impl_53__f_shl := fun (self : t_I128) (rhs : t_I32)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_shl (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shl_603410085 : Core_Ops_Bit.t_Shl ((t_I128)) ((t_I64)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_54__f_Output := t_I128; *) +(* Core_Ops_Bit.Shl_impl_54__f_shl := fun (self : t_I128) (rhs : t_I64)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_shl (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shl_858072160 : Core_Ops_Bit.t_Shl ((t_I128)) ((t_I128)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_55__f_Output := t_I128; *) +(* Core_Ops_Bit.Shl_impl_55__f_shl := fun (self : t_I128) (rhs : t_I128)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_shl (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shr_463366903 : Core_Ops_Bit.t_Shr ((t_I128)) ((t_I8)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_56__f_Output := t_I128; *) +(* Core_Ops_Bit.Shr_impl_56__f_shr := fun (self : t_I128) (rhs : t_I8)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_shr (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shr_1069710985 : Core_Ops_Bit.t_Shr ((t_I128)) ((t_I16)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_57__f_Output := t_I128; *) +(* Core_Ops_Bit.Shr_impl_57__f_shr := fun (self : t_I128) (rhs : t_I16)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_shr (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shr_520276901 : Core_Ops_Bit.t_Shr ((t_I128)) ((t_I32)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_58__f_Output := t_I128; *) +(* Core_Ops_Bit.Shr_impl_58__f_shr := fun (self : t_I128) (rhs : t_I32)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_shr (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shr_855575754 : Core_Ops_Bit.t_Shr ((t_I128)) ((t_I64)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_59__f_Output := t_I128; *) +(* Core_Ops_Bit.Shr_impl_59__f_shr := fun (self : t_I128) (rhs : t_I64)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_shr (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Shr_851652046 : Core_Ops_Bit.t_Shr ((t_I128)) ((t_I128)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_60__f_Output := t_I128; *) +(* Core_Ops_Bit.Shr_impl_60__f_shr := fun (self : t_I128) (rhs : t_I128)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_shr (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_BitXor_647313045 : Core_Ops_Bit.t_BitXor ((t_I128)) ((t_I128)) := *) +(* { *) +(* Core_Ops_Bit.BitXor_impl_61__f_Output := t_I128; *) +(* Core_Ops_Bit.BitXor_impl_61__f_bitxor := fun (self : t_I128) (rhs : t_I128)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_bitxor (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_BitAnd_156167702 : Core_Ops_Bit.t_BitAnd ((t_I128)) ((t_I128)) := *) +(* { *) +(* Core_Ops_Bit.BitAnd_impl_62__f_Output := t_I128; *) +(* Core_Ops_Bit.BitAnd_impl_62__f_bitand := fun (self : t_I128) (rhs : t_I128)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_bitand (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_BitOr_77964130 : Core_Ops_Bit.t_BitOr ((t_I128)) ((t_I128)) := *) +(* { *) +(* Core_Ops_Bit.BitOr_impl_63__f_Output := t_I128; *) +(* Core_Ops_Bit.BitOr_impl_63__f_bitor := fun (self : t_I128) (rhs : t_I128)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_bitor (Core_Base_interface_Coerce.Abstraction__f_lift (self)) (Core_Base_interface_Coerce.Abstraction__f_lift (rhs))); *) +(* }. *) + +(* Instance t_Not_521690238 : Core_Ops_Bit.t_Not ((t_I128)) := *) +(* { *) +(* Core_Ops_Bit.Not_impl_44__f_Output := t_I128; *) +(* Core_Ops_Bit.Not_impl_44__f_not := fun (self : t_I128)=> *) +(* Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_Z.z_sub (Core_Base_Z.z_neg (Core_Base_interface_Coerce.Abstraction__f_lift (self))) (Core_Base_Spec_Z.v_Z_ONE)); *) +(* }. *) + +(* Instance t_Sub_861515055 : Core_Ops_Arith.t_Sub ((t_U8)) ((t_U8)) := *) +(* { *) +(* Core_Ops_Arith.Sub_impl_288__f_Output := t_U8; *) +(* Core_Ops_Arith.Sub_impl_288__f_sub := fun (self : t_U8) (rhs : t_U8)=> *) +(* Core_Ops_Arith.Add__f_add (self) (Core_Ops_Arith.Neg__f_neg (rhs)); *) +(* }. *) + +(* Instance t_Not_564807407 : Core_Ops_Bit.t_Not ((t_U8)) := *) +(* { *) +(* Core_Ops_Bit.Not_impl_289__f_Output := t_U8; *) +(* Core_Ops_Bit.Not_impl_289__f_not := fun (self : t_U8)=> *) +(* Core_Ops_Bit.BitXor__f_bitxor (self) (Constants__f_MAX); *) +(* }. *) + +(* Instance t_Sub_48277321 : Core_Ops_Arith.t_Sub ((t_U16)) ((t_U16)) := *) +(* { *) +(* Core_Ops_Arith.Sub_impl_261__f_Output := t_U16; *) +(* Core_Ops_Arith.Sub_impl_261__f_sub := fun (self : t_U16) (rhs : t_U16)=> *) +(* Core_Ops_Arith.Add__f_add (self) (Core_Ops_Arith.Neg__f_neg (rhs)); *) +(* }. *) + +(* Instance t_Not_1072656690 : Core_Ops_Bit.t_Not ((t_U16)) := *) +(* { *) +(* Core_Ops_Bit.Not_impl_262__f_Output := t_U16; *) +(* Core_Ops_Bit.Not_impl_262__f_not := fun (self : t_U16)=> *) +(* Core_Ops_Bit.BitXor__f_bitxor (self) (Constants__f_MAX); *) +(* }. *) + +(* Instance t_Sub_1029712545 : Core_Ops_Arith.t_Sub ((t_U32)) ((t_U32)) := *) +(* { *) +(* Core_Ops_Arith.Sub_impl_234__f_Output := t_U32; *) +(* Core_Ops_Arith.Sub_impl_234__f_sub := fun (self : t_U32) (rhs : t_U32)=> *) +(* Core_Ops_Arith.Add__f_add (self) (Core_Ops_Arith.Neg__f_neg (rhs)); *) +(* }. *) + +(* Instance t_Not_67714611 : Core_Ops_Bit.t_Not ((t_U32)) := *) +(* { *) +(* Core_Ops_Bit.Not_impl_235__f_Output := t_U32; *) +(* Core_Ops_Bit.Not_impl_235__f_not := fun (self : t_U32)=> *) +(* Core_Ops_Bit.BitXor__f_bitxor (self) (Constants__f_MAX); *) +(* }. *) + +(* Instance t_Sub_1022464478 : Core_Ops_Arith.t_Sub ((t_U64)) ((t_U64)) := *) +(* { *) +(* Core_Ops_Arith.Sub_impl_207__f_Output := t_U64; *) +(* Core_Ops_Arith.Sub_impl_207__f_sub := fun (self : t_U64) (rhs : t_U64)=> *) +(* Core_Ops_Arith.Add__f_add (self) (Core_Ops_Arith.Neg__f_neg (rhs)); *) +(* }. *) + +(* Instance t_Not_794767082 : Core_Ops_Bit.t_Not ((t_U64)) := *) +(* { *) +(* Core_Ops_Bit.Not_impl_208__f_Output := t_U64; *) +(* Core_Ops_Bit.Not_impl_208__f_not := fun (self : t_U64)=> *) +(* Core_Ops_Bit.BitXor__f_bitxor (self) (Constants__f_MAX); *) +(* }. *) + +(* Instance t_Sub_151770474 : Core_Ops_Arith.t_Sub ((t_U128)) ((t_U128)) := *) +(* { *) +(* Core_Ops_Arith.Sub_impl_180__f_Output := t_U128; *) +(* Core_Ops_Arith.Sub_impl_180__f_sub := fun (self : t_U128) (rhs : t_U128)=> *) +(* Core_Ops_Arith.Add__f_add (self) (Core_Ops_Arith.Neg__f_neg (rhs)); *) +(* }. *) + +(* Instance t_Not_237389510 : Core_Ops_Bit.t_Not ((t_U128)) := *) +(* { *) +(* Core_Ops_Bit.Not_impl_181__f_Output := t_U128; *) +(* Core_Ops_Bit.Not_impl_181__f_not := fun (self : t_U128)=> *) +(* Core_Ops_Bit.BitXor__f_bitxor (self) (Constants__f_MAX); *) +(* }. *) diff --git a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_interface_Int_I128_proofs.v b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_interface_Int_I128_proofs.v index a6b1ef40b..02a7a7afe 100644 --- a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_interface_Int_I128_proofs.v +++ b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_interface_Int_I128_proofs.v @@ -9,57 +9,13 @@ Require Import String. Require Import Coq.Floats.Floats. From RecordUpdate Require Import RecordSet. Import RecordSetNotations. +From Core Require Import Core. -(* From Core Require Import Core. *) +(* NotImplementedYet *) -(* TODO: Replace this dummy lib with core lib *) -Class t_Sized (T : Type) := { }. -Definition t_u8 := Z. -Definition t_u16 := Z. -Definition t_u32 := Z. -Definition t_u64 := Z. -Definition t_u128 := Z. -Definition t_usize := Z. -Definition t_i8 := Z. -Definition t_i16 := Z. -Definition t_i32 := Z. -Definition t_i64 := Z. -Definition t_i128 := Z. -Definition t_isize := Z. -Definition t_Array T (x : t_usize) := list T. -Definition t_String := string. -Definition ToString_f_to_string (x : string) := x. -Instance Sized_any : forall {t_A}, t_Sized t_A := {}. -Class t_Clone (T : Type) := { Clone_f_clone : T -> T }. -Instance Clone_any : forall {t_A}, t_Clone t_A := {Clone_f_clone := fun x => x}. -Definition t_Slice (T : Type) := list T. -Definition unsize {T : Type} : list T -> t_Slice T := id. -Definition t_PartialEq_f_eq x y := x =? y. -Definition t_Rem_f_rem (x y : Z) := x mod y. -Definition assert (b : bool) (* `{H_assert : b = true} *) : unit := tt. -Inductive globality := | t_Global. -Definition t_Vec T (_ : globality) : Type := list T. -Definition impl_1__append {T} l1 l2 : list T * list T := (app l1 l2, l2). -Definition impl_1__len {A} (l : list A) := Z.of_nat (List.length l). -Definition impl__new {A} (_ : Datatypes.unit) : list A := nil. -Definition impl__with_capacity {A} (_ : Z) : list A := nil. -Definition impl_1__push {A} l (x : A) := cons x l. -Class t_From (A B : Type) := { From_f_from : B -> A }. -Definition impl__to_vec {T} (x : t_Slice T) : t_Vec T t_Global := x. -Class t_Into (A B : Type) := { Into_f_into : A -> B }. -Instance t_Into_from_t_From {A B : Type} `{H : t_From B A} : t_Into A B := { Into_f_into x := @From_f_from B A H x }. -Definition from_elem {A} (x : A) (l : Z) := repeat x (Z.to_nat l). -Definition t_Option := option. -Definition impl__map {A B} (x : t_Option A) (f : A -> B) : t_Option B := match x with | Some x => Some (f x) | None => None end. -Definition t_Add_f_add x y := x + y. -Class Cast A B := { cast : A -> B }. -Instance cast_t_u8_t_u32 : Cast t_u8 t_u32 := {| cast x := x |}. -(* / dummy lib *) -From Core Require Import Core_Base_interface_Int. -Export Core_Base_interface_Int. -Lemma abstract_concretize_cancel (x : t_I128) : +Lemma abstract_concretize_cancel (x : Core_Base_interface_Int.t_I128) : -> - PartialEq_f_eq (Concretization_f_concretize (Abstraction_f_lift (Clone_f_clone (x)))) (x) = true. + Core_Cmp.PartialEq__f_eq (Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (x)))) (x) = true. Proof. Admitted. diff --git a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_interface_Int_I16_proofs.v b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_interface_Int_I16_proofs.v index 9a349820b..16e07a80b 100644 --- a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_interface_Int_I16_proofs.v +++ b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_interface_Int_I16_proofs.v @@ -9,57 +9,13 @@ Require Import String. Require Import Coq.Floats.Floats. From RecordUpdate Require Import RecordSet. Import RecordSetNotations. +From Core Require Import Core. -(* From Core Require Import Core. *) +(* NotImplementedYet *) -(* TODO: Replace this dummy lib with core lib *) -Class t_Sized (T : Type) := { }. -Definition t_u8 := Z. -Definition t_u16 := Z. -Definition t_u32 := Z. -Definition t_u64 := Z. -Definition t_u128 := Z. -Definition t_usize := Z. -Definition t_i8 := Z. -Definition t_i16 := Z. -Definition t_i32 := Z. -Definition t_i64 := Z. -Definition t_i128 := Z. -Definition t_isize := Z. -Definition t_Array T (x : t_usize) := list T. -Definition t_String := string. -Definition ToString_f_to_string (x : string) := x. -Instance Sized_any : forall {t_A}, t_Sized t_A := {}. -Class t_Clone (T : Type) := { Clone_f_clone : T -> T }. -Instance Clone_any : forall {t_A}, t_Clone t_A := {Clone_f_clone := fun x => x}. -Definition t_Slice (T : Type) := list T. -Definition unsize {T : Type} : list T -> t_Slice T := id. -Definition t_PartialEq_f_eq x y := x =? y. -Definition t_Rem_f_rem (x y : Z) := x mod y. -Definition assert (b : bool) (* `{H_assert : b = true} *) : unit := tt. -Inductive globality := | t_Global. -Definition t_Vec T (_ : globality) : Type := list T. -Definition impl_1__append {T} l1 l2 : list T * list T := (app l1 l2, l2). -Definition impl_1__len {A} (l : list A) := Z.of_nat (List.length l). -Definition impl__new {A} (_ : Datatypes.unit) : list A := nil. -Definition impl__with_capacity {A} (_ : Z) : list A := nil. -Definition impl_1__push {A} l (x : A) := cons x l. -Class t_From (A B : Type) := { From_f_from : B -> A }. -Definition impl__to_vec {T} (x : t_Slice T) : t_Vec T t_Global := x. -Class t_Into (A B : Type) := { Into_f_into : A -> B }. -Instance t_Into_from_t_From {A B : Type} `{H : t_From B A} : t_Into A B := { Into_f_into x := @From_f_from B A H x }. -Definition from_elem {A} (x : A) (l : Z) := repeat x (Z.to_nat l). -Definition t_Option := option. -Definition impl__map {A B} (x : t_Option A) (f : A -> B) : t_Option B := match x with | Some x => Some (f x) | None => None end. -Definition t_Add_f_add x y := x + y. -Class Cast A B := { cast : A -> B }. -Instance cast_t_u8_t_u32 : Cast t_u8 t_u32 := {| cast x := x |}. -(* / dummy lib *) -From Core Require Import Core_Base_interface_Int. -Export Core_Base_interface_Int. -Lemma abstract_concretize_cancel (x : t_I16) : +Lemma abstract_concretize_cancel (x : Core_Base_interface_Int.t_I16) : -> - PartialEq_f_eq (Concretization_f_concretize (Abstraction_f_lift (Clone_f_clone (x)))) (x) = true. + Core_Cmp.PartialEq__f_eq (Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (x)))) (x) = true. Proof. Admitted. diff --git a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_interface_Int_I32_proofs.v b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_interface_Int_I32_proofs.v index 9ae26ec4a..e28ad4f80 100644 --- a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_interface_Int_I32_proofs.v +++ b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_interface_Int_I32_proofs.v @@ -9,57 +9,13 @@ Require Import String. Require Import Coq.Floats.Floats. From RecordUpdate Require Import RecordSet. Import RecordSetNotations. +From Core Require Import Core. -(* From Core Require Import Core. *) +(* NotImplementedYet *) -(* TODO: Replace this dummy lib with core lib *) -Class t_Sized (T : Type) := { }. -Definition t_u8 := Z. -Definition t_u16 := Z. -Definition t_u32 := Z. -Definition t_u64 := Z. -Definition t_u128 := Z. -Definition t_usize := Z. -Definition t_i8 := Z. -Definition t_i16 := Z. -Definition t_i32 := Z. -Definition t_i64 := Z. -Definition t_i128 := Z. -Definition t_isize := Z. -Definition t_Array T (x : t_usize) := list T. -Definition t_String := string. -Definition ToString_f_to_string (x : string) := x. -Instance Sized_any : forall {t_A}, t_Sized t_A := {}. -Class t_Clone (T : Type) := { Clone_f_clone : T -> T }. -Instance Clone_any : forall {t_A}, t_Clone t_A := {Clone_f_clone := fun x => x}. -Definition t_Slice (T : Type) := list T. -Definition unsize {T : Type} : list T -> t_Slice T := id. -Definition t_PartialEq_f_eq x y := x =? y. -Definition t_Rem_f_rem (x y : Z) := x mod y. -Definition assert (b : bool) (* `{H_assert : b = true} *) : unit := tt. -Inductive globality := | t_Global. -Definition t_Vec T (_ : globality) : Type := list T. -Definition impl_1__append {T} l1 l2 : list T * list T := (app l1 l2, l2). -Definition impl_1__len {A} (l : list A) := Z.of_nat (List.length l). -Definition impl__new {A} (_ : Datatypes.unit) : list A := nil. -Definition impl__with_capacity {A} (_ : Z) : list A := nil. -Definition impl_1__push {A} l (x : A) := cons x l. -Class t_From (A B : Type) := { From_f_from : B -> A }. -Definition impl__to_vec {T} (x : t_Slice T) : t_Vec T t_Global := x. -Class t_Into (A B : Type) := { Into_f_into : A -> B }. -Instance t_Into_from_t_From {A B : Type} `{H : t_From B A} : t_Into A B := { Into_f_into x := @From_f_from B A H x }. -Definition from_elem {A} (x : A) (l : Z) := repeat x (Z.to_nat l). -Definition t_Option := option. -Definition impl__map {A B} (x : t_Option A) (f : A -> B) : t_Option B := match x with | Some x => Some (f x) | None => None end. -Definition t_Add_f_add x y := x + y. -Class Cast A B := { cast : A -> B }. -Instance cast_t_u8_t_u32 : Cast t_u8 t_u32 := {| cast x := x |}. -(* / dummy lib *) -From Core Require Import Core_Base_interface_Int. -Export Core_Base_interface_Int. -Lemma abstract_concretize_cancel (x : t_I32) : +Lemma abstract_concretize_cancel (x : Core_Base_interface_Int.t_I32) : -> - PartialEq_f_eq (Concretization_f_concretize (Abstraction_f_lift (Clone_f_clone (x)))) (x) = true. + Core_Cmp.PartialEq__f_eq (Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (x)))) (x) = true. Proof. Admitted. diff --git a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_interface_Int_I64_proofs.v b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_interface_Int_I64_proofs.v index f0492b7d3..ff51654b8 100644 --- a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_interface_Int_I64_proofs.v +++ b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_interface_Int_I64_proofs.v @@ -9,57 +9,13 @@ Require Import String. Require Import Coq.Floats.Floats. From RecordUpdate Require Import RecordSet. Import RecordSetNotations. +From Core Require Import Core. -(* From Core Require Import Core. *) +(* NotImplementedYet *) -(* TODO: Replace this dummy lib with core lib *) -Class t_Sized (T : Type) := { }. -Definition t_u8 := Z. -Definition t_u16 := Z. -Definition t_u32 := Z. -Definition t_u64 := Z. -Definition t_u128 := Z. -Definition t_usize := Z. -Definition t_i8 := Z. -Definition t_i16 := Z. -Definition t_i32 := Z. -Definition t_i64 := Z. -Definition t_i128 := Z. -Definition t_isize := Z. -Definition t_Array T (x : t_usize) := list T. -Definition t_String := string. -Definition ToString_f_to_string (x : string) := x. -Instance Sized_any : forall {t_A}, t_Sized t_A := {}. -Class t_Clone (T : Type) := { Clone_f_clone : T -> T }. -Instance Clone_any : forall {t_A}, t_Clone t_A := {Clone_f_clone := fun x => x}. -Definition t_Slice (T : Type) := list T. -Definition unsize {T : Type} : list T -> t_Slice T := id. -Definition t_PartialEq_f_eq x y := x =? y. -Definition t_Rem_f_rem (x y : Z) := x mod y. -Definition assert (b : bool) (* `{H_assert : b = true} *) : unit := tt. -Inductive globality := | t_Global. -Definition t_Vec T (_ : globality) : Type := list T. -Definition impl_1__append {T} l1 l2 : list T * list T := (app l1 l2, l2). -Definition impl_1__len {A} (l : list A) := Z.of_nat (List.length l). -Definition impl__new {A} (_ : Datatypes.unit) : list A := nil. -Definition impl__with_capacity {A} (_ : Z) : list A := nil. -Definition impl_1__push {A} l (x : A) := cons x l. -Class t_From (A B : Type) := { From_f_from : B -> A }. -Definition impl__to_vec {T} (x : t_Slice T) : t_Vec T t_Global := x. -Class t_Into (A B : Type) := { Into_f_into : A -> B }. -Instance t_Into_from_t_From {A B : Type} `{H : t_From B A} : t_Into A B := { Into_f_into x := @From_f_from B A H x }. -Definition from_elem {A} (x : A) (l : Z) := repeat x (Z.to_nat l). -Definition t_Option := option. -Definition impl__map {A B} (x : t_Option A) (f : A -> B) : t_Option B := match x with | Some x => Some (f x) | None => None end. -Definition t_Add_f_add x y := x + y. -Class Cast A B := { cast : A -> B }. -Instance cast_t_u8_t_u32 : Cast t_u8 t_u32 := {| cast x := x |}. -(* / dummy lib *) -From Core Require Import Core_Base_interface_Int. -Export Core_Base_interface_Int. -Lemma abstract_concretize_cancel (x : t_I64) : +Lemma abstract_concretize_cancel (x : Core_Base_interface_Int.t_I64) : -> - PartialEq_f_eq (Concretization_f_concretize (Abstraction_f_lift (Clone_f_clone (x)))) (x) = true. + Core_Cmp.PartialEq__f_eq (Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (x)))) (x) = true. Proof. Admitted. diff --git a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_interface_Int_I8_proofs.v b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_interface_Int_I8_proofs.v index 55cc0bd73..e47f64cf5 100644 --- a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_interface_Int_I8_proofs.v +++ b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_interface_Int_I8_proofs.v @@ -9,57 +9,13 @@ Require Import String. Require Import Coq.Floats.Floats. From RecordUpdate Require Import RecordSet. Import RecordSetNotations. +From Core Require Import Core. -(* From Core Require Import Core. *) +(* NotImplementedYet *) -(* TODO: Replace this dummy lib with core lib *) -Class t_Sized (T : Type) := { }. -Definition t_u8 := Z. -Definition t_u16 := Z. -Definition t_u32 := Z. -Definition t_u64 := Z. -Definition t_u128 := Z. -Definition t_usize := Z. -Definition t_i8 := Z. -Definition t_i16 := Z. -Definition t_i32 := Z. -Definition t_i64 := Z. -Definition t_i128 := Z. -Definition t_isize := Z. -Definition t_Array T (x : t_usize) := list T. -Definition t_String := string. -Definition ToString_f_to_string (x : string) := x. -Instance Sized_any : forall {t_A}, t_Sized t_A := {}. -Class t_Clone (T : Type) := { Clone_f_clone : T -> T }. -Instance Clone_any : forall {t_A}, t_Clone t_A := {Clone_f_clone := fun x => x}. -Definition t_Slice (T : Type) := list T. -Definition unsize {T : Type} : list T -> t_Slice T := id. -Definition t_PartialEq_f_eq x y := x =? y. -Definition t_Rem_f_rem (x y : Z) := x mod y. -Definition assert (b : bool) (* `{H_assert : b = true} *) : unit := tt. -Inductive globality := | t_Global. -Definition t_Vec T (_ : globality) : Type := list T. -Definition impl_1__append {T} l1 l2 : list T * list T := (app l1 l2, l2). -Definition impl_1__len {A} (l : list A) := Z.of_nat (List.length l). -Definition impl__new {A} (_ : Datatypes.unit) : list A := nil. -Definition impl__with_capacity {A} (_ : Z) : list A := nil. -Definition impl_1__push {A} l (x : A) := cons x l. -Class t_From (A B : Type) := { From_f_from : B -> A }. -Definition impl__to_vec {T} (x : t_Slice T) : t_Vec T t_Global := x. -Class t_Into (A B : Type) := { Into_f_into : A -> B }. -Instance t_Into_from_t_From {A B : Type} `{H : t_From B A} : t_Into A B := { Into_f_into x := @From_f_from B A H x }. -Definition from_elem {A} (x : A) (l : Z) := repeat x (Z.to_nat l). -Definition t_Option := option. -Definition impl__map {A B} (x : t_Option A) (f : A -> B) : t_Option B := match x with | Some x => Some (f x) | None => None end. -Definition t_Add_f_add x y := x + y. -Class Cast A B := { cast : A -> B }. -Instance cast_t_u8_t_u32 : Cast t_u8 t_u32 := {| cast x := x |}. -(* / dummy lib *) -From Core Require Import Core_Base_interface_Int. -Export Core_Base_interface_Int. -Lemma abstract_concretize_cancel (x : t_I8) : +Lemma abstract_concretize_cancel (x : Core_Base_interface_Int.t_I8) : -> - PartialEq_f_eq (Concretization_f_concretize (Abstraction_f_lift (Clone_f_clone (x)))) (x) = true. + Core_Cmp.PartialEq__f_eq (Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (x)))) (x) = true. Proof. Admitted. diff --git a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_interface_Int_U128_proofs.v b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_interface_Int_U128_proofs.v index 795ef01c7..0f3579a76 100644 --- a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_interface_Int_U128_proofs.v +++ b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_interface_Int_U128_proofs.v @@ -9,77 +9,128 @@ Require Import String. Require Import Coq.Floats.Floats. From RecordUpdate Require Import RecordSet. Import RecordSetNotations. +From Core Require Import Core. -(* From Core Require Import Core. *) - -(* TODO: Replace this dummy lib with core lib *) -Class t_Sized (T : Type) := { }. -Definition t_u8 := Z. -Definition t_u16 := Z. -Definition t_u32 := Z. -Definition t_u64 := Z. -Definition t_u128 := Z. -Definition t_usize := Z. -Definition t_i8 := Z. -Definition t_i16 := Z. -Definition t_i32 := Z. -Definition t_i64 := Z. -Definition t_i128 := Z. -Definition t_isize := Z. -Definition t_Array T (x : t_usize) := list T. -Definition t_String := string. -Definition ToString_f_to_string (x : string) := x. -Instance Sized_any : forall {t_A}, t_Sized t_A := {}. -Class t_Clone (T : Type) := { Clone_f_clone : T -> T }. -Instance Clone_any : forall {t_A}, t_Clone t_A := {Clone_f_clone := fun x => x}. -Definition t_Slice (T : Type) := list T. -Definition unsize {T : Type} : list T -> t_Slice T := id. -Definition t_PartialEq_f_eq x y := x =? y. -Definition t_Rem_f_rem (x y : Z) := x mod y. -Definition assert (b : bool) (* `{H_assert : b = true} *) : unit := tt. -Inductive globality := | t_Global. -Definition t_Vec T (_ : globality) : Type := list T. -Definition impl_1__append {T} l1 l2 : list T * list T := (app l1 l2, l2). -Definition impl_1__len {A} (l : list A) := Z.of_nat (List.length l). -Definition impl__new {A} (_ : Datatypes.unit) : list A := nil. -Definition impl__with_capacity {A} (_ : Z) : list A := nil. -Definition impl_1__push {A} l (x : A) := cons x l. -Class t_From (A B : Type) := { From_f_from : B -> A }. -Definition impl__to_vec {T} (x : t_Slice T) : t_Vec T t_Global := x. -Class t_Into (A B : Type) := { Into_f_into : A -> B }. -Instance t_Into_from_t_From {A B : Type} `{H : t_From B A} : t_Into A B := { Into_f_into x := @From_f_from B A H x }. -Definition from_elem {A} (x : A) (l : Z) := repeat x (Z.to_nat l). -Definition t_Option := option. -Definition impl__map {A B} (x : t_Option A) (f : A -> B) : t_Option B := match x with | Some x => Some (f x) | None => None end. -Definition t_Add_f_add x y := x + y. -Class Cast A B := { cast : A -> B }. -Instance cast_t_u8_t_u32 : Cast t_u8 t_u32 := {| cast x := x |}. -(* / dummy lib *) - -From Core Require Import Core_Base_interface_Int. -Export Core_Base_interface_Int. - -Lemma abstract_concretize_cancel (x : t_U128) : - -> - PartialEq_f_eq (Concretization_f_concretize (Abstraction_f_lift (Clone_f_clone (x)))) (x) = true. -Proof. Admitted. - -Lemma mod_add (x : t_U128) (y : t_U128) (z : t_U128) : - -> - orb (haxint_le (v_WORDSIZE_128_) (haxint_add (Abstraction_f_lift (Clone_f_clone (x))) (Abstraction_f_lift (Clone_f_clone (y))))) (PartialEq_f_eq (Rem_f_rem (Add_f_add (Clone_f_clone (x)) (Clone_f_clone (y))) (Clone_f_clone (z))) (Rem_f_rem (Add_f_add (Rem_f_rem (x) (Clone_f_clone (z))) (Rem_f_rem (y) (Clone_f_clone (z)))) (z))) = true. -Proof. Admitted. - -Lemma mod_mul (x : t_U128) (y : t_U128) (z : t_U128) : - -> - orb (haxint_lt (v_WORDSIZE_128_) (haxint_mul (Abstraction_f_lift (Clone_f_clone (x))) (Abstraction_f_lift (Clone_f_clone (y))))) (PartialEq_f_eq (Rem_f_rem (Mul_f_mul (Clone_f_clone (x)) (Clone_f_clone (y))) (Clone_f_clone (z))) (Rem_f_rem (Rem_f_rem (Mul_f_mul (Rem_f_rem (x) (Clone_f_clone (z))) (y)) (Clone_f_clone (z))) (z))) = true. -Proof. Admitted. - -Lemma mod_one (x : t_U128) : - -> - PartialEq_f_eq (Rem_f_rem (x) (Constants_f_ONE)) (Constants_f_ZERO) = true. -Proof. Admitted. - -Lemma mod_sub (x : t_U128) (y : t_U128) (z : t_U128) : - -> - orb (orb (PartialOrd_f_lt (Clone_f_clone (x)) (Clone_f_clone (y))) (PartialOrd_f_le (Clone_f_clone (z)) (Clone_f_clone (x)))) (PartialEq_f_eq (Rem_f_rem (Sub_f_sub (Clone_f_clone (x)) (Clone_f_clone (y))) (Clone_f_clone (z))) (Rem_f_rem (Sub_f_sub (Rem_f_rem (x) (Clone_f_clone (z))) (Rem_f_rem (y) (Clone_f_clone (z)))) (z))) = true. +(* NotImplementedYet *) + + + +Lemma abstract_concretize_cancel (x : Core_Base_interface_Int.t_U128) : + -> + Core_Cmp.PartialEq__f_eq (Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (x)))) (x) = true. +Proof. Admitted. + +Lemma addC (x : Core_Base_interface_Int.t_U128) (y : Core_Base_interface_Int.t_U128) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Add__f_add (Core_Clone.Clone__f_clone (x)) (Core_Clone.Clone__f_clone (y))) (Core_Ops_Arith.Add__f_add (y) (x)) = true. +Proof. Admitted. + +Lemma addA (x : Core_Base_interface_Int.t_U128) (y : Core_Base_interface_Int.t_U128) (z : Core_Base_interface_Int.t_U128) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Add__f_add (Core_Clone.Clone__f_clone (x)) (Core_Ops_Arith.Add__f_add (Core_Clone.Clone__f_clone (y)) (Core_Clone.Clone__f_clone (z)))) (Core_Ops_Arith.Add__f_add (Core_Ops_Arith.Add__f_add (x) (y)) (z)) = true. +Proof. Admitted. + +Lemma add_0_r (x : Core_Base_interface_Int.t_U128) (y : Core_Base_interface_Int.t_U128) (z : Core_Base_interface_Int.t_U128) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Add__f_add (Core_Clone.Clone__f_clone (x)) (Core_Base_interface_Int.Constants__f_ZERO)) (x) = true. +Proof. Admitted. + +Lemma add_0_l (x : Core_Base_interface_Int.t_U128) (y : Core_Base_interface_Int.t_U128) (z : Core_Base_interface_Int.t_U128) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Add__f_add (Core_Base_interface_Int.Constants__f_ZERO) (Core_Clone.Clone__f_clone (x))) (x) = true. +Proof. Admitted. + +Lemma neg_idemp (x : Core_Base_interface_Int.t_U128) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Neg__f_neg (Core_Ops_Arith.Neg__f_neg (Core_Clone.Clone__f_clone (x)))) (x) = true. +Proof. Admitted. + +Lemma sub_is (x : Core_Base_interface_Int.t_U128) (y : Core_Base_interface_Int.t_U128) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Sub__f_sub (Core_Clone.Clone__f_clone (x)) (Core_Clone.Clone__f_clone (y))) (Core_Ops_Arith.Add__f_add (x) (Core_Ops_Arith.Neg__f_neg (y))) = true. +Proof. Admitted. + +Lemma sub_distr (x : Core_Base_interface_Int.t_U128) (y : Core_Base_interface_Int.t_U128) (z : Core_Base_interface_Int.t_U128) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Sub__f_sub (Core_Clone.Clone__f_clone (x)) (Core_Ops_Arith.Add__f_add (Core_Clone.Clone__f_clone (y)) (Core_Clone.Clone__f_clone (z)))) (Core_Ops_Arith.Add__f_add (x) (Core_Ops_Arith.Add__f_add (Core_Ops_Arith.Neg__f_neg (y)) (Core_Ops_Arith.Neg__f_neg (z)))) = true. +Proof. Admitted. + +Lemma addN (x : Core_Base_interface_Int.t_U128) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Sub__f_sub (Core_Clone.Clone__f_clone (x)) (x)) (Core_Base_interface_Int.Constants__f_ZERO) = true. +Proof. Admitted. + +Lemma mul_1_r (x : Core_Base_interface_Int.t_U128) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Mul__f_mul (Core_Clone.Clone__f_clone (x)) (Core_Base_interface_Int.Constants__f_ONE)) (x) = true. +Proof. Admitted. + +Lemma mul_1_l (x : Core_Base_interface_Int.t_U128) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Mul__f_mul (Core_Base_interface_Int.Constants__f_ONE) (Core_Clone.Clone__f_clone (x))) (x) = true. +Proof. Admitted. + +Lemma mulC (x : Core_Base_interface_Int.t_U128) (y : Core_Base_interface_Int.t_U128) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Mul__f_mul (Core_Clone.Clone__f_clone (x)) (Core_Clone.Clone__f_clone (y))) (Core_Ops_Arith.Mul__f_mul (y) (x)) = true. +Proof. Admitted. + +Lemma mulA (x : Core_Base_interface_Int.t_U128) (y : Core_Base_interface_Int.t_U128) (z : Core_Base_interface_Int.t_U128) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Mul__f_mul (Core_Clone.Clone__f_clone (x)) (Core_Ops_Arith.Mul__f_mul (Core_Clone.Clone__f_clone (y)) (Core_Clone.Clone__f_clone (z)))) (Core_Ops_Arith.Mul__f_mul (Core_Ops_Arith.Mul__f_mul (x) (y)) (z)) = true. +Proof. Admitted. + +Lemma mul_distr (x : Core_Base_interface_Int.t_U128) (y : Core_Base_interface_Int.t_U128) (z : Core_Base_interface_Int.t_U128) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Mul__f_mul (Core_Clone.Clone__f_clone (x)) (Core_Ops_Arith.Add__f_add (Core_Clone.Clone__f_clone (y)) (Core_Clone.Clone__f_clone (z)))) (Core_Ops_Arith.Add__f_add (Core_Ops_Arith.Mul__f_mul (Core_Clone.Clone__f_clone (x)) (y)) (Core_Ops_Arith.Mul__f_mul (x) (z))) = true. +Proof. Admitted. + +Lemma mul_opp (x : Core_Base_interface_Int.t_U128) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Neg__f_neg (Core_Clone.Clone__f_clone (x))) (Core_Ops_Arith.Mul__f_mul (Core_Ops_Arith.Neg__f_neg (Core_Base_interface_Int.Constants__f_ONE)) (x)) = true. +Proof. Admitted. + +Lemma div_1_r (x : Core_Base_interface_Int.t_U128) (y : Core_Base_interface_Int.t_U128) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Div__f_div (Core_Clone.Clone__f_clone (x)) (Core_Base_interface_Int.Constants__f_ONE)) (x) = true. +Proof. Admitted. + +Lemma shl_1_ (x : Core_Base_interface_Int.t_U128) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Bit.Shl__f_shl (Core_Clone.Clone__f_clone (x)) (Core_Base_interface_Int.Constants__f_ONE)) (Core_Ops_Arith.Add__f_add (Core_Clone.Clone__f_clone (x)) (x)) = true. +Proof. Admitted. + +Lemma shr_1_ (x : Core_Base_interface_Int.t_U128) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Bit.Shr__f_shr (Core_Clone.Clone__f_clone (x)) (Core_Base_interface_Int.Constants__f_ONE)) (Core_Ops_Arith.Div__f_div (Core_Clone.Clone__f_clone (x)) (Core_Ops_Arith.Add__f_add (Core_Base_interface_Int.Constants__f_ONE) (Core_Base_interface_Int.Constants__f_ONE))) = true. +Proof. Admitted. + +Lemma mod_small (x : Core_Base_interface_Int.t_U128) (y : Core_Base_interface_Int.t_U128) : + -> + orb (Core_Cmp.PartialOrd__f_ge (Core_Clone.Clone__f_clone (x)) (Core_Clone.Clone__f_clone (y))) (Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Rem__f_rem (Core_Clone.Clone__f_clone (x)) (y)) (x)) = true. +Proof. Admitted. + +Lemma int_range (x : Core_Base_interface_Int.t_U128) : + -> + andb (Core_Cmp.PartialOrd__f_le (Core_Base_interface_Int.Constants__f_MIN) (Core_Clone.Clone__f_clone (x))) (Core_Cmp.PartialOrd__f_le (x) (Core_Base_interface_Int.Constants__f_MAX)) = true. +Proof. Admitted. + +Lemma mod_one (x : Core_Base_interface_Int.t_U128) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Rem__f_rem (x) (Core_Base_interface_Int.Constants__f_ONE)) (Core_Base_interface_Int.Constants__f_ZERO) = true. +Proof. Admitted. + +Lemma mod_add (x : Core_Base_interface_Int.t_U128) (y : Core_Base_interface_Int.t_U128) (z : Core_Base_interface_Int.t_U128) : + -> + orb (Core_Base_Pos.haxint_le (Core_Base_Spec_Constants.v_WORDSIZE_128_) (Core_Base_Pos.haxint_add (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (x))) (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (y))))) (Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Rem__f_rem (Core_Ops_Arith.Add__f_add (Core_Clone.Clone__f_clone (x)) (Core_Clone.Clone__f_clone (y))) (Core_Clone.Clone__f_clone (z))) (Core_Ops_Arith.Rem__f_rem (Core_Ops_Arith.Add__f_add (Core_Ops_Arith.Rem__f_rem (x) (Core_Clone.Clone__f_clone (z))) (Core_Ops_Arith.Rem__f_rem (y) (Core_Clone.Clone__f_clone (z)))) (z))) = true. +Proof. Admitted. + +Lemma mod_sub (x : Core_Base_interface_Int.t_U128) (y : Core_Base_interface_Int.t_U128) (z : Core_Base_interface_Int.t_U128) : + -> + orb (orb (Core_Cmp.PartialOrd__f_lt (Core_Clone.Clone__f_clone (x)) (Core_Clone.Clone__f_clone (y))) (Core_Cmp.PartialOrd__f_le (Core_Clone.Clone__f_clone (z)) (Core_Clone.Clone__f_clone (x)))) (Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Rem__f_rem (Core_Ops_Arith.Sub__f_sub (Core_Clone.Clone__f_clone (x)) (Core_Clone.Clone__f_clone (y))) (Core_Clone.Clone__f_clone (z))) (Core_Ops_Arith.Rem__f_rem (Core_Ops_Arith.Sub__f_sub (Core_Ops_Arith.Rem__f_rem (x) (Core_Clone.Clone__f_clone (z))) (Core_Ops_Arith.Rem__f_rem (y) (Core_Clone.Clone__f_clone (z)))) (z))) = true. +Proof. Admitted. + +Lemma mod_mul (x : Core_Base_interface_Int.t_U128) (y : Core_Base_interface_Int.t_U128) (z : Core_Base_interface_Int.t_U128) : + -> + orb (Core_Base_Pos.haxint_lt (Core_Base_Spec_Constants.v_WORDSIZE_128_) (Core_Base_Pos.haxint_mul (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (x))) (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (y))))) (Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Rem__f_rem (Core_Ops_Arith.Mul__f_mul (Core_Clone.Clone__f_clone (x)) (Core_Clone.Clone__f_clone (y))) (Core_Clone.Clone__f_clone (z))) (Core_Ops_Arith.Rem__f_rem (Core_Ops_Arith.Rem__f_rem (Core_Ops_Arith.Mul__f_mul (Core_Ops_Arith.Rem__f_rem (x) (Core_Clone.Clone__f_clone (z))) (y)) (Core_Clone.Clone__f_clone (z))) (z))) = true. Proof. Admitted. diff --git a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_interface_Int_U16_proofs.v b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_interface_Int_U16_proofs.v index c7dbc1090..382af01b8 100644 --- a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_interface_Int_U16_proofs.v +++ b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_interface_Int_U16_proofs.v @@ -9,77 +9,128 @@ Require Import String. Require Import Coq.Floats.Floats. From RecordUpdate Require Import RecordSet. Import RecordSetNotations. +From Core Require Import Core. -(* From Core Require Import Core. *) - -(* TODO: Replace this dummy lib with core lib *) -Class t_Sized (T : Type) := { }. -Definition t_u8 := Z. -Definition t_u16 := Z. -Definition t_u32 := Z. -Definition t_u64 := Z. -Definition t_u128 := Z. -Definition t_usize := Z. -Definition t_i8 := Z. -Definition t_i16 := Z. -Definition t_i32 := Z. -Definition t_i64 := Z. -Definition t_i128 := Z. -Definition t_isize := Z. -Definition t_Array T (x : t_usize) := list T. -Definition t_String := string. -Definition ToString_f_to_string (x : string) := x. -Instance Sized_any : forall {t_A}, t_Sized t_A := {}. -Class t_Clone (T : Type) := { Clone_f_clone : T -> T }. -Instance Clone_any : forall {t_A}, t_Clone t_A := {Clone_f_clone := fun x => x}. -Definition t_Slice (T : Type) := list T. -Definition unsize {T : Type} : list T -> t_Slice T := id. -Definition t_PartialEq_f_eq x y := x =? y. -Definition t_Rem_f_rem (x y : Z) := x mod y. -Definition assert (b : bool) (* `{H_assert : b = true} *) : unit := tt. -Inductive globality := | t_Global. -Definition t_Vec T (_ : globality) : Type := list T. -Definition impl_1__append {T} l1 l2 : list T * list T := (app l1 l2, l2). -Definition impl_1__len {A} (l : list A) := Z.of_nat (List.length l). -Definition impl__new {A} (_ : Datatypes.unit) : list A := nil. -Definition impl__with_capacity {A} (_ : Z) : list A := nil. -Definition impl_1__push {A} l (x : A) := cons x l. -Class t_From (A B : Type) := { From_f_from : B -> A }. -Definition impl__to_vec {T} (x : t_Slice T) : t_Vec T t_Global := x. -Class t_Into (A B : Type) := { Into_f_into : A -> B }. -Instance t_Into_from_t_From {A B : Type} `{H : t_From B A} : t_Into A B := { Into_f_into x := @From_f_from B A H x }. -Definition from_elem {A} (x : A) (l : Z) := repeat x (Z.to_nat l). -Definition t_Option := option. -Definition impl__map {A B} (x : t_Option A) (f : A -> B) : t_Option B := match x with | Some x => Some (f x) | None => None end. -Definition t_Add_f_add x y := x + y. -Class Cast A B := { cast : A -> B }. -Instance cast_t_u8_t_u32 : Cast t_u8 t_u32 := {| cast x := x |}. -(* / dummy lib *) - -From Core Require Import Core_Base_interface_Int. -Export Core_Base_interface_Int. - -Lemma abstract_concretize_cancel (x : t_U16) : - -> - PartialEq_f_eq (Concretization_f_concretize (Abstraction_f_lift (Clone_f_clone (x)))) (x) = true. -Proof. Admitted. - -Lemma mod_add (x : t_U16) (y : t_U16) (z : t_U16) : - -> - orb (haxint_le (v_WORDSIZE_16_) (haxint_add (Abstraction_f_lift (Clone_f_clone (x))) (Abstraction_f_lift (Clone_f_clone (y))))) (PartialEq_f_eq (Rem_f_rem (Add_f_add (Clone_f_clone (x)) (Clone_f_clone (y))) (Clone_f_clone (z))) (Rem_f_rem (Add_f_add (Rem_f_rem (x) (Clone_f_clone (z))) (Rem_f_rem (y) (Clone_f_clone (z)))) (z))) = true. -Proof. Admitted. - -Lemma mod_mul (x : t_U16) (y : t_U16) (z : t_U16) : - -> - orb (haxint_lt (v_WORDSIZE_16_) (haxint_mul (Abstraction_f_lift (Clone_f_clone (x))) (Abstraction_f_lift (Clone_f_clone (y))))) (PartialEq_f_eq (Rem_f_rem (Mul_f_mul (Clone_f_clone (x)) (Clone_f_clone (y))) (Clone_f_clone (z))) (Rem_f_rem (Rem_f_rem (Mul_f_mul (Rem_f_rem (x) (Clone_f_clone (z))) (y)) (Clone_f_clone (z))) (z))) = true. -Proof. Admitted. - -Lemma mod_one (x : t_U16) : - -> - PartialEq_f_eq (Rem_f_rem (x) (Constants_f_ONE)) (Constants_f_ZERO) = true. -Proof. Admitted. - -Lemma mod_sub (x : t_U16) (y : t_U16) (z : t_U16) : - -> - orb (orb (PartialOrd_f_lt (Clone_f_clone (x)) (Clone_f_clone (y))) (PartialOrd_f_le (Clone_f_clone (z)) (Clone_f_clone (x)))) (PartialEq_f_eq (Rem_f_rem (Sub_f_sub (Clone_f_clone (x)) (Clone_f_clone (y))) (Clone_f_clone (z))) (Rem_f_rem (Sub_f_sub (Rem_f_rem (x) (Clone_f_clone (z))) (Rem_f_rem (y) (Clone_f_clone (z)))) (z))) = true. +(* NotImplementedYet *) + + + +Lemma abstract_concretize_cancel (x : Core_Base_interface_Int.t_U16) : + -> + Core_Cmp.PartialEq__f_eq (Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (x)))) (x) = true. +Proof. Admitted. + +Lemma addC (x : Core_Base_interface_Int.t_U16) (y : Core_Base_interface_Int.t_U16) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Add__f_add (Core_Clone.Clone__f_clone (x)) (Core_Clone.Clone__f_clone (y))) (Core_Ops_Arith.Add__f_add (y) (x)) = true. +Proof. Admitted. + +Lemma addA (x : Core_Base_interface_Int.t_U16) (y : Core_Base_interface_Int.t_U16) (z : Core_Base_interface_Int.t_U16) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Add__f_add (Core_Clone.Clone__f_clone (x)) (Core_Ops_Arith.Add__f_add (Core_Clone.Clone__f_clone (y)) (Core_Clone.Clone__f_clone (z)))) (Core_Ops_Arith.Add__f_add (Core_Ops_Arith.Add__f_add (x) (y)) (z)) = true. +Proof. Admitted. + +Lemma add_0_r (x : Core_Base_interface_Int.t_U16) (y : Core_Base_interface_Int.t_U16) (z : Core_Base_interface_Int.t_U16) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Add__f_add (Core_Clone.Clone__f_clone (x)) (Core_Base_interface_Int.Constants__f_ZERO)) (x) = true. +Proof. Admitted. + +Lemma add_0_l (x : Core_Base_interface_Int.t_U16) (y : Core_Base_interface_Int.t_U16) (z : Core_Base_interface_Int.t_U16) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Add__f_add (Core_Base_interface_Int.Constants__f_ZERO) (Core_Clone.Clone__f_clone (x))) (x) = true. +Proof. Admitted. + +Lemma neg_idemp (x : Core_Base_interface_Int.t_U16) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Neg__f_neg (Core_Ops_Arith.Neg__f_neg (Core_Clone.Clone__f_clone (x)))) (x) = true. +Proof. Admitted. + +Lemma sub_is (x : Core_Base_interface_Int.t_U16) (y : Core_Base_interface_Int.t_U16) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Sub__f_sub (Core_Clone.Clone__f_clone (x)) (Core_Clone.Clone__f_clone (y))) (Core_Ops_Arith.Add__f_add (x) (Core_Ops_Arith.Neg__f_neg (y))) = true. +Proof. Admitted. + +Lemma sub_distr (x : Core_Base_interface_Int.t_U16) (y : Core_Base_interface_Int.t_U16) (z : Core_Base_interface_Int.t_U16) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Sub__f_sub (Core_Clone.Clone__f_clone (x)) (Core_Ops_Arith.Add__f_add (Core_Clone.Clone__f_clone (y)) (Core_Clone.Clone__f_clone (z)))) (Core_Ops_Arith.Add__f_add (x) (Core_Ops_Arith.Add__f_add (Core_Ops_Arith.Neg__f_neg (y)) (Core_Ops_Arith.Neg__f_neg (z)))) = true. +Proof. Admitted. + +Lemma addN (x : Core_Base_interface_Int.t_U16) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Sub__f_sub (Core_Clone.Clone__f_clone (x)) (x)) (Core_Base_interface_Int.Constants__f_ZERO) = true. +Proof. Admitted. + +Lemma mul_1_r (x : Core_Base_interface_Int.t_U16) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Mul__f_mul (Core_Clone.Clone__f_clone (x)) (Core_Base_interface_Int.Constants__f_ONE)) (x) = true. +Proof. Admitted. + +Lemma mul_1_l (x : Core_Base_interface_Int.t_U16) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Mul__f_mul (Core_Base_interface_Int.Constants__f_ONE) (Core_Clone.Clone__f_clone (x))) (x) = true. +Proof. Admitted. + +Lemma mulC (x : Core_Base_interface_Int.t_U16) (y : Core_Base_interface_Int.t_U16) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Mul__f_mul (Core_Clone.Clone__f_clone (x)) (Core_Clone.Clone__f_clone (y))) (Core_Ops_Arith.Mul__f_mul (y) (x)) = true. +Proof. Admitted. + +Lemma mulA (x : Core_Base_interface_Int.t_U16) (y : Core_Base_interface_Int.t_U16) (z : Core_Base_interface_Int.t_U16) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Mul__f_mul (Core_Clone.Clone__f_clone (x)) (Core_Ops_Arith.Mul__f_mul (Core_Clone.Clone__f_clone (y)) (Core_Clone.Clone__f_clone (z)))) (Core_Ops_Arith.Mul__f_mul (Core_Ops_Arith.Mul__f_mul (x) (y)) (z)) = true. +Proof. Admitted. + +Lemma mul_distr (x : Core_Base_interface_Int.t_U16) (y : Core_Base_interface_Int.t_U16) (z : Core_Base_interface_Int.t_U16) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Mul__f_mul (Core_Clone.Clone__f_clone (x)) (Core_Ops_Arith.Add__f_add (Core_Clone.Clone__f_clone (y)) (Core_Clone.Clone__f_clone (z)))) (Core_Ops_Arith.Add__f_add (Core_Ops_Arith.Mul__f_mul (Core_Clone.Clone__f_clone (x)) (y)) (Core_Ops_Arith.Mul__f_mul (x) (z))) = true. +Proof. Admitted. + +Lemma mul_opp (x : Core_Base_interface_Int.t_U16) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Neg__f_neg (Core_Clone.Clone__f_clone (x))) (Core_Ops_Arith.Mul__f_mul (Core_Ops_Arith.Neg__f_neg (Core_Base_interface_Int.Constants__f_ONE)) (x)) = true. +Proof. Admitted. + +Lemma div_1_r (x : Core_Base_interface_Int.t_U16) (y : Core_Base_interface_Int.t_U16) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Div__f_div (Core_Clone.Clone__f_clone (x)) (Core_Base_interface_Int.Constants__f_ONE)) (x) = true. +Proof. Admitted. + +Lemma shl_1_ (x : Core_Base_interface_Int.t_U16) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Bit.Shl__f_shl (Core_Clone.Clone__f_clone (x)) (Core_Base_interface_Int.Constants__f_ONE)) (Core_Ops_Arith.Add__f_add (Core_Clone.Clone__f_clone (x)) (x)) = true. +Proof. Admitted. + +Lemma shr_1_ (x : Core_Base_interface_Int.t_U16) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Bit.Shr__f_shr (Core_Clone.Clone__f_clone (x)) (Core_Base_interface_Int.Constants__f_ONE)) (Core_Ops_Arith.Div__f_div (Core_Clone.Clone__f_clone (x)) (Core_Ops_Arith.Add__f_add (Core_Base_interface_Int.Constants__f_ONE) (Core_Base_interface_Int.Constants__f_ONE))) = true. +Proof. Admitted. + +Lemma mod_small (x : Core_Base_interface_Int.t_U16) (y : Core_Base_interface_Int.t_U16) : + -> + orb (Core_Cmp.PartialOrd__f_ge (Core_Clone.Clone__f_clone (x)) (Core_Clone.Clone__f_clone (y))) (Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Rem__f_rem (Core_Clone.Clone__f_clone (x)) (y)) (x)) = true. +Proof. Admitted. + +Lemma int_range (x : Core_Base_interface_Int.t_U16) : + -> + andb (Core_Cmp.PartialOrd__f_le (Core_Base_interface_Int.Constants__f_MIN) (Core_Clone.Clone__f_clone (x))) (Core_Cmp.PartialOrd__f_le (x) (Core_Base_interface_Int.Constants__f_MAX)) = true. +Proof. Admitted. + +Lemma mod_one (x : Core_Base_interface_Int.t_U16) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Rem__f_rem (x) (Core_Base_interface_Int.Constants__f_ONE)) (Core_Base_interface_Int.Constants__f_ZERO) = true. +Proof. Admitted. + +Lemma mod_add (x : Core_Base_interface_Int.t_U16) (y : Core_Base_interface_Int.t_U16) (z : Core_Base_interface_Int.t_U16) : + -> + orb (Core_Base_Pos.haxint_le (Core_Base_Spec_Constants.v_WORDSIZE_16_) (Core_Base_Pos.haxint_add (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (x))) (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (y))))) (Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Rem__f_rem (Core_Ops_Arith.Add__f_add (Core_Clone.Clone__f_clone (x)) (Core_Clone.Clone__f_clone (y))) (Core_Clone.Clone__f_clone (z))) (Core_Ops_Arith.Rem__f_rem (Core_Ops_Arith.Add__f_add (Core_Ops_Arith.Rem__f_rem (x) (Core_Clone.Clone__f_clone (z))) (Core_Ops_Arith.Rem__f_rem (y) (Core_Clone.Clone__f_clone (z)))) (z))) = true. +Proof. Admitted. + +Lemma mod_sub (x : Core_Base_interface_Int.t_U16) (y : Core_Base_interface_Int.t_U16) (z : Core_Base_interface_Int.t_U16) : + -> + orb (orb (Core_Cmp.PartialOrd__f_lt (Core_Clone.Clone__f_clone (x)) (Core_Clone.Clone__f_clone (y))) (Core_Cmp.PartialOrd__f_le (Core_Clone.Clone__f_clone (z)) (Core_Clone.Clone__f_clone (x)))) (Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Rem__f_rem (Core_Ops_Arith.Sub__f_sub (Core_Clone.Clone__f_clone (x)) (Core_Clone.Clone__f_clone (y))) (Core_Clone.Clone__f_clone (z))) (Core_Ops_Arith.Rem__f_rem (Core_Ops_Arith.Sub__f_sub (Core_Ops_Arith.Rem__f_rem (x) (Core_Clone.Clone__f_clone (z))) (Core_Ops_Arith.Rem__f_rem (y) (Core_Clone.Clone__f_clone (z)))) (z))) = true. +Proof. Admitted. + +Lemma mod_mul (x : Core_Base_interface_Int.t_U16) (y : Core_Base_interface_Int.t_U16) (z : Core_Base_interface_Int.t_U16) : + -> + orb (Core_Base_Pos.haxint_lt (Core_Base_Spec_Constants.v_WORDSIZE_16_) (Core_Base_Pos.haxint_mul (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (x))) (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (y))))) (Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Rem__f_rem (Core_Ops_Arith.Mul__f_mul (Core_Clone.Clone__f_clone (x)) (Core_Clone.Clone__f_clone (y))) (Core_Clone.Clone__f_clone (z))) (Core_Ops_Arith.Rem__f_rem (Core_Ops_Arith.Rem__f_rem (Core_Ops_Arith.Mul__f_mul (Core_Ops_Arith.Rem__f_rem (x) (Core_Clone.Clone__f_clone (z))) (y)) (Core_Clone.Clone__f_clone (z))) (z))) = true. Proof. Admitted. diff --git a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_interface_Int_U32_proofs.v b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_interface_Int_U32_proofs.v index 5b9ca519a..5ea3c2bf9 100644 --- a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_interface_Int_U32_proofs.v +++ b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_interface_Int_U32_proofs.v @@ -9,77 +9,128 @@ Require Import String. Require Import Coq.Floats.Floats. From RecordUpdate Require Import RecordSet. Import RecordSetNotations. +From Core Require Import Core. -(* From Core Require Import Core. *) - -(* TODO: Replace this dummy lib with core lib *) -Class t_Sized (T : Type) := { }. -Definition t_u8 := Z. -Definition t_u16 := Z. -Definition t_u32 := Z. -Definition t_u64 := Z. -Definition t_u128 := Z. -Definition t_usize := Z. -Definition t_i8 := Z. -Definition t_i16 := Z. -Definition t_i32 := Z. -Definition t_i64 := Z. -Definition t_i128 := Z. -Definition t_isize := Z. -Definition t_Array T (x : t_usize) := list T. -Definition t_String := string. -Definition ToString_f_to_string (x : string) := x. -Instance Sized_any : forall {t_A}, t_Sized t_A := {}. -Class t_Clone (T : Type) := { Clone_f_clone : T -> T }. -Instance Clone_any : forall {t_A}, t_Clone t_A := {Clone_f_clone := fun x => x}. -Definition t_Slice (T : Type) := list T. -Definition unsize {T : Type} : list T -> t_Slice T := id. -Definition t_PartialEq_f_eq x y := x =? y. -Definition t_Rem_f_rem (x y : Z) := x mod y. -Definition assert (b : bool) (* `{H_assert : b = true} *) : unit := tt. -Inductive globality := | t_Global. -Definition t_Vec T (_ : globality) : Type := list T. -Definition impl_1__append {T} l1 l2 : list T * list T := (app l1 l2, l2). -Definition impl_1__len {A} (l : list A) := Z.of_nat (List.length l). -Definition impl__new {A} (_ : Datatypes.unit) : list A := nil. -Definition impl__with_capacity {A} (_ : Z) : list A := nil. -Definition impl_1__push {A} l (x : A) := cons x l. -Class t_From (A B : Type) := { From_f_from : B -> A }. -Definition impl__to_vec {T} (x : t_Slice T) : t_Vec T t_Global := x. -Class t_Into (A B : Type) := { Into_f_into : A -> B }. -Instance t_Into_from_t_From {A B : Type} `{H : t_From B A} : t_Into A B := { Into_f_into x := @From_f_from B A H x }. -Definition from_elem {A} (x : A) (l : Z) := repeat x (Z.to_nat l). -Definition t_Option := option. -Definition impl__map {A B} (x : t_Option A) (f : A -> B) : t_Option B := match x with | Some x => Some (f x) | None => None end. -Definition t_Add_f_add x y := x + y. -Class Cast A B := { cast : A -> B }. -Instance cast_t_u8_t_u32 : Cast t_u8 t_u32 := {| cast x := x |}. -(* / dummy lib *) - -From Core Require Import Core_Base_interface_Int. -Export Core_Base_interface_Int. - -Lemma abstract_concretize_cancel (x : t_U32) : - -> - PartialEq_f_eq (Concretization_f_concretize (Abstraction_f_lift (Clone_f_clone (x)))) (x) = true. -Proof. Admitted. - -Lemma mod_add (x : t_U32) (y : t_U32) (z : t_U32) : - -> - orb (haxint_le (v_WORDSIZE_32_) (haxint_add (Abstraction_f_lift (Clone_f_clone (x))) (Abstraction_f_lift (Clone_f_clone (y))))) (PartialEq_f_eq (Rem_f_rem (Add_f_add (Clone_f_clone (x)) (Clone_f_clone (y))) (Clone_f_clone (z))) (Rem_f_rem (Add_f_add (Rem_f_rem (x) (Clone_f_clone (z))) (Rem_f_rem (y) (Clone_f_clone (z)))) (z))) = true. -Proof. Admitted. - -Lemma mod_mul (x : t_U32) (y : t_U32) (z : t_U32) : - -> - orb (haxint_lt (v_WORDSIZE_32_) (haxint_mul (Abstraction_f_lift (Clone_f_clone (x))) (Abstraction_f_lift (Clone_f_clone (y))))) (PartialEq_f_eq (Rem_f_rem (Mul_f_mul (Clone_f_clone (x)) (Clone_f_clone (y))) (Clone_f_clone (z))) (Rem_f_rem (Rem_f_rem (Mul_f_mul (Rem_f_rem (x) (Clone_f_clone (z))) (y)) (Clone_f_clone (z))) (z))) = true. -Proof. Admitted. - -Lemma mod_one (x : t_U32) : - -> - PartialEq_f_eq (Rem_f_rem (x) (Constants_f_ONE)) (Constants_f_ZERO) = true. -Proof. Admitted. - -Lemma mod_sub (x : t_U32) (y : t_U32) (z : t_U32) : - -> - orb (orb (PartialOrd_f_lt (Clone_f_clone (x)) (Clone_f_clone (y))) (PartialOrd_f_le (Clone_f_clone (z)) (Clone_f_clone (x)))) (PartialEq_f_eq (Rem_f_rem (Sub_f_sub (Clone_f_clone (x)) (Clone_f_clone (y))) (Clone_f_clone (z))) (Rem_f_rem (Sub_f_sub (Rem_f_rem (x) (Clone_f_clone (z))) (Rem_f_rem (y) (Clone_f_clone (z)))) (z))) = true. +(* NotImplementedYet *) + + + +Lemma abstract_concretize_cancel (x : Core_Base_interface_Int.t_U32) : + -> + Core_Cmp.PartialEq__f_eq (Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (x)))) (x) = true. +Proof. Admitted. + +Lemma addC (x : Core_Base_interface_Int.t_U32) (y : Core_Base_interface_Int.t_U32) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Add__f_add (Core_Clone.Clone__f_clone (x)) (Core_Clone.Clone__f_clone (y))) (Core_Ops_Arith.Add__f_add (y) (x)) = true. +Proof. Admitted. + +Lemma addA (x : Core_Base_interface_Int.t_U32) (y : Core_Base_interface_Int.t_U32) (z : Core_Base_interface_Int.t_U32) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Add__f_add (Core_Clone.Clone__f_clone (x)) (Core_Ops_Arith.Add__f_add (Core_Clone.Clone__f_clone (y)) (Core_Clone.Clone__f_clone (z)))) (Core_Ops_Arith.Add__f_add (Core_Ops_Arith.Add__f_add (x) (y)) (z)) = true. +Proof. Admitted. + +Lemma add_0_r (x : Core_Base_interface_Int.t_U32) (y : Core_Base_interface_Int.t_U32) (z : Core_Base_interface_Int.t_U32) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Add__f_add (Core_Clone.Clone__f_clone (x)) (Core_Base_interface_Int.Constants__f_ZERO)) (x) = true. +Proof. Admitted. + +Lemma add_0_l (x : Core_Base_interface_Int.t_U32) (y : Core_Base_interface_Int.t_U32) (z : Core_Base_interface_Int.t_U32) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Add__f_add (Core_Base_interface_Int.Constants__f_ZERO) (Core_Clone.Clone__f_clone (x))) (x) = true. +Proof. Admitted. + +Lemma neg_idemp (x : Core_Base_interface_Int.t_U32) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Neg__f_neg (Core_Ops_Arith.Neg__f_neg (Core_Clone.Clone__f_clone (x)))) (x) = true. +Proof. Admitted. + +Lemma sub_is (x : Core_Base_interface_Int.t_U32) (y : Core_Base_interface_Int.t_U32) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Sub__f_sub (Core_Clone.Clone__f_clone (x)) (Core_Clone.Clone__f_clone (y))) (Core_Ops_Arith.Add__f_add (x) (Core_Ops_Arith.Neg__f_neg (y))) = true. +Proof. Admitted. + +Lemma sub_distr (x : Core_Base_interface_Int.t_U32) (y : Core_Base_interface_Int.t_U32) (z : Core_Base_interface_Int.t_U32) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Sub__f_sub (Core_Clone.Clone__f_clone (x)) (Core_Ops_Arith.Add__f_add (Core_Clone.Clone__f_clone (y)) (Core_Clone.Clone__f_clone (z)))) (Core_Ops_Arith.Add__f_add (x) (Core_Ops_Arith.Add__f_add (Core_Ops_Arith.Neg__f_neg (y)) (Core_Ops_Arith.Neg__f_neg (z)))) = true. +Proof. Admitted. + +Lemma addN (x : Core_Base_interface_Int.t_U32) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Sub__f_sub (Core_Clone.Clone__f_clone (x)) (x)) (Core_Base_interface_Int.Constants__f_ZERO) = true. +Proof. Admitted. + +Lemma mul_1_r (x : Core_Base_interface_Int.t_U32) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Mul__f_mul (Core_Clone.Clone__f_clone (x)) (Core_Base_interface_Int.Constants__f_ONE)) (x) = true. +Proof. Admitted. + +Lemma mul_1_l (x : Core_Base_interface_Int.t_U32) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Mul__f_mul (Core_Base_interface_Int.Constants__f_ONE) (Core_Clone.Clone__f_clone (x))) (x) = true. +Proof. Admitted. + +Lemma mulC (x : Core_Base_interface_Int.t_U32) (y : Core_Base_interface_Int.t_U32) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Mul__f_mul (Core_Clone.Clone__f_clone (x)) (Core_Clone.Clone__f_clone (y))) (Core_Ops_Arith.Mul__f_mul (y) (x)) = true. +Proof. Admitted. + +Lemma mulA (x : Core_Base_interface_Int.t_U32) (y : Core_Base_interface_Int.t_U32) (z : Core_Base_interface_Int.t_U32) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Mul__f_mul (Core_Clone.Clone__f_clone (x)) (Core_Ops_Arith.Mul__f_mul (Core_Clone.Clone__f_clone (y)) (Core_Clone.Clone__f_clone (z)))) (Core_Ops_Arith.Mul__f_mul (Core_Ops_Arith.Mul__f_mul (x) (y)) (z)) = true. +Proof. Admitted. + +Lemma mul_distr (x : Core_Base_interface_Int.t_U32) (y : Core_Base_interface_Int.t_U32) (z : Core_Base_interface_Int.t_U32) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Mul__f_mul (Core_Clone.Clone__f_clone (x)) (Core_Ops_Arith.Add__f_add (Core_Clone.Clone__f_clone (y)) (Core_Clone.Clone__f_clone (z)))) (Core_Ops_Arith.Add__f_add (Core_Ops_Arith.Mul__f_mul (Core_Clone.Clone__f_clone (x)) (y)) (Core_Ops_Arith.Mul__f_mul (x) (z))) = true. +Proof. Admitted. + +Lemma mul_opp (x : Core_Base_interface_Int.t_U32) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Neg__f_neg (Core_Clone.Clone__f_clone (x))) (Core_Ops_Arith.Mul__f_mul (Core_Ops_Arith.Neg__f_neg (Core_Base_interface_Int.Constants__f_ONE)) (x)) = true. +Proof. Admitted. + +Lemma div_1_r (x : Core_Base_interface_Int.t_U32) (y : Core_Base_interface_Int.t_U32) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Div__f_div (Core_Clone.Clone__f_clone (x)) (Core_Base_interface_Int.Constants__f_ONE)) (x) = true. +Proof. Admitted. + +Lemma shl_1_ (x : Core_Base_interface_Int.t_U32) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Bit.Shl__f_shl (Core_Clone.Clone__f_clone (x)) (Core_Base_interface_Int.Constants__f_ONE)) (Core_Ops_Arith.Add__f_add (Core_Clone.Clone__f_clone (x)) (x)) = true. +Proof. Admitted. + +Lemma shr_1_ (x : Core_Base_interface_Int.t_U32) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Bit.Shr__f_shr (Core_Clone.Clone__f_clone (x)) (Core_Base_interface_Int.Constants__f_ONE)) (Core_Ops_Arith.Div__f_div (Core_Clone.Clone__f_clone (x)) (Core_Ops_Arith.Add__f_add (Core_Base_interface_Int.Constants__f_ONE) (Core_Base_interface_Int.Constants__f_ONE))) = true. +Proof. Admitted. + +Lemma mod_small (x : Core_Base_interface_Int.t_U32) (y : Core_Base_interface_Int.t_U32) : + -> + orb (Core_Cmp.PartialOrd__f_ge (Core_Clone.Clone__f_clone (x)) (Core_Clone.Clone__f_clone (y))) (Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Rem__f_rem (Core_Clone.Clone__f_clone (x)) (y)) (x)) = true. +Proof. Admitted. + +Lemma int_range (x : Core_Base_interface_Int.t_U32) : + -> + andb (Core_Cmp.PartialOrd__f_le (Core_Base_interface_Int.Constants__f_MIN) (Core_Clone.Clone__f_clone (x))) (Core_Cmp.PartialOrd__f_le (x) (Core_Base_interface_Int.Constants__f_MAX)) = true. +Proof. Admitted. + +Lemma mod_one (x : Core_Base_interface_Int.t_U32) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Rem__f_rem (x) (Core_Base_interface_Int.Constants__f_ONE)) (Core_Base_interface_Int.Constants__f_ZERO) = true. +Proof. Admitted. + +Lemma mod_add (x : Core_Base_interface_Int.t_U32) (y : Core_Base_interface_Int.t_U32) (z : Core_Base_interface_Int.t_U32) : + -> + orb (Core_Base_Pos.haxint_le (Core_Base_Spec_Constants.v_WORDSIZE_32_) (Core_Base_Pos.haxint_add (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (x))) (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (y))))) (Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Rem__f_rem (Core_Ops_Arith.Add__f_add (Core_Clone.Clone__f_clone (x)) (Core_Clone.Clone__f_clone (y))) (Core_Clone.Clone__f_clone (z))) (Core_Ops_Arith.Rem__f_rem (Core_Ops_Arith.Add__f_add (Core_Ops_Arith.Rem__f_rem (x) (Core_Clone.Clone__f_clone (z))) (Core_Ops_Arith.Rem__f_rem (y) (Core_Clone.Clone__f_clone (z)))) (z))) = true. +Proof. Admitted. + +Lemma mod_sub (x : Core_Base_interface_Int.t_U32) (y : Core_Base_interface_Int.t_U32) (z : Core_Base_interface_Int.t_U32) : + -> + orb (orb (Core_Cmp.PartialOrd__f_lt (Core_Clone.Clone__f_clone (x)) (Core_Clone.Clone__f_clone (y))) (Core_Cmp.PartialOrd__f_le (Core_Clone.Clone__f_clone (z)) (Core_Clone.Clone__f_clone (x)))) (Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Rem__f_rem (Core_Ops_Arith.Sub__f_sub (Core_Clone.Clone__f_clone (x)) (Core_Clone.Clone__f_clone (y))) (Core_Clone.Clone__f_clone (z))) (Core_Ops_Arith.Rem__f_rem (Core_Ops_Arith.Sub__f_sub (Core_Ops_Arith.Rem__f_rem (x) (Core_Clone.Clone__f_clone (z))) (Core_Ops_Arith.Rem__f_rem (y) (Core_Clone.Clone__f_clone (z)))) (z))) = true. +Proof. Admitted. + +Lemma mod_mul (x : Core_Base_interface_Int.t_U32) (y : Core_Base_interface_Int.t_U32) (z : Core_Base_interface_Int.t_U32) : + -> + orb (Core_Base_Pos.haxint_lt (Core_Base_Spec_Constants.v_WORDSIZE_32_) (Core_Base_Pos.haxint_mul (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (x))) (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (y))))) (Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Rem__f_rem (Core_Ops_Arith.Mul__f_mul (Core_Clone.Clone__f_clone (x)) (Core_Clone.Clone__f_clone (y))) (Core_Clone.Clone__f_clone (z))) (Core_Ops_Arith.Rem__f_rem (Core_Ops_Arith.Rem__f_rem (Core_Ops_Arith.Mul__f_mul (Core_Ops_Arith.Rem__f_rem (x) (Core_Clone.Clone__f_clone (z))) (y)) (Core_Clone.Clone__f_clone (z))) (z))) = true. Proof. Admitted. diff --git a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_interface_Int_U64_proofs.v b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_interface_Int_U64_proofs.v index a041c9fd2..1fd9ec582 100644 --- a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_interface_Int_U64_proofs.v +++ b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_interface_Int_U64_proofs.v @@ -9,77 +9,128 @@ Require Import String. Require Import Coq.Floats.Floats. From RecordUpdate Require Import RecordSet. Import RecordSetNotations. +From Core Require Import Core. -(* From Core Require Import Core. *) - -(* TODO: Replace this dummy lib with core lib *) -Class t_Sized (T : Type) := { }. -Definition t_u8 := Z. -Definition t_u16 := Z. -Definition t_u32 := Z. -Definition t_u64 := Z. -Definition t_u128 := Z. -Definition t_usize := Z. -Definition t_i8 := Z. -Definition t_i16 := Z. -Definition t_i32 := Z. -Definition t_i64 := Z. -Definition t_i128 := Z. -Definition t_isize := Z. -Definition t_Array T (x : t_usize) := list T. -Definition t_String := string. -Definition ToString_f_to_string (x : string) := x. -Instance Sized_any : forall {t_A}, t_Sized t_A := {}. -Class t_Clone (T : Type) := { Clone_f_clone : T -> T }. -Instance Clone_any : forall {t_A}, t_Clone t_A := {Clone_f_clone := fun x => x}. -Definition t_Slice (T : Type) := list T. -Definition unsize {T : Type} : list T -> t_Slice T := id. -Definition t_PartialEq_f_eq x y := x =? y. -Definition t_Rem_f_rem (x y : Z) := x mod y. -Definition assert (b : bool) (* `{H_assert : b = true} *) : unit := tt. -Inductive globality := | t_Global. -Definition t_Vec T (_ : globality) : Type := list T. -Definition impl_1__append {T} l1 l2 : list T * list T := (app l1 l2, l2). -Definition impl_1__len {A} (l : list A) := Z.of_nat (List.length l). -Definition impl__new {A} (_ : Datatypes.unit) : list A := nil. -Definition impl__with_capacity {A} (_ : Z) : list A := nil. -Definition impl_1__push {A} l (x : A) := cons x l. -Class t_From (A B : Type) := { From_f_from : B -> A }. -Definition impl__to_vec {T} (x : t_Slice T) : t_Vec T t_Global := x. -Class t_Into (A B : Type) := { Into_f_into : A -> B }. -Instance t_Into_from_t_From {A B : Type} `{H : t_From B A} : t_Into A B := { Into_f_into x := @From_f_from B A H x }. -Definition from_elem {A} (x : A) (l : Z) := repeat x (Z.to_nat l). -Definition t_Option := option. -Definition impl__map {A B} (x : t_Option A) (f : A -> B) : t_Option B := match x with | Some x => Some (f x) | None => None end. -Definition t_Add_f_add x y := x + y. -Class Cast A B := { cast : A -> B }. -Instance cast_t_u8_t_u32 : Cast t_u8 t_u32 := {| cast x := x |}. -(* / dummy lib *) - -From Core Require Import Core_Base_interface_Int. -Export Core_Base_interface_Int. - -Lemma abstract_concretize_cancel (x : t_U64) : - -> - PartialEq_f_eq (Concretization_f_concretize (Abstraction_f_lift (Clone_f_clone (x)))) (x) = true. -Proof. Admitted. - -Lemma mod_add (x : t_U64) (y : t_U64) (z : t_U64) : - -> - orb (haxint_le (v_WORDSIZE_64_) (haxint_add (Abstraction_f_lift (Clone_f_clone (x))) (Abstraction_f_lift (Clone_f_clone (y))))) (PartialEq_f_eq (Rem_f_rem (Add_f_add (Clone_f_clone (x)) (Clone_f_clone (y))) (Clone_f_clone (z))) (Rem_f_rem (Add_f_add (Rem_f_rem (x) (Clone_f_clone (z))) (Rem_f_rem (y) (Clone_f_clone (z)))) (z))) = true. -Proof. Admitted. - -Lemma mod_mul (x : t_U64) (y : t_U64) (z : t_U64) : - -> - orb (haxint_lt (v_WORDSIZE_64_) (haxint_mul (Abstraction_f_lift (Clone_f_clone (x))) (Abstraction_f_lift (Clone_f_clone (y))))) (PartialEq_f_eq (Rem_f_rem (Mul_f_mul (Clone_f_clone (x)) (Clone_f_clone (y))) (Clone_f_clone (z))) (Rem_f_rem (Rem_f_rem (Mul_f_mul (Rem_f_rem (x) (Clone_f_clone (z))) (y)) (Clone_f_clone (z))) (z))) = true. -Proof. Admitted. - -Lemma mod_one (x : t_U64) : - -> - PartialEq_f_eq (Rem_f_rem (x) (Constants_f_ONE)) (Constants_f_ZERO) = true. -Proof. Admitted. - -Lemma mod_sub (x : t_U64) (y : t_U64) (z : t_U64) : - -> - orb (orb (PartialOrd_f_lt (Clone_f_clone (x)) (Clone_f_clone (y))) (PartialOrd_f_le (Clone_f_clone (z)) (Clone_f_clone (x)))) (PartialEq_f_eq (Rem_f_rem (Sub_f_sub (Clone_f_clone (x)) (Clone_f_clone (y))) (Clone_f_clone (z))) (Rem_f_rem (Sub_f_sub (Rem_f_rem (x) (Clone_f_clone (z))) (Rem_f_rem (y) (Clone_f_clone (z)))) (z))) = true. +(* NotImplementedYet *) + + + +Lemma abstract_concretize_cancel (x : Core_Base_interface_Int.t_U64) : + -> + Core_Cmp.PartialEq__f_eq (Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (x)))) (x) = true. +Proof. Admitted. + +Lemma addC (x : Core_Base_interface_Int.t_U64) (y : Core_Base_interface_Int.t_U64) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Add__f_add (Core_Clone.Clone__f_clone (x)) (Core_Clone.Clone__f_clone (y))) (Core_Ops_Arith.Add__f_add (y) (x)) = true. +Proof. Admitted. + +Lemma addA (x : Core_Base_interface_Int.t_U64) (y : Core_Base_interface_Int.t_U64) (z : Core_Base_interface_Int.t_U64) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Add__f_add (Core_Clone.Clone__f_clone (x)) (Core_Ops_Arith.Add__f_add (Core_Clone.Clone__f_clone (y)) (Core_Clone.Clone__f_clone (z)))) (Core_Ops_Arith.Add__f_add (Core_Ops_Arith.Add__f_add (x) (y)) (z)) = true. +Proof. Admitted. + +Lemma add_0_r (x : Core_Base_interface_Int.t_U64) (y : Core_Base_interface_Int.t_U64) (z : Core_Base_interface_Int.t_U64) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Add__f_add (Core_Clone.Clone__f_clone (x)) (Core_Base_interface_Int.Constants__f_ZERO)) (x) = true. +Proof. Admitted. + +Lemma add_0_l (x : Core_Base_interface_Int.t_U64) (y : Core_Base_interface_Int.t_U64) (z : Core_Base_interface_Int.t_U64) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Add__f_add (Core_Base_interface_Int.Constants__f_ZERO) (Core_Clone.Clone__f_clone (x))) (x) = true. +Proof. Admitted. + +Lemma neg_idemp (x : Core_Base_interface_Int.t_U64) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Neg__f_neg (Core_Ops_Arith.Neg__f_neg (Core_Clone.Clone__f_clone (x)))) (x) = true. +Proof. Admitted. + +Lemma sub_is (x : Core_Base_interface_Int.t_U64) (y : Core_Base_interface_Int.t_U64) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Sub__f_sub (Core_Clone.Clone__f_clone (x)) (Core_Clone.Clone__f_clone (y))) (Core_Ops_Arith.Add__f_add (x) (Core_Ops_Arith.Neg__f_neg (y))) = true. +Proof. Admitted. + +Lemma sub_distr (x : Core_Base_interface_Int.t_U64) (y : Core_Base_interface_Int.t_U64) (z : Core_Base_interface_Int.t_U64) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Sub__f_sub (Core_Clone.Clone__f_clone (x)) (Core_Ops_Arith.Add__f_add (Core_Clone.Clone__f_clone (y)) (Core_Clone.Clone__f_clone (z)))) (Core_Ops_Arith.Add__f_add (x) (Core_Ops_Arith.Add__f_add (Core_Ops_Arith.Neg__f_neg (y)) (Core_Ops_Arith.Neg__f_neg (z)))) = true. +Proof. Admitted. + +Lemma addN (x : Core_Base_interface_Int.t_U64) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Sub__f_sub (Core_Clone.Clone__f_clone (x)) (x)) (Core_Base_interface_Int.Constants__f_ZERO) = true. +Proof. Admitted. + +Lemma mul_1_r (x : Core_Base_interface_Int.t_U64) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Mul__f_mul (Core_Clone.Clone__f_clone (x)) (Core_Base_interface_Int.Constants__f_ONE)) (x) = true. +Proof. Admitted. + +Lemma mul_1_l (x : Core_Base_interface_Int.t_U64) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Mul__f_mul (Core_Base_interface_Int.Constants__f_ONE) (Core_Clone.Clone__f_clone (x))) (x) = true. +Proof. Admitted. + +Lemma mulC (x : Core_Base_interface_Int.t_U64) (y : Core_Base_interface_Int.t_U64) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Mul__f_mul (Core_Clone.Clone__f_clone (x)) (Core_Clone.Clone__f_clone (y))) (Core_Ops_Arith.Mul__f_mul (y) (x)) = true. +Proof. Admitted. + +Lemma mulA (x : Core_Base_interface_Int.t_U64) (y : Core_Base_interface_Int.t_U64) (z : Core_Base_interface_Int.t_U64) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Mul__f_mul (Core_Clone.Clone__f_clone (x)) (Core_Ops_Arith.Mul__f_mul (Core_Clone.Clone__f_clone (y)) (Core_Clone.Clone__f_clone (z)))) (Core_Ops_Arith.Mul__f_mul (Core_Ops_Arith.Mul__f_mul (x) (y)) (z)) = true. +Proof. Admitted. + +Lemma mul_distr (x : Core_Base_interface_Int.t_U64) (y : Core_Base_interface_Int.t_U64) (z : Core_Base_interface_Int.t_U64) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Mul__f_mul (Core_Clone.Clone__f_clone (x)) (Core_Ops_Arith.Add__f_add (Core_Clone.Clone__f_clone (y)) (Core_Clone.Clone__f_clone (z)))) (Core_Ops_Arith.Add__f_add (Core_Ops_Arith.Mul__f_mul (Core_Clone.Clone__f_clone (x)) (y)) (Core_Ops_Arith.Mul__f_mul (x) (z))) = true. +Proof. Admitted. + +Lemma mul_opp (x : Core_Base_interface_Int.t_U64) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Neg__f_neg (Core_Clone.Clone__f_clone (x))) (Core_Ops_Arith.Mul__f_mul (Core_Ops_Arith.Neg__f_neg (Core_Base_interface_Int.Constants__f_ONE)) (x)) = true. +Proof. Admitted. + +Lemma div_1_r (x : Core_Base_interface_Int.t_U64) (y : Core_Base_interface_Int.t_U64) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Div__f_div (Core_Clone.Clone__f_clone (x)) (Core_Base_interface_Int.Constants__f_ONE)) (x) = true. +Proof. Admitted. + +Lemma shl_1_ (x : Core_Base_interface_Int.t_U64) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Bit.Shl__f_shl (Core_Clone.Clone__f_clone (x)) (Core_Base_interface_Int.Constants__f_ONE)) (Core_Ops_Arith.Add__f_add (Core_Clone.Clone__f_clone (x)) (x)) = true. +Proof. Admitted. + +Lemma shr_1_ (x : Core_Base_interface_Int.t_U64) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Bit.Shr__f_shr (Core_Clone.Clone__f_clone (x)) (Core_Base_interface_Int.Constants__f_ONE)) (Core_Ops_Arith.Div__f_div (Core_Clone.Clone__f_clone (x)) (Core_Ops_Arith.Add__f_add (Core_Base_interface_Int.Constants__f_ONE) (Core_Base_interface_Int.Constants__f_ONE))) = true. +Proof. Admitted. + +Lemma mod_small (x : Core_Base_interface_Int.t_U64) (y : Core_Base_interface_Int.t_U64) : + -> + orb (Core_Cmp.PartialOrd__f_ge (Core_Clone.Clone__f_clone (x)) (Core_Clone.Clone__f_clone (y))) (Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Rem__f_rem (Core_Clone.Clone__f_clone (x)) (y)) (x)) = true. +Proof. Admitted. + +Lemma int_range (x : Core_Base_interface_Int.t_U64) : + -> + andb (Core_Cmp.PartialOrd__f_le (Core_Base_interface_Int.Constants__f_MIN) (Core_Clone.Clone__f_clone (x))) (Core_Cmp.PartialOrd__f_le (x) (Core_Base_interface_Int.Constants__f_MAX)) = true. +Proof. Admitted. + +Lemma mod_one (x : Core_Base_interface_Int.t_U64) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Rem__f_rem (x) (Core_Base_interface_Int.Constants__f_ONE)) (Core_Base_interface_Int.Constants__f_ZERO) = true. +Proof. Admitted. + +Lemma mod_add (x : Core_Base_interface_Int.t_U64) (y : Core_Base_interface_Int.t_U64) (z : Core_Base_interface_Int.t_U64) : + -> + orb (Core_Base_Pos.haxint_le (Core_Base_Spec_Constants.v_WORDSIZE_64_) (Core_Base_Pos.haxint_add (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (x))) (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (y))))) (Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Rem__f_rem (Core_Ops_Arith.Add__f_add (Core_Clone.Clone__f_clone (x)) (Core_Clone.Clone__f_clone (y))) (Core_Clone.Clone__f_clone (z))) (Core_Ops_Arith.Rem__f_rem (Core_Ops_Arith.Add__f_add (Core_Ops_Arith.Rem__f_rem (x) (Core_Clone.Clone__f_clone (z))) (Core_Ops_Arith.Rem__f_rem (y) (Core_Clone.Clone__f_clone (z)))) (z))) = true. +Proof. Admitted. + +Lemma mod_sub (x : Core_Base_interface_Int.t_U64) (y : Core_Base_interface_Int.t_U64) (z : Core_Base_interface_Int.t_U64) : + -> + orb (orb (Core_Cmp.PartialOrd__f_lt (Core_Clone.Clone__f_clone (x)) (Core_Clone.Clone__f_clone (y))) (Core_Cmp.PartialOrd__f_le (Core_Clone.Clone__f_clone (z)) (Core_Clone.Clone__f_clone (x)))) (Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Rem__f_rem (Core_Ops_Arith.Sub__f_sub (Core_Clone.Clone__f_clone (x)) (Core_Clone.Clone__f_clone (y))) (Core_Clone.Clone__f_clone (z))) (Core_Ops_Arith.Rem__f_rem (Core_Ops_Arith.Sub__f_sub (Core_Ops_Arith.Rem__f_rem (x) (Core_Clone.Clone__f_clone (z))) (Core_Ops_Arith.Rem__f_rem (y) (Core_Clone.Clone__f_clone (z)))) (z))) = true. +Proof. Admitted. + +Lemma mod_mul (x : Core_Base_interface_Int.t_U64) (y : Core_Base_interface_Int.t_U64) (z : Core_Base_interface_Int.t_U64) : + -> + orb (Core_Base_Pos.haxint_lt (Core_Base_Spec_Constants.v_WORDSIZE_64_) (Core_Base_Pos.haxint_mul (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (x))) (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (y))))) (Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Rem__f_rem (Core_Ops_Arith.Mul__f_mul (Core_Clone.Clone__f_clone (x)) (Core_Clone.Clone__f_clone (y))) (Core_Clone.Clone__f_clone (z))) (Core_Ops_Arith.Rem__f_rem (Core_Ops_Arith.Rem__f_rem (Core_Ops_Arith.Mul__f_mul (Core_Ops_Arith.Rem__f_rem (x) (Core_Clone.Clone__f_clone (z))) (y)) (Core_Clone.Clone__f_clone (z))) (z))) = true. Proof. Admitted. diff --git a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_interface_Int_U8_proofs.v b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_interface_Int_U8_proofs.v index 79cab78fc..ec60e164e 100644 --- a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_interface_Int_U8_proofs.v +++ b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Base_interface_Int_U8_proofs.v @@ -9,77 +9,128 @@ Require Import String. Require Import Coq.Floats.Floats. From RecordUpdate Require Import RecordSet. Import RecordSetNotations. +From Core Require Import Core. -(* From Core Require Import Core. *) - -(* TODO: Replace this dummy lib with core lib *) -Class t_Sized (T : Type) := { }. -Definition t_u8 := Z. -Definition t_u16 := Z. -Definition t_u32 := Z. -Definition t_u64 := Z. -Definition t_u128 := Z. -Definition t_usize := Z. -Definition t_i8 := Z. -Definition t_i16 := Z. -Definition t_i32 := Z. -Definition t_i64 := Z. -Definition t_i128 := Z. -Definition t_isize := Z. -Definition t_Array T (x : t_usize) := list T. -Definition t_String := string. -Definition ToString_f_to_string (x : string) := x. -Instance Sized_any : forall {t_A}, t_Sized t_A := {}. -Class t_Clone (T : Type) := { Clone_f_clone : T -> T }. -Instance Clone_any : forall {t_A}, t_Clone t_A := {Clone_f_clone := fun x => x}. -Definition t_Slice (T : Type) := list T. -Definition unsize {T : Type} : list T -> t_Slice T := id. -Definition t_PartialEq_f_eq x y := x =? y. -Definition t_Rem_f_rem (x y : Z) := x mod y. -Definition assert (b : bool) (* `{H_assert : b = true} *) : unit := tt. -Inductive globality := | t_Global. -Definition t_Vec T (_ : globality) : Type := list T. -Definition impl_1__append {T} l1 l2 : list T * list T := (app l1 l2, l2). -Definition impl_1__len {A} (l : list A) := Z.of_nat (List.length l). -Definition impl__new {A} (_ : Datatypes.unit) : list A := nil. -Definition impl__with_capacity {A} (_ : Z) : list A := nil. -Definition impl_1__push {A} l (x : A) := cons x l. -Class t_From (A B : Type) := { From_f_from : B -> A }. -Definition impl__to_vec {T} (x : t_Slice T) : t_Vec T t_Global := x. -Class t_Into (A B : Type) := { Into_f_into : A -> B }. -Instance t_Into_from_t_From {A B : Type} `{H : t_From B A} : t_Into A B := { Into_f_into x := @From_f_from B A H x }. -Definition from_elem {A} (x : A) (l : Z) := repeat x (Z.to_nat l). -Definition t_Option := option. -Definition impl__map {A B} (x : t_Option A) (f : A -> B) : t_Option B := match x with | Some x => Some (f x) | None => None end. -Definition t_Add_f_add x y := x + y. -Class Cast A B := { cast : A -> B }. -Instance cast_t_u8_t_u32 : Cast t_u8 t_u32 := {| cast x := x |}. -(* / dummy lib *) - -From Core Require Import Core_Base_interface_Int. -Export Core_Base_interface_Int. - -Lemma abstract_concretize_cancel (x : t_U8) : - -> - PartialEq_f_eq (Concretization_f_concretize (Abstraction_f_lift (Clone_f_clone (x)))) (x) = true. -Proof. Admitted. - -Lemma mod_add (x : t_U8) (y : t_U8) (z : t_U8) : - -> - orb (haxint_le (v_WORDSIZE_8_) (haxint_add (Abstraction_f_lift (Clone_f_clone (x))) (Abstraction_f_lift (Clone_f_clone (y))))) (PartialEq_f_eq (Rem_f_rem (Add_f_add (Clone_f_clone (x)) (Clone_f_clone (y))) (Clone_f_clone (z))) (Rem_f_rem (Add_f_add (Rem_f_rem (x) (Clone_f_clone (z))) (Rem_f_rem (y) (Clone_f_clone (z)))) (z))) = true. -Proof. Admitted. - -Lemma mod_mul (x : t_U8) (y : t_U8) (z : t_U8) : - -> - orb (haxint_lt (v_WORDSIZE_8_) (haxint_mul (Abstraction_f_lift (Clone_f_clone (x))) (Abstraction_f_lift (Clone_f_clone (y))))) (PartialEq_f_eq (Rem_f_rem (Mul_f_mul (Clone_f_clone (x)) (Clone_f_clone (y))) (Clone_f_clone (z))) (Rem_f_rem (Rem_f_rem (Mul_f_mul (Rem_f_rem (x) (Clone_f_clone (z))) (y)) (Clone_f_clone (z))) (z))) = true. -Proof. Admitted. - -Lemma mod_one (x : t_U8) : - -> - PartialEq_f_eq (Rem_f_rem (x) (Constants_f_ONE)) (Constants_f_ZERO) = true. -Proof. Admitted. - -Lemma mod_sub (x : t_U8) (y : t_U8) (z : t_U8) : - -> - orb (orb (PartialOrd_f_lt (Clone_f_clone (x)) (Clone_f_clone (y))) (PartialOrd_f_le (Clone_f_clone (z)) (Clone_f_clone (x)))) (PartialEq_f_eq (Rem_f_rem (Sub_f_sub (Clone_f_clone (x)) (Clone_f_clone (y))) (Clone_f_clone (z))) (Rem_f_rem (Sub_f_sub (Rem_f_rem (x) (Clone_f_clone (z))) (Rem_f_rem (y) (Clone_f_clone (z)))) (z))) = true. +(* NotImplementedYet *) + + + +Lemma abstract_concretize_cancel (x : Core_Base_interface_Int.t_U8) : + -> + Core_Cmp.PartialEq__f_eq (Core_Base_interface_Coerce.Concretization__f_concretize (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (x)))) (x) = true. +Proof. Admitted. + +Lemma addC (x : Core_Base_interface_Int.t_U8) (y : Core_Base_interface_Int.t_U8) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Add__f_add (Core_Clone.Clone__f_clone (x)) (Core_Clone.Clone__f_clone (y))) (Core_Ops_Arith.Add__f_add (y) (x)) = true. +Proof. Admitted. + +Lemma addA (x : Core_Base_interface_Int.t_U8) (y : Core_Base_interface_Int.t_U8) (z : Core_Base_interface_Int.t_U8) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Add__f_add (Core_Clone.Clone__f_clone (x)) (Core_Ops_Arith.Add__f_add (Core_Clone.Clone__f_clone (y)) (Core_Clone.Clone__f_clone (z)))) (Core_Ops_Arith.Add__f_add (Core_Ops_Arith.Add__f_add (x) (y)) (z)) = true. +Proof. Admitted. + +Lemma add_0_r (x : Core_Base_interface_Int.t_U8) (y : Core_Base_interface_Int.t_U8) (z : Core_Base_interface_Int.t_U8) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Add__f_add (Core_Clone.Clone__f_clone (x)) (Core_Base_interface_Int.Constants__f_ZERO)) (x) = true. +Proof. Admitted. + +Lemma add_0_l (x : Core_Base_interface_Int.t_U8) (y : Core_Base_interface_Int.t_U8) (z : Core_Base_interface_Int.t_U8) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Add__f_add (Core_Base_interface_Int.Constants__f_ZERO) (Core_Clone.Clone__f_clone (x))) (x) = true. +Proof. Admitted. + +Lemma neg_idemp (x : Core_Base_interface_Int.t_U8) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Neg__f_neg (Core_Ops_Arith.Neg__f_neg (Core_Clone.Clone__f_clone (x)))) (x) = true. +Proof. Admitted. + +Lemma sub_is (x : Core_Base_interface_Int.t_U8) (y : Core_Base_interface_Int.t_U8) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Sub__f_sub (Core_Clone.Clone__f_clone (x)) (Core_Clone.Clone__f_clone (y))) (Core_Ops_Arith.Add__f_add (x) (Core_Ops_Arith.Neg__f_neg (y))) = true. +Proof. Admitted. + +Lemma sub_distr (x : Core_Base_interface_Int.t_U8) (y : Core_Base_interface_Int.t_U8) (z : Core_Base_interface_Int.t_U8) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Sub__f_sub (Core_Clone.Clone__f_clone (x)) (Core_Ops_Arith.Add__f_add (Core_Clone.Clone__f_clone (y)) (Core_Clone.Clone__f_clone (z)))) (Core_Ops_Arith.Add__f_add (x) (Core_Ops_Arith.Add__f_add (Core_Ops_Arith.Neg__f_neg (y)) (Core_Ops_Arith.Neg__f_neg (z)))) = true. +Proof. Admitted. + +Lemma addN (x : Core_Base_interface_Int.t_U8) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Sub__f_sub (Core_Clone.Clone__f_clone (x)) (x)) (Core_Base_interface_Int.Constants__f_ZERO) = true. +Proof. Admitted. + +Lemma mul_1_r (x : Core_Base_interface_Int.t_U8) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Mul__f_mul (Core_Clone.Clone__f_clone (x)) (Core_Base_interface_Int.Constants__f_ONE)) (x) = true. +Proof. Admitted. + +Lemma mul_1_l (x : Core_Base_interface_Int.t_U8) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Mul__f_mul (Core_Base_interface_Int.Constants__f_ONE) (Core_Clone.Clone__f_clone (x))) (x) = true. +Proof. Admitted. + +Lemma mulC (x : Core_Base_interface_Int.t_U8) (y : Core_Base_interface_Int.t_U8) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Mul__f_mul (Core_Clone.Clone__f_clone (x)) (Core_Clone.Clone__f_clone (y))) (Core_Ops_Arith.Mul__f_mul (y) (x)) = true. +Proof. Admitted. + +Lemma mulA (x : Core_Base_interface_Int.t_U8) (y : Core_Base_interface_Int.t_U8) (z : Core_Base_interface_Int.t_U8) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Mul__f_mul (Core_Clone.Clone__f_clone (x)) (Core_Ops_Arith.Mul__f_mul (Core_Clone.Clone__f_clone (y)) (Core_Clone.Clone__f_clone (z)))) (Core_Ops_Arith.Mul__f_mul (Core_Ops_Arith.Mul__f_mul (x) (y)) (z)) = true. +Proof. Admitted. + +Lemma mul_distr (x : Core_Base_interface_Int.t_U8) (y : Core_Base_interface_Int.t_U8) (z : Core_Base_interface_Int.t_U8) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Mul__f_mul (Core_Clone.Clone__f_clone (x)) (Core_Ops_Arith.Add__f_add (Core_Clone.Clone__f_clone (y)) (Core_Clone.Clone__f_clone (z)))) (Core_Ops_Arith.Add__f_add (Core_Ops_Arith.Mul__f_mul (Core_Clone.Clone__f_clone (x)) (y)) (Core_Ops_Arith.Mul__f_mul (x) (z))) = true. +Proof. Admitted. + +Lemma mul_opp (x : Core_Base_interface_Int.t_U8) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Neg__f_neg (Core_Clone.Clone__f_clone (x))) (Core_Ops_Arith.Mul__f_mul (Core_Ops_Arith.Neg__f_neg (Core_Base_interface_Int.Constants__f_ONE)) (x)) = true. +Proof. Admitted. + +Lemma div_1_r (x : Core_Base_interface_Int.t_U8) (y : Core_Base_interface_Int.t_U8) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Div__f_div (Core_Clone.Clone__f_clone (x)) (Core_Base_interface_Int.Constants__f_ONE)) (x) = true. +Proof. Admitted. + +Lemma shl_1_ (x : Core_Base_interface_Int.t_U8) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Bit.Shl__f_shl (Core_Clone.Clone__f_clone (x)) (Core_Base_interface_Int.Constants__f_ONE)) (Core_Ops_Arith.Add__f_add (Core_Clone.Clone__f_clone (x)) (x)) = true. +Proof. Admitted. + +Lemma shr_1_ (x : Core_Base_interface_Int.t_U8) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Bit.Shr__f_shr (Core_Clone.Clone__f_clone (x)) (Core_Base_interface_Int.Constants__f_ONE)) (Core_Ops_Arith.Div__f_div (Core_Clone.Clone__f_clone (x)) (Core_Ops_Arith.Add__f_add (Core_Base_interface_Int.Constants__f_ONE) (Core_Base_interface_Int.Constants__f_ONE))) = true. +Proof. Admitted. + +Lemma mod_small (x : Core_Base_interface_Int.t_U8) (y : Core_Base_interface_Int.t_U8) : + -> + orb (Core_Cmp.PartialOrd__f_ge (Core_Clone.Clone__f_clone (x)) (Core_Clone.Clone__f_clone (y))) (Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Rem__f_rem (Core_Clone.Clone__f_clone (x)) (y)) (x)) = true. +Proof. Admitted. + +Lemma int_range (x : Core_Base_interface_Int.t_U8) : + -> + andb (Core_Cmp.PartialOrd__f_le (Core_Base_interface_Int.Constants__f_MIN) (Core_Clone.Clone__f_clone (x))) (Core_Cmp.PartialOrd__f_le (x) (Core_Base_interface_Int.Constants__f_MAX)) = true. +Proof. Admitted. + +Lemma mod_one (x : Core_Base_interface_Int.t_U8) : + -> + Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Rem__f_rem (x) (Core_Base_interface_Int.Constants__f_ONE)) (Core_Base_interface_Int.Constants__f_ZERO) = true. +Proof. Admitted. + +Lemma mod_add (x : Core_Base_interface_Int.t_U8) (y : Core_Base_interface_Int.t_U8) (z : Core_Base_interface_Int.t_U8) : + -> + orb (Core_Base_Pos.haxint_le (Core_Base_Spec_Constants.v_WORDSIZE_8_) (Core_Base_Pos.haxint_add (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (x))) (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (y))))) (Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Rem__f_rem (Core_Ops_Arith.Add__f_add (Core_Clone.Clone__f_clone (x)) (Core_Clone.Clone__f_clone (y))) (Core_Clone.Clone__f_clone (z))) (Core_Ops_Arith.Rem__f_rem (Core_Ops_Arith.Add__f_add (Core_Ops_Arith.Rem__f_rem (x) (Core_Clone.Clone__f_clone (z))) (Core_Ops_Arith.Rem__f_rem (y) (Core_Clone.Clone__f_clone (z)))) (z))) = true. +Proof. Admitted. + +Lemma mod_sub (x : Core_Base_interface_Int.t_U8) (y : Core_Base_interface_Int.t_U8) (z : Core_Base_interface_Int.t_U8) : + -> + orb (orb (Core_Cmp.PartialOrd__f_lt (Core_Clone.Clone__f_clone (x)) (Core_Clone.Clone__f_clone (y))) (Core_Cmp.PartialOrd__f_le (Core_Clone.Clone__f_clone (z)) (Core_Clone.Clone__f_clone (x)))) (Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Rem__f_rem (Core_Ops_Arith.Sub__f_sub (Core_Clone.Clone__f_clone (x)) (Core_Clone.Clone__f_clone (y))) (Core_Clone.Clone__f_clone (z))) (Core_Ops_Arith.Rem__f_rem (Core_Ops_Arith.Sub__f_sub (Core_Ops_Arith.Rem__f_rem (x) (Core_Clone.Clone__f_clone (z))) (Core_Ops_Arith.Rem__f_rem (y) (Core_Clone.Clone__f_clone (z)))) (z))) = true. +Proof. Admitted. + +Lemma mod_mul (x : Core_Base_interface_Int.t_U8) (y : Core_Base_interface_Int.t_U8) (z : Core_Base_interface_Int.t_U8) : + -> + orb (Core_Base_Pos.haxint_lt (Core_Base_Spec_Constants.v_WORDSIZE_8_) (Core_Base_Pos.haxint_mul (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (x))) (Core_Base_interface_Coerce.Abstraction__f_lift (Core_Clone.Clone__f_clone (y))))) (Core_Cmp.PartialEq__f_eq (Core_Ops_Arith.Rem__f_rem (Core_Ops_Arith.Mul__f_mul (Core_Clone.Clone__f_clone (x)) (Core_Clone.Clone__f_clone (y))) (Core_Clone.Clone__f_clone (z))) (Core_Ops_Arith.Rem__f_rem (Core_Ops_Arith.Rem__f_rem (Core_Ops_Arith.Mul__f_mul (Core_Ops_Arith.Rem__f_rem (x) (Core_Clone.Clone__f_clone (z))) (y)) (Core_Clone.Clone__f_clone (z))) (z))) = true. Proof. Admitted. diff --git a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Bundle.v b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Bundle.v new file mode 100644 index 000000000..d56ef06f4 --- /dev/null +++ b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Bundle.v @@ -0,0 +1,5309 @@ +(* File automatically generated by Hacspec *) +From Coq Require Import ZArith. +Require Import List. +Import List.ListNotations. +Open Scope Z_scope. +Open Scope bool_scope. +Require Import Ascii. +Require Import String. +Require Import Coq.Floats.Floats. +From RecordUpdate Require Import RecordSet. +Import RecordSetNotations. +From Core Require Import Core_Convert. +From Core Require Import Core_Base_interface_Int. +From Core Require Import Core_Base_Spec_Seq. + +Record TryFromSliceError_TryFromSliceError_record : Type := + { + TryFromSliceError_TryFromSliceError_0 : unit; + }. + + +#[export] Instance settable_TryFromSliceError_TryFromSliceError_record : Settable _ := + settable! (Build_TryFromSliceError_TryFromSliceError_record) . +Notation "'TryFromSliceError_TryFromSliceError_record'" := Build_TryFromSliceError_TryFromSliceError_record. + + + + + + + +(* Instance t_From_222673973 : Core_Convert.t_From ((t_TryFromSliceError)) ((Core_Convert.t_Infallible)) := *) +(* { *) +(* Core_Convert.From_f_from := fun (x : Core_Convert.t_Infallible)=> *) +(* Rust_primitives_Hax.never_to_any (match x with *) +(* end); *) +(* }. *) + +(* TODO: please implement the method `item'_HaxError` *) + +(* Record Seq_Seq_record (v_T : Type) `{Core_Marker.t_Sized (v_T)} : Type := *) +(* { *) +(* Seq_Seq_f_Seq_v : Alloc_Vec.t_Vec ((v_T)) ((Alloc_Alloc.t_Global)); *) +(* }. *) +(* Arguments Build_Seq_Seq_record {_} {_}. *) +(* Arguments Seq_Seq_f_Seq_v {_} {_}. *) +(* #[export] Instance settable_Seq_Seq_record `{v_T : Type} `{Core_Marker.t_Sized (v_T)} : Settable _ := *) +(* settable! (Build_Seq_Seq_record (v_T := v_T)) . *) + +(* Inductive t_LIST (v_T : Type) `{Core_Marker.t_Sized (v_T)} : Type := *) +(* | LIST_NIL *) +(* | LIST_CONS : v_T -> t_Seq ((v_T)) -> _. *) +(* Arguments LIST_NIL {_} {_}. *) +(* Arguments LIST_CONS {_} {_}. *) + +(* Instance t_Clone_945595863 `{v_T : Type} `{Core_Marker.t_Sized (v_T)} `{Core_Clone.t_Clone (v_T)} : Core_Clone.t_Clone ((t_Seq ((v_T)))) := *) +(* { *) +(* Core_Clone.Clone_f_clone := fun (self : t_Seq ((v_T)))=> *) +(* Seq_Seq (Core_Clone.Clone__f_clone (f_Seq_v self)); *) +(* }. *) + +(* Definition nil `{v_T : Type} `{Core_Marker.t_Sized (v_T)} `{Core_Clone.t_Clone (v_T)} '(_ : unit) : t_Seq ((v_T)) := *) +(* Seq_Seq (Alloc_Vec.impl__new (tt)). *) + +Record t_u8 : Type := + { + t_u8_0 : Core_Base_interface_Int.t_U8; + }. + + +#[export] Instance settable_Build_t__u8_u8_record : Settable _ := + settable! (Build_t_u8) . +(* Notation "'Build_t__u8_u8_record'" := Build_Build_t__u8_u8_record. *) + +(* Instance t_PartialEq_65376715 : Core_Cmp.t_PartialEq ((t_u8)) ((t_u8)) := *) +(* { *) +(* Core_Cmp.PartialEq_impl_1__f_eq := fun (self : t_u8) (other : t_u8)=> *) +(* Core_Cmp.PartialEq__f_eq (0 self) (0 other); *) +(* Core_Cmp.PartialEq_impl_1__f_ne := fun (self : t_u8) (other : t_u8)=> *) +(* Core_Ops_Bit.Not__f_not (Core_Cmp.PartialEq__f_eq (0 self) (0 other)); *) +(* }. *) + +Instance t_Eq_438293247 : Core_Cmp.t_Eq ((t_u8)) := + { + }. + +(* Instance t_PartialOrd_810291116 : Core_Cmp.t_PartialOrd ((t_u8)) ((t_u8)) := *) +(* { *) +(* Core_Cmp.PartialOrd_impl_26__f_partial_cmp := fun (self : t_u8) (other : t_u8)=> *) +(* Core_Cmp.PartialOrd__f_partial_cmp (0 self) (0 other); *) +(* Core_Cmp.PartialOrd_impl_26__f_lt := fun (self : t_u8) (other : t_u8)=> *) +(* match Core_Cmp.PartialOrd__f_partial_cmp (0 self) (0 other) with *) +(* | Core_Option.Option_Some (Core_Cmp.Ordering_Less) => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* Core_Cmp.PartialOrd_impl_26__f_le := fun (self : t_u8) (other : t_u8)=> *) +(* match Core_Cmp.PartialOrd__f_partial_cmp (0 self) (0 other) with *) +(* | Core_Option.Option_Some (Core_Cmp.Ordering_Less *) +(* | Core_Cmp.Ordering_Equal) => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* Core_Cmp.PartialOrd_impl_26__f_ge := fun (self : t_u8) (other : t_u8)=> *) +(* match Core_Cmp.PartialOrd__f_partial_cmp (0 self) (0 other) with *) +(* | Core_Option.Option_Some (Core_Cmp.Ordering_Greater *) +(* | Core_Cmp.Ordering_Equal) => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* Core_Cmp.PartialOrd_impl_26__f_gt := fun (self : t_u8) (other : t_u8)=> *) +(* match Core_Cmp.PartialOrd__f_partial_cmp (0 self) (0 other) with *) +(* | Core_Option.Option_Some (Core_Cmp.Ordering_Greater) => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* }. *) + +(* Instance t_Ord_874912829 : Core_Cmp.t_Ord ((t_u8)) := *) +(* { *) +(* Core_Cmp.Ord_impl_27__f_cmp := fun (self : t_u8) (other : t_u8)=> *) +(* Core_Option.impl__unwrap (Core_Cmp.PartialOrd__f_partial_cmp (0 self) (0 other)); *) +(* }. *) + +(* Definition wrapping_add_u8 (a : t_u8) (b : t_u8) : t_u8 := *) +(* Build_t_u8 (Core_Ops_Arith.Add__f_add (0 a) (0 b)). *) + +(* Definition wrapping_sub_u8 (a : t_u8) (b : t_u8) : t_u8 := *) +(* Build_t__u8_u8 (Core_Ops_Arith.Sub__f_sub (0 a) (0 b)). *) + +(* Definition wrapping_mul_u8 (a : t_u8) (b : t_u8) : t_u8 := *) +(* Build_t__u8_u8 (Core_Ops_Arith.Mul__f_mul (0 a) (0 b)). *) + +(* Definition three_way_compare_u8 `{v_T : Type} `{Core_Marker.t_Sized (v_T)} `{Core_Marker.t_Copy (v_T)} (lhs : t_u8) (rhs : t_u8) : Core_Cmp.t_Ordering := *) +(* Core_Cmp.Ord__f_cmp (lhs) (rhs). *) + +(* Definition add_with_overflow_u8 (x : t_u8) (y : t_u8) : (t_u8*bool) := *) +(* let overflow := Core_Base_Pos.haxint_add (Core_Base_interface_Coerce.Abstraction__f_lift (0 x)) (Core_Base_interface_Coerce.Abstraction__f_lift (0 y)) in *) +(* let res : Core_Base_interface_Int.t_U8 := Core_Base_interface_Coerce.Concretization__f_concretize (Core_Clone.Clone__f_clone (overflow)) in *) +(* (Build_t__u8_u8 (Core_Clone.Clone__f_clone (res)),Core_Base_Pos.haxint_lt (Core_Base_interface_Coerce.Abstraction__f_lift (res)) (overflow)). *) + +(* Definition unchecked_div_u8 (x : t_u8) (y : t_u8) : t_u8 := *) +(* Build_t__u8_u8 (Core_Base_interface_Int.U8_U8 (Core_Base_Pos.haxint_div (Core_Base_interface_Coerce.Abstraction__f_lift (0 x)) (Core_Base_interface_Coerce.Abstraction__f_lift (0 y)))). *) + +(* Definition unchecked_add_u8 (x : t_u8) (y : t_u8) : t_u8 := *) +(* Build_t__u8_u8 (Core_Base_interface_Int.U8_U8 (Core_Base_Pos.haxint_add (Core_Base_interface_Coerce.Abstraction__f_lift (0 x)) (Core_Base_interface_Coerce.Abstraction__f_lift (0 y)))). *) + +(* Definition impl_6__MIN : t_u8 := *) +(* Build_t__u8_u8 (Core_Base_interface_Int.Constants__f_MIN). *) + +(* Definition impl_6__MAX : t_u8 := *) +(* Build_t__u8_u8 (Core_Base_interface_Int.Constants__f_MAX). *) + +(* Definition impl_6__from_le (x : t_u8) : t_u8 := *) +(* x. *) + +(* Definition impl_6__to_le (self : t_u8) : t_u8 := *) +(* self. *) + +(* Definition impl_6__checked_add (self : t_u8) (rhs : t_u8) : Core_Option.t_Option ((t_u8)) := *) +(* Core_Option.Option_Some (unchecked_add_u8 (self) (rhs)). *) + +(* Definition impl_6__wrapping_add (self : t_u8) (rhs : t_u8) : t_u8 := *) +(* wrapping_add_u8 (self) (rhs). *) + +(* Definition impl_6__wrapping_sub (self : t_u8) (rhs : t_u8) : t_u8 := *) +(* wrapping_sub_u8 (self) (rhs). *) + +(* Definition impl_6__wrapping_mul (self : t_u8) (rhs : t_u8) : t_u8 := *) +(* wrapping_mul_u8 (self) (rhs). *) + +(* Definition impl_6__wrapping_neg (self : t_u8) : t_u8 := *) +(* impl_6__wrapping_sub (Build_t__u8_u8 (Core_Base_interface_Int.Constants__f_ZERO)) (self). *) + +(* Definition impl_6__overflowing_add (self : t_u8) (rhs : t_u8) : (t_u8*bool) := *) +(* add_with_overflow_u8 (self) (rhs). *) + +(* Instance t_Clone_63118506 : Core_Clone.t_Clone ((t_u8)) := *) +(* { *) +(* Core_Clone.Clone_impl_5__f_clone := fun (self : t_u8)=> *) +(* Build_t__u8_u8 (Core_Clone.Clone__f_clone (0 self)); *) +(* }. *) + +Record t_u16 : Type := + { + t_u16_0 : Core_Base_interface_Int.t_U16; + }. + + +(* #[export] Instance settable_Build_t__u16_u16_record : Settable _ := *) +(* settable! (Build_Build_t__u16_u16_record) . *) +(* Notation "'Build_t__u16_u16_record'" := Build_Build_t__u16_u16_record. *) + +(* Instance t_PartialEq_135623619 : Core_Cmp.t_PartialEq ((t_u16)) ((t_u16)) := *) +(* { *) +(* Core_Cmp.PartialEq_impl_2__f_eq := fun (self : t_u16) (other : t_u16)=> *) +(* Core_Cmp.PartialEq__f_eq (0 self) (0 other); *) +(* Core_Cmp.PartialEq_impl_2__f_ne := fun (self : t_u16) (other : t_u16)=> *) +(* Core_Ops_Bit.Not__f_not (Core_Cmp.PartialEq__f_eq (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Eq_300707985 : Core_Cmp.t_Eq ((t_u16)) := *) +(* { *) +(* }. *) + +(* Instance t_PartialOrd_127792480 : Core_Cmp.t_PartialOrd ((t_u16)) ((t_u16)) := *) +(* { *) +(* Core_Cmp.PartialOrd_impl_28__f_partial_cmp := fun (self : t_u16) (other : t_u16)=> *) +(* Core_Cmp.PartialOrd__f_partial_cmp (0 self) (0 other); *) +(* Core_Cmp.PartialOrd_impl_28__f_lt := fun (self : t_u16) (other : t_u16)=> *) +(* match Core_Cmp.PartialOrd__f_partial_cmp (0 self) (0 other) with *) +(* | Core_Option.Option_Some (Core_Cmp.Ordering_Less) => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* Core_Cmp.PartialOrd_impl_28__f_le := fun (self : t_u16) (other : t_u16)=> *) +(* match Core_Cmp.PartialOrd__f_partial_cmp (0 self) (0 other) with *) +(* | Core_Option.Option_Some (Core_Cmp.Ordering_Less *) +(* | Core_Cmp.Ordering_Equal) => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* Core_Cmp.PartialOrd_impl_28__f_ge := fun (self : t_u16) (other : t_u16)=> *) +(* match Core_Cmp.PartialOrd__f_partial_cmp (0 self) (0 other) with *) +(* | Core_Option.Option_Some (Core_Cmp.Ordering_Greater *) +(* | Core_Cmp.Ordering_Equal) => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* Core_Cmp.PartialOrd_impl_28__f_gt := fun (self : t_u16) (other : t_u16)=> *) +(* match Core_Cmp.PartialOrd__f_partial_cmp (0 self) (0 other) with *) +(* | Core_Option.Option_Some (Core_Cmp.Ordering_Greater) => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* }. *) + +(* Instance t_Ord_146704218 : Core_Cmp.t_Ord ((t_u16)) := *) +(* { *) +(* Core_Cmp.Ord_impl_29__f_cmp := fun (self : t_u16) (other : t_u16)=> *) +(* Core_Option.impl__unwrap (Core_Cmp.PartialOrd__f_partial_cmp (0 self) (0 other)); *) +(* }. *) + +(* Instance t_From_200763843 : Core_Convert.t_From ((t_u16)) ((t_u8)) := *) +(* { *) +(* Core_Convert.From_f_from := fun (small : t_u8)=> *) +(* Build_t__u16_u16 (Core_Convert.Into__f_into (0 small)); *) +(* }. *) + +(* Instance t_From_915843081 : Core_Convert.t_From ((t_u8)) ((t_u16)) := *) +(* { *) +(* Core_Convert.From_impl_12__f_from := fun (x : t_u16)=> *) +(* Build_t__u8_u8 (Core_Convert.Into__f_into (0 x)); *) +(* }. *) + +(* Definition wrapping_add_u16 (a : t_u16) (b : t_u16) : t_u16 := *) +(* Build_t__u16_u16 (Core_Ops_Arith.Add__f_add (0 a) (0 b)). *) + +(* Definition wrapping_sub_u16 (a : t_u16) (b : t_u16) : t_u16 := *) +(* Build_t__u16_u16 (Core_Ops_Arith.Sub__f_sub (0 a) (0 b)). *) + +(* Definition wrapping_mul_u16 (a : t_u16) (b : t_u16) : t_u16 := *) +(* Build_t__u16_u16 (Core_Ops_Arith.Mul__f_mul (0 a) (0 b)). *) + +(* Definition three_way_compare_u16 `{v_T : Type} `{Core_Marker.t_Sized (v_T)} `{Core_Marker.t_Copy (v_T)} (lhs : t_u16) (rhs : t_u16) : Core_Cmp.t_Ordering := *) +(* Core_Cmp.Ord__f_cmp (lhs) (rhs). *) + +(* Definition add_with_overflow_u16 (x : t_u16) (y : t_u16) : (t_u16*bool) := *) +(* let overflow := Core_Base_Pos.haxint_add (Core_Base_interface_Coerce.Abstraction__f_lift (0 x)) (Core_Base_interface_Coerce.Abstraction__f_lift (0 y)) in *) +(* let res : Core_Base_interface_Int.t_U16 := Core_Base_interface_Coerce.Concretization__f_concretize (Core_Clone.Clone__f_clone (overflow)) in *) +(* (Build_t__u16_u16 (Core_Clone.Clone__f_clone (res)),Core_Base_Pos.haxint_lt (Core_Base_interface_Coerce.Abstraction__f_lift (res)) (overflow)). *) + +(* Definition unchecked_div_u16 (x : t_u16) (y : t_u16) : t_u16 := *) +(* Build_t__u16_u16 (Core_Base_interface_Int.U16_U16 (Core_Base_Pos.haxint_div (Core_Base_interface_Coerce.Abstraction__f_lift (0 x)) (Core_Base_interface_Coerce.Abstraction__f_lift (0 y)))). *) + +(* Definition unchecked_add_u16 (x : t_u16) (y : t_u16) : t_u16 := *) +(* Build_t__u16_u16 (Core_Base_interface_Int.U16_U16 (Core_Base_Pos.haxint_add (Core_Base_interface_Coerce.Abstraction__f_lift (0 x)) (Core_Base_interface_Coerce.Abstraction__f_lift (0 y)))). *) + +(* Definition impl_7__MIN : t_u16 := *) +(* Build_t__u16_u16 (Core_Base_interface_Int.Constants__f_MIN). *) + +(* Definition impl_7__MAX : t_u16 := *) +(* Build_t__u16_u16 (Core_Base_interface_Int.Constants__f_MAX). *) + +(* Definition impl_7__from_le (x : t_u16) : t_u16 := *) +(* x. *) + +(* Definition impl_7__to_le (self : t_u16) : t_u16 := *) +(* self. *) + +(* Definition impl_7__checked_add (self : t_u16) (rhs : t_u16) : Core_Option.t_Option ((t_u16)) := *) +(* Core_Option.Option_Some (unchecked_add_u16 (self) (rhs)). *) + +(* Definition impl_7__wrapping_add (self : t_u16) (rhs : t_u16) : t_u16 := *) +(* wrapping_add_u16 (self) (rhs). *) + +(* Definition impl_7__wrapping_sub (self : t_u16) (rhs : t_u16) : t_u16 := *) +(* wrapping_sub_u16 (self) (rhs). *) + +(* Definition impl_7__wrapping_mul (self : t_u16) (rhs : t_u16) : t_u16 := *) +(* wrapping_mul_u16 (self) (rhs). *) + +(* Definition impl_7__wrapping_neg (self : t_u16) : t_u16 := *) +(* impl_7__wrapping_sub (Build_t__u16_u16 (Core_Base_interface_Int.Constants__f_ZERO)) (self). *) + +(* Definition impl_7__overflowing_add (self : t_u16) (rhs : t_u16) : (t_u16*bool) := *) +(* add_with_overflow_u16 (self) (rhs). *) + +(* Instance t_Clone_682346410 : Core_Clone.t_Clone ((t_u16)) := *) +(* { *) +(* Core_Clone.Clone_impl_7__f_clone := fun (self : t_u16)=> *) +(* Build_t__u16_u16 (Core_Clone.Clone__f_clone (0 self)); *) +(* }. *) + +Record t_u32 : Type := + { + t_u32_0 : Core_Base_interface_Int.t_U32; + }. + + +(* #[export] Instance settable_Build_t__u32_u32_record : Settable _ := *) +(* settable! (Build_Build_t__u32_u32_record) . *) +(* Notation "'Build_t__u32_u32_record'" := Build_Build_t__u32_u32_record. *) + +(* Instance t_PartialEq_222334941 : Core_Cmp.t_PartialEq ((t_u32)) ((t_u32)) := *) +(* { *) +(* Core_Cmp.PartialEq_impl_3__f_eq := fun (self : t_u32) (other : t_u32)=> *) +(* Core_Cmp.PartialEq__f_eq (0 self) (0 other); *) +(* Core_Cmp.PartialEq_impl_3__f_ne := fun (self : t_u32) (other : t_u32)=> *) +(* Core_Ops_Bit.Not__f_not (Core_Cmp.PartialEq__f_eq (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Eq_500049768 : Core_Cmp.t_Eq ((t_u32)) := *) +(* { *) +(* }. *) + +(* Instance t_PartialOrd_119362547 : Core_Cmp.t_PartialOrd ((t_u32)) ((t_u32)) := *) +(* { *) +(* Core_Cmp.PartialOrd_impl_30__f_partial_cmp := fun (self : t_u32) (other : t_u32)=> *) +(* Core_Cmp.PartialOrd__f_partial_cmp (0 self) (0 other); *) +(* Core_Cmp.PartialOrd_impl_30__f_lt := fun (self : t_u32) (other : t_u32)=> *) +(* match Core_Cmp.PartialOrd__f_partial_cmp (0 self) (0 other) with *) +(* | Core_Option.Option_Some (Core_Cmp.Ordering_Less) => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* Core_Cmp.PartialOrd_impl_30__f_le := fun (self : t_u32) (other : t_u32)=> *) +(* match Core_Cmp.PartialOrd__f_partial_cmp (0 self) (0 other) with *) +(* | Core_Option.Option_Some (Core_Cmp.Ordering_Less *) +(* | Core_Cmp.Ordering_Equal) => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* Core_Cmp.PartialOrd_impl_30__f_ge := fun (self : t_u32) (other : t_u32)=> *) +(* match Core_Cmp.PartialOrd__f_partial_cmp (0 self) (0 other) with *) +(* | Core_Option.Option_Some (Core_Cmp.Ordering_Greater *) +(* | Core_Cmp.Ordering_Equal) => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* Core_Cmp.PartialOrd_impl_30__f_gt := fun (self : t_u32) (other : t_u32)=> *) +(* match Core_Cmp.PartialOrd__f_partial_cmp (0 self) (0 other) with *) +(* | Core_Option.Option_Some (Core_Cmp.Ordering_Greater) => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* }. *) + +(* Instance t_Ord_207671765 : Core_Cmp.t_Ord ((t_u32)) := *) +(* { *) +(* Core_Cmp.Ord_impl_31__f_cmp := fun (self : t_u32) (other : t_u32)=> *) +(* Core_Option.impl__unwrap (Core_Cmp.PartialOrd__f_partial_cmp (0 self) (0 other)); *) +(* }. *) + +(* Instance t_From_825461097 : Core_Convert.t_From ((t_u32)) ((t_u8)) := *) +(* { *) +(* Core_Convert.From_impl_1__f_from := fun (small : t_u8)=> *) +(* Build_t__u32_u32 (Core_Convert.Into__f_into (0 small)); *) +(* }. *) + +(* Instance t_From_323529564 : Core_Convert.t_From ((t_u32)) ((t_u16)) := *) +(* { *) +(* Core_Convert.From_impl_5__f_from := fun (small : t_u16)=> *) +(* Build_t__u32_u32 (Core_Convert.Into__f_into (0 small)); *) +(* }. *) + +(* Instance t_From_280971665 : Core_Convert.t_From ((t_u8)) ((t_u32)) := *) +(* { *) +(* Core_Convert.From_impl_13__f_from := fun (x : t_u32)=> *) +(* Build_t__u8_u8 (Core_Convert.Into__f_into (0 x)); *) +(* }. *) + +(* Instance t_From_729180779 : Core_Convert.t_From ((t_u16)) ((t_u32)) := *) +(* { *) +(* Core_Convert.From_impl_14__f_from := fun (x : t_u32)=> *) +(* Build_t__u16_u16 (Core_Convert.Into__f_into (0 x)); *) +(* }. *) + +(* Definition wrapping_add_u32 (a : t_u32) (b : t_u32) : t_u32 := *) +(* Build_t__u32_u32 (Core_Ops_Arith.Add__f_add (0 a) (0 b)). *) + +(* Definition wrapping_sub_u32 (a : t_u32) (b : t_u32) : t_u32 := *) +(* Build_t__u32_u32 (Core_Ops_Arith.Sub__f_sub (0 a) (0 b)). *) + +(* Definition wrapping_mul_u32 (a : t_u32) (b : t_u32) : t_u32 := *) +(* Build_t__u32_u32 (Core_Ops_Arith.Mul__f_mul (0 a) (0 b)). *) + +(* Definition three_way_compare_u32 `{v_T : Type} `{Core_Marker.t_Sized (v_T)} `{Core_Marker.t_Copy (v_T)} (lhs : t_u32) (rhs : t_u32) : Core_Cmp.t_Ordering := *) +(* Core_Cmp.Ord__f_cmp (lhs) (rhs). *) + +(* Definition add_with_overflow_u32 (x : t_u32) (y : t_u32) : (t_u32*bool) := *) +(* let overflow := Core_Base_Pos.haxint_add (Core_Base_interface_Coerce.Abstraction__f_lift (0 x)) (Core_Base_interface_Coerce.Abstraction__f_lift (0 y)) in *) +(* let res : Core_Base_interface_Int.t_U32 := Core_Base_interface_Coerce.Concretization__f_concretize (Core_Clone.Clone__f_clone (overflow)) in *) +(* (Build_t__u32_u32 (Core_Clone.Clone__f_clone (res)),Core_Base_Pos.haxint_lt (Core_Base_interface_Coerce.Abstraction__f_lift (res)) (overflow)). *) + +(* Definition unchecked_div_u32 (x : t_u32) (y : t_u32) : t_u32 := *) +(* Build_t__u32_u32 (Core_Base_interface_Int.U32_U32 (Core_Base_Pos.haxint_div (Core_Base_interface_Coerce.Abstraction__f_lift (0 x)) (Core_Base_interface_Coerce.Abstraction__f_lift (0 y)))). *) + +(* Definition unchecked_add_u32 (x : t_u32) (y : t_u32) : t_u32 := *) +(* Build_t__u32_u32 (Core_Base_interface_Int.U32_U32 (Core_Base_Pos.haxint_add (Core_Base_interface_Coerce.Abstraction__f_lift (0 x)) (Core_Base_interface_Coerce.Abstraction__f_lift (0 y)))). *) + +(* Definition impl__BITS : t_u32 := *) +(* Build_t__u32_u32 (Core_Base_interface_Int.impl_149__BITS). *) + +(* Definition impl_1__BITS : t_u32 := *) +(* Build_t__u32_u32 (Core_Base_interface_Int.impl_122__BITS). *) + +(* Definition impl_2__BITS : t_u32 := *) +(* Build_t__u32_u32 (Core_Base_interface_Int.impl_95__BITS). *) + +(* Definition impl_3__BITS : t_u32 := *) +(* Build_t__u32_u32 (Core_Base_interface_Int.impl_68__BITS). *) + +(* Definition impl_4__BITS : t_u32 := *) +(* Build_t__u32_u32 (Core_Base_interface_Int.impl_41__BITS). *) + +(* Definition impl_5__BITS : t_u32 := *) +(* Build_t__u32_u32 (Core_Base_interface_Int.impl_68__BITS). *) + +(* Definition impl_6__BITS : t_u32 := *) +(* Build_t__u32_u32 (Core_Base_interface_Int.impl_284__BITS). *) + +(* Definition impl_7__BITS : t_u32 := *) +(* Build_t__u32_u32 (Core_Base_interface_Int.impl_257__BITS). *) + +(* Definition impl_8__MIN : t_u32 := *) +(* Build_t__u32_u32 (Core_Base_interface_Int.Constants__f_MIN). *) + +(* Definition impl_8__MAX : t_u32 := *) +(* Build_t__u32_u32 (Core_Base_interface_Int.Constants__f_MAX). *) + +(* Definition impl_8__BITS : t_u32 := *) +(* Build_t__u32_u32 (Core_Base_interface_Int.impl_230__BITS). *) + +(* Definition impl_8__from_le (x : t_u32) : t_u32 := *) +(* x. *) + +(* Definition impl_8__to_le (self : t_u32) : t_u32 := *) +(* self. *) + +(* Definition impl_8__checked_add (self : t_u32) (rhs : t_u32) : Core_Option.t_Option ((t_u32)) := *) +(* Core_Option.Option_Some (unchecked_add_u32 (self) (rhs)). *) + +(* Definition impl_8__wrapping_add (self : t_u32) (rhs : t_u32) : t_u32 := *) +(* wrapping_add_u32 (self) (rhs). *) + +(* Definition impl_8__wrapping_sub (self : t_u32) (rhs : t_u32) : t_u32 := *) +(* wrapping_sub_u32 (self) (rhs). *) + +(* Definition impl_8__wrapping_mul (self : t_u32) (rhs : t_u32) : t_u32 := *) +(* wrapping_mul_u32 (self) (rhs). *) + +(* Definition impl_8__wrapping_neg (self : t_u32) : t_u32 := *) +(* impl_8__wrapping_sub (Build_t__u32_u32 (Core_Base_interface_Int.Constants__f_ZERO)) (self). *) + +(* Definition impl_8__overflowing_add (self : t_u32) (rhs : t_u32) : (t_u32*bool) := *) +(* add_with_overflow_u32 (self) (rhs). *) + +(* Definition impl_9__BITS : t_u32 := *) +(* Build_t__u32_u32 (Core_Base_interface_Int.impl_203__BITS). *) + +(* Definition impl_10__BITS : t_u32 := *) +(* Build_t__u32_u32 (Core_Base_interface_Int.impl_176__BITS). *) + +(* Definition impl_11__BITS : t_u32 := *) +(* Build_t__u32_u32 (Core_Base_interface_Int.impl_203__BITS). *) + +(* Instance t_Clone_716919478 : Core_Clone.t_Clone ((t_u32)) := *) +(* { *) +(* Core_Clone.Clone_impl_9__f_clone := fun (self : t_u32)=> *) +(* Build_t__u32_u32 (Core_Clone.Clone__f_clone (0 self)); *) +(* }. *) + +Record t_u64 : Type := + { + t_u64_0 : Core_Base_interface_Int.t_U64; + }. + + +(* #[export] Instance settable_Build_t__u64_u64_record : Settable _ := *) +(* settable! (Build_Build_t__u64_u64_record) . *) +(* Notation "'Build_t__u64_u64_record'" := Build_Build_t__u64_u64_record. *) + +(* Instance t_PartialEq_698876183 : Core_Cmp.t_PartialEq ((t_u64)) ((t_u64)) := *) +(* { *) +(* Core_Cmp.PartialEq_impl_4__f_eq := fun (self : t_u64) (other : t_u64)=> *) +(* Core_Cmp.PartialEq__f_eq (0 self) (0 other); *) +(* Core_Cmp.PartialEq_impl_4__f_ne := fun (self : t_u64) (other : t_u64)=> *) +(* Core_Ops_Bit.Not__f_not (Core_Cmp.PartialEq__f_eq (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Eq_836077972 : Core_Cmp.t_Eq ((t_u64)) := *) +(* { *) +(* }. *) + +(* Instance t_PartialOrd_62313665 : Core_Cmp.t_PartialOrd ((t_u64)) ((t_u64)) := *) +(* { *) +(* Core_Cmp.PartialOrd_impl_32__f_partial_cmp := fun (self : t_u64) (other : t_u64)=> *) +(* Core_Cmp.PartialOrd__f_partial_cmp (0 self) (0 other); *) +(* Core_Cmp.PartialOrd_impl_32__f_lt := fun (self : t_u64) (other : t_u64)=> *) +(* match Core_Cmp.PartialOrd__f_partial_cmp (0 self) (0 other) with *) +(* | Core_Option.Option_Some (Core_Cmp.Ordering_Less) => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* Core_Cmp.PartialOrd_impl_32__f_le := fun (self : t_u64) (other : t_u64)=> *) +(* match Core_Cmp.PartialOrd__f_partial_cmp (0 self) (0 other) with *) +(* | Core_Option.Option_Some (Core_Cmp.Ordering_Less *) +(* | Core_Cmp.Ordering_Equal) => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* Core_Cmp.PartialOrd_impl_32__f_ge := fun (self : t_u64) (other : t_u64)=> *) +(* match Core_Cmp.PartialOrd__f_partial_cmp (0 self) (0 other) with *) +(* | Core_Option.Option_Some (Core_Cmp.Ordering_Greater *) +(* | Core_Cmp.Ordering_Equal) => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* Core_Cmp.PartialOrd_impl_32__f_gt := fun (self : t_u64) (other : t_u64)=> *) +(* match Core_Cmp.PartialOrd__f_partial_cmp (0 self) (0 other) with *) +(* | Core_Option.Option_Some (Core_Cmp.Ordering_Greater) => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* }. *) + +(* Instance t_Ord_106529917 : Core_Cmp.t_Ord ((t_u64)) := *) +(* { *) +(* Core_Cmp.Ord_impl_33__f_cmp := fun (self : t_u64) (other : t_u64)=> *) +(* Core_Option.impl__unwrap (Core_Cmp.PartialOrd__f_partial_cmp (0 self) (0 other)); *) +(* }. *) + +(* Instance t_From_1048234506 : Core_Convert.t_From ((t_u64)) ((t_u8)) := *) +(* { *) +(* Core_Convert.From_impl_2__f_from := fun (small : t_u8)=> *) +(* Build_t__u64_u64 (Core_Convert.Into__f_into (0 small)); *) +(* }. *) + +(* Instance t_From_383321967 : Core_Convert.t_From ((t_u64)) ((t_u16)) := *) +(* { *) +(* Core_Convert.From_impl_6__f_from := fun (small : t_u16)=> *) +(* Build_t__u64_u64 (Core_Convert.Into__f_into (0 small)); *) +(* }. *) + +(* Instance t_From_664380061 : Core_Convert.t_From ((t_u64)) ((t_u32)) := *) +(* { *) +(* Core_Convert.From_impl_8__f_from := fun (small : t_u32)=> *) +(* Build_t__u64_u64 (Core_Convert.Into__f_into (0 small)); *) +(* }. *) + +(* Instance t_From_310071588 : Core_Convert.t_From ((t_u8)) ((t_u64)) := *) +(* { *) +(* Core_Convert.From_impl_16__f_from := fun (x : t_u64)=> *) +(* Build_t__u8_u8 (Core_Convert.Into__f_into (0 x)); *) +(* }. *) + +(* Instance t_From_266045733 : Core_Convert.t_From ((t_u16)) ((t_u64)) := *) +(* { *) +(* Core_Convert.From_impl_17__f_from := fun (x : t_u64)=> *) +(* Build_t__u16_u16 (Core_Convert.Into__f_into (0 x)); *) +(* }. *) + +(* Instance t_From_186232571 : Core_Convert.t_From ((t_u32)) ((t_u64)) := *) +(* { *) +(* Core_Convert.From_impl_18__f_from := fun (x : t_u64)=> *) +(* Build_t__u32_u32 (Core_Convert.Into__f_into (0 x)); *) +(* }. *) + +(* Definition wrapping_add_u64 (a : t_u64) (b : t_u64) : t_u64 := *) +(* Build_t__u64_u64 (Core_Ops_Arith.Add__f_add (0 a) (0 b)). *) + +(* Definition wrapping_sub_u64 (a : t_u64) (b : t_u64) : t_u64 := *) +(* Build_t__u64_u64 (Core_Ops_Arith.Sub__f_sub (0 a) (0 b)). *) + +(* Definition wrapping_mul_u64 (a : t_u64) (b : t_u64) : t_u64 := *) +(* Build_t__u64_u64 (Core_Ops_Arith.Mul__f_mul (0 a) (0 b)). *) + +(* Definition three_way_compare_u64 `{v_T : Type} `{Core_Marker.t_Sized (v_T)} `{Core_Marker.t_Copy (v_T)} (lhs : t_u64) (rhs : t_u64) : Core_Cmp.t_Ordering := *) +(* Core_Cmp.Ord__f_cmp (lhs) (rhs). *) + +(* Definition add_with_overflow_u64 (x : t_u64) (y : t_u64) : (t_u64*bool) := *) +(* let overflow := Core_Base_Pos.haxint_add (Core_Base_interface_Coerce.Abstraction__f_lift (0 x)) (Core_Base_interface_Coerce.Abstraction__f_lift (0 y)) in *) +(* let res : Core_Base_interface_Int.t_U64 := Core_Base_interface_Coerce.Concretization__f_concretize (Core_Clone.Clone__f_clone (overflow)) in *) +(* (Build_t__u64_u64 (Core_Clone.Clone__f_clone (res)),Core_Base_Pos.haxint_lt (Core_Base_interface_Coerce.Abstraction__f_lift (res)) (overflow)). *) + +(* Definition unchecked_div_u64 (x : t_u64) (y : t_u64) : t_u64 := *) +(* Build_t__u64_u64 (Core_Base_interface_Int.U64_U64 (Core_Base_Pos.haxint_div (Core_Base_interface_Coerce.Abstraction__f_lift (0 x)) (Core_Base_interface_Coerce.Abstraction__f_lift (0 y)))). *) + +(* Definition unchecked_add_u64 (x : t_u64) (y : t_u64) : t_u64 := *) +(* Build_t__u64_u64 (Core_Base_interface_Int.U64_U64 (Core_Base_Pos.haxint_add (Core_Base_interface_Coerce.Abstraction__f_lift (0 x)) (Core_Base_interface_Coerce.Abstraction__f_lift (0 y)))). *) + +(* Definition impl_9__MIN : t_u64 := *) +(* Build_t__u64_u64 (Core_Base_interface_Int.Constants__f_MIN). *) + +(* Definition impl_9__MAX : t_u64 := *) +(* Build_t__u64_u64 (Core_Base_interface_Int.Constants__f_MAX). *) + +(* Definition impl_9__from_le (x : t_u64) : t_u64 := *) +(* x. *) + +(* Definition impl_9__to_le (self : t_u64) : t_u64 := *) +(* self. *) + +(* Definition impl_9__checked_add (self : t_u64) (rhs : t_u64) : Core_Option.t_Option ((t_u64)) := *) +(* Core_Option.Option_Some (unchecked_add_u64 (self) (rhs)). *) + +(* Definition impl_9__wrapping_add (self : t_u64) (rhs : t_u64) : t_u64 := *) +(* wrapping_add_u64 (self) (rhs). *) + +(* Definition impl_9__wrapping_sub (self : t_u64) (rhs : t_u64) : t_u64 := *) +(* wrapping_sub_u64 (self) (rhs). *) + +(* Definition impl_9__wrapping_mul (self : t_u64) (rhs : t_u64) : t_u64 := *) +(* wrapping_mul_u64 (self) (rhs). *) + +(* Definition impl_9__wrapping_neg (self : t_u64) : t_u64 := *) +(* impl_9__wrapping_sub (Build_t__u64_u64 (Core_Base_interface_Int.Constants__f_ZERO)) (self). *) + +(* Definition impl_9__overflowing_add (self : t_u64) (rhs : t_u64) : (t_u64*bool) := *) +(* add_with_overflow_u64 (self) (rhs). *) + +(* Instance t_Clone_495279431 : Core_Clone.t_Clone ((t_u64)) := *) +(* { *) +(* Core_Clone.Clone_impl_11__f_clone := fun (self : t_u64)=> *) +(* Build_t__u64_u64 (Core_Clone.Clone__f_clone (0 self)); *) +(* }. *) + +Record t_u128 : Type := + { + t_u128_0 : Core_Base_interface_Int.t_U128; + }. + + +(* #[export] Instance settable_Build_t__u128_u128_record : Settable _ := *) +(* settable! (Build_Build_t__u128_u128_record) . *) +(* Notation "'Build_t__u128_u128_record'" := Build_Build_t__u128_u128_record. *) + +(* Instance t_PartialEq_593791874 : Core_Cmp.t_PartialEq ((t_u128)) ((t_u128)) := *) +(* { *) +(* Core_Cmp.PartialEq_impl_5__f_eq := fun (self : t_u128) (other : t_u128)=> *) +(* Core_Cmp.PartialEq__f_eq (0 self) (0 other); *) +(* Core_Cmp.PartialEq_impl_5__f_ne := fun (self : t_u128) (other : t_u128)=> *) +(* Core_Ops_Bit.Not__f_not (Core_Cmp.PartialEq__f_eq (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Eq_684733949 : Core_Cmp.t_Eq ((t_u128)) := *) +(* { *) +(* }. *) + +(* Instance t_PartialOrd_191034703 : Core_Cmp.t_PartialOrd ((t_u128)) ((t_u128)) := *) +(* { *) +(* Core_Cmp.PartialOrd_impl_34__f_partial_cmp := fun (self : t_u128) (other : t_u128)=> *) +(* Core_Cmp.PartialOrd__f_partial_cmp (0 self) (0 other); *) +(* Core_Cmp.PartialOrd_impl_34__f_lt := fun (self : t_u128) (other : t_u128)=> *) +(* match Core_Cmp.PartialOrd__f_partial_cmp (0 self) (0 other) with *) +(* | Core_Option.Option_Some (Core_Cmp.Ordering_Less) => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* Core_Cmp.PartialOrd_impl_34__f_le := fun (self : t_u128) (other : t_u128)=> *) +(* match Core_Cmp.PartialOrd__f_partial_cmp (0 self) (0 other) with *) +(* | Core_Option.Option_Some (Core_Cmp.Ordering_Less *) +(* | Core_Cmp.Ordering_Equal) => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* Core_Cmp.PartialOrd_impl_34__f_ge := fun (self : t_u128) (other : t_u128)=> *) +(* match Core_Cmp.PartialOrd__f_partial_cmp (0 self) (0 other) with *) +(* | Core_Option.Option_Some (Core_Cmp.Ordering_Greater *) +(* | Core_Cmp.Ordering_Equal) => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* Core_Cmp.PartialOrd_impl_34__f_gt := fun (self : t_u128) (other : t_u128)=> *) +(* match Core_Cmp.PartialOrd__f_partial_cmp (0 self) (0 other) with *) +(* | Core_Option.Option_Some (Core_Cmp.Ordering_Greater) => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* }. *) + +(* Instance t_Ord_122134072 : Core_Cmp.t_Ord ((t_u128)) := *) +(* { *) +(* Core_Cmp.Ord_impl_35__f_cmp := fun (self : t_u128) (other : t_u128)=> *) +(* Core_Option.impl__unwrap (Core_Cmp.PartialOrd__f_partial_cmp (0 self) (0 other)); *) +(* }. *) + +(* Instance t_From_209943810 : Core_Convert.t_From ((t_u128)) ((t_u8)) := *) +(* { *) +(* Core_Convert.From_impl_3__f_from := fun (small : t_u8)=> *) +(* Build_t__u128_u128 (Core_Convert.Into__f_into (0 small)); *) +(* }. *) + +(* Instance t_From_623156147 : Core_Convert.t_From ((t_u128)) ((t_u16)) := *) +(* { *) +(* Core_Convert.From_impl_7__f_from := fun (small : t_u16)=> *) +(* Build_t__u128_u128 (Core_Convert.Into__f_into (0 small)); *) +(* }. *) + +(* Instance t_From_700116453 : Core_Convert.t_From ((t_u128)) ((t_u32)) := *) +(* { *) +(* Core_Convert.From_impl_9__f_from := fun (small : t_u32)=> *) +(* Build_t__u128_u128 (Core_Convert.Into__f_into (0 small)); *) +(* }. *) + +(* Instance t_From_481902408 : Core_Convert.t_From ((t_u128)) ((t_u64)) := *) +(* { *) +(* Core_Convert.From_impl_10__f_from := fun (small : t_u64)=> *) +(* Build_t__u128_u128 (Core_Convert.Into__f_into (0 small)); *) +(* }. *) + +(* Instance t_From_919042308 : Core_Convert.t_From ((t_u8)) ((t_u128)) := *) +(* { *) +(* Core_Convert.From_impl_20__f_from := fun (x : t_u128)=> *) +(* Build_t__u8_u8 (Core_Convert.Into__f_into (0 x)); *) +(* }. *) + +(* Instance t_From_412368669 : Core_Convert.t_From ((t_u16)) ((t_u128)) := *) +(* { *) +(* Core_Convert.From_impl_21__f_from := fun (x : t_u128)=> *) +(* Build_t__u16_u16 (Core_Convert.Into__f_into (0 x)); *) +(* }. *) + +(* Instance t_From_63055626 : Core_Convert.t_From ((t_u32)) ((t_u128)) := *) +(* { *) +(* Core_Convert.From_impl_22__f_from := fun (x : t_u128)=> *) +(* Build_t__u32_u32 (Core_Convert.Into__f_into (0 x)); *) +(* }. *) + +(* Instance t_From_476352782 : Core_Convert.t_From ((t_u64)) ((t_u128)) := *) +(* { *) +(* Core_Convert.From_impl_23__f_from := fun (x : t_u128)=> *) +(* Build_t__u64_u64 (Core_Convert.Into__f_into (0 x)); *) +(* }. *) + +(* Definition wrapping_add_u128 (a : t_u128) (b : t_u128) : t_u128 := *) +(* Build_t__u128_u128 (Core_Ops_Arith.Add__f_add (0 a) (0 b)). *) + +(* Definition wrapping_sub_u128 (a : t_u128) (b : t_u128) : t_u128 := *) +(* Build_t__u128_u128 (Core_Ops_Arith.Sub__f_sub (0 a) (0 b)). *) + +(* Definition wrapping_mul_u128 (a : t_u128) (b : t_u128) : t_u128 := *) +(* Build_t__u128_u128 (Core_Ops_Arith.Mul__f_mul (0 a) (0 b)). *) + +(* Definition three_way_compare_u128 `{v_T : Type} `{Core_Marker.t_Sized (v_T)} `{Core_Marker.t_Copy (v_T)} (lhs : t_u128) (rhs : t_u128) : Core_Cmp.t_Ordering := *) +(* Core_Cmp.Ord__f_cmp (lhs) (rhs). *) + +(* Definition add_with_overflow_u128 (x : t_u128) (y : t_u128) : (t_u128*bool) := *) +(* let overflow := Core_Base_Pos.haxint_add (Core_Base_interface_Coerce.Abstraction__f_lift (0 x)) (Core_Base_interface_Coerce.Abstraction__f_lift (0 y)) in *) +(* let res : Core_Base_interface_Int.t_U128 := Core_Base_interface_Coerce.Concretization__f_concretize (Core_Clone.Clone__f_clone (overflow)) in *) +(* (Build_t__u128_u128 (Core_Clone.Clone__f_clone (res)),Core_Base_Pos.haxint_lt (Core_Base_interface_Coerce.Abstraction__f_lift (res)) (overflow)). *) + +(* Definition unchecked_div_u128 (x : t_u128) (y : t_u128) : t_u128 := *) +(* Build_t__u128_u128 (Core_Base_interface_Int.U128_U128 (Core_Base_Pos.haxint_div (Core_Base_interface_Coerce.Abstraction__f_lift (0 x)) (Core_Base_interface_Coerce.Abstraction__f_lift (0 y)))). *) + +(* Definition unchecked_add_u128 (x : t_u128) (y : t_u128) : t_u128 := *) +(* Build_t__u128_u128 (Core_Base_interface_Int.U128_U128 (Core_Base_Pos.haxint_add (Core_Base_interface_Coerce.Abstraction__f_lift (0 x)) (Core_Base_interface_Coerce.Abstraction__f_lift (0 y)))). *) + +(* Definition impl_10__MIN : t_u128 := *) +(* Build_t__u128_u128 (Core_Base_interface_Int.Constants__f_MIN). *) + +(* Definition impl_10__MAX : t_u128 := *) +(* Build_t__u128_u128 (Core_Base_interface_Int.Constants__f_MAX). *) + +(* Definition impl_10__from_le (x : t_u128) : t_u128 := *) +(* x. *) + +(* Definition impl_10__to_le (self : t_u128) : t_u128 := *) +(* self. *) + +(* Definition impl_10__checked_add (self : t_u128) (rhs : t_u128) : Core_Option.t_Option ((t_u128)) := *) +(* Core_Option.Option_Some (unchecked_add_u128 (self) (rhs)). *) + +(* Definition impl_10__wrapping_add (self : t_u128) (rhs : t_u128) : t_u128 := *) +(* wrapping_add_u128 (self) (rhs). *) + +(* Definition impl_10__wrapping_sub (self : t_u128) (rhs : t_u128) : t_u128 := *) +(* wrapping_sub_u128 (self) (rhs). *) + +(* Definition impl_10__wrapping_mul (self : t_u128) (rhs : t_u128) : t_u128 := *) +(* wrapping_mul_u128 (self) (rhs). *) + +(* Definition impl_10__wrapping_neg (self : t_u128) : t_u128 := *) +(* impl_10__wrapping_sub (Build_t__u128_u128 (Core_Base_interface_Int.Constants__f_ZERO)) (self). *) + +(* Definition impl_10__overflowing_add (self : t_u128) (rhs : t_u128) : (t_u128*bool) := *) +(* add_with_overflow_u128 (self) (rhs). *) + +(* Instance t_Clone_680974943 : Core_Clone.t_Clone ((t_u128)) := *) +(* { *) +(* Core_Clone.Clone_impl_13__f_clone := fun (self : t_u128)=> *) +(* Build_t__u128_u128 (Core_Clone.Clone__f_clone (0 self)); *) +(* }. *) + +Record t_usize : Type := + { + t_usize_0 : Core_Base_interface_Int.t_U64; + }. + + +(* #[export] Instance settable_Build_t__usize_usize_record : Settable _ := *) +(* settable! (Build_Build_t__usize_usize_record) . *) +(* Notation "'Build_t__usize_usize_record'" := Build_Build_t__usize_usize_record. *) + +(* Instance t_PartialEq_20401119 : Core_Cmp.t_PartialEq ((t_usize)) ((t_usize)) := *) +(* { *) +(* Core_Cmp.PartialEq_f_eq := fun (self : t_usize) (other : t_usize)=> *) +(* Core_Cmp.PartialEq__f_eq (0 self) (0 other); *) +(* Core_Cmp.PartialEq_f_ne := fun (self : t_usize) (other : t_usize)=> *) +(* Core_Ops_Bit.Not__f_not (Core_Cmp.PartialEq__f_eq (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Eq_1020398107 : Core_Cmp.t_Eq ((t_usize)) := *) +(* { *) +(* }. *) + +(* Instance t_PartialOrd_391347786 : Core_Cmp.t_PartialOrd ((t_usize)) ((t_usize)) := *) +(* { *) +(* Core_Cmp.PartialOrd_impl_24__f_partial_cmp := fun (self : t_usize) (other : t_usize)=> *) +(* Core_Cmp.PartialOrd__f_partial_cmp (0 self) (0 other); *) +(* Core_Cmp.PartialOrd_impl_24__f_lt := fun (self : t_usize) (other : t_usize)=> *) +(* match Core_Cmp.PartialOrd__f_partial_cmp (0 self) (0 other) with *) +(* | Core_Option.Option_Some (Core_Cmp.Ordering_Less) => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* Core_Cmp.PartialOrd_impl_24__f_le := fun (self : t_usize) (other : t_usize)=> *) +(* match Core_Cmp.PartialOrd__f_partial_cmp (0 self) (0 other) with *) +(* | Core_Option.Option_Some (Core_Cmp.Ordering_Less *) +(* | Core_Cmp.Ordering_Equal) => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* Core_Cmp.PartialOrd_impl_24__f_ge := fun (self : t_usize) (other : t_usize)=> *) +(* match Core_Cmp.PartialOrd__f_partial_cmp (0 self) (0 other) with *) +(* | Core_Option.Option_Some (Core_Cmp.Ordering_Greater *) +(* | Core_Cmp.Ordering_Equal) => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* Core_Cmp.PartialOrd_impl_24__f_gt := fun (self : t_usize) (other : t_usize)=> *) +(* match Core_Cmp.PartialOrd__f_partial_cmp (0 self) (0 other) with *) +(* | Core_Option.Option_Some (Core_Cmp.Ordering_Greater) => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* }. *) + +(* Instance t_Ord_723764915 : Core_Cmp.t_Ord ((t_usize)) := *) +(* { *) +(* Core_Cmp.Ord_impl_25__f_cmp := fun (self : t_usize) (other : t_usize)=> *) +(* Core_Option.impl__unwrap (Core_Cmp.PartialOrd__f_partial_cmp (0 self) (0 other)); *) +(* }. *) + +(* Instance t_From_314414825 : Core_Convert.t_From ((t_usize)) ((t_u8)) := *) +(* { *) +(* Core_Convert.From_impl_4__f_from := fun (small : t_u8)=> *) +(* Build_t__usize_usize (Core_Convert.Into__f_into (0 small)); *) +(* }. *) + +(* Instance t_From_813671375 : Core_Convert.t_From ((t_usize)) ((t_u16)) := *) +(* { *) +(* Core_Convert.From_impl_22__f_from := fun (small : t_u16)=> *) +(* Build_t__usize_usize (Core_Convert.Into__f_into (0 small)); *) +(* }. *) + +(* Instance t_From_65917013 : Core_Convert.t_From ((t_usize)) ((t_u32)) := *) +(* { *) +(* Core_Convert.From_impl_15__f_from := fun (x : t_u32)=> *) +(* Build_t__usize_usize (Core_Convert.Into__f_into (0 x)); *) +(* }. *) + +(* Instance t_From_622871812 : Core_Convert.t_From ((t_usize)) ((t_u64)) := *) +(* { *) +(* Core_Convert.From_impl_19__f_from := fun (x : t_u64)=> *) +(* Build_t__usize_usize (Core_Convert.Into__f_into (0 x)); *) +(* }. *) + +(* Instance t_From_86009989 : Core_Convert.t_From ((t_usize)) ((t_u128)) := *) +(* { *) +(* Core_Convert.From_impl_24__f_from := fun (x : t_u128)=> *) +(* Build_t__usize_usize (Core_Convert.Into__f_into (0 x)); *) +(* }. *) + +(* Instance t_From_40539971 : Core_Convert.t_From ((t_u8)) ((t_usize)) := *) +(* { *) +(* Core_Convert.From_impl_25__f_from := fun (x : t_usize)=> *) +(* Build_t__u8_u8 (Core_Convert.Into__f_into (0 x)); *) +(* }. *) + +(* Instance t_From_601277894 : Core_Convert.t_From ((t_u16)) ((t_usize)) := *) +(* { *) +(* Core_Convert.From_impl_26__f_from := fun (x : t_usize)=> *) +(* Build_t__u16_u16 (Core_Convert.Into__f_into (0 x)); *) +(* }. *) + +(* Instance t_From_900739187 : Core_Convert.t_From ((t_u32)) ((t_usize)) := *) +(* { *) +(* Core_Convert.From_impl_27__f_from := fun (x : t_usize)=> *) +(* Build_t__u32_u32 (Core_Convert.Into__f_into (0 x)); *) +(* }. *) + +(* Instance t_From_1037884731 : Core_Convert.t_From ((t_u64)) ((t_usize)) := *) +(* { *) +(* Core_Convert.From_impl_28__f_from := fun (x : t_usize)=> *) +(* Build_t__u64_u64 (Core_Convert.Into__f_into (0 x)); *) +(* }. *) + +(* Instance t_From_796503562 : Core_Convert.t_From ((t_u128)) ((t_usize)) := *) +(* { *) +(* Core_Convert.From_impl_29__f_from := fun (x : t_usize)=> *) +(* Build_t__u128_u128 (Core_Convert.Into__f_into (0 x)); *) +(* }. *) + +(* Definition wrapping_add_usize (a : t_usize) (b : t_usize) : t_usize := *) +(* Build_t__usize_usize (Core_Ops_Arith.Add__f_add (0 a) (0 b)). *) + +(* Definition wrapping_sub_usize (a : t_usize) (b : t_usize) : t_usize := *) +(* Build_t__usize_usize (Core_Ops_Arith.Sub__f_sub (0 a) (0 b)). *) + +(* Definition wrapping_mul_usize (a : t_usize) (b : t_usize) : t_usize := *) +(* Build_t__usize_usize (Core_Ops_Arith.Mul__f_mul (0 a) (0 b)). *) + +(* Definition three_way_compare_usize `{v_T : Type} `{Core_Marker.t_Sized (v_T)} `{Core_Marker.t_Copy (v_T)} (lhs : t_usize) (rhs : t_usize) : Core_Cmp.t_Ordering := *) +(* Core_Cmp.Ord__f_cmp (lhs) (rhs). *) + +(* Definition add_with_overflow_usize (x : t_usize) (y : t_usize) : (t_usize*bool) := *) +(* let overflow := Core_Base_Pos.haxint_add (Core_Base_interface_Coerce.Abstraction__f_lift (0 x)) (Core_Base_interface_Coerce.Abstraction__f_lift (0 y)) in *) +(* let res : Core_Base_interface_Int.t_U64 := Core_Base_interface_Coerce.Concretization__f_concretize (Core_Clone.Clone__f_clone (overflow)) in *) +(* (Build_t__usize_usize (Core_Clone.Clone__f_clone (res)),Core_Base_Pos.haxint_lt (Core_Base_interface_Coerce.Abstraction__f_lift (res)) (overflow)). *) + +(* Definition unchecked_div_usize (x : t_usize) (y : t_usize) : t_usize := *) +(* Build_t__usize_usize (Core_Base_interface_Int.U64_U64 (Core_Base_Pos.haxint_div (Core_Base_interface_Coerce.Abstraction__f_lift (0 x)) (Core_Base_interface_Coerce.Abstraction__f_lift (0 y)))). *) + +(* Definition unchecked_add_usize (x : t_usize) (y : t_usize) : t_usize := *) +(* Build_t__usize_usize (Core_Base_interface_Int.U64_U64 (Core_Base_Pos.haxint_add (Core_Base_interface_Coerce.Abstraction__f_lift (0 x)) (Core_Base_interface_Coerce.Abstraction__f_lift (0 y)))). *) + +(* Definition impl_11__MIN : t_usize := *) +(* Build_t__usize_usize (Core_Base_interface_Int.Constants__f_MIN). *) + +(* Definition impl_11__MAX : t_usize := *) +(* Build_t__usize_usize (Core_Base_interface_Int.Constants__f_MAX). *) + +(* Definition impl_11__from_le (x : t_usize) : t_usize := *) +(* x. *) + +(* Definition impl_11__to_le (self : t_usize) : t_usize := *) +(* self. *) + +(* Definition impl_11__checked_add (self : t_usize) (rhs : t_usize) : Core_Option.t_Option ((t_usize)) := *) +(* Core_Option.Option_Some (unchecked_add_usize (self) (rhs)). *) + +(* Definition impl_11__wrapping_add (self : t_usize) (rhs : t_usize) : t_usize := *) +(* wrapping_add_usize (self) (rhs). *) + +(* Definition impl_11__wrapping_sub (self : t_usize) (rhs : t_usize) : t_usize := *) +(* wrapping_sub_usize (self) (rhs). *) + +(* Definition impl_11__wrapping_mul (self : t_usize) (rhs : t_usize) : t_usize := *) +(* wrapping_mul_usize (self) (rhs). *) + +(* Definition impl_11__wrapping_neg (self : t_usize) : t_usize := *) +(* impl_11__wrapping_sub (Build_t__usize_usize (Core_Base_interface_Int.Constants__f_ZERO)) (self). *) + +(* Definition impl_11__overflowing_add (self : t_usize) (rhs : t_usize) : (t_usize*bool) := *) +(* add_with_overflow_usize (self) (rhs). *) + +(* Instance t_Clone_195920202 : Core_Clone.t_Clone ((t_usize)) := *) +(* { *) +(* Core_Clone.Clone_impl_15__f_clone := fun (self : t_usize)=> *) +(* Build_t__usize_usize (Core_Clone.Clone__f_clone (0 self)); *) +(* }. *) + +Record t_i8 : Type := + { + t_i8_0 : Core_Base_interface_Int.t_I8; + }. + + +(* #[export] Instance settable_Build_t__i8_i8_record : Settable _ := *) +(* settable! (Build_Build_t__i8_i8_record) . *) +(* Notation "'Build_t__i8_i8_record'" := Build_Build_t__i8_i8_record. *) + +(* Instance t_PartialEq_800685930 : Core_Cmp.t_PartialEq ((t_i8)) ((t_i8)) := *) +(* { *) +(* Core_Cmp.PartialEq_impl_7__f_eq := fun (self : t_i8) (other : t_i8)=> *) +(* Core_Cmp.PartialEq__f_eq (0 self) (0 other); *) +(* Core_Cmp.PartialEq_impl_7__f_ne := fun (self : t_i8) (other : t_i8)=> *) +(* Core_Ops_Bit.Not__f_not (Core_Cmp.PartialEq__f_eq (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Eq_532787599 : Core_Cmp.t_Eq ((t_i8)) := *) +(* { *) +(* }. *) + +(* Instance t_PartialOrd_734270374 : Core_Cmp.t_PartialOrd ((t_i8)) ((t_i8)) := *) +(* { *) +(* Core_Cmp.PartialOrd_impl_38__f_partial_cmp := fun (self : t_i8) (other : t_i8)=> *) +(* Core_Cmp.PartialOrd__f_partial_cmp (0 self) (0 other); *) +(* Core_Cmp.PartialOrd_impl_38__f_lt := fun (self : t_i8) (other : t_i8)=> *) +(* match Core_Cmp.PartialOrd__f_partial_cmp (0 self) (0 other) with *) +(* | Core_Option.Option_Some (Core_Cmp.Ordering_Less) => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* Core_Cmp.PartialOrd_impl_38__f_le := fun (self : t_i8) (other : t_i8)=> *) +(* match Core_Cmp.PartialOrd__f_partial_cmp (0 self) (0 other) with *) +(* | Core_Option.Option_Some (Core_Cmp.Ordering_Less *) +(* | Core_Cmp.Ordering_Equal) => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* Core_Cmp.PartialOrd_impl_38__f_ge := fun (self : t_i8) (other : t_i8)=> *) +(* match Core_Cmp.PartialOrd__f_partial_cmp (0 self) (0 other) with *) +(* | Core_Option.Option_Some (Core_Cmp.Ordering_Greater *) +(* | Core_Cmp.Ordering_Equal) => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* Core_Cmp.PartialOrd_impl_38__f_gt := fun (self : t_i8) (other : t_i8)=> *) +(* match Core_Cmp.PartialOrd__f_partial_cmp (0 self) (0 other) with *) +(* | Core_Option.Option_Some (Core_Cmp.Ordering_Greater) => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* }. *) + +(* Instance t_Ord_181371211 : Core_Cmp.t_Ord ((t_i8)) := *) +(* { *) +(* Core_Cmp.Ord_impl_39__f_cmp := fun (self : t_i8) (other : t_i8)=> *) +(* Core_Option.impl__unwrap (Core_Cmp.PartialOrd__f_partial_cmp (0 self) (0 other)); *) +(* }. *) + +(* Definition wrapping_add_i8 (a : t_i8) (b : t_i8) : t_i8 := *) +(* Build_t__i8_i8 (Core_Ops_Arith.Add__f_add (0 a) (0 b)). *) + +(* Definition wrapping_sub_i8 (a : t_i8) (b : t_i8) : t_i8 := *) +(* Build_t__i8_i8 (Core_Ops_Arith.Sub__f_sub (0 a) (0 b)). *) + +(* Definition wrapping_mul_i8 (a : t_i8) (b : t_i8) : t_i8 := *) +(* Build_t__i8_i8 (Core_Ops_Arith.Mul__f_mul (0 a) (0 b)). *) + +(* Definition add_with_overflow_i8 (x : t_i8) (y : t_i8) : (t_i8*bool) := *) +(* let overflow := Core_Base_Z.z_add (Core_Base_interface_Coerce.Abstraction__f_lift (0 x)) (Core_Base_interface_Coerce.Abstraction__f_lift (0 y)) in *) +(* let res : Core_Base_interface_Int.t_I8 := Core_Base_interface_Coerce.Concretization__f_concretize (Core_Clone.Clone__f_clone (overflow)) in *) +(* (Build_t__i8_i8 (Core_Clone.Clone__f_clone (res)),Core_Base_Z.z_lt (Core_Base_interface_Coerce.Abstraction__f_lift (res)) (overflow)). *) + +(* Definition unchecked_div_i8 (x : t_i8) (y : t_i8) : t_i8 := *) +(* Build_t__i8_i8 (Core_Base_interface_Int.I8_I8 (Core_Base_Z.z_div (Core_Base_interface_Coerce.Abstraction__f_lift (0 x)) (Core_Base_interface_Coerce.Abstraction__f_lift (0 y)))). *) + +(* Definition unchecked_add_i8 (x : t_i8) (y : t_i8) : t_i8 := *) +(* Build_t__i8_i8 (Core_Base_interface_Int.I8_I8 (Core_Base_Z.z_add (Core_Base_interface_Coerce.Abstraction__f_lift (0 x)) (Core_Base_interface_Coerce.Abstraction__f_lift (0 y)))). *) + +(* Definition impl__MIN : t_i8 := *) +(* Build_t__i8_i8 (Core_Base_interface_Int.Constants__f_MIN). *) + +(* Definition impl__MAX : t_i8 := *) +(* Build_t__i8_i8 (Core_Base_interface_Int.Constants__f_MAX). *) + +(* Definition impl__wrapping_add (self : t_i8) (rhs : t_i8) : t_i8 := *) +(* wrapping_add_i8 (self) (rhs). *) + +(* Definition impl__wrapping_sub (self : t_i8) (rhs : t_i8) : t_i8 := *) +(* wrapping_sub_i8 (self) (rhs). *) + +(* Instance t_Clone_1057953267 : Core_Clone.t_Clone ((t_i8)) := *) +(* { *) +(* Core_Clone.Clone_impl_17__f_clone := fun (self : t_i8)=> *) +(* Build_t__i8_i8 (Core_Clone.Clone__f_clone (0 self)); *) +(* }. *) + +Record t_i16 : Type := + { + t_i16_0 : Core_Base_interface_Int.t_I16; + }. + + +(* #[export] Instance settable_Build_t__i16_i16_record : Settable _ := *) +(* settable! (Build_Build_t__i16_i16_record) . *) +(* Notation "'Build_t__i16_i16_record'" := Build_Build_t__i16_i16_record. *) + +(* Instance t_PartialEq_534440819 : Core_Cmp.t_PartialEq ((t_i16)) ((t_i16)) := *) +(* { *) +(* Core_Cmp.PartialEq_impl_8__f_eq := fun (self : t_i16) (other : t_i16)=> *) +(* Core_Cmp.PartialEq__f_eq (0 self) (0 other); *) +(* Core_Cmp.PartialEq_impl_8__f_ne := fun (self : t_i16) (other : t_i16)=> *) +(* Core_Ops_Bit.Not__f_not (Core_Cmp.PartialEq__f_eq (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Eq_124900064 : Core_Cmp.t_Eq ((t_i16)) := *) +(* { *) +(* }. *) + +(* Instance t_PartialOrd_492791700 : Core_Cmp.t_PartialOrd ((t_i16)) ((t_i16)) := *) +(* { *) +(* Core_Cmp.PartialOrd_impl_40__f_partial_cmp := fun (self : t_i16) (other : t_i16)=> *) +(* Core_Cmp.PartialOrd__f_partial_cmp (0 self) (0 other); *) +(* Core_Cmp.PartialOrd_impl_40__f_lt := fun (self : t_i16) (other : t_i16)=> *) +(* match Core_Cmp.PartialOrd__f_partial_cmp (0 self) (0 other) with *) +(* | Core_Option.Option_Some (Core_Cmp.Ordering_Less) => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* Core_Cmp.PartialOrd_impl_40__f_le := fun (self : t_i16) (other : t_i16)=> *) +(* match Core_Cmp.PartialOrd__f_partial_cmp (0 self) (0 other) with *) +(* | Core_Option.Option_Some (Core_Cmp.Ordering_Less *) +(* | Core_Cmp.Ordering_Equal) => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* Core_Cmp.PartialOrd_impl_40__f_ge := fun (self : t_i16) (other : t_i16)=> *) +(* match Core_Cmp.PartialOrd__f_partial_cmp (0 self) (0 other) with *) +(* | Core_Option.Option_Some (Core_Cmp.Ordering_Greater *) +(* | Core_Cmp.Ordering_Equal) => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* Core_Cmp.PartialOrd_impl_40__f_gt := fun (self : t_i16) (other : t_i16)=> *) +(* match Core_Cmp.PartialOrd__f_partial_cmp (0 self) (0 other) with *) +(* | Core_Option.Option_Some (Core_Cmp.Ordering_Greater) => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* }. *) + +(* Instance t_Ord_281318505 : Core_Cmp.t_Ord ((t_i16)) := *) +(* { *) +(* Core_Cmp.Ord_impl_41__f_cmp := fun (self : t_i16) (other : t_i16)=> *) +(* Core_Option.impl__unwrap (Core_Cmp.PartialOrd__f_partial_cmp (0 self) (0 other)); *) +(* }. *) + +(* Instance t_From_524319232 : Core_Convert.t_From ((t_i16)) ((t_i8)) := *) +(* { *) +(* Core_Convert.From_impl_11__f_from := fun (small : t_i8)=> *) +(* Build_t__i16_i16 (Core_Convert.Into__f_into (0 small)); *) +(* }. *) + +(* Instance t_From_1040017337 : Core_Convert.t_From ((t_i8)) ((t_i16)) := *) +(* { *) +(* Core_Convert.From_impl_12__f_from := fun (x : t_i16)=> *) +(* Build_t__i8_i8 (Core_Convert.Into__f_into (0 x)); *) +(* }. *) + +(* Definition wrapping_add_i16 (a : t_i16) (b : t_i16) : t_i16 := *) +(* Build_t__i16_i16 (Core_Ops_Arith.Add__f_add (0 a) (0 b)). *) + +(* Definition wrapping_sub_i16 (a : t_i16) (b : t_i16) : t_i16 := *) +(* Build_t__i16_i16 (Core_Ops_Arith.Sub__f_sub (0 a) (0 b)). *) + +(* Definition wrapping_mul_i16 (a : t_i16) (b : t_i16) : t_i16 := *) +(* Build_t__i16_i16 (Core_Ops_Arith.Mul__f_mul (0 a) (0 b)). *) + +(* Definition add_with_overflow_i16 (x : t_i16) (y : t_i16) : (t_i16*bool) := *) +(* let overflow := Core_Base_Z.z_add (Core_Base_interface_Coerce.Abstraction__f_lift (0 x)) (Core_Base_interface_Coerce.Abstraction__f_lift (0 y)) in *) +(* let res : Core_Base_interface_Int.t_I16 := Core_Base_interface_Coerce.Concretization__f_concretize (Core_Clone.Clone__f_clone (overflow)) in *) +(* (Build_t__i16_i16 (Core_Clone.Clone__f_clone (res)),Core_Base_Z.z_lt (Core_Base_interface_Coerce.Abstraction__f_lift (res)) (overflow)). *) + +(* Definition unchecked_div_i16 (x : t_i16) (y : t_i16) : t_i16 := *) +(* Build_t__i16_i16 (Core_Base_interface_Int.I16_I16 (Core_Base_Z.z_div (Core_Base_interface_Coerce.Abstraction__f_lift (0 x)) (Core_Base_interface_Coerce.Abstraction__f_lift (0 y)))). *) + +(* Definition unchecked_add_i16 (x : t_i16) (y : t_i16) : t_i16 := *) +(* Build_t__i16_i16 (Core_Base_interface_Int.I16_I16 (Core_Base_Z.z_add (Core_Base_interface_Coerce.Abstraction__f_lift (0 x)) (Core_Base_interface_Coerce.Abstraction__f_lift (0 y)))). *) + +(* Definition impl_1__MIN : t_i16 := *) +(* Build_t__i16_i16 (Core_Base_interface_Int.Constants__f_MIN). *) + +(* Definition impl_1__MAX : t_i16 := *) +(* Build_t__i16_i16 (Core_Base_interface_Int.Constants__f_MAX). *) + +(* Definition impl_1__wrapping_add (self : t_i16) (rhs : t_i16) : t_i16 := *) +(* wrapping_add_i16 (self) (rhs). *) + +(* Definition impl_1__wrapping_sub (self : t_i16) (rhs : t_i16) : t_i16 := *) +(* wrapping_sub_i16 (self) (rhs). *) + +(* Instance t_Clone_259222772 : Core_Clone.t_Clone ((t_i16)) := *) +(* { *) +(* Core_Clone.Clone_impl_19__f_clone := fun (self : t_i16)=> *) +(* Build_t__i16_i16 (Core_Clone.Clone__f_clone (0 self)); *) +(* }. *) + +Record t_i32 : Type := + { + t_i32_0 : Core_Base_interface_Int.t_I32; + }. + + +(* #[export] Instance settable_Build_t__i32_i32_record : Settable _ := *) +(* settable! (Build_Build_t__i32_i32_record) . *) +(* Notation "'Build_t__i32_i32_record'" := Build_Build_t__i32_i32_record. *) + +(* Instance t_PartialEq_1036981650 : Core_Cmp.t_PartialEq ((t_i32)) ((t_i32)) := *) +(* { *) +(* Core_Cmp.PartialEq_impl_9__f_eq := fun (self : t_i32) (other : t_i32)=> *) +(* Core_Cmp.PartialEq__f_eq (0 self) (0 other); *) +(* Core_Cmp.PartialEq_impl_9__f_ne := fun (self : t_i32) (other : t_i32)=> *) +(* Core_Ops_Bit.Not__f_not (Core_Cmp.PartialEq__f_eq (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Eq_849966876 : Core_Cmp.t_Eq ((t_i32)) := *) +(* { *) +(* }. *) + +(* Instance t_PartialOrd_610304260 : Core_Cmp.t_PartialOrd ((t_i32)) ((t_i32)) := *) +(* { *) +(* Core_Cmp.PartialOrd_impl_42__f_partial_cmp := fun (self : t_i32) (other : t_i32)=> *) +(* Core_Cmp.PartialOrd__f_partial_cmp (0 self) (0 other); *) +(* Core_Cmp.PartialOrd_impl_42__f_lt := fun (self : t_i32) (other : t_i32)=> *) +(* match Core_Cmp.PartialOrd__f_partial_cmp (0 self) (0 other) with *) +(* | Core_Option.Option_Some (Core_Cmp.Ordering_Less) => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* Core_Cmp.PartialOrd_impl_42__f_le := fun (self : t_i32) (other : t_i32)=> *) +(* match Core_Cmp.PartialOrd__f_partial_cmp (0 self) (0 other) with *) +(* | Core_Option.Option_Some (Core_Cmp.Ordering_Less *) +(* | Core_Cmp.Ordering_Equal) => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* Core_Cmp.PartialOrd_impl_42__f_ge := fun (self : t_i32) (other : t_i32)=> *) +(* match Core_Cmp.PartialOrd__f_partial_cmp (0 self) (0 other) with *) +(* | Core_Option.Option_Some (Core_Cmp.Ordering_Greater *) +(* | Core_Cmp.Ordering_Equal) => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* Core_Cmp.PartialOrd_impl_42__f_gt := fun (self : t_i32) (other : t_i32)=> *) +(* match Core_Cmp.PartialOrd__f_partial_cmp (0 self) (0 other) with *) +(* | Core_Option.Option_Some (Core_Cmp.Ordering_Greater) => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* }. *) + +(* Instance t_Ord_5469414 : Core_Cmp.t_Ord ((t_i32)) := *) +(* { *) +(* Core_Cmp.Ord_impl_43__f_cmp := fun (self : t_i32) (other : t_i32)=> *) +(* Core_Option.impl__unwrap (Core_Cmp.PartialOrd__f_partial_cmp (0 self) (0 other)); *) +(* }. *) + +(* Instance t_From_304822956 : Core_Convert.t_From ((t_i32)) ((t_i8)) := *) +(* { *) +(* Core_Convert.From_impl_12__f_from := fun (small : t_i8)=> *) +(* Build_t__i32_i32 (Core_Convert.Into__f_into (0 small)); *) +(* }. *) + +(* Instance t_From_268015982 : Core_Convert.t_From ((t_i32)) ((t_i16)) := *) +(* { *) +(* Core_Convert.From_impl_16__f_from := fun (small : t_i16)=> *) +(* Build_t__i32_i32 (Core_Convert.Into__f_into (0 small)); *) +(* }. *) + +(* Instance t_From_846467833 : Core_Convert.t_From ((t_i8)) ((t_i32)) := *) +(* { *) +(* Core_Convert.From_impl_13__f_from := fun (x : t_i32)=> *) +(* Build_t__i8_i8 (Core_Convert.Into__f_into (0 x)); *) +(* }. *) + +(* Instance t_From_102012354 : Core_Convert.t_From ((t_i16)) ((t_i32)) := *) +(* { *) +(* Core_Convert.From_impl_14__f_from := fun (x : t_i32)=> *) +(* Build_t__i16_i16 (Core_Convert.Into__f_into (0 x)); *) +(* }. *) + +(* Definition wrapping_add_i32 (a : t_i32) (b : t_i32) : t_i32 := *) +(* Build_t__i32_i32 (Core_Ops_Arith.Add__f_add (0 a) (0 b)). *) + +(* Definition wrapping_sub_i32 (a : t_i32) (b : t_i32) : t_i32 := *) +(* Build_t__i32_i32 (Core_Ops_Arith.Sub__f_sub (0 a) (0 b)). *) + +(* Definition wrapping_mul_i32 (a : t_i32) (b : t_i32) : t_i32 := *) +(* Build_t__i32_i32 (Core_Ops_Arith.Mul__f_mul (0 a) (0 b)). *) + +(* Definition add_with_overflow_i32 (x : t_i32) (y : t_i32) : (t_i32*bool) := *) +(* let overflow := Core_Base_Z.z_add (Core_Base_interface_Coerce.Abstraction__f_lift (0 x)) (Core_Base_interface_Coerce.Abstraction__f_lift (0 y)) in *) +(* let res : Core_Base_interface_Int.t_I32 := Core_Base_interface_Coerce.Concretization__f_concretize (Core_Clone.Clone__f_clone (overflow)) in *) +(* (Build_t__i32_i32 (Core_Clone.Clone__f_clone (res)),Core_Base_Z.z_lt (Core_Base_interface_Coerce.Abstraction__f_lift (res)) (overflow)). *) + +(* Definition unchecked_div_i32 (x : t_i32) (y : t_i32) : t_i32 := *) +(* Build_t__i32_i32 (Core_Base_interface_Int.I32_I32 (Core_Base_Z.z_div (Core_Base_interface_Coerce.Abstraction__f_lift (0 x)) (Core_Base_interface_Coerce.Abstraction__f_lift (0 y)))). *) + +(* Definition unchecked_add_i32 (x : t_i32) (y : t_i32) : t_i32 := *) +(* Build_t__i32_i32 (Core_Base_interface_Int.I32_I32 (Core_Base_Z.z_add (Core_Base_interface_Coerce.Abstraction__f_lift (0 x)) (Core_Base_interface_Coerce.Abstraction__f_lift (0 y)))). *) + +(* Definition impl_2__MIN : t_i32 := *) +(* Build_t__i32_i32 (Core_Base_interface_Int.Constants__f_MIN). *) + +(* Definition impl_2__MAX : t_i32 := *) +(* Build_t__i32_i32 (Core_Base_interface_Int.Constants__f_MAX). *) + +(* Definition impl_2__wrapping_add (self : t_i32) (rhs : t_i32) : t_i32 := *) +(* wrapping_add_i32 (self) (rhs). *) + +(* Definition impl_2__wrapping_sub (self : t_i32) (rhs : t_i32) : t_i32 := *) +(* wrapping_sub_i32 (self) (rhs). *) + +(* Instance t_Clone_298598276 : Core_Clone.t_Clone ((t_i32)) := *) +(* { *) +(* Core_Clone.Clone_impl_21__f_clone := fun (self : t_i32)=> *) +(* Build_t__i32_i32 (Core_Clone.Clone__f_clone (0 self)); *) +(* }. *) + +Record t_i64 : Type := + { + t_i64_0 : Core_Base_interface_Int.t_I64; + }. + + +(* #[export] Instance settable_Build_t__i64_i64_record : Settable _ := *) +(* settable! (Build_Build_t__i64_i64_record) . *) +(* Notation "'Build_t__i64_i64_record'" := Build_Build_t__i64_i64_record. *) + +(* Instance t_PartialEq_127778810 : Core_Cmp.t_PartialEq ((t_i64)) ((t_i64)) := *) +(* { *) +(* Core_Cmp.PartialEq_impl_10__f_eq := fun (self : t_i64) (other : t_i64)=> *) +(* Core_Cmp.PartialEq__f_eq (0 self) (0 other); *) +(* Core_Cmp.PartialEq_impl_10__f_ne := fun (self : t_i64) (other : t_i64)=> *) +(* Core_Ops_Bit.Not__f_not (Core_Cmp.PartialEq__f_eq (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Eq_815470828 : Core_Cmp.t_Eq ((t_i64)) := *) +(* { *) +(* }. *) + +(* Instance t_PartialOrd_1055114132 : Core_Cmp.t_PartialOrd ((t_i64)) ((t_i64)) := *) +(* { *) +(* Core_Cmp.PartialOrd_impl_44__f_partial_cmp := fun (self : t_i64) (other : t_i64)=> *) +(* Core_Cmp.PartialOrd__f_partial_cmp (0 self) (0 other); *) +(* Core_Cmp.PartialOrd_impl_44__f_lt := fun (self : t_i64) (other : t_i64)=> *) +(* match Core_Cmp.PartialOrd__f_partial_cmp (0 self) (0 other) with *) +(* | Core_Option.Option_Some (Core_Cmp.Ordering_Less) => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* Core_Cmp.PartialOrd_impl_44__f_le := fun (self : t_i64) (other : t_i64)=> *) +(* match Core_Cmp.PartialOrd__f_partial_cmp (0 self) (0 other) with *) +(* | Core_Option.Option_Some (Core_Cmp.Ordering_Less *) +(* | Core_Cmp.Ordering_Equal) => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* Core_Cmp.PartialOrd_impl_44__f_ge := fun (self : t_i64) (other : t_i64)=> *) +(* match Core_Cmp.PartialOrd__f_partial_cmp (0 self) (0 other) with *) +(* | Core_Option.Option_Some (Core_Cmp.Ordering_Greater *) +(* | Core_Cmp.Ordering_Equal) => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* Core_Cmp.PartialOrd_impl_44__f_gt := fun (self : t_i64) (other : t_i64)=> *) +(* match Core_Cmp.PartialOrd__f_partial_cmp (0 self) (0 other) with *) +(* | Core_Option.Option_Some (Core_Cmp.Ordering_Greater) => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* }. *) + +(* Instance t_Ord_842602788 : Core_Cmp.t_Ord ((t_i64)) := *) +(* { *) +(* Core_Cmp.Ord_impl_45__f_cmp := fun (self : t_i64) (other : t_i64)=> *) +(* Core_Option.impl__unwrap (Core_Cmp.PartialOrd__f_partial_cmp (0 self) (0 other)); *) +(* }. *) + +(* Instance t_From_874857878 : Core_Convert.t_From ((t_i64)) ((t_i8)) := *) +(* { *) +(* Core_Convert.From_impl_13__f_from := fun (small : t_i8)=> *) +(* Build_t__i64_i64 (Core_Convert.Into__f_into (0 small)); *) +(* }. *) + +(* Instance t_From_649210204 : Core_Convert.t_From ((t_i64)) ((t_i16)) := *) +(* { *) +(* Core_Convert.From_impl_17__f_from := fun (small : t_i16)=> *) +(* Build_t__i64_i64 (Core_Convert.Into__f_into (0 small)); *) +(* }. *) + +(* Instance t_From_112011769 : Core_Convert.t_From ((t_i64)) ((t_i32)) := *) +(* { *) +(* Core_Convert.From_impl_19__f_from := fun (small : t_i32)=> *) +(* Build_t__i64_i64 (Core_Convert.Into__f_into (0 small)); *) +(* }. *) + +(* Instance t_From_613781257 : Core_Convert.t_From ((t_i8)) ((t_i64)) := *) +(* { *) +(* Core_Convert.From_impl_15__f_from := fun (x : t_i64)=> *) +(* Build_t__i8_i8 (Core_Convert.Into__f_into (0 x)); *) +(* }. *) + +(* Instance t_From_611942225 : Core_Convert.t_From ((t_i16)) ((t_i64)) := *) +(* { *) +(* Core_Convert.From_impl_16__f_from := fun (x : t_i64)=> *) +(* Build_t__i16_i16 (Core_Convert.Into__f_into (0 x)); *) +(* }. *) + +(* Instance t_From_1037946787 : Core_Convert.t_From ((t_i32)) ((t_i64)) := *) +(* { *) +(* Core_Convert.From_impl_17__f_from := fun (x : t_i64)=> *) +(* Build_t__i32_i32 (Core_Convert.Into__f_into (0 x)); *) +(* }. *) + +(* Definition wrapping_add_i64 (a : t_i64) (b : t_i64) : t_i64 := *) +(* Build_t__i64_i64 (Core_Ops_Arith.Add__f_add (0 a) (0 b)). *) + +(* Definition wrapping_sub_i64 (a : t_i64) (b : t_i64) : t_i64 := *) +(* Build_t__i64_i64 (Core_Ops_Arith.Sub__f_sub (0 a) (0 b)). *) + +(* Definition wrapping_mul_i64 (a : t_i64) (b : t_i64) : t_i64 := *) +(* Build_t__i64_i64 (Core_Ops_Arith.Mul__f_mul (0 a) (0 b)). *) + +(* Definition add_with_overflow_i64 (x : t_i64) (y : t_i64) : (t_i64*bool) := *) +(* let overflow := Core_Base_Z.z_add (Core_Base_interface_Coerce.Abstraction__f_lift (0 x)) (Core_Base_interface_Coerce.Abstraction__f_lift (0 y)) in *) +(* let res : Core_Base_interface_Int.t_I64 := Core_Base_interface_Coerce.Concretization__f_concretize (Core_Clone.Clone__f_clone (overflow)) in *) +(* (Build_t__i64_i64 (Core_Clone.Clone__f_clone (res)),Core_Base_Z.z_lt (Core_Base_interface_Coerce.Abstraction__f_lift (res)) (overflow)). *) + +(* Definition unchecked_div_i64 (x : t_i64) (y : t_i64) : t_i64 := *) +(* Build_t__i64_i64 (Core_Base_interface_Int.I64_I64 (Core_Base_Z.z_div (Core_Base_interface_Coerce.Abstraction__f_lift (0 x)) (Core_Base_interface_Coerce.Abstraction__f_lift (0 y)))). *) + +(* Definition unchecked_add_i64 (x : t_i64) (y : t_i64) : t_i64 := *) +(* Build_t__i64_i64 (Core_Base_interface_Int.I64_I64 (Core_Base_Z.z_add (Core_Base_interface_Coerce.Abstraction__f_lift (0 x)) (Core_Base_interface_Coerce.Abstraction__f_lift (0 y)))). *) + +(* Definition impl_3__MIN : t_i64 := *) +(* Build_t__i64_i64 (Core_Base_interface_Int.Constants__f_MIN). *) + +(* Definition impl_3__MAX : t_i64 := *) +(* Build_t__i64_i64 (Core_Base_interface_Int.Constants__f_MAX). *) + +(* Definition impl_3__wrapping_add (self : t_i64) (rhs : t_i64) : t_i64 := *) +(* wrapping_add_i64 (self) (rhs). *) + +(* Definition impl_3__wrapping_sub (self : t_i64) (rhs : t_i64) : t_i64 := *) +(* wrapping_sub_i64 (self) (rhs). *) + +(* Instance t_Clone_1059640082 : Core_Clone.t_Clone ((t_i64)) := *) +(* { *) +(* Core_Clone.Clone_impl_23__f_clone := fun (self : t_i64)=> *) +(* Build_t__i64_i64 (Core_Clone.Clone__f_clone (0 self)); *) +(* }. *) + +Record t_i128 : Type := + { + t_i128_0 : Core_Base_interface_Int.t_I128; + }. + + +(* #[export] Instance settable_Build_t__i128_i128_record : Settable _ := *) +(* settable! (Build_Build_t__i128_i128_record) . *) +(* Notation "'Build_t__i128_i128_record'" := Build_Build_t__i128_i128_record. *) + +(* Instance t_PartialEq_97159446 : Core_Cmp.t_PartialEq ((t_i128)) ((t_i128)) := *) +(* { *) +(* Core_Cmp.PartialEq_impl_11__f_eq := fun (self : t_i128) (other : t_i128)=> *) +(* Core_Cmp.PartialEq__f_eq (0 self) (0 other); *) +(* Core_Cmp.PartialEq_impl_11__f_ne := fun (self : t_i128) (other : t_i128)=> *) +(* Core_Ops_Bit.Not__f_not (Core_Cmp.PartialEq__f_eq (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Eq_474315120 : Core_Cmp.t_Eq ((t_i128)) := *) +(* { *) +(* }. *) + +(* Instance t_PartialOrd_323266256 : Core_Cmp.t_PartialOrd ((t_i128)) ((t_i128)) := *) +(* { *) +(* Core_Cmp.PartialOrd_impl_46__f_partial_cmp := fun (self : t_i128) (other : t_i128)=> *) +(* Core_Cmp.PartialOrd__f_partial_cmp (0 self) (0 other); *) +(* Core_Cmp.PartialOrd_impl_46__f_lt := fun (self : t_i128) (other : t_i128)=> *) +(* match Core_Cmp.PartialOrd__f_partial_cmp (0 self) (0 other) with *) +(* | Core_Option.Option_Some (Core_Cmp.Ordering_Less) => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* Core_Cmp.PartialOrd_impl_46__f_le := fun (self : t_i128) (other : t_i128)=> *) +(* match Core_Cmp.PartialOrd__f_partial_cmp (0 self) (0 other) with *) +(* | Core_Option.Option_Some (Core_Cmp.Ordering_Less *) +(* | Core_Cmp.Ordering_Equal) => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* Core_Cmp.PartialOrd_impl_46__f_ge := fun (self : t_i128) (other : t_i128)=> *) +(* match Core_Cmp.PartialOrd__f_partial_cmp (0 self) (0 other) with *) +(* | Core_Option.Option_Some (Core_Cmp.Ordering_Greater *) +(* | Core_Cmp.Ordering_Equal) => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* Core_Cmp.PartialOrd_impl_46__f_gt := fun (self : t_i128) (other : t_i128)=> *) +(* match Core_Cmp.PartialOrd__f_partial_cmp (0 self) (0 other) with *) +(* | Core_Option.Option_Some (Core_Cmp.Ordering_Greater) => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* }. *) + +(* Instance t_Ord_941920678 : Core_Cmp.t_Ord ((t_i128)) := *) +(* { *) +(* Core_Cmp.Ord_impl_47__f_cmp := fun (self : t_i128) (other : t_i128)=> *) +(* Core_Option.impl__unwrap (Core_Cmp.PartialOrd__f_partial_cmp (0 self) (0 other)); *) +(* }. *) + +(* Instance t_From_858138420 : Core_Convert.t_From ((t_i128)) ((t_i8)) := *) +(* { *) +(* Core_Convert.From_impl_14__f_from := fun (small : t_i8)=> *) +(* Build_t__i128_i128 (Core_Convert.Into__f_into (0 small)); *) +(* }. *) + +(* Instance t_From_1047430043 : Core_Convert.t_From ((t_i128)) ((t_i16)) := *) +(* { *) +(* Core_Convert.From_impl_18__f_from := fun (small : t_i16)=> *) +(* Build_t__i128_i128 (Core_Convert.Into__f_into (0 small)); *) +(* }. *) + +(* Instance t_From_933480976 : Core_Convert.t_From ((t_i128)) ((t_i32)) := *) +(* { *) +(* Core_Convert.From_impl_20__f_from := fun (small : t_i32)=> *) +(* Build_t__i128_i128 (Core_Convert.Into__f_into (0 small)); *) +(* }. *) + +(* Instance t_From_279091303 : Core_Convert.t_From ((t_i128)) ((t_i64)) := *) +(* { *) +(* Core_Convert.From_impl_21__f_from := fun (small : t_i64)=> *) +(* Build_t__i128_i128 (Core_Convert.Into__f_into (0 small)); *) +(* }. *) + +(* Instance t_From_937160527 : Core_Convert.t_From ((t_i8)) ((t_i128)) := *) +(* { *) +(* Core_Convert.From_impl_19__f_from := fun (x : t_i128)=> *) +(* Build_t__i8_i8 (Core_Convert.Into__f_into (0 x)); *) +(* }. *) + +(* Instance t_From_348302832 : Core_Convert.t_From ((t_i16)) ((t_i128)) := *) +(* { *) +(* Core_Convert.From_impl_20__f_from := fun (x : t_i128)=> *) +(* Build_t__i16_i16 (Core_Convert.Into__f_into (0 x)); *) +(* }. *) + +(* Instance t_From_376500910 : Core_Convert.t_From ((t_i32)) ((t_i128)) := *) +(* { *) +(* Core_Convert.From_impl_21__f_from := fun (x : t_i128)=> *) +(* Build_t__i32_i32 (Core_Convert.Into__f_into (0 x)); *) +(* }. *) + +(* Instance t_From_1032279600 : Core_Convert.t_From ((t_i64)) ((t_i128)) := *) +(* { *) +(* Core_Convert.From_impl_22__f_from := fun (x : t_i128)=> *) +(* Build_t__i64_i64 (Core_Convert.Into__f_into (0 x)); *) +(* }. *) + +(* Definition wrapping_add_i128 (a : t_i128) (b : t_i128) : t_i128 := *) +(* Build_t__i128_i128 (Core_Ops_Arith.Add__f_add (0 a) (0 b)). *) + +(* Definition wrapping_sub_i128 (a : t_i128) (b : t_i128) : t_i128 := *) +(* Build_t__i128_i128 (Core_Ops_Arith.Sub__f_sub (0 a) (0 b)). *) + +(* Definition wrapping_mul_i128 (a : t_i128) (b : t_i128) : t_i128 := *) +(* Build_t__i128_i128 (Core_Ops_Arith.Mul__f_mul (0 a) (0 b)). *) + +(* Definition add_with_overflow_i128 (x : t_i128) (y : t_i128) : (t_i128*bool) := *) +(* let overflow := Core_Base_Z.z_add (Core_Base_interface_Coerce.Abstraction__f_lift (0 x)) (Core_Base_interface_Coerce.Abstraction__f_lift (0 y)) in *) +(* let res : Core_Base_interface_Int.t_I128 := Core_Base_interface_Coerce.Concretization__f_concretize (Core_Clone.Clone__f_clone (overflow)) in *) +(* (Build_t__i128_i128 (Core_Clone.Clone__f_clone (res)),Core_Base_Z.z_lt (Core_Base_interface_Coerce.Abstraction__f_lift (res)) (overflow)). *) + +(* Definition unchecked_div_i128 (x : t_i128) (y : t_i128) : t_i128 := *) +(* Build_t__i128_i128 (Core_Base_interface_Int.I128_I128 (Core_Base_Z.z_div (Core_Base_interface_Coerce.Abstraction__f_lift (0 x)) (Core_Base_interface_Coerce.Abstraction__f_lift (0 y)))). *) + +(* Definition unchecked_add_i128 (x : t_i128) (y : t_i128) : t_i128 := *) +(* Build_t__i128_i128 (Core_Base_interface_Int.I128_I128 (Core_Base_Z.z_add (Core_Base_interface_Coerce.Abstraction__f_lift (0 x)) (Core_Base_interface_Coerce.Abstraction__f_lift (0 y)))). *) + +(* Definition impl_4__MIN : t_i128 := *) +(* Build_t__i128_i128 (Core_Base_interface_Int.Constants__f_MIN). *) + +(* Definition impl_4__MAX : t_i128 := *) +(* Build_t__i128_i128 (Core_Base_interface_Int.Constants__f_MAX). *) + +(* Definition impl_4__wrapping_add (self : t_i128) (rhs : t_i128) : t_i128 := *) +(* wrapping_add_i128 (self) (rhs). *) + +(* Definition impl_4__wrapping_sub (self : t_i128) (rhs : t_i128) : t_i128 := *) +(* wrapping_sub_i128 (self) (rhs). *) + +(* Instance t_Clone_951624458 : Core_Clone.t_Clone ((t_i128)) := *) +(* { *) +(* Core_Clone.Clone_impl_25__f_clone := fun (self : t_i128)=> *) +(* Build_t__i128_i128 (Core_Clone.Clone__f_clone (0 self)); *) +(* }. *) + +Record t_isize : Type := + { + t_isize_0 : Core_Base_interface_Int.t_I64; + }. + + +(* #[export] Instance settable_Build_t__isize_isize_record : Settable _ := *) +(* settable! (Build_Build_t__isize_isize_record) . *) +(* Notation "'Build_t__isize_isize_record'" := Build_Build_t__isize_isize_record. *) + +(* Instance t_PartialEq_212108592 : Core_Cmp.t_PartialEq ((t_isize)) ((t_isize)) := *) +(* { *) +(* Core_Cmp.PartialEq_impl_6__f_eq := fun (self : t_isize) (other : t_isize)=> *) +(* Core_Cmp.PartialEq__f_eq (0 self) (0 other); *) +(* Core_Cmp.PartialEq_impl_6__f_ne := fun (self : t_isize) (other : t_isize)=> *) +(* Core_Ops_Bit.Not__f_not (Core_Cmp.PartialEq__f_eq (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Eq_354840521 : Core_Cmp.t_Eq ((t_isize)) := *) +(* { *) +(* }. *) + +(* Instance t_PartialOrd_199151426 : Core_Cmp.t_PartialOrd ((t_isize)) ((t_isize)) := *) +(* { *) +(* Core_Cmp.PartialOrd_impl_36__f_partial_cmp := fun (self : t_isize) (other : t_isize)=> *) +(* Core_Cmp.PartialOrd__f_partial_cmp (0 self) (0 other); *) +(* Core_Cmp.PartialOrd_impl_36__f_lt := fun (self : t_isize) (other : t_isize)=> *) +(* match Core_Cmp.PartialOrd__f_partial_cmp (0 self) (0 other) with *) +(* | Core_Option.Option_Some (Core_Cmp.Ordering_Less) => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* Core_Cmp.PartialOrd_impl_36__f_le := fun (self : t_isize) (other : t_isize)=> *) +(* match Core_Cmp.PartialOrd__f_partial_cmp (0 self) (0 other) with *) +(* | Core_Option.Option_Some (Core_Cmp.Ordering_Less *) +(* | Core_Cmp.Ordering_Equal) => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* Core_Cmp.PartialOrd_impl_36__f_ge := fun (self : t_isize) (other : t_isize)=> *) +(* match Core_Cmp.PartialOrd__f_partial_cmp (0 self) (0 other) with *) +(* | Core_Option.Option_Some (Core_Cmp.Ordering_Greater *) +(* | Core_Cmp.Ordering_Equal) => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* Core_Cmp.PartialOrd_impl_36__f_gt := fun (self : t_isize) (other : t_isize)=> *) +(* match Core_Cmp.PartialOrd__f_partial_cmp (0 self) (0 other) with *) +(* | Core_Option.Option_Some (Core_Cmp.Ordering_Greater) => *) +(* (true : bool) *) +(* | _ => *) +(* (false : bool) *) +(* end; *) +(* }. *) + +(* Instance t_Ord_419758853 : Core_Cmp.t_Ord ((t_isize)) := *) +(* { *) +(* Core_Cmp.Ord_impl_37__f_cmp := fun (self : t_isize) (other : t_isize)=> *) +(* Core_Option.impl__unwrap (Core_Cmp.PartialOrd__f_partial_cmp (0 self) (0 other)); *) +(* }. *) + +(* Instance t_From_582274875 : Core_Convert.t_From ((t_isize)) ((t_i8)) := *) +(* { *) +(* Core_Convert.From_impl_15__f_from := fun (small : t_i8)=> *) +(* Build_t__isize_isize (Core_Convert.Into__f_into (0 small)); *) +(* }. *) + +(* Instance t_From_651733797 : Core_Convert.t_From ((t_isize)) ((t_i16)) := *) +(* { *) +(* Core_Convert.From_impl_23__f_from := fun (small : t_i16)=> *) +(* Build_t__isize_isize (Core_Convert.Into__f_into (0 small)); *) +(* }. *) + +(* Instance t_From_108653157 : Core_Convert.t_From ((t_isize)) ((t_i64)) := *) +(* { *) +(* Core_Convert.From_impl_18__f_from := fun (x : t_i64)=> *) +(* Build_t__isize_isize (Core_Convert.Into__f_into (0 x)); *) +(* }. *) + +(* Instance t_From_222121252 : Core_Convert.t_From ((t_isize)) ((t_i128)) := *) +(* { *) +(* Core_Convert.From_impl_23__f_from := fun (x : t_i128)=> *) +(* Build_t__isize_isize (Core_Convert.Into__f_into (0 x)); *) +(* }. *) + +(* Instance t_From_1048988073 : Core_Convert.t_From ((t_i8)) ((t_isize)) := *) +(* { *) +(* Core_Convert.From_impl_24__f_from := fun (x : t_isize)=> *) +(* Build_t__i8_i8 (Core_Convert.Into__f_into (0 x)); *) +(* }. *) + +(* Instance t_From_791634803 : Core_Convert.t_From ((t_i16)) ((t_isize)) := *) +(* { *) +(* Core_Convert.From_impl_25__f_from := fun (x : t_isize)=> *) +(* Build_t__i16_i16 (Core_Convert.Into__f_into (0 x)); *) +(* }. *) + +(* Instance t_From_224884538 : Core_Convert.t_From ((t_i32)) ((t_isize)) := *) +(* { *) +(* Core_Convert.From_impl_26__f_from := fun (x : t_isize)=> *) +(* Build_t__i32_i32 (Core_Convert.Into__f_into (0 x)); *) +(* }. *) + +(* Instance t_From_594464339 : Core_Convert.t_From ((t_i64)) ((t_isize)) := *) +(* { *) +(* Core_Convert.From_impl_27__f_from := fun (x : t_isize)=> *) +(* Build_t__i64_i64 (Core_Convert.Into__f_into (0 x)); *) +(* }. *) + +(* Instance t_From_829779192 : Core_Convert.t_From ((t_i128)) ((t_isize)) := *) +(* { *) +(* Core_Convert.From_impl_28__f_from := fun (x : t_isize)=> *) +(* Build_t__i128_i128 (Core_Convert.Into__f_into (0 x)); *) +(* }. *) + +(* Definition wrapping_add_isize (a : t_isize) (b : t_isize) : t_isize := *) +(* Build_t__isize_isize (Core_Ops_Arith.Add__f_add (0 a) (0 b)). *) + +(* Definition wrapping_sub_isize (a : t_isize) (b : t_isize) : t_isize := *) +(* Build_t__isize_isize (Core_Ops_Arith.Sub__f_sub (0 a) (0 b)). *) + +(* Definition wrapping_mul_isize (a : t_isize) (b : t_isize) : t_isize := *) +(* Build_t__isize_isize (Core_Ops_Arith.Mul__f_mul (0 a) (0 b)). *) + +(* Definition add_with_overflow_isize (x : t_isize) (y : t_isize) : (t_isize*bool) := *) +(* let overflow := Core_Base_Z.z_add (Core_Base_interface_Coerce.Abstraction__f_lift (0 x)) (Core_Base_interface_Coerce.Abstraction__f_lift (0 y)) in *) +(* let res : Core_Base_interface_Int.t_I64 := Core_Base_interface_Coerce.Concretization__f_concretize (Core_Clone.Clone__f_clone (overflow)) in *) +(* (Build_t__isize_isize (Core_Clone.Clone__f_clone (res)),Core_Base_Z.z_lt (Core_Base_interface_Coerce.Abstraction__f_lift (res)) (overflow)). *) + +(* Definition unchecked_div_isize (x : t_isize) (y : t_isize) : t_isize := *) +(* Build_t__isize_isize (Core_Base_interface_Int.I64_I64 (Core_Base_Z.z_div (Core_Base_interface_Coerce.Abstraction__f_lift (0 x)) (Core_Base_interface_Coerce.Abstraction__f_lift (0 y)))). *) + +(* Definition unchecked_add_isize (x : t_isize) (y : t_isize) : t_isize := *) +(* Build_t__isize_isize (Core_Base_interface_Int.I64_I64 (Core_Base_Z.z_add (Core_Base_interface_Coerce.Abstraction__f_lift (0 x)) (Core_Base_interface_Coerce.Abstraction__f_lift (0 y)))). *) + +(* Definition impl_5__MIN : t_isize := *) +(* Build_t__isize_isize (Core_Base_interface_Int.Constants__f_MIN). *) + +(* Definition impl_5__MAX : t_isize := *) +(* Build_t__isize_isize (Core_Base_interface_Int.Constants__f_MAX). *) + +(* Definition impl_5__wrapping_add (self : t_isize) (rhs : t_isize) : t_isize := *) +(* wrapping_add_isize (self) (rhs). *) + +(* Definition impl_5__wrapping_sub (self : t_isize) (rhs : t_isize) : t_isize := *) +(* wrapping_sub_isize (self) (rhs). *) + +(* Instance t_Clone_637867385 : Core_Clone.t_Clone ((t_isize)) := *) +(* { *) +(* Core_Clone.Clone_impl_27__f_clone := fun (self : t_isize)=> *) +(* Build_t__isize_isize (Core_Clone.Clone__f_clone (0 self)); *) +(* }. *) + +Record t_Slice (v_T : Type) `{Core_Marker.t_Sized (v_T)} : Type := + { + f_Slice_v : t_Seq ((v_T)); + }. +Arguments Build_t_Slice {_} {_}. +Arguments f_Slice_v {_} {_}. +#[export] Instance settable_Slice_Slice_record `{v_T : Type} `{Core_Marker.t_Sized (v_T)} : Settable _ := + settable! (Build_t_Slice (v_T := v_T)) . + + +Record t_Array (v_T : Type) (v_N : t_usize) `{Core_Marker.t_Sized (v_T)} : Type := + { + f_Array_v : t_Slice ((v_T)); + }. +Arguments Build_t_Array {_} {_} {_}. +Arguments f_Array_v {_} {_} {_}. +#[export] Instance settable_Array_Array_record `{v_T : Type} `{v_N : t_usize} `{Core_Marker.t_Sized (v_T)} : Settable _ := + settable! (Build_t_Array (v_T := v_T) (v_N := v_N)) . + +(* Instance t_Clone_280203255 `{v_T : Type} `{v_N : t_usize} `{Core_Marker.t_Sized (v_T)} `{Core_Clone.t_Clone (v_T)} : Core_Clone.t_Clone ((t_Array ((v_T)) (v_N))) := *) +(* { *) +(* Core_Clone.Clone_impl_4__f_clone := fun (self : t_Array ((v_T)) (v_N))=> *) +(* Array_Array (Core_Clone.Clone__f_clone (f_Array_v self)); *) +(* }. *) + +(* Instance t_From_136385924 `{v_T : Type} `{v_N : t_usize} `{Core_Marker.t_Sized (v_T)} `{Core_Clone.t_Clone (v_T)} : Core_Convert.t_From ((t_Array (v_T) (v_N))) ((t_Array ((v_T)) (v_N))) := *) +(* { *) +(* Core_Convert.From_impl_1__f_from := fun (x : t_Array ((v_T)) (v_N))=> *) +(* match Core_Convert.TryInto__f_try_into (f_Seq_v f_Slice_v f_Array_v x) with *) +(* | Core_Result.Result_Ok (x) => *) +(* x *) +(* | _ => *) +(* Rust_primitives_Hax.never_to_any (Core_Panicking.panic_fmt (Core_Fmt_Rt.impl_1__new_const ([("some error?"%string : string)]))) *) +(* end; *) +(* }. *) + +(* Instance t_From_693883310 `{v_T : Type} `{Core_Marker.t_Sized (v_T)} `{Core_Clone.t_Clone (v_T)} : Core_Convert.t_From ((t_Slice ((v_T)))) ((t_Slice v_T)) := *) +(* { *) +(* Core_Convert.From_impl_2__f_from := fun (x : t_Slice v_T)=> *) +(* Slice_Slice (Seq_Seq (Alloc_Slice.impl__to_vec (x))); *) +(* }. *) + +(* Definition impl_3__cast `{v_T : Type} `{v_N : t_usize} `{Core_Marker.t_Sized (v_T)} `{Core_Clone.t_Clone (v_T)} (self : t_Array ((v_T)) (v_N)) : t_Slice ((v_T)) := *) +(* f_Array_v self. *) + +(* TODO: please implement the method `item'_HaxError` *) + +(* Class t_Sealed (v_Self : Type) : Type := *) +(* { *) +(* }. *) +(* Arguments t_Sealed (_). *) + +(* Instance t_Sealed_333055463 : t_Sealed ((t_usize)) := *) +(* { *) +(* }. *) + +(* Instance t_Sealed_559949524 : t_Sealed ((Core_Ops_Range.t_Range ((t_usize)))) := *) +(* { *) +(* }. *) + +(* Instance t_Sealed_593349583 : t_Sealed ((Core_Ops_Range.t_RangeTo ((t_usize)))) := *) +(* { *) +(* }. *) + +(* Instance t_Sealed_953301182 : t_Sealed ((Core_Ops_Range.t_RangeFrom ((t_usize)))) := *) +(* { *) +(* }. *) + +(* Instance t_Sealed_449367833 : t_Sealed ((Core_Ops_Range.t_RangeFull)) := *) +(* { *) +(* }. *) + +(* Instance t_Sealed_146970483 : t_Sealed ((Core_Ops_Range.t_RangeInclusive ((t_usize)))) := *) +(* { *) +(* }. *) + +(* Instance t_Sealed_696202684 : t_Sealed ((Core_Ops_Range.t_RangeToInclusive ((t_usize)))) := *) +(* { *) +(* }. *) + +(* Instance t_Sealed_491368469 : t_Sealed (((Core_Ops_Range.t_Bound ((t_usize))*Core_Ops_Range.t_Bound ((t_usize))))) := *) +(* { *) +(* }. *) + +(* Instance t_Sealed_665181514 : t_Sealed ((Core_Ops_Index_range.t_IndexRange)) := *) +(* { *) +(* }. *) + +(* Instance t_TryFrom_60962407 `{v_T : Type} `{v_N : t_usize} `{Core_Marker.t_Sized (v_T)} `{Core_Marker.t_Copy (v_T)} : Core_Convert.t_TryFrom ((t_Array ((v_T)) (v_N))) ((t_Slice ((v_T)))) := *) +(* { *) +(* Core_Convert.TryFrom_impl_2__f_Error := t_TryFromSliceError; *) +(* Core_Convert.TryFrom_impl_2__f_try_from := fun (slice : t_Slice ((v_T)))=> *) +(* Core_Convert.TryFrom__f_try_from (slice); *) +(* }. *) + +(* Fixpoint impl_24__from_u8_binary (x : t_u8) `{Rust_primitives_U128.ne (x) ((0 : t_u8)) = true} : Core_Base_Spec_Binary_Positive.t_Positive := *) +(* if *) +(* Rust_primitives_U128.eq (x) ((1 : t_u8)) *) +(* then *) +(* Core_Base_Spec_Binary_Positive.xH *) +(* else *) +(* if *) +(* Rust_primitives_U128.eq (Rust_primitives_U128.rem (x) ((2 : t_u8))) ((0 : t_u8)) *) +(* then *) +(* Core_Base_Spec_Binary_Positive.xO (impl_24__from_u8_binary (Rust_primitives_U128.div (x) ((2 : t_u8)))) *) +(* else *) +(* Core_Base_Spec_Binary_Positive.xI (impl_24__from_u8_binary (Rust_primitives_U128.div (x) ((2 : t_u8)))). *) + +(* Fixpoint impl_24__to_u8_binary (self : Core_Base_Spec_Binary_Positive.t_Positive) : t_u8 := *) +(* match Core_Base_Spec_Binary_Positive.match_positive (self) with *) +(* | Core_Base_Spec_Binary_Positive.POSITIVE_XH => *) +(* (1 : t_u8) *) +(* | Core_Base_Spec_Binary_Positive.POSITIVE_XO (p) => *) +(* Rust_primitives_U128.mul (impl_24__to_u8_binary (p)) ((2 : t_u8)) *) +(* | Core_Base_Spec_Binary_Positive.POSITIVE_XI (p) => *) +(* Rust_primitives_U128.add (Rust_primitives_U128.mul (impl_24__to_u8_binary (p)) ((2 : t_u8))) ((1 : t_u8)) *) +(* end. *) + +(* Fixpoint impl_24__from_u16_binary (x : t_u16) `{Rust_primitives_U128.ne (x) ((0 : t_u16)) = true} : Core_Base_Spec_Binary_Positive.t_Positive := *) +(* if *) +(* Rust_primitives_U128.eq (x) ((1 : t_u16)) *) +(* then *) +(* Core_Base_Spec_Binary_Positive.xH *) +(* else *) +(* if *) +(* Rust_primitives_U128.eq (Rust_primitives_U128.rem (x) ((2 : t_u16))) ((0 : t_u16)) *) +(* then *) +(* Core_Base_Spec_Binary_Positive.xO (impl_24__from_u16_binary (Rust_primitives_U128.div (x) ((2 : t_u16)))) *) +(* else *) +(* Core_Base_Spec_Binary_Positive.xI (impl_24__from_u16_binary (Rust_primitives_U128.div (x) ((2 : t_u16)))). *) + +(* Fixpoint impl_24__to_u16_binary (self : Core_Base_Spec_Binary_Positive.t_Positive) : t_u16 := *) +(* match Core_Base_Spec_Binary_Positive.match_positive (self) with *) +(* | Core_Base_Spec_Binary_Positive.POSITIVE_XH => *) +(* (1 : t_u16) *) +(* | Core_Base_Spec_Binary_Positive.POSITIVE_XO (p) => *) +(* Rust_primitives_U128.mul (impl_24__to_u16_binary (p)) ((2 : t_u16)) *) +(* | Core_Base_Spec_Binary_Positive.POSITIVE_XI (p) => *) +(* Rust_primitives_U128.add (Rust_primitives_U128.mul (impl_24__to_u16_binary (p)) ((2 : t_u16))) ((1 : t_u16)) *) +(* end. *) + +(* Fixpoint impl_24__from_u32_binary (x : t_u32) `{Rust_primitives_U128.ne (x) ((0 : t_u32)) = true} : Core_Base_Spec_Binary_Positive.t_Positive := *) +(* if *) +(* Rust_primitives_U128.eq (x) ((1 : t_u32)) *) +(* then *) +(* Core_Base_Spec_Binary_Positive.xH *) +(* else *) +(* if *) +(* Rust_primitives_U128.eq (Rust_primitives_U128.rem (x) ((2 : t_u32))) ((0 : t_u32)) *) +(* then *) +(* Core_Base_Spec_Binary_Positive.xO (impl_24__from_u32_binary (Rust_primitives_U128.div (x) ((2 : t_u32)))) *) +(* else *) +(* Core_Base_Spec_Binary_Positive.xI (impl_24__from_u32_binary (Rust_primitives_U128.div (x) ((2 : t_u32)))). *) + +(* Fixpoint impl_24__to_u32_binary (self : Core_Base_Spec_Binary_Positive.t_Positive) : t_u32 := *) +(* match Core_Base_Spec_Binary_Positive.match_positive (self) with *) +(* | Core_Base_Spec_Binary_Positive.POSITIVE_XH => *) +(* (1 : t_u32) *) +(* | Core_Base_Spec_Binary_Positive.POSITIVE_XO (p) => *) +(* Rust_primitives_U128.mul (impl_24__to_u32_binary (p)) ((2 : t_u32)) *) +(* | Core_Base_Spec_Binary_Positive.POSITIVE_XI (p) => *) +(* Rust_primitives_U128.add (Rust_primitives_U128.mul (impl_24__to_u32_binary (p)) ((2 : t_u32))) ((1 : t_u32)) *) +(* end. *) + +(* Fixpoint impl_24__from_u64_binary (x : t_u64) `{Rust_primitives_U128.ne (x) ((0 : t_u64)) = true} : Core_Base_Spec_Binary_Positive.t_Positive := *) +(* if *) +(* Rust_primitives_U128.eq (x) ((1 : t_u64)) *) +(* then *) +(* Core_Base_Spec_Binary_Positive.xH *) +(* else *) +(* if *) +(* Rust_primitives_U128.eq (Rust_primitives_U128.rem (x) ((2 : t_u64))) ((0 : t_u64)) *) +(* then *) +(* Core_Base_Spec_Binary_Positive.xO (impl_24__from_u64_binary (Rust_primitives_U128.div (x) ((2 : t_u64)))) *) +(* else *) +(* Core_Base_Spec_Binary_Positive.xI (impl_24__from_u64_binary (Rust_primitives_U128.div (x) ((2 : t_u64)))). *) + +(* Fixpoint impl_24__to_u64_binary (self : Core_Base_Spec_Binary_Positive.t_Positive) : t_u64 := *) +(* match Core_Base_Spec_Binary_Positive.match_positive (self) with *) +(* | Core_Base_Spec_Binary_Positive.POSITIVE_XH => *) +(* (1 : t_u64) *) +(* | Core_Base_Spec_Binary_Positive.POSITIVE_XO (p) => *) +(* Rust_primitives_U128.mul (impl_24__to_u64_binary (p)) ((2 : t_u64)) *) +(* | Core_Base_Spec_Binary_Positive.POSITIVE_XI (p) => *) +(* Rust_primitives_U128.add (Rust_primitives_U128.mul (impl_24__to_u64_binary (p)) ((2 : t_u64))) ((1 : t_u64)) *) +(* end. *) + +(* Fixpoint impl_24__from_u128_binary (x : t_u128) `{Rust_primitives_U128.ne (x) ((0 : t_u128)) = true} : Core_Base_Spec_Binary_Positive.t_Positive := *) +(* if *) +(* Rust_primitives_U128.eq (x) ((1 : t_u128)) *) +(* then *) +(* Core_Base_Spec_Binary_Positive.xH *) +(* else *) +(* if *) +(* Rust_primitives_U128.eq (Rust_primitives_U128.rem (x) ((2 : t_u128))) ((0 : t_u128)) *) +(* then *) +(* Core_Base_Spec_Binary_Positive.xO (impl_24__from_u128_binary (Rust_primitives_U128.div (x) ((2 : t_u128)))) *) +(* else *) +(* Core_Base_Spec_Binary_Positive.xI (impl_24__from_u128_binary (Rust_primitives_U128.div (x) ((2 : t_u128)))). *) + +(* Fixpoint impl_24__to_u128_binary (self : Core_Base_Spec_Binary_Positive.t_Positive) : t_u128 := *) +(* match Core_Base_Spec_Binary_Positive.match_positive (self) with *) +(* | Core_Base_Spec_Binary_Positive.POSITIVE_XH => *) +(* (1 : t_u128) *) +(* | Core_Base_Spec_Binary_Positive.POSITIVE_XO (p) => *) +(* Rust_primitives_U128.mul (impl_24__to_u128_binary (p)) ((2 : t_u128)) *) +(* | Core_Base_Spec_Binary_Positive.POSITIVE_XI (p) => *) +(* Rust_primitives_U128.add (Rust_primitives_U128.mul (impl_24__to_u128_binary (p)) ((2 : t_u128))) ((1 : t_u128)) *) +(* end. *) + +(* Fixpoint impl_24__from_usize_binary (x : t_usize) `{Rust_primitives_U128.ne (x) ((0 : t_usize)) = true} : Core_Base_Spec_Binary_Positive.t_Positive := *) +(* if *) +(* Rust_primitives_U128.eq (x) ((1 : t_usize)) *) +(* then *) +(* Core_Base_Spec_Binary_Positive.xH *) +(* else *) +(* if *) +(* Rust_primitives_U128.eq (Rust_primitives_U128.rem (x) ((2 : t_usize))) ((0 : t_usize)) *) +(* then *) +(* Core_Base_Spec_Binary_Positive.xO (impl_24__from_usize_binary (Rust_primitives_U128.div (x) ((2 : t_usize)))) *) +(* else *) +(* Core_Base_Spec_Binary_Positive.xI (impl_24__from_usize_binary (Rust_primitives_U128.div (x) ((2 : t_usize)))). *) + +(* Fixpoint impl_24__to_usize_binary (self : Core_Base_Spec_Binary_Positive.t_Positive) : t_usize := *) +(* match Core_Base_Spec_Binary_Positive.match_positive (self) with *) +(* | Core_Base_Spec_Binary_Positive.POSITIVE_XH => *) +(* (1 : t_usize) *) +(* | Core_Base_Spec_Binary_Positive.POSITIVE_XO (p) => *) +(* Rust_primitives_U128.mul (impl_24__to_usize_binary (p)) ((2 : t_usize)) *) +(* | Core_Base_Spec_Binary_Positive.POSITIVE_XI (p) => *) +(* Rust_primitives_U128.add (Rust_primitives_U128.mul (impl_24__to_usize_binary (p)) ((2 : t_usize))) ((1 : t_usize)) *) +(* end. *) + +(* Instance t_Neg_458983225 : Core_Ops_Arith.t_Neg ((t_i8)) := *) +(* { *) +(* Core_Ops_Arith.Neg_f_Output := t_i8; *) +(* Core_Ops_Arith.Neg_f_neg := fun (self : t_i8)=> *) +(* Build_t__i8_i8 (Core_Ops_Arith.Neg__f_neg (0 self)); *) +(* }. *) + +(* Instance t_Neg_391498896 : Core_Ops_Arith.t_Neg ((t_i16)) := *) +(* { *) +(* Core_Ops_Arith.Neg_impl_1__f_Output := t_i16; *) +(* Core_Ops_Arith.Neg_impl_1__f_neg := fun (self : t_i16)=> *) +(* Build_t__i16_i16 (Core_Ops_Arith.Neg__f_neg (0 self)); *) +(* }. *) + +(* Instance t_Neg_335089866 : Core_Ops_Arith.t_Neg ((t_i32)) := *) +(* { *) +(* Core_Ops_Arith.Neg_impl_2__f_Output := t_i32; *) +(* Core_Ops_Arith.Neg_impl_2__f_neg := fun (self : t_i32)=> *) +(* Build_t__i32_i32 (Core_Ops_Arith.Neg__f_neg (0 self)); *) +(* }. *) + +(* Instance t_Neg_310163602 : Core_Ops_Arith.t_Neg ((t_i64)) := *) +(* { *) +(* Core_Ops_Arith.Neg_impl_3__f_Output := t_i64; *) +(* Core_Ops_Arith.Neg_impl_3__f_neg := fun (self : t_i64)=> *) +(* Build_t__i64_i64 (Core_Ops_Arith.Neg__f_neg (0 self)); *) +(* }. *) + +(* Instance t_Neg_561836308 : Core_Ops_Arith.t_Neg ((t_i128)) := *) +(* { *) +(* Core_Ops_Arith.Neg_impl_4__f_Output := t_i128; *) +(* Core_Ops_Arith.Neg_impl_4__f_neg := fun (self : t_i128)=> *) +(* Build_t__i128_i128 (Core_Ops_Arith.Neg__f_neg (0 self)); *) +(* }. *) + +(* Instance t_Neg_226429037 : Core_Ops_Arith.t_Neg ((t_isize)) := *) +(* { *) +(* Core_Ops_Arith.Neg_impl_5__f_Output := t_isize; *) +(* Core_Ops_Arith.Neg_impl_5__f_neg := fun (self : t_isize)=> *) +(* Build_t__isize_isize (Core_Ops_Arith.Neg__f_neg (0 self)); *) +(* }. *) + +(* Instance t_Add_163564448 : Core_Ops_Arith.t_Add ((t_u8)) ((t_u8)) := *) +(* { *) +(* Core_Ops_Arith.Add_impl_6__f_Output := t_u8; *) +(* Core_Ops_Arith.Add_impl_6__f_add := fun (self : t_u8) (other : t_u8)=> *) +(* Build_t__u8_u8 (Core_Ops_Arith.Add__f_add (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Add_778409526 : Core_Ops_Arith.t_Add ((t_u16)) ((t_u16)) := *) +(* { *) +(* Core_Ops_Arith.Add_impl_7__f_Output := t_u16; *) +(* Core_Ops_Arith.Add_impl_7__f_add := fun (self : t_u16) (other : t_u16)=> *) +(* Build_t__u16_u16 (Core_Ops_Arith.Add__f_add (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Add_656085397 : Core_Ops_Arith.t_Add ((t_u32)) ((t_u32)) := *) +(* { *) +(* Core_Ops_Arith.Add_impl_8__f_Output := t_u32; *) +(* Core_Ops_Arith.Add_impl_8__f_add := fun (self : t_u32) (other : t_u32)=> *) +(* Build_t__u32_u32 (Core_Ops_Arith.Add__f_add (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Add_382169722 : Core_Ops_Arith.t_Add ((t_u64)) ((t_u64)) := *) +(* { *) +(* Core_Ops_Arith.Add_impl_9__f_Output := t_u64; *) +(* Core_Ops_Arith.Add_impl_9__f_add := fun (self : t_u64) (other : t_u64)=> *) +(* Build_t__u64_u64 (Core_Ops_Arith.Add__f_add (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Add_774774984 : Core_Ops_Arith.t_Add ((t_u128)) ((t_u128)) := *) +(* { *) +(* Core_Ops_Arith.Add_impl_10__f_Output := t_u128; *) +(* Core_Ops_Arith.Add_impl_10__f_add := fun (self : t_u128) (other : t_u128)=> *) +(* Build_t__u128_u128 (Core_Ops_Arith.Add__f_add (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Add_557028235 : Core_Ops_Arith.t_Add ((t_usize)) ((t_usize)) := *) +(* { *) +(* Core_Ops_Arith.Add_impl_11__f_Output := t_usize; *) +(* Core_Ops_Arith.Add_impl_11__f_add := fun (self : t_usize) (other : t_usize)=> *) +(* Build_t__usize_usize (Core_Ops_Arith.Add__f_add (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Add_423766827 : Core_Ops_Arith.t_Add ((t_i8)) ((t_i8)) := *) +(* { *) +(* Core_Ops_Arith.Add_impl_12__f_Output := t_i8; *) +(* Core_Ops_Arith.Add_impl_12__f_add := fun (self : t_i8) (other : t_i8)=> *) +(* Build_t__i8_i8 (Core_Ops_Arith.Add__f_add (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Add_559913541 : Core_Ops_Arith.t_Add ((t_i16)) ((t_i16)) := *) +(* { *) +(* Core_Ops_Arith.Add_impl_13__f_Output := t_i16; *) +(* Core_Ops_Arith.Add_impl_13__f_add := fun (self : t_i16) (other : t_i16)=> *) +(* Build_t__i16_i16 (Core_Ops_Arith.Add__f_add (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Add_393651638 : Core_Ops_Arith.t_Add ((t_i32)) ((t_i32)) := *) +(* { *) +(* Core_Ops_Arith.Add_impl_14__f_Output := t_i32; *) +(* Core_Ops_Arith.Add_impl_14__f_add := fun (self : t_i32) (other : t_i32)=> *) +(* Build_t__i32_i32 (Core_Ops_Arith.Add__f_add (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Add_970037768 : Core_Ops_Arith.t_Add ((t_i64)) ((t_i64)) := *) +(* { *) +(* Core_Ops_Arith.Add_impl_15__f_Output := t_i64; *) +(* Core_Ops_Arith.Add_impl_15__f_add := fun (self : t_i64) (other : t_i64)=> *) +(* Build_t__i64_i64 (Core_Ops_Arith.Add__f_add (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Add_207273596 : Core_Ops_Arith.t_Add ((t_i128)) ((t_i128)) := *) +(* { *) +(* Core_Ops_Arith.Add_impl_16__f_Output := t_i128; *) +(* Core_Ops_Arith.Add_impl_16__f_add := fun (self : t_i128) (other : t_i128)=> *) +(* Build_t__i128_i128 (Core_Ops_Arith.Add__f_add (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Add_100074189 : Core_Ops_Arith.t_Add ((t_isize)) ((t_isize)) := *) +(* { *) +(* Core_Ops_Arith.Add_impl_17__f_Output := t_isize; *) +(* Core_Ops_Arith.Add_impl_17__f_add := fun (self : t_isize) (other : t_isize)=> *) +(* Build_t__isize_isize (Core_Ops_Arith.Add__f_add (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Sub_881975497 : Core_Ops_Arith.t_Sub ((t_u8)) ((t_u8)) := *) +(* { *) +(* Core_Ops_Arith.Sub_impl_18__f_Output := t_u8; *) +(* Core_Ops_Arith.Sub_impl_18__f_sub := fun (self : t_u8) (other : t_u8)=> *) +(* Build_t__u8_u8 (Core_Ops_Arith.Sub__f_sub (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Sub_131267277 : Core_Ops_Arith.t_Sub ((t_u16)) ((t_u16)) := *) +(* { *) +(* Core_Ops_Arith.Sub_impl_19__f_Output := t_u16; *) +(* Core_Ops_Arith.Sub_impl_19__f_sub := fun (self : t_u16) (other : t_u16)=> *) +(* Build_t__u16_u16 (Core_Ops_Arith.Sub__f_sub (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Sub_723285712 : Core_Ops_Arith.t_Sub ((t_u32)) ((t_u32)) := *) +(* { *) +(* Core_Ops_Arith.Sub_impl_20__f_Output := t_u32; *) +(* Core_Ops_Arith.Sub_impl_20__f_sub := fun (self : t_u32) (other : t_u32)=> *) +(* Build_t__u32_u32 (Core_Ops_Arith.Sub__f_sub (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Sub_984355770 : Core_Ops_Arith.t_Sub ((t_u64)) ((t_u64)) := *) +(* { *) +(* Core_Ops_Arith.Sub_impl_21__f_Output := t_u64; *) +(* Core_Ops_Arith.Sub_impl_21__f_sub := fun (self : t_u64) (other : t_u64)=> *) +(* Build_t__u64_u64 (Core_Ops_Arith.Sub__f_sub (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Sub_425350993 : Core_Ops_Arith.t_Sub ((t_u128)) ((t_u128)) := *) +(* { *) +(* Core_Ops_Arith.Sub_impl_22__f_Output := t_u128; *) +(* Core_Ops_Arith.Sub_impl_22__f_sub := fun (self : t_u128) (other : t_u128)=> *) +(* Build_t__u128_u128 (Core_Ops_Arith.Sub__f_sub (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Sub_651230636 : Core_Ops_Arith.t_Sub ((t_usize)) ((t_usize)) := *) +(* { *) +(* Core_Ops_Arith.Sub_impl_23__f_Output := t_usize; *) +(* Core_Ops_Arith.Sub_impl_23__f_sub := fun (self : t_usize) (other : t_usize)=> *) +(* Build_t__usize_usize (Core_Ops_Arith.Sub__f_sub (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Sub_523653575 : Core_Ops_Arith.t_Sub ((t_i8)) ((t_i8)) := *) +(* { *) +(* Core_Ops_Arith.Sub_impl_24__f_Output := t_i8; *) +(* Core_Ops_Arith.Sub_impl_24__f_sub := fun (self : t_i8) (other : t_i8)=> *) +(* Build_t__i8_i8 (Core_Ops_Arith.Sub__f_sub (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Sub_806513589 : Core_Ops_Arith.t_Sub ((t_i16)) ((t_i16)) := *) +(* { *) +(* Core_Ops_Arith.Sub_impl_25__f_Output := t_i16; *) +(* Core_Ops_Arith.Sub_impl_25__f_sub := fun (self : t_i16) (other : t_i16)=> *) +(* Build_t__i16_i16 (Core_Ops_Arith.Sub__f_sub (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Sub_857810117 : Core_Ops_Arith.t_Sub ((t_i32)) ((t_i32)) := *) +(* { *) +(* Core_Ops_Arith.Sub_impl_26__f_Output := t_i32; *) +(* Core_Ops_Arith.Sub_impl_26__f_sub := fun (self : t_i32) (other : t_i32)=> *) +(* Build_t__i32_i32 (Core_Ops_Arith.Sub__f_sub (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Sub_970121413 : Core_Ops_Arith.t_Sub ((t_i64)) ((t_i64)) := *) +(* { *) +(* Core_Ops_Arith.Sub_impl_27__f_Output := t_i64; *) +(* Core_Ops_Arith.Sub_impl_27__f_sub := fun (self : t_i64) (other : t_i64)=> *) +(* Build_t__i64_i64 (Core_Ops_Arith.Sub__f_sub (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Sub_416724147 : Core_Ops_Arith.t_Sub ((t_i128)) ((t_i128)) := *) +(* { *) +(* Core_Ops_Arith.Sub_impl_28__f_Output := t_i128; *) +(* Core_Ops_Arith.Sub_impl_28__f_sub := fun (self : t_i128) (other : t_i128)=> *) +(* Build_t__i128_i128 (Core_Ops_Arith.Sub__f_sub (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Sub_630146066 : Core_Ops_Arith.t_Sub ((t_isize)) ((t_isize)) := *) +(* { *) +(* Core_Ops_Arith.Sub_impl_29__f_Output := t_isize; *) +(* Core_Ops_Arith.Sub_impl_29__f_sub := fun (self : t_isize) (other : t_isize)=> *) +(* Build_t__isize_isize (Core_Ops_Arith.Sub__f_sub (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Mul_848701541 : Core_Ops_Arith.t_Mul ((t_u8)) ((t_u8)) := *) +(* { *) +(* Core_Ops_Arith.Mul_impl_30__f_Output := t_u8; *) +(* Core_Ops_Arith.Mul_impl_30__f_mul := fun (self : t_u8) (other : t_u8)=> *) +(* Build_t__u8_u8 (Core_Ops_Arith.Mul__f_mul (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Mul_25219058 : Core_Ops_Arith.t_Mul ((t_u16)) ((t_u16)) := *) +(* { *) +(* Core_Ops_Arith.Mul_impl_31__f_Output := t_u16; *) +(* Core_Ops_Arith.Mul_impl_31__f_mul := fun (self : t_u16) (other : t_u16)=> *) +(* Build_t__u16_u16 (Core_Ops_Arith.Mul__f_mul (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Mul_693615511 : Core_Ops_Arith.t_Mul ((t_u32)) ((t_u32)) := *) +(* { *) +(* Core_Ops_Arith.Mul_impl_32__f_Output := t_u32; *) +(* Core_Ops_Arith.Mul_impl_32__f_mul := fun (self : t_u32) (other : t_u32)=> *) +(* Build_t__u32_u32 (Core_Ops_Arith.Mul__f_mul (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Mul_533399539 : Core_Ops_Arith.t_Mul ((t_u64)) ((t_u64)) := *) +(* { *) +(* Core_Ops_Arith.Mul_impl_33__f_Output := t_u64; *) +(* Core_Ops_Arith.Mul_impl_33__f_mul := fun (self : t_u64) (other : t_u64)=> *) +(* Build_t__u64_u64 (Core_Ops_Arith.Mul__f_mul (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Mul_26494971 : Core_Ops_Arith.t_Mul ((t_u128)) ((t_u128)) := *) +(* { *) +(* Core_Ops_Arith.Mul_impl_34__f_Output := t_u128; *) +(* Core_Ops_Arith.Mul_impl_34__f_mul := fun (self : t_u128) (other : t_u128)=> *) +(* Build_t__u128_u128 (Core_Ops_Arith.Mul__f_mul (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Mul_920306108 : Core_Ops_Arith.t_Mul ((t_usize)) ((t_usize)) := *) +(* { *) +(* Core_Ops_Arith.Mul_impl_35__f_Output := t_usize; *) +(* Core_Ops_Arith.Mul_impl_35__f_mul := fun (self : t_usize) (other : t_usize)=> *) +(* Build_t__usize_usize (Core_Ops_Arith.Mul__f_mul (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Mul_234085771 : Core_Ops_Arith.t_Mul ((t_i8)) ((t_i8)) := *) +(* { *) +(* Core_Ops_Arith.Mul_impl_36__f_Output := t_i8; *) +(* Core_Ops_Arith.Mul_impl_36__f_mul := fun (self : t_i8) (other : t_i8)=> *) +(* Build_t__i8_i8 (Core_Ops_Arith.Mul__f_mul (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Mul_905086505 : Core_Ops_Arith.t_Mul ((t_i16)) ((t_i16)) := *) +(* { *) +(* Core_Ops_Arith.Mul_impl_37__f_Output := t_i16; *) +(* Core_Ops_Arith.Mul_impl_37__f_mul := fun (self : t_i16) (other : t_i16)=> *) +(* Build_t__i16_i16 (Core_Ops_Arith.Mul__f_mul (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Mul_487928150 : Core_Ops_Arith.t_Mul ((t_i32)) ((t_i32)) := *) +(* { *) +(* Core_Ops_Arith.Mul_impl_38__f_Output := t_i32; *) +(* Core_Ops_Arith.Mul_impl_38__f_mul := fun (self : t_i32) (other : t_i32)=> *) +(* Build_t__i32_i32 (Core_Ops_Arith.Mul__f_mul (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Mul_459208571 : Core_Ops_Arith.t_Mul ((t_i64)) ((t_i64)) := *) +(* { *) +(* Core_Ops_Arith.Mul_impl_39__f_Output := t_i64; *) +(* Core_Ops_Arith.Mul_impl_39__f_mul := fun (self : t_i64) (other : t_i64)=> *) +(* Build_t__i64_i64 (Core_Ops_Arith.Mul__f_mul (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Mul_33501126 : Core_Ops_Arith.t_Mul ((t_i128)) ((t_i128)) := *) +(* { *) +(* Core_Ops_Arith.Mul_impl_40__f_Output := t_i128; *) +(* Core_Ops_Arith.Mul_impl_40__f_mul := fun (self : t_i128) (other : t_i128)=> *) +(* Build_t__i128_i128 (Core_Ops_Arith.Mul__f_mul (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Mul_4074258 : Core_Ops_Arith.t_Mul ((t_isize)) ((t_isize)) := *) +(* { *) +(* Core_Ops_Arith.Mul_impl_41__f_Output := t_isize; *) +(* Core_Ops_Arith.Mul_impl_41__f_mul := fun (self : t_isize) (other : t_isize)=> *) +(* Build_t__isize_isize (Core_Ops_Arith.Mul__f_mul (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Div_931334788 : Core_Ops_Arith.t_Div ((t_usize)) ((t_usize)) := *) +(* { *) +(* Core_Ops_Arith.Div_impl_42__f_Output := t_usize; *) +(* Core_Ops_Arith.Div_impl_42__f_div := fun (self : t_usize) (other : t_usize)=> *) +(* Build_t__usize_usize (Core_Ops_Arith.Div__f_div (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Div_617349534 : Core_Ops_Arith.t_Div ((t_u8)) ((t_u8)) := *) +(* { *) +(* Core_Ops_Arith.Div_impl_43__f_Output := t_u8; *) +(* Core_Ops_Arith.Div_impl_43__f_div := fun (self : t_u8) (other : t_u8)=> *) +(* Build_t__u8_u8 (Core_Ops_Arith.Div__f_div (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Div_457499033 : Core_Ops_Arith.t_Div ((t_u16)) ((t_u16)) := *) +(* { *) +(* Core_Ops_Arith.Div_impl_44__f_Output := t_u16; *) +(* Core_Ops_Arith.Div_impl_44__f_div := fun (self : t_u16) (other : t_u16)=> *) +(* Build_t__u16_u16 (Core_Ops_Arith.Div__f_div (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Div_811411375 : Core_Ops_Arith.t_Div ((t_u32)) ((t_u32)) := *) +(* { *) +(* Core_Ops_Arith.Div_impl_45__f_Output := t_u32; *) +(* Core_Ops_Arith.Div_impl_45__f_div := fun (self : t_u32) (other : t_u32)=> *) +(* Build_t__u32_u32 (Core_Ops_Arith.Div__f_div (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Div_488661846 : Core_Ops_Arith.t_Div ((t_u64)) ((t_u64)) := *) +(* { *) +(* Core_Ops_Arith.Div_impl_46__f_Output := t_u64; *) +(* Core_Ops_Arith.Div_impl_46__f_div := fun (self : t_u64) (other : t_u64)=> *) +(* Build_t__u64_u64 (Core_Ops_Arith.Div__f_div (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Div_240899356 : Core_Ops_Arith.t_Div ((t_u128)) ((t_u128)) := *) +(* { *) +(* Core_Ops_Arith.Div_impl_47__f_Output := t_u128; *) +(* Core_Ops_Arith.Div_impl_47__f_div := fun (self : t_u128) (other : t_u128)=> *) +(* Build_t__u128_u128 (Core_Ops_Arith.Div__f_div (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Div_152532073 : Core_Ops_Arith.t_Div ((t_isize)) ((t_isize)) := *) +(* { *) +(* Core_Ops_Arith.Div_impl_48__f_Output := t_isize; *) +(* Core_Ops_Arith.Div_impl_48__f_div := fun (self : t_isize) (other : t_isize)=> *) +(* Build_t__isize_isize (Core_Ops_Arith.Div__f_div (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Div_500120844 : Core_Ops_Arith.t_Div ((t_i8)) ((t_i8)) := *) +(* { *) +(* Core_Ops_Arith.Div_impl_49__f_Output := t_i8; *) +(* Core_Ops_Arith.Div_impl_49__f_div := fun (self : t_i8) (other : t_i8)=> *) +(* Build_t__i8_i8 (Core_Ops_Arith.Div__f_div (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Div_172891911 : Core_Ops_Arith.t_Div ((t_i16)) ((t_i16)) := *) +(* { *) +(* Core_Ops_Arith.Div_impl_50__f_Output := t_i16; *) +(* Core_Ops_Arith.Div_impl_50__f_div := fun (self : t_i16) (other : t_i16)=> *) +(* Build_t__i16_i16 (Core_Ops_Arith.Div__f_div (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Div_317731517 : Core_Ops_Arith.t_Div ((t_i32)) ((t_i32)) := *) +(* { *) +(* Core_Ops_Arith.Div_impl_51__f_Output := t_i32; *) +(* Core_Ops_Arith.Div_impl_51__f_div := fun (self : t_i32) (other : t_i32)=> *) +(* Build_t__i32_i32 (Core_Ops_Arith.Div__f_div (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Div_660736826 : Core_Ops_Arith.t_Div ((t_i64)) ((t_i64)) := *) +(* { *) +(* Core_Ops_Arith.Div_impl_52__f_Output := t_i64; *) +(* Core_Ops_Arith.Div_impl_52__f_div := fun (self : t_i64) (other : t_i64)=> *) +(* Build_t__i64_i64 (Core_Ops_Arith.Div__f_div (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Div_377244152 : Core_Ops_Arith.t_Div ((t_i128)) ((t_i128)) := *) +(* { *) +(* Core_Ops_Arith.Div_impl_53__f_Output := t_i128; *) +(* Core_Ops_Arith.Div_impl_53__f_div := fun (self : t_i128) (other : t_i128)=> *) +(* Build_t__i128_i128 (Core_Ops_Arith.Div__f_div (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Rem_803566572 : Core_Ops_Arith.t_Rem ((t_usize)) ((t_usize)) := *) +(* { *) +(* Core_Ops_Arith.Rem_impl_54__f_Output := t_usize; *) +(* Core_Ops_Arith.Rem_impl_54__f_rem := fun (self : t_usize) (other : t_usize)=> *) +(* Build_t__usize_usize (Core_Ops_Arith.Rem__f_rem (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Rem_743722603 : Core_Ops_Arith.t_Rem ((t_u8)) ((t_u8)) := *) +(* { *) +(* Core_Ops_Arith.Rem_impl_55__f_Output := t_u8; *) +(* Core_Ops_Arith.Rem_impl_55__f_rem := fun (self : t_u8) (other : t_u8)=> *) +(* Build_t__u8_u8 (Core_Ops_Arith.Rem__f_rem (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Rem_880026988 : Core_Ops_Arith.t_Rem ((t_u16)) ((t_u16)) := *) +(* { *) +(* Core_Ops_Arith.Rem_impl_56__f_Output := t_u16; *) +(* Core_Ops_Arith.Rem_impl_56__f_rem := fun (self : t_u16) (other : t_u16)=> *) +(* Build_t__u16_u16 (Core_Ops_Arith.Rem__f_rem (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Rem_25555618 : Core_Ops_Arith.t_Rem ((t_u32)) ((t_u32)) := *) +(* { *) +(* Core_Ops_Arith.Rem_impl_57__f_Output := t_u32; *) +(* Core_Ops_Arith.Rem_impl_57__f_rem := fun (self : t_u32) (other : t_u32)=> *) +(* Build_t__u32_u32 (Core_Ops_Arith.Rem__f_rem (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Rem_968906586 : Core_Ops_Arith.t_Rem ((t_u64)) ((t_u64)) := *) +(* { *) +(* Core_Ops_Arith.Rem_impl_58__f_Output := t_u64; *) +(* Core_Ops_Arith.Rem_impl_58__f_rem := fun (self : t_u64) (other : t_u64)=> *) +(* Build_t__u64_u64 (Core_Ops_Arith.Rem__f_rem (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Rem_375327970 : Core_Ops_Arith.t_Rem ((t_u128)) ((t_u128)) := *) +(* { *) +(* Core_Ops_Arith.Rem_impl_59__f_Output := t_u128; *) +(* Core_Ops_Arith.Rem_impl_59__f_rem := fun (self : t_u128) (other : t_u128)=> *) +(* Build_t__u128_u128 (Core_Ops_Arith.Rem__f_rem (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Rem_622329521 : Core_Ops_Arith.t_Rem ((t_isize)) ((t_isize)) := *) +(* { *) +(* Core_Ops_Arith.Rem_impl_60__f_Output := t_isize; *) +(* Core_Ops_Arith.Rem_impl_60__f_rem := fun (self : t_isize) (other : t_isize)=> *) +(* Build_t__isize_isize (Core_Ops_Arith.Rem__f_rem (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Rem_455030026 : Core_Ops_Arith.t_Rem ((t_i8)) ((t_i8)) := *) +(* { *) +(* Core_Ops_Arith.Rem_impl_61__f_Output := t_i8; *) +(* Core_Ops_Arith.Rem_impl_61__f_rem := fun (self : t_i8) (other : t_i8)=> *) +(* Build_t__i8_i8 (Core_Ops_Arith.Rem__f_rem (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Rem_505105792 : Core_Ops_Arith.t_Rem ((t_i16)) ((t_i16)) := *) +(* { *) +(* Core_Ops_Arith.Rem_impl_62__f_Output := t_i16; *) +(* Core_Ops_Arith.Rem_impl_62__f_rem := fun (self : t_i16) (other : t_i16)=> *) +(* Build_t__i16_i16 (Core_Ops_Arith.Rem__f_rem (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Rem_628294430 : Core_Ops_Arith.t_Rem ((t_i32)) ((t_i32)) := *) +(* { *) +(* Core_Ops_Arith.Rem_impl_63__f_Output := t_i32; *) +(* Core_Ops_Arith.Rem_impl_63__f_rem := fun (self : t_i32) (other : t_i32)=> *) +(* Build_t__i32_i32 (Core_Ops_Arith.Rem__f_rem (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Rem_93493223 : Core_Ops_Arith.t_Rem ((t_i64)) ((t_i64)) := *) +(* { *) +(* Core_Ops_Arith.Rem_impl_64__f_Output := t_i64; *) +(* Core_Ops_Arith.Rem_impl_64__f_rem := fun (self : t_i64) (other : t_i64)=> *) +(* Build_t__i64_i64 (Core_Ops_Arith.Rem__f_rem (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Rem_145124954 : Core_Ops_Arith.t_Rem ((t_i128)) ((t_i128)) := *) +(* { *) +(* Core_Ops_Arith.Rem_impl_65__f_Output := t_i128; *) +(* Core_Ops_Arith.Rem_impl_65__f_rem := fun (self : t_i128) (other : t_i128)=> *) +(* Build_t__i128_i128 (Core_Ops_Arith.Rem__f_rem (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Not_229315204 : Core_Ops_Bit.t_Not ((t_u8)) := *) +(* { *) +(* Core_Ops_Bit.Not_f_Output := t_u8; *) +(* Core_Ops_Bit.Not_f_not := fun (self : t_u8)=> *) +(* Build_t__u8_u8 (Core_Ops_Bit.Not__f_not (0 self)); *) +(* }. *) + +(* Instance t_Not_942034783 : Core_Ops_Bit.t_Not ((t_u16)) := *) +(* { *) +(* Core_Ops_Bit.Not_impl_1__f_Output := t_u16; *) +(* Core_Ops_Bit.Not_impl_1__f_not := fun (self : t_u16)=> *) +(* Build_t__u16_u16 (Core_Ops_Bit.Not__f_not (0 self)); *) +(* }. *) + +(* Instance t_Not_357324864 : Core_Ops_Bit.t_Not ((t_u32)) := *) +(* { *) +(* Core_Ops_Bit.Not_impl_2__f_Output := t_u32; *) +(* Core_Ops_Bit.Not_impl_2__f_not := fun (self : t_u32)=> *) +(* Build_t__u32_u32 (Core_Ops_Bit.Not__f_not (0 self)); *) +(* }. *) + +(* Instance t_Not_985070921 : Core_Ops_Bit.t_Not ((t_u64)) := *) +(* { *) +(* Core_Ops_Bit.Not_impl_3__f_Output := t_u64; *) +(* Core_Ops_Bit.Not_impl_3__f_not := fun (self : t_u64)=> *) +(* Build_t__u64_u64 (Core_Ops_Bit.Not__f_not (0 self)); *) +(* }. *) + +(* Instance t_Not_850275208 : Core_Ops_Bit.t_Not ((t_u128)) := *) +(* { *) +(* Core_Ops_Bit.Not_impl_4__f_Output := t_u128; *) +(* Core_Ops_Bit.Not_impl_4__f_not := fun (self : t_u128)=> *) +(* Build_t__u128_u128 (Core_Ops_Bit.Not__f_not (0 self)); *) +(* }. *) + +(* Instance t_Not_486510241 : Core_Ops_Bit.t_Not ((t_usize)) := *) +(* { *) +(* Core_Ops_Bit.Not_impl_5__f_Output := t_usize; *) +(* Core_Ops_Bit.Not_impl_5__f_not := fun (self : t_usize)=> *) +(* Build_t__usize_usize (Core_Ops_Bit.Not__f_not (0 self)); *) +(* }. *) + +(* Instance t_Not_339946088 : Core_Ops_Bit.t_Not ((t_i8)) := *) +(* { *) +(* Core_Ops_Bit.Not_impl_6__f_Output := t_i8; *) +(* Core_Ops_Bit.Not_impl_6__f_not := fun (self : t_i8)=> *) +(* Build_t__i8_i8 (Core_Ops_Bit.Not__f_not (0 self)); *) +(* }. *) + +(* Instance t_Not_971529715 : Core_Ops_Bit.t_Not ((t_i16)) := *) +(* { *) +(* Core_Ops_Bit.Not_impl_7__f_Output := t_i16; *) +(* Core_Ops_Bit.Not_impl_7__f_not := fun (self : t_i16)=> *) +(* Build_t__i16_i16 (Core_Ops_Bit.Not__f_not (0 self)); *) +(* }. *) + +(* Instance t_Not_933069850 : Core_Ops_Bit.t_Not ((t_i32)) := *) +(* { *) +(* Core_Ops_Bit.Not_impl_8__f_Output := t_i32; *) +(* Core_Ops_Bit.Not_impl_8__f_not := fun (self : t_i32)=> *) +(* Build_t__i32_i32 (Core_Ops_Bit.Not__f_not (0 self)); *) +(* }. *) + +(* Instance t_Not_313344644 : Core_Ops_Bit.t_Not ((t_i64)) := *) +(* { *) +(* Core_Ops_Bit.Not_impl_9__f_Output := t_i64; *) +(* Core_Ops_Bit.Not_impl_9__f_not := fun (self : t_i64)=> *) +(* Build_t__i64_i64 (Core_Ops_Bit.Not__f_not (0 self)); *) +(* }. *) + +(* Instance t_Not_430884737 : Core_Ops_Bit.t_Not ((t_i128)) := *) +(* { *) +(* Core_Ops_Bit.Not_impl_10__f_Output := t_i128; *) +(* Core_Ops_Bit.Not_impl_10__f_not := fun (self : t_i128)=> *) +(* Build_t__i128_i128 (Core_Ops_Bit.Not__f_not (0 self)); *) +(* }. *) + +(* Instance t_Not_991178827 : Core_Ops_Bit.t_Not ((t_isize)) := *) +(* { *) +(* Core_Ops_Bit.Not_impl_11__f_Output := t_isize; *) +(* Core_Ops_Bit.Not_impl_11__f_not := fun (self : t_isize)=> *) +(* Build_t__isize_isize (Core_Ops_Bit.Not__f_not (0 self)); *) +(* }. *) + +(* Instance t_Shr_12953330 : Core_Ops_Bit.t_Shr ((t_u8)) ((t_u8)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_12__f_Output := t_u8; *) +(* Core_Ops_Bit.Shr_impl_12__f_shr := fun (self : t_u8) (other : t_u8)=> *) +(* Build_t__u8_u8 (Core_Ops_Bit.Shr__f_shr (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shr_388260343 : Core_Ops_Bit.t_Shr ((t_u8)) ((t_u16)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_13__f_Output := t_u8; *) +(* Core_Ops_Bit.Shr_impl_13__f_shr := fun (self : t_u8) (other : t_u16)=> *) +(* Build_t__u8_u8 (Core_Ops_Bit.Shr__f_shr (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shr_853130250 : Core_Ops_Bit.t_Shr ((t_u8)) ((t_u32)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_14__f_Output := t_u8; *) +(* Core_Ops_Bit.Shr_impl_14__f_shr := fun (self : t_u8) (other : t_u32)=> *) +(* Build_t__u8_u8 (Core_Ops_Bit.Shr__f_shr (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shr_431768874 : Core_Ops_Bit.t_Shr ((t_u8)) ((t_u64)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_15__f_Output := t_u8; *) +(* Core_Ops_Bit.Shr_impl_15__f_shr := fun (self : t_u8) (other : t_u64)=> *) +(* Build_t__u8_u8 (Core_Ops_Bit.Shr__f_shr (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shr_195972813 : Core_Ops_Bit.t_Shr ((t_u8)) ((t_u128)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_16__f_Output := t_u8; *) +(* Core_Ops_Bit.Shr_impl_16__f_shr := fun (self : t_u8) (other : t_u128)=> *) +(* Build_t__u8_u8 (Core_Ops_Bit.Shr__f_shr (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shr_1014708045 : Core_Ops_Bit.t_Shr ((t_u8)) ((t_usize)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_17__f_Output := t_u8; *) +(* Core_Ops_Bit.Shr_impl_17__f_shr := fun (self : t_u8) (other : t_usize)=> *) +(* Build_t__u8_u8 (Core_Ops_Bit.Shr__f_shr (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shr_523336454 : Core_Ops_Bit.t_Shr ((t_u16)) ((t_u8)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_18__f_Output := t_u16; *) +(* Core_Ops_Bit.Shr_impl_18__f_shr := fun (self : t_u16) (other : t_u8)=> *) +(* Build_t__u16_u16 (Core_Ops_Bit.Shr__f_shr (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shr_492915920 : Core_Ops_Bit.t_Shr ((t_u16)) ((t_u16)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_19__f_Output := t_u16; *) +(* Core_Ops_Bit.Shr_impl_19__f_shr := fun (self : t_u16) (other : t_u16)=> *) +(* Build_t__u16_u16 (Core_Ops_Bit.Shr__f_shr (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shr_668381950 : Core_Ops_Bit.t_Shr ((t_u16)) ((t_u32)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_20__f_Output := t_u16; *) +(* Core_Ops_Bit.Shr_impl_20__f_shr := fun (self : t_u16) (other : t_u32)=> *) +(* Build_t__u16_u16 (Core_Ops_Bit.Shr__f_shr (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shr_737796241 : Core_Ops_Bit.t_Shr ((t_u16)) ((t_u64)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_21__f_Output := t_u16; *) +(* Core_Ops_Bit.Shr_impl_21__f_shr := fun (self : t_u16) (other : t_u64)=> *) +(* Build_t__u16_u16 (Core_Ops_Bit.Shr__f_shr (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shr_274581485 : Core_Ops_Bit.t_Shr ((t_u16)) ((t_u128)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_22__f_Output := t_u16; *) +(* Core_Ops_Bit.Shr_impl_22__f_shr := fun (self : t_u16) (other : t_u128)=> *) +(* Build_t__u16_u16 (Core_Ops_Bit.Shr__f_shr (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shr_222839051 : Core_Ops_Bit.t_Shr ((t_u16)) ((t_usize)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_23__f_Output := t_u16; *) +(* Core_Ops_Bit.Shr_impl_23__f_shr := fun (self : t_u16) (other : t_usize)=> *) +(* Build_t__u16_u16 (Core_Ops_Bit.Shr__f_shr (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shr_309330251 : Core_Ops_Bit.t_Shr ((t_u32)) ((t_u8)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_24__f_Output := t_u32; *) +(* Core_Ops_Bit.Shr_impl_24__f_shr := fun (self : t_u32) (other : t_u8)=> *) +(* Build_t__u32_u32 (Core_Ops_Bit.Shr__f_shr (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shr_786249415 : Core_Ops_Bit.t_Shr ((t_u32)) ((t_u16)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_25__f_Output := t_u32; *) +(* Core_Ops_Bit.Shr_impl_25__f_shr := fun (self : t_u32) (other : t_u16)=> *) +(* Build_t__u32_u32 (Core_Ops_Bit.Shr__f_shr (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shr_424521487 : Core_Ops_Bit.t_Shr ((t_u32)) ((t_u32)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_26__f_Output := t_u32; *) +(* Core_Ops_Bit.Shr_impl_26__f_shr := fun (self : t_u32) (other : t_u32)=> *) +(* Build_t__u32_u32 (Core_Ops_Bit.Shr__f_shr (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shr_171434466 : Core_Ops_Bit.t_Shr ((t_u32)) ((t_u64)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_27__f_Output := t_u32; *) +(* Core_Ops_Bit.Shr_impl_27__f_shr := fun (self : t_u32) (other : t_u64)=> *) +(* Build_t__u32_u32 (Core_Ops_Bit.Shr__f_shr (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shr_334275505 : Core_Ops_Bit.t_Shr ((t_u32)) ((t_u128)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_28__f_Output := t_u32; *) +(* Core_Ops_Bit.Shr_impl_28__f_shr := fun (self : t_u32) (other : t_u128)=> *) +(* Build_t__u32_u32 (Core_Ops_Bit.Shr__f_shr (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shr_924047074 : Core_Ops_Bit.t_Shr ((t_u32)) ((t_usize)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_29__f_Output := t_u32; *) +(* Core_Ops_Bit.Shr_impl_29__f_shr := fun (self : t_u32) (other : t_usize)=> *) +(* Build_t__u32_u32 (Core_Ops_Bit.Shr__f_shr (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shr_184871209 : Core_Ops_Bit.t_Shr ((t_u64)) ((t_u8)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_30__f_Output := t_u64; *) +(* Core_Ops_Bit.Shr_impl_30__f_shr := fun (self : t_u64) (other : t_u8)=> *) +(* Build_t__u64_u64 (Core_Ops_Bit.Shr__f_shr (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shr_657280454 : Core_Ops_Bit.t_Shr ((t_u64)) ((t_u16)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_31__f_Output := t_u64; *) +(* Core_Ops_Bit.Shr_impl_31__f_shr := fun (self : t_u64) (other : t_u16)=> *) +(* Build_t__u64_u64 (Core_Ops_Bit.Shr__f_shr (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shr_669439990 : Core_Ops_Bit.t_Shr ((t_u64)) ((t_u32)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_32__f_Output := t_u64; *) +(* Core_Ops_Bit.Shr_impl_32__f_shr := fun (self : t_u64) (other : t_u32)=> *) +(* Build_t__u64_u64 (Core_Ops_Bit.Shr__f_shr (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shr_691158071 : Core_Ops_Bit.t_Shr ((t_u64)) ((t_u64)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_33__f_Output := t_u64; *) +(* Core_Ops_Bit.Shr_impl_33__f_shr := fun (self : t_u64) (other : t_u64)=> *) +(* Build_t__u64_u64 (Core_Ops_Bit.Shr__f_shr (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shr_14948994 : Core_Ops_Bit.t_Shr ((t_u64)) ((t_u128)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_34__f_Output := t_u64; *) +(* Core_Ops_Bit.Shr_impl_34__f_shr := fun (self : t_u64) (other : t_u128)=> *) +(* Build_t__u64_u64 (Core_Ops_Bit.Shr__f_shr (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shr_455206495 : Core_Ops_Bit.t_Shr ((t_u64)) ((t_usize)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_35__f_Output := t_u64; *) +(* Core_Ops_Bit.Shr_impl_35__f_shr := fun (self : t_u64) (other : t_usize)=> *) +(* Build_t__u64_u64 (Core_Ops_Bit.Shr__f_shr (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shr_564253207 : Core_Ops_Bit.t_Shr ((t_u128)) ((t_u8)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_36__f_Output := t_u128; *) +(* Core_Ops_Bit.Shr_impl_36__f_shr := fun (self : t_u128) (other : t_u8)=> *) +(* Build_t__u128_u128 (Core_Ops_Bit.Shr__f_shr (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shr_969630543 : Core_Ops_Bit.t_Shr ((t_u128)) ((t_u16)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_37__f_Output := t_u128; *) +(* Core_Ops_Bit.Shr_impl_37__f_shr := fun (self : t_u128) (other : t_u16)=> *) +(* Build_t__u128_u128 (Core_Ops_Bit.Shr__f_shr (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shr_232283601 : Core_Ops_Bit.t_Shr ((t_u128)) ((t_u32)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_38__f_Output := t_u128; *) +(* Core_Ops_Bit.Shr_impl_38__f_shr := fun (self : t_u128) (other : t_u32)=> *) +(* Build_t__u128_u128 (Core_Ops_Bit.Shr__f_shr (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shr_124085536 : Core_Ops_Bit.t_Shr ((t_u128)) ((t_u64)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_39__f_Output := t_u128; *) +(* Core_Ops_Bit.Shr_impl_39__f_shr := fun (self : t_u128) (other : t_u64)=> *) +(* Build_t__u128_u128 (Core_Ops_Bit.Shr__f_shr (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shr_100195117 : Core_Ops_Bit.t_Shr ((t_u128)) ((t_u128)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_40__f_Output := t_u128; *) +(* Core_Ops_Bit.Shr_impl_40__f_shr := fun (self : t_u128) (other : t_u128)=> *) +(* Build_t__u128_u128 (Core_Ops_Bit.Shr__f_shr (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shr_580295078 : Core_Ops_Bit.t_Shr ((t_u128)) ((t_usize)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_41__f_Output := t_u128; *) +(* Core_Ops_Bit.Shr_impl_41__f_shr := fun (self : t_u128) (other : t_usize)=> *) +(* Build_t__u128_u128 (Core_Ops_Bit.Shr__f_shr (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shr_743095260 : Core_Ops_Bit.t_Shr ((t_usize)) ((t_u8)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_42__f_Output := t_usize; *) +(* Core_Ops_Bit.Shr_impl_42__f_shr := fun (self : t_usize) (other : t_u8)=> *) +(* Build_t__usize_usize (Core_Ops_Bit.Shr__f_shr (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shr_533612490 : Core_Ops_Bit.t_Shr ((t_usize)) ((t_u16)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_43__f_Output := t_usize; *) +(* Core_Ops_Bit.Shr_impl_43__f_shr := fun (self : t_usize) (other : t_u16)=> *) +(* Build_t__usize_usize (Core_Ops_Bit.Shr__f_shr (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shr_813229059 : Core_Ops_Bit.t_Shr ((t_usize)) ((t_u32)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_44__f_Output := t_usize; *) +(* Core_Ops_Bit.Shr_impl_44__f_shr := fun (self : t_usize) (other : t_u32)=> *) +(* Build_t__usize_usize (Core_Ops_Bit.Shr__f_shr (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shr_263955907 : Core_Ops_Bit.t_Shr ((t_usize)) ((t_u64)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_45__f_Output := t_usize; *) +(* Core_Ops_Bit.Shr_impl_45__f_shr := fun (self : t_usize) (other : t_u64)=> *) +(* Build_t__usize_usize (Core_Ops_Bit.Shr__f_shr (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shr_922020569 : Core_Ops_Bit.t_Shr ((t_usize)) ((t_u128)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_46__f_Output := t_usize; *) +(* Core_Ops_Bit.Shr_impl_46__f_shr := fun (self : t_usize) (other : t_u128)=> *) +(* Build_t__usize_usize (Core_Ops_Bit.Shr__f_shr (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shr_503396695 : Core_Ops_Bit.t_Shr ((t_usize)) ((t_usize)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_47__f_Output := t_usize; *) +(* Core_Ops_Bit.Shr_impl_47__f_shr := fun (self : t_usize) (other : t_usize)=> *) +(* Build_t__usize_usize (Core_Ops_Bit.Shr__f_shr (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shr_121476011 : Core_Ops_Bit.t_Shr ((t_i8)) ((t_i8)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_48__f_Output := t_i8; *) +(* Core_Ops_Bit.Shr_impl_48__f_shr := fun (self : t_i8) (other : t_i8)=> *) +(* Build_t__i8_i8 (Core_Ops_Bit.Shr__f_shr (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shr_516848929 : Core_Ops_Bit.t_Shr ((t_i8)) ((t_i16)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_49__f_Output := t_i8; *) +(* Core_Ops_Bit.Shr_impl_49__f_shr := fun (self : t_i8) (other : t_i16)=> *) +(* Build_t__i8_i8 (Core_Ops_Bit.Shr__f_shr (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shr_784891982 : Core_Ops_Bit.t_Shr ((t_i8)) ((t_i32)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_50__f_Output := t_i8; *) +(* Core_Ops_Bit.Shr_impl_50__f_shr := fun (self : t_i8) (other : t_i32)=> *) +(* Build_t__i8_i8 (Core_Ops_Bit.Shr__f_shr (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shr_577800953 : Core_Ops_Bit.t_Shr ((t_i8)) ((t_i64)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_51__f_Output := t_i8; *) +(* Core_Ops_Bit.Shr_impl_51__f_shr := fun (self : t_i8) (other : t_i64)=> *) +(* Build_t__i8_i8 (Core_Ops_Bit.Shr__f_shr (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shr_565021556 : Core_Ops_Bit.t_Shr ((t_i8)) ((t_i128)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_52__f_Output := t_i8; *) +(* Core_Ops_Bit.Shr_impl_52__f_shr := fun (self : t_i8) (other : t_i128)=> *) +(* Build_t__i8_i8 (Core_Ops_Bit.Shr__f_shr (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shr_289749066 : Core_Ops_Bit.t_Shr ((t_i8)) ((t_isize)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_53__f_Output := t_i8; *) +(* Core_Ops_Bit.Shr_impl_53__f_shr := fun (self : t_i8) (other : t_isize)=> *) +(* Build_t__i8_i8 (Core_Ops_Bit.Shr__f_shr (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shr_344591291 : Core_Ops_Bit.t_Shr ((t_i16)) ((t_i8)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_54__f_Output := t_i16; *) +(* Core_Ops_Bit.Shr_impl_54__f_shr := fun (self : t_i16) (other : t_i8)=> *) +(* Build_t__i16_i16 (Core_Ops_Bit.Shr__f_shr (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shr_849637205 : Core_Ops_Bit.t_Shr ((t_i16)) ((t_i16)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_55__f_Output := t_i16; *) +(* Core_Ops_Bit.Shr_impl_55__f_shr := fun (self : t_i16) (other : t_i16)=> *) +(* Build_t__i16_i16 (Core_Ops_Bit.Shr__f_shr (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shr_705624838 : Core_Ops_Bit.t_Shr ((t_i16)) ((t_i32)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_56__f_Output := t_i16; *) +(* Core_Ops_Bit.Shr_impl_56__f_shr := fun (self : t_i16) (other : t_i32)=> *) +(* Build_t__i16_i16 (Core_Ops_Bit.Shr__f_shr (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shr_214389896 : Core_Ops_Bit.t_Shr ((t_i16)) ((t_i64)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_57__f_Output := t_i16; *) +(* Core_Ops_Bit.Shr_impl_57__f_shr := fun (self : t_i16) (other : t_i64)=> *) +(* Build_t__i16_i16 (Core_Ops_Bit.Shr__f_shr (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shr_336883057 : Core_Ops_Bit.t_Shr ((t_i16)) ((t_i128)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_58__f_Output := t_i16; *) +(* Core_Ops_Bit.Shr_impl_58__f_shr := fun (self : t_i16) (other : t_i128)=> *) +(* Build_t__i16_i16 (Core_Ops_Bit.Shr__f_shr (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shr_146711596 : Core_Ops_Bit.t_Shr ((t_i16)) ((t_isize)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_59__f_Output := t_i16; *) +(* Core_Ops_Bit.Shr_impl_59__f_shr := fun (self : t_i16) (other : t_isize)=> *) +(* Build_t__i16_i16 (Core_Ops_Bit.Shr__f_shr (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shr_1047625734 : Core_Ops_Bit.t_Shr ((t_i32)) ((t_i8)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_60__f_Output := t_i32; *) +(* Core_Ops_Bit.Shr_impl_60__f_shr := fun (self : t_i32) (other : t_i8)=> *) +(* Build_t__i32_i32 (Core_Ops_Bit.Shr__f_shr (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shr_510425851 : Core_Ops_Bit.t_Shr ((t_i32)) ((t_i16)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_61__f_Output := t_i32; *) +(* Core_Ops_Bit.Shr_impl_61__f_shr := fun (self : t_i32) (other : t_i16)=> *) +(* Build_t__i32_i32 (Core_Ops_Bit.Shr__f_shr (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shr_863756152 : Core_Ops_Bit.t_Shr ((t_i32)) ((t_i32)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_62__f_Output := t_i32; *) +(* Core_Ops_Bit.Shr_impl_62__f_shr := fun (self : t_i32) (other : t_i32)=> *) +(* Build_t__i32_i32 (Core_Ops_Bit.Shr__f_shr (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shr_949209119 : Core_Ops_Bit.t_Shr ((t_i32)) ((t_i64)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_63__f_Output := t_i32; *) +(* Core_Ops_Bit.Shr_impl_63__f_shr := fun (self : t_i32) (other : t_i64)=> *) +(* Build_t__i32_i32 (Core_Ops_Bit.Shr__f_shr (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shr_922072816 : Core_Ops_Bit.t_Shr ((t_i32)) ((t_i128)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_64__f_Output := t_i32; *) +(* Core_Ops_Bit.Shr_impl_64__f_shr := fun (self : t_i32) (other : t_i128)=> *) +(* Build_t__i32_i32 (Core_Ops_Bit.Shr__f_shr (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shr_752457877 : Core_Ops_Bit.t_Shr ((t_i32)) ((t_isize)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_65__f_Output := t_i32; *) +(* Core_Ops_Bit.Shr_impl_65__f_shr := fun (self : t_i32) (other : t_isize)=> *) +(* Build_t__i32_i32 (Core_Ops_Bit.Shr__f_shr (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shr_1006263577 : Core_Ops_Bit.t_Shr ((t_i64)) ((t_i8)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_66__f_Output := t_i64; *) +(* Core_Ops_Bit.Shr_impl_66__f_shr := fun (self : t_i64) (other : t_i8)=> *) +(* Build_t__i64_i64 (Core_Ops_Bit.Shr__f_shr (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shr_103862152 : Core_Ops_Bit.t_Shr ((t_i64)) ((t_i16)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_67__f_Output := t_i64; *) +(* Core_Ops_Bit.Shr_impl_67__f_shr := fun (self : t_i64) (other : t_i16)=> *) +(* Build_t__i64_i64 (Core_Ops_Bit.Shr__f_shr (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shr_400961368 : Core_Ops_Bit.t_Shr ((t_i64)) ((t_i32)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_68__f_Output := t_i64; *) +(* Core_Ops_Bit.Shr_impl_68__f_shr := fun (self : t_i64) (other : t_i32)=> *) +(* Build_t__i64_i64 (Core_Ops_Bit.Shr__f_shr (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shr_861775823 : Core_Ops_Bit.t_Shr ((t_i64)) ((t_i64)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_69__f_Output := t_i64; *) +(* Core_Ops_Bit.Shr_impl_69__f_shr := fun (self : t_i64) (other : t_i64)=> *) +(* Build_t__i64_i64 (Core_Ops_Bit.Shr__f_shr (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shr_452522790 : Core_Ops_Bit.t_Shr ((t_i64)) ((t_i128)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_70__f_Output := t_i64; *) +(* Core_Ops_Bit.Shr_impl_70__f_shr := fun (self : t_i64) (other : t_i128)=> *) +(* Build_t__i64_i64 (Core_Ops_Bit.Shr__f_shr (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shr_333354071 : Core_Ops_Bit.t_Shr ((t_i64)) ((t_isize)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_71__f_Output := t_i64; *) +(* Core_Ops_Bit.Shr_impl_71__f_shr := fun (self : t_i64) (other : t_isize)=> *) +(* Build_t__i64_i64 (Core_Ops_Bit.Shr__f_shr (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shr_432441345 : Core_Ops_Bit.t_Shr ((t_i128)) ((t_i8)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_72__f_Output := t_i128; *) +(* Core_Ops_Bit.Shr_impl_72__f_shr := fun (self : t_i128) (other : t_i8)=> *) +(* Build_t__i128_i128 (Core_Ops_Bit.Shr__f_shr (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shr_277615905 : Core_Ops_Bit.t_Shr ((t_i128)) ((t_i16)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_73__f_Output := t_i128; *) +(* Core_Ops_Bit.Shr_impl_73__f_shr := fun (self : t_i128) (other : t_i16)=> *) +(* Build_t__i128_i128 (Core_Ops_Bit.Shr__f_shr (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shr_915182570 : Core_Ops_Bit.t_Shr ((t_i128)) ((t_i32)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_74__f_Output := t_i128; *) +(* Core_Ops_Bit.Shr_impl_74__f_shr := fun (self : t_i128) (other : t_i32)=> *) +(* Build_t__i128_i128 (Core_Ops_Bit.Shr__f_shr (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shr_494774243 : Core_Ops_Bit.t_Shr ((t_i128)) ((t_i64)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_75__f_Output := t_i128; *) +(* Core_Ops_Bit.Shr_impl_75__f_shr := fun (self : t_i128) (other : t_i64)=> *) +(* Build_t__i128_i128 (Core_Ops_Bit.Shr__f_shr (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shr_805480385 : Core_Ops_Bit.t_Shr ((t_i128)) ((t_i128)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_76__f_Output := t_i128; *) +(* Core_Ops_Bit.Shr_impl_76__f_shr := fun (self : t_i128) (other : t_i128)=> *) +(* Build_t__i128_i128 (Core_Ops_Bit.Shr__f_shr (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shr_603049588 : Core_Ops_Bit.t_Shr ((t_i128)) ((t_isize)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_77__f_Output := t_i128; *) +(* Core_Ops_Bit.Shr_impl_77__f_shr := fun (self : t_i128) (other : t_isize)=> *) +(* Build_t__i128_i128 (Core_Ops_Bit.Shr__f_shr (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shr_568611886 : Core_Ops_Bit.t_Shr ((t_isize)) ((t_i8)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_78__f_Output := t_isize; *) +(* Core_Ops_Bit.Shr_impl_78__f_shr := fun (self : t_isize) (other : t_i8)=> *) +(* Build_t__isize_isize (Core_Ops_Bit.Shr__f_shr (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shr_586753068 : Core_Ops_Bit.t_Shr ((t_isize)) ((t_i16)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_79__f_Output := t_isize; *) +(* Core_Ops_Bit.Shr_impl_79__f_shr := fun (self : t_isize) (other : t_i16)=> *) +(* Build_t__isize_isize (Core_Ops_Bit.Shr__f_shr (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shr_546943333 : Core_Ops_Bit.t_Shr ((t_isize)) ((t_i32)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_80__f_Output := t_isize; *) +(* Core_Ops_Bit.Shr_impl_80__f_shr := fun (self : t_isize) (other : t_i32)=> *) +(* Build_t__isize_isize (Core_Ops_Bit.Shr__f_shr (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shr_279387927 : Core_Ops_Bit.t_Shr ((t_isize)) ((t_i64)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_81__f_Output := t_isize; *) +(* Core_Ops_Bit.Shr_impl_81__f_shr := fun (self : t_isize) (other : t_i64)=> *) +(* Build_t__isize_isize (Core_Ops_Bit.Shr__f_shr (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shr_1068345337 : Core_Ops_Bit.t_Shr ((t_isize)) ((t_i128)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_82__f_Output := t_isize; *) +(* Core_Ops_Bit.Shr_impl_82__f_shr := fun (self : t_isize) (other : t_i128)=> *) +(* Build_t__isize_isize (Core_Ops_Bit.Shr__f_shr (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shr_973059419 : Core_Ops_Bit.t_Shr ((t_isize)) ((t_isize)) := *) +(* { *) +(* Core_Ops_Bit.Shr_impl_83__f_Output := t_isize; *) +(* Core_Ops_Bit.Shr_impl_83__f_shr := fun (self : t_isize) (other : t_isize)=> *) +(* Build_t__isize_isize (Core_Ops_Bit.Shr__f_shr (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shl_1068004004 : Core_Ops_Bit.t_Shl ((t_u8)) ((t_u8)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_84__f_Output := t_u8; *) +(* Core_Ops_Bit.Shl_impl_84__f_shl := fun (self : t_u8) (other : t_u8)=> *) +(* Build_t__u8_u8 (Core_Ops_Bit.Shl__f_shl (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shl_901091219 : Core_Ops_Bit.t_Shl ((t_u8)) ((t_u16)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_85__f_Output := t_u8; *) +(* Core_Ops_Bit.Shl_impl_85__f_shl := fun (self : t_u8) (other : t_u16)=> *) +(* Build_t__u8_u8 (Core_Ops_Bit.Shl__f_shl (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shl_945857776 : Core_Ops_Bit.t_Shl ((t_u8)) ((t_u32)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_86__f_Output := t_u8; *) +(* Core_Ops_Bit.Shl_impl_86__f_shl := fun (self : t_u8) (other : t_u32)=> *) +(* Build_t__u8_u8 (Core_Ops_Bit.Shl__f_shl (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shl_664847313 : Core_Ops_Bit.t_Shl ((t_u8)) ((t_u64)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_87__f_Output := t_u8; *) +(* Core_Ops_Bit.Shl_impl_87__f_shl := fun (self : t_u8) (other : t_u64)=> *) +(* Build_t__u8_u8 (Core_Ops_Bit.Shl__f_shl (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shl_464846274 : Core_Ops_Bit.t_Shl ((t_u8)) ((t_u128)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_88__f_Output := t_u8; *) +(* Core_Ops_Bit.Shl_impl_88__f_shl := fun (self : t_u8) (other : t_u128)=> *) +(* Build_t__u8_u8 (Core_Ops_Bit.Shl__f_shl (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shl_878244808 : Core_Ops_Bit.t_Shl ((t_u8)) ((t_usize)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_89__f_Output := t_u8; *) +(* Core_Ops_Bit.Shl_impl_89__f_shl := fun (self : t_u8) (other : t_usize)=> *) +(* Build_t__u8_u8 (Core_Ops_Bit.Shl__f_shl (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shl_903453467 : Core_Ops_Bit.t_Shl ((t_u16)) ((t_u8)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_90__f_Output := t_u16; *) +(* Core_Ops_Bit.Shl_impl_90__f_shl := fun (self : t_u16) (other : t_u8)=> *) +(* Build_t__u16_u16 (Core_Ops_Bit.Shl__f_shl (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shl_436372147 : Core_Ops_Bit.t_Shl ((t_u16)) ((t_u16)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_91__f_Output := t_u16; *) +(* Core_Ops_Bit.Shl_impl_91__f_shl := fun (self : t_u16) (other : t_u16)=> *) +(* Build_t__u16_u16 (Core_Ops_Bit.Shl__f_shl (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shl_947839621 : Core_Ops_Bit.t_Shl ((t_u16)) ((t_u32)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_92__f_Output := t_u16; *) +(* Core_Ops_Bit.Shl_impl_92__f_shl := fun (self : t_u16) (other : t_u32)=> *) +(* Build_t__u16_u16 (Core_Ops_Bit.Shl__f_shl (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shl_628241268 : Core_Ops_Bit.t_Shl ((t_u16)) ((t_u64)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_93__f_Output := t_u16; *) +(* Core_Ops_Bit.Shl_impl_93__f_shl := fun (self : t_u16) (other : t_u64)=> *) +(* Build_t__u16_u16 (Core_Ops_Bit.Shl__f_shl (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shl_424385160 : Core_Ops_Bit.t_Shl ((t_u16)) ((t_u128)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_94__f_Output := t_u16; *) +(* Core_Ops_Bit.Shl_impl_94__f_shl := fun (self : t_u16) (other : t_u128)=> *) +(* Build_t__u16_u16 (Core_Ops_Bit.Shl__f_shl (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shl_323870545 : Core_Ops_Bit.t_Shl ((t_u16)) ((t_usize)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_95__f_Output := t_u16; *) +(* Core_Ops_Bit.Shl_impl_95__f_shl := fun (self : t_u16) (other : t_usize)=> *) +(* Build_t__u16_u16 (Core_Ops_Bit.Shl__f_shl (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shl_126393744 : Core_Ops_Bit.t_Shl ((t_u32)) ((t_u8)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_96__f_Output := t_u32; *) +(* Core_Ops_Bit.Shl_impl_96__f_shl := fun (self : t_u32) (other : t_u8)=> *) +(* Build_t__u32_u32 (Core_Ops_Bit.Shl__f_shl (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shl_656248550 : Core_Ops_Bit.t_Shl ((t_u32)) ((t_u16)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_97__f_Output := t_u32; *) +(* Core_Ops_Bit.Shl_impl_97__f_shl := fun (self : t_u32) (other : t_u16)=> *) +(* Build_t__u32_u32 (Core_Ops_Bit.Shl__f_shl (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shl_813195779 : Core_Ops_Bit.t_Shl ((t_u32)) ((t_u32)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_98__f_Output := t_u32; *) +(* Core_Ops_Bit.Shl_impl_98__f_shl := fun (self : t_u32) (other : t_u32)=> *) +(* Build_t__u32_u32 (Core_Ops_Bit.Shl__f_shl (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shl_204059698 : Core_Ops_Bit.t_Shl ((t_u32)) ((t_u64)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_99__f_Output := t_u32; *) +(* Core_Ops_Bit.Shl_impl_99__f_shl := fun (self : t_u32) (other : t_u64)=> *) +(* Build_t__u32_u32 (Core_Ops_Bit.Shl__f_shl (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shl_879986569 : Core_Ops_Bit.t_Shl ((t_u32)) ((t_u128)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_100__f_Output := t_u32; *) +(* Core_Ops_Bit.Shl_impl_100__f_shl := fun (self : t_u32) (other : t_u128)=> *) +(* Build_t__u32_u32 (Core_Ops_Bit.Shl__f_shl (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shl_833700927 : Core_Ops_Bit.t_Shl ((t_u32)) ((t_usize)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_101__f_Output := t_u32; *) +(* Core_Ops_Bit.Shl_impl_101__f_shl := fun (self : t_u32) (other : t_usize)=> *) +(* Build_t__u32_u32 (Core_Ops_Bit.Shl__f_shl (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shl_275505642 : Core_Ops_Bit.t_Shl ((t_u64)) ((t_u8)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_102__f_Output := t_u64; *) +(* Core_Ops_Bit.Shl_impl_102__f_shl := fun (self : t_u64) (other : t_u8)=> *) +(* Build_t__u64_u64 (Core_Ops_Bit.Shl__f_shl (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shl_647895438 : Core_Ops_Bit.t_Shl ((t_u64)) ((t_u16)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_103__f_Output := t_u64; *) +(* Core_Ops_Bit.Shl_impl_103__f_shl := fun (self : t_u64) (other : t_u16)=> *) +(* Build_t__u64_u64 (Core_Ops_Bit.Shl__f_shl (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shl_477979243 : Core_Ops_Bit.t_Shl ((t_u64)) ((t_u32)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_104__f_Output := t_u64; *) +(* Core_Ops_Bit.Shl_impl_104__f_shl := fun (self : t_u64) (other : t_u32)=> *) +(* Build_t__u64_u64 (Core_Ops_Bit.Shl__f_shl (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shl_410861524 : Core_Ops_Bit.t_Shl ((t_u64)) ((t_u64)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_105__f_Output := t_u64; *) +(* Core_Ops_Bit.Shl_impl_105__f_shl := fun (self : t_u64) (other : t_u64)=> *) +(* Build_t__u64_u64 (Core_Ops_Bit.Shl__f_shl (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shl_552094963 : Core_Ops_Bit.t_Shl ((t_u64)) ((t_u128)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_106__f_Output := t_u64; *) +(* Core_Ops_Bit.Shl_impl_106__f_shl := fun (self : t_u64) (other : t_u128)=> *) +(* Build_t__u64_u64 (Core_Ops_Bit.Shl__f_shl (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shl_149556751 : Core_Ops_Bit.t_Shl ((t_u64)) ((t_usize)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_107__f_Output := t_u64; *) +(* Core_Ops_Bit.Shl_impl_107__f_shl := fun (self : t_u64) (other : t_usize)=> *) +(* Build_t__u64_u64 (Core_Ops_Bit.Shl__f_shl (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shl_304665212 : Core_Ops_Bit.t_Shl ((t_u128)) ((t_u8)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_108__f_Output := t_u128; *) +(* Core_Ops_Bit.Shl_impl_108__f_shl := fun (self : t_u128) (other : t_u8)=> *) +(* Build_t__u128_u128 (Core_Ops_Bit.Shl__f_shl (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shl_472905058 : Core_Ops_Bit.t_Shl ((t_u128)) ((t_u16)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_109__f_Output := t_u128; *) +(* Core_Ops_Bit.Shl_impl_109__f_shl := fun (self : t_u128) (other : t_u16)=> *) +(* Build_t__u128_u128 (Core_Ops_Bit.Shl__f_shl (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shl_428941264 : Core_Ops_Bit.t_Shl ((t_u128)) ((t_u32)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_110__f_Output := t_u128; *) +(* Core_Ops_Bit.Shl_impl_110__f_shl := fun (self : t_u128) (other : t_u32)=> *) +(* Build_t__u128_u128 (Core_Ops_Bit.Shl__f_shl (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shl_914780398 : Core_Ops_Bit.t_Shl ((t_u128)) ((t_u64)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_111__f_Output := t_u128; *) +(* Core_Ops_Bit.Shl_impl_111__f_shl := fun (self : t_u128) (other : t_u64)=> *) +(* Build_t__u128_u128 (Core_Ops_Bit.Shl__f_shl (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shl_430239094 : Core_Ops_Bit.t_Shl ((t_u128)) ((t_u128)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_112__f_Output := t_u128; *) +(* Core_Ops_Bit.Shl_impl_112__f_shl := fun (self : t_u128) (other : t_u128)=> *) +(* Build_t__u128_u128 (Core_Ops_Bit.Shl__f_shl (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shl_741881122 : Core_Ops_Bit.t_Shl ((t_u128)) ((t_usize)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_113__f_Output := t_u128; *) +(* Core_Ops_Bit.Shl_impl_113__f_shl := fun (self : t_u128) (other : t_usize)=> *) +(* Build_t__u128_u128 (Core_Ops_Bit.Shl__f_shl (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shl_562088992 : Core_Ops_Bit.t_Shl ((t_usize)) ((t_u8)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_114__f_Output := t_usize; *) +(* Core_Ops_Bit.Shl_impl_114__f_shl := fun (self : t_usize) (other : t_u8)=> *) +(* Build_t__usize_usize (Core_Ops_Bit.Shl__f_shl (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shl_513485474 : Core_Ops_Bit.t_Shl ((t_usize)) ((t_u16)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_115__f_Output := t_usize; *) +(* Core_Ops_Bit.Shl_impl_115__f_shl := fun (self : t_usize) (other : t_u16)=> *) +(* Build_t__usize_usize (Core_Ops_Bit.Shl__f_shl (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shl_377785849 : Core_Ops_Bit.t_Shl ((t_usize)) ((t_u32)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_116__f_Output := t_usize; *) +(* Core_Ops_Bit.Shl_impl_116__f_shl := fun (self : t_usize) (other : t_u32)=> *) +(* Build_t__usize_usize (Core_Ops_Bit.Shl__f_shl (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shl_812786829 : Core_Ops_Bit.t_Shl ((t_usize)) ((t_u64)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_117__f_Output := t_usize; *) +(* Core_Ops_Bit.Shl_impl_117__f_shl := fun (self : t_usize) (other : t_u64)=> *) +(* Build_t__usize_usize (Core_Ops_Bit.Shl__f_shl (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shl_995341886 : Core_Ops_Bit.t_Shl ((t_usize)) ((t_u128)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_118__f_Output := t_usize; *) +(* Core_Ops_Bit.Shl_impl_118__f_shl := fun (self : t_usize) (other : t_u128)=> *) +(* Build_t__usize_usize (Core_Ops_Bit.Shl__f_shl (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shl_175679910 : Core_Ops_Bit.t_Shl ((t_usize)) ((t_usize)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_119__f_Output := t_usize; *) +(* Core_Ops_Bit.Shl_impl_119__f_shl := fun (self : t_usize) (other : t_usize)=> *) +(* Build_t__usize_usize (Core_Ops_Bit.Shl__f_shl (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shl_226835388 : Core_Ops_Bit.t_Shl ((t_i8)) ((t_i8)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_120__f_Output := t_i8; *) +(* Core_Ops_Bit.Shl_impl_120__f_shl := fun (self : t_i8) (other : t_i8)=> *) +(* Build_t__i8_i8 (Core_Ops_Bit.Shl__f_shl (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shl_952919099 : Core_Ops_Bit.t_Shl ((t_i8)) ((t_i16)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_121__f_Output := t_i8; *) +(* Core_Ops_Bit.Shl_impl_121__f_shl := fun (self : t_i8) (other : t_i16)=> *) +(* Build_t__i8_i8 (Core_Ops_Bit.Shl__f_shl (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shl_112318712 : Core_Ops_Bit.t_Shl ((t_i8)) ((t_i32)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_122__f_Output := t_i8; *) +(* Core_Ops_Bit.Shl_impl_122__f_shl := fun (self : t_i8) (other : t_i32)=> *) +(* Build_t__i8_i8 (Core_Ops_Bit.Shl__f_shl (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shl_525874705 : Core_Ops_Bit.t_Shl ((t_i8)) ((t_i64)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_123__f_Output := t_i8; *) +(* Core_Ops_Bit.Shl_impl_123__f_shl := fun (self : t_i8) (other : t_i64)=> *) +(* Build_t__i8_i8 (Core_Ops_Bit.Shl__f_shl (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shl_961481736 : Core_Ops_Bit.t_Shl ((t_i8)) ((t_i128)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_124__f_Output := t_i8; *) +(* Core_Ops_Bit.Shl_impl_124__f_shl := fun (self : t_i8) (other : t_i128)=> *) +(* Build_t__i8_i8 (Core_Ops_Bit.Shl__f_shl (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shl_439453927 : Core_Ops_Bit.t_Shl ((t_i8)) ((t_isize)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_125__f_Output := t_i8; *) +(* Core_Ops_Bit.Shl_impl_125__f_shl := fun (self : t_i8) (other : t_isize)=> *) +(* Build_t__i8_i8 (Core_Ops_Bit.Shl__f_shl (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shl_592433891 : Core_Ops_Bit.t_Shl ((t_i16)) ((t_i8)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_126__f_Output := t_i16; *) +(* Core_Ops_Bit.Shl_impl_126__f_shl := fun (self : t_i16) (other : t_i8)=> *) +(* Build_t__i16_i16 (Core_Ops_Bit.Shl__f_shl (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shl_641723100 : Core_Ops_Bit.t_Shl ((t_i16)) ((t_i16)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_127__f_Output := t_i16; *) +(* Core_Ops_Bit.Shl_impl_127__f_shl := fun (self : t_i16) (other : t_i16)=> *) +(* Build_t__i16_i16 (Core_Ops_Bit.Shl__f_shl (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shl_327062664 : Core_Ops_Bit.t_Shl ((t_i16)) ((t_i32)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_128__f_Output := t_i16; *) +(* Core_Ops_Bit.Shl_impl_128__f_shl := fun (self : t_i16) (other : t_i32)=> *) +(* Build_t__i16_i16 (Core_Ops_Bit.Shl__f_shl (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shl_48655345 : Core_Ops_Bit.t_Shl ((t_i16)) ((t_i64)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_129__f_Output := t_i16; *) +(* Core_Ops_Bit.Shl_impl_129__f_shl := fun (self : t_i16) (other : t_i64)=> *) +(* Build_t__i16_i16 (Core_Ops_Bit.Shl__f_shl (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shl_1027629694 : Core_Ops_Bit.t_Shl ((t_i16)) ((t_i128)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_130__f_Output := t_i16; *) +(* Core_Ops_Bit.Shl_impl_130__f_shl := fun (self : t_i16) (other : t_i128)=> *) +(* Build_t__i16_i16 (Core_Ops_Bit.Shl__f_shl (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shl_732630181 : Core_Ops_Bit.t_Shl ((t_i16)) ((t_isize)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_131__f_Output := t_i16; *) +(* Core_Ops_Bit.Shl_impl_131__f_shl := fun (self : t_i16) (other : t_isize)=> *) +(* Build_t__i16_i16 (Core_Ops_Bit.Shl__f_shl (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shl_798117292 : Core_Ops_Bit.t_Shl ((t_i32)) ((t_i8)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_132__f_Output := t_i32; *) +(* Core_Ops_Bit.Shl_impl_132__f_shl := fun (self : t_i32) (other : t_i8)=> *) +(* Build_t__i32_i32 (Core_Ops_Bit.Shl__f_shl (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shl_119978092 : Core_Ops_Bit.t_Shl ((t_i32)) ((t_i16)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_133__f_Output := t_i32; *) +(* Core_Ops_Bit.Shl_impl_133__f_shl := fun (self : t_i32) (other : t_i16)=> *) +(* Build_t__i32_i32 (Core_Ops_Bit.Shl__f_shl (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shl_915848064 : Core_Ops_Bit.t_Shl ((t_i32)) ((t_i32)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_134__f_Output := t_i32; *) +(* Core_Ops_Bit.Shl_impl_134__f_shl := fun (self : t_i32) (other : t_i32)=> *) +(* Build_t__i32_i32 (Core_Ops_Bit.Shl__f_shl (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shl_1048573970 : Core_Ops_Bit.t_Shl ((t_i32)) ((t_i64)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_135__f_Output := t_i32; *) +(* Core_Ops_Bit.Shl_impl_135__f_shl := fun (self : t_i32) (other : t_i64)=> *) +(* Build_t__i32_i32 (Core_Ops_Bit.Shl__f_shl (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shl_187893644 : Core_Ops_Bit.t_Shl ((t_i32)) ((t_i128)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_136__f_Output := t_i32; *) +(* Core_Ops_Bit.Shl_impl_136__f_shl := fun (self : t_i32) (other : t_i128)=> *) +(* Build_t__i32_i32 (Core_Ops_Bit.Shl__f_shl (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shl_388905415 : Core_Ops_Bit.t_Shl ((t_i32)) ((t_isize)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_137__f_Output := t_i32; *) +(* Core_Ops_Bit.Shl_impl_137__f_shl := fun (self : t_i32) (other : t_isize)=> *) +(* Build_t__i32_i32 (Core_Ops_Bit.Shl__f_shl (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shl_125319009 : Core_Ops_Bit.t_Shl ((t_i64)) ((t_i8)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_138__f_Output := t_i64; *) +(* Core_Ops_Bit.Shl_impl_138__f_shl := fun (self : t_i64) (other : t_i8)=> *) +(* Build_t__i64_i64 (Core_Ops_Bit.Shl__f_shl (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shl_922264754 : Core_Ops_Bit.t_Shl ((t_i64)) ((t_i16)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_139__f_Output := t_i64; *) +(* Core_Ops_Bit.Shl_impl_139__f_shl := fun (self : t_i64) (other : t_i16)=> *) +(* Build_t__i64_i64 (Core_Ops_Bit.Shl__f_shl (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shl_653885117 : Core_Ops_Bit.t_Shl ((t_i64)) ((t_i32)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_140__f_Output := t_i64; *) +(* Core_Ops_Bit.Shl_impl_140__f_shl := fun (self : t_i64) (other : t_i32)=> *) +(* Build_t__i64_i64 (Core_Ops_Bit.Shl__f_shl (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shl_458184648 : Core_Ops_Bit.t_Shl ((t_i64)) ((t_i64)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_141__f_Output := t_i64; *) +(* Core_Ops_Bit.Shl_impl_141__f_shl := fun (self : t_i64) (other : t_i64)=> *) +(* Build_t__i64_i64 (Core_Ops_Bit.Shl__f_shl (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shl_964774841 : Core_Ops_Bit.t_Shl ((t_i64)) ((t_i128)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_142__f_Output := t_i64; *) +(* Core_Ops_Bit.Shl_impl_142__f_shl := fun (self : t_i64) (other : t_i128)=> *) +(* Build_t__i64_i64 (Core_Ops_Bit.Shl__f_shl (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shl_530100514 : Core_Ops_Bit.t_Shl ((t_i64)) ((t_isize)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_143__f_Output := t_i64; *) +(* Core_Ops_Bit.Shl_impl_143__f_shl := fun (self : t_i64) (other : t_isize)=> *) +(* Build_t__i64_i64 (Core_Ops_Bit.Shl__f_shl (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shl_878351801 : Core_Ops_Bit.t_Shl ((t_i128)) ((t_i8)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_144__f_Output := t_i128; *) +(* Core_Ops_Bit.Shl_impl_144__f_shl := fun (self : t_i128) (other : t_i8)=> *) +(* Build_t__i128_i128 (Core_Ops_Bit.Shl__f_shl (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shl_263500228 : Core_Ops_Bit.t_Shl ((t_i128)) ((t_i16)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_145__f_Output := t_i128; *) +(* Core_Ops_Bit.Shl_impl_145__f_shl := fun (self : t_i128) (other : t_i16)=> *) +(* Build_t__i128_i128 (Core_Ops_Bit.Shl__f_shl (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shl_321265820 : Core_Ops_Bit.t_Shl ((t_i128)) ((t_i32)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_146__f_Output := t_i128; *) +(* Core_Ops_Bit.Shl_impl_146__f_shl := fun (self : t_i128) (other : t_i32)=> *) +(* Build_t__i128_i128 (Core_Ops_Bit.Shl__f_shl (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shl_637380912 : Core_Ops_Bit.t_Shl ((t_i128)) ((t_i64)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_147__f_Output := t_i128; *) +(* Core_Ops_Bit.Shl_impl_147__f_shl := fun (self : t_i128) (other : t_i64)=> *) +(* Build_t__i128_i128 (Core_Ops_Bit.Shl__f_shl (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shl_1027887542 : Core_Ops_Bit.t_Shl ((t_i128)) ((t_i128)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_148__f_Output := t_i128; *) +(* Core_Ops_Bit.Shl_impl_148__f_shl := fun (self : t_i128) (other : t_i128)=> *) +(* Build_t__i128_i128 (Core_Ops_Bit.Shl__f_shl (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shl_937161025 : Core_Ops_Bit.t_Shl ((t_i128)) ((t_isize)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_149__f_Output := t_i128; *) +(* Core_Ops_Bit.Shl_impl_149__f_shl := fun (self : t_i128) (other : t_isize)=> *) +(* Build_t__i128_i128 (Core_Ops_Bit.Shl__f_shl (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shl_755078895 : Core_Ops_Bit.t_Shl ((t_isize)) ((t_i8)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_150__f_Output := t_isize; *) +(* Core_Ops_Bit.Shl_impl_150__f_shl := fun (self : t_isize) (other : t_i8)=> *) +(* Build_t__isize_isize (Core_Ops_Bit.Shl__f_shl (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shl_176396665 : Core_Ops_Bit.t_Shl ((t_isize)) ((t_i16)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_151__f_Output := t_isize; *) +(* Core_Ops_Bit.Shl_impl_151__f_shl := fun (self : t_isize) (other : t_i16)=> *) +(* Build_t__isize_isize (Core_Ops_Bit.Shl__f_shl (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shl_155364696 : Core_Ops_Bit.t_Shl ((t_isize)) ((t_i32)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_152__f_Output := t_isize; *) +(* Core_Ops_Bit.Shl_impl_152__f_shl := fun (self : t_isize) (other : t_i32)=> *) +(* Build_t__isize_isize (Core_Ops_Bit.Shl__f_shl (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shl_388376431 : Core_Ops_Bit.t_Shl ((t_isize)) ((t_i64)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_153__f_Output := t_isize; *) +(* Core_Ops_Bit.Shl_impl_153__f_shl := fun (self : t_isize) (other : t_i64)=> *) +(* Build_t__isize_isize (Core_Ops_Bit.Shl__f_shl (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shl_23991972 : Core_Ops_Bit.t_Shl ((t_isize)) ((t_i128)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_154__f_Output := t_isize; *) +(* Core_Ops_Bit.Shl_impl_154__f_shl := fun (self : t_isize) (other : t_i128)=> *) +(* Build_t__isize_isize (Core_Ops_Bit.Shl__f_shl (0 self) (0 other)); *) +(* }. *) + +(* Instance t_Shl_29513465 : Core_Ops_Bit.t_Shl ((t_isize)) ((t_isize)) := *) +(* { *) +(* Core_Ops_Bit.Shl_impl_155__f_Output := t_isize; *) +(* Core_Ops_Bit.Shl_impl_155__f_shl := fun (self : t_isize) (other : t_isize)=> *) +(* Build_t__isize_isize (Core_Ops_Bit.Shl__f_shl (0 self) (0 other)); *) +(* }. *) + +(* Instance t_BitOr_1040853946 : Core_Ops_Bit.t_BitOr ((t_u8)) ((t_u8)) := *) +(* { *) +(* Core_Ops_Bit.BitOr_impl_156__f_Output := t_u8; *) +(* Core_Ops_Bit.BitOr_impl_156__f_bitor := fun (self : t_u8) (other : t_u8)=> *) +(* Build_t__u8_u8 (Core_Ops_Bit.BitOr__f_bitor (0 self) (0 other)); *) +(* }. *) + +(* Instance t_BitOr_321969851 : Core_Ops_Bit.t_BitOr ((t_u16)) ((t_u16)) := *) +(* { *) +(* Core_Ops_Bit.BitOr_impl_157__f_Output := t_u16; *) +(* Core_Ops_Bit.BitOr_impl_157__f_bitor := fun (self : t_u16) (other : t_u16)=> *) +(* Build_t__u16_u16 (Core_Ops_Bit.BitOr__f_bitor (0 self) (0 other)); *) +(* }. *) + +(* Instance t_BitOr_351603536 : Core_Ops_Bit.t_BitOr ((t_u32)) ((t_u32)) := *) +(* { *) +(* Core_Ops_Bit.BitOr_impl_158__f_Output := t_u32; *) +(* Core_Ops_Bit.BitOr_impl_158__f_bitor := fun (self : t_u32) (other : t_u32)=> *) +(* Build_t__u32_u32 (Core_Ops_Bit.BitOr__f_bitor (0 self) (0 other)); *) +(* }. *) + +(* Instance t_BitOr_622284079 : Core_Ops_Bit.t_BitOr ((t_u64)) ((t_u64)) := *) +(* { *) +(* Core_Ops_Bit.BitOr_impl_159__f_Output := t_u64; *) +(* Core_Ops_Bit.BitOr_impl_159__f_bitor := fun (self : t_u64) (other : t_u64)=> *) +(* Build_t__u64_u64 (Core_Ops_Bit.BitOr__f_bitor (0 self) (0 other)); *) +(* }. *) + +(* Instance t_BitOr_489814492 : Core_Ops_Bit.t_BitOr ((t_u128)) ((t_u128)) := *) +(* { *) +(* Core_Ops_Bit.BitOr_impl_160__f_Output := t_u128; *) +(* Core_Ops_Bit.BitOr_impl_160__f_bitor := fun (self : t_u128) (other : t_u128)=> *) +(* Build_t__u128_u128 (Core_Ops_Bit.BitOr__f_bitor (0 self) (0 other)); *) +(* }. *) + +(* Instance t_BitOr_32215878 : Core_Ops_Bit.t_BitOr ((t_usize)) ((t_usize)) := *) +(* { *) +(* Core_Ops_Bit.BitOr_impl_161__f_Output := t_usize; *) +(* Core_Ops_Bit.BitOr_impl_161__f_bitor := fun (self : t_usize) (other : t_usize)=> *) +(* Build_t__usize_usize (Core_Ops_Bit.BitOr__f_bitor (0 self) (0 other)); *) +(* }. *) + +(* Instance t_BitOr_1041756998 : Core_Ops_Bit.t_BitOr ((t_i8)) ((t_i8)) := *) +(* { *) +(* Core_Ops_Bit.BitOr_impl_162__f_Output := t_i8; *) +(* Core_Ops_Bit.BitOr_impl_162__f_bitor := fun (self : t_i8) (other : t_i8)=> *) +(* Build_t__i8_i8 (Core_Ops_Bit.BitOr__f_bitor (0 self) (0 other)); *) +(* }. *) + +(* Instance t_BitOr_956932383 : Core_Ops_Bit.t_BitOr ((t_i16)) ((t_i16)) := *) +(* { *) +(* Core_Ops_Bit.BitOr_impl_163__f_Output := t_i16; *) +(* Core_Ops_Bit.BitOr_impl_163__f_bitor := fun (self : t_i16) (other : t_i16)=> *) +(* Build_t__i16_i16 (Core_Ops_Bit.BitOr__f_bitor (0 self) (0 other)); *) +(* }. *) + +(* Instance t_BitOr_594344031 : Core_Ops_Bit.t_BitOr ((t_i32)) ((t_i32)) := *) +(* { *) +(* Core_Ops_Bit.BitOr_impl_164__f_Output := t_i32; *) +(* Core_Ops_Bit.BitOr_impl_164__f_bitor := fun (self : t_i32) (other : t_i32)=> *) +(* Build_t__i32_i32 (Core_Ops_Bit.BitOr__f_bitor (0 self) (0 other)); *) +(* }. *) + +(* Instance t_BitOr_116125306 : Core_Ops_Bit.t_BitOr ((t_i64)) ((t_i64)) := *) +(* { *) +(* Core_Ops_Bit.BitOr_impl_165__f_Output := t_i64; *) +(* Core_Ops_Bit.BitOr_impl_165__f_bitor := fun (self : t_i64) (other : t_i64)=> *) +(* Build_t__i64_i64 (Core_Ops_Bit.BitOr__f_bitor (0 self) (0 other)); *) +(* }. *) + +(* Instance t_BitOr_38608744 : Core_Ops_Bit.t_BitOr ((t_i128)) ((t_i128)) := *) +(* { *) +(* Core_Ops_Bit.BitOr_impl_166__f_Output := t_i128; *) +(* Core_Ops_Bit.BitOr_impl_166__f_bitor := fun (self : t_i128) (other : t_i128)=> *) +(* Build_t__i128_i128 (Core_Ops_Bit.BitOr__f_bitor (0 self) (0 other)); *) +(* }. *) + +(* Instance t_BitOr_1042217209 : Core_Ops_Bit.t_BitOr ((t_isize)) ((t_isize)) := *) +(* { *) +(* Core_Ops_Bit.BitOr_impl_167__f_Output := t_isize; *) +(* Core_Ops_Bit.BitOr_impl_167__f_bitor := fun (self : t_isize) (other : t_isize)=> *) +(* Build_t__isize_isize (Core_Ops_Bit.BitOr__f_bitor (0 self) (0 other)); *) +(* }. *) + +(* Instance t_BitXor_386756822 : Core_Ops_Bit.t_BitXor ((t_u8)) ((t_u8)) := *) +(* { *) +(* Core_Ops_Bit.BitXor_impl_168__f_Output := t_u8; *) +(* Core_Ops_Bit.BitXor_impl_168__f_bitxor := fun (self : t_u8) (other : t_u8)=> *) +(* Build_t__u8_u8 (Core_Ops_Bit.BitXor__f_bitxor (0 self) (0 other)); *) +(* }. *) + +(* Instance t_BitXor_821701514 : Core_Ops_Bit.t_BitXor ((t_u16)) ((t_u16)) := *) +(* { *) +(* Core_Ops_Bit.BitXor_impl_169__f_Output := t_u16; *) +(* Core_Ops_Bit.BitXor_impl_169__f_bitxor := fun (self : t_u16) (other : t_u16)=> *) +(* Build_t__u16_u16 (Core_Ops_Bit.BitXor__f_bitxor (0 self) (0 other)); *) +(* }. *) + +(* Instance t_BitXor_291279090 : Core_Ops_Bit.t_BitXor ((t_u32)) ((t_u32)) := *) +(* { *) +(* Core_Ops_Bit.BitXor_impl_170__f_Output := t_u32; *) +(* Core_Ops_Bit.BitXor_impl_170__f_bitxor := fun (self : t_u32) (other : t_u32)=> *) +(* Build_t__u32_u32 (Core_Ops_Bit.BitXor__f_bitxor (0 self) (0 other)); *) +(* }. *) + +(* Instance t_BitXor_491195719 : Core_Ops_Bit.t_BitXor ((t_u64)) ((t_u64)) := *) +(* { *) +(* Core_Ops_Bit.BitXor_impl_171__f_Output := t_u64; *) +(* Core_Ops_Bit.BitXor_impl_171__f_bitxor := fun (self : t_u64) (other : t_u64)=> *) +(* Build_t__u64_u64 (Core_Ops_Bit.BitXor__f_bitxor (0 self) (0 other)); *) +(* }. *) + +(* Instance t_BitXor_1062952053 : Core_Ops_Bit.t_BitXor ((t_u128)) ((t_u128)) := *) +(* { *) +(* Core_Ops_Bit.BitXor_impl_172__f_Output := t_u128; *) +(* Core_Ops_Bit.BitXor_impl_172__f_bitxor := fun (self : t_u128) (other : t_u128)=> *) +(* Build_t__u128_u128 (Core_Ops_Bit.BitXor__f_bitxor (0 self) (0 other)); *) +(* }. *) + +(* Instance t_BitXor_578664073 : Core_Ops_Bit.t_BitXor ((t_usize)) ((t_usize)) := *) +(* { *) +(* Core_Ops_Bit.BitXor_impl_173__f_Output := t_usize; *) +(* Core_Ops_Bit.BitXor_impl_173__f_bitxor := fun (self : t_usize) (other : t_usize)=> *) +(* Build_t__usize_usize (Core_Ops_Bit.BitXor__f_bitxor (0 self) (0 other)); *) +(* }. *) + +(* Instance t_BitXor_10634863 : Core_Ops_Bit.t_BitXor ((t_i8)) ((t_i8)) := *) +(* { *) +(* Core_Ops_Bit.BitXor_impl_174__f_Output := t_i8; *) +(* Core_Ops_Bit.BitXor_impl_174__f_bitxor := fun (self : t_i8) (other : t_i8)=> *) +(* Build_t__i8_i8 (Core_Ops_Bit.BitXor__f_bitxor (0 self) (0 other)); *) +(* }. *) + +(* Instance t_BitXor_17374705 : Core_Ops_Bit.t_BitXor ((t_i16)) ((t_i16)) := *) +(* { *) +(* Core_Ops_Bit.BitXor_impl_175__f_Output := t_i16; *) +(* Core_Ops_Bit.BitXor_impl_175__f_bitxor := fun (self : t_i16) (other : t_i16)=> *) +(* Build_t__i16_i16 (Core_Ops_Bit.BitXor__f_bitxor (0 self) (0 other)); *) +(* }. *) + +(* Instance t_BitXor_540719776 : Core_Ops_Bit.t_BitXor ((t_i32)) ((t_i32)) := *) +(* { *) +(* Core_Ops_Bit.BitXor_impl_176__f_Output := t_i32; *) +(* Core_Ops_Bit.BitXor_impl_176__f_bitxor := fun (self : t_i32) (other : t_i32)=> *) +(* Build_t__i32_i32 (Core_Ops_Bit.BitXor__f_bitxor (0 self) (0 other)); *) +(* }. *) + +(* Instance t_BitXor_364228620 : Core_Ops_Bit.t_BitXor ((t_i64)) ((t_i64)) := *) +(* { *) +(* Core_Ops_Bit.BitXor_impl_177__f_Output := t_i64; *) +(* Core_Ops_Bit.BitXor_impl_177__f_bitxor := fun (self : t_i64) (other : t_i64)=> *) +(* Build_t__i64_i64 (Core_Ops_Bit.BitXor__f_bitxor (0 self) (0 other)); *) +(* }. *) + +(* Instance t_BitXor_1046651040 : Core_Ops_Bit.t_BitXor ((t_i128)) ((t_i128)) := *) +(* { *) +(* Core_Ops_Bit.BitXor_impl_178__f_Output := t_i128; *) +(* Core_Ops_Bit.BitXor_impl_178__f_bitxor := fun (self : t_i128) (other : t_i128)=> *) +(* Build_t__i128_i128 (Core_Ops_Bit.BitXor__f_bitxor (0 self) (0 other)); *) +(* }. *) + +(* Instance t_BitXor_882768112 : Core_Ops_Bit.t_BitXor ((t_isize)) ((t_isize)) := *) +(* { *) +(* Core_Ops_Bit.BitXor_impl_179__f_Output := t_isize; *) +(* Core_Ops_Bit.BitXor_impl_179__f_bitxor := fun (self : t_isize) (other : t_isize)=> *) +(* Build_t__isize_isize (Core_Ops_Bit.BitXor__f_bitxor (0 self) (0 other)); *) +(* }. *) + +(* Instance t_BitAnd_808417265 : Core_Ops_Bit.t_BitAnd ((t_u8)) ((t_u8)) := *) +(* { *) +(* Core_Ops_Bit.BitAnd_impl_180__f_Output := t_u8; *) +(* Core_Ops_Bit.BitAnd_impl_180__f_bitand := fun (self : t_u8) (other : t_u8)=> *) +(* Build_t__u8_u8 (Core_Ops_Bit.BitAnd__f_bitand (0 self) (0 other)); *) +(* }. *) + +(* Instance t_BitAnd_497524034 : Core_Ops_Bit.t_BitAnd ((t_u16)) ((t_u16)) := *) +(* { *) +(* Core_Ops_Bit.BitAnd_impl_181__f_Output := t_u16; *) +(* Core_Ops_Bit.BitAnd_impl_181__f_bitand := fun (self : t_u16) (other : t_u16)=> *) +(* Build_t__u16_u16 (Core_Ops_Bit.BitAnd__f_bitand (0 self) (0 other)); *) +(* }. *) + +(* Instance t_BitAnd_369920328 : Core_Ops_Bit.t_BitAnd ((t_u32)) ((t_u32)) := *) +(* { *) +(* Core_Ops_Bit.BitAnd_impl_182__f_Output := t_u32; *) +(* Core_Ops_Bit.BitAnd_impl_182__f_bitand := fun (self : t_u32) (other : t_u32)=> *) +(* Build_t__u32_u32 (Core_Ops_Bit.BitAnd__f_bitand (0 self) (0 other)); *) +(* }. *) + +(* Instance t_BitAnd_916627715 : Core_Ops_Bit.t_BitAnd ((t_u64)) ((t_u64)) := *) +(* { *) +(* Core_Ops_Bit.BitAnd_impl_183__f_Output := t_u64; *) +(* Core_Ops_Bit.BitAnd_impl_183__f_bitand := fun (self : t_u64) (other : t_u64)=> *) +(* Build_t__u64_u64 (Core_Ops_Bit.BitAnd__f_bitand (0 self) (0 other)); *) +(* }. *) + +(* Instance t_BitAnd_490377132 : Core_Ops_Bit.t_BitAnd ((t_u128)) ((t_u128)) := *) +(* { *) +(* Core_Ops_Bit.BitAnd_impl_184__f_Output := t_u128; *) +(* Core_Ops_Bit.BitAnd_impl_184__f_bitand := fun (self : t_u128) (other : t_u128)=> *) +(* Build_t__u128_u128 (Core_Ops_Bit.BitAnd__f_bitand (0 self) (0 other)); *) +(* }. *) + +(* Instance t_BitAnd_183531911 : Core_Ops_Bit.t_BitAnd ((t_usize)) ((t_usize)) := *) +(* { *) +(* Core_Ops_Bit.BitAnd_impl_185__f_Output := t_usize; *) +(* Core_Ops_Bit.BitAnd_impl_185__f_bitand := fun (self : t_usize) (other : t_usize)=> *) +(* Build_t__usize_usize (Core_Ops_Bit.BitAnd__f_bitand (0 self) (0 other)); *) +(* }. *) + +(* Instance t_BitAnd_691365492 : Core_Ops_Bit.t_BitAnd ((t_i8)) ((t_i8)) := *) +(* { *) +(* Core_Ops_Bit.BitAnd_impl_186__f_Output := t_i8; *) +(* Core_Ops_Bit.BitAnd_impl_186__f_bitand := fun (self : t_i8) (other : t_i8)=> *) +(* Build_t__i8_i8 (Core_Ops_Bit.BitAnd__f_bitand (0 self) (0 other)); *) +(* }. *) + +(* Instance t_BitAnd_279078905 : Core_Ops_Bit.t_BitAnd ((t_i16)) ((t_i16)) := *) +(* { *) +(* Core_Ops_Bit.BitAnd_impl_187__f_Output := t_i16; *) +(* Core_Ops_Bit.BitAnd_impl_187__f_bitand := fun (self : t_i16) (other : t_i16)=> *) +(* Build_t__i16_i16 (Core_Ops_Bit.BitAnd__f_bitand (0 self) (0 other)); *) +(* }. *) + +(* Instance t_BitAnd_48965752 : Core_Ops_Bit.t_BitAnd ((t_i32)) ((t_i32)) := *) +(* { *) +(* Core_Ops_Bit.BitAnd_impl_188__f_Output := t_i32; *) +(* Core_Ops_Bit.BitAnd_impl_188__f_bitand := fun (self : t_i32) (other : t_i32)=> *) +(* Build_t__i32_i32 (Core_Ops_Bit.BitAnd__f_bitand (0 self) (0 other)); *) +(* }. *) + +(* Instance t_BitAnd_140075308 : Core_Ops_Bit.t_BitAnd ((t_i64)) ((t_i64)) := *) +(* { *) +(* Core_Ops_Bit.BitAnd_impl_189__f_Output := t_i64; *) +(* Core_Ops_Bit.BitAnd_impl_189__f_bitand := fun (self : t_i64) (other : t_i64)=> *) +(* Build_t__i64_i64 (Core_Ops_Bit.BitAnd__f_bitand (0 self) (0 other)); *) +(* }. *) + +(* Instance t_BitAnd_849922519 : Core_Ops_Bit.t_BitAnd ((t_i128)) ((t_i128)) := *) +(* { *) +(* Core_Ops_Bit.BitAnd_impl_190__f_Output := t_i128; *) +(* Core_Ops_Bit.BitAnd_impl_190__f_bitand := fun (self : t_i128) (other : t_i128)=> *) +(* Build_t__i128_i128 (Core_Ops_Bit.BitAnd__f_bitand (0 self) (0 other)); *) +(* }. *) + +(* Instance t_BitAnd_519590116 : Core_Ops_Bit.t_BitAnd ((t_isize)) ((t_isize)) := *) +(* { *) +(* Core_Ops_Bit.BitAnd_impl_191__f_Output := t_isize; *) +(* Core_Ops_Bit.BitAnd_impl_191__f_bitand := fun (self : t_isize) (other : t_isize)=> *) +(* Build_t__isize_isize (Core_Ops_Bit.BitAnd__f_bitand (0 self) (0 other)); *) +(* }. *) + +(* Class t_SliceIndex (v_Self : Type) (v_T : Type) `{t_Sealed (v_Self)} : Type := *) +(* { *) +(* SliceIndex__f_Output : Type; *) +(* SliceIndex__f_index : v_Self -> v_T -> SliceIndex__f_Outputt_item; *) +(* }. *) +(* Arguments t_SliceIndex (_) (_) {_}. *) + +(* Instance t_From_44016844 : Core_Convert.t_From ((Core_Base_Spec_Haxint.t_HaxInt)) ((t_u8)) := *) +(* { *) +(* Core_Convert.From_f_from := fun (x : t_u8)=> *) +(* if *) +(* Rust_primitives_U128.eq (x) ((0 : t_u8)) *) +(* then *) +(* Core_Base_Spec_Haxint.v_HaxInt_ZERO *) +(* else *) +(* Core_Base_Spec_Binary_Positive.positive_to_int (impl_24__from_u8_binary (x)); *) +(* }. *) + +(* Instance t_From_687290056 : Core_Convert.t_From ((t_u8)) ((Core_Base_Spec_Haxint.t_HaxInt)) := *) +(* { *) +(* Core_Convert.From_impl_1__f_from := fun (x : Core_Base_Spec_Haxint.t_HaxInt)=> *) +(* match Core_Base_Spec_Binary_Pos.match_pos (x) with *) +(* | Core_Base_Spec_Binary_Pos.POS_ZERO => *) +(* (0 : t_u8) *) +(* | Core_Base_Spec_Binary_Pos.POS_POS (p) => *) +(* impl_24__to_u8_binary (p) *) +(* end; *) +(* }. *) + +(* Instance t_From_443091616 : Core_Convert.t_From ((Core_Base_Spec_Haxint.t_HaxInt)) ((t_u16)) := *) +(* { *) +(* Core_Convert.From_impl_2__f_from := fun (x : t_u16)=> *) +(* if *) +(* Rust_primitives_U128.eq (x) ((0 : t_u16)) *) +(* then *) +(* Core_Base_Spec_Haxint.v_HaxInt_ZERO *) +(* else *) +(* Core_Base_Spec_Binary_Positive.positive_to_int (impl_24__from_u16_binary (x)); *) +(* }. *) + +(* Instance t_From_318689415 : Core_Convert.t_From ((t_u16)) ((Core_Base_Spec_Haxint.t_HaxInt)) := *) +(* { *) +(* Core_Convert.From_impl_3__f_from := fun (x : Core_Base_Spec_Haxint.t_HaxInt)=> *) +(* match Core_Base_Spec_Binary_Pos.match_pos (x) with *) +(* | Core_Base_Spec_Binary_Pos.POS_ZERO => *) +(* (0 : t_u16) *) +(* | Core_Base_Spec_Binary_Pos.POS_POS (p) => *) +(* impl_24__to_u16_binary (p) *) +(* end; *) +(* }. *) + +(* Instance t_From_963987115 : Core_Convert.t_From ((Core_Base_Spec_Haxint.t_HaxInt)) ((t_u32)) := *) +(* { *) +(* Core_Convert.From_impl_4__f_from := fun (x : t_u32)=> *) +(* if *) +(* Rust_primitives_U128.eq (x) ((0 : t_u32)) *) +(* then *) +(* Core_Base_Spec_Haxint.v_HaxInt_ZERO *) +(* else *) +(* Core_Base_Spec_Binary_Positive.positive_to_int (impl_24__from_u32_binary (x)); *) +(* }. *) + +(* Instance t_From_352982036 : Core_Convert.t_From ((t_u32)) ((Core_Base_Spec_Haxint.t_HaxInt)) := *) +(* { *) +(* Core_Convert.From_impl_5__f_from := fun (x : Core_Base_Spec_Haxint.t_HaxInt)=> *) +(* match Core_Base_Spec_Binary_Pos.match_pos (x) with *) +(* | Core_Base_Spec_Binary_Pos.POS_ZERO => *) +(* (0 : t_u32) *) +(* | Core_Base_Spec_Binary_Pos.POS_POS (p) => *) +(* impl_24__to_u32_binary (p) *) +(* end; *) +(* }. *) + +(* Instance t_From_1028096748 : Core_Convert.t_From ((Core_Base_Spec_Haxint.t_HaxInt)) ((t_u64)) := *) +(* { *) +(* Core_Convert.From_impl_6__f_from := fun (x : t_u64)=> *) +(* if *) +(* Rust_primitives_U128.eq (x) ((0 : t_u64)) *) +(* then *) +(* Core_Base_Spec_Haxint.v_HaxInt_ZERO *) +(* else *) +(* Core_Base_Spec_Binary_Positive.positive_to_int (impl_24__from_u64_binary (x)); *) +(* }. *) + +(* Instance t_From_545928960 : Core_Convert.t_From ((t_u64)) ((Core_Base_Spec_Haxint.t_HaxInt)) := *) +(* { *) +(* Core_Convert.From_impl_7__f_from := fun (x : Core_Base_Spec_Haxint.t_HaxInt)=> *) +(* match Core_Base_Spec_Binary_Pos.match_pos (x) with *) +(* | Core_Base_Spec_Binary_Pos.POS_ZERO => *) +(* (0 : t_u64) *) +(* | Core_Base_Spec_Binary_Pos.POS_POS (p) => *) +(* impl_24__to_u64_binary (p) *) +(* end; *) +(* }. *) + +(* Instance t_From_240272474 : Core_Convert.t_From ((Core_Base_Spec_Haxint.t_HaxInt)) ((t_u128)) := *) +(* { *) +(* Core_Convert.From_impl_8__f_from := fun (x : t_u128)=> *) +(* if *) +(* Rust_primitives_U128.eq (x) ((0 : t_u128)) *) +(* then *) +(* Core_Base_Spec_Haxint.v_HaxInt_ZERO *) +(* else *) +(* Core_Base_Spec_Binary_Positive.positive_to_int (impl_24__from_u128_binary (x)); *) +(* }. *) + +(* Instance t_From_222831558 : Core_Convert.t_From ((t_u128)) ((Core_Base_Spec_Haxint.t_HaxInt)) := *) +(* { *) +(* Core_Convert.From_impl_9__f_from := fun (x : Core_Base_Spec_Haxint.t_HaxInt)=> *) +(* match Core_Base_Spec_Binary_Pos.match_pos (x) with *) +(* | Core_Base_Spec_Binary_Pos.POS_ZERO => *) +(* (0 : t_u128) *) +(* | Core_Base_Spec_Binary_Pos.POS_POS (p) => *) +(* impl_24__to_u128_binary (p) *) +(* end; *) +(* }. *) + +(* Instance t_From_835901229 : Core_Convert.t_From ((Core_Base_Spec_Haxint.t_HaxInt)) ((t_usize)) := *) +(* { *) +(* Core_Convert.From_impl_10__f_from := fun (x : t_usize)=> *) +(* if *) +(* Rust_primitives_U128.eq (x) ((0 : t_usize)) *) +(* then *) +(* Core_Base_Spec_Haxint.v_HaxInt_ZERO *) +(* else *) +(* Core_Base_Spec_Binary_Positive.positive_to_int (impl_24__from_usize_binary (x)); *) +(* }. *) + +(* Instance t_From_257114222 : Core_Convert.t_From ((t_usize)) ((Core_Base_Spec_Haxint.t_HaxInt)) := *) +(* { *) +(* Core_Convert.From_impl_11__f_from := fun (x : Core_Base_Spec_Haxint.t_HaxInt)=> *) +(* match Core_Base_Spec_Binary_Pos.match_pos (x) with *) +(* | Core_Base_Spec_Binary_Pos.POS_ZERO => *) +(* (0 : t_usize) *) +(* | Core_Base_Spec_Binary_Pos.POS_POS (p) => *) +(* impl_24__to_usize_binary (p) *) +(* end; *) +(* }. *) + +(* Instance t_From_338289091 : Core_Convert.t_From ((Core_Base_Spec_Z.t_Z)) ((t_i8)) := *) +(* { *) +(* Core_Convert.From_impl_12__f_from := fun (x : t_i8)=> *) +(* match Core_Cmp.Ord__f_cmp (x) ((0 : t_i8)) with *) +(* | Core_Cmp.Ordering_Equal => *) +(* Core_Base_Spec_Z.Z_ZERO *) +(* | Core_Cmp.Ordering_Less => *) +(* Core_Base_Spec_Z.Z_NEG (impl_24__from_u8_binary (Core_Num.impl_i8__unsigned_abs (x))) *) +(* | Core_Cmp.Ordering_Greater => *) +(* Core_Base_Spec_Z.Z_POS (impl_24__from_u8_binary (Core_Num.impl_i8__unsigned_abs (x))) *) +(* end; *) +(* }. *) + +(* Instance t_From_245838536 : Core_Convert.t_From ((t_i8)) ((Core_Base_Spec_Z.t_Z)) := *) +(* { *) +(* Core_Convert.From_impl_13__f_from := fun (x : Core_Base_Spec_Z.t_Z)=> *) +(* match x with *) +(* | Core_Base_Spec_Z.Z_NEG (x) => *) +(* Rust_primitives_U128.sub (Core_Ops_Arith.Neg__f_neg (cast (Rust_primitives_U128.sub (impl_24__to_u8_binary (x)) ((1 : t_u8))))) ((1 : t_i8)) *) +(* | Core_Base_Spec_Z.Z_ZERO => *) +(* (0 : t_i8) *) +(* | Core_Base_Spec_Z.Z_POS (x) => *) +(* cast (impl_24__to_u8_binary (x)) *) +(* end; *) +(* }. *) + +(* Instance t_From_639914372 : Core_Convert.t_From ((Core_Base_Spec_Z.t_Z)) ((t_i16)) := *) +(* { *) +(* Core_Convert.From_impl_14__f_from := fun (x : t_i16)=> *) +(* match Core_Cmp.Ord__f_cmp (x) ((0 : t_i16)) with *) +(* | Core_Cmp.Ordering_Equal => *) +(* Core_Base_Spec_Z.Z_ZERO *) +(* | Core_Cmp.Ordering_Less => *) +(* Core_Base_Spec_Z.Z_NEG (impl_24__from_u16_binary (Core_Num.impl_i16__unsigned_abs (x))) *) +(* | Core_Cmp.Ordering_Greater => *) +(* Core_Base_Spec_Z.Z_POS (impl_24__from_u16_binary (Core_Num.impl_i16__unsigned_abs (x))) *) +(* end; *) +(* }. *) + +(* Instance t_From_821253081 : Core_Convert.t_From ((t_i16)) ((Core_Base_Spec_Z.t_Z)) := *) +(* { *) +(* Core_Convert.From_impl_15__f_from := fun (x : Core_Base_Spec_Z.t_Z)=> *) +(* match x with *) +(* | Core_Base_Spec_Z.Z_NEG (x) => *) +(* Rust_primitives_U128.sub (Core_Ops_Arith.Neg__f_neg (cast (Rust_primitives_U128.sub (impl_24__to_u16_binary (x)) ((1 : t_u16))))) ((1 : t_i16)) *) +(* | Core_Base_Spec_Z.Z_ZERO => *) +(* (0 : t_i16) *) +(* | Core_Base_Spec_Z.Z_POS (x) => *) +(* cast (impl_24__to_u16_binary (x)) *) +(* end; *) +(* }. *) + +(* Instance t_From_865374737 : Core_Convert.t_From ((Core_Base_Spec_Z.t_Z)) ((t_i32)) := *) +(* { *) +(* Core_Convert.From_impl_16__f_from := fun (x : t_i32)=> *) +(* match Core_Cmp.Ord__f_cmp (x) ((0 : t_i32)) with *) +(* | Core_Cmp.Ordering_Equal => *) +(* Core_Base_Spec_Z.Z_ZERO *) +(* | Core_Cmp.Ordering_Less => *) +(* Core_Base_Spec_Z.Z_NEG (impl_24__from_u32_binary (Core_Num.impl_i32__unsigned_abs (x))) *) +(* | Core_Cmp.Ordering_Greater => *) +(* Core_Base_Spec_Z.Z_POS (impl_24__from_u32_binary (Core_Num.impl_i32__unsigned_abs (x))) *) +(* end; *) +(* }. *) + +(* Instance t_From_829456934 : Core_Convert.t_From ((t_i32)) ((Core_Base_Spec_Z.t_Z)) := *) +(* { *) +(* Core_Convert.From_impl_17__f_from := fun (x : Core_Base_Spec_Z.t_Z)=> *) +(* match x with *) +(* | Core_Base_Spec_Z.Z_NEG (x) => *) +(* Rust_primitives_U128.sub (Core_Ops_Arith.Neg__f_neg (cast (Rust_primitives_U128.sub (impl_24__to_u32_binary (x)) ((1 : t_u32))))) ((1 : t_i32)) *) +(* | Core_Base_Spec_Z.Z_ZERO => *) +(* (0 : t_i32) *) +(* | Core_Base_Spec_Z.Z_POS (x) => *) +(* cast (impl_24__to_u32_binary (x)) *) +(* end; *) +(* }. *) + +(* Instance t_From_435789495 : Core_Convert.t_From ((Core_Base_Spec_Z.t_Z)) ((t_i64)) := *) +(* { *) +(* Core_Convert.From_impl_18__f_from := fun (x : t_i64)=> *) +(* match Core_Cmp.Ord__f_cmp (x) ((0 : t_i64)) with *) +(* | Core_Cmp.Ordering_Equal => *) +(* Core_Base_Spec_Z.Z_ZERO *) +(* | Core_Cmp.Ordering_Less => *) +(* Core_Base_Spec_Z.Z_NEG (impl_24__from_u64_binary (Core_Num.impl_i64__unsigned_abs (x))) *) +(* | Core_Cmp.Ordering_Greater => *) +(* Core_Base_Spec_Z.Z_POS (impl_24__from_u64_binary (Core_Num.impl_i64__unsigned_abs (x))) *) +(* end; *) +(* }. *) + +(* Instance t_From_753989864 : Core_Convert.t_From ((t_i64)) ((Core_Base_Spec_Z.t_Z)) := *) +(* { *) +(* Core_Convert.From_impl_19__f_from := fun (x : Core_Base_Spec_Z.t_Z)=> *) +(* match x with *) +(* | Core_Base_Spec_Z.Z_NEG (x) => *) +(* Rust_primitives_U128.sub (Core_Ops_Arith.Neg__f_neg (cast (Rust_primitives_U128.sub (impl_24__to_u64_binary (x)) ((1 : t_u64))))) ((1 : t_i64)) *) +(* | Core_Base_Spec_Z.Z_ZERO => *) +(* (0 : t_i64) *) +(* | Core_Base_Spec_Z.Z_POS (x) => *) +(* cast (impl_24__to_u64_binary (x)) *) +(* end; *) +(* }. *) + +(* Instance t_From_545262237 : Core_Convert.t_From ((Core_Base_Spec_Z.t_Z)) ((t_i128)) := *) +(* { *) +(* Core_Convert.From_impl_20__f_from := fun (x : t_i128)=> *) +(* match Core_Cmp.Ord__f_cmp (x) ((0 : t_i128)) with *) +(* | Core_Cmp.Ordering_Equal => *) +(* Core_Base_Spec_Z.Z_ZERO *) +(* | Core_Cmp.Ordering_Less => *) +(* Core_Base_Spec_Z.Z_NEG (impl_24__from_u128_binary (Core_Num.impl_i128__unsigned_abs (x))) *) +(* | Core_Cmp.Ordering_Greater => *) +(* Core_Base_Spec_Z.Z_POS (impl_24__from_u128_binary (Core_Num.impl_i128__unsigned_abs (x))) *) +(* end; *) +(* }. *) + +(* Instance t_From_636246826 : Core_Convert.t_From ((t_i128)) ((Core_Base_Spec_Z.t_Z)) := *) +(* { *) +(* Core_Convert.From_impl_21__f_from := fun (x : Core_Base_Spec_Z.t_Z)=> *) +(* match x with *) +(* | Core_Base_Spec_Z.Z_NEG (x) => *) +(* Rust_primitives_U128.sub (Core_Ops_Arith.Neg__f_neg (cast (Rust_primitives_U128.sub (impl_24__to_u128_binary (x)) ((1 : t_u128))))) ((1 : t_i128)) *) +(* | Core_Base_Spec_Z.Z_ZERO => *) +(* (0 : t_i128) *) +(* | Core_Base_Spec_Z.Z_POS (x) => *) +(* cast (impl_24__to_u128_binary (x)) *) +(* end; *) +(* }. *) + +(* Instance t_From_933861236 : Core_Convert.t_From ((Core_Base_Spec_Z.t_Z)) ((t_isize)) := *) +(* { *) +(* Core_Convert.From_impl_22__f_from := fun (x : t_isize)=> *) +(* match Core_Cmp.Ord__f_cmp (x) ((0 : t_isize)) with *) +(* | Core_Cmp.Ordering_Equal => *) +(* Core_Base_Spec_Z.Z_ZERO *) +(* | Core_Cmp.Ordering_Less => *) +(* Core_Base_Spec_Z.Z_NEG (impl_24__from_usize_binary (Core_Num.impl_isize__unsigned_abs (x))) *) +(* | Core_Cmp.Ordering_Greater => *) +(* Core_Base_Spec_Z.Z_POS (impl_24__from_usize_binary (Core_Num.impl_isize__unsigned_abs (x))) *) +(* end; *) +(* }. *) + +(* Instance t_From_702271195 : Core_Convert.t_From ((t_isize)) ((Core_Base_Spec_Z.t_Z)) := *) +(* { *) +(* Core_Convert.From_impl_23__f_from := fun (x : Core_Base_Spec_Z.t_Z)=> *) +(* match x with *) +(* | Core_Base_Spec_Z.Z_NEG (x) => *) +(* Rust_primitives_U128.sub (Core_Ops_Arith.Neg__f_neg (cast (Rust_primitives_U128.sub (impl_24__to_usize_binary (x)) ((1 : t_usize))))) ((1 : t_isize)) *) +(* | Core_Base_Spec_Z.Z_ZERO => *) +(* (0 : t_isize) *) +(* | Core_Base_Spec_Z.Z_POS (x) => *) +(* cast (impl_24__to_usize_binary (x)) *) +(* end; *) +(* }. *) + +(* Definition cons `{v_T : Type} `{Core_Marker.t_Sized (v_T)} `{Core_Clone.t_Clone (v_T)} (s : t_Seq ((v_T))) (t : v_T) : t_Seq ((v_T)) := *) +(* Seq_Seq (Alloc_Slice.impl__concat (Rust_primitives.unsize ([Core_Ops_Index.Index__f_index ([t]) (Core_Ops_Range.RangeFull_RangeFull); Core_Ops_Index.Index__f_index (f_Seq_v s) (Core_Ops_Range.RangeFull_RangeFull)]))). *) + +(* Instance t_From_183625382 : Core_Convert.t_From ((t_u8)) ((t_u8)) := *) +(* { *) +(* Core_Convert.From_f_from := fun (x : t_u8)=> *) +(* Build_t__u8_u8 (Core_Base_interface_Int.U8_U8 (Core_Convert.Into__f_into (x))); *) +(* }. *) + +(* Instance t_From_937665402 : Core_Convert.t_From ((t_u8)) ((t_u8)) := *) +(* { *) +(* Core_Convert.From_impl_1__f_from := fun (x : t_u8)=> *) +(* Core_Convert.Into__f_into (Core_Base_interface_Int.f_U8_v 0 x); *) +(* }. *) + +(* Instance t_From_152884980 : Core_Convert.t_From ((t_u16)) ((t_u16)) := *) +(* { *) +(* Core_Convert.From_impl_2__f_from := fun (x : t_u16)=> *) +(* Build_t__u16_u16 (Core_Base_interface_Int.U16_U16 (Core_Convert.Into__f_into (x))); *) +(* }. *) + +(* Instance t_From_386335264 : Core_Convert.t_From ((t_u16)) ((t_u16)) := *) +(* { *) +(* Core_Convert.From_impl_3__f_from := fun (x : t_u16)=> *) +(* Core_Convert.Into__f_into (Core_Base_interface_Int.f_U16_v 0 x); *) +(* }. *) + +(* Instance t_From_715833290 : Core_Convert.t_From ((t_u32)) ((t_u32)) := *) +(* { *) +(* Core_Convert.From_impl_4__f_from := fun (x : t_u32)=> *) +(* Build_t__u32_u32 (Core_Base_interface_Int.U32_U32 (Core_Convert.Into__f_into (x))); *) +(* }. *) + +(* Instance t_From_406773128 : Core_Convert.t_From ((t_u32)) ((t_u32)) := *) +(* { *) +(* Core_Convert.From_impl_5__f_from := fun (x : t_u32)=> *) +(* Core_Convert.Into__f_into (Core_Base_interface_Int.f_U32_v 0 x); *) +(* }. *) + +(* Instance t_From_541884810 : Core_Convert.t_From ((t_u64)) ((t_u64)) := *) +(* { *) +(* Core_Convert.From_impl_6__f_from := fun (x : t_u64)=> *) +(* Build_t__u64_u64 (Core_Base_interface_Int.U64_U64 (Core_Convert.Into__f_into (x))); *) +(* }. *) + +(* Instance t_From_444559756 : Core_Convert.t_From ((t_u64)) ((t_u64)) := *) +(* { *) +(* Core_Convert.From_impl_7__f_from := fun (x : t_u64)=> *) +(* Core_Convert.Into__f_into (Core_Base_interface_Int.f_U64_v 0 x); *) +(* }. *) + +(* Instance t_From_700043518 : Core_Convert.t_From ((t_u128)) ((t_u128)) := *) +(* { *) +(* Core_Convert.From_impl_8__f_from := fun (x : t_u128)=> *) +(* Build_t__u128_u128 (Core_Base_interface_Int.U128_U128 (Core_Convert.Into__f_into (x))); *) +(* }. *) + +(* Instance t_From_835883228 : Core_Convert.t_From ((t_u128)) ((t_u128)) := *) +(* { *) +(* Core_Convert.From_impl_9__f_from := fun (x : t_u128)=> *) +(* Core_Convert.Into__f_into (Core_Base_interface_Int.f_U128_v 0 x); *) +(* }. *) + +(* Instance t_From_181575805 : Core_Convert.t_From ((t_usize)) ((t_usize)) := *) +(* { *) +(* Core_Convert.From_impl_10__f_from := fun (x : t_usize)=> *) +(* Build_t__usize_usize (Core_Base_interface_Int.U64_U64 (Core_Convert.Into__f_into (x))); *) +(* }. *) + +(* Instance t_From_106156116 : Core_Convert.t_From ((t_usize)) ((t_usize)) := *) +(* { *) +(* Core_Convert.From_impl_11__f_from := fun (x : t_usize)=> *) +(* Core_Convert.Into__f_into (Core_Base_interface_Int.f_U64_v 0 x); *) +(* }. *) + +(* Instance t_From_105996716 : Core_Convert.t_From ((t_i8)) ((t_i8)) := *) +(* { *) +(* Core_Convert.From_f_from := fun (x : t_i8)=> *) +(* Build_t__i8_i8 (Core_Base_interface_Int.I8_I8 (Core_Convert.Into__f_into (x))); *) +(* }. *) + +(* Instance t_From_539767262 : Core_Convert.t_From ((t_i8)) ((t_i8)) := *) +(* { *) +(* Core_Convert.From_impl_1__f_from := fun (x : t_i8)=> *) +(* Core_Convert.Into__f_into (Core_Base_interface_Int.f_I8_v 0 x); *) +(* }. *) + +(* Instance t_From_488738214 : Core_Convert.t_From ((t_i16)) ((t_i16)) := *) +(* { *) +(* Core_Convert.From_impl_2__f_from := fun (x : t_i16)=> *) +(* Build_t__i16_i16 (Core_Base_interface_Int.I16_I16 (Core_Convert.Into__f_into (x))); *) +(* }. *) + +(* Instance t_From_482355400 : Core_Convert.t_From ((t_i16)) ((t_i16)) := *) +(* { *) +(* Core_Convert.From_impl_3__f_from := fun (x : t_i16)=> *) +(* Core_Convert.Into__f_into (Core_Base_interface_Int.f_I16_v 0 x); *) +(* }. *) + +(* Instance t_From_661202142 : Core_Convert.t_From ((t_i32)) ((t_i32)) := *) +(* { *) +(* Core_Convert.From_impl_4__f_from := fun (x : t_i32)=> *) +(* Build_t__i32_i32 (Core_Base_interface_Int.I32_I32 (Core_Convert.Into__f_into (x))); *) +(* }. *) + +(* Instance t_From_270964557 : Core_Convert.t_From ((t_i32)) ((t_i32)) := *) +(* { *) +(* Core_Convert.From_impl_5__f_from := fun (x : t_i32)=> *) +(* Core_Convert.Into__f_into (Core_Base_interface_Int.f_I32_v 0 x); *) +(* }. *) + +(* Instance t_From_518654672 : Core_Convert.t_From ((t_i64)) ((t_i64)) := *) +(* { *) +(* Core_Convert.From_impl_6__f_from := fun (x : t_i64)=> *) +(* Build_t__i64_i64 (Core_Base_interface_Int.I64_I64 (Core_Convert.Into__f_into (x))); *) +(* }. *) + +(* Instance t_From_908255250 : Core_Convert.t_From ((t_i64)) ((t_i64)) := *) +(* { *) +(* Core_Convert.From_impl_7__f_from := fun (x : t_i64)=> *) +(* Core_Convert.Into__f_into (Core_Base_interface_Int.f_I64_v 0 x); *) +(* }. *) + +(* Instance t_From_104524569 : Core_Convert.t_From ((t_i128)) ((t_i128)) := *) +(* { *) +(* Core_Convert.From_impl_8__f_from := fun (x : t_i128)=> *) +(* Build_t__i128_i128 (Core_Base_interface_Int.I128_I128 (Core_Convert.Into__f_into (x))); *) +(* }. *) + +(* Instance t_From_216855781 : Core_Convert.t_From ((t_i128)) ((t_i128)) := *) +(* { *) +(* Core_Convert.From_impl_9__f_from := fun (x : t_i128)=> *) +(* Core_Convert.Into__f_into (Core_Base_interface_Int.f_I128_v 0 x); *) +(* }. *) + +(* Instance t_From_181769074 : Core_Convert.t_From ((t_isize)) ((t_isize)) := *) +(* { *) +(* Core_Convert.From_impl_10__f_from := fun (x : t_isize)=> *) +(* Build_t__isize_isize (Core_Base_interface_Int.I64_I64 (Core_Convert.Into__f_into (x))); *) +(* }. *) + +(* Instance t_From_918115526 : Core_Convert.t_From ((t_isize)) ((t_isize)) := *) +(* { *) +(* Core_Convert.From_impl_11__f_from := fun (x : t_isize)=> *) +(* Core_Convert.Into__f_into (Core_Base_interface_Int.f_I64_v 0 x); *) +(* }. *) + +(* Definition ctpop_u8 (x : t_u8) : t_u32 := *) +(* let count : t_u32 := Core_Convert.Into__f_into ((0 : t_u32)) in *) +(* let count := Rust_primitives_Hax_Folds.fold_range ((0 : t_u32)) (Core_Convert.Into__f_into (impl_6__BITS)) (fun count _ => *) +(* (true : bool)) (count) (fun count i => *) +(* Core_Ops_Arith.Add__f_add (count) (Core_Convert.Into__f_into (Core_Ops_Bit.BitAnd__f_bitand (Core_Ops_Bit.Shr__f_shr (Core_Clone.Clone__f_clone (x)) (Core_Convert.Into__f_into (i))) (Core_Convert.Into__f_into ((1 : t_u8)))))) in *) +(* count. *) + +(* Definition cttz_u8 (x : t_u8) : t_u32 := *) +(* let count : t_u32 := Core_Convert.Into__f_into ((0 : t_u32)) in *) +(* let done := (false : bool) in *) +(* let (count,done) := Rust_primitives_Hax_Folds.fold_range ((0 : t_u32)) (Core_Convert.Into__f_into (impl_6__BITS)) (fun (count,done) _ => *) +(* (true : bool)) ((count,done)) (fun (count,done) i => *) +(* let low_bit : t_u32 := Core_Convert.Into__f_into (Core_Ops_Bit.BitAnd__f_bitand (Core_Ops_Bit.Shr__f_shr (Core_Clone.Clone__f_clone (x)) (Core_Convert.Into__f_into (i))) (Core_Convert.Into__f_into ((1 : t_u8)))) in *) +(* if *) +(* orb (Core_Cmp.PartialEq__f_eq (low_bit) (Core_Convert.Into__f_into ((1 : t_u32)))) (done) *) +(* then *) +(* let done := (true : bool) in *) +(* (count,done) *) +(* else *) +(* let count := Core_Ops_Arith.Add__f_add (count) (Core_Convert.Into__f_into ((1 : t_u32))) in *) +(* (count,done)) in *) +(* count. *) + +(* Definition ctlz_u8 (x : t_u8) : t_u32 := *) +(* let count : t_u32 := Core_Convert.Into__f_into ((0 : t_u32)) in *) +(* let done := (false : bool) in *) +(* let (count,done) := Rust_primitives_Hax_Folds.fold_range ((0 : t_u32)) (Core_Convert.Into__f_into (impl_6__BITS)) (fun (count,done) _ => *) +(* (true : bool)) ((count,done)) (fun (count,done) i => *) +(* let high_bit : t_u32 := Core_Convert.Into__f_into (Core_Ops_Bit.Shr__f_shr (Core_Ops_Bit.Shl__f_shl (Core_Clone.Clone__f_clone (x)) (Core_Convert.Into__f_into (i))) (Core_Convert.Into__f_into (Core_Ops_Arith.Sub__f_sub (impl_6__BITS) (Core_Convert.Into__f_into ((1 : t_u32)))))) in *) +(* if *) +(* orb (Core_Cmp.PartialEq__f_eq (high_bit) (Core_Convert.Into__f_into ((1 : t_u32)))) (done) *) +(* then *) +(* let done := (true : bool) in *) +(* (count,done) *) +(* else *) +(* let count := Core_Ops_Arith.Add__f_add (count) (Core_Convert.Into__f_into ((1 : t_u32))) in *) +(* (count,done)) in *) +(* count. *) + +(* Definition rotate_left_u8 (x : t_u8) (shift : t_u32) : t_u8 := *) +(* let shift : t_u32 := Core_Ops_Arith.Rem__f_rem (shift) (impl_6__BITS) in *) +(* let left : t_u8 := Core_Ops_Bit.Shl__f_shl (Core_Clone.Clone__f_clone (x)) (Core_Clone.Clone__f_clone (shift)) in *) +(* let right : t_u8 := Core_Ops_Bit.Shr__f_shr (Core_Clone.Clone__f_clone (x)) (Core_Ops_Arith.Sub__f_sub (impl_6__BITS) (Core_Clone.Clone__f_clone (shift))) in *) +(* Core_Ops_Bit.BitOr__f_bitor (left) (right). *) + +(* Definition rotate_right_u8 (x : t_u8) (shift : t_u32) : t_u8 := *) +(* let shift : t_u32 := Core_Ops_Arith.Rem__f_rem (shift) (impl_6__BITS) in *) +(* let left : t_u8 := Core_Ops_Bit.Shr__f_shr (Core_Clone.Clone__f_clone (x)) (Core_Clone.Clone__f_clone (shift)) in *) +(* let right : t_u8 := Core_Ops_Bit.Shl__f_shl (Core_Clone.Clone__f_clone (x)) (Core_Ops_Arith.Sub__f_sub (impl_6__BITS) (Core_Clone.Clone__f_clone (shift))) in *) +(* Core_Ops_Bit.BitOr__f_bitor (left) (right). *) + +(* Definition bswap_u8 (x : t_u8) : t_u8 := *) +(* let count : t_u8 := Core_Convert.Into__f_into ((0 : t_u8)) in *) +(* let count := Rust_primitives_Hax_Folds.fold_range ((0 : t_u32)) (Core_Convert.Into__f_into (impl_6__BITS)) (fun count _ => *) +(* (true : bool)) (count) (fun count i => *) +(* let low_bit : t_u8 := Core_Convert.Into__f_into (Core_Ops_Bit.BitAnd__f_bitand (Core_Ops_Bit.Shr__f_shr (Core_Clone.Clone__f_clone (x)) (Core_Convert.Into__f_into (i))) (Core_Convert.Into__f_into ((1 : t_u8)))) in *) +(* let count := Core_Ops_Arith.Add__f_add (Core_Ops_Bit.Shl__f_shl (count) (Core_Convert.Into__f_into ((1 : t_u32)))) (low_bit) in *) +(* count) in *) +(* count. *) + +(* Definition ctpop_u16 (x : t_u16) : t_u32 := *) +(* let count : t_u32 := Core_Convert.Into__f_into ((0 : t_u32)) in *) +(* let count := Rust_primitives_Hax_Folds.fold_range ((0 : t_u32)) (Core_Convert.Into__f_into (impl_7__BITS)) (fun count _ => *) +(* (true : bool)) (count) (fun count i => *) +(* Core_Ops_Arith.Add__f_add (count) (Core_Convert.Into__f_into (Core_Ops_Bit.BitAnd__f_bitand (Core_Ops_Bit.Shr__f_shr (Core_Clone.Clone__f_clone (x)) (Core_Convert.Into__f_into (i))) (Core_Convert.Into__f_into ((1 : t_u16)))))) in *) +(* count. *) + +(* Definition cttz_u16 (x : t_u16) : t_u32 := *) +(* let count : t_u32 := Core_Convert.Into__f_into ((0 : t_u32)) in *) +(* let done := (false : bool) in *) +(* let (count,done) := Rust_primitives_Hax_Folds.fold_range ((0 : t_u32)) (Core_Convert.Into__f_into (impl_7__BITS)) (fun (count,done) _ => *) +(* (true : bool)) ((count,done)) (fun (count,done) i => *) +(* let low_bit : t_u32 := Core_Convert.Into__f_into (Core_Ops_Bit.BitAnd__f_bitand (Core_Ops_Bit.Shr__f_shr (Core_Clone.Clone__f_clone (x)) (Core_Convert.Into__f_into (i))) (Core_Convert.Into__f_into ((1 : t_u16)))) in *) +(* if *) +(* orb (Core_Cmp.PartialEq__f_eq (low_bit) (Core_Convert.Into__f_into ((1 : t_u32)))) (done) *) +(* then *) +(* let done := (true : bool) in *) +(* (count,done) *) +(* else *) +(* let count := Core_Ops_Arith.Add__f_add (count) (Core_Convert.Into__f_into ((1 : t_u32))) in *) +(* (count,done)) in *) +(* count. *) + +(* Definition ctlz_u16 (x : t_u16) : t_u32 := *) +(* let count : t_u32 := Core_Convert.Into__f_into ((0 : t_u32)) in *) +(* let done := (false : bool) in *) +(* let (count,done) := Rust_primitives_Hax_Folds.fold_range ((0 : t_u32)) (Core_Convert.Into__f_into (impl_7__BITS)) (fun (count,done) _ => *) +(* (true : bool)) ((count,done)) (fun (count,done) i => *) +(* let high_bit : t_u32 := Core_Convert.Into__f_into (Core_Ops_Bit.Shr__f_shr (Core_Ops_Bit.Shl__f_shl (Core_Clone.Clone__f_clone (x)) (Core_Convert.Into__f_into (i))) (Core_Convert.Into__f_into (Core_Ops_Arith.Sub__f_sub (impl_7__BITS) (Core_Convert.Into__f_into ((1 : t_u32)))))) in *) +(* if *) +(* orb (Core_Cmp.PartialEq__f_eq (high_bit) (Core_Convert.Into__f_into ((1 : t_u32)))) (done) *) +(* then *) +(* let done := (true : bool) in *) +(* (count,done) *) +(* else *) +(* let count := Core_Ops_Arith.Add__f_add (count) (Core_Convert.Into__f_into ((1 : t_u32))) in *) +(* (count,done)) in *) +(* count. *) + +(* Definition rotate_left_u16 (x : t_u16) (shift : t_u32) : t_u16 := *) +(* let shift : t_u32 := Core_Ops_Arith.Rem__f_rem (shift) (impl_7__BITS) in *) +(* let left : t_u16 := Core_Ops_Bit.Shl__f_shl (Core_Clone.Clone__f_clone (x)) (Core_Clone.Clone__f_clone (shift)) in *) +(* let right : t_u16 := Core_Ops_Bit.Shr__f_shr (Core_Clone.Clone__f_clone (x)) (Core_Ops_Arith.Sub__f_sub (impl_7__BITS) (Core_Clone.Clone__f_clone (shift))) in *) +(* Core_Ops_Bit.BitOr__f_bitor (left) (right). *) + +(* Definition rotate_right_u16 (x : t_u16) (shift : t_u32) : t_u16 := *) +(* let shift : t_u32 := Core_Ops_Arith.Rem__f_rem (shift) (impl_7__BITS) in *) +(* let left : t_u16 := Core_Ops_Bit.Shr__f_shr (Core_Clone.Clone__f_clone (x)) (Core_Clone.Clone__f_clone (shift)) in *) +(* let right : t_u16 := Core_Ops_Bit.Shl__f_shl (Core_Clone.Clone__f_clone (x)) (Core_Ops_Arith.Sub__f_sub (impl_7__BITS) (Core_Clone.Clone__f_clone (shift))) in *) +(* Core_Ops_Bit.BitOr__f_bitor (left) (right). *) + +(* Definition bswap_u16 (x : t_u16) : t_u16 := *) +(* let count : t_u16 := Core_Convert.Into__f_into ((0 : t_u16)) in *) +(* let count := Rust_primitives_Hax_Folds.fold_range ((0 : t_u32)) (Core_Convert.Into__f_into (impl_7__BITS)) (fun count _ => *) +(* (true : bool)) (count) (fun count i => *) +(* let low_bit : t_u16 := Core_Convert.Into__f_into (Core_Ops_Bit.BitAnd__f_bitand (Core_Ops_Bit.Shr__f_shr (Core_Clone.Clone__f_clone (x)) (Core_Convert.Into__f_into (i))) (Core_Convert.Into__f_into ((1 : t_u16)))) in *) +(* let count := Core_Ops_Arith.Add__f_add (Core_Ops_Bit.Shl__f_shl (count) (Core_Convert.Into__f_into ((1 : t_u32)))) (low_bit) in *) +(* count) in *) +(* count. *) + +(* Definition ctpop_u32 (x : t_u32) : t_u32 := *) +(* let count : t_u32 := Core_Convert.Into__f_into ((0 : t_u32)) in *) +(* let count := Rust_primitives_Hax_Folds.fold_range ((0 : t_u32)) (Core_Convert.Into__f_into (impl_8__BITS)) (fun count _ => *) +(* (true : bool)) (count) (fun count i => *) +(* Core_Ops_Arith.Add__f_add (count) (Core_Convert.Into__f_into (Core_Ops_Bit.BitAnd__f_bitand (Core_Ops_Bit.Shr__f_shr (Core_Clone.Clone__f_clone (x)) (Core_Convert.Into__f_into (i))) (Core_Convert.Into__f_into ((1 : t_u32)))))) in *) +(* count. *) + +(* Definition cttz_u32 (x : t_u32) : t_u32 := *) +(* let count : t_u32 := Core_Convert.Into__f_into ((0 : t_u32)) in *) +(* let done := (false : bool) in *) +(* let (count,done) := Rust_primitives_Hax_Folds.fold_range ((0 : t_u32)) (Core_Convert.Into__f_into (impl_8__BITS)) (fun (count,done) _ => *) +(* (true : bool)) ((count,done)) (fun (count,done) i => *) +(* let low_bit : t_u32 := Core_Convert.Into__f_into (Core_Ops_Bit.BitAnd__f_bitand (Core_Ops_Bit.Shr__f_shr (Core_Clone.Clone__f_clone (x)) (Core_Convert.Into__f_into (i))) (Core_Convert.Into__f_into ((1 : t_u32)))) in *) +(* if *) +(* orb (Core_Cmp.PartialEq__f_eq (low_bit) (Core_Convert.Into__f_into ((1 : t_u32)))) (done) *) +(* then *) +(* let done := (true : bool) in *) +(* (count,done) *) +(* else *) +(* let count := Core_Ops_Arith.Add__f_add (count) (Core_Convert.Into__f_into ((1 : t_u32))) in *) +(* (count,done)) in *) +(* count. *) + +(* Definition ctlz_u32 (x : t_u32) : t_u32 := *) +(* let count : t_u32 := Core_Convert.Into__f_into ((0 : t_u32)) in *) +(* let done := (false : bool) in *) +(* let (count,done) := Rust_primitives_Hax_Folds.fold_range ((0 : t_u32)) (Core_Convert.Into__f_into (impl_8__BITS)) (fun (count,done) _ => *) +(* (true : bool)) ((count,done)) (fun (count,done) i => *) +(* let high_bit : t_u32 := Core_Convert.Into__f_into (Core_Ops_Bit.Shr__f_shr (Core_Ops_Bit.Shl__f_shl (Core_Clone.Clone__f_clone (x)) (Core_Convert.Into__f_into (i))) (Core_Convert.Into__f_into (Core_Ops_Arith.Sub__f_sub (impl_8__BITS) (Core_Convert.Into__f_into ((1 : t_u32)))))) in *) +(* if *) +(* orb (Core_Cmp.PartialEq__f_eq (high_bit) (Core_Convert.Into__f_into ((1 : t_u32)))) (done) *) +(* then *) +(* let done := (true : bool) in *) +(* (count,done) *) +(* else *) +(* let count := Core_Ops_Arith.Add__f_add (count) (Core_Convert.Into__f_into ((1 : t_u32))) in *) +(* (count,done)) in *) +(* count. *) + +(* Definition rotate_left_u32 (x : t_u32) (shift : t_u32) : t_u32 := *) +(* let shift : t_u32 := Core_Ops_Arith.Rem__f_rem (shift) (impl_8__BITS) in *) +(* let left : t_u32 := Core_Ops_Bit.Shl__f_shl (Core_Clone.Clone__f_clone (x)) (Core_Clone.Clone__f_clone (shift)) in *) +(* let right : t_u32 := Core_Ops_Bit.Shr__f_shr (Core_Clone.Clone__f_clone (x)) (Core_Ops_Arith.Sub__f_sub (impl_8__BITS) (Core_Clone.Clone__f_clone (shift))) in *) +(* Core_Ops_Bit.BitOr__f_bitor (left) (right). *) + +(* Definition rotate_right_u32 (x : t_u32) (shift : t_u32) : t_u32 := *) +(* let shift : t_u32 := Core_Ops_Arith.Rem__f_rem (shift) (impl_8__BITS) in *) +(* let left : t_u32 := Core_Ops_Bit.Shr__f_shr (Core_Clone.Clone__f_clone (x)) (Core_Clone.Clone__f_clone (shift)) in *) +(* let right : t_u32 := Core_Ops_Bit.Shl__f_shl (Core_Clone.Clone__f_clone (x)) (Core_Ops_Arith.Sub__f_sub (impl_8__BITS) (Core_Clone.Clone__f_clone (shift))) in *) +(* Core_Ops_Bit.BitOr__f_bitor (left) (right). *) + +(* Definition bswap_u32 (x : t_u32) : t_u32 := *) +(* let count : t_u32 := Core_Convert.Into__f_into ((0 : t_u32)) in *) +(* let count := Rust_primitives_Hax_Folds.fold_range ((0 : t_u32)) (Core_Convert.Into__f_into (impl_8__BITS)) (fun count _ => *) +(* (true : bool)) (count) (fun count i => *) +(* let low_bit : t_u32 := Core_Convert.Into__f_into (Core_Ops_Bit.BitAnd__f_bitand (Core_Ops_Bit.Shr__f_shr (Core_Clone.Clone__f_clone (x)) (Core_Convert.Into__f_into (i))) (Core_Convert.Into__f_into ((1 : t_u32)))) in *) +(* let count := Core_Ops_Arith.Add__f_add (Core_Ops_Bit.Shl__f_shl (count) (Core_Convert.Into__f_into ((1 : t_u32)))) (low_bit) in *) +(* count) in *) +(* count. *) + +(* Definition ctpop_u64 (x : t_u64) : t_u32 := *) +(* let count : t_u32 := Core_Convert.Into__f_into ((0 : t_u32)) in *) +(* let count := Rust_primitives_Hax_Folds.fold_range ((0 : t_u32)) (Core_Convert.Into__f_into (impl_9__BITS)) (fun count _ => *) +(* (true : bool)) (count) (fun count i => *) +(* Core_Ops_Arith.Add__f_add (count) (Core_Convert.Into__f_into (Core_Ops_Bit.BitAnd__f_bitand (Core_Ops_Bit.Shr__f_shr (Core_Clone.Clone__f_clone (x)) (Core_Convert.Into__f_into (i))) (Core_Convert.Into__f_into ((1 : t_u64)))))) in *) +(* count. *) + +(* Definition cttz_u64 (x : t_u64) : t_u32 := *) +(* let count : t_u32 := Core_Convert.Into__f_into ((0 : t_u32)) in *) +(* let done := (false : bool) in *) +(* let (count,done) := Rust_primitives_Hax_Folds.fold_range ((0 : t_u32)) (Core_Convert.Into__f_into (impl_9__BITS)) (fun (count,done) _ => *) +(* (true : bool)) ((count,done)) (fun (count,done) i => *) +(* let low_bit : t_u32 := Core_Convert.Into__f_into (Core_Ops_Bit.BitAnd__f_bitand (Core_Ops_Bit.Shr__f_shr (Core_Clone.Clone__f_clone (x)) (Core_Convert.Into__f_into (i))) (Core_Convert.Into__f_into ((1 : t_u64)))) in *) +(* if *) +(* orb (Core_Cmp.PartialEq__f_eq (low_bit) (Core_Convert.Into__f_into ((1 : t_u32)))) (done) *) +(* then *) +(* let done := (true : bool) in *) +(* (count,done) *) +(* else *) +(* let count := Core_Ops_Arith.Add__f_add (count) (Core_Convert.Into__f_into ((1 : t_u32))) in *) +(* (count,done)) in *) +(* count. *) + +(* Definition ctlz_u64 (x : t_u64) : t_u32 := *) +(* let count : t_u32 := Core_Convert.Into__f_into ((0 : t_u32)) in *) +(* let done := (false : bool) in *) +(* let (count,done) := Rust_primitives_Hax_Folds.fold_range ((0 : t_u32)) (Core_Convert.Into__f_into (impl_9__BITS)) (fun (count,done) _ => *) +(* (true : bool)) ((count,done)) (fun (count,done) i => *) +(* let high_bit : t_u32 := Core_Convert.Into__f_into (Core_Ops_Bit.Shr__f_shr (Core_Ops_Bit.Shl__f_shl (Core_Clone.Clone__f_clone (x)) (Core_Convert.Into__f_into (i))) (Core_Convert.Into__f_into (Core_Ops_Arith.Sub__f_sub (impl_9__BITS) (Core_Convert.Into__f_into ((1 : t_u32)))))) in *) +(* if *) +(* orb (Core_Cmp.PartialEq__f_eq (high_bit) (Core_Convert.Into__f_into ((1 : t_u32)))) (done) *) +(* then *) +(* let done := (true : bool) in *) +(* (count,done) *) +(* else *) +(* let count := Core_Ops_Arith.Add__f_add (count) (Core_Convert.Into__f_into ((1 : t_u32))) in *) +(* (count,done)) in *) +(* count. *) + +(* Definition rotate_left_u64 (x : t_u64) (shift : t_u32) : t_u64 := *) +(* let shift : t_u32 := Core_Ops_Arith.Rem__f_rem (shift) (impl_9__BITS) in *) +(* let left : t_u64 := Core_Ops_Bit.Shl__f_shl (Core_Clone.Clone__f_clone (x)) (Core_Clone.Clone__f_clone (shift)) in *) +(* let right : t_u64 := Core_Ops_Bit.Shr__f_shr (Core_Clone.Clone__f_clone (x)) (Core_Ops_Arith.Sub__f_sub (impl_9__BITS) (Core_Clone.Clone__f_clone (shift))) in *) +(* Core_Ops_Bit.BitOr__f_bitor (left) (right). *) + +(* Definition rotate_right_u64 (x : t_u64) (shift : t_u32) : t_u64 := *) +(* let shift : t_u32 := Core_Ops_Arith.Rem__f_rem (shift) (impl_9__BITS) in *) +(* let left : t_u64 := Core_Ops_Bit.Shr__f_shr (Core_Clone.Clone__f_clone (x)) (Core_Clone.Clone__f_clone (shift)) in *) +(* let right : t_u64 := Core_Ops_Bit.Shl__f_shl (Core_Clone.Clone__f_clone (x)) (Core_Ops_Arith.Sub__f_sub (impl_9__BITS) (Core_Clone.Clone__f_clone (shift))) in *) +(* Core_Ops_Bit.BitOr__f_bitor (left) (right). *) + +(* Definition bswap_u64 (x : t_u64) : t_u64 := *) +(* let count : t_u64 := Core_Convert.Into__f_into ((0 : t_u64)) in *) +(* let count := Rust_primitives_Hax_Folds.fold_range ((0 : t_u32)) (Core_Convert.Into__f_into (impl_9__BITS)) (fun count _ => *) +(* (true : bool)) (count) (fun count i => *) +(* let low_bit : t_u64 := Core_Convert.Into__f_into (Core_Ops_Bit.BitAnd__f_bitand (Core_Ops_Bit.Shr__f_shr (Core_Clone.Clone__f_clone (x)) (Core_Convert.Into__f_into (i))) (Core_Convert.Into__f_into ((1 : t_u64)))) in *) +(* let count := Core_Ops_Arith.Add__f_add (Core_Ops_Bit.Shl__f_shl (count) (Core_Convert.Into__f_into ((1 : t_u32)))) (low_bit) in *) +(* count) in *) +(* count. *) + +(* Definition ctpop_u128 (x : t_u128) : t_u32 := *) +(* let count : t_u32 := Core_Convert.Into__f_into ((0 : t_u32)) in *) +(* let count := Rust_primitives_Hax_Folds.fold_range ((0 : t_u32)) (Core_Convert.Into__f_into (impl_10__BITS)) (fun count _ => *) +(* (true : bool)) (count) (fun count i => *) +(* Core_Ops_Arith.Add__f_add (count) (Core_Convert.Into__f_into (Core_Ops_Bit.BitAnd__f_bitand (Core_Ops_Bit.Shr__f_shr (Core_Clone.Clone__f_clone (x)) (Core_Convert.Into__f_into (i))) (Core_Convert.Into__f_into ((1 : t_u128)))))) in *) +(* count. *) + +(* Definition cttz_u128 (x : t_u128) : t_u32 := *) +(* let count : t_u32 := Core_Convert.Into__f_into ((0 : t_u32)) in *) +(* let done := (false : bool) in *) +(* let (count,done) := Rust_primitives_Hax_Folds.fold_range ((0 : t_u32)) (Core_Convert.Into__f_into (impl_10__BITS)) (fun (count,done) _ => *) +(* (true : bool)) ((count,done)) (fun (count,done) i => *) +(* let low_bit : t_u32 := Core_Convert.Into__f_into (Core_Ops_Bit.BitAnd__f_bitand (Core_Ops_Bit.Shr__f_shr (Core_Clone.Clone__f_clone (x)) (Core_Convert.Into__f_into (i))) (Core_Convert.Into__f_into ((1 : t_u128)))) in *) +(* if *) +(* orb (Core_Cmp.PartialEq__f_eq (low_bit) (Core_Convert.Into__f_into ((1 : t_u32)))) (done) *) +(* then *) +(* let done := (true : bool) in *) +(* (count,done) *) +(* else *) +(* let count := Core_Ops_Arith.Add__f_add (count) (Core_Convert.Into__f_into ((1 : t_u32))) in *) +(* (count,done)) in *) +(* count. *) + +(* Definition ctlz_u128 (x : t_u128) : t_u32 := *) +(* let count : t_u32 := Core_Convert.Into__f_into ((0 : t_u32)) in *) +(* let done := (false : bool) in *) +(* let (count,done) := Rust_primitives_Hax_Folds.fold_range ((0 : t_u32)) (Core_Convert.Into__f_into (impl_10__BITS)) (fun (count,done) _ => *) +(* (true : bool)) ((count,done)) (fun (count,done) i => *) +(* let high_bit : t_u32 := Core_Convert.Into__f_into (Core_Ops_Bit.Shr__f_shr (Core_Ops_Bit.Shl__f_shl (Core_Clone.Clone__f_clone (x)) (Core_Convert.Into__f_into (i))) (Core_Convert.Into__f_into (Core_Ops_Arith.Sub__f_sub (impl_10__BITS) (Core_Convert.Into__f_into ((1 : t_u32)))))) in *) +(* if *) +(* orb (Core_Cmp.PartialEq__f_eq (high_bit) (Core_Convert.Into__f_into ((1 : t_u32)))) (done) *) +(* then *) +(* let done := (true : bool) in *) +(* (count,done) *) +(* else *) +(* let count := Core_Ops_Arith.Add__f_add (count) (Core_Convert.Into__f_into ((1 : t_u32))) in *) +(* (count,done)) in *) +(* count. *) + +(* Definition rotate_left_u128 (x : t_u128) (shift : t_u32) : t_u128 := *) +(* let shift : t_u32 := Core_Ops_Arith.Rem__f_rem (shift) (impl_10__BITS) in *) +(* let left : t_u128 := Core_Ops_Bit.Shl__f_shl (Core_Clone.Clone__f_clone (x)) (Core_Clone.Clone__f_clone (shift)) in *) +(* let right : t_u128 := Core_Ops_Bit.Shr__f_shr (Core_Clone.Clone__f_clone (x)) (Core_Ops_Arith.Sub__f_sub (impl_10__BITS) (Core_Clone.Clone__f_clone (shift))) in *) +(* Core_Ops_Bit.BitOr__f_bitor (left) (right). *) + +(* Definition rotate_right_u128 (x : t_u128) (shift : t_u32) : t_u128 := *) +(* let shift : t_u32 := Core_Ops_Arith.Rem__f_rem (shift) (impl_10__BITS) in *) +(* let left : t_u128 := Core_Ops_Bit.Shr__f_shr (Core_Clone.Clone__f_clone (x)) (Core_Clone.Clone__f_clone (shift)) in *) +(* let right : t_u128 := Core_Ops_Bit.Shl__f_shl (Core_Clone.Clone__f_clone (x)) (Core_Ops_Arith.Sub__f_sub (impl_10__BITS) (Core_Clone.Clone__f_clone (shift))) in *) +(* Core_Ops_Bit.BitOr__f_bitor (left) (right). *) + +(* Definition bswap_u128 (x : t_u128) : t_u128 := *) +(* let count : t_u128 := Core_Convert.Into__f_into ((0 : t_u128)) in *) +(* let count := Rust_primitives_Hax_Folds.fold_range ((0 : t_u32)) (Core_Convert.Into__f_into (impl_10__BITS)) (fun count _ => *) +(* (true : bool)) (count) (fun count i => *) +(* let low_bit : t_u128 := Core_Convert.Into__f_into (Core_Ops_Bit.BitAnd__f_bitand (Core_Ops_Bit.Shr__f_shr (Core_Clone.Clone__f_clone (x)) (Core_Convert.Into__f_into (i))) (Core_Convert.Into__f_into ((1 : t_u128)))) in *) +(* let count := Core_Ops_Arith.Add__f_add (Core_Ops_Bit.Shl__f_shl (count) (Core_Convert.Into__f_into ((1 : t_u32)))) (low_bit) in *) +(* count) in *) +(* count. *) + +(* Definition ctpop_usize (x : t_usize) : t_u32 := *) +(* let count : t_u32 := Core_Convert.Into__f_into ((0 : t_u32)) in *) +(* let count := Rust_primitives_Hax_Folds.fold_range ((0 : t_u32)) (Core_Convert.Into__f_into (impl_11__BITS)) (fun count _ => *) +(* (true : bool)) (count) (fun count i => *) +(* Core_Ops_Arith.Add__f_add (count) (Core_Convert.Into__f_into (Core_Ops_Bit.BitAnd__f_bitand (Core_Ops_Bit.Shr__f_shr (Core_Clone.Clone__f_clone (x)) (Core_Convert.Into__f_into (i))) (Core_Convert.Into__f_into ((1 : t_usize)))))) in *) +(* count. *) + +(* Definition cttz_usize (x : t_usize) : t_u32 := *) +(* let count : t_u32 := Core_Convert.Into__f_into ((0 : t_u32)) in *) +(* let done := (false : bool) in *) +(* let (count,done) := Rust_primitives_Hax_Folds.fold_range ((0 : t_u32)) (Core_Convert.Into__f_into (impl_11__BITS)) (fun (count,done) _ => *) +(* (true : bool)) ((count,done)) (fun (count,done) i => *) +(* let low_bit : t_u32 := Core_Convert.Into__f_into (Core_Ops_Bit.BitAnd__f_bitand (Core_Ops_Bit.Shr__f_shr (Core_Clone.Clone__f_clone (x)) (Core_Convert.Into__f_into (i))) (Core_Convert.Into__f_into ((1 : t_usize)))) in *) +(* if *) +(* orb (Core_Cmp.PartialEq__f_eq (low_bit) (Core_Convert.Into__f_into ((1 : t_u32)))) (done) *) +(* then *) +(* let done := (true : bool) in *) +(* (count,done) *) +(* else *) +(* let count := Core_Ops_Arith.Add__f_add (count) (Core_Convert.Into__f_into ((1 : t_u32))) in *) +(* (count,done)) in *) +(* count. *) + +(* Definition ctlz_usize (x : t_usize) : t_u32 := *) +(* let count : t_u32 := Core_Convert.Into__f_into ((0 : t_u32)) in *) +(* let done := (false : bool) in *) +(* let (count,done) := Rust_primitives_Hax_Folds.fold_range ((0 : t_u32)) (Core_Convert.Into__f_into (impl_11__BITS)) (fun (count,done) _ => *) +(* (true : bool)) ((count,done)) (fun (count,done) i => *) +(* let high_bit : t_u32 := Core_Convert.Into__f_into (Core_Ops_Bit.Shr__f_shr (Core_Ops_Bit.Shl__f_shl (Core_Clone.Clone__f_clone (x)) (Core_Convert.Into__f_into (i))) (Core_Convert.Into__f_into (Core_Ops_Arith.Sub__f_sub (impl_11__BITS) (Core_Convert.Into__f_into ((1 : t_u32)))))) in *) +(* if *) +(* orb (Core_Cmp.PartialEq__f_eq (high_bit) (Core_Convert.Into__f_into ((1 : t_u32)))) (done) *) +(* then *) +(* let done := (true : bool) in *) +(* (count,done) *) +(* else *) +(* let count := Core_Ops_Arith.Add__f_add (count) (Core_Convert.Into__f_into ((1 : t_u32))) in *) +(* (count,done)) in *) +(* count. *) + +(* Definition rotate_left_usize (x : t_usize) (shift : t_u32) : t_usize := *) +(* let shift : t_u32 := Core_Ops_Arith.Rem__f_rem (shift) (impl_11__BITS) in *) +(* let left : t_usize := Core_Ops_Bit.Shl__f_shl (Core_Clone.Clone__f_clone (x)) (Core_Clone.Clone__f_clone (shift)) in *) +(* let right : t_usize := Core_Ops_Bit.Shr__f_shr (Core_Clone.Clone__f_clone (x)) (Core_Ops_Arith.Sub__f_sub (impl_11__BITS) (Core_Clone.Clone__f_clone (shift))) in *) +(* Core_Ops_Bit.BitOr__f_bitor (left) (right). *) + +(* Definition rotate_right_usize (x : t_usize) (shift : t_u32) : t_usize := *) +(* let shift : t_u32 := Core_Ops_Arith.Rem__f_rem (shift) (impl_11__BITS) in *) +(* let left : t_usize := Core_Ops_Bit.Shr__f_shr (Core_Clone.Clone__f_clone (x)) (Core_Clone.Clone__f_clone (shift)) in *) +(* let right : t_usize := Core_Ops_Bit.Shl__f_shl (Core_Clone.Clone__f_clone (x)) (Core_Ops_Arith.Sub__f_sub (impl_11__BITS) (Core_Clone.Clone__f_clone (shift))) in *) +(* Core_Ops_Bit.BitOr__f_bitor (left) (right). *) + +(* Definition bswap_usize (x : t_usize) : t_usize := *) +(* let count : t_usize := Core_Convert.Into__f_into ((0 : t_usize)) in *) +(* let count := Rust_primitives_Hax_Folds.fold_range ((0 : t_u32)) (Core_Convert.Into__f_into (impl_11__BITS)) (fun count _ => *) +(* (true : bool)) (count) (fun count i => *) +(* let low_bit : t_usize := Core_Convert.Into__f_into (Core_Ops_Bit.BitAnd__f_bitand (Core_Ops_Bit.Shr__f_shr (Core_Clone.Clone__f_clone (x)) (Core_Convert.Into__f_into (i))) (Core_Convert.Into__f_into ((1 : t_usize)))) in *) +(* let count := Core_Ops_Arith.Add__f_add (Core_Ops_Bit.Shl__f_shl (count) (Core_Convert.Into__f_into ((1 : t_u32)))) (low_bit) in *) +(* count) in *) +(* count. *) + +(* Definition impl__wrapping_neg (self : t_i8) : t_i8 := *) +(* impl__wrapping_sub (Core_Convert.Into__f_into ((0 : t_i8))) (self). *) + +(* Definition impl__signum (self : t_i8) : t_i8 := *) +(* if *) +(* Core_Cmp.PartialOrd__f_lt (Core_Clone.Clone__f_clone (self)) (Core_Convert.Into__f_into ((0 : t_i8))) *) +(* then *) +(* Core_Convert.Into__f_into ((-1 : t_i8)) *) +(* else *) +(* if *) +(* Core_Cmp.PartialEq__f_eq (self) (Core_Convert.Into__f_into ((0 : t_i8))) *) +(* then *) +(* Core_Convert.Into__f_into ((0 : t_i8)) *) +(* else *) +(* Core_Convert.Into__f_into ((1 : t_i8)). *) + +(* Definition impl__is_positive (self : t_i8) : bool := *) +(* Core_Cmp.PartialOrd__f_gt (self) (Core_Convert.Into__f_into ((0 : t_i8))). *) + +(* Definition impl__is_negative (self : t_i8) : bool := *) +(* Core_Cmp.PartialOrd__f_lt (self) (Core_Convert.Into__f_into ((0 : t_i8))). *) + +(* Definition impl__wrapping_abs (self : t_i8) : t_i8 := *) +(* if *) +(* impl__is_negative (Core_Clone.Clone__f_clone (self)) *) +(* then *) +(* impl__wrapping_neg (self) *) +(* else *) +(* self. *) + +(* Definition impl__rem_euclid (self : t_i8) (rhs : t_i8) : t_i8 := *) +(* let r := Core_Ops_Arith.Rem__f_rem (self) (Core_Clone.Clone__f_clone (rhs)) in *) +(* if *) +(* Core_Cmp.PartialOrd__f_lt (r) (Core_Convert.Into__f_into ((0 : t_i8))) *) +(* then *) +(* impl__wrapping_add (r) (impl__wrapping_abs (rhs)) *) +(* else *) +(* r. *) + +(* Definition impl__abs (self : t_i8) : t_i8 := *) +(* if *) +(* impl__is_negative (Core_Clone.Clone__f_clone (self)) *) +(* then *) +(* Core_Ops_Arith.Neg__f_neg (self) *) +(* else *) +(* self. *) + +(* Definition impl_1__wrapping_neg (self : t_i16) : t_i16 := *) +(* impl_1__wrapping_sub (Core_Convert.Into__f_into ((0 : t_i16))) (self). *) + +(* Definition impl_1__signum (self : t_i16) : t_i16 := *) +(* if *) +(* Core_Cmp.PartialOrd__f_lt (Core_Clone.Clone__f_clone (self)) (Core_Convert.Into__f_into ((0 : t_i16))) *) +(* then *) +(* Core_Convert.Into__f_into ((-1 : t_i16)) *) +(* else *) +(* if *) +(* Core_Cmp.PartialEq__f_eq (self) (Core_Convert.Into__f_into ((0 : t_i16))) *) +(* then *) +(* Core_Convert.Into__f_into ((0 : t_i16)) *) +(* else *) +(* Core_Convert.Into__f_into ((1 : t_i16)). *) + +(* Definition impl_1__is_positive (self : t_i16) : bool := *) +(* Core_Cmp.PartialOrd__f_gt (self) (Core_Convert.Into__f_into ((0 : t_i16))). *) + +(* Definition impl_1__is_negative (self : t_i16) : bool := *) +(* Core_Cmp.PartialOrd__f_lt (self) (Core_Convert.Into__f_into ((0 : t_i16))). *) + +(* Definition impl_1__wrapping_abs (self : t_i16) : t_i16 := *) +(* if *) +(* impl_1__is_negative (Core_Clone.Clone__f_clone (self)) *) +(* then *) +(* impl_1__wrapping_neg (self) *) +(* else *) +(* self. *) + +(* Definition impl_1__rem_euclid (self : t_i16) (rhs : t_i16) : t_i16 := *) +(* let r := Core_Ops_Arith.Rem__f_rem (self) (Core_Clone.Clone__f_clone (rhs)) in *) +(* if *) +(* Core_Cmp.PartialOrd__f_lt (r) (Core_Convert.Into__f_into ((0 : t_i16))) *) +(* then *) +(* impl_1__wrapping_add (r) (impl_1__wrapping_abs (rhs)) *) +(* else *) +(* r. *) + +(* Definition impl_1__abs (self : t_i16) : t_i16 := *) +(* if *) +(* impl_1__is_negative (Core_Clone.Clone__f_clone (self)) *) +(* then *) +(* Core_Ops_Arith.Neg__f_neg (self) *) +(* else *) +(* self. *) + +(* Definition impl_2__wrapping_neg (self : t_i32) : t_i32 := *) +(* impl_2__wrapping_sub (Core_Convert.Into__f_into ((0 : t_i32))) (self). *) + +(* Definition impl_2__signum (self : t_i32) : t_i32 := *) +(* if *) +(* Core_Cmp.PartialOrd__f_lt (Core_Clone.Clone__f_clone (self)) (Core_Convert.Into__f_into ((0 : t_i32))) *) +(* then *) +(* Core_Convert.Into__f_into ((-1 : t_i32)) *) +(* else *) +(* if *) +(* Core_Cmp.PartialEq__f_eq (self) (Core_Convert.Into__f_into ((0 : t_i32))) *) +(* then *) +(* Core_Convert.Into__f_into ((0 : t_i32)) *) +(* else *) +(* Core_Convert.Into__f_into ((1 : t_i32)). *) + +(* Definition impl_2__is_positive (self : t_i32) : bool := *) +(* Core_Cmp.PartialOrd__f_gt (self) (Core_Convert.Into__f_into ((0 : t_i32))). *) + +(* Definition impl_2__is_negative (self : t_i32) : bool := *) +(* Core_Cmp.PartialOrd__f_lt (self) (Core_Convert.Into__f_into ((0 : t_i32))). *) + +(* Definition impl_2__wrapping_abs (self : t_i32) : t_i32 := *) +(* if *) +(* impl_2__is_negative (Core_Clone.Clone__f_clone (self)) *) +(* then *) +(* impl_2__wrapping_neg (self) *) +(* else *) +(* self. *) + +(* Definition impl_2__rem_euclid (self : t_i32) (rhs : t_i32) : t_i32 := *) +(* let r := Core_Ops_Arith.Rem__f_rem (self) (Core_Clone.Clone__f_clone (rhs)) in *) +(* if *) +(* Core_Cmp.PartialOrd__f_lt (r) (Core_Convert.Into__f_into ((0 : t_i32))) *) +(* then *) +(* impl_2__wrapping_add (r) (impl_2__wrapping_abs (rhs)) *) +(* else *) +(* r. *) + +(* Definition impl_2__abs (self : t_i32) : t_i32 := *) +(* if *) +(* impl_2__is_negative (Core_Clone.Clone__f_clone (self)) *) +(* then *) +(* Core_Ops_Arith.Neg__f_neg (self) *) +(* else *) +(* self. *) + +(* Definition impl_3__wrapping_neg (self : t_i64) : t_i64 := *) +(* impl_3__wrapping_sub (Core_Convert.Into__f_into ((0 : t_i64))) (self). *) + +(* Definition impl_3__signum (self : t_i64) : t_i64 := *) +(* if *) +(* Core_Cmp.PartialOrd__f_lt (Core_Clone.Clone__f_clone (self)) (Core_Convert.Into__f_into ((0 : t_i64))) *) +(* then *) +(* Core_Convert.Into__f_into ((-1 : t_i64)) *) +(* else *) +(* if *) +(* Core_Cmp.PartialEq__f_eq (self) (Core_Convert.Into__f_into ((0 : t_i64))) *) +(* then *) +(* Core_Convert.Into__f_into ((0 : t_i64)) *) +(* else *) +(* Core_Convert.Into__f_into ((1 : t_i64)). *) + +(* Definition impl_3__is_positive (self : t_i64) : bool := *) +(* Core_Cmp.PartialOrd__f_gt (self) (Core_Convert.Into__f_into ((0 : t_i64))). *) + +(* Definition impl_3__is_negative (self : t_i64) : bool := *) +(* Core_Cmp.PartialOrd__f_lt (self) (Core_Convert.Into__f_into ((0 : t_i64))). *) + +(* Definition impl_3__wrapping_abs (self : t_i64) : t_i64 := *) +(* if *) +(* impl_3__is_negative (Core_Clone.Clone__f_clone (self)) *) +(* then *) +(* impl_3__wrapping_neg (self) *) +(* else *) +(* self. *) + +(* Definition impl_3__rem_euclid (self : t_i64) (rhs : t_i64) : t_i64 := *) +(* let r := Core_Ops_Arith.Rem__f_rem (self) (Core_Clone.Clone__f_clone (rhs)) in *) +(* if *) +(* Core_Cmp.PartialOrd__f_lt (r) (Core_Convert.Into__f_into ((0 : t_i64))) *) +(* then *) +(* impl_3__wrapping_add (r) (impl_3__wrapping_abs (rhs)) *) +(* else *) +(* r. *) + +(* Definition impl_3__abs (self : t_i64) : t_i64 := *) +(* if *) +(* impl_3__is_negative (Core_Clone.Clone__f_clone (self)) *) +(* then *) +(* Core_Ops_Arith.Neg__f_neg (self) *) +(* else *) +(* self. *) + +(* Definition impl_4__wrapping_neg (self : t_i128) : t_i128 := *) +(* impl_4__wrapping_sub (Core_Convert.Into__f_into ((0 : t_i128))) (self). *) + +(* Definition impl_4__signum (self : t_i128) : t_i128 := *) +(* if *) +(* Core_Cmp.PartialOrd__f_lt (Core_Clone.Clone__f_clone (self)) (Core_Convert.Into__f_into ((0 : t_i128))) *) +(* then *) +(* Core_Convert.Into__f_into ((-1 : t_i128)) *) +(* else *) +(* if *) +(* Core_Cmp.PartialEq__f_eq (self) (Core_Convert.Into__f_into ((0 : t_i128))) *) +(* then *) +(* Core_Convert.Into__f_into ((0 : t_i128)) *) +(* else *) +(* Core_Convert.Into__f_into ((1 : t_i128)). *) + +(* Definition impl_4__is_positive (self : t_i128) : bool := *) +(* Core_Cmp.PartialOrd__f_gt (self) (Core_Convert.Into__f_into ((0 : t_i128))). *) + +(* Definition impl_4__is_negative (self : t_i128) : bool := *) +(* Core_Cmp.PartialOrd__f_lt (self) (Core_Convert.Into__f_into ((0 : t_i128))). *) + +(* Definition impl_4__wrapping_abs (self : t_i128) : t_i128 := *) +(* if *) +(* impl_4__is_negative (Core_Clone.Clone__f_clone (self)) *) +(* then *) +(* impl_4__wrapping_neg (self) *) +(* else *) +(* self. *) + +(* Definition impl_4__rem_euclid (self : t_i128) (rhs : t_i128) : t_i128 := *) +(* let r := Core_Ops_Arith.Rem__f_rem (self) (Core_Clone.Clone__f_clone (rhs)) in *) +(* if *) +(* Core_Cmp.PartialOrd__f_lt (r) (Core_Convert.Into__f_into ((0 : t_i128))) *) +(* then *) +(* impl_4__wrapping_add (r) (impl_4__wrapping_abs (rhs)) *) +(* else *) +(* r. *) + +(* Definition impl_4__abs (self : t_i128) : t_i128 := *) +(* if *) +(* impl_4__is_negative (Core_Clone.Clone__f_clone (self)) *) +(* then *) +(* Core_Ops_Arith.Neg__f_neg (self) *) +(* else *) +(* self. *) + +(* Definition impl_5__wrapping_neg (self : t_isize) : t_isize := *) +(* impl_5__wrapping_sub (Core_Convert.Into__f_into ((0 : t_isize))) (self). *) + +(* Definition impl_5__signum (self : t_isize) : t_isize := *) +(* if *) +(* Core_Cmp.PartialOrd__f_lt (Core_Clone.Clone__f_clone (self)) (Core_Convert.Into__f_into ((0 : t_isize))) *) +(* then *) +(* Core_Convert.Into__f_into ((-1 : t_isize)) *) +(* else *) +(* if *) +(* Core_Cmp.PartialEq__f_eq (self) (Core_Convert.Into__f_into ((0 : t_isize))) *) +(* then *) +(* Core_Convert.Into__f_into ((0 : t_isize)) *) +(* else *) +(* Core_Convert.Into__f_into ((1 : t_isize)). *) + +(* Definition impl_5__is_positive (self : t_isize) : bool := *) +(* Core_Cmp.PartialOrd__f_gt (self) (Core_Convert.Into__f_into ((0 : t_isize))). *) + +(* Definition impl_5__is_negative (self : t_isize) : bool := *) +(* Core_Cmp.PartialOrd__f_lt (self) (Core_Convert.Into__f_into ((0 : t_isize))). *) + +(* Definition impl_5__wrapping_abs (self : t_isize) : t_isize := *) +(* if *) +(* impl_5__is_negative (Core_Clone.Clone__f_clone (self)) *) +(* then *) +(* impl_5__wrapping_neg (self) *) +(* else *) +(* self. *) + +(* Definition impl_5__rem_euclid (self : t_isize) (rhs : t_isize) : t_isize := *) +(* let r := Core_Ops_Arith.Rem__f_rem (self) (Core_Clone.Clone__f_clone (rhs)) in *) +(* if *) +(* Core_Cmp.PartialOrd__f_lt (r) (Core_Convert.Into__f_into ((0 : t_isize))) *) +(* then *) +(* impl_5__wrapping_add (r) (impl_5__wrapping_abs (rhs)) *) +(* else *) +(* r. *) + +(* Definition impl_5__abs (self : t_isize) : t_isize := *) +(* if *) +(* impl_5__is_negative (Core_Clone.Clone__f_clone (self)) *) +(* then *) +(* Core_Ops_Arith.Neg__f_neg (self) *) +(* else *) +(* self. *) + +(* Definition impl_6__count_ones (self : t_u8) : t_u32 := *) +(* Rust_primitives_Hax_Control_flow_monad_Mexception.run (let hoist1 := Core_Ops_Control_flow.ControlFlow_Break (ctpop_u8 (self)) in *) +(* Core_Ops_Control_flow.ControlFlow_Continue (Rust_primitives_Hax.never_to_any (hoist1))). *) + +(* Definition impl_6__count_zeros (self : t_u8) : t_u32 := *) +(* impl_6__count_ones (Core_Ops_Bit.Not__f_not (self)). *) + +(* Definition impl_6__leading_zeros (self : t_u8) : t_u32 := *) +(* Rust_primitives_Hax_Control_flow_monad_Mexception.run (let hoist2 := Core_Ops_Control_flow.ControlFlow_Break (ctlz_u8 (self)) in *) +(* Core_Ops_Control_flow.ControlFlow_Continue (Rust_primitives_Hax.never_to_any (hoist2))). *) + +(* Definition impl_6__trailing_zeros (self : t_u8) : t_u32 := *) +(* Rust_primitives_Hax_Control_flow_monad_Mexception.run (let hoist3 := Core_Ops_Control_flow.ControlFlow_Break (cttz_u8 (self)) in *) +(* Core_Ops_Control_flow.ControlFlow_Continue (Rust_primitives_Hax.never_to_any (hoist3))). *) + +(* Definition impl_6__leading_ones (self : t_u8) : t_u32 := *) +(* impl_6__leading_zeros (Core_Ops_Bit.Not__f_not (self)). *) + +(* Definition impl_6__trailing_ones (self : t_u8) : t_u32 := *) +(* impl_6__trailing_zeros (Core_Ops_Bit.Not__f_not (self)). *) + +(* Definition impl_6__rotate_left (self : t_u8) (n : t_u32) : t_u8 := *) +(* Rust_primitives_Hax_Control_flow_monad_Mexception.run (let hoist4 := Core_Ops_Control_flow.ControlFlow_Break (rotate_left_u8 (self) (n)) in *) +(* Core_Ops_Control_flow.ControlFlow_Continue (Rust_primitives_Hax.never_to_any (hoist4))). *) + +(* Definition impl_6__rotate_right (self : t_u8) (n : t_u32) : t_u8 := *) +(* Rust_primitives_Hax_Control_flow_monad_Mexception.run (let hoist5 := Core_Ops_Control_flow.ControlFlow_Break (rotate_right_u8 (self) (n)) in *) +(* Core_Ops_Control_flow.ControlFlow_Continue (Rust_primitives_Hax.never_to_any (hoist5))). *) + +(* Definition impl_6__swap_bytes (self : t_u8) : t_u8 := *) +(* Core_Convert.Into__f_into (bswap_u8 (self)). *) + +(* Definition impl_6__from_be (x : t_u8) : t_u8 := *) +(* impl_6__swap_bytes (x). *) + +(* Definition impl_6__to_be (self : t_u8) : t_u8 := *) +(* impl_6__swap_bytes (self). *) + +(* Definition impl_6__checked_div (self : t_u8) (rhs : t_u8) : Core_Option.t_Option ((t_u8)) := *) +(* if *) +(* Core_Cmp.PartialEq__f_eq (rhs) (Core_Convert.Into__f_into ((0 : t_u8))) *) +(* then *) +(* Core_Option.Option_None *) +(* else *) +(* Core_Option.Option_Some (unchecked_div_u8 (self) (rhs)). *) + +(* Definition impl_6__wrapping_div (self : t_u8) (rhs : t_u8) : t_u8 := *) +(* Core_Ops_Arith.Div__f_div (self) (rhs). *) + +(* Definition impl_6__wrapping_div_euclid (self : t_u8) (rhs : t_u8) : t_u8 := *) +(* Core_Ops_Arith.Div__f_div (self) (rhs). *) + +(* Definition impl_6__wrapping_rem (self : t_u8) (rhs : t_u8) : t_u8 := *) +(* Core_Ops_Arith.Rem__f_rem (self) (rhs). *) + +(* Definition impl_6__wrapping_rem_euclid (self : t_u8) (rhs : t_u8) : t_u8 := *) +(* Core_Ops_Arith.Rem__f_rem (self) (rhs). *) + +(* Definition impl_7__count_ones (self : t_u16) : t_u32 := *) +(* Rust_primitives_Hax_Control_flow_monad_Mexception.run (let hoist6 := Core_Ops_Control_flow.ControlFlow_Break (ctpop_u16 (self)) in *) +(* Core_Ops_Control_flow.ControlFlow_Continue (Rust_primitives_Hax.never_to_any (hoist6))). *) + +(* Definition impl_7__count_zeros (self : t_u16) : t_u32 := *) +(* impl_7__count_ones (Core_Ops_Bit.Not__f_not (self)). *) + +(* Definition impl_7__leading_zeros (self : t_u16) : t_u32 := *) +(* Rust_primitives_Hax_Control_flow_monad_Mexception.run (let hoist7 := Core_Ops_Control_flow.ControlFlow_Break (ctlz_u16 (self)) in *) +(* Core_Ops_Control_flow.ControlFlow_Continue (Rust_primitives_Hax.never_to_any (hoist7))). *) + +(* Definition impl_7__trailing_zeros (self : t_u16) : t_u32 := *) +(* Rust_primitives_Hax_Control_flow_monad_Mexception.run (let hoist8 := Core_Ops_Control_flow.ControlFlow_Break (cttz_u16 (self)) in *) +(* Core_Ops_Control_flow.ControlFlow_Continue (Rust_primitives_Hax.never_to_any (hoist8))). *) + +(* Definition impl_7__leading_ones (self : t_u16) : t_u32 := *) +(* impl_7__leading_zeros (Core_Ops_Bit.Not__f_not (self)). *) + +(* Definition impl_7__trailing_ones (self : t_u16) : t_u32 := *) +(* impl_7__trailing_zeros (Core_Ops_Bit.Not__f_not (self)). *) + +(* Definition impl_7__rotate_left (self : t_u16) (n : t_u32) : t_u16 := *) +(* Rust_primitives_Hax_Control_flow_monad_Mexception.run (let hoist9 := Core_Ops_Control_flow.ControlFlow_Break (rotate_left_u16 (self) (n)) in *) +(* Core_Ops_Control_flow.ControlFlow_Continue (Rust_primitives_Hax.never_to_any (hoist9))). *) + +(* Definition impl_7__rotate_right (self : t_u16) (n : t_u32) : t_u16 := *) +(* Rust_primitives_Hax_Control_flow_monad_Mexception.run (let hoist10 := Core_Ops_Control_flow.ControlFlow_Break (rotate_right_u16 (self) (n)) in *) +(* Core_Ops_Control_flow.ControlFlow_Continue (Rust_primitives_Hax.never_to_any (hoist10))). *) + +(* Definition impl_7__swap_bytes (self : t_u16) : t_u16 := *) +(* Core_Convert.Into__f_into (bswap_u16 (self)). *) + +(* Definition impl_7__from_be (x : t_u16) : t_u16 := *) +(* impl_7__swap_bytes (x). *) + +(* Definition impl_7__to_be (self : t_u16) : t_u16 := *) +(* impl_7__swap_bytes (self). *) + +(* Definition impl_7__checked_div (self : t_u16) (rhs : t_u16) : Core_Option.t_Option ((t_u16)) := *) +(* if *) +(* Core_Cmp.PartialEq__f_eq (rhs) (Core_Convert.Into__f_into ((0 : t_u16))) *) +(* then *) +(* Core_Option.Option_None *) +(* else *) +(* Core_Option.Option_Some (unchecked_div_u16 (self) (rhs)). *) + +(* Definition impl_7__wrapping_div (self : t_u16) (rhs : t_u16) : t_u16 := *) +(* Core_Ops_Arith.Div__f_div (self) (rhs). *) + +(* Definition impl_7__wrapping_div_euclid (self : t_u16) (rhs : t_u16) : t_u16 := *) +(* Core_Ops_Arith.Div__f_div (self) (rhs). *) + +(* Definition impl_7__wrapping_rem (self : t_u16) (rhs : t_u16) : t_u16 := *) +(* Core_Ops_Arith.Rem__f_rem (self) (rhs). *) + +(* Definition impl_7__wrapping_rem_euclid (self : t_u16) (rhs : t_u16) : t_u16 := *) +(* Core_Ops_Arith.Rem__f_rem (self) (rhs). *) + +(* Definition impl_8__count_ones (self : t_u32) : t_u32 := *) +(* Rust_primitives_Hax_Control_flow_monad_Mexception.run (let hoist11 := Core_Ops_Control_flow.ControlFlow_Break (ctpop_u32 (self)) in *) +(* Core_Ops_Control_flow.ControlFlow_Continue (Rust_primitives_Hax.never_to_any (hoist11))). *) + +(* Definition impl_8__count_zeros (self : t_u32) : t_u32 := *) +(* impl_8__count_ones (Core_Ops_Bit.Not__f_not (self)). *) + +(* Definition impl_8__leading_zeros (self : t_u32) : t_u32 := *) +(* Rust_primitives_Hax_Control_flow_monad_Mexception.run (let hoist12 := Core_Ops_Control_flow.ControlFlow_Break (ctlz_u32 (self)) in *) +(* Core_Ops_Control_flow.ControlFlow_Continue (Rust_primitives_Hax.never_to_any (hoist12))). *) + +(* Definition impl_8__trailing_zeros (self : t_u32) : t_u32 := *) +(* Rust_primitives_Hax_Control_flow_monad_Mexception.run (let hoist13 := Core_Ops_Control_flow.ControlFlow_Break (cttz_u32 (self)) in *) +(* Core_Ops_Control_flow.ControlFlow_Continue (Rust_primitives_Hax.never_to_any (hoist13))). *) + +(* Definition impl_8__leading_ones (self : t_u32) : t_u32 := *) +(* impl_8__leading_zeros (Core_Ops_Bit.Not__f_not (self)). *) + +(* Definition impl_8__trailing_ones (self : t_u32) : t_u32 := *) +(* impl_8__trailing_zeros (Core_Ops_Bit.Not__f_not (self)). *) + +(* Definition impl_8__rotate_left (self : t_u32) (n : t_u32) : t_u32 := *) +(* Rust_primitives_Hax_Control_flow_monad_Mexception.run (let hoist14 := Core_Ops_Control_flow.ControlFlow_Break (rotate_left_u32 (self) (n)) in *) +(* Core_Ops_Control_flow.ControlFlow_Continue (Rust_primitives_Hax.never_to_any (hoist14))). *) + +(* Definition impl_8__rotate_right (self : t_u32) (n : t_u32) : t_u32 := *) +(* Rust_primitives_Hax_Control_flow_monad_Mexception.run (let hoist15 := Core_Ops_Control_flow.ControlFlow_Break (rotate_right_u32 (self) (n)) in *) +(* Core_Ops_Control_flow.ControlFlow_Continue (Rust_primitives_Hax.never_to_any (hoist15))). *) + +(* Definition impl_8__swap_bytes (self : t_u32) : t_u32 := *) +(* Core_Convert.Into__f_into (bswap_u32 (self)). *) + +(* Definition impl_8__from_be (x : t_u32) : t_u32 := *) +(* impl_8__swap_bytes (x). *) + +(* Definition impl_8__to_be (self : t_u32) : t_u32 := *) +(* impl_8__swap_bytes (self). *) + +(* Definition impl_8__checked_div (self : t_u32) (rhs : t_u32) : Core_Option.t_Option ((t_u32)) := *) +(* if *) +(* Core_Cmp.PartialEq__f_eq (rhs) (Core_Convert.Into__f_into ((0 : t_u32))) *) +(* then *) +(* Core_Option.Option_None *) +(* else *) +(* Core_Option.Option_Some (unchecked_div_u32 (self) (rhs)). *) + +(* Definition impl_8__wrapping_div (self : t_u32) (rhs : t_u32) : t_u32 := *) +(* Core_Ops_Arith.Div__f_div (self) (rhs). *) + +(* Definition impl_8__wrapping_div_euclid (self : t_u32) (rhs : t_u32) : t_u32 := *) +(* Core_Ops_Arith.Div__f_div (self) (rhs). *) + +(* Definition impl_8__wrapping_rem (self : t_u32) (rhs : t_u32) : t_u32 := *) +(* Core_Ops_Arith.Rem__f_rem (self) (rhs). *) + +(* Definition impl_8__wrapping_rem_euclid (self : t_u32) (rhs : t_u32) : t_u32 := *) +(* Core_Ops_Arith.Rem__f_rem (self) (rhs). *) + +(* Definition impl_9__count_ones (self : t_u64) : t_u32 := *) +(* Rust_primitives_Hax_Control_flow_monad_Mexception.run (let hoist16 := Core_Ops_Control_flow.ControlFlow_Break (ctpop_u64 (self)) in *) +(* Core_Ops_Control_flow.ControlFlow_Continue (Rust_primitives_Hax.never_to_any (hoist16))). *) + +(* Definition impl_9__count_zeros (self : t_u64) : t_u32 := *) +(* impl_9__count_ones (Core_Ops_Bit.Not__f_not (self)). *) + +(* Definition impl_9__leading_zeros (self : t_u64) : t_u32 := *) +(* Rust_primitives_Hax_Control_flow_monad_Mexception.run (let hoist17 := Core_Ops_Control_flow.ControlFlow_Break (ctlz_u64 (self)) in *) +(* Core_Ops_Control_flow.ControlFlow_Continue (Rust_primitives_Hax.never_to_any (hoist17))). *) + +(* Definition impl_9__trailing_zeros (self : t_u64) : t_u32 := *) +(* Rust_primitives_Hax_Control_flow_monad_Mexception.run (let hoist18 := Core_Ops_Control_flow.ControlFlow_Break (cttz_u64 (self)) in *) +(* Core_Ops_Control_flow.ControlFlow_Continue (Rust_primitives_Hax.never_to_any (hoist18))). *) + +(* Definition impl_9__leading_ones (self : t_u64) : t_u32 := *) +(* impl_9__leading_zeros (Core_Ops_Bit.Not__f_not (self)). *) + +(* Definition impl_9__trailing_ones (self : t_u64) : t_u32 := *) +(* impl_9__trailing_zeros (Core_Ops_Bit.Not__f_not (self)). *) + +(* Definition impl_9__rotate_left (self : t_u64) (n : t_u32) : t_u64 := *) +(* Rust_primitives_Hax_Control_flow_monad_Mexception.run (let hoist19 := Core_Ops_Control_flow.ControlFlow_Break (rotate_left_u64 (self) (n)) in *) +(* Core_Ops_Control_flow.ControlFlow_Continue (Rust_primitives_Hax.never_to_any (hoist19))). *) + +(* Definition impl_9__rotate_right (self : t_u64) (n : t_u32) : t_u64 := *) +(* Rust_primitives_Hax_Control_flow_monad_Mexception.run (let hoist20 := Core_Ops_Control_flow.ControlFlow_Break (rotate_right_u64 (self) (n)) in *) +(* Core_Ops_Control_flow.ControlFlow_Continue (Rust_primitives_Hax.never_to_any (hoist20))). *) + +(* Definition impl_9__swap_bytes (self : t_u64) : t_u64 := *) +(* Core_Convert.Into__f_into (bswap_u64 (self)). *) + +(* Definition impl_9__from_be (x : t_u64) : t_u64 := *) +(* impl_9__swap_bytes (x). *) + +(* Definition impl_9__to_be (self : t_u64) : t_u64 := *) +(* impl_9__swap_bytes (self). *) + +(* Definition impl_9__checked_div (self : t_u64) (rhs : t_u64) : Core_Option.t_Option ((t_u64)) := *) +(* if *) +(* Core_Cmp.PartialEq__f_eq (rhs) (Core_Convert.Into__f_into ((0 : t_u64))) *) +(* then *) +(* Core_Option.Option_None *) +(* else *) +(* Core_Option.Option_Some (unchecked_div_u64 (self) (rhs)). *) + +(* Definition impl_9__wrapping_div (self : t_u64) (rhs : t_u64) : t_u64 := *) +(* Core_Ops_Arith.Div__f_div (self) (rhs). *) + +(* Definition impl_9__wrapping_div_euclid (self : t_u64) (rhs : t_u64) : t_u64 := *) +(* Core_Ops_Arith.Div__f_div (self) (rhs). *) + +(* Definition impl_9__wrapping_rem (self : t_u64) (rhs : t_u64) : t_u64 := *) +(* Core_Ops_Arith.Rem__f_rem (self) (rhs). *) + +(* Definition impl_9__wrapping_rem_euclid (self : t_u64) (rhs : t_u64) : t_u64 := *) +(* Core_Ops_Arith.Rem__f_rem (self) (rhs). *) + +(* Definition impl_10__count_ones (self : t_u128) : t_u32 := *) +(* Rust_primitives_Hax_Control_flow_monad_Mexception.run (let hoist21 := Core_Ops_Control_flow.ControlFlow_Break (ctpop_u128 (self)) in *) +(* Core_Ops_Control_flow.ControlFlow_Continue (Rust_primitives_Hax.never_to_any (hoist21))). *) + +(* Definition impl_10__count_zeros (self : t_u128) : t_u32 := *) +(* impl_10__count_ones (Core_Ops_Bit.Not__f_not (self)). *) + +(* Definition impl_10__leading_zeros (self : t_u128) : t_u32 := *) +(* Rust_primitives_Hax_Control_flow_monad_Mexception.run (let hoist22 := Core_Ops_Control_flow.ControlFlow_Break (ctlz_u128 (self)) in *) +(* Core_Ops_Control_flow.ControlFlow_Continue (Rust_primitives_Hax.never_to_any (hoist22))). *) + +(* Definition impl_10__trailing_zeros (self : t_u128) : t_u32 := *) +(* Rust_primitives_Hax_Control_flow_monad_Mexception.run (let hoist23 := Core_Ops_Control_flow.ControlFlow_Break (cttz_u128 (self)) in *) +(* Core_Ops_Control_flow.ControlFlow_Continue (Rust_primitives_Hax.never_to_any (hoist23))). *) + +(* Definition impl_10__leading_ones (self : t_u128) : t_u32 := *) +(* impl_10__leading_zeros (Core_Ops_Bit.Not__f_not (self)). *) + +(* Definition impl_10__trailing_ones (self : t_u128) : t_u32 := *) +(* impl_10__trailing_zeros (Core_Ops_Bit.Not__f_not (self)). *) + +(* Definition impl_10__rotate_left (self : t_u128) (n : t_u32) : t_u128 := *) +(* Rust_primitives_Hax_Control_flow_monad_Mexception.run (let hoist24 := Core_Ops_Control_flow.ControlFlow_Break (rotate_left_u128 (self) (n)) in *) +(* Core_Ops_Control_flow.ControlFlow_Continue (Rust_primitives_Hax.never_to_any (hoist24))). *) + +(* Definition impl_10__rotate_right (self : t_u128) (n : t_u32) : t_u128 := *) +(* Rust_primitives_Hax_Control_flow_monad_Mexception.run (let hoist25 := Core_Ops_Control_flow.ControlFlow_Break (rotate_right_u128 (self) (n)) in *) +(* Core_Ops_Control_flow.ControlFlow_Continue (Rust_primitives_Hax.never_to_any (hoist25))). *) + +(* Definition impl_10__swap_bytes (self : t_u128) : t_u128 := *) +(* Core_Convert.Into__f_into (bswap_u128 (self)). *) + +(* Definition impl_10__from_be (x : t_u128) : t_u128 := *) +(* impl_10__swap_bytes (x). *) + +(* Definition impl_10__to_be (self : t_u128) : t_u128 := *) +(* impl_10__swap_bytes (self). *) + +(* Definition impl_10__checked_div (self : t_u128) (rhs : t_u128) : Core_Option.t_Option ((t_u128)) := *) +(* if *) +(* Core_Cmp.PartialEq__f_eq (rhs) (Core_Convert.Into__f_into ((0 : t_u128))) *) +(* then *) +(* Core_Option.Option_None *) +(* else *) +(* Core_Option.Option_Some (unchecked_div_u128 (self) (rhs)). *) + +(* Definition impl_10__wrapping_div (self : t_u128) (rhs : t_u128) : t_u128 := *) +(* Core_Ops_Arith.Div__f_div (self) (rhs). *) + +(* Definition impl_10__wrapping_div_euclid (self : t_u128) (rhs : t_u128) : t_u128 := *) +(* Core_Ops_Arith.Div__f_div (self) (rhs). *) + +(* Definition impl_10__wrapping_rem (self : t_u128) (rhs : t_u128) : t_u128 := *) +(* Core_Ops_Arith.Rem__f_rem (self) (rhs). *) + +(* Definition impl_10__wrapping_rem_euclid (self : t_u128) (rhs : t_u128) : t_u128 := *) +(* Core_Ops_Arith.Rem__f_rem (self) (rhs). *) + +(* Definition impl_11__count_ones (self : t_usize) : t_u32 := *) +(* Rust_primitives_Hax_Control_flow_monad_Mexception.run (let hoist26 := Core_Ops_Control_flow.ControlFlow_Break (ctpop_usize (self)) in *) +(* Core_Ops_Control_flow.ControlFlow_Continue (Rust_primitives_Hax.never_to_any (hoist26))). *) + +(* Definition impl_11__count_zeros (self : t_usize) : t_u32 := *) +(* impl_11__count_ones (Core_Ops_Bit.Not__f_not (self)). *) + +(* Definition impl_11__leading_zeros (self : t_usize) : t_u32 := *) +(* Rust_primitives_Hax_Control_flow_monad_Mexception.run (let hoist27 := Core_Ops_Control_flow.ControlFlow_Break (ctlz_usize (self)) in *) +(* Core_Ops_Control_flow.ControlFlow_Continue (Rust_primitives_Hax.never_to_any (hoist27))). *) + +(* Definition impl_11__trailing_zeros (self : t_usize) : t_u32 := *) +(* Rust_primitives_Hax_Control_flow_monad_Mexception.run (let hoist28 := Core_Ops_Control_flow.ControlFlow_Break (cttz_usize (self)) in *) +(* Core_Ops_Control_flow.ControlFlow_Continue (Rust_primitives_Hax.never_to_any (hoist28))). *) + +(* Definition impl_11__leading_ones (self : t_usize) : t_u32 := *) +(* impl_11__leading_zeros (Core_Ops_Bit.Not__f_not (self)). *) + +(* Definition impl_11__trailing_ones (self : t_usize) : t_u32 := *) +(* impl_11__trailing_zeros (Core_Ops_Bit.Not__f_not (self)). *) + +(* Definition impl_11__rotate_left (self : t_usize) (n : t_u32) : t_usize := *) +(* Rust_primitives_Hax_Control_flow_monad_Mexception.run (let hoist29 := Core_Ops_Control_flow.ControlFlow_Break (rotate_left_usize (self) (n)) in *) +(* Core_Ops_Control_flow.ControlFlow_Continue (Rust_primitives_Hax.never_to_any (hoist29))). *) + +(* Definition impl_11__rotate_right (self : t_usize) (n : t_u32) : t_usize := *) +(* Rust_primitives_Hax_Control_flow_monad_Mexception.run (let hoist30 := Core_Ops_Control_flow.ControlFlow_Break (rotate_right_usize (self) (n)) in *) +(* Core_Ops_Control_flow.ControlFlow_Continue (Rust_primitives_Hax.never_to_any (hoist30))). *) + +(* Definition impl_11__swap_bytes (self : t_usize) : t_usize := *) +(* Core_Convert.Into__f_into (bswap_usize (self)). *) + +(* Definition impl_11__from_be (x : t_usize) : t_usize := *) +(* impl_11__swap_bytes (x). *) + +(* Definition impl_11__to_be (self : t_usize) : t_usize := *) +(* impl_11__swap_bytes (self). *) + +(* Definition impl_11__checked_div (self : t_usize) (rhs : t_usize) : Core_Option.t_Option ((t_usize)) := *) +(* if *) +(* Core_Cmp.PartialEq__f_eq (rhs) (Core_Convert.Into__f_into ((0 : t_usize))) *) +(* then *) +(* Core_Option.Option_None *) +(* else *) +(* Core_Option.Option_Some (unchecked_div_usize (self) (rhs)). *) + +(* Definition impl_11__wrapping_div (self : t_usize) (rhs : t_usize) : t_usize := *) +(* Core_Ops_Arith.Div__f_div (self) (rhs). *) + +(* Definition impl_11__wrapping_div_euclid (self : t_usize) (rhs : t_usize) : t_usize := *) +(* Core_Ops_Arith.Div__f_div (self) (rhs). *) + +(* Definition impl_11__wrapping_rem (self : t_usize) (rhs : t_usize) : t_usize := *) +(* Core_Ops_Arith.Rem__f_rem (self) (rhs). *) + +(* Definition impl_11__wrapping_rem_euclid (self : t_usize) (rhs : t_usize) : t_usize := *) +(* Core_Ops_Arith.Rem__f_rem (self) (rhs). *) + +(* Instance t_From_735931741 `{v_T : Type} `{v_N : t_usize} `{Core_Marker.t_Sized (v_T)} `{Core_Clone.t_Clone (v_T)} : Core_Convert.t_From ((t_Array ((v_T)) (v_N))) ((t_Array (v_T) (v_N))) := *) +(* { *) +(* Core_Convert.From_f_from := fun (x : t_Array (v_T) (v_N))=> *) +(* Array_Array (Slice_Slice (Seq_Seq (Alloc_Slice.impl__to_vec (Core_Ops_Index.Index__f_index (x) (Core_Ops_Range.RangeFull_RangeFull))))); *) +(* }. *) + +(* Instance t_SliceIndex_181791132 `{v_T : Type} `{Core_Marker.t_Sized (v_T)} : t_SliceIndex ((Core_Ops_Range.t_RangeFull)) ((t_Slice ((v_T)))) := *) +(* { *) +(* Core_Bundle.SliceIndex_impl_2__f_Output := t_Slice ((v_T)); *) +(* Core_Bundle.SliceIndex_impl_2__f_index := fun (self : Core_Ops_Range.t_RangeFull) (slice : t_Slice ((v_T)))=> *) +(* slice; *) +(* }. *) + +(* Instance t_AsRef_225396752 `{v_T : Type} `{v_N : t_usize} `{Core_Marker.t_Sized (v_T)} `{Core_Clone.t_Clone (v_T)} : Core_Convert.t_AsRef ((t_Array ((v_T)) (v_N))) ((t_Slice ((v_T)))) := *) +(* { *) +(* Core_Convert.AsRef_impl_1__f_as_ref := fun (self : t_Array ((v_T)) (v_N))=> *) +(* Core_Ops_Index.Index__f_index (self) (Core_Ops_Range.RangeFull_RangeFull); *) +(* }. *) + +(* Definition match_list `{v_T : Type} `{Core_Marker.t_Sized (v_T)} `{Core_Clone.t_Clone (v_T)} (s : t_Seq ((v_T))) : t_LIST ((v_T)) := *) +(* if *) +(* Rust_primitives_U128.eq (Alloc_Vec.impl_1__len (f_Seq_v s)) ((0 : t_usize)) *) +(* then *) +(* LIST_NIL *) +(* else *) +(* LIST_CONS (Core_Clone.Clone__f_clone (Core_Ops_Index.Index__f_index (f_Seq_v s) ((0 : t_usize)))) (Seq_Seq (Alloc_Slice.impl__concat (Rust_primitives.unsize ([Core_Ops_Index.Index__f_index (f_Seq_v s) (Core_Ops_Range.RangeFrom_RangeFrom ((1 : t_usize)))])))). *) + +(* Instance t_SliceIndex_823798546 `{v_T : Type} `{Core_Marker.t_Sized (v_T)} `{Core_Clone.t_Clone (v_T)} : t_SliceIndex ((t_usize)) ((t_Slice ((v_T)))) := *) +(* { *) +(* Core_Bundle.SliceIndex_impl_1__f_Output := v_T; *) +(* Core_Bundle.SliceIndex_impl_1__f_index := fun (self : t_usize) (slice : t_Slice ((v_T)))=> *) +(* let x : t_usize := Core_Convert.Into__f_into (Core_Base_interface_Int.f_U64_v 0 self) in *) +(* Core_Ops_Index.Index__f_index (f_Seq_v f_Slice_v slice) (x); *) +(* }. *) diff --git a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Clone.v b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Clone.v index 929548ba0..ded6da912 100644 --- a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Clone.v +++ b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Clone.v @@ -9,13 +9,14 @@ Require Import String. Require Import Coq.Floats.Floats. From RecordUpdate Require Import RecordSet. Import RecordSetNotations. - (* From Core Require Import Core. *) +(* NotImplementedYet *) + Class t_Clone (v_Self : Type) : Type := { - Clone_f_clone : v_Self -> v_Self; + Clone__f_clone : v_Self -> v_Self; }. Arguments t_Clone (_). -#[global] Instance t_Clone_any T : t_Clone T := { Clone_f_clone := id }. +#[global] Instance t_Clone_any T : t_Clone T := { Clone__f_clone := id }. diff --git a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Cmp.v b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Cmp.v index afe5cec36..5f6adba7f 100644 --- a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Cmp.v +++ b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Cmp.v @@ -9,51 +9,110 @@ Require Import String. Require Import Coq.Floats.Floats. From RecordUpdate Require Import RecordSet. Import RecordSetNotations. +From Core Require Import Core_Ops_Bit. +From Core Require Import Core_Option. -(* From Core Require Import Core. *) +(* NotImplementedYet *) -From Core Require Import Core_Option (t_Option). -Export Core_Option (t_Option). -Definition discriminant_Ordering_Equal := - 0. -Definition discriminant_Ordering_Greater := - 1. + + +Class t_PartialEq (v_Self : Type) (v_Rhs : Type) : Type := + { + PartialEq__f_eq : v_Self -> v_Rhs -> bool; + PartialEq__f_ne : v_Self -> v_Rhs -> bool; + }. +Arguments t_PartialEq (_) (_). Inductive t_Ordering : Type := | Ordering_Less | Ordering_Equal | Ordering_Greater. -Arguments Ordering_Less. -Arguments Ordering_Equal. -Arguments Ordering_Greater. -Definition impl__Ordering__is_eq (self : t_Ordering) : bool := + + + +(* Definition anon_const_Ordering_Less__anon_const_0 : t_i8 := *) +(* (-1 : t_i8). *) + +(* Definition anon_const_Ordering_Equal__anon_const_0 : t_i8 := *) +(* (0 : t_i8). *) + +(* Definition anon_const_Ordering_Greater__anon_const_0 : t_i8 := *) +(* (1 : t_i8). *) + +(* Definition t_Ordering_cast_to_repr (x : t_Ordering) : t_i8 := *) +(* match x with *) +(* | Ordering_Less => *) +(* anon_const_Ordering_Less__anon_const_0 *) +(* | Ordering_Equal => *) +(* anon_const_Ordering_Equal__anon_const_0 *) +(* | Ordering_Greater => *) +(* anon_const_Ordering_Greater__anon_const_0 *) +(* end. *) + + + + + + + +Definition impl_Ordering__is_eq (self : t_Ordering) : bool := match self with | Ordering_Equal => - true + (true : bool) | _ => - false + (false : bool) end. -Definition impl__Ordering__is_gt (self : t_Ordering) : bool := +Definition impl_Ordering__is_ne (self : t_Ordering) `{t_Not : Core_Ops_Bit.t_Not bool} `{t_Not.(Not__f_Output) = bool} : bool := + eq_rect Not__f_Output (fun T : Type => T) + (Core_Ops_Bit.Not__f_not (t_Not := t_Not) (match self with + | Ordering_Equal => + (true : bool) + | _ => + (false : bool) + end)) + bool H. + +Definition impl_Ordering__is_lt (self : t_Ordering) : bool := match self with - | Ordering_Greater => - true + | Ordering_Less => + (true : bool) | _ => - false + (false : bool) end. -Definition impl__Ordering__is_lt (self : t_Ordering) : bool := +Definition impl_Ordering__is_gt (self : t_Ordering) : bool := match self with - | Ordering_Less => - true + | Ordering_Greater => + (true : bool) | _ => - false + (false : bool) end. -Definition impl__Ordering__reverse (self : t_Ordering) : t_Ordering := +Definition impl_Ordering__is_le (self : t_Ordering) `{t_Not : Core_Ops_Bit.t_Not bool} `{t_Not.(Not__f_Output) = bool} : bool := + eq_rect Not__f_Output (fun T : Type => T) + (Core_Ops_Bit.Not__f_not (match self with + | Ordering_Greater => + (true : bool) + | _ => + (false : bool) + end)) + bool H. + +Definition impl_Ordering__is_ge (self : t_Ordering) `{t_Not : Core_Ops_Bit.t_Not bool} `{t_Not.(Not__f_Output) = bool} : bool := + eq_rect Not__f_Output (fun T : Type => T) + (Core_Ops_Bit.Not__f_not (match self with + | Ordering_Less => + (true : bool) + | _ => + (false : bool) + end)) + bool H. + +Definition impl_Ordering__reverse (self : t_Ordering) : t_Ordering := match self with | Ordering_Less => Ordering_Greater @@ -63,108 +122,77 @@ Definition impl__Ordering__reverse (self : t_Ordering) : t_Ordering := Ordering_Less end. -Definition discriminant_Ordering_Less := - -1. - -Definition t_Ordering_cast_to_repr (x : t_Ordering) := - match x with - | Ordering_Less => - discriminant_Ordering_Less - | Ordering_Equal => - discriminant_Ordering_Equal - | Ordering_Greater => - discriminant_Ordering_Greater - end. +Instance t_Ordering_t_Sized : Core_Marker.t_Sized t_Ordering := {}. -Class t_PartialEq (v_Self : Type) (v_Rhs : Type) : Type := +Class t_PartialOrd (v_Self : Type) (v_Rhs : Type) `{t_PartialEq (v_Self) (v_Rhs)} : Type := { - PartialEq_f_eq : v_Self -> v_Rhs -> bool; - PartialEq_f_ne : v_Self -> v_Rhs -> bool; + PartialOrd__f_partial_cmp : v_Self -> v_Rhs -> Core_Option.t_Option ((t_Ordering)); + PartialOrd__f_lt : v_Self -> v_Rhs -> bool; + PartialOrd__f_le : v_Self -> v_Rhs -> bool; + PartialOrd__f_gt : v_Self -> v_Rhs -> bool; + PartialOrd__f_ge : v_Self -> v_Rhs -> bool; }. -Arguments t_PartialEq (_) (_). - -Definition impl__Ordering__is_ge (self : t_Ordering) : bool := - negb (match self with - | Ordering_Less => - true - | _ => - false - end). - -Definition impl__Ordering__is_le (self : t_Ordering) : bool := - negb (match self with - | Ordering_Greater => - true - | _ => - false - end). - -Definition impl__Ordering__is_ne (self : t_Ordering) : bool := - negb (match self with - | Ordering_Equal => - true - | _ => - false - end). +Arguments t_PartialOrd (_) (_) {_}. -#[global] Instance t_PartialEq_603824491 : t_PartialEq ((t_Ordering)) ((t_Ordering)) := +Instance t_PartialEq_1021649980 `{t_Not : Core_Ops_Bit.t_Not bool} `{t_Not.(Not__f_Output) = bool} : t_PartialEq ((t_Ordering)) ((t_Ordering)) := { - PartialEq_f_eq := fun (self : t_Ordering) (other : t_Ordering)=> + Core_Cmp.PartialEq__f_eq := fun (self : t_Ordering) (other : t_Ordering)=> match self with | Ordering_Less => match other with | Ordering_Less => - true + (true : bool) | _ => - false + (false : bool) end | Ordering_Equal => match other with | Ordering_Equal => - true + (true : bool) | _ => - false + (false : bool) end | Ordering_Greater => match other with | Ordering_Greater => - true + (true : bool) | _ => - false + (false : bool) end end; - PartialEq_f_ne := fun (self : t_Ordering) (other : t_Ordering)=> - negb (match self with + Core_Cmp.PartialEq__f_ne := fun (self : t_Ordering) (other : t_Ordering)=> + eq_rect Not__f_Output (fun T : Type => T) + (Core_Ops_Bit.Not__f_not (t_Not := t_Not) (match self with | Ordering_Less => match other with | Ordering_Less => - true + (true : bool) | _ => - false + (false : bool) end | Ordering_Equal => match other with | Ordering_Equal => - true + (true : bool) | _ => - false + (false : bool) end | Ordering_Greater => match other with | Ordering_Greater => - true + (true : bool) | _ => - false + (false : bool) end - end); + end)) + bool H; }. -Class t_PartialOrd (v_Self : Type) (v_Rhs : Type) `{t_PartialEq (v_Self) (v_Rhs)} : Type := +(* TODO: please implement the method `item'_HaxError` *) +Class t_Eq (v_Self : Type) := {}. + +Class t_Ord (v_Self : Type) `{t_Eq (v_Self)} `{t_PartialOrd (v_Self) (v_Self)} : Type := { - PartialOrd_f_partial_cmp : v_Self -> v_Rhs -> t_Option ((t_Ordering)); - PartialOrd_f_lt : v_Self -> v_Rhs -> bool; - PartialOrd_f_le : v_Self -> v_Rhs -> bool; - PartialOrd_f_gt : v_Self -> v_Rhs -> bool; - PartialOrd_f_ge : v_Self -> v_Rhs -> bool; + Ord__f_cmp : v_Self -> v_Self -> t_Ordering; }. -Arguments t_PartialOrd (_) (_) {_}. +Arguments t_Ord (_) {_} {_}. diff --git a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Cmp_Impls.v b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Cmp_Impls.v new file mode 100644 index 000000000..d69da2c21 --- /dev/null +++ b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Cmp_Impls.v @@ -0,0 +1,138 @@ +(* File automatically generated by Hacspec *) +From Coq Require Import ZArith. +Require Import List. +Import List.ListNotations. +Open Scope Z_scope. +Open Scope bool_scope. +Require Import Ascii. +Require Import String. +Require Import Coq.Floats.Floats. +From RecordUpdate Require Import RecordSet. +Import RecordSetNotations. +From Core Require Import Core. + +(* NotImplementedYet *) + + + + + + + + + + + + + + + + + + + + + + + +(* NotImplementedYet *) + +(* NotImplementedYet *) + +(* NotImplementedYet *) + +Notation "'impl'" := (Core_Bundle.impl). + +Notation "'impl_1'" := (Core_Bundle.impl_1). + +Notation "'impl_2'" := (Core_Bundle.impl_2). + +Notation "'impl_3'" := (Core_Bundle.impl_3). + +Notation "'impl_4'" := (Core_Bundle.impl_4). + +Notation "'impl_5'" := (Core_Bundle.impl_5). + +Notation "'impl_6'" := (Core_Bundle.impl_6). + +Notation "'impl_7'" := (Core_Bundle.impl_7). + +Notation "'impl_8'" := (Core_Bundle.impl_8). + +Notation "'impl_9'" := (Core_Bundle.impl_9). + +Notation "'impl_10'" := (Core_Bundle.impl_10). + +Notation "'impl_11'" := (Core_Bundle.impl_11). + +Notation "'impl_12'" := (Core_Bundle.impl_12). + +Notation "'impl_13'" := (Core_Bundle.impl_13). + +Notation "'impl_14'" := (Core_Bundle.impl_14). + +Notation "'impl_15'" := (Core_Bundle.impl_15). + +Notation "'impl_16'" := (Core_Bundle.impl_16). + +Notation "'impl_17'" := (Core_Bundle.impl_17). + +Notation "'impl_18'" := (Core_Bundle.impl_18). + +Notation "'impl_19'" := (Core_Bundle.impl_19). + +Notation "'impl_20'" := (Core_Bundle.impl_20). + +Notation "'impl_21'" := (Core_Bundle.impl_21). + +Notation "'impl_22'" := (Core_Bundle.impl_22). + +Notation "'impl_23'" := (Core_Bundle.impl_23). + +Notation "'impl_24'" := (Core_Bundle.impl_24). + +Notation "'impl_25'" := (Core_Bundle.impl_25). + +Notation "'impl_26'" := (Core_Bundle.impl_26). + +Notation "'impl_27'" := (Core_Bundle.impl_27). + +Notation "'impl_28'" := (Core_Bundle.impl_28). + +Notation "'impl_29'" := (Core_Bundle.impl_29). + +Notation "'impl_30'" := (Core_Bundle.impl_30). + +Notation "'impl_31'" := (Core_Bundle.impl_31). + +Notation "'impl_32'" := (Core_Bundle.impl_32). + +Notation "'impl_33'" := (Core_Bundle.impl_33). + +Notation "'impl_34'" := (Core_Bundle.impl_34). + +Notation "'impl_35'" := (Core_Bundle.impl_35). + +Notation "'impl_36'" := (Core_Bundle.impl_36). + +Notation "'impl_37'" := (Core_Bundle.impl_37). + +Notation "'impl_38'" := (Core_Bundle.impl_38). + +Notation "'impl_39'" := (Core_Bundle.impl_39). + +Notation "'impl_40'" := (Core_Bundle.impl_40). + +Notation "'impl_41'" := (Core_Bundle.impl_41). + +Notation "'impl_42'" := (Core_Bundle.impl_42). + +Notation "'impl_43'" := (Core_Bundle.impl_43). + +Notation "'impl_44'" := (Core_Bundle.impl_44). + +Notation "'impl_45'" := (Core_Bundle.impl_45). + +Notation "'impl_46'" := (Core_Bundle.impl_46). + +Notation "'impl_47'" := (Core_Bundle.impl_47). diff --git a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Convert.v b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Convert.v index 831daa404..1e06dec71 100644 --- a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Convert.v +++ b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Convert.v @@ -9,32 +9,31 @@ Require Import String. Require Import Coq.Floats.Floats. From RecordUpdate Require Import RecordSet. Import RecordSetNotations. - -(* From Core Require Import Core. *) - From Core Require Import Core_Marker. -Export Core_Marker. +(* From Core Require Import Core_Convert. *) + +(* NotImplementedYet *) -Class t_From (v_Self : Type) (v_T : Type) (* `{t_Sized (v_Self)} `{t_Sized (v_T)} *) : Type := +Class t_Into (v_Self : Type) (v_T : Type) `{Core_Marker.t_Sized (v_Self)} `{Core_Marker.t_Sized (v_T)} : Type := { - From_f_from : v_T -> v_Self; + Into__f_into : v_Self -> v_T; }. -Arguments t_From (_) (_) (* {_} {_} *). +Arguments t_Into (_) (_) {_} {_}. -#[global] Instance t_From_46353410 `{v_T : Type} (* `{t_Sized (v_T)} *) : t_From ((v_T)) ((v_T)) := +Class t_From (v_Self : Type) (v_T : Type) `{Core_Marker.t_Sized (v_Self)} `{Core_Marker.t_Sized (v_T)} : Type := { - From_f_from := fun (t : v_T)=> - t; + From__f_from : v_T -> v_Self; }. +Arguments t_From (_) (_) {_} {_}. -Class t_Into (v_Self : Type) (v_T : Type) (* `{t_Sized (v_Self)} `{t_Sized (v_T)} *) : Type := +Instance t_Into_352590089 `{v_T : Type} `{v_U : Type} `{Core_Marker.t_Sized (v_T)} `{Core_Marker.t_Sized (v_U)} `{t_From (v_U) (v_T)} : t_Into ((v_T)) ((v_U)) := { - Into_f_into : v_Self -> v_T; + Core_Convert.Into__f_into := fun (self : v_T)=> + From__f_from (self); }. -Arguments t_Into (_) (_) (* {_} {_} *). -#[global] Instance t_Into_730689925 `{v_T : Type} `{v_U : Type} (* `{t_Sized (v_T)} `{t_Sized (v_U)} *) `{t_From (v_U) (v_T)} : t_Into ((v_T)) ((v_U)) := +Instance t_From_581002014 `{v_T : Type} `{Core_Marker.t_Sized (v_T)} : t_From ((v_T)) ((v_T)) := { - Into_f_into := fun (self : v_T)=> - From_f_from (self); + Core_Convert.From__f_from := fun (t : v_T)=> + t; }. diff --git a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Convert_Num.v b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Convert_Num.v new file mode 100644 index 000000000..96e00bc07 --- /dev/null +++ b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Convert_Num.v @@ -0,0 +1,66 @@ +(* File automatically generated by Hacspec *) +From Coq Require Import ZArith. +Require Import List. +Import List.ListNotations. +Open Scope Z_scope. +Open Scope bool_scope. +Require Import Ascii. +Require Import String. +Require Import Coq.Floats.Floats. +From RecordUpdate Require Import RecordSet. +Import RecordSetNotations. +From Core Require Import Core_Bundle. + +(* NotImplementedYet *) + +(* NotImplementedYet *) + + + +Notation "'impl'" := (Core_Bundle.impl). + +Notation "'impl_1'" := (Core_Bundle.impl_1). + +Notation "'impl_2'" := (Core_Bundle.impl_2). + +Notation "'impl_3'" := (Core_Bundle.impl_3). + +Notation "'impl_4'" := (Core_Bundle.impl_4). + +Notation "'impl_5'" := (Core_Bundle.impl_5). + +Notation "'impl_6'" := (Core_Bundle.impl_6). + +Notation "'impl_7'" := (Core_Bundle.impl_7). + +Notation "'impl_8'" := (Core_Bundle.impl_8). + +Notation "'impl_9'" := (Core_Bundle.impl_9). + +Notation "'impl_10'" := (Core_Bundle.impl_10). + +Notation "'impl_11'" := (Core_Bundle.impl_11). + +Notation "'impl_12'" := (Core_Bundle.impl_12). + +Notation "'impl_13'" := (Core_Bundle.impl_13). + +Notation "'impl_14'" := (Core_Bundle.impl_14). + +Notation "'impl_15'" := (Core_Bundle.impl_15). + +Notation "'impl_16'" := (Core_Bundle.impl_16). + +Notation "'impl_17'" := (Core_Bundle.impl_17). + +Notation "'impl_18'" := (Core_Bundle.impl_18). + +Notation "'impl_19'" := (Core_Bundle.impl_19). + +Notation "'impl_20'" := (Core_Bundle.impl_20). + +Notation "'impl_21'" := (Core_Bundle.impl_21). + +Notation "'impl_22'" := (Core_Bundle.impl_22). + +Notation "'impl_23'" := (Core_Bundle.impl_23). diff --git a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Convert_Num_Number_conversion.v b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Convert_Num_Number_conversion.v new file mode 100644 index 000000000..b5b73d5f8 --- /dev/null +++ b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Convert_Num_Number_conversion.v @@ -0,0 +1,84 @@ +(* File automatically generated by Hacspec *) +From Coq Require Import ZArith. +Require Import List. +Import List.ListNotations. +Open Scope Z_scope. +Open Scope bool_scope. +Require Import Ascii. +Require Import String. +Require Import Coq.Floats.Floats. +From RecordUpdate Require Import RecordSet. +Import RecordSetNotations. +From Core Require Import Core. + +(* NotImplementedYet *) + + + + + + + +(* NotImplementedYet *) + +(* NotImplementedYet *) + +Notation "'impl'" := (Core_Bundle.impl). + +Notation "'impl_1'" := (Core_Bundle.impl_1). + +Notation "'impl_2'" := (Core_Bundle.impl_2). + +Notation "'impl_3'" := (Core_Bundle.impl_3). + +Notation "'impl_4'" := (Core_Bundle.impl_4). + +Notation "'impl_5'" := (Core_Bundle.impl_5). + +Notation "'impl_6'" := (Core_Bundle.impl_6). + +Notation "'impl_7'" := (Core_Bundle.impl_7). + +Notation "'impl_8'" := (Core_Bundle.impl_8). + +Notation "'impl_9'" := (Core_Bundle.impl_9). + +Notation "'impl_10'" := (Core_Bundle.impl_10). + +Notation "'impl_11'" := (Core_Bundle.impl_11). + +Notation "'impl_12'" := (Core_Bundle.impl_12). + +Notation "'impl_13'" := (Core_Bundle.impl_13). + +Notation "'impl_14'" := (Core_Bundle.impl_14). + +Notation "'impl_15'" := (Core_Bundle.impl_15). + +Notation "'impl_16'" := (Core_Bundle.impl_16). + +Notation "'impl_17'" := (Core_Bundle.impl_17). + +Notation "'impl_18'" := (Core_Bundle.impl_18). + +Notation "'impl_19'" := (Core_Bundle.impl_19). + +Notation "'impl_20'" := (Core_Bundle.impl_20). + +Notation "'impl_21'" := (Core_Bundle.impl_21). + +Notation "'impl_22'" := (Core_Bundle.impl_22). + +Notation "'impl_23'" := (Core_Bundle.impl_23). + +Notation "'impl_24'" := (Core_Bundle.impl_24). + +Notation "'impl_25'" := (Core_Bundle.impl_25). + +Notation "'impl_26'" := (Core_Bundle.impl_26). + +Notation "'impl_27'" := (Core_Bundle.impl_27). + +Notation "'impl_28'" := (Core_Bundle.impl_28). + +Notation "'impl_29'" := (Core_Bundle.impl_29). diff --git a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Convert_Num_Number_conversion_i.v b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Convert_Num_Number_conversion_i.v new file mode 100644 index 000000000..015c4dbc6 --- /dev/null +++ b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Convert_Num_Number_conversion_i.v @@ -0,0 +1,82 @@ +(* File automatically generated by Hacspec *) +From Coq Require Import ZArith. +Require Import List. +Import List.ListNotations. +Open Scope Z_scope. +Open Scope bool_scope. +Require Import Ascii. +Require Import String. +Require Import Coq.Floats.Floats. +From RecordUpdate Require Import RecordSet. +Import RecordSetNotations. +From Core Require Import Core. + +(* NotImplementedYet *) + + + + + + + +(* NotImplementedYet *) + +(* NotImplementedYet *) + +Notation "'impl'" := (Core_Bundle.impl). + +Notation "'impl_1'" := (Core_Bundle.impl_1). + +Notation "'impl_2'" := (Core_Bundle.impl_2). + +Notation "'impl_3'" := (Core_Bundle.impl_3). + +Notation "'impl_4'" := (Core_Bundle.impl_4). + +Notation "'impl_5'" := (Core_Bundle.impl_5). + +Notation "'impl_6'" := (Core_Bundle.impl_6). + +Notation "'impl_7'" := (Core_Bundle.impl_7). + +Notation "'impl_8'" := (Core_Bundle.impl_8). + +Notation "'impl_9'" := (Core_Bundle.impl_9). + +Notation "'impl_10'" := (Core_Bundle.impl_10). + +Notation "'impl_11'" := (Core_Bundle.impl_11). + +Notation "'impl_12'" := (Core_Bundle.impl_12). + +Notation "'impl_13'" := (Core_Bundle.impl_13). + +Notation "'impl_14'" := (Core_Bundle.impl_14). + +Notation "'impl_15'" := (Core_Bundle.impl_15). + +Notation "'impl_16'" := (Core_Bundle.impl_16). + +Notation "'impl_17'" := (Core_Bundle.impl_17). + +Notation "'impl_18'" := (Core_Bundle.impl_18). + +Notation "'impl_19'" := (Core_Bundle.impl_19). + +Notation "'impl_20'" := (Core_Bundle.impl_20). + +Notation "'impl_21'" := (Core_Bundle.impl_21). + +Notation "'impl_22'" := (Core_Bundle.impl_22). + +Notation "'impl_23'" := (Core_Bundle.impl_23). + +Notation "'impl_24'" := (Core_Bundle.impl_24). + +Notation "'impl_25'" := (Core_Bundle.impl_25). + +Notation "'impl_26'" := (Core_Bundle.impl_26). + +Notation "'impl_27'" := (Core_Bundle.impl_27). + +Notation "'impl_28'" := (Core_Bundle.impl_28). diff --git a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Fmt.v b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Fmt.v deleted file mode 100644 index 4b1cbcbe0..000000000 --- a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Fmt.v +++ /dev/null @@ -1,59 +0,0 @@ -(* File automatically generated by Hacspec *) -From Coq Require Import ZArith. -Require Import List. -Import List.ListNotations. -Open Scope Z_scope. -Open Scope bool_scope. -Require Import Ascii. -Require Import String. -Require Import Coq.Floats.Floats. -From RecordUpdate Require Import RecordSet. -Import RecordSetNotations. - -(* From Core Require Import Core. *) - -(* TODO: Replace this dummy lib with core lib *) -Class t_Sized (T : Type) := { }. -Definition t_u8 := Z. -Definition t_u16 := Z. -Definition t_u32 := Z. -Definition t_u64 := Z. -Definition t_u128 := Z. -Definition t_usize := Z. -Definition t_i8 := Z. -Definition t_i16 := Z. -Definition t_i32 := Z. -Definition t_i64 := Z. -Definition t_i128 := Z. -Definition t_isize := Z. -Definition t_Array T (x : t_usize) := list T. -Definition t_String := string. -Definition ToString_f_to_string (x : string) := x. -Instance Sized_any : forall {t_A}, t_Sized t_A := {}. -Class t_Clone (T : Type) := { Clone_f_clone : T -> T }. -Instance Clone_any : forall {t_A}, t_Clone t_A := {Clone_f_clone := fun x => x}. -Definition t_Slice (T : Type) := list T. -Definition unsize {T : Type} : list T -> t_Slice T := id. -Definition t_PartialEq_f_eq x y := x =? y. -Definition t_Rem_f_rem (x y : Z) := x mod y. -Definition assert (b : bool) (* `{H_assert : b = true} *) : unit := tt. -Inductive globality := | t_Global. -Definition t_Vec T (_ : globality) : Type := list T. -Definition impl_1__append {T} l1 l2 : list T * list T := (app l1 l2, l2). -Definition impl_1__len {A} (l : list A) := Z.of_nat (List.length l). -Definition impl__new {A} (_ : Datatypes.unit) : list A := nil. -Definition impl__with_capacity {A} (_ : Z) : list A := nil. -Definition impl_1__push {A} l (x : A) := cons x l. -Class t_From (A B : Type) := { From_f_from : B -> A }. -Definition impl__to_vec {T} (x : t_Slice T) : t_Vec T t_Global := x. -Class t_Into (A B : Type) := { Into_f_into : A -> B }. -Instance t_Into_from_t_From {A B : Type} `{H : t_From B A} : t_Into A B := { Into_f_into x := @From_f_from B A H x }. -Definition from_elem {A} (x : A) (l : Z) := repeat x (Z.to_nat l). -Definition t_Option := option. -Definition impl__map {A B} (x : t_Option A) (f : A -> B) : t_Option B := match x with | Some x => Some (f x) | None => None end. -Definition t_Add_f_add x y := x + y. -Class Cast A B := { cast : A -> B }. -Instance cast_t_u8_t_u32 : Cast t_u8 t_u32 := {| cast x := x |}. -(* / dummy lib *) - -(* NotImplementedYet *) diff --git a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Intrinsics.v b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Intrinsics.v index 71c9c44d7..974ff0164 100644 --- a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Intrinsics.v +++ b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Intrinsics.v @@ -9,244 +9,250 @@ Require Import String. Require Import Coq.Floats.Floats. From RecordUpdate Require Import RecordSet. Import RecordSetNotations. +From Core Require Import Core. + +(* NotImplementedYet *) + + -(* From Core Require Import Core. *) -From Core Require Import Core_Primitive. -Export Core_Primitive. -From Core Require Import Core_Base_interface. -Export Core_Base_interface. -From Core Require Import Core_Base_interface_Coerce. -Export Core_Base_interface_Coerce. -From Core Require Import Core_Base. -Export Core_Base. -From Core Require Import Core_Ops. -Export Core_Ops. (* NotImplementedYet *) (* NotImplementedYet *) -Notation "'add_with_overflow_i128'" := (add_with_overflow_i128). +Notation "'wrapping_add_u8'" := (Core_Bundle.wrapping_add_u8). + +Notation "'wrapping_sub_u8'" := (Core_Bundle.wrapping_sub_u8). + +Notation "'wrapping_mul_u8'" := (Core_Bundle.wrapping_mul_u8). + +Notation "'three_way_compare_u8'" := (Core_Bundle.three_way_compare_u8). + +Notation "'add_with_overflow_u8'" := (Core_Bundle.add_with_overflow_u8). + +Notation "'unchecked_div_u8'" := (Core_Bundle.unchecked_div_u8). + +Notation "'unchecked_add_u8'" := (Core_Bundle.unchecked_add_u8). -Notation "'add_with_overflow_i16'" := (add_with_overflow_i16). +Notation "'ctpop_u8'" := (Core_Bundle.ctpop_u8). -Notation "'add_with_overflow_i32'" := (add_with_overflow_i32). +Notation "'cttz_u8'" := (Core_Bundle.cttz_u8). -Notation "'add_with_overflow_i64'" := (add_with_overflow_i64). +Notation "'ctlz_u8'" := (Core_Bundle.ctlz_u8). -Notation "'add_with_overflow_i8'" := (add_with_overflow_i8). +Notation "'rotate_left_u8'" := (Core_Bundle.rotate_left_u8). -Notation "'add_with_overflow_isize'" := (add_with_overflow_isize). +Notation "'rotate_right_u8'" := (Core_Bundle.rotate_right_u8). -Notation "'unchecked_add_i128'" := (unchecked_add_i128). +Notation "'bswap_u8'" := (Core_Bundle.bswap_u8). -Notation "'unchecked_add_i16'" := (unchecked_add_i16). +Notation "'wrapping_add_u16'" := (Core_Bundle.wrapping_add_u16). -Notation "'unchecked_add_i32'" := (unchecked_add_i32). +Notation "'wrapping_sub_u16'" := (Core_Bundle.wrapping_sub_u16). -Notation "'unchecked_add_i64'" := (unchecked_add_i64). +Notation "'wrapping_mul_u16'" := (Core_Bundle.wrapping_mul_u16). -Notation "'unchecked_add_i8'" := (unchecked_add_i8). +Notation "'three_way_compare_u16'" := (Core_Bundle.three_way_compare_u16). -Notation "'unchecked_add_isize'" := (unchecked_add_isize). +Notation "'add_with_overflow_u16'" := (Core_Bundle.add_with_overflow_u16). -Notation "'unchecked_add_u128'" := (unchecked_add_u128). +Notation "'unchecked_div_u16'" := (Core_Bundle.unchecked_div_u16). -Notation "'unchecked_add_u16'" := (unchecked_add_u16). +Notation "'unchecked_add_u16'" := (Core_Bundle.unchecked_add_u16). -Notation "'unchecked_add_u32'" := (unchecked_add_u32). +Notation "'ctpop_u16'" := (Core_Bundle.ctpop_u16). -Notation "'unchecked_add_u64'" := (unchecked_add_u64). +Notation "'cttz_u16'" := (Core_Bundle.cttz_u16). -Notation "'unchecked_add_u8'" := (unchecked_add_u8). +Notation "'ctlz_u16'" := (Core_Bundle.ctlz_u16). -Notation "'unchecked_add_usize'" := (unchecked_add_usize). +Notation "'rotate_left_u16'" := (Core_Bundle.rotate_left_u16). -Notation "'add_with_overflow_u128'" := (add_with_overflow_u128). +Notation "'rotate_right_u16'" := (Core_Bundle.rotate_right_u16). -Notation "'add_with_overflow_u16'" := (add_with_overflow_u16). +Notation "'bswap_u16'" := (Core_Bundle.bswap_u16). -Notation "'add_with_overflow_u32'" := (add_with_overflow_u32). +Notation "'wrapping_add_u32'" := (Core_Bundle.wrapping_add_u32). -Notation "'add_with_overflow_u64'" := (add_with_overflow_u64). +Notation "'wrapping_sub_u32'" := (Core_Bundle.wrapping_sub_u32). -Notation "'add_with_overflow_u8'" := (add_with_overflow_u8). +Notation "'wrapping_mul_u32'" := (Core_Bundle.wrapping_mul_u32). -Notation "'add_with_overflow_usize'" := (add_with_overflow_usize). +Notation "'three_way_compare_u32'" := (Core_Bundle.three_way_compare_u32). -Notation "'unchecked_div_u128'" := (unchecked_div_u128). +Notation "'add_with_overflow_u32'" := (Core_Bundle.add_with_overflow_u32). -Notation "'unchecked_div_u16'" := (unchecked_div_u16). +Notation "'unchecked_div_u32'" := (Core_Bundle.unchecked_div_u32). -Notation "'unchecked_div_u32'" := (unchecked_div_u32). +Notation "'unchecked_add_u32'" := (Core_Bundle.unchecked_add_u32). -Notation "'unchecked_div_u64'" := (unchecked_div_u64). +Notation "'ctpop_u32'" := (Core_Bundle.ctpop_u32). -Notation "'unchecked_div_u8'" := (unchecked_div_u8). +Notation "'cttz_u32'" := (Core_Bundle.cttz_u32). -Notation "'unchecked_div_usize'" := (unchecked_div_usize). +Notation "'ctlz_u32'" := (Core_Bundle.ctlz_u32). -Notation "'wrapping_add_i128'" := (wrapping_add_i128). +Notation "'rotate_left_u32'" := (Core_Bundle.rotate_left_u32). -Notation "'wrapping_add_i16'" := (wrapping_add_i16). +Notation "'rotate_right_u32'" := (Core_Bundle.rotate_right_u32). -Notation "'wrapping_add_i32'" := (wrapping_add_i32). +Notation "'bswap_u32'" := (Core_Bundle.bswap_u32). -Notation "'wrapping_add_i64'" := (wrapping_add_i64). +Notation "'wrapping_add_u64'" := (Core_Bundle.wrapping_add_u64). -Notation "'wrapping_add_i8'" := (wrapping_add_i8). +Notation "'wrapping_sub_u64'" := (Core_Bundle.wrapping_sub_u64). -Notation "'wrapping_add_isize'" := (wrapping_add_isize). +Notation "'wrapping_mul_u64'" := (Core_Bundle.wrapping_mul_u64). -Notation "'wrapping_sub_i128'" := (wrapping_sub_i128). +Notation "'three_way_compare_u64'" := (Core_Bundle.three_way_compare_u64). -Notation "'wrapping_sub_i16'" := (wrapping_sub_i16). +Notation "'add_with_overflow_u64'" := (Core_Bundle.add_with_overflow_u64). -Notation "'wrapping_sub_i32'" := (wrapping_sub_i32). +Notation "'unchecked_div_u64'" := (Core_Bundle.unchecked_div_u64). -Notation "'wrapping_sub_i64'" := (wrapping_sub_i64). +Notation "'unchecked_add_u64'" := (Core_Bundle.unchecked_add_u64). -Notation "'wrapping_sub_i8'" := (wrapping_sub_i8). +Notation "'ctpop_u64'" := (Core_Bundle.ctpop_u64). -Notation "'wrapping_sub_isize'" := (wrapping_sub_isize). +Notation "'cttz_u64'" := (Core_Bundle.cttz_u64). -Notation "'unchecked_div_i128'" := (unchecked_div_i128). +Notation "'ctlz_u64'" := (Core_Bundle.ctlz_u64). -Notation "'unchecked_div_i16'" := (unchecked_div_i16). +Notation "'rotate_left_u64'" := (Core_Bundle.rotate_left_u64). -Notation "'unchecked_div_i32'" := (unchecked_div_i32). +Notation "'rotate_right_u64'" := (Core_Bundle.rotate_right_u64). -Notation "'unchecked_div_i64'" := (unchecked_div_i64). +Notation "'bswap_u64'" := (Core_Bundle.bswap_u64). -Notation "'unchecked_div_i8'" := (unchecked_div_i8). +Notation "'wrapping_add_u128'" := (Core_Bundle.wrapping_add_u128). -Notation "'unchecked_div_isize'" := (unchecked_div_isize). +Notation "'wrapping_sub_u128'" := (Core_Bundle.wrapping_sub_u128). -Notation "'wrapping_add_u128'" := (wrapping_add_u128). +Notation "'wrapping_mul_u128'" := (Core_Bundle.wrapping_mul_u128). -Notation "'wrapping_add_u16'" := (wrapping_add_u16). +Notation "'three_way_compare_u128'" := (Core_Bundle.three_way_compare_u128). -Notation "'wrapping_add_u32'" := (wrapping_add_u32). +Notation "'add_with_overflow_u128'" := (Core_Bundle.add_with_overflow_u128). -Notation "'wrapping_add_u64'" := (wrapping_add_u64). +Notation "'unchecked_div_u128'" := (Core_Bundle.unchecked_div_u128). -Notation "'wrapping_add_u8'" := (wrapping_add_u8). +Notation "'unchecked_add_u128'" := (Core_Bundle.unchecked_add_u128). -Notation "'wrapping_add_usize'" := (wrapping_add_usize). +Notation "'ctpop_u128'" := (Core_Bundle.ctpop_u128). -Notation "'wrapping_mul_i128'" := (wrapping_mul_i128). +Notation "'cttz_u128'" := (Core_Bundle.cttz_u128). -Notation "'wrapping_mul_i16'" := (wrapping_mul_i16). +Notation "'ctlz_u128'" := (Core_Bundle.ctlz_u128). -Notation "'wrapping_mul_i32'" := (wrapping_mul_i32). +Notation "'rotate_left_u128'" := (Core_Bundle.rotate_left_u128). -Notation "'wrapping_mul_i64'" := (wrapping_mul_i64). +Notation "'rotate_right_u128'" := (Core_Bundle.rotate_right_u128). -Notation "'wrapping_mul_i8'" := (wrapping_mul_i8). +Notation "'bswap_u128'" := (Core_Bundle.bswap_u128). -Notation "'wrapping_mul_isize'" := (wrapping_mul_isize). +Notation "'wrapping_add_usize'" := (Core_Bundle.wrapping_add_usize). -Notation "'wrapping_mul_u128'" := (wrapping_mul_u128). +Notation "'wrapping_sub_usize'" := (Core_Bundle.wrapping_sub_usize). -Notation "'wrapping_mul_u16'" := (wrapping_mul_u16). +Notation "'wrapping_mul_usize'" := (Core_Bundle.wrapping_mul_usize). -Notation "'wrapping_mul_u32'" := (wrapping_mul_u32). +Notation "'three_way_compare_usize'" := (Core_Bundle.three_way_compare_usize). -Notation "'wrapping_mul_u64'" := (wrapping_mul_u64). +Notation "'add_with_overflow_usize'" := (Core_Bundle.add_with_overflow_usize). -Notation "'wrapping_mul_u8'" := (wrapping_mul_u8). +Notation "'unchecked_div_usize'" := (Core_Bundle.unchecked_div_usize). -Notation "'wrapping_mul_usize'" := (wrapping_mul_usize). +Notation "'unchecked_add_usize'" := (Core_Bundle.unchecked_add_usize). -Notation "'wrapping_sub_u128'" := (wrapping_sub_u128). +Notation "'ctpop_usize'" := (Core_Bundle.ctpop_usize). -Notation "'wrapping_sub_u16'" := (wrapping_sub_u16). +Notation "'cttz_usize'" := (Core_Bundle.cttz_usize). -Notation "'wrapping_sub_u32'" := (wrapping_sub_u32). +Notation "'ctlz_usize'" := (Core_Bundle.ctlz_usize). -Notation "'wrapping_sub_u64'" := (wrapping_sub_u64). +Notation "'rotate_left_usize'" := (Core_Bundle.rotate_left_usize). -Notation "'wrapping_sub_u8'" := (wrapping_sub_u8). +Notation "'rotate_right_usize'" := (Core_Bundle.rotate_right_usize). -Notation "'wrapping_sub_usize'" := (wrapping_sub_usize). +Notation "'bswap_usize'" := (Core_Bundle.bswap_usize). -Notation "'rotate_left_u128'" := (rotate_left_u128). +Notation "'wrapping_add_i8'" := (Core_Bundle.wrapping_add_i8). -Notation "'rotate_left_u16'" := (rotate_left_u16). +Notation "'wrapping_sub_i8'" := (Core_Bundle.wrapping_sub_i8). -Notation "'rotate_left_u32'" := (rotate_left_u32). +Notation "'wrapping_mul_i8'" := (Core_Bundle.wrapping_mul_i8). -Notation "'rotate_left_u64'" := (rotate_left_u64). +Notation "'add_with_overflow_i8'" := (Core_Bundle.add_with_overflow_i8). -Notation "'rotate_left_u8'" := (rotate_left_u8). +Notation "'unchecked_div_i8'" := (Core_Bundle.unchecked_div_i8). -Notation "'rotate_left_usize'" := (rotate_left_usize). +Notation "'unchecked_add_i8'" := (Core_Bundle.unchecked_add_i8). -Notation "'rotate_right_u128'" := (rotate_right_u128). +Notation "'wrapping_add_i16'" := (Core_Bundle.wrapping_add_i16). -Notation "'rotate_right_u16'" := (rotate_right_u16). +Notation "'wrapping_sub_i16'" := (Core_Bundle.wrapping_sub_i16). -Notation "'rotate_right_u32'" := (rotate_right_u32). +Notation "'wrapping_mul_i16'" := (Core_Bundle.wrapping_mul_i16). -Notation "'rotate_right_u64'" := (rotate_right_u64). +Notation "'add_with_overflow_i16'" := (Core_Bundle.add_with_overflow_i16). -Notation "'rotate_right_u8'" := (rotate_right_u8). +Notation "'unchecked_div_i16'" := (Core_Bundle.unchecked_div_i16). -Notation "'rotate_right_usize'" := (rotate_right_usize). +Notation "'unchecked_add_i16'" := (Core_Bundle.unchecked_add_i16). -(* Notation "'bswap_u128'" := (bswap_u128). *) +Notation "'wrapping_add_i32'" := (Core_Bundle.wrapping_add_i32). -(* Notation "'bswap_u16'" := (bswap_u16). *) +Notation "'wrapping_sub_i32'" := (Core_Bundle.wrapping_sub_i32). -(* Notation "'bswap_u32'" := (bswap_u32). *) +Notation "'wrapping_mul_i32'" := (Core_Bundle.wrapping_mul_i32). -(* Notation "'bswap_u64'" := (bswap_u64). *) +Notation "'add_with_overflow_i32'" := (Core_Bundle.add_with_overflow_i32). -(* Notation "'bswap_u8'" := (bswap_u8). *) +Notation "'unchecked_div_i32'" := (Core_Bundle.unchecked_div_i32). -(* Notation "'bswap_usize'" := (bswap_usize). *) +Notation "'unchecked_add_i32'" := (Core_Bundle.unchecked_add_i32). -(* Notation "'ctlz_u128'" := (ctlz_u128). *) +Notation "'wrapping_add_i64'" := (Core_Bundle.wrapping_add_i64). -(* Notation "'ctlz_u16'" := (ctlz_u16). *) +Notation "'wrapping_sub_i64'" := (Core_Bundle.wrapping_sub_i64). -(* Notation "'ctlz_u32'" := (ctlz_u32). *) +Notation "'wrapping_mul_i64'" := (Core_Bundle.wrapping_mul_i64). -(* Notation "'ctlz_u64'" := (ctlz_u64). *) +Notation "'add_with_overflow_i64'" := (Core_Bundle.add_with_overflow_i64). -(* Notation "'ctlz_u8'" := (ctlz_u8). *) +Notation "'unchecked_div_i64'" := (Core_Bundle.unchecked_div_i64). -(* Notation "'ctlz_usize'" := (ctlz_usize). *) +Notation "'unchecked_add_i64'" := (Core_Bundle.unchecked_add_i64). -(* Notation "'ctpop_u128'" := (ctpop_u128). *) +Notation "'wrapping_add_i128'" := (Core_Bundle.wrapping_add_i128). -(* Notation "'ctpop_u16'" := (ctpop_u16). *) +Notation "'wrapping_sub_i128'" := (Core_Bundle.wrapping_sub_i128). -(* Notation "'ctpop_u32'" := (ctpop_u32). *) +Notation "'wrapping_mul_i128'" := (Core_Bundle.wrapping_mul_i128). -(* Notation "'ctpop_u64'" := (ctpop_u64). *) +Notation "'add_with_overflow_i128'" := (Core_Bundle.add_with_overflow_i128). -(* Notation "'ctpop_u8'" := (ctpop_u8). *) +Notation "'unchecked_div_i128'" := (Core_Bundle.unchecked_div_i128). -(* Notation "'ctpop_usize'" := (ctpop_usize). *) +Notation "'unchecked_add_i128'" := (Core_Bundle.unchecked_add_i128). -(* Notation "'cttz_u128'" := (cttz_u128). *) +Notation "'wrapping_add_isize'" := (Core_Bundle.wrapping_add_isize). -(* Notation "'cttz_u16'" := (cttz_u16). *) +Notation "'wrapping_sub_isize'" := (Core_Bundle.wrapping_sub_isize). -(* Notation "'cttz_u32'" := (cttz_u32). *) +Notation "'wrapping_mul_isize'" := (Core_Bundle.wrapping_mul_isize). -(* Notation "'cttz_u64'" := (cttz_u64). *) +Notation "'add_with_overflow_isize'" := (Core_Bundle.add_with_overflow_isize). -(* Notation "'cttz_u8'" := (cttz_u8). *) +Notation "'unchecked_div_isize'" := (Core_Bundle.unchecked_div_isize). -(* Notation "'cttz_usize'" := (cttz_usize). *) +Notation "'unchecked_add_isize'" := (Core_Bundle.unchecked_add_isize). diff --git a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Iter.v b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Iter.v index 0a75b31d7..521899f95 100644 --- a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Iter.v +++ b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Iter.v @@ -9,69 +9,18 @@ Require Import String. Require Import Coq.Floats.Floats. From RecordUpdate Require Import RecordSet. Import RecordSetNotations. +From Core Require Import Core. -(* From Core Require Import Core. *) +(* NotImplementedYet *) + +(* NotImplementedYet *) -(* TODO: Replace this dummy lib with core lib *) -Class t_Sized (T : Type) := { }. -Definition t_u8 := Z. -Definition t_u16 := Z. -Definition t_u32 := Z. -Definition t_u64 := Z. -Definition t_u128 := Z. -Definition t_usize := Z. -Definition t_i8 := Z. -Definition t_i16 := Z. -Definition t_i32 := Z. -Definition t_i64 := Z. -Definition t_i128 := Z. -Definition t_isize := Z. -Definition t_Array T (x : t_usize) := list T. -Definition t_String := string. -Definition ToString_f_to_string (x : string) := x. -Instance Sized_any : forall {t_A}, t_Sized t_A := {}. -Class t_Clone (T : Type) := { Clone_f_clone : T -> T }. -Instance Clone_any : forall {t_A}, t_Clone t_A := {Clone_f_clone := fun x => x}. -Definition t_Slice (T : Type) := list T. -Definition unsize {T : Type} : list T -> t_Slice T := id. -Definition t_PartialEq_f_eq x y := x =? y. -Definition t_Rem_f_rem (x y : Z) := x mod y. -Definition assert (b : bool) (* `{H_assert : b = true} *) : unit := tt. -Inductive globality := | t_Global. -Definition t_Vec T (_ : globality) : Type := list T. -Definition impl_1__append {T} l1 l2 : list T * list T := (app l1 l2, l2). -Definition impl_1__len {A} (l : list A) := Z.of_nat (List.length l). -Definition impl__new {A} (_ : Datatypes.unit) : list A := nil. -Definition impl__with_capacity {A} (_ : Z) : list A := nil. -Definition impl_1__push {A} l (x : A) := cons x l. -Class t_From (A B : Type) := { From_f_from : B -> A }. -Definition impl__to_vec {T} (x : t_Slice T) : t_Vec T t_Global := x. -Class t_Into (A B : Type) := { Into_f_into : A -> B }. -Instance t_Into_from_t_From {A B : Type} `{H : t_From B A} : t_Into A B := { Into_f_into x := @From_f_from B A H x }. -Definition from_elem {A} (x : A) (l : Z) := repeat x (Z.to_nat l). -Definition t_Option := option. -Definition impl__map {A B} (x : t_Option A) (f : A -> B) : t_Option B := match x with | Some x => Some (f x) | None => None end. -Definition t_Add_f_add x y := x + y. -Class Cast A B := { cast : A -> B }. -Instance cast_t_u8_t_u32 : Cast t_u8 t_u32 := {| cast x := x |}. -(* / dummy lib *) -From Core Require Import Self_Traits (t_Iterator). -Export Self_Traits (t_Iterator). -From Core Require Import Self_Range (t_Step). -Export Self_Range (t_Step). -From Core Require Import Self_Traits (t_TrustedStep). -Export Self_Traits (t_TrustedStep). -From Core Require Import Self_Traits (t_IntoIterator). -Export Self_Traits (t_IntoIterator). -(* NotImplementedYet *) -(* NotImplementedYet *) -(* NotImplementedYet *) diff --git a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Iter_Range.v b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Iter_Range.v index 3bb96d69c..094133b92 100644 --- a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Iter_Range.v +++ b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Iter_Range.v @@ -9,216 +9,166 @@ Require Import String. Require Import Coq.Floats.Floats. From RecordUpdate Require Import RecordSet. Import RecordSetNotations. - -(* From Core Require Import Core. *) - -(* TODO: Replace this dummy lib with core lib *) -Class t_Sized (T : Type) := { }. -Definition t_u8 := Z. -Definition t_u16 := Z. -Definition t_u32 := Z. -Definition t_u64 := Z. -Definition t_u128 := Z. -Definition t_usize := Z. -Definition t_i8 := Z. -Definition t_i16 := Z. -Definition t_i32 := Z. -Definition t_i64 := Z. -Definition t_i128 := Z. -Definition t_isize := Z. -Definition t_Array T (x : t_usize) := list T. -Definition t_String := string. -Definition ToString_f_to_string (x : string) := x. -Instance Sized_any : forall {t_A}, t_Sized t_A := {}. -Class t_Clone (T : Type) := { Clone_f_clone : T -> T }. -Instance Clone_any : forall {t_A}, t_Clone t_A := {Clone_f_clone := fun x => x}. -Definition t_Slice (T : Type) := list T. -Definition unsize {T : Type} : list T -> t_Slice T := id. -Definition t_PartialEq_f_eq x y := x =? y. -Definition t_Rem_f_rem (x y : Z) := x mod y. -Definition assert (b : bool) (* `{H_assert : b = true} *) : unit := tt. -Inductive globality := | t_Global. -Definition t_Vec T (_ : globality) : Type := list T. -Definition impl_1__append {T} l1 l2 : list T * list T := (app l1 l2, l2). -Definition impl_1__len {A} (l : list A) := Z.of_nat (List.length l). -Definition impl__new {A} (_ : Datatypes.unit) : list A := nil. -Definition impl__with_capacity {A} (_ : Z) : list A := nil. -Definition impl_1__push {A} l (x : A) := cons x l. -Class t_From (A B : Type) := { From_f_from : B -> A }. -Definition impl__to_vec {T} (x : t_Slice T) : t_Vec T t_Global := x. -Class t_Into (A B : Type) := { Into_f_into : A -> B }. -Instance t_Into_from_t_From {A B : Type} `{H : t_From B A} : t_Into A B := { Into_f_into x := @From_f_from B A H x }. -Definition from_elem {A} (x : A) (l : Z) := repeat x (Z.to_nat l). -Definition t_Option := option. -Definition impl__map {A B} (x : t_Option A) (f : A -> B) : t_Option B := match x with | Some x => Some (f x) | None => None end. -Definition t_Add_f_add x y := x + y. -Class Cast A B := { cast : A -> B }. -Instance cast_t_u8_t_u32 : Cast t_u8 t_u32 := {| cast x := x |}. -(* / dummy lib *) - -From Core Require Import Core (t_num). -Export Core (t_num). - - - -From Core Require Import Core_Primitive (t_u8). -Export Core_Primitive (t_u8). - -From Core Require Import Core_Primitive (t_u16). -Export Core_Primitive (t_u16). - -From Core Require Import Core_Primitive (t_u32). -Export Core_Primitive (t_u32). - -From Core Require Import Core_Primitive (t_u64). -Export Core_Primitive (t_u64). - -From Core Require Import Core_Primitive (t_u128). -Export Core_Primitive (t_u128). - -From Core Require Import Core_Primitive (t_usize). -Export Core_Primitive (t_usize). +From Core Require Import Core. (* NotImplementedYet *) -Class t_Step (v_Self : Type) `{t_Sized (v_Self)} `{t_Clone (v_Self)} `{t_PartialOrd (v_Self) (v_Self)} : Type := + + +Class t_Step (v_Self : Type) `{Core_Marker.t_Sized (v_Self)} `{Core_Clone.t_Clone (v_Self)} `{Core_Cmp.t_PartialOrd (v_Self) (v_Self)} : Type := { - Step_f_steps_between : v_Self -> v_Self -> t_Option ((t_usize)); - Step_f_forward_checked : v_Self -> t_usize -> t_Option ((v_Self)); + Step__f_steps_between : v_Self -> v_Self -> Core_Option.t_Option ((Core_Primitive_Primitive_definitions.t_usize)); + Step__f_forward_checked : v_Self -> Core_Primitive_Primitive_definitions.t_usize -> Core_Option.t_Option ((v_Self)); }. Arguments t_Step (_) {_} {_} {_}. -Class t_RangeIteratorImpl (v_Self : Type) : Type := - { - RangeIteratorImpl_f_Item : Type; - _ :: `{t_Sized (RangeIteratorImpl_f_Item)}; - RangeIteratorImpl_f_spec_next : v_Self -> (v_Self*t_Option ((RangeIteratorImpl_f_Item))); - }. -Arguments t_RangeIteratorImpl (_). +(* NotImplementedYet *) + + + + + + + + -Instance t_RangeIteratorImpl_158276838 `{v_A : Type} `{t_Sized (v_A)} `{t_Step (v_A)} : t_RangeIteratorImpl ((t_Range ((v_A)))) := - { - RangeIteratorImpl_impl_f_Item := v_A; - RangeIteratorImpl_impl_f_spec_next := fun (self : t_Range ((v_A)))=> - let hax_temp_output := never_to_any (panic_fmt (impl_1__new_v1 (["not yet implemented: specification needed"%string]) (impl_1__none (tt)))) in - (self,hax_temp_output); - }. -Instance t_Iterator_416192239 `{v_A : Type} `{t_Sized (v_A)} `{t_Step (v_A)} : t_Iterator ((t_Range ((v_A)))) := + + + + + +Instance t_Step_676092016 : t_Step ((Core_Primitive_Primitive_definitions.t_u8)) := { - Iterator_impl_1_f_Item := v_A; - Iterator_impl_1_f_next := fun (self : t_Range ((v_A)))=> - let hax_temp_output := never_to_any (panic_fmt (impl_1__new_v1 (["not yet implemented: specification needed"%string]) (impl_1__none (tt)))) in - (self,hax_temp_output); - Iterator_impl_1_f_size_hint := fun (self : t_Range ((v_A)))=> + Core_Iter_Range.Step_impl_2__f_steps_between := fun (start : Core_Primitive_Primitive_definitions.t_u8) (v_end : Core_Primitive_Primitive_definitions.t_u8)=> if - PartialOrd_f_lt (Range_f_start self) (Range_f_end self) + Core_Cmp.PartialOrd__f_le (start) (v_end) then - let hint := Step_f_steps_between (Range_f_start self) (Range_f_end self) in - (0,Option_Some (0)) + Core_Option.Option_Some (Core_Convert.Into__f_into (Core_Ops_Arith.Sub__f_sub (Core_Clone.Clone__f_clone (v_end)) (Core_Clone.Clone__f_clone (start)))) else - (0,Option_Some (0)); + Core_Option.Option_None; + Core_Iter_Range.Step_impl_2__f_forward_checked := fun (start : Core_Primitive_Primitive_definitions.t_u8) (n : Core_Primitive_Primitive_definitions.t_usize)=> + match Core_Convert.TryFrom__f_try_from (n) with + | Core_Result.Result_Ok (n) => + Core_Num.impl_6__checked_add (start) (n) + | Core_Result.Result_Err (_) => + Core_Option.Option_None + end; }. -Instance t_Step_890486371 : t_Step ((t_u8)) := +Instance t_Step_641489040 : t_Step ((Core_Primitive_Primitive_definitions.t_u16)) := { - Step_impl_2_f_steps_between := fun (start : t_u8) (v_end : t_u8)=> + Core_Iter_Range.Step_impl_3__f_steps_between := fun (start : Core_Primitive_Primitive_definitions.t_u16) (v_end : Core_Primitive_Primitive_definitions.t_u16)=> if - PartialOrd_f_le (start) (v_end) + Core_Cmp.PartialOrd__f_le (start) (v_end) then - Option_Some (Into_f_into (Sub_f_sub (Clone_f_clone (v_end)) (Clone_f_clone (start)))) + Core_Option.Option_Some (Core_Convert.Into__f_into (Core_Ops_Arith.Sub__f_sub (Core_Clone.Clone__f_clone (v_end)) (Core_Clone.Clone__f_clone (start)))) else - Option_None; - Step_impl_2_f_forward_checked := fun (start : t_u8) (n : t_usize)=> - match TryFrom_f_try_from (n) with - | Result_Ok (n) => - impl_6__checked_add (start) (n) - | Result_Err (_) => - Option_None + Core_Option.Option_None; + Core_Iter_Range.Step_impl_3__f_forward_checked := fun (start : Core_Primitive_Primitive_definitions.t_u16) (n : Core_Primitive_Primitive_definitions.t_usize)=> + match Core_Convert.TryFrom__f_try_from (n) with + | Core_Result.Result_Ok (n) => + Core_Num.impl_7__checked_add (start) (n) + | Core_Result.Result_Err (_) => + Core_Option.Option_None end; }. -Instance t_Step_800843805 : t_Step ((t_u16)) := +Instance t_Step_225701987 : t_Step ((Core_Primitive_Primitive_definitions.t_u32)) := { - Step_impl_3_f_steps_between := fun (start : t_u16) (v_end : t_u16)=> + Core_Iter_Range.Step_impl_4__f_steps_between := fun (start : Core_Primitive_Primitive_definitions.t_u32) (v_end : Core_Primitive_Primitive_definitions.t_u32)=> if - PartialOrd_f_le (start) (v_end) + Core_Cmp.PartialOrd__f_le (start) (v_end) then - Option_Some (Into_f_into (Sub_f_sub (Clone_f_clone (v_end)) (Clone_f_clone (start)))) + Core_Option.Option_Some (Core_Convert.Into__f_into (Core_Ops_Arith.Sub__f_sub (Core_Clone.Clone__f_clone (v_end)) (Core_Clone.Clone__f_clone (start)))) else - Option_None; - Step_impl_3_f_forward_checked := fun (start : t_u16) (n : t_usize)=> - match TryFrom_f_try_from (n) with - | Result_Ok (n) => - impl_7__checked_add (start) (n) - | Result_Err (_) => - Option_None + Core_Option.Option_None; + Core_Iter_Range.Step_impl_4__f_forward_checked := fun (start : Core_Primitive_Primitive_definitions.t_u32) (n : Core_Primitive_Primitive_definitions.t_usize)=> + match Core_Convert.TryFrom__f_try_from (n) with + | Core_Result.Result_Ok (n) => + Core_Num.impl_8__checked_add (start) (n) + | Core_Result.Result_Err (_) => + Core_Option.Option_None end; }. -Instance t_Step_230073379 : t_Step ((t_u32)) := +Instance t_Step_492796240 : t_Step ((Core_Primitive_Primitive_definitions.t_u64)) := { - Step_impl_4_f_steps_between := fun (start : t_u32) (v_end : t_u32)=> + Core_Iter_Range.Step_impl_5__f_steps_between := fun (start : Core_Primitive_Primitive_definitions.t_u64) (v_end : Core_Primitive_Primitive_definitions.t_u64)=> if - PartialOrd_f_le (start) (v_end) + Core_Cmp.PartialOrd__f_le (start) (v_end) then - Option_Some (Into_f_into (Sub_f_sub (Clone_f_clone (v_end)) (Clone_f_clone (start)))) + Core_Option.Option_Some (Core_Convert.Into__f_into (Core_Ops_Arith.Sub__f_sub (Core_Clone.Clone__f_clone (v_end)) (Core_Clone.Clone__f_clone (start)))) else - Option_None; - Step_impl_4_f_forward_checked := fun (start : t_u32) (n : t_usize)=> - match TryFrom_f_try_from (n) with - | Result_Ok (n) => - impl_8__checked_add (start) (n) - | Result_Err (_) => - Option_None + Core_Option.Option_None; + Core_Iter_Range.Step_impl_5__f_forward_checked := fun (start : Core_Primitive_Primitive_definitions.t_u64) (n : Core_Primitive_Primitive_definitions.t_usize)=> + match Core_Convert.TryFrom__f_try_from (n) with + | Core_Result.Result_Ok (n) => + Core_Num.impl_9__checked_add (start) (n) + | Core_Result.Result_Err (_) => + Core_Option.Option_None end; }. -Instance t_Step_851062726 : t_Step ((t_u64)) := +Instance t_Step_118315388 : t_Step ((Core_Primitive_Primitive_definitions.t_usize)) := { - Step_impl_5_f_steps_between := fun (start : t_u64) (v_end : t_u64)=> + Core_Iter_Range.Step_impl_6__f_steps_between := fun (start : Core_Primitive_Primitive_definitions.t_usize) (v_end : Core_Primitive_Primitive_definitions.t_usize)=> if - PartialOrd_f_le (start) (v_end) + Core_Cmp.PartialOrd__f_le (start) (v_end) then - Option_Some (Into_f_into (Sub_f_sub (Clone_f_clone (v_end)) (Clone_f_clone (start)))) + Core_Option.Option_Some (Core_Convert.Into__f_into (Core_Ops_Arith.Sub__f_sub (Core_Clone.Clone__f_clone (v_end)) (Core_Clone.Clone__f_clone (start)))) else - Option_None; - Step_impl_5_f_forward_checked := fun (start : t_u64) (n : t_usize)=> - match TryFrom_f_try_from (n) with - | Result_Ok (n) => - impl_9__checked_add (start) (n) - | Result_Err (_) => - Option_None + Core_Option.Option_None; + Core_Iter_Range.Step_impl_6__f_forward_checked := fun (start : Core_Primitive_Primitive_definitions.t_usize) (n : Core_Primitive_Primitive_definitions.t_usize)=> + match Core_Convert.TryFrom__f_try_from (n) with + | Core_Result.Result_Ok (n) => + Core_Num.impl_11__checked_add (start) (n) + | Core_Result.Result_Err (_) => + Core_Option.Option_None end; }. -Instance t_Step_679763039 : t_Step ((t_u128)) := +Instance t_Step_591306384 : t_Step ((Core_Primitive_Primitive_definitions.t_u128)) := { - Step_impl_7_f_steps_between := fun (start : t_u128) (v_end : t_u128)=> + Core_Iter_Range.Step_impl_7__f_steps_between := fun (start : Core_Primitive_Primitive_definitions.t_u128) (v_end : Core_Primitive_Primitive_definitions.t_u128)=> if - PartialOrd_f_le (start) (v_end) + Core_Cmp.PartialOrd__f_le (start) (v_end) then - impl__ok (TryFrom_f_try_from (Sub_f_sub (Clone_f_clone (v_end)) (Clone_f_clone (start)))) + Core_Result.impl__ok (Core_Convert.TryFrom__f_try_from (Core_Ops_Arith.Sub__f_sub (Core_Clone.Clone__f_clone (v_end)) (Core_Clone.Clone__f_clone (start)))) else - Option_None; - Step_impl_7_f_forward_checked := fun (start : t_u128) (n : t_usize)=> - Option_None; + Core_Option.Option_None; + Core_Iter_Range.Step_impl_7__f_forward_checked := fun (start : Core_Primitive_Primitive_definitions.t_u128) (n : Core_Primitive_Primitive_definitions.t_usize)=> + Core_Option.Option_None; + }. + +Class t_RangeIteratorImpl (v_Self : Type) : Type := + { + RangeIteratorImpl__f_Item : Type; + _ :: `{Core_Marker.t_Sized (RangeIteratorImpl__f_Itemt_item)}; + RangeIteratorImpl__f_spec_next : v_Self -> (v_Self*Core_Option.t_Option ((RangeIteratorImpl__f_Itemt_item))); }. +Arguments t_RangeIteratorImpl (_). -Instance t_Step_999413546 : t_Step ((t_usize)) := +Instance t_Iterator_300452680 `{v_A : Type} `{Core_Marker.t_Sized (v_A)} `{t_Step (v_A)} : Core_Iter_Traits_Iterator.t_Iterator ((Core_Ops_Range.t_Range ((v_A)))) := { - Step_impl_6_f_steps_between := fun (start : t_usize) (v_end : t_usize)=> + Core_Iter_Traits_Iterator.Iterator_impl_1__f_Item := v_A; + Core_Iter_Traits_Iterator.Iterator_impl_1__f_next := fun (self : Core_Ops_Range.t_Range ((v_A)))=> + let hax_temp_output := Rust_primitives_Hax.never_to_any (Core_Panicking.panic_fmt (Core_Fmt_Rt.impl_1__new_v1 ([("not yet implemented: specification needed"%string : string)]) ([]))) in + (self,hax_temp_output); + Core_Iter_Traits_Iterator.Iterator_impl_1__f_size_hint := fun (self : Core_Ops_Range.t_Range ((v_A)))=> if - PartialOrd_f_le (start) (v_end) + Core_Cmp.PartialOrd__f_lt (Core_Ops_Range.f_Range_start self) (Core_Ops_Range.f_Range_end self) then - Option_Some (Into_f_into (Sub_f_sub (Clone_f_clone (v_end)) (Clone_f_clone (start)))) + let hint := Step__f_steps_between (Core_Ops_Range.f_Range_start self) (Core_Ops_Range.f_Range_end self) in + ((0 : t_usize),Core_Option.Option_Some ((0 : t_usize))) else - Option_None; - Step_impl_6_f_forward_checked := fun (start : t_usize) (n : t_usize)=> - match TryFrom_f_try_from (n) with - | Result_Ok (n) => - impl_11__checked_add (start) (n) - | Result_Err (_) => - Option_None - end; + ((0 : t_usize),Core_Option.Option_Some ((0 : t_usize))); + }. + +Instance t_RangeIteratorImpl_145693917 `{v_A : Type} `{Core_Marker.t_Sized (v_A)} `{t_Step (v_A)} : t_RangeIteratorImpl ((Core_Ops_Range.t_Range ((v_A)))) := + { + Core_Iter_Range.RangeIteratorImpl_f_Item := v_A; + Core_Iter_Range.RangeIteratorImpl_f_spec_next := fun (self : Core_Ops_Range.t_Range ((v_A)))=> + let hax_temp_output := Rust_primitives_Hax.never_to_any (Core_Panicking.panic_fmt (Core_Fmt_Rt.impl_1__new_v1 ([("not yet implemented: specification needed"%string : string)]) ([]))) in + (self,hax_temp_output); }. diff --git a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Iter_Traits.v b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Iter_Traits.v index e23436f51..d31f49031 100644 --- a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Iter_Traits.v +++ b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Iter_Traits.v @@ -9,81 +9,24 @@ Require Import String. Require Import Coq.Floats.Floats. From RecordUpdate Require Import RecordSet. Import RecordSetNotations. - -(* From Core Require Import Core. *) - -(* TODO: Replace this dummy lib with core lib *) -Class t_Sized (T : Type) := { }. -Definition t_u8 := Z. -Definition t_u16 := Z. -Definition t_u32 := Z. -Definition t_u64 := Z. -Definition t_u128 := Z. -Definition t_usize := Z. -Definition t_i8 := Z. -Definition t_i16 := Z. -Definition t_i32 := Z. -Definition t_i64 := Z. -Definition t_i128 := Z. -Definition t_isize := Z. -Definition t_Array T (x : t_usize) := list T. -Definition t_String := string. -Definition ToString_f_to_string (x : string) := x. -Instance Sized_any : forall {t_A}, t_Sized t_A := {}. -Class t_Clone (T : Type) := { Clone_f_clone : T -> T }. -Instance Clone_any : forall {t_A}, t_Clone t_A := {Clone_f_clone := fun x => x}. -Definition t_Slice (T : Type) := list T. -Definition unsize {T : Type} : list T -> t_Slice T := id. -Definition t_PartialEq_f_eq x y := x =? y. -Definition t_Rem_f_rem (x y : Z) := x mod y. -Definition assert (b : bool) (* `{H_assert : b = true} *) : unit := tt. -Inductive globality := | t_Global. -Definition t_Vec T (_ : globality) : Type := list T. -Definition impl_1__append {T} l1 l2 : list T * list T := (app l1 l2, l2). -Definition impl_1__len {A} (l : list A) := Z.of_nat (List.length l). -Definition impl__new {A} (_ : Datatypes.unit) : list A := nil. -Definition impl__with_capacity {A} (_ : Z) : list A := nil. -Definition impl_1__push {A} l (x : A) := cons x l. -Class t_From (A B : Type) := { From_f_from : B -> A }. -Definition impl__to_vec {T} (x : t_Slice T) : t_Vec T t_Global := x. -Class t_Into (A B : Type) := { Into_f_into : A -> B }. -Instance t_Into_from_t_From {A B : Type} `{H : t_From B A} : t_Into A B := { Into_f_into x := @From_f_from B A H x }. -Definition from_elem {A} (x : A) (l : Z) := repeat x (Z.to_nat l). -Definition t_Option := option. -Definition impl__map {A B} (x : t_Option A) (f : A -> B) : t_Option B := match x with | Some x => Some (f x) | None => None end. -Definition t_Add_f_add x y := x + y. -Class Cast A B := { cast : A -> B }. -Instance cast_t_u8_t_u32 : Cast t_u8 t_u32 := {| cast x := x |}. -(* / dummy lib *) - - - - - -From Core Require Import Self_Collect (t_IntoIterator). -Export Self_Collect (t_IntoIterator). - -From Core Require Import Self_Exact_size (t_ExactSizeIterator). -Export Self_Exact_size (t_ExactSizeIterator). - -From Core Require Import Self_Iterator (t_Iterator). -Export Self_Iterator (t_Iterator). - - - -From Core Require Import Self_Marker (t_FusedIterator). -Export Self_Marker (t_FusedIterator). - -From Core Require Import Self_Marker (t_TrustedLen). -Export Self_Marker (t_TrustedLen). - -From Core Require Import Self_Marker (t_TrustedStep). -Export Self_Marker (t_TrustedStep). +From Core Require Import Core. (* NotImplementedYet *) -(* NotImplementedYet *) -(* NotImplementedYet *) -(* NotImplementedYet *) + + + + + + + + + + + + + + + diff --git a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Iter_Traits_Collect.v b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Iter_Traits_Collect.v index 72ea07ca9..e849b9239 100644 --- a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Iter_Traits_Collect.v +++ b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Iter_Traits_Collect.v @@ -9,77 +9,33 @@ Require Import String. Require Import Coq.Floats.Floats. From RecordUpdate Require Import RecordSet. Import RecordSetNotations. +From Core Require Import Core. -(* From Core Require Import Core. *) +(* NotImplementedYet *) -(* TODO: Replace this dummy lib with core lib *) -Class t_Sized (T : Type) := { }. -Definition t_u8 := Z. -Definition t_u16 := Z. -Definition t_u32 := Z. -Definition t_u64 := Z. -Definition t_u128 := Z. -Definition t_usize := Z. -Definition t_i8 := Z. -Definition t_i16 := Z. -Definition t_i32 := Z. -Definition t_i64 := Z. -Definition t_i128 := Z. -Definition t_isize := Z. -Definition t_Array T (x : t_usize) := list T. -Definition t_String := string. -Definition ToString_f_to_string (x : string) := x. -Instance Sized_any : forall {t_A}, t_Sized t_A := {}. -Class t_Clone (T : Type) := { Clone_f_clone : T -> T }. -Instance Clone_any : forall {t_A}, t_Clone t_A := {Clone_f_clone := fun x => x}. -Definition t_Slice (T : Type) := list T. -Definition unsize {T : Type} : list T -> t_Slice T := id. -Definition t_PartialEq_f_eq x y := x =? y. -Definition t_Rem_f_rem (x y : Z) := x mod y. -Definition assert (b : bool) (* `{H_assert : b = true} *) : unit := tt. -Inductive globality := | t_Global. -Definition t_Vec T (_ : globality) : Type := list T. -Definition impl_1__append {T} l1 l2 : list T * list T := (app l1 l2, l2). -Definition impl_1__len {A} (l : list A) := Z.of_nat (List.length l). -Definition impl__new {A} (_ : Datatypes.unit) : list A := nil. -Definition impl__with_capacity {A} (_ : Z) : list A := nil. -Definition impl_1__push {A} l (x : A) := cons x l. -Class t_From (A B : Type) := { From_f_from : B -> A }. -Definition impl__to_vec {T} (x : t_Slice T) : t_Vec T t_Global := x. -Class t_Into (A B : Type) := { Into_f_into : A -> B }. -Instance t_Into_from_t_From {A B : Type} `{H : t_From B A} : t_Into A B := { Into_f_into x := @From_f_from B A H x }. -Definition from_elem {A} (x : A) (l : Z) := repeat x (Z.to_nat l). -Definition t_Option := option. -Definition impl__map {A B} (x : t_Option A) (f : A -> B) : t_Option B := match x with | Some x => Some (f x) | None => None end. -Definition t_Add_f_add x y := x + y. -Class Cast A B := { cast : A -> B }. -Instance cast_t_u8_t_u32 : Cast t_u8 t_u32 := {| cast x := x |}. -(* / dummy lib *) -From Core Require Import Core_Iter_Traits (t_Iterator). -Export Core_Iter_Traits (t_Iterator). Class t_IntoIterator (v_Self : Type) : Type := { - IntoIterator_f_Item : Type; - _ :: `{t_Sized (IntoIterator_f_Item)}; - IntoIterator_f_IntoIter `{_.(Iterator_f_Item) = IntoIterator_f_Item} : Type; - _ :: `{t_Iterator (IntoIterator_f_IntoIter)}; - _ :: `{t_Sized (IntoIterator_f_IntoIter)}; - IntoIterator_f_into_iter : v_Self -> IntoIterator_f_IntoIter; + IntoIterator__f_Item : Type; + _ :: `{Core_Marker.t_Sized (IntoIterator__f_Itemt_item)}; + IntoIterator__f_IntoIter `{_.(Core_Iter_Traits_Iterator.Iterator__f_Item) = IntoIterator__f_Itemt_item} : Type; + _ :: `{Core_Marker.t_Sized (IntoIterator__f_IntoItert_item)}; + _ :: `{Core_Iter_Traits_Iterator.t_Iterator (IntoIterator__f_IntoItert_item)}; + IntoIterator__f_into_iter : v_Self -> IntoIterator__f_IntoItert_item; }. Arguments t_IntoIterator (_). -Class t_FromIterator (v_Self : Type) (v_A : Type) `{t_Sized (v_Self)} `{t_Sized (v_A)} : Type := +Class t_FromIterator (v_Self : Type) (v_A : Type) `{Core_Marker.t_Sized (v_Self)} `{Core_Marker.t_Sized (v_A)} : Type := { - FromIterator_f_from_iter v_T : Type `{t_Sized (v_T)} `{t_IntoIterator (v_T)} `{_.(IntoIterator_f_Item) = v_A} : v_T -> v_Self; + FromIterator__f_from_iter v_T : Type `{Core_Marker.t_Sized (v_T)} `{t_IntoIterator (v_T)} `{_.(IntoIterator__f_Item) = v_A} : v_T -> v_Self; }. Arguments t_FromIterator (_) (_) {_} {_}. -Instance t_IntoIterator_346955793 `{v_I : Type} `{t_Sized (v_I)} `{t_Iterator (v_I)} : t_IntoIterator ((v_I)) := +Instance t_IntoIterator_225021885 `{v_I : Type} `{Core_Marker.t_Sized (v_I)} `{Core_Iter_Traits_Iterator.t_Iterator (v_I)} : t_IntoIterator ((v_I)) := { - IntoIterator_impl_f_Item := Iterator_f_Item; - IntoIterator_impl_f_IntoIter := v_I; - IntoIterator_impl_f_into_iter := fun (self : v_I)=> + Core_Iter_Traits_Collect.IntoIterator_f_Item := Core_Iter_Traits_Iterator.Iterator__f_Itemt_item; + Core_Iter_Traits_Collect.IntoIterator_f_IntoIter := v_I; + Core_Iter_Traits_Collect.IntoIterator_f_into_iter := fun (self : v_I)=> self; }. diff --git a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Iter_Traits_Exact_size.v b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Iter_Traits_Exact_size.v index bcae322f5..7662c6193 100644 --- a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Iter_Traits_Exact_size.v +++ b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Iter_Traits_Exact_size.v @@ -9,59 +9,15 @@ Require Import String. Require Import Coq.Floats.Floats. From RecordUpdate Require Import RecordSet. Import RecordSetNotations. +From Core Require Import Core. -(* From Core Require Import Core. *) +(* NotImplementedYet *) -(* TODO: Replace this dummy lib with core lib *) -Class t_Sized (T : Type) := { }. -Definition t_u8 := Z. -Definition t_u16 := Z. -Definition t_u32 := Z. -Definition t_u64 := Z. -Definition t_u128 := Z. -Definition t_usize := Z. -Definition t_i8 := Z. -Definition t_i16 := Z. -Definition t_i32 := Z. -Definition t_i64 := Z. -Definition t_i128 := Z. -Definition t_isize := Z. -Definition t_Array T (x : t_usize) := list T. -Definition t_String := string. -Definition ToString_f_to_string (x : string) := x. -Instance Sized_any : forall {t_A}, t_Sized t_A := {}. -Class t_Clone (T : Type) := { Clone_f_clone : T -> T }. -Instance Clone_any : forall {t_A}, t_Clone t_A := {Clone_f_clone := fun x => x}. -Definition t_Slice (T : Type) := list T. -Definition unsize {T : Type} : list T -> t_Slice T := id. -Definition t_PartialEq_f_eq x y := x =? y. -Definition t_Rem_f_rem (x y : Z) := x mod y. -Definition assert (b : bool) (* `{H_assert : b = true} *) : unit := tt. -Inductive globality := | t_Global. -Definition t_Vec T (_ : globality) : Type := list T. -Definition impl_1__append {T} l1 l2 : list T * list T := (app l1 l2, l2). -Definition impl_1__len {A} (l : list A) := Z.of_nat (List.length l). -Definition impl__new {A} (_ : Datatypes.unit) : list A := nil. -Definition impl__with_capacity {A} (_ : Z) : list A := nil. -Definition impl_1__push {A} l (x : A) := cons x l. -Class t_From (A B : Type) := { From_f_from : B -> A }. -Definition impl__to_vec {T} (x : t_Slice T) : t_Vec T t_Global := x. -Class t_Into (A B : Type) := { Into_f_into : A -> B }. -Instance t_Into_from_t_From {A B : Type} `{H : t_From B A} : t_Into A B := { Into_f_into x := @From_f_from B A H x }. -Definition from_elem {A} (x : A) (l : Z) := repeat x (Z.to_nat l). -Definition t_Option := option. -Definition impl__map {A B} (x : t_Option A) (f : A -> B) : t_Option B := match x with | Some x => Some (f x) | None => None end. -Definition t_Add_f_add x y := x + y. -Class Cast A B := { cast : A -> B }. -Instance cast_t_u8_t_u32 : Cast t_u8 t_u32 := {| cast x := x |}. -(* / dummy lib *) -From Core Require Import Core_Iter (t_Iterator). -Export Core_Iter (t_Iterator). -Class t_ExactSizeIterator (v_Self : Type) `{t_Iterator (v_Self)} : Type := +Class t_ExactSizeIterator (v_Self : Type) `{Core_Iter_Traits_Iterator.t_Iterator (v_Self)} : Type := { - ExactSizeIterator_f_len : v_Self -> t_usize; - ExactSizeIterator_f_is_empty : v_Self -> bool; + ExactSizeIterator__f_len : v_Self -> t_usize; + ExactSizeIterator__f_is_empty : v_Self -> bool; }. Arguments t_ExactSizeIterator (_) {_}. diff --git a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Iter_Traits_Iterator.v b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Iter_Traits_Iterator.v index 2cef98822..8aca2ed8e 100644 --- a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Iter_Traits_Iterator.v +++ b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Iter_Traits_Iterator.v @@ -1,4 +1,3 @@ - (* File automatically generated by Hacspec *) From Coq Require Import ZArith. Require Import List. @@ -10,27 +9,24 @@ Require Import String. Require Import Coq.Floats.Floats. From RecordUpdate Require Import RecordSet. Import RecordSetNotations. +From Core Require Import Core. + +(* NotImplementedYet *) + + + -(* From Core Require Import Core. *) -From Core Require Import Core_Marker. -Export Core_Marker. -From Core Require Import Core_Option. -Export Core_Option. -From Core Require Import Core_Primitive. -Export Core_Primitive. -From Core Require Import Core_Ops_Function. -Export Core_Ops_Function. Class t_Iterator (v_Self : Type) : Type := { - Iterator_f_Item : Type; - _H_Sized :: `{t_Sized (Iterator_f_Item)}; - Iterator_f_next : v_Self -> (v_Self*t_Option ((Iterator_f_Item))); - Iterator_f_size_hint : v_Self -> (t_usize*t_Option ((t_usize))); - Iterator_f_fold (v_B : Type) (v_F : Type) `{t_Sized (v_B)} `{t_Sized (v_F)} `{t_Sized (v_Self)} `{t_FnMut (v_F) ((v_B*Iterator_f_Item))} `{_.(FnOnce_f_Output) = v_B} : v_Self -> v_B -> v_F -> v_B; + Iterator__f_Item : Type; + _ :: `{Core_Marker.t_Sized (Iterator__f_Itemt_item)}; + Iterator__f_next : v_Self -> (v_Self*Core_Option.t_Option ((Iterator__f_Itemt_item))); + Iterator__f_size_hint : v_Self -> (t_usize*Core_Option.t_Option ((t_usize))); + Iterator__f_fold v_B : Type v_F : Type `{Core_Marker.t_Sized (v_B)} `{Core_Marker.t_Sized (v_F)} `{Core_Marker.t_Sized (v_Self)} `{Core_Ops_Function.t_FnMut (v_F) ((v_B*Iterator__f_Itemt_item))} `{_.(Core_Ops_Function.FnOnce__f_Output) = v_B} : v_Self -> v_B -> v_F -> v_B; }. Arguments t_Iterator (_). diff --git a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Iter_Traits_Marker.v b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Iter_Traits_Marker.v index b68138666..768b968f0 100644 --- a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Iter_Traits_Marker.v +++ b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Iter_Traits_Marker.v @@ -9,72 +9,28 @@ Require Import String. Require Import Coq.Floats.Floats. From RecordUpdate Require Import RecordSet. Import RecordSetNotations. +From Core Require Import Core. -(* From Core Require Import Core. *) +(* NotImplementedYet *) -(* TODO: Replace this dummy lib with core lib *) -Class t_Sized (T : Type) := { }. -Definition t_u8 := Z. -Definition t_u16 := Z. -Definition t_u32 := Z. -Definition t_u64 := Z. -Definition t_u128 := Z. -Definition t_usize := Z. -Definition t_i8 := Z. -Definition t_i16 := Z. -Definition t_i32 := Z. -Definition t_i64 := Z. -Definition t_i128 := Z. -Definition t_isize := Z. -Definition t_Array T (x : t_usize) := list T. -Definition t_String := string. -Definition ToString_f_to_string (x : string) := x. -Instance Sized_any : forall {t_A}, t_Sized t_A := {}. -Class t_Clone (T : Type) := { Clone_f_clone : T -> T }. -Instance Clone_any : forall {t_A}, t_Clone t_A := {Clone_f_clone := fun x => x}. -Definition t_Slice (T : Type) := list T. -Definition unsize {T : Type} : list T -> t_Slice T := id. -Definition t_PartialEq_f_eq x y := x =? y. -Definition t_Rem_f_rem (x y : Z) := x mod y. -Definition assert (b : bool) (* `{H_assert : b = true} *) : unit := tt. -Inductive globality := | t_Global. -Definition t_Vec T (_ : globality) : Type := list T. -Definition impl_1__append {T} l1 l2 : list T * list T := (app l1 l2, l2). -Definition impl_1__len {A} (l : list A) := Z.of_nat (List.length l). -Definition impl__new {A} (_ : Datatypes.unit) : list A := nil. -Definition impl__with_capacity {A} (_ : Z) : list A := nil. -Definition impl_1__push {A} l (x : A) := cons x l. -Class t_From (A B : Type) := { From_f_from : B -> A }. -Definition impl__to_vec {T} (x : t_Slice T) : t_Vec T t_Global := x. -Class t_Into (A B : Type) := { Into_f_into : A -> B }. -Instance t_Into_from_t_From {A B : Type} `{H : t_From B A} : t_Into A B := { Into_f_into x := @From_f_from B A H x }. -Definition from_elem {A} (x : A) (l : Z) := repeat x (Z.to_nat l). -Definition t_Option := option. -Definition impl__map {A B} (x : t_Option A) (f : A -> B) : t_Option B := match x with | Some x => Some (f x) | None => None end. -Definition t_Add_f_add x y := x + y. -Class Cast A B := { cast : A -> B }. -Instance cast_t_u8_t_u32 : Cast t_u8 t_u32 := {| cast x := x |}. -(* / dummy lib *) -From Core Require Import Core_Iter (t_Step). -Export Core_Iter (t_Step). Class t_TrustedFused (v_Self : Type) : Type := { }. Arguments t_TrustedFused (_). -Class t_TrustedStep (v_Self : Type) `{t_Step (v_Self)} `{t_Copy (v_Self)} : Type := +Class t_FusedIterator (v_Self : Type) `{Core_Iter_Traits_Iterator.t_Iterator (v_Self)} : Type := { }. -Arguments t_TrustedStep (_) {_} {_}. +Arguments t_FusedIterator (_) {_}. -Class t_FusedIterator (v_Self : Type) `{t_Iterator (v_Self)} : Type := +Class t_TrustedLen (v_Self : Type) `{Core_Iter_Traits_Iterator.t_Iterator (v_Self)} : Type := { }. -Arguments t_FusedIterator (_) {_}. +Arguments t_TrustedLen (_) {_}. -Class t_TrustedLen (v_Self : Type) `{t_Iterator (v_Self)} : Type := +Class t_TrustedStep (v_Self : Type) `{Core_Iter_Range.t_Step (v_Self)} `{Core_Marker.t_Copy (v_Self)} : Type := { }. -Arguments t_TrustedLen (_) {_}. +Arguments t_TrustedStep (_) {_} {_}. diff --git a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Marker.v b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Marker.v index 49ff0e074..e166b38fb 100644 --- a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Marker.v +++ b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Marker.v @@ -1,4 +1,3 @@ - (* File automatically generated by Hacspec *) From Coq Require Import ZArith. Require Import List. @@ -10,37 +9,30 @@ Require Import String. Require Import Coq.Floats.Floats. From RecordUpdate Require Import RecordSet. Import RecordSetNotations. +From Core Require Import Core_Clone. -(* From Core Require Import Core. *) +(* NotImplementedYet *) -From Core Require Import Core_Clone (t_Clone). -Export Core_Clone (t_Clone). -Class t_Copy (v_Self : Type) `{t_Clone (v_Self)} : Type := - { - }. -Arguments t_Copy (_) {_}. -Class t_Destruct (v_Self : Type) : Type := +Class t_Sized (v_Self : Type) : Type := { }. -Arguments t_Destruct (_). +Arguments t_Sized (_). -Class t_Sized (v_Self : Type) : Type := +Class t_Copy (v_Self : Type) `{Core_Clone.t_Clone (v_Self)} : Type := { }. -Arguments t_Sized (_). +Arguments t_Copy (_) {_}. -Record t_PhantomData (v_T : Type) `{t_Sized (v_T)} : Type := +Class t_Destruct (v_Self : Type) : Type := { }. -Arguments Build_t_PhantomData {_} {_}. -#[export] -Notation "'PhantomData'" := Build_t_PhantomData. +Arguments t_Destruct (_). Class t_Tuple (v_Self : Type) : Type := { }. Arguments t_Tuple (_). -#[global] Instance t_Sized_any T : t_Sized T := {}. +Instance t_Sized_any (v_Self : Type) : t_Sized v_Self := {}. diff --git a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Num.v b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Num.v index fcb768d78..a0657e310 100644 --- a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Num.v +++ b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Num.v @@ -1,4 +1,3 @@ - (* File automatically generated by Hacspec *) From Coq Require Import ZArith. Require Import List. @@ -10,489 +9,480 @@ Require Import String. Require Import Coq.Floats.Floats. From RecordUpdate Require Import RecordSet. Import RecordSetNotations. +From Core Require Import Core_Bundle. -(* From Core Require Import Core. *) +(* NotImplementedYet *) -From Core Require Import Core_Base_interface. -Export Core_Base_interface. -From Core Require Import Core_Primitive. -Export Core_Primitive. -From Core Require Import Core_Intrinsics. -Export Core_Intrinsics. -From Core Require Import Core_Ops_Index. -Export Core_Ops_Index. -(* NotImplementedYet *) -(* NotImplementedYet *) -Notation "'impl_10__from_le'" := (from_le715594649). +Notation "'impl__MIN'" := (Core_Bundle.impl__MIN). -Notation "'impl_10__to_le'" := (to_le902648378). +Notation "'impl__MAX'" := (Core_Bundle.impl__MAX). -Notation "'impl_7__from_le'" := (from_le793045973). +Notation "'impl__BITS'" := (Core_Bundle.impl__BITS). -Notation "'impl_7__to_le'" := (to_le1012469456). +Notation "'impl__wrapping_add'" := (Core_Bundle.impl__wrapping_add). -Notation "'impl_8__from_le'" := (from_le706338679). +Notation "'impl__wrapping_sub'" := (Core_Bundle.impl__wrapping_sub). -Notation "'impl_8__to_le'" := (to_le724624277). +Notation "'impl__wrapping_neg'" := (Core_Bundle.impl__wrapping_neg). -Notation "'impl_9__from_le'" := (from_le435089922). +Notation "'impl__wrapping_abs'" := (Core_Bundle.impl__wrapping_abs). -Notation "'impl_9__to_le'" := (to_le2703875). +Notation "'impl__rem_euclid'" := (Core_Bundle.impl__rem_euclid). -Notation "'impl_6__from_le'" := (from_le529489651). +Notation "'impl__abs'" := (Core_Bundle.impl__abs). -Notation "'impl_6__to_le'" := (to_le523556665). +Notation "'impl__signum'" := (Core_Bundle.impl__signum). -Notation "'impl_11__from_le'" := (from_le418743864). +Notation "'impl__is_positive'" := (Core_Bundle.impl__is_positive). -Notation "'impl_11__to_le'" := (to_le946822077). +Notation "'impl__is_negative'" := (Core_Bundle.impl__is_negative). -Notation "'impl__BITS'" := (v_BITS80497669). +Notation "'impl_1__MIN'" := (Core_Bundle.impl_1__MIN). -Notation "'impl__MAX'" := (v_MAX626626007). +Notation "'impl_1__MAX'" := (Core_Bundle.impl_1__MAX). -Notation "'impl__MIN'" := (v_MIN19747349). +Notation "'impl_1__BITS'" := (Core_Bundle.impl_1__BITS). -Notation "'impl__i16__BITS'" := (v_BITS421056295). +Notation "'impl_1__wrapping_add'" := (Core_Bundle.impl_1__wrapping_add). -Notation "'impl__i16__MAX'" := (v_MAX474501300). +Notation "'impl_1__wrapping_sub'" := (Core_Bundle.impl_1__wrapping_sub). -Notation "'impl__i16__MIN'" := (v_MIN776391606). +Notation "'impl_1__wrapping_neg'" := (Core_Bundle.impl_1__wrapping_neg). -Notation "'impl__i32__BITS'" := (v_BITS465526498). +Notation "'impl_1__wrapping_abs'" := (Core_Bundle.impl_1__wrapping_abs). -Notation "'impl__i32__MAX'" := (v_MAX106630818). +Notation "'impl_1__rem_euclid'" := (Core_Bundle.impl_1__rem_euclid). -Notation "'impl__i32__MIN'" := (v_MIN682967538). +Notation "'impl_1__abs'" := (Core_Bundle.impl_1__abs). -Notation "'impl__i64__BITS'" := (v_BITS419886578). +Notation "'impl_1__signum'" := (Core_Bundle.impl_1__signum). -Notation "'impl__i64__MAX'" := (v_MAX527043787). +Notation "'impl_1__is_positive'" := (Core_Bundle.impl_1__is_positive). -Notation "'impl__i64__MIN'" := (v_MIN654206259). +Notation "'impl_1__is_negative'" := (Core_Bundle.impl_1__is_negative). -Notation "'impl__i128__BITS'" := (v_BITS992667165). +Notation "'impl_2__MIN'" := (Core_Bundle.impl_2__MIN). -Notation "'impl__i128__MAX'" := (v_MAX375377319). +Notation "'impl_2__MAX'" := (Core_Bundle.impl_2__MAX). -Notation "'impl__i128__MIN'" := (v_MIN79612531). +Notation "'impl_2__BITS'" := (Core_Bundle.impl_2__BITS). -Notation "'impl__isize__BITS'" := (v_BITS211584016). +Notation "'impl_2__wrapping_add'" := (Core_Bundle.impl_2__wrapping_add). -Notation "'impl__isize__MAX'" := (v_MAX937003029). +Notation "'impl_2__wrapping_sub'" := (Core_Bundle.impl_2__wrapping_sub). -Notation "'impl__isize__MIN'" := (v_MIN1017039533). +Notation "'impl_2__wrapping_neg'" := (Core_Bundle.impl_2__wrapping_neg). -Notation "'impl_6__BITS'" := (v_BITS690311813). +Notation "'impl_2__wrapping_abs'" := (Core_Bundle.impl_2__wrapping_abs). -Notation "'impl_6__MAX'" := (v_MAX310118176). +Notation "'impl_2__rem_euclid'" := (Core_Bundle.impl_2__rem_euclid). -Notation "'impl_6__MIN'" := (v_MIN41851434). +Notation "'impl_2__abs'" := (Core_Bundle.impl_2__abs). -Notation "'impl_7__BITS'" := (v_BITS277333551). +Notation "'impl_2__signum'" := (Core_Bundle.impl_2__signum). -Notation "'impl_7__MAX'" := (v_MAX487295910). +Notation "'impl_2__is_positive'" := (Core_Bundle.impl_2__is_positive). -Notation "'impl_7__MIN'" := (v_MIN592300287). +Notation "'impl_2__is_negative'" := (Core_Bundle.impl_2__is_negative). -Notation "'impl_8__BITS'" := (v_BITS473478051). +Notation "'impl_3__MIN'" := (Core_Bundle.impl_3__MIN). -Notation "'impl_8__MAX'" := (v_MAX826434525). +Notation "'impl_3__MAX'" := (Core_Bundle.impl_3__MAX). -Notation "'impl_8__MIN'" := (v_MIN932777089). +Notation "'impl_3__BITS'" := (Core_Bundle.impl_3__BITS). -Notation "'impl_9__BITS'" := (v_BITS177666292). +Notation "'impl_3__wrapping_add'" := (Core_Bundle.impl_3__wrapping_add). -Notation "'impl_9__MAX'" := (v_MAX815180633). +Notation "'impl_3__wrapping_sub'" := (Core_Bundle.impl_3__wrapping_sub). -Notation "'impl_9__MIN'" := (v_MIN631333594). +Notation "'impl_3__wrapping_neg'" := (Core_Bundle.impl_3__wrapping_neg). -Notation "'impl_10__BITS'" := (v_BITS136999051). +Notation "'impl_3__wrapping_abs'" := (Core_Bundle.impl_3__wrapping_abs). -Notation "'impl_10__MAX'" := (v_MAX404543799). +Notation "'impl_3__rem_euclid'" := (Core_Bundle.impl_3__rem_euclid). -Notation "'impl_10__MIN'" := (v_MIN668621698). +Notation "'impl_3__abs'" := (Core_Bundle.impl_3__abs). -Notation "'impl_11__BITS'" := (v_BITS229952196). +Notation "'impl_3__signum'" := (Core_Bundle.impl_3__signum). -Notation "'impl_11__MAX'" := (v_MAX750570916). +Notation "'impl_3__is_positive'" := (Core_Bundle.impl_3__is_positive). -Notation "'impl_11__MIN'" := (v_MIN861571008). +Notation "'impl_3__is_negative'" := (Core_Bundle.impl_3__is_negative). -Notation "'impl__is_negative'" := (is_negative350273175). +Notation "'impl_4__MIN'" := (Core_Bundle.impl_4__MIN). -Notation "'impl__is_positive'" := (is_positive286955196). +Notation "'impl_4__MAX'" := (Core_Bundle.impl_4__MAX). -Notation "'impl__signum'" := (signum721334203). +Notation "'impl_4__BITS'" := (Core_Bundle.impl_4__BITS). -Notation "'impl__i16__is_negative'" := (is_negative477067241). +Notation "'impl_4__wrapping_add'" := (Core_Bundle.impl_4__wrapping_add). -Notation "'impl__i16__is_positive'" := (is_positive821581438). +Notation "'impl_4__wrapping_sub'" := (Core_Bundle.impl_4__wrapping_sub). -Notation "'impl__i16__signum'" := (signum243706004). +Notation "'impl_4__wrapping_neg'" := (Core_Bundle.impl_4__wrapping_neg). -Notation "'impl__i32__is_negative'" := (is_negative1035644813). +Notation "'impl_4__wrapping_abs'" := (Core_Bundle.impl_4__wrapping_abs). -Notation "'impl__i32__is_positive'" := (is_positive401652342). +Notation "'impl_4__rem_euclid'" := (Core_Bundle.impl_4__rem_euclid). -Notation "'impl__i32__signum'" := (signum323641039). +Notation "'impl_4__abs'" := (Core_Bundle.impl_4__abs). -Notation "'impl__i64__is_negative'" := (is_negative1066124578). +Notation "'impl_4__signum'" := (Core_Bundle.impl_4__signum). -Notation "'impl__i64__is_positive'" := (is_positive16569358). +Notation "'impl_4__is_positive'" := (Core_Bundle.impl_4__is_positive). -Notation "'impl__i64__signum'" := (signum582963664). +Notation "'impl_4__is_negative'" := (Core_Bundle.impl_4__is_negative). -Notation "'impl__i128__is_negative'" := (is_negative221698470). +Notation "'impl_5__MIN'" := (Core_Bundle.impl_5__MIN). -Notation "'impl__i128__is_positive'" := (is_positive883218309). +Notation "'impl_5__MAX'" := (Core_Bundle.impl_5__MAX). -Notation "'impl__i128__signum'" := (signum408800799). +Notation "'impl_5__BITS'" := (Core_Bundle.impl_5__BITS). -Notation "'impl__isize__is_negative'" := (is_negative693446369). +Notation "'impl_5__wrapping_add'" := (Core_Bundle.impl_5__wrapping_add). -Notation "'impl__isize__is_positive'" := (is_positive169998680). +Notation "'impl_5__wrapping_sub'" := (Core_Bundle.impl_5__wrapping_sub). -Notation "'impl__isize__signum'" := (signum91486536). +Notation "'impl_5__wrapping_neg'" := (Core_Bundle.impl_5__wrapping_neg). -Notation "'impl_6__checked_add'" := (checked_add268751055). +Notation "'impl_5__wrapping_abs'" := (Core_Bundle.impl_5__wrapping_abs). -Notation "'impl_7__checked_add'" := (checked_add132377399). +Notation "'impl_5__rem_euclid'" := (Core_Bundle.impl_5__rem_euclid). -Notation "'impl_8__checked_add'" := (checked_add985437730). +Notation "'impl_5__abs'" := (Core_Bundle.impl_5__abs). -Notation "'impl_9__checked_add'" := (checked_add586246465). +Notation "'impl_5__signum'" := (Core_Bundle.impl_5__signum). -Notation "'impl_10__checked_add'" := (checked_add218978451). +Notation "'impl_5__is_positive'" := (Core_Bundle.impl_5__is_positive). -Notation "'impl_11__checked_add'" := (checked_add984013567). +Notation "'impl_5__is_negative'" := (Core_Bundle.impl_5__is_negative). -Notation "'impl__wrapping_add'" := (wrapping_add634491935). +Notation "'impl_6__MIN'" := (Core_Bundle.impl_6__MIN). -Notation "'impl__wrapping_sub'" := (wrapping_sub973428293). +Notation "'impl_6__MAX'" := (Core_Bundle.impl_6__MAX). -Notation "'impl__wrapping_neg'" := (wrapping_neg400701205). +Notation "'impl_6__BITS'" := (Core_Bundle.impl_6__BITS). -Notation "'impl__wrapping_abs'" := (wrapping_abs400396545). +Notation "'impl_6__count_ones'" := (Core_Bundle.impl_6__count_ones). -Notation "'impl__i16__wrapping_add'" := (wrapping_add868559108). +Notation "'impl_6__count_zeros'" := (Core_Bundle.impl_6__count_zeros). -Notation "'impl__i16__wrapping_sub'" := (wrapping_sub189469152). +Notation "'impl_6__leading_zeros'" := (Core_Bundle.impl_6__leading_zeros). -Notation "'impl__i16__wrapping_neg'" := (wrapping_neg860505723). +Notation "'impl_6__trailing_zeros'" := (Core_Bundle.impl_6__trailing_zeros). -Notation "'impl__i16__wrapping_abs'" := (wrapping_abs229076826). +Notation "'impl_6__leading_ones'" := (Core_Bundle.impl_6__leading_ones). -Notation "'impl__i32__wrapping_add'" := (wrapping_add475006616). +Notation "'impl_6__trailing_ones'" := (Core_Bundle.impl_6__trailing_ones). -Notation "'impl__i32__wrapping_sub'" := (wrapping_sub298337071). +Notation "'impl_6__rotate_left'" := (Core_Bundle.impl_6__rotate_left). -Notation "'impl__i32__wrapping_neg'" := (wrapping_neg636433078). +Notation "'impl_6__rotate_right'" := (Core_Bundle.impl_6__rotate_right). -Notation "'impl__i32__wrapping_abs'" := (wrapping_abs729536875). +Notation "'impl_6__swap_bytes'" := (Core_Bundle.impl_6__swap_bytes). -Notation "'impl__i64__wrapping_add'" := (wrapping_add590074241). +Notation "'impl_6__from_be'" := (Core_Bundle.impl_6__from_be). -Notation "'impl__i64__wrapping_sub'" := (wrapping_sub334584751). +Notation "'impl_6__from_le'" := (Core_Bundle.impl_6__from_le). -Notation "'impl__i64__wrapping_neg'" := (wrapping_neg868282938). +Notation "'impl_6__to_be'" := (Core_Bundle.impl_6__to_be). -Notation "'impl__i64__wrapping_abs'" := (wrapping_abs285829312). +Notation "'impl_6__to_le'" := (Core_Bundle.impl_6__to_le). -Notation "'impl__i128__wrapping_add'" := (wrapping_add251385439). +Notation "'impl_6__checked_add'" := (Core_Bundle.impl_6__checked_add). -Notation "'impl__i128__wrapping_sub'" := (wrapping_sub681598071). +Notation "'impl_6__checked_div'" := (Core_Bundle.impl_6__checked_div). -Notation "'impl__i128__wrapping_neg'" := (wrapping_neg446546984). +Notation "'impl_6__wrapping_add'" := (Core_Bundle.impl_6__wrapping_add). -Notation "'impl__i128__wrapping_abs'" := (wrapping_abs281925696). +Notation "'impl_6__wrapping_sub'" := (Core_Bundle.impl_6__wrapping_sub). -Notation "'impl__isize__wrapping_add'" := (wrapping_add226040243). +Notation "'impl_6__wrapping_mul'" := (Core_Bundle.impl_6__wrapping_mul). -Notation "'impl__isize__wrapping_sub'" := (wrapping_sub698035192). +Notation "'impl_6__wrapping_div'" := (Core_Bundle.impl_6__wrapping_div). -Notation "'impl__isize__wrapping_neg'" := (wrapping_neg912291768). +Notation "'impl_6__wrapping_div_euclid'" := (Core_Bundle.impl_6__wrapping_div_euclid). -Notation "'impl__isize__wrapping_abs'" := (wrapping_abs347300819). +Notation "'impl_6__wrapping_rem'" := (Core_Bundle.impl_6__wrapping_rem). -Notation "'impl_6__checked_div'" := (checked_div508301931). +Notation "'impl_6__wrapping_rem_euclid'" := (Core_Bundle.impl_6__wrapping_rem_euclid). -Notation "'impl_6__overflowing_add'" := (overflowing_add708890057). +Notation "'impl_6__wrapping_neg'" := (Core_Bundle.impl_6__wrapping_neg). -Notation "'impl_7__checked_div'" := (checked_div614920780). +Notation "'impl_6__overflowing_add'" := (Core_Bundle.impl_6__overflowing_add). -Notation "'impl_7__overflowing_add'" := (overflowing_add1023344178). +Notation "'impl_7__MIN'" := (Core_Bundle.impl_7__MIN). -Notation "'impl_8__checked_div'" := (checked_div979383477). +Notation "'impl_7__MAX'" := (Core_Bundle.impl_7__MAX). -Notation "'impl_8__overflowing_add'" := (overflowing_add905744292). +Notation "'impl_7__BITS'" := (Core_Bundle.impl_7__BITS). -Notation "'impl_9__checked_div'" := (checked_div988689127). +Notation "'impl_7__count_ones'" := (Core_Bundle.impl_7__count_ones). -Notation "'impl_9__overflowing_add'" := (overflowing_add581983607). +Notation "'impl_7__count_zeros'" := (Core_Bundle.impl_7__count_zeros). -Notation "'impl_10__checked_div'" := (checked_div344106746). +Notation "'impl_7__leading_zeros'" := (Core_Bundle.impl_7__leading_zeros). -Notation "'impl_10__overflowing_add'" := (overflowing_add458293681). +Notation "'impl_7__trailing_zeros'" := (Core_Bundle.impl_7__trailing_zeros). -Notation "'impl_11__checked_div'" := (checked_div80223906). +Notation "'impl_7__leading_ones'" := (Core_Bundle.impl_7__leading_ones). -Notation "'impl_11__overflowing_add'" := (overflowing_add682280407). +Notation "'impl_7__trailing_ones'" := (Core_Bundle.impl_7__trailing_ones). -Notation "'impl__abs'" := (abs945505614). +Notation "'impl_7__rotate_left'" := (Core_Bundle.impl_7__rotate_left). -Notation "'impl__i16__abs'" := (abs581170970). +Notation "'impl_7__rotate_right'" := (Core_Bundle.impl_7__rotate_right). -Notation "'impl__i32__abs'" := (abs590464694). +Notation "'impl_7__swap_bytes'" := (Core_Bundle.impl_7__swap_bytes). -Notation "'impl__i64__abs'" := (abs654781043). +Notation "'impl_7__from_be'" := (Core_Bundle.impl_7__from_be). -Notation "'impl__i128__abs'" := (abs204417539). +Notation "'impl_7__from_le'" := (Core_Bundle.impl_7__from_le). -Notation "'impl__isize__abs'" := (abs220926056). +Notation "'impl_7__to_be'" := (Core_Bundle.impl_7__to_be). -Notation "'impl_6__wrapping_add'" := (wrapping_add480603777). +Notation "'impl_7__to_le'" := (Core_Bundle.impl_7__to_le). -Notation "'impl_6__wrapping_mul'" := (wrapping_mul885216284). +Notation "'impl_7__checked_add'" := (Core_Bundle.impl_7__checked_add). -Notation "'impl_7__wrapping_add'" := (wrapping_add124432709). +Notation "'impl_7__checked_div'" := (Core_Bundle.impl_7__checked_div). -Notation "'impl_7__wrapping_mul'" := (wrapping_mul14465189). +Notation "'impl_7__wrapping_add'" := (Core_Bundle.impl_7__wrapping_add). -Notation "'impl_8__wrapping_add'" := (wrapping_add1049665857). +Notation "'impl_7__wrapping_sub'" := (Core_Bundle.impl_7__wrapping_sub). -Notation "'impl_8__wrapping_mul'" := (wrapping_mul203346768). +Notation "'impl_7__wrapping_mul'" := (Core_Bundle.impl_7__wrapping_mul). -Notation "'impl_9__wrapping_add'" := (wrapping_add865565639). +Notation "'impl_7__wrapping_div'" := (Core_Bundle.impl_7__wrapping_div). -Notation "'impl_9__wrapping_mul'" := (wrapping_mul742978873). +Notation "'impl_7__wrapping_div_euclid'" := (Core_Bundle.impl_7__wrapping_div_euclid). -Notation "'impl_10__wrapping_add'" := (wrapping_add40844100). +Notation "'impl_7__wrapping_rem'" := (Core_Bundle.impl_7__wrapping_rem). -Notation "'impl_10__wrapping_mul'" := (wrapping_mul294115024). +Notation "'impl_7__wrapping_rem_euclid'" := (Core_Bundle.impl_7__wrapping_rem_euclid). -Notation "'impl_11__wrapping_add'" := (wrapping_add427637036). +Notation "'impl_7__wrapping_neg'" := (Core_Bundle.impl_7__wrapping_neg). -Notation "'impl_11__wrapping_mul'" := (wrapping_mul680896953). +Notation "'impl_7__overflowing_add'" := (Core_Bundle.impl_7__overflowing_add). -Notation "'impl_6__wrapping_sub'" := (wrapping_sub403906422). +Notation "'impl_8__MIN'" := (Core_Bundle.impl_8__MIN). -Notation "'impl_6__wrapping_neg'" := (wrapping_neg123212788). +Notation "'impl_8__MAX'" := (Core_Bundle.impl_8__MAX). -Notation "'impl_7__wrapping_sub'" := (wrapping_sub811251034). +Notation "'impl_8__BITS'" := (Core_Bundle.impl_8__BITS). -Notation "'impl_7__wrapping_neg'" := (wrapping_neg128555595). +Notation "'impl_8__count_ones'" := (Core_Bundle.impl_8__count_ones). -Notation "'impl_8__wrapping_sub'" := (wrapping_sub708953500). +Notation "'impl_8__count_zeros'" := (Core_Bundle.impl_8__count_zeros). -Notation "'impl_8__wrapping_neg'" := (wrapping_neg328220773). +Notation "'impl_8__leading_zeros'" := (Core_Bundle.impl_8__leading_zeros). -Notation "'impl_9__wrapping_sub'" := (wrapping_sub762520851). +Notation "'impl_8__trailing_zeros'" := (Core_Bundle.impl_8__trailing_zeros). -Notation "'impl_9__wrapping_neg'" := (wrapping_neg617136337). +Notation "'impl_8__leading_ones'" := (Core_Bundle.impl_8__leading_ones). -Notation "'impl_10__wrapping_sub'" := (wrapping_sub409310259). +Notation "'impl_8__trailing_ones'" := (Core_Bundle.impl_8__trailing_ones). -Notation "'impl_10__wrapping_neg'" := (wrapping_neg729451428). +Notation "'impl_8__rotate_left'" := (Core_Bundle.impl_8__rotate_left). -Notation "'impl_11__wrapping_sub'" := (wrapping_sub813101882). +Notation "'impl_8__rotate_right'" := (Core_Bundle.impl_8__rotate_right). -Notation "'impl_11__wrapping_neg'" := (wrapping_neg342773446). +Notation "'impl_8__swap_bytes'" := (Core_Bundle.impl_8__swap_bytes). -Notation "'impl_6__wrapping_div'" := (wrapping_div660080892). +Notation "'impl_8__from_be'" := (Core_Bundle.impl_8__from_be). -Notation "'impl_6__wrapping_div_euclid'" := (wrapping_div_euclid481233436). +Notation "'impl_8__from_le'" := (Core_Bundle.impl_8__from_le). -Notation "'impl_7__wrapping_div'" := (wrapping_div366977334). +Notation "'impl_8__to_be'" := (Core_Bundle.impl_8__to_be). -Notation "'impl_7__wrapping_div_euclid'" := (wrapping_div_euclid22267888). +Notation "'impl_8__to_le'" := (Core_Bundle.impl_8__to_le). -Notation "'impl_8__wrapping_div'" := (wrapping_div931150450). +Notation "'impl_8__checked_add'" := (Core_Bundle.impl_8__checked_add). -Notation "'impl_8__wrapping_div_euclid'" := (wrapping_div_euclid606291997). +Notation "'impl_8__checked_div'" := (Core_Bundle.impl_8__checked_div). -Notation "'impl_9__wrapping_div'" := (wrapping_div168427046). +Notation "'impl_8__wrapping_add'" := (Core_Bundle.impl_8__wrapping_add). -Notation "'impl_9__wrapping_div_euclid'" := (wrapping_div_euclid321252086). +Notation "'impl_8__wrapping_sub'" := (Core_Bundle.impl_8__wrapping_sub). -Notation "'impl_10__wrapping_div'" := (wrapping_div692427683). +Notation "'impl_8__wrapping_mul'" := (Core_Bundle.impl_8__wrapping_mul). -Notation "'impl_10__wrapping_div_euclid'" := (wrapping_div_euclid926334515). +Notation "'impl_8__wrapping_div'" := (Core_Bundle.impl_8__wrapping_div). -Notation "'impl_11__wrapping_div'" := (wrapping_div905768546). +Notation "'impl_8__wrapping_div_euclid'" := (Core_Bundle.impl_8__wrapping_div_euclid). -Notation "'impl_11__wrapping_div_euclid'" := (wrapping_div_euclid90317722). +Notation "'impl_8__wrapping_rem'" := (Core_Bundle.impl_8__wrapping_rem). -Notation "'impl_6__wrapping_rem'" := (wrapping_rem984569721). +Notation "'impl_8__wrapping_rem_euclid'" := (Core_Bundle.impl_8__wrapping_rem_euclid). -Notation "'impl_6__wrapping_rem_euclid'" := (wrapping_rem_euclid946579345). +Notation "'impl_8__wrapping_neg'" := (Core_Bundle.impl_8__wrapping_neg). -Notation "'impl_7__wrapping_rem'" := (wrapping_rem378598035). +Notation "'impl_8__overflowing_add'" := (Core_Bundle.impl_8__overflowing_add). -Notation "'impl_7__wrapping_rem_euclid'" := (wrapping_rem_euclid602402638). +Notation "'impl_9__MIN'" := (Core_Bundle.impl_9__MIN). -Notation "'impl_8__wrapping_rem'" := (wrapping_rem292009099). +Notation "'impl_9__MAX'" := (Core_Bundle.impl_9__MAX). -Notation "'impl_8__wrapping_rem_euclid'" := (wrapping_rem_euclid1020271291). +Notation "'impl_9__BITS'" := (Core_Bundle.impl_9__BITS). -Notation "'impl_9__wrapping_rem'" := (wrapping_rem390602260). +Notation "'impl_9__count_ones'" := (Core_Bundle.impl_9__count_ones). -Notation "'impl_9__wrapping_rem_euclid'" := (wrapping_rem_euclid839264546). +Notation "'impl_9__count_zeros'" := (Core_Bundle.impl_9__count_zeros). -Notation "'impl_10__wrapping_rem'" := (wrapping_rem332379920). +Notation "'impl_9__leading_zeros'" := (Core_Bundle.impl_9__leading_zeros). -Notation "'impl_10__wrapping_rem_euclid'" := (wrapping_rem_euclid646122423). +Notation "'impl_9__trailing_zeros'" := (Core_Bundle.impl_9__trailing_zeros). -Notation "'impl_11__wrapping_rem'" := (wrapping_rem333089373). +Notation "'impl_9__leading_ones'" := (Core_Bundle.impl_9__leading_ones). -Notation "'impl_11__wrapping_rem_euclid'" := (wrapping_rem_euclid769656504). +Notation "'impl_9__trailing_ones'" := (Core_Bundle.impl_9__trailing_ones). -Notation "'impl_6__rotate_left'" := (rotate_left792925914). +Notation "'impl_9__rotate_left'" := (Core_Bundle.impl_9__rotate_left). -Notation "'impl_6__rotate_right'" := (rotate_right166090082). +Notation "'impl_9__rotate_right'" := (Core_Bundle.impl_9__rotate_right). -Notation "'impl_7__rotate_left'" := (rotate_left297034175). +Notation "'impl_9__swap_bytes'" := (Core_Bundle.impl_9__swap_bytes). -Notation "'impl_7__rotate_right'" := (rotate_right138522246). +Notation "'impl_9__from_be'" := (Core_Bundle.impl_9__from_be). -Notation "'impl_8__rotate_left'" := (rotate_left823573251). +Notation "'impl_9__from_le'" := (Core_Bundle.impl_9__from_le). -Notation "'impl_8__rotate_right'" := (rotate_right869195717). +Notation "'impl_9__to_be'" := (Core_Bundle.impl_9__to_be). -Notation "'impl_9__rotate_left'" := (rotate_left618936072). +Notation "'impl_9__to_le'" := (Core_Bundle.impl_9__to_le). -Notation "'impl_9__rotate_right'" := (rotate_right1041614027). +Notation "'impl_9__checked_add'" := (Core_Bundle.impl_9__checked_add). -Notation "'impl_10__rotate_left'" := (rotate_left1065866885). +Notation "'impl_9__checked_div'" := (Core_Bundle.impl_9__checked_div). -Notation "'impl_10__rotate_right'" := (rotate_right591112338). +Notation "'impl_9__wrapping_add'" := (Core_Bundle.impl_9__wrapping_add). -Notation "'impl_11__rotate_left'" := (rotate_left996672710). +Notation "'impl_9__wrapping_sub'" := (Core_Bundle.impl_9__wrapping_sub). -Notation "'impl_11__rotate_right'" := (rotate_right442734174). +Notation "'impl_9__wrapping_mul'" := (Core_Bundle.impl_9__wrapping_mul). -(* Notation "'impl_6__count_ones'" := (count_ones202509899). *) +Notation "'impl_9__wrapping_div'" := (Core_Bundle.impl_9__wrapping_div). -(* Notation "'impl_6__leading_zeros'" := (leading_zeros75047366). *) +Notation "'impl_9__wrapping_div_euclid'" := (Core_Bundle.impl_9__wrapping_div_euclid). -(* Notation "'impl_6__swap_bytes'" := (swap_bytes657156997). *) +Notation "'impl_9__wrapping_rem'" := (Core_Bundle.impl_9__wrapping_rem). -(* Notation "'impl_6__from_be'" := (from_be746282521). *) +Notation "'impl_9__wrapping_rem_euclid'" := (Core_Bundle.impl_9__wrapping_rem_euclid). -(* Notation "'impl_6__to_be'" := (to_be972448780). *) +Notation "'impl_9__wrapping_neg'" := (Core_Bundle.impl_9__wrapping_neg). -(* Notation "'impl_6__trailing_zeros'" := (trailing_zeros572929871). *) +Notation "'impl_9__overflowing_add'" := (Core_Bundle.impl_9__overflowing_add). -(* Notation "'impl_7__count_ones'" := (count_ones91875752). *) +Notation "'impl_10__MIN'" := (Core_Bundle.impl_10__MIN). -(* Notation "'impl_7__leading_zeros'" := (leading_zeros462412478). *) +Notation "'impl_10__MAX'" := (Core_Bundle.impl_10__MAX). -(* Notation "'impl_7__swap_bytes'" := (swap_bytes926722059). *) +Notation "'impl_10__BITS'" := (Core_Bundle.impl_10__BITS). -(* Notation "'impl_7__from_be'" := (from_be510959665). *) +Notation "'impl_10__count_ones'" := (Core_Bundle.impl_10__count_ones). -(* Notation "'impl_7__to_be'" := (to_be551590602). *) +Notation "'impl_10__count_zeros'" := (Core_Bundle.impl_10__count_zeros). -(* Notation "'impl_7__trailing_zeros'" := (trailing_zeros421474733). *) +Notation "'impl_10__leading_zeros'" := (Core_Bundle.impl_10__leading_zeros). -(* Notation "'impl_8__count_ones'" := (count_ones776185738). *) +Notation "'impl_10__trailing_zeros'" := (Core_Bundle.impl_10__trailing_zeros). -(* Notation "'impl_8__leading_zeros'" := (leading_zeros698221972). *) +Notation "'impl_10__leading_ones'" := (Core_Bundle.impl_10__leading_ones). -(* Notation "'impl_8__swap_bytes'" := (swap_bytes320480126). *) +Notation "'impl_10__trailing_ones'" := (Core_Bundle.impl_10__trailing_ones). -(* Notation "'impl_8__from_be'" := (from_be664756649). *) +Notation "'impl_10__rotate_left'" := (Core_Bundle.impl_10__rotate_left). -(* Notation "'impl_8__to_be'" := (to_be82825962). *) +Notation "'impl_10__rotate_right'" := (Core_Bundle.impl_10__rotate_right). -(* Notation "'impl_8__trailing_zeros'" := (trailing_zeros1061560720). *) +Notation "'impl_10__swap_bytes'" := (Core_Bundle.impl_10__swap_bytes). -(* Notation "'impl_9__count_ones'" := (count_ones235885653). *) +Notation "'impl_10__from_be'" := (Core_Bundle.impl_10__from_be). -(* Notation "'impl_9__leading_zeros'" := (leading_zeros338302110). *) +Notation "'impl_10__from_le'" := (Core_Bundle.impl_10__from_le). -(* Notation "'impl_9__swap_bytes'" := (swap_bytes722254271). *) +Notation "'impl_10__to_be'" := (Core_Bundle.impl_10__to_be). -(* Notation "'impl_9__from_be'" := (from_be16013635). *) +Notation "'impl_10__to_le'" := (Core_Bundle.impl_10__to_le). -(* Notation "'impl_9__to_be'" := (to_be376714729). *) +Notation "'impl_10__checked_add'" := (Core_Bundle.impl_10__checked_add). -(* Notation "'impl_9__trailing_zeros'" := (trailing_zeros188346231). *) +Notation "'impl_10__checked_div'" := (Core_Bundle.impl_10__checked_div). -(* Notation "'impl_10__count_ones'" := (count_ones926736261). *) +Notation "'impl_10__wrapping_add'" := (Core_Bundle.impl_10__wrapping_add). -(* Notation "'impl_10__leading_zeros'" := (leading_zeros19644612). *) +Notation "'impl_10__wrapping_sub'" := (Core_Bundle.impl_10__wrapping_sub). -(* Notation "'impl_10__swap_bytes'" := (swap_bytes420879368). *) +Notation "'impl_10__wrapping_mul'" := (Core_Bundle.impl_10__wrapping_mul). -(* Notation "'impl_10__from_be'" := (from_be191085771). *) +Notation "'impl_10__wrapping_div'" := (Core_Bundle.impl_10__wrapping_div). -(* Notation "'impl_10__to_be'" := (to_be555075987). *) +Notation "'impl_10__wrapping_div_euclid'" := (Core_Bundle.impl_10__wrapping_div_euclid). -(* Notation "'impl_10__trailing_zeros'" := (trailing_zeros821715250). *) +Notation "'impl_10__wrapping_rem'" := (Core_Bundle.impl_10__wrapping_rem). -(* Notation "'impl_11__count_ones'" := (count_ones441645762). *) +Notation "'impl_10__wrapping_rem_euclid'" := (Core_Bundle.impl_10__wrapping_rem_euclid). -(* Notation "'impl_11__leading_zeros'" := (leading_zeros905233489). *) +Notation "'impl_10__wrapping_neg'" := (Core_Bundle.impl_10__wrapping_neg). -(* Notation "'impl_11__swap_bytes'" := (swap_bytes268673424). *) +Notation "'impl_10__overflowing_add'" := (Core_Bundle.impl_10__overflowing_add). -(* Notation "'impl_11__from_be'" := (from_be607978059). *) +Notation "'impl_11__MIN'" := (Core_Bundle.impl_11__MIN). -(* Notation "'impl_11__to_be'" := (to_be561847134). *) +Notation "'impl_11__MAX'" := (Core_Bundle.impl_11__MAX). -(* Notation "'impl_11__trailing_zeros'" := (trailing_zeros42066260). *) +Notation "'impl_11__BITS'" := (Core_Bundle.impl_11__BITS). -Notation "'impl__rem_euclid'" := (rem_euclid622298453). +Notation "'impl_11__count_ones'" := (Core_Bundle.impl_11__count_ones). -Notation "'impl__i16__rem_euclid'" := (rem_euclid158017644). +Notation "'impl_11__count_zeros'" := (Core_Bundle.impl_11__count_zeros). -Notation "'impl__i32__rem_euclid'" := (rem_euclid881249982). +Notation "'impl_11__leading_zeros'" := (Core_Bundle.impl_11__leading_zeros). -Notation "'impl__i64__rem_euclid'" := (rem_euclid1057082210). +Notation "'impl_11__trailing_zeros'" := (Core_Bundle.impl_11__trailing_zeros). -Notation "'impl__i128__rem_euclid'" := (rem_euclid254910751). +Notation "'impl_11__leading_ones'" := (Core_Bundle.impl_11__leading_ones). -Notation "'impl__isize__rem_euclid'" := (rem_euclid828379367). +Notation "'impl_11__trailing_ones'" := (Core_Bundle.impl_11__trailing_ones). -(* Notation "'impl_6__count_zeros'" := (count_zeros558337492). *) +Notation "'impl_11__rotate_left'" := (Core_Bundle.impl_11__rotate_left). -(* Notation "'impl_6__leading_ones'" := (leading_ones55148479). *) +Notation "'impl_11__rotate_right'" := (Core_Bundle.impl_11__rotate_right). -(* Notation "'impl_6__trailing_ones'" := (trailing_ones359778731). *) +Notation "'impl_11__swap_bytes'" := (Core_Bundle.impl_11__swap_bytes). -(* Notation "'impl_7__count_zeros'" := (count_zeros199825317). *) +Notation "'impl_11__from_be'" := (Core_Bundle.impl_11__from_be). -(* Notation "'impl_7__leading_ones'" := (leading_ones164277656). *) +Notation "'impl_11__from_le'" := (Core_Bundle.impl_11__from_le). -(* Notation "'impl_7__trailing_ones'" := (trailing_ones903944727). *) +Notation "'impl_11__to_be'" := (Core_Bundle.impl_11__to_be). -(* Notation "'impl_8__count_zeros'" := (count_zeros942566041). *) +Notation "'impl_11__to_le'" := (Core_Bundle.impl_11__to_le). -(* Notation "'impl_8__leading_ones'" := (leading_ones766486760). *) +Notation "'impl_11__checked_add'" := (Core_Bundle.impl_11__checked_add). -(* Notation "'impl_8__trailing_ones'" := (trailing_ones223371510). *) +Notation "'impl_11__checked_div'" := (Core_Bundle.impl_11__checked_div). -(* Notation "'impl_9__count_zeros'" := (count_zeros60346158). *) +Notation "'impl_11__wrapping_add'" := (Core_Bundle.impl_11__wrapping_add). -(* Notation "'impl_9__leading_ones'" := (leading_ones404666910). *) +Notation "'impl_11__wrapping_sub'" := (Core_Bundle.impl_11__wrapping_sub). -(* Notation "'impl_9__trailing_ones'" := (trailing_ones601201120). *) +Notation "'impl_11__wrapping_mul'" := (Core_Bundle.impl_11__wrapping_mul). -(* Notation "'impl_10__count_zeros'" := (count_zeros824862815). *) +Notation "'impl_11__wrapping_div'" := (Core_Bundle.impl_11__wrapping_div). -(* Notation "'impl_10__leading_ones'" := (leading_ones475503572). *) +Notation "'impl_11__wrapping_div_euclid'" := (Core_Bundle.impl_11__wrapping_div_euclid). -(* Notation "'impl_10__trailing_ones'" := (trailing_ones705845381). *) +Notation "'impl_11__wrapping_rem'" := (Core_Bundle.impl_11__wrapping_rem). -(* Notation "'impl_11__count_zeros'" := (count_zeros73479642). *) +Notation "'impl_11__wrapping_rem_euclid'" := (Core_Bundle.impl_11__wrapping_rem_euclid). -(* Notation "'impl_11__leading_ones'" := (leading_ones667660708). *) +Notation "'impl_11__wrapping_neg'" := (Core_Bundle.impl_11__wrapping_neg). -(* Notation "'impl_11__trailing_ones'" := (trailing_ones979548463). *) +Notation "'impl_11__overflowing_add'" := (Core_Bundle.impl_11__overflowing_add). diff --git a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Num_Int_macros.v b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Num_Int_macros.v index 4b1cbcbe0..ade43ea11 100644 --- a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Num_Int_macros.v +++ b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Num_Int_macros.v @@ -9,51 +9,8 @@ Require Import String. Require Import Coq.Floats.Floats. From RecordUpdate Require Import RecordSet. Import RecordSetNotations. +From Core Require Import Core. -(* From Core Require Import Core. *) - -(* TODO: Replace this dummy lib with core lib *) -Class t_Sized (T : Type) := { }. -Definition t_u8 := Z. -Definition t_u16 := Z. -Definition t_u32 := Z. -Definition t_u64 := Z. -Definition t_u128 := Z. -Definition t_usize := Z. -Definition t_i8 := Z. -Definition t_i16 := Z. -Definition t_i32 := Z. -Definition t_i64 := Z. -Definition t_i128 := Z. -Definition t_isize := Z. -Definition t_Array T (x : t_usize) := list T. -Definition t_String := string. -Definition ToString_f_to_string (x : string) := x. -Instance Sized_any : forall {t_A}, t_Sized t_A := {}. -Class t_Clone (T : Type) := { Clone_f_clone : T -> T }. -Instance Clone_any : forall {t_A}, t_Clone t_A := {Clone_f_clone := fun x => x}. -Definition t_Slice (T : Type) := list T. -Definition unsize {T : Type} : list T -> t_Slice T := id. -Definition t_PartialEq_f_eq x y := x =? y. -Definition t_Rem_f_rem (x y : Z) := x mod y. -Definition assert (b : bool) (* `{H_assert : b = true} *) : unit := tt. -Inductive globality := | t_Global. -Definition t_Vec T (_ : globality) : Type := list T. -Definition impl_1__append {T} l1 l2 : list T * list T := (app l1 l2, l2). -Definition impl_1__len {A} (l : list A) := Z.of_nat (List.length l). -Definition impl__new {A} (_ : Datatypes.unit) : list A := nil. -Definition impl__with_capacity {A} (_ : Z) : list A := nil. -Definition impl_1__push {A} l (x : A) := cons x l. -Class t_From (A B : Type) := { From_f_from : B -> A }. -Definition impl__to_vec {T} (x : t_Slice T) : t_Vec T t_Global := x. -Class t_Into (A B : Type) := { Into_f_into : A -> B }. -Instance t_Into_from_t_From {A B : Type} `{H : t_From B A} : t_Into A B := { Into_f_into x := @From_f_from B A H x }. -Definition from_elem {A} (x : A) (l : Z) := repeat x (Z.to_nat l). -Definition t_Option := option. -Definition impl__map {A B} (x : t_Option A) (f : A -> B) : t_Option B := match x with | Some x => Some (f x) | None => None end. -Definition t_Add_f_add x y := x + y. -Class Cast A B := { cast : A -> B }. -Instance cast_t_u8_t_u32 : Cast t_u8 t_u32 := {| cast x := x |}. -(* / dummy lib *) +(* NotImplementedYet *) (* NotImplementedYet *) diff --git a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Num_Uint_macros.v b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Num_Uint_macros.v index ddc4bf8db..ade43ea11 100644 --- a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Num_Uint_macros.v +++ b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Num_Uint_macros.v @@ -9,7 +9,8 @@ Require Import String. Require Import Coq.Floats.Floats. From RecordUpdate Require Import RecordSet. Import RecordSetNotations. +From Core Require Import Core. -(* From Core Require Import Core. *) +(* NotImplementedYet *) (* NotImplementedYet *) diff --git a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Ops.v b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Ops.v index 753112299..af6f84efc 100644 --- a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Ops.v +++ b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Ops.v @@ -9,74 +9,18 @@ Require Import String. Require Import Coq.Floats.Floats. From RecordUpdate Require Import RecordSet. Import RecordSetNotations. - (* From Core Require Import Core. *) -(* From Core Require Import Core_Ops_Arith (t_Add). *) -(* Export Core_Ops_Arith (t_Add). *) - -(* From Core Require Import Core_Ops_Arith (t_Div). *) -(* Export Core_Ops_Arith (t_Div). *) - -(* From Core Require Import Core_Ops_Arith (t_Mul). *) -(* Export Core_Ops_Arith (t_Mul). *) - -(* From Core Require Import Core_Ops_Arith (t_Neg). *) -(* Export Core_Ops_Arith (t_Neg). *) - -(* From Core Require Import Core_Ops_Arith (t_Rem). *) -(* Export Core_Ops_Arith (t_Rem). *) - -(* From Core Require Import Core_Ops_Arith (t_Sub). *) -(* Export Core_Ops_Arith (t_Sub). *) +(* NotImplementedYet *) From Core Require Import Core_Ops_Arith. Export Core_Ops_Arith. - - - -(* From Core Require Import Core_Ops_Bit (t_BitAnd). *) -(* Export Core_Ops_Bit (t_BitAnd). *) - -(* From Core Require Import Core_Ops_Bit (t_BitOr). *) -(* Export Core_Ops_Bit (t_BitOr). *) - -(* From Core Require Import Core_Ops_Bit (t_BitXor). *) -(* Export Core_Ops_Bit (t_BitXor). *) - -(* From Core Require Import Core_Ops_Bit (t_Not). *) -(* Export Core_Ops_Bit (t_Not). *) - -(* From Core Require Import Core_Ops_Bit (t_Shl). *) -(* Export Core_Ops_Bit (t_Shl). *) - -(* From Core Require Import Core_Ops_Bit (t_Shr). *) -(* Export Core_Ops_Bit (t_Shr). *) - + From Core Require Import Core_Ops_Bit. Export Core_Ops_Bit. - - From Core Require Import Core_Ops_Index. Export Core_Ops_Index. - - -From Core Require Import Core_Ops_Range. -Export Core_Ops_Range. - -(* From Core Require Import Core_Ops_Index_range (t_IndexRange). *) -(* Export Core_Ops_Index_range (t_IndexRange). *) - -(* NotImplementedYet *) - -(* NotImplementedYet *) - -(* NotImplementedYet *) - -(* NotImplementedYet *) - -(* NotImplementedYet *) - -(* NotImplementedYet *) +(* From Core Require Import Core_Ops_Range. *) +(* Export Core_Ops_Range. *) diff --git a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Ops_Arith.v b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Ops_Arith.v index f76ce2826..5c2a52049 100644 --- a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Ops_Arith.v +++ b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Ops_Arith.v @@ -9,60 +9,58 @@ Require Import String. Require Import Coq.Floats.Floats. From RecordUpdate Require Import RecordSet. Import RecordSetNotations. +From Core Require Import Core_Marker. -(* From Core Require Import Core. *) +(* NotImplementedYet *) -From Core Require Import Core_Marker (t_Sized). -Export Core_Marker (t_Sized). -(* NotImplementedYet *) (* NotImplementedYet *) -Class t_Add (v_Self : Type) (v_Rhs : Type) `{t_Sized (v_Rhs)} : Type := +Class t_Add (v_Self : Type) (v_Rhs : Type) `{Core_Marker.t_Sized (v_Rhs)} : Type := { - Add_f_Output : Type; - _ :: `{t_Sized (Add_f_Output)}; - Add_f_add : v_Self -> v_Rhs -> Add_f_Output; + Add__f_Output : Type; + _ :: `{Core_Marker.t_Sized (Add__f_Output)}; + Add__f_add : v_Self -> v_Rhs -> Add__f_Output; }. Arguments t_Add (_) (_) {_}. -Class t_Div (v_Self : Type) (v_Rhs : Type) `{t_Sized (v_Rhs)} : Type := +Class t_Sub (v_Self : Type) (v_Rhs : Type) `{Core_Marker.t_Sized (v_Rhs)} : Type := { - Div_f_Output : Type; - _ :: `{t_Sized (Div_f_Output)}; - Div_f_div : v_Self -> v_Rhs -> Div_f_Output; + Sub__f_Output : Type; + _ :: `{Core_Marker.t_Sized (Sub__f_Output)}; + Sub__f_sub : v_Self -> v_Rhs -> Sub__f_Output; }. -Arguments t_Div (_) (_) {_}. +Arguments t_Sub (_) (_) {_}. -Class t_Mul (v_Self : Type) (v_Rhs : Type) `{t_Sized (v_Rhs)} : Type := +Class t_Mul (v_Self : Type) (v_Rhs : Type) `{Core_Marker.t_Sized (v_Rhs)} : Type := { - Mul_f_Output : Type; - _ :: `{t_Sized (Mul_f_Output)}; - Mul_f_mul : v_Self -> v_Rhs -> Mul_f_Output; + Mul__f_Output : Type; + _ :: `{Core_Marker.t_Sized (Mul__f_Output)}; + Mul__f_mul : v_Self -> v_Rhs -> Mul__f_Output; }. Arguments t_Mul (_) (_) {_}. -Class t_Neg (v_Self : Type) : Type := +Class t_Div (v_Self : Type) (v_Rhs : Type) `{Core_Marker.t_Sized (v_Rhs)} : Type := { - Neg_f_Output : Type; - _ :: `{t_Sized (Neg_f_Output)}; - Neg_f_neg : v_Self -> Neg_f_Output; + Div__f_Output : Type; + _ :: `{Core_Marker.t_Sized (Div__f_Output)}; + Div__f_div : v_Self -> v_Rhs -> Div__f_Output; }. -Arguments t_Neg (_). +Arguments t_Div (_) (_) {_}. -Class t_Rem (v_Self : Type) (v_Rhs : Type) `{t_Sized (v_Rhs)} : Type := +Class t_Rem (v_Self : Type) (v_Rhs : Type) `{Core_Marker.t_Sized (v_Rhs)} : Type := { - Rem_f_Output : Type; - _ :: `{t_Sized (Rem_f_Output)}; - Rem_f_rem : v_Self -> v_Rhs -> Rem_f_Output; + Rem__f_Output : Type; + _ :: `{Core_Marker.t_Sized (Rem__f_Output)}; + Rem__f_rem : v_Self -> v_Rhs -> Rem__f_Output; }. Arguments t_Rem (_) (_) {_}. -Class t_Sub (v_Self : Type) (v_Rhs : Type) `{t_Sized (v_Rhs)} : Type := +Class t_Neg (v_Self : Type) : Type := { - Sub_f_Output : Type; - _ :: `{t_Sized (Sub_f_Output)}; - Sub_f_sub : v_Self -> v_Rhs -> Sub_f_Output; + Neg__f_Output : Type; + _ :: `{Core_Marker.t_Sized (Neg__f_Output)}; + Neg__f_neg : v_Self -> Neg__f_Output; }. -Arguments t_Sub (_) (_) {_}. +Arguments t_Neg (_). diff --git a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Ops_Arith_Impls_for_prims.v b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Ops_Arith_Impls_for_prims.v index 0ce6ebbe7..f5a5126ae 100644 --- a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Ops_Arith_Impls_for_prims.v +++ b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Ops_Arith_Impls_for_prims.v @@ -9,92 +9,37 @@ Require Import String. Require Import Coq.Floats.Floats. From RecordUpdate Require Import RecordSet. Import RecordSetNotations. +From Core Require Import Core. + +(* NotImplementedYet *) + + + + + + + + + + + + + + + + + + + + + + + + + + + -(* From Core Require Import Core. *) - -(* TODO: Replace this dummy lib with core lib *) -Class t_Sized (T : Type) := { }. -Definition t_u8 := Z. -Definition t_u16 := Z. -Definition t_u32 := Z. -Definition t_u64 := Z. -Definition t_u128 := Z. -Definition t_usize := Z. -Definition t_i8 := Z. -Definition t_i16 := Z. -Definition t_i32 := Z. -Definition t_i64 := Z. -Definition t_i128 := Z. -Definition t_isize := Z. -Definition t_Array T (x : t_usize) := list T. -Definition t_String := string. -Definition ToString_f_to_string (x : string) := x. -Instance Sized_any : forall {t_A}, t_Sized t_A := {}. -Class t_Clone (T : Type) := { Clone_f_clone : T -> T }. -Instance Clone_any : forall {t_A}, t_Clone t_A := {Clone_f_clone := fun x => x}. -Definition t_Slice (T : Type) := list T. -Definition unsize {T : Type} : list T -> t_Slice T := id. -Definition t_PartialEq_f_eq x y := x =? y. -Definition t_Rem_f_rem (x y : Z) := x mod y. -Definition assert (b : bool) (* `{H_assert : b = true} *) : unit := tt. -Inductive globality := | t_Global. -Definition t_Vec T (_ : globality) : Type := list T. -Definition impl_1__append {T} l1 l2 : list T * list T := (app l1 l2, l2). -Definition impl_1__len {A} (l : list A) := Z.of_nat (List.length l). -Definition impl__new {A} (_ : Datatypes.unit) : list A := nil. -Definition impl__with_capacity {A} (_ : Z) : list A := nil. -Definition impl_1__push {A} l (x : A) := cons x l. -Class t_From (A B : Type) := { From_f_from : B -> A }. -Definition impl__to_vec {T} (x : t_Slice T) : t_Vec T t_Global := x. -Class t_Into (A B : Type) := { Into_f_into : A -> B }. -Instance t_Into_from_t_From {A B : Type} `{H : t_From B A} : t_Into A B := { Into_f_into x := @From_f_from B A H x }. -Definition from_elem {A} (x : A) (l : Z) := repeat x (Z.to_nat l). -Definition t_Option := option. -Definition impl__map {A B} (x : t_Option A) (f : A -> B) : t_Option B := match x with | Some x => Some (f x) | None => None end. -Definition t_Add_f_add x y := x + y. -Class Cast A B := { cast : A -> B }. -Instance cast_t_u8_t_u32 : Cast t_u8 t_u32 := {| cast x := x |}. -(* / dummy lib *) - - - -From Core Require Import Core_Primitive (t_u8). -Export Core_Primitive (t_u8). - -From Core Require Import Core_Primitive (t_u16). -Export Core_Primitive (t_u16). - -From Core Require Import Core_Primitive (t_u32). -Export Core_Primitive (t_u32). - -From Core Require Import Core_Primitive (t_u64). -Export Core_Primitive (t_u64). - -From Core Require Import Core_Primitive (t_u128). -Export Core_Primitive (t_u128). - -From Core Require Import Core_Primitive (t_usize). -Export Core_Primitive (t_usize). - - - -From Core Require Import Core_Primitive (t_i8). -Export Core_Primitive (t_i8). - -From Core Require Import Core_Primitive (t_i16). -Export Core_Primitive (t_i16). - -From Core Require Import Core_Primitive (t_i32). -Export Core_Primitive (t_i32). - -From Core Require Import Core_Primitive (t_i64). -Export Core_Primitive (t_i64). - -From Core Require Import Core_Primitive (t_i128). -Export Core_Primitive (t_i128). - -From Core Require Import Core_Primitive (t_isize). -Export Core_Primitive (t_isize). (* NotImplementedYet *) @@ -108,134 +53,134 @@ Export Core_Primitive (t_isize). (* NotImplementedYet *) -Notation "'impl'" := (impl). +Notation "'impl'" := (Core_Bundle.impl). -Notation "'impl_1'" := (impl_1). +Notation "'impl_1'" := (Core_Bundle.impl_1). -Notation "'impl_2'" := (impl_2). +Notation "'impl_2'" := (Core_Bundle.impl_2). -Notation "'impl_3'" := (impl_3). +Notation "'impl_3'" := (Core_Bundle.impl_3). -Notation "'impl_4'" := (impl_4). +Notation "'impl_4'" := (Core_Bundle.impl_4). -Notation "'impl_5'" := (impl_5). +Notation "'impl_5'" := (Core_Bundle.impl_5). -Notation "'impl_12'" := (impl_12). +Notation "'impl_6'" := (Core_Bundle.impl_6). -Notation "'impl_13'" := (impl_13). +Notation "'impl_7'" := (Core_Bundle.impl_7). -Notation "'impl_14'" := (impl_14). +Notation "'impl_8'" := (Core_Bundle.impl_8). -Notation "'impl_15'" := (impl_15). +Notation "'impl_9'" := (Core_Bundle.impl_9). -Notation "'impl_16'" := (impl_16). +Notation "'impl_10'" := (Core_Bundle.impl_10). -Notation "'impl_17'" := (impl_17). +Notation "'impl_11'" := (Core_Bundle.impl_11). -Notation "'impl_24'" := (impl_24). +Notation "'impl_12'" := (Core_Bundle.impl_12). -Notation "'impl_25'" := (impl_25). +Notation "'impl_13'" := (Core_Bundle.impl_13). -Notation "'impl_26'" := (impl_26). +Notation "'impl_14'" := (Core_Bundle.impl_14). -Notation "'impl_27'" := (impl_27). +Notation "'impl_15'" := (Core_Bundle.impl_15). -Notation "'impl_28'" := (impl_28). +Notation "'impl_16'" := (Core_Bundle.impl_16). -Notation "'impl_29'" := (impl_29). +Notation "'impl_17'" := (Core_Bundle.impl_17). -Notation "'impl_6'" := (impl_6). +Notation "'impl_18'" := (Core_Bundle.impl_18). -Notation "'impl_7'" := (impl_7). +Notation "'impl_19'" := (Core_Bundle.impl_19). -Notation "'impl_8'" := (impl_8). +Notation "'impl_20'" := (Core_Bundle.impl_20). -Notation "'impl_9'" := (impl_9). +Notation "'impl_21'" := (Core_Bundle.impl_21). -Notation "'impl_10'" := (impl_10). +Notation "'impl_22'" := (Core_Bundle.impl_22). -Notation "'impl_11'" := (impl_11). +Notation "'impl_23'" := (Core_Bundle.impl_23). -Notation "'impl_30'" := (impl_30). +Notation "'impl_24'" := (Core_Bundle.impl_24). -Notation "'impl_31'" := (impl_31). +Notation "'impl_25'" := (Core_Bundle.impl_25). -Notation "'impl_32'" := (impl_32). +Notation "'impl_26'" := (Core_Bundle.impl_26). -Notation "'impl_33'" := (impl_33). +Notation "'impl_27'" := (Core_Bundle.impl_27). -Notation "'impl_34'" := (impl_34). +Notation "'impl_28'" := (Core_Bundle.impl_28). -Notation "'impl_35'" := (impl_35). +Notation "'impl_29'" := (Core_Bundle.impl_29). -Notation "'impl_36'" := (impl_36). +Notation "'impl_30'" := (Core_Bundle.impl_30). -Notation "'impl_37'" := (impl_37). +Notation "'impl_31'" := (Core_Bundle.impl_31). -Notation "'impl_38'" := (impl_38). +Notation "'impl_32'" := (Core_Bundle.impl_32). -Notation "'impl_39'" := (impl_39). +Notation "'impl_33'" := (Core_Bundle.impl_33). -Notation "'impl_40'" := (impl_40). +Notation "'impl_34'" := (Core_Bundle.impl_34). -Notation "'impl_41'" := (impl_41). +Notation "'impl_35'" := (Core_Bundle.impl_35). -Notation "'impl_42'" := (impl_42). +Notation "'impl_36'" := (Core_Bundle.impl_36). -Notation "'impl_43'" := (impl_43). +Notation "'impl_37'" := (Core_Bundle.impl_37). -Notation "'impl_44'" := (impl_44). +Notation "'impl_38'" := (Core_Bundle.impl_38). -Notation "'impl_45'" := (impl_45). +Notation "'impl_39'" := (Core_Bundle.impl_39). -Notation "'impl_46'" := (impl_46). +Notation "'impl_40'" := (Core_Bundle.impl_40). -Notation "'impl_47'" := (impl_47). +Notation "'impl_41'" := (Core_Bundle.impl_41). -Notation "'impl_54'" := (impl_54). +Notation "'impl_42'" := (Core_Bundle.impl_42). -Notation "'impl_55'" := (impl_55). +Notation "'impl_43'" := (Core_Bundle.impl_43). -Notation "'impl_56'" := (impl_56). +Notation "'impl_44'" := (Core_Bundle.impl_44). -Notation "'impl_57'" := (impl_57). +Notation "'impl_45'" := (Core_Bundle.impl_45). -Notation "'impl_58'" := (impl_58). +Notation "'impl_46'" := (Core_Bundle.impl_46). -Notation "'impl_59'" := (impl_59). +Notation "'impl_47'" := (Core_Bundle.impl_47). -Notation "'impl_18'" := (impl_18). +Notation "'impl_48'" := (Core_Bundle.impl_48). -Notation "'impl_19'" := (impl_19). +Notation "'impl_49'" := (Core_Bundle.impl_49). -Notation "'impl_20'" := (impl_20). +Notation "'impl_50'" := (Core_Bundle.impl_50). -Notation "'impl_21'" := (impl_21). +Notation "'impl_51'" := (Core_Bundle.impl_51). -Notation "'impl_22'" := (impl_22). +Notation "'impl_52'" := (Core_Bundle.impl_52). -Notation "'impl_23'" := (impl_23). +Notation "'impl_53'" := (Core_Bundle.impl_53). -Notation "'impl_48'" := (impl_48). +Notation "'impl_54'" := (Core_Bundle.impl_54). -Notation "'impl_49'" := (impl_49). +Notation "'impl_55'" := (Core_Bundle.impl_55). -Notation "'impl_50'" := (impl_50). +Notation "'impl_56'" := (Core_Bundle.impl_56). -Notation "'impl_51'" := (impl_51). +Notation "'impl_57'" := (Core_Bundle.impl_57). -Notation "'impl_52'" := (impl_52). +Notation "'impl_58'" := (Core_Bundle.impl_58). -Notation "'impl_53'" := (impl_53). +Notation "'impl_59'" := (Core_Bundle.impl_59). -Notation "'impl_60'" := (impl_60). +Notation "'impl_60'" := (Core_Bundle.impl_60). -Notation "'impl_61'" := (impl_61). +Notation "'impl_61'" := (Core_Bundle.impl_61). -Notation "'impl_62'" := (impl_62). +Notation "'impl_62'" := (Core_Bundle.impl_62). -Notation "'impl_63'" := (impl_63). +Notation "'impl_63'" := (Core_Bundle.impl_63). -Notation "'impl_64'" := (impl_64). +Notation "'impl_64'" := (Core_Bundle.impl_64). -Notation "'impl_65'" := (impl_65). +Notation "'impl_65'" := (Core_Bundle.impl_65). diff --git a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Ops_Bit.v b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Ops_Bit.v index 3c779c97c..8cbe9dccf 100644 --- a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Ops_Bit.v +++ b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Ops_Bit.v @@ -9,58 +9,56 @@ Require Import String. Require Import Coq.Floats.Floats. From RecordUpdate Require Import RecordSet. Import RecordSetNotations. +From Core Require Import Core_Marker. -(* From Core Require Import Core. *) +(* NotImplementedYet *) -From Core Require Import Core_Marker (t_Sized). -Export Core_Marker (t_Sized). -(* NotImplementedYet *) -Class t_BitAnd (v_Self : Type) (v_Rhs : Type) `{t_Sized (v_Rhs)} : Type := +Class t_Not (v_Self : Type) : Type := { - BitAnd_f_Output : Type; - _ :: `{t_Sized (BitAnd_f_Output)}; - BitAnd_f_bitand : v_Self -> v_Rhs -> BitAnd_f_Output; + Not__f_Output : Type; + _ :: `{Core_Marker.t_Sized (Not__f_Output)}; + Not__f_not : v_Self -> Not__f_Output; }. -Arguments t_BitAnd (_) (_) {_}. +Arguments t_Not (_). -Class t_BitOr (v_Self : Type) (v_Rhs : Type) `{t_Sized (v_Rhs)} : Type := +Class t_BitAnd (v_Self : Type) (v_Rhs : Type) `{Core_Marker.t_Sized (v_Rhs)} : Type := { - BitOr_f_Output : Type; - _ :: `{t_Sized (BitOr_f_Output)}; - BitOr_f_bitor : v_Self -> v_Rhs -> BitOr_f_Output; + BitAnd__f_Output : Type; + _ :: `{Core_Marker.t_Sized (BitAnd__f_Output)}; + BitAnd__f_bitand : v_Self -> v_Rhs -> BitAnd__f_Output; }. -Arguments t_BitOr (_) (_) {_}. +Arguments t_BitAnd (_) (_) {_}. -Class t_BitXor (v_Self : Type) (v_Rhs : Type) `{t_Sized (v_Rhs)} : Type := +Class t_BitOr (v_Self : Type) (v_Rhs : Type) `{Core_Marker.t_Sized (v_Rhs)} : Type := { - BitXor_f_Output : Type; - _ :: `{t_Sized (BitXor_f_Output)}; - BitXor_f_bitxor : v_Self -> v_Rhs -> BitXor_f_Output; + BitOr__f_Output : Type; + _ :: `{Core_Marker.t_Sized (BitOr__f_Output)}; + BitOr__f_bitor : v_Self -> v_Rhs -> BitOr__f_Output; }. -Arguments t_BitXor (_) (_) {_}. +Arguments t_BitOr (_) (_) {_}. -Class t_Not (v_Self : Type) : Type := +Class t_BitXor (v_Self : Type) (v_Rhs : Type) `{Core_Marker.t_Sized (v_Rhs)} : Type := { - Not_f_Output : Type; - _ :: `{t_Sized (Not_f_Output)}; - Not_f_not : v_Self -> Not_f_Output; + BitXor__f_Output : Type; + _ :: `{Core_Marker.t_Sized (BitXor__f_Output)}; + BitXor__f_bitxor : v_Self -> v_Rhs -> BitXor__f_Output; }. -Arguments t_Not (_). +Arguments t_BitXor (_) (_) {_}. -Class t_Shl (v_Self : Type) (v_Rhs : Type) `{t_Sized (v_Rhs)} : Type := +Class t_Shl (v_Self : Type) (v_Rhs : Type) `{Core_Marker.t_Sized (v_Rhs)} : Type := { - Shl_f_Output : Type; - _ :: `{t_Sized (Shl_f_Output)}; - Shl_f_shl : v_Self -> v_Rhs -> Shl_f_Output; + Shl__f_Output : Type; + _ :: `{Core_Marker.t_Sized (Shl__f_Output)}; + Shl__f_shl : v_Self -> v_Rhs -> Shl__f_Output; }. Arguments t_Shl (_) (_) {_}. -Class t_Shr (v_Self : Type) (v_Rhs : Type) `{t_Sized (v_Rhs)} : Type := +Class t_Shr (v_Self : Type) (v_Rhs : Type) `{Core_Marker.t_Sized (v_Rhs)} : Type := { - Shr_f_Output : Type; - _ :: `{t_Sized (Shr_f_Output)}; - Shr_f_shr : v_Self -> v_Rhs -> Shr_f_Output; + Shr__f_Output : Type; + _ :: `{Core_Marker.t_Sized (Shr__f_Output)}; + Shr__f_shr : v_Self -> v_Rhs -> Shr__f_Output; }. Arguments t_Shr (_) (_) {_}. diff --git a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Ops_Bit_Impls_for_prims.v b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Ops_Bit_Impls_for_prims.v index cf1efa19d..546e9e82f 100644 --- a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Ops_Bit_Impls_for_prims.v +++ b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Ops_Bit_Impls_for_prims.v @@ -9,92 +9,39 @@ Require Import String. Require Import Coq.Floats.Floats. From RecordUpdate Require Import RecordSet. Import RecordSetNotations. +From Core Require Import Core. -(* From Core Require Import Core. *) - -(* TODO: Replace this dummy lib with core lib *) -Class t_Sized (T : Type) := { }. -Definition t_u8 := Z. -Definition t_u16 := Z. -Definition t_u32 := Z. -Definition t_u64 := Z. -Definition t_u128 := Z. -Definition t_usize := Z. -Definition t_i8 := Z. -Definition t_i16 := Z. -Definition t_i32 := Z. -Definition t_i64 := Z. -Definition t_i128 := Z. -Definition t_isize := Z. -Definition t_Array T (x : t_usize) := list T. -Definition t_String := string. -Definition ToString_f_to_string (x : string) := x. -Instance Sized_any : forall {t_A}, t_Sized t_A := {}. -Class t_Clone (T : Type) := { Clone_f_clone : T -> T }. -Instance Clone_any : forall {t_A}, t_Clone t_A := {Clone_f_clone := fun x => x}. -Definition t_Slice (T : Type) := list T. -Definition unsize {T : Type} : list T -> t_Slice T := id. -Definition t_PartialEq_f_eq x y := x =? y. -Definition t_Rem_f_rem (x y : Z) := x mod y. -Definition assert (b : bool) (* `{H_assert : b = true} *) : unit := tt. -Inductive globality := | t_Global. -Definition t_Vec T (_ : globality) : Type := list T. -Definition impl_1__append {T} l1 l2 : list T * list T := (app l1 l2, l2). -Definition impl_1__len {A} (l : list A) := Z.of_nat (List.length l). -Definition impl__new {A} (_ : Datatypes.unit) : list A := nil. -Definition impl__with_capacity {A} (_ : Z) : list A := nil. -Definition impl_1__push {A} l (x : A) := cons x l. -Class t_From (A B : Type) := { From_f_from : B -> A }. -Definition impl__to_vec {T} (x : t_Slice T) : t_Vec T t_Global := x. -Class t_Into (A B : Type) := { Into_f_into : A -> B }. -Instance t_Into_from_t_From {A B : Type} `{H : t_From B A} : t_Into A B := { Into_f_into x := @From_f_from B A H x }. -Definition from_elem {A} (x : A) (l : Z) := repeat x (Z.to_nat l). -Definition t_Option := option. -Definition impl__map {A B} (x : t_Option A) (f : A -> B) : t_Option B := match x with | Some x => Some (f x) | None => None end. -Definition t_Add_f_add x y := x + y. -Class Cast A B := { cast : A -> B }. -Instance cast_t_u8_t_u32 : Cast t_u8 t_u32 := {| cast x := x |}. -(* / dummy lib *) - - - -From Core Require Import Core_Primitive (t_u8). -Export Core_Primitive (t_u8). - -From Core Require Import Core_Primitive (t_u16). -Export Core_Primitive (t_u16). - -From Core Require Import Core_Primitive (t_u32). -Export Core_Primitive (t_u32). - -From Core Require Import Core_Primitive (t_u64). -Export Core_Primitive (t_u64). - -From Core Require Import Core_Primitive (t_u128). -Export Core_Primitive (t_u128). - -From Core Require Import Core_Primitive (t_usize). -Export Core_Primitive (t_usize). - - - -From Core Require Import Core_Primitive (t_i8). -Export Core_Primitive (t_i8). - -From Core Require Import Core_Primitive (t_i16). -Export Core_Primitive (t_i16). - -From Core Require Import Core_Primitive (t_i32). -Export Core_Primitive (t_i32). - -From Core Require Import Core_Primitive (t_i64). -Export Core_Primitive (t_i64). - -From Core Require Import Core_Primitive (t_i128). -Export Core_Primitive (t_i128). - -From Core Require Import Core_Primitive (t_isize). -Export Core_Primitive (t_isize). +(* NotImplementedYet *) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +(* NotImplementedYet *) (* NotImplementedYet *) @@ -112,206 +59,388 @@ Export Core_Primitive (t_isize). (* NotImplementedYet *) -Notation "'impl_84'" := (impl_84). +(* NotImplementedYet *) + +Notation "'impl'" := (Core_Bundle.impl). + +Notation "'impl_1'" := (Core_Bundle.impl_1). + +Notation "'impl_2'" := (Core_Bundle.impl_2). + +Notation "'impl_3'" := (Core_Bundle.impl_3). + +Notation "'impl_4'" := (Core_Bundle.impl_4). + +Notation "'impl_5'" := (Core_Bundle.impl_5). + +Notation "'impl_6'" := (Core_Bundle.impl_6). + +Notation "'impl_7'" := (Core_Bundle.impl_7). + +Notation "'impl_8'" := (Core_Bundle.impl_8). + +Notation "'impl_9'" := (Core_Bundle.impl_9). + +Notation "'impl_10'" := (Core_Bundle.impl_10). + +Notation "'impl_11'" := (Core_Bundle.impl_11). + +Notation "'impl_12'" := (Core_Bundle.impl_12). + +Notation "'impl_13'" := (Core_Bundle.impl_13). + +Notation "'impl_14'" := (Core_Bundle.impl_14). + +Notation "'impl_15'" := (Core_Bundle.impl_15). + +Notation "'impl_16'" := (Core_Bundle.impl_16). + +Notation "'impl_17'" := (Core_Bundle.impl_17). + +Notation "'impl_18'" := (Core_Bundle.impl_18). + +Notation "'impl_19'" := (Core_Bundle.impl_19). + +Notation "'impl_20'" := (Core_Bundle.impl_20). + +Notation "'impl_21'" := (Core_Bundle.impl_21). + +Notation "'impl_22'" := (Core_Bundle.impl_22). + +Notation "'impl_23'" := (Core_Bundle.impl_23). + +Notation "'impl_24'" := (Core_Bundle.impl_24). + +Notation "'impl_25'" := (Core_Bundle.impl_25). + +Notation "'impl_26'" := (Core_Bundle.impl_26). + +Notation "'impl_27'" := (Core_Bundle.impl_27). + +Notation "'impl_28'" := (Core_Bundle.impl_28). + +Notation "'impl_29'" := (Core_Bundle.impl_29). + +Notation "'impl_30'" := (Core_Bundle.impl_30). + +Notation "'impl_31'" := (Core_Bundle.impl_31). + +Notation "'impl_32'" := (Core_Bundle.impl_32). + +Notation "'impl_33'" := (Core_Bundle.impl_33). + +Notation "'impl_34'" := (Core_Bundle.impl_34). + +Notation "'impl_35'" := (Core_Bundle.impl_35). + +Notation "'impl_36'" := (Core_Bundle.impl_36). + +Notation "'impl_37'" := (Core_Bundle.impl_37). + +Notation "'impl_38'" := (Core_Bundle.impl_38). + +Notation "'impl_39'" := (Core_Bundle.impl_39). + +Notation "'impl_40'" := (Core_Bundle.impl_40). + +Notation "'impl_41'" := (Core_Bundle.impl_41). + +Notation "'impl_42'" := (Core_Bundle.impl_42). + +Notation "'impl_43'" := (Core_Bundle.impl_43). + +Notation "'impl_44'" := (Core_Bundle.impl_44). + +Notation "'impl_45'" := (Core_Bundle.impl_45). + +Notation "'impl_46'" := (Core_Bundle.impl_46). + +Notation "'impl_47'" := (Core_Bundle.impl_47). + +Notation "'impl_48'" := (Core_Bundle.impl_48). + +Notation "'impl_49'" := (Core_Bundle.impl_49). + +Notation "'impl_50'" := (Core_Bundle.impl_50). + +Notation "'impl_51'" := (Core_Bundle.impl_51). + +Notation "'impl_52'" := (Core_Bundle.impl_52). + +Notation "'impl_53'" := (Core_Bundle.impl_53). + +Notation "'impl_54'" := (Core_Bundle.impl_54). + +Notation "'impl_55'" := (Core_Bundle.impl_55). + +Notation "'impl_56'" := (Core_Bundle.impl_56). + +Notation "'impl_57'" := (Core_Bundle.impl_57). + +Notation "'impl_58'" := (Core_Bundle.impl_58). + +Notation "'impl_59'" := (Core_Bundle.impl_59). + +Notation "'impl_60'" := (Core_Bundle.impl_60). + +Notation "'impl_61'" := (Core_Bundle.impl_61). + +Notation "'impl_62'" := (Core_Bundle.impl_62). + +Notation "'impl_63'" := (Core_Bundle.impl_63). + +Notation "'impl_64'" := (Core_Bundle.impl_64). + +Notation "'impl_65'" := (Core_Bundle.impl_65). + +Notation "'impl_66'" := (Core_Bundle.impl_66). + +Notation "'impl_67'" := (Core_Bundle.impl_67). + +Notation "'impl_68'" := (Core_Bundle.impl_68). + +Notation "'impl_69'" := (Core_Bundle.impl_69). + +Notation "'impl_70'" := (Core_Bundle.impl_70). + +Notation "'impl_71'" := (Core_Bundle.impl_71). + +Notation "'impl_72'" := (Core_Bundle.impl_72). + +Notation "'impl_73'" := (Core_Bundle.impl_73). + +Notation "'impl_74'" := (Core_Bundle.impl_74). + +Notation "'impl_75'" := (Core_Bundle.impl_75). + +Notation "'impl_76'" := (Core_Bundle.impl_76). + +Notation "'impl_77'" := (Core_Bundle.impl_77). + +Notation "'impl_78'" := (Core_Bundle.impl_78). + +Notation "'impl_79'" := (Core_Bundle.impl_79). + +Notation "'impl_80'" := (Core_Bundle.impl_80). + +Notation "'impl_81'" := (Core_Bundle.impl_81). + +Notation "'impl_82'" := (Core_Bundle.impl_82). + +Notation "'impl_83'" := (Core_Bundle.impl_83). + +Notation "'impl_84'" := (Core_Bundle.impl_84). + +Notation "'impl_85'" := (Core_Bundle.impl_85). + +Notation "'impl_86'" := (Core_Bundle.impl_86). + +Notation "'impl_87'" := (Core_Bundle.impl_87). + +Notation "'impl_88'" := (Core_Bundle.impl_88). + +Notation "'impl_89'" := (Core_Bundle.impl_89). + +Notation "'impl_90'" := (Core_Bundle.impl_90). -Notation "'impl_85'" := (impl_85). +Notation "'impl_91'" := (Core_Bundle.impl_91). -Notation "'impl_86'" := (impl_86). +Notation "'impl_92'" := (Core_Bundle.impl_92). -Notation "'impl_87'" := (impl_87). +Notation "'impl_93'" := (Core_Bundle.impl_93). -Notation "'impl_88'" := (impl_88). +Notation "'impl_94'" := (Core_Bundle.impl_94). -Notation "'impl_89'" := (impl_89). +Notation "'impl_95'" := (Core_Bundle.impl_95). -Notation "'impl_6'" := (impl_6). +Notation "'impl_96'" := (Core_Bundle.impl_96). -Notation "'impl_7'" := (impl_7). +Notation "'impl_97'" := (Core_Bundle.impl_97). -Notation "'impl_8'" := (impl_8). +Notation "'impl_98'" := (Core_Bundle.impl_98). -Notation "'impl_9'" := (impl_9). +Notation "'impl_99'" := (Core_Bundle.impl_99). -Notation "'impl_10'" := (impl_10). +Notation "'impl_100'" := (Core_Bundle.impl_100). -Notation "'impl_11'" := (impl_11). +Notation "'impl_101'" := (Core_Bundle.impl_101). -Notation "'impl_12'" := (impl_12). +Notation "'impl_102'" := (Core_Bundle.impl_102). -Notation "'impl_13'" := (impl_13). +Notation "'impl_103'" := (Core_Bundle.impl_103). -Notation "'impl_14'" := (impl_14). +Notation "'impl_104'" := (Core_Bundle.impl_104). -Notation "'impl_15'" := (impl_15). +Notation "'impl_105'" := (Core_Bundle.impl_105). -Notation "'impl_16'" := (impl_16). +Notation "'impl_106'" := (Core_Bundle.impl_106). -Notation "'impl_17'" := (impl_17). +Notation "'impl_107'" := (Core_Bundle.impl_107). -Notation "'impl_18'" := (impl_18). +Notation "'impl_108'" := (Core_Bundle.impl_108). -Notation "'impl_19'" := (impl_19). +Notation "'impl_109'" := (Core_Bundle.impl_109). -Notation "'impl_20'" := (impl_20). +Notation "'impl_110'" := (Core_Bundle.impl_110). -Notation "'impl_21'" := (impl_21). +Notation "'impl_111'" := (Core_Bundle.impl_111). -Notation "'impl_22'" := (impl_22). +Notation "'impl_112'" := (Core_Bundle.impl_112). -Notation "'impl_23'" := (impl_23). +Notation "'impl_113'" := (Core_Bundle.impl_113). -Notation "'impl_24'" := (impl_24). +Notation "'impl_114'" := (Core_Bundle.impl_114). -Notation "'impl_25'" := (impl_25). +Notation "'impl_115'" := (Core_Bundle.impl_115). -Notation "'impl_26'" := (impl_26). +Notation "'impl_116'" := (Core_Bundle.impl_116). -Notation "'impl_27'" := (impl_27). +Notation "'impl_117'" := (Core_Bundle.impl_117). -Notation "'impl_28'" := (impl_28). +Notation "'impl_118'" := (Core_Bundle.impl_118). -Notation "'impl_29'" := (impl_29). +Notation "'impl_119'" := (Core_Bundle.impl_119). -Notation "'impl_30'" := (impl_30). +Notation "'impl_120'" := (Core_Bundle.impl_120). -Notation "'impl_31'" := (impl_31). +Notation "'impl_121'" := (Core_Bundle.impl_121). -Notation "'impl_32'" := (impl_32). +Notation "'impl_122'" := (Core_Bundle.impl_122). -Notation "'impl_33'" := (impl_33). +Notation "'impl_123'" := (Core_Bundle.impl_123). -Notation "'impl_34'" := (impl_34). +Notation "'impl_124'" := (Core_Bundle.impl_124). -Notation "'impl_35'" := (impl_35). +Notation "'impl_125'" := (Core_Bundle.impl_125). -Notation "'impl_36'" := (impl_36). +Notation "'impl_126'" := (Core_Bundle.impl_126). -Notation "'impl_37'" := (impl_37). +Notation "'impl_127'" := (Core_Bundle.impl_127). -Notation "'impl_38'" := (impl_38). +Notation "'impl_128'" := (Core_Bundle.impl_128). -Notation "'impl_39'" := (impl_39). +Notation "'impl_129'" := (Core_Bundle.impl_129). -Notation "'impl_40'" := (impl_40). +Notation "'impl_130'" := (Core_Bundle.impl_130). -Notation "'impl_41'" := (impl_41). +Notation "'impl_131'" := (Core_Bundle.impl_131). -Notation "'impl_42'" := (impl_42). +Notation "'impl_132'" := (Core_Bundle.impl_132). -Notation "'impl_43'" := (impl_43). +Notation "'impl_133'" := (Core_Bundle.impl_133). -Notation "'impl_44'" := (impl_44). +Notation "'impl_134'" := (Core_Bundle.impl_134). -Notation "'impl_45'" := (impl_45). +Notation "'impl_135'" := (Core_Bundle.impl_135). -Notation "'impl_46'" := (impl_46). +Notation "'impl_136'" := (Core_Bundle.impl_136). -Notation "'impl_47'" := (impl_47). +Notation "'impl_137'" := (Core_Bundle.impl_137). -Notation "'impl_48'" := (impl_48). +Notation "'impl_138'" := (Core_Bundle.impl_138). -Notation "'impl_49'" := (impl_49). +Notation "'impl_139'" := (Core_Bundle.impl_139). -Notation "'impl_50'" := (impl_50). +Notation "'impl_140'" := (Core_Bundle.impl_140). -Notation "'impl_51'" := (impl_51). +Notation "'impl_141'" := (Core_Bundle.impl_141). -Notation "'impl_52'" := (impl_52). +Notation "'impl_142'" := (Core_Bundle.impl_142). -Notation "'impl_53'" := (impl_53). +Notation "'impl_143'" := (Core_Bundle.impl_143). -Notation "'impl_54'" := (impl_54). +Notation "'impl_144'" := (Core_Bundle.impl_144). -Notation "'impl_55'" := (impl_55). +Notation "'impl_145'" := (Core_Bundle.impl_145). -Notation "'impl_56'" := (impl_56). +Notation "'impl_146'" := (Core_Bundle.impl_146). -Notation "'impl_57'" := (impl_57). +Notation "'impl_147'" := (Core_Bundle.impl_147). -Notation "'impl_58'" := (impl_58). +Notation "'impl_148'" := (Core_Bundle.impl_148). -Notation "'impl_59'" := (impl_59). +Notation "'impl_149'" := (Core_Bundle.impl_149). -Notation "'impl_60'" := (impl_60). +Notation "'impl_150'" := (Core_Bundle.impl_150). -Notation "'impl_61'" := (impl_61). +Notation "'impl_151'" := (Core_Bundle.impl_151). -Notation "'impl_62'" := (impl_62). +Notation "'impl_152'" := (Core_Bundle.impl_152). -Notation "'impl_63'" := (impl_63). +Notation "'impl_153'" := (Core_Bundle.impl_153). -Notation "'impl_64'" := (impl_64). +Notation "'impl_154'" := (Core_Bundle.impl_154). -Notation "'impl_65'" := (impl_65). +Notation "'impl_155'" := (Core_Bundle.impl_155). -Notation "'impl_66'" := (impl_66). +Notation "'impl_156'" := (Core_Bundle.impl_156). -Notation "'impl_67'" := (impl_67). +Notation "'impl_157'" := (Core_Bundle.impl_157). -Notation "'impl_68'" := (impl_68). +Notation "'impl_158'" := (Core_Bundle.impl_158). -Notation "'impl_69'" := (impl_69). +Notation "'impl_159'" := (Core_Bundle.impl_159). -Notation "'impl_70'" := (impl_70). +Notation "'impl_160'" := (Core_Bundle.impl_160). -Notation "'impl_71'" := (impl_71). +Notation "'impl_161'" := (Core_Bundle.impl_161). -Notation "'impl_72'" := (impl_72). +Notation "'impl_162'" := (Core_Bundle.impl_162). -Notation "'impl_73'" := (impl_73). +Notation "'impl_163'" := (Core_Bundle.impl_163). -Notation "'impl_74'" := (impl_74). +Notation "'impl_164'" := (Core_Bundle.impl_164). -Notation "'impl_75'" := (impl_75). +Notation "'impl_165'" := (Core_Bundle.impl_165). -Notation "'impl_76'" := (impl_76). +Notation "'impl_166'" := (Core_Bundle.impl_166). -Notation "'impl_77'" := (impl_77). +Notation "'impl_167'" := (Core_Bundle.impl_167). -Notation "'impl_78'" := (impl_78). +Notation "'impl_168'" := (Core_Bundle.impl_168). -Notation "'impl_79'" := (impl_79). +Notation "'impl_169'" := (Core_Bundle.impl_169). -Notation "'impl_80'" := (impl_80). +Notation "'impl_170'" := (Core_Bundle.impl_170). -Notation "'impl_81'" := (impl_81). +Notation "'impl_171'" := (Core_Bundle.impl_171). -Notation "'impl_82'" := (impl_82). +Notation "'impl_172'" := (Core_Bundle.impl_172). -Notation "'impl_83'" := (impl_83). +Notation "'impl_173'" := (Core_Bundle.impl_173). -Notation "'impl_90'" := (impl_90). +Notation "'impl_174'" := (Core_Bundle.impl_174). -Notation "'impl_91'" := (impl_91). +Notation "'impl_175'" := (Core_Bundle.impl_175). -Notation "'impl_92'" := (impl_92). +Notation "'impl_176'" := (Core_Bundle.impl_176). -Notation "'impl_93'" := (impl_93). +Notation "'impl_177'" := (Core_Bundle.impl_177). -Notation "'impl_94'" := (impl_94). +Notation "'impl_178'" := (Core_Bundle.impl_178). -Notation "'impl_95'" := (impl_95). +Notation "'impl_179'" := (Core_Bundle.impl_179). -Notation "'impl_96'" := (impl_96). +Notation "'impl_180'" := (Core_Bundle.impl_180). -Notation "'impl_97'" := (impl_97). +Notation "'impl_181'" := (Core_Bundle.impl_181). -Notation "'impl_98'" := (impl_98). +Notation "'impl_182'" := (Core_Bundle.impl_182). -Notation "'impl_99'" := (impl_99). +Notation "'impl_183'" := (Core_Bundle.impl_183). -Notation "'impl_100'" := (impl_100). +Notation "'impl_184'" := (Core_Bundle.impl_184). -Notation "'impl_101'" := (impl_101). +Notation "'impl_185'" := (Core_Bundle.impl_185). -Notation "'impl'" := (impl). +Notation "'impl_186'" := (Core_Bundle.impl_186). -Notation "'impl_1'" := (impl_1). +Notation "'impl_187'" := (Core_Bundle.impl_187). -Notation "'impl_2'" := (impl_2). +Notation "'impl_188'" := (Core_Bundle.impl_188). -Notation "'impl_3'" := (impl_3). +Notation "'impl_189'" := (Core_Bundle.impl_189). -Notation "'impl_4'" := (impl_4). +Notation "'impl_190'" := (Core_Bundle.impl_190). -Notation "'impl_5'" := (impl_5). +Notation "'impl_191'" := (Core_Bundle.impl_191). diff --git a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Ops_Function.v b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Ops_Function.v index e1f66c0a9..6357b66fa 100644 --- a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Ops_Function.v +++ b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Ops_Function.v @@ -9,37 +9,33 @@ Require Import String. Require Import Coq.Floats.Floats. From RecordUpdate Require Import RecordSet. Import RecordSetNotations. - -(* From Core Require Import Core. *) - From Core Require Import Core_Marker. -Export Core_Marker. (* NotImplementedYet *) -Class t_FnOnce (v_Self : Type) (v_Args : Type) (* `{t_Sized (v_Args)} `{t_Tuple (v_Args)} *) : Type := + + +Class t_FnOnce (v_Self : Type) (v_Args : Type) `{Core_Marker.t_Sized (v_Args)} `{Core_Marker.t_Tuple (v_Args)} : Type := { - FnOnce_f_Output : Type; - _ :: `{t_Sized (FnOnce_f_Output)}; - FnOnce_f_call_once : v_Self -> v_Args -> FnOnce_f_Output; + FnOnce__f_Output : Type; + _ :: `{Core_Marker.t_Sized (FnOnce__f_Output)}; + FnOnce__f_call_once : v_Self -> v_Args -> FnOnce__f_Output; }. -Arguments t_FnOnce (_) (_) (* {_} {_} *). +Arguments t_FnOnce (_) (_) {_} {_}. -Class t_FnMut (v_Self : Type) (v_Args : Type) `{t_FnOnce (v_Self) (v_Args)} (* `{t_Sized (v_Args)} `{t_Tuple (v_Args)} *) : Type := +Class t_FnMut (v_Self : Type) (v_Args : Type) `{t_FnOnce (v_Self) (v_Args)} `{Core_Marker.t_Sized (v_Args)} `{Core_Marker.t_Tuple (v_Args)} : Type := { - FnMut_f_call_mut : v_Self -> v_Args -> (v_Self*FnOnce_f_Output); + FnMut__f_call_mut : v_Self -> v_Args -> (v_Self*FnOnce__f_Output); }. -Arguments t_FnMut (_) (_) {_} (* {_} {_} *). +Arguments t_FnMut (_) (_) {_} {_} {_}. -Class t_Fn (v_Self : Type) (v_Args : Type) `{t_FnMut (v_Self) (v_Args)} (* `{t_Sized (v_Args)} `{t_Tuple (v_Args)} *) : Type := +Class t_Fn (v_Self : Type) (v_Args : Type) `{t_FnMut (v_Self) (v_Args)} `{Core_Marker.t_Sized (v_Args)} `{Core_Marker.t_Tuple (v_Args)} : Type := { - Fn_f_call : v_Self -> v_Args -> FnOnce_f_Output; + Fn__f_call : v_Self -> v_Args -> FnOnce__f_Output; }. -Arguments t_Fn (_) (_) {_} (* {_} {_} *). - - +Arguments t_Fn (_) (_) {_} {_} {_}. -#[global] Instance t_FnOnceAny {A B} : t_FnOnce (A -> B) A. +#[global] Instance t_FnOnceAny {A B} `{Core_Marker.t_Sized A} `{Core_Marker.t_Tuple A} : t_FnOnce (A -> B) A. Proof. econstructor. easy. diff --git a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Ops_Function_Impls.v b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Ops_Function_Impls.v new file mode 100644 index 000000000..68ed24e9f --- /dev/null +++ b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Ops_Function_Impls.v @@ -0,0 +1,14 @@ +(* File automatically generated by Hacspec *) +From Coq Require Import ZArith. +Require Import List. +Import List.ListNotations. +Open Scope Z_scope. +Open Scope bool_scope. +Require Import Ascii. +Require Import String. +Require Import Coq.Floats.Floats. +From RecordUpdate Require Import RecordSet. +Import RecordSetNotations. +From Core Require Import Core. + +(* NotImplementedYet *) diff --git a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Ops_Index.v b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Ops_Index.v index 9ff5aa568..7c5131186 100644 --- a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Ops_Index.v +++ b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Ops_Index.v @@ -9,12 +9,13 @@ Require Import String. Require Import Coq.Floats.Floats. From RecordUpdate Require Import RecordSet. Import RecordSetNotations. - (* From Core Require Import Core. *) +(* NotImplementedYet *) + Class t_Index (v_Self : Type) (v_Idx : Type) : Type := { - Index_f_Output : Type; - Index_f_index : v_Self -> v_Idx -> Index_f_Output; + Index__f_Output : Type; + Index__f_index : v_Self -> v_Idx -> Index__f_Output; }. Arguments t_Index (_) (_). diff --git a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Ops_Index_range.v b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Ops_Index_range.v index e43ff9e4b..8ea3009ad 100644 --- a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Ops_Index_range.v +++ b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Ops_Index_range.v @@ -9,55 +9,52 @@ Require Import String. Require Import Coq.Floats.Floats. From RecordUpdate Require Import RecordSet. Import RecordSetNotations. +From Core Require Import Core. -(* From Core Require Import Core. *) +(* NotImplementedYet *) -From Core Require Import Core_Primitive. -Export Core_Primitive. -From Core Require Import Core_Iter_Traits_Iterator. -Export Core_Iter_Traits_Iterator. -Record t_IndexRange : Type := + + +Record IndexRange_IndexRange_record : Type := { - IndexRange_f_start : t_usize; - IndexRange_f_end : t_usize; + IndexRange_IndexRange_f_IndexRange_start : t_usize; + IndexRange_IndexRange_f_IndexRange_end : t_usize; }. -Arguments Build_t_IndexRange. -Arguments IndexRange_f_start. -Arguments IndexRange_f_end. -#[export] Instance settable_t_IndexRange : Settable _ := - settable! (Build_t_IndexRange) . - -Definition impl__IndexRange__zero_to (v_end : t_usize) : t_IndexRange := - Build_t_IndexRange (Build_t_usize (Build_t_U64 0%N)) (v_end). - -Definition impl__IndexRange__next_unchecked (self : t_IndexRange) : (t_IndexRange*t_usize) := - let value := IndexRange_f_start self in - let self := self <|IndexRange_f_start := Add_f_add (value) (Build_t_usize (Build_t_U64 1%N) : t_usize) |> in + + + +#[export] Instance settable_IndexRange_IndexRange_record : Settable _ := + settable! (Build_IndexRange_IndexRange_record) . + +Definition impl_IndexRange__zero_to (v_end : t_usize) : t_IndexRange := + IndexRange_IndexRange ((0 : t_usize)) (v_end). + +Definition impl_IndexRange__len (self : t_IndexRange) : t_usize := + Rust_primitives_U128.sub (f_IndexRange_end self) (f_IndexRange_start self). + +Definition impl_IndexRange__next_unchecked (self : t_IndexRange) : (t_IndexRange*t_usize) := + let value := f_IndexRange_start self in + let self := self <|t_IndexRangef_IndexRange_start := Rust_primitives_U128.add (value) ((1 : t_usize)) |> in let hax_temp_output := value in (self,hax_temp_output). -Definition impl__IndexRange__len (self : t_IndexRange) : t_usize := - Sub_f_sub (IndexRange_f_end self) (IndexRange_f_start self). +Instance t_Iterator_1000831689 : Core_Iter_Traits_Iterator.t_Iterator ((t_IndexRange)) := + { + Core_Iter_Traits_Iterator.Iterator_impl_1__f_Item := t_usize; + Core_Iter_Traits_Iterator.Iterator_impl_1__f_next := fun (self : t_IndexRange)=> + let hax_temp_output := Rust_primitives_Hax.never_to_any (Core_Panicking.panic_fmt (Core_Fmt_Rt.impl_1__new_v1 ([("not yet implemented: specification needed"%string : string)]) ([]))) in + (self,hax_temp_output); + Core_Iter_Traits_Iterator.Iterator_impl_1__f_size_hint := fun (self : t_IndexRange)=> + let len := impl_IndexRange__len (self) in + (len,Core_Option.Option_Some (len)); + Core_Iter_Traits_Iterator.Iterator_impl_1__f_fold := fun (self : t_IndexRange) (init : v_B) (f : v_F)=> + Rust_primitives_Hax.never_to_any (Core_Panicking.panic_fmt (Core_Fmt_Rt.impl_1__new_v1 ([("not yet implemented: specification needed"%string : string)]) ([]))); + }. -Program Instance t_Iterator_538767852 : t_Iterator ((t_IndexRange)) := +Instance t_ExactSizeIterator_338933472 : Core_Iter_Traits_Exact_size.t_ExactSizeIterator ((t_IndexRange)) := { - Iterator_f_Item := t_usize; - Iterator_f_next := fun (self : t_IndexRange)=> - (* let hax_temp_output := never_to_any (panic ("not yet implemented: specification needed"%string)) in *) - (self,Option_Some (self.(IndexRange_f_start))); - Iterator_f_size_hint := fun (self : t_IndexRange)=> - let len := impl__IndexRange__len (self) in - (len,Option_Some (len)); - Iterator_f_fold := fun {v_B : Type} {v_F : Type} `{t_Sized v_B} `{t_Sized v_F} `{t_Sized t_IndexRange} (_ : t_FnOnce v_F (v_B * t_usize)) (_ : t_FnMut v_F (v_B * t_usize)) `{_ : FnOnce_f_Output = v_B} (self : t_IndexRange) (init : v_B) (f : v_F)=> - never_to_any (panic "not yet implemented: specification needed"%string); + Core_Iter_Traits_Exact_size.ExactSizeIterator_impl_2__f_len := fun (self : t_IndexRange)=> + impl_IndexRange__len (self); }. -Next Obligation. -Admitted. - -(* Instance t_ExactSizeIterator_661616782 : t_ExactSizeIterator ((t_IndexRange)) := *) -(* { *) -(* ExactSizeIterator_impl_2_f_len := fun (self : t_IndexRange)=> *) -(* impl__IndexRange__len (self); *) -(* }. *) diff --git a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Ops_Range.v b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Ops_Range.v index e711f3c73..14bd14919 100644 --- a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Ops_Range.v +++ b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Ops_Range.v @@ -9,19 +9,24 @@ Require Import String. Require Import Coq.Floats.Floats. From RecordUpdate Require Import RecordSet. Import RecordSetNotations. +From Core Require Import Core. -(* From Core Require Import Core. *) +(* NotImplementedYet *) -From Core Require Import Core_Marker. -Export Core_Marker. +Record RangeFull_RangeFull_record : Type := + { + }. + +#[export] +Notation "'RangeFull_RangeFull_record'" := Build_RangeFull_RangeFull_record. -Record t_Range (v_Idx : Type) `{t_Sized (v_Idx)} : Type := +Record Range_Range_record (v_Idx : Type) `{Core_Marker.t_Sized (v_Idx)} : Type := { - Range_f_start : v_Idx; - Range_f_end : v_Idx; + Range_Range_f_Range_start : v_Idx; + Range_Range_f_Range_end : v_Idx; }. -Arguments Build_t_Range (_) {_}. -Arguments Range_f_start {_} {_}. -Arguments Range_f_end {_} {_}. -#[export] Instance settable_t_Range `{v_Idx : Type} `{t_Sized (v_Idx)} : Settable _ := - settable! (Build_t_Range v_Idx) . +Arguments Build_Range_Range_record {_} {_}. +Arguments Range_Range_f_Range_start {_} {_}. +Arguments Range_Range_f_Range_end {_} {_}. +#[export] Instance settable_Range_Range_record `{v_Idx : Type} `{Core_Marker.t_Sized (v_Idx)} : Settable _ := + settable! (Build_Range_Range_record (v_Idx := v_Idx)) . diff --git a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Option.v b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Option.v index a9e834b9e..bfab7976c 100644 --- a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Option.v +++ b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Option.v @@ -9,76 +9,75 @@ Require Import String. Require Import Coq.Floats.Floats. From RecordUpdate Require Import RecordSet. Import RecordSetNotations. +From Core Require Import Core_Marker. +From Core Require Import Core_Ops_Function. +From Core Require Import Core_Panicking. +From Core Require Import Core_Clone. -(* From Core Require Import Core. *) +(* NotImplementedYet *) -From Core Require Import Core_Clone. -Export Core_Clone. -From Core Require Import Core_Marker (t_Sized). -Export Core_Marker (t_Sized). -From Core Require Import Core_Panicking (panic). -Export Core_Panicking (panic). -From Core Require Import Core_Ops_Function. -Export Core_Ops_Function. -Inductive t_Option (v_T : Type) `{t_Sized (v_T)} : Type := + + +Inductive t_Option (v_T : Type) `{Core_Marker.t_Sized (v_T)} : Type := | Option_None | Option_Some : v_T -> _. Arguments Option_None {_} {_}. Arguments Option_Some {_} {_}. -Instance t_Clone_390068633 `{v_T : Type} `{t_Sized (v_T)} `{t_Clone (v_T)} : t_Clone ((t_Option ((v_T)))) := - { - Clone_f_clone := fun (self : t_Option ((v_T)))=> - match self with - | Option_Some (x) => - Option_Some (Clone_f_clone (x)) - | Option_None => - Option_None - end; - }. - -Definition impl_1__is_some `{v_T : Type} `{t_Sized (v_T)} (self : t_Option ((v_T))) : bool := +Definition impl_1__is_some `{v_T : Type} `{Core_Marker.t_Sized (v_T)} (self : t_Option ((v_T))) : bool := match self with | Option_Some (_) => - true + (true : bool) | _ => - false + (false : bool) end. -Program Definition impl__map `{v_T : Type} `{v_U : Type} `{v_F : Type} `{t_Sized (v_T)} `{t_Sized (v_U)} `{t_Sized (v_F)} `{t_FnOnce (v_F) ((v_T))} `{_.(FnOnce_f_Output) = v_U} (self : t_Option ((v_T))) (f : v_F) : t_Option ((v_U)) := +Definition impl_1__map `{v_T : Type} `{v_U : Type} `{v_F : Type} `{Core_Marker.t_Sized (v_T)} `{Core_Marker.t_Sized (v_U)} `{Core_Marker.t_Sized (v_F)} `{Core_Ops_Function.t_FnOnce (v_F) ((v_T))} `{_.(Core_Ops_Function.FnOnce__f_Output) = v_U} (self : t_Option ((v_T))) (f : v_F) : t_Option ((v_U)) := match self with | Option_Some (x) => - Option_Some _ (* (FnOnce_f_call_once (f) ((x))) *) + Option_Some + (@eq_rect + Type + (@FnOnce__f_Output v_F v_T H2 H3 H4) + (fun T : Type => T) + (@FnOnce__f_call_once v_F v_T H2 H3 H4 f x) v_U H5) | Option_None => Option_None end. -Next Obligation. - refine (FnOnce_f_call_once (f) ((x))). -Defined. -Fail Next Obligation. -(* Definition unwrap_failed '(_ : unit) : t_Never := *) -(* panic ("called `Option::unwrap()` on a `None` value"%string). *) +Definition unwrap_failed (_ : unit) `{HFalse : t_Never} : t_Never := + Core_Panicking.panic (H := Core_Panicking.never_sized) (HFalse := HFalse) (("called `Option::unwrap()` on a `None` value"%string : string)). -(* Definition impl_1__unwrap `{v_T : Type} `{t_Sized (v_T)} (self : t_Option ((v_T))) `{impl_1__is_some (self___) = true} : v_T := *) -(* match self with *) -(* | Option_Some (val) => *) -(* val *) -(* | Option_None => *) -(* never_to_any (unwrap_failed (tt)) *) -(* end. *) +Definition impl_1__unwrap `{v_T : Type} `{Core_Marker.t_Sized (v_T)} (self : t_Option ((v_T))) `{impl_1__is_some (self) = true} : v_T := + match self return impl_1__is_some (self) = true -> _ with + | Option_Some (val) => + fun _ => val + | Option_None => + fun HFalse => never_to_any (unwrap_failed (tt) (HFalse := (False_rect _ (Bool.diff_false_true HFalse)))) + end H0. (* Definition expect_failed (msg : string) : t_Never := *) -(* panic (msg). *) +(* Core_Panicking.panic_display (msg). *) -(* Definition impl_1__expect `{v_T : Type} `{t_Sized (v_T)} (self : t_Option ((v_T))) (msg : string) : v_T := *) +(* Definition impl_1__expect `{v_T : Type} `{Core_Marker.t_Sized (v_T)} (self : t_Option ((v_T))) (msg : string) : v_T := *) (* match self with *) (* | Option_Some (val) => *) (* val *) (* | Option_None => *) -(* never_to_any (expect_failed (msg)) *) +(* Rust_primitives_Hax.never_to_any (expect_failed (msg)) *) (* end. *) + +Instance t_Clone_56373662 `{v_T : Type} `{Core_Marker.t_Sized (v_T)} `{Core_Clone.t_Clone (v_T)} : Core_Clone.t_Clone ((t_Option ((v_T)))) := + { + Core_Clone.Clone__f_clone := fun (self : t_Option ((v_T)))=> + match self with + | Option_Some (x) => + Option_Some (Core_Clone.Clone__f_clone (x)) + | Option_None => + Option_None + end; + }. diff --git a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Panicking.v b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Panicking.v index 42d61e406..4b97c4b11 100644 --- a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Panicking.v +++ b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Panicking.v @@ -9,8 +9,9 @@ Require Import String. Require Import Coq.Floats.Floats. From RecordUpdate Require Import RecordSet. Import RecordSetNotations. +From Core Require Import Core_Marker. -(* From Core Require Import Core. *) +(* NotImplementedYet *) Inductive t_Never : Type := . @@ -19,12 +20,14 @@ Definition t_Never_cast_to_repr (x : t_Never) : t_Never := match x with end. -Definition never_to_any `{v_T : Type} (x : t_Never) : v_T := +Definition never_to_any `{v_T : Type} `{Core_Marker.t_Sized (v_T)} (x : t_Never) : v_T := (match x with end). -Definition panic (expr : string) {HFalse : t_Never} : t_Never := +Definition panic (expr : string) `{Core_Marker.t_Sized _} {HFalse : t_Never} : t_Never := never_to_any HFalse. -Definition panic_explicit '(_ : unit) `{HFalse : t_Never} : t_Never := +Definition panic_explicit '(_ : unit) `{Core_Marker.t_Sized _} `{HFalse : t_Never} : t_Never := never_to_any HFalse. + +Instance never_sized : t_Sized t_Never := {}. diff --git a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Primitive.v b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Primitive.v index 68e97b241..804104ee8 100644 --- a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Primitive.v +++ b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Primitive.v @@ -9,9 +9,10 @@ Require Import String. Require Import Coq.Floats.Floats. From RecordUpdate Require Import RecordSet. Import RecordSetNotations. - (* From Core Require Import Core. *) +(* NotImplementedYet *) + From Core Require Import Core_Ops. Export Core_Ops. @@ -27,153 +28,5 @@ Export Core_Base. From Core Require Import Core_Base_interface_Int. Export Core_Base_interface_Int. -From Core Require Import Core_Array_Rec_bundle_579704328. -Export Core_Array_Rec_bundle_579704328. - -Notation "'t_Slice'" := (t_Slice). - -Notation "'Slice_f_v'" := (Slice_f_v). - -(* Notation "'impl_2'" := (impl_2). *) - -Notation "'t_Array'" := (t_Array). - -Notation "'Array_f_v'" := (Array_f_v). - -Notation "'impl_3__cast'" := (cast). - -Notation "'t_i128'" := (t_i128). - -Notation "'i128_0'" := (i128_0). - -(* Notation "'impl_25'" := (impl_25). *) - -Notation "'t_i16'" := (t_i16). - -Notation "'i16_0'" := (i16_0). - -(* Notation "'impl_19'" := (impl_19). *) - -Notation "'t_i32'" := (t_i32). - -Notation "'i32_0'" := (i32_0). - -(* Notation "'impl_21'" := (impl_21). *) - -Notation "'t_i64'" := (t_i64). - -Notation "'i64_0'" := (i64_0). - -(* Notation "'impl_23'" := (impl_23). *) - -Notation "'t_i8'" := (t_i8). - -Notation "'i8_0'" := (i8_0). - -(* Notation "'impl_17'" := (impl_17). *) - -Notation "'t_isize'" := (t_isize). - -Notation "'isize_0'" := (isize_0). - -(* Notation "'impl_27'" := (impl_27). *) - -(* NotImplementedYet *) - -(* NotImplementedYet *) - -Notation "'t_u128'" := (t_u128). - -Notation "'u128_0'" := (u128_0). - -Notation "'t_u16'" := (t_u16). - -Notation "'u16_0'" := (u16_0). - -Notation "'t_u32'" := (t_u32). - -Notation "'u32_0'" := (u32_0). - -Notation "'t_u64'" := (t_u64). - -Notation "'u64_0'" := (u64_0). - -Notation "'t_u8'" := (t_u8). - -Notation "'u8_0'" := (u8_0). - -Notation "'t_usize'" := (t_usize). - -Notation "'usize_0'" := (usize_0). - -(* NotImplementedYet *) - -(* NotImplementedYet *) - -(* NotImplementedYet *) - -(* NotImplementedYet *) - -(* Notation "'impl_1'" := (impl_1). *) - -(* Notation "'impl_5'" := (impl_5). *) - -(* Notation "'impl_7'" := (impl_7). *) - -(* Notation "'impl_9'" := (impl_9). *) - -(* Notation "'impl_11'" := (impl_11). *) - -(* Notation "'impl_13'" := (impl_13). *) - -(* Notation "'impl_15'" := (impl_15). *) - -(* Notation "'impl'" := (impl). *) - -(* Notation "'impl_29'" := (impl_29). *) - -(* Notation "'impl_30'" := (impl_30). *) - -(* Notation "'impl_31'" := (impl_31). *) - -(* Notation "'impl_32'" := (impl_32). *) - -(* Notation "'impl_33'" := (impl_33). *) - -(* Notation "'impl_34'" := (impl_34). *) - -(* Notation "'impl_35'" := (impl_35). *) - -(* Notation "'impl_36'" := (impl_36). *) - -(* Notation "'impl_37'" := (impl_37). *) - -(* Notation "'impl_38'" := (impl_38). *) - -(* Notation "'impl_39'" := (impl_39). *) - -(* Notation "'impl_40'" := (impl_40). *) - -(* Notation "'impl_41'" := (impl_41). *) - -(* Notation "'impl_42'" := (impl_42). *) - -(* Notation "'impl_43'" := (impl_43). *) - -(* Notation "'impl_44'" := (impl_44). *) - -(* Notation "'impl_45'" := (impl_45). *) - -(* Notation "'impl_46'" := (impl_46). *) - -(* Notation "'impl_47'" := (impl_47). *) - -(* Notation "'impl_48'" := (impl_48). *) - -(* Notation "'impl_49'" := (impl_49). *) - -(* Notation "'impl_50'" := (impl_50). *) - -(* Notation "'impl_51'" := (impl_51). *) - -(* Notation "'impl_52'" := (impl_52). *) +From Core Require Import Core_Bundle. +Export Core_Bundle. diff --git a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Primitive_Number_conversion.v b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Primitive_Number_conversion.v deleted file mode 100644 index 86e23f37b..000000000 --- a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Primitive_Number_conversion.v +++ /dev/null @@ -1,110 +0,0 @@ -(* File automatically generated by Hacspec *) -From Coq Require Import ZArith. -Require Import List. -Import List.ListNotations. -Open Scope Z_scope. -Open Scope bool_scope. -Require Import Ascii. -Require Import String. -Require Import Coq.Floats.Floats. -From RecordUpdate Require Import RecordSet. -Import RecordSetNotations. - -(* From Core Require Import Core. *) - -From Core Require Import Core_Primitive. -Export Core_Primitive. - -From Core Require Import Core_Cmp. -Export Core_Cmp. - -From Core Require Import Core_Convert. -Export Core_Convert. - -(* NotImplementedYet *) - -(* NotImplementedYet *) - -(* Notation "'impl_31'" := (impl_31). *) - -(* Notation "'impl_40'" := (impl_40). *) - -(* Notation "'impl'" := (impl). *) - -(* Notation "'impl_1'" := (impl_1). *) - -(* Notation "'impl_2'" := (impl_2). *) - -(* Notation "'impl_3'" := (impl_3). *) - -(* Notation "'impl_4'" := (impl_4). *) - -(* Notation "'impl_5'" := (impl_5). *) - -(* Notation "'impl_6'" := (impl_6). *) - -(* Notation "'impl_7'" := (impl_7). *) - -(* Notation "'impl_8'" := (impl_8). *) - -(* Notation "'impl_9'" := (impl_9). *) - -(* Notation "'impl_10'" := (impl_10). *) - -(* Notation "'impl_11'" := (impl_11). *) - -(* Notation "'impl_12'" := (impl_12). *) - -(* Notation "'impl_13'" := (impl_13). *) - -(* Notation "'impl_14'" := (impl_14). *) - -(* Notation "'impl_15'" := (impl_15). *) - -(* Notation "'impl_16'" := (impl_16). *) - -(* Notation "'impl_17'" := (impl_17). *) - -(* Notation "'impl_18'" := (impl_18). *) - -(* Notation "'impl_19'" := (impl_19). *) - -(* Notation "'impl_20'" := (impl_20). *) - -(* Notation "'impl_21'" := (impl_21). *) - -(* Notation "'impl_22'" := (impl_22). *) - -(* Notation "'impl_23'" := (impl_23). *) - -(* Notation "'impl_24'" := (impl_24). *) - -(* Notation "'impl_25'" := (impl_25). *) - -(* Notation "'impl_26'" := (impl_26). *) - -(* Notation "'impl_27'" := (impl_27). *) - -(* Notation "'impl_28'" := (impl_28). *) - -(* Notation "'impl_29'" := (impl_29). *) - -(* Notation "'impl_30'" := (impl_30). *) - -(* Notation "'impl_32'" := (impl_32). *) - -(* Notation "'impl_33'" := (impl_33). *) - -(* Notation "'impl_34'" := (impl_34). *) - -(* Notation "'impl_35'" := (impl_35). *) - -(* Notation "'impl_36'" := (impl_36). *) - -(* Notation "'impl_37'" := (impl_37). *) - -(* Notation "'impl_38'" := (impl_38). *) - -(* Notation "'impl_39'" := (impl_39). *) - -(* Notation "'impl_41'" := (impl_41). *) diff --git a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Primitive_Number_conversion_i.v b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Primitive_Number_conversion_i.v deleted file mode 100644 index 3fb3d3925..000000000 --- a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Primitive_Number_conversion_i.v +++ /dev/null @@ -1,110 +0,0 @@ -(* File automatically generated by Hacspec *) -From Coq Require Import ZArith. -Require Import List. -Import List.ListNotations. -Open Scope Z_scope. -Open Scope bool_scope. -Require Import Ascii. -Require Import String. -Require Import Coq.Floats.Floats. -From RecordUpdate Require Import RecordSet. -Import RecordSetNotations. - -(* From Core Require Import Core. *) - -(* Notation "'impl_31'" := (impl_31). *) - -(* Notation "'impl_40'" := (impl_40). *) - -From Core Require Import Core_Primitive. -Export Core_Primitive. - -From Core Require Import Core_Cmp. -Export Core_Cmp. - -From Core Require Import Core_Convert. -Export Core_Convert. - -(* NotImplementedYet *) - -(* NotImplementedYet *) - -(* Notation "'impl'" := (impl). *) - -(* Notation "'impl_1'" := (impl_1). *) - -(* Notation "'impl_2'" := (impl_2). *) - -(* Notation "'impl_3'" := (impl_3). *) - -(* Notation "'impl_4'" := (impl_4). *) - -(* Notation "'impl_5'" := (impl_5). *) - -(* Notation "'impl_6'" := (impl_6). *) - -(* Notation "'impl_7'" := (impl_7). *) - -(* Notation "'impl_8'" := (impl_8). *) - -(* Notation "'impl_9'" := (impl_9). *) - -(* Notation "'impl_10'" := (impl_10). *) - -(* Notation "'impl_11'" := (impl_11). *) - -(* Notation "'impl_12'" := (impl_12). *) - -(* Notation "'impl_13'" := (impl_13). *) - -(* Notation "'impl_14'" := (impl_14). *) - -(* Notation "'impl_15'" := (impl_15). *) - -(* Notation "'impl_16'" := (impl_16). *) - -(* Notation "'impl_17'" := (impl_17). *) - -(* Notation "'impl_18'" := (impl_18). *) - -(* Notation "'impl_19'" := (impl_19). *) - -(* Notation "'impl_20'" := (impl_20). *) - -(* Notation "'impl_21'" := (impl_21). *) - -(* Notation "'impl_22'" := (impl_22). *) - -(* Notation "'impl_23'" := (impl_23). *) - -(* Notation "'impl_24'" := (impl_24). *) - -(* Notation "'impl_25'" := (impl_25). *) - -(* Notation "'impl_26'" := (impl_26). *) - -(* Notation "'impl_27'" := (impl_27). *) - -(* Notation "'impl_28'" := (impl_28). *) - -(* Notation "'impl_29'" := (impl_29). *) - -(* Notation "'impl_30'" := (impl_30). *) - -(* Notation "'impl_32'" := (impl_32). *) - -(* Notation "'impl_33'" := (impl_33). *) - -(* Notation "'impl_34'" := (impl_34). *) - -(* Notation "'impl_35'" := (impl_35). *) - -(* Notation "'impl_36'" := (impl_36). *) - -(* Notation "'impl_37'" := (impl_37). *) - -(* Notation "'impl_38'" := (impl_38). *) - -(* Notation "'impl_39'" := (impl_39). *) - -(* Notation "'impl_41'" := (impl_41). *) diff --git a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Primitive_Primitive_definitions.v b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Primitive_Primitive_definitions.v new file mode 100644 index 000000000..9a9c20964 --- /dev/null +++ b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Primitive_Primitive_definitions.v @@ -0,0 +1,144 @@ +(* File automatically generated by Hacspec *) +From Coq Require Import ZArith. +Require Import List. +Import List.ListNotations. +Open Scope Z_scope. +Open Scope bool_scope. +Require Import Ascii. +Require Import String. +Require Import Coq.Floats.Floats. +From RecordUpdate Require Import RecordSet. +Import RecordSetNotations. +From Core Require Import Core_Bundle. + +(* NotImplementedYet *) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +(* (* NotImplementedYet *) *) + +(* Notation "'t_u8'" := (Core_Bundle.t_u8). *) + +(* Notation "'Build_t__u8_u8'" := (Core_Bundle.Build_t__u8_u8). *) + +(* Notation "'impl_5'" := (Core_Bundle.impl_5). *) + +(* Notation "'t_u16'" := (Core_Bundle.t_u16). *) + +(* Notation "'Build_t__u16_u16'" := (Core_Bundle.Build_t__u16_u16). *) + +(* Notation "'impl_7'" := (Core_Bundle.impl_7). *) + +(* Notation "'t_u32'" := (Core_Bundle.t_u32). *) + +(* Notation "'Build_t__u32_u32'" := (Core_Bundle.Build_t__u32_u32). *) + +(* Notation "'impl_9'" := (Core_Bundle.impl_9). *) + +(* Notation "'t_u64'" := (Core_Bundle.t_u64). *) + +(* Notation "'Build_t__u64_u64'" := (Core_Bundle.Build_t__u64_u64). *) + +(* Notation "'impl_11'" := (Core_Bundle.impl_11). *) + +(* Notation "'t_u128'" := (Core_Bundle.t_u128). *) + +(* Notation "'Build_t__u128_u128'" := (Core_Bundle.Build_t__u128_u128). *) + +(* Notation "'impl_13'" := (Core_Bundle.impl_13). *) + +(* Notation "'t_usize'" := (Core_Bundle.t_usize). *) + +(* Notation "'Build_t__usize_usize'" := (Core_Bundle.Build_t__usize_usize). *) + +(* Notation "'impl_15'" := (Core_Bundle.impl_15). *) + +(* Notation "'t_i8'" := (Core_Bundle.t_i8). *) + +(* Notation "'Build_t__i8_i8'" := (Core_Bundle.Build_t__i8_i8). *) + +(* Notation "'impl_17'" := (Core_Bundle.impl_17). *) + +(* Notation "'t_i16'" := (Core_Bundle.t_i16). *) + +(* Notation "'Build_t__i16_i16'" := (Core_Bundle.Build_t__i16_i16). *) + +(* Notation "'impl_19'" := (Core_Bundle.impl_19). *) + +(* Notation "'t_i32'" := (Core_Bundle.t_i32). *) + +(* Notation "'Build_t__i32_i32'" := (Core_Bundle.Build_t__i32_i32). *) + +(* Notation "'impl_21'" := (Core_Bundle.impl_21). *) + +(* Notation "'t_i64'" := (Core_Bundle.t_i64). *) + +(* Notation "'Build_t__i64_i64'" := (Core_Bundle.Build_t__i64_i64). *) + +(* Notation "'impl_23'" := (Core_Bundle.impl_23). *) + +(* Notation "'t_i128'" := (Core_Bundle.t_i128). *) + +(* Notation "'Build_t__i128_i128'" := (Core_Bundle.Build_t__i128_i128). *) + +(* Notation "'impl_25'" := (Core_Bundle.impl_25). *) + +(* Notation "'t_isize'" := (Core_Bundle.t_isize). *) + +(* Notation "'Build_t__isize_isize'" := (Core_Bundle.Build_t__isize_isize). *) + +(* Notation "'impl_27'" := (Core_Bundle.impl_27). *) + +(* Notation "'t_Slice'" := (Core_Bundle.t_Slice). *) + +(* Notation "'impl_29'" := (Core_Bundle.impl_29). *) + +(* Notation "'t_Array'" := (Core_Bundle.t_Array). *) + +(* Notation "'impl'" := (Core_Bundle.impl). *) + +(* Notation "'impl_1'" := (Core_Bundle.impl_1). *) + +(* Notation "'impl_2'" := (Core_Bundle.impl_2). *) + +(* Notation "'impl_3__cast'" := (Core_Bundle.impl_3__cast). *) diff --git a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Result.v b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Result.v index d5caaaccf..9fdfeb61a 100644 --- a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Result.v +++ b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Result.v @@ -9,22 +9,28 @@ Require Import String. Require Import Coq.Floats.Floats. From RecordUpdate Require Import RecordSet. Import RecordSetNotations. +From Core Require Import Core. -(* From Core Require Import Core. *) +(* NotImplementedYet *) -From Core Require Import Core_Option. -Export Core_Option. - -Inductive t_Result (v_T : Type) (v_E : Type) `{t_Sized (v_T)} `{t_Sized (v_E)} : Type := +Inductive t_Result (v_T : Type) (v_E : Type) `{Core_Marker.t_Sized (v_T)} `{Core_Marker.t_Sized (v_E)} : Type := | Result_Ok : v_T -> _ | Result_Err : v_E -> _. Arguments Result_Ok {_} {_} {_} {_}. Arguments Result_Err {_} {_} {_} {_}. -Definition impl__ok `{v_T : Type} `{v_E : Type} `{t_Sized (v_T)} `{t_Sized (v_E)} (self : t_Result ((v_T)) ((v_E))) : t_Option ((v_T)) := +Definition impl__ok `{v_T : Type} `{v_E : Type} `{Core_Marker.t_Sized (v_T)} `{Core_Marker.t_Sized (v_E)} (self : t_Result ((v_T)) ((v_E))) : Core_Option.t_Option ((v_T)) := match self with | Result_Ok (x) => - Option_Some (x) + Core_Option.Option_Some (x) | Result_Err (_) => - Option_None + Core_Option.Option_None + end. + +Definition impl__err `{v_T : Type} `{v_E : Type} `{Core_Marker.t_Sized (v_T)} `{Core_Marker.t_Sized (v_E)} (self : t_Result ((v_T)) ((v_E))) : Core_Option.t_Option ((v_E)) := + match self with + | Result_Ok (_) => + Core_Option.Option_None + | Result_Err (x) => + Core_Option.Option_Some (x) end. diff --git a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Slice.v b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Slice.v index 8869d4239..e899d4712 100644 --- a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Slice.v +++ b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Slice.v @@ -9,29 +9,21 @@ Require Import String. Require Import Coq.Floats.Floats. From RecordUpdate Require Import RecordSet. Import RecordSetNotations. +From Core Require Import Core. -(* From Core Require Import Core. *) - -From Core Require Import Core_Primitive. -Export Core_Primitive. +(* NotImplementedYet *) -From Core Require Import Core_Slice_Iter. -Export Core_Slice_Iter. -From Core Require Import Core_Convert. -Export Core_Convert. -(* NotImplementedYet *) -(* NotImplementedYet *) -Definition impl__iter `{v_T : Type} `{t_Sized (v_T)} `{t_Clone (v_T)} (self : t_Slice ((v_T))) : t_Iter ((v_T)) := - impl__new (self). +Definition impl__len `{v_T : Type} `{Core_Marker.t_Sized (v_T)} `{Core_Clone.t_Clone (v_T)} (self : Core_Primitive_Primitive_definitions.t_Slice ((v_T))) : t_usize := + Core_Convert.From__f_from (Core_Base_Seq.len (Core_Clone.Clone__f_clone (Core_Primitive_Primitive_definitions.f_Slice_v self))). -Definition impl__len `{v_T : Type} `{t_Sized (v_T)} `{t_Clone (v_T)} (self : t_Slice ((v_T))) : t_usize := - From_f_from (len (Clone_f_clone (Slice_f_v self))). +Definition impl__is_empty `{v_T : Type} `{Core_Marker.t_Sized (v_T)} `{Core_Clone.t_Clone (v_T)} (self : Core_Primitive_Primitive_definitions.t_Slice ((v_T))) : bool := + Rust_primitives_U128.eq (impl__len (self)) ((0 : t_usize)). -Definition impl__is_empty `{v_T : Type} `{t_Sized (v_T)} `{t_Clone (v_T)} (self : t_Slice ((v_T))) : bool := - PartialEq_f_eq (impl__len (self)) (Build_t_usize (Build_t_U64 0%N)). +Definition impl__iter `{v_T : Type} `{Core_Marker.t_Sized (v_T)} `{Core_Clone.t_Clone (v_T)} (self : Core_Primitive_Primitive_definitions.t_Slice ((v_T))) : Core_Slice_Iter.t_Iter ((v_T)) := + Core_Slice_Iter.impl__new (self). diff --git a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Slice_Index.v b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Slice_Index.v index 34f393591..e4528534d 100644 --- a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Slice_Index.v +++ b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Slice_Index.v @@ -9,65 +9,20 @@ Require Import String. Require Import Coq.Floats.Floats. From RecordUpdate Require Import RecordSet. Import RecordSetNotations. +From Core Require Import Core. -(* From Core Require Import Core. *) +(* NotImplementedYet *) -(* TODO: Replace this dummy lib with core lib *) -Class t_Sized (T : Type) := { }. -Definition t_u8 := Z. -Definition t_u16 := Z. -Definition t_u32 := Z. -Definition t_u64 := Z. -Definition t_u128 := Z. -Definition t_usize := Z. -Definition t_i8 := Z. -Definition t_i16 := Z. -Definition t_i32 := Z. -Definition t_i64 := Z. -Definition t_i128 := Z. -Definition t_isize := Z. -Definition t_Array T (x : t_usize) := list T. -Definition t_String := string. -Definition ToString_f_to_string (x : string) := x. -Instance Sized_any : forall {t_A}, t_Sized t_A := {}. -Class t_Clone (T : Type) := { Clone_f_clone : T -> T }. -Instance Clone_any : forall {t_A}, t_Clone t_A := {Clone_f_clone := fun x => x}. -Definition t_Slice (T : Type) := list T. -Definition unsize {T : Type} : list T -> t_Slice T := id. -Definition t_PartialEq_f_eq x y := x =? y. -Definition t_Rem_f_rem (x y : Z) := x mod y. -Definition assert (b : bool) (* `{H_assert : b = true} *) : unit := tt. -Inductive globality := | t_Global. -Definition t_Vec T (_ : globality) : Type := list T. -Definition impl_1__append {T} l1 l2 : list T * list T := (app l1 l2, l2). -Definition impl_1__len {A} (l : list A) := Z.of_nat (List.length l). -Definition impl__new {A} (_ : Datatypes.unit) : list A := nil. -Definition impl__with_capacity {A} (_ : Z) : list A := nil. -Definition impl_1__push {A} l (x : A) := cons x l. -Class t_From (A B : Type) := { From_f_from : B -> A }. -Definition impl__to_vec {T} (x : t_Slice T) : t_Vec T t_Global := x. -Class t_Into (A B : Type) := { Into_f_into : A -> B }. -Instance t_Into_from_t_From {A B : Type} `{H : t_From B A} : t_Into A B := { Into_f_into x := @From_f_from B A H x }. -Definition from_elem {A} (x : A) (l : Z) := repeat x (Z.to_nat l). -Definition t_Option := option. -Definition impl__map {A B} (x : t_Option A) (f : A -> B) : t_Option B := match x with | Some x => Some (f x) | None => None end. -Definition t_Add_f_add x y := x + y. -Class Cast A B := { cast : A -> B }. -Instance cast_t_u8_t_u32 : Cast t_u8 t_u32 := {| cast x := x |}. -(* / dummy lib *) -From Core Require Import Core (t_ops). -Export Core (t_ops). -From Core Require Import Core_Primitive (t_Slice). -Export Core_Primitive (t_Slice). -(* NotImplementedYet *) -Notation "'v_SliceIndex'" := (v_SliceIndex). +Notation "'impl'" := (Core_Bundle.impl). + +Notation "'SliceIndex__f_Output'" := (Core_Bundle.SliceIndex__f_Output). -Notation "'impl'" := (impl). +Notation "'SliceIndex__f_index'" := (Core_Bundle.SliceIndex__f_index). -Notation "'impl_2'" := (impl_2). +Notation "'impl_1'" := (Core_Bundle.impl_1). -Notation "'impl_1'" := (impl_1). +Notation "'impl_2'" := (Core_Bundle.impl_2). diff --git a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Slice_Index_Private_slice_index.v b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Slice_Index_Private_slice_index.v index 589bd659a..00c5bf0e5 100644 --- a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Slice_Index_Private_slice_index.v +++ b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Slice_Index_Private_slice_index.v @@ -9,74 +9,28 @@ Require Import String. Require Import Coq.Floats.Floats. From RecordUpdate Require Import RecordSet. Import RecordSetNotations. +From Core Require Import Core. -(* From Core Require Import Core. *) +(* NotImplementedYet *) -(* TODO: Replace this dummy lib with core lib *) -Class t_Sized (T : Type) := { }. -Definition t_u8 := Z. -Definition t_u16 := Z. -Definition t_u32 := Z. -Definition t_u64 := Z. -Definition t_u128 := Z. -Definition t_usize := Z. -Definition t_i8 := Z. -Definition t_i16 := Z. -Definition t_i32 := Z. -Definition t_i64 := Z. -Definition t_i128 := Z. -Definition t_isize := Z. -Definition t_Array T (x : t_usize) := list T. -Definition t_String := string. -Definition ToString_f_to_string (x : string) := x. -Instance Sized_any : forall {t_A}, t_Sized t_A := {}. -Class t_Clone (T : Type) := { Clone_f_clone : T -> T }. -Instance Clone_any : forall {t_A}, t_Clone t_A := {Clone_f_clone := fun x => x}. -Definition t_Slice (T : Type) := list T. -Definition unsize {T : Type} : list T -> t_Slice T := id. -Definition t_PartialEq_f_eq x y := x =? y. -Definition t_Rem_f_rem (x y : Z) := x mod y. -Definition assert (b : bool) (* `{H_assert : b = true} *) : unit := tt. -Inductive globality := | t_Global. -Definition t_Vec T (_ : globality) : Type := list T. -Definition impl_1__append {T} l1 l2 : list T * list T := (app l1 l2, l2). -Definition impl_1__len {A} (l : list A) := Z.of_nat (List.length l). -Definition impl__new {A} (_ : Datatypes.unit) : list A := nil. -Definition impl__with_capacity {A} (_ : Z) : list A := nil. -Definition impl_1__push {A} l (x : A) := cons x l. -Class t_From (A B : Type) := { From_f_from : B -> A }. -Definition impl__to_vec {T} (x : t_Slice T) : t_Vec T t_Global := x. -Class t_Into (A B : Type) := { Into_f_into : A -> B }. -Instance t_Into_from_t_From {A B : Type} `{H : t_From B A} : t_Into A B := { Into_f_into x := @From_f_from B A H x }. -Definition from_elem {A} (x : A) (l : Z) := repeat x (Z.to_nat l). -Definition t_Option := option. -Definition impl__map {A B} (x : t_Option A) (f : A -> B) : t_Option B := match x with | Some x => Some (f x) | None => None end. -Definition t_Add_f_add x y := x + y. -Class Cast A B := { cast : A -> B }. -Instance cast_t_u8_t_u32 : Cast t_u8 t_u32 := {| cast x := x |}. -(* / dummy lib *) -From Core Require Import Core_Slice_Index_Ops. -Export Core_Slice_Index_Ops. -Notation "'v_Sealed'" := (v_Sealed). +Notation "'impl'" := (Core_Bundle.impl). -Notation "'impl'" := (impl). +Notation "'impl_1'" := (Core_Bundle.impl_1). -Notation "'impl_1'" := (impl_1). +Notation "'impl_2'" := (Core_Bundle.impl_2). -Notation "'impl_2'" := (impl_2). +Notation "'impl_3'" := (Core_Bundle.impl_3). -Notation "'impl_3'" := (impl_3). +Notation "'impl_4'" := (Core_Bundle.impl_4). -Notation "'impl_4'" := (impl_4). +Notation "'impl_5'" := (Core_Bundle.impl_5). -Notation "'impl_5'" := (impl_5). +Notation "'impl_6'" := (Core_Bundle.impl_6). -Notation "'impl_6'" := (impl_6). +Notation "'impl_7'" := (Core_Bundle.impl_7). -Notation "'impl_7'" := (impl_7). - -Notation "'impl_8'" := (impl_8). +Notation "'impl_8'" := (Core_Bundle.impl_8). diff --git a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Slice_Iter.v b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Slice_Iter.v index e294a39bb..604977228 100644 --- a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Slice_Iter.v +++ b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Slice_Iter.v @@ -9,33 +9,30 @@ Require Import String. Require Import Coq.Floats.Floats. From RecordUpdate Require Import RecordSet. Import RecordSetNotations. +From Core Require Import Core. + +(* NotImplementedYet *) + -(* From Core Require Import Core. *) -From Core Require Import Core_Marker. -Export Core_Marker. -From Core Require Import Core_Primitive. -Export Core_Primitive. -Record t_Iter (v_T : Type) `{t_Sized (v_T)} : Type := +Record Iter_Iter_record (v_T : Type) `{Core_Marker.t_Sized (v_T)} : Type := { - Iter_f_data : t_Slice ((v_T)); - Iter_f__marker : t_PhantomData ((v_T)); + Iter_Iter_f_Iter_data : Core_Primitive_Primitive_definitions.t_Slice ((v_T)); + Iter_Iter_f_Iter_e_marker : Core_Marker.t_PhantomData ((v_T)); }. -Arguments Build_t_Iter {_} {_}. -Arguments Iter_f_data {_} {_}. -Arguments Iter_f__marker {_} {_}. -#[export] Instance settable_t_Iter `{v_T : Type} `{t_Sized (v_T)} : Settable _ := - settable! (Build_t_Iter) . +Arguments Build_Iter_Iter_record {_} {_}. +Arguments Iter_Iter_f_Iter_data {_} {_}. +Arguments Iter_Iter_f_Iter_e_marker {_} {_}. +#[export] Instance settable_Iter_Iter_record `{v_T : Type} `{Core_Marker.t_Sized (v_T)} : Settable _ := + settable! (Build_Iter_Iter_record (v_T := v_T)) . -Definition impl__new `{v_T : Type} `{t_Sized (v_T)} `{t_Clone (v_T)} (slice : t_Slice ((v_T))) : t_Iter ((v_T)) := - Build_t_Iter (Clone_f_clone (slice)) (Build_t_PhantomData). +Definition impl__new `{v_T : Type} `{Core_Marker.t_Sized (v_T)} `{Core_Clone.t_Clone (v_T)} (slice : Core_Primitive_Primitive_definitions.t_Slice ((v_T))) : t_Iter ((v_T)) := + Iter_Iter (Core_Clone.Clone__f_clone (slice)) (Core_Marker.PhantomData_PhantomData). -Instance t_Clone_313886898 `{v_T : Type} `{t_Sized (v_T)} `{t_Clone (v_T)} : t_Clone ((t_Iter ((v_T)))) := +Instance t_Clone_942369049 `{v_T : Type} `{Core_Marker.t_Sized (v_T)} `{Core_Clone.t_Clone (v_T)} : Core_Clone.t_Clone ((t_Iter ((v_T)))) := { - Clone_f_clone := fun (self : t_Iter ((v_T)))=> - Build_t_Iter (Clone_f_clone (Iter_f_data self)) (Iter_f__marker self); + Core_Clone.Clone_impl_1__f_clone := fun (self : t_Iter ((v_T)))=> + Iter_Iter (Core_Clone.Clone__f_clone (f_Iter_data self)) (f_Iter_e_marker self); }. - -(* NotImplementedYet *) diff --git a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Slice_Iter_Macros.v b/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Slice_Iter_Macros.v deleted file mode 100644 index 136832dc8..000000000 --- a/hax-lib/proof-libs/coq/coq/generated-core/src/Core_Slice_Iter_Macros.v +++ /dev/null @@ -1,63 +0,0 @@ -(* File automatically generated by Hacspec *) -From Coq Require Import ZArith. -Require Import List. -Import List.ListNotations. -Open Scope Z_scope. -Open Scope bool_scope. -Require Import Ascii. -Require Import String. -Require Import Coq.Floats.Floats. -From RecordUpdate Require Import RecordSet. -Import RecordSetNotations. - -(* From Core Require Import Core. *) - -(* TODO: Replace this dummy lib with core lib *) -Class t_Sized (T : Type) := { }. -Definition t_u8 := Z. -Definition t_u16 := Z. -Definition t_u32 := Z. -Definition t_u64 := Z. -Definition t_u128 := Z. -Definition t_usize := Z. -Definition t_i8 := Z. -Definition t_i16 := Z. -Definition t_i32 := Z. -Definition t_i64 := Z. -Definition t_i128 := Z. -Definition t_isize := Z. -Definition t_Array T (x : t_usize) := list T. -Definition t_String := string. -Definition ToString_f_to_string (x : string) := x. -Instance Sized_any : forall {t_A}, t_Sized t_A := {}. -Class t_Clone (T : Type) := { Clone_f_clone : T -> T }. -Instance Clone_any : forall {t_A}, t_Clone t_A := {Clone_f_clone := fun x => x}. -Definition t_Slice (T : Type) := list T. -Definition unsize {T : Type} : list T -> t_Slice T := id. -Definition t_PartialEq_f_eq x y := x =? y. -Definition t_Rem_f_rem (x y : Z) := x mod y. -Definition assert (b : bool) (* `{H_assert : b = true} *) : unit := tt. -Inductive globality := | t_Global. -Definition t_Vec T (_ : globality) : Type := list T. -Definition impl_1__append {T} l1 l2 : list T * list T := (app l1 l2, l2). -Definition impl_1__len {A} (l : list A) := Z.of_nat (List.length l). -Definition impl__new {A} (_ : Datatypes.unit) : list A := nil. -Definition impl__with_capacity {A} (_ : Z) : list A := nil. -Definition impl_1__push {A} l (x : A) := cons x l. -Class t_From (A B : Type) := { From_f_from : B -> A }. -Definition impl__to_vec {T} (x : t_Slice T) : t_Vec T t_Global := x. -Class t_Into (A B : Type) := { Into_f_into : A -> B }. -Instance t_Into_from_t_From {A B : Type} `{H : t_From B A} : t_Into A B := { Into_f_into x := @From_f_from B A H x }. -Definition from_elem {A} (x : A) (l : Z) := repeat x (Z.to_nat l). -Definition t_Option := option. -Definition impl__map {A B} (x : t_Option A) (f : A -> B) : t_Option B := match x with | Some x => Some (f x) | None => None end. -Definition t_Add_f_add x y := x + y. -Class Cast A B := { cast : A -> B }. -Instance cast_t_u8_t_u32 : Cast t_u8 t_u32 := {| cast x := x |}. -(* / dummy lib *) - -(* NotImplementedYet *) - -(* NotImplementedYet *) - -(* NotImplementedYet *) diff --git a/hax-lib/proof-libs/coq/coq/generated-core/src/_CoqProject b/hax-lib/proof-libs/coq/coq/generated-core/src/_CoqProject deleted file mode 100644 index cfa82bfcc..000000000 --- a/hax-lib/proof-libs/coq/coq/generated-core/src/_CoqProject +++ /dev/null @@ -1,72 +0,0 @@ --R ./ TODO --arg -w --arg all - -Core_Slice_Iter_Macros.v -Core_Slice_Iter.v -Core_Slice_Index_Private_slice_index.v -Core_Slice_Index.v -Core_Slice.v -Core_Result.v -Core_Primitive_Number_conversion_i.v -Core_Primitive_Number_conversion.v -Core_Primitive.v -Core_Panicking.v -Core_Option.v -Core_Ops_Range.v -Core_Ops_Index_range.v -Core_Ops_Index.v -Core_Ops_Function.v -Core_Ops_Bit_Impls_for_prims.v -Core_Ops_Bit.v -Core_Ops_Arith_Impls_for_prims.v -Core_Ops_Arith.v -Core_Ops.v -Core_Num_Uint_macros.v -Core_Num_Int_macros.v -Core_Num.v -Core_Marker.v -Core_Iter_Traits_Marker.v -Core_Iter_Traits_Iterator.v -Core_Iter_Traits_Exact_size.v -Core_Iter_Traits_Collect.v -Core_Iter_Traits.v -Core_Iter_Range.v -Core_Iter.v -Core_Intrinsics.v -Core_Fmt.v -Core_Convert.v -Core_Cmp.v -Core_Clone.v -Core_Base_interface_Int_U8_proofs.v -Core_Base_interface_Int_U64_proofs.v -Core_Base_interface_Int_U32_proofs.v -Core_Base_interface_Int_U16_proofs.v -Core_Base_interface_Int_U128_proofs.v -Core_Base_interface_Int_I8_proofs.v -Core_Base_interface_Int_I64_proofs.v -Core_Base_interface_Int_I32_proofs.v -Core_Base_interface_Int_I16_proofs.v -Core_Base_interface_Int_I128_proofs.v -Core_Base_interface_Int.v -Core_Base_interface_Coerce.v -Core_Base_interface.v -Core_Base_Z.v -Core_Base_Spec_Z.v -Core_Base_Spec_Unary.v -Core_Base_Spec_Seq.v -Core_Base_Spec_Haxint.v -Core_Base_Spec_Constants.v -Core_Base_Spec_Binary_Positive.v -Core_Base_Spec_Binary_Pos.v -Core_Base_Spec_Binary.v -Core_Base_Spec.v -Core_Base_Seq.v -Core_Base_Pos.v -Core_Base_Number_conversion.v -Core_Base_Binary.v -Core_Base.v -Core_Array_Rec_bundle_579704328.v -Core_Array_Iter.v -Core_Array.v -Core.v \ No newline at end of file diff --git a/test-harness/src/snapshots/toolchain__assert into-coq.snap b/test-harness/src/snapshots/toolchain__assert into-coq.snap index 5bb6b5744..cedb9e9b2 100644 --- a/test-harness/src/snapshots/toolchain__assert into-coq.snap +++ b/test-harness/src/snapshots/toolchain__assert into-coq.snap @@ -45,15 +45,15 @@ From Core Require Import Core. (* NotImplementedYet *) Definition asserts '(_ : unit) : unit := - let _ := assert ((true : bool)) in - let _ := assert (f_eq ((1 : t_i32)) ((1 : t_i32))) in + let _ := hax_lib.assert ((true : bool)) in + let _ := hax_lib.assert (core.cmp.PartialEq__f_eq ((1 : t_i32)) ((1 : t_i32))) in let _ := match ((2 : t_i32),(2 : t_i32)) with | (left_val,right_val) => - assert (f_eq (left_val) (right_val)) + hax_lib.assert (core.cmp.PartialEq__f_eq (left_val) (right_val)) end in let _ := match ((1 : t_i32),(2 : t_i32)) with | (left_val,right_val) => - assert (f_not (f_eq (left_val) (right_val))) + hax_lib.assert (core.ops.bit.Not__f_not (core.cmp.PartialEq__f_eq (left_val) (right_val))) end in tt. ''' diff --git a/test-harness/src/snapshots/toolchain__enum-repr into-coq.snap b/test-harness/src/snapshots/toolchain__enum-repr into-coq.snap index 9566ca674..5557359b7 100644 --- a/test-harness/src/snapshots/toolchain__enum-repr into-coq.snap +++ b/test-harness/src/snapshots/toolchain__enum-repr into-coq.snap @@ -68,9 +68,9 @@ Definition t_EnumWithRepr_cast_to_repr (x : t_EnumWithRepr) : t_u16 := | EnumWithRepr_ExplicitDiscr2 => anon_const_EnumWithRepr_ExplicitDiscr2__anon_const_0 | EnumWithRepr_ImplicitDiscrEmptyTuple => - f_add (anon_const_EnumWithRepr_ExplicitDiscr2__anon_const_0) ((1 : t_u16)) + core.ops.arith.Add__f_add (anon_const_EnumWithRepr_ExplicitDiscr2__anon_const_0) ((1 : t_u16)) | EnumWithRepr_ImplicitDiscrEmptyStruct => - f_add (anon_const_EnumWithRepr_ExplicitDiscr2__anon_const_0) ((2 : t_u16)) + core.ops.arith.Add__f_add (anon_const_EnumWithRepr_ExplicitDiscr2__anon_const_0) ((2 : t_u16)) end. Inductive t_ImplicitReprs : Type := @@ -109,21 +109,21 @@ Definition t_ImplicitReprs_cast_to_repr (x : t_ImplicitReprs) : t_u64 := | ImplicitReprs_E => anon_const_ImplicitReprs_E__anon_const_0 | ImplicitReprs_F => - f_add (anon_const_ImplicitReprs_E__anon_const_0) ((1 : t_u64)) + core.ops.arith.Add__f_add (anon_const_ImplicitReprs_E__anon_const_0) ((1 : t_u64)) | ImplicitReprs_G => - f_add (anon_const_ImplicitReprs_E__anon_const_0) ((2 : t_u64)) + core.ops.arith.Add__f_add (anon_const_ImplicitReprs_E__anon_const_0) ((2 : t_u64)) | ImplicitReprs_H => - f_add (anon_const_ImplicitReprs_E__anon_const_0) ((3 : t_u64)) + core.ops.arith.Add__f_add (anon_const_ImplicitReprs_E__anon_const_0) ((3 : t_u64)) | ImplicitReprs_I => - f_add (anon_const_ImplicitReprs_E__anon_const_0) ((4 : t_u64)) + core.ops.arith.Add__f_add (anon_const_ImplicitReprs_E__anon_const_0) ((4 : t_u64)) end. Definition f '(_ : unit) : t_u32 := - let e_x := cast (f_add (anon_const_EnumWithRepr_ExplicitDiscr2__anon_const_0) ((0 : t_u16))) in - f_add (cast (t_EnumWithRepr_cast_to_repr (EnumWithRepr_ImplicitDiscrEmptyTuple))) (cast (t_EnumWithRepr_cast_to_repr (EnumWithRepr_ImplicitDiscrEmptyStruct))). + let e_x := cast (core.ops.arith.Add__f_add (anon_const_EnumWithRepr_ExplicitDiscr2__anon_const_0) ((0 : t_u16))) in + core.ops.arith.Add__f_add (cast (t_EnumWithRepr_cast_to_repr (EnumWithRepr_ImplicitDiscrEmptyTuple))) (cast (t_EnumWithRepr_cast_to_repr (EnumWithRepr_ImplicitDiscrEmptyStruct))). Definition f__v_CONST : t_u16 := - cast (f_add (anon_const_EnumWithRepr_ExplicitDiscr1__anon_const_0) ((0 : t_u16))). + cast (core.ops.arith.Add__f_add (anon_const_EnumWithRepr_ExplicitDiscr1__anon_const_0) ((0 : t_u16))). Definition get_repr (x : t_EnumWithRepr) : t_u16 := t_EnumWithRepr_cast_to_repr (x). diff --git a/test-harness/src/snapshots/toolchain__guards into-coq.snap b/test-harness/src/snapshots/toolchain__guards into-coq.snap index 0447a2aba..979292c75 100644 --- a/test-harness/src/snapshots/toolchain__guards into-coq.snap +++ b/test-harness/src/snapshots/toolchain__guards into-coq.snap @@ -44,27 +44,27 @@ From Core Require Import Core. (* NotImplementedYet *) -Definition if_let_guard (x : t_Option ((t_Result ((t_i32)) ((t_i32))))) : t_i32 := +Definition if_let_guard (x : core.option.t_Option ((core.result.t_Result ((t_i32)) ((t_i32))))) : t_i32 := match x with - | Option_None => + | core.option.Option_None => (0 : t_i32) | _ => match match x with - | Option_Some (v) => + | core.option.Option_Some (v) => match v with - | Result_Ok (y) => - Option_Some (y) + | core.result.Result_Ok (y) => + core.option.Option_Some (y) | _ => - Option_None + core.option.Option_None end | _ => - Option_None + core.option.Option_None end with - | Option_Some (x) => + | core.option.Option_Some (x) => x - | Option_None => + | core.option.Option_None => match x with - | Option_Some (Result_Err (y)) => + | core.option.Option_Some (core.result.Result_Err (y)) => y | _ => (1 : t_i32) @@ -72,27 +72,27 @@ Definition if_let_guard (x : t_Option ((t_Result ((t_i32)) ((t_i32))))) : t_i32 end end. -Definition equivalent (x : t_Option ((t_Result ((t_i32)) ((t_i32))))) : t_i32 := +Definition equivalent (x : core.option.t_Option ((core.result.t_Result ((t_i32)) ((t_i32))))) : t_i32 := match x with - | Option_None => + | core.option.Option_None => (0 : t_i32) | _ => match match x with - | Option_Some (v) => + | core.option.Option_Some (v) => match v with - | Result_Ok (y) => - Option_Some (y) + | core.result.Result_Ok (y) => + core.option.Option_Some (y) | _ => - Option_None + core.option.Option_None end | _ => - Option_None + core.option.Option_None end with - | Option_Some (y) => + | core.option.Option_Some (y) => y - | Option_None => + | core.option.Option_None => match x with - | Option_Some (Result_Err (y)) => + | core.option.Option_Some (core.result.Result_Err (y)) => y | _ => (1 : t_i32) @@ -100,41 +100,41 @@ Definition equivalent (x : t_Option ((t_Result ((t_i32)) ((t_i32))))) : t_i32 := end end. -Definition multiple_guards (x : t_Option ((t_Result ((t_i32)) ((t_i32))))) : t_i32 := +Definition multiple_guards (x : core.option.t_Option ((core.result.t_Result ((t_i32)) ((t_i32))))) : t_i32 := match x with - | Option_None => + | core.option.Option_None => (0 : t_i32) | _ => match match x with - | Option_Some (Result_Ok (v)) => - match Option_Some (f_add (v) ((1 : t_i32))) with - | Option_Some (1) => - Option_Some ((0 : t_i32)) + | core.option.Option_Some (core.result.Result_Ok (v)) => + match core.option.Option_Some (core.ops.arith.Add__f_add (v) ((1 : t_i32))) with + | core.option.Option_Some (1) => + core.option.Option_Some ((0 : t_i32)) | _ => - Option_None + core.option.Option_None end | _ => - Option_None + core.option.Option_None end with - | Option_Some (x) => + | core.option.Option_Some (x) => x - | Option_None => + | core.option.Option_None => match match x with - | Option_Some (v) => + | core.option.Option_Some (v) => match v with - | Result_Ok (y) => - Option_Some (y) + | core.result.Result_Ok (y) => + core.option.Option_Some (y) | _ => - Option_None + core.option.Option_None end | _ => - Option_None + core.option.Option_None end with - | Option_Some (x) => + | core.option.Option_Some (x) => x - | Option_None => + | core.option.Option_None => match x with - | Option_Some (Result_Err (y)) => + | core.option.Option_Some (core.result.Result_Err (y)) => y | _ => (1 : t_i32) @@ -143,21 +143,21 @@ Definition multiple_guards (x : t_Option ((t_Result ((t_i32)) ((t_i32))))) : t_i end end. -Definition if_guard (x : t_Option ((t_i32))) : t_i32 := +Definition if_guard (x : core.option.t_Option ((t_i32))) : t_i32 := match match x with - | Option_Some (v) => - match f_gt (v) ((0 : t_i32)) with + | core.option.Option_Some (v) => + match core.cmp.PartialOrd__f_gt (v) ((0 : t_i32)) with | true => - Option_Some (v) + core.option.Option_Some (v) | _ => - Option_None + core.option.Option_None end | _ => - Option_None + core.option.Option_None end with - | Option_Some (x) => + | core.option.Option_Some (x) => x - | Option_None => + | core.option.Option_None => (0 : t_i32) end. ''' diff --git a/test-harness/src/snapshots/toolchain__include-flag into-coq.snap b/test-harness/src/snapshots/toolchain__include-flag into-coq.snap index 5141fc166..bf4276672 100644 --- a/test-harness/src/snapshots/toolchain__include-flag into-coq.snap +++ b/test-harness/src/snapshots/toolchain__include-flag into-coq.snap @@ -44,12 +44,12 @@ From Core Require Import Core. (* NotImplementedYet *) -Record Foo_record : Type := +Record Foo_Foo_record : Type := { }. #[export] -Notation "'Foo_Foo_record'" := Build_Foo_record. +Notation "'Foo_Foo_record'" := Build_Foo_Foo_record. Class t_Trait (v_Self : Type) : Type := { @@ -106,7 +106,7 @@ Definition main_c '(_ : unit) : unit := tt. Definition main '(_ : unit) : unit := - let _ := main_a (Foo) in + let _ := main_a (Foo_Foo) in let _ := main_b (tt) in let _ := main_c (tt) in tt. diff --git a/test-harness/src/snapshots/toolchain__interface-only into-fstar.snap b/test-harness/src/snapshots/toolchain__interface-only into-fstar.snap index 7d30bbb68..0652c9213 100644 --- a/test-harness/src/snapshots/toolchain__interface-only into-fstar.snap +++ b/test-harness/src/snapshots/toolchain__interface-only into-fstar.snap @@ -71,10 +71,10 @@ unfold let impl_1 = impl_1' assume -val f_from__impl_1__from': u8 -> t_Bar +val impl_1__f_from__from': u8 -> t_Bar unfold -let f_from__impl_1__from = f_from__impl_1__from' +let impl_1__f_from__from = impl_1__f_from__from' type t_Holder (v_T: Type0) = { f_value:Alloc.Vec.t_Vec v_T Alloc.Alloc.t_Global } diff --git a/test-harness/src/snapshots/toolchain__let-else into-coq.snap b/test-harness/src/snapshots/toolchain__let-else into-coq.snap index 953684014..01818416e 100644 --- a/test-harness/src/snapshots/toolchain__let-else into-coq.snap +++ b/test-harness/src/snapshots/toolchain__let-else into-coq.snap @@ -44,22 +44,22 @@ From Core Require Import Core. (* NotImplementedYet *) -Definition let_else (opt : t_Option ((t_u32))) : bool := - run (match opt with - | Option_Some (x) => - ControlFlow_Continue ((true : bool)) +Definition let_else (opt : core.option.t_Option ((t_u32))) : bool := + rust_primitives.hax.control_flow_monad.mexception.run (match opt with + | core.option.Option_Some (x) => + core.ops.control_flow.ControlFlow_Continue ((true : bool)) | _ => - ControlFlow_Break ((false : bool)) + core.ops.control_flow.ControlFlow_Break ((false : bool)) end). -Definition let_else_different_type (opt : t_Option ((t_u32))) : bool := - run (let hoist1 := match opt with - | Option_Some (x) => - ControlFlow_Continue (Option_Some (f_add (x) ((1 : t_u32)))) +Definition let_else_different_type (opt : core.option.t_Option ((t_u32))) : bool := + rust_primitives.hax.control_flow_monad.mexception.run (let hoist1 := match opt with + | core.option.Option_Some (x) => + core.ops.control_flow.ControlFlow_Continue (core.option.Option_Some (core.ops.arith.Add__f_add (x) ((1 : t_u32)))) | _ => - ControlFlow_Break ((false : bool)) + core.ops.control_flow.ControlFlow_Break ((false : bool)) end in - ControlFlow_Continue (let_else (hoist1))). + core.ops.control_flow.ControlFlow_Continue (let_else (hoist1))). ''' _CoqProject = ''' -R ./ TODO diff --git a/test-harness/src/snapshots/toolchain__literals into-coq.snap b/test-harness/src/snapshots/toolchain__literals into-coq.snap index 640f68231..91f9b04de 100644 --- a/test-harness/src/snapshots/toolchain__literals into-coq.snap +++ b/test-harness/src/snapshots/toolchain__literals into-coq.snap @@ -47,49 +47,49 @@ From Core Require Import Core. -Definition math_integers (x : t_Int) `{andb (f_gt (x) (impl_Int__e_unsafe_from_str (("0"%string : string)))) (f_lt (x) (impl_Int__e_unsafe_from_str (("16"%string : string)))) = true} : t_u8 := - let _ : t_Int := f_lift ((3 : t_usize)) in - let e_neg_dec := impl_Int__e_unsafe_from_str (("-340282366920938463463374607431768211455000"%string : string)) in - let e_pos_dec := impl_Int__e_unsafe_from_str (("340282366920938463463374607431768211455000"%string : string)) in - let e_neg_hex := impl_Int__e_unsafe_from_str (("-340282366920938463463374607431768211455000"%string : string)) in - let e_pos_hex := impl_Int__e_unsafe_from_str (("340282366920938463463374607431768211455000"%string : string)) in - let e_neg_octal := impl_Int__e_unsafe_from_str (("-340282366920938463463374607431768211455000"%string : string)) in - let e_pos_octal := impl_Int__e_unsafe_from_str (("340282366920938463463374607431768211455000"%string : string)) in - let e_neg_bin := impl_Int__e_unsafe_from_str (("-340282366920938463463374607431768211455000"%string : string)) in - let e_pos_bin := impl_Int__e_unsafe_from_str (("340282366920938463463374607431768211455000"%string : string)) in - let _ := f_gt (impl_Int__e_unsafe_from_str (("-340282366920938463463374607431768211455000"%string : string))) (impl_Int__e_unsafe_from_str (("340282366920938463463374607431768211455000"%string : string))) in - let _ := f_lt (x) (x) in - let _ := f_ge (x) (x) in - let _ := f_le (x) (x) in - let _ := f_ne (x) (x) in - let _ := f_eq (x) (x) in - let _ := f_add (x) (x) in - let _ := f_sub (x) (x) in - let _ := f_mul (x) (x) in - let _ := f_div (x) (x) in - let _ : t_i16 := impl_Int__to_i16 (x) in - let _ : t_i32 := impl_Int__to_i32 (x) in - let _ : t_i64 := impl_Int__to_i64 (x) in - let _ : t_i128 := impl_Int__to_i128 (x) in - let _ : t_isize := impl_Int__to_isize (x) in - let _ : t_u16 := impl_Int__to_u16 (x) in - let _ : t_u32 := impl_Int__to_u32 (x) in - let _ : t_u64 := impl_Int__to_u64 (x) in - let _ : t_u128 := impl_Int__to_u128 (x) in - let _ : t_usize := impl_Int__to_usize (x) in - impl_Int__to_u8 (f_add (x) (f_mul (x) (x))). +Definition math_integers (x : hax_lib.int.t_Int) `{andb (core.cmp.PartialOrd__f_gt (x) (hax_lib.int.impl_Int__e_unsafe_from_str (("0"%string : string)))) (core.cmp.PartialOrd__f_lt (x) (hax_lib.int.impl_Int__e_unsafe_from_str (("16"%string : string)))) = true} : t_u8 := + let _ : hax_lib.int.t_Int := hax_lib.abstraction.Abstraction__f_lift ((3 : t_usize)) in + let e_neg_dec := hax_lib.int.impl_Int__e_unsafe_from_str (("-340282366920938463463374607431768211455000"%string : string)) in + let e_pos_dec := hax_lib.int.impl_Int__e_unsafe_from_str (("340282366920938463463374607431768211455000"%string : string)) in + let e_neg_hex := hax_lib.int.impl_Int__e_unsafe_from_str (("-340282366920938463463374607431768211455000"%string : string)) in + let e_pos_hex := hax_lib.int.impl_Int__e_unsafe_from_str (("340282366920938463463374607431768211455000"%string : string)) in + let e_neg_octal := hax_lib.int.impl_Int__e_unsafe_from_str (("-340282366920938463463374607431768211455000"%string : string)) in + let e_pos_octal := hax_lib.int.impl_Int__e_unsafe_from_str (("340282366920938463463374607431768211455000"%string : string)) in + let e_neg_bin := hax_lib.int.impl_Int__e_unsafe_from_str (("-340282366920938463463374607431768211455000"%string : string)) in + let e_pos_bin := hax_lib.int.impl_Int__e_unsafe_from_str (("340282366920938463463374607431768211455000"%string : string)) in + let _ := core.cmp.PartialOrd__f_gt (hax_lib.int.impl_Int__e_unsafe_from_str (("-340282366920938463463374607431768211455000"%string : string))) (hax_lib.int.impl_Int__e_unsafe_from_str (("340282366920938463463374607431768211455000"%string : string))) in + let _ := core.cmp.PartialOrd__f_lt (x) (x) in + let _ := core.cmp.PartialOrd__f_ge (x) (x) in + let _ := core.cmp.PartialOrd__f_le (x) (x) in + let _ := core.cmp.PartialEq__f_ne (x) (x) in + let _ := core.cmp.PartialEq__f_eq (x) (x) in + let _ := core.ops.arith.Add__f_add (x) (x) in + let _ := core.ops.arith.Sub__f_sub (x) (x) in + let _ := core.ops.arith.Mul__f_mul (x) (x) in + let _ := core.ops.arith.Div__f_div (x) (x) in + let _ : t_i16 := hax_lib.int.impl_Int__to_i16 (x) in + let _ : t_i32 := hax_lib.int.impl_Int__to_i32 (x) in + let _ : t_i64 := hax_lib.int.impl_Int__to_i64 (x) in + let _ : t_i128 := hax_lib.int.impl_Int__to_i128 (x) in + let _ : t_isize := hax_lib.int.impl_Int__to_isize (x) in + let _ : t_u16 := hax_lib.int.impl_Int__to_u16 (x) in + let _ : t_u32 := hax_lib.int.impl_Int__to_u32 (x) in + let _ : t_u64 := hax_lib.int.impl_Int__to_u64 (x) in + let _ : t_u128 := hax_lib.int.impl_Int__to_u128 (x) in + let _ : t_usize := hax_lib.int.impl_Int__to_usize (x) in + hax_lib.int.impl_Int__to_u8 (core.ops.arith.Add__f_add (x) (core.ops.arith.Mul__f_mul (x) (x))). Definition panic_with_msg '(_ : unit) : unit := - never_to_any (panic_fmt (impl_1__new_const ([("with msg"%string : string)]))). + rust_primitives.hax.never_to_any (core.panicking.panic_fmt (core.fmt.rt.impl_1__new_const ([("with msg"%string : string)]))). -Record Foo_record : Type := +Record Foo_Foo_record : Type := { - Foo_f_field : t_u8; + Foo_Foo_f_Foo_field : t_u8; }. -#[export] Instance settable_Foo_record : Settable _ := - settable! (Build_Foo_record) . +#[export] Instance settable_Foo_Foo_record : Settable _ := + settable! (Build_Foo_Foo_record) . @@ -98,7 +98,7 @@ Record Foo_record : Type := Definition v_CONSTANT : t_Foo := - Foo ((3 : t_u8)). + Foo_Foo ((3 : t_u8)). Definition numeric '(_ : unit) : unit := let _ : t_usize := (123 : t_usize) in @@ -121,8 +121,8 @@ Definition patterns '(_ : unit) : unit := | _ => tt end in - let _ := match Foo ((4 : t_u8)) with - | Foo (3) => + let _ := match Foo_Foo ((4 : t_u8)) with + | Foo_Foo (3) => tt | _ => tt @@ -130,18 +130,18 @@ Definition patterns '(_ : unit) : unit := tt. Definition casts (x8 : t_u8) (x16 : t_u16) (x32 : t_u32) (x64 : t_u64) (xs : t_usize) : unit := - let _ : t_u64 := f_add (f_add (f_add (f_add (cast (x8)) (cast (x16))) (cast (x32))) (x64)) (cast (xs)) in - let _ : t_u32 := f_add (f_add (f_add (f_add (cast (x8)) (cast (x16))) (x32)) (cast (x64))) (cast (xs)) in - let _ : t_u16 := f_add (f_add (f_add (f_add (cast (x8)) (x16)) (cast (x32))) (cast (x64))) (cast (xs)) in - let _ : t_u8 := f_add (f_add (f_add (f_add (x8) (cast (x16))) (cast (x32))) (cast (x64))) (cast (xs)) in - let _ : t_i64 := f_add (f_add (f_add (f_add (cast (x8)) (cast (x16))) (cast (x32))) (cast (x64))) (cast (xs)) in - let _ : t_i32 := f_add (f_add (f_add (f_add (cast (x8)) (cast (x16))) (cast (x32))) (cast (x64))) (cast (xs)) in - let _ : t_i16 := f_add (f_add (f_add (f_add (cast (x8)) (cast (x16))) (cast (x32))) (cast (x64))) (cast (xs)) in - let _ : t_i8 := f_add (f_add (f_add (f_add (cast (x8)) (cast (x16))) (cast (x32))) (cast (x64))) (cast (xs)) in + let _ : t_u64 := core.ops.arith.Add__f_add (core.ops.arith.Add__f_add (core.ops.arith.Add__f_add (core.ops.arith.Add__f_add (cast (x8)) (cast (x16))) (cast (x32))) (x64)) (cast (xs)) in + let _ : t_u32 := core.ops.arith.Add__f_add (core.ops.arith.Add__f_add (core.ops.arith.Add__f_add (core.ops.arith.Add__f_add (cast (x8)) (cast (x16))) (x32)) (cast (x64))) (cast (xs)) in + let _ : t_u16 := core.ops.arith.Add__f_add (core.ops.arith.Add__f_add (core.ops.arith.Add__f_add (core.ops.arith.Add__f_add (cast (x8)) (x16)) (cast (x32))) (cast (x64))) (cast (xs)) in + let _ : t_u8 := core.ops.arith.Add__f_add (core.ops.arith.Add__f_add (core.ops.arith.Add__f_add (core.ops.arith.Add__f_add (x8) (cast (x16))) (cast (x32))) (cast (x64))) (cast (xs)) in + let _ : t_i64 := core.ops.arith.Add__f_add (core.ops.arith.Add__f_add (core.ops.arith.Add__f_add (core.ops.arith.Add__f_add (cast (x8)) (cast (x16))) (cast (x32))) (cast (x64))) (cast (xs)) in + let _ : t_i32 := core.ops.arith.Add__f_add (core.ops.arith.Add__f_add (core.ops.arith.Add__f_add (core.ops.arith.Add__f_add (cast (x8)) (cast (x16))) (cast (x32))) (cast (x64))) (cast (xs)) in + let _ : t_i16 := core.ops.arith.Add__f_add (core.ops.arith.Add__f_add (core.ops.arith.Add__f_add (core.ops.arith.Add__f_add (cast (x8)) (cast (x16))) (cast (x32))) (cast (x64))) (cast (xs)) in + let _ : t_i8 := core.ops.arith.Add__f_add (core.ops.arith.Add__f_add (core.ops.arith.Add__f_add (core.ops.arith.Add__f_add (cast (x8)) (cast (x16))) (cast (x32))) (cast (x64))) (cast (xs)) in tt. Definition empty_array '(_ : unit) : unit := - let _ : t_Slice t_u8 := unsize ([]) in + let _ : t_Slice t_u8 := rust_primitives.unsize ([]) in tt. Definition fn_pointer_cast '(_ : unit) : unit := diff --git a/test-harness/src/snapshots/toolchain__naming into-fstar.snap b/test-harness/src/snapshots/toolchain__naming into-fstar.snap index caea26458..a0862ebc0 100644 --- a/test-harness/src/snapshots/toolchain__naming into-fstar.snap +++ b/test-harness/src/snapshots/toolchain__naming into-fstar.snap @@ -89,7 +89,7 @@ open FStar.Mul type t_A = | A : t_A -let f_eq__impl__panic_cold_explicit (_: Prims.unit) : Rust_primitives.Hax.t_Never = +let impl__f_eq__panic_cold_explicit (_: Prims.unit) : Rust_primitives.Hax.t_Never = Core.Panicking.panic_explicit () [@@ FStar.Tactics.Typeclasses.tcinstance] @@ -100,14 +100,14 @@ let impl: Core.Cmp.t_PartialEq t_A t_A = f_eq = fun (self: t_A) (other: t_A) -> - Rust_primitives.Hax.never_to_any (f_eq__impl__panic_cold_explicit () + Rust_primitives.Hax.never_to_any (impl__f_eq__panic_cold_explicit () <: Rust_primitives.Hax.t_Never) } type t_B = | B : t_B -let f_eq__impl_1__panic_cold_explicit (_: Prims.unit) : Rust_primitives.Hax.t_Never = +let impl_1__f_eq__panic_cold_explicit (_: Prims.unit) : Rust_primitives.Hax.t_Never = Core.Panicking.panic_explicit () [@@ FStar.Tactics.Typeclasses.tcinstance] @@ -118,7 +118,7 @@ let impl_1: Core.Cmp.t_PartialEq t_B t_B = f_eq = fun (self: t_B) (other: t_B) -> - Rust_primitives.Hax.never_to_any (f_eq__impl_1__panic_cold_explicit () + Rust_primitives.Hax.never_to_any (impl_1__f_eq__panic_cold_explicit () <: Rust_primitives.Hax.t_Never) } diff --git a/test-harness/src/snapshots/toolchain__pattern-or into-coq.snap b/test-harness/src/snapshots/toolchain__pattern-or into-coq.snap index 308d9871e..c1a0451b9 100644 --- a/test-harness/src/snapshots/toolchain__pattern-or into-coq.snap +++ b/test-harness/src/snapshots/toolchain__pattern-or into-coq.snap @@ -66,47 +66,47 @@ Definition bar (x : t_E) : unit := tt end. -Definition nested (x : t_Option ((t_i32))) : t_i32 := +Definition nested (x : core.option.t_Option ((t_i32))) : t_i32 := match x with - | Option_Some (1 + | core.option.Option_Some (1 | 2) => (1 : t_i32) - | Option_Some (x) => + | core.option.Option_Some (x) => x - | Option_None => + | core.option.Option_None => (0 : t_i32) end. -Definition deep (x : (t_i32*t_Option ((t_i32)))) : t_i32 := +Definition deep (x : (t_i32*core.option.t_Option ((t_i32)))) : t_i32 := match x with | (1 - | 2,Option_Some (3 + | 2,core.option.Option_Some (3 | 4)) => (0 : t_i32) | (x,_) => x end. -Definition equivalent (x : (t_i32*t_Option ((t_i32)))) : t_i32 := +Definition equivalent (x : (t_i32*core.option.t_Option ((t_i32)))) : t_i32 := match x with - | (1,Option_Some (3)) - | (1,Option_Some (4)) - | (2,Option_Some (3)) - | (2,Option_Some (4)) => + | (1,core.option.Option_Some (3)) + | (1,core.option.Option_Some (4)) + | (2,core.option.Option_Some (3)) + | (2,core.option.Option_Some (4)) => (0 : t_i32) | (x,_) => x end. -Definition deep_capture (x : t_Result (((t_i32*t_i32))) (((t_i32*t_i32)))) : t_i32 := +Definition deep_capture (x : core.result.t_Result (((t_i32*t_i32))) (((t_i32*t_i32)))) : t_i32 := match x with - | Result_Ok ((1 + | core.result.Result_Ok ((1 | 2,x)) - | Result_Err ((3 + | core.result.Result_Err ((3 | 4,x)) => x - | Result_Ok ((x,_)) - | Result_Err ((x,_)) => + | core.result.Result_Ok ((x,_)) + | core.result.Result_Err ((x,_)) => x end. ''' diff --git a/test-harness/src/snapshots/toolchain__reordering into-coq.snap b/test-harness/src/snapshots/toolchain__reordering into-coq.snap index fc61dd7b5..01db5159b 100644 --- a/test-harness/src/snapshots/toolchain__reordering into-coq.snap +++ b/test-harness/src/snapshots/toolchain__reordering into-coq.snap @@ -59,18 +59,18 @@ Inductive t_Foo : Type := Definition f '(_ : t_u32) : t_Foo := Foo_A. -Record Bar_record : Type := +Record Bar_Bar_record : Type := { - Bar_0 : t_Foo; + Bar_Bar_0 : t_Foo; }. -#[export] Instance settable_Bar_record : Settable _ := - settable! (Build_Bar_record) . -Notation "'Bar_Bar_record'" := Build_Bar_record. +#[export] Instance settable_Bar_Bar_record : Settable _ := + settable! (Build_Bar_Bar_record) . +Notation "'Bar_Bar_record'" := Build_Bar_Bar_record. Definition g '(_ : unit) : t_Bar := - Bar (f ((32 : t_u32))). + Bar_Bar (f ((32 : t_u32))). Definition t_Foo_cast_to_repr (x : t_Foo) : t_isize := match x with diff --git a/test-harness/src/snapshots/toolchain__slices into-coq.snap b/test-harness/src/snapshots/toolchain__slices into-coq.snap index 86547bc10..17c074154 100644 --- a/test-harness/src/snapshots/toolchain__slices into-coq.snap +++ b/test-harness/src/snapshots/toolchain__slices into-coq.snap @@ -46,7 +46,7 @@ From Core Require Import Core. (* NotImplementedYet *) Definition v_VERSION : t_Slice t_u8 := - unsize ([(118 : t_u8); (49 : t_u8)]). + rust_primitives.unsize ([(118 : t_u8); (49 : t_u8)]). Definition do_something '(_ : t_Slice t_u8) : unit := tt. @@ -55,7 +55,7 @@ Definition r#unsized '(_ : t_Array (t_Slice t_u8) ((1 : t_usize))) : unit := tt. Definition sized (x : t_Array (t_Array (t_u8) ((4 : t_usize))) ((1 : t_usize))) : unit := - r#unsized ([unsize (f_index (x) ((0 : t_usize)))]). + r#unsized ([rust_primitives.unsize (core.ops.index.Index__f_index (x) ((0 : t_usize)))]). ''' _CoqProject = ''' -R ./ TODO