Commit 96f69b5e authored by Stefan Berghofer's avatar Stefan Berghofer Committed by Sylvain Dailler
Browse files

Improved checking of realizations for Isabelle

Rather than using pre-generated files, the *.xml files describing the
Why3 theories to be realized are generated again before compiling the
corresponding Isabelle theories. Instead of the generated *.xml files,
we use a file containing their hash values to detect changes in the
realizations. Since there may be different realizations for different
versions of Isabelle, we provide a file with hash values for every
supported version of Isabelle. The files containing the hash values
can be updated via the update-isabelle target.

(cherry picked from commit 039e0f0a321c36ea3bea231e4376f5833cd2ad8a)
parent cba18b81
......@@ -126,7 +126,7 @@ TOTARGET = > "$@" || (RV=$$?; rm -f "$@"; exit $${RV})
# Variables added for checking realizations
GENERATED_PREFIX_COQ="lib/coq"
GENERATED_PREFIX_ISABELLE="lib/isabelle"
GENERATED_PREFIX_ISABELLE=lib/isabelle
###############
# main target
......@@ -1283,28 +1283,30 @@ clean::
rm -f $(ISABELLEVERSIONSPECIFICTARGETS)
ISABELLELIBS_INT_FILES = Abs ComputerDivision Div2 EuclideanDivision Int MinMax Power
ISABELLELIBS_INT = $(addsuffix .xml, $(addprefix lib/isabelle/int/, $(ISABELLELIBS_INT_FILES)))
ISABELLELIBS_INT = $(addsuffix .xml, $(addprefix $(GENERATED_PREFIX_ISABELLE)/int/, $(ISABELLELIBS_INT_FILES)))
ISABELLELIBS_BOOL_FILES = Bool
ISABELLELIBS_BOOL = $(addsuffix .xml, $(addprefix lib/isabelle/bool/, $(ISABELLELIBS_BOOL_FILES)))
ISABELLELIBS_BOOL = $(addsuffix .xml, $(addprefix $(GENERATED_PREFIX_ISABELLE)/bool/, $(ISABELLELIBS_BOOL_FILES)))
ISABELLELIBS_REAL_FILES = Real RealInfix Abs MinMax FromInt Truncate Square ExpLog Trigonometry PowerInt # not yet realized : PowerReal Hyperbolic Polar
ISABELLELIBS_REAL = $(addsuffix .xml, $(addprefix lib/isabelle/real/, $(ISABELLELIBS_REAL_FILES)))
ISABELLELIBS_REAL = $(addsuffix .xml, $(addprefix $(GENERATED_PREFIX_ISABELLE)/real/, $(ISABELLELIBS_REAL_FILES)))
ISABELLELIBS_NUMBER_FILES = Divisibility Gcd Parity Prime Coprime
ISABELLELIBS_NUMBER = $(addsuffix .xml, $(addprefix lib/isabelle/number/, $(ISABELLELIBS_NUMBER_FILES)))
ISABELLELIBS_NUMBER = $(addsuffix .xml, $(addprefix $(GENERATED_PREFIX_ISABELLE)/number/, $(ISABELLELIBS_NUMBER_FILES)))
ISABELLELIBS_SET_FILES = Set Fset
ISABELLELIBS_SET = $(addsuffix .xml, $(addprefix lib/isabelle/set/, $(ISABELLELIBS_SET_FILES)))
ISABELLELIBS_SET = $(addsuffix .xml, $(addprefix $(GENERATED_PREFIX_ISABELLE)/set/, $(ISABELLELIBS_SET_FILES)))
ISABELLELIBS_MAP_FILES = Map Const Occ MapPermut MapInjection
ISABELLELIBS_MAP = $(addsuffix .xml, $(addprefix lib/isabelle/map/, $(ISABELLELIBS_MAP_FILES)))
ISABELLELIBS_MAP = $(addsuffix .xml, $(addprefix $(GENERATED_PREFIX_ISABELLE)/map/, $(ISABELLELIBS_MAP_FILES)))
ISABELLELIBS_LIST_FILES = List Length Mem Nth NthNoOpt NthLength HdTl NthHdTl Append NthLengthAppend Reverse HdTlNoOpt RevAppend Combine Distinct NumOcc Permut
ISABELLELIBS_LIST = $(addsuffix .xml, $(addprefix lib/isabelle/list/, $(ISABELLELIBS_LIST_FILES)))
ISABELLELIBS_LIST = $(addsuffix .xml, $(addprefix $(GENERATED_PREFIX_ISABELLE)/list/, $(ISABELLELIBS_LIST_FILES)))
ISABELLELIBS_BV_FILES = Pow2int BV8 BV16 BV32 BV64 BVConverter_32_64 BVConverter_16_64 BVConverter_8_64 BVConverter_16_32 BVConverter_8_32 BVConverter_8_16
ISABELLELIBS_BV = $(addsuffix .xml, $(addprefix lib/isabelle/bv/, $(ISABELLELIBS_BV_FILES)))
ISABELLELIBS_BV = $(addsuffix .xml, $(addprefix $(GENERATED_PREFIX_ISABELLE)/bv/, $(ISABELLELIBS_BV_FILES)))
ISABELLELIBS = $(ISABELLELIBS_INT) $(ISABELLELIBS_BOOL) $(ISABELLELIBS_REAL) $(ISABELLELIBS_NUMBER) $(ISABELLELIBS_SET) $(ISABELLELIBS_MAP) $(ISABELLELIBS_LIST) $(ISABELLELIBS_OPTION) $(ISABELLELIBS_BV)
drivers/isabelle-realizations.aux: Makefile
$(SHOW) 'Generate $@'
......@@ -1336,7 +1338,10 @@ else
ISABELLE_TARGET_DIR=$(LIBDIR)/why3/isabelle
endif
update-isabelle: $(ISABELLELIBS_INT) $(ISABELLELIBS_BOOL) $(ISABELLELIBS_REAL) $(ISABELLELIBS_NUMBER) $(ISABELLELIBS_SET) $(ISABELLELIBS_MAP) $(ISABELLELIBS_LIST) $(ISABELLELIBS_OPTION) $(ISABELLELIBS_BV)
$(GENERATED_PREFIX_ISABELLE)/realizations.@ISABELLEVERSION@: $(ISABELLELIBS)
$(HIDE)sha1sum $^ | sed -e "s,$(GENERATED_PREFIX_ISABELLE)/,," > $@
update-isabelle: $(GENERATED_PREFIX_ISABELLE)/realizations.@ISABELLEVERSION@
$(ISABELLELIBS_INT): bin/why3realize.@OCAMLBEST@ drivers/isabelle-realizations.aux \
$(ISABELLEREALIZEDRV) drivers/isabelle-common.gen theories/int.why
......@@ -1392,11 +1397,9 @@ $(ISABELLELIBS_BV): bin/why3realize.@OCAMLBEST@ drivers/isabelle-realizations.au
$(HIDE)mkdir -p $(GENERATED_PREFIX_ISABELLE)/bv
$(HIDE)WHY3CONFIG="" bin/why3realize.@OCAMLBEST@ -L theories -D $(ISABELLEREALIZEDRV) -T bv.$(notdir $(basename $@)) -o $(GENERATED_PREFIX_ISABELLE)/bv/
$(GENERATED_PREFIX_ISABELLE)/last_build: $(ISABELLEVERSIONSPECIFICTARGETS)
# $(ISABELLELIBS_INT) $(ISABELLELIBS_BOOL) $(ISABELLELIBS_REAL) $(ISABELLELIBS_NUMBER) $(ISABELLELIBS_SET) $(ISABELLELIBS_MAP) $(ISABELLELIBS_LIST) $(ISABELLELIBS_OPTION) $(ISABELLELIBS_BV)
ifeq (@enable_isabelle_libs@,yes)
$(GENERATED_PREFIX_ISABELLE)/last_build: $(ISABELLEVERSIONSPECIFICTARGETS) $(ISABELLELIBS)
ifneq (@enable_local@,yes)
cp -r $(GENERATED_PREFIX_ISABELLE) "$(LIBDIR)/why3"
endif
......@@ -1410,41 +1413,20 @@ endif
echo " [$(ISABELLE_TARGET_DIR)]"; \
fi)
install_no_local::
$(INSTALL_DATA) drivers/isabelle-realizations.aux $(DATADIR)/why3/drivers/
install_no_local:: $(GENERATED_PREFIX_ISABELLE)/last_build
install_local:: $(GENERATED_PREFIX_ISABELLE)/last_build
clean::
rm -f $(GENERATED_PREFIX_ISABELLE)/*/*.xml
# do not update isabelle realizations systematically
# all: update-isabelle
# Removed cleaning of xml
#clean::
# rm -f $(GENERATED_PREFIX_ISABELLE)/*/*.xml
endif
else
all: drivers/isabelle-realizations.aux
install_no_local::
$(INSTALL_DATA) drivers/isabelle-realizations.aux $(DATADIR)/why3/drivers/
install_no_local:: $(GENERATED_PREFIX_ISABELLE)/last_build
install_local:: $(GENERATED_PREFIX_ISABELLE)/last_build
# do not update isabelle realizations systematically
# all: update-isabelle
# Removed cleaning of xml
#clean::
# rm -f $(GENERATED_PREFIX_ISABELLE)/*/*.xml
endif
all: drivers/isabelle-realizations.aux
clean::
rm -f drivers/isabelle-realizations.aux
......
......@@ -6,15 +6,13 @@ mkdir -p $TMPREAL/lib
res=0
echo "Testing Isabelle realizations"
# First copy current realizations in a tmp directory
cp -r lib/isabelle $TMPREAL/lib/
# We want to use the makefile to be sure to check exhaustively the
# realizations that are built
make GENERATED_PREFIX_ISABELLE="$TMPREAL/lib/isabelle" update-isabelle > /dev/null 2> /dev/null
LANG=C diff -r -q -x '*.bak' -x '*~' -x '*.aux' lib/isabelle $TMPREAL/lib/isabelle > $TMPREAL/diff-isabelle
LANG=C diff lib/isabelle $TMPREAL/lib/isabelle/realizations.* > $TMPREAL/diff-isabelle
if test -s "$TMPREAL/diff-isabelle"; then
echo "Isabelle realizations FAILED, please regenerate and prove them"
sed -e "s,$TMPREAL/lib/isabelle,new," $TMPREAL/diff-isabelle
cat $TMPREAL/diff-isabelle
res=1
else
echo "Isabelle realizations OK"
......
<theory name="bool.Bool" realize="true"><realized><require name="why3.BuiltIn.BuiltIn"/></realized><lemma name="andb_def"><prems/><concls><app><const name="HOL.eq"/><app><const name="HOL.conj"/><var name="x"><type name="HOL.bool"/></var><var name="y"><type name="HOL.bool"/></var></app><case><var name="x"><type name="HOL.bool"/></var><pat><const name="HOL.True"/><var name="y"><type name="HOL.bool"/></var></pat><pat><const name="HOL.False"/><const name="HOL.False"/></pat></case></app></concls></lemma><lemma name="orb_def"><prems/><concls><app><const name="HOL.eq"/><app><const name="HOL.disj"/><var name="x"><type name="HOL.bool"/></var><var name="y"><type name="HOL.bool"/></var></app><case><var name="x"><type name="HOL.bool"/></var><pat><const name="HOL.False"/><var name="y"><type name="HOL.bool"/></var></pat><pat><const name="HOL.True"/><const name="HOL.True"/></pat></case></app></concls></lemma><lemma name="notb_def"><prems/><concls><app><const name="HOL.eq"/><app><const name="HOL.Not"/><var name="x"><type name="HOL.bool"/></var></app><case><var name="x"><type name="HOL.bool"/></var><pat><const name="HOL.False"/><const name="HOL.True"/></pat><pat><const name="HOL.True"/><const name="HOL.False"/></pat></case></app></concls></lemma><lemma name="xorb_def"><prems/><concls><app><const name="HOL.eq"/><app><const name="HOL.Not"/><app><const name="HOL.eq"/><var name="x"><type name="HOL.bool"/></var><var name="y"><type name="HOL.bool"/></var></app></app><case><var name="x"><type name="HOL.bool"/></var><pat><const name="HOL.False"/><var name="y"><type name="HOL.bool"/></var></pat><pat><const name="HOL.True"/><app><const name="HOL.Not"/><var name="y"><type name="HOL.bool"/></var></app></pat></case></app></concls></lemma><lemma name="implb_def"><prems/><concls><app><const name="HOL.eq"/><app><const name="HOL.implies"/><var name="x"><type name="HOL.bool"/></var><var name="y"><type name="HOL.bool"/></var></app><case><var name="x"><type name="HOL.bool"/></var><pat><const name="HOL.False"/><const name="HOL.True"/></pat><pat><const name="HOL.True"/><var name="y"><type name="HOL.bool"/></var></pat></case></app></concls></lemma></theory>
\ No newline at end of file
<theory name="bv.BV16" realize="true"><realized><require name="why3.BuiltIn.BuiltIn"/><require name="bool.Bool"/><require name="int.Int"/><require name="int.Abs"/><require name="int.EuclideanDivision"/><require name="bv.Pow2int"/></realized><typedecl name="t" altname="t" path="bv.BV16"><params/></typedecl><param name="tqtint" altname="t&#39;int" path="bv.BV16"><fun><type name="t" local="true"/><type name="Int.int"/></fun></param><param name="nth" altname="nth" path="bv.BV16"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></param><lemma name="nth_out_of_bound" altname="nth_out_of_bound" path="bv.BV16"><prems><app><const name="HOL.disj"/><app><const name="Orderings.ord_class.less"/><var name="n"><type name="Int.int"/></var><num val="0"><type name="Int.int"/></num></app><app><const name="Orderings.ord_class.less_eq"/><num val="16"><type name="Int.int"/></num><var name="n"><type name="Int.int"/></var></app></app></prems><concls><app><const name="HOL.eq"/><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><var name="x"><type name="t" local="true"/></var><var name="n"><type name="Int.int"/></var></app><const name="HOL.False"/></app></concls></lemma><param name="zeros" altname="zeros" path="bv.BV16"><type name="t" local="true"/></param><lemma name="Nth_zeros" altname="Nth_zeros" path="bv.BV16"><prems/><concls><app><const name="HOL.eq"/><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><const name="zeros" local="true"><type name="t" local="true"/></const><var name="n"><type name="Int.int"/></var></app><const name="HOL.False"/></app></concls></lemma><param name="one" altname="one" path="bv.BV16"><type name="t" local="true"/></param><param name="ones" altname="ones" path="bv.BV16"><type name="t" local="true"/></param><lemma name="Nth_ones" altname="Nth_ones" path="bv.BV16"><prems><app><const name="Orderings.ord_class.less_eq"/><num val="0"><type name="Int.int"/></num><var name="n"><type name="Int.int"/></var></app><app><const name="Orderings.ord_class.less"/><var name="n"><type name="Int.int"/></var><num val="16"><type name="Int.int"/></num></app></prems><concls><app><const name="HOL.eq"/><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><const name="ones" local="true"><type name="t" local="true"/></const><var name="n"><type name="Int.int"/></var></app><const name="HOL.True"/></app></concls></lemma><param name="bw_and" altname="bw_and" path="bv.BV16"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></param><lemma name="Nth_bw_and" altname="Nth_bw_and" path="bv.BV16"><prems><app><const name="Orderings.ord_class.less_eq"/><num val="0"><type name="Int.int"/></num><var name="n"><type name="Int.int"/></var></app><app><const name="Orderings.ord_class.less"/><var name="n"><type name="Int.int"/></var><num val="16"><type name="Int.int"/></num></app></prems><concls><app><const name="HOL.eq"/><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><app><const name="bw_and" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></const><var name="v1"><type name="t" local="true"/></var><var name="v2"><type name="t" local="true"/></var></app><var name="n"><type name="Int.int"/></var></app><app><const name="HOL.conj"/><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><var name="v1"><type name="t" local="true"/></var><var name="n"><type name="Int.int"/></var></app><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><var name="v2"><type name="t" local="true"/></var><var name="n"><type name="Int.int"/></var></app></app></app></concls></lemma><param name="bw_or" altname="bw_or" path="bv.BV16"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></param><lemma name="Nth_bw_or" altname="Nth_bw_or" path="bv.BV16"><prems><app><const name="Orderings.ord_class.less_eq"/><num val="0"><type name="Int.int"/></num><var name="n"><type name="Int.int"/></var></app><app><const name="Orderings.ord_class.less"/><var name="n"><type name="Int.int"/></var><num val="16"><type name="Int.int"/></num></app></prems><concls><app><const name="HOL.eq"/><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><app><const name="bw_or" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></const><var name="v1"><type name="t" local="true"/></var><var name="v2"><type name="t" local="true"/></var></app><var name="n"><type name="Int.int"/></var></app><app><const name="HOL.disj"/><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><var name="v1"><type name="t" local="true"/></var><var name="n"><type name="Int.int"/></var></app><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><var name="v2"><type name="t" local="true"/></var><var name="n"><type name="Int.int"/></var></app></app></app></concls></lemma><param name="bw_xor" altname="bw_xor" path="bv.BV16"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></param><lemma name="Nth_bw_xor" altname="Nth_bw_xor" path="bv.BV16"><prems><app><const name="Orderings.ord_class.less_eq"/><num val="0"><type name="Int.int"/></num><var name="n"><type name="Int.int"/></var></app><app><const name="Orderings.ord_class.less"/><var name="n"><type name="Int.int"/></var><num val="16"><type name="Int.int"/></num></app></prems><concls><app><const name="HOL.eq"/><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><app><const name="bw_xor" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></const><var name="v1"><type name="t" local="true"/></var><var name="v2"><type name="t" local="true"/></var></app><var name="n"><type name="Int.int"/></var></app><app><const name="HOL.Not"/><app><const name="HOL.eq"/><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><var name="v1"><type name="t" local="true"/></var><var name="n"><type name="Int.int"/></var></app><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><var name="v2"><type name="t" local="true"/></var><var name="n"><type name="Int.int"/></var></app></app></app></app></concls></lemma><param name="bw_not" altname="bw_not" path="bv.BV16"><fun><type name="t" local="true"/><type name="t" local="true"/></fun></param><lemma name="Nth_bw_not" altname="Nth_bw_not" path="bv.BV16"><prems><app><const name="Orderings.ord_class.less_eq"/><num val="0"><type name="Int.int"/></num><var name="n"><type name="Int.int"/></var></app><app><const name="Orderings.ord_class.less"/><var name="n"><type name="Int.int"/></var><num val="16"><type name="Int.int"/></num></app></prems><concls><app><const name="HOL.eq"/><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><app><const name="bw_not" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/></fun></const><var name="v"><type name="t" local="true"/></var></app><var name="n"><type name="Int.int"/></var></app><app><const name="HOL.Not"/><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><var name="v"><type name="t" local="true"/></var><var name="n"><type name="Int.int"/></var></app></app></app></concls></lemma><param name="lsr" altname="lsr" path="bv.BV16"><fun><type name="t" local="true"/><type name="Int.int"/><type name="t" local="true"/></fun></param><lemma name="Lsr_nth_low" altname="Lsr_nth_low" path="bv.BV16"><prems><app><const name="Orderings.ord_class.less_eq"/><num val="0"><type name="Int.int"/></num><var name="s"><type name="Int.int"/></var></app><app><const name="Orderings.ord_class.less_eq"/><num val="0"><type name="Int.int"/></num><var name="n"><type name="Int.int"/></var></app><app><const name="Orderings.ord_class.less"/><app><const name="Groups.plus_class.plus"/><var name="n"><type name="Int.int"/></var><var name="s"><type name="Int.int"/></var></app><num val="16"><type name="Int.int"/></num></app></prems><concls><app><const name="HOL.eq"/><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><app><const name="lsr" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="t" local="true"/></fun></const><var name="b"><type name="t" local="true"/></var><var name="s"><type name="Int.int"/></var></app><var name="n"><type name="Int.int"/></var></app><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><var name="b"><type name="t" local="true"/></var><app><const name="Groups.plus_class.plus"/><var name="n"><type name="Int.int"/></var><var name="s"><type name="Int.int"/></var></app></app></app></concls></lemma><lemma name="Lsr_nth_high" altname="Lsr_nth_high" path="bv.BV16"><prems><app><const name="Orderings.ord_class.less_eq"/><num val="0"><type name="Int.int"/></num><var name="s"><type name="Int.int"/></var></app><app><const name="Orderings.ord_class.less_eq"/><num val="0"><type name="Int.int"/></num><var name="n"><type name="Int.int"/></var></app><app><const name="Orderings.ord_class.less_eq"/><num val="16"><type name="Int.int"/></num><app><const name="Groups.plus_class.plus"/><var name="n"><type name="Int.int"/></var><var name="s"><type name="Int.int"/></var></app></app></prems><concls><app><const name="HOL.eq"/><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><app><const name="lsr" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="t" local="true"/></fun></const><var name="b"><type name="t" local="true"/></var><var name="s"><type name="Int.int"/></var></app><var name="n"><type name="Int.int"/></var></app><const name="HOL.False"/></app></concls></lemma><lemma name="lsr_zeros" altname="lsr_zeros" path="bv.BV16"><prems/><concls><app><const name="HOL.eq"/><app><const name="lsr" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="t" local="true"/></fun></const><var name="x"><type name="t" local="true"/></var><num val="0"><type name="Int.int"/></num></app><var name="x"><type name="t" local="true"/></var></app></concls></lemma><param name="asr" altname="asr" path="bv.BV16"><fun><type name="t" local="true"/><type name="Int.int"/><type name="t" local="true"/></fun></param><lemma name="Asr_nth_low" altname="Asr_nth_low" path="bv.BV16"><prems><app><const name="Orderings.ord_class.less_eq"/><num val="0"><type name="Int.int"/></num><var name="s"><type name="Int.int"/></var></app><app><const name="Orderings.ord_class.less_eq"/><num val="0"><type name="Int.int"/></num><var name="n"><type name="Int.int"/></var></app><app><const name="Orderings.ord_class.less"/><var name="n"><type name="Int.int"/></var><num val="16"><type name="Int.int"/></num></app><app><const name="Orderings.ord_class.less"/><app><const name="Groups.plus_class.plus"/><var name="n"><type name="Int.int"/></var><var name="s"><type name="Int.int"/></var></app><num val="16"><type name="Int.int"/></num></app></prems><concls><app><const name="HOL.eq"/><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><app><const name="asr" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="t" local="true"/></fun></const><var name="b"><type name="t" local="true"/></var><var name="s"><type name="Int.int"/></var></app><var name="n"><type name="Int.int"/></var></app><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><var name="b"><type name="t" local="true"/></var><app><const name="Groups.plus_class.plus"/><var name="n"><type name="Int.int"/></var><var name="s"><type name="Int.int"/></var></app></app></app></concls></lemma><lemma name="Asr_nth_high" altname="Asr_nth_high" path="bv.BV16"><prems><app><const name="Orderings.ord_class.less_eq"/><num val="0"><type name="Int.int"/></num><var name="s"><type name="Int.int"/></var></app><app><const name="Orderings.ord_class.less_eq"/><num val="0"><type name="Int.int"/></num><var name="n"><type name="Int.int"/></var></app><app><const name="Orderings.ord_class.less"/><var name="n"><type name="Int.int"/></var><num val="16"><type name="Int.int"/></num></app><app><const name="Orderings.ord_class.less_eq"/><num val="16"><type name="Int.int"/></num><app><const name="Groups.plus_class.plus"/><var name="n"><type name="Int.int"/></var><var name="s"><type name="Int.int"/></var></app></app></prems><concls><app><const name="HOL.eq"/><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><app><const name="asr" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="t" local="true"/></fun></const><var name="b"><type name="t" local="true"/></var><var name="s"><type name="Int.int"/></var></app><var name="n"><type name="Int.int"/></var></app><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><var name="b"><type name="t" local="true"/></var><app><const name="Groups.minus_class.minus"/><num val="16"><type name="Int.int"/></num><num val="1"><type name="Int.int"/></num></app></app></app></concls></lemma><lemma name="asr_zeros" altname="asr_zeros" path="bv.BV16"><prems/><concls><app><const name="HOL.eq"/><app><const name="asr" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="t" local="true"/></fun></const><var name="x"><type name="t" local="true"/></var><num val="0"><type name="Int.int"/></num></app><var name="x"><type name="t" local="true"/></var></app></concls></lemma><param name="lsl" altname="lsl" path="bv.BV16"><fun><type name="t" local="true"/><type name="Int.int"/><type name="t" local="true"/></fun></param><lemma name="Lsl_nth_high" altname="Lsl_nth_high" path="bv.BV16"><prems><app><const name="Orderings.ord_class.less_eq"/><num val="0"><type name="Int.int"/></num><var name="s"><type name="Int.int"/></var></app><app><const name="Orderings.ord_class.less_eq"/><var name="s"><type name="Int.int"/></var><var name="n"><type name="Int.int"/></var></app><app><const name="Orderings.ord_class.less"/><var name="n"><type name="Int.int"/></var><num val="16"><type name="Int.int"/></num></app></prems><concls><app><const name="HOL.eq"/><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><app><const name="lsl" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="t" local="true"/></fun></const><var name="b"><type name="t" local="true"/></var><var name="s"><type name="Int.int"/></var></app><var name="n"><type name="Int.int"/></var></app><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><var name="b"><type name="t" local="true"/></var><app><const name="Groups.minus_class.minus"/><var name="n"><type name="Int.int"/></var><var name="s"><type name="Int.int"/></var></app></app></app></concls></lemma><lemma name="Lsl_nth_low" altname="Lsl_nth_low" path="bv.BV16"><prems><app><const name="Orderings.ord_class.less_eq"/><num val="0"><type name="Int.int"/></num><var name="n"><type name="Int.int"/></var></app><app><const name="Orderings.ord_class.less"/><var name="n"><type name="Int.int"/></var><var name="s"><type name="Int.int"/></var></app></prems><concls><app><const name="HOL.eq"/><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><app><const name="lsl" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="t" local="true"/></fun></const><var name="b"><type name="t" local="true"/></var><var name="s"><type name="Int.int"/></var></app><var name="n"><type name="Int.int"/></var></app><const name="HOL.False"/></app></concls></lemma><lemma name="lsl_zeros" altname="lsl_zeros" path="bv.BV16"><prems/><concls><app><const name="HOL.eq"/><app><const name="lsl" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="t" local="true"/></fun></const><var name="x"><type name="t" local="true"/></var><num val="0"><type name="Int.int"/></num></app><var name="x"><type name="t" local="true"/></var></app></concls></lemma><param name="rotate_right" altname="rotate_right" path="bv.BV16"><fun><type name="t" local="true"/><type name="Int.int"/><type name="t" local="true"/></fun></param><lemma name="Nth_rotate_right" altname="Nth_rotate_right" path="bv.BV16"><prems><app><const name="Orderings.ord_class.less_eq"/><num val="0"><type name="Int.int"/></num><var name="i"><type name="Int.int"/></var></app><app><const name="Orderings.ord_class.less"/><var name="i"><type name="Int.int"/></var><num val="16"><type name="Int.int"/></num></app><app><const name="Orderings.ord_class.less_eq"/><num val="0"><type name="Int.int"/></num><var name="n"><type name="Int.int"/></var></app></prems><concls><app><const name="HOL.eq"/><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><app><const name="rotate_right" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="t" local="true"/></fun></const><var name="v"><type name="t" local="true"/></var><var name="n"><type name="Int.int"/></var></app><var name="i"><type name="Int.int"/></var></app><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><var name="v"><type name="t" local="true"/></var><app><const name="mod" path="int.EuclideanDivision"><fun><type name="Int.int"/><type name="Int.int"/><type name="Int.int"/></fun></const><app><const name="Groups.plus_class.plus"/><var name="i"><type name="Int.int"/></var><var name="n"><type name="Int.int"/></var></app><num val="16"><type name="Int.int"/></num></app></app></app></concls></lemma><param name="rotate_left" altname="rotate_left" path="bv.BV16"><fun><type name="t" local="true"/><type name="Int.int"/><type name="t" local="true"/></fun></param><lemma name="Nth_rotate_left" altname="Nth_rotate_left" path="bv.BV16"><prems><app><const name="Orderings.ord_class.less_eq"/><num val="0"><type name="Int.int"/></num><var name="i"><type name="Int.int"/></var></app><app><const name="Orderings.ord_class.less"/><var name="i"><type name="Int.int"/></var><num val="16"><type name="Int.int"/></num></app><app><const name="Orderings.ord_class.less_eq"/><num val="0"><type name="Int.int"/></num><var name="n"><type name="Int.int"/></var></app></prems><concls><app><const name="HOL.eq"/><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><app><const name="rotate_left" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="t" local="true"/></fun></const><var name="v"><type name="t" local="true"/></var><var name="n"><type name="Int.int"/></var></app><var name="i"><type name="Int.int"/></var></app><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><var name="v"><type name="t" local="true"/></var><app><const name="mod" path="int.EuclideanDivision"><fun><type name="Int.int"/><type name="Int.int"/><type name="Int.int"/></fun></const><app><const name="Groups.minus_class.minus"/><var name="i"><type name="Int.int"/></var><var name="n"><type name="Int.int"/></var></app><num val="16"><type name="Int.int"/></num></app></app></app></concls></lemma><param name="is_signed_positive" altname="is_signed_positive" path="bv.BV16"><pred><type name="t" local="true"/></pred></param><param name="of_int" altname="of_int" path="bv.BV16"><fun><type name="Int.int"/><type name="t" local="true"/></fun></param><lemma name="to_int_def"><prems/><concls><app><const name="HOL.eq"/><app><const name="Word.sint"/><var name="x"><type name="t" local="true"/></var></app><app><const name="HOL.If"/><app><const name="is_signed_positive" local="true"><pred><type name="t" local="true"/></pred></const><var name="x"><type name="t" local="true"/></var></app><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="x"><type name="t" local="true"/></var></app><app><const name="Groups.uminus_class.uminus"/><app><const name="Groups.minus_class.minus"/><num val="65536"><type name="Int.int"/></num><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="x"><type name="t" local="true"/></var></app></app></app></app></app></concls></lemma><lemma name="to_uint_extensionality" altname="to_uint_extensionality" path="bv.BV16"><prems><app><const name="HOL.eq"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v"><type name="t" local="true"/></var></app><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="vqt"><type name="t" local="true"/></var></app></app></prems><concls><app><const name="HOL.eq"/><var name="v"><type name="t" local="true"/></var><var name="vqt"><type name="t" local="true"/></var></app></concls></lemma><lemma name="to_int_extensionality" altname="to_int_extensionality" path="bv.BV16"><prems><app><const name="HOL.eq"/><app><const name="Word.sint"/><var name="v"><type name="t" local="true"/></var></app><app><const name="Word.sint"/><var name="vqt"><type name="t" local="true"/></var></app></app></prems><concls><app><const name="HOL.eq"/><var name="v"><type name="t" local="true"/></var><var name="vqt"><type name="t" local="true"/></var></app></concls></lemma><definition altname="uint_in_range" path="bv.BV16"><app><const name="HOL.eq"/><app><var name="uint_in_range"><pred><type name="Int.int"/></pred></var><var name="i"><type name="Int.int"/></var></app><app><const name="HOL.conj"/><app><const name="Orderings.ord_class.less_eq"/><num val="0"><type name="Int.int"/></num><var name="i"><type name="Int.int"/></var></app><app><const name="Orderings.ord_class.less_eq"/><var name="i"><type name="Int.int"/></var><num val="65535"><type name="Int.int"/></num></app></app></app></definition><lemma name="to_uint_bounds" altname="to_uint_bounds" path="bv.BV16"><prems/><concls><app><const name="Orderings.ord_class.less_eq"/><num val="0"><type name="Int.int"/></num><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v"><type name="t" local="true"/></var></app></app><app><const name="Orderings.ord_class.less"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v"><type name="t" local="true"/></var></app><num val="65536"><type name="Int.int"/></num></app></concls></lemma><lemma name="to_uint_of_int" altname="to_uint_of_int" path="bv.BV16"><prems><app><const name="Orderings.ord_class.less_eq"/><num val="0"><type name="Int.int"/></num><var name="i"><type name="Int.int"/></var></app><app><const name="Orderings.ord_class.less"/><var name="i"><type name="Int.int"/></var><num val="65536"><type name="Int.int"/></num></app></prems><concls><app><const name="HOL.eq"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><app><const name="of_int" local="true"><fun><type name="Int.int"/><type name="t" local="true"/></fun></const><var name="i"><type name="Int.int"/></var></app></app><var name="i"><type name="Int.int"/></var></app></concls></lemma><param name="size_bv" altname="size_bv" path="bv.BV16"><type name="t" local="true"/></param><lemma name="to_uint_size_bv" altname="to_uint_size_bv" path="bv.BV16"><prems/><concls><app><const name="HOL.eq"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><const name="size_bv" local="true"><type name="t" local="true"/></const></app><num val="16"><type name="Int.int"/></num></app></concls></lemma><lemma name="to_uint_zeros" altname="to_uint_zeros" path="bv.BV16"><prems/><concls><app><const name="HOL.eq"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><const name="zeros" local="true"><type name="t" local="true"/></const></app><num val="0"><type name="Int.int"/></num></app></concls></lemma><lemma name="to_uint_one" altname="to_uint_one" path="bv.BV16"><prems/><concls><app><const name="HOL.eq"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><const name="one" local="true"><type name="t" local="true"/></const></app><num val="1"><type name="Int.int"/></num></app></concls></lemma><lemma name="to_uint_ones" altname="to_uint_ones" path="bv.BV16"><prems/><concls><app><const name="HOL.eq"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><const name="ones" local="true"><type name="t" local="true"/></const></app><num val="65535"><type name="Int.int"/></num></app></concls></lemma><definition altname="ult" path="bv.BV16"><app><const name="HOL.eq"/><app><var name="ult"><pred><type name="t" local="true"/><type name="t" local="true"/></pred></var><var name="x"><type name="t" local="true"/></var><var name="y"><type name="t" local="true"/></var></app><app><const name="Orderings.ord_class.less"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="x"><type name="t" local="true"/></var></app><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="y"><type name="t" local="true"/></var></app></app></app></definition><definition altname="ule" path="bv.BV16"><app><const name="HOL.eq"/><app><var name="ule"><pred><type name="t" local="true"/><type name="t" local="true"/></pred></var><var name="x"><type name="t" local="true"/></var><var name="y"><type name="t" local="true"/></var></app><app><const name="Orderings.ord_class.less_eq"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="x"><type name="t" local="true"/></var></app><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="y"><type name="t" local="true"/></var></app></app></app></definition><definition altname="ugt" path="bv.BV16"><app><const name="HOL.eq"/><app><var name="ugt"><pred><type name="t" local="true"/><type name="t" local="true"/></pred></var><var name="x"><type name="t" local="true"/></var><var name="y"><type name="t" local="true"/></var></app><app><const name="Orderings.ord_class.less"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="y"><type name="t" local="true"/></var></app><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="x"><type name="t" local="true"/></var></app></app></app></definition><definition altname="uge" path="bv.BV16"><app><const name="HOL.eq"/><app><var name="uge"><pred><type name="t" local="true"/><type name="t" local="true"/></pred></var><var name="x"><type name="t" local="true"/></var><var name="y"><type name="t" local="true"/></var></app><app><const name="Orderings.ord_class.less_eq"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="y"><type name="t" local="true"/></var></app><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="x"><type name="t" local="true"/></var></app></app></app></definition><definition altname="slt" path="bv.BV16"><app><const name="HOL.eq"/><app><var name="slt"><pred><type name="t" local="true"/><type name="t" local="true"/></pred></var><var name="v1"><type name="t" local="true"/></var><var name="v2"><type name="t" local="true"/></var></app><app><const name="Orderings.ord_class.less"/><app><const name="Word.sint"/><var name="v1"><type name="t" local="true"/></var></app><app><const name="Word.sint"/><var name="v2"><type name="t" local="true"/></var></app></app></app></definition><definition altname="sle" path="bv.BV16"><app><const name="HOL.eq"/><app><var name="sle"><pred><type name="t" local="true"/><type name="t" local="true"/></pred></var><var name="v1"><type name="t" local="true"/></var><var name="v2"><type name="t" local="true"/></var></app><app><const name="Orderings.ord_class.less_eq"/><app><const name="Word.sint"/><var name="v1"><type name="t" local="true"/></var></app><app><const name="Word.sint"/><var name="v2"><type name="t" local="true"/></var></app></app></app></definition><definition altname="sgt" path="bv.BV16"><app><const name="HOL.eq"/><app><var name="sgt"><pred><type name="t" local="true"/><type name="t" local="true"/></pred></var><var name="v1"><type name="t" local="true"/></var><var name="v2"><type name="t" local="true"/></var></app><app><const name="Orderings.ord_class.less"/><app><const name="Word.sint"/><var name="v2"><type name="t" local="true"/></var></app><app><const name="Word.sint"/><var name="v1"><type name="t" local="true"/></var></app></app></app></definition><definition altname="sge" path="bv.BV16"><app><const name="HOL.eq"/><app><var name="sge"><pred><type name="t" local="true"/><type name="t" local="true"/></pred></var><var name="v1"><type name="t" local="true"/></var><var name="v2"><type name="t" local="true"/></var></app><app><const name="Orderings.ord_class.less_eq"/><app><const name="Word.sint"/><var name="v2"><type name="t" local="true"/></var></app><app><const name="Word.sint"/><var name="v1"><type name="t" local="true"/></var></app></app></app></definition><lemma name="positive_is_ge_zeros" altname="positive_is_ge_zeros" path="bv.BV16"><prems/><concls><app><const name="HOL.eq"/><app><const name="is_signed_positive" local="true"><pred><type name="t" local="true"/></pred></const><var name="x"><type name="t" local="true"/></var></app><app><const name="sge" local="true"><pred><type name="t" local="true"/><type name="t" local="true"/></pred></const><var name="x"><type name="t" local="true"/></var><const name="zeros" local="true"><type name="t" local="true"/></const></app></app></concls></lemma><param name="add" altname="add" path="bv.BV16"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></param><lemma name="to_uint_add" altname="to_uint_add" path="bv.BV16"><prems/><concls><app><const name="HOL.eq"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><app><const name="add" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></const><var name="v1"><type name="t" local="true"/></var><var name="v2"><type name="t" local="true"/></var></app></app><app><const name="mod" path="int.EuclideanDivision"><fun><type name="Int.int"/><type name="Int.int"/><type name="Int.int"/></fun></const><app><const name="Groups.plus_class.plus"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v1"><type name="t" local="true"/></var></app><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v2"><type name="t" local="true"/></var></app></app><num val="65536"><type name="Int.int"/></num></app></app></concls></lemma><lemma name="to_uint_add_bounded" altname="to_uint_add_bounded" path="bv.BV16"><prems><app><const name="Orderings.ord_class.less"/><app><const name="Groups.plus_class.plus"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v1"><type name="t" local="true"/></var></app><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v2"><type name="t" local="true"/></var></app></app><num val="65536"><type name="Int.int"/></num></app></prems><concls><app><const name="HOL.eq"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><app><const name="add" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></const><var name="v1"><type name="t" local="true"/></var><var name="v2"><type name="t" local="true"/></var></app></app><app><const name="Groups.plus_class.plus"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v1"><type name="t" local="true"/></var></app><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v2"><type name="t" local="true"/></var></app></app></app></concls></lemma><param name="sub" altname="sub" path="bv.BV16"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></param><lemma name="to_uint_sub" altname="to_uint_sub" path="bv.BV16"><prems/><concls><app><const name="HOL.eq"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><app><const name="sub" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></const><var name="v1"><type name="t" local="true"/></var><var name="v2"><type name="t" local="true"/></var></app></app><app><const name="mod" path="int.EuclideanDivision"><fun><type name="Int.int"/><type name="Int.int"/><type name="Int.int"/></fun></const><app><const name="Groups.minus_class.minus"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v1"><type name="t" local="true"/></var></app><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v2"><type name="t" local="true"/></var></app></app><num val="65536"><type name="Int.int"/></num></app></app></concls></lemma><lemma name="to_uint_sub_bounded" altname="to_uint_sub_bounded" path="bv.BV16"><prems><app><const name="Orderings.ord_class.less_eq"/><num val="0"><type name="Int.int"/></num><app><const name="Groups.minus_class.minus"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v1"><type name="t" local="true"/></var></app><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v2"><type name="t" local="true"/></var></app></app></app><app><const name="Orderings.ord_class.less"/><app><const name="Groups.minus_class.minus"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v1"><type name="t" local="true"/></var></app><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v2"><type name="t" local="true"/></var></app></app><num val="65536"><type name="Int.int"/></num></app></prems><concls><app><const name="HOL.eq"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><app><const name="sub" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></const><var name="v1"><type name="t" local="true"/></var><var name="v2"><type name="t" local="true"/></var></app></app><app><const name="Groups.minus_class.minus"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v1"><type name="t" local="true"/></var></app><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v2"><type name="t" local="true"/></var></app></app></app></concls></lemma><param name="neg" altname="neg" path="bv.BV16"><fun><type name="t" local="true"/><type name="t" local="true"/></fun></param><lemma name="to_uint_neg" altname="to_uint_neg" path="bv.BV16"><prems/><concls><app><const name="HOL.eq"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><app><const name="neg" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/></fun></const><var name="v"><type name="t" local="true"/></var></app></app><app><const name="mod" path="int.EuclideanDivision"><fun><type name="Int.int"/><type name="Int.int"/><type name="Int.int"/></fun></const><app><const name="Groups.uminus_class.uminus"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v"><type name="t" local="true"/></var></app></app><num val="65536"><type name="Int.int"/></num></app></app></concls></lemma><param name="mul" altname="mul" path="bv.BV16"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></param><lemma name="to_uint_mul" altname="to_uint_mul" path="bv.BV16"><prems/><concls><app><const name="HOL.eq"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><app><const name="mul" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></const><var name="v1"><type name="t" local="true"/></var><var name="v2"><type name="t" local="true"/></var></app></app><app><const name="mod" path="int.EuclideanDivision"><fun><type name="Int.int"/><type name="Int.int"/><type name="Int.int"/></fun></const><app><const name="Groups.times_class.times"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v1"><type name="t" local="true"/></var></app><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v2"><type name="t" local="true"/></var></app></app><num val="65536"><type name="Int.int"/></num></app></app></concls></lemma><lemma name="to_uint_mul_bounded" altname="to_uint_mul_bounded" path="bv.BV16"><prems><app><const name="Orderings.ord_class.less"/><app><const name="Groups.times_class.times"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v1"><type name="t" local="true"/></var></app><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v2"><type name="t" local="true"/></var></app></app><num val="65536"><type name="Int.int"/></num></app></prems><concls><app><const name="HOL.eq"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><app><const name="mul" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></const><var name="v1"><type name="t" local="true"/></var><var name="v2"><type name="t" local="true"/></var></app></app><app><const name="Groups.times_class.times"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v1"><type name="t" local="true"/></var></app><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v2"><type name="t" local="true"/></var></app></app></app></concls></lemma><param name="udiv" altname="udiv" path="bv.BV16"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></param><lemma name="to_uint_udiv" altname="to_uint_udiv" path="bv.BV16"><prems/><concls><app><const name="HOL.eq"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><app><const name="udiv" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></const><var name="v1"><type name="t" local="true"/></var><var name="v2"><type name="t" local="true"/></var></app></app><app><const name="div" path="int.EuclideanDivision"><fun><type name="Int.int"/><type name="Int.int"/><type name="Int.int"/></fun></const><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v1"><type name="t" local="true"/></var></app><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v2"><type name="t" local="true"/></var></app></app></app></concls></lemma><param name="urem" altname="urem" path="bv.BV16"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></param><lemma name="to_uint_urem" altname="to_uint_urem" path="bv.BV16"><prems/><concls><app><const name="HOL.eq"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><app><const name="urem" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></const><var name="v1"><type name="t" local="true"/></var><var name="v2"><type name="t" local="true"/></var></app></app><app><const name="mod" path="int.EuclideanDivision"><fun><type name="Int.int"/><type name="Int.int"/><type name="Int.int"/></fun></const><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v1"><type name="t" local="true"/></var></app><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v2"><type name="t" local="true"/></var></app></app></app></concls></lemma><param name="lsr_bv" altname="lsr_bv" path="bv.BV16"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></param><lemma name="lsr_bv_is_lsr" altname="lsr_bv_is_lsr" path="bv.BV16"><prems/><concls><app><const name="HOL.eq"/><app><const name="lsr_bv" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></const><var name="x"><type name="t" local="true"/></var><var name="n"><type name="t" local="true"/></var></app><app><const name="lsr" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="t" local="true"/></fun></const><var name="x"><type name="t" local="true"/></var><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="n"><type name="t" local="true"/></var></app></app></app></concls></lemma><lemma name="to_uint_lsr" altname="to_uint_lsr" path="bv.BV16"><prems/><concls><app><const name="HOL.eq"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><app><const name="lsr_bv" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></const><var name="v"><type name="t" local="true"/></var><var name="n"><type name="t" local="true"/></var></app></app><app><const name="div" path="int.EuclideanDivision"><fun><type name="Int.int"/><type name="Int.int"/><type name="Int.int"/></fun></const><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v"><type name="t" local="true"/></var></app><app><const name="pow2" path="bv.Pow2int"><fun><type name="Int.int"/><type name="Int.int"/></fun></const><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="n"><type name="t" local="true"/></var></app></app></app></app></concls></lemma><param name="asr_bv" altname="asr_bv" path="bv.BV16"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></param><lemma name="asr_bv_is_asr" altname="asr_bv_is_asr" path="bv.BV16"><prems/><concls><app><const name="HOL.eq"/><app><const name="asr_bv" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></const><var name="x"><type name="t" local="true"/></var><var name="n"><type name="t" local="true"/></var></app><app><const name="asr" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="t" local="true"/></fun></const><var name="x"><type name="t" local="true"/></var><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="n"><type name="t" local="true"/></var></app></app></app></concls></lemma><param name="lsl_bv" altname="lsl_bv" path="bv.BV16"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></param><lemma name="lsl_bv_is_lsl" altname="lsl_bv_is_lsl" path="bv.BV16"><prems/><concls><app><const name="HOL.eq"/><app><const name="lsl_bv" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></const><var name="x"><type name="t" local="true"/></var><var name="n"><type name="t" local="true"/></var></app><app><const name="lsl" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="t" local="true"/></fun></const><var name="x"><type name="t" local="true"/></var><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="n"><type name="t" local="true"/></var></app></app></app></concls></lemma><lemma name="to_uint_lsl" altname="to_uint_lsl" path="bv.BV16"><prems/><concls><app><const name="HOL.eq"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><app><const name="lsl_bv" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></const><var name="v"><type name="t" local="true"/></var><var name="n"><type name="t" local="true"/></var></app></app><app><const name="mod" path="int.EuclideanDivision"><fun><type name="Int.int"/><type name="Int.int"/><type name="Int.int"/></fun></const><app><const name="Groups.times_class.times"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v"><type name="t" local="true"/></var></app><app><const name="pow2" path="bv.Pow2int"><fun><type name="Int.int"/><type name="Int.int"/></fun></const><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="n"><type name="t" local="true"/></var></app></app></app><num val="65536"><type name="Int.int"/></num></app></app></concls></lemma><param name="rotate_right_bv" altname="rotate_right_bv" path="bv.BV16"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></param><param name="rotate_left_bv" altname="rotate_left_bv" path="bv.BV16"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></param><lemma name="rotate_left_bv_is_rotate_left" altname="rotate_left_bv_is_rotate_left" path="bv.BV16"><prems/><concls><app><const name="HOL.eq"/><app><const name="rotate_left_bv" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></const><var name="v"><type name="t" local="true"/></var><var name="n"><type name="t" local="true"/></var></app><app><const name="rotate_left" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="t" local="true"/></fun></const><var name="v"><type name="t" local="true"/></var><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="n"><type name="t" local="true"/></var></app></app></app></concls></lemma><lemma name="rotate_right_bv_is_rotate_right" altname="rotate_right_bv_is_rotate_right" path="bv.BV16"><prems/><concls><app><const name="HOL.eq"/><app><const name="rotate_right_bv" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></const><var name="v"><type name="t" local="true"/></var><var name="n"><type name="t" local="true"/></var></app><app><const name="rotate_right" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="t" local="true"/></fun></const><var name="v"><type name="t" local="true"/></var><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="n"><type name="t" local="true"/></var></app></app></app></concls></lemma><param name="nth_bv" altname="nth_bv" path="bv.BV16"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="HOL.bool"/></fun></param><lemma name="nth_bv_def" altname="nth_bv_def" path="bv.BV16"><prems/><concls><app><const name="HOL.eq"/><app><const name="HOL.eq"/><app><const name="nth_bv" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="HOL.bool"/></fun></const><var name="x"><type name="t" local="true"/></var><var name="i"><type name="t" local="true"/></var></app><const name="HOL.True"/></app><app><const name="HOL.Not"/><app><const name="HOL.eq"/><app><const name="bw_and" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></const><app><const name="lsr_bv" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></const><var name="x"><type name="t" local="true"/></var><var name="i"><type name="t" local="true"/></var></app><const name="one" local="true"><type name="t" local="true"/></const></app><const name="zeros" local="true"><type name="t" local="true"/></const></app></app></app></concls></lemma><lemma name="Nth_bv_is_nth" altname="Nth_bv_is_nth" path="bv.BV16"><prems/><concls><app><const name="HOL.eq"/><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><var name="x"><type name="t" local="true"/></var><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="i"><type name="t" local="true"/></var></app></app><app><const name="nth_bv" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="HOL.bool"/></fun></const><var name="x"><type name="t" local="true"/></var><var name="i"><type name="t" local="true"/></var></app></app></concls></lemma><lemma name="Nth_bv_is_nth2" altname="Nth_bv_is_nth2" path="bv.BV16"><prems><app><const name="Orderings.ord_class.less_eq"/><num val="0"><type name="Int.int"/></num><var name="i"><type name="Int.int"/></var></app><app><const name="Orderings.ord_class.less"/><var name="i"><type name="Int.int"/></var><num val="65536"><type name="Int.int"/></num></app></prems><concls><app><const name="HOL.eq"/><app><const name="nth_bv" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="HOL.bool"/></fun></const><var name="x"><type name="t" local="true"/></var><app><const name="of_int" local="true"><fun><type name="Int.int"/><type name="t" local="true"/></fun></const><var name="i"><type name="Int.int"/></var></app></app><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><var name="x"><type name="t" local="true"/></var><var name="i"><type name="Int.int"/></var></app></app></concls></lemma><param name="eq_sub_bv" altname="eq_sub_bv" path="bv.BV16"><pred><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></pred></param><lemma name="eq_sub_bv_def" altname="eq_sub_bv_def" path="bv.BV16"><prems/><concls><app><const name="HOL.eq"/><app><const name="eq_sub_bv" local="true"><pred><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></pred></const><var name="a"><type name="t" local="true"/></var><var name="b"><type name="t" local="true"/></var><var name="i"><type name="t" local="true"/></var><var name="n"><type name="t" local="true"/></var></app><app><const name="HOL.eq"/><app><const name="bw_and" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></const><var name="b"><type name="t" local="true"/></var><app><const name="lsl_bv" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></const><app><const name="sub" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></const><app><const name="lsl_bv" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></const><const name="one" local="true"><type name="t" local="true"/></const><var name="n"><type name="t" local="true"/></var></app><const name="one" local="true"><type name="t" local="true"/></const></app><var name="i"><type name="t" local="true"/></var></app></app><app><const name="bw_and" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></const><var name="a"><type name="t" local="true"/></var><app><const name="lsl_bv" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></const><app><const name="sub" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></const><app><const name="lsl_bv" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></const><const name="one" local="true"><type name="t" local="true"/></const><var name="n"><type name="t" local="true"/></var></app><const name="one" local="true"><type name="t" local="true"/></const></app><var name="i"><type name="t" local="true"/></var></app></app></app></app></concls></lemma><definition altname="eq_sub" path="bv.BV16"><app><const name="HOL.eq"/><app><var name="eq_sub"><pred><type name="t" local="true"/><type name="t" local="true"/><type name="Int.int"/><type name="Int.int"/></pred></var><var name="a"><type name="t" local="true"/></var><var name="b"><type name="t" local="true"/></var><var name="i"><type name="Int.int"/></var><var name="n"><type name="Int.int"/></var></app><app><const name="HOL.All"/><abs name="j"><type name="Int.int"/><app><const name="HOL.implies"/><app><const name="HOL.conj"/><app><const name="Orderings.ord_class.less_eq"/><var name="i"><type name="Int.int"/></var><var name="j"><type name="Int.int"/></var></app><app><const name="Orderings.ord_class.less"/><var name="j"><type name="Int.int"/></var><app><const name="Groups.plus_class.plus"/><var name="i"><type name="Int.int"/></var><var name="n"><type name="Int.int"/></var></app></app></app><app><const name="HOL.eq"/><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><var name="a"><type name="t" local="true"/></var><var name="j"><type name="Int.int"/></var></app><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><var name="b"><type name="t" local="true"/></var><var name="j"><type name="Int.int"/></var></app></app></app></abs></app></app></definition><lemma name="eq_sub_equiv" altname="eq_sub_equiv" path="bv.BV16"><prems/><concls><app><const name="HOL.eq"/><app><const name="eq_sub" local="true"><pred><type name="t" local="true"/><type name="t" local="true"/><type name="Int.int"/><type name="Int.int"/></pred></const><var name="a"><type name="t" local="true"/></var><var name="b"><type name="t" local="true"/></var><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="i"><type name="t" local="true"/></var></app><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="n"><type name="t" local="true"/></var></app></app><app><const name="eq_sub_bv" local="true"><pred><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></pred></const><var name="a"><type name="t" local="true"/></var><var name="b"><type name="t" local="true"/></var><var name="i"><type name="t" local="true"/></var><var name="n"><type name="t" local="true"/></var></app></app></concls></lemma><lemma name="Extensionality" altname="Extensionality" path="bv.BV16"><prems><app><const name="eq_sub" local="true"><pred><type name="t" local="true"/><type name="t" local="true"/><type name="Int.int"/><type name="Int.int"/></pred></const><var name="x"><type name="t" local="true"/></var><var name="y"><type name="t" local="true"/></var><num val="0"><type name="Int.int"/></num><num val="16"><type name="Int.int"/></num></app></prems><concls><app><const name="HOL.eq"/><var name="x"><type name="t" local="true"/></var><var name="y"><type name="t" local="true"/></var></app></concls></lemma></theory>
\ No newline at end of file
<theory name="bv.BV32" realize="true"><realized><require name="why3.BuiltIn.BuiltIn"/><require name="bool.Bool"/><require name="int.Int"/><require name="int.Abs"/><require name="int.EuclideanDivision"/><require name="bv.Pow2int"/></realized><typedecl name="t" altname="t" path="bv.BV32"><params/></typedecl><param name="tqtint" altname="t&#39;int" path="bv.BV32"><fun><type name="t" local="true"/><type name="Int.int"/></fun></param><param name="nth" altname="nth" path="bv.BV32"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></param><lemma name="nth_out_of_bound" altname="nth_out_of_bound" path="bv.BV32"><prems><app><const name="HOL.disj"/><app><const name="Orderings.ord_class.less"/><var name="n"><type name="Int.int"/></var><num val="0"><type name="Int.int"/></num></app><app><const name="Orderings.ord_class.less_eq"/><num val="32"><type name="Int.int"/></num><var name="n"><type name="Int.int"/></var></app></app></prems><concls><app><const name="HOL.eq"/><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><var name="x"><type name="t" local="true"/></var><var name="n"><type name="Int.int"/></var></app><const name="HOL.False"/></app></concls></lemma><param name="zeros" altname="zeros" path="bv.BV32"><type name="t" local="true"/></param><lemma name="Nth_zeros" altname="Nth_zeros" path="bv.BV32"><prems/><concls><app><const name="HOL.eq"/><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><const name="zeros" local="true"><type name="t" local="true"/></const><var name="n"><type name="Int.int"/></var></app><const name="HOL.False"/></app></concls></lemma><param name="one" altname="one" path="bv.BV32"><type name="t" local="true"/></param><param name="ones" altname="ones" path="bv.BV32"><type name="t" local="true"/></param><lemma name="Nth_ones" altname="Nth_ones" path="bv.BV32"><prems><app><const name="Orderings.ord_class.less_eq"/><num val="0"><type name="Int.int"/></num><var name="n"><type name="Int.int"/></var></app><app><const name="Orderings.ord_class.less"/><var name="n"><type name="Int.int"/></var><num val="32"><type name="Int.int"/></num></app></prems><concls><app><const name="HOL.eq"/><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><const name="ones" local="true"><type name="t" local="true"/></const><var name="n"><type name="Int.int"/></var></app><const name="HOL.True"/></app></concls></lemma><param name="bw_and" altname="bw_and" path="bv.BV32"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></param><lemma name="Nth_bw_and" altname="Nth_bw_and" path="bv.BV32"><prems><app><const name="Orderings.ord_class.less_eq"/><num val="0"><type name="Int.int"/></num><var name="n"><type name="Int.int"/></var></app><app><const name="Orderings.ord_class.less"/><var name="n"><type name="Int.int"/></var><num val="32"><type name="Int.int"/></num></app></prems><concls><app><const name="HOL.eq"/><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><app><const name="bw_and" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></const><var name="v1"><type name="t" local="true"/></var><var name="v2"><type name="t" local="true"/></var></app><var name="n"><type name="Int.int"/></var></app><app><const name="HOL.conj"/><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><var name="v1"><type name="t" local="true"/></var><var name="n"><type name="Int.int"/></var></app><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><var name="v2"><type name="t" local="true"/></var><var name="n"><type name="Int.int"/></var></app></app></app></concls></lemma><param name="bw_or" altname="bw_or" path="bv.BV32"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></param><lemma name="Nth_bw_or" altname="Nth_bw_or" path="bv.BV32"><prems><app><const name="Orderings.ord_class.less_eq"/><num val="0"><type name="Int.int"/></num><var name="n"><type name="Int.int"/></var></app><app><const name="Orderings.ord_class.less"/><var name="n"><type name="Int.int"/></var><num val="32"><type name="Int.int"/></num></app></prems><concls><app><const name="HOL.eq"/><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><app><const name="bw_or" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></const><var name="v1"><type name="t" local="true"/></var><var name="v2"><type name="t" local="true"/></var></app><var name="n"><type name="Int.int"/></var></app><app><const name="HOL.disj"/><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><var name="v1"><type name="t" local="true"/></var><var name="n"><type name="Int.int"/></var></app><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><var name="v2"><type name="t" local="true"/></var><var name="n"><type name="Int.int"/></var></app></app></app></concls></lemma><param name="bw_xor" altname="bw_xor" path="bv.BV32"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></param><lemma name="Nth_bw_xor" altname="Nth_bw_xor" path="bv.BV32"><prems><app><const name="Orderings.ord_class.less_eq"/><num val="0"><type name="Int.int"/></num><var name="n"><type name="Int.int"/></var></app><app><const name="Orderings.ord_class.less"/><var name="n"><type name="Int.int"/></var><num val="32"><type name="Int.int"/></num></app></prems><concls><app><const name="HOL.eq"/><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><app><const name="bw_xor" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></const><var name="v1"><type name="t" local="true"/></var><var name="v2"><type name="t" local="true"/></var></app><var name="n"><type name="Int.int"/></var></app><app><const name="HOL.Not"/><app><const name="HOL.eq"/><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><var name="v1"><type name="t" local="true"/></var><var name="n"><type name="Int.int"/></var></app><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><var name="v2"><type name="t" local="true"/></var><var name="n"><type name="Int.int"/></var></app></app></app></app></concls></lemma><param name="bw_not" altname="bw_not" path="bv.BV32"><fun><type name="t" local="true"/><type name="t" local="true"/></fun></param><lemma name="Nth_bw_not" altname="Nth_bw_not" path="bv.BV32"><prems><app><const name="Orderings.ord_class.less_eq"/><num val="0"><type name="Int.int"/></num><var name="n"><type name="Int.int"/></var></app><app><const name="Orderings.ord_class.less"/><var name="n"><type name="Int.int"/></var><num val="32"><type name="Int.int"/></num></app></prems><concls><app><const name="HOL.eq"/><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><app><const name="bw_not" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/></fun></const><var name="v"><type name="t" local="true"/></var></app><var name="n"><type name="Int.int"/></var></app><app><const name="HOL.Not"/><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><var name="v"><type name="t" local="true"/></var><var name="n"><type name="Int.int"/></var></app></app></app></concls></lemma><param name="lsr" altname="lsr" path="bv.BV32"><fun><type name="t" local="true"/><type name="Int.int"/><type name="t" local="true"/></fun></param><lemma name="Lsr_nth_low" altname="Lsr_nth_low" path="bv.BV32"><prems><app><const name="Orderings.ord_class.less_eq"/><num val="0"><type name="Int.int"/></num><var name="s"><type name="Int.int"/></var></app><app><const name="Orderings.ord_class.less_eq"/><num val="0"><type name="Int.int"/></num><var name="n"><type name="Int.int"/></var></app><app><const name="Orderings.ord_class.less"/><app><const name="Groups.plus_class.plus"/><var name="n"><type name="Int.int"/></var><var name="s"><type name="Int.int"/></var></app><num val="32"><type name="Int.int"/></num></app></prems><concls><app><const name="HOL.eq"/><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><app><const name="lsr" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="t" local="true"/></fun></const><var name="b"><type name="t" local="true"/></var><var name="s"><type name="Int.int"/></var></app><var name="n"><type name="Int.int"/></var></app><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><var name="b"><type name="t" local="true"/></var><app><const name="Groups.plus_class.plus"/><var name="n"><type name="Int.int"/></var><var name="s"><type name="Int.int"/></var></app></app></app></concls></lemma><lemma name="Lsr_nth_high" altname="Lsr_nth_high" path="bv.BV32"><prems><app><const name="Orderings.ord_class.less_eq"/><num val="0"><type name="Int.int"/></num><var name="s"><type name="Int.int"/></var></app><app><const name="Orderings.ord_class.less_eq"/><num val="0"><type name="Int.int"/></num><var name="n"><type name="Int.int"/></var></app><app><const name="Orderings.ord_class.less_eq"/><num val="32"><type name="Int.int"/></num><app><const name="Groups.plus_class.plus"/><var name="n"><type name="Int.int"/></var><var name="s"><type name="Int.int"/></var></app></app></prems><concls><app><const name="HOL.eq"/><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><app><const name="lsr" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="t" local="true"/></fun></const><var name="b"><type name="t" local="true"/></var><var name="s"><type name="Int.int"/></var></app><var name="n"><type name="Int.int"/></var></app><const name="HOL.False"/></app></concls></lemma><lemma name="lsr_zeros" altname="lsr_zeros" path="bv.BV32"><prems/><concls><app><const name="HOL.eq"/><app><const name="lsr" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="t" local="true"/></fun></const><var name="x"><type name="t" local="true"/></var><num val="0"><type name="Int.int"/></num></app><var name="x"><type name="t" local="true"/></var></app></concls></lemma><param name="asr" altname="asr" path="bv.BV32"><fun><type name="t" local="true"/><type name="Int.int"/><type name="t" local="true"/></fun></param><lemma name="Asr_nth_low" altname="Asr_nth_low" path="bv.BV32"><prems><app><const name="Orderings.ord_class.less_eq"/><num val="0"><type name="Int.int"/></num><var name="s"><type name="Int.int"/></var></app><app><const name="Orderings.ord_class.less_eq"/><num val="0"><type name="Int.int"/></num><var name="n"><type name="Int.int"/></var></app><app><const name="Orderings.ord_class.less"/><var name="n"><type name="Int.int"/></var><num val="32"><type name="Int.int"/></num></app><app><const name="Orderings.ord_class.less"/><app><const name="Groups.plus_class.plus"/><var name="n"><type name="Int.int"/></var><var name="s"><type name="Int.int"/></var></app><num val="32"><type name="Int.int"/></num></app></prems><concls><app><const name="HOL.eq"/><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><app><const name="asr" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="t" local="true"/></fun></const><var name="b"><type name="t" local="true"/></var><var name="s"><type name="Int.int"/></var></app><var name="n"><type name="Int.int"/></var></app><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><var name="b"><type name="t" local="true"/></var><app><const name="Groups.plus_class.plus"/><var name="n"><type name="Int.int"/></var><var name="s"><type name="Int.int"/></var></app></app></app></concls></lemma><lemma name="Asr_nth_high" altname="Asr_nth_high" path="bv.BV32"><prems><app><const name="Orderings.ord_class.less_eq"/><num val="0"><type name="Int.int"/></num><var name="s"><type name="Int.int"/></var></app><app><const name="Orderings.ord_class.less_eq"/><num val="0"><type name="Int.int"/></num><var name="n"><type name="Int.int"/></var></app><app><const name="Orderings.ord_class.less"/><var name="n"><type name="Int.int"/></var><num val="32"><type name="Int.int"/></num></app><app><const name="Orderings.ord_class.less_eq"/><num val="32"><type name="Int.int"/></num><app><const name="Groups.plus_class.plus"/><var name="n"><type name="Int.int"/></var><var name="s"><type name="Int.int"/></var></app></app></prems><concls><app><const name="HOL.eq"/><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><app><const name="asr" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="t" local="true"/></fun></const><var name="b"><type name="t" local="true"/></var><var name="s"><type name="Int.int"/></var></app><var name="n"><type name="Int.int"/></var></app><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><var name="b"><type name="t" local="true"/></var><app><const name="Groups.minus_class.minus"/><num val="32"><type name="Int.int"/></num><num val="1"><type name="Int.int"/></num></app></app></app></concls></lemma><lemma name="asr_zeros" altname="asr_zeros" path="bv.BV32"><prems/><concls><app><const name="HOL.eq"/><app><const name="asr" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="t" local="true"/></fun></const><var name="x"><type name="t" local="true"/></var><num val="0"><type name="Int.int"/></num></app><var name="x"><type name="t" local="true"/></var></app></concls></lemma><param name="lsl" altname="lsl" path="bv.BV32"><fun><type name="t" local="true"/><type name="Int.int"/><type name="t" local="true"/></fun></param><lemma name="Lsl_nth_high" altname="Lsl_nth_high" path="bv.BV32"><prems><app><const name="Orderings.ord_class.less_eq"/><num val="0"><type name="Int.int"/></num><var name="s"><type name="Int.int"/></var></app><app><const name="Orderings.ord_class.less_eq"/><var name="s"><type name="Int.int"/></var><var name="n"><type name="Int.int"/></var></app><app><const name="Orderings.ord_class.less"/><var name="n"><type name="Int.int"/></var><num val="32"><type name="Int.int"/></num></app></prems><concls><app><const name="HOL.eq"/><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><app><const name="lsl" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="t" local="true"/></fun></const><var name="b"><type name="t" local="true"/></var><var name="s"><type name="Int.int"/></var></app><var name="n"><type name="Int.int"/></var></app><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><var name="b"><type name="t" local="true"/></var><app><const name="Groups.minus_class.minus"/><var name="n"><type name="Int.int"/></var><var name="s"><type name="Int.int"/></var></app></app></app></concls></lemma><lemma name="Lsl_nth_low" altname="Lsl_nth_low" path="bv.BV32"><prems><app><const name="Orderings.ord_class.less_eq"/><num val="0"><type name="Int.int"/></num><var name="n"><type name="Int.int"/></var></app><app><const name="Orderings.ord_class.less"/><var name="n"><type name="Int.int"/></var><var name="s"><type name="Int.int"/></var></app></prems><concls><app><const name="HOL.eq"/><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><app><const name="lsl" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="t" local="true"/></fun></const><var name="b"><type name="t" local="true"/></var><var name="s"><type name="Int.int"/></var></app><var name="n"><type name="Int.int"/></var></app><const name="HOL.False"/></app></concls></lemma><lemma name="lsl_zeros" altname="lsl_zeros" path="bv.BV32"><prems/><concls><app><const name="HOL.eq"/><app><const name="lsl" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="t" local="true"/></fun></const><var name="x"><type name="t" local="true"/></var><num val="0"><type name="Int.int"/></num></app><var name="x"><type name="t" local="true"/></var></app></concls></lemma><param name="rotate_right" altname="rotate_right" path="bv.BV32"><fun><type name="t" local="true"/><type name="Int.int"/><type name="t" local="true"/></fun></param><lemma name="Nth_rotate_right" altname="Nth_rotate_right" path="bv.BV32"><prems><app><const name="Orderings.ord_class.less_eq"/><num val="0"><type name="Int.int"/></num><var name="i"><type name="Int.int"/></var></app><app><const name="Orderings.ord_class.less"/><var name="i"><type name="Int.int"/></var><num val="32"><type name="Int.int"/></num></app><app><const name="Orderings.ord_class.less_eq"/><num val="0"><type name="Int.int"/></num><var name="n"><type name="Int.int"/></var></app></prems><concls><app><const name="HOL.eq"/><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><app><const name="rotate_right" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="t" local="true"/></fun></const><var name="v"><type name="t" local="true"/></var><var name="n"><type name="Int.int"/></var></app><var name="i"><type name="Int.int"/></var></app><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><var name="v"><type name="t" local="true"/></var><app><const name="mod" path="int.EuclideanDivision"><fun><type name="Int.int"/><type name="Int.int"/><type name="Int.int"/></fun></const><app><const name="Groups.plus_class.plus"/><var name="i"><type name="Int.int"/></var><var name="n"><type name="Int.int"/></var></app><num val="32"><type name="Int.int"/></num></app></app></app></concls></lemma><param name="rotate_left" altname="rotate_left" path="bv.BV32"><fun><type name="t" local="true"/><type name="Int.int"/><type name="t" local="true"/></fun></param><lemma name="Nth_rotate_left" altname="Nth_rotate_left" path="bv.BV32"><prems><app><const name="Orderings.ord_class.less_eq"/><num val="0"><type name="Int.int"/></num><var name="i"><type name="Int.int"/></var></app><app><const name="Orderings.ord_class.less"/><var name="i"><type name="Int.int"/></var><num val="32"><type name="Int.int"/></num></app><app><const name="Orderings.ord_class.less_eq"/><num val="0"><type name="Int.int"/></num><var name="n"><type name="Int.int"/></var></app></prems><concls><app><const name="HOL.eq"/><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><app><const name="rotate_left" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="t" local="true"/></fun></const><var name="v"><type name="t" local="true"/></var><var name="n"><type name="Int.int"/></var></app><var name="i"><type name="Int.int"/></var></app><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><var name="v"><type name="t" local="true"/></var><app><const name="mod" path="int.EuclideanDivision"><fun><type name="Int.int"/><type name="Int.int"/><type name="Int.int"/></fun></const><app><const name="Groups.minus_class.minus"/><var name="i"><type name="Int.int"/></var><var name="n"><type name="Int.int"/></var></app><num val="32"><type name="Int.int"/></num></app></app></app></concls></lemma><param name="is_signed_positive" altname="is_signed_positive" path="bv.BV32"><pred><type name="t" local="true"/></pred></param><param name="of_int" altname="of_int" path="bv.BV32"><fun><type name="Int.int"/><type name="t" local="true"/></fun></param><lemma name="to_int_def"><prems/><concls><app><const name="HOL.eq"/><app><const name="Word.sint"/><var name="x"><type name="t" local="true"/></var></app><app><const name="HOL.If"/><app><const name="is_signed_positive" local="true"><pred><type name="t" local="true"/></pred></const><var name="x"><type name="t" local="true"/></var></app><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="x"><type name="t" local="true"/></var></app><app><const name="Groups.uminus_class.uminus"/><app><const name="Groups.minus_class.minus"/><num val="4294967296"><type name="Int.int"/></num><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="x"><type name="t" local="true"/></var></app></app></app></app></app></concls></lemma><lemma name="to_uint_extensionality" altname="to_uint_extensionality" path="bv.BV32"><prems><app><const name="HOL.eq"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v"><type name="t" local="true"/></var></app><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="vqt"><type name="t" local="true"/></var></app></app></prems><concls><app><const name="HOL.eq"/><var name="v"><type name="t" local="true"/></var><var name="vqt"><type name="t" local="true"/></var></app></concls></lemma><lemma name="to_int_extensionality" altname="to_int_extensionality" path="bv.BV32"><prems><app><const name="HOL.eq"/><app><const name="Word.sint"/><var name="v"><type name="t" local="true"/></var></app><app><const name="Word.sint"/><var name="vqt"><type name="t" local="true"/></var></app></app></prems><concls><app><const name="HOL.eq"/><var name="v"><type name="t" local="true"/></var><var name="vqt"><type name="t" local="true"/></var></app></concls></lemma><definition altname="uint_in_range" path="bv.BV32"><app><const name="HOL.eq"/><app><var name="uint_in_range"><pred><type name="Int.int"/></pred></var><var name="i"><type name="Int.int"/></var></app><app><const name="HOL.conj"/><app><const name="Orderings.ord_class.less_eq"/><num val="0"><type name="Int.int"/></num><var name="i"><type name="Int.int"/></var></app><app><const name="Orderings.ord_class.less_eq"/><var name="i"><type name="Int.int"/></var><num val="4294967295"><type name="Int.int"/></num></app></app></app></definition><lemma name="to_uint_bounds" altname="to_uint_bounds" path="bv.BV32"><prems/><concls><app><const name="Orderings.ord_class.less_eq"/><num val="0"><type name="Int.int"/></num><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v"><type name="t" local="true"/></var></app></app><app><const name="Orderings.ord_class.less"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v"><type name="t" local="true"/></var></app><num val="4294967296"><type name="Int.int"/></num></app></concls></lemma><lemma name="to_uint_of_int" altname="to_uint_of_int" path="bv.BV32"><prems><app><const name="Orderings.ord_class.less_eq"/><num val="0"><type name="Int.int"/></num><var name="i"><type name="Int.int"/></var></app><app><const name="Orderings.ord_class.less"/><var name="i"><type name="Int.int"/></var><num val="4294967296"><type name="Int.int"/></num></app></prems><concls><app><const name="HOL.eq"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><app><const name="of_int" local="true"><fun><type name="Int.int"/><type name="t" local="true"/></fun></const><var name="i"><type name="Int.int"/></var></app></app><var name="i"><type name="Int.int"/></var></app></concls></lemma><param name="size_bv" altname="size_bv" path="bv.BV32"><type name="t" local="true"/></param><lemma name="to_uint_size_bv" altname="to_uint_size_bv" path="bv.BV32"><prems/><concls><app><const name="HOL.eq"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><const name="size_bv" local="true"><type name="t" local="true"/></const></app><num val="32"><type name="Int.int"/></num></app></concls></lemma><lemma name="to_uint_zeros" altname="to_uint_zeros" path="bv.BV32"><prems/><concls><app><const name="HOL.eq"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><const name="zeros" local="true"><type name="t" local="true"/></const></app><num val="0"><type name="Int.int"/></num></app></concls></lemma><lemma name="to_uint_one" altname="to_uint_one" path="bv.BV32"><prems/><concls><app><const name="HOL.eq"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><const name="one" local="true"><type name="t" local="true"/></const></app><num val="1"><type name="Int.int"/></num></app></concls></lemma><lemma name="to_uint_ones" altname="to_uint_ones" path="bv.BV32"><prems/><concls><app><const name="HOL.eq"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><const name="ones" local="true"><type name="t" local="true"/></const></app><num val="4294967295"><type name="Int.int"/></num></app></concls></lemma><definition altname="ult" path="bv.BV32"><app><const name="HOL.eq"/><app><var name="ult"><pred><type name="t" local="true"/><type name="t" local="true"/></pred></var><var name="x"><type name="t" local="true"/></var><var name="y"><type name="t" local="true"/></var></app><app><const name="Orderings.ord_class.less"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="x"><type name="t" local="true"/></var></app><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="y"><type name="t" local="true"/></var></app></app></app></definition><definition altname="ule" path="bv.BV32"><app><const name="HOL.eq"/><app><var name="ule"><pred><type name="t" local="true"/><type name="t" local="true"/></pred></var><var name="x"><type name="t" local="true"/></var><var name="y"><type name="t" local="true"/></var></app><app><const name="Orderings.ord_class.less_eq"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="x"><type name="t" local="true"/></var></app><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="y"><type name="t" local="true"/></var></app></app></app></definition><definition altname="ugt" path="bv.BV32"><app><const name="HOL.eq"/><app><var name="ugt"><pred><type name="t" local="true"/><type name="t" local="true"/></pred></var><var name="x"><type name="t" local="true"/></var><var name="y"><type name="t" local="true"/></var></app><app><const name="Orderings.ord_class.less"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="y"><type name="t" local="true"/></var></app><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="x"><type name="t" local="true"/></var></app></app></app></definition><definition altname="uge" path="bv.BV32"><app><const name="HOL.eq"/><app><var name="uge"><pred><type name="t" local="true"/><type name="t" local="true"/></pred></var><var name="x"><type name="t" local="true"/></var><var name="y"><type name="t" local="true"/></var></app><app><const name="Orderings.ord_class.less_eq"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="y"><type name="t" local="true"/></var></app><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="x"><type name="t" local="true"/></var></app></app></app></definition><definition altname="slt" path="bv.BV32"><app><const name="HOL.eq"/><app><var name="slt"><pred><type name="t" local="true"/><type name="t" local="true"/></pred></var><var name="v1"><type name="t" local="true"/></var><var name="v2"><type name="t" local="true"/></var></app><app><const name="Orderings.ord_class.less"/><app><const name="Word.sint"/><var name="v1"><type name="t" local="true"/></var></app><app><const name="Word.sint"/><var name="v2"><type name="t" local="true"/></var></app></app></app></definition><definition altname="sle" path="bv.BV32"><app><const name="HOL.eq"/><app><var name="sle"><pred><type name="t" local="true"/><type name="t" local="true"/></pred></var><var name="v1"><type name="t" local="true"/></var><var name="v2"><type name="t" local="true"/></var></app><app><const name="Orderings.ord_class.less_eq"/><app><const name="Word.sint"/><var name="v1"><type name="t" local="true"/></var></app><app><const name="Word.sint"/><var name="v2"><type name="t" local="true"/></var></app></app></app></definition><definition altname="sgt" path="bv.BV32"><app><const name="HOL.eq"/><app><var name="sgt"><pred><type name="t" local="true"/><type name="t" local="true"/></pred></var><var name="v1"><type name="t" local="true"/></var><var name="v2"><type name="t" local="true"/></var></app><app><const name="Orderings.ord_class.less"/><app><const name="Word.sint"/><var name="v2"><type name="t" local="true"/></var></app><app><const name="Word.sint"/><var name="v1"><type name="t" local="true"/></var></app></app></app></definition><definition altname="sge" path="bv.BV32"><app><const name="HOL.eq"/><app><var name="sge"><pred><type name="t" local="true"/><type name="t" local="true"/></pred></var><var name="v1"><type name="t" local="true"/></var><var name="v2"><type name="t" local="true"/></var></app><app><const name="Orderings.ord_class.less_eq"/><app><const name="Word.sint"/><var name="v2"><type name="t" local="true"/></var></app><app><const name="Word.sint"/><var name="v1"><type name="t" local="true"/></var></app></app></app></definition><lemma name="positive_is_ge_zeros" altname="positive_is_ge_zeros" path="bv.BV32"><prems/><concls><app><const name="HOL.eq"/><app><const name="is_signed_positive" local="true"><pred><type name="t" local="true"/></pred></const><var name="x"><type name="t" local="true"/></var></app><app><const name="sge" local="true"><pred><type name="t" local="true"/><type name="t" local="true"/></pred></const><var name="x"><type name="t" local="true"/></var><const name="zeros" local="true"><type name="t" local="true"/></const></app></app></concls></lemma><param name="add" altname="add" path="bv.BV32"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></param><lemma name="to_uint_add" altname="to_uint_add" path="bv.BV32"><prems/><concls><app><const name="HOL.eq"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><app><const name="add" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></const><var name="v1"><type name="t" local="true"/></var><var name="v2"><type name="t" local="true"/></var></app></app><app><const name="mod" path="int.EuclideanDivision"><fun><type name="Int.int"/><type name="Int.int"/><type name="Int.int"/></fun></const><app><const name="Groups.plus_class.plus"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v1"><type name="t" local="true"/></var></app><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v2"><type name="t" local="true"/></var></app></app><num val="4294967296"><type name="Int.int"/></num></app></app></concls></lemma><lemma name="to_uint_add_bounded" altname="to_uint_add_bounded" path="bv.BV32"><prems><app><const name="Orderings.ord_class.less"/><app><const name="Groups.plus_class.plus"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v1"><type name="t" local="true"/></var></app><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v2"><type name="t" local="true"/></var></app></app><num val="4294967296"><type name="Int.int"/></num></app></prems><concls><app><const name="HOL.eq"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><app><const name="add" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></const><var name="v1"><type name="t" local="true"/></var><var name="v2"><type name="t" local="true"/></var></app></app><app><const name="Groups.plus_class.plus"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v1"><type name="t" local="true"/></var></app><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v2"><type name="t" local="true"/></var></app></app></app></concls></lemma><param name="sub" altname="sub" path="bv.BV32"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></param><lemma name="to_uint_sub" altname="to_uint_sub" path="bv.BV32"><prems/><concls><app><const name="HOL.eq"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><app><const name="sub" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></const><var name="v1"><type name="t" local="true"/></var><var name="v2"><type name="t" local="true"/></var></app></app><app><const name="mod" path="int.EuclideanDivision"><fun><type name="Int.int"/><type name="Int.int"/><type name="Int.int"/></fun></const><app><const name="Groups.minus_class.minus"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v1"><type name="t" local="true"/></var></app><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v2"><type name="t" local="true"/></var></app></app><num val="4294967296"><type name="Int.int"/></num></app></app></concls></lemma><lemma name="to_uint_sub_bounded" altname="to_uint_sub_bounded" path="bv.BV32"><prems><app><const name="Orderings.ord_class.less_eq"/><num val="0"><type name="Int.int"/></num><app><const name="Groups.minus_class.minus"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v1"><type name="t" local="true"/></var></app><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v2"><type name="t" local="true"/></var></app></app></app><app><const name="Orderings.ord_class.less"/><app><const name="Groups.minus_class.minus"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v1"><type name="t" local="true"/></var></app><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v2"><type name="t" local="true"/></var></app></app><num val="4294967296"><type name="Int.int"/></num></app></prems><concls><app><const name="HOL.eq"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><app><const name="sub" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></const><var name="v1"><type name="t" local="true"/></var><var name="v2"><type name="t" local="true"/></var></app></app><app><const name="Groups.minus_class.minus"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v1"><type name="t" local="true"/></var></app><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v2"><type name="t" local="true"/></var></app></app></app></concls></lemma><param name="neg" altname="neg" path="bv.BV32"><fun><type name="t" local="true"/><type name="t" local="true"/></fun></param><lemma name="to_uint_neg" altname="to_uint_neg" path="bv.BV32"><prems/><concls><app><const name="HOL.eq"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><app><const name="neg" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/></fun></const><var name="v"><type name="t" local="true"/></var></app></app><app><const name="mod" path="int.EuclideanDivision"><fun><type name="Int.int"/><type name="Int.int"/><type name="Int.int"/></fun></const><app><const name="Groups.uminus_class.uminus"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v"><type name="t" local="true"/></var></app></app><num val="4294967296"><type name="Int.int"/></num></app></app></concls></lemma><param name="mul" altname="mul" path="bv.BV32"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></param><lemma name="to_uint_mul" altname="to_uint_mul" path="bv.BV32"><prems/><concls><app><const name="HOL.eq"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><app><const name="mul" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></const><var name="v1"><type name="t" local="true"/></var><var name="v2"><type name="t" local="true"/></var></app></app><app><const name="mod" path="int.EuclideanDivision"><fun><type name="Int.int"/><type name="Int.int"/><type name="Int.int"/></fun></const><app><const name="Groups.times_class.times"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v1"><type name="t" local="true"/></var></app><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v2"><type name="t" local="true"/></var></app></app><num val="4294967296"><type name="Int.int"/></num></app></app></concls></lemma><lemma name="to_uint_mul_bounded" altname="to_uint_mul_bounded" path="bv.BV32"><prems><app><const name="Orderings.ord_class.less"/><app><const name="Groups.times_class.times"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v1"><type name="t" local="true"/></var></app><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v2"><type name="t" local="true"/></var></app></app><num val="4294967296"><type name="Int.int"/></num></app></prems><concls><app><const name="HOL.eq"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><app><const name="mul" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></const><var name="v1"><type name="t" local="true"/></var><var name="v2"><type name="t" local="true"/></var></app></app><app><const name="Groups.times_class.times"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v1"><type name="t" local="true"/></var></app><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v2"><type name="t" local="true"/></var></app></app></app></concls></lemma><param name="udiv" altname="udiv" path="bv.BV32"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></param><lemma name="to_uint_udiv" altname="to_uint_udiv" path="bv.BV32"><prems/><concls><app><const name="HOL.eq"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><app><const name="udiv" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></const><var name="v1"><type name="t" local="true"/></var><var name="v2"><type name="t" local="true"/></var></app></app><app><const name="div" path="int.EuclideanDivision"><fun><type name="Int.int"/><type name="Int.int"/><type name="Int.int"/></fun></const><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v1"><type name="t" local="true"/></var></app><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v2"><type name="t" local="true"/></var></app></app></app></concls></lemma><param name="urem" altname="urem" path="bv.BV32"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></param><lemma name="to_uint_urem" altname="to_uint_urem" path="bv.BV32"><prems/><concls><app><const name="HOL.eq"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><app><const name="urem" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></const><var name="v1"><type name="t" local="true"/></var><var name="v2"><type name="t" local="true"/></var></app></app><app><const name="mod" path="int.EuclideanDivision"><fun><type name="Int.int"/><type name="Int.int"/><type name="Int.int"/></fun></const><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v1"><type name="t" local="true"/></var></app><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v2"><type name="t" local="true"/></var></app></app></app></concls></lemma><param name="lsr_bv" altname="lsr_bv" path="bv.BV32"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></param><lemma name="lsr_bv_is_lsr" altname="lsr_bv_is_lsr" path="bv.BV32"><prems/><concls><app><const name="HOL.eq"/><app><const name="lsr_bv" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></const><var name="x"><type name="t" local="true"/></var><var name="n"><type name="t" local="true"/></var></app><app><const name="lsr" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="t" local="true"/></fun></const><var name="x"><type name="t" local="true"/></var><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="n"><type name="t" local="true"/></var></app></app></app></concls></lemma><lemma name="to_uint_lsr" altname="to_uint_lsr" path="bv.BV32"><prems/><concls><app><const name="HOL.eq"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><app><const name="lsr_bv" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></const><var name="v"><type name="t" local="true"/></var><var name="n"><type name="t" local="true"/></var></app></app><app><const name="div" path="int.EuclideanDivision"><fun><type name="Int.int"/><type name="Int.int"/><type name="Int.int"/></fun></const><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v"><type name="t" local="true"/></var></app><app><const name="pow2" path="bv.Pow2int"><fun><type name="Int.int"/><type name="Int.int"/></fun></const><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="n"><type name="t" local="true"/></var></app></app></app></app></concls></lemma><param name="asr_bv" altname="asr_bv" path="bv.BV32"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></param><lemma name="asr_bv_is_asr" altname="asr_bv_is_asr" path="bv.BV32"><prems/><concls><app><const name="HOL.eq"/><app><const name="asr_bv" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></const><var name="x"><type name="t" local="true"/></var><var name="n"><type name="t" local="true"/></var></app><app><const name="asr" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="t" local="true"/></fun></const><var name="x"><type name="t" local="true"/></var><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="n"><type name="t" local="true"/></var></app></app></app></concls></lemma><param name="lsl_bv" altname="lsl_bv" path="bv.BV32"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></param><lemma name="lsl_bv_is_lsl" altname="lsl_bv_is_lsl" path="bv.BV32"><prems/><concls><app><const name="HOL.eq"/><app><const name="lsl_bv" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></const><var name="x"><type name="t" local="true"/></var><var name="n"><type name="t" local="true"/></var></app><app><const name="lsl" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="t" local="true"/></fun></const><var name="x"><type name="t" local="true"/></var><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="n"><type name="t" local="true"/></var></app></app></app></concls></lemma><lemma name="to_uint_lsl" altname="to_uint_lsl" path="bv.BV32"><prems/><concls><app><const name="HOL.eq"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><app><const name="lsl_bv" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></const><var name="v"><type name="t" local="true"/></var><var name="n"><type name="t" local="true"/></var></app></app><app><const name="mod" path="int.EuclideanDivision"><fun><type name="Int.int"/><type name="Int.int"/><type name="Int.int"/></fun></const><app><const name="Groups.times_class.times"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v"><type name="t" local="true"/></var></app><app><const name="pow2" path="bv.Pow2int"><fun><type name="Int.int"/><type name="Int.int"/></fun></const><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="n"><type name="t" local="true"/></var></app></app></app><num val="4294967296"><type name="Int.int"/></num></app></app></concls></lemma><param name="rotate_right_bv" altname="rotate_right_bv" path="bv.BV32"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></param><param name="rotate_left_bv" altname="rotate_left_bv" path="bv.BV32"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></param><lemma name="rotate_left_bv_is_rotate_left" altname="rotate_left_bv_is_rotate_left" path="bv.BV32"><prems/><concls><app><const name="HOL.eq"/><app><const name="rotate_left_bv" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></const><var name="v"><type name="t" local="true"/></var><var name="n"><type name="t" local="true"/></var></app><app><const name="rotate_left" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="t" local="true"/></fun></const><var name="v"><type name="t" local="true"/></var><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="n"><type name="t" local="true"/></var></app></app></app></concls></lemma><lemma name="rotate_right_bv_is_rotate_right" altname="rotate_right_bv_is_rotate_right" path="bv.BV32"><prems/><concls><app><const name="HOL.eq"/><app><const name="rotate_right_bv" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></const><var name="v"><type name="t" local="true"/></var><var name="n"><type name="t" local="true"/></var></app><app><const name="rotate_right" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="t" local="true"/></fun></const><var name="v"><type name="t" local="true"/></var><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="n"><type name="t" local="true"/></var></app></app></app></concls></lemma><param name="nth_bv" altname="nth_bv" path="bv.BV32"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="HOL.bool"/></fun></param><lemma name="nth_bv_def" altname="nth_bv_def" path="bv.BV32"><prems/><concls><app><const name="HOL.eq"/><app><const name="HOL.eq"/><app><const name="nth_bv" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="HOL.bool"/></fun></const><var name="x"><type name="t" local="true"/></var><var name="i"><type name="t" local="true"/></var></app><const name="HOL.True"/></app><app><const name="HOL.Not"/><app><const name="HOL.eq"/><app><const name="bw_and" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></const><app><const name="lsr_bv" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></const><var name="x"><type name="t" local="true"/></var><var name="i"><type name="t" local="true"/></var></app><const name="one" local="true"><type name="t" local="true"/></const></app><const name="zeros" local="true"><type name="t" local="true"/></const></app></app></app></concls></lemma><lemma name="Nth_bv_is_nth" altname="Nth_bv_is_nth" path="bv.BV32"><prems/><concls><app><const name="HOL.eq"/><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><var name="x"><type name="t" local="true"/></var><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="i"><type name="t" local="true"/></var></app></app><app><const name="nth_bv" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="HOL.bool"/></fun></const><var name="x"><type name="t" local="true"/></var><var name="i"><type name="t" local="true"/></var></app></app></concls></lemma><lemma name="Nth_bv_is_nth2" altname="Nth_bv_is_nth2" path="bv.BV32"><prems><app><const name="Orderings.ord_class.less_eq"/><num val="0"><type name="Int.int"/></num><var name="i"><type name="Int.int"/></var></app><app><const name="Orderings.ord_class.less"/><var name="i"><type name="Int.int"/></var><num val="4294967296"><type name="Int.int"/></num></app></prems><concls><app><const name="HOL.eq"/><app><const name="nth_bv" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="HOL.bool"/></fun></const><var name="x"><type name="t" local="true"/></var><app><const name="of_int" local="true"><fun><type name="Int.int"/><type name="t" local="true"/></fun></const><var name="i"><type name="Int.int"/></var></app></app><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><var name="x"><type name="t" local="true"/></var><var name="i"><type name="Int.int"/></var></app></app></concls></lemma><param name="eq_sub_bv" altname="eq_sub_bv" path="bv.BV32"><pred><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></pred></param><lemma name="eq_sub_bv_def" altname="eq_sub_bv_def" path="bv.BV32"><prems/><concls><app><const name="HOL.eq"/><app><const name="eq_sub_bv" local="true"><pred><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></pred></const><var name="a"><type name="t" local="true"/></var><var name="b"><type name="t" local="true"/></var><var name="i"><type name="t" local="true"/></var><var name="n"><type name="t" local="true"/></var></app><app><const name="HOL.eq"/><app><const name="bw_and" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></const><var name="b"><type name="t" local="true"/></var><app><const name="lsl_bv" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></const><app><const name="sub" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></const><app><const name="lsl_bv" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></const><const name="one" local="true"><type name="t" local="true"/></const><var name="n"><type name="t" local="true"/></var></app><const name="one" local="true"><type name="t" local="true"/></const></app><var name="i"><type name="t" local="true"/></var></app></app><app><const name="bw_and" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></const><var name="a"><type name="t" local="true"/></var><app><const name="lsl_bv" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></const><app><const name="sub" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></const><app><const name="lsl_bv" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></const><const name="one" local="true"><type name="t" local="true"/></const><var name="n"><type name="t" local="true"/></var></app><const name="one" local="true"><type name="t" local="true"/></const></app><var name="i"><type name="t" local="true"/></var></app></app></app></app></concls></lemma><definition altname="eq_sub" path="bv.BV32"><app><const name="HOL.eq"/><app><var name="eq_sub"><pred><type name="t" local="true"/><type name="t" local="true"/><type name="Int.int"/><type name="Int.int"/></pred></var><var name="a"><type name="t" local="true"/></var><var name="b"><type name="t" local="true"/></var><var name="i"><type name="Int.int"/></var><var name="n"><type name="Int.int"/></var></app><app><const name="HOL.All"/><abs name="j"><type name="Int.int"/><app><const name="HOL.implies"/><app><const name="HOL.conj"/><app><const name="Orderings.ord_class.less_eq"/><var name="i"><type name="Int.int"/></var><var name="j"><type name="Int.int"/></var></app><app><const name="Orderings.ord_class.less"/><var name="j"><type name="Int.int"/></var><app><const name="Groups.plus_class.plus"/><var name="i"><type name="Int.int"/></var><var name="n"><type name="Int.int"/></var></app></app></app><app><const name="HOL.eq"/><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><var name="a"><type name="t" local="true"/></var><var name="j"><type name="Int.int"/></var></app><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><var name="b"><type name="t" local="true"/></var><var name="j"><type name="Int.int"/></var></app></app></app></abs></app></app></definition><lemma name="eq_sub_equiv" altname="eq_sub_equiv" path="bv.BV32"><prems/><concls><app><const name="HOL.eq"/><app><const name="eq_sub" local="true"><pred><type name="t" local="true"/><type name="t" local="true"/><type name="Int.int"/><type name="Int.int"/></pred></const><var name="a"><type name="t" local="true"/></var><var name="b"><type name="t" local="true"/></var><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="i"><type name="t" local="true"/></var></app><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="n"><type name="t" local="true"/></var></app></app><app><const name="eq_sub_bv" local="true"><pred><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></pred></const><var name="a"><type name="t" local="true"/></var><var name="b"><type name="t" local="true"/></var><var name="i"><type name="t" local="true"/></var><var name="n"><type name="t" local="true"/></var></app></app></concls></lemma><lemma name="Extensionality" altname="Extensionality" path="bv.BV32"><prems><app><const name="eq_sub" local="true"><pred><type name="t" local="true"/><type name="t" local="true"/><type name="Int.int"/><type name="Int.int"/></pred></const><var name="x"><type name="t" local="true"/></var><var name="y"><type name="t" local="true"/></var><num val="0"><type name="Int.int"/></num><num val="32"><type name="Int.int"/></num></app></prems><concls><app><const name="HOL.eq"/><var name="x"><type name="t" local="true"/></var><var name="y"><type name="t" local="true"/></var></app></concls></lemma></theory>
\ No newline at end of file
<theory name="bv.BV64" realize="true"><realized><require name="why3.BuiltIn.BuiltIn"/><require name="bool.Bool"/><require name="int.Int"/><require name="int.Abs"/><require name="int.EuclideanDivision"/><require name="bv.Pow2int"/></realized><typedecl name="t" altname="t" path="bv.BV64"><params/></typedecl><param name="tqtint" altname="t&#39;int" path="bv.BV64"><fun><type name="t" local="true"/><type name="Int.int"/></fun></param><param name="nth" altname="nth" path="bv.BV64"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></param><lemma name="nth_out_of_bound" altname="nth_out_of_bound" path="bv.BV64"><prems><app><const name="HOL.disj"/><app><const name="Orderings.ord_class.less"/><var name="n"><type name="Int.int"/></var><num val="0"><type name="Int.int"/></num></app><app><const name="Orderings.ord_class.less_eq"/><num val="64"><type name="Int.int"/></num><var name="n"><type name="Int.int"/></var></app></app></prems><concls><app><const name="HOL.eq"/><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><var name="x"><type name="t" local="true"/></var><var name="n"><type name="Int.int"/></var></app><const name="HOL.False"/></app></concls></lemma><param name="zeros" altname="zeros" path="bv.BV64"><type name="t" local="true"/></param><lemma name="Nth_zeros" altname="Nth_zeros" path="bv.BV64"><prems/><concls><app><const name="HOL.eq"/><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><const name="zeros" local="true"><type name="t" local="true"/></const><var name="n"><type name="Int.int"/></var></app><const name="HOL.False"/></app></concls></lemma><param name="one" altname="one" path="bv.BV64"><type name="t" local="true"/></param><param name="ones" altname="ones" path="bv.BV64"><type name="t" local="true"/></param><lemma name="Nth_ones" altname="Nth_ones" path="bv.BV64"><prems><app><const name="Orderings.ord_class.less_eq"/><num val="0"><type name="Int.int"/></num><var name="n"><type name="Int.int"/></var></app><app><const name="Orderings.ord_class.less"/><var name="n"><type name="Int.int"/></var><num val="64"><type name="Int.int"/></num></app></prems><concls><app><const name="HOL.eq"/><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><const name="ones" local="true"><type name="t" local="true"/></const><var name="n"><type name="Int.int"/></var></app><const name="HOL.True"/></app></concls></lemma><param name="bw_and" altname="bw_and" path="bv.BV64"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></param><lemma name="Nth_bw_and" altname="Nth_bw_and" path="bv.BV64"><prems><app><const name="Orderings.ord_class.less_eq"/><num val="0"><type name="Int.int"/></num><var name="n"><type name="Int.int"/></var></app><app><const name="Orderings.ord_class.less"/><var name="n"><type name="Int.int"/></var><num val="64"><type name="Int.int"/></num></app></prems><concls><app><const name="HOL.eq"/><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><app><const name="bw_and" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></const><var name="v1"><type name="t" local="true"/></var><var name="v2"><type name="t" local="true"/></var></app><var name="n"><type name="Int.int"/></var></app><app><const name="HOL.conj"/><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><var name="v1"><type name="t" local="true"/></var><var name="n"><type name="Int.int"/></var></app><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><var name="v2"><type name="t" local="true"/></var><var name="n"><type name="Int.int"/></var></app></app></app></concls></lemma><param name="bw_or" altname="bw_or" path="bv.BV64"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></param><lemma name="Nth_bw_or" altname="Nth_bw_or" path="bv.BV64"><prems><app><const name="Orderings.ord_class.less_eq"/><num val="0"><type name="Int.int"/></num><var name="n"><type name="Int.int"/></var></app><app><const name="Orderings.ord_class.less"/><var name="n"><type name="Int.int"/></var><num val="64"><type name="Int.int"/></num></app></prems><concls><app><const name="HOL.eq"/><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><app><const name="bw_or" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></const><var name="v1"><type name="t" local="true"/></var><var name="v2"><type name="t" local="true"/></var></app><var name="n"><type name="Int.int"/></var></app><app><const name="HOL.disj"/><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><var name="v1"><type name="t" local="true"/></var><var name="n"><type name="Int.int"/></var></app><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><var name="v2"><type name="t" local="true"/></var><var name="n"><type name="Int.int"/></var></app></app></app></concls></lemma><param name="bw_xor" altname="bw_xor" path="bv.BV64"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></param><lemma name="Nth_bw_xor" altname="Nth_bw_xor" path="bv.BV64"><prems><app><const name="Orderings.ord_class.less_eq"/><num val="0"><type name="Int.int"/></num><var name="n"><type name="Int.int"/></var></app><app><const name="Orderings.ord_class.less"/><var name="n"><type name="Int.int"/></var><num val="64"><type name="Int.int"/></num></app></prems><concls><app><const name="HOL.eq"/><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><app><const name="bw_xor" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></const><var name="v1"><type name="t" local="true"/></var><var name="v2"><type name="t" local="true"/></var></app><var name="n"><type name="Int.int"/></var></app><app><const name="HOL.Not"/><app><const name="HOL.eq"/><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><var name="v1"><type name="t" local="true"/></var><var name="n"><type name="Int.int"/></var></app><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><var name="v2"><type name="t" local="true"/></var><var name="n"><type name="Int.int"/></var></app></app></app></app></concls></lemma><param name="bw_not" altname="bw_not" path="bv.BV64"><fun><type name="t" local="true"/><type name="t" local="true"/></fun></param><lemma name="Nth_bw_not" altname="Nth_bw_not" path="bv.BV64"><prems><app><const name="Orderings.ord_class.less_eq"/><num val="0"><type name="Int.int"/></num><var name="n"><type name="Int.int"/></var></app><app><const name="Orderings.ord_class.less"/><var name="n"><type name="Int.int"/></var><num val="64"><type name="Int.int"/></num></app></prems><concls><app><const name="HOL.eq"/><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><app><const name="bw_not" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/></fun></const><var name="v"><type name="t" local="true"/></var></app><var name="n"><type name="Int.int"/></var></app><app><const name="HOL.Not"/><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><var name="v"><type name="t" local="true"/></var><var name="n"><type name="Int.int"/></var></app></app></app></concls></lemma><param name="lsr" altname="lsr" path="bv.BV64"><fun><type name="t" local="true"/><type name="Int.int"/><type name="t" local="true"/></fun></param><lemma name="Lsr_nth_low" altname="Lsr_nth_low" path="bv.BV64"><prems><app><const name="Orderings.ord_class.less_eq"/><num val="0"><type name="Int.int"/></num><var name="s"><type name="Int.int"/></var></app><app><const name="Orderings.ord_class.less_eq"/><num val="0"><type name="Int.int"/></num><var name="n"><type name="Int.int"/></var></app><app><const name="Orderings.ord_class.less"/><app><const name="Groups.plus_class.plus"/><var name="n"><type name="Int.int"/></var><var name="s"><type name="Int.int"/></var></app><num val="64"><type name="Int.int"/></num></app></prems><concls><app><const name="HOL.eq"/><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><app><const name="lsr" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="t" local="true"/></fun></const><var name="b"><type name="t" local="true"/></var><var name="s"><type name="Int.int"/></var></app><var name="n"><type name="Int.int"/></var></app><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><var name="b"><type name="t" local="true"/></var><app><const name="Groups.plus_class.plus"/><var name="n"><type name="Int.int"/></var><var name="s"><type name="Int.int"/></var></app></app></app></concls></lemma><lemma name="Lsr_nth_high" altname="Lsr_nth_high" path="bv.BV64"><prems><app><const name="Orderings.ord_class.less_eq"/><num val="0"><type name="Int.int"/></num><var name="s"><type name="Int.int"/></var></app><app><const name="Orderings.ord_class.less_eq"/><num val="0"><type name="Int.int"/></num><var name="n"><type name="Int.int"/></var></app><app><const name="Orderings.ord_class.less_eq"/><num val="64"><type name="Int.int"/></num><app><const name="Groups.plus_class.plus"/><var name="n"><type name="Int.int"/></var><var name="s"><type name="Int.int"/></var></app></app></prems><concls><app><const name="HOL.eq"/><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><app><const name="lsr" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="t" local="true"/></fun></const><var name="b"><type name="t" local="true"/></var><var name="s"><type name="Int.int"/></var></app><var name="n"><type name="Int.int"/></var></app><const name="HOL.False"/></app></concls></lemma><lemma name="lsr_zeros" altname="lsr_zeros" path="bv.BV64"><prems/><concls><app><const name="HOL.eq"/><app><const name="lsr" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="t" local="true"/></fun></const><var name="x"><type name="t" local="true"/></var><num val="0"><type name="Int.int"/></num></app><var name="x"><type name="t" local="true"/></var></app></concls></lemma><param name="asr" altname="asr" path="bv.BV64"><fun><type name="t" local="true"/><type name="Int.int"/><type name="t" local="true"/></fun></param><lemma name="Asr_nth_low" altname="Asr_nth_low" path="bv.BV64"><prems><app><const name="Orderings.ord_class.less_eq"/><num val="0"><type name="Int.int"/></num><var name="s"><type name="Int.int"/></var></app><app><const name="Orderings.ord_class.less_eq"/><num val="0"><type name="Int.int"/></num><var name="n"><type name="Int.int"/></var></app><app><const name="Orderings.ord_class.less"/><var name="n"><type name="Int.int"/></var><num val="64"><type name="Int.int"/></num></app><app><const name="Orderings.ord_class.less"/><app><const name="Groups.plus_class.plus"/><var name="n"><type name="Int.int"/></var><var name="s"><type name="Int.int"/></var></app><num val="64"><type name="Int.int"/></num></app></prems><concls><app><const name="HOL.eq"/><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><app><const name="asr" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="t" local="true"/></fun></const><var name="b"><type name="t" local="true"/></var><var name="s"><type name="Int.int"/></var></app><var name="n"><type name="Int.int"/></var></app><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><var name="b"><type name="t" local="true"/></var><app><const name="Groups.plus_class.plus"/><var name="n"><type name="Int.int"/></var><var name="s"><type name="Int.int"/></var></app></app></app></concls></lemma><lemma name="Asr_nth_high" altname="Asr_nth_high" path="bv.BV64"><prems><app><const name="Orderings.ord_class.less_eq"/><num val="0"><type name="Int.int"/></num><var name="s"><type name="Int.int"/></var></app><app><const name="Orderings.ord_class.less_eq"/><num val="0"><type name="Int.int"/></num><var name="n"><type name="Int.int"/></var></app><app><const name="Orderings.ord_class.less"/><var name="n"><type name="Int.int"/></var><num val="64"><type name="Int.int"/></num></app><app><const name="Orderings.ord_class.less_eq"/><num val="64"><type name="Int.int"/></num><app><const name="Groups.plus_class.plus"/><var name="n"><type name="Int.int"/></var><var name="s"><type name="Int.int"/></var></app></app></prems><concls><app><const name="HOL.eq"/><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><app><const name="asr" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="t" local="true"/></fun></const><var name="b"><type name="t" local="true"/></var><var name="s"><type name="Int.int"/></var></app><var name="n"><type name="Int.int"/></var></app><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><var name="b"><type name="t" local="true"/></var><app><const name="Groups.minus_class.minus"/><num val="64"><type name="Int.int"/></num><num val="1"><type name="Int.int"/></num></app></app></app></concls></lemma><lemma name="asr_zeros" altname="asr_zeros" path="bv.BV64"><prems/><concls><app><const name="HOL.eq"/><app><const name="asr" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="t" local="true"/></fun></const><var name="x"><type name="t" local="true"/></var><num val="0"><type name="Int.int"/></num></app><var name="x"><type name="t" local="true"/></var></app></concls></lemma><param name="lsl" altname="lsl" path="bv.BV64"><fun><type name="t" local="true"/><type name="Int.int"/><type name="t" local="true"/></fun></param><lemma name="Lsl_nth_high" altname="Lsl_nth_high" path="bv.BV64"><prems><app><const name="Orderings.ord_class.less_eq"/><num val="0"><type name="Int.int"/></num><var name="s"><type name="Int.int"/></var></app><app><const name="Orderings.ord_class.less_eq"/><var name="s"><type name="Int.int"/></var><var name="n"><type name="Int.int"/></var></app><app><const name="Orderings.ord_class.less"/><var name="n"><type name="Int.int"/></var><num val="64"><type name="Int.int"/></num></app></prems><concls><app><const name="HOL.eq"/><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><app><const name="lsl" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="t" local="true"/></fun></const><var name="b"><type name="t" local="true"/></var><var name="s"><type name="Int.int"/></var></app><var name="n"><type name="Int.int"/></var></app><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><var name="b"><type name="t" local="true"/></var><app><const name="Groups.minus_class.minus"/><var name="n"><type name="Int.int"/></var><var name="s"><type name="Int.int"/></var></app></app></app></concls></lemma><lemma name="Lsl_nth_low" altname="Lsl_nth_low" path="bv.BV64"><prems><app><const name="Orderings.ord_class.less_eq"/><num val="0"><type name="Int.int"/></num><var name="n"><type name="Int.int"/></var></app><app><const name="Orderings.ord_class.less"/><var name="n"><type name="Int.int"/></var><var name="s"><type name="Int.int"/></var></app></prems><concls><app><const name="HOL.eq"/><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><app><const name="lsl" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="t" local="true"/></fun></const><var name="b"><type name="t" local="true"/></var><var name="s"><type name="Int.int"/></var></app><var name="n"><type name="Int.int"/></var></app><const name="HOL.False"/></app></concls></lemma><lemma name="lsl_zeros" altname="lsl_zeros" path="bv.BV64"><prems/><concls><app><const name="HOL.eq"/><app><const name="lsl" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="t" local="true"/></fun></const><var name="x"><type name="t" local="true"/></var><num val="0"><type name="Int.int"/></num></app><var name="x"><type name="t" local="true"/></var></app></concls></lemma><param name="rotate_right" altname="rotate_right" path="bv.BV64"><fun><type name="t" local="true"/><type name="Int.int"/><type name="t" local="true"/></fun></param><lemma name="Nth_rotate_right" altname="Nth_rotate_right" path="bv.BV64"><prems><app><const name="Orderings.ord_class.less_eq"/><num val="0"><type name="Int.int"/></num><var name="i"><type name="Int.int"/></var></app><app><const name="Orderings.ord_class.less"/><var name="i"><type name="Int.int"/></var><num val="64"><type name="Int.int"/></num></app><app><const name="Orderings.ord_class.less_eq"/><num val="0"><type name="Int.int"/></num><var name="n"><type name="Int.int"/></var></app></prems><concls><app><const name="HOL.eq"/><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><app><const name="rotate_right" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="t" local="true"/></fun></const><var name="v"><type name="t" local="true"/></var><var name="n"><type name="Int.int"/></var></app><var name="i"><type name="Int.int"/></var></app><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><var name="v"><type name="t" local="true"/></var><app><const name="mod" path="int.EuclideanDivision"><fun><type name="Int.int"/><type name="Int.int"/><type name="Int.int"/></fun></const><app><const name="Groups.plus_class.plus"/><var name="i"><type name="Int.int"/></var><var name="n"><type name="Int.int"/></var></app><num val="64"><type name="Int.int"/></num></app></app></app></concls></lemma><param name="rotate_left" altname="rotate_left" path="bv.BV64"><fun><type name="t" local="true"/><type name="Int.int"/><type name="t" local="true"/></fun></param><lemma name="Nth_rotate_left" altname="Nth_rotate_left" path="bv.BV64"><prems><app><const name="Orderings.ord_class.less_eq"/><num val="0"><type name="Int.int"/></num><var name="i"><type name="Int.int"/></var></app><app><const name="Orderings.ord_class.less"/><var name="i"><type name="Int.int"/></var><num val="64"><type name="Int.int"/></num></app><app><const name="Orderings.ord_class.less_eq"/><num val="0"><type name="Int.int"/></num><var name="n"><type name="Int.int"/></var></app></prems><concls><app><const name="HOL.eq"/><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><app><const name="rotate_left" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="t" local="true"/></fun></const><var name="v"><type name="t" local="true"/></var><var name="n"><type name="Int.int"/></var></app><var name="i"><type name="Int.int"/></var></app><app><const name="nth" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="HOL.bool"/></fun></const><var name="v"><type name="t" local="true"/></var><app><const name="mod" path="int.EuclideanDivision"><fun><type name="Int.int"/><type name="Int.int"/><type name="Int.int"/></fun></const><app><const name="Groups.minus_class.minus"/><var name="i"><type name="Int.int"/></var><var name="n"><type name="Int.int"/></var></app><num val="64"><type name="Int.int"/></num></app></app></app></concls></lemma><param name="is_signed_positive" altname="is_signed_positive" path="bv.BV64"><pred><type name="t" local="true"/></pred></param><param name="of_int" altname="of_int" path="bv.BV64"><fun><type name="Int.int"/><type name="t" local="true"/></fun></param><lemma name="to_int_def"><prems/><concls><app><const name="HOL.eq"/><app><const name="Word.sint"/><var name="x"><type name="t" local="true"/></var></app><app><const name="HOL.If"/><app><const name="is_signed_positive" local="true"><pred><type name="t" local="true"/></pred></const><var name="x"><type name="t" local="true"/></var></app><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="x"><type name="t" local="true"/></var></app><app><const name="Groups.uminus_class.uminus"/><app><const name="Groups.minus_class.minus"/><num val="18446744073709551616"><type name="Int.int"/></num><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="x"><type name="t" local="true"/></var></app></app></app></app></app></concls></lemma><lemma name="to_uint_extensionality" altname="to_uint_extensionality" path="bv.BV64"><prems><app><const name="HOL.eq"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v"><type name="t" local="true"/></var></app><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="vqt"><type name="t" local="true"/></var></app></app></prems><concls><app><const name="HOL.eq"/><var name="v"><type name="t" local="true"/></var><var name="vqt"><type name="t" local="true"/></var></app></concls></lemma><lemma name="to_int_extensionality" altname="to_int_extensionality" path="bv.BV64"><prems><app><const name="HOL.eq"/><app><const name="Word.sint"/><var name="v"><type name="t" local="true"/></var></app><app><const name="Word.sint"/><var name="vqt"><type name="t" local="true"/></var></app></app></prems><concls><app><const name="HOL.eq"/><var name="v"><type name="t" local="true"/></var><var name="vqt"><type name="t" local="true"/></var></app></concls></lemma><definition altname="uint_in_range" path="bv.BV64"><app><const name="HOL.eq"/><app><var name="uint_in_range"><pred><type name="Int.int"/></pred></var><var name="i"><type name="Int.int"/></var></app><app><const name="HOL.conj"/><app><const name="Orderings.ord_class.less_eq"/><num val="0"><type name="Int.int"/></num><var name="i"><type name="Int.int"/></var></app><app><const name="Orderings.ord_class.less_eq"/><var name="i"><type name="Int.int"/></var><num val="18446744073709551615"><type name="Int.int"/></num></app></app></app></definition><lemma name="to_uint_bounds" altname="to_uint_bounds" path="bv.BV64"><prems/><concls><app><const name="Orderings.ord_class.less_eq"/><num val="0"><type name="Int.int"/></num><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v"><type name="t" local="true"/></var></app></app><app><const name="Orderings.ord_class.less"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v"><type name="t" local="true"/></var></app><num val="18446744073709551616"><type name="Int.int"/></num></app></concls></lemma><lemma name="to_uint_of_int" altname="to_uint_of_int" path="bv.BV64"><prems><app><const name="Orderings.ord_class.less_eq"/><num val="0"><type name="Int.int"/></num><var name="i"><type name="Int.int"/></var></app><app><const name="Orderings.ord_class.less"/><var name="i"><type name="Int.int"/></var><num val="18446744073709551616"><type name="Int.int"/></num></app></prems><concls><app><const name="HOL.eq"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><app><const name="of_int" local="true"><fun><type name="Int.int"/><type name="t" local="true"/></fun></const><var name="i"><type name="Int.int"/></var></app></app><var name="i"><type name="Int.int"/></var></app></concls></lemma><param name="size_bv" altname="size_bv" path="bv.BV64"><type name="t" local="true"/></param><lemma name="to_uint_size_bv" altname="to_uint_size_bv" path="bv.BV64"><prems/><concls><app><const name="HOL.eq"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><const name="size_bv" local="true"><type name="t" local="true"/></const></app><num val="64"><type name="Int.int"/></num></app></concls></lemma><lemma name="to_uint_zeros" altname="to_uint_zeros" path="bv.BV64"><prems/><concls><app><const name="HOL.eq"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><const name="zeros" local="true"><type name="t" local="true"/></const></app><num val="0"><type name="Int.int"/></num></app></concls></lemma><lemma name="to_uint_one" altname="to_uint_one" path="bv.BV64"><prems/><concls><app><const name="HOL.eq"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><const name="one" local="true"><type name="t" local="true"/></const></app><num val="1"><type name="Int.int"/></num></app></concls></lemma><lemma name="to_uint_ones" altname="to_uint_ones" path="bv.BV64"><prems/><concls><app><const name="HOL.eq"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><const name="ones" local="true"><type name="t" local="true"/></const></app><num val="18446744073709551615"><type name="Int.int"/></num></app></concls></lemma><definition altname="ult" path="bv.BV64"><app><const name="HOL.eq"/><app><var name="ult"><pred><type name="t" local="true"/><type name="t" local="true"/></pred></var><var name="x"><type name="t" local="true"/></var><var name="y"><type name="t" local="true"/></var></app><app><const name="Orderings.ord_class.less"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="x"><type name="t" local="true"/></var></app><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="y"><type name="t" local="true"/></var></app></app></app></definition><definition altname="ule" path="bv.BV64"><app><const name="HOL.eq"/><app><var name="ule"><pred><type name="t" local="true"/><type name="t" local="true"/></pred></var><var name="x"><type name="t" local="true"/></var><var name="y"><type name="t" local="true"/></var></app><app><const name="Orderings.ord_class.less_eq"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="x"><type name="t" local="true"/></var></app><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="y"><type name="t" local="true"/></var></app></app></app></definition><definition altname="ugt" path="bv.BV64"><app><const name="HOL.eq"/><app><var name="ugt"><pred><type name="t" local="true"/><type name="t" local="true"/></pred></var><var name="x"><type name="t" local="true"/></var><var name="y"><type name="t" local="true"/></var></app><app><const name="Orderings.ord_class.less"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="y"><type name="t" local="true"/></var></app><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="x"><type name="t" local="true"/></var></app></app></app></definition><definition altname="uge" path="bv.BV64"><app><const name="HOL.eq"/><app><var name="uge"><pred><type name="t" local="true"/><type name="t" local="true"/></pred></var><var name="x"><type name="t" local="true"/></var><var name="y"><type name="t" local="true"/></var></app><app><const name="Orderings.ord_class.less_eq"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="y"><type name="t" local="true"/></var></app><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="x"><type name="t" local="true"/></var></app></app></app></definition><definition altname="slt" path="bv.BV64"><app><const name="HOL.eq"/><app><var name="slt"><pred><type name="t" local="true"/><type name="t" local="true"/></pred></var><var name="v1"><type name="t" local="true"/></var><var name="v2"><type name="t" local="true"/></var></app><app><const name="Orderings.ord_class.less"/><app><const name="Word.sint"/><var name="v1"><type name="t" local="true"/></var></app><app><const name="Word.sint"/><var name="v2"><type name="t" local="true"/></var></app></app></app></definition><definition altname="sle" path="bv.BV64"><app><const name="HOL.eq"/><app><var name="sle"><pred><type name="t" local="true"/><type name="t" local="true"/></pred></var><var name="v1"><type name="t" local="true"/></var><var name="v2"><type name="t" local="true"/></var></app><app><const name="Orderings.ord_class.less_eq"/><app><const name="Word.sint"/><var name="v1"><type name="t" local="true"/></var></app><app><const name="Word.sint"/><var name="v2"><type name="t" local="true"/></var></app></app></app></definition><definition altname="sgt" path="bv.BV64"><app><const name="HOL.eq"/><app><var name="sgt"><pred><type name="t" local="true"/><type name="t" local="true"/></pred></var><var name="v1"><type name="t" local="true"/></var><var name="v2"><type name="t" local="true"/></var></app><app><const name="Orderings.ord_class.less"/><app><const name="Word.sint"/><var name="v2"><type name="t" local="true"/></var></app><app><const name="Word.sint"/><var name="v1"><type name="t" local="true"/></var></app></app></app></definition><definition altname="sge" path="bv.BV64"><app><const name="HOL.eq"/><app><var name="sge"><pred><type name="t" local="true"/><type name="t" local="true"/></pred></var><var name="v1"><type name="t" local="true"/></var><var name="v2"><type name="t" local="true"/></var></app><app><const name="Orderings.ord_class.less_eq"/><app><const name="Word.sint"/><var name="v2"><type name="t" local="true"/></var></app><app><const name="Word.sint"/><var name="v1"><type name="t" local="true"/></var></app></app></app></definition><lemma name="positive_is_ge_zeros" altname="positive_is_ge_zeros" path="bv.BV64"><prems/><concls><app><const name="HOL.eq"/><app><const name="is_signed_positive" local="true"><pred><type name="t" local="true"/></pred></const><var name="x"><type name="t" local="true"/></var></app><app><const name="sge" local="true"><pred><type name="t" local="true"/><type name="t" local="true"/></pred></const><var name="x"><type name="t" local="true"/></var><const name="zeros" local="true"><type name="t" local="true"/></const></app></app></concls></lemma><param name="add" altname="add" path="bv.BV64"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></param><lemma name="to_uint_add" altname="to_uint_add" path="bv.BV64"><prems/><concls><app><const name="HOL.eq"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><app><const name="add" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></const><var name="v1"><type name="t" local="true"/></var><var name="v2"><type name="t" local="true"/></var></app></app><app><const name="mod" path="int.EuclideanDivision"><fun><type name="Int.int"/><type name="Int.int"/><type name="Int.int"/></fun></const><app><const name="Groups.plus_class.plus"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v1"><type name="t" local="true"/></var></app><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v2"><type name="t" local="true"/></var></app></app><num val="18446744073709551616"><type name="Int.int"/></num></app></app></concls></lemma><lemma name="to_uint_add_bounded" altname="to_uint_add_bounded" path="bv.BV64"><prems><app><const name="Orderings.ord_class.less"/><app><const name="Groups.plus_class.plus"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v1"><type name="t" local="true"/></var></app><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v2"><type name="t" local="true"/></var></app></app><num val="18446744073709551616"><type name="Int.int"/></num></app></prems><concls><app><const name="HOL.eq"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><app><const name="add" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></const><var name="v1"><type name="t" local="true"/></var><var name="v2"><type name="t" local="true"/></var></app></app><app><const name="Groups.plus_class.plus"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v1"><type name="t" local="true"/></var></app><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v2"><type name="t" local="true"/></var></app></app></app></concls></lemma><param name="sub" altname="sub" path="bv.BV64"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></param><lemma name="to_uint_sub" altname="to_uint_sub" path="bv.BV64"><prems/><concls><app><const name="HOL.eq"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><app><const name="sub" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></const><var name="v1"><type name="t" local="true"/></var><var name="v2"><type name="t" local="true"/></var></app></app><app><const name="mod" path="int.EuclideanDivision"><fun><type name="Int.int"/><type name="Int.int"/><type name="Int.int"/></fun></const><app><const name="Groups.minus_class.minus"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v1"><type name="t" local="true"/></var></app><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v2"><type name="t" local="true"/></var></app></app><num val="18446744073709551616"><type name="Int.int"/></num></app></app></concls></lemma><lemma name="to_uint_sub_bounded" altname="to_uint_sub_bounded" path="bv.BV64"><prems><app><const name="Orderings.ord_class.less_eq"/><num val="0"><type name="Int.int"/></num><app><const name="Groups.minus_class.minus"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v1"><type name="t" local="true"/></var></app><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v2"><type name="t" local="true"/></var></app></app></app><app><const name="Orderings.ord_class.less"/><app><const name="Groups.minus_class.minus"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v1"><type name="t" local="true"/></var></app><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v2"><type name="t" local="true"/></var></app></app><num val="18446744073709551616"><type name="Int.int"/></num></app></prems><concls><app><const name="HOL.eq"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><app><const name="sub" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></const><var name="v1"><type name="t" local="true"/></var><var name="v2"><type name="t" local="true"/></var></app></app><app><const name="Groups.minus_class.minus"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v1"><type name="t" local="true"/></var></app><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v2"><type name="t" local="true"/></var></app></app></app></concls></lemma><param name="neg" altname="neg" path="bv.BV64"><fun><type name="t" local="true"/><type name="t" local="true"/></fun></param><lemma name="to_uint_neg" altname="to_uint_neg" path="bv.BV64"><prems/><concls><app><const name="HOL.eq"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><app><const name="neg" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/></fun></const><var name="v"><type name="t" local="true"/></var></app></app><app><const name="mod" path="int.EuclideanDivision"><fun><type name="Int.int"/><type name="Int.int"/><type name="Int.int"/></fun></const><app><const name="Groups.uminus_class.uminus"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v"><type name="t" local="true"/></var></app></app><num val="18446744073709551616"><type name="Int.int"/></num></app></app></concls></lemma><param name="mul" altname="mul" path="bv.BV64"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></param><lemma name="to_uint_mul" altname="to_uint_mul" path="bv.BV64"><prems/><concls><app><const name="HOL.eq"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><app><const name="mul" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></const><var name="v1"><type name="t" local="true"/></var><var name="v2"><type name="t" local="true"/></var></app></app><app><const name="mod" path="int.EuclideanDivision"><fun><type name="Int.int"/><type name="Int.int"/><type name="Int.int"/></fun></const><app><const name="Groups.times_class.times"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v1"><type name="t" local="true"/></var></app><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v2"><type name="t" local="true"/></var></app></app><num val="18446744073709551616"><type name="Int.int"/></num></app></app></concls></lemma><lemma name="to_uint_mul_bounded" altname="to_uint_mul_bounded" path="bv.BV64"><prems><app><const name="Orderings.ord_class.less"/><app><const name="Groups.times_class.times"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v1"><type name="t" local="true"/></var></app><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v2"><type name="t" local="true"/></var></app></app><num val="18446744073709551616"><type name="Int.int"/></num></app></prems><concls><app><const name="HOL.eq"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><app><const name="mul" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></const><var name="v1"><type name="t" local="true"/></var><var name="v2"><type name="t" local="true"/></var></app></app><app><const name="Groups.times_class.times"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v1"><type name="t" local="true"/></var></app><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v2"><type name="t" local="true"/></var></app></app></app></concls></lemma><param name="udiv" altname="udiv" path="bv.BV64"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></param><lemma name="to_uint_udiv" altname="to_uint_udiv" path="bv.BV64"><prems/><concls><app><const name="HOL.eq"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><app><const name="udiv" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></const><var name="v1"><type name="t" local="true"/></var><var name="v2"><type name="t" local="true"/></var></app></app><app><const name="div" path="int.EuclideanDivision"><fun><type name="Int.int"/><type name="Int.int"/><type name="Int.int"/></fun></const><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v1"><type name="t" local="true"/></var></app><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v2"><type name="t" local="true"/></var></app></app></app></concls></lemma><param name="urem" altname="urem" path="bv.BV64"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></param><lemma name="to_uint_urem" altname="to_uint_urem" path="bv.BV64"><prems/><concls><app><const name="HOL.eq"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><app><const name="urem" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></const><var name="v1"><type name="t" local="true"/></var><var name="v2"><type name="t" local="true"/></var></app></app><app><const name="mod" path="int.EuclideanDivision"><fun><type name="Int.int"/><type name="Int.int"/><type name="Int.int"/></fun></const><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v1"><type name="t" local="true"/></var></app><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v2"><type name="t" local="true"/></var></app></app></app></concls></lemma><param name="lsr_bv" altname="lsr_bv" path="bv.BV64"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></param><lemma name="lsr_bv_is_lsr" altname="lsr_bv_is_lsr" path="bv.BV64"><prems/><concls><app><const name="HOL.eq"/><app><const name="lsr_bv" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></const><var name="x"><type name="t" local="true"/></var><var name="n"><type name="t" local="true"/></var></app><app><const name="lsr" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="t" local="true"/></fun></const><var name="x"><type name="t" local="true"/></var><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="n"><type name="t" local="true"/></var></app></app></app></concls></lemma><lemma name="to_uint_lsr" altname="to_uint_lsr" path="bv.BV64"><prems/><concls><app><const name="HOL.eq"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><app><const name="lsr_bv" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></const><var name="v"><type name="t" local="true"/></var><var name="n"><type name="t" local="true"/></var></app></app><app><const name="div" path="int.EuclideanDivision"><fun><type name="Int.int"/><type name="Int.int"/><type name="Int.int"/></fun></const><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v"><type name="t" local="true"/></var></app><app><const name="pow2" path="bv.Pow2int"><fun><type name="Int.int"/><type name="Int.int"/></fun></const><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="n"><type name="t" local="true"/></var></app></app></app></app></concls></lemma><param name="asr_bv" altname="asr_bv" path="bv.BV64"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></param><lemma name="asr_bv_is_asr" altname="asr_bv_is_asr" path="bv.BV64"><prems/><concls><app><const name="HOL.eq"/><app><const name="asr_bv" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></const><var name="x"><type name="t" local="true"/></var><var name="n"><type name="t" local="true"/></var></app><app><const name="asr" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="t" local="true"/></fun></const><var name="x"><type name="t" local="true"/></var><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="n"><type name="t" local="true"/></var></app></app></app></concls></lemma><param name="lsl_bv" altname="lsl_bv" path="bv.BV64"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></param><lemma name="lsl_bv_is_lsl" altname="lsl_bv_is_lsl" path="bv.BV64"><prems/><concls><app><const name="HOL.eq"/><app><const name="lsl_bv" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></const><var name="x"><type name="t" local="true"/></var><var name="n"><type name="t" local="true"/></var></app><app><const name="lsl" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="t" local="true"/></fun></const><var name="x"><type name="t" local="true"/></var><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="n"><type name="t" local="true"/></var></app></app></app></concls></lemma><lemma name="to_uint_lsl" altname="to_uint_lsl" path="bv.BV64"><prems/><concls><app><const name="HOL.eq"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><app><const name="lsl_bv" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></const><var name="v"><type name="t" local="true"/></var><var name="n"><type name="t" local="true"/></var></app></app><app><const name="mod" path="int.EuclideanDivision"><fun><type name="Int.int"/><type name="Int.int"/><type name="Int.int"/></fun></const><app><const name="Groups.times_class.times"/><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="v"><type name="t" local="true"/></var></app><app><const name="pow2" path="bv.Pow2int"><fun><type name="Int.int"/><type name="Int.int"/></fun></const><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="n"><type name="t" local="true"/></var></app></app></app><num val="18446744073709551616"><type name="Int.int"/></num></app></app></concls></lemma><param name="rotate_right_bv" altname="rotate_right_bv" path="bv.BV64"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></param><param name="rotate_left_bv" altname="rotate_left_bv" path="bv.BV64"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></param><lemma name="rotate_left_bv_is_rotate_left" altname="rotate_left_bv_is_rotate_left" path="bv.BV64"><prems/><concls><app><const name="HOL.eq"/><app><const name="rotate_left_bv" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></const><var name="v"><type name="t" local="true"/></var><var name="n"><type name="t" local="true"/></var></app><app><const name="rotate_left" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="t" local="true"/></fun></const><var name="v"><type name="t" local="true"/></var><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="n"><type name="t" local="true"/></var></app></app></app></concls></lemma><lemma name="rotate_right_bv_is_rotate_right" altname="rotate_right_bv_is_rotate_right" path="bv.BV64"><prems/><concls><app><const name="HOL.eq"/><app><const name="rotate_right_bv" local="true"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="t" local="true"/></fun></const><var name="v"><type name="t" local="true"/></var><var name="n"><type name="t" local="true"/></var></app><app><const name="rotate_right" local="true"><fun><type name="t" local="true"/><type name="Int.int"/><type name="t" local="true"/></fun></const><var name="v"><type name="t" local="true"/></var><app><const name="tqtint" local="true"><fun><type name="t" local="true"/><type name="Int.int"/></fun></const><var name="n"><type name="t" local="true"/></var></app></app></app></concls></lemma><param name="nth_bv" altname="nth_bv" path="bv.BV64"><fun><type name="t" local="true"/><type name="t" local="true"/><type name="HOL.bool"/></fun></param><lemma name="nth_bv_def" altname="nth_bv_def" path="bv.BV64"><prems/><concls><app&g